Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/rune75/coupledgraphs

Example of coupled adjacency lists in python
https://github.com/rune75/coupledgraphs

adjacency-lists edges graph jupyter-notebook python vertex

Last synced: 18 days ago
JSON representation

Example of coupled adjacency lists in python

Awesome Lists containing this project

README

        

{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Adventures of coupled adjacency Lists and handling of graphs in Python\n",
"======================================================================\n",
"\n",
"This notebook is an investigation of the use of coupled adjacency lists in Python. The usecase could for example be to find combined paths over multiple connected circuits in a system.\n",
"\n",
"The interface between different circuits would be common global vertices defined in connectors or cables between the circuits. \n",
"\n",
"Table 1: Vertices\n",
"-----------------\n",
"| Global Vertex | Adjacent vertices |\n",
"|--------|-------------------|\n",
"| A | tbl1.A, tbl1.B |\n",
"| B | tbl1.C, tbl1.A |\n",
"| C | tbl1.D, tbl1.B |\n",
"| D | tbl1.C, tbl1.D |\n",
"\n",
"Table 2: Vertices\n",
"-----------------\n",
"| Global Vertex | Adjacent vertices |\n",
"|--------|-------------------|\n",
"| A | tbl2.A, tbl2.B |\n",
"| B | tbl2.B, tbl2.A |\n",
"| C | tbl2.C, tbl2.D |\n",
"| D | tbl2.D, tbl2.C |\n",
"\n",
"The adjacency lists are coupled by the global vertices. Now let see how this can be implemented in Python."
]
},
{
"cell_type": "code",
"execution_count": 92,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"dict1:\n",
"A ['tbl1.A', 'tbl1.B']\n",
"B ['tbl1.C', 'tbl1.D', 'tbl1.E']\n",
"C ['tbl1.E', 'tbl1.B', 'tbl1.A']\n",
"D ['tbl1.B', 'tbl1.F']\n",
"\n",
"dict2:\n",
"A ['tbl2.A', 'tbl2.B']\n",
"B ['tbl2.C', 'tbl2.D']\n",
"C ['tbl2.E', 'tbl2.F']\n"
]
}
],
"source": [
"# set up two lists\n",
"list1 = [['A', 'tbl1.A', 'tbl1.B'],\n",
" ['B', 'tbl1.C', 'tbl1.D', 'tbl1.E'],\n",
" ['C', 'tbl1.E', 'tbl1.B', 'tbl1.A'],\n",
" ['D', 'tbl1.B', 'tbl1.F']]\n",
"\n",
"list2 = [['A', 'tbl2.A', 'tbl2.B'],\n",
" ['B', 'tbl2.C', 'tbl2.D'],\n",
" ['C', 'tbl2.E', 'tbl2.F']]\n",
"\n",
"\n",
"# Convert the lists to dictionaries, Yes we could also set up the dictionaries directly, but this is a more general approach\n",
"# since data is often imported from files or databases in list format\n",
"dict1 = {x[0]: x[1:] for x in list1}\n",
"dict2 = {x[0]: x[1:] for x in list2}\n",
"\n",
"#print the dictionaries row by row\n",
"print('dict1:')\n",
"for key in dict1:\n",
" print(key, dict1[key])\n",
" \n",
"print('\\ndict2:')\n",
"for key in dict2:\n",
" print(key, dict2[key])\n",
" "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can now convert the dictionaries to adjacency lists. and plot the graphs. The folowing code will plot the two diffrent Lists with diffren colors green an blue."
]
},
{
"cell_type": "code",
"execution_count": 93,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAApQAAAHzCAYAAACe1o1DAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABeIUlEQVR4nO3de1xUdeL/8dfgUUjRhCRLU7mZX9HMQDO7mZUaprtmbVlpVwzNy9aWu21qqynbXkr3m6bwjcpdM7PLtqUrfmU3s/2G1Y+8lGEpMGq6Vii4SSo6zPz+ODCCDMPAmQEG3s/HYx4wc875nM8olzefq83lcrkQEREREWmgkKaugIiIiIgENwVKEREREbFEgVJERERELFGgFBERERFLFChFRERExBIFShERERGxRIFSRERERCxRoBQRERERSxQoRURERMQSBUoRERERsUSBUkREREQsUaAUEREREUsUKEVERETEEgVKEREREbFEgVJERERELFGgFBERERFLFChFRERExBIFShERERGxRIFSRERERCxRoBQRERERSxQoRURERMQSBUoRERERsUSBUkREREQsUaAUEREREUsUKEVERETEEgVKEREREbFEgVJERERELFGgFBERERFLFChFRERExBIFShERERGxRIFSRERERCxRoBQRERERSxQoRURERMQSBUoRERERsUSBUkREREQsUaAUEREREUsUKEVERETEEqOpKyAiTaP0VCn5xfmUOcoINUKJj4wnvF14U1dLRESCkAKlSCuSV5RHem466/esp7CkEBcu9zEbNmIjYhndezRTBk0hISqhCWsqIiLBxOZyuVx1nyYiwcxeYid1XSrZhdkYNgOHy1HruZXHR8SOIGNMBjERMY1YUxERCUYKlCItXObWTGZkzcDhdOBw1h4kz2aEGBghBkuSl5CSmBLAGoqISLDTpByRFiztwzQmr53MScfJeoVJAIfTwUnHSSavnUzah2kBqqGIiLQECpQiQcpmszF9+vRaj2duzWTOpjmwDZgHlDT8XnM2zeGlrS81vAAREWnRFChFmrmcnBzmzZvH0aNHfb7GXmJnRtYMzwedmCHzNWARkAa8AGwGTtde5vSs6dhL7ABER0djs9mw2WyEhITQuXNnLrnkEh566CE++eQTn+spIiItgwKlSDOXk5PD/Pnz6xUoU9el1t7FfRp4FzgO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IiLid3lFeaTnppOVn0VBcQEuzsQNGzbiIuNIjk9m6qCp9I3q24Q1FX9QoBQREZGAKj1VSn5xPmWOMkKNUOIj473ugCPBR4FSRERERCzRLG8RERERsUSBUkREREQsUaAUEREREUsUKEVERETEEgVKEREREbFEgVJERERELFGgFBERERFLFChFRERExBIFShERERGxRIFSRERERCxRoBQRERERSxQoRURERMQSBUoRERERsUSBUkREREQsUaAUEREREUsUKEVERETEEgVKEREREbFEgVJERERELFGgFBERERFLFChFRERExBIFShERERGxRIFSRERERCxRoBQRERERSxQoRURERMQSBUoRERERsUSBUkREREQsUaAUEREREUsUKEVERETEEgVKEREREbFEgVJERERELFGgFBERERFLFChFRERExBKjqSsg/lF6qpT84nzKHGWEGqHER8YT3i68qaslIiIirYACZRDLK8ojPTed9XvWU1hSiAuX+5gNG7ERsYzuPZopg6aQEJXQhDUVERGRlszmcrlcdZ8mzYm9xE7qulSyC7MxbAYOl6PWcyuPj4gdQcaYDGIiYhqxpiIiItIaKFAGmcytmczImoHD6cDhrD1Ins0IMTBCDJYkLyElMSWANRQREZHWRpNygkjah2lMXjuZk46T9QqTAA6ng5OOk0xeO5m0D9MCVEMRERFpjRQomxGbzcb06dM9HsvcmsmcTXPMJ9uAeUBJw+4zZ9McXtr6UsMuFhERETmLAmUTyMnJYd68eRw9etSn8+0ldmZkzaj9BCdmyHwNWASkAS8Am4HTni+ZnjUde4nd/Tw6OhqbzebxcdNNN/lUTxEREWmdNMu7CeTk5DB//nzuu+8+OnfuXOf5qetSvXdxnwbeBS4CBgEdgG+ADwA7cC9gq36Jw+kgdV0qGydtdL82cOBAHnvssRrFd+vWrc46ioiISOulQNnM5RXlkV2Y7f2kNsADQM8qryUBnTFDZSEQV/0Sh9NBdmE2u4p20TeqLwDdu3dn4sSJ/qm4iIiItBrq8m5k8+bNY9asWQDExMS4u5X37t3rPmfVqlX06dOHsLAwrrvyOtrsa+O9UIPqYbJS34qPh2u5LMRgee7y+r4FERERkWrUQtnIxo8fz+7du1m9ejWLFy+mS5cuAERFRQGwefNm1qxZw8yZMwkNDWX272dTvrIc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0ShQSg02m63WY3v27AEgPjIeW+XikUeAtpjrS3pzAHgd6Ab8DHM5IW/1wEZ8ZC0DLEVERKTZUKCUGion4HjaKWfLli1s3bqV8HbhxEbEwn+ArzHXkfT21VQErMIcc3kXZgD1du5RiIuMI7xdeAPegYiIiDQmjaGUGpKSkgCYPXs2EyZMoG3btowdOxaA/v37M2rUKGbOnElXe1cK3ikwL7rOS4FlwErgJHAV5gSeqiKBHlWevwBEQ/KyZMvvRURERAJPgVJqGDx4MAsWLCA9PZ0NGzbgdDqx2829tYcNG8bQoUOZP38++/bvgwjgp8AFXgo8DvxQ8fk/PBy/lOqBEsAFUwdNtfhOREREpDHYXC6Xq6krIcFr5MqRbNq7qe79vOvBCDEYHj28xl7eIiIi0jxpDKVYkjEmAyPEvw3dRohBxpgMv5YpIiIigaNAKZbERMSwJHmJX8tcmryUmIgYv5YpIiIigaNAKZalJKawcPjCuk/0Qdr1aTyY+KBfyhIREZHGoTGU4jeZWzOZkTUDh9NRrzGVRoiBEWKwNHmpwqSIiEgQUqAUv7KX2Eldl0p2YTZGiOE1WFYeHxE7gowxGermFhERCVIKlBIQeUV5pOemk5WfRUFxAS7OfJnZsBEXGUdyfDJTB02lb1TfJqypiIiIWKVAKQFXeqqU/OJ8yhxlhBqhxEfGawccERGRFkSBUkREREQs0SxvEREREbFEgVJERERELFGgFBERERFLFChFRERExBIFShERERGxRIFSRERERCxRoBQRERERSxQoRURERMQSBUoRERERsUSBUkREREQsUaAUEREREUsUKEVERETEEgVKEREREbFEgVJERERELFGgFBERERFLFChFRERExBIFShERERGxRIFSRERERCxRoBQRERERSxQoRURERMQSBUoRERERsUSBUkREREQsUaAUEREREUsUKEVERETEEgVKEREREbFEgVJERERELFGgFBERERFLFChFRERExBIFShERERGxRIFSRERERCxRoBQRERERSxQoRURERMQSBUoRERERsUSBUkREREQsUaAUEREREUsUKEVERETEEgVKEREREbHk/wPMwDeRUU85MAAAAABJRU5ErkJggg==",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Convert the dictionaries to graphs\n",
"import networkx as nx\n",
"import matplotlib.pyplot as plt\n",
"\n",
"G1 = nx.Graph()\n",
"G2 = nx.Graph()\n",
"\n",
"# build the graph from the dictionaries\n",
"for key in dict1:\n",
" for value in dict1[key]:\n",
" G1.add_edge(key, value)\n",
" \n",
"for key in dict2:\n",
" for value in dict2[key]:\n",
" G2.add_edge(key, value)\n",
" \n",
"# draw the graph\n",
"nx.draw(G1, with_labels=True, node_color='b')\n",
"nx.draw(G2, with_labels=True, node_color='g')\n",
"plt.show()\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now lest merge the two graphs with their common vertices and plot the merged graph."
]
},
{
"cell_type": "code",
"execution_count": 94,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAApQAAAHzCAYAAACe1o1DAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB7MklEQVR4nO3de3zO9f/H8cfFNRuWQ0glbAw5fudMik3mkKiofgol7IscOkgqi43RmYpvyJQyJNHx61wOZSI5FCPMUOEbqVhsbPv8/vhsa2PnXdvnOjzvt9t1u3Zdn8/n/XldM/u89nm/36+3zTAMAxERERGRQipldQAiIiIi4tqUUIqIiIhIkSihFBEREZEiUUIpIiIiIkWihFJEREREikQJpYiIiIgUiRJKERERESkSJZQiIiIiUiRKKEVERESkSJRQioiIiEiRKKEUERERkSJRQikiIiIiRaKEUkRERESKRAmliIiIiBSJEkoRERERKRIllCIiIiJSJEooRURERKRIlFCKiIiISJEooRQRERGRIlFCKSIiIiJFooRSRERERIpECaWIiIiIFIkSShEREREpEiWUIiIiIlIkSihFREREpEiUUIqIiIhIkSihFBEREZEiUUIpIiIiIkWihFJEREREikQJpYiIiIgUiRJKERERESkSJZQiIiIiUiRKKEVERESkSJRQioiIiEiRKKEUERERkSJRQikiIiIiRaKEUkRERESKxG51AOKGEhLg8GFISgJvbwgIAF9fq6MSERGRYqKEUhwjNhbmzIGVK+HIETCMf7bZbFCnDtxxBwwfDo0aWReniIiIOJzNMDJf+UUKKD4ehg2DdevAbofk5Jz3Td8eEgJz54K/f8nFKSIiIsVGYyil8KKizLuNGzaYr3NLJjNv37DBPC4qqnjjExERkRKhhFIKZ+pUCA2FxMS8E8krJSebx4WGmu2IiIiIS1NCKTmy2WyMGjXq6g1RURAWlvFyAWADjhbmJGFhMH9+oeITERER56CEUoiJiSE8PJw///wz753j42H06Dx32w48CrQEvDATzhyNGmW2m4mfnx82my3bR2JiYt5xioiISInRLG8hJiaGiIgIBg0aRKVKlXLfediwfHVxrwSigGZAHeBgbjsnJ5vtrl2b5e3AwEDGjh171e5lypTJ8/wiIiJScpRQSv7FxpqzufNhBDAeKAuMIh8J5bp1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6NChQ5bJECJOo6TGG5fguGZxDnfeeSe33XYb48ePJyXF4fe9pRgpoRSPYBgGI0eO5OOPP2bp0qXcdtttVoeUo/79+7N161b++usvWrZsybp8lmYRcYRsy2alOXTokPlFQIA5xhGzBFA5wOHVA2028zziUWw2Gy+//DI//PADixYtsjocKQAllOIRwsPDmTt3LvPmzaN3795Wh5Onf/3rX+zYsYPWrVvTvXt3XnzxRY0pkhJRvnx5AP7888+rtm3dupWdO3eapbLq1OFn4FOgK5CPglv5cgA4DuZiAQUsySXuoV27dvTt25fnn3+exMREq8ORfNIYSnF7s2bNYvLkybzwwgsMHjzY6nDy7dprr+W///0vkyZN4tlnn+W7775jwYIFXHPNNVaHJm6sZcuWgFlsul+/fnh5edGrVy8AmjRpQrdu3Xj44Yc5//ffrEk7JiKPNo8BC9O+3pH2HJn2XBsYmGnfhkAnYGOPHlna+PXXX4mOjr6qbV9fX+6+++58fDJxJdOmTaNRo0bMmjWLp556yupwJD+sXPdRpLh98MEHhs1mM5544gkjNTXV6nAK7eOPPzauueYao2HDhsaBAwesDkfc3JQpU4waNWoYpUqVMtfljo83AGPAgAFGUFCQARg2MJqDseGK9bizW8t7Qw7rcANGpyuOz3gvNjYjntzW8q5du7Z13ygpViNGjDAqV65snD171upQJB9Uh1Lc1rp16+jZsyf/93//x3vvvUepUq49wuPAgQPcc889/Prrr7z//vu6KyMlZv/+/UybNo3FixdTrVo1nnrqKYYPH45vnz6wYUO+1vPON7sdgoNh7VrHtSku6dSpUwQEBDBy5Eheeuklq8ORPLj2FVYkBzt27OCee+6hS5cuvPPOOy6fTALcfPPNbN++nZCQEO655x7CwsI0C1KK1e7du7nvvvto3LgxGzdu5I033iA+Pp6nnnoKX19fmDvXTAAdyW432xWPd/311zN27FjeeOMNfv75Z6vDkTy4/lVW5AoHDx6kR48eNG3alGXLluHl5WV1SA5zzTXX8NFHH/HCCy8wbdo07rzzTs6ePWt1WOJmtm3bRu/evWnevDk7d+7k7bffJi4ujlGjRlG2bKZVuf39YeZMx5581iyzXRHgqaeeomLFikycONHqUCQPSijFrZw4cYKuXbtSrVo1vvjii4wZq+7EZrPxzDPPsHr1arZv307r1q3Zs2eP1WGJG9i8eTNdu3alXbt2HDp0iPfff5+ffvqJoUOHUqZMmewPGjoUIiOz31ZQU6fCkCGOaUvcwjXXXMPEiRN57733+PHHH60OR3KhMZTiNv744w86duzIn3/+SUxMDDVr1rQ6pGIXHx9Pnz59+Omnn4iKiuLBBx+0OiRxMYZhsG7dOiIjI/n6669p1qwZYWFh9OnTh9KlC1AMKCoKRo82x1MWZEyl3W4+Zs1SMinZunz5Mo0aNaJ+/fr897//zboxIcFcojMpySyEHxCgclMW0R1KcQsXLlygV69enDhxgrVr13pEMgng7+/Pli1buPfee+nfvz+PP/44ly9ftjoscQGGYfDZZ5/Rtm1bunXrRmJiIp999lnGuMkCJZNg3qmMjTUn1EDeYyvTtwcHm8cpmZQceHl5MW3aNFauXMnGjRvNn5cxY8zksUIFaN4c2rUznytUMN8fM8bcT0qM7lCKy7t8+TJ9+vThq6++4quvvqJt27ZWh1TiDMNg1qxZPPnkk3To0IGlS5dSvXp1q8MSJ5SSksLy5cuZOnUqP/zwAx07diQsLIwuXbrkukpOgcTGwpw5sGoVxMWZBYHS2Wxm0fIePWDECGjY0DHnFLdmGAb3NG/OM/HxtDt3zvyDJLc74enbQ0LMSV4al1vslFCKSzMMg8GDBxMdHc3nn39O9+7drQ7JUl9//TX33Xcfdrud5cuXe2RyLdlLTk5m8eLFTJs2jZ9++omuXbsyYcIEOnbsWLwnVpekOEJUFCkjR5J66RIFmmaZPqRi5kzzLroUG3V5i0t75plnWLBgAQsWLPD4ZBLgtttuY+fOndSqVYuOHTvy9ttvWx2SWCwpKYl58+ZRv359Hn74YerXr8+2bdtYs2ZN8SeTYCaPgYHQtq35rGRSCmrqVAgNpXRBk0kw71ImJkJoqNmOFBsllOKyXnvtNV5++WVmzJhB//79rQ7Hadx4441s3LiRwYMHM2zYMEJDQ0lKSrI6LClhFy9eZObMmQQEBDBs2DBatWrFrl27+Oyzz2jTpo3V4YkAZtWKUaNG5bxDVBSEhbEAsAFHi3KysDCYP78oLUgulFCKS3r//fd56qmnePbZZ3n88cetDsfplClThtmzZzN//nwWLlxIx44dVRjYQ5w/f55XXnkFf39/nnjiCYKDg9m3bx8ffvghgYGBVocnHiomJobw8HD+/PPP/B8UH29WDsjBduBRoCXghZlw5mnUKLNdwM/PD5vNhs1mo1SpUlSqVImmTZvy73//m23btuU/TgGUUIoL+u9//8vgwYMZMmQIU9WFkavBgwfzzTffcPLkSVq2bGnOkBS39OeffzJlyhT8/PyYMGECvXv35qeffuL999+noSa+iMViYmKIiIgoWEI5bFiuE29WAlGYiWSd/LaZnGy2myYwMJCFCxfy/vvv88ILLxAcHMznn39Ou3btePLJJ/Mfq+DgNbNEildMTAz33Xcfd955J3PmzHHcrFQ31qpVK77//nv69etHly5deOWVV3j88cf1vXMTp0+f5vXXX2fWrFlcunSJ0NBQxo0b5zGls8RNxcbCunW57jICGA+UBUYBB/PTbnKy2e7+/QDUqFGDAQMGZNnlpZde4sEHH2TGjBnUq1ePESNGFOIDeB7doRSXsW/fPu68805atWrFkiVLsDt6DWE3Vq1aNdasWcMTTzzBk08+Sf/+/fn777+tDkuK4OTJk4wdOxY/Pz/eeOMNhg0bRnx8PG+++aaSSXEq4eHhjBs3DjBr56Z3Mx89ejRjn0WLFtGgQQN8fHxo2bIlm59/Ps9aptUxk8kCs9th9uwcN5ctW5aFCxdy7bXXMnXqVFQMJ390RRaXcOzYMbp160bNmjX57LPPsq4nLPlit9t55ZVXaN26NYMHD2bv3r18/PHH1K1b1+rQpACOHz/Oyy+/TFRUFD4+PowdO5bHHnuMKlWqWB2aSLb69OnDwYMHWbJkCTNmzKBq1aqA+YcuwKZNm1i6dCljxozB29ubt956i+67drHdMGhSHAElJ5s1UnPh6+vLPffcw/z584mNjaVx48bFEYlbUUIpTu/MmTN069aNMmXKsHr1aipVqmR1SC7t/vvvp1GjRtxzzz20atWKxYsX06NHD6vDkjwcPnyYF198kffee4+KFSvy/PPPM3LkSP1/EKfXrFkzWrRowZIlS7j77rvx8/PLsn3v3r3s2LGDli1bAtDvzjtp0LgxE4EVxRVUXBzkcSe/SZMmabvGKaHMB3V5i1NLSEjgjjvu4I8//mDNmjXccMMNVofkFpo0acJ3333HrbfeSs+ePZkyZQqpqalWhyXZiI2NZcCAATRo0ID//ve/vPjiixw9epQJEyYomRS30L59+4xkEqDWpUvcBawBUorrpIYBeSxT65tWM/X8+fPFFYVbUUIpTuvSpUv06dOHAwcOsGrVKurVq2d1SG6lUqVKfPrpp0yaNImJEydyzz338Ndff1kdlqTZtWsX9957L40bN2bz5s28+eabHDlyhLFjx2Zc6ETcwVW/25OSqA9cAE4X54nzGBuZkJAAwDXXXFOcUbgNJZTilFJTU3n44YfZtGkTn3zyCS1atLA6JLdUqlQpJk2axOeff86mTZto06YNsbGxVofl0b799lvuvPNOWrRowe7du4mKiuLw4cOMHDlSY4fFM3h7l8x58qh0sXfvXgACAgJKIhqXp4QyIQF274Zt28zntL9IxDqGYfD444+zdOlSFi1aROfOna0Oye3deeedfPfdd3h5edGmTRs++ugjq0PyKIZhsHHjRrp06UL79u05cuQI0dHRHDhwgCFDhlCmTBmrQxQpktzKlB06dCjrGwEBHATKAdWKLyDwynkhx4SEBD7++GNq1qypOq755JkJZWwsjBkDAQFQoQI0bw7t2pnPFSqY748ZY+4nJW7atGnMnDmTt956i3vvvdfqcDxGvXr1+Pbbb+nZsyf33Xcf48ePJzmXosJSdIZhsHr1am677TaCg4P5/fff+eijj9i7dy/9+/dXaSxxG+XLlwfItrD51q1b2blzZ8brn//4g09tNroCpR10/gPA8cxv1K2b4x3KixcvMnDgQM6ePcuECRNUszefPOu3VXy8WSF/3TqzDlV2F0vDMGd/zZ4NM2dCSAjMnQv+/iUfrweaN28eYWFhREREMHz4cKvD8Ti+vr588MEHtGnThqeffpqdO3eyZMmSjDIf4hipqal89tlnREZG8v3339O2bVs+//xzevbsqYuXuKX0STcTJkygX79+eHl50atXL8CcJNitW7csZYMoVYoIgJScp+UcAxamfb0j7Tky7bk2MDDTvg2BTsBGMK//PXrAZ5/x66+/Eh0dDZh3JWNjY1m2bBmnTp1i7NixDMu0qo7kwfAU8+YZho+PYdjthmGmjfl72O3mcfPmWf0J3N7y5cuNUqVKGSNHjjRSU1OtDsfjffnll0bVqlWN2rVrG99//73V4biF5ORk44MPPjCaNm1qAEanTp2MdevW6eddPMKUKVOMGjVqGKVKlTIAIz4+3gCMkSNHGtHR0Ua9evUMb29vo3nz5saGd9/Nci1+F8xjMr23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kWA2aNBA4y9LgGEY/PjjjxkJ5DfffMPly5epW7duxl3IoKAgypcvX3xBREXB6NHmz2IBfh5TS5WiVJkyMGuW7kyKiFhICaUnc5IxbMnJyezYsSOjezwmJobLly9z0003ZRl/ef311zsuzuKSkGDW30xKAm9vc6yqE3brnz17lvXr12ckkSdPnqRcuXIEBwdn3IUMKOnC4PHxMGwYrFtn/mGSW2KZtn2Ttzetv/+ecvmYMS4iIsVHCaWnc8IxbAkJCXz99dcZCeYPP/wAQJMmTQgJCaFLly507NjRecZfxsbCnDmwciUcOZJ19rzNBnXqwB13wPDhZgJvgZSUFL7//vuMBHLbtm2kpqbSuHHjjATy1ltvxcfHx5L4skj/fq5aRerhw1lXX7DZzKLlPXrw8513EtCrF8888wwRERFWRSsiIiihFGBdUBAhmzZhYK6IU2jFNIbtf//7X5bxl7/88gt2uz1j/GVISIg14y8LcUeNkBCYO7dEZiGfOnWKtWvXZhQW//3336lQoQIhISF0796dbt26UbNmzWKPoyiqlS3LjJEjGXDffdne8X322Wd5/fXX+emnn6hVq5aFkYqIeDYllB7us88+46677mJlnz70WLmywGPYsNvNRwmNYUufdZx5/OVff/1FhQoVCAoKyugiv/nmm4t3/GUhx/xlfL9mzoShQx0a0uXLl9m6dWvGXchdu3YB0LJlyyyFxb28vBx63uLy999/4+vry8KFCxkwYEC2+5w/f5769esTFBTEkiVLSjhCERFJp4TSgx0+fJhWrVoRHBzMihUrsB096tR33LKTnJzM999/n9E9vmXLFi5fvkyNGjWyjL+84YYbHHdSR81KjoyECROK1MTx48czEsj169dz/vx5qlatmlFYvGvXrjkXFndyR48exd/fn9WrV9OtW7cc93v33XcZPHgw33zzDR06dCjBCEVEJJ0SSg914cIF2rdvz4ULF9ixYwcVK1b8Z2OmMWzExV09JjBtDBsjRjjd8nZ///13lvGXe/bsAaBx48ZZxl9ec801ObZhs9kYOXIks2bNunpjpjGnCzBLKMUDfoUNuIBjThMTE7MUFt+/fz+lSpXKUli8RYsW+Sss7uS+++472rRpw/fff0+LFi1y3C81NZXWrVtjs9nYvn27W3x2ERFXo4TSAxmGwaBBg1i2bBnffvstzZo1y3lnF5m1nJPffvsty/jLn3/+GbvdTrt27ahfvz4AL774ItWqVcs4JseE8opZ8Qu4OqHcnvb+NuAHIBlzGcoc5TArPiUlhZo1a3Ly5EnmzZvHhQsXMgqLX7x4kRo1amQkkLfffjuVK1cuzLfHqa1atYo77riD48eP5znW8+uvv6Zjx468++67DBo0qGQCFBGRDKoi7YHefvtt3n//fRYuXJh7Mglm8hgYWCJxFYfrrruOBx54gAceeADDMDh8+HBGcrl48WISExNZunQpnTt3zugiz9GwYXmOl1wJRAHNgDrAwbwCTE42281UtzMhIYHp06dz8uRJ7HY7oaGhlClThttuu43JkyfTvXt3Gjdu7PY1Ok+fPg2QJdnPyW233cb999/Ps88+S9++fXO9Ay0iIsXAEI+yfft2o0yZMsajjz5qdSiWe+mllwzAeOqpp4ygoCCjTJkyBuYNRaNBgwbG+++/b/z666/mzvv2GYbZ+Z/xeDdt3/hM750C40La1yPTtl95XHaPnz75xHj55ZeNzp07G15eXgZglClTxrj11lsNHx8f49SpU9Z+syzw6quvGr6+vvne/+jRo4aPj4/x7LPPFmNUIiKSHQ028iBnzpyhb9++NG/enOnTp1sdjqXCw8MZP348AK+++iobN27k0qVLLFiwAIDff/+dhx56iBo1alCqVCkatGrFxnzcEawOlC1gLMnA6rvvZtKkSZQtW5YXX3yR8uXLExkZybJly7h06RJffvllAVt1fadPn87X3cl0tWvX5qmnnmL69OnEx8cXY2QiInIlJZQeIiUlhQcffJCLFy+ybNkyvL29rQ7JUn369OGBBx4AYMaMGSxcuJCFCxdy7733AnD99ddTpUoV7rvvPlq1asXfFy9yh2GwtxhisQNDb7yRs2fP8sUXX1CjRg0uXLhAv379uP766wkKCmLRokXFcGbnVtCEEmD8+PFUqVKFcePGFVNUIiKSHY2h9BDh4eF8+eWXrF271umLWZeEZs2a0aJFC5YsWcLdd9+Nn59flu179+5lx44dtGzZEs6f51iFCtwMTARWFEM85U6ezBifGR0dzS233JLx79SvXz8effTRQiVYrqwwn9fX15cXX3yRhx56iE2bNtGpU6diik5ERDLTHUoP8MUXXxAZGUlkZCS333671eG4hPbt25vJJEBcHLWBu4A1QEpxnNAw4PBhfv/9d9asWZNx9xSgb9++2Gw2Pvzww+I4s9MqbALdv39/2rRpw2OPPUZKSrH8a4mIyBWUULq5I0eOMHDgQHr37p0xZlDyVq9evX9eJCUBUB+4AJwurpMmJbF06VIuX75M8+bNOXz4MIcPH+bs2bO0bdvW47q9C5tQlipVijfeeIM9e/bwzjvvFENkIiJyJXV5u7GLFy/St29fqlSpwnvvvaeCz4VVUuNNvb0zksacVnw5cuQIderUKZl4LFaULv527drRv39/JkyYwP3335+1cL+IiDicMgw3ZRgGjz76KD/99BMrVqygUqVKVofkdHKr43jo0KF/XgQEgM3GQaAcUCyjGG024u12YmJiGDVqFMuWLcvyWLp0KWXKlGHx4sXFcXank5SUxLlz54o0ZvTFF1/k77//JjIy0oGRiYhIdnSH0k3NmzePBQsW8P777+ddvNxDlS9fHoA///zzqm1bt25l586d5pJ/vr78XKsWnx47RnegtIPOfwAzQa0FULcuiz75BICnn34624lTUVFRLFq0iDBHrCPu5M6cOQPkr6h5Tm666SbGjx9PZGQk//73v7MOYxAREYfSHUo39N133zF69GhGjBjBwIEDrQ7HaaVPupkwYQILFy7kgw8+4O+//wagSZMmdOvWjSlTpvDyyy9z29mzAETk0eYxIDLtsSPtvfTXC6/YtyHwEIDdDj16sGjRIgIDA3Ochd+7d28OHDjAzp07C/hJXU9BVsnJzVNPPcX111+vMkIiIsVMCaWb+f3337n33nsJDAxkxowZVofj1Fq3bs2UKVPYs2cPgwYN4oEHHshIZDp16sTrr7/OwoULmThxItfedBOrMJdUzE088HzaY1vae+mv5+d0UHIyOzt14sCBA/Tq1SvHttO3RUdH5/MTuq70f4eqVasWqZ1y5crx8ssv8+mnn3pkcXgRkZJiMwzDsDoIcYyUlBR69uzJjh072LlzJ7Vq1bI6JPfStSts2JDnet4FYrdDcHCWtbwFFi9eTP/+/Tl37lyR1+U2DIPbbruNv/76i127dmG3a6SPiIij6Q6lG5k8eTJr165lyZIlSiaLw9y5ZgLoSHa72a5kcfr0aby9vfH19S1yWzabjddff529e/cyb948B0QnIiJXUkLpJlauXMnkyZOZMmUKISEhVofjnvz9YeZMx7Y5a5bZrmSRXjIot5n4BdGq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LV++PGXLli3g2UVEpDBU2FxE8uXVV19l3LhxxMfH4+fnl/G+zWaOdNyxYwct69eHihU5bhg0AHoAK9L2W4A5ZjIes1s7JyGYiegxoFJ2O9hscO4c+Pri5+fHsWPHsm3nhRde4Jlnnsn35xMRkcLTHUoRKbL27dvTsmVL2L0bDINawF3A50AKUDqf7UwD1gNvkUMyCeZyjYcPQ2AgAG3btiUyMvKq3erVq1eATyAiIkWhhFJEiiwjeUtKynivPuZM7tPA9floYykQBgwBRuS1c6bzVK1alS5duuSys4iIFDdNyhERx/H2LtRh64CHgJ7AnGI8j4iIFA8llCKSL+ljJbNz6NAh84uAAHOMI3AQKAdUy6PdbZgzu1sBH5KPbhObzTyPiIg4DSWUIpIv5cuXB8h2pZytW7eyc+dO8PWFOnX4GfgU6Eru4yf3Y96V9AO+AHKbk30AOA5Qt655HhERcRoaQyki+dKyZUsAJkyYQL9+/fDy8qJXr14ANGnShG7dupllg6pX5624OAAicmnvPNAN+AMYB/z3iu11gfaZXjcEOgEbe/TIst+vv/5KdHT0Ve37+vpy99135/fjiYhIEahskIjkW2RkJHPmzOHkyZOkpqYSHx+Pv78/I0eOpH379kRERHD82DEaXbrEdCAo07ELyFo26Cjgn8u5Hk47Jp2NtIQyNjZjpZzcygbVrl07S+F1EREpPkooRcTxunaFDRvyXM+7QOx2CA6+ai1vERGxnhJKEXG8+Hho1AgSEx3Xpo+PuU64f273NUVExAqalCMijufvDzNnOrbNWbOUTIqIOCkllCJSPIYOhWxWsCmUqVNhyBDHtCUiIg6nLm8RKV5RUTB6tDmesiBjKu128zFrlpJJEREnpzuUIlK8hg41xz4GB5uv7XlUK0vfHhxsHqdkUkTE6ekOpYiUnNhYmDMHVq2CuDjI/OvHZjOLlvfoASNGZJQGEhER56eEUkSskZAAhw9DUpK5NndAgFbAERFxUUooRURERKRINIZSRERERIpECaWIiIiIFIkSShEREREpEiWUIiIiIlIkSihFREREpEiUUIqIiIhIkSihFBEREZEiUUIpIiIiIkWihFJEREREikQJpYiIiIgUiRJKERERESkSJZQiIiIiUiRKKEVERESkSJRQioiIiEiRKKEUERERkSJRQikiIiIiRaKEUkRERESKRAmliIiIiBSJEkoRERERKRIllCIiIiJSJEooRURERKRIlFCKiIiISJEooRQRERGRIlFCKSIiIiJFooRSRERERIpECaWIiIiIFIkSShEREREpEiWUIiIiIlIkSihFREREpEiUUIqIiIhIkSihFBEREZEiUUIpIiIiIkWihFJEREREikQJpYiIiIgUiRJKERERESkSJZQiIiIiUiRKKEVERESkSP4fn/gqpMK6LQgAAAAASUVORK5CYII=",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# merge the two graphs\n",
"G = nx.compose(G1, G2)\n",
"nx.draw(G, with_labels=True, node_color='r')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"At this point we have a merged graph with two adjacency lists. We can now perform operations on the graph, such as finding the shortest path between two nodes."
]
},
{
"cell_type": "code",
"execution_count": 95,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"All paths from tbl1.F to tbl2.C:\n",
"['tbl1.F', 'D', 'tbl1.B', 'A', 'tbl1.A', 'C', 'tbl1.E', 'B', 'tbl2.C']\n",
"['tbl1.F', 'D', 'tbl1.B', 'C', 'tbl1.E', 'B', 'tbl2.C']\n",
"\n",
"Shortest path from tbl1.F to tbl2.C:\n",
"['tbl1.F', 'D', 'tbl1.B', 'C', 'tbl1.E', 'B', 'tbl2.C']\n"
]
}
],
"source": [
" \n",
"# find paths between two nodes\n",
"print('\\nAll paths from tbl1.F to tbl2.C:')\n",
"for path in nx.all_simple_paths(G, source='tbl1.F', target='tbl2.C'):\n",
" print(path)\n",
" \n",
"# find the shortest path between two nodes\n",
"print('\\nShortest path from tbl1.F to tbl2.C:')\n",
"print(nx.shortest_path(G, source='tbl1.F', target='tbl2.C'))\n"
]
},
{
"cell_type": "code",
"execution_count": 96,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAApQAAAHzCAYAAACe1o1DAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAACC/ElEQVR4nOzdd3zN9x7H8dc5JyEIglA1E6X2SqxYsUPV7EKjRtEaRas60DZWh1ajNUqrt/aoWqX2HrFiz9qzNrFHcs65fxwJITJPcjLez/vIIzm/+fm5ytv39x0Gq9VqRUREREQknoyOLkBEREREUjYFShERERFJEAVKEREREUkQBUoRERERSRAFShERERFJEAVKEREREUkQBUoRERERSRAFShERERFJEAVKEREREUkQBUoRERERSRAFShERERFJEAVKEREREUkQBUoRERERSRAFShERERFJEAVKEREREUkQBUoRERERSRAFShERERFJEAVKEREREUkQBUoRERERSRAFShERERFJEAVKEREREUkQBUoRERERSRAFShERERFJEAVKEREREUkQBUoRERERSRAFShERERFJEAVKEREREUkQBUoRERERSRAFShERERFJEAVKEREREUkQBUoRERERSRAFShERERFJEAVKEREREUkQBUoRERERSRAFShERERFJEAVKEREREUkQJ0cXICKOYbXC7dtgNkPGjJAunaMrEhGRlEotlCJpyLFjMGAA+PpCliy2r2zZIEMGKFoU2reHBQtsIVNERCS2DFar1eroIkQkcR06BB9+CEuWgMn0/MDo5ARhYZAnDwQEQKdOYDAkaakiIpICKVCKpGJWKwwfDv362X4OC4vb+bVrw8SJkD9/4tQnIiKpgwKlSCplsUCXLvD77/G/hpMTuLvD2rXw8sv2q03gzh24ccPWApw9O6RP7+iKRETiT30oRVKpPn0SFibB1qJ5+TLUqgUXLtilrDTLbIZ//gF/f3jpJcicGfLmtXUvyJQJSpaE996DoCBba7KISEqiQCmSghkMBnr06PHM9mXLYMSIJ7dMAAzAyTjfw2yGS5dsrZ0KOnFntcLUqeDhAa++CjNmwPHjkX8tzWY4cAD+9z+oVg3KlIHVqx1WsohInClQiqQAQUFBBAQEEBISEuOxd+/aRmsbo/2v24ItZDYF8gOZgFLAEOD+M0ebzbbR33/+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bNiwgdy5czu6pFjr0aMHR44c4YMPPsDT05OGDRs6uiQRkRRLr7xFJN5GjhxJz549mTRpEm3btnV0OXFmNptp3rw5a9euZePGjZQuXdrRJYmIpEgKlCISL6tXr6Z+/fr07NmTH3/80dHlxNvt27epUaMGV69e1XRCIiLxpEApInF28uRJKlSoQLly5ViyZAlOTim798y5c+eoXLkyL774ImvWrCFTpkyOLklEJEVRoBSROLlz5w7VqlXj5s2bbNu2jRw5cji6JLsIn06ofv36/PXXX5pOSEQkDjTKW0RizWq18u6773LkyBHmzZuXasIkQLly5ZgxYwZ///03n376qaPLERFJURQoRSTWvvvuO2bOnMnEiRNT5XrYr776KoGBgQwfPjxZT84uIpLc6JW3iMTK4sWLady4Mf369WPIkCGOLidR9ezZkzFjxvDPP//g5+fn6HJERJI9BUoRidHhw4epVKkSNWrUYP78+RiNqfvlhtlsplmzZqxbt07TCYmIxIICpYhE6+bNm1SpUgWLxcKWLVvImjWro0tKErdu3aJGjRpcv36dLVu2pKhJ20VEklrqbmYQkQSxWCz4+/tz7tw55s+fn2bCJEDmzJlZuHAhYWFhNG3alLt37zq6JBGRZEuBUkSeKyAggIULFzJt2jSKFi3q6HKSXL58+Vi4cCEHDhzA398fi8Xi6JJERJIlvfIWkSjNmTOH1157jaFDh9KvXz9Hl+NQCxYsoHnz5nz00Ud8//33zz3u4kXYvx9u3wZnZyhYEIoWBU1pKSKpnQKliDxj7969+Pj48MorrzBz5kwMBoOjS3K4n376id69ezNu3Di6dOkSsX3vXvjlF5g9Gy5devY8FxeoWhW6doVmzWxBU0QktVGgFJFIrl27RsWKFXF1dSUoKEjLED5itVrp2bMnv/zyC4sWLaJkyQa89x788w84OUFY2PPPNZnAbIYXX4TffoPGjZOubhGRpKBAKSIRwsLCaNSoETt37mTbtm14eno6uqRkJSwsjGbNmrF6tTsGw/94+NAUbZB8mtEIFgu0awdjx9paL0VEUgMNyhGRCJ9++imrV6/mzz//VJiMgpOTE40azebevQncvWuIU5gEW5gEmDzZ1kp5/779axQRcQQFShEBYPLkyfz4448MHz6cOnXqOLochzIYDPTo0eOZ7UuXQs+e4c2KRmACYABOxun6FgusWQMdOiSoTBGRZEOBUkQIDg6mc+fOtGvXjp49ezq6nCQTFBREQEAAISEhMR4bEmJ7VW0bnxTdIKWtQDfAG3B+7rEWC8yYAX/9FfVVzGYzefLkwWAwsHjx4hjrExFxJAVKkTTu4sWLtGjRgrJlyzJ27Ng0NaI7KCiIgQMHxipQfvEFXLny+LX18y0CxmMLkoWiPdJggPfeg6jmTF+1ahXnz5/Hw8ODqVOnxlifiIgjKVCKpGEPHz7k9ddfJzQ0lDlz5uCiUSJRunEDxo+3jdSOWVfgBhAM1I/2SKsVrl2ztVQ+bcqUKXh5efHhhx8yb9487ty5E/fCRUSSiAKlSBrWq1cvtmzZwpw5c8ibN6+jy0lSAQEB9O3bFwBPT08MBgMGg4GTJ09GHDN16lSKFi2Ku7sL9+97A+ticeUXgAyxrsNohFGjIm+7d+8ec+fOpVWrVrz55pvcu3eP+fPnx/qaIiJJTYFSJI369ddfGTt2LKNHj6Zq1aqOLifJtWzZktatWwMQGBjI5MmTmTx5Mjlz5gRg7dq19O7dG39/f4oVGwRcBRoC++xah8UCu3bBrVuPt/3999/cvn2bVq1akTt3bmrVqqXX3iKSrDk5ugARSXobN26kR48edO3alc6dOzu6HIcoU6YMXl5eTJ8+nebNm+Ph4RFp/759+wgODsbb25tffwVoBRQFvgTm2LUWqxV27oSaNW2fp0yZQtWqVcmfPz8ArVq1olu3bly+fDki8IqIJCdqoRRJY86ePctrr71GlSpVGDFihKPLSbZ8fHzw9vbGYoGzZwEKAM2ApUCsOlPGybFjtu9Xr15l6dKlEa2nAK+99hoGg4E///zT7vcVEbEHBUqRNOTevXu0aNGCdOnS8ddff5EuXTpHl5RsFSlSBIDQ0Ce3vgzcBS7b/X4PH9q+z5w5k9DQUMqXL8/Ro0c5evQo165do3LlynrtLSLJll55i6QRVquV9957j3379rFhwwZy5crl6JJShHTpHi+ZmJgyPBrHEx4aq1WrFuVxx48fp1Ch6KcjEhFJagqUImnEiBEjmDx5MlOnTsXb29vR5SQL0c25eeTIkUfHwEsvge3jYSAjYP9+jMWLw4kTJwgKCqJHjx74+vpG2m+xWGjbti3Tpk1jwIABdr+/iEhCKFCKpDD/XvmXRUcWEXw+mF0XdnH74W3SGdNRJEcRKuSpgG9BX2p71sZoeNyjZcWKFXz88cd8/PHHtGnTxoHVJy+ZMmUCiHJi802bNrFjxw68vLyoUgWOHTuDxTIf20hvk50qOARkxMmpAGXKwPff21onP/nkk4gBOU8aP348U6dOVaAUkWTHYLVarY4uQkRituL4CoauH8qak2swGowYMGC2Ph4cYsCAyWgizBJGwawF+bDKh3Sr2I0zp85QsWJFKlSowKJFizCZ7BWGUr5t27ZRqVIlXnnlFVq1aoWzszNNmjTB1dWVUqVKceHCBXr27MnBg+mZPn0McBHYApR5dIUJQAfgBODxaNspYPKjnxc+On7wo88FgbZPVGAAfKlXbw3Ll0Px4sVxcXFh586dUdY7atQoPvjgA7Zv346Xl5ddfg1EROxBgVIkmbtx/wYfLv2QP3b9gclgihQio2PAQAn3EjyY/gDLeQvbtm0je/bsiVxtyjNkyBDGjh3L+fPnsVgsnDhxAk9PT7p3746Pjw8DBw7k9OnThIWVwGz+Eaj1xNkTeDZQrgFqP+duvo/2h7MFyvnz15Av3w68vb354osvGDRoUJRnnzp1Cg8PDz788EN+/PHHeD6xiIj9KVCKJGNnb56l9sTanLh+ItZB8kkGqwGrxcqoGqPoXr97IlSYdnz9NQwYYJsz0l5MJvD0hEOHbD+LiKRUCpQiydTlO5ep8nsVTt84TZglLN7XCX8VvqjNIuq/FP3a0vJ8Dx+Cl5ct/MVuTe+YGQwQFARVqtjneiIijqJ5KEUczGAw0KNHj0jbrFYrnRd05lTIqcdhcicQAFyP2/WtWDFbzLz111tcvmP/+RPTinTpYNq0x9MI2cMXXyhMikjqoEApkkSCgoIICAiIckTx02bun8n8f+fH/Jr7LLZxH+OAQdgCZxSsWLn54CbdF0V+7e3h4YHBYIj4cnFxoUiRIvTt25dr167F/FBpTJkysGiRLVQm9BV19+4QEGCXskREHE6BUiSJBAUFMXDgwBgDpcVqod/Kfhh4/hyJEY4AOx79nC36Q81WM7MOzGL/pf2RtpcrV47JkyczefJkRo0aRb169RgxYgQNGzaM+f5pUK1asHEjFCoU95ZKJydbGA0MhJEjba+8RURSA81DKZLMrDqxihMhJ2J3cEWgOuAM/ANcjf5wJ6MTY7aNYXTj0RHb8ubNi7+/f8TnTp064erqyg8//MCRI0ciliCUx7y8YM8eGDwYRoyAu3etgIXnzU/p5ARhYeDrC6NHQ9GiSVmtiEjiUwulSBIICAigb9++AHh6eka8Yj558mTEMVOnTqVo0aI0LNbQ9gr7ZJSXiswVW5iMpTBLGNP2TSOmsXi5c+cGwMlJ/+Z8HhcXGDoULlyA7t33A8vImjVyFwVnZ/D2ht69bYN5VqxQmBSR1El/W4gkgZYtW3L48GGmT59OYGAg7u7uAOTMaVvCb+3atcycOZOePXsyesdoLq6+CFOAzsAL9q0l5H4Ip2+cpqBbQQBCQ0O5cuUKAPfv32fnzp38+OOP1KxZE09PT/vePBXKnBmcnX8nf/7ZnDx5iqtX4c4dW6vkCy/YQqWISGqnQCmSBMqUKYOXlxfTp0+nefPmeHh4RNq/b98+goODKVu+LAOHDLTNkT0KWA20sn89uy7sigiUy5Ytiwi24apVq8acOXPsf+NUavny5dSvXx+j0UDOnJDT/kt9i4gka3rlLZIM+Pj44O3tzd3Qu7aR3W5AUeAYtq55dhZyPyTi58qVK7N8+XKWL1/OwoULGTp0KPv376dp06bcu3fP/jdPZf777z/2799P/fqa41NE0i61UIokA+EDX4yGJ/6NlwMIBe4Ame17P5Px8eARd3d36tWrF/G5cePGFC1alNdff53x48fzwQcf2PfmqcyKFSsAqFu3roMrERFxHLVQiiQjGZ0zktE5Y6LfJ7dr7mj3h4ejdevWJXotKd3y5cspX778M90GRETSEgVKkSRiiGbSwSNHjgC2FsryucvbNl7FNoI7k/1r8XrRK9r9YWG21Xlu375t/5unIlarlRUrVuh1t4ikeQqUIkkkUyZbMoxqYvNNmzaxY4dthvLqBapjumWCf4GXsN9/pZeBECiUrRDZM2SP9tAFCxYAULZsWTvdPHXat28fFy5cUKAUkTRPfShFkoi3tzcA/fv3p1WrVjg7O9OkSRMASpUqhZ+fHz179iQsLAzz+EfzGdaK4aIhwO5HP//36PvaR9/dgCfz4GjAAzpP7hzpEufOnWPKlCkAPHz4kN27dzNu3Djc3d3VfzIGy5cvx8XFherVqzu6FBERh1KgFEkiFStWZPDgwYwdO5YlS5ZgsVg4ccK2Io6vry8+Pj4MHDiQU6dOYXIzYW5qhui7OsJ1bFMLPSn8c0EiB8pH3i3/bqTPu3btom3btgAYjUbc3d1p2bIlgwcPJm/evHF9zDRl+fLl1KhRAxcXF0eXIiLiUAZrTEtmiEiSuHjxIgEBAfz222/kLpeb803OY7HnnEFWYBV0KNyBYcOGRUyuLvHz4MEDsmXLxsCBAyNWQRIRSavUh1LEwe7du8fXX39NkSJFmDlzJt9//z3HNh7jS98vMfD8gTxx4WRwolzucvzi/wtz586lWLFi/PHHHzEuwSjPFxQUxL1799R/UkQEBUoRh7FYLEyZMoWiRYsSEBDAu+++y9GjR/nwww9Jnz49A2oO4LXiryU4VDoZnMjlmou/W//N+13e599//6VRo0Z07NiRWrVqceDAATs9UdqyfPlycubMSZkyZRxdioiIwylQijjAunXrqFy5Mm3btqVixYocOHCAwMBAsmd/PPraZDQx7bVptC1j698Yn2BpNBjxzOZJUMcg8mfND0CuXLmYPHkyK1as4Pz585QrV47+/ftz9+5d+zxcGrF8+XLq1auH0ag/RkVE9CehSBI6fPgwLVq0wNfXF4PBwLp165g9ezaFCxeO8nhnkzMTW0xk5uszyeqSNfJKOtFwMjphwMCHVT5k9/u7I9btflLdunXZs2cPAwYMYPjw4ZQqVYolS5Yk6PnSiqtXr7J9+3a97hYReUSBUiQJXL16lV69elGyZEl27NjB1KlT2bx5MzVq1IjV+W+WfJNjPY/xbd1vyZ8lf8R2Z6NzxFd42MzglIHOXp3Z03UPPzT4gQzOGZ57XRcXF7788kv27t1LoUKFaNSoEW+99Rb//fffc88RWLVqFVarVYFSROQRjfIWSUQPHjxg5MiRDBkyBKvVSr9+/ejVq1eCppmxWC0cvHyQ7ee3s//Sfu6E3sHZ6IxnNk+8X/Sm/Ivl47V8o9VqZfr06Xz44Yfcv3+foUOH0rVrV0wmU8wnpzFdunRh/fr1HDx40NGliIgkCwqUIonAarUya9YsPvvsM06fPs17771HQEBAiljv+fr163z++eeMGzeOChUqMG7cOLy8ol+qMS2xWq0UKlSIJk2a8PPPPzu6HBGRZEGvvEXsbNOmTVSrVo233nqLkiVLsnfvXkaPHp0iwiRAtmzZGDt2LEFBQTx8+JCKFSvSq1cvbt686ejSkoVjx45x8uRJve4WEXmCAqWInRw/fpy33nqLqlWrcu/ePVauXMmCBQsoXry4o0uLFx8fH4KDgxk2bBjjx4+nePHizJ49O83PXbl8+XKcnJyoVauWo0sREUk2FChFEigkJISPP/6Y4sWLs2HDBv744w+Cg4OpU6eOo0tLMGdnZ/r06cPBgwepUKECr7/+Oq+++ionT550dGkOs3z5cqpUqULmzJkdXYqISLKhQCkST6Ghofz888+89NJLjB07lgEDBnD48GHat2+f6gayFChQgPnz5zNv3jz27t1LiRIl+O677wgNDXV0aUkqLCyMVatW6XW3iMhTFChF4shqtTJv3jxKlizJhx9+SMuWLTly5AhffPEFmTJlcnR5iapZs2YcOHCArl270r9/f8qXL8+GDRscXVaSCQ4O5saNGwqUIiJPUaAUiYPg4GBq1apFixYt8PT0ZOfOnfz222+8+OKLdr3Pw4ewcyf8/jsMHQqDB8PIkbB+Pdy+bddbxZmrqyvDhw8nODgYV1dXatSoQadOnbh69apjC0sCy5cvJ2vWrFSsWNHRpYiIJCuaNkgkFs6cOUO/fv2YMmUKJUuW5IcffqBhw4Z2v8+ePTBmDEyaBPfu2bY5Odm+m81gtYLRCK+8At27Q4MGts+OYjab+e233/jss89wdnZm+PDhtG3bFoMhYeuPJ1c1a9YkR44czJ0719GliIgkK2qhFInGzZs36devHy+//DLLli1j3Lhx7Nq1y+5h8sYNePddKFvW1ioZHiYBwsJsX+H/9LNYYMkSaNQIqleHo0ftWkqcmEwm3n//fQ4dOkSDBg1o164dderU4dChQ44rKpHcunWLTZs26XW3iEgUFChFohAWFsbYsWMpUqQIgYGB9OnTh6NHj9KlSxecwpsM7WTnTiheHCZODL93bOqzfd+2DUqVgmnT7FpSnOXOnZupU6eybNkyzp49S5kyZfjyyy+592QyTuHWrVtHWFiYAqWISBQUKEWeYLVaWbRoEWXLlqVr1640bNiQI0eOMGTIkESZJmbHDqhZEy5dsr3SjquwMHjwAN5+GyZMsHt5cVa/fn327t3L559/znfffUfp0qVZtmyZo8uyi+XLl1OwYEEKFy7s6FJERJIdBUqRR3bv3k2DBg1o3LgxuXLlYvv27UycOJF8+fIl+NoGg4EePXpE2nb1Kvj52V5vPw6TEwADcDLO9+jYEYKCElanPbi4uDBw4EB2795N/vz58fPzo3Xr1ly4cMHRpSXI8uXLqV+/fqrtHyoikhAKlJLm/ffff3Ts2JHy5ctz+vRp5s+fz6pVq+K1fnVQUBABAQGEhITEeOwHH8D16zG1TFqwhcymQH4gE1AKGALcj3Sk0Qht20bufwng4eGBwWCI8uv+/cjXsKdixYqxatUqJk2axMqVKylWrBhjxozBHJ+mWAc7d+4cBw4c0OtuEZHnUKCUNOvOnTsEBARQpEgR/v77b37++Wf27dtH06ZN490KFRQUxMCBA2MMlBs2wPTpsXnNfRfoAFwG3gdGAJWAr4BGwONJGsxmOHkSRox49irlypVj8uTJz3ylS5cudg8WTwaDgbZt23Lo0CHefPNNunfvTtWqVdm1a1ei3tfeVqxYgcFgoG7duo4uRUQkWbLv6AKRFMBsNjNx4kQGDBjA1atX6dWrF/369cPNzS3Jahg1yjYdUMwDcNIBG4GqT2zrDHhgC5UrgXoReywW23yVn3wCTy7WkzdvXvz9/e1Se3xkz56dX3/9lXbt2vH+++/j7e1Nr169GDRoEK6urg6rK7aWL1+Ol5cXOXLkcHQpIiLJklooJU1ZsWIFXl5evPvuu/j6+vLvv/8ybNgwu4TJgIAA+vbtC4Cnp2fEa+Un172eOnUqRYoUZeZMF8LCvIF1MVw1HZHDZLgWj74ffGbP+fOQXMfBVKtWjR07dvDNN98wduxYihcvzrx580jO0+FarVZWrFih190iItFQoJQ04cCBAzRu3Jj69evj6urK5s2bmT59Oh4eHna7R8uWLWndujUAgYGBEa+Vc+bMCcDatWvp3bs3Vav6A4OAq0BDYF887hY+wMX9mT1OTs8OzgkNDeXKlSuRvu7evRuP+yacs7Mzn3zyCQcOHKBs2bK0aNGCZs2acerUKYfUE5O9e/dy8eJFBUoRkWgoUEqqdvHiRbp27UqZMmU4dOgQs2bNYsOGDVSuXNnu9ypTpkzEQJ7mzZvj7++Pv79/xPre+/btY8mSJRQr9gUm0yfYWietwJfxuNswIAu2fpSRmc22+SmftGzZMnLmzBnpa9iwYfG4r/14eHiwYMECZs+ezY4dOyhRogTff/89oaGhDq3racuXLydDhgxUrRpVS7GIiIACpaRS9+7d4+uvv6ZIkSLMmDGDYcOGceDAAV5//XWHTfvi4+ODt7c3Z8+GL5dYAGgGLAXiMvL5a2AF8C3g9sxeqxWebuyrXLkyy5cvj/T1zjvvxOs57MlgMNCyZUsOHjxIly5d+Oyzz/D29mbTpk2OLi3C8uXLqVGjBi4uLo4uRUQk2VKglFTFYrEwZcoUihYtyldffUXHjh05evQoH330EenTp3dobUWKFAGeHtn9MraR3JdjeZWZwADgXaDrc496upHP3d2devXqRfoqVKhQbEtPdJkzZyYwMJBt27aRPn16qlatynvvvcf169cdWtf9+/dZt26dXneLiMRAgVJSjXXr1lG5cmXatm1LxYoVOXDgACNGjEh2I3OzZInvmcuBd4DGwNhoj0zCAet25eXlxebNmxk1ahQzZsygWLFiTJkyxWGDdoKCgrh3754CpYhIDBQoJcU7fPgwLVq0wNfXF4PBwLp165g9e3ZEi2BSiu51+pEjRwAoXfrJFsTDQEYgZwxX3oJtZHcF4E+in/HrIYcOTeONN97g+++/5/79+4TFZoHwZMJkMtG9e3cOHjxI7dq1adu2LfXq1ePw4cNJXsvy5cvJlSsXpUuXTvJ7i4ikJAqUkmJdvXqVnj17UrJkSXbs2MHUqVPZvHkzNWrUcFhN4QNwoprYfNOmTezYsYMKFcK3nAHmAw0A0zPHP3YQW6ukB7AQyBDNsYeA81Stmp7Lly8zcOBALl68yNKlSyldujQdO3Zk7Nix7NixI9kNfnlanjx5mDFjBosXL+bkyZOULl2agICARF3d52nLly+nXr16GI36o1JEJDoGa3KeAE4kCg8ePGDkyJEMGTIEi8VCv3796NWrFxkyRBe0ksa2bduoVKkSr7zyCq1atcLZ2ZkmTZrg6upKqVKluHDhAh980JOff07P1atjgIvYWh/LPLrCBGwr45zAFiBvASWBc9gG4+R96o4vAT5PfDYAvpw7t4Y8eWyTuBcoUAB3d3eqVq3K1q1b2bNnD2FhYbi4uFC+fHkqVaoU8fXSSy8ly7Wq7927x9ChQxk2bBgeHh788ssvib5qzdWrV8mZMyf/+9//aN++faLeS0QkxbOKpBAWi8U6c+ZMq6enp9VkMlm7du1qvXjxoqPLesbgwYOtefPmtRqNRitgPXHihBWwdu/e3TplyhRrkSJFrE5O6a1Q3gqrrbZx2eFff1gBK5x49PnEo8/P+2r31PlY3d19I9VTsGBBa+PGjSM+37171xoUFGQdMWKEtU2bNtbChQtHXC9btmxWPz8/6xdffGH9+++/rRcuXEjiX73oHThwwFqzZk0rYH377bcTtb6ZM2daAevZs2cT7R4iIqmFWiglRdi0aRN9+vRh06ZNvPrqqwwbNozixYs7uqx4u3ULXn4ZLl2yLZdoL0ajbQ7KR9NhxtrVq1cJDg5m69atEV+XLl0CoECBApFaMb29vR26XKLVamXixIl8/PHHmM1mvv32Wzp37hzv19L3w+6z5+Ie9l/az53QOzgZnfB082TK91PYvn47Bw4csPMTiIikPgqUkqwdP36czz//nD///JNy5crxww8/JPqrzqSydCk0bGi/6xkM0K8fDBmS8GtZrVbOnDkTKWAGBwdz584djEYjJUqUiBQyS5UqhbOzc8JvHAdXrlzh008/5X//+x9VqlRh3LhxlClTJuYTAbPFzOKjixm1dRQrjq/AbLXN5WTAgJXHfyRmNWcl4JUA2pVtR7YM2RLlOUREUgMFSkmWrl+/ztChQxk5ciTu7u4MHTqUtm3bYjJFN3gl5enbF374IeHXMZmgcmVYtQoSa7pNs9nMwYMHI4XMPXv2YDabHdofc926dXTt2pV///2XDz/8kICAgIjBUVHZeX4n/nP9OXD5ACaDKSJMPo8BAxmcMxDoF0hnr87Jso+piIijKVBKnN0Nvcv+S/sJuR+CwWAgt2tuirkXw8kY3VQ2sRMaGsovv/zCwIEDefDgAZ988gl9+vSJNiCkZFYrfPABjB4d/2sYjbYwuXgxZM1qv9pi4969e+zatStSyDx69CgA2bJlixQwK1asyAsvvJAodTx8+JDhw4czaNAgcuXKxciRI2natGmkY6xWKz8E/cBnKz/DgCHGIBmVeoXq8dcbf5HVJYl/oUVEkjkFSomVi7cv8vvO35myZwr/Xv0XizVyx7/0pvRUyFOBTl6deKvkW2RwjtuIa6vVyvz58/nkk084evQoHTt2ZPDgwbz44ov2fIxkyWqF//0PevWCBw8gtlNGmky2/pcffQSDB0MyGOQOOLY/5vHjx+nRoweLFy+mefPm/Pzzz+TPnx+AL1Z9wZD1CesPYDKYKJWrFGvbr1WoFBF5ggKlROtu6F2+WPUFP2/9GYvV8kyQfJLRYMRitZA1fVa+r/89nbw6xer1YHBwMH369IlY4u6HH36IdV+41OTMGfjiC5g2zRYqTaZnw6XRaOsraTZD3bowaBBUreqYemPLarVy+vTpSAFz+/btidYf02q18tdff9GrVy9u3rzJoEGDyOqblU4LO9nleUwGE3UL1WXJ20v0+ltE5BEFSnmuned38tqfr3Hqxqlog+Tz1POsx/TXp+Oe0T3K/adPn6Zfv35MnTqVkiVL8sMPP+Dn55fm/5K+ehVmzIDNm21f4SPBs2aFChVsX2++aRslnlLF1B/Ty8sr4jV5fPtj3rx5kwEDBjBy4kiMPY1YnGL4PXwN2Agcwzb9pwl4Ads0oN7AUxl3fJPxvOv1bpxqEhFJrRQoJUqbz26m3qR63A+7H6++ZmBryXkp+0us77CeXJlyRWy/efMm3377LYGBgWTJkoXBgwfTsWNHnJwS3gdTUq67d+8+0x/z2LFjAGTPnj0iXMa1P2aDXxuw/Nzy6NcFO8zjFS3LArkAM3AaOACUAyJ3ycQ1nSvnPjpHlvTxXpxdRCTVUKCUZ5wMOUmZX8pwN/RuvMNkOCejE6VylWJrp60YrAbGjx/PV199xc2bN+nTpw+ffvopmTNntlPlktpcvXqVbdu2sW3bNrZu3cqWLVu4fPkyAAULFozUihlVf8zzt86TPzB/9L+PrwO/AFmAdsDTvx2vAkeAKpE3GzAw6pVRdKvYLUHPKCKSGihQSiQWq4U6E+uw8cxGwixPdeDbiW3p6XAmbMtKvwAUAcoDUUxZY8BAmzxt2DliJwcOHKBt27YMHTo0YrCESGxF1R8zODiYu3fvRtkfc9HNRXy59svou2wsBIKBjkCB2NdiwECJnCXY121fAp9KRCTlU6CUSCbtnkS7ee2i3hkeKGsDboAFuA2cxNbvLCvQGsgdxbkWqLi1Ir8M+QVvb2+71y1pV1hYWER/zPCWzPD+mMa2RiyFLLYlzp9nOLZX3b3id/8bn93Qa28RSfMUKCWC1WqlzNgyHLh0AAtRtOiEB8rOQN6n9h0HpgGZgB48M4DBiJEPKn/AiIYj7F63yNPu3r3Lzp07abCyAXetd59/4H3gW6Aotn8MxcOadmvw9fCN38kiIqlE/Ba/lVRp23/b2HdpX9RhMiaFAF/gBrDn2d0WLPy+83fuhd5LYJUiMcuYMSMVKleIPkwCPHj0PQGrC526cSr+J4uIpBIKlBJh5fGVmAwJWNowfOrIY1Hvvv3wNjsv7Iz/9UXi4Jk+wFEJD5IPoj0qWqHm0PifLCKSSihQSoTg88FYSUAPiKzY/oK+FvVuAwa2/7c9/tcXiQMXJxeMhhj+iHPBNqr7Uvzvkzm9ZikQEVGglAiHLh+K1wTmkaQDHka9y8noxJFrRxJ2fZFYCAsLY3vwdnKQI+aDX8Y2ddCZ+N2rVK5S8TtRRCQVUaCUCPfN9xN+kYfYQuXzdpufkzZFEuDBgwds2LCBr7/+Gj8/P7Jly0blypW5tucaBksMK+xUwzaI7G9ssxY87RqwOepTXZxcKJqjaIJqFxFJDbQ0iUTI6JwxYRe4ga0vWvbnH+Li5JKwe4hgG8W9efNm1q5dy7p169i8eTP3798nS5YsVK9enQEDBlCzZk3Oup7lzTlvRn+x7MBrwF/AKCKvlHOGxyvlPMXJ6ESTl5tgMiag37GISCqhQCkRSucqzcHLB+O/Ok746O7CUe8Os4RR3L14/K4tcWa1wvHjcPYsmM2QJQuUKAEZE/jvBke4efMmQUFBEQFy27ZthIaGkj17dmrWrMnXX3+Nr68vZcuWxWR6HPDCLGG8sPQFLt65GP0NigFdsa3l/S+2ic7D1/JugG0t76eEWcLoUamHnZ5QRCRlU6CUCN4vejNz/8z4nXwcWIttwvPSUR9ixYp3Hk1qnpjCwuDvv+HXXyEoCG7dirzfaIQiRaBVK+jcGfI+PZ9oMnHt2jXWr1/PunXrWLt2LTt37sRisfDCCy/g6+vL22+/Tc2aNSlRogRG4/N77jgZnehfoz89l/SM+aY5eGa97uiuWyFPBWoUqBG7E0REUjlNbC4R9l3aR+lfnpMGIeqVcu4AJ7BNFeSGbXLoF6I+PUeGHJzvcx5nk3PUB0iCzJ0L3brBhQtgMtlaJZ8nPIN16gTff29rvXSkixcvsm7duogAuXfvXgDy58+Pr68vvr6+1KxZkyJFimAwxNAn8ilmi5nqf1Qn+L/g2E0lFAvpTOnY23UvL+d42S7XExFJ6dRCKRFuHr2J2003QlxDoh+utfrR9/C1vHMBDXnuWt4AJoOJrhW6Kkwmgjt3bK2N06dDeNaKLkwCWB4N5h8/HhYuhJkzoXr1xK3zSWfOnIkIj+vWrePff/8FoHDhwtSsWZOPP/6YmjVr4uHhkeB7mYwmprSYQsXfKnLzwc34d+l4QmMaUyR7kQRfR0QktVALpbB+/XoGDRrEihUryF8vP2eqx3P+lGi4OLlw9IOj5M2STN+xplC3b0ODBrBly+OQGFdGIzg5wYIFtmvZm9Vq5fjx45EC5IkTJwAoUaJEROtjjRo1yJuI7+B3X9hN7Ym1ufXwVrxaKg0YsGLFDz+WBiylb9++fPfdd3FuMRURSY00bVAatmbNGurUqUPNmjW5ePEis2bN4uTSk7xe/PWErZgThR/q/6AwmQAGg4EePSIPALFa4fXXYevWJ8PkBMAAnIz1tS0WW9/Lpk1hTxTLZsaV1Wrl4MGDjB07ljZt2pA/f34KFy7Mu+++y+7du2natCmzZ8/m0qVL7N+/nzFjxtCqVatEDZMAZXOXZXuX7VTOWznO55oMJrJlyMbct+ay5KsljBgxgu+//5733nsPc0zNwSIiaYBeeacxVquV1atXM3DgQNatW0e5cuWYM2cOzZo1ixjcMKbxGDae2cilO5cS/HrQZDBRx7MOXSt2tUf5qV5QUBDLli2jd+/euLm5RXvs+PGwdGlMV7QAk4A52DrBXgM8gVbAx9iWirGFSrMZ/P1h+3ZwfqJngoeHB6dORb1etZ+fH4sWLWLv3r0RrY/r1q3j8uXLmEwmvL29adOmDTVr1qR69eoxPlNi88zmyboO6xgXPI6h64dy7tY5nIxOUbZYmgwmLFYL6UzpaFeuHUPrDMU9ozsAvXr1ws3NjY4dO3Ljxg0mT55MunTRTMAqIpLK6ZV3GmG1WlmxYgUDBw5k48aNeHt78+WXX9KkSZMoX9kdvnqYmn/U5Oq9q/EeyGA0GPHJ58NS/6VkSpcpoY+QJvzwww/07duXEydOROo/aDAY6N69O6NGjQLgyhUoWBDu3n36ChOADthGSnlgm6k7M1AFeBVbh9dNwESgJrAKW4tm+H1sg3T69Hl8RQ8PD7Jly0afRxvNZjMnT57k0KFDnDp1ioMHDxISEkK6dOmoXLkyNWvWxNfXFx8fH1xdXe31S2N3ZouZxUcXs/DwQrac3cKBKwd4aH6I0WAkb+a8VMlXhZoFa+Jfxh83F7corzF37lxatWpFnTp1mD17NhlT4pxMIiJ2oBbKVM5qtbJkyRIGDRrE5s2bqVixIgsXLuSVV16Jtu/XyzleZkunLbSZ3Yags0FxuqfRYMRitdChXAdGNhpJBucMCX0Mecrvv8P9WC1slA7b5IpVn9jWGVvY/ApYCdSL2GO1wo8/Qu/etpHitm1WMmTIwOnTp1m7di1BQUHcvn2bDBkyULVqVT788EN8fX2pVKkSGTKknP+vTUYTr778Kq++/GrENovVggFDrPtFtmjRgn/++YfmzZvj5+fHwoULyZo1a2KVLCKSbKmFMpWyWq38888/DBo0iG3btlGlShW++uor/Pz84jSIwGK1MGrrKL5a8xUh90MiwmJUwl8dFs5emNGvjKbBS4kwwiMVCwgIYODAgc9sP3HiBJ6ennTv3h0fHx8GDRrE4cOngJJAILaWxnATiNxC+Tx7gTLAz8AHz+wdPHg3oaFzWLduHWvWrAEgc+bMVK9ePWIQjbe3t17zPrJ582YaNWqEp6cnS5YsIVeuXI4uSUQkSSlQpjJWq5W///6bQYMGsWPHDqpVq8ZXX31FvXr1EjQa9UHYA/468BfT9k1j67mtXLl7JdJ+DzcPahSoQYdyHajlUUsjX+Nhz549fPvtt0yfPp3AwEDc3W399Vq0aIGrqyulSpXiwoUL+Pv3ZMSI9MAY4BKwFSj16CoTiF2gXI5tCZhp2CYPfdJDYDTZsw+hRo0arFu3jqJFizJ37lycnCK/1MiUKVOKapVMTHv37qVBgwZkyZKF5cuXU6BAAUeXJCKSZBQoUwmLxcK8efMYNGgQu3fvxtfXl6+++opatRIn3F26c4nr965jMprIlSkXWdI7eGbsVCK6PpQAwcHBHD/uzZtvApwGigKNsA26gdgHyvrYgugpbDPSP8lK2bJ32bEjA0ajMdpBOd988w2fffZZHJ4wdTt69Cj169fHbDazYsUKXn5ZE5+LSNqgPpQpnMViYfbs2QwePJi9e/dSp04d1qxZg6+vb6LeN1emXOTKpNd6ScnHxwdvb2+WLrXNGxkWVgBoBiwAzNhmmo+Nr4EV2Fo43aLYb+DMmUw8uaJh5cqVGTJkyDNHFimiyb2fVLhwYTZs2ED9+vWpXr06S5cupXz58o4uS0Qk0SlQplBms5lZs2YxePBgDhw4QP369RkzZgzVk3K5E0lS4eHtwYPHK+LAy8Bd4DKQOxZXmQkMAN4Fnj+VU2ho5M/u7u7Uq1cv6oMlkrx587Ju3ToaNWpErVq1+Oeff/TfpYikeprYPIUJCwtj6tSplCpVitatW1OgQIGIuQv1l1ba4OIS31VxlgPvAI2BsdEemf45S2hK7Li7u7Ny5Uq8vLxo0KABS5YscXRJIiKJSoEyhQgLC2PSpEmUKFECf39/XnrpJbZs2cLixYvx8fFxdHliJ9H1dz1y5AgAxYo9uVb3YSAjkDOGK28BWgAVgD+J6eVEiRKxqVaikyVLFhYtWkS9evVo2rQpf/75p6NLEhFJNAqUyVxoaCh//PEHxYoVo127dhQvXpzg4GAWLlxIpUqVHF2e2FmmTLYJ4ENCQp7Zt2nTJnbs2IG3d/iWM8B8bKO1o+s/eRBbq6QHsBCIblT2IUym01SO++qEEoUMGTIwe/Zs3nzzTVq1asVvv/3m6JJERBKF+lAmUw8fPmTSpEl8/fXXnDhxghYtWjBr1ix18E/lvB+lxf79+9OqVSucnZ1p0qQJAKVKlcLPz48PPuhJjhzpuXp1zKOznp278rFbgB9wHegL/PPU/peAJ1u4i2M2+9KgwZpIR507d44pU6Y8c3VXV1eaN28ey6dLm5ydnZk0aRJubm506dKFkJAQ+vbt6+iyRETsSoEymXnw4AETJkzgm2++4dSpU7z++uvMmzePMmXKOLo0SQIVK1Zk8ODBjB07liVLlmCxWDhx4gRAxHKGAwcO5MaN00AJbNMERfd74yq2lkyAqKb3aUfkQGnro1mnTuSjdu3aRdu2bZ85u2DBggqUsWA0Ghk5ciRubm588sknXL9+naFDh2q+VhFJNTQPZTJx//59/ve///Htt99y9uxZ3nzzTQYMGECpUqViPlnSnBs3wMPD9t3e/wX/8gu8/759rymPDR8+nI8//piuXbsyatQojEb1PBKRlE+B0sHu3bvH+PHj+e677zh//jytW7emf//+FC9e3NGlSTI3cya0amW/6zk5QaVKsH49KOMkrt9//50uXbrQqlUrJkyYgLOzs6NLEhFJEAVKB7l79y6//vor3333HZcuXcLf359+/fpRtGhRR5cmKYTVCm+/bQuW8ZtG6DGTCTJlgu3boXBh+9Qn0fvrr79o06YNfn5+/Pnnn1rCUkRSNAXKJHbnzh3Gjh3L999/z5UrV3jnnXfo168fhfW3uMTDw4fQogUsXhz/V98mE2TIACtWoNHdSWzp0qW0aNGCSpUq8ffff5Mli5YwFZGUSYEyidy+fZsxY8bwww8/cP36ddq3b8/nn39OoUKFHF2apHChofDJJ/DTT7ZX1Y/nqIyZwWCb13LmTChdOvFqlOfbuHEjjRs3pnDhwixZsgR3d3dHlyQiEmdpMlCGWcLYe3Ev289v598r/3I/7D7pndJTOHthKuSpQJkXypDOlM4u97p58yajR49m+PDh3Lx5k44dO/LZZ5/h4eFhl+uLhFu/3jaY5sCB8LW+oz4ufGCxiwt8/DEMGADp7PPbXeJp165d+Pn5kSNHDpYvX07evHkdXZKISJykqUD5363/GBc8jjHBY7hy9woAzsbHneHDLGFYseKW3o0u3l3oWrErHm4e8brXjRs3GDlyJD/++CN37tyhU6dOfPrppxQoUMAejyISJasVNm6E33+HtWvh0YxDETJnBm9vePNN8Pe3fZbk4fDhw9SvXx+j0cjy5cvVDUZEUpQ0ESgtVgvjgsfx0bKPCDWHYrbG/E7QZDBhNBgZUmcIfXz6YDJGtxLJY9evX+enn35ixIgR3L9/ny5duvDJJ5+QL1++hD6GSJzdvAn//WdrrcySBfLnf9xCKcnPmTNnqF+/PiEhISxbtkzzz4pIipHqA+Xth7d57c/XWHZsWbzON2CgSr4qLGyzkOwZsj/3uGvXrhEYGMjPP//Mw4cPef/99+nbty958uSJb+kikgZdvnwZPz8/Tpw4waJFi/Dx8Yn5JBERB0vVgfJu6F3qT6rPlnNbYtUq+Twmg4kSOUuwvsN6srpkjbTvypUr/Pjjj4wcORKz2Uy3bt34+OOPyZ07d0LLF5E06saNG7z66qvs2LGDefPmUb9+fUeXJCISrVQzfbHBYKBHjx6RtvVY1IPN5zZHDpM7gQBsSxvHktlq5sDlA7Sd25bw/H358mU+/fRTPDw8+Pnnn+nWrRsnT57khx9+UJgUkQTJmjUrS5cuxdfXl1dffZU5c+Y4uiQRkWiluEAZFBREQEAAISEh0R63+Mhi/tj1BxZrLGZ8PgssBMYBg7AFzqeYrWYWHF7A2I1j+fjjj/Hw8GDMmDH07NmT7NmzM2zYMF544QUMBkOkr/v378f5GUVEMmbMyLx582jRogVvvPEGEyZMcHRJIiLP5eToAuIqKCiIgQMH0r59e9zc3KI8xmK10H1Rd4wGY+wC5RFgB/ACkA24+pzjrNBtQTcy/56Zjz76iA8//JDs2bMzbdo0ypUrR58+fZ45JZ3mYxGReEqXLh1Tp04la9asdOjQgZCQEHr37u3oskREnpHiAmVsrDi+ghMhJ2I+MFxFoDrgDPzD8wOlAcgIPy75kU6VO0XalTdvXvz9/eNVr4jI85hMJsaOHUu2bNn48MMPuX79OgEBARg0XF9EkpEUFSgDAgIYOHAgAJ6enhHbTzwx2d7UqVPp2rcrXAZyAn6ARwwXdo19DUaDken/Tn8mUIqIJBaDwcC3336Lm5sbn3/+OdevX2fEiBEYjSmu15KIpFIpKlC2bNmSw4cPM336dAIDAyOWKMuZMycAa9euZebMmVABCAO2AVOAztheZ9uBxWphy9ktWKwWjIbHf5iHhoZy5cqVSMdmzJiRjBkz2ufGIpLmffbZZ7i5udGtWzdu3LjB77//jpNTivpjXERSqRT1z9syZcrg5eUFQPPmzfH398ff359MmTIBsG/fPmbMm8GtKrdsr7A7PDpxtX3ruBN6h2PXjkXatmzZMnLmzBnpa9iwYfa9sYikee+//z5Tp05l2rRpvPHGGxr4JyLJQqr6p62Pjw+5i+SGFY82uAFFgcOABbvG5wu3L1AkR5GIz5UrV2bIkCGRjilUqJD9bigi8kjr1q3JkiULr7/+Oo0bN2bevHlk1jqaIuJAqSpQFilS5NlR3TmAUOAOYMc/b5+eKN3d3Z169erZ7wYiItFo3LgxS5cu5dVXX6VevXosXryY7Nmfv5qXiEhiSlGvvGPDzcUtVd1HROR5atasyerVqzl+/Dg1a9bkv//+c3RJIpJGpbhAGd1UGUeOHCFflnxkTvdEU+RVbNMBZbJfDU5GJ4q7F7ffBUVE4snb25v169dz48YNatSoEWnWCxGRpJLiAmX4AJyoVsrZtGkTO3fupFLeShgwwA3gX+Al7Pekl6GwqTDpndLb6YIiIglTrFgxNmzYgNFopFq1auzfv9/RJYlIGpPiAqW3tzcA/fv3Z/LkycyYMYM7d+4AUKpUKfz8/HDd5Ip1gxX+9+ikWjFcNARY++gr/I1R+OfdTx07Gh7Oepjg5xARsaeCBQuyYcMGcuXKRc2aNdm2bZujSxKRNCTFBcqKFSsyePBgdu/eTfv27WndujWXL18GwNfXlxEjRrB/xX5YA2QA3gZyx3DR69imFloNnHu0LfzzjmcPz505pguKiCS9F154gTVr1lCsWDHq1KnD6tV2njNNROQ5DFar1eroIhLDtxu+pd/Kflix3+MZDUb6+PRhWH3NLykiydedO3do2bIla9eu5c8//6Rp06aOLklEUrlUGyjDLGFU/q0yuy/ufmaKn/gwGUx4uHmwt+teMjhnsEOFIiKJ58GDB/j7+zN37lwmTJiAv7+/o0sSkVQsxb3yji0noxMz35hJVpesmAymBF3LZDDh4uTCX2/+pTApIilC+vTpmTFjBu3bt6dt27aMGjXK0SWJSCqWqiY2f1rh7IVZ234ttSfWJuReCGHWsDhfw8noREbnjCzzX0a53OXsX6SISCIxmUz89ttvZM2alQ8++ICQkBD69+8f7fRrIiLxkWpbKMOVylWKPe/vwa+wH2DrBxkbBmx/4FbNX5Vd7+2icr7KiVajiEhiMRgM/PDDDwwePJgvvviCjz/+mFTa00lEHCjV9qF8mtVqZdaBWQzbOIzt57djMpiwYo20VKPRYMSAAbPVTImcJehbtS/vlH0n1iFURCQ5GzVqFB988AEdO3bk119/xWRKWHcgEZFwaSZQPmnH+R0sO7aM4P+C2XdpH/fC7pHelJ4SOUtQIU8F6nrWpUq+KnotJCKpzuTJk+nQoQPNmzdn6tSppE+vRRpEJOHSZKAUEUnL5s+fz1tvvYWvry9z5syJWIFMRCS+FChFRNKg1atX07RpU8qUKcPChQvJli2bo0sSkRRMgVJEJI3aunUrjRo1Il++fCxbtowXXnjB0SWJSAqlQCkikobt37+f+vXrkylTJlasWEHBggUdXZKIpEAaviwikoaVLFmSDRs2YLFYqFatGgcPHnR0SSKSAilQioikcYUKFWLDhg1ky5aNmjVrsmPHDkeXJCIpjAKliIjw4osvsnbtWl566SVq167NunXrHF2SiKQgCpQiIgJA9uzZWbFiBRUrVsTPz49FixY5uiQRSSEUKEVEJIKrqysLFy6kYcOGNGvWjBkzZji6JBFJARQoRUQkEhcXF2bNmkWbNm1o06YN48aNc3RJIpLMOTm6ABERSX6cnJz4448/cHNz4/333+f69et89tlnji5LRJIpBUoREYmS0WhkxIgRZMuWjc8//5yQkBC++eYbDAaDo0sTkWRGgVJERJ7LYDAQEBBAtmzZ6N27NyEhIYwePRqTyeTo0kQkGVGgFBGRGPXq1YusWbPy7rvvEhISwqRJk0iXLp2jyxKRZEJLL4qISKzNmTOH1q1bU7duXf766y8yZszo6JJEJBlQoBQRkThZsWIFzZs3x8vLiwULFpA1a9Yoj7v14Bbz/53P1nNb2XZuGxfvXMSKlZwZc1IxT0Uq5a1Es2LNcHNxS9oHEBG7U6AUEZE427RpE6+88gqenp4sXbqUnDlzRuz779Z/DF03lD92/cG9sHs4G50JtYRGOj98m4vJhbZl29K/Rn8KuhVM6scQETtRoBQRkXjZs2cPDRo0wM3NjeXLl5MvXz4m7Z7EB4s/4F7YPcIsYbG6jpPRiXSmdAT6BdLZq7NGkYukQAqUIiISb0ePHqVevXpYrBZqfFODaUemYcCAlfj91dKubDt+b/o7JqNGkYukJAqUIiKSIOfOnaP0J6W5XuQ6JLBx0YCBDuU7ML7JeLVUiqQgWnpRRERizWAw0KNHj0jbtt7cyvWXnwqTO4EA4Hrcrm/Fyv92/o+pe6cmsFIRSUoKlCIi8oygoCACAgIICQmJ9rhr967ReUFnDLFpmjwLLATGAYOwBc4oGDDQfVF3zt86H2m7h4cHBoMhyq+GDRvGfH8RSTSa2FxERJ4RFBTEwIEDad++PW5ubs89bvTW0Vy/fz12fSaPADuAF4BswNWoD7Ni5c7DO/y05Se+rfdtpH3lypWjT58+z5yTJ0+emO8vIolGgVJEROIlzBLG6G2jsVgtsTuhIlAdcAb+4bmBEsBsNTNu+zgCagXg4uQSsT1v3rz4+/snoGoRSQx65S0iIpEEBATQt29fADw9PSNeK588eTLimKlTp1KoSCEufnbR9gr7ZJSXiswVW5iMpZD7Iaw+sToOlYuIo6iFUkREImnZsiWHDx9m+vTpBAYG4u7uDhAxefnatWuZOXMmFVpU4OzJs1i3WmEK0Bnb62w7MRlMBP8XTKMijSK2hYaGcuXKlWeOzZQpExkyZLDfzUUkTtRCKSIikZQpUwYvLy8Amjdvjr+/P/7+/mTKlAmAffv2sWTJEl545QVM1U3Q4dGJdm5MtGJl14VdkbYtW7aMnDlzPvP1008/2ffmIhInaqEUEZE48fHxwdvbm5AjIYRZw8ANKAocBizYranCYrVw7f61SNsqV67MkCFDnjm2SJEi9rmpiMSLAqWIiMRJeHgzGp5IjjmAUOAOkNl+93IyRv5ryt3dnXr16tnvBiJiF3rlLSIi8fKi64s4G+MwyiaOnIxOvOj6YqJdX0TsR4FSRESeEd2yh0eOHAHA60UvQi2hto1XsY3gzmS/GixWCxXyVLDfBUUk0eiVt4iIPCN8AE5UK+Vs2rSJHTt2UCVfFduGG8C/QGHs10xxGSzOlsf3EJFkTYFSRESe4e3tDUD//v1p1aoVzs7ONGnSBIBSpUrh5+dHz549ybM7D/+t/s92Uq0YLhoC7H7086NTWPvouxtQ9oljR0OGwhmo+GPFSJc4d+4cU6ZMeebSrq6uNG/ePBZPJiKJQYFSRESeUbFiRQYPHszYsWNZsmQJFouFEydOAODr64uPjw8DBw7k0qlLkB1oBuSO4aLXeXZqofDPBYkcKIF8WfI98+p9165dtG3b9plLFyxYUIFSxIEMVqs1FguwioiIPCvMEkaV8VXYfXE3YZYwu1zTZDDxco6X2fX+LtKZ0tnlmiKSuDQoR0RE4s3J6MSkFpMwPPpfgj1q4pjScorCpEgKokApIiIJUiJnCWa8PgPALqGyxJESlMhWIsHXEZGko0ApIiIJ1rJ4S2a/OZv0TumfmYw8NpwMTjgbnfm86OccnX2UZs2ace/evUSoVEQSgwKliIjYRYviLdjXdV/EVD8mgynGc8KPKf9iefZ03cPXrb/mn3/+Yf369TRt2pS7d+8mas0iYh8alCMiInZlsVpYeHgho7aOYvnx5YCtBTJ8xLYVa8QAHt+CvvSo1IMWxVpgMj4OoGvXruWVV16hSpUq/P333xHzYopI8qRAKSIiiebi7YsE/xfMjvM7uHL3Clas5MiQA68XvaiQpwIvZn7+0orr16+nUaNGVKxYkYULFypUiiRjCpQiIpJsbdy4kYYNG1K+fHkWLVqEq6uro0sSkSioD6WIiCRb1apVY+nSpezatYtGjRpx69YtR5ckIlFQC6WIiCR7mzdvxs/Pj1KlSrF48WKyZMni6JJE5AkKlCIikiJs3bqVBg0aULx4cZYsWULWrFkdXZKIPKJAKSIiKUZwcDD169fn5ZdfZunSpbi5uTm6JBFBgVJERFKYHTt2UK9ePV566SWWLVtGtmzZHF2SSJqnQTkiIpKieHl5sXLlSo4fP069evW4du2ao0sSSfMUKEVEJMUpX748q1at4tSpU9SrV4+rV686uiSRNE2BUkREUqSyZcuyatUqzpw5Q926dbly5YqjSxJJs9SHUkREUrR9+/ZRp04dcufOzcqVK8mZM6ejSxJJc9RCKSIiKVqpUqVYs2YNly5dok6dOly6dMnRJYmkOWqhFBGRVOHQoUPUrl2b7Nmzs2rVKl544QVHlySSZqiFUkREUoVixYqxZs0arl+/Tu3atblw4YKjSxJJMxQoRUQk1ShatChr1qzhxo0b1KpVi//++8/RJYmkCQqUIiKSqrz88susXbuWO3fuUKtWLc6dO+fokkRSPQVKERFJdQoXLsyaNWu4f/8+tWrV4uzZs44uSSRVU6AUEZFU6aWXXmLt2rWEhobi6+vL6dOnHV2SSKqlQCkiIqmWp6cna9aswWKxUKtWLU6dOuXokkRSJQVKERFJ1Tw8PFizZg0AtWrV4uTJkw6tRyQ1UqAUEZFUr2DBgqxduxaTyYSvry/Hjx93dEkiqYoCpYiIpAn58+dnzZo1pE+fnlq1anHs2DFHlySSaihQiohImpEvXz7WrFlDhgwZ8PX15ejRo44uSSRVUKAUEZE0JU+ePKxZswZXV1d8fX05fPiwo0sSSfEUKEVEJM158cUXWbNmDVmzZqVWrVocOnTI0SWJpGgKlCIikiblzp2b1atXkz17dmrVqsXBgwcdXZJIiqVAKSIiadYLL7zAqlWryJUrF7Vq1WL//v2OLkkkRVKgFBGRNC1XrlysWrWK3LlzU7t2bfbt2+fokkRSHAVKERFJ89zd3Vm1ahV58+aldu3a7Nmzx9EliaQoCpQiIiJAjhw5WLlyJfnz56dOnTrs2rXL0SWJpBgKlCIiIo9kz56dlStX4uHhQd26ddmxY4ejSxJJERQoRUREnpAtWzZWrFjBSy+9RN26ddm+fbujSxJJ9hQoRUREnuLm5sby5cspWrQodevWZdu2bY4uSSRZU6AUERGJQtasWVm2bBklSpSgXr16bNmyxdEliSRbCpQiIiLPkSVLFpYuXUrp0qVp0KABmzZtcnRJIsmSAqWIiEg0MmfOzOLFiylTpgx+fn4EBQU5uiSRZEeBUkREJAbhobJ8+fL4+fmxYcMGR5ckkqwoUIqIiMSCq6srixYtomLFijRs2JB169Y5uiSRZEOBUkREJJYyZcrEwoULqVKlCo0aNWLNmjWOLkkkWVCgFBERiYOMGTOyYMECqlWrxiuvvMKqVascXZKIwylQioiIxFGGDBmYP38+NWrUoHHjxqxYscLRJYk4lAKliIhIPISHytq1a9OkSROWLVvm6JJEHEaBUkREJJ5cXFyYO3cudevWpWnTpixZssTRJYk4hAKliIhIAqRPn57Zs2fToEEDmjVrxqJFixxdkkiSU6AUERFJoPTp0/PXX3/RqFEjWrRowcKFCx1dkkiSUqAUERGxg3Tp0vHnn3/SuHFjWrZsyfz58x1dkkiSUaAUERGxk3Tp0jFz5kyaNWvG66+/zty5cx1dkkiSUKAUERGxI2dnZ6ZNm0bLli158803mT17tqNLEkl0BqvVanV0ESIiIqlNWFgY77zzDn/++SfTp0/njTfecHRJYgdmMxw6BNu3w5Ej8OABuLhAsWLg7Q1FioAxDTbXOTm6ABERkdTIycmJSZMmYTQaad26NRaLhbfeesvRZUk8/fcf/PYbjBkDly7Ztjk7275brRAWZvs5Xz7o0QPefRfc3R1TqyOohVJERCQRmc1mOnTowNSpU5k8eTJt2rRxdEkSBxYLjB4Nn3wCDx/aPsfEaISMGWHkSGjXDgyGxK/T0dRCKSIikohMJhN//PEHJpOJtm3bYrFY8Pf3d3RZEgs3b0Lz5rB6ddzOs1jgzh3o0AHmz4dp0yBDhkQpMdlQoBQREUlkJpOJ33//HaPRyDvvvIPZbKZdu3aOLkuicesW1KkDu3bF7/zw979//w2NG8PixZA+vd3KS3bSYLdRERGRpGc0Gvntt9/o1KkTHTp04I8//nB0SWmewWCgR48eUe57911bmDSbASYABuBknO9hscDatdC7d3yrTBkUKEVERJKI0Whk7NixdOnShXfffZfff//d0SWlCUFBQQQEBBASEhKr42fNsn3ZwuTzbAW6Ad6AM7bAGTWLBcaOhVWrIm83m8388ccf1KpVi+zZs5M+fXo8PDzo0KEDwcHBsao1uVCgFBERSUJGo5ExY8bw/vvv06lTJ3799VdHl5TqBQUFMXDgwFgFytBQ2yjtmAfSLALGYwuShWK8rtEI77//+FX4vXv3ePXVV+nYsSNWq5V+/frxyy+/8M4777Bp0yYqVarE2bNnY7xucqE+lCIiIknMaDQyevRoTCYT7733Hmazma5du0Z57L9X/uWvA3+x7b9tbD+/nZsPbmIymMjtmpsq+argk8+HN0u+SVaXrEn8FKnTvHmPpwWKXlfgUyAD0AM4HO3RFott3so1a6B2bejbty9LliwhMDCQ3k+9D//qq68IDAyMR/WOo2mDREREHMRqtfLhhx/y008/MWrUKLp37x6xb/2p9Xy55kvWnFyDyWDCihWLNfKcNU5GJ8wWM+md0tOubDsCagWQ2zV3Uj9GshYQEMDAgQOf2X7ixAk8PT3p3r07Pj4+DBo0iFOnTpEuXUnu3AnEYqn5xNETgA7ACcAjirv0AEYD0UcqJyd46y349tuzeHp6Urt2bZYtWxbPJ0te1EIpIiLiIAaDgcDAQEwmEz169MBsNtOpayc+W/EZI7eOxGQwAWC2Rt2ZL8xim037fth9xu8Yz4x9M/il8S+0Lt06yZ4huWvZsiWHDx9m+vTpBAYG4v5otvGcOXMCsHbtWmbOnEnPnj1Jly49n38+Bqu1IbY+kqXsWktYGKxbB4sXLyYsLIy2bdva9fqOpEApIiLiQAaDgR9++AGj0UivT3vxw80fOGc5Bzw/SEbFbDVz88FN2sxpw75L+xhSZwiGtDCjdgzKlCmDl5cX06dPp3nz5nh4eETav2/fPoKDg/H29ubYMfjss1ZAUeBLYI7d6zlzBnbuPAhA6dKl7X59R9GgHBEREQczGAwMHDqQ3J/k5kzomWdebceW9dEr1683fM3Q9UPtWWKq5ePjg7e3NwDnzgEUAJoBS4HYB/q4uHTpJgCZM2dOlOs7glooRUREkoEBqwdwyXQppm54sfbl6i+p5VGL6gWq2+eCqYTFYiEkJIQrV64A4OLiwoQJE7hy5Qo7dmQFOgMvA3eBy4D9+6RmzJgFgFu3btn92o6iQCkiIuJgm85sYsTmEREtjM/YCcx/altGIBdQDSjy7ClGg5G2c9tysPtBXJxc7FpvcmE2m7l+/TpXrlzh6tWrUX6/cuUKe/bsAcDLy4sbN25geWJB7tWrV7N69WqyZMlC5sw1sQXKxFWiRDEA9u7dS7ly5RL9fklBgVJERMTBBq0dhNFgjLnPZG3A7dHPt4FdwFSgNbZuf08wW82cDDnJjH0zaF+uvV3rTQxhYWFcu3Yt2nD4ZEi8evUq169fJ6rJatzc3HB3dydHjhwR30+ePMm7775LkSJFIrbXqlWLChUqsHHjRtKlS8f9++DqCmbzYWyJPafdnzNzZmjTphEDBpiYMmVKqhmYo0ApIiLiQCeun2DpsaXPb518UmEg7xOfvYDvgX08EyjB1kr585afkzxQhoaGxhgKn/4e1aTjBoOBbNmyRQRAd3d3ihYtSrVq1SKFxSe/Z8+eHSenyPFm7NixbN++nbfffvuZFsHg4GD27duHl5cXLi7w0ktnOHx4PtAQMNnpV+QQkBGDoQDe3lCgQH46d+7M2LFjGTlyJB988EGkoy0WC4GBgbz11lvky5fPTjUkLgVKERERB5p3aB4GgyHKlrYYuWBb9e85Q2wtVgs7L+zkzI0z5M+aP171PXjwIM7h8ObNm89cx2AwkCNHjkgBsGTJkpHC4tPhMFu2bJhMCQ914YNu+vfvT6tWrXB2dqZJkyYAlCpVCj8/P3r27En69Om5dGnMo7OenbsyslPA5Ec/hy+TOOTR94LAky2PxQFfYA2tWtm2DB8+nGPHjtGzZ0/mzJnDq6++SrZs2Th9+jSzZs3i0KFDtAo/OAVQoBQREXGg4PPBGKJZBzqSB8CdRz/fAbYAD4Ey0Z+2/fx28mfNz7179+IcDm/fvv3M9UwmE9mzZ48UBMuWLfvcVkN3d3fc3NwwGh0zuUzFihUZPHgwY8eOZcmSJVgsFk6cOAGAr68vPj4+DBw4kNOnT1OkSAlu3pyAxRLDLyongC+e2hb+2ZfIgdImQwZ4+23bzxkzZmTx4sVMmDCBiRMnMnjwYO7evUuePHmoU6cOU6dOJW/evM9cI7nSSjkiIiIOVGxUMf69+m/0B0U1KAdsb2SbAOWiOdcCWXdlJXRFKHfv3n1mt5OTU7RBMKp9WbNmdVg4TAq9esGoUbblEu3FYICBA+GLpzNoKqFAKSIi4kB5hufh/O3z0R8UHihfAXI82nYH2AMcB14HSkR9qtFqpKKlIm9leyvKsJglSxZNgP6UO3egRAnbvJRmO0xFaTLZrrd9Ozg7J/x6yZFeeYuIiDhQ+PKKsZKXyINySgHjgEXYpk6M4m91k8mEbzVfPqz/YULKTFMyZYK//oKaNcFqTVhLpclkGzk+c2bqDZOglXJEREQcqkDWAvE/2Qh4YJtC6FrUh4RZwsiXJWWMFE5OKlaEJUvAxQWc4tn85uQEWbLAqlVQvLh960tuFChFREQcqFLeSjgbE9B0Fd569jDq3VaseOfxjv/10zBfX9ixA7y8bJ9j2zMg/LgaNWDnzsfnp2YKlCIiIg5UNX9VQi2h8TvZDBzDNjjHPepD0pnSUfaFsvGsTooWhaAgGD0aPDxs25ycng2XBsPjlsxixWDCBFi5EgoWTMpqHUeDckRERBzofth9Xhz+IiH3Q55/UPignCdXyrkD7AXOA9WBelGcZ4bMJzIztNJQ2rdvT+bMme1YedpjscDq1bZX2Fu3wsGD8PCh7bV4yZK21+QNGkC1arFvzUwtFChFREQcrN/Kfny34TssPGf0R1TTBjlha5X0BirA86ay9Dvpx8opK8mYMSOdOnXigw8+wCO8qU3EThQoRUREHOjWrVt8+NmH/J7hd3DlucEwrkwGE+3LtWd80/GcPXuW0aNHM27cOG7cuEGLFi3o3bs31apV05RBYhfqQykiIuIgy5Yto1SpUsyYOINuebrZNUzmypSL4Q2GA5AvXz6++eYbzp49y5gxY9i/fz81atSgYsWKTJkyhYcPnzOiRySWFChFRESSWEhICO+++y5+fn4UKVKEvXv3Mvqj0fzU8KcEX9tkMOGazpVlbZeR1SVrpH0ZM2bkvffeY//+/SxZsoScOXPStm1bChYsyJAhQ7h8+XKC7y9pk155i4iIJKGFCxfy3nvvcevWLX744Qc6d+4c6bXzr9t/pfui7oBtDsm4MBqM5Mmch8VvL6ZUrlKxOufgwYP8/PPPTJw4EYvFgr+/P7169aJ06dJxurekbQqUIiIiSeDatWv06tWLKVOm0LBhQ3799Vfy588f5bH7Lu3jnbnvsPPCTkwGE2Zr9Ov/ORmdCLOE8X6F9xlWbxiZ08d9NPe1a9f47bffGDlyJOfOnaNu3br07t2bV155JVWv2y32oUApIiKSyObMmUO3bt148OABI0aM4J133olxMIzZYuafI/8wcutIVhxfAdhaIMOXagyfuzK9MT0dvTrStUJXSr+Q8FbF0NBQZs+eTWBgIFu3bqVIkSL07NmT9u3b4+rqmuDrS+qkQCkiIpJILl26xAcffMCff/5J06ZN+eWXX8iTJ0+crxNyP4Qd53ew+8Jubjy4gclg4gXXF+j7dl96tu7J4K8GJ0L1sHnzZkaMGMFff/2Fq6srnTt3pkePHhRMK7N1S6wpUIqIiNiZ1Wpl5syZfPDBB1itVkaOHEmrVq3sPkVPkyZNePDgAcuWLbPrdZ925swZRo8eza+//sqNGzdo2bIlvXv3pmrVqpp2SACN8hYREbGr8+fP06JFC1q3bk3t2rU5cOAArVu3TpTgVa1aNTZt2kRYWNwG78RV/vz5+fbbbyOC5d69e6levTqVKlVi6tSpmnZIFChFRETswWq1MnHiREqUKMGmTZv466+/+PPPP8mVK1ei3bN69ercvn2bvXv3Jto9npQpUybef/99Dhw4wKJFi8iePTv+/v54eHgwdOhQrly5kiR1SPKjQCkiIpJAZ86coXHjxrRv357GjRtz4MABXnvttUS/b4UKFUiXLh0bN25M9Hs9yWg00qhRI5YuXcq+ffto0qQJQ4YMIX/+/HTu3Jl9+/YlaT3ieAqUIiIi8WS1Wvntt98oWbIku3fv5u+//2bKlCnkyJEjSe7v4uJChQoV2LBhQ5LcLyolS5Zk3LhxnD17li+//JJFixZRunRpGjRowKJFi7BYnrM+uaQqCpQiIiLxcPLkSerXr0+XLl1444032L9/P02aNEnyOqpVq8aGDRtw9BjbHDly8Pnnn3Py5EmmTZtGSEgIjRs3pnjx4owZM4bbt287tD5JXAqUIiIicWCxWBg9ejSlSpXiyJEjLF26lN9//x03NzeH1FOtWjXOnTvH6dOnHXL/pzk7O9O6dWu2bNlCUFAQ5cqVo2fPnuTPn59PPvkk2dQp9qVAKSIiEktHjx6ldu3a9OjRg3feeYe9e/fSoEEDh9ZUtWpVgCTvRxkTg8GAj48PM2fO5Pjx43Tu3JnffvuNQoUK8eabbxIUFOTwVlWxHwVKERGRGJjNZn788UfKlCnD2bNnWbVqFWPGjCFLliyOLo2cOXNStGjRZBcon1SgQAGGDRvGmTNn+Pnnn9m9ezfVqlWjcuXKTJs2jdDQUEeXKAmkQCkiIhKNgwcPUr16dT7++GO6dOnCnj17qF27tqPLiiS8H2Vy5+rqSrdu3Th48CD//PMPbm5uvP3223h4ePDNN99w9epVR5co8aRAKSIiEoWwsDC++eYbypUrx7Vr11i/fj0jRowgU6ZMji7tGdWrV2fv3r3cuHHD0aXEitFo5JVXXmHZsmXs3buXxo0bM2jQIPLly8d7773HgQMHHF2ixJGWXhQREXnKnj176NixIzt37qRPnz4MHDiQDBkyOLqs5zp8+DBFixZlyZIl+Pn5ObqceLly5Qq//voro0aN4vz58zRo0IDevXvj5+eH0Wj/9q8jR2DrVti5E65cAasV3N2hfHmoVAleftnut0zVFChFREQeefjwId988w1Dhw6lSJEi/PHHH1SqVMnRZcXIarXywgsv8N577zF48GBHl5MgDx8+ZNasWQQGBrJ9+3aKFi1Kr169eOeddxLcOhwaCtOnw88/w/bttm3OzhA+VabRaDsGbMGyZ09o0wbSpUvQbdMEBUoRERFgx44ddOjQgf379/P5558zYMAA0qdP7+iyYq1FixbcuHGDVatWOboUu7BarQQFBTFixAjmzJlDlixZ6NKlCz169CB//vxxvt7u3dC2LezdawuOMc23Hn5MiRIwZYotYMrzqQ+liIikaQ8ePKB///5UqlQJg8HAtm3bGDx4cIoKk2AbmLN58+ZUM2LaYDBQrVo1Zs2axfHjx+nUqRPjxo3D09OTt956i02bNsX6WhMmgLc3hHfNjM3iPeHH/PsvVKwIv/0W92dIS9RCKSIiKcbNBzc5du0YD8wPcHFyoXD2wrimc4339bZs2UKHDh04evQoX3zxBZ999hnOzs52rDjpbN68GR8fH7Zu3UrFihUdXU6iuH37NhMnTuSnn37iyJEjVK5cmd69e/Paa6899/+3P/6Ajh3tc/+xY+G99+xzrdRGgVJERJK1vRf3MjZ4LIuPLuZEyIlI+wwYeCn7SzQu0pj3K7xPMfdisbrmvXv3+OKLLwgMDMTLy4s//viDUqVKJUb5Sebhw4dkzZqVb775ht69ezu6nERlsVhYtGgRI0aMYOXKlWTKlIkBAwbQuXPnSOuob99uG2Bja22cAHQATgAe8bqvwQBBQVClSoIfIdVRoBQRkWTp6LWjdFnQhdUnV+NkdCLMEvbcY8P3NyzckLGNx1LQreBzj12/fj3vvvsup0+fZtCgQXz00Uc4OTklxiMkuZo1a5IrVy7++usvR5did0FBQSxbtozevXtHWubSYDBQvHhxjh8/jtFo5J133qFXr14UKlSccuVso7nNZog6UG59tH0LsAcIA54fi0wm8PS09cN0cQEPDw9OnToVUUeWLFnInz8/Pj4+vPvuu1SuXNmuvwbJmfpQiohIsvPLtl8oNaYU60+vB4g2TD65f8XxFZQYU4KJuyY+c8zt27fp2bMnvr6+uLu7s2vXLj755JNUEybBNh/lxo0bU+WShkFBQQwcOJCQkJBn9tWpU4czZ87Qr18/5s+fT4kSJfDy+plDh6yPwuTzLALGAwagUIw1mM1w7Bj8+uvjbeXKlWPy5MlMmjSJb775htq1a7NgwQKqVKnCRx99FLeHTMEUKEVEJFn5avVXdFvUjQfmBzEGyaeFWcK4G3qX9vPb8/3G7yO2r1q1ijJlyjB+/Hh+/PFH1q9fT7FisXs9npJUq1aNCxcucOLEiZgPTmVy5szJgAEDOHXqFJMmTeb48VeJrrXRpitwAwgG6sf6XiNH2uatBMibNy/+/v74+/vTtWtXfv75Z44fP07z5s0JDAzkl19+id8DpTAKlCIikqQMBgM9evSIct+YbWMYtG6Q7cNOIAC4Hr/7fLLiE8ZtHsf7779P3bp1KVCgAHv27KF3796YTKb4XTSZq1q1KkCKWIYxLgICAujbty8Anp6eGAwGDAYDJ0+ejDhm6tSpFC1alCxZsvD114Hcv3+WmGPOC0DcJqy3WuHoUduk6M+TIUMGJk+eTPbs2Rk6dGiqbDF+mgKliIgkiqCgIAICAqJ8RRmVI1eP8NHSaF4RWrCFzGnAj8BQYDSwFnjOTDldF3Zl0vxJjB49mlWrVlG4cGHMZjN//PEHtWrVInv27KRPnx4PDw86dOhAcHBwHJ4w+cmWLRslS5Zk48aNji7Frlq2bEnr1q0BCAwMZPLkyUyePJmcOXMCsHbtWnr37o2/vz+DBg3i0qWrQENgX6LUYzTCli3RH+Pq6kqLFi04d+5cmlhKMvV0HBERkWQlvM9b+/btIw2ieJ7OCzpjtkTT4S0UmA/kAyoAmYAzwBps4yzaYesK9yQn8BniQ7d3uwG20d0tW7ZkyZIl1KxZk379+pE9e3ZOnjzJn3/+ycSJEzl9+jT58uWL6+MmG9WqVUt1LZRlypTBy8uL6dOn07x5czw8PCLt37dvH8HBwXh7ewOwc2crZswoCnwJzLF7PUbj45V2ohM+c8CxY8coWbKk3etIThQoRUTE4XZd2MXaU2ujP8gEdAQKPLHNG3DDFiqPAy9FPsVqsLLq7CqOXjtK4eyF6du3L0uWLCEwMPCZqXW++uorAgMDE/QcyUH16tX59ddfuXbtGtmzZ3d0OUnCx8cnIkwC3LlTAGgGLADM2H7z2E9YGFy8GPNxrq62OVJv3bpl1/snR3rlLSIidheXPm8uLi7Ur14f0+kY/tJ3InKYDFf80fcrUZ9mMpgYGzyWs2fPMm7cOOrXrx/lPI0mk4mPP/44RbdOgq2FEojTSjIpXZEiRSJ9tnVZfBm4C1xOlHtGP3rc5vbt2wBkzpw5UWpITtRCKSIidteyZUsOHz7M9OnTCQwMxN3dHSBSn7eZM2fSs2dP0qdPT79v+2GeZIbO2MZJxMXtR98zRr3bbDWz+Ohiip4qSlhYGG3bto3XM6UUnp6e5M6dmw0bNtC4cWNHl+MQ2bLZJiFPrLEwJhO4u9vmuIzOvn22PpyFCxdOnEKSEQVKERGxu7j0ebt+7zqfnv8URgGrgVZxvNlGID0Qzd/Z/175l73X9gJQunTpON4gZTEYDBHzUaYmBsPTHWQfO/JUsitfHiZPPoztXxk5E6We8uUhukbg27dvM3fuXPLnz0/x4sWff2AqoVfeIiKS5J7s83bk2hFbP8iiwDFso7ljax22vpP1iHb2F7PVzH9X/gPSxuvHatWqsW3bNh48eODoUuwmU6ZMAFHOGrBp0yZ27NgR8Tl//jPYRnA1wH79Jw8BpwHb6+4KFZ5/5L1792jbti3Xrl2jf//+0Ybh1EItlCIikuSe7PP2IOxR6MmBbST3HSA2mW8fsAooD1SM+XCXTC5A2hggUb16de7fv8+OHTvw8fFxdDl2Ef4PkP79+9OqVSucnZ1p0qQJYBtN7efnF9GFYsyYMY/OGhjDVU8Bkx/9HD5l1JBH3wsCT3aPKA74AmvIlQtq1LBtPXfuHFOmTAFsrZIHDhxg1qxZXLhwgT59+vDee+/F84lTFgVKERFxqPRO6eN+0jFgLrZxF6/G7pTCL9veie/du5dy5crF/Z4pSNmyZcmYMSMbN25MNYGyYsWKDB48mLFjx7JkyRIsFkvEikC+vr74+PgwcOBATp8+TYkSJahXbwJ//FEGS7Qt3ieAL57aFv7Zl8iB0sZkgm7dwNnZ9nnXrl20bdsWg8FA5syZyZ8/P02aNKFTp05UqlQpYQ+dghisaWH6dhERSXLDhw/n448/5sSJE5H6UBoMBnx8fAgKCgLg+r3rZB+WHWYBh4HPsXXI2ontrWUvINsTFz4LTARyA+8AzjHXYjKYOOh/kOIvF6du3bosXbrUDk+YvNWpU4csWbIwb948R5fiECEhULQoXLlCDKEy9oxG24Cff/+FHDnsc83UQn0oRUQkUcS2z1u2DNnIY84D/2KbRzK6v5kuA1Ox9blsQ/Rh8jLw6NZF3YtSpFAROnfuzLJlyxg5cuQzh1ssFoYPH87Zs2ejf7AUonr16gQFBaWJZf+i4uYG//uf/cIk2K41frzCZFT0yltERBJFXPq83Rx303ZSrWgu+ABbd7f7QDVsrZlPyg7kf+LzaKAgmDqaaFS4EWBrNT127Bg9e/Zkzpw5vPrqq2TLlo3Tp08za9YsDh06RKtWcR1mnjxVq1aNwYOHMXv2aUJDC/LwIWTIAMWL276c0kACaNwYPvsMvv3WPtfr0weaN7fPtVKbNPDbSUREHCEufd48i3hyqNEh22vs57kLPMqdrIhif1kiB8pHzFYz71d4H4CMGTOyePFiJkyYwMSJExk8eDB3794lT5481KlTh6lTp5I3b94EPLXjPXwIs2fDTz/VBW7zxhvP/lWfPj3Urw89eti+G1Px+8qvv7a1LA4bFr+5KcPP+fBD+P77xKkxNVAfShERSRZqTajFxjMbCbOE2e2aJoOtdXJBmwV2u2ZytmgRvPsuXLhgGzwS3Wou4ftLlIDJk8HLK+nqdIQ5c6BzZ7hxI3ar3IDt1yhLFhg3Dt54I3HrS+lS8b9JREQkJfmtyW+YDPZdc9nFyYUxjcfEfGAK9/AhdOpke8V76ZJtW0yhKXz/v/9CxYq2lrzU3MTUsqXtWfv2tfWvBNtr/yeniDQYHncFyJoVPvoIDh1SmIwNtVCKiEiy8cu2X+i2qJvdrjep+STalk3dSy2GhkKLFrbWyYT+jd6nj+21bmqfh/vBA1i6FLZuheBgWwi3WiFXLtuE5RUrQsOG4OLi6EpTDgVKERFJVgLWBDBwbUwTUsfs+/rf83HVj+1QkeMZDAa6d+/OqFGjntnXtavtlaztb/MJQAds8yt6xOteI0fa+laKxIVeeYuISLISUCuAsY3H4uLkgpMxbmNHnYxOZHTOyMTmE1NkmAwKCiIgICDKqZaisnw5jB0bXcukBVvIbIptxFImoBS21WDuR3nGxx/D0aOPP3t4eGAwGDAYDBiNRtzc3ChdujRdunRhy5YtsapTUj8FShERSXbeq/Ae+7ruo2aBmgAxBksng21/g0INONj9IO+UfSfRa0wMQUFBDBw4MFaB0my29ZuMfoT2XWwtlpeB94ERQCXgK6AR8GwSNZuhe/fI28qVK8fkyZOZNGkS33zzDbVr12bBggVUqVKFjz76KDaPJqmcpg0SEZFk6aXsL7Gy3Ur2XdrH2OCxLDm6hOPXj2N9IgQZDUYKZy/MK4Vf4f0K71PUvagDK05a//wDp0/HdFQ6YCNQ9YltnbG9Dv8KWAnUi3RGWBgsWwZHjkD4kut58+bF398/0nHfffcdbdq0ITAwkCJFitC1a9f4P4ykeOpDKSIiKcatB7c4dv0YD8Ie4OLkQuHshcmULpOjy7KLgIAABg58tu/oiRMn8PT0pHv37vj4+DBo0CBOnTpF+vQluX07EIul5hNHTyB2fSj3AmWAn4EPntlrMtlGOA8bZnvlXapUKRYuXPjMcbdv36ZgwYJkyJCBM2fOYEjto3nkudRCKSIiKUbm9Jkpl7uco8tIFC1btuTw4cNMnz6dwMBA3N3dAciZMycAa9euZebMmfTs2ZN06dLz+edjsFobAlux9YuMiwuPvrtHuddshpUrY76Kq6srLVq04Pfff+fAgQOULFkyjnVIaqFAKSIikgyUKVMGLy8vpk+fTvPmzfHw8Ii0f9++fQQHB+Pt7c3hw/DZZ62AosCXwJw43m0YkAVbP8qo7d1rm5IoJqVK2cLssWPHFCjTMAVKERGRFMDHxydiffTjxwEKAM2ABYAZiO2k8F9jW7tyDOD23KNCQ20r7sTE1dUVgFu3bsXy/pIaaZS3iIhIClAkfIQMT7YcvoxtJPflWF5lJjAAeBeIeRBNbFoob9++DUDmzJljWYOkRgqUIiIiKUymeI1DWg68AzQGxsbqjIwZYz5m3759ABQuXDg+RUkqoUApIiKSTEQ3SvrIkSMRPz/uqngYyAjkjOHKW4AWQAXgT2LT4y1rVnjhheiPuX37NnPnziV//vwUL148xmtK6qVAKSIikkxketT0GNXE5ps2bWLHjh2ALejlyHEGmA80IPr+kwextUp6AAuBDNEcewg4jcFgW886ulmA7t27R9u2bbl27Rr9+/fXlEFpnAbliIiIJBPhg2769+/P/9u7f9eo7ziO46+7cCbLDe6e5OiU/gFBs9jtcIjz4VKHQMAhIKGDYyCjdLMEXCoEHDIpdFQEN1cxiFNzEHKD0qEQ0CF0+EbqDyo17xt618cDDu748v013ZPv9/v5fIfDYTqdTlZXV5M0o6kHg0E2NjYyPz+fd+9+OV3ra+89/zPJIMkfSX5K8ttny79Lcvmj30tJriR5mtPdJkkODw+zu7ubpLkqub+/n729vYzH42xubmZ9ff1sJ8zMMLE5APyHbG9vZ2dnJ0dHRzk5OfliYvOtra2MRqP0+9/n1aufk/zw0dq/5tOJzX9P0v/K3n48XeeDVpIrWVh4mvG4ue29uLiYg4ODZmmrlW63m16vl5WVlaytrWV5eXlCZ840E5QAMKUGg+TJk+Z1iZPSbie3biV37kxum8w+QQkAU2o0SpaWkuPjyWxvbi7p9ZKXL//dCG/4wKAcAJhSFy8m9+5NZlutVhOUDx6ISb6doASAKXb9enL3bvP9rAOt5+aSc+eSR4+SS5cmd2z8fwhKAJhyN28mDx8m5883cfgt2u2k30+ePWueyYSzEJQAMAOuXUtev05u3Eg6nSYU/+mKZfv037/bTW7fTl68aOadhLMyKAcAZszbt8n9+8njx8nz58mbN38vu3Chua199WoyHHpekskQlAAw446Pk/fvk4WF5gOTJigBACjxDCUAACWCEgCAEkEJAECJoAQAoERQAgBQIigBACgRlAAAlAhKAABKBCUAACWCEgCAEkEJAECJoAQAoERQAgBQIigBACgRlAAAlAhKAABKBCUAACWCEgCAEkEJAECJoAQAoERQAgBQIigBACgRlAAAlAhKAABKBCUAACWCEgCAEkEJAECJoAQAoERQAgBQIigBACgRlAAAlAhKAABKBCUAACWCEgCAEkEJAECJoAQAoERQAgBQ8hdng/dYBx7XpgAAAABJRU5ErkJggg==",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# highlight the shortest path in the graph\n",
"\n",
"# get the shortest path\n",
"shortest_path = nx.shortest_path(G, source='tbl1.F', target='tbl2.C')\n",
"\n",
"# change the color of the nodes in the shortest path\n",
"color_map = []\n",
"for node in G:\n",
" if node in shortest_path:\n",
" color_map.append('green')\n",
" else:\n",
" color_map.append('blue')\n",
"nx.draw(G, with_labels=True, node_color=color_map)\n",
"plt.show()\n",
"\n",
"\n"
]
}
],
"metadata": {
"kernelspec": {
"display_name": ".venv",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.12.3"
}
},
"nbformat": 4,
"nbformat_minor": 2
}