{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Use of the static grid equivalents\n",
"This tutorial gives a quick overview of the grid equivalents function. This script gives an example to reduce a grid area using the IEEE case9 grid."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Determination of grid areas\n",
"\n",
"The user can determine the grid area of interest (internal area), the grid area for the reduction (external area), and the boundary buses between them. The figure below schows an example of the grid with identified grid areas:\n",
"\n",
"- internal area (buses): [0, 3, 4, 8]\n",
"- boundary buses: [4, 8] (boundary buses belong to the internal area)\n",
"- external area (buses): [1, 2, 5, 6, 7] \n",
"\n",
"\n",
"\n",
"In order to identify the user-defined area, the boundary buses and one of the internal buses must be provided as inputs.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Required inputs\n",
"\n",
"The most important inputs for grid equivalents are:\n",
"- net: pandapower grid including power flow results\n",
"- eq_type: the method used to determine the equivalent grid, e.g., \"rei\", \"ward\", \"xward\"\n",
"- boundary_buses: indices of boundary buses (as a list) that divide the original grid into the internal areas and the external areas. Based on the figure above, boundary_buses = [4, 8] \n",
"- internal_buses: bus indices (as a list), which are within the internal area. Based on the figure above, internal_buses = [0]. Just one of the internal buses is enough, the function will find and consider the remaining internal buses during the equivalent calculation. If 'internal_buses' is an empty list or None, the complete grid is treated as an external area."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Example: REI-equivalent\n",
"In the following, the reduction of the external grid (buses [1, 2, 5, 6, 7] of the grid case 9) in the figure above is shown.\n",
"First, the necessary libraries need to be imported."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"\n",
"import pandapower as pp\n",
"import pandapower.plotting as plotting\n",
"import pandapower.networks\n",
"import pandapower.grid_equivalents"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Subsequently, the IEEE case 9 grid model is created, and its power flow is calculated."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"This pandapower network includes the following parameter tables:\n",
" - bus (9 elements)\n",
" - load (3 elements)\n",
" - gen (2 elements)\n",
" - ext_grid (1 element)\n",
" - line (9 elements)\n",
" - poly_cost (3 elements)\n",
" - bus_geodata (9 elements)\n",
" and the following results tables:\n",
" - res_bus (9 elements)\n",
" - res_line (9 elements)\n",
" - res_ext_grid (1 element)\n",
" - res_load (3 elements)\n",
" - res_gen (2 elements)"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"net = pp.networks.case9()\n",
"net.sn_mva = 1.0\n",
"pp.runpp(net)\n",
"net"
]
},
{
"cell_type": "raw",
"metadata": {},
"source": [
"Next, we define the input parameters according to the figure above and obtain the REI-equivalent."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"# equivalent type\n",
"eq_type = \"rei\"\n",
"\n",
"# boundary buses\n",
"boundary_buses = [4, 8]\n",
"\n",
"# internal buses \n",
"internal_buses = [0]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Next, the equivalent function is called, and the grid reduction is executed."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"hp.pandapower.grid_equivalents.get_equivalent - INFO: rei equivalent calculation started\n",
"hp.pandapower.toolbox - INFO: dropped 2 gen elements\n",
"hp.pandapower.toolbox - INFO: dropped 5 lines with 0 line switches\n",
"hp.pandapower.toolbox - INFO: dropped 0 switches\n",
"hp.pandapower.toolbox - INFO: dropped 1 lines with 0 line switches\n",
"hp.pandapower.toolbox - INFO: dropped 1 load elements\n",
"hp.pandapower.toolbox - INFO: dropped 1 ext_grid elements\n",
"hp.pandapower.toolbox - INFO: dropped 2 lines with 0 line switches\n",
"hp.pandapower.toolbox - INFO: dropped 0 switches\n",
"hp.pandapower.toolbox - INFO: dropped 1 lines with 0 line switches\n",
"hp.pandapower.toolbox - INFO: dropped 3 impedance elements\n",
"hp.pandapower.toolbox - INFO: dropped 5 lines with 0 line switches\n",
"hp.pandapower.toolbox - INFO: dropped 0 switches\n",
"hp.pandapower.toolbox - INFO: dropped 3 impedance elements\n",
"hp.pandapower.toolbox - INFO: dropped 1 lines with 0 line switches\n",
"hp.pandapower.toolbox - INFO: dropped 0 lines with 0 line switches\n",
"hp.pandapower.toolbox - INFO: dropped 2 load elements\n",
"hp.pandapower.toolbox - INFO: dropped 2 ext_grid elements\n",
"hp.pandapower.grid_equivalents.get_equivalent - INFO: \"rei\" equivalent finished in 1.67 seconds:\n"
]
}
],
"source": [
"net_eq = pp.grid_equivalents.get_equivalent(net, eq_type, boundary_buses, internal_buses)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now, the grid equivalent is obtained: \"net_eq\" is the REI-equivalent grid model. We can compare the power flow results between the original grid \"net\" and the reduced grid \"net_eq\". "
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"--- power flow (original grid) ---\n"
]
},
{
"data": {
"text/html": [
"
"
],
"text/plain": [
" vm_pu va_degree p_mw q_mvar\n",
"0 1.000000 0.000000 -71.954702 -24.068958\n",
"3 0.987007 -2.406644 0.000000 0.000000\n",
"4 0.975472 -4.017264 89.283896 8.224645\n",
"8 0.957621 -4.349934 124.581896 32.419383\n",
"9 0.985645 0.621545 99.317421 0.635364\n",
"10 1.000000 9.668741 -162.192474 -24.665476\n",
"11 1.000000 4.771073 -83.866102 -11.311074"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"print(\"--- power flow (original grid) ---\")\n",
"display(net.res_bus)\n",
"print(\"--- power flow (reduced grid) ---\")\n",
"display(net_eq.res_bus)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"It can be seen that the power flow results (*vm_pu*, *va_degree*) of the internal buses [0, 3, 4, 8] in both grids are the same , i.e., the equivalent calculation is successful. The *p_mw* and *q_mvar* values at the boundary buses [4, 8] are different due to the equivalent devices. During the grid reduction, additional equivalent devices (e.g., additional buses [9, 10, 11], impedance, shunts, etc.) are created, representing the interaction between the internal area and the external area, and maintaining the grid states in the internal area. We can see the additional shunts in the grid equivalent:"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"--- shunts (original grid) ---\n"
]
},
{
"data": {
"text/html": [
"
"
],
"text/plain": [
" name bus ps_mw qs_mvar qz_mvar pz_mw \\\n",
"0 network_equivalent 4 -61.254284 31.921715 -54.321760 0.07899 \n",
"1 network_equivalent 8 -83.137118 36.970310 -52.200219 0.89307 \n",
"\n",
" in_service \n",
"0 True \n",
"1 True "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"print(\"--- ward (original grid) ---\")\n",
"display(net.ward)\n",
"print(\"--- ward (reduced grid) ---\")\n",
"display(net_eq_ward.ward)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Defining the zones based on boundary branches\n",
"\n",
"For this example we will use the lines between the buses 4 ... 5 and 7 ... 8\n",
"\n",
"With the function *set_bus_zone_by_boundary_branches* we first define the zones of the grid based on this separation. Thereafter, with the function *get_boundaries_by_bus_zone_with_boundary_branches*, we obtain the boundary buses that we can use with the functions for obtaining the grid equivalents, as showed in previous sections."
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"boundary_branches = {\"line\": [2, 7]}\n",
"pp.grid_equivalents.set_bus_zone_by_boundary_branches(net, boundary_branches)\n",
"buses, branches = pp.grid_equivalents.get_boundaries_by_bus_zone_with_boundary_branches(net)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The dictionary *buses* contains the biundary buses, internal buses and external buses from the point of view of each of the zones."
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{0: {'all': {4, 5, 7, 8}, 'internal': {4, 8}, 'external': {5, 7}, 1: {5, 7}},\n",
" 1: {'all': {4, 5, 7, 8}, 'internal': {5, 7}, 'external': {4, 8}, 0: {4, 8}},\n",
" 'all': {4, 5, 7, 8}}"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"buses"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The resulting separation can be seen in the figure below. The green buses are the nodes of the boundary lines that are part of the internal zone. The red buses are the nodes of the boundary lines that are in the external zone. The red dashed lines are the boundary lines."
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAbQAAAF/CAYAAAAhGzwxAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAA7CElEQVR4nO3dd3xUVd7H8c+ZzCSTkIQWeieEXhSQIiIoqMCuZRV2F7urIiuuPnbdvpZn10UfuyKia8GOoq5dEGnSQUInJPQOgUBCymTmPH8kUcRQM5OZufN9v155JZm5zP1dJ+abc+4pxlqLiIhItHOFuwAREZFgUKCJiIgjKNBERMQRFGgiIuIICjQREXEEBZqIiDhCUALNGPOyMWaXMWb5UZ43xpinjDHrjDGZxpjuwTiviIhIBXeQXucV4BngtaM8PxTIKP/oDTxf/vmY0tLSbMuWLYNToYiIRL1FixbtsdbWq+y5oASatXaGMablMQ65GHjNls3inmuMqWWMaWSt3X6s123ZsiULFy4MRokiIuIAxpiNR3uuuu6hNQE2H/b9lvLHfsYYM8oYs9AYs3D37t3VUpyIiES/6go0U8ljla65Za0db63taa3tWa9epa1KERGRn6muQNsCNDvs+6bAtmo6t4iIxIDqCrSPgavLRzv2AfKOd/9MRETkZARlUIgx5i1gIJBmjNkC/A3wAFhrxwGfAcOAdcAh4LpgnFdERKRCsEY5jjzO8xYYE4xziYiIVEYrhYiIiCMo0EREJChSU1Mxxpz0R2pqalDOr0ATEZGgOHjwYLX+uyMp0ERExBGCtZajiIhIpRKadcZdqyElO3Pw7coJ2XkUaCIiEhKuxFQaXP5P3Cn1wBjAULx1JbvefwD8pcE/X9BfUUREBKg79DY8tRvjSkjCFZ+IK95LQtNO1Oz7m5CcT4EmIiJBZ9zxJLbugYnz/ORxlyeB5G4XhOScCjQREQk+V9xRnzoy5IJ2ypC8qoiIxDRPnSbYgP9nj1t/KYXr5oXknBoUIiIiwRPnpla/y0ntfRn+wgOU7RRmcHkSCJQUEiguYN/0V0JyagWaiIgERXyjttQddhvxaS3Iz/yK3KkTMG4PyV3Ow1O3KcXb1lCwYhrWVxSS8yvQRESkSop8fp6YkkXDK8fiz89l57t/pWj9YgBsCRyYN6la6lCgiYjIKVuyaR93T8pk3a588pdNYd83L2FLDoWlFg0KEYlU2dlw882QmgouV9nnm28ue1wkzIp8fv75+Soue/47DhWX8urvepH7xdNhCzNQC00kMn3+OXb4cALFJcRVrKhw8CB2wgTMq6/CpEkwdGh4a5SYtXjTPu5+bynZuwsY2asZ9w/rQKrXQ0pKyiktNJySkhKUuhRoIpEmOxs7fDjm0CGOnMljfD7w+WD4cMjMhPT0sJQosanI5+fxr9fy4swcGqZ6ee13vTi7bb0fnj9w4EAYq1OgiUSexx4jUFLyszD7CZ8PHn8cnnmmuqqSGLdo4z7unrSUnN0FjOzVnD8Oa0+KNzQTpE+VsdaGu4aj6tmzp124cGG4yxCpXqmpcCLdNqmpkJcX+nokphX5/Dz21RomzFpP45qJPHJZV87KSAtbPcaYRdbanpU9pxaaSKTJzw/ucSKnaNHGXO5+L5OcPQVc0bs59w/rQHJC5MZG5FYmEoN8RcUYtwe3r+S4xxZ7kygoKKFOjfhqqExiSWFJWavspdllrbI3buhNvzbha5WdKA3bF4kQayZ/yZbWHXD7SghgjnlsaZybt9sN4Mx/TeVvHy1nc274hkqLsyzckMuwp2YyYdZ6rujdnC9vPzsqwgwUaCJhd2DHbuYN+TUZlw4l8VA+K/72b1xJicf8N+6EeAaMe5iLujXmzfmbGPjot9z61hJWbNM9NTk1hSV+HvxkJSNemIPPH+DNG3rz0CVdIrqL8UgaFCISJtZaPl+2nfaD+9JizxYWXHgFnV96kuS02vD552VD8yuG6VfweMo+DpuHtiOviJdnr+fNeZvILy6lf0Yavx+QTt/0uhhz7JaeCMCCDbnc/d5SNuw9xFV9WnDf0PbUiNAgO9agEAWaSBhsz1zN0nse4qFW53JJwXou/u0gMoYN/OlB2dllQ/Nff71sAEhyMlx1Fdx+e6Xzz/IKfbwxbyMvz9rAnvxiujatyU1npzOkc0PiXAo2+bnCEj///nI1r3y3gaa1y0Ywnpke2d2LCjSRCFFaXMLCO/5O1xf/DzB8Me49LrpmGO644PX+F/n8TF6ylfEzcli/p4AWdZO4sX9rhvdoitdzzNltEkPmr8/l7klL2bj3ENf0bcE9QyK3VXY4BZpIBFj7yTfEjR5N+tYsvj+tPw1fm0DDLm1Ddj5/wPL1yh08Pz2HpZv3k5Ycz3X9WnFl7xbUTIqsCbFSfQ6VlPLvL9bw6pwNNKudxCOXdaVvet1wl3XCYi7QrLW8sz2XpzbtYneJj9NTk/hremM6pySFoEqRY8svLmX6rX9nyIv/JDe5Fpv//gin/8/vMK7qGZNlrWVuTi4vzMjm2zW7qREfx8hezfndWa1oXOvYg0/EWebl7OWe9zPZuPcQ157ZknuGtCMpPvJbZYeLuUB7fMMOntq4k8LAj9eW5HLxWc8M2tfQ/8BSfeb/5wPGLjtI25XzGZpYSNdx/ya1QfjuUazafoAXpmfz38ztGODi05owekBrMhoEZ3FYiUwVrbJXvttA8zpJ/Ht4V/q0jp5W2eFiKtAK/QE6zlr2kzCDsvkJw+rVZELnVkGsUKRyO1dksf3qGzlt8XTeHnwFbV96mu7Na4e7rB9s2XeICTPX886CzRT6/AxqX5/RA9M5o2WdcJcmQTYney/3vp/JptzobZUdLqYCLaugiCGL1lLgD/zsuWbeeBb07Ris8kR+xu8rZcHdD9Ll+bG4AgGWXn8bPZ54AI83IdylVWpfQQmvzdnIq3M2kFtQQo8Wtbnp7NYM7tAAl0ZGRrWC4lIe+WI1r83ZSIu6Sfz7sq70jtJW2eFiKtAOlPrpMms5xZVcV1pRgLe7ptO5Sc1glSjyg9ULVuIaPpy2m1aR2bkvaa9NoPHp0fEHVGGJn/cWbWb8jBy27CukTf1kRp3dmktOa0K8W+svRJvvsvdw7/uZbNlXyHVntuLuC9qRGO+MEa4xFWgAd67exPs791F0WLej20Ly0lyKdhYyuEN9bhvUli5NFWxSdYfyDjLu00zWTfqMe2e8yu67/0SPu2+qtkEfwVTqD/Dpsu28MD2HldsP0CA1gevPasXIXs0jbqsQ+bmC4lL+9flqXp+7kZZ1kxg7opvjupFjLtB8AcsD2Vt5fdte/BbS4t083KYJZ6XW4JXZG3hp1nryCn2c274+tw3KoFuzWsEvXmLC0nETaXD/neyNT2bi8x9y35D2jhgSb61lZtYexk3P5rvsvaR43VzZpwXX9WtJ/RRvuMuTSny3bg/3vJ/J1v2F/K5fK+463zmtssPFXKBV8AUsBX4/Nd1xP1kC6GCRj1e/28CEWevZf8jHwHb1uG1QBqdH0E17iWx71uSw6epRdJ8/lQ0NWnLo+XF0/NUF4S4rJDK37OeF6Tl8vnw7bpeLy3o04cb+rWldLzncpQll00L+9fkqJs7dRKu0Gowd3pWeDmuVHS5mA+148otLy4JtZg77Dvk4u21ZsPVooWCTygUClvn3/5NOTz5MfKmPxdfcQo+n/5f4JOe3WjbsKeDFmTm8t2gLPn+AIZ0actOAdE5TD0fYzF63h3smZbItr5Dr+7XiToe2yg6nQDuO/OJSXp+zkRdn5pBbUEL/jDRuG5Th6L9y5OSt3nGAR1+ayoQ/X8ry9j2o9cpLNO3dLdxlVbvdB4t55bv1vD5nIweKSunTug6jB6QzoG09LYZcTfKLS/nfz1bx5rxNtE6rwdgRXenRIjZ+XynQTlBBcSkT525k/Iwc9haU0K9NXW4b1JZerWLjB0UqV7j/IN/fdCdNv/yYa0Y/w91nN2fIkJ5ROegjmPKLS3l7/iZemrWe7XlFtG+YwugB6fyiayM8QVybUn5qVlbZCMZteYXc2L81d5zXNqbW6FSgnaRDJaW8MXcTL8zIZk9+CX1a1+G2QW2jar0zCY5lL71D3Xtup3Huduad+yvafvgmtTUo4idKSgN8vHQbL0zPJmtXPk1qJXJD/1b85oxmUT2BN9IcLPLxv5+t5q35m2hdrwZjh3eLydsjCrRTVFji5415G3lhRg67DxbTu1UdbhucQd/W2mfK6fZkb2Lj1TfR47sv2FSvGQefeIZOl18U7rIiWiBgmbZmF+OmZ7Ngwz5qJXm4um9Lrj2zJXVqxIe7vKg2M2s3972/jO3lrbLbY6xVdjgFWhUV+fy8NX8Tz3+bza6DxfRqWRZsZ2oDRccJBCzvLtzM6RcNpNWezSwaOZru4x4hoYYWtj4ZizbmMm56Dl+v3InX4+I3PZtxQ//WNKuj/44no6xVtoq35m8mvV4Nxo7oFlFLqIWDAi1Iinx+3lmwmee/zWbHgSJ6tqjNbYMzOKtNmoLNATbOWsiGu/7CY+3Op0fdeK4dcSYt+p4e7rKi2rpdB3lheg4ffr+VgIVfdGnETQNa06mxFjU4nulrd3P/+5nsOFDEjWe35vbBsdsqO5wCLciKfH7eW7iZ577NZnteEd2b1+LWQRka5RWlig4W8P3oe+j+9ngK473Me/FdzrtiiN7LINqRV8TLs9fz5rxN5BeX0j8jjd8PSKevejl+5kCRj4c/WcU7CzfTpn4yY4d31RzZwyjQQqS41M97C7fw3LR1bMsr4rRmtbhtUAYD2ynYosXy1ydT845babZnCwvP+gWtXnueuq2ahbssx8or9PHGvI28PGsDe/KL6dq0Jjednc6Qzg2J02LIfLtmF/d/sIydB4q4aUA6tw3KUKvsCAq0ECspDTBp0RaenbaOrfsL6da0JrcOyuDc9vUVbBEqt6CEGWP+zCWvjmVL3cbse/QJulw7ItxlxYwin5/JS7YyfkYO6/cU0KJuEjf2b83wHk1j8hd4XqGPhz9dybsLt5BRP5mxI7ppwvpRKNCqSUlpgA8Wb+GZaevYsq+QLk3Kgm1wBwVbpLCBAHMfncALawvw5OVxZepBej/+D7ypWsYpHPwBy1crdjBuejZLt+SRlhzPdf1acWXvFo5YE/NETFuzi/vfX8aug0WMHpDOrWqVHZMCrZr5/AEmL97KM9PWsSn3EJ0ap3LroAzO79hAwRZGm+cu4cC1N9JpzSI+HvRb2r8xnrbaqTkiWGuZm5PLuOnZTF+7mxrxcYzs1ZzfndWKxrWcuct8XqGPhz5ZyXuLttC2QTJjh3fTQuknQIEWJj5/gA+XlAXbxr2H6NAoldsGteH8jg21eWI1Ki44xJIx99N94nMUuRNY9T9/5IyH7sXl1l/BkWjV9gO8MD2b/2ZuxwAXn9aE0QNak+GgPz6mrd7FfR9ksie/hNEDWnProAwS9PN4QhRoYVbqD/DR99t4Zto61u8poH3DFG4dlMGQTgq2UPt+9jJqX/pLWuzaxKLe59Hi9RdIy2gV7rLkBGzOPcRLs9bzzoLNFPr8DO5Qn5sGpEf1/l55h3w88MlK3l+8hXYNUhg7oitdm9YKd1lRRYEWIUr9Af6buY2nv1lHzu4C2jVI4Q+D2jCscyMFW5DlbdvFhElzmDN/DX+d9Rr2j3+k26jLw12WnIJ9BSW8Nmcjr3y3nn2HfPRoUZubzm7N4A4Nour/m29W7+T+D5axJ7+Emwemc8u5bdQqOwUKtAjjD1g+ydzGU1OzyN5dQEb9ZP4wKINfdGmkoctVZAMBFj3yHK0e/guH3AlMfOMbbjuvrdYUdIDCEj/vLtzMizNz2LKvkDb1kxl1dmsuOa0J8e7IXQw575CPf3yygg8Wb6V9wxTGDu9Gl6aaWH6qFGgRyh+wfLZsO09NzSJrVz7p9Wrwh3MzuLBbYwXbKdi6cBl7r72RrivmsbZFB+JefJH08/qFuywJslJ/gE+XbWfc9BxWbT9Ag9QErj+rFSN7NSfFG1kjI6es3MkfJy9jb0EJYwamc8u5GREdvtEg5IFmjBkCPAnEAROstf864vmBwEfA+vKHPrDWPnC813V6oFUIBCyfL9/BU1OzWLPzIK3TanDLuW24qFtj3NqG47h8/gALbvkj3Sc8TqnLzYox99DzkT8R51GrzMmstczM2sO46dl8l72XFK+bK/u04Lp+Lakf5h0R9h8q4YH/ruSDJWWtskdHdKNzE7XKgiGkgWaMiQPWAucBW4AFwEhr7crDjhkI3GWt/eXJvHasBFqFQMDy5YodPDk1i9U7DtIqrQZjzmnDJacp2I5m0YZcHn5zDm/99RJWdD+bpq+Op36H9HCXJdVs6eb9jJ+Rw+fLt+OOc3FZ96aMOrs1rdJqVHstX5e3yvYVlHDzOW245Zw2apUFUagDrS/wd2vtBeXf3w9grf3nYccMRIF2wgIBy1crd/LU1CxWbj9Ai7pJjDmnDb86vYk2TiyXt2MPq68bQ/ev3mfk7f9h9JUDGXyalqyKdRv2FDB+Zg6TFm3B5w8wpFNDbhqQXi2rbuw/VMLfP17Bh99vo0OjVMYO76pWWQiEOtCGA0OstTeUf38V0Ntae8thxwwE3qesBbeNsnBbcZTXGwWMAmjevHmPjRs3Vqm+aGat5euVO3lyahYrth2geZ0kxpyTzqXdm8ZssNlAgMX/N4EW/7if2gX7WXDhFXR+ewLJidpvS360+2Axr3y3ntfnbORAUSl9Wtdh9ID0kC0g/tWKHfxx8nL2HyrhlnPbcPNAtcpCJdSBNgK44IhA62Wt/cNhx6QCAWttvjFmGPCktTbjeK8dqy20I1lrmbpqF09OzWLZ1jya1k5kzDltuKx705j6n2Z75mp2XX0D3ZbOZl3TttgXxpMxbEC4y5IIll9cytvzNzFh5np2HCiifcMURg9I5xddGwXlj8J9BSX8/b8r+Ki8VfboiK7aGifEwt7lWMm/2QD0tNbuOdZrK9B+ytqyHYGfnJLF0i15NKmVyM3npDOiRzNHB1upP8B/Zm+g5xW/pN3O9WTedCc9H/0r7gS1yuTElJQG+HjpNl6Ynk3Wrnya1Erkhv6t+M0ZzU55SseXK3bwp/JW2R/OzeDmc9JjtuekOoU60NyUDQoZBGylbFDI5Yd3KRpjGgI7rbXWGNMLmAS0sMc5uQKtctZavl27myenZPH95v00runl9+e04dc9mzpuoubaT77hwN1/5PlO59OoRxfGXNKdRhr0IacoELB8s3oXL8zIZsGGfdRO8nB135Zcc2ZL6tQ4sT+QcgvK7pV9vHQbnRqnMnZ4Nzo2Tg1x5VKhOobtDwOeoGzY/svW2oeNMaMBrLXjjDG3AL8HSoFC4A5r7XfHe10F2rFZa5mRtYcnp6xl8ab9NKrp5fcD0/l1z2ZRv1p3/p59LL/uD5zx6VvkJtdizUtv02/4YC3uLEGzaGMuz3+bw5RVO/F6XPymZzNu6N+aZnWSAFiwIbds2a0SP7/s2ojzOzXk65U7+POHy8kr9PGHczP4/UC1yqqbJlY7nLWW2ev28uTUtSzYsI8GqQn8fkA6v+3VPCqDbclT/6HJX+4h7cBeFgz9NR3+8wypDdLCXZY41LpdB3lheg4ffr+VgIVfdGlEitfNB4u3UuTzY4FETxwpXje7DhbTuUlZq6xDI7XKwkGBFiOstczJ3ssTU7OYvz6X+ikJjB6QzuW9oyPYtucVMn3Mn/ntG/9HTuN0Sp59jvaXnB/usiRGbM8r5D+zNzBx7kYOlfgrPebS0xvzyPBuapWFkQItBs3J3ssTU9Yyb30uackJjB7Qmit6tyAxPvKCze8rZe6fxzIpO5/NNetzS50C+j14Jx5vQrhLkxj02pwNPPjJSnz+n/9uHNmrOf+8tEsYqpIKxwo0rQ3kUH3T69I3vS9zc/by5JQsHvp0FeOmZzPq7NZc2adFxCzWu+7LGdhRN9Fv02oOnjeSTuP/9MM9DJFwqJecQLzbhc//01ZanAtSvZHx/41UTu1mh+vTui5vjerDuzf1pX3DVP73s9X0f2Qa46ZnU1BcGra6DuXuZ+6vrqXV0HOonbuThY88xwVfTFSYSdgNbFcfw88HH3niXIzo2TQMFcmJUpdjjFm0MZcnpmQxM2sPdWrEc0P/VlzdtyXJCdX3l+fsaYtJv3QoDffvYt75I2j/8jPUbFK/2s4vcjwLN+Tyu1cWUOjz4/NbvG4X/7i4M785Q8urhZvuocnPLNq4j6emZjF97W5qJXm4sX9rru7bIqTbb+xZu56Jr37Fx7vggbkTqfu3P9Jh+NCQnU+kKkpKA9zxzvd8tnw73//tfFIjbGuaWHWsQFOXY4zq0aI2r/6uF5NvPpPTm9Vi7JdrOOuRaTw9NYsDRb6gnitQ6mfePQ+R0LUzVz1xL5f9egC9lkxXmElEi3e7aNcwhYAtG7YvkU+BFuNOb16b/1zXi4/G9KNni9o89vVazvrXNzw5JYu8wqoH2/ppc8hq243eY//CxtYdKZw2gzHntXf0Ul3iHBXTXYp8lQ/jl8ii3yoCQLdmtXjp2jP47y1n0atVXR6fspazHvmGx79ee0rBVljiZ9ZVf6Dp4P7U37mFBQ88Qafl82jaq2sIqhcJDW/5NJdCBVpU0BhU+YkuTWsy4ZqeLN+ax1NTs3hyahYvz1rPdf1a8ruzWlErqWy9u+zcbB6b8xgTMyeSX5JPcnwyV3a9kjv73smutSX8+ZtNvPLf91hy9i9p++rznNG8UZivTOTkect7Eop9gTBXIidCgSaV6tykJuOv7snKbQd4amoWT32zjpdnb+DaM1vSvPEarv14JEX+EqwtG/p/sOQgLy56kf/MHc8Hb/vJGDaOLYtW0De9bpivROTUVXQ5qoUWHRRockwdG6cy7qoerNp+gKe/yeLxb2ey3XsLluKfHVtqSyl1w6WXu1n0+7Pp2FBhJtEtUffQooruockJ6dAoleeu6MGA7nOBY//P7Xcbnlv8bPUUJhJCPw4KUZdjNFCgyUn5ZN27WI69wogv4OP1zNerqSKR0EmML/sVqS7H6KBAk5OSX5If1ONEIlnFhrnqcowOCjQ5KcnxyUE9TiSSVexOoUCLDgo0OSlXdr0Sj+vYSwB5XB6u6npVNVUkEjqaWB1dFGhyUu7seyeeuOMEWpyH2/vcXk0ViYROxTw0DQqJDgo0OSnpddKZNGISSZ6kn7XUPC4PSZ4kJo2YRHqd9DBVKBI8iVopJKoo0OSkDc0YSuboTEb1GEWSOwWsIdmTwqgeo8gcncnQDC06LM7g1aCQqKKJ1XJK0uuk88ywZ7im4wOMGDeHVy/vxYC29cJdlkhQuVyGeLdLLbQooRaaVElacgIAew7+fOUQESfwul1ayzFKKNCkStKSyxYr3p2vQBNn8nriKCxRCy0aKNCkSpIT3CS4XWqhiWMlxsdRVKpAiwYKNKkSYwxpyQnsUQtNHMrrjtOgkCihQJMqS0tJYE9+SbjLEAkJb3wchbqHFhUUaFJl9ZLj1UITx/K6XWqhRQkFmlSZuhzFybwedTlGCwWaVFlacgK5BSX4AzbcpYgEXaICLWoo0KTK6qUkELCQW6D7aOI8Xo9LazlGCQWaVNkPk6vV7SgOlBgfp5VCooQCTaqsYnK1Ak2cKEHD9qOGAk2qLC1FLTRxrsR4BVq0UKBJlf24nqPuoYnzeN1x+PyWUr/uo0U6BZpUWarXTXycSy00cSSvp3yTz1IFWqRToEmVlS1/Fa8FisWRKjb5VLdj5FOgSVBo+StxKm3yGT0UaBIUackJWnFfHMmrFlrUUKBJUKRpPUdxKK+7/B6aJldHPAWaBEVacgJ7C0oIaPkrcRivp6yFpsnVkU+BJkGRlpyAP2DZX+gLdykiQaVBIdFDgSZBocnV4lQ/DgpRl2OkU6BJUPyw/JUGhojDJMaX/ZpUl2PkU6BJUNQrXy1Ec9HEaRI0bD9qKNAkKH5ccV9z0cRZdA8teijQJChqJnpwu4zuoYnjVIxyVKBFPgWaBIXLZaibHK97aOI4FfPQCks0KCTSKdAkaNKSE9RCE8dxx7nwxBmKStVCi3QKNAmaskDTPTRxHq82+YwKCjQJGrXQxKm82uQzKijQJGjSUuLZm1+CtVr+SpzF63FpYnUUUKBJ0NRLTqDEH+BAYWm4SxEJKq87jsIStdAiXVACzRgzxBizxhizzhhzXyXPG2PMU+XPZxpjugfjvBJZ0jS5WhwqMT5Og0KiQJUDzRgTBzwLDAU6AiONMR2POGwokFH+MQp4vqrnlcjz4+RqBZo4iwaFRIdgtNB6AeustTnW2hLgbeDiI465GHjNlpkL1DLGNArCuSWCpKWUr+eoQBOH8cbHUah7aBEvGIHWBNh82Pdbyh872WMkyv3QQtPkanEYr9tFsVpoES8YgWYqeezIYW4nckzZgcaMMsYsNMYs3L17d5WLk+pTOykel9F6juI8ifFxWm0/CgQj0LYAzQ77vimw7RSOAcBaO95a29Na27NevXpBKE+qS5zLUKeG5qKJ8+geWnQIRqAtADKMMa2MMfHAb4GPjzjmY+Dq8tGOfYA8a+32IJxbIkxacrwCTRxH89Cig7uqL2CtLTXG3AJ8CcQBL1trVxhjRpc/Pw74DBgGrAMOAddV9bwSmeqlJLBbXY7iMF51OUaFKgcagLX2M8pC6/DHxh32tQXGBONcEtnSkhPI2V0Q7jJEgsrrjqOkNEAgYHG5KhsSIJFAK4VIUFV0OWr5K3GSHzb51OTqiKZAk6BKS06guDRAfrGWvxLnqNgTTffRIpsCTYLqx9VCdB9NnKNi12rdR4tsCjQJqrQULX8lzvNDl6MCLaIp0CSo0pLLl7/SaiHiIAluBVo0UKBJUNXTAsXiQGqhRQcFmgRVnRrxGIPmoomjaFBIdFCgSVC541zUTtJqIeIsFS00bfIZ2RRoEnRpyfG6hyaOUjHKUfPQIpsCTYIuLVkLFIuzeH8YFKIux0imQJOgKws03UMT5/DGl/2q1Dy0yKZAk6BTC02cpqLLUZt8RjYFmgRdWko8h0r8HCrR8lfiDIkeDQqJBgo0Cboflr86qG5HcQZPnIs4l9GgkAinQJOgq5hcvVvdjuIgXreLwhINColkCjQJujStFiIOlBgfpxZahFOgSdClpZSv56hAEwdJcMdp6asIp0CToKtbQ/fQxHkS4xVokU6BJkEX73ZRM9GjFpo4itfj0sTqCKdAk5BIS9Z6juIsiZ44DduPcAo0CQlNrhan8Xo0KCTSKdAkJNJStPyVOEvZoBB1OUYyBZqERL3kBK24L46iQSGRT4EmIZGWHM/B4lL9AhDH8Lpd+nmOcAo0CQlNrhanSYyP02r7EU6BJiHxY6DpPpo4g9ejLsdIp0CTkEhLqZhcrRaaOENZl2MAa224S5GjUKBJSKQla/krcRZvfPmeaKUa6RipFGgSErqHJk7jdZcFmrodI5cCTULC64kjJcGte2jiGInlLTQNDIlcCjQJmbSUBO2JJo7h9ZT9utTk6silQJOQSUuO16AQcYxET3kLTes5RiwFmoSM1nMUJ0koDzSt5xi5FGgSMmWBpnto4gwaFBL5FGgSMmnJCeQV+ijRMGdxgIpBIQq0yKVAk5BJSymbi7a3QN2OEv00KCTyKdAkZH6Yi3ZQ3Y4S/TQoJPIp0CRkNLlanMSrQSERT4EmIVOvPNA0F02coGJQiFpokUuBJiFTcQ9NLTRxAm982a9LreUYuRRoEjJJ8W6S4uN0D00cIT7OhTEa5RjJFGgSUppcLY6QnY0ZM4Zl//dr7hjSAVJT4eabITs73JXJYRRoElJpyfEKNIlun3+O7dqVwIsvklxyCGMtHDyInTABunaFzz8Pd4VSToEmIaUWmkS17Gzs8OGYQ4dwlZb+5Cnj88GhQzB8uFpqEUKBJiGVlqLlrySKPfYYtuQ4P78+Hzz+ePXUI8ekQJOQSktOYN+hEkr9GhkmUWjixJ+1zH7G54PXX6+eeuSYFGgSUvWS47EWcgvUSpMolJ8f3OMkpBRoElJpmlwtUSyQVOPEDkxODm0hckIUaBJSaSkVy1+phSbRZfo3SygpKsEe70CPB666qjpKkuNQoElI/bhAsVpoEh0K9u7npb+9wJ2TVzCv21lYr/fY/8Djgdtvr57i5JgUaBJSacla/kqix5qPvmZfu85c8+DNXNU/nb7zvsb1wQeQlFQWXIfzeMoenzQJ0tPDU7D8hAJNQio5wU2C26VAk4hWWlzCnGtuI/1XQ3D7fax980Nu+3Vf4t0uGDoUMjNh1KiyFUJcrrLPo0aVPT50aLjLl3LucBcgzmaMKZ9crXtoEpm2LlrOwREj6bt+OQvOGkbb916lY8O0nx6Ung7PPFP2IRGrSi00Y0wdY8zXxpis8s+1j3LcBmPMMmPM98aYhVU5p0SXkkAAV6Mkvjc+VuUXhrsckR9Ya3l34WbWXH4jjbdvYOE/n+WMmZ9S88gwk6hR1RbafcBUa+2/jDH3lX9/71GOPcdau6eK55MoklVQxK+WrGNf0wQCwLBFaxmSVpNnOrYgzphwlycxbP/GbSy/5mYWe5uRd/39dLjsdHqmNwt3WVJFVb2HdjHwavnXrwKXVPH1xCGstVy3fD17faX4XQbrMhQGLF/uOcA7O3LDXZ7EsGUvvYOvSxd6zfyUQWe249m7LqSRwswRqhpoDay12wHKP9c/ynEW+MoYs8gYM+pYL2iMGWWMWWiMWbh79+4qlifhsr6whK2VzOE5FAjw2lY11KX6FR3IZ+6FV9Llht9SkJTKpi+mcd5fb8HlUm+BUxy3y9EYMwVoWMlTfzqJ8/Sz1m4zxtQHvjbGrLbWzqjsQGvteGA8QM+ePY87p1EiU4kN4DIGKpmWmq8NEqWarV65Ee+ggfTZsYG5F17JaROfx5uq1T2c5riBZq0dfLTnjDE7jTGNrLXbjTGNgF1HeY1t5Z93GWMmA72ASgNNnKFtkpcacS4KjlyU2B9g8/I9PJy7kpsHtqF2jfjwFCgxIVDq5+33Z/HS9Gz+7U3lwIS36XP9b8JdloRIVbscPwauKf/6GuCjIw8wxtQwxqRUfA2cDyyv4nklwrmM4fmOLUhyuUgo79KpEeeifXIil9RM5aVZ6zn739N4amoWBcXHWc1c5BTsWJ7Fqs69+c3Ic+nWuTmtli+gq8LM0Yy1p96rZ4ypC7wLNAc2ASOstbnGmMbABGvtMGNMa2By+T9xA29aax8+kdfv2bOnXbhQo/yj2Y5iH29v38v2Yh9n1U5hSFpNPC7D2p0HefTLNXy1cidpyfGMOacNl/duToI7LtwliwMsfOR52v79Htz+Upbf9xBn/OMOjEbWOoIxZpG1tmelz1Ul0EJNgeZ8izftY+wXa5iTs5cmtRK547y2XHJ6E+J0o15OQd723WSNuIaesz9nTatOJL/7Fk16dgl3WRJExwo0LX0lYdW9eW3evLE3r1/fizo14rnzvaUMfXIGX67YQST/sSWRZ17OXpacdxmnffclc66+lfRVixVmMUYtNIkY1lo+X76DR79cQ86eAk5rVot7hrTjzHSt3CBHV3KoiNm3/oXXDtQgrnFj7hzakQ4XnBXusiREjtVC01qOEjGMMQzr0ojzOzbg/cVbeGJKFpe/OI/+GWncc0F7ujStGe4SJcJsnLUQ38jLOWdLFgevv5dBj/yOGgn6tRar1OUoEccd5+I3ZzRn2l0D+fMvOrB8ax4XPjOLMW8sJnu3troXsIEA8+56gAbn9KNu7i6WPPUfLprwL4VZjFOXo0S8g0U+Xpy5ngkzcyguDTCiR1NuG5xBo5qJ4S5NwmDXrn1sH/wLui2bQ2bnvjSe/CZpbVqGuyypJhoUIlEtxevhjvPaMuOec7i6bws+WLyVAWO/5eFPV7KvQNvSxJKvlm3j5gcn0Wj9Gubd+Q+6LJ2lMJMfKNAkaqQlJ/C3Czsx9c4BXNi1sSZnx5CCvfuZf95w+ndvjbtxIw5kb6D3o3/FuPQrTH6kLkeJWlk7D/LoV2v4csVO6taI55ZzNTnbidZ89DU1rr+Oxnu3Mfc3o+j5+rPEe/Qexyp1OYojZTRI4YWrejL55jNp2yCFf/x3Jec+Op1Ji7bgD0TuH2pyYkqLS5hzzW2k/2oIbr+PVW99xJlvj1OYyVGphSaOYK1l1ro9/PuLNSzbmkdG/WTuuqAd53dsoCWPotDGvQWs++WvGTT3Mxb2G0rGe69Ss1G9cJclEUBLX0nM+GFy9ldryNmtydnRxgYCzH78Pzy+upBG+Xu5qldTet9+fbjLkgiiidUSMzQ5O3rt37iNnOFXctbCaez8xXX0mfgsTWppaoacOLXQxNGKfH4mzt3Is9PWse+Qj2FdGnLn+e1Ir6fNHSPJspffpeH//J6aBQdYfNNd9HrqIVwa3COVUJejxLwjJ2cP7142ObuxWgBhVVRYzPe/vp4+n7zBhgYt8b/2Gunn9w93WRLBNMpRYt6Rk7MnL9nKwEe/5aFPVpKrydlhsXLbAW7/8+v0+eQN5v7yChquXaYwkypRoElMqZic/c1dA7ioW2Nenl02OfvJKVnka3J2tQiU+pl78/24Tj+N1YlpzFqUTZ//TsSbqm5gqRp1OUpMO3Jy9phz2nBFH03ODpUdy7PYO3wkndYsYtEZ59Jq6qfUSfGGuyyJIupyFDmKIydnP/BJ2eTs9xZu1uTsIFv4yPMkndGdlutXMv8vj9J97tcKMwkqtdBEylU2OfvO89txQSdNzq6KvEIf8y7/Ped/+BKrW3Um5d03tZO0nDKNchQ5CUdOzu7WrBb3anL2Kcn8YjZ/+3Yzpy/6lnNa1aTv0w/iTogPd1kSxRRoIqeg1B/4YXL29rwi+mekcfcF7ejatFa4S4t4JYeKWHTdrfR+dwLv9R9O24kvcHrz2uEuSxxAgSZSBZVNzr7jvHa0qa9ReZXZOHsRvt9eTpsta5k/+FI6vf0SNerWCndZ4hAaFCJSBV5PHDf0b82Me87h1kEZTF+zm/Mfn869kzLZtr8w3OVFDBsIMO+uB6k/sB91c3ew5MmX6fX1+wozqTZqoYmcpD35xTw7bR1vzN0EBq7u04Kbz2lDnRqxe29o18Einhv7Dn9/8FoyO/el8ftvkNa2VbjLEgdSC00kiDQ5+6eWPP0KS/uez8eFyXzy8sd0WTpLYSZhoRaaSBXF6uTsgr37WfHb6+k15QPWNmuP67tZtGlaN9xlicOphSYSQrE4OXvNx1PY164zPadMZs6vb6Tl6iUKMwk7BZpIkJzevDZv3tib16/vRZ0a8dw9KZMLnpjBF8t3EMk9ISej1B9gyh0PkX7JBbj9Pla9+SF93xlPfJJW/JDwU6CJBJExhv4Z9fj4ln48f0V3AtYyeuIiLnnuO75btyfc5VXJppytXP3kVLJnL2HBwItIXLmcTiMvCndZIj9QoImEgDGGoV0a8dX/nM2/L+vKrgNFXD5hHle9NI/MLfvDXd5JsYEA8//6GHU7ZHDBe+No+MJT9P1mMjUb1Qt3aSI/oUEhItXgyMnZQzuX7Zwd6ZOz92/aTs5lV9B94TRWtj2d2h+8Q6NOGeEuS2KYBoWIhNnhk7NvG5TBjLWRPzl72cvv4uvcmc6LZzJ39L20Xz5fYSYRTS00kTDYm1/Ms9OymTh3Y8RNzi7y+Xnl2Q8ZfftwNjRoif+117STtEQMreUoEqG27DvEk1OyeH/xFpLi3dzQvxU39G9NcoI7LPVkfz2buWNf4OHOF/GgyeEXf7tZO0lLRFGgiUS4wydn16kRzy3VPDk7UOpn/q1/pvv4R9lXoxZrv51P/9O12odEHgWaSJRYsmkfY79cw3fZe2lSK5HbBmdw6elNcMeF7nb3juVZ7B0+kk5rFrGkx0Bavv8GtVs0Dtn5RKpCg0JEokTZ5Ow+TLy+N3WT47lnUiZDnpzJF8u3h2Ry9tynXyPpjO60ylnBgj+P5bT5UxVmErUUaCIR6KyMND4ac/jk7MVBnZx9oMjH/7y1mN3PTWBzk3T2fTefMx68C+PSrwSJXvrpFYlQR5ucfeWEeSzdvP+UX3fl2//lQJOWtH3mEXKefol2axbTpGeX4BUuEia6hyYSJSomZz/3bTa5BSWVTs7Ozs3msTmPMTFzIvkl+STHJ3Nl1yu5s++dNPM2YdF1t9L73Qlsq9uYg2++Q4fz+4XxikROngaFiDjIwSIfE2auZ8LMHAp9fob3aMptg9uSuftbhr83HJ/fhy/g++F4j8uDmzie/qwO18/dxvzBl9Hp7QnaSVqikgJNxIEOn5xdYrazLWEMvkDRUY9PKoG30v7FRbffW41VigSXRjmKOFDd5AT+emFHvrlrALXrf4HP7zvm8SUJbr5qt7maqhOpfgo0kSjXtHYS2QVfgPEf87hSW8rrma9XU1Ui1U+BJuIA+SX5QT1OJBop0EQcIDn+xNZbPNHjRKKRAk3EAa7seiUel+eYx3hcHq7qelU1VSRS/RRoIg5wZ9878cQdJ9DiPNze5/Zqqkik+inQRBwgvU46k0ZMIsmT9LOWmsflIcmTxKQRk0ivkx6mCkVCT4Em4hBDM4aSOTqTUT1GkeROAWtI9qQwqscoMkdnMjRjaLhLFAkpTawWcaDZ6/ZwxYR5vHtTX3q1qhPuckSCRhOrRWJMqres2zGv8NiTrUWcpEqBZowZYYxZYYwJGGMqTczy44YYY9YYY9YZY+6ryjlF5PhSE90AHFCgSQypagttOXApMONoBxhj4oBngaFAR2CkMaZjFc8rIsdQ0UI7UKRAk9jhrso/ttaugrJ9m46hF7DOWptTfuzbwMXAyqqcW0SOLsVb0UIrDXMlItWnOu6hNQEOXxF1S/ljlTLGjDLGLDTGLNy9e3fIixNxIneci+QEt+6hSUw5bgvNGDMFaFjJU3+y1n50AueorPl21KGV1trxwHgoG+V4Aq8vIpVI9brV5Sgx5biBZq0dXMVzbAGaHfZ9U2BbFV9TRI4jNdGjQSESU6qjy3EBkGGMaWWMiQd+C3xcDecViWmpXo9aaBJTqjps/1fGmC1AX+BTY8yX5Y83NsZ8BmCtLQVuAb4EVgHvWmtXVK1sETmeshaaBoVI7KjqKMfJwORKHt8GDDvs+8+Az6pyLhE5OamJblZtVwtNYodWChFxKHU5SqxRoIk4VGqih/ziUgIBDRaW2KBAE3GoVK8ba+Fgse6jSWxQoIk4VM3E8uWvNHRfYoQCTcShUhO14r7EFgWaiENpgWKJNQo0EYf6cQsZ3UOT2KBAE3EotdAk1ijQRByqZpIGhUhsUaCJOFRyvBtjFGgSOxRoIg7lchlSEtwcKNI9NIkNCjQRB9MWMhJLFGgiDlYzUes5SuxQoIk4WKpXW8hI7FCgiThYaqJbK4VIzFCgiTiYtpCRWKJAE3EwDQqRWKJAE3GwmokeCkr8lPoD4S5FJOQUaCIOluotW8/xoOaiSQxQoIk4mLaQkViiQBNxMC1QLLFEgSbiYKk/7FqtLkdxPgWaiIPVTFQLTWKHAk3EwX7c5FOBJs6nQBNxsIp7aBoUIrFAgSbiYEnxccS5jLocJSYo0EQczBhDqtetQSESExRoIg6nLWQkVijQRBwuNdGje2gSExRoIg5XtieaAk2cT4Em4nCpiW4OaC1HiQEKNBGHUwtNYoUCTcThNChEYoUCTcThUhM9FPkCFJf6w12KSEgp0EQcrmJPNM1FE6dToIk4XKoWKJYYoUATcbgf9kTTwBBxOAWaiMP92EJTl6M4mwJNxOFqlm8ho9VCxOkUaCIOpy5HiRUKNBGH06AQiRUKNBGHS3C7iI9zadi+OJ4CTcThjDGkarUQiQEKNJEYkJro1qAQcTwFmkgM0ALFEgsUaCIxoKzLUffQxNkUaCIxoGaih4NqoYnDKdBEYkCq161BIeJ4CjSRGJCa6CGv0Ie1NtyliISMAk0kBqR6Pfj8liJfINyliISMAk0kBqSWr+eobkdxMgWaSAyomaj1HMX5qhRoxpgRxpgVxpiAMabnMY7bYIxZZoz53hizsCrnFJGT98MCxWqhiYO5q/jvlwOXAi+cwLHnWGv3VPF8InIKKhYo1moh4mRVCjRr7SooWytORCJXqrf8HpoWKBYHq657aBb4yhizyBgz6lgHGmNGGWMWGmMW7t69u5rKE3E2bSEjseC4LTRjzBSgYSVP/cla+9EJnqeftXabMaY+8LUxZrW1dkZlB1prxwPjAXr27KlJMyJBoE0+JRYcN9CstYOrehJr7bbyz7uMMZOBXkClgSYiwRfvdpHoidM9NHG0kHc5GmNqGGNSKr4GzqdsMImIVKPURLfuoYmjVXXY/q+MMVuAvsCnxpgvyx9vbIz5rPywBsAsY8xSYD7wqbX2i6qcV0ROXqpXm3yKs1V1lONkYHIlj28DhpV/nQN0q8p5RKTqtGu1OJ1WChGJETUTPepyFEdToInEiFSvW4NCxNEUaCIxQl2O4nQKNJEYker1cEB7oomDKdBEYkRqopuAhYISf7hLEQkJBZpIjNAWMuJ0CjSRGFGx/JUGhohTKdBEYkSqWmjicAo0kRjx4yafmosmzqRAE4kRqYkVe6KphSbOpEATiRE1tSeaOJwCTSRGJCeUtdA0KEScSoEmEiPccS6SE7SFjDiXAk0khqR63epyFMdSoInEkNREjwaFiGMp0ERiiBYoFidToInEkFSvhzzdQxOHUqCJxIiNhcVk13Wztkk8r2zZTYFfixSLsyjQRGLArH0HGTh/DWuSoKBuAg9kb+Oc+WvY51NrTZxDgSbicNZablm5icJAgIApe+xQwLKj2MfTG3eFtziRIFKgiTjcpqIS8kp/3hIrsZZPdu+v/oJEQkSBJuJwiS4XgaNsUl0jTr8CxDn00yzicPUTPHRNSSTO/PTxRJfhuiZp4SlKJAQUaCIxYHznlrTwJlAjzkWNOBcJLsOF9WtzZeO64S5NJGjc4S5AREKvUUI8s3u3Z15eATuKfZyWmkTLxIRwlyUSVAo0kRhhjKFPreRwlyESMupyFBERR1CgiYiIIyjQRETEERRoIiLiCAo0ERFxBAWaiIg4ggJNREQcQYEmIiKOoEATERFHUKCJiIgjKNBERMQRjLVH2SgpAhhjdgMbw13HMaQBe8JdRBjE4nXrmmODrjnytbDW1qvsiYgOtEhnjFlore0Z7jqqWyxet645Nuiao5u6HEVExBEUaCIi4ggKtKoZH+4CwiQWr1vXHBt0zVFM99BERMQR1EITERFHUKCJiIgjKNBOgjFmhDFmhTEmYIw56jBXY8wGY8wyY8z3xpiF1VljsJ3ENQ8xxqwxxqwzxtxXnTWGgjGmjjHma2NMVvnn2kc5Lqrf6+O9b6bMU+XPZxpjuoejzmA6gWseaIzJK39PvzfG/DUcdQaTMeZlY8wuY8zyozzviPdZgXZylgOXAjNO4NhzrLWnOWB+x3Gv2RgTBzwLDAU6AiONMR2rp7yQuQ+Yaq3NAKaWf380Uflen+D7NhTIKP8YBTxfrUUG2Un8rM4sf09Ps9Y+UK1FhsYrwJBjPO+I91mBdhKstaustWvCXUd1OsFr7gWss9bmWGtLgLeBi0NfXUhdDLxa/vWrwCXhKyVkTuR9uxh4zZaZC9QyxjSq7kKDyIk/q8dlrZ0B5B7jEEe8zwq00LDAV8aYRcaYUeEupho0ATYf9v2W8seiWQNr7XaA8s/1j3JcNL/XJ/K+Oe29PdHr6WuMWWqM+dwY06l6SgsrR7zP7nAXEGmMMVOAhpU89Sdr7Ucn+DL9rLXbjDH1ga+NMavL/0KKSEG4ZlPJYxE/H+RY130SLxNV7/URTuR9i8r39hhO5HoWU7ZeYL4xZhjwIWVdcU7miPdZgXYEa+3gILzGtvLPu4wxkynr5ojYX3JBuOYtQLPDvm8KbKvia4bcsa7bGLPTGNPIWru9vOtl11FeI6re6yOcyPsWle/tMRz3eqy1Bw77+jNjzHPGmDRrbTQt4HuyHPE+q8sxyIwxNYwxKRVfA+dTNrDCyRYAGcaYVsaYeOC3wMdhrqmqPgauKf/6GuBnLVUHvNcn8r59DFxdPgquD5BX0RUbpY57zcaYhsYYU/51L8p+T+6t9kqrlzPeZ2utPk7wA/gVZX/JFAM7gS/LH28MfFb+dWtgafnHCsq67cJeeyivufz7YcBaIDvar7n8eupSNroxq/xzHSe+15W9b8BoYHT514ayUYHZwDKgZ7hrroZrvqX8/VwKzAXODHfNQbjmt4DtgK/8/+frnfg+a+krERFxBHU5ioiIIyjQRETEERRoIiLiCAo0ERFxBAWaiIg4ggJNREQcQYEmIiKO8P+Cxf52V37TAwAAAABJRU5ErkJggg==\n",
"text/plain": [
"