diff --git a/Abschlussprojekt/connection.py b/Abschlussprojekt/connection.py new file mode 100644 index 0000000..380b38e --- /dev/null +++ b/Abschlussprojekt/connection.py @@ -0,0 +1,16 @@ +import dataclasses + + +@dataclasses.dataclass() +class ConnectionGene: + nodes: tuple[int, int] + weight: float + innovation_no: int + disabled: bool = False + + +def reset_innovation_numbers(): + _CONNECTION_GENES.clear() + + +_CONNECTION_GENES: dict[tuple[int, int], ConnectionGene] = dict() diff --git a/Abschlussprojekt/genome.py b/Abschlussprojekt/genome.py index b832a5b..5d33c01 100644 --- a/Abschlussprojekt/genome.py +++ b/Abschlussprojekt/genome.py @@ -1,17 +1,20 @@ from __future__ import annotations -from dataclasses import dataclass +import dataclasses +import itertools from enum import Enum from random import choice + +import matplotlib.pyplot as plt import numpy as np + from graphs import creates_cycle rng = np.random.default_rng() -class NodeType(Enum): - INPUT = 1 - HIDDEN = 2 - OUTPUT = 3 + +from connection import _CONNECTION_GENES, ConnectionGene +from node import NodeGene, NodeType class MutationType(Enum): @@ -19,23 +22,6 @@ class MutationType(Enum): ADD_NODE = 2 -@dataclass(frozen=True) -class NodeGene: - id: int - type: NodeType - - -@dataclass() -class ConnectionGene: - nodes: tuple[int, int] - weight: float - innovation_no: int - disabled: bool = False - - -_CONNECTION_GENES: dict[tuple[int, int], ConnectionGene] = dict() - - class Genome: def __init__(self): # Initialize nodes @@ -44,6 +30,14 @@ class Genome: # Initialize connections self.connections: dict[tuple[int, int], ConnectionGene] = dict() + self.fitness = 0 + + def set_node(self, key: int, node: NodeGene) -> None: + self.nodes[key] = node + + def set_connection(self, key: tuple[int, int], connection: ConnectionGene) -> None: + self.connections[key] = connection + def add_node(self, node_type: NodeType = NodeType.HIDDEN) -> int: """ Adds a node of the given type to the genome and returns the identification key. @@ -58,6 +52,11 @@ class Genome: Adds a connection of weight between two given nodes to the genome and returns the identification key. """ + if not isinstance(from_node, int) or not isinstance(to_node, int): + raise ValueError("Nodes must be integer keys.") + + if from_node not in self.nodes or to_node not in self.nodes: + raise ValueError("Nodes do not exist.") key = (from_node, to_node) connection = ConnectionGene(key, weight, -1) @@ -90,34 +89,103 @@ class Genome: return genome + @staticmethod + def copy(genome: Genome) -> Genome: + clone = Genome() + + # Copy nodes + for key, node in genome.nodes.items(): + clone.set_node(key, dataclasses.replace(node)) + + # Copy connections + for key, connection in genome.connections.items(): + clone.set_connection(key, dataclasses.replace(connection)) + + # Set fitness + clone.fitness = genome.fitness + + return clone + def mutate(genome: Genome) -> None: mutation = choice([MutationType.ADD_NODE, MutationType.ADD_CONNECTION]) - print(mutation) if mutation is MutationType.ADD_CONNECTION: _mutate_add_connection(genome) elif mutation is MutationType.ADD_NODE: _mutate_add_node(genome) +def crossover(mother: Genome, father: Genome) -> Genome: + mother_connections = {conn.innovation_no: conn for conn in mother.connections.values()} + father_connections = {conn.innovation_no: conn for conn in father.connections.values()} + innovation_numbers = set(mother_connections.keys()) | set(father_connections.keys()) + + child_connections: dict[int, ConnectionGene] = {} + + for i in innovation_numbers: + # Matching genes + if i in mother_connections and i in father_connections: + child_connections[i] = choice((mother_connections[i], father_connections[i])) + + # Disjoint or excess + else: + # Mother has better fitness + if mother.fitness > father.fitness and i in mother_connections: + child_connections[i] = mother_connections[i] + + # Father has better fitness + elif father.fitness > mother.fitness and i in father_connections: + child_connections[i] = father_connections[i] + + # Equal fitness + else: + connection = choice((mother_connections.get(i, None), father_connections.get(i, None))) + if connection is not None: + child_connections[i] = connection + + # Determine input/output dimensions + inputs = sum(node.type == NodeType.INPUT for node in mother.nodes.values()) + outputs = sum(node.type == NodeType.OUTPUT for node in mother.nodes.values()) + + # Create child and set nodes & connections + child = Genome.new(inputs, outputs) + for connection in child_connections.values(): + # Set connections + child.set_connection(connection.nodes, dataclasses.replace(connection)) + from_node, to_node = connection.nodes + + # Add nodes if required + if from_node not in child.nodes: + child.set_node(from_node, NodeGene(from_node, NodeType.HIDDEN)) + if to_node not in child.nodes: + child.set_node(to_node, NodeGene(to_node, NodeType.HIDDEN)) + + return child + + def _mutate_add_connection(genome: Genome) -> None: """ In the add_connection mutation, a single new connection gene with a random weight is added connecting two previously unconnected nodes. """ - from_node = choice([node for node in genome.nodes.values() if not node.type != NodeType.OUTPUT]) - to_node = choice([node for node in genome.nodes.values() if node.type != NodeType.INPUT]) - - # Checking if connection already exists - if (from_node, to_node) in genome.connections: + from_node = choice([id for id, node in genome.nodes.items() if node.type != NodeType.OUTPUT]) + try: + to_node = choice( + [ + id + for id, node in genome.nodes.items() + if node.type != NodeType.INPUT and (from_node, id) not in genome.connections + ] + ) + except IndexError: return - + # Checking for cycles - if creates_cycle(genome.connections.keys(), (from_node.id, to_node.id)): + if creates_cycle(genome.connections.keys(), (from_node, to_node)): return - genome.add_connection(from_node, to_node, weight=rng.uniform(0,1)) + genome.add_connection(from_node, to_node, weight=rng.uniform(0, 1)) def _mutate_add_node(genome: Genome) -> None: @@ -145,3 +213,68 @@ def _mutate_add_node(genome: Genome) -> None: # Connection new_node to previous to_node genome.add_connection(new_node, to_node, weight=connection.weight) + + +def _excess(g1: Genome, g2: Genome) -> list[int]: + g1_connections = {conn.innovation_no: conn for conn in g1.connections.values()} + g2_connections = {conn.innovation_no: conn for conn in g2.connections.values()} + + less_connections, more_connections = sorted((g1_connections, g2_connections), key=lambda c: max(c.keys())) + return [k for k in more_connections.keys() if k > max(less_connections.keys())] + + +def _disjoint(g1: Genome, g2: Genome) -> list[int]: + g1_connections = {conn.innovation_no: conn for conn in g1.connections.values()} + g2_connections = {conn.innovation_no: conn for conn in g2.connections.values()} + + less_connections, more_connections = sorted((g1_connections, g2_connections), key=lambda c: max(c.keys())) + return list( + {i for i in less_connections.keys() if i not in more_connections} + | {i for i in more_connections.keys() if i not in less_connections and i <= max(less_connections.keys())} + ) + + +def _get_delta(g1: Genome, g2: Genome, c1: float, c2: float, c3: float) -> float: + n = max([len(g1.nodes), len(g2.nodes)]) + + g1_connections = {conn.innovation_no: conn for conn in g1.connections.values()} + g2_connections = {conn.innovation_no: conn for conn in g2.connections.values()} + innovation_numbers = set(g1_connections.keys()) | set(g2_connections.keys()) + + # Calculate number of excess genes + less_connections, more_connections = sorted((g1_connections, g2_connections), key=lambda c: max(c.keys())) + e = len([k for k in more_connections.keys() if k > max(less_connections.keys())]) + + # Calculate number of disjoint genes + d = len( + {i for i in less_connections.keys() if i not in more_connections} + | {i for i in more_connections.keys() if i not in less_connections and i <= max(less_connections.keys())} + ) + + # Average weight difference of matching genes + w = 0 + for i in innovation_numbers: + if i in g1_connections and i in g2_connections: + w += abs(g1_connections[i].weight - g2_connections[i].weight) + + delta = ((c1 * e) / n) + ((c2 * d) / n) + (c3 * w) + return delta + + +def specify(genomes: list, c1: float, c2: float, c3: float) -> list[list]: + THRESHOLD = 1 + species = [] + for genom in genomes: + done = False + if len(species) < 1: + species.append([genom]) + done = True + for spicy in species: + print("Delta: ", _get_delta(genom, spicy[0], c1, c2, c3)) + if _get_delta(genom, spicy[0], c1, c2, c3) < THRESHOLD and not done: + spicy.append(genom) + done = True + if not done: + species.append([genom]) + + return species diff --git a/Abschlussprojekt/neat.ipynb b/Abschlussprojekt/neat.ipynb index 99a8d5d..5fbb8f4 100644 --- a/Abschlussprojekt/neat.ipynb +++ b/Abschlussprojekt/neat.ipynb @@ -6,7 +6,8 @@ "metadata": {}, "outputs": [], "source": [ - "from genome import Genome, mutate\n", + "from genome import Genome, mutate, specify, crossover, _disjoint, _excess\n", + "from connection import reset_innovation_numbers\n", "import visualization" ] }, @@ -42,9 +43,9 @@ "outputs": [ { "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ - "
" + "
" ] }, "metadata": {}, @@ -54,7 +55,7 @@ "source": [ "g1 = Genome.new(3, 2)\n", "\n", - "visualization.genome(g1)\n" + "visualization.genome_graph(g1)\n" ] }, { @@ -73,27 +74,45 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 3, "metadata": {}, "outputs": [ { - "ename": "AttributeError", - "evalue": "'builtin_function_or_method' object has no attribute 'uniform'", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[5], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m mutate(g1)\n\u001b[1;32m 3\u001b[0m visualization\u001b[39m.\u001b[39mgenome(g1)\n", - "File \u001b[0;32m~/development/ne-assignments/Abschlussprojekt/genome.py:96\u001b[0m, in \u001b[0;36mmutate\u001b[0;34m(genome)\u001b[0m\n\u001b[1;32m 93\u001b[0m mutation \u001b[39m=\u001b[39m choice([MutationType\u001b[39m.\u001b[39mADD_NODE, MutationType\u001b[39m.\u001b[39mADD_CONNECTION])\n\u001b[1;32m 95\u001b[0m \u001b[39mif\u001b[39;00m mutation \u001b[39mis\u001b[39;00m MutationType\u001b[39m.\u001b[39mADD_CONNECTION:\n\u001b[0;32m---> 96\u001b[0m _mutate_add_connection(genome)\n\u001b[1;32m 97\u001b[0m \u001b[39melif\u001b[39;00m mutation \u001b[39mis\u001b[39;00m MutationType\u001b[39m.\u001b[39mADD_NODE:\n\u001b[1;32m 98\u001b[0m _mutate_add_node(genome)\n", - "File \u001b[0;32m~/development/ne-assignments/Abschlussprojekt/genome.py:118\u001b[0m, in \u001b[0;36m_mutate_add_connection\u001b[0;34m(genome)\u001b[0m\n\u001b[1;32m 115\u001b[0m \u001b[39mif\u001b[39;00m creates_cycle(genome\u001b[39m.\u001b[39mconnections\u001b[39m.\u001b[39mkeys(), (from_node\u001b[39m.\u001b[39mid, to_node\u001b[39m.\u001b[39mid)):\n\u001b[1;32m 116\u001b[0m \u001b[39mreturn\u001b[39;00m\n\u001b[0;32m--> 118\u001b[0m genome\u001b[39m.\u001b[39madd_connection(from_node, to_node, weight\u001b[39m=\u001b[39mrandom\u001b[39m.\u001b[39;49muniform(\u001b[39m0\u001b[39m,\u001b[39m1\u001b[39m))\n", - "\u001b[0;31mAttributeError\u001b[0m: 'builtin_function_or_method' object has no attribute 'uniform'" - ] + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ "mutate(g1)\n", "\n", - "visualization.genome(g1)" + "visualization.genome_graph(g1)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "+------+------+------+------+------+------+\n", + "| 0 | 1 | 2 | 3 | 4 | 5 |\n", + "| 0->3 | 0->4 | 1->3 | 1->4 | 2->3 | 2->4 |\n", + "| | | | | | |\n", + "+------+------+------+------+------+------+\n" + ] + } + ], + "source": [ + "visualization.genome_table(g1)" ] }, { @@ -110,61 +129,148 @@ }, { "cell_type": "code", - "execution_count": 125, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "parent1 = Genome.new(3, 2)\n", - "for i in range(10):\n", - " mutate(parent1)\n", - "\n", - "\n", - "visualization.genome(parent1)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 126, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "parent2 = parent1\n", - "\n", - "for i in range(4):\n", - " mutate(parent2)\n", - " \n", - "visualization.genome(parent2)" - ] - }, - { - "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ - "# TODO: crossover implementieren" + "reset_innovation_numbers()" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "parent1 = Genome.new(3, 2)\n", + "for i in range(8):\n", + " mutate(parent1)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "parent2 = Genome.copy(parent1)\n", + "\n", + "\n", + "mutate(parent2)\n", + "mutate(parent2)\n", + "\n", + "mutate(parent1)\n", + "\n", + "mutate(parent2)\n", + "mutate(parent2)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+-------+-------+\n", + "| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 18 | 19 |\n", + "| 0->3 | 0->4 | 1->3 | 1->4 | 2->3 | 2->4 | 1->5 | 5->4 | 0->6 | 6->4 | 5->7 | 7->4 | 6->8 | 8->4 | 0->9 | 9->3 | 1->7 | 6->10 | 10->8 |\n", + "| DIS | DIS | | DIS | | | | DIS | | DIS | | | DIS | | | | | | |\n", + "+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+-------+-------+\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "visualization.genome_graph(parent1)\n", + "visualization.genome_table(parent1)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+-------+-------+-------+-------+\n", + "| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 20 | 21 | 22 | 23 |\n", + "| 0->3 | 0->4 | 1->3 | 1->4 | 2->3 | 2->4 | 1->5 | 5->4 | 0->6 | 6->4 | 5->7 | 7->4 | 6->8 | 8->4 | 0->9 | 9->3 | 1->7 | 2->8 | 7->10 | 10->4 | 6->11 | 11->8 |\n", + "| DIS | DIS | | DIS | | | | DIS | | DIS | | DIS | DIS | | | | | | | | | |\n", + "+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+-------+-------+-------+-------+\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAV0AAADnCAYAAAC9roUQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAABcv0lEQVR4nO2ddVxU2RvGnxGVgV1ApAUDERUUxO5cO1CwRQXFwg7MtUUxWFuxEKy1d421XXMtMAHB3LUVTAyaeX5/jPADGXoKuN/53A9y77nnvHNknjn3nPe8r4gkBAQEBASUQxFVGyAgICBQmBBEV0BAQECJCKIrICAgoEQE0RUQEBBQIoLoCggICCiRopldNDQ0ZLly5ZRkioCAgEDB4MaNG+9IGsm6lqnolitXDtevX1eMVQICAgIFFJFI9DSja8L0goCAgIASEURXQEBAQIkIoisgICCgRATRFRAQEFAigugKCAgIKBFBdAUEBASUiCC6AgICAkpEEF0BAQEBJZLp5gilERkJBAQAwcFAVBSgpwfY2wMDBgBGMjd1FHgiEYkABCAYwYhCFPSgB3vYYwAGwAiFs08EBAoCosyCmNeqVYsK3ZEWFAR4ewPHjkl/j439/zUtLYAE2rUDpk4FatdWnB1qRBCC4A1vHIO0T2Lx/z7RghYIoh3aYSqmojYKR58ICOQ3RCLRDZK1ZF1T3fSCry/QrBlw4IBUbFMLLgDExEjPHTggLefrq3wblYwvfNEMzXAABxD7/ZWaGMQgFrE4gANohmbwRcHvEwGBgoZqphd8fQFPTyA6OuuypLScp6f0dw8PxdqmInzhC094IhpZ9wlBRCManpD2iQcKZp8ICBRElD/SDQrKvuCmJll4C2AAniAEZVtwU5MsvNdR8PpEQKCgonzR9faWTh38wAcATgB+AlAWwO+y7o2Jkd5fwPCGN2KQvk8AAM0AiAH8/P2olPZyDGLgjYLXJwICBRXlim5kpHTRTMbi3QgAxQFEANgBwAPA3R8LkcDRo8Dbt4q2VGlEIhLHcAxEJlmZVwP4+v24n/YSQRzFUbxFwekTAYGCjHJFNyBA5ulvAPYDmAfpYK4RAEcA22QVFokyrCc/EoCAPNchgkgu9QgICCge5YpucHB6LwUADyBd0auY6lw1yBjpAtIphpAQhZinCoIRnM5LIR1TARgCaAjgXPrLMYhBCApOnwgIFGSUK7pRUTJPfwWg+8M5PQBfMqrn40f52aRioiC7T1JYBOBfAC8BDAHQCcDj9MU+ouD0iYBAQUa5oqunJ/P0zwA+/3DuMwCdjOrR15efTSpGD7L7JIW6kHaEJgBXSEe7R9MX00fB6RMBgYKMckXX3h4Qi9OdrgggEcDDVOfuAKgiqw4tLcDOTiHmqQJ72EOM9H2SISLgxzU3LWjBDgWnTwQECjLKFV03N5mnfwLgDGAmpItqlwAcBNBPVmEyw3ryI25wy/jiJwAnAMRC+q20A8AFAG3TFiOYeT0CAgJqg3JF19hYGktBJEp3aS2AGADGAHoD8IWMka5IBLRvX6CC4BjDGO3QDiKk7xMkAJgOwAjShbRVAA4gzYqjSCJC48+NhSA4AgL5BOVvjpg6VTpF8AMlIdWTbwCeAegj614tLen9BYypmAotpO8TGAEIgnRF8ROAqwBapS1STFIMgc6BWLBgARISEhRtqoCAQB5RvujWrg34+ADa2jm6jdra0vtqyQzck6+pjdrwgQ+0kbM+0YY2lhddjjt+d3DhwgXUqVMHt27dUpCVAgIC8kA1UcY8PP4vvDKmGtIgEiG2SBEca9GiwAa7AYDm95qj+vbq0Ia27KmGVIgggja04QMfeMADZcuWxbFjxzB27Fi0adMGU6dORawMf2gBAQHVo7rQjh4ewPnzgJOT1KPhhykHisXS9aNOnfD58GG4X7+O06dPq8ZWBXLv3j1069YNtra2uD7oOs7jPJzgBDHE6aYctKAFMcRwghPO43ya6GIikQiurq4IDg7Go0ePUK1aNfzzzz/KfjsCAgJZoNog5sm8fSvd2hsSIt34oK8P2Nmh1/Hj6DhgAPr27YszZ87AxcUFQUFBsLCwULxNCkYikaBr1644fvw44uPjIZFI0Lx5c5w5cwYA8BZvEYAAhCAEH/ER+tCHHezgBrdsLZr98ccfGDVqFJycnODt7Q0dnQy9ngUEBORMZkHMQTLDo2bNmlQle/bsYfPmzVN+nz9/PuvXr8+4uDgVWiUfJBIJXV1dKRaLCYAaGhqcN2+eXNv48OEDBwwYwDJlyvDYsWNyrVtAQCBjAFxnBrqq1okpHR0dERoaisePpftep0yZAgMDA0yaNEnFluUdkUiEVatWoUSJEihevDg0NDRQS86LhPr6+ti8eTM2bdoEDw8PuLq64v3793JtQ0BAIGeotehqamrCxcUFAd+jihUpUgRbt27FoUOHsGfPHtUal0dIYvDgwejQoQMCAwNRp04d1FZQHrhWrVohJCQEJUqUgJ2dHfbt2wdmMq0kICCgQDIaAlMNphdIMjg4mBYWFkxMTEw5d+PGDRoaGjI8PFyFluWNlStX0sHBgdHR0Upt99KlS6xcuTKdnJz46tUrpbYtIFBYQH6dXgAAOzs7mJmZ4eTJkynnatSogQULFqBbt2749u2bCq3LHVevXsW8efOwf/9+aMnYKKJIGjRogNu3b6NKlSqoVq0aNm/eLIx6BQSUiNqLLgAMHDgQmzdvTnNu0KBBqFWrFoYMGZKvROPt27fo0aMHNm3ahPLly6vEBk1NTcybNw+nTp3C2rVr0bp1a/z3338qsUVAoLCRL0S3d+/eOHXqFN6mStMjEomwdu1ahIaGwjefpGdPSkqCi4sL+vTpA0dHR1Wbg2rVquHq1ato1aoVateujRUrViApKUnVZgkIFGjyhejq6emhU6dO2LFjR5rz2tra2LdvH2bNmoXAwEAVWZd95s6di4SEBHh5eanalBSKFi2KSZMm4fLly9i/fz8aN26MsLAwVZslIFBgyReiCwDu7u7w8/NLN5VgbW2N9evXo0ePHmrtDnX8+HH4+flh586dKFq0qKrNSUfFihVx7tw59OvXD02bNoWXl5cQQEdAQAHkG9Ft0qQJoqOjIWuHnLOzM7p164a+fftCIpGowLrMefr0Kdzc3LBz506Ympqq2pwMKVKkCDw8PHDz5k1cvnwZtWrVwo0bN1RtloBAgSLfiG6RIkUwcOBA+Pn5ybzu7e2Nr1+/qtWjOwDExcWhe/fu8PT0ROPGjVVtTrYoXbo0jhw5gkmTJqF9+/aYPHkyYmJiVG2WgECBIN+ILgC4urpiz549iI6OTnetWLFi2L17N9atW5fGvUzVjB8/HhYWFpgwYYKqTckRIpEILi4uCAkJwdOnT2Fvb4/z58+r2iwBgXxPvhJdCwsL1KtXD/v375d5vVSpUvj999/Rv39/PH/+XMnWpWfHjh04efIk/P39IcoqhKWaYmxsjF27dsHHxwcuLi7w8PDA588/phEVEBDILvlKdAHZPrupadasGcaNG4fu3bsjPj5eiZal5e7duxg7diz2798PvQyyIOcnOnfujNDQUCQlJaFq1ao4elRGSmIBAYEsyXei6+joiLt376YEwZHFpEmTYGJiAk9PTyVa9n++fPmCrl27wsfHB/b29iqxQRGUKFECGzZsQEBAAEaNGoW+ffvi3bt3qjZLQCBfke9Et3jx4ujbty/8/f0zLCMSibBlyxYcOXIEu3btUqJ10lgW7u7uaNKkCVxdXZXatrJo0aIFgoODYWJiAjs7O+zevTtf7QoUEFApGQVloJoEvJFFSEgIzc3N0wTBkcXNmzdpaGjIsLAwJVlGLl++nDVq1GBMTIzS2lQlV69epa2tLR0dHfnixQtVmyMgoBYgPwe8kUXVqlVhbm6OEydOZFquevXqWLhwIbp27YqvX78q3K7Lly9jwYIF2LdvH8RiscLbUwfq1q2Lmzdvonr16nBwcMDGjRuFUa+AQCbkS9EFsl5QS8bd3R316tVTeGCcyMhI9OzZE35+frC0tFRYO+qIpqYmZs+ejTNnzmDjxo345ZdfMp1zFxAozORb0e3VqxdOnz6dJghORqxZswZhYWFYu3atQmxJSkpCnz590K9fP3Ts2FEhbeQH7OzscOXKFXTo0AF169bF0qVLhQA6AgI/kG9FV09PD46Ojti+fXuWZbW0tLBv3z7MmTMHV69elbsts2fPhkQiwdy5c+Ved35DQ0MDEyZMwNWrV3H48GE0aNAAoaGhqjZLQEBtyLeiC2QcBEcWFSpUwIYNG9CzZ0+5ujkdPXoU/v7+ahvIRlVUqFABf//9N9zd3dG8eXPMmTNHpX7TAgLqQr4W3SZNmiA2NhZBQUHZKt+lSxf07NkTLi4ucnnsffLkCQYMGIBdu3bBxMQkz/UVNIoUKYIhQ4bg1q1buH79OmrWrJkvQnAKCCiSfC26IpEo0yA4sliwYAFiY2Mxb968PLUdGxuLbt26YcqUKWjUqFGe6iroWFhY4NChQ5g2bRocHR3h6ekpM36GgEBhIF+LLiANgrN3795sf4iLFi2K3bt3Y+PGjTh+/Hiu2x07diwsLS0xduzYXNdRmBCJROjduzdCQkLw+vVr2Nvb4+zZs6o2S0BA6eR70TU3N0f9+vWxb9++bN9jamqKnTt3ws3NDc+ePctxm9u2bcPZs2fh5+eXbwPZqAojIyPs2LEDy5cvR//+/TFkyBBERUUBAB49eoRTp06p2EIBAcUiymwRqlatWpQVNFzd2L9/P1atWoVz587l6L4lS5Zg3759uHDhAjQ1NbN1T0hICFq0aIEzZ87Azs4uF9YKJBMVFYXJkyfjyJEjWLVqFSZPnoznz5/jyZMnMDY2lnlPJCIRgAAEIxhRiIIe9GAPewzAABjBSMnvQD0Q+iQ9kZFAQAAQHAxERQF6eoC9PTBgAGCkhC4RiUQ3SNaSeTGjrWpU423APxIXF0djY2M+fPgwR/dJJBJ26dKFI0aMyFb5qKgoVqxYkVu3bs2NmQIZcPbsWerr61NDQ4PFihVjnz590pUJZCCd6ETx9xdSvbSoRTHFdKITAxmognegGoQ+SU9gIOnkRIrF0gP4/6GlJT3n5CQtp0iQyTbgAiG6JDl+/HhOmzYtx/d9/PiRVlZW3LFjR6blJBIJu3btyqFDh+bWRIEMuH//PjU1NQmAAFi8eHFeu3Yt5fparqU2tSmiKI2w/PgSUURtanMt16rw3SgHoU/Ss3Ytqa1NikRpxfbHQySSllurwC4pFKIbGhrKUqVKMSEhIcf33r59m4aGhrx7926GZZYuXcqaNWsWmkA2ymTHjh3U19dnkSJFKBaLCYDGxsYk/y8umQnLj6+CLjJCn6QnWXAzE9sfD0UKb6EQXZKsW7cu//rrr1zdu3nzZlauXJmfP39Od+2ff/6hsbEx//vvvzxaKJAZCQkJfPr0Kc+ePcsdO3YwkIHpxeWnH44iIEbKFpkgBqn6LckdmX1CEP+BaAeiBAgTECNAJBSSPgnMSHBdCJgS0CFgTWCjTOENUkCXFBrRXb9+PZ2dnXN9v7u7O3v27EmJRJJyLiIighYWFrkWc4Hc40SnzB+fv3wX3vOyH6udmfu/BXUlwz5pB8IVRAyI1yCqglhRSPrEKaMphVACsd//HU7AhMD1dFMNeZCMDCk0ohsVFUU9PT1GRETk6v7o6Gg6ODhw5cqVJMnExES2aNGCv/76qzzNFMgGEYxItziU7hUAwhKERPZ1McWMZKSq34rcyLRPKoM4kup3TxBDCkGfRKRfMJN93Ps+6t2d7ppYTEbKuUsyE91876ebGl1dXXTu3DlbQXBkoaWlhf3792PevHm4cuUKZs6cCZFIhDlz5sjZUoGsCEBA1oW2AOgPIANXaRFE2asnn5DpexkLYBeAaAAvARwD0DZ9sQLXJwFZlRgOQBtAZQBmANqnKyESZace+VGgRBfIWRAcWZQvXx6bNm2Co6MjtmzZgt9//x0aGhpytlIgK4IRjFjEZlzgKYDzADLJiBSDGIQgRN6mqYxM+6QJgLsAdAFYAKgFoEv6Yvm1TyQSCeLi4tKdDw4GYjP5MwHWAvgC4CIAZwDp/fFjYoAQJXZJgRPdxo0bIz4+Pk+BVezs7BAdHQ0zMzMYGBjI0TqB7BKFqMwLbAPQCEAW8eI/4qO8TFI5GfaJBNJRrTOAbwDeAfgIYLLs4vmxTzZu3AhdXV20bt0aW7duxfv37wFINz5kjQakfywvAPjKLPFRiV1S4EQ3N0FwUpMcyGbevHnQ0dERphZUhB6ySFu/FZmOcpPRh75c7FEHMuyTDwCeARgJ6UDOAMAAAEdlF8+PfWJkZAQNDQ2cOnUKgwcPhpGREerVqwe9LP5M0pIIQHZGE30ldkmBE10A6N+/P/bu3Ytv377l+N7Ro0ejQoUKGDduHHbu3InNmzfj2LFjCrBSAABmzJgBPT09VKtWDS4uLpgxYwb27dsHe9hDjAzyzF2GdN6ye+Z1a0ELdig4W7Uz7BNDSEf8vpDqyidI57vt0xdV9z759u0bbty4ge3bt2PatGno0qULKlWqhN69eyP2+zxCUlIS9PT08Ouvv8LeHpCdjjAS0knurwCSAJwAsBPAL+lKamkBSt3Rn9EKG/Oh90JqOnTowICAgBzdExAQwEqVKqXx1b1w4QKNjY355MkTeZsoQHLPnj0pGyKSj9q1a2e+Uj8ERN9M/RoK5kp9Zn1yC0RTSP10DUB0B/FGffvkw4cPvHTpEjdt2sTx48ezXbt2LFu2LMViMe3t7dmzZ0/OmTOHe/fuZWhoKKOjo1m0aFGKxWJ26tSJjx8/5tu3b/niRXwG3guRBJoQ0Pvup1uVwAaZng3K9l4osKK7f/9+NmnSJNvl79y5Q0NDQ4aGhqa75uPjw1q1ajE2NlaeJhZq7t+/zwULFtDBwSFFbDU1NdmpU6eUXYVZ+ulm8iqIPqkSiSRf9YlEIuGbN2949uxZrlmzhiNHjmSLFi1oZmbGn3/+mbVr12b//v25cOFCHjx4kA8fPmRiYmKG9ZmamrJIkSLU0tJisWLFCIANGjTIxE8360Pw05UjyUFwHjx4kGXZT58+sUKFCty+fbvM6xKJhM7OzvTw8JC3mYUGiUTCkJAQzpo1i1WrVqWpqSk9PDx4+vRptmjRgkWLFmW3bt3SfOgy3H2VjVd+33317NkzDh06lL/88gsrVKhAsVjMIkWK8HLCZbXrE4lEwmfPnvH48eNctmwZBw8ezEaNGrFkyZLU19dnw4YNOXjwYC5dupTHjx/n06dP02xAyi7+/v7U0NBI81QEgJs23cnxFmBhR5qCmDBhAqdOnZppmewK6qdPn2htbZ2hMAukRyKR8Pr165w6dSorVqzI0qVLc+zYsbx48WIacT158iQ9PDxkjnIKa5yBhw8fphEYkUjE3r17k1RdnyQmJvLhw4c8dOgQFy5cSFdXV9auXZs///wzTU1N2aJFC44YMYJr1qzhmTNn+ObNm1yJ64/Ex8czICCAVlZW6QS3SpUqlEgkQuwFdeHu3btZBsHx8fFh7dq1szV1kNkUhICUpKQkXrp0iePHj2e5cuVoZWXFyZMnMzAwMNcfwGxH1EoSURQt4tKYpXJ+V8onPj6eLVq0SBEXXV1dfvr0ie/evWOPHj04+b/J2esTiYj4Bs59OzfbbcfFxfHu3bvcu3cv586dy169etHe3p5aWlosW7Ys27Zty/Hjx3Pjxo28dOkSP3z4oJA+iI2N5fr162lpacmmTZvy1KlTbN26dUqfiMVihoWFpZQXooypCfXq1ePhw4dlXsvNIpmsxbbCTmJiIs+ePcuRI0eyVKlStLW15YwZM3j79m25jHRIMohBdKYzxRRTi1pphCU5dqwznek415E9evSQW7uq4ObNm3RwcGCrVq1YpkwZFi1alL/99htHjx6dEgLz9OnT2e6TcTvGsUaNGuki5H379o03b97kjh07+Ouvv9LJyYmVK1empqYmra2t2blzZ06ZMoVbt25lUFAQv3z5opT3Hx0dzVWrVrF06dJs3bo1L1y4wKdPn7Jdu3a0t7dnpUqVqKGhITMOdlCQdI5WLJbGz00ttsnxdJ2dFTOlkJpCLbobNmygk5NTuvOvX7+mubk5jx49muM6Bw8ezO7du+frD3ZeiY+P5/Hjxzl48GAaGRmxevXq9PLyYnh4uELbjWQkF3Mx+7EfO7Ij+7EfF3Nxyop8cvyMFStWKNQORRATE8MpU6bQ2NiYW7ZsoUQi4Y0bN+jg4ECxWMzixYsTADU0NNI8mWXVJx8/fmSLFi3YpEkTenp6skOHDrS0tKRYLGbVqlXZvXt3zpo1i7t372ZwcLDKwpd+/fqVPj4+NDMzY6dOnXj16lUmJSVxzZo1NDQ0pJeXF+Pj4/nmzRu2bduWnz59yrCuyEhy8WKyXz+yY0fpz8WL5e+lkBGFWnSTg+C8efMm5VxCQgKbNm3KGTNm5KrOmJgY1qhRg8uWLZOTlfmDmJgYHjx4kP3792fJkiVZt25dLlmyhI8fP1a1aWl4/PgxjYyMePnyZVWbkm0uXrzIihUrslu3bmn+VklpZg0dHZ2Ux2pLS0uZdURGRvL8+fP09fXl6NGj2bJlS5qbm1NbW5vVqlWjjo4Ou3Xrxj///JP379/PVexpRRAVFcUFCxbQ2NiYXbt25a1bt0hKPVwaN27M+vXrp5lGyA8UatElSVdXV/r4+KT8PnnyZLZq1SpT95Ss+Pfff2lsbMx//vlHHiaqLV+/fuXevXvZq1cv6unpsUmTJlyxYgWfP3+uatMy5eDBgyxdujQjlTW0ySWfP3/miBEjWKpUKf7xxx8ZluvTpw91dXWpoaHBTp068eTJk1yxYgWHDh3KJk2a0NDQkHp6eqxfvz7d3d3p4+PDo0eP8r///mNSUhJJMiQkhIaGhrxz546y3l6mfPjwgbNmzaKBgQH79OmTslaSkJDAhQsX0sDAgCtWrMjT51RVFHrRvXDhAm1sbCiRSOT6Yfzrr79oYWGR61CS6sqnT5+4fft2Ojk5UUdHh61ateK6devSjcDUncmTJ7Nly5Zq+6E9fvw4y5Yty4EDB6ZbjEpKSuLjx4/5119/sWfPntTV1WX16tVZvHhx6urqslmzZvTw8OCqVat4+vRpvnr1KlvTXdu2bWOFChUyfTRXNJGRkZwyZQpLlizJAQMG8P79+ynXbt++zRo1arBVq1b5OmlAoRddiURCa2tr7t27l0ZGRrxy5Yrc6p42bRp/+eUXtf1gZ5d3795x8+bNbN++PXV0dNihQwdu3ryZ7969U7VpuSYhIYHNmjXL9TSSonj37h379+9PS0tLHjt2jOHh4dy/fz+9vLzYp08fOjg4UFtbm6VLl2b9+vWppaXFmTNn8uLFi3L5/xg2bBidnZ2Vvibx6tUrjh8/nvr6+hw6dGgaUY2JieGvv/5KIyMj+vv75/v1kkIvuiQ5d+5cGhgYpAQolxf5OdD569ev6evry5YtW1JXV5fOzs7csWMHo6KiVG2a3MjLgqk8iYmJ4a1btzhmzBj+/PPPrFChQoqngJWVFTt16sRJkyYxICCAgYGB/Pz5s8KyT8fGxrJWrVppptwUybNnzzhixAjq6+tz9OjR6aamLl26xMqVK9PJyYmvXr1Sik2KRhBdkr1792axYsUU4vaSn1L6PHv2jMuXL2fjxo2pp6fH3r17c9++ffz69auqTVMYyoyf8fnzZwYGBjIgIICTJk1ip06daGVlxeLFi1NHR4c6OjocMGAAf//9d96+fZvR0dEy60nOPj1s2DCF2Pnff//R2NiYFy5cUEj9pHRBc9CgQdTX16enpydfv36d5vqXL184atQompmZcd++fQqzQxUUetFNTjrZtm1b+vv7K6QNdU5e+fjxYy5evJh16tRhyZIl6erqykOHDhWqzMbyjp/x7t07Xrx4kevXr+fYsWPZunVrli5dmlpaWnRwcGCfPn3o5eXFffv2cf78+TQyMuL06dOz3f5vv/2m8HgfR48epbm5eToxzCv37t1L8XD59ddf+fbt23RlTpw4wXLlytHV1ZXv37+Xa/vqQKEW3Vu3bqWkV//jjz/YuHFjhbWlTmnaw8LCOG/ePDo4ONDY2JhDhgzhiRMnGB8fr2rTVEJu4mdIJBK+evWKp0+f5qpVq+jh4cFmzZrR2NiYOjo6rFu3LgcMGMDFixfzr7/+4uPHj9PM7f/7779s2bIla9asydu3b2e73YsXLyrtC3zGjBls1qyZXNzHQkJC2LNnTxoaGnLu3Ln8+PFjujIfPnygm5sby5Yty+PHj+e5TXWl0Irux48faWVlxd9//52k1KHfxMQkzWqpPJFIJOzWrRuHDh2qkPqzavvWrVucPn06bWxsWKpUKY4aNYrnzp3L94t88iKj+BlJSUn877//ePToUfr4+NDd3Z3169ennp4eDQ0N2aRJEw4dOpQrVqzgyZMn+eLFi0wXehITE7lixQoaGhpy8eLFORK0N2/e0NzcnEeOHMn1+8wJiYmJbNWqFadMmZLrOm7cuEEnJyeamJhw4cKFGe7W3L9/P0uVKsWRI0cW+B2dhVJ0JRIJO3funG6roKenZ57+wLIiefFjy5YtCmsjGYlEwmvXrnHSpEm0srJiuXLlOGHCBF6+fDnFN1Pg/yQkJPDgwYPU1dXl6NGj2bdvX9aoUYM//fQTzc3N2bJlS44ePZq+vr48f/58rtwK7969y/r167NJkyY5/nJPSEhg8+bNOX369By3mxciIyNZunRpHjx4MEf3Xblyhe3bt2epUqW4bNmyDNcFXr9+za5du7JSpUq8ePGiPExWewql6C5atIh16tRJNycWFhZGMzMzhe7GSXZCDw4OlnvdiYmJvHDhAseMGcPSpUuzUqVKnDZtGm/cuJHv3WzkRWxsLIODg7l7927OmjWL3bt3Z9WqVSkWi2lpaclq1apRX1+fa9as4ZUrV+TisxofH8958+bR0NCQvr6+ufrSmzp1qsr8ii9fvkwjI6Ns7S48d+4cW7ZsyTJlynDNmjUZTqdJJBIGBATQ2NiYU6dOVYtpN2VR6ET33LlzNDEx4dOnT2Ver1+/Pg8dOqRQG7Zt20Zra2u5fKATEhJ4+vRpDhs2jKamprSzs+Ps2bMZGhpaqIX2y5cvDAoK4tatWzllyhR27tyZ1tbW1NTUTHFB+vXXX7ljxw7evHmT3759S7l38ODB7Natm1z67/r167S3t2e7du347NmzXNVx6NAhle+gW7FiBatXry7To0IikfDkyZNs3Lgxy5cvz02bNjEuLi7Duv777z+2bt2aDg4OvHnzpiLNVksKlei+evWKpUqVynSSfuPGjezSpYvCbcmLE3psbCyPHDnCgQMH0tDQkLVq1aK3t3e2grIXNJJTu2zcuJHjx49n27ZtWbZsWWppadHe3p69evXi3LlzuXfvXt69ezdTMUhGHvEzoqOjOWnSJBobG3P79u25FvDHjx/T2NhY5bEiJBIJe/ToQXd39zTnDh8+zLp167Jy5crctm1bpk+JSUlJXLlyJQ0MDOjt7V1oF24LjegmJCSwSZMmnDVrVqblPn/+nC4IjiJIdkL/7bffslU+Ojqaf/zxB11cXFiiRAk2aNCAS5cuLRT52ZJTu5w5c4Zr1qzhiBEj2KJFC5qamqakdnF1deXChQt56NChLFO7ZIe8xM84f/48ra2t2atXrzxtA08W/+XLl+e6Dnny+fNnVq5cmZs2beL+/ftZvXp12tnZcffu3Vn2d3h4OBs2bMhGjRrx3r17SrJYPSk0ojtx4kS2bt06Wx9GNzc3LlmyROE2JTuhZ7SA8PnzZ+7atYvdu3enrq4umzdvztWrV/Ply5cKt00VSCQSPn36lMePH+fSpUs5ePBgNmzYkPr6+ixZsiQbNWrEwYMHc9myZTx+/DifPXum0CmUnMbPiIqKooeHB83NzXO88CSLwYMHq1X838TERC5evJgaGhq0sbHhgQMHspyfjo+P5/z582lgYMDVq1cLi7gsJKL7559/skyZMjIdsWVx8eJFVq5cWSl/7EeOHKG5uXnKyPrDhw/csmULHR0dqaOjw7Zt23Ljxo1qHxErJySndjl48CAXLlzI/v37s1atWvz5559pZmbGFi1acOTIkVyzZg3Pnj3LiIgIlQlPduNnHDlyhKVLl+bgwYNl+qDmFH9/f1auXFkt3Kfi4+Pp7+9Pa2tr1q9fnxMnTqSVlVWW7zM54HqbNm0KxRNZdinwovvw4UMaGRnx6tWr2b5HIpGwYsWKSptHGzduHCtVqsQ2bdpQR0eHjo6O3Lp1q1w+vKokLi6OoaGh3Lt3L+fMmcOePXumSe3Srl07TpgwgZs2beLly5fV8v1mFT/j7du3dHFxYfny5fn333/Lpc3bt2+rReqn5JQ45cqVY7Nmzfj333+nfPkNHz6cXbp0kfllGB0dnS7gusD/KdCiGx0dzWrVqnH16tU5vnfhwoVpFg3kzcuXL7l69Wo2b96curq6NDY2ZufOndViZJNTklO7bN++ndOmTaOTkxMrVapETU1NVqxYkV26dOHUqVO5bds2Xr9+Pd/FcpAVP0MikXDXrl00NTXl+PHj5faekrNP79ixQy715Ybo6GiuXLmSFhYWbNOmjczpr9jYWNapU4eLFy9Ocz454Hr37t3zXbhPZVGgRXfAgAHs3bt3rr5pX716xRIlSsg1CM6TJ0/422+/sUGDBixRogT79u3LP//8k9HR0SlO6Ip2V8sLnz594pUrV+jn50dPT0+2b98+JbWLnZ0de/TowdmzZ3P37t0MCQlRaGwAZZM6fsbLly/p6OhIW1vbHD1BZYVEImGXLl04fPhwudWZE758+cIlS5bQ1NSUjo6OvHbtWqblnz59ShMTE54/fz7bAdcFCrDobtq0iTY2NnkSzU6dOnHz5s15suPBgwf09vZmrVq1aGhoyIEDB/LIkSMyBeny5cs0NjZWeYqbyMhInjt3jr6+vhw1ahRbtmzJUqVK8aeffmLNmjXZr18/LliwgAcOHOCDBw/UJrWLovntt99YtmxZGhoactasWXL/UlmyZInMTTuKJioqivPnz6exsTG7deuWkhInOxw/fpwlS5akhYWFzIDrAukpkKJ78+ZNGhoa5jl30p9//slGjRrl6B6JRMLQ0FDOnj2bdnZ2NDU1pYeHB0+fPp0tcVq+fDmrV6+u8B06EomEz58/58mTJ7l8+XIOHTqUjRs3poGBQYpLmru7O3/77TceO3aMT548KdQrz48ePWLz5s2pr6/P7t27y73+8+fP08TERKkLTu/fv+fMmTNpYGBAFxcX3r17N0f3JwdcL1GiBO3s7ArNl29eKXCi++HDB5YvX567du3Kc13JQXCy8itMzsw6bdo0VqpUiaVLl+aYMWN48eLFHPuLJjuhDxo0KC+mp5CYmMjHjx/z8OHDXLx4Md3c3FinTh3q6urSxMSEzZs35/Dhw7l69Wr+/ffffP36tbDwkYrExET+9ttvNDAwoI+PDz98+CD3+BmvX79mqVKleOzYMbnVmRkREREpKXEGDhyY4001EomEe/fupZmZGceMGcNPnz6xdevWnDRpkoIsLlgUKNFNSkpip06dOGrUKLnV6enpycmTJ8ts6/Lly5wwYQItLS1pZWXFSZMm8dq1a3kWrWQndH9/f0ZHR3PFihVZ7qSKj49nWFgY9+/fz3nz5rF37950cHCglpYWy5QpwzZt2nDcuHHcsGED//nnnwIZp1TehISEsE6dOmzWrBkfPnyYcj44OFhu8TOSs0/PnDkzz3VlxatXrzhu3Djq6+tz2LBhuQoP+erVKzo5OdHGxiaNd8/bt29ZpkwZHjhwQI4WF0wKlOh6e3uzXr162drqmV3Cw8NpamrKhIQEJiYm8ty5cxw1ahTNzc1pa2vLGTNm8Pbt23IfHYaGhlJfX59lypShSCRK+QOPjo7m7du3+fvvv3P69Ons2rUrbWxsKBaLWaFCBTo6OnLy5MncsmULg4KCFJINo6ATFxfH2bNn09DQkOvXr5c5rSKv+BmTJ0/O9qad3PL06dOUlDhjxozJVbZmiURCPz8/GhkZccaMGTLnna9evUojIyM+evRIHmYXWAqM6J45c4YmJia5DiqSEfHx8bS1tWWbNm1obGxMBwcHzps3L8/zxVmxc+dOFi9enACooaHBqlWr0srKimKxmFWqVGH37t05c+ZM7tq1i3fu3ClUUZoUSWBgIKtWrcqOHTtmKU55TeJ48ODBHG3aySmpU+JMnDgx1y5cOQm4vmrVKlarVi3DVEMCBUR0X758STMzM548eVIu9cXGxvLw4cN0c3NjyZIlWb58edra2irEq+Ddu3e8cOEC169fzzFjxrB169a0sLAgAIpEIgIgADZs2JD37t0rtEFCFM23b984YcIEmpiYcOfOndkS0pzGz0jNo0ePcrxpJ7uEh4ezf//+NDAw4PTp03OdJTgxMZHLly+ngYFBtgOuSyQS9urViwMGDMhVm4WBzES3KNSByEggIAAIDgaiogA9PcDeHhgwADAyQkJCAnr27Ilhw4ahVatWuW7m27dvOH78OPbv349jx47B3t4eXbt2xdy5c1GiRAmUKVMG2trauaqbJF6/fo3w8HCEhYWl/AwLC0N8fDxsbGxga2sLGxsbtG7dGjY2NjAwMMDatWvh7e2NL1++IDw8HJUqVZJ2CSIRgAAEIxhRiIIe9GAPewzAABjBKNd9UFg5e/YsBg8ejLp16yI0NBSGhobZuk9TUxN79+5F3bp1UadOHTRq1Chb98XExKBbt26YOXMm6tatmxfT0xASEoL58+fjzJkzGD16NB49eoQSJUrkqq6wsDAMGjQIxYoVw+XLl1GxYsVs3ScSibBx40bUqVMHfn5+cHd3z1X7hZaM1JjKGOkGBpJOTqRYLD2A/x9aWtJzTk5c7uLCtm3b5sqdKSoqijt27KCzszN1dXXZsmVL+vr6ykzGl5zvKjOSU7scOXKEPj4+HDhwIOvVq0c9PT0aGRmxadOmHDZsGFeuXMnTp0/z5cuXWY6ooqOjOXPmTFpYWDCQgXSiE8XfX0j10qIWxRTTiU4MZGCO+6Iw8unTJw4ZMoQWFhY8fPhwruv5MX5GVgwcOJC9evWS2zrA9evX2aVLF5qYmHDRokV52tUoj4DrpDQhgKGhYaGMl5sVUMvphbVrSW1tUiRKK7Y/HiIR44oW5ZccRAR7//49/f392bFjR+ro6LBDhw7cvHlzlo9g//zzDytVqkSJRMKEhATeu3ePf/75J+fPn08XFxfWqFGD2tratLCwYKtWrThmzBiuX7+eFy5ckMuc3VqupTa1KaIojdj++BJRRG1qcy3X5rnNgsyhQ4doYWHBoUOHyiWY/PTp09m8efMsH8H9/PzyvGknmcuXL7N9+/Y0Nzfn8uXL0wRizw1BQUG0t7dn+/bt5bI2smvXLpYvX14tY2qoEvUT3WTBzUxsfzy0taX3ZcCbN2+4bt06tmrVirq6unRycuKOHTuy/LDFxMTwzp073LVrF2fMmEEdHZ2Uba9WVlbs2LEjJ02aRH9/f167do1RUVHy7g2S/xfczMT2x5cgvLKJjIxk7969WaFCBZ49e1Zu9SYmJrJly5acOnVqhmWSs0/ndRH23Llz/OWXX1i2bFn6+vrmeRE1OjqaEydOzHPAdVmMGjWKjo6OhXpjzY+ol+gGBsoU3FUAawIsDtA1M+ENCkqp6sWLF1y5ciWbNm1KPT099urVi3v37pUZmCQ5tcuWLVs4ZcoUOjo60trammKxmDY2NuzatSunT5/O3r17s3PnzkpdmQ1kYMaCuxNEZRDaIMqDuJBeeIMYlHUjhQCJRMIdO3bQxMSEnp6eeR4VyiKz+BnJ2ad37tyZq7olEglPnDjBxo0b08rKin5+fnJZVD137hwrVKiQ54DrGREXF8d69epx4cKFcq87v6JeouvkJHNKYT/APwEOy0x0RSJ+bdOGS5YsYb169ViyZEm6urry0KFDKSOBDx8+8J9//uHGjRs5btw4tm3blmXKlKGWlhYdHBzYu3dvzps3j/v27WNYWFi6P+rXr1/LPQhOll1CJ9lTCidBlAFxBUQSiBffjx+mGpzprDRb1ZXnz5+zY8eOtLOzY2CgYue7ZcXPSM4+PXLkyBzXl5wSp06dOrSxseH27dvlst02KiqKw4YNk1vA9cx49uwZTUxM5PpkkZ9RH9GNiEi/YPbD8WtmogswtkgRjnVx4c6dO3ny5EmuXr2aI0aMYPPmzWliYkIdHR3WqVOHbm5uXLx4MQ8fPszHjx/nyDHd0dGRfn5+8n3vGRDBiHQLZimv+iA2ZT3NIKaYkSw4AdBzQlJSEtetW0dDQ0POnTtXrptmMmP58uWsUaNGypf9okWLWLdu3Ry1n5SUxH379tHBwYH29vbcs2eP3B7R5R1wPTucPHmSZmZmfPXqlVLaU2fUR3QXLcqz6MYXLcoZYjENDAzYuHFjDh06lMuXL+fJkyf5/PlzucxVHThwgA0bNpTDG86aRVwkW3QTQRQD4Q3CCoQ5iBEgotOLrha1uJiZe10URB48eMCmTZuybt26Sg8Gnhw/Y/DgwVlmn/6RxMRE7tixg7a2tqxVqxYPHjwoN7FVRMD1nDBnzhw2bty40Puaq4/ourhkuWCWlegSYLQCIkClJjkITnh4uELbIUkXusgev76EdNNETRCvQLwF0QDENNmj3X7sp3Bb1YWEhAQuWbKEBgYGXLZsmUK312bG58+faWVlxRIlSvDEiRNZlk+dEqdBgwY8duyY3Ba0FBVwPackJSWxbdu29PT0VEn76kJmoqvczRFRUXKpRismRi71ZESxYsXQv39/+Pv7Y9GiRQptKwoZ9InW95+jAJh9//d4AF4A5qcv/hEf5W6bOhIcHAx3d3fo6ekhMDAQ5cuXV5ktWlpa0NfXx+vXr2FiYpJhubi4OAQEBGDhwoWwtLTE+vXr0axZM4hEIrnY8fLlSwwfPhyPHz/GgQMH5LoZI6cUKVIE27dvR82aNdGgQQM4OTmpzBZ1pYhSW9PTk089+vryqScTBg4ciK1btyIhIUGh7eghgz7RB2ABIPXnMpPPqD4U3yeqJC4uDjNnzkTLli0xbNgwnDp1SqWCCwDTpk2DgYEB1q9fj27duiHqh0FFTEwMVq1ahQoVKuDAgQPYvn07zpw5g+bNm8tFcEli48aNcHBwQPXq1XHz5k2VCm4yBgYG2LNnD4YOHYqHDx+q2hz1I6MhMJU8p5sAMAbgFIB9v/87Qdb0gpYWmcWuMXnRsGFDhYexy3BOlyBmgKgFIgLEBxCNQEwvfHO6V65coa2tLTt37qw2qen/+OMPli1bNmVTTOokjqlT4nTu3Fkh3hTJAddr164tl/CTimDNmjW0t7dXiOueugO1mdPNxHthFpAS+CX5mCVLdMViUkmpyv38/Ojo6KjQNjL1XogH4QFCD4QJiFEgYgqP98LXr185duxYmpqacs+ePWoTeP3Bgwc0MjJKk18sNjaWNWvWZNu2bWlsbMzu3btnGa0rN/wYcF1V89nZQSKR0MXFha6urmrzf6cs1Ed0yQz9dLN1iESks/J8Ur98+cISJUoo3AUmQz/dbLxESSI2fKMcTwtlcvr0aVpaWrJfv365jqClCL59+0Z7e3uuWbMm5VxySpwSJUpQLBZz69atCmk7o4Dr6szXr19ZpUoVbtiwQdWmKBX1Et0MdqRl6/hhR5oyGDhwIBctWqTQNjLdkZbFSzNRk6YdTenm5lYgMkV8/PiR7u7uLFOmDI8ePapqc9IgkUjo5ubGPn36UCKRMCIigpMnT05JifPw4UMeO3aMpUqVkhlQKbekDri+YcOGfDdqvHfvHg0NDXnjxg1Vm6I01Et0SYXEXlAUly5dYsWKFRX+h56X2AufP3/mqFGjaGZmxn379inUTkVy4MABmpubc/jw4QqLcZEXNm7cSFtbWz58+DAlJY6Hh0e6RJMzZ85k06ZN5bKr7Nq1a6xatSo7derEFy9e5Lk+VbFnzx5aWloWmkzC6ie6ZI6ijKlKcEnp6KZSpUr8559/FN5WXqOMJUdJc3Z2zle7gt68ecMePXrQ2tqa58+fV7U5Mrlx4wZLlizJ3r17U19fn2PHjs1wUS8xMZGtW7eWmXcvu+Qm4Lq6M2bMGHbs2LFQBMZRT9ElpVMFzs7SxTEtrbRimxxP19lZ6VMKP7J48WKlRckPYhCd6UwxxdSiVhqxTY6n60znDIPcxMTEcNq0aTQyMqK/v79af1glEgm3bt1KY2NjTp48WW3Tv9y4cYM6Ojr86aefOGnSpGzF1H379i1Lly6dq5gHZ86coZWVFfv06aOwND+qIC4ujvXr1+eCBQtUbYrCUV/RTSYyUuoG1q8f2bGj9OfixUrzUsiK5CA4eQkcnVMiGcnFXMx+7MeO7Mh+7MfFXJxtL4Vbt26xevXqbNWqVa4ywiqap0+fsl27dqxWrRqvX7+uanNkEh4ezr59+7JYsWKsU6dOjhf0rly5kqMkjvIKuK7OPH/+nKampjxz5oyqTVEo6i+6+YDOnTtz06ZNqjYjR8THx9Pb25sGBgZcsWKFWrgXJSUlcc2aNTQ0NOT8+fPVco9+cHAwe/ToQSMjI7Zq1Yq1a9fOdSCdlStX0sHBIctRfHLA9WHDhskl4Lo6c+rUKZqZmeXrOeqsEERXDhw8eJANGjRQtRm54t69e2zUqBEbNGig8AzHmXH//n02btyY9evXV6kdGZGcEsfU1JSLFy/mkSNHaGpqmqt05skkJ3EcOHCgzOupA66fO3cu1+3kN+bNm8eGDRuq5ZeuPBBEVw4kJCTQ1NRULcUiOySPMA0MDOjl5aXUP/aEhAQuXLiQBgYGXLlypVqMuFNz+fJltmvXjubm5lyxYgWjo6P54sULuWWf/vLlC21sbNKEC00dcH3ixImFbtdWUlIS27dvz/Hjx6vaFIUgiK6cmDRpEidOnKhqM/LEkydP2LZtW6XNpd66dYs1atRQu7lliUTCs2fPskWLFixbtizXrVvH2NhYktJpmYYNG3Lu3Llyay85ieOtW7f47NkzdujQgXZ2dgxS8SKxKnn//j3LlSvHvXv3qtoUuSOIrpy4d+8eTUxM8v0jkTK8BtTViyI5JU6jRo1YoUIFbt68Od3/5/jx49muXTu5uzbt2LGDhoaGNDAwUGrAdXUmKCiIhoaGvH//vqpNkSuC6MqRRo0aKTwIjrJQlH/spUuXWLlyZTo7O8t1Z1ZekEgkPHToEOvUqUNbW1vu2LFD5uaFffv2sWzZsnLfepwccN3ExITNmzdXmy8hdWDdunWsWrWqymIAKwJBdOXI5s2b2alTJ1WbIVf+/PNPlipVih4eHnnaCfblyxe12xmXlJTEvXv3slq1aqxWrRr37t2b4Qj2/v37NDQ0lGtUsOSA64aGhly+fDmjo6NZt25dhW8tz09IJBL269eP/fr1KzBfRoLoyhFlBcFRNh8+fKC7uztLly7NI0eO5Pj+EydOsFy5cnR1dVWLGBCpU+LUrl2bhw4dyvQD/e3bN9rZ2dHX11duNty5c4e1atXiL7/8kiaJ5dOnT2liYlKovBWy4tu3b6xatSrXrVunalPkgiC6csbd3b3Apps+deoULS0t2bdv32zthnr//j3d3NxYtmxZHj9+XAkWZk58fDw3b95Ma2trNmrUiCdOnMhy9CSRSNi/f3/27dtXLiOt2NhYzpgxg0ZGRvTz85NZ54kTJ1iqVKkC9+WdF5KfNArC4qIgunLm8uXLSgmCoypSx7HdvXt3hu9z3759NDMz48iRI5W6W08WsbGxXLduHcuVK8cWLVrw7Nmz2f7/Wb9+PatUqSKXOcWcBFyfPXs2mzRpIpfAOAWFvXv3sly5cmrxtJQXBNGVMxKJhJUrV+bFixdVbYpCuXz5skwBef36Nbt27aq0QECZER0dzRUrVtDc3Jzt2rXjpUuXcnT/9evXaWhoyHv37uXJjtwEXE9KSmKbNm3yvRuivBk3bhzbt2+frwPjCKKrAJYsWUI3NzdVm6Fwkh+Vk2O5bt68mUZGRpw2bRpjYmJUZteXL1+4ePFimpqaskuXLrl6JH3//j0tLS3z7Ceal4Drb9++ZZkyZfjnn3/myYaCRLKftJeXl6pNyTWC6CqAN2/eUE9PT+WP1cri6NGj1NXV5c8//6zSYCyfPn2il5cXjYyM2KNHD965cydX9SQlJbFDhw4cO3Zsrm2RV8D1a9eu0cjIKN9kg1AGyTsCT58+rWpTcoUgugqiS5cu3Lhxo6rNUChJSUlcuXJlyvbh5AA6S5cuVep23vfv33PGjBk0MDBgv379GB4enqf6vLy82KBBg1xvdPnzzz9TAq7L44u3MCdxzIi///47z7EvVIUgugri0KFDrF+/vqrNUBhhYWFs0KABGzVqlGbO88GDB2zSpAnr1q3L0NBQhdqQOiXOoEGDsh0mMTNOnz5NU1PTXEW5evPmDbt3786KFSvywoULebYlGYlEwj59+tDNza3ALtDmhgULFrB+/fr5bveeILoKIiEhgWZmZvk2CE5GxMfHc/78+TQwMODq1atlLmgkJSXR19eXBgYGnDNnjtw/FC9fvuTYsWOpr6/P4cOH8+nTp3Kp98WLFzQ1Nc3xY2vqrdNTpkxRyNbpr1+/0tbWtsA/PeWEpKQkduzYkWPGjFG1KTlCEF0FMnnyZHp6eqraDLlx48YNOjg4sE2bNulyf8kidfAWeezkevLkCT08PKivr89x48Zl6XaVE+Lj49mgQYMcL9AoM+B6eHh4oUvimBUfPnygpaUld+/erWpTso0gugrk/v37BSIITnR0NKdMmUJjY2Nu2bIlR4+4qcMUenp65mpe8tGjR3R3d2fJkiU5efJkRkRE5LiOrBg7diw7dOiQbVckVQVc3717N8uXL19okjhmhxs3btDQ0DDPc/nKQhBdBdO4ceN87fJz8eJFVqxYkd27d89W/q+MiIyMZK9evWhlZcWzZ89m656wsDD27duXBgYGnDlzpsKc4vfs2ZMjp/vkgOsNGjRQyQd99OjR7NSpU772VZU3GzZskNsmFkUjiK6C8ff3Z8eOHVVtRo75/PkzR4wYwVKlSvGPP/6QW70HDx6kubk5hwwZkmHqmTt37rB79+40MjLi/PnzFZqi5t69e9neXpoccN3Q0JArV65UmeglJ3H09vZWSfvqiEQioaurK11cXNR+sVEQXQXz9etXlihRQq7zj4rm6NGjLFOmDAcOHKiQx9hPnz5x8ODB6ZIsBgUFsXPnzjQ1NeWSJUv45csXubedmq9fv7JKlSrZCqSibgHXC0sSx5zw7ds32tvbc+3atao2JVME0VUCgwYNyhejknfv3rFfv34sV64cT506pfD2/v77b5YvX56tWrViixYtaGFhwZUrVyol3bpEImHfvn3Zv3//TEdG6hpwnSRPnjxJMzOzfPWFrmgePHhAIyMjuYbglDeC6CqBK1eu0NraWq0+sKmRSCTcs2cPTU1NOWbMGIWPMJPbPHPmDJs2bUpdXV3q6urmeJEuL/j6+tLOzi7ThT11DLj+I3PnzmWjRo0YFxfHjRs38urVq6o2SeXs378/Jdj8sWPH1CZ+czKC6CoBiURCGxsbuTrMy4tXr16xS5cutLGx4eXLlxXenkQi4fHjx9mwYUNaW1vT39+f8fHxvHbtGqtWrcqOHTsqfJdRUFAQjYyMMkwDo44B1zMiKSmJrVq1opWVFYsUKcIBAwao2iS1YNy4cbS0tGTRokVpb2+vanPSIIiukvDx8aGrq6uqzUhBIpHQz8+PRkZGnDFjRkriRUW2d/DgQdauXZu2trb8/fff020VjouL4+zZs2loaMj169crZKHq3bt3LFu2LPfv3y/zenLAdTc3t3wRQvDevXssXbo0ARAAK1eurGqTVE5kZCTr1avHIkWKEAA1NTXVytNDEF0lERERQT09vTylvJEX//77L1u2bMmaNWvy9u3bCm0rdUocBwcH7tu3L8sPQEhICOvUqcNmzZqlBHq5cuUK169fn2db2rVrJzO1d+qA6ydOnMhTO8pk2rRp1NDQSBHdokWLFvoYvL///jtFIlFKv4jFYrVKbimIrhJxcnLihg0bVNZ+YmIily9fTgMDAy5evFihH86EhARu376dNjY2rFOnDg8fPpyj+drExET+9ttvNDAw4Pz582lsbExNTc1Mo21FMIKLuIgudGFHdqQLXbiIixjJSJL/n//8cSNDcsD1UaNGKWU+W95cvXqVzZs3Z7FixQggjftbVn1SUHn48CH79OnD4sWLEwBXr16dci0igly0iHRxITt2lP5ctIiMVFKXCKKrRA4fPsx69eqppO27d++yXr16bNKkiUK/9ePj4+nn58cKFSpkOyVOZjx69IilSpWiSCRikSJF2KJFi3RlAhlIJzpR/P2FVC8talFMMRtFNKJBWwO1DbguD27dusWqVavyxIkT2eoTJzoxkOq7yi8Pnj59yqZNm3LRokUMDCSdnEixWHoA/z+0tKTnnJxIRTs+CKKrRJKD4Ny9e1dpbcbFxXHu3Lk0NDSkr6+vwua2YmNj6evry7Jly/KXX36RW2LFK1eupHl8LlasGA8ePJhyfS3XUpvaFFGURlh+fImSRNRM1ORarqVEIqG/v79aBFxXBNnuE4qoTW2upXr7tcqDtWtJbW1SJEortj8eIpG0nCJdfQXRVTJTpkzhhAkTlNJWUFAQ7e3t2b59ez579kwhbXz79o3Lly+nubk527dvL3cPiGPHjrFGjRo0MTFh0aJFCYC6urok/y8umQnLjy+tJC1WXlGZ1atX561bt+RqqzqQmz4p6MKbLLiZie2PhyKFVxBdJfPgwQMaGxsrNAZodHQ0J06cSGNjY27fvl0hvq+pU+I4OTkpPMIWKfWAiIiI4P379xnIQBZbVYyoCaI4CNdUMhIHoiuIstLRMc6mFZli8cV4JeGKwu1VNoEMlAruKsjuF4I4DaISCC0QzUA8+b/wBjH/Z9r9kcDArAT3AQFNAi4yhVcRyYczE90iEJA71tbWqFy5Mo4cOaKQ+s+fPw97e3s8f/4cISEhcHFxgUgkklv9UVFR8PLyQvny5XHjxg2cPHkSf/zxB2rWrCm3NjJCJBLB2NgYFStWhDe8kVAqAZgOYKCMwo0AbAdgmv5SYrFELCm6RLHGqgBveCMGMUApyO6XdwCcAcwD8AFALQA9pZdiEANveCvPWCXh7Q3ExGRWYgSA2jKvxMRI71cqGakxhZFunggICGCHDh3kWmdUVBSHDRtGc3PzNHOe8uLdu3ecPn06DQwM2L9//zxnyM0LEYxIuzj0q4wRXfLLPP1IFwTFFBeoFfx0fSKrX9aDqJ/q968gxCDC83efvHnzhr///ns6r5SIiPQLZmmPnQS6E5glc6QLSO+Xt1cDhJGu8unWrRsuX76Mly9fyqW+I0eOoGrVqkhKSkJoaCgcHR3lUi8AREZGYvLkyahYsSLevHmDa9euYcuWLahUqZLc2sgpAQjIcx0iiORSj7qQrfdyF0C1VL//BMDq+3nk3z65cOEC+vbtC3Nzc2zcuBEJCQkAgICAzO76DGAmgKWZ1i0SZVWPfCmqvKYKFz/99BO6deuGrVu3YurUqbmu5927dxg7diyuXLmCgIAAtGjRQm42vnz5EkuWLMHWrVvRp08f3Lp1C2XKlJFb/XkhGMGIRWye6ohBDEIQIieLVE+2+uQrAKMfzukB+CL9ZwxisP3OdkQfiFaAhYrj9u3b0NDQwNu3bzFixAiMHTsWs2bNQnDwJMRm2CUzALgDsMi07pgYIESJfybCSFeBuLu7Y/PmzdIVyxxCErt27ULVqlVhYmKC4OBguQnu06dP4eHhATs7O2hoaCA0NBSrV69WG8EFgChEyaWej/gol3rUgWz1yc+QDvBS8xmAzv9/jRHHQCKR5Kvj6dOnKaPbpKSklCMqwy65DeA0gHHZ6tuPSvwzEUa6CqROnTooXrw4Ll68iCZNmmT7vpcvX2L48OF4/PgxDh48iLp168rFnkePHsHb2xsHDhzAkCFDcP/+fRgZ/TgsUg/0oCeXevShL5d61IFs9UkVAFtS/f4NwOPv579Tr1I9zJkzR77GKZCEhAS8efMGt27dAgBIJBLExcXB398fdepk9BR5DsATAMkDia8AkgCEAbiZrrS+Ev9MhJGuAhGJRHB3d4efn1+2ypPExo0b4eDggOrVq+PmzZtyEdzw8HD07dsX9erVQ+nSpfHw4UN4e3urreACgD3sIYYYSAQQC+nnJen7vxO/F4r7/jsAxH//d6qHCi1owQ52yjJZ4aT0CZBxvzgBCAWw//u5uQDsAVSW3qbOfRITE4M7d+5g586dmDFjBrp16wZbW1vo6Ojg6NGjKeWKFy8OGxsb/PXXX7C3B8RiWbUNgfTb5vb3YxiADgBOpCuppQXYKbNLMlpho+C9IBeyGwTn0aNHbN68OWvXrs3g4GC5tH379m12796dxsbGXLBggUJT4sibCEZQU6JJzELKTrWUY9b3lfmyMq79V0i8FzLrl1Pf/XTFIJqqX598/vyZ165do7+/PydNmsSOHTvSysqKmpqatLW1Zbdu3Thz5kzu3LmTd+7cYUxMDCUSCTU1NamlpcVZs2alRK/L2nsh+VAf7wVBdJWAs7NzhtGzUgd98fHxSRcKMTcEBQXR0dGRZmZm9PHxyReJ/FKTHHBd84gmkZTxLqvMXiKK6ExnVb8VueNEpyy3/qpLn7x7944XLlzg+vXrOWbMGLZu3ZoWFhbU1tZm9erV6eLiQi8vL/7xxx8MDw/PMtvyvHnzZO6GdHLKeutvZluCnRXQJYLoqpi//vqLdevWTXdeVnjDvPDPP/+wbdu2tLCw4KpVq5SSEkfepA64vunOphxvd01+FdjdV8k70tSkTyQSCV++fMnTp09z5cqV9PDwYNOmTWlsbExdXV3Wq1ePAwYM4JIlS/jXX3/x33//lXtskKx3pGV8qGJHmiC6SiAhIYGlSpViaGgoSfkG8pZIJPz777/ZvHlzlitXjuvXr1d4sHJFkFHAdSHOQHpU0SdJSUn877//eOTIEfr4+HDgwIGsX78+9fT0aGRkxCZNmnDYsGFcsWIFT506xRcvXig1dZUQe0EgHVOnTuX48ePllrJGIpHw2LFjbNCgAStWrMiAgIAsH8/UlcePH/OXX37JMOC6EFErPYrqk4SEBN67d49//vkn58+fTxcXF9aoUYPa2to0Nzdnq1atOHr0aK5bt44XLlzg27dvFfxOs48QZUwgDcHBwdTS0qKJiQl37tyZ61GARCLhgQMHWKtWLVapUkVmSpz8QmJiIpctW5atgOtBDKIznSmmmFrUSiMsybFjnelcIKcUMiIvfRIbG8vg4GDu2rWLM2fOZPfu3VmlShWKxWKWL1+eHTp04MSJE+nv78+rV6/mm0XYoCDpHK1YLI2fm1psk+PpOjsrZkohNZmJrkh6XTa1atXi9evXFeY5UVg4e/YsBg8ejC9fvmDRokVwc3PLcR0SiQT79++Hl5cXNDQ0MH36dHTp0gVFiuRPr7+wsDC4u7ujePHi2LhxIypWrJit+97iLQIQgBCE4CM+Qh/6sIMd3OAGo3RbsQoHmfWJ1lct3Lt3D2FhYQgPD0/5+ezZM5QvXx42NjawtbVN+VmxYkVoa2ur+i3lmbdvpVt7Q0KkGx/09aVuYW5ugDI8JUUi0Q2StWReE0RXcURFRWHixIk4duwYfH198eHDB+zevTtH0ccSExOxa9cuLFiwALq6upgxYwbat28v16hiyiQ+Ph6LFi3CypUrMW/ePAwZMiTffnGoEx8/fkwnrGFhYXj79i0qVqyYRlhtbGxQoUIFFC9eXNVmF1gyE11hR5qCOHz4MIYPH44OHTogNDQUenp6iI6OxtixY/Hy5UuYm5tnen98fDy2b9+OBQsWoFSpUlixYgVatmyZb8UWAK5fvw53d3dYWFjg5s2bKF26tKpNyleQRERERDphDQ8Px9evX9MIa/PmzWFra4ty5cpBQ0ND1aYLpEIQXTnz9u1bjB49GkFBQdi2bRuaNWuWck1bWxvdu3fHli1bMG3aNJn3x8bGwt/fH4sWLYK1tTU2b96coy3E6kh0dDRmz56NLVu2YOnSpejTp0++/vJQNCTx/PlzmSNXkUgEW1vbFIF1dHSEra0tzM3NhT7NJwiiKydIYufOnRg/fjz69esHPz8/mXNj7u7u6NOnD6ZMmZLmsTo6OhobNmzAkiVLUL16dezatQv16tVT5ltQCOfPn8egQYNQq1YthISEwNjYWNUmqQ1JSUn4999/UwQ1WVzv3bsHHR2dFHGtUaMG+vbtCxsbGxgZGQnims8RRFcOPH/+HB4eHnj27BkOHz6M2rVlR6kHgNq1a0MsFuPixYto2rQpvnz5Al9fXyxduhQNGjTA4cOHUaNGDSVarxg+f/6MyZMn4/Dhw1i7dq1c4//mN+Lj4/Hw4cM0whoWFoaHDx/C1NQ0ZdTarFkzeHh4wMbGBiVKlFC12QIKQhDdPCCRSLBhwwbMmDEDo0ePxh9//JHl4kRyEBxfX19cuHABq1atwi+//ILTp0+jatWqSrJcsRw5cgQeHh5o27YtQkNDC42AREdHy/QUePLkCcqVK5cy39qxY0dMmjQJlSpVwk8//aRqswWUjCC6ueThw4cYPHgwYmNjce7cOVSpUiXrmwC8f/8ez58/x549e9CrVy9cvHhRpRka5IkiA66rE58+fUJ4eHi6+dY3b97A2to6ZeTap08f2NjYwNraGpqamqo2W0BNEEQ3hyQmJmLZsmVYtGgRpk+fjlGjRmVrdTgiIgK//fYb/Pz80LVrV7Ru3RpNmzYtEIJLErt378bYsWPh4uKC4ODgAjGCe/v2bbopgfDwcERFRcHGxiZl5Dp06FDY2NjA0tISRYsKHymBzBH+QnJAcHAw3N3doaenh8DAQJQvXz7Le16+fInFixdj27ZtcHFxwe3bt1G6dGkcPXoUc+bMwdChQ5VgueJ4+fIlPDw88O+//8o14LqyIImXL1/K9BRISkpKWcyytbVF+/btYWtrCwsLC8G3WCDXCKKbDeLi4jB//nz4+vpi4cKFGDhwYJYryE+ePMGiRYuwe/duDBw4EHfv3oWZmVnK9TZt2mDIkCEIDQ3Nl3O5JLFp0yZMmzYNI0aMwL59+9Ta2T4pKQlPnjyR6eOqra2dIqz29vbo1asXbGxsYGJiIngKCMgdQXSz4OrVq3B3d4e1tTXu3LmDUqVKZVr+0aNHWLBgAQ4ePIihQ4dmmBJHQ0MDrq6u2Lx5M5YuzTxbqbrx+PFjDB48GF+/fsWZM2dgp9Sw+5mTkJCAR48epRHWsLAwPHjwAEZGRinzrQ0bNsSgQYNgY2ODkiVLqtpsgUKEsA04A759+4bp06dj165dWLlyJbp165bpqCcsLAwLFizAiRMnMHLkSIwaNSrLD/Pjx49Rv359vHjxQq1HickkJSVhxYoVWLBgAaZOnYqxY8eqbLdTTEwM7t+/n27U+u+//6JMmTLpYgpUrlwZP//8s0psFSh8CNuAc8jp06cxZMgQNGrUCKGhoTAwMMiw7O3btzF//nxcuHABY8eOxdq1a6Grq5utdqysrFClShUcPnwYXbt2lZf5CiE0NBTu7u7Q1tbG1atXUaFCBaW0+/nz5xQ3rNQC++rVK1hZWaUIa48ePWBrawtra2uIZSfNEhBQCwTRTcWnT58wYcIEnD59GuvWrUO7du0yLBsUFIR58+bh+vXr8PT0REBAQK5W7AcOHJji0aCOxMfHY8GCBVizZg3mz5+PQYMGKWQR6d27dzLnWz98+IDKlSunjFjd3d1hY2MDKysrwVNAIF8i/NV+58CBAxgxYgS6dOmCkJCQDEer//zzD7y8vBAWFobJkydj9+7d0NLSynW7Xbt2xZgxY/DixQtYWFjkuh5FEBgYiIEDB8LS0hK3bt3Ks30k8fr1a5meAvHx8WmmA1q3bg1bW1uUKVNG8BQQKFAUetGNiIjAqFGjcPv2bezcuVNmcBmSOHv2LObNm4enT59i6tSpOHTokFzmYbW1tdGjRw9s2bIFv/76a57rkwfR0dGYMWMGduzYgeXLl6Nnz545WsWXSCR4+vSpzJGrpqZmirDa2tqiW7dusLGxgZmZmeApIFAoKLSiSxLbt2+Hp6cnBgwYgC1btqQbsZLE8ePH4eXlhXfv3uHXX39F7969UaxYMbna4u7ujl69emHq1KkqH9WdPXsWgwYNQr169RAaGgpDQ8MMyyYmJuLx48fpPAXu37+PkiVLpoxc69atiwEDBsDGxibT+XEBgcJAoRTdZ8+eYejQoXj9+jWOHj2KmjVrprkukUhw+PBheHl5ISYmBtOnT0f37t0VtlJfq1YtaGtr48KFC2lCQSqTHwOud+zYMeVabGwsHjx4kC4a1uPHj2Fubp4ycm3VqhVGjx6NypUrZ3sxUUCgsFGoRFcikcDX1xezZs3C+PHjMXHixDSj1qSkJOzfvx/z58+HhoYGZsyYgc6dOyt89JkcBMfPz08lonvo0CEMHz4cbdq0wdatW/H8+XNMmTIlRWRfvHgBS0vLlCkBZ2fnlNQueZnPFhAojBQaP9379+9j0KBBSEpKgp+fH2xsbFKuJSYmYufOnViwYAH09PRUkhLn3bt3qFChAp4+fQo9PT2FtvXhwweEh4fj6tWr2LBhA54/fw4dHR18/fo1w9Qu8p5SERAoyBRqP93ExET4+PjAx8cHs2bNwvDhw1OmCeLj47Ft2zZ4e3vD3Nw8JcyiKhZ0DA0N0apVK+zcuRNDhw7Fly9f8vSInpzaRZanwLdv32BiYoKXL1+iTp06mD9/PmrUqIGyZcsKqV0EBBRMgRbd27dvw93dHQYGBrh+/TrKlSsHQDpHuXnzZixatAiVKlVSm5Q4jo6OmDJlCmbPng1DQ0OEhoZmeY9EIsHz58/TCWtYWBg0NDTSpHbp0qULSpQogTlz5uDZs2e4cOFCpgHXBQQE5E+BFN3Y2FjMmzcPGzduxOLFi+Hq6gqRSITo6GisX78ePj4+qFGjBnbv3q02KXFcXV2xe/duxMXFAUA6n9jExET8999/6YT13r170NPTSxHXmjVrol+/fimpXZLJTcB1AQEB+VPgRPfSpUsYNGgQbG1tcefOHZiZmeHLly9Yu3Ytli1bhoYNG+Kvv/5C9erVVW1qGlq0aIG9e/em/C4SiTBnzpwUkX348CHMzMxSRq3NmzfH8OHDYWNjk+UccG4DrgsICMifAiO6X79+xbRp07Bv3z6sWrUKXbt2xadPnzB37lysWrUKrVq1wt9//602gvPt2zfcu3cvzbSAvr4+YmJiAEgXuxISElKmHCpVqiQz0WVm5DbguoCAgOIoEKJ78uRJDBkyBM2aNUNoaCgkEgmmT5+OdevWoVOnTrh06RIqVqyoEtuSU7v8uKAVERGRJrWLi4sLvLy8EBkZiZYtW+KXX36Bl5dXrtu9c+cO3N3dUaJEiWwHXBcQEFA86iG6kZFAQAAQHAxERQF6eoC9PTBgACAjFm0yHz58wIQJE3D27FmsX78e1apVg7e3N/z8/NC9e3cEBQXB0tJS4eaTTEnt8qPAfvnyJU1ql+Rsr5aWljJHnVWqVMG1a9dQtFRRLMZiBCMYUYiCHvRgD3sMwAAYIeM+iYuLg5eXF9atW5ftgOsCAgJKhGSGR82aNalQAgNJJydSLJYewP8PLS3pOScnabkf2LdvH83MzDhy5EiGh4dz9OjR1NfX56hRo/js2TOFmCuRSPjs2TOeOHGCy5Yt45AhQ9ioUSOWLFmS+vr6bNSoEQcPHsxly5bx+PHjfPbsGSUSSY7aCGQgnehE8fcXUr20qEUxxXSiEwOZvk8uX75MGxsbdu7cmS9fvpTX2xYQEMghAK4zA11VneiuXUtqa5MiUVqx/fEQiaTl1q4lSb5+/Zpdu3ZlpUqVuHv3bg4dOpT6+vqcMGECX79+LRfTEhMT+ejRIx46dIiLFi2iq6sra9euTR0dHZqamrJFixYcOXIk16xZw7Nnz/LNmzc5FldZrOVaalObIorSiO2PLxFF1KY211LaJ1+/fuWYMWNoamrK3bt3y8UWAQGB3JOZ6KpmesHXF/D0BKKjsy5LSst5euJaYCA6HTmCrl27onbt2vDw8MCwYcMyTImTFfHx8elSu4SHh+PBgwcwNjZOmW9t3LgxhgwZAhsbG+jr6+fiDWeNL3zhCU9EI+s+IYhoRMMTnnj44CEOtD2QrYDrAgICqkf524CDgoBmzdIIbhyA4QBOA/gAwAqAN4AfQ4jHFS2KibVrY+fDhxg1ahRGjRqVLRFMndoltcA+efJEZmqXSpUqKTW1SxCC0AzN0gtuOIARAG4AMAKwBIBT2iLFEophSeASjGk4Rim2CggIZI16bQP29ga+u0UlkwigNIDzAMoAOAqgB4AQAOVSlSuelISRX77A6/FjmVtkP3/+LNNT4NWrV6hQoULKBoKePXumpHbR1NRU0BvNPt7wRgzS9gkSAXQGMAzAKUg7pxOAWwBSOWIkFkvEhYYXMAaC6AoI5AeUO9KNjATKlgViY7Msag9gFoB0SWzEYry/dQt3IyPTCeynT59QuXLldAFbypcvr7apXSIRibIoi1j80CehAOoB+AIg2fmgNYC6AOalLSqGGM/wLFOvBgEBAeWhPiPdgIBsFYsA8ACArG0MCYmJWF69Os7UqJEirG3btoWtrS1Kly6t8iDgOSUAAdkvTEjF+AdEECEAAZiIifIyS0BAQEEoV3SDg7Mc5SYAcAHgCqCyjOvFEhMxt1cvzNu2TQEGKp9gBKcf5QJAJQDGkM7jjgNwFtIphubpi8YgBiEIUaSZAgICckK5w8KoqEwvSwD0A1AcwOpMyok+fZKfTSomChn0STEABwAcAWAK4DdIJ7ozyA35ER8VYJ2AgIC8Ue5IN5PALATgDunUwlFINSdDFOS2pQr0kEmwGntIR7fJNID0EUAG+ig4fSIgUJBR7kjX3h4Qi2Ve8oDUQ+owgEwTwGhpAXZ28rdNRdjDHmLI7hMEA4gFEA3AB8BrAG7pi2lBC3YoOH0iIFCQUa7ournJPP0UwHoAtyF9kv75+7FDVmEyw3ryI26yVDSZbQDMIJ3b/RtS1zEZHm4EM69HQEBAbVCu6BobA+3aAT8EYCkL6fRCLICvqQ6XH+8XiYD27TMNgpPfMIYx2qEdRJARlGYJgI+QdsYxABXSFxFBhPZoL7iLCQjkE5TvXzV1qnSKIDdoaUnvL2BMxVRoZT6pkiFa0MJUFLw+ERAoqChfdGvXBnx8gBwG5Ia2tvS+WjL9jfM1tVEbPvCBNnLWJ9rQhg98UAsFr08EBAoqqtmm5eEh/enpKd0SnMmuOIhE0hGuj8//7yuAeED63jzhiRjEgMi4T0QQQQta8IFPyn0CAgL5A9Vt3/LwAM6fB5ycpB4NP045aGlJzzs5ScsVYMFNxgMeOI/zcIITxBCnm3LQghbEEMMJTjiP84LgCgjkQ5QfZUwWb99KtwiHhAAfP0r9cO3spF4KBWjRLCe8xVsEIAAhCMFHfIQ+9GEHO7jBTVg0ExBQczKLvaAeoisgICBQgMhMdPNXdBgBAQGBfI4gugICAgJKRBBdAQEBASUiiK6AgICAEhFEV0BAQECJCKIrICAgoEQE0RUQEBBQIoLoCggICCiRTDdHiESit5CGuxUQEBAQyD5lScrcOpqp6AoICAgIyBdhekFAQEBAiQiiKyAgIKBEBNEVEBAQUCKC6AoICAgoEUF0BQQEBJTI/wDMoQMqNIJ1VgAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "visualization.genome_graph(parent2)\n", + "visualization.genome_table(parent2)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "parent1.fitness = 2\n", + "parent2.fitness = 2\n", + "\n", + "child = crossover(parent1, parent2)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+-------+-------+-------+-------+\n", + "| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 19 | 20 | 21 | 22 |\n", + "| 0->3 | 0->4 | 1->3 | 1->4 | 2->3 | 2->4 | 1->5 | 5->4 | 0->6 | 6->4 | 5->7 | 7->4 | 6->8 | 8->4 | 0->9 | 9->3 | 1->7 | 2->8 | 10->8 | 7->10 | 10->4 | 6->11 |\n", + "| DIS | DIS | | DIS | | | | DIS | | DIS | | | DIS | | | | | | | | | |\n", + "+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+-------+-------+-------+-------+\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "visualization.genome_table(child)\n", + "visualization.genome_graph(child)" ] }, { @@ -180,6 +286,170 @@ "Die Fitness wird immer relativ zur Spezies berechnet, sodass Spezien erhalten bleiben und die stärkste Spezies nicht alle anderen Spezien verdrängt.\n", "TODO: Zwei Spezien - eine große, eine kleine - mitsamt Fitnesswerten. Zeigen wer rausfliegt und wer nicht" ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "reset_innovation_numbers()" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "# Creating example data \n", + "\n", + "g1 = Genome.new(3, 2) # baseline\n", + "\n", + "for i in range(8):\n", + " mutate(g1)\n", + "\n", + "g2 = Genome.copy(g1) # lot of disjoint\n", + "\n", + "mutate(g2) # disjoint\n", + "mutate(g2) # disjoint\n", + "mutate(g2) # disjoint\n", + "mutate(g2) # disjoint\n", + "mutate(g1)\n", + "g3 = Genome.copy(g1) # lot of excess\n", + "mutate(g3) # excess\n", + "mutate(g3) # excess\n", + "mutate(g3) # excess\n", + "mutate(g3) # excess\n", + "\n", + "# g1 vs g2 = 4-8 disjoint + 1-2 excess\n", + "# g1 vs g3 = 0 disjoint + 4-8 excess" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "visualization.genome_graph(g1)" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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18fX15eBAweydOlSatSoUWT3T05ONlpT4NKlS7i4uHD58mW6devGyy+/jKenJ+7u7gXKdFAoFP9QbEQ3KyuLESNGEBMTw88//0zFihUtbdJDSUlJYd++fYZQQWRkJB4eHvj5+fHaa6+xdu3aImk7c+vWLaOZAvHx8bi7uxs81sGDB+Pl5YWrqysTJkwgPj6etWvXmtwehaIkUSxENzMzkyFDhnDt2jW2bdtmteXy7ty5w969ew3hgqioKJo1a4avry9vv/027du3N9nX8uzWLsYyBVJSUnKEBDp16oSXlxcuLi5GMxt27drFpk2bTNJ6R6Eo6di86GZkZDBgwAASExP58ccfrerr7s2bNw1tZ8LDwzl16hStW7fGz8+PGTNm0LZt28fuvKrT6bh48aLRTIHSpUvnKNjSs2dPPD09qV27doEX2xITExk2bBjLli2z6fi4QmEt2PRC2r179+jbty8ZGRls3LjR4juRrl69miOz4MKFC7Rr186w8NWqVatHrquamZnJX3/9lUtYT548iaOjY56tXR6XYcOGUbZsWZYsWfLY11IoSgrFciEtLS2Nl156CTs7OzZv3myRdtIXLlzIkSN748YNfHx88PX1JTg4mObNmxe6vuq9e/c4c+ZMDmE9ceIEZ86coWbNmgZB9ff357XXXsPT07PIFgy3bNny0NY7CoWicNikp5uSkkLPnj154oknWLVqlVm2g4oIZ8+eNQhseHg4aWlpudrOFHQjwt27dzl58mSusEBsbGyu1i5eXl64u7s/diiiMMTHx9OsWbMcrXcUCkXBKFaebnJyMj169KBOnTqsXLmyyCr163Q6oqOjc3iyZcqUMQjspEmTcHNze2hsNLu1y4MLWteuXcPNzc0grgMGDDC0drGE134/IsLo0aMZMGCAElyFwsRYh+jGxUFICERFQWIiODqCtzcMHQr3xSXv3LnD888/T+PGjVm2bJlJmxlmZWXxxx9/GOKxv/76K5UrV8bX15eAgADDtldjIisihtYuDwpsUlISnp6eBq/11VdfNbR2sVQzxjjiCCGEKKJIJBFHHPHGm6EMxQkn1q5dy8mTJ1m9erVF7FMoijOWDS9ERsKsWbBtm/7PaWn/fKbVggg89xy89x63Gzeme/fuNG/enK+++uqx6wmkp6dz6NAhgxf722+/Ubt2bUMdWV9fX2rXrp3jHBHh0qVLRjMFRCRXzywvLy/q1KljNTUFIolkFrPYhn6+0/hnvrVoEYSuWV2JeC6CsNlhtGjRwlKmKhQ2jXU2ply8GCZMgNRUvbjmhUaDaLV86uzMlRdeYP78+Y8kYqmpqTnazhw4cABXV1dDuMDHx8ew2p/d2sVYpkD58uVziaunpyfOzs5WI67GWMxiJjCBVFIR8p5vjWiwEzvmlZrHaEab0UKFovhgfTHdbMFNSXn4WBE0KSlMuHqVUh4eBRa2pKQkfvvtN0O44MiRIzRp0gRfX1/eeust2rdvj4ODg6G1y9dff20Q2dOnT+Ps7GwQVB8fH0aOHImnp2eOVjW2QrbgpvDw+RaNkKZJYwITAJTwKhQmxvyebmQk+PvnENx7wGvATuAW0AiYBTz34LkODhAeDq1y/wJJSEhgz549hnBBdHQ0LVq0wM/PjzZt2vDEE0/k8l7Pnz9PvXr1cuW3uru7F5vWLpFE4o9/bsE9AYwBDgFOwGdAYM4hDjgQTjitMPoLW6FQ5IF1hReCgiA0NEdI4S76n/lgoB7wE9APOAbUz2GtBgIDYdMmrl+/nmO317lz52jVqhVubm5UqVKF9PR0Tp8+zYkTJ7hy5Qqurq65QgJubm6PvFnBVggiiFBCc4YUMgEv4FVgLBAO9ACOAG7/DNOgIZBANrHJjBYrFLaP9YhuXBy4uORcMMsDb+BD4KUH3s8sU4b2desSHR9PgwYNqFSpEunp6Vy+fJnExEQ8PDxyLGR5enrSsGHDIkstsxbWrFmDi4sLHTp0MLwXRxwuuORYMAPgT6AtkARkR2u6Am2A6TmH2mNPLLE48fi72xSKkoL1xHRDQgo07DpwGnjSyGdZIjx7+TKlW7bMtaBVt27dEtvaZerUqZw/f54WLVowZ84cOnToQAghBb+AoBfjB9CgIYQQJjLRVKYqFCUa84puVNRDvdwMYAAwBPAw8rldVhYvurqS9Hdc9/z585w/f55t2WlnJZS4uDgyMjLYv38/HTt2xMnJibZn25LmYGS+3QFn9DGd8cBu9CGGjrmHppLKMY4VpekKRYnCvKKbmJjvxzpgEFAOWJjPuGplyuDq6mpCw2yf7F1s2Z5+vXr1SC2banxwWSAUeAP4BGgF9AbyCG8nkGBSWxWKkox5RTefwiwCDEcfWvgJvS7kRcMWLXjzzTdNa5uNs2jRIhISEujfvz/Tpk3DxcWFgQzM+wRv9N5tNu3Qf70wQhVsL01OobBWzBsA9faGPMovjkafxfQDkG9FXK0WmjY1vW02ztKlSzl79iz/+c9/DH3TvPHGnjzKXUYBaUAKMAe4ij595AG0aGmKmm+FwlRYRfbCBfSpYXbkdL2XoI/v5sDeHmJjc9RkUBgnz+wFgInAv9EH0X2ABYCRiI3KXlAoCk9+2Qvm9XSdnfW1FB7YVeaCPryQBiTfd+QSXI0GAgKU4BYQZ5x5jufQYGQX32dAAvqJ3oZRwdWgIYAAJbgKhQkxf37Ve+/pQwSPglarP19RYN7jPbT5B2zyRIuW91DzrVCYEvOLbuvWMGeOfktvYXBw0J9nZAuwIm9a05o5zMGBws23Aw7MYY7aAqxQmBjLbNMa/XcRlQJWGUOr1QvuaFV85VHILlpToCpjaNCiZQ5zVLEbhaIIsNz2rdGj9cVrAgP1i2MPhhy0Wv37gYH6cUpwH4vRjCaccAIJxB77XCEHLVrssSeQQMIJV4KrUBQR1tEjLT5ev0X42DFISIAqVfRpYcHBatGsCIgnnhBCOMYxEkigClVoSlOCCVaLZgqFCbCegjcKhUJRArCelDGFQqEo4SjRVSgUCjOiRFehUCjMiBJdhUKhMCNKdBUKhcKMKNFVKBQKM6JEV6FQKMyIEl2FQqEwI/lujtBoNPHoy90qFAqFouC4iIjR7Z35iq5CoVAoTIsKLygUCoUZUaKrUCgUZkSJrkKhUJgRJboKhUJhRpToKhQKhRn5fwIeEtvyRLllAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "visualization.genome_graph(g2)" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAV0AAADnCAYAAAC9roUQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAABWA0lEQVR4nO2dd1yT1/fHP1GR4UBkD/dClgusFS0iKoIWgVBb60at4K57VlsHDr5uRa1Y168uoigK7lG3OFnuutgoWwgjOb8/IqkIBJAswn3zysvkee5z78k1+eQ+9557DoeIwGAwGAz5UEvRBjAYDEZNgokug8FgyBEmugwGgyFHmOgyGAyGHGGiy2AwGHKkjqSTenp61Lx5czmZwmAwGKrBvXv33hORfmnnJIpu8+bNcffuXdlYxWAwGCoKh8N5U9Y5Nr3AYDAYcoSJLoPBYMgRJroMBoMhR5joMhgMhhxhostgMBhyhIkug8FgyBEmugwGgyFHmOgyGAyGHJG4OYKhmiQjGbuxGxGIQAYyoA1t2MAGozEa+ih1Ew2DwZASTHRrEOEIhx/8EIYwAAAffPG5oziKxVgMF7hgHubBDnaKMpPBUGnY9EINIQAB6IVeCEYw+J/+PicXueCDj2AEoxd6IQABCrKUwVBt2Ei3BhCAAMzETOQgp9yyBEIOcjATMwEAvvCVtXkMRo2CjXRVnHCEV1hwP6dIeO+CBTxiMKQJE10Vxw9+yEVu6Sd7AdAAUP/To13x07nIhR/8ZGofg1HTYKKrwiQjGWEIA0FCxufNALI/PZ4WP0UghCIUKUiRoZUMRs2Cia4Ksxu7q1wHBxyp1MNgMEQw0VVhIhBRwkuhBPMA6AGwB3C55Olc5CISkdI3jsGooTDRVWEykCG5wCoA/wKIA/ALgO8BvCxZLA1pUreNwaipMNFVYbShLbnANwAaAFAHMBKi0W5oyWI60JG6bQxGTYX56aoIPj4+OHPmDNq1a4dOnTqhadOm0P1eFxpmGuVPMRTBAb5cc1MrVEPewzyktUqDjg4TXwajqjDRVRGaNm2K2NhYvH79GmfOnAEA9LrcCzhUxgXpAG4DcIDoU3AIwD8ANhQvxuFwkL05G82PNUe3bt3A5XLh7u4OAwMD2bwRBkPFYdML1Zx3795hw4YNOHbsGAoLCwEA6urq8PLywvm/z8MFLuCAU/LCAgALAehDtJC2CUAwgLb/FeGAg4G1B+LU7lOIi4vD2LFjcfHiRbRt2xaOjo7YvHkz4uLiZP0WGQyVgkNUtg+nra0tsRTsysfLly/B4/HA4/Hw8uVLuLm5gcvlYtKkSYiPj8fgwYOxZ88e1KpVC+EIRy/0qvSONADQghau4ApsYVvsOJ/Px9mzZ8Hj8XDy5Em0a9cOXC4XXC4XzZs3l9K7ZDCqLxwO5x4R2ZZ2jk0vVBMeP34MHo+HoKAgJCYmwt3dHcuXL4eDgwPU1NQAAK9evUJMTAw2b96MWrVENzF2sIM//Cu9FVgLWvCHfwnBBQANDQ24ubnBzc0N+fn5uHTpEoKCgtC1a1c0adJELMDt2rUrpWYGo2bDRrpKChHh0aNH4hFtVlYWPD09weVyYW9vj9q1a1eqvqKgN7nIlbhDjQMONKEJf/hXOthNYWEhrl69Ch6Ph6NHj0JXV1cswFZWVuBwSpnmYDBUEEkjXSa6SgQR4c6dO2LREgqF4HK58PLygp2dnXj0Wln4fD58fHxwMvEkHE47IBSh4IBTLCaDJjRBILjCFfMwr9QRbmUQCoW4deuW+Eejbt26YgHu0qULE2CGSsNEV4kRCAS4ceOGWGjr1asnFqeOHTtWWZzOnz+PESNGIDExESYmJoiNjUUKUrAbuxGJSKQhDTrQgTWsMQqjZJI5gohw7949sQDn5+eL32O3bt2++seEwVBWmOgqGYWFhbh8+TJ4PB6Cg4NhaGgoFiELCwuptTNy5EgcOXIEubmiEa2joyMuXrwotfq/BiJCVFSUWIBTU1Ph4eEBLpeLnj17ok4dtszAqP6whTQlIC8vDxcuXACPx8OJEyfQokULcLlcXL16Fa1bt5ZJmzY2Njh8+LD4tZmZmUzaqQwcDgfW1tawtrbGkiVL8PTpU/B4PMycORPv3r3DoEGD4OXlBUdHR9StW1fR5jIYUoeNdGVIbm4uTp8+DR6Ph9DQUFhaWoLL5cLT0xNNmzaViw0DBgxAdHQ03r59iwULFmDp0qVyafdrePXqFY4ePQoej4enT59i4MCB4HK56NevHzQ0NBRtHoNRYdj0ghzJyspCaGgoeDwezpw5A1tbW3C5XHh4eMDY2Fiutpw+fRoTJ05EZGQkLl26hFatWsHc3FyuNnwtcXFxOHbsGIKCgvDw4UP0798fXC4Xrq6uqFevnqLNYzAkwkRXxqSlpSEkJAQ8Hg+XL1+Gvb09uFwuBg0aBD09PYXYlJubCysrK2zZsgX9+/dXiA3SIjk5GcHBweDxeLh16xZ69+4NLy8vDBw4ENra5QT1YTAUABNdGZCSkiIWgps3b6J3797gcrkYOHAgGjVqpGjzsGjRIjx9+rTYnK4qkJqaWuwHrmfPnuIfOF1dXUWbx2AAYKIrNeLj43Hs2DHweDzcv38fzs7O4lve+vXrK9o8MU+ePEGPHj3w6NEjmJqaKtocmZGZmYlTp06Bx+Ph3LlzsLOzE0/lGBkZKdo8Rg2GiW4VePPmjdi96fHjx8UWdzQ1NRVtXgmICE5OThg0aBCmTp2qaHPkRk5OTrFFS2tra/GiZZMmTRRtHqOGwUS3kjx79kwstG/evBG7MfXu3Vvp3Zj279+PtWvX4s6dOzXW5zUvLw/nzp0Dj8dDSEgIWrVqJfaDbtWqlaLNY9QAmOiWAxEhOjpaLLTv378XO+x/99131Ua80tLSYGFhgePHj6Nr166KNkcpKCgoEG9EOXbsGIyNjeHl5QUul4v27dsr2jyGisJEtxSICPfv3xcLLZ/PF4+Gvv3222q5NdXX1xccDgdbt25VtClKiUAgwPXr18X/5w0bNhT/n3fo0IHFg2BIDeUX3eRkYPduICICyMgAtLUBGxtg9GhAX3qxAIRCIW7fvo2goCAcPXoUderUEX/pbG1tq/WX7tatW/D09ERMTIxSeE8oO0KhUBxciMfjgcPhiD8LXbt2rdafBYbiUV7RDQ8H/PyAsDDRa/5nubw0NQEiwMUFmDcPsLP7qiYEAkGxcIM6OjriL5e1tbVKfLkKCwtha2uLWbNmYejQoYo2p9pBRHj48KFYgD9+/CgOo9m9e/dKh9FkMJRTdAMCgJkzgdxckbiWBYcjEmB/f8C3YvFdCwoKcPHiRXFAGTMzM7HQVpcdWZVh/fr1CAkJwfnz51XiR0TRxMTEICgoCDweD8nJyXB3dweXy0WvXr2qzfw+Q7FIEl0QUZmPLl26kEzYupVIS4tIJLcVe2hpia4rg9zcXDp+/DiNGDGCGjduTN26daM1a9bQy5cvZfMelIR3796Rrq4uPXnyRNGmqCTPnz+nlStXkp2dHenq6tLo0aPp1KlTxOfzFW0aQ4kBcJfK0FX5j3TDw4FevYCcyufsgpYWcOUKYCv6Afn48SPCwsLA4/EQFhaGDh06iH0zlSGiljzw8vKChYUF/vjjD0WbovK8fftWHJAnKioKAwYMAJfLhbOzM7S0tBRtHkOJUK6RrocHEYdTYiT7ASB3gLQAagrQ/5U22uVwKO/772n//v3k4eFBDRs2pL59+9K2bdsoMTFR+rYqOadOnaJWrVpRTk6Ook2pccTHx9OWLVuod+/e1LBhQ/Ly8qIDBw5QZmamok1jKAFQmpFucjLQrFnxBbNPDAEgBBAI4CGAAQBuALD8olweh4PRTk7oN3Qo3Nzc0LhxY+nZV43IycmBlZUVAgIC4OzsrGhzajTv37/H8ePHwePxcP36dfTq1QtcLhfff/89dHR0FG0eQwFIGunK1xl19+5SD38EwAOwFEB9AD0AuAHYV0pZdQ0N/N2vH0aNGlVjBRcAli9fDjs7Oya4SoCenh7GjBmD0NBQvHnzBl5eXjh69CiaNWuG/v37488//0RKSoqizWQoCfIV3YiIUke5zyBKYdH2s2MdAESXVkduLhAZKRPzqguPHz/Gjh07sG7dOkWbwviCRo0aYfjw4QgODkZ8fDy8vb1x/vx5tGnTBo6OjtiyZQvi4+MVbSZDgchXdDMySj2cDaDhF8e0AWSVVU9amvRsqmYQEXx9ffHbb7/BxMRE0eYwJFC/fn0MHjwYhw4dQkJCAqZNm4Zbt27BysoK9vb2WLt2Ld68eaNoMxlyRr6iW0bA6foAMr84lgmgQVn11OB5sn379iErKwsTJkxQtCmMSqCpqYlBgwZh3759SExMxMKFCxETEwNbW1vY2trCz88Pz549U7SZDDkgX9G1sQFKyXXVFkAhgOefHXuEkotoAJBfpw4eCATIzPxSplWf1NRUzJ49G9u2bWO7pKoxdevWhYuLC3bu3ImEhASsXr0asbGxcHBwgI2NDX7//XdERUVB0iI3o/oiX9EdNarUw/UAeAL4DaJFtesAjgMYXkrZ2hwOVicloUmTJnBzc8OePXuQVkOmG+bNmwcvLy/YfeWWaIbyUadOHfTu3RtbtmxBXFwctm7divT0dLi6usLc3Bzz58/HvXv3mACrEPIVXQMDUSyFUraqbgWQC8AAIvexAJQy0uVwUPv773Hg/Hm8ffsWP/74I44fP47mzZvD2dkZO3bsQHJysqzfhUK4efMmQkJCsGzZMkWbwpARtWrVQo8ePbBu3Tq8efMG+/fvh1AoxE8//YSWLVtixowZuHnzJoRCoaJNZVSBar0jrYjs7GzxzrTTp0+jY8eO8PLygoeHh0qkqyksLESXLl0wd+5cDBkyRNHmMOQMESEyMlIcDyI9PV0ckKdnz55sqkkJUb6AN0XBbiohvLkcDq66u6Pf0aMSy/H5fJw9exY8Hg8nT55Eu3btxMFumjdvXkXDFcPatWsRFhaGs2fPsoA2DDx58kQcES0uLg6DBg0Cl8tF7969oaampmjzGFC2bcBFFAW9KWVL8OcPAUAF6uqUumIFtW3blpYuXVrhJvLy8uj06dM0duxY0tfXp86dO9Py5curVXCYt2/fkq6uLj19+lTRpjCUkJcvX9KaNWvom2++ocaNG9PIkSPpxIkTlJubq2jTajSQsA1YcaJLRBQeTuTpSaShQaSpWVxwNTWJNDTovYMDOevqUlpaGiUkJJCFhQUtWrSIhEJhpZoqKCigixcv0sSJE8nY2JisrKxo8eLFFBERUem65ImnpyctXrxY0WYwqgHv3r2jDRs20HfffUfa2tr0008/0ZEjRyg7O1vRptU4JImucmSOSEkRbRGOjBRtfNDRAaytRd4O+voYP3481NTUsHnzZqSkpKBPnz7o378/Vq5c+VW320KhELdu3RLfotWtW1c8BdGlSxeluYU/deoUpk2bhsjISGiU4mrHYJRFUlISgoODwePxcPv2bTg5OYHL5WLgwIHQLsNfniE9lHN6oRJ8+PCBDA0N6c6dO0RE9P79e+rcuTNNmzatyqNUoVBI4eHhNHfuXGrTpg01a9aMpk+fTtevXyeBQCAN87+Kjx8/UvPmzens2bMKs4GhGrx//5527dpFAwYMoAYNGtCAAQNo165d9P79e0WbprJA6Ue6FWDv3r3YsGED7ty5g9q1ayM9PR3Ozs6wtbXFpk2bpJJIkogQFRUlHgGnpqaKswL37NlTrlkD5s+fj1evXuHAgQNya5Oh+mRmZuLkyZPg8Xg4f/48unbtCi6XCw8PDxgaGiraPJWh2o90iUQjUgcHB9q4caP4WEZGBtnb29PYsWNlMip9+vQprVixgjp37kz6+vo0duxYOn36NOXl5Um9rc+Jjo4mPT09io+Pl2k7jJpNdnY2BQUF0U8//UTa2tr03Xff0YYNG+jdu3eKNq3aA1UY6QKi6Fo9e/ZERESEONhLdnY2vv/+ezRt2hS7du2Smc/iq1evxFkDnj59ioEDB4LL5aJfv35SnW8lIvTq1Qs//PADJk2aJLV6GQxJ8Pl8nDt3DjweDyEhIWjTpo14naNly5aKNq/aoXx+ulVgwYIFePHiBQ4dOiQ+lpOTA3d3d+jq6mLv3r0y91WMi4vDsWPHEBQUhIcPH6J///7gcrlwdXVFvXr1qlT3nj17sGnTJty+fZs5vTMUQkFBAS5duiRO7GpiYiIW4Pbt2yvavGqBSoluWRkT+Hw+uFwuNDU18ffff6Nu3bpysSc5OVm8Snzr1q0qrRJ/+PABlpaWOHXqFLp06SIjixmMiiMQCHD16lXweDwcPXoUjRo1EguwjY2N0nj6KBsqJboAEBoaiilTpiAyMhKampri43l5efjxxx8hFApx5MgRqKury9Wu1NRUhISEgMfj4cqVK+jRowe4XC4GDRoEXV3dcq//5ZdfoK6ujk2bNsnBWgajcgiFQty+fVu80Fy7dm2xANvZ2TEB/gyVE12g7Cy4BQUF+Pnnn5GdnY2jR48WE2V5kpmZiVOnToHH4+HcuXOws7MTrxIbGRmVKH/jxg388MMPiImJYX6UDKWHiHD//n2xAPP5fHE8iO7du0vFm6g6oxLeC1/y7t070tXVLXVLb0FBAf3888/k5OSkFLtxPn78SDwej37++Wdq1KgR9ezZk9avX09v374lIqL8/HyytramgwcPKthSBqPyCIVCioyMpCVLlpC1tTUZGRmRr68vnT9/ngoKChRtnkKAqngvfMn69esREhKC8+fPl7i1EQgEGDNmDF69eoWTJ0+iQYMy81DIlby8PJw/fx48Hg8nTpxAq1atoK+vj/T0dFy9epXdojGqPc+ePcPRo0cRFBSEN2/ewM3NDV5eXnBycpLbWouiUcnpBUAU8tDOzg4zZ87E0KFDS5wXCoXw8fFBVFQUwsLClO62vaCgAIcPH8bYsWOhpaWFJk2aiOfILCwsFG0eg1FlXr9+LXa1fPz4MQYMGAAulwtnZ2eFTf3JA5UVXQC4ffs23N3dERMTA51ScqcJhUJMmTIFd+7cwZkzZ0oto0g8PDzQqVMnLFiwANevXxfPkTVs2FAswB06dJDqCDgZydiN3YhABDKQAW1owwY2GI3R0Ie+1Nph/AfrcyA+Ph7Hjh0Dj8fDvXv34OzsDC6XiwEDBqB+/fpSbSs5WRTOJSJClA9XW1uULWz0aEBfDt2tknO6n+Pj40O+vr5lnhcKhTR9+nTq1KkTpaSkyNEyyZw4cYLatGlDfD6/2HGBQEA3b96kmTNnUosWLahly5Y0a9YsunXrVpViTdyhO+RBHqTx6Q+f/WmSJmmQBnmQB92hO1V9a4xPsD4vneTkZNqxYwc5OztTgwYNyM3Njfbu3UtpaWlVqvfOHSIPD1HgQg2NUgMXkoeHqJwsgdKGdpQSqampZGRkRLdv3y6zjFAopLlz55K1tTUlJSXJ0brSyc7OpmbNmtG5c+cklhMKhXT//n1asGABmZubk5mZGU2ZMoX++ecfKiwsLFb23r17dO3atVLr2UpbSYu0iEOcYl/8L/84xCEt0qKttFVq77Wmwvq8YqSmptKePXvIzc2NGjRoQP3796c///yTkpOTi5UrLCykP//8s8xt+BUM0U0cjqjcVhl2t8qLLhHRvn37qFOnThJXS4VCIS1evJjat2+v8LgGc+bMoZ9//rnS10VHR9Pvv/9ONjY2ZGhoSD4+PnTu3DnKz8+n7777jurUqUOhoaHFrin68kv64n/5V5NFQBqwPv86MjMz6eDBg/TDDz9Qw4YNydHRkbZs2ULx8fF05coVAkB9+/YtIbxFgitJbL98yFJ4a4ToCoVCcnR0pPXr15dbdvny5dSmTRuFBfaIiooiPT09SkhIqFI9z58/p5UrV5KdnR3p6OhQrVq1CABpamrSyZMniUh0eyvxy38ABHMQtEBoCcI/xUUgnMKl8ZZrFKX2eb0vHrVAmFS68LI+F/Hx40c6evQoDR06lBo1akSGhobE4XBIQ0ODHB0dxdNyd+6UJbhDCTAioAEBbQj4s1ThDZdBd9cI0SUievz4Menq6lJsbGy5Zf39/ally5b0+vVrOVj2HwKBgHr06EFbtmyRar0bNmwgdXV1AkAAiMPh0Pr168mDPMq+vT0LQlMQboIgACH20+Oz215P8pSqnTUBiX1OIGR9Et4rpU81sD4vSU5ODtWvX1/8+QZALVu2pPz8fPLwKGtKIYoA/qfnjwkwJOBuiakGTxl0tyTRValtI+bm5vD19cWvv/5abtkZM2Zg2rRpcHBwwMuXL+VgnYg9e/YgLy8P48ePl2q9V69ehUAgQO3ataGrq4tmzZrhSeoThCEMhDI8VBYD+A1ANwC1AJh+enyCQAhFKFKQIlVbVZlkJEvucwDgATAA0LPkKdbnpfPw4UNkZ2ejbt260NDQgJmZGTQ0NPD6dQ7CwkQSWhJLAEWhADifHsW/60RAaKgoeY3cKEuNqRqOdIlEv4gtW7YsMa9ZFtu2bSMzMzO5JKt8//49GRoa0r1796Re97///ktRUVHFEhKuolUlVszFf4UgqIHgB0IrEExBmAhCTvFymqRJq2m11O1VVST2edGfIwiLyz7P+rwkBw8eJABkYWFBZ8+eFXvxrFpV0kuh+MOXAM1Po+NOBGSVKKOpSbRayt0NCSNd+aVCkBOamprYsmULJk6ciKioqHIdsMePH4+6deuid+/eOHfunEw3JcyZMwc//vgjOnfuLPW6W7RoUeJYBCLAB7/0C5IAFAAIAnAVgBqAQQCWAVj+X7Fc5CISkdI2V2WR2OcA8AbAFQCBZRfJRS6CXwbD4JqBtM2rthw6dAgcDgcxMTEYOHAgDA0N4e/vj4iIweBL6G5gK4BNAG4CuIz/Rr7/kZsrSs8oL1ROdAGgf//+6NKlC1asWIGlS5eWW3706NFQU1ODk5MTzpw5AxsbG6nbdP36dZw+fRoxMTFSr7ssMpBR9smi36LJAIw/PZ+OEqILAGlIk7ptqorEPgeAfQB6ACj5G1mMt5lvcfHiRWmZVe15+fKlaBEKQH5+Pt69e4c9e/agVq3BFbi6NkSdvh9AAIApJUqkyfEjrpKiCwDr1q1Dhw4dMHToUJibm5dbftiwYahbty769euH0NBQqY5GCwoK4OPjg7Vr16Jhw4ZSq7c8tCFh27MOADOIprmKKGPTmw6UaxefMiOxzwFgL4C55dfj2MkRe/bskYpN1YXMzEzExsYiNjYWcXFx4uexsbFIT08vUb5u3bqoXM6AQnw5p1uEPDeqqqzompqaYtGiRfD19cXFixcrtI128ODBUFNTg4uLC0JCQtC1a1ep2LJ+/XqYmprihx9+kEp9FcUGNuCBV/bt7miI7rz6QzS9sA7AwOJF1ArUkHI1Bc/MnqFt27YytVcVkNjnNwDEASjnY6AJTVjDWhbmKQQiwvv370uI6ZfCKhQK0aRJE5iamsLMzAxmZmbo2LEjBgwYAFdXV0ybNg116tRB48aN8ffff8PBwQGrVwM8HkqZYkgGcBGiD7QmgPMADnx6FEdTE7CWY3dX+9gLkigsLETXrl0xffp0DBs2rMLXnTx5Et7e3jh27Bjs7e2rZMObN2/QpUsX3L59G61atapSXZUlGclohmZli24BgKkA/gagAWAwgNWfnn+irrAuhs4birC9YdDT0wOXy4WXlxcsLS1rfES0pKQk5Obmonbt2qhVqxY4HA5qGdVCi1otSu/z8QByIJpikIAGNPAWb6tFTIbCwkIkJSUVE88vhTUuLg716tUrJqafPy96ra2tXeZnKisrCwYGBpg4cSKWLl0qXqtJTgaaNStNdFMAeAF4BEAIoBlE0wrjStStoQG8fSvdmAwqHfCmPO7cuYNBgwaVGRCnLM6ePYthw4bh8OHD6NWr11e37+7uji5dumDRokVfXUdV8IQnghEs2YWpDDjgwAMe4IEHoVCIGzduiNO2aGhoiAPydO7cuUYKcP369SEQCFCrVi3k5+ejsLAQy5Ytw70F96TS54qGz+cjPj6+TDGNjY1FcnIydHV1JYqpqakptLS0qmxPQUFBqfkPPT2B4OCy3MYkw+EAHh6i0bI0qdGiCwATJkyAUCjEtm3bKnXdxYsX8eOPP+LAgQPo06dPpds9fvw4Zs+ejYiICLmnDioiHOHohV7IQU6lr9WCFq7gCmxR/LNDRLh79644IlphYaE4a0C3bt1qTNYALy8v8L74ttapUwfX86/DkeMo1T6XNllZWaXe4n/+OiMjAyYmJiXE9PPnxsbGMk8EWx7h4UCvXkBO5bsbWlrAlSuArZS7W+WjjJVHWloaGRsb082bNyt97T///EP6+voV9vstIjs7m5o2bUoXLlyodJvSRpZxAIRCIT169IgWLVpEFhYWZGJiQpMmTaJLly6VCMijKnz48IF+++03atiwYbEdUrVq1aJff/2ViBQXe0EoFFJKSgo9fPiQTp48Sdu2baNFixbR6NGjqW/fvtS+fXtq2LAhaWpqUps2bcjR0ZGGDx9O8+bNo82bN1NwcDDdvXuXEhISSCAQSKO75AKLvaCE/N///R916NDhq9KH3Lx5k/T19en48eMVvmb27Nk0dOjQSrclK+QV8erx48e0bNky6tSpE+nr69O4cePo9OnTlJ+fL+V3JH+SkpJozpw51LhxYxozZgxFRkaSrq6uWHQNDQ2LbU6Rdp8XFhZSXFwc3b59m3g8Hm3cuJFmz55NP//8Mzk4OFCrVq1IQ0ODGjVqRFZWVtS/f38aM2YMLV68mP78808KCwujiIgISk1NrVKIUGWFRRlTMoRCITk5OdHatWu/6vrw8HAyMDCgI0eOlFs2IiKC9PT0KDEx8avakhXhFE6e5EkapEGapFliF5QGaZAneUot4MrLly9pzZo11K1bN2rcuDGNGDGCjh8/XkyYqgNxcXH066+/ko6ODk2YMIFev35Nly9fptatW9PAgQNJV1eX1NTUKDg4uMS1Fe3z63nX6d9//6V//vmHDhw4QGvWrKGpU6eSl5cXdevWjczMzEhNTY0MDQ2pS5cu5ObmRhMmTKAVK1bQ3r176cKFC/T06VOlyAmoSMLDRbEUNDREO81Ki6fr6SmbIDefI0l0a8ScbhFPnz6Fvb09Hj58CDMzs0pf//DhQ7i4uOB///sffv7551LLCIVCfPfddxg2bBh8fHyqarJMSEEKdmM3IhGJNKRBBzqwhjVGYZTMVsxjY2PFaVsePXoEFxcXcLlcuLi4oF7lnC3lxps3b7B69WocOHAAI0eOxKxZs1C/fn3MmTMHJ06cwJYtW+Du7o5bt24hMDAQO3bsKHVBMTs7G5GJkfiL/kJ0rWh8EHwApRFqx9RG7X21kRydjLS0NBgbG0tc4Tc2Nq4xOcaqSkqKKHNEZKRo44OOjsgtbNQoxWeOqFGiCwCLFy9GdHQ0goKCvur6qKgoODs7Y8WKFRg5cmSJ87t27cL27dtx8+bNGrOgVFmSkpIQHBwMHo+H27dvw8nJCVwuFwMHDlSKPHYvX76En58fjh07hnHjxmH69OkwMDDAqVOn4OvrC2dnZ6xZswba2tpIS0sr0++06HVeXl6JFf0vnxsYGKB27dqKfusMKcFE9zP4fD6srKywceNGuLq6flUdT548QZ8+fbBkyRKMHTtWfPz9+/ewtLTE6dOn0alTJ2mZrNKkpqbixIkTCAoKwj///IOePXvCy8sLbm5u0NXVlastT548wYoVKxAaGgofHx8MGTIEOTk5ePz4MTZt2oQXL16gS5cuEAgEYmFVV1cv01Wq6LmOjk6NdKmryTDR/YIzZ87A19cXUVFRX+0/+Pz5c/Tp0wezZ8/GxIkTAQDe3t7Q1tbGunXrpGlujSEzMxMnT54Ej8fD+fPn0bVrV3C5XHh4eMDQ0FBq7eTn5yM+Pl48Eg0PD0dISAjevHkDAwMDEBGSkpLQqFEj1KtXDwkJCWjXrh3c3d3RsmXLYsIq7YSKDNWAiW4p/PTTT2jVqhWWL19efuEyePXqFZycnDB58mTY2tpiyJAhePz4MRo0aCBFS2smHz9+xOnTp8Hj8RAaGgobGxtwuVx4enqiSZMmEq8ra6tp0fPU1FQYGhqiUaNGSE1NRXp6OhwdHeHl5YXWrVvD1NQURIRff/0VL168QGBgILp16ybHd8+o7jDRLYX4+HjY2Njg6tWraN++/VfX8/btW/Tu3RvZ2dnYvHkzvLy8pGglAxBNCZ09exYHDx5EaGgojIyMYG1tDRMTkxIim5ubK3Hu1MzMDP/++y9WrFiBiIgIzJ49G+PGjRNvKyUi7Ny5E/Pnz8eECRMwf/58hW1sYVRfJImuyga8KQ8TExMsXrwYvr6+uHTp0lfPuTVt2hSDBw/Gxo0bER0dzUT3KxAKhUhOTpYYDCUuLg516tSBiYkJtLS0EBERgbCwMDRu3BgODg745Zdf0LNnT+jq6pb6f0lEuHLlCoYPH46XL19i3rx5OHbsWDFBffnyJcaNG4esrCxcuHBBJiE+GYwaO9IFAIFAgG+++QZTpkzBiBEjvqqO169fw9bWFqdOnYK3tzc8PDywdOlStnDyiYKCAiQkJEi83U9ISEDDhg3L3b//ZVhMgUCAa9euibcjN2rUSBwPwsbGBhwOB0SEs2fPYtmyZUhMTMT8+fMxbNiwYltXBQIBNmzYgBUrVmDu3LniaFYMxtfCphckcPfuXQwcOBAxMTFo3Lhxpa4lIri5uaFbt25YsGABUlJS0LdvX/Tt2xerV69WeeHNyckRR5Eqa//+hw8fYGBgIHGF38TEBBoaGuU3KAGhUIjbt2+LBbh27dro0KEDHj9+DABYuHAhBg8eXEJMo6KiMGbMGGhqamLnzp1o3bp1lexgMAAmuuUyadIkFBQUYPv27ZW6Ljg4GPPmzcPDhw/Ft6mpqano168f7O3tsX79+mopvESEjIyMcm/3P378KB6FluUuZWhoKNdRo1AoBI/Hw4IFC5CRkYE6deqgdu3a8PT0hJeXF7p37y6OCubn54fNmzdj+fLlGDt2LPOrZkgNJrrlkJGRgfbt2yMoKAjdu3ev0DXZ2dmwsLDAnj174OjoWOxceno6XFxc0LFjR2zZskWpvsxCoVAcUFpSUGkOh1OmkBa91tPTU5oflcLCQhw6dAjLly9H/fr1sWjRIgwcKIrIHhMTg6CgIPB4PKSkpKB79+64f/8+LCwssH379q/anchgSIKJbgU4cOAAVq5ciXv37lVoZDZr1iwkJSVh7969pZ7PzMzEgAED0LZtW+zYsUMuu40KCwuRkJAg8XY/ISEB9evXL3eFX55phapCQUEB9u/fjxUrVsDIyAiLFi1C3759S/0xyMnJweTJk3H48GHo6+sjMzMTgwYNApfLRZ8+fdgWW4bUUH7RTU4WbZSOiAAyMgBtbcDGBhg9Wj4bpSG6pe7Xrx9cXFwwffp0iWUjIiLQp08fREVFwcCg7Iyt2dnZcHNzg6mpKf76668q3Wbz+fxyb/dTUlKgr68vUUxNTEzKzZBcHcjLy8Nff/2FlStXonXr1li4cCEcHBzKHHlfunQJ48aNQ9euXbFhwwbo6+vj9evX4ngQRVlmuVwunJ2dVaKPGIpDeUU3PBzw8wPCwkSvP8+5oakpCg7k4gLMmwfY2cnOjk88f/4c3377LR48eFCmA75QKETPnj0xYsQIjB8/vtw6c3Jy4O7uDh0dHezfv7/UgM9lJeT7/HlWVpY4oHRZo1QjIyOFB5SWNTk5Ofjzzz+xZs0a2NjYYNGiRfj222/LLJ+RkYHZs2cjNDQUW7duxffff19qufj4eBw7dgw8Hg/37t2Ds7MzuFwuBgwYwHadMSqNcopuQAAwc6Yo6bykPBscjkiA/f0BX1/Z2PIZS5YsQUREBI4ePVrq+Z07dyIwMBDXr18vd66WPiXk+/fffzFp0iQUFhaif//+SExMLCasQqGw3IAoenp6SjU3LG+ys7MREBCAtWvXolu3bli4cCG6dOki8ZqQkBBMmDABrq6uWL16dYWD6aSkpOD48ePg8Xi4fv26eLfa999/j0aNGknh3TBUHeUT3SLBrUx+DS0tuQgvn8+HtbU11q1bJ16IKSIlJQWWlpY4d+4crKysSojnl7f7RQn5isLyPXnyBOrq6pg+fTqaN29ebP5UWRaklI2MjAxs2rQJGzduhKOjIxYsWFDupoWUlBRMmTIF4eHh+PPPP0ssdFaGtLQ0hISEgMfj4dKlS7C3tweXy8WgQYOgL6epL0b1Q7lEt4yERpsB7AYQCWDIp+clkFVCoy84deoUxo8fj7/++qvYSv/x48eRl5eH2rVrIzk5GXp6ehLdpYp2TxVRUFCAoUOHIiMjA8HBwWzeUAIfPnzAhg0bsHXrVri6umL+/PkwNzeXeA0R4cCBA5g+fTqGDx+O33//XSoJEYvIyspCaGgoeDwezpw5gy5dusDLywseHh4wNjaWWjuM6o9yiW4ZqTuPAqgF4AyAXJQhulJI3ZmVlVXuglSRf2fjxo1hb28PU1NT8Pl8HDp0CAcPHkTbtm2/OiFfYWEhRo0ahfj4eISEhChtAG9FkZycjP/973/YuXMnPD09MXfu3Aqlrn/37h18fX3x5s0bBAYGomvXrjK1Mzc3F2fOnAGPx8PJkydhaWkpDsjTrFkzmbbNUH6UR3TLTlIvZiGAWJQhukCZSeqJCKmpqeUuSBUWFpbrLqWvr4+kpCTY2Njg8uXLaNOmDTp27Ihly5bB09Ozyt0gEAgwduxYvHz5EqdOnWJRyQDExcVhzZo12Lt3L4YMGYI5c+agadOm5V4nFArx559/YuHChZg8eTLmzp0rd9evvLw8XLhwATweD8ePH0eLFi3E25HbtGkjV1sYyoHyiO7q1cDixVUSXaGGBm44OyOkXbsSwqqpqSlRTM3MzKCtrV3h+dMtW7bg0KFDcHFxwbVr13Dy5Empzb0KhUL4+vqKA7fU1AWaN2/eYNWqVTh48CBGjRqFmTNnwsTEpELXPn/+HOPGjUNubi4CAwNhZWUlY2vLp7CwEFeuXAGPx8PRo0dhaGgoFmALCws2d19DUJ4U7EOHlpsXeQFAI8spc6ttW3FCvosXL8osIV9hYSFZW1tT/fr16d9//5V6/UKhkCZNmkS2trb04cMHqdevzDx//py8vb2pcePGNGfOHEpKSqrwtQUFBbRmzRrS1dWltWvXKm2q98LCQvrnn39o6tSp1KRJE2rXrh3Nnz+f7t27p5LZeBn/AaXJBjxwoFREVzhwoHTtKgOhUEg9evSgevXq0fv372XWxowZM6hjx46UkpIikzaUiZiYGBo2bBjp6urSb7/9Vukfm0ePHpGtrS05OjrSixcvZGSl9BEKhXT79m2aPXs2tWrVilq0aEEzZsygmzdvkkAgULR5DCkjSXTl6/gppaSDh86eRY8ePTBu3DisW7cOp0+fxtu3b0W/IlIkODgYHz58wMiRIzF37lyp1l0Eh8PBmjVr4Orqil69eiEpKUkm7SiaR48eYfDgwXBwcED79u3x8uVL/P777xWO7JaXl4fffvsNTk5OGD9+PC5cuFChBTZlgcPhoGvXrli1ahWeP3+OY8eOQVNTE97e3mjatCmmTJmCK1euQCAQKNpUhqwpS41JFiPdVatEiedLGb0WAJQL0FyAhn16XlDaKFdTkzJ/+40uXbpEW7dupUmTJpGTkxMZGxtT/fr1ydbWlkaMGEF+fn50/Phxevbs2VfdfmZmZpKZmRldvnyZ0tPTycTEhK5duybd/vgMoVBIS5YsIXNzc4qLi5NZO/ImPDyc3NzcyMjIiNasWUNZWVmVruPmzZtkYWFBbm5uFBsbKwMrFUtMTAwtXbqUOnbsSAYGBvTLL7/Q2bNnKT8/X9GmMb4SKM30QlJSmaK7GCB88Vhc2vSChgZRcnKp1aelpdGNGzdo586dNGPGDHJxcaHmzZuThoYGWVtb048//ki///47HT58mKKioigvL69MU6dPn04jR44Uvz548CBZWVnJ/IuwYsUKat26Nb19+1am7ciaa9euUf/+/cnMzIw2btxIOTk5la4jOzubpk2bRoaGhnTw4MEaMQ/64sULWr16NX3zzTekq6tLo0aNopCQEOLz+Yo2jVEJlEd0iYg8PIg4nHLndkt9cDhEnp6VbjI7O5vu3r1L+/bto3nz5pG7uzu1bduW1NXVqV27duTu7k7z58+n/fv307179+jmzZukr69PyZ+Ju1AopH79+tGaNWuk2Rul8r///Y9atGhBr169knlb0kQoFNLFixfJ0dGRmjdvTtu3b/9qsTh//jy1aNGChg0bViPmukvj7du3tH79eurZsyc1atSIhgwZQkFBQfTx40dFm8YoB+US3Tt3iLS0vk50tbSIwsOlZgqfz6fIyEg6fPgwLVmyhAYPHkxWVlbE4XBIV1eXXF1dacaMGRQYGEg3btyge/fuka6uLr1580ZqNpTFpk2bqGnTpvT8+XOZt1VVhEIhhYWFkb29PbVp04b++uuvr74jSEtLozFjxlCTJk3o1KlTUra0+pKQkEABAQHUp08fatiwIXG5XPr7778pIyND0aYxSkG5RJeIaOvWyguvlpboOhmzfft26tatGz158oSCg4PJz8+Phg8fTl26dKF69epRgwYNSE9PjyZPnkxbt26ly5cvFxsRS9sWMzMzevz4sUzqrypCoZCOHz9Otra2ZGFhQX///XeV3LeCg4PJ1NSUfH19mZhI4P3797Rr1y5ydXWlBg0a0MCBA+mvv/6qcW6HyozyiS7Rf8Jb3lQDhyM3wU1KSiJ9fX169OhRqecFAgE9ffqUTE1Nydvbm8aOHUvdu3enRo0aka6uLvXs2ZN++eUXWr9+PZ05c4bevXtX5XnIXbt2kbGxMUVGRlapHmkiEAjo8OHDZGNjQx07dqSgoKAquT0lJibS4MGDqU2bNnTlyhUpWqr6pKen0/79+8nDw4MaNmxIffv2pW3btlFiYqKiTavRKKfoEommCjw9RYtjmprFxVZTU3Tc01OqUwqSGDFiBM2YMaPccufPn6dmzZqJN2QIhUJKSEigCxcu0ObNm2nChAnk6OhIhoaG1KBBA+ratSuNGjWKVq1aRSEhIfTixYtKjQj3799PRkZG9PDhw69+b9KgoKCA9u3bR+3bt6euXbtSSEhIlX5UhEIh7d27lwwMDGjOnDlftdjG+I/s7Gw6cuQI/fTTT6StrU0ODg60ceNGlfT4UHYkia5yZI5ISRFljoiMBNLSAB0dwNoaGDVKbpkjLl26hJEjRyImJqZCQauHDh0KMzMzrFq1SmK51NRUPH78GDExMcX+TUlJQdu2bWFhYQELCwu0b98eFhYWaN26damBdI4cOYLJkyfj1KlT5caRlTb5+fnilDjGxsYSU+JUlLdv38LHxwfx8fEIDAyU+3tSdfh8Ps6ePQsej4eQkBC0a9dOvB25RYsWijZP5VGebcBKSl5eHpmbm9OxY8cqfE1CQgLp6el99W1/VlYWhYeH0549e2jOnDnk5uZGrVu3JnV1dWrfvj15enrSwoUL6f/+7//owYMHlJOTQ8HBwWRgYEA3b978qjYrS25uLm3dupWaNWtGTk5OdPny5SrXKRAIaMuWLaSnp0fLli1jvqhyIC8vj06fPk3jxo0jfX196tSpEy1fvpyePHmiaNNUFij9SFfBrFixAjdv3sSJEycqNXrbunUrDhw4gCtXrkgtqwOfz8ezZ8/Eo+KikfHLly9hYmICPT09REZGYtq0aXB3d4e5ubnUk0jm5ORgx44dWLNmDTp27IiFCxdKTIlTUZ49e4axY8eisLAQgYGBaN++vRSsZVSGwsJCXLt2TRyQR0dHRzwCtra2ZgF5pAQb6Urg5cuXpKur+1U+sYWFhWRnZ0eBgYHSN+wL8vPz6cmTJ3T06FEaNWoUqaurU+vWrUlLS4vMzMyob9++NHXqVNq2bRv9888/X+XbmpmZSatWrSJDQ0Nyd3enu3fvSsX2goICWrlyJenq6tKGDRuUNkBNTUMgEND169dp+vTp1KxZM2rdujXNmTOH7ty5UyM2osgSsJFu6RARBgwYAAcHB8yZM+er6rh//z5cXFwQHR0NPT09KVtYNpcuXcLgwYOxb98+tGvXrsS8cUxMDNTV1YvNFxf9a2xsXGxEk56eLk6J4+TkhAULFsDa2loqdj569Aje3t7Q1dXFjh070Lx5c6nUy5AuRIT79++Dx+OBx+MhLy8Pnp6e4HK5+Pbbb2t0fr6vgY10yyAoKIgsLCwkbgeuCFOmTCFvb28pWVVxrl69Svr6+qVuIhAKhRQXF0fnzp2jjRs3ko+PDzk4OJC+vj41bNiQunXrRkOGDCEnJydq0KABeXp6UnR0tNRsy83NpQULFpC+vj799ddfbORUjRAKhRQZGUmLFy8mKysrMjY2pgkTJtCFCxeooKBA0eZVC6C0LmMKpCigjTT8QjMyMsjU1JSuXr0qBcsqR9GW5cosAkZHR9OQIUNIS0uLLC0tyd7enszMzEhLS4s6depEQ4cOpeXLl9PRo0fpyZMnlf6iXb9+nczNzcnDw4Pi4+Mr+Y4YysbTp09pxYoV1KVLF9LX16exY8dSWFhYlQcrqgwT3VKYNm0ajR49Wmr1HT58mCwtLRWyGn/37l0yMDCgw4cPSywXGxtLU6ZMIR0dHZo4cWKJ7cwZGRl0+/Zt+uuvv2jWrFk0cOBAatmyJWloaJClpSV5eXnRb7/9RgcOHKBHjx5Rbm5useuzsrJo8uTJZGxsTEFBQVJ/nwzF8+rVK/rf//5H3bt3Jx0dHRo+fDgFBwczH+svYKL7Bffv3ycDAwOpBlIRCoXk7OxMq1atklqdleHhw4dkZGRE+/fvL3Hu1atX5OPjQzo6OjR9+vRKh47MycmhBw8e0N9//00LFy4kT09Pat++vXgxz83NjQYPHkx6eno0YMAAucSmYCie2NhY2rRpE/Xq1Yu0tbVp8ODBdPjw4a8K36lqMNH9jMLCQuratSvt3LlT6nW/ePGCGjduTK9fv5Z63RUhKiqKTExM6K+//iIi0ejbzc2NGjduTHPnzpV6jIj8/Hy6efMmOTo6UqNGjahXr17UoUMH0tTUpKZNm5KzszP9+uuvtGPHDrp27RqLDaDCJCUl0Y4dO8jZ2ZkaNmxI7u7utG/fPkpPT1e0aQpBkujWOO+Fbdu2Yf/+/fjnn39ksiK7bNkyhIeH4/jx41KvuyI8ffoUDg4OaNy4MR4/fgwzMzM8evSowhkaKsPRo0cxefJkeHp6YsWKFeKsxgKBAK9fvy51J56WllapHhWGhobMR1RFSEtLQ0hICIKCgnD58mX06NEDXC4XgwYNkquHjyJRnmzACiYpKQnW1ta4cOGC1FyiviQvLw8dOnTAqlWrMGjQIJm0URYPHz7E8uXLcfbsWWRmZgIA1NXV8e7dO+hLcTt1YmIiJk2ahKioKAQGBsLe3r5C1xER4uLiSghxTEwMBAJBiS3R7du3R5MmTZi7UjUmKysLp06dAo/Hw9mzZ2FnZwculwsPDw8YGRkp2jyZwUT3E8OHD4exsTFWr14t03YuXryI0aNHIzo6ukJxHKpKeHg4li5divDwcIwZMwb+/v7Iy8sDAKipqWHdunWYOHGiuHwykrEbuxGBCGQgA9rQhg1sMBqjoY+yxZmIsHfvXsyePRtjx47FokWLoKGhIZX3kJKSUmwHXtG/GRkZMDc3LybGFhYWaNGiBerUqSOVtuXB1/a5KpGTk4MzZ86Ax+Ph1KlTsLKyApfLhaenJ5o2bSrVtpKTReFcIiKAjAxRekYbG2D0aPmEc2F+ukR04cIFatq0qUxStZfGsGHDaNasWTJt4+rVq+Ts7ExmZma0adMmysnJodzcXPLz86P27dtT3bp1CQAZGRkREdEdukMe5EEan/7w2Z8maZIGaZAHedAdulOirVevXlG/fv2oU6dO9ODBA5m+r89JS0ujmzdvUmBgIM2YMYNcXV2LpWAaPHgwLVmyhA4fPkyRkZFKl9amKn2uyvD5fDp58iSNHj2adHV1qWvXrrRq1aoqZ3i+c0eUnEZDo2RmsKLAhR4eonKyBDV9IY3P51Pbtm0pODhYbm0mJiaSnp4eRURESLVeoVBIFy5coF69epWbEic2Nlac8HArbSUt0iIOcYp98b/84xCHtEiLtpIofrFAIKCNGzeSrq4u+fn5KU2AmuzsbLp37x7t37+f5s+fT+7u7tSuXTtSV1entm3bkru7O82bN4/27dtHd+/elduP7ed8bZ/XNPLz8+ncuXPk4+NDhoaG1KFDB/rjjz9KbNbJz8+nJUuWlOkdoUwhumu86C5dupTc3Nzk3m5AQAB17969SgG+ixAKhRQaGkrdu3entm3b0u7duyssgEVffklf/C//tEiLFicuJnt7e+rRo0e1iUjF5/MpKiqKDh8+TL///jv9+OOPZGNjQxoaGtS8eXNycXGhGTNm0M6dO+nGjRuUlpYmEzu+ts9rqvAWUVhYSP/88w9NnTqVzMzMyNzcnBYsWEAPHjyg06dPU61atahjx46UmZlZ7DplS0ZTo0X3+fPnpKurqxA3LoFAQN98802V3NMEAgEFBweTra0tWVpaVjolzh26U/qXPwYERxAagtAKhKMlRUAtT41mHZollR8NRVNQUEDPnj2j48ePk5+fH40YMYJsbW2pXr16ZGxsTE5OTjRp0iTaunUrXbp0iZKSkiRuXc7Ly6PZs2dTQkJCiXNl9vkrEFxAaASCIQgTQSgoKbzhJJ+g/cqOQCCgW7du0axZs6hly5ZUv359AkBqampkY2MjdkcrP+3iMwLUCRgq67SLYmqs6Cp6wwIR0YMHD8jAwKDSPrKFhYV06NAhsrGxoU6dOhGPx/sq8fMgj5K3twUgtAHhfyAUgnABBC0Qnpa87fWkymdfrk4IBAJ68+YNhYWF0dq1a2ns2LFkb29POjo61LhxY+rRowf98ssvtG7dOjpz5gy9ffuWhEIhPXr0iOrUqUPa2tolYl+U2uf0SXBHgpALQgIIViBsqHl9/jUUFBRQvXr1CID4oaurSx8/fqxAgvG+BPQoVXS/MsF4udRY0VXk1tzPmTZtGo0aNapCZQsKCmjv3r1kbm5O33zzDZ08efKrg8UkUVKJxRsQCJEg1ANB+NmxviAsLDna1SANSibZJN5UZoRCISUmJtLFixdp8+bNNHHiRHJ0dCQjIyNq0KABtWzZkurUqUMAqG7dujRkyBDKyckpu88JBHMQTn32eiYIv7A+rwgXLlwgAFS7dm0yNTUlOzs76tu3L/37b3aJBbPijwME/EDA4lJFFxAtrkk7t2yNFF1FBqH5kooE18nLy6OdO3dSq1atqGfPnnT27NkqR+ZaRasqLrp9QHAvKQCapEmraXWV7FA1UlNTaeTIkcThcAiA+N/hw4eX3ecEwjYQhoPwEYRYECxR6rQO6/OSHDp0iDgcDhkbG9Pu3bvFQZhWrSrppfDfI4OANgS8kyi6mppEq6Xc3ZJEt/o4OlaSRYsWwdnZGT169FC0KWjQoAHWr18PX19fPHjwAHXr1hWf4/P52LVrF1atWoW2bdti165d+O6776TSbgQiwAe/5Il2AAwArAHwK4BLAK4AcCxZNBe5iESkVOxRFXR0dJCeng4AMDc3x9ChQ8HlcmFubo7hGF56nwPAdwB2AGgIQABgJAD3ksVykYu/I/+G4JRAFuZXS06cOAEiQkJCAsaNG4fJkyfjjz/+QETENPDL6G5gEYAxAMwk1p2bK0rPKC9UUnTv37+PgwcPIjo6WtGmiPH09ERgYCDWrl2LuXPnIicnB9u3b4e/vz86deqEQ4cOoVu3blJtMwMZpZ9QAxAMYDKAVQBsAQwGoF568TSkSdUuVWDdunXYsmULTE1Nix0vs8+FAPoD+AXADQDZALwBzAFQyl6drNpZYmFnQLzZBwAKCgpQWFiI8+fPg8OZVsYVDwGcB/CgQvWnyfEjrnKiKxAI4OPjg5UrVyrVPm8Oh4PNmzfDzs4O6enp2L17N7p3746QkBB07txZJm1qQ7vskzYQjW6L6A7RyKsUdKAjRatUg7Iy6pbZ56kA3gKYBNGPmzqA0QAWolTR7W7RHStXrpSGqdWC7OxsxMXFITY2FrGxscWex8bG4unTp8XKExGMjIwkjHIvA3gNoGinWzZEtxcxAO6XKK0jx4+4yonu9u3boa6ujpEjy1AQBZGeno79+/eDz+dj3759OHfunMziPxRhAxvwwCv9djcCQFuIRmBbASQAGFWymCY0YQ3Z2qlKlNnnegBaAAgAMBMiDdgD0Y/fF6hSnxMR0tLSShXTz5/n5+fDzMwMZmZmMDU1hZmZGSwtLeHs7AxTU1PExsbihx9+QN26ddGyZUscPHgQlpaWWL0a4PFQivj+AuCnz177QyTCASVs1NQEZPxVLIZKxV5ITEyEtbU1Ll26BCsrK0WbAwB4//491q9fj23btmHgwIGYMWMGBg8ejBUrVsDDw0OmbScjGc3QrHTRnQVgJ4ACAD0BbALQumQxDWjgLd7WmPgAVUVinz8EMA3AIwC1AfSGqN8NixerLn0uEAiQnJxcYlT6pbCqq6sXE9Mvn5uZmaFRo0YSo8zl5OSgdevWmDVrFqZMmYLatWsDEMVYaNasNNH9kiUAXgDYX+KMhgbw9q10YzJIir2gUiPdGTNmYMyYMUohuImJifjf//6HwMBAeHl54c6dO2jZsiUAICAgACNGjEDfvn1lGhDHAAZwgQuCEQzCFz+uaz49JMABB65wVfovv7KQk5OD3JRcuDQro887QnTXKwFl6fP8/HwkJCRIFNPExETo6OiUEFMLCwvxc1NTU6l8xrW0tBAfH1/iuIEB4OICBAeLfBHKZkmpRzkcwNVVPkFwxG2qykj3/PnzGDt2LKKjo1GvXj2F2REbG4s1a9Zg3759GDp0KGbPno0mTZqUKDdy5Ejo6+vD399fpvaEIxy90As5yKn0tVrQwhVcgS1KD5ZU03n48CGmTp2Kd+/eISkpCTk5OahduzZuFNyAI8dRafv848ePYgEta5SampoKIyOjUkemRc9NTEyKeeIoivBwoFcvIKfy3Q0tLeDKFcBWyt2t8iNdPp+PCRMmYNOmTQoT3NevX2PlypU4fPgwvL29ER0dDWNj4zLLr1mzBlZWVhgxYgRsbEqZ2JMSdrCDP/wxEzMrJQJa0II//JngSqB+/fq4ceMGCgsLAQB16tTBH3/8ga6crgrpcyJCenq6xLnT2NhY8Pn8EkLavn179OnTR/zawMBAfAuv7NjZAf7+wMyZlRNeLS3RddIW3PJQCdFdvXo1LC0t8f3338u97efPn8PPzw/Hjx/H+PHj8fTp0woFDDcwMMCyZcvg4+ODa9euyTRQty98AQAzMRO5yC152/sZHHCgCU34w198HaN0GjVqBEtLS0RERICI0KRJE8yaNQuA9PtcKBQiJSVF4u1+bGws1NTUSoxK7ezs4OHhIX7duHFjlcvS4fup22bOFPndSppq4HBEi2f+/v9dJ0+q/fTCixcv0K1bN9y/f1/qgZAlER0djRUrVuDs2bOYNGkSJk+eXOmUOEKhEPb29vD29sa4ceNkZOl/3MVd+MEPoQgFBxzkIld8ThOaIBBc4Yp5mMdGuBIgIhw5cgRTp07F4MGDcfr0abx8+RIXLlyAg4NDsbIV6fP+wv4YkzwGjf9tXKaYJiQkQFtbW+LtvqmpqThlUk3l7l3Azw8IDRWJa+5/3Q1NTZEYu7oC8+bJdoSrspkjiAj9+/dH3759MXPmTLm0+fDhQyxbtgxXr17Fr7/+igkTJqBhw4ZfXd+jR4/Qt29fREVFwcDAQIqWlk0KUrAbuxGJSKQhDTrQgTWsMQqjFL6Ao+zEx8djwoQJePbsGQIDA/Htt98iOjoaPB4Pv/32W4nyOTk5iIuLQ3RyNA5pHMKTuk+QhjQI3guACCD/z3ykPUuDoaGhxBV+ExMTqKuXsXuFUYKUFFHmiMhI0cYHHR2RW9ioUYrPHFGtRffQoUNYvnw57t27BzU1NZm2defOHSxbtgx3797FzJkzMX78eKnNH8+YMQMfPnzA7t27pVIfQ/oQEXbt2oW5c+fC19cX8+fPB5/Plzh3GhcXh48fP5Zwj/pSWA0NDatV6iFG+aik6GZkZMDCwgKHDx+ucGLEr+HatWtYunQpHj9+jDlz5sDb2xuamppSbSMrKwuWlpbYu3cvevXqJdW6GZVHKBTi/fv3YvF89OgRAgMDkZ2djVatWiEjIwOxsbGoVatWmX6nRa91dXVVbv6UUT4q6b2waNEiuLq6ykRwiQgXL17E0qVL8fbtW8ybNw8jR46UmXtMUUCcCRMm4OHDh0rhhqOqFBYWiv1PyxqlJiQkoEGDBjA1NUVBQQH+/fdfODg4wMvLC82aNROLalWmlRg1l2o50r179y4GDhyI6Oho6OrqSq1eIkJYWBiWLVuGDx8+YMGCBRgyZIjMpy6K2v7+++9hb2+PefPmybw9VeTL2/3ShDUlJQUGBgYSd0eZmJjg5cuXGDNmDNTV1bFz5060adNG0W+PUY1QqZHu5wFtpCW4QqEQJ06cwLJly8Dn87Fw4UL88MMPcvVT5HA42LRpE+zs7PDjjz+Kd68xRGRmZkqcO42NjUVWVlYJMW3VqhUcHBzEx42MjCTOn+bn52PlypXYtGkTli5dil9++UWm7nyMmke1E92AgADUq1dPKgFtBAIBgoKCsHz5ctSpUweLFi3CoEGDFPYla9GiBWbMmIHJkyfj5MmTNWIukIjE86eSRqlFfrCfu0d16tQJAwcOFIusnp5elfosPDwcY8aMQZMmTXD//v1SdxIyGFWlWk0vJCQkwMbGBleuXIGFhcVX11NYWIgDBw5gxYoVaNSoERYtWgQXFxelELn8/Hx07NgRy5Ytg6enp6LNqRKFhYVITEyUuMIfHx+P+vXrS7zdL5o/ldX/T05ODhYvXox9+/Zh7dq1GDJkiFJ8FhjVF5WZXpg+fTrGjh371YKbn5+PvXv3ws/PD2ZmZti0aROcnJyU6gtWt25dbNu2DUOHDkXfvn2V1tmdz+cjPj5e4u6o5ORk6OnplRDTDh06FBuxStsbpDJcvnwZ48aNg62tLSIjIyu0m5DBqArVZqR77tw5/PLLL4iOjoaWllalruXz+QgMDMSqVatgbm6OhQsXSi0ljqwYNWoUGjdujLVr18q97aysrHLjn2ZmZsLExESiD6qRkZFcFiG/hoyMDMyZMwcnT57E1q1b4ebmpmiTGCpEtR/pFgW02bx5c6UE9+PHj9ixYwf8/f3RuXNnHDlyBN98840MLZUea9asgaWlJUaMGIGOHTtKpU4iwocPHySKaVxcHAoLC0sIqY2NDVxdXcWv9fX1q+0C06lTp+Dj4wMXFxdER0dDW1tChg0GQ8pUC9FduXIlrK2tMWDAgAqVz8rKwpYtW7Bu3Tr06NEDJ0+eRKdOnWRspXTR19fHihUr4OPjgxs3bpQrcAKBAElJSRLdpeLi4qCpqVliVGpvb19shKqtra1UUy7SIiUlBdOmTcOtW7ewZ88e9O7dW9EmMWogyiG6ycmijdIREUBGBqCtDdjYAKNH41laGjZv3owHD8pPMJeWloZNmzZh06ZN6Nu3Ly5evAhLS0vZ2y8jvL29sWvXLmzduhUDBgyQuMKflJQEXV3dErf7VlZWxUS2slMzqgAR4eDBg/j1118xbNgwREZG1sh+YCgHip3TDQ8XhQQKCxO9/jznxqeQQA+NjfHY3R1DJMxtvn//HuvWrcO2bdvg5uaGefPmoW3btrKzW4pkZ2dLFNPXr18jLS0NZmZmaNq0aZmr+8bGxmwnWynExsbC19cXr1+/RmBgILp27apokxg1AOWc0w0IkBz88lNMtg6vX6Pj9u1AmzYlgl8mJibC398fu3btwg8//IC7d++WmaVV3hARUlNTyw2IUlpCPisrKzg7O4uP+/v7Izk5GXv37lX026o2CIVC7Ny5EwsWLMCkSZPA4/HYjxJDKVCM6BYJbgXCvHOIROWKQjf6+iI2NharV6/G/v37MWzYMERERMDMzEzGRv9HUUK+8lb4NTQ0SoxKu3XrVkxkdXR0yp0/XbJkCSwsLHDp0iU4OjrK6V1WX168eIFx48YhJydHqZKUMhiAIkQ3PLyE4OYBmADgPIBUAK0A+AFw+fy6nBzQjBnwO3cO/pcvY8yYMYiJiYGRkZFUzcvPzxf7n5YlpkUJ+b4cofbr10/qCfkAUVqYjRs3wtfXF48ePWJxVctAIBBg/fr18PPzw/z58zF16tRqk3KGUXOQv+j6+RUP5w6gEEATAFcANAUQCmAwgEgAzT8vyOfD/fFj/PLsGfT09Crd9MePH8t1l/o8Id/no9RvvvlG/NzY2Fjuwjdo0CDs2rUL/v7+WLBggVzbrg5ERUXB29sb9evXx+3bt9GqVStFm8RglIp8F9IqnqQeNgAWA+B+eaKUJPWfJ+STdMvP5/MrFFBaWUdHr1+/hq2tbbF07jWdvLw8+Pn5YcuWLfDz88OYMWNU0t2NUb1QnoW0CmZGSALwDEBpzl4CIpwZPBgHzMyKCauamloJIe3atSs8PT3Fr6t7Qr7mzZtj1qxZmDhxIkJDQ6v1e5EGt2/fxpgxY9CyZUs8fPgQpqamijaJwSgX+YpuRES5o9wCAEMBjARgXsr52nl5aJKeDqeRI4uJrLLGKJA206dPx759+8Dj8eDl5aVocxTCx48fsWjRIvz999/YsGEDBg8eXON/gBjVB/mKbkaGxNNCAMMB1AWwWUI5azMzWI8aJT27qhFqamoICAjAkCFD0K9fvxqXveDixYsYN24cvv32W0RFRX3V3D6DoUjku3lewh53AjAGoqkFHgCJYVJ0dKRqVnWjZ8+e6NevHxYvXqxoU+RGeno6xo0bh1GjRmHjxo3Yv38/E1xGtUS+omtjI1oIKwVfAI8BhACQGOhPU1OUS7mGs3r1avz9998V2h5d3Tlx4gSsrKygpqaGqKioCsfgYDCUEaXwXngDkWuYOorPd2yHaH63GKV4L9RUAgMDsWPHDty4cUNpPS6qQnJyMqZMmYJ79+5h586dcHBwULRJDEaFkOS9IN+RroEB4OICfLHo0Qyi6QU+gOzPHiUEl8MBXF2Z4H5i9OjRUFNTw59//qloU6QKEWH//v2wtrZGs2bNEBERwQSXoTLIf3PEvHnAmTMV2gJcAk1N0fUMAECtWrUQEBCA3r17w8PDA4aGhoo2qcq8e/cOPj4+iI2NxalTp2BrW+pggcGotsg/CrWdHeDvD1Q2tJ6Wlug69iUshrW1NUaPHo0ZM2Yo2pQqIRQKERAQgM6dO+Pbb7/F3bt3meAyVBLFBLwpihYmKcpYERyOaITr718iyhhDxOLFi2FhYYELFy7AyclJ0eZUmmfPnmHcuHHIz8+vctJRBkPZUVy+FV9f4MoVwMNDtDj2ZXJCTU3RcQ8PUTkmuGVSr149bNq0CRMmTEBeXp6izakwhYWFWL16Nbp37w5PT09cu3aNCS5D5VGOxJQpKaItwpGRQFqayA/X2hoYNYotmlWCQYMGwdbWFosWLVK0KeXy6NEjeHt7o3HjxtixY4fSxEFmMKSBJO8F5RBdhlR48+YNunTpglu3bqF169aKNqdU8vLysGzZMmzfvh0rV67E6NGj2RZehsqhPC5jDJnSrFkzzJkzBxMnToSkH1NFcfPmTXTq1AlRUVF4+PAhvL29meAyahxMdFWMadOmIT4+HkeOHFG0KWKys7Mxbdo0cLlc/PHHHzh69ChMTEwUbRaDoRCY6KoYRQFxfv31V2RmZiraHJw7dw7W1tZIS0tDZGQkvLy82OiWUaNhoquC9OjRAy4uLgpdUEtLS4O3tzfGjh2LgIAA7NmzB7q6ugqzh8FQFpjoqiirVq3CwYMHce/ePbm3fezYMVhZWUFLSwtRUVHo37+/3G1gMJQVxaVgZ8gUXV1drFy5Ej4+Prh16xZevHgBHR0dGBgYyKzNxMRETJ48GRERETh48CB69uwps7YYjOoKG+mqMCNHjkTdunXh5OSE9u3bY9u2bTJph4iwZ88edOjQAW3atMGjR4+Y4DIYZcBGuipMaGgoYmJikJ6eDkDkxytt3rx5g/HjxyMpKQlhYWHo3Lmz1NtgMFQJNtJVYfz9/ZHzWTS32NhYqdUtFAqxefNmdOnSBQ4ODrhz5w4TXAajArCRrgpz4cIFbN68GfPnz0dOTg6eP38ulXqfPn2KMWPGgIhw7do1mJuXlkKUwWCUBhvpqjC1a9fG1KlT8fz5c9jZ2SElJQUAkIxkrMZqDMMwfI/vMQzDsBqrkYIUifUVFBTAz88P9vb2+Omnn3D16lUmuAxGJWEj3RqAiYkJ7ty5g6v8q/CEJ8IQBgDg47+0SUdxFIuxGC5wwTzMgx3sitXx4MEDeHt7w9DQEPfu3UOzZs3k+h4YDFWBjXRrCAEIQH+N/ghGMPif/j4nF7ngg49gBKMXeiEAAQAAPp+PefPmwdnZGdOmTUNYWBgTXAajCrCRbg0gAAGYiZnIQfkpkgiEHORgJmbi9avXCO4fDBsbG0RERMDIyEgO1jIYqg0b6ao44QgXCe7mHMAWopTLo74odAGAOQAtAI4A3gA5yMF6s/UYEzAGR44cYYLLYEgJJroqjh/8kItcwATAQgDeXxR4D8ATwFIAqRAJ84+iUwVqBbjd+7b8jGUwagBMdFWYZCQjDGEgkEhY3QF8GXPmKABLAD8A0ACwBMAjAE9EUw2hCC3Xq4HBYFQcJroqzG7sLr9QNIAOn72uB6DVp+MAOOBUrB4Gg1EhmOiqMBGIKOGlUIJsANpfHNMGkCV6motcRCJSBtYxGDUTJroqTAYyyi9UH8CXsc4zATT472Ua0qRoFYNRs2Giq8JolxjCloIlRHO4RXwE8PLT8U/oQEe6hjEYNRgmuiqMDWygAQ3Ri0IAfACCTw/+p2MeAKIA8D4d+wOADUQuZAA0oQlrWMvXcAZDhWGiq8KM+twhdxkATQArAez/9HwZAH2IBHcBAB0AtwEc/O8yAhWvh8FgVAkmuiqMAQzgAhdwwBG5gtEXjyWfCvYB8ARALoDLAJqLDnPAgStcoQ99eZrNYKg0THRVnHmYB01oftW1mtDEPMyTskUMRs2Gia6KYwc7+MMfWtCq1HVa0II//GELWxlZxmDUTFjAmxqAL3wBADMxE7nIFe1QKwMOONCEJvzhL76OwWBIDzbSrSH4whdXcAUe8IAGNEpMOWhCExrQgAc8cAVXmOAyGDKCjXRrELawBQ88pCAFu7EbkYhEGtKgAx1YwxqjMIotmjEYMoaJbg1EH/qYhVmKNoPBqJGw6QUGg8GQI0x0GQwGQ44w0WUwGAw5wkSXwWAw5AgTXQaDwZAjTHQZDAZDjjDRZTAYDDnCRJfBYDDkCIdIwj58DicFwBv5mcNgMBgqQTMiKnV7p0TRZTAYDIZ0YdMLDAaDIUeY6DIYDIYcYaLLYDAYcoSJLoPBYMgRJroMBoMhR/4fL2KGX6Og2QQAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "visualization.genome_graph(g3)" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+\n", + "| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 19 | 20 |\n", + "| 0->3 | 0->4 | 1->3 | 1->4 | 2->3 | 2->4 | 0->5 | 5->3 | 2->5 | 0->6 | 6->4 | 2->7 | 7->3 | 0->7 | 1->8 | 8->4 |\n", + "| DIS | DIS | | DIS | DIS | | | | | | | | | | | |\n", + "+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+\n", + "+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+\n", + "| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |\n", + "| 0->3 | 0->4 | 1->3 | 1->4 | 2->3 | 2->4 | 0->5 | 5->3 | 2->5 | 0->6 | 6->4 | 2->7 | 7->3 | 0->7 | 7->8 | 8->3 | 2->8 | 2->9 | 9->5 |\n", + "| DIS | DIS | | | DIS | | | | DIS | | | | DIS | | | | | | |\n", + "+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+\n", + "Disjoint(g1, g2): [16, 17, 18, 14, 15]\n", + "Excess(g1, g2): [19, 20]\n" + ] + } + ], + "source": [ + "visualization.genome_table(g1)\n", + "visualization.genome_table(g2)\n", + "\n", + "print(\"Disjoint(g1, g2):\", _disjoint(g1, g2))\n", + "print(\"Excess(g1, g2):\", _excess(g1, g2))" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Group #1: ['g1', 'g3']\n", + "Group #2: ['g2']\n" + ] + } + ], + "source": [ + "NAMES = {\n", + " g1 : \"g1\",\n", + " g2 : \"g2\",\n", + " g3 : \"g3\"\n", + "}\n", + "#specify([g1,g2,g3], 1, 1, 0.1)\n", + "\n", + "IMPORTANT_FACTOR = \"excess\"\n", + "\n", + "if IMPORTANT_FACTOR == \"excess\":\n", + " groups = specify([g1,g2,g3], 3, 0.5, 0.1)\n", + "else:\n", + " groups = specify([g1,g2,g3], 0.5, 3, 0.1)\n", + "\n", + "for index, group in enumerate(groups, start=1):\n", + " print(f\"Group #{index}: {[NAMES[individual] for individual in group]}\")" + ] } ], "metadata": { @@ -198,7 +468,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.12" + "version": "3.10.1" }, "orig_nbformat": 4, "vscode": { diff --git a/Abschlussprojekt/node.py b/Abschlussprojekt/node.py new file mode 100644 index 0000000..a8d11c4 --- /dev/null +++ b/Abschlussprojekt/node.py @@ -0,0 +1,14 @@ +import dataclasses +from enum import Enum + + +class NodeType(Enum): + INPUT = 1 + HIDDEN = 2 + OUTPUT = 3 + + +@dataclasses.dataclass(frozen=True) +class NodeGene: + id: int + type: NodeType diff --git a/Abschlussprojekt/visualization.py b/Abschlussprojekt/visualization.py index d372b12..260e865 100644 --- a/Abschlussprojekt/visualization.py +++ b/Abschlussprojekt/visualization.py @@ -1,10 +1,10 @@ -import itertools - import matplotlib.pyplot as plt import networkx as nx import numpy as np +import tabulate from genome import Genome, NodeType, mutate +from node import NodeType def _find_layer(g: nx.DiGraph, hidden_node: int, inputs: list[int]) -> int: @@ -13,10 +13,10 @@ def _find_layer(g: nx.DiGraph, hidden_node: int, inputs: list[int]) -> int: paths += list(nx.all_simple_paths(g, input_node, hidden_node)) path_lengths = [len(path) for path in paths] - return max(path_lengths) + return 2 if len(path_lengths) == 0 else max(path_lengths) -def genome(genome: Genome): +def genome_graph(genome: Genome): graph = nx.DiGraph() # Add nodes @@ -49,19 +49,35 @@ def genome(genome: Genome): plt.subplot() pos = nx.multipartite_layout(graph, subset_key="layer") - nx.draw_networkx_nodes(graph, pos, nodelist=inputs, label=inputs, node_color="#ff0000") - nx.draw_networkx_nodes(graph, pos, nodelist=hidden, label=hidden, node_color="#00ff00") - nx.draw_networkx_nodes(graph, pos, nodelist=outputs, label=outputs, node_color="#0000ff") + nx.draw_networkx_nodes(graph, pos, nodelist=inputs, node_color="#ff0000") + nx.draw_networkx_nodes(graph, pos, nodelist=hidden, node_color="#00ff00") + nx.draw_networkx_nodes(graph, pos, nodelist=outputs, node_color="#0000ff") + nx.draw_networkx_labels(graph, pos) nx.draw_networkx_edges(graph, pos) +def genome_table(genome: Genome): + table = [ + (conn.innovation_no, "->".join([str(n) for n in conn.nodes]), "DIS" if conn.disabled else "") + for conn in genome.connections.values() + ] + table.sort(key=lambda c: c[0]) + table = zip(*table) + + print(tabulate.tabulate(table, tablefmt="psql")) + + if __name__ == "__main__": g1 = Genome.new(3, 2) g1.add_connection(0, 4, 0.5) mutate(g1) mutate(g1) mutate(g1) + mutate(g1) + mutate(g1) + mutate(g1) # mutate(g1) - genome(g1) - plt.show() + # genome_graph(g1) + # plt.show() + genome_table(g1)