You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

308 lines
82 KiB

{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[1, -1, 1, -1, 1, -1, -1, 1, -1, -1, 1, -1, ... 1, -1, 1, -1, 1, -1, 1, -1, 1, 1, 1]\n",
"[1, -1, 1, -1, 1, -1, -1, 1, -1, -1, 1, -1, ... 1, -1, 1, -1, 1, -1, 1, -1, 1, 1, 1]\n"
]
},
{
"data": {
"text/plain": [
"(array([ 8228., 9035., 9624., 10447., 11068., 11652., 12633., 13575.,\n",
" 14666., 15612., 16815., 18180., 19541., 21065., 22981., 24949.,\n",
" 27515., 29858., 32704., 35823., 38704., 41355., 41764., 32588.,\n",
" 9430., 9730., 33115., 42543., 41654., 38601., 35860., 32884.,\n",
" 29817., 27346., 25018., 23023., 21451., 19626., 18003., 16743.,\n",
" 15334., 14789., 13454., 12433., 11604., 10882., 10287., 9608.,\n",
" 8794., 8285.]),\n",
" array([-1200., -1152., -1104., -1056., -1008., -960., -912., -864.,\n",
" -816., -768., -720., -672., -624., -576., -528., -480.,\n",
" -432., -384., -336., -288., -240., -192., -144., -96.,\n",
" -48., 0., 48., 96., 144., 192., 240., 288.,\n",
" 336., 384., 432., 480., 528., 576., 624., 672.,\n",
" 720., 768., 816., 864., 912., 960., 1008., 1056.,\n",
" 1104., 1152., 1200.]),\n",
" <BarContainer object of 50 artists>)"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjoAAAGdCAYAAAAbudkLAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy89olMNAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA2eElEQVR4nO3df1BU973/8Rflx4oUzuVHYNlKrZ0q1aK5udgA2lYTFXREmsa5mpLZ0V6LyRglRJi0JnNvTKdK4s/01ltrvU5s1JTMXGvbXA0Fp5GUEfxBwhTU2HRiIjasGF0W9dKFkPP9I1/PZMUYURT5+HzMnBn3nPee/ZzPGveVzzmfc8Js27YFAABgoC8MdAMAAABuFoIOAAAwFkEHAAAYi6ADAACMRdABAADGIugAAABjEXQAAICxCDoAAMBYEQPdgIH08ccf64MPPlBsbKzCwsIGujkAAOAa2Lat8+fPy+Px6AtfuPqYzR0ddD744AOlpaUNdDMAAMB1aGlp0bBhw65ac0cHndjYWEmfdFRcXNwAtwYAAFyLjo4OpaWlOb/jV3NHB51Lp6vi4uIIOgAADDLXctkJFyMDAABjEXQAAICxCDoAAMBYBB0AAGAsgg4AADAWQQcAABiLoAMAAIxF0AEAAMYi6AAAAGMRdAAAgLEIOgAAwFgEHQAAYCyCDgAAMBZBBwAAGCtioBsAALe79dV//dyaJ6aNugUtAdBXjOgAAABjEXQAAICxCDoAAMBYBB0AAGAsgg4AADAWQQcAABiL6eUAbimmagO4lQg6ANAPCHDA7YlTVwAAwFiM6ADoN9cyqgEAtxIjOgAAwFgEHQAAYCyCDgAAMBZBBwAAGIugAwAAjEXQAQAAxrqhoFNeXq6wsDCVlJQ462zb1vLly+XxeBQdHa3JkyfryJEjIe8LBoNasmSJkpKSFBMTo4KCAp06dSqkxu/3y+v1yrIsWZYlr9er9vb2kJqTJ09q1qxZiomJUVJSkoqLi9XV1XUjhwQAAAxy3UHn0KFD+tWvfqVx48aFrF+1apXWrVunDRs26NChQ3K73Zo2bZrOnz/v1JSUlGjXrl2qqKhQbW2tLly4oPz8fPX09Dg1hYWFamxsVGVlpSorK9XY2Civ1+ts7+np0cyZM3Xx4kXV1taqoqJCO3fuVGlp6fUeEgAAMMx1BZ0LFy7o4Ycf1ubNmxUfH++st21bL7zwgp5++mk9+OCDysjI0K9//Wv93//9n15++WVJUiAQ0JYtW7R27VpNnTpV99xzj7Zv366mpibt3btXknTs2DFVVlbqv//7v5WTk6OcnBxt3rxZ//u//6vjx49LkqqqqnT06FFt375d99xzj6ZOnaq1a9dq8+bN6ujouNF+AQAABriuoPPYY49p5syZmjp1asj6EydOyOfzKTc311nncrk0adIk7d+/X5LU0NCg7u7ukBqPx6OMjAynpq6uTpZlKSsry6nJzs6WZVkhNRkZGfJ4PE5NXl6egsGgGhoartjuYDCojo6OkAUAAJirz4+AqKio0JtvvqlDhw712ubz+SRJKSkpIetTUlL0/vvvOzVRUVEhI0GXai693+fzKTk5udf+k5OTQ2ou/5z4+HhFRUU5NZcrLy/Xs88+ey2HCQAADNCnEZ2WlhY9/vjj2r59u4YMGfKZdWFhYSGvbdvute5yl9dcqf56aj5t2bJlCgQCztLS0nLVNgEAgMGtT0GnoaFBbW1tyszMVEREhCIiIlRTU6P//M//VEREhDPCcvmISltbm7PN7Xarq6tLfr//qjWnT5/u9flnzpwJqbn8c/x+v7q7u3uN9FzicrkUFxcXsgAAAHP1KehMmTJFTU1NamxsdJbx48fr4YcfVmNjo7761a/K7XarurraeU9XV5dqamo0YcIESVJmZqYiIyNDalpbW9Xc3OzU5OTkKBAI6ODBg07NgQMHFAgEQmqam5vV2trq1FRVVcnlcikzM/M6ugIAAJimT9foxMbGKiMjI2RdTEyMEhMTnfUlJSVauXKlRo4cqZEjR2rlypUaOnSoCgsLJUmWZWnBggUqLS1VYmKiEhISVFZWprFjxzoXN48ePVrTp09XUVGRNm3aJElauHCh8vPzlZ6eLknKzc3VmDFj5PV6tXr1ap07d05lZWUqKipipAYAAEi6jouRP8+TTz6pzs5OLVq0SH6/X1lZWaqqqlJsbKxTs379ekVERGjOnDnq7OzUlClTtHXrVoWHhzs1O3bsUHFxsTM7q6CgQBs2bHC2h4eHa/fu3Vq0aJEmTpyo6OhoFRYWas2aNf19SAAAYJAKs23bHuhGDJSOjg5ZlqVAIMAoENAP1lf/tV/288S0Uf2yn/5i6nEBg1Vffr951hUAADAWQQcAABiLoAMAAIxF0AEAAMbq91lXAMzUXxfkAsCtRNABgFvkWsIiM7OA/sWpKwAAYCyCDgAAMBZBBwAAGIugAwAAjEXQAQAAxiLoAAAAYxF0AACAsQg6AADAWAQdAABgLIIOAAAwFkEHAAAYi6ADAACMRdABAADGIugAAABjEXQAAICxCDoAAMBYBB0AAGAsgg4AADAWQQcAABiLoAMAAIxF0AEAAMYi6AAAAGNFDHQDAAy89dV/Hegm4P+7lu/iiWmjbkFLADMwogMAAIxF0AEAAMbqU9DZuHGjxo0bp7i4OMXFxSknJ0evvfaas33+/PkKCwsLWbKzs0P2EQwGtWTJEiUlJSkmJkYFBQU6depUSI3f75fX65VlWbIsS16vV+3t7SE1J0+e1KxZsxQTE6OkpCQVFxerq6urj4cPAABM1qegM2zYMD333HM6fPiwDh8+rPvvv1/f/e53deTIEadm+vTpam1tdZY9e/aE7KOkpES7du1SRUWFamtrdeHCBeXn56unp8epKSwsVGNjoyorK1VZWanGxkZ5vV5ne09Pj2bOnKmLFy+qtrZWFRUV2rlzp0pLS6+3HwAAgIH6dDHyrFmzQl6vWLFCGzduVH19vb7xjW9Iklwul9xu9xXfHwgEtGXLFm3btk1Tp06VJG3fvl1paWnau3ev8vLydOzYMVVWVqq+vl5ZWVmSpM2bNysnJ0fHjx9Xenq6qqqqdPToUbW0tMjj8UiS1q5dq/nz52vFihWKi4vrWy8AAAAjXfc1Oj09PaqoqNDFixeVk5PjrN+3b5+Sk5M1atQoFRUVqa2tzdnW0NCg7u5u5ebmOus8Ho8yMjK0f/9+SVJdXZ0sy3JCjiRlZ2fLsqyQmoyMDCfkSFJeXp6CwaAaGho+s83BYFAdHR0hCwAAMFefg05TU5O++MUvyuVy6dFHH9WuXbs0ZswYSdKMGTO0Y8cO/elPf9LatWt16NAh3X///QoGg5Ikn8+nqKgoxcfHh+wzJSVFPp/PqUlOTu71ucnJySE1KSkpIdvj4+MVFRXl1FxJeXm5c92PZVlKS0vr6+EDAIBBpM/30UlPT1djY6Pa29u1c+dOzZs3TzU1NRozZozmzp3r1GVkZGj8+PEaPny4du/erQcffPAz92nbtsLCwpzXn/7zjdRcbtmyZVq6dKnzuqOjg7ADAIDB+jyiExUVpa997WsaP368ysvLdffdd+tnP/vZFWtTU1M1fPhwvfPOO5Ikt9utrq4u+f3+kLq2tjZnhMbtduv06dO99nXmzJmQmstHbvx+v7q7u3uN9Hyay+VyZoxdWgAAgLlu+D46tm07p6Yud/bsWbW0tCg1NVWSlJmZqcjISFVXVzs1ra2tam5u1oQJEyRJOTk5CgQCOnjwoFNz4MABBQKBkJrm5ma1trY6NVVVVXK5XMrMzLzRQwIAAIbo06mrp556SjNmzFBaWprOnz+viooK7du3T5WVlbpw4YKWL1+u2bNnKzU1Ve+9956eeuopJSUl6Xvf+54kybIsLViwQKWlpUpMTFRCQoLKyso0duxYZxbW6NGjNX36dBUVFWnTpk2SpIULFyo/P1/p6emSpNzcXI0ZM0Zer1erV6/WuXPnVFZWpqKiIkZpAACAo09B5/Tp0/J6vWptbZVlWRo3bpwqKys1bdo0dXZ2qqmpSS+99JLa29uVmpqq++67T6+88opiY2Odfaxfv14RERGaM2eOOjs7NWXKFG3dulXh4eFOzY4dO1RcXOzMziooKNCGDRuc7eHh4dq9e7cWLVqkiRMnKjo6WoWFhVqzZs2N9gcAADBImG3b9kA3YqB0dHTIsiwFAgFGgnBHu90e6nm7PbSS/gFuL335/eZZVwAAwFgEHQAAYCyCDgAAMBZBBwAAGIugAwAAjEXQAQAAxiLoAAAAYxF0AACAsfr89HIAMMntdjNAAP2LER0AAGAsRnQAYJC5llEoHhMBfIIRHQAAYCxGdADDcQ0KgDsZQQfAbYdTMwD6C6euAACAsQg6AADAWAQdAABgLIIOAAAwFkEHAAAYi6ADAACMRdABAADGIugAAABjEXQAAICxCDoAAMBYBB0AAGAsgg4AADAWQQcAABiLoAMAAIxF0AEAAMYi6AAAAGP1Kehs3LhR48aNU1xcnOLi4pSTk6PXXnvN2W7btpYvXy6Px6Po6GhNnjxZR44cCdlHMBjUkiVLlJSUpJiYGBUUFOjUqVMhNX6/X16vV5ZlybIseb1etbe3h9ScPHlSs2bNUkxMjJKSklRcXKyurq4+Hj4AADBZn4LOsGHD9Nxzz+nw4cM6fPiw7r//fn33u991wsyqVau0bt06bdiwQYcOHZLb7da0adN0/vx5Zx8lJSXatWuXKioqVFtbqwsXLig/P189PT1OTWFhoRobG1VZWanKyko1NjbK6/U623t6ejRz5kxdvHhRtbW1qqio0M6dO1VaWnqj/QEAAAwSZtu2fSM7SEhI0OrVq/Vv//Zv8ng8Kikp0Y9+9CNJn4zepKSk6Pnnn9cjjzyiQCCgu+66S9u2bdPcuXMlSR988IHS0tK0Z88e5eXl6dixYxozZozq6+uVlZUlSaqvr1dOTo7efvttpaen67XXXlN+fr5aWlrk8XgkSRUVFZo/f77a2toUFxd3TW3v6OiQZVkKBALX/B5gsFlf/deBbsJN8cS0Uf2yH/oHGHz68vt93dfo9PT0qKKiQhcvXlROTo5OnDghn8+n3Nxcp8blcmnSpEnav3+/JKmhoUHd3d0hNR6PRxkZGU5NXV2dLMtyQo4kZWdny7KskJqMjAwn5EhSXl6egsGgGhoaPrPNwWBQHR0dIQsAADBXn4NOU1OTvvjFL8rlcunRRx/Vrl27NGbMGPl8PklSSkpKSH1KSoqzzefzKSoqSvHx8VetSU5O7vW5ycnJITWXf058fLyioqKcmispLy93rvuxLEtpaWl9PHoAADCYRPT1Denp6WpsbFR7e7t27typefPmqaamxtkeFhYWUm/bdq91l7u85kr111NzuWXLlmnp0qXO646ODsIOBjVTT7sAQH/pc9CJiorS1772NUnS+PHjdejQIf3sZz9zrsvx+XxKTU116tva2pzRF7fbra6uLvn9/pBRnba2Nk2YMMGpOX36dK/PPXPmTMh+Dhw4ELLd7/eru7u710jPp7lcLrlcrr4eMgAMOtcSgrmOB3eCG76Pjm3bCgaDGjFihNxut6qrq51tXV1dqqmpcUJMZmamIiMjQ2paW1vV3Nzs1OTk5CgQCOjgwYNOzYEDBxQIBEJqmpub1dra6tRUVVXJ5XIpMzPzRg8JAAAYok8jOk899ZRmzJihtLQ0nT9/XhUVFdq3b58qKysVFhamkpISrVy5UiNHjtTIkSO1cuVKDR06VIWFhZIky7K0YMEClZaWKjExUQkJCSorK9PYsWM1depUSdLo0aM1ffp0FRUVadOmTZKkhQsXKj8/X+np6ZKk3NxcjRkzRl6vV6tXr9a5c+dUVlamoqIiZk8BAABHn4LO6dOn5fV61draKsuyNG7cOFVWVmratGmSpCeffFKdnZ1atGiR/H6/srKyVFVVpdjYWGcf69evV0REhObMmaPOzk5NmTJFW7duVXh4uFOzY8cOFRcXO7OzCgoKtGHDBmd7eHi4du/erUWLFmnixImKjo5WYWGh1qxZc0OdAQAAzHLD99EZzLiPDga7O/liZO6jc+O4RgeD1S25jw4AAMDtjqADAACMRdABAADGIugAAABjEXQAAICxCDoAAMBYBB0AAGAsgg4AADAWQQcAABiLoAMAAIxF0AEAAMYi6AAAAGMRdAAAgLEIOgAAwFgRA90AAFe2vvqvA90EABj0CDoAcIe6ljD9xLRRt6AlwM3DqSsAAGAsgg4AADAWQQcAABiLoAMAAIxF0AEAAMYi6AAAAGMRdAAAgLEIOgAAwFgEHQAAYCyCDgAAMBZBBwAAGIugAwAAjEXQAQAAxiLoAAAAY/Up6JSXl+ub3/ymYmNjlZycrAceeEDHjx8PqZk/f77CwsJCluzs7JCaYDCoJUuWKCkpSTExMSooKNCpU6dCavx+v7xeryzLkmVZ8nq9am9vD6k5efKkZs2apZiYGCUlJam4uFhdXV19OSQAAGCwPgWdmpoaPfbYY6qvr1d1dbU++ugj5ebm6uLFiyF106dPV2trq7Ps2bMnZHtJSYl27dqliooK1dbW6sKFC8rPz1dPT49TU1hYqMbGRlVWVqqyslKNjY3yer3O9p6eHs2cOVMXL15UbW2tKioqtHPnTpWWll5PPwAAAANF9KW4srIy5PWLL76o5ORkNTQ06Dvf+Y6z3uVyye12X3EfgUBAW7Zs0bZt2zR16lRJ0vbt25WWlqa9e/cqLy9Px44dU2Vlperr65WVlSVJ2rx5s3JycnT8+HGlp6erqqpKR48eVUtLizwejyRp7dq1mj9/vlasWKG4uLi+HBoAADDQDV2jEwgEJEkJCQkh6/ft26fk5GSNGjVKRUVFamtrc7Y1NDSou7tbubm5zjqPx6OMjAzt379fklRXVyfLspyQI0nZ2dmyLCukJiMjwwk5kpSXl6dgMKiGhoYrtjcYDKqjoyNkAQAA5urTiM6n2batpUuX6lvf+pYyMjKc9TNmzNC//uu/avjw4Tpx4oT+/d//Xffff78aGhrkcrnk8/kUFRWl+Pj4kP2lpKTI5/NJknw+n5KTk3t9ZnJyckhNSkpKyPb4+HhFRUU5NZcrLy/Xs88+e72HDAB3nPXVf/3cmiemjboFLQGuz3UHncWLF+svf/mLamtrQ9bPnTvX+XNGRobGjx+v4cOHa/fu3XrwwQc/c3+2bSssLMx5/ek/30jNpy1btkxLly51Xnd0dCgtLe0z2wTcLNfy4wEAuHHXdepqyZIl+sMf/qDXX39dw4YNu2ptamqqhg8frnfeeUeS5Ha71dXVJb/fH1LX1tbmjNC43W6dPn26177OnDkTUnP5yI3f71d3d3evkZ5LXC6X4uLiQhYAAGCuPgUd27a1ePFi/fa3v9Wf/vQnjRgx4nPfc/bsWbW0tCg1NVWSlJmZqcjISFVXVzs1ra2tam5u1oQJEyRJOTk5CgQCOnjwoFNz4MABBQKBkJrm5ma1trY6NVVVVXK5XMrMzOzLYQEAAEP16dTVY489ppdfflm///3vFRsb64yoWJal6OhoXbhwQcuXL9fs2bOVmpqq9957T0899ZSSkpL0ve99z6ldsGCBSktLlZiYqISEBJWVlWns2LHOLKzRo0dr+vTpKioq0qZNmyRJCxcuVH5+vtLT0yVJubm5GjNmjLxer1avXq1z586prKxMRUVFjNQAAABJfRzR2bhxowKBgCZPnqzU1FRneeWVVyRJ4eHhampq0ne/+12NGjVK8+bN06hRo1RXV6fY2FhnP+vXr9cDDzygOXPmaOLEiRo6dKheffVVhYeHOzU7duzQ2LFjlZubq9zcXI0bN07btm1ztoeHh2v37t0aMmSIJk6cqDlz5uiBBx7QmjVrbrRPAACAIcJs27YHuhEDpaOjQ5ZlKRAIMAqEW4qLkW9cf8304bu4ccy6wq3Wl99vnnUFAACMRdABAADGIugAAABjEXQAAICxCDoAAMBYBB0AAGAsgg4AADAWQQcAABiLoAMAAIxF0AEAAMbq00M9AXw+HimAO821/J3nMREYKIzoAAAAYxF0AACAsQg6AADAWAQdAABgLIIOAAAwFkEHAAAYi6ADAACMRdABAADGIugAAABjEXQAAICxCDoAAMBYBB0AAGAsHuoJALjpePAnBgojOgAAwFgEHQAAYCxOXQF9cC3D7wCA2wcjOgAAwFgEHQAAYCyCDgAAMBZBBwAAGKtPQae8vFzf/OY3FRsbq+TkZD3wwAM6fvx4SI1t21q+fLk8Ho+io6M1efJkHTlyJKQmGAxqyZIlSkpKUkxMjAoKCnTq1KmQGr/fL6/XK8uyZFmWvF6v2tvbQ2pOnjypWbNmKSYmRklJSSouLlZXV1dfDgkAABisT0GnpqZGjz32mOrr61VdXa2PPvpIubm5unjxolOzatUqrVu3Ths2bNChQ4fkdrs1bdo0nT9/3qkpKSnRrl27VFFRodraWl24cEH5+fnq6elxagoLC9XY2KjKykpVVlaqsbFRXq/X2d7T06OZM2fq4sWLqq2tVUVFhXbu3KnS0tIb6Q8AAGCQMNu27et985kzZ5ScnKyamhp95zvfkW3b8ng8Kikp0Y9+9CNJn4zepKSk6Pnnn9cjjzyiQCCgu+66S9u2bdPcuXMlSR988IHS0tK0Z88e5eXl6dixYxozZozq6+uVlZUlSaqvr1dOTo7efvttpaen67XXXlN+fr5aWlrk8XgkSRUVFZo/f77a2toUFxf3ue3v6OiQZVkKBALXVA8wvfz20V930eU7vX1wZ2Rcq778ft/QNTqBQECSlJCQIEk6ceKEfD6fcnNznRqXy6VJkyZp//79kqSGhgZ1d3eH1Hg8HmVkZDg1dXV1sizLCTmSlJ2dLcuyQmoyMjKckCNJeXl5CgaDamhouGJ7g8GgOjo6QhYAAGCu6w46tm1r6dKl+ta3vqWMjAxJks/nkySlpKSE1KakpDjbfD6foqKiFB8ff9Wa5OTkXp+ZnJwcUnP558THxysqKsqpuVx5eblzzY9lWUpLS+vrYQMAgEHkuoPO4sWL9Ze//EW/+c1vem0LCwsLeW3bdq91l7u85kr111PzacuWLVMgEHCWlpaWq7YJAAAMbtcVdJYsWaI//OEPev311zVs2DBnvdvtlqReIyptbW3O6Ivb7VZXV5f8fv9Va06fPt3rc8+cORNSc/nn+P1+dXd39xrpucTlcikuLi5kAQAA5urTs65s29aSJUu0a9cu7du3TyNGjAjZPmLECLndblVXV+uee+6RJHV1dammpkbPP/+8JCkzM1ORkZGqrq7WnDlzJEmtra1qbm7WqlWrJEk5OTkKBAI6ePCg7r33XknSgQMHFAgENGHCBKdmxYoVam1tVWpqqiSpqqpKLpdLmZmZ19sfAIABci0XhnPBMvqqT0Hnscce08svv6zf//73io2NdUZULMtSdHS0wsLCVFJSopUrV2rkyJEaOXKkVq5cqaFDh6qwsNCpXbBggUpLS5WYmKiEhASVlZVp7Nixmjp1qiRp9OjRmj59uoqKirRp0yZJ0sKFC5Wfn6/09HRJUm5ursaMGSOv16vVq1fr3LlzKisrU1FRESM1uC7MvgEA8/Qp6GzcuFGSNHny5JD1L774oubPny9JevLJJ9XZ2alFixbJ7/crKytLVVVVio2NderXr1+viIgIzZkzR52dnZoyZYq2bt2q8PBwp2bHjh0qLi52ZmcVFBRow4YNzvbw8HDt3r1bixYt0sSJExUdHa3CwkKtWbOmTx0AAADMdUP30RnsuI8OPo0RncGF++jcmTh1BekW3kcHAADgdkbQAQAAxiLoAAAAYxF0AACAsQg6AADAWAQdAABgLIIOAAAwFkEHAAAYq093RgYGK24KBwB3JoIOAGDQ4MGf6CtOXQEAAGMRdAAAgLEIOgAAwFgEHQAAYCyCDgAAMBZBBwAAGIugAwAAjEXQAQAAxiLoAAAAY3FnZAx6PN4BAPBZCDoAAKPwmAh8GqeuAACAsQg6AADAWAQdAABgLIIOAAAwFkEHAAAYi6ADAACMRdABAADGIugAAABjccNA3Na46zEA4Eb0eUTnjTfe0KxZs+TxeBQWFqbf/e53Idvnz5+vsLCwkCU7OzukJhgMasmSJUpKSlJMTIwKCgp06tSpkBq/3y+v1yvLsmRZlrxer9rb20NqTp48qVmzZikmJkZJSUkqLi5WV1dXXw8JAAAYqs8jOhcvXtTdd9+tH/zgB5o9e/YVa6ZPn64XX3zReR0VFRWyvaSkRK+++qoqKiqUmJio0tJS5efnq6GhQeHh4ZKkwsJCnTp1SpWVlZKkhQsXyuv16tVXX5Uk9fT0aObMmbrrrrtUW1urs2fPat68ebJtWz//+c/7elgAgDsIj4m4c/Q56MyYMUMzZsy4ao3L5ZLb7b7itkAgoC1btmjbtm2aOnWqJGn79u1KS0vT3r17lZeXp2PHjqmyslL19fXKysqSJG3evFk5OTk6fvy40tPTVVVVpaNHj6qlpUUej0eStHbtWs2fP18rVqxQXFxcXw8NAAAY5qZcjLxv3z4lJydr1KhRKioqUltbm7OtoaFB3d3dys3NddZ5PB5lZGRo//79kqS6ujpZluWEHEnKzs6WZVkhNRkZGU7IkaS8vDwFg0E1NDRcsV3BYFAdHR0hCwAAMFe/B50ZM2Zox44d+tOf/qS1a9fq0KFDuv/++xUMBiVJPp9PUVFRio+PD3lfSkqKfD6fU5OcnNxr38nJySE1KSkpIdvj4+MVFRXl1FyuvLzcuebHsiylpaXd8PECAIDbV7/Pupo7d67z54yMDI0fP17Dhw/X7t279eCDD37m+2zbVlhYmPP603++kZpPW7ZsmZYuXeq87ujoIOwAAGCwmz69PDU1VcOHD9c777wjSXK73erq6pLf7w8Z1Wlra9OECROcmtOnT/fa15kzZ5xRHLfbrQMHDoRs9/v96u7u7jXSc4nL5ZLL5eqX4wIAmI0Lls1w04PO2bNn1dLSotTUVElSZmamIiMjVV1drTlz5kiSWltb1dzcrFWrVkmScnJyFAgEdPDgQd17772SpAMHDigQCDhhKCcnRytWrFBra6uz76qqKrlcLmVmZt7sw0I/4B45AICbrc9B58KFC/rb3/7mvD5x4oQaGxuVkJCghIQELV++XLNnz1Zqaqree+89PfXUU0pKStL3vvc9SZJlWVqwYIFKS0uVmJiohIQElZWVaezYsc4srNGjR2v69OkqKirSpk2bJH0yvTw/P1/p6emSpNzcXI0ZM0Zer1erV6/WuXPnVFZWpqKiImZcAQAASdcRdA4fPqz77rvPeX3pmpd58+Zp48aNampq0ksvvaT29nalpqbqvvvu0yuvvKLY2FjnPevXr1dERITmzJmjzs5OTZkyRVu3bnXuoSNJO3bsUHFxsTM7q6CgQBs2bHC2h4eHa/fu3Vq0aJEmTpyo6OhoFRYWas2aNX3vBQAAYKQw27btgW7EQOno6JBlWQoEAowCDQBOXeFG9Ne1Efw9xI3gGp2B0Zffbx7qCQAAjEXQAQAAxiLoAAAAYxF0AACAsQg6AADAWDf9hoG4MzGTBQBwOyDoAABwnXhMxO2PU1cAAMBYBB0AAGAsgg4AADAWQQcAABiLoAMAAIxF0AEAAMZiejn6jHvkAAAGC4IOAAA3EffaGVicugIAAMYi6AAAAGMRdAAAgLEIOgAAwFgEHQAAYCyCDgAAMBbTyxGCe+QAwK3HFPSbhxEdAABgLIIOAAAwFkEHAAAYi6ADAACMxcXIdxAuNAYA3GkIOgAADALMzLo+nLoCAADGIugAAABj9TnovPHGG5o1a5Y8Ho/CwsL0u9/9LmS7bdtavny5PB6PoqOjNXnyZB05ciSkJhgMasmSJUpKSlJMTIwKCgp06tSpkBq/3y+v1yvLsmRZlrxer9rb20NqTp48qVmzZikmJkZJSUkqLi5WV1dXXw8JAAAYqs/X6Fy8eFF33323fvCDH2j27Nm9tq9atUrr1q3T1q1bNWrUKP30pz/VtGnTdPz4ccXGxkqSSkpK9Oqrr6qiokKJiYkqLS1Vfn6+GhoaFB4eLkkqLCzUqVOnVFlZKUlauHChvF6vXn31VUlST0+PZs6cqbvuuku1tbU6e/as5s2bJ9u29fOf//y6O2Sw4kJjAAB6C7Nt277uN4eFadeuXXrggQckfTKa4/F4VFJSoh/96EeSPhm9SUlJ0fPPP69HHnlEgUBAd911l7Zt26a5c+dKkj744AOlpaVpz549ysvL07FjxzRmzBjV19crKytLklRfX6+cnBy9/fbbSk9P12uvvab8/Hy1tLTI4/FIkioqKjR//ny1tbUpLi7uc9vf0dEhy7IUCASuqf52RtDBnaa/Lrrkvx3caUy4YLkvv9/9eo3OiRMn5PP5lJub66xzuVyaNGmS9u/fL0lqaGhQd3d3SI3H41FGRoZTU1dXJ8uynJAjSdnZ2bIsK6QmIyPDCTmSlJeXp2AwqIaGhv48LAAAMEj16/Ryn88nSUpJSQlZn5KSovfff9+piYqKUnx8fK+aS+/3+XxKTk7utf/k5OSQmss/Jz4+XlFRUU7N5YLBoILBoPO6o6OjL4cHAAAGmZsy6yosLCzktW3bvdZd7vKaK9VfT82nlZeXOxc3W5altLS0q7YJAAAMbv0adNxutyT1GlFpa2tzRl/cbre6urrk9/uvWnP69Ole+z9z5kxIzeWf4/f71d3d3Wuk55Jly5YpEAg4S0tLy3UcJQAAGCz69dTViBEj5Ha7VV1drXvuuUeS1NXVpZqaGj3//POSpMzMTEVGRqq6ulpz5syRJLW2tqq5uVmrVq2SJOXk5CgQCOjgwYO69957JUkHDhxQIBDQhAkTnJoVK1aotbVVqampkqSqqiq5XC5lZmZesX0ul0sul6s/DxnAbYwLjQH0OehcuHBBf/vb35zXJ06cUGNjoxISEvTlL39ZJSUlWrlypUaOHKmRI0dq5cqVGjp0qAoLCyVJlmVpwYIFKi0tVWJiohISElRWVqaxY8dq6tSpkqTRo0dr+vTpKioq0qZNmyR9Mr08Pz9f6enpkqTc3FyNGTNGXq9Xq1ev1rlz51RWVqaioqJBP4PqcvxjDQDoL9f6m2LC7CzpOoLO4cOHdd999zmvly5dKkmaN2+etm7dqieffFKdnZ1atGiR/H6/srKyVFVV5dxDR5LWr1+viIgIzZkzR52dnZoyZYq2bt3q3ENHknbs2KHi4mJndlZBQYE2bNjgbA8PD9fu3bu1aNEiTZw4UdHR0SosLNSaNWv63gsABh3+BwDAtbih++gMdoPlPjr8gw4AuNVu5xGdAbuPDgAAwO2EoAMAAIzVr7Ou0HeclgIA4OZhRAcAABiLER0AANDLtZxxuJ0vWL6EER0AAGAsgg4AADAWQQcAABiLa3RuImZUAQBMNhiu42FEBwAAGIugAwAAjEXQAQAAxiLoAAAAYxF0AACAsQg6AADAWAQdAABgLIIOAAAwFkEHAAAYi6ADAACMRdABAADGIugAAABjEXQAAICxCDoAAMBYBB0AAGAsgg4AADAWQQcAABiLoAMAAIxF0AEAAMYi6AAAAGMRdAAAgLEIOgAAwFj9HnSWL1+usLCwkMXtdjvbbdvW8uXL5fF4FB0drcmTJ+vIkSMh+wgGg1qyZImSkpIUExOjgoICnTp1KqTG7/fL6/XKsixZliWv16v29vb+PhwAADCI3ZQRnW984xtqbW11lqamJmfbqlWrtG7dOm3YsEGHDh2S2+3WtGnTdP78eaempKREu3btUkVFhWpra3XhwgXl5+erp6fHqSksLFRjY6MqKytVWVmpxsZGeb3em3E4AABgkIq4KTuNiAgZxbnEtm298MILevrpp/Xggw9Kkn79618rJSVFL7/8sh555BEFAgFt2bJF27Zt09SpUyVJ27dvV1pamvbu3au8vDwdO3ZMlZWVqq+vV1ZWliRp8+bNysnJ0fHjx5Wenn4zDgsAAAwyN2VE55133pHH49GIESP00EMP6d1335UknThxQj6fT7m5uU6ty+XSpEmTtH//fklSQ0ODuru7Q2o8Ho8yMjKcmrq6OlmW5YQcScrOzpZlWU7NlQSDQXV0dIQsAADAXP0edLKysvTSSy/pj3/8ozZv3iyfz6cJEybo7Nmz8vl8kqSUlJSQ96SkpDjbfD6foqKiFB8ff9Wa5OTkXp+dnJzs1FxJeXm5c02PZVlKS0u7oWMFAAC3t34POjNmzNDs2bM1duxYTZ06Vbt375b0ySmqS8LCwkLeY9t2r3WXu7zmSvWft59ly5YpEAg4S0tLyzUdEwAAGJxu+vTymJgYjR07Vu+8845z3c7loy5tbW3OKI/b7VZXV5f8fv9Va06fPt3rs86cOdNrtOjTXC6X4uLiQhYAAGCumx50gsGgjh07ptTUVI0YMUJut1vV1dXO9q6uLtXU1GjChAmSpMzMTEVGRobUtLa2qrm52anJyclRIBDQwYMHnZoDBw4oEAg4NQAAAP0+66qsrEyzZs3Sl7/8ZbW1temnP/2pOjo6NG/ePIWFhamkpEQrV67UyJEjNXLkSK1cuVJDhw5VYWGhJMmyLC1YsEClpaVKTExUQkKCysrKnFNhkjR69GhNnz5dRUVF2rRpkyRp4cKFys/PZ8YVAABw9HvQOXXqlL7//e/rww8/1F133aXs7GzV19dr+PDhkqQnn3xSnZ2dWrRokfx+v7KyslRVVaXY2FhnH+vXr1dERITmzJmjzs5OTZkyRVu3blV4eLhTs2PHDhUXFzuzswoKCrRhw4b+PhwAADCIhdm2bQ90IwZKR0eHLMtSIBC4KdfrrK/+a7/vEwCAweSJaaP6fZ99+f3mWVcAAMBYBB0AAGAsgg4AADAWQQcAABiLoAMAAIxF0AEAAMYi6AAAAGMRdAAAgLEIOgAAwFgEHQAAYCyCDgAAMBZBBwAAGIugAwAAjEXQAQAAxiLoAAAAYxF0AACAsQg6AADAWAQdAABgLIIOAAAwFkEHAAAYi6ADAACMRdABAADGIugAAABjEXQAAICxCDoAAMBYBB0AAGAsgg4AADAWQQcAABiLoAMAAIxF0AEAAMYa9EHnF7/4hUaMGKEhQ4YoMzNTf/7znwe6SQAA4DYxqIPOK6+8opKSEj399NN666239O1vf1szZszQyZMnB7ppAADgNjCog866deu0YMEC/fCHP9To0aP1wgsvKC0tTRs3bhzopgEAgNtAxEA34Hp1dXWpoaFBP/7xj0PW5+bmav/+/Vd8TzAYVDAYdF4HAgFJUkdHx01p4z8uXrgp+wUAYLC4Gb+xl/Zp2/bn1g7aoPPhhx+qp6dHKSkpIetTUlLk8/mu+J7y8nI9++yzvdanpaXdlDYCAHCne+om7vv8+fOyLOuqNYM26FwSFhYW8tq27V7rLlm2bJmWLl3qvP7444917tw5JSYmfuZ7TNLR0aG0tDS1tLQoLi5uoJtzx6DfBwb9PjDo94Fxp/W7bds6f/68PB7P59YO2qCTlJSk8PDwXqM3bW1tvUZ5LnG5XHK5XCHr/umf/ulmNfG2FRcXd0f8h3C7od8HBv0+MOj3gXEn9fvnjeRcMmgvRo6KilJmZqaqq6tD1ldXV2vChAkD1CoAAHA7GbQjOpK0dOlSeb1ejR8/Xjk5OfrVr36lkydP6tFHHx3opgEAgNvAoA46c+fO1dmzZ/WTn/xEra2tysjI0J49ezR8+PCBbtptyeVy6Zlnnul1+g43F/0+MOj3gUG/Dwz6/bOF2dcyNwsAAGAQGrTX6AAAAHwegg4AADAWQQcAABiLoAMAAIxF0DHAihUrNGHCBA0dOvQzb4B48uRJzZo1SzExMUpKSlJxcbG6urpCapqamjRp0iRFR0frS1/6kn7yk5/0eo5ITU2NMjMzNWTIEH31q1/VL3/5y5t1WIPSV77yFYWFhYUslz+Prb++C1zdL37xC40YMUJDhgxRZmam/vznPw90kwat5cuX9/p77Xa7ne22bWv58uXyeDyKjo7W5MmTdeTIkZB9BINBLVmyRElJSYqJiVFBQYFOnTp1qw/ltvbGG29o1qxZ8ng8CgsL0+9+97uQ7f3Vz36/X16vV5ZlybIseb1etbe33+SjG0A2Br3/+I//sNetW2cvXbrUtiyr1/aPPvrIzsjIsO+77z77zTfftKurq22Px2MvXrzYqQkEAnZKSor90EMP2U1NTfbOnTvt2NhYe82aNU7Nu+++aw8dOtR+/PHH7aNHj9qbN2+2IyMj7f/5n/+5FYc5KAwfPtz+yU9+Yre2tjrL+fPnne399V3g6ioqKuzIyEh78+bN9tGjR+3HH3/cjomJsd9///2Bbtqg9Mwzz9jf+MY3Qv5et7W1Odufe+45OzY21t65c6fd1NRkz507105NTbU7OjqcmkcffdT+0pe+ZFdXV9tvvvmmfd9999l33323/dFHHw3EId2W9uzZYz/99NP2zp07bUn2rl27Qrb3Vz9Pnz7dzsjIsPfv32/v37/fzsjIsPPz82/VYd5yBB2DvPjii1cMOnv27LG/8IUv2H//+9+ddb/5zW9sl8tlBwIB27Zt+xe/+IVtWZb9j3/8w6kpLy+3PR6P/fHHH9u2bdtPPvmk/fWvfz1k34888oidnZ19E45mcBo+fLi9fv36z9zeX98Fru7ee++1H3300ZB1X//61+0f//jHA9Siwe2ZZ56x77777itu+/jjj223220/99xzzrp//OMftmVZ9i9/+Uvbtm27vb3djoyMtCsqKpyav//97/YXvvAFu7Ky8qa2fbC6POj0Vz8fPXrUlmTX19c7NXV1dbYk++23377JRzUwOHV1B6irq1NGRkbIw8/y8vIUDAbV0NDg1EyaNCnkZlN5eXn64IMP9N577zk1ubm5IfvOy8vT4cOH1d3dffMPZJB4/vnnlZiYqH/+53/WihUrQk5L9dd3gc/W1dWlhoaGXn9Xc3NztX///gFq1eD3zjvvyOPxaMSIEXrooYf07rvvSpJOnDghn88X0t8ul0uTJk1y+ruhoUHd3d0hNR6PRxkZGXwn16i/+rmurk6WZSkrK8upyc7OlmVZxn4XBJ07gM/n6/Wg0/j4eEVFRTkPRb1SzaXXn1fz0Ucf6cMPP7xZzR9UHn/8cVVUVOj111/X4sWL9cILL2jRokXO9v76LvDZPvzwQ/X09FyxD+m/65OVlaWXXnpJf/zjH7V582b5fD5NmDBBZ8+edfr0av3t8/kUFRWl+Pj4z6zB1fVXP/t8PiUnJ/faf3JysrHfBUHnNnWli/8uXw4fPnzN+wsLC+u1zrbtkPWX19j//+LXvtaYpi/fxRNPPKFJkyZp3Lhx+uEPf6hf/vKX2rJli86ePevsr7++C1zdlfqQ/rs+M2bM0OzZszV27FhNnTpVu3fvliT9+te/dmqup7/5TvquP/r5Wv4NMsmgftaVyRYvXqyHHnroqjVf+cpXrmlfbrdbBw4cCFnn9/vV3d3t/N+B2+3ulebb2tok6XNrIiIilJiYeE1tGYxu5LvIzs6WJP3tb39TYmJiv30X+GxJSUkKDw+/Yh/Sf/0jJiZGY8eO1TvvvKMHHnhA0icjBampqU7Np/vb7Xarq6tLfr8/ZLShra1NEyZMuKVtH6wuzXK70X52u906ffp0r/2fOXPG2P8+GNG5TSUlJenrX//6VZchQ4Zc075ycnLU3Nys1tZWZ11VVZVcLpcyMzOdmjfeeCPkepKqqip5PB7nRzwnJ0fV1dUh+66qqtL48eMVGRl5g0d8+7qR7+Ktt96SJOcfpv76LvDZoqKilJmZ2evvanV1NT+q/SQYDOrYsWNKTU3ViBEj5Ha7Q/q7q6tLNTU1Tn9nZmYqMjIypKa1tVXNzc18J9eov/o5JydHgUBABw8edGoOHDigQCBg7ncxQBdBox+9//779ltvvWU/++yz9he/+EX7rbfest966y1nWvOlKc1Tpkyx33zzTXvv3r32sGHDQqY0t7e32ykpKfb3v/99u6mpyf7tb39rx8XFXXF6+RNPPGEfPXrU3rJlC9PLP2X//v32unXr7Lfeest+99137VdeecX2eDx2QUGBU9Nf3wWu7tL08i1btthHjx61S0pK7JiYGPu9994b6KYNSqWlpfa+ffvsd999166vr7fz8/Pt2NhYpz+fe+4527Is+7e//a3d1NRkf//737/itOdhw4bZe/futd988037/vvvZ3r5Zc6fP+/8+y3J+ffk0m0R+qufp0+fbo8bN86uq6uz6+rq7LFjxzK9HLe3efPm2ZJ6La+//rpT8/7779szZ860o6Oj7YSEBHvx4sUh05dt27b/8pe/2N/+9rdtl8tlu91ue/ny5b2mM+/bt8++55577KioKPsrX/mKvXHjxltxiINCQ0ODnZWVZVuWZQ8ZMsROT0+3n3nmGfvixYshdf31XeDq/uu//ssePny4HRUVZf/Lv/yLXVNTM9BNGrQu3a8lMjLS9ng89oMPPmgfOXLE2f7xxx/bzzzzjO12u22Xy2V/5zvfsZuamkL20dnZaS9evNhOSEiwo6Oj7fz8fPvkyZO3+lBua6+//voV/y2fN2+ebdv9189nz561H374YTs2NtaOjY21H374Ydvv99+io7z1wmyb260CAAAzcY0OAAAwFkEHAAAYi6ADAACMRdABAADGIugAAABjEXQAAICxCDoAAMBYBB0AAGAsgg4AADAWQQcAABiLoAMAAIxF0AEAAMb6fyKfUe/IE0GuAAAAAElFTkSuQmCC",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import uproot\n",
"import awkward as ak\n",
"import matplotlib\n",
"import matplotlib.pyplot as plt\n",
"input_tree = uproot.open({\"/work/guenther/reco_tuner/data/param_data_selected_all_p.root\": \"Selected\"})\n",
"array = input_tree.arrays()\n",
"array[\"dSlope_fringe\"] = array[\"tx_ref\"] - array[\"tx\"]\n",
"array[\"z_mag_x_fringe\"] = (array[\"x\"] - array[\"x_ref\"] - array[\"tx\"] * array[\"z\"] + array[\"tx_ref\"] * array[\"z_ref\"] ) / array[\"dSlope_fringe\"]\n",
"array[\"x_straight_diff_ref\"] = array[\"x\"] + array[\"tx\"] * (array[\"z_ref\"] - array[\"z\"]) - array[\"x_ref\"]\n",
"array[\"x_straight_diff_ref_abs\"] = abs(array[\"x_straight_diff_ref\"])\n",
"array[\"inv_p_gev\"] = 1000. / array[\"p\"]\n",
"array[\"pol_qop_gev\"] = array[\"signed_rel_current\"] * array[\"qop\"] * 1000.\n",
"array[\"qop_gev\"] = array[\"qop\"] * 1000.\n",
"array[\"deflection_sign\"] = array[\"pol_qop_gev\"] / array[\"inv_p_gev\"]\n",
"print(array[\"deflection_sign\"])\n",
"print(array[\"x_straight_diff_ref\"] / array[\"x_straight_diff_ref_abs\"])\n",
"plt.figure()\n",
"plt.hist(array[\"x_straight_diff_ref\"], bins=50,\n",
" range=[-1200, 1200], alpha=0.5)"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"['inv_p_gev' 'ty^2 inv_p_gev' 'tx^2 inv_p_gev' 'tx inv_p_gev pol_qop_gev'\n",
" 'inv_p_gev^3' 'tx^3 pol_qop_gev' 'tx^2 inv_p_gev^2'\n",
" 'tx inv_p_gev^2 pol_qop_gev' 'inv_p_gev^4' 'ty^2 tx^2 inv_p_gev'\n",
" 'ty^2 tx inv_p_gev pol_qop_gev' 'ty^2 inv_p_gev^3' 'tx^4 inv_p_gev']\n",
"intercept= 0.0\n",
"coef= {'inv_p_gev': 4018.896625676043, 'ty^2 inv_p_gev': 6724.789549369031, 'tx^2 inv_p_gev': 3970.9093976497766, 'tx inv_p_gev pol_qop_gev': -4363.5807241252905, 'inv_p_gev^3': 1421.1056758688073, 'tx^3 pol_qop_gev': 4934.07761471779, 'tx^2 inv_p_gev^2': 6985.252911263751, 'tx inv_p_gev^2 pol_qop_gev': -5538.28013195104, 'inv_p_gev^4': 1642.8616070452542, 'ty^2 tx^2 inv_p_gev': 106068.96918885755, 'ty^2 tx inv_p_gev pol_qop_gev': -94446.81037767915, 'ty^2 inv_p_gev^3': 26489.793756692892, 'tx^4 inv_p_gev': -23936.54391006025}\n",
"r2 score= 0.999838251106393\n",
"RMSE = 6.897104452420935\n",
"['inv_p_gev', 'ty^2 inv_p_gev', 'tx^2 inv_p_gev', 'tx inv_p_gev pol_qop_gev', 'inv_p_gev^3', 'tx^3 pol_qop_gev', 'tx^2 inv_p_gev^2', 'tx inv_p_gev^2 pol_qop_gev', 'inv_p_gev^4', 'ty^2 tx^2 inv_p_gev', 'ty^2 tx inv_p_gev pol_qop_gev', 'ty^2 inv_p_gev^3', 'tx^4 inv_p_gev']\n"
]
}
],
"source": [
"from sklearn.preprocessing import PolynomialFeatures\n",
"from sklearn.linear_model import LinearRegression, Lasso, Ridge\n",
"from sklearn.model_selection import train_test_split\n",
"from sklearn.pipeline import Pipeline\n",
"from sklearn.metrics import mean_squared_error\n",
"import numpy as np\n",
"\n",
"features = [\n",
" \"ty\", \n",
" \"tx\",\n",
" \"inv_p_gev\",\n",
" \"pol_qop_gev\"\n",
"]\n",
"target_feat = \"x_straight_diff_ref_abs\"\n",
"\n",
"data = np.column_stack([ak.to_numpy(array[feat]) for feat in features])\n",
"target = ak.to_numpy(array[target_feat])\n",
"X_train, X_test, y_train, y_test = train_test_split(data, target, test_size=0.2, random_state=42)\n",
"\n",
"poly = PolynomialFeatures(degree=5, include_bias=False)\n",
"X_train_model = poly.fit_transform( X_train )\n",
"X_test_model = poly.fit_transform( X_test )\n",
"poly_features = poly.get_feature_names_out(input_features=features)\n",
"reduce = True\n",
"if reduce:\n",
" keep = [\n",
" 'inv_p_gev', \n",
" 'ty^2 inv_p_gev', \n",
" 'tx^2 inv_p_gev', \n",
" 'tx inv_p_gev pol_qop_gev', \n",
" 'inv_p_gev^3', \n",
" 'tx^3 pol_qop_gev', \n",
" 'tx^2 inv_p_gev^2',\n",
" 'tx inv_p_gev^2 pol_qop_gev',\n",
" 'inv_p_gev^4', \n",
" 'ty^2 tx^2 inv_p_gev', \n",
" 'ty^2 tx inv_p_gev pol_qop_gev',\n",
" 'ty^2 inv_p_gev^3', \n",
" 'tx^4 inv_p_gev', \n",
" ]\n",
" remove = [i for i, f in enumerate(poly_features) if (keep and f not in keep ) or \"p_gev\" not in f]\n",
" X_train_model = np.delete( X_train_model, remove, axis=1)\n",
" X_test_model = np.delete( X_test_model, remove, axis=1)\n",
" poly_features = np.delete(poly_features, remove )\n",
" print(poly_features)\n",
"\n",
"#lin_reg = Lasso( fit_intercept=False, alpha=0.00001)#Lasso(fit_intercept=False, alpha=0.001)\n",
"lin_reg = LinearRegression( fit_intercept=False)\n",
"lin_reg.fit( X_train_model, y_train)\n",
"y_pred_test = lin_reg.predict( X_test_model )\n",
"print(\"intercept=\", lin_reg.intercept_)\n",
"print(\"coef=\", dict(zip(poly_features, lin_reg.coef_)))\n",
"print(\"r2 score=\", lin_reg.score(X_test_model, y_test))\n",
"print(\"RMSE =\", mean_squared_error(y_test, y_pred_test, squared=False))\n",
"print([key for key, val in dict(zip(poly_features, lin_reg.coef_)).items() if val != 0.0])"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(array([ 165., 160., 184., 192., 194., 215., 235., 258.,\n",
" 266., 249., 245., 284., 279., 318., 316., 339.,\n",
" 359., 316., 383., 442., 415., 457., 456., 520.,\n",
" 555., 561., 616., 614., 698., 743., 818., 883.,\n",
" 957., 1053., 1153., 1285., 1539., 1671., 1931., 2327.,\n",
" 2809., 3299., 4006., 4818., 5850., 6966., 8973., 11792.,\n",
" 15176., 22655., 61283., 26651., 5480., 2436., 1872., 1632.,\n",
" 1423., 1285., 1223., 1165., 1046., 1022., 928., 872.,\n",
" 811., 742., 763., 741., 717., 712., 635., 649.,\n",
" 614., 579., 544., 488., 473., 480., 431., 427.,\n",
" 424., 413., 398., 362., 349., 306., 297., 295.,\n",
" 269., 257., 231., 246., 208., 211., 221., 207.,\n",
" 174., 187., 179., 188.]),\n",
" array([-5. , -4.9, -4.8, -4.7, -4.6, -4.5, -4.4, -4.3, -4.2, -4.1, -4. ,\n",
" -3.9, -3.8, -3.7, -3.6, -3.5, -3.4, -3.3, -3.2, -3.1, -3. , -2.9,\n",
" -2.8, -2.7, -2.6, -2.5, -2.4, -2.3, -2.2, -2.1, -2. , -1.9, -1.8,\n",
" -1.7, -1.6, -1.5, -1.4, -1.3, -1.2, -1.1, -1. , -0.9, -0.8, -0.7,\n",
" -0.6, -0.5, -0.4, -0.3, -0.2, -0.1, 0. , 0.1, 0.2, 0.3, 0.4,\n",
" 0.5, 0.6, 0.7, 0.8, 0.9, 1. , 1.1, 1.2, 1.3, 1.4, 1.5,\n",
" 1.6, 1.7, 1.8, 1.9, 2. , 2.1, 2.2, 2.3, 2.4, 2.5, 2.6,\n",
" 2.7, 2.8, 2.9, 3. , 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7,\n",
" 3.8, 3.9, 4. , 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.7, 4.8,\n",
" 4.9, 5. ]),\n",
" <BarContainer object of 100 artists>)"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.hist(y_pred_test-y_test, bins=100, range=[-5,5])"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(array([[nan, nan, nan, ..., nan, nan, nan],\n",
" [nan, nan, nan, ..., nan, nan, nan],\n",
" [nan, nan, nan, ..., nan, nan, nan],\n",
" ...,\n",
" [nan, nan, nan, ..., nan, nan, nan],\n",
" [nan, nan, nan, ..., nan, nan, nan],\n",
" [nan, nan, nan, ..., nan, nan, nan]]),\n",
" array([-60. , -58.8, -57.6, -56.4, -55.2, -54. , -52.8, -51.6, -50.4,\n",
" -49.2, -48. , -46.8, -45.6, -44.4, -43.2, -42. , -40.8, -39.6,\n",
" -38.4, -37.2, -36. , -34.8, -33.6, -32.4, -31.2, -30. , -28.8,\n",
" -27.6, -26.4, -25.2, -24. , -22.8, -21.6, -20.4, -19.2, -18. ,\n",
" -16.8, -15.6, -14.4, -13.2, -12. , -10.8, -9.6, -8.4, -7.2,\n",
" -6. , -4.8, -3.6, -2.4, -1.2, 0. , 1.2, 2.4, 3.6,\n",
" 4.8, 6. , 7.2, 8.4, 9.6, 10.8, 12. , 13.2, 14.4,\n",
" 15.6, 16.8, 18. , 19.2, 20.4, 21.6, 22.8, 24. , 25.2,\n",
" 26.4, 27.6, 28.8, 30. , 31.2, 32.4, 33.6, 34.8, 36. ,\n",
" 37.2, 38.4, 39.6, 40.8, 42. , 43.2, 44.4, 45.6, 46.8,\n",
" 48. , 49.2, 50.4, 51.6, 52.8, 54. , 55.2, 56.4, 57.6,\n",
" 58.8, 60. ]),\n",
" array([-200., -196., -192., -188., -184., -180., -176., -172., -168.,\n",
" -164., -160., -156., -152., -148., -144., -140., -136., -132.,\n",
" -128., -124., -120., -116., -112., -108., -104., -100., -96.,\n",
" -92., -88., -84., -80., -76., -72., -68., -64., -60.,\n",
" -56., -52., -48., -44., -40., -36., -32., -28., -24.,\n",
" -20., -16., -12., -8., -4., 0., 4., 8., 12.,\n",
" 16., 20., 24., 28., 32., 36., 40., 44., 48.,\n",
" 52., 56., 60., 64., 68., 72., 76., 80., 84.,\n",
" 88., 92., 96., 100., 104., 108., 112., 116., 120.,\n",
" 124., 128., 132., 136., 140., 144., 148., 152., 156.,\n",
" 160., 164., 168., 172., 176., 180., 184., 188., 192.,\n",
" 196., 200.]),\n",
" <matplotlib.collections.QuadMesh at 0x7f92bc504160>)"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjwAAAGiCAYAAADjixw0AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy89olMNAAAACXBIWXMAAA9hAAAPYQGoP6dpAABqqUlEQVR4nO3deZxU9Zkv/qf2raureq9uaGg2F4QoQqIQZ4BRFn9mm0w0xolX7jWORjAS8GWCRgMaIK7JfWFixowjJjExN854k4lOBKPRcXBBRG0xssjWdHd1Q3dXVW+1n98fXkurPw9ybLptOP15v179etEPp+qcOrX0t87zfL+PzTAMQ4iIiIgszD7SB0BEREQ03DjgISIiIsvjgIeIiIgsjwMeIiIisjwOeIiIiMjyOOAhIiIiy+OAh4iIiCyPAx4iIiKyPA54iIiIyPI44CEiIiLLG9YBz/r16+XTn/60BINBqa6uli996Uuyc+fOom0Mw5DVq1dLXV2d+Hw+mTdvnuzYsaNom1QqJdddd51UVlZKIBCQL3zhC3Lo0KHhPHQiIiKykGEd8Dz33HOydOlSeemll2Tz5s2SzWZl4cKF0tvbW9jmzjvvlHvvvVfuu+8+2bp1q0QiEVmwYIF0d3cXtlm+fLk8/vjj8uijj8oLL7wgPT098rnPfU5yudxwHj4RERFZhO2TbB56+PBhqa6ulueee07+9m//VgzDkLq6Olm+fLl85zvfEZH3rubU1NTIHXfcIVdffbXE43GpqqqSX/7yl/LVr35VRERaWlqkvr5ennzySVm0aNEndfhERER0knJ+kjuLx+MiIlJeXi4iIvv27ZNoNCoLFy4sbOPxeGTu3LmyZcsWufrqq2Xbtm2SyWSKtqmrq5Np06bJli1b1AFPKpWSVCpV+D2fz0tnZ6dUVFSIzWYbrodHREREQ8gwDOnu7pa6ujqx248vKfWJDXgMw5AVK1bIeeedJ9OmTRMRkWg0KiIiNTU1RdvW1NTIgQMHCtu43W4pKyuDbd6//UDr16+XNWvWDPVDICIiohHQ1NQkY8eOPa77+MQGPMuWLZM333xTXnjhBfi/gVddDMM45pWYj9pm1apVsmLFisLv8Xhcxo0bJ01NTVJaWjqIoycaPb4Y+h8Qi//jZyDWV4Xvv77TUhDzBTF2yaTXIJbKuyD2f94+G2JvXnwDxDQzfn8HxK449RWI9eQ8EHs2OgVi0ZYyiFW9iB+hoUdwH5rfx39hajui0SyRSEh9fb0Eg8Hjvq9PZMBz3XXXyR/+8Ad5/vnni0ZokUhERN67ilNbW1uIt7e3F676RCIRSafT0tXVVXSVp729XebMmaPuz+PxiMeDH2KlpaUc8BAdg9OGAw+H24sxDw547D6MOfy4D28J7kOUAY/dj/s1+x52KLf1luBHXiaH+3UG8PPD7lPOgRvvTzt/Gn4WEZk3FOUowzrgMQxDrrvuOnn88cflL3/5i0yYMKHo/ydMmCCRSEQ2b94sM2bMEBGRdDotzz33nNxxx3vfzmbOnCkul0s2b94sl1xyiYiItLa2yltvvSV33nnncB4+Ef0/4Y0vQiz7TfzC0ZPFHHttKAExlw1nWI7zHoFYaWm/2UMERh4/ILX9xjI4IpsY6oBYexd+w0xMwMFN2OTxEdEna1gHPEuXLpVf//rX8vvf/16CwWCh5iYUConP5xObzSbLly+XdevWyZQpU2TKlCmybt068fv9ctlllxW2vfLKK2XlypVSUVEh5eXlcsMNN8j06dPlggsuGM7DJyIiIosY1gHP/fffLyIi8+bNK4o/9NBDsmTJEhERufHGG6W/v1+uvfZa6erqknPOOUc2bdpUlK/70Y9+JE6nUy655BLp7++X888/XzZu3CgOh2M4D5+IiIgsYthTWsdis9lk9erVsnr16qNu4/V6ZcOGDbJhw4YhPDoiIiIaLT7RdXiI6OQUXY71Onk3bmdz5iHmd2YgptXStGZwFlQi4TN5hOa4bFmInR5ogdj/OTRz0PtwTD8NYrnGdyC2wH4xxDbnfzfo/RLRR2PzUCIiIrI8DniIiIjI8jjgISIiIstjDQ8RFdHqSOYvwlWLY5OxiCdXkoZY1sDvVd05ZRE/G9b/BAK4SrNZ2TTO4tRqhzIGblfmxfV/9qcqIWbzmuu9zNocopHHKzxERERkeRzwEBERkeUxpUVERbTp0qmvnAuxvgje1jCwnYPXgVPBtTTSqd5W3G/mOD6iOjHlpqW0OnMBiNltSqqqD4/FlsXH23x+uckDJKJPEq/wEBERkeVxwENERESWxwEPERERWR5reIhGscVn3mJqu/hE/G6UqsJ6GOnBupmxvhjEgo4kxFqU1hJGHmtkTCvHKfJ9Sj+MKmc3xPwOvG2wDrfr7w5BzBvDQ9Gm9T/71HdwQyIaNrzCQ0RERJbHAQ8RERFZHgc8REREZHms4SEaxf70xu0Qm3PJPRCr3o41LQdqXBBzVGBtTiKLbSTKnT0QswuufZM/jhoeI2futkE7HnPYha0lbMraPNnqDMSSrVgnVLENHy8RfbJ4hYeIiIgsjwMeIiIisjwOeIiIiMjyWMNDREVKd8Yg1nYe9odSltIRrwdrWmo8CYgdzgYhNtnTBrFccvAfUXZX3tR2TRl8bPt7MRbwYB1TdwLX4VGW+pGOmbjGEBF9sniFh4iIiCyPAx4iIiKyPKa0iKhIrvEdiPlOPRdifRH8vuR2ZSFW5uqFWJ0rBrFkHqe5hysHP53b6VZaXyiOZDC9dmppO8SyRgRih5M49V1Labl6cEr7AvvFENuc/93RDpOIjhOv8BAREZHlccBDRERElscBDxEREVkea3iIRrHFZ94Csd6vYL1O12n43Sg1DqdplzuwbqYliVOyx7s7IKZNVS/1KnPfTTKUthSd2RKI1bhw2nxnNgCx3gwW52TD+HgdylR6baq/uQojIhoqvMJDRERElscBDxEREVkeBzxERERkeazhIRoltHodjSeOa+nY01i/4g/1m7q/sKsPYlqNjEOwFUQ6O/iPqEyHF2KnelshljRw/R/t+FQ5rBNy4rJDkjg1DDFPZJa5fQzA9XuIBodXeIiIiMjyOOAhIiIiy2NKi2iU0FpGaKmQGUt/BDE7zkCXVM4BsboSnOLdmsKO4l47dlXXuqUn+j24Y5NcFTil/UC6EmKtaTy+SV5sLVHlw1zVATem4fJuPC9amtC5+VWImcH0FdHg8AoPERERWd6wDnief/55+fznPy91dXVis9nk//7f/1v0/0uWLBGbzVb0c+65xYuepVIpue6666SyslICgYB84QtfkEOHDg3nYRMREZHFDOuAp7e3V84880y57777jrrN4sWLpbW1tfDz5JNPFv3/8uXL5fHHH5dHH31UXnjhBenp6ZHPfe5zkstxnVIiIiIyZ1hreC688EK58MILP3Ibj8cjkUhE/b94PC4PPvig/PKXv5QLLrhARER+9atfSX19vTz99NOyaNGiIT9mIqtyTD8NYnMuuQdifdPxe5C7C+8vm8ZalQo31rlo09LHujsh1p3HaeSZzOA/onJZfBwuG35RGufBY2nLYF1PNo/3Z/fg/aXK8Jhjk3Faf1hwWjqnnBMNnxGv4fnLX/4i1dXVcsopp8hVV10l7e0fFAtu27ZNMpmMLFy4sBCrq6uTadOmyZYtW456n6lUShKJRNEPERERjV4jOuC58MIL5ZFHHpFnnnlG7rnnHtm6dav83d/9naRSKRERiUaj4na7paysuPlgTU2NRKPRo97v+vXrJRQKFX7q6+uH9XEQERHRiW1Ep6V/9atfLfx72rRpMmvWLBk/frw88cQT8uUvf/motzMMQ2w2XOH0fatWrZIVK1YUfk8kEhz0EBERjWIn1Do8tbW1Mn78eNm9e7eIiEQiEUmn09LV1VV0lae9vV3mzJlz1PvxeDzi8Qx+/Q6i0aJ0Zwxi3WPLIdZfa0BsUu1hiHWksSVDnRf3odHqazKxwb+PnW68v0qnufS2y6asm2OvhVikKg6x1mwZxESwhkej1VkR0dAY8RqeD+vo6JCmpiaprX3vg2XmzJnicrlk8+bNhW1aW1vlrbfe+sgBDxEREdGHDesVnp6eHtmzZ0/h93379snrr78u5eXlUl5eLqtXr5Z/+Id/kNraWtm/f7/cdNNNUllZKX//938vIiKhUEiuvPJKWblypVRUVEh5ebnccMMNMn369MKsLSIiIqJjGdYBz6uvvirz588v/P5+Xc0VV1wh999/vzQ2NsovfvELicViUltbK/Pnz5ff/va3EgwGC7f50Y9+JE6nUy655BLp7++X888/XzZu3CgOB06JJaKjS0VKINYzBjuFe2OYvuqehLFoohRidRFcFPQMH8aSedxvSula7q9SWo+bFPRjawlNqQO36877IKZNS+9NYarK3omPI6tk5rRz71HmYgzscv+nN27HjYjomIZ1wDNv3jwxDPygfN9TTz11zPvwer2yYcMG2bBhw1AeGhEREY0iJ1QNDxEREdFw4ICHiIiILO+EmpZORENDa1EgC7CVQdaH61l1Tc1DzPCZ613XoxSrHEhXQizswHYTISV2PK0lOg4HIdbWgC0jAvYUxLqyOL2+1odT0A914/0ZTkzjp8vwPFfuyEAs1/gOxIhoaPAKDxEREVkeBzxERERkeRzwEBERkeWxhofIgrQWBdgsQV8fxteG34P667GuJ+BJQ6zGi60b8gben12OvlzFh3k9WOdilsuHj1irHerM4fpEWj3RrlwNxKoDPRDrCGHtUOl2XK9HW4cnDBGRzfnfFf2u1WcN3IaIEK/wEBERkeVxwENERESWxwEPERERWR5reIhOcuqaOwqPYF2Pc3K5qdu6y7HfVG0J1uv4HVhzU+vqgtgp7jaI7c/gej3JFNa5mJXL4vc5lw3XEyp3YB1OWxbX1zkr2ASxV/INELO7sN4pNgXX4SnBFmOSVdZKMvv8EtFH4xUeIiIisjwOeIiIiMjymNIiOslpU5LnXHIPxAKPvYQ3Pm8OhPI4g1qqQ90Q68tiuimW8eF2eZz7nsh7Ieay4TRyhwPTQ0PNa8M0nEeJ7cngtPQjSWxBocmU4uPIevh9k+iTxHccERERWR4HPERERGR5HPAQERGR5bGGh+gkY2qa8lfOhdCRb2K9jqZ3klJL0481NwEXtpYIOnH6usOG9StuZXq41uIhb+B0brMqwjjd/HAW2z5EnDG8rRNvq/E7sdanuhzrnaJph3LrwbWb0NqGsN0E0bHxCg8RERFZHgc8REREZHkc8BAREZHlsYaHyIJKd8Yg1l+FbSS6GwyIucIpiJX7+yBW549DbJynE2IhB95WW3MnZ+D3LyM/+BqeWI8fYmHlWMqV2Gv94yGm1ROVurBmaW+qAg8mjY8tXYabOVPHfry5xncgxnodomPjFR4iIiKyPA54iIiIyPKY0iI6yWnTlDV9EYzllU+AfB9OjfbV4PRrn9IZ3WPH2OFsKcSSeWX6tZJayvQP/iMq3Y3Tvu2CKbyMkkoLOpTu8G5M4TUnwxArC+Dj6CvFY0n7Ma1Xug/bcLTcWLycwI4ffhu2MdtRnakvGs14hYeIiIgsjwMeIiIisjwOeIiIiMjyWMNDdJIZWIcx55J7YBttWro/ivfVNRVrWmxObAWhTclOKwVAPTlsQXGqtxV3rLAL7tfmwOMzK1COtTTdeTy+3jzWzQTt/RA7bMO2FFpNkNpyowRrgmL7wxBLTFCmvu8r3ofZNhJm63qIRgte4SEiIiLL44CHiIiILI8DHiIiIrI81vAQnWTmL7qjOBDCt3HbedhGIo0lKCIluBaML6C0lvBgPUyNOwExrY2E14Y1LZpoNgyxfMph6raakB/rZly2HMRastjjodzRg8eirNdzZmkTxP67czLEwl6sCeqtxtqhiud8EOuvKt7vkW/OgW3M4no9NJrxCg8RERFZHgc8REREZHnDmtJ6/vnn5a677pJt27ZJa2urPP744/KlL32p8P+GYciaNWvkgQcekK6uLjnnnHPkJz/5iZxxxhmFbVKplNxwww3ym9/8Rvr7++X888+Xn/70pzJ27NjhPHSiT5zZ6cbOza8W/Z76yrmwjZa+ymN3A3UKeiqFbR+OJAMQO7WkDWJae4hEHtM0Y5xdEOtVpoKHqjC1ZFa8D6egN7gPQ6zeGYNYk5JeCzrw+NoyIYh5lZYb0XgNxDIdeHytfwMhCQ9oju7sx6nwkOYU/cOdqSoazYb1Ck9vb6+ceeaZct9996n/f+edd8q9994r9913n2zdulUikYgsWLBAuru7C9ssX75cHn/8cXn00UflhRdekJ6eHvnc5z4nuRzm4omIiIg0w3qF58ILL5QLL7xQ/T/DMOTHP/6x3HzzzfLlL39ZREQefvhhqampkV//+tdy9dVXSzwelwcffFB++ctfygUXXCAiIr/61a+kvr5enn76aVm0aNFwHj4RERFZxIjV8Ozbt0+i0agsXLiwEPN4PDJ37lzZsmWLiIhs27ZNMplM0TZ1dXUybdq0wjaaVColiUSi6IeIiIhGrxGblh6NvrfOfU1NcW67pqZGDhw4UNjG7XZLWVkZbPP+7TXr16+XNWvWDPEREw3O8UwFXnzmLRCLLZld9HvFNqyHiU/EaenJKqzXsSs1PNVl3RA7rbQdb6u0VfDasX6l3I51ODllinfSwCIjvxvvzyyHHY8vaMOp6lq9zt5UNcS0thSaMjfWMZWVYCzaj7VS0onnYGA9VncD3iy88VWIDXydHI3Z2jGik92Iz9Ky2Yp7xxiGAbGBjrXNqlWrJB6PF36amnCtDCIiIho9RmzAE4lERETgSk17e3vhqk8kEpF0Oi1dXV1H3Ubj8XiktLS06IeIiIhGrxEb8EyYMEEikYhs3ry5EEun0/Lcc8/JnDnvrSQ6c+ZMcblcRdu0trbKW2+9VdiGiIiI6FiGtYanp6dH9uzZU/h937598vrrr0t5ebmMGzdOli9fLuvWrZMpU6bIlClTZN26deL3++Wyyy4TEZFQKCRXXnmlrFy5UioqKqS8vFxuuOEGmT59emHWFtHJSKuR0GopsgtmQSy88cWi35tuxMG/3Vw3B8klsGbECGO62OPAFhSVLqz10dpIdBtY+3KaqwNiYQfW1/SmlMWDTHK78Jjzyne8sB3ra6Z6m/FY8tgKYmeqFmIlDmzNoYlUxSEWFVzXp9dVXOvjOYztNrTXSUmzufon1uvQaDGsA55XX31V5s+fX/h9xYoVIiJyxRVXyMaNG+XGG2+U/v5+ufbaawsLD27atEmCwQ+q9H70ox+J0+mUSy65pLDw4MaNG8XhGHyPHSIiIhpdhnXAM2/ePDEMnCnxPpvNJqtXr5bVq1cfdRuv1ysbNmyQDRs2DMMREhER0WjAbulEg2R2Oq/ZlIG23ZxL7oFY9HvFKSwtfdU9CaebO/swVXX6WQchVunFaeQNHmzJ0JoOQ6xeSVVFnLgO1u4MdijfnYpALKm0uTCrX7ltLO+HWMSBqaVm5fgqnHhegnZMwx2xYV+PuhI8B/vjuA+jW3m8vuJV5d1deHX7yBmY+qvcgS8MtQXFZpzSrmHqi052Iz4tnYiIiGi4ccBDRERElscBDxEREVkea3iIBslsTYPZWh+tXqe/Cr+TeAeUyXRNz8E29n68XbYGazqSOfwIKHViXUpbBqdLT1DqemI5rJEpVepcpriwHYbWWiLdPfhp6f29OI28I1sCsaC9H2JneQ9B7LXkOLytMpW+xoX1Ok0OrNcZG8TaocwYrM/JbC2+bX8tTgRxJLE+S6vr8cbwtltZm0OjBK/wEBERkeVxwENERESWxwEPERERWR5reIiGkNl6HW07j9Ie4PAMrMMoGVBeYrhxzR1RanhqIzHcLIvrvhxJY52Lx45tGjpzAYjVOLEuJazUyERzPohp9TWekLk2DRq7E8/LGR5sGeGyYQ1U0sCPxomudohFc1jbtLe/CmJOGx5LWy+u15NM4/MRnH2k6PeOQ2HYpnozPt9a/VfFNqydWnzmLRDT5BrfMbUd1+uhExWv8BAREZHlccBDRERElscBDxEREVkea3iITNBqbhzTTxv0bbNKvU5sMtbruLEkRrobitdSsSm1Ks5xvRCr9GHM7cD6lYn+IxDT1puZ6sV6mEnOToglDVxbRu1p5YpBzG47evPhY7Hb8bY7UmMgdq5vH8R6Dfwu6FDqcAJ2rDEKu/rwWJTbTgrjec7lsf4n3ldc72Q48HFFZ+M6PBWNgz93iVPDENvyxuDXndKw1oc+abzCQ0RERJbHAQ8RERFZHlNaRIOkTdPV0lypCE63NitVgWmJXN2ANEofvo29ZZhWORDD9gZjQpgz689jam2sG1NVFXZMkTXncKq1SzBtpsW0NFc6NfiPqEwfTvHOC6Z+NBVKqurdTBhibycxRTbZ2waxv/bXQazS3QOxzgCeA4+reEmA5iSeE0cSH2tiAoTE1ROGWKYEz8nWf10BsaFOVZldwmGob0ujF6/wEBERkeVxwENERESWxwEPERERWR5reGjUOJ68v9naHEcU6zI8SqzpwnKIZbFTg7i6sb4i11lcY+Mdg7U02pTsCj9uN8aPNTxj3Nh+QJuSnVammwdsaYhprRsyeeW2St2M14f3dzy01hcdSpuLBheeK68tA7GJbmw30ZSpgFitOwax/clKiGXz+B00NzDWiTVWmTF47spe9kBMazfRF4GQzF90BwaVpRSefeo7uJ1iqGtuWK9Dg8ErPERERGR5HPAQERGR5XHAQ0RERJbHGh4aNczm/RefeQvEtDV3JII1Ddp2WhsJZakbVV8D1o0MbCXhHrBOy9E47ViH47bjbbtzXoiVO7EOqc/AB5E0sHYo4uyG2ERnAmJbU7hWTXJfKcTM1oPY3Vg7dDiL91ftwePrzOFHY9LAtW6qHNptsbYrbeD9lTiw7mZ8CdZP7YoXt5sYP7UVttnfjPVAWm1OXvnE19qXaG1OkliaZPq9wpobOhHwCg8RERFZHgc8REREZHlMadFJxWw643imwWqX5GNLZkOspBnTTdp2sSk4tVzJJEmqClMwNqUztr+0uHO5NgU9l8PvMqcED0NM6+ytTUGvUlJQXhs+CLvgbb3K/R3O45RptzJ9PV+B09LNPo/5DJ4Dbep70I77yCktKCocOFU9qaSq6lyYlupWpr73ODB1eMgIQ2xSaXFX9YM92CLE5cPnIhXBqf+Sw8flPYzbxScrqckXMaZ1VQ804m6Ppy0F20jQUOEVHiIiIrI8DniIiIjI8jjgISIiIstjDQ9ZktYKwmwdgTaNvGIb1mUc+CK2h1Bmb6vTfjWpcVjD4vBibYbbVbxdOoM1GGdGWiDmc5hr+xByYF2PpleZlh5xaLU+WPuRVOZHa/U/klLqUExyB7DGyqXUHcWUeqI6Rz/EMkotknbIDiXYncd6Hc3M4AGIPdE+vej3Ehc+jxWlWF/UnsXvs26PUutThXU9+U483u6x5v5clJpsw6JhvQ4NJ17hISIiIsvjgIeIiIgsjwMeIiIisjzW8NAn7njW5BjqtXS2/usKiH36f90Lseg5WK/j7cD91rzQCbF3L8Xb5hqwRqS0JAkxw8D6imSquMVBJIR1M58J7ceDU3jsWOei1aDUO2MQO5wLQEyrVSlX9lGh1MgczgXxWEqxXsUsvxdvm1HWzdHWE3Lb8LzvzeDxRRxYtJVUaps8Nq2eCOun+pR6orC7+FwdSeJ5dzuVx6DU6+SV15PjDayv8WAXDUlMw8fgbcYNm8/H13vwEL6mMiV4LGHcrdq+4k9v3A6xoa7/YT2R9fAKDxEREVneiA94Vq9eLTabregnEvmg651hGLJ69Wqpq6sTn88n8+bNkx07dozgERMREdHJ5oRIaZ1xxhny9NNPF353OD6YinrnnXfKvffeKxs3bpRTTjlFfvCDH8iCBQtk586dEgziJWY68ZldPt6s+YvugJhHmRqrtYLQ9pv95hyMYWcA6W7A6dZdU8MQ84/BeelepR1EVmkHkc9jbExZrOj3cUqH7d391Xg7TwxifqXVQoMbW1BoLRTCdkxLuZSp214lPdSZx+nmWrrJyONtzdKm6/cqKaPxTjzmA1k8lgo7TtfvVtreB5XzotHSV4fSmA6aUdpU9Pt/ZyeZuv8zIlGIvbavHmLpSUrasB/PnU05Tzkvvo57cRfijeHzqL0fteUktCntx/N5QaPXCTHgcTqdRVd13mcYhvz4xz+Wm2++Wb785S+LiMjDDz8sNTU18utf/1quvvpq9f5SqZSkUh98kCcSWONAREREo8eIp7RERHbv3i11dXUyYcIEufTSS2Xv3r0iIrJv3z6JRqOycOHCwrYej0fmzp0rW7ZsOer9rV+/XkKhUOGnvl75ykFERESjxogPeM455xz5xS9+IU899ZT8/Oc/l2g0KnPmzJGOjg6JRt+7JFtTU1N0m5qamsL/aVatWiXxeLzw09TUdNRtiYiIyPpGPKV14YUXFv49ffp0mT17tkyaNEkefvhhOffcc0VExDagBsAwDIh9mMfjEY8H8+M0OGanZx7PdHPNnEvugVjpzhjEnMoUdFFqAdpnYL1F7xfOhVjwXby7qu1Yv9CyAGO2JH6HSPbjfh1KPcRZY5pxx4oSV/H09bBLq6XBKc8lDpz2HlRiiTwWLDUo09J7lZqbgLLfvOB7NaBMBdfaPhxPDY9DqZPS9rEliXUzc70xiLXl8bGllVqkgCjT4W24nfYcTfa2QezV7glFv08sOQLbZJXjeCeBdVyRKqwn8zjwnHT0KksOtCjLBiTx+clG8P4SE/C10nU6Tmkv+2sZ3p8P91ETHXytj9nPLrOfU5y+fvIY8Ss8AwUCAZk+fbrs3r27UNcz8GpOe3s7XPUhIiIiOpoTbsCTSqXkr3/9q9TW1sqECRMkEonI5s2bC/+fTqflueeekzlzcCYNERERkWbEU1o33HCDfP7zn5dx48ZJe3u7/OAHP5BEIiFXXHGF2Gw2Wb58uaxbt06mTJkiU6ZMkXXr1onf75fLLrtspA+diIiIThIjPuA5dOiQfO1rX5MjR45IVVWVnHvuufLSSy/J+PHjRUTkxhtvlP7+frn22mulq6tLzjnnHNm0aRPX4DkBZRfMgtizT30HYlrOW2v7oK3TkTg1DDFPBPcbG4P1AXZluRF7GusDeiZgfU33mViXIGm8QOoZ0wuxoA/rZLT6kp4s1vpMVuo1OjP+ot8rXdjeoNYVw30qa+RUOXDJhj4D69/ac36IaSJKPYgmp9T1OGx4ToKl5ta00fQptVNepc1FgwvbgaREORalnKhFWYdHazfRq7SbCDvwtbInhctzTPYX1/X8tbcWttHWP5oUxNdOW7IUYok0Pt/dXcrz7cfnNjkG92uWpwNPaB+WHanvW611TOpUrMfT/sBpnz/a+j+a47ktjbwRH/A8+uijH/n/NptNVq9eLatXr/5kDoiIiIgs54Sr4SEiIiIaahzwEBERkeWNeEqLRo7Z9SNMr7mj1PAsPvMWiJmt1zlyBtY9OLH1k3RMV7bD8ghRyi0kX4JroRgOrN+w9eBbpWpiB96fUptSF8Q6Gacdax/yBt62P4+1SGMGrBHTlcU1UyZ7cD2X7rwXYgGll1bYhnUzARs+P2GlDimmrJujbedVak7SBq4lk4gOvlZPW+tIe7yajIHHnFZi5Q7sr6Xfn7neYad6WyF2OFt8Dk4P4DavxhsgFnRh7ZjXgc/joWQIYpPG4esno6z1E41hTVAqjjVB6bBW64Pft7XeXFps/1qcpVtyCPfgUT6TUiE87/1VeCzaZ5dWpyibX8XYEOI6P0OHV3iIiIjI8jjgISIiIstjSmsU06ZTapdPe7+C0z21S8XHQ0tfZXGleDWmzDSW3nql7YN2Vd2NwdpIDGLRNrzsH3DjfNmgG1Mm8RSmkiaUYjrMY8dpv6k8vkXtA6Zv17q6YBvNdA9e8/crJ68pG4ZY3o45QpcNH2udA79DxfLmpqq7lVYL7nJMy5iVyyptPpQUYcbA7TqU10odZnSkGw9ZXMr0er8NXytVbpy+vj9TAbEaZ3E7iAPpStjmzFLsF3igH7cLKW1IplZg+iqWxvYiYTfe9kg3plMrxuI0/w5lO6MOQpLtxPeKtvyDluYSJZ0cm6zksRVpk5lTTxSfM62NjZYO+9Mbt0PMTLpqpFpcDHWroBMBr/AQERGR5XHAQ0RERJbHAQ8RERFZHmt4BsnsEuNa3vZ4aLnhgbRl1zXa9PAKwcfgiWMNhlZz441hXr19RjnEUhW4nasbj6+/RimkCGLNiaHUarjbsFZDJmMdSk0ZThkfWCMjIhIMY/2CVocTS+OS/JNDuMR/wIH1LyVKTGsb0Tdgfn2dUsPT4MJ9au0cOpWWEUEb1s0ElfX9O3M4/dglShsNpSVDRpmC35vH+8skzX1Eae9Hz7+fATFtWnpSmR7uEHyd9Rn4PggrXxlbskodiqIjh3UtWuuLgYIOPMd9GTx3VW58U2ntRZqSZRBLO7FgqdSJ+z216jDEdkSxPUZ5CU7f700py0lU4Xs0n8eTnOrH93dnSDnmt3C7/lp8fyulctIxE8+LtnyGNs09U4Kv7zmX3AMxrRZy/qI7in53Hse0d7N/p7S/GSdTbY5ZvMJDRERElscBDxEREVkeBzxERERkeazhMcHsegRaHtTsbbW8auLUMMQCyj6iy4uXWa+MmFsjJ+vDPHPz+Vhzo7Vz6D4FFyDp78bxs1abY3b5eFc11s1oXC5l/ZoA5u61OoL+DG5XHcC6mWljcTn/tiQuq1/hwRqEsV6ssenLYf3CGA9ul1LWjZnh31/0+95UNWxT5cTapCqHUh9hHLtmREQkqbRGqFFqSYJ23C4v+NwezuF2QTs+35XlygtIodUbTPzNOohFlTWG6r0HIKa1w9DWeelVNvPa8PVYp9S/JJU6prfT+Fy6BtyfX6lD0lpSNGewBuWvvbj4zUQf1nvtyOF2PcprNpnDPyGfHbcXYod6wxAr8+H78a9v10PMH8H3Yz6Frx+7Bz+TbPPxttkurFuTPnwcR2bg89N1Or4fXd24nVLyJlKtFLMJntPq7cU3PvJNbKMR3oM76BmDx1axDT9TzNbrmP3bpdHWbtvyf1aa2sdw1g7xCg8RERFZHgc8REREZHmjKqX1xdD/EKftg8t+Zi/jaR1yzU4V1FJVbedh2khb2rz+P5Ul2pWp5AO7gEfPwcukZe/gdNTuBnOpJcOlxJSWDLYsXmbun4SXXm1KF2u7EqsM4eXoeB9O+XW78FK204H3V+7HS+jaFHSvA1MS3Rnc7/TSZoi1K09kVwYvoU/04XTeCgc+XpcTj2Vge4R6N75OHEoaSevGrgkqLS707fD5dihpn4yBz4V2fNqUaa37vEZ73xr/Gy+rR5wx5fjwe19anYKOH5cu5ZhdgrfVpqprbT28SguKjlzxa+o0t5K+0lJ1Llw2Ie/H89mWwbYp04PYhqQ9jSncEoeSWlFSX9p7qtyD78fuye0QGx/EtMybdky5VQcx/XnwCH7WupqV5Q/KlLYmMWU6fAQfhy2rTEuvx+3sPfh+MZzKUh4D0lyhvfgaM/sZn4pgLx6PsvTIwKnwIuYHB1r6KvDYS6Zua+ZvcNZk2t0MXuEhIiIiy+OAh4iIiCyPAx4iIiKyPJthGNr8S0tJJBISCoXk01/6gThdH+TSS3fGcFtlKri2THjPWIxpOdT4RHNjyiyuMi/+qLIdpp9hqXRtmXSNVqqRDeJjCNZhbryvH3PIdmUqb0UpToVO9OODKPUpS/4rufGaEjyWzj6skdHqdXozeMyfKm+BmNbiIeTEKdMlyrTsnpy5tgK1rhjEtKnkeeU7iVbnMVBYmeLdkccX2RQX1v90Ky+geifWOOSUj46kyY+TjFKbo03Jvn7T1yG2/5obTO1j/L/eCbH1f/tvEDvDja+BkPLm0I45rzxcu1J25FVqxTLKbTuU9hoDa6+059FrwzoHrVXH4SzW4Wh1Up1ZrP2oVVqYvNE3HmI5pVZMe//895GJEKvz43sglvZBTKtHyyq1WO29+DhcdqUmpg3rmFw+pV5H+YzzKMti9PYqz2McP3/Ef+x6OXsH3s7TpTx+PE1StV2p3RyL56m3XqmpS+I+wrtxuz5luv3AqfUiIrHJ+Di0v2dj/lz8mZTNpeTPO+6SeDwupaX4+v04eIWHiIiILI8DHiIiIrI8DniIiIjI8kbVOjw9dXZxeD4Y43Wdhms0KCv5ixPLUNR8acd0ZT2PMOZQnT24XaYOc57pMD49SpoaWjDk2/HgvLXKg1DkU7hPh7KmjceDNQPaejhVflxbxuvE2/pcGPMr22m5+14lh17pxcc7PYzrl2j8ytoiWr2OQ/C8DFwjR0RksrcNYnVOrIdIGnhbrV4nN+B7SoNyX01ZrEnQttPqdbS1ZQ7jUyuTnFiv1JHH85RW6noyyvO4M1mLx1KB92eWzaHUGCnPz/5sBcSmu/E568vjOioTnPg49ihlGVXKeitvZ/FYgkpPgli++Dxr9To55YOh1I7nLmbDereIMw6x7pxSN6N8P27w4HpSmoGvWRGRSUFsaVHixMev1eb4HHgOAkrtnbbWT2M7vs5Ky3A7l1K31p9S/kAoaiqwFqm/FG+bSOB5dnuKX0BJpY1GshpfZEYMa2S6TlPWEirD16JWz6mtTaS121A+GmXf3+MxB/bjdloLjgNfLP67nEslRXbgdoPBKzxERERkeRzwEBERkeWNqpRWqlLE/qGrw9olO1eX0h6hRlmm3620W/Ap3XqVlgm2Orwc68ji2NNwKy0TlPsbV1k8ja/Dr8xxV2hppLQPH39DCFMhJUoL9WQOL9mGXDgd1evAy+pj/biP9hS2aaj34XYNAXwZT/fj0vi7khGIlSv5yhoXXuJ32fC50O5PS1+VKy0jMqK0ZVBSSeUOvNTuluJj2Z2pgm20zuNe5f6DyhRdrYt3UJlq3Z7Hfbi0qdt4U7Wdg3aO83lzrSU0Rg5vO7DzuIhIvROn5ntt2tRqJTWntMgYr3yqJpX2GhV2fLztOXxvNLiKX6OdSofyhDIFXdPgwjRSZx6nbo93Y6pKm9KeMcz9CfEobTRKlQ7y2mtAe88HlTyKdtuUkrI9t/YAxA6n8ByM9cUgdrAPO9Br7Wm6kpiqCnuV94vyGij1Fj+2d9vxNeFU/jYEGmIQS9biZ3K+Ff8+aE+jthxJ+o0wxFLjlLxUP36+pSrwPGXD+DgGtuDIJ4du5Rxe4SEiIiLL44CHiIiILI8DHiIiIrK8UVXDk67OiP1DNSqhKqytSDiwbsRRijlKl7LEeLgE6y0cynZBD+afO/sxT6vlfEvdWDvTkSy+rXY7zdQy7F3hUGoS9vfi9P20HXO0Gq1Wo8yN5ymrTPmd6Md6A69SCxBUDuWdfpx6qi1vb1fqWrRl9TMG7uR0L7Yk0MSUugy3Um+g1ZdoSwK054qPr8HZAdsklaS8NgVda6Gg0epwtHodr02ZQmvgPvxK7YJWO+X3HbuNxtHY0spUbaX2Q2ubIcpjcyixWB4fW9iO5xnftSI55f7GKDVlTdoaGCZu924mDDGtdkwTy2GdR0R5ftLK+6Itg0siaFPpG7z4/tZas2jnyau8V7T3aFipIdTqevqV+kOfsjzF6aX4mXmgDz8fp5bhuWruC0NMa4HTP2C5gtqJeJ4mhvA939yD571bqdELTlSW2FD+TvWl8ZzYzsC6HkcGz3t5NT7+jhh+rmpXXBzh4neLrW/wS1OY2R8RERGRpXDAQ0RERJbHAQ8RERFZ3klTw/PTn/5U7rrrLmltbZUzzjhDfvzjH8vf/M3ffKz7cJemxOH/IB9sKOuN+KvMtWBwKrUVvSlc2rvUh9n7nrS5NTNa47juhb8Cc7cV3uI8cIUHH4OWo9ZiWluBsBvz4ON8uHbJwX7MZXuUGhFt3QotT6+ttdGUxH2cHsBaGq0eJKgsta+1c9BqAULKejgBOz63O5N1EDtVqfXRWhxo64hotTgD6yG0epi0UhM1VllHZmcG60OqlPOutYfQalVySg1YwI7fq1qUdae0GqbEEXNrSmm81ficRZX6kpynHWJxpWjJrjw/XmWZILN1PR6l9YW238CA51t7TRxWal+qlfWfBtZ/ieivu7QDXz/a85NTPkNP9WALl1ge69g60/jc+pX3lEb7DLErax1llffyGA+u61Prxs8L7XOgWznPWk1ixI2tJdqS+Hk+wYef5/EB78m+LP5dSStrMYWU2tCk0r6kzKfVUOL7sT4Yg9jurkqIVYewrudINz63gQA+tyVejEV3Fq8rlu8f/FpcA50UV3h++9vfyvLly+Xmm2+W7du3y9/8zd/IhRdeKAcPHhzpQyMiIqKTwEkx4Ln33nvlyiuvlG984xty+umny49//GOpr6+X+++/X90+lUpJIpEo+iEiIqLR64RPaaXTadm2bZt897vfLYovXLhQtmzZot5m/fr1smbNGoiXBfrFGfjgsqc2PTzWj5f4430YGxNWptAq3b3jKbwEWhvAAVhzL15qn1qObQqaesIQG3gp851YNWxzWhgv2++J4+XJGqW7udahPKFMldWmgGqpKk1amSranApDrN6LqbT2DF4q7svhZeDTfHip/UgWlyHQOqP3KUv3a1NtJyrpkaAN76/bwPPX4MLL21qKMTrgmGN5fKzatN09Gby8Xa9M1ffa8HtQTlndXUtfldjwWLQO6tp0eO18OgMYM6s/hu+9cie+vndmMM0TUdJB5UpqLmTHffTk8TL9AWX2v9bqw6O8XQa+BuzKedKWf9DSPto5fjs1BmJVTnNfErV0WKeSNtNSx1qKWbs/jdbWRfucGuPG9FVnVkmlKZ3W/Uorb7PH99cePD4t9aW11zgwYBkQreP7jiN4/7VBfM7OrmqC2JbWCRCbEMbP1R4llaa1I1LbYyilHNo0937lM+m0M4szN9nelAxVLueEv8Jz5MgRyeVyUlNTUxSvqamRaBTXRBARWbVqlcTj8cJPUxM+6URERDR6nPBXeN5nG9DMzzAMiL3P4/GIx2OuMJiIiIis74S/wlNZWSkOhwOu5rS3t8NVHyIiIiLNCX+Fx+12y8yZM2Xz5s3y93//94X45s2b5Ytf/OLHuq/DHUGx93+Qc7dVYY5bW+o71oNTKjXtfZi79rswD/xWO7Y9iJRi/jWv1L+MD2JOOpb2HXOblDKN0aEsO17mxintWp5Zqw9wKA0I/Mry7F1KDr3ChfvVloDX1LpiEKvy4flsyZRBTJu+rgnasdZFq+vRpu62ZHG/WosMbRpsr1KfU+EoPlcBZZ9J5b7qlOdRq80pseM+W5U6HK/yfDvEXM2Nw+RM03w71siYpbWOKVWeR61Ww68stZ9Xapb68nhbrbYpqNQ5hJT2LG3KEzLwuQwrrx2tjuK1lLkvhKcp08jt2nOr1BztTmMtiaZcqYnanmqAmPa+0OpmQk78nNZqgt7qVeqT3HgsGeWzpiWN79sjylT6eh9+3mqxfqWu8I0YHt/A1hLasiBTypS2HErNzbvdWKeptR7qyeBtteVTtJqbSACnpWtLqqiUkqjW7uLb5vrMLVVgxgk/4BERWbFihVx++eUya9YsmT17tjzwwANy8OBBueaaa0b60IiIiOgkcFIMeL761a9KR0eH3HbbbdLa2irTpk2TJ598UsaPHz/Sh0ZEREQngZNiwCMicu2118q111470odBREREJ6GTZsAzFOzOvNidH+ShW/difvNIF+bVbadgzvfd1iqIuT1YS5H1YV14T7dSl6DU8HSmsHZIy6EOpNXXdCVx3ZcyJZfbm8W8bUcKa5NKXJgv19bh0epSmvtxzaHJgcMQa/Binnp/UnnOlHVUOl3mWhJoLSNalVofuwvrF/JKzb+6/L7JuQF+pX7Baxy7NYddqYcJqnU9uKFDqTfJGJhYd6nrw2CwT7mtJprD11lbFl8X9mp8nZmV6ML3j/ZclNqwDmeMA9dn2pHB18oZLnwv789iTYN2/rrzWiuRY7c6eUdZdyriwM8Pre6sO4+fA1rbB69yTvyi1Csp6/9o7/kDOWXNL6V+TquLU9tNKC04OrP4OaDVH2oOp/H51tYQ09YL69Fey0obCbey9tSRPvycsg94T+5J47mbrNTw7DtSAbFwAF8Dmgql3YS2Jl0+j+fkjYNYh+T14WtFa8eU6MTH35sr3ke+/9h/88w64WdpERERER0vDniIiIjI8jjgISIiIssbVTU8njf94vB8kHPvbcAceqZSaXpzGHOZ4sPbYtZSJOnE/OOH64jet7cN87QeD9Z0+JRYb39xDllbv6c9jjnqzj7M3U+pwNxwRz9u53cq6wvFcH2hUjfm36eUYL+pvX34+LV1eLRYtRtrJrTalLjS/+uNDM700/rvpJTaCq3+J2Mo6x0pBQeJHNZ+7DawLmyMMwax3IBanJhSRxFR1inRzon2jadHqRuK5bEuQ+sF5VL2oa25E81ijYO2Vku2d/D5+4oqfF3sT+M5DtvxXOUyuC7UKU6s1WjP4TFr6+scyuJJqHHgZ4hWYzSwtqtDqV85rPSvijjw8fcqNTJaLVpaeR2r5055D9iV18WuJH42aP3utPqfcR7sMdem1DFp6yltOYx9o86tOgAxrV5nXw/WxHQra9O09Jhbc2ZiCB+HW3kNDFwfzePA9+O25nqIZZL4nEU78DPPcOB7tFWwbtHWj8+Fvdzcmjh9zfj3RhXEv2f+/cWvi1zKXF2gGbzCQ0RERJbHAQ8RERFZ3qhKaWX9IsaHMgnObhzvZf14uc+VwO2cLXi5r38SXlLtP4RTbXNB5Zq0cpmx34/7TfbjZWDHgBTZoXa8PDm2GtM06Sw+/bs7MLWkTR1MRjDV4FQuz5YorTWOpPHye1ZJmRxWtnMoU+5fi+PjnaRMc9eWqNeW0Ncul7em8Xk8w98MsW4lVRV04NRYbcqwlg47mC2H2DhnZ/HtlO8tXuU8tWTx2MY78RJ1RklLmU1fBezaNGXc7tMeTJ3+e8+pENMuqy+wXwyxzfnfQaw/ha/RPqVVh3be/TZ8frqU9houm/Z48VyFlFYVfUpbj4ySnuzOF7//tBSclq5szuFrVrttVNnuQBrbUkTTYYg1ePB9pi2Lob0vtCUwIh6cqq61h8gqqa89cfzsmlSKaaR3e3A7bdmOmBIr9eJroC2On1M+L37uacuMGMpSEUcSxfdnV1oApaN4X84+vK9sjVJokcXXmE35+6PdXy6s5Kc78T1lV1K4gSaMdU8auinnZvAKDxEREVkeBzxERERkeRzwEBERkeWNqhqe8rfz4lRaBHxYfKIyLbQd85tZH+Yj+2vwdNqUXGZwF+afkzjjU7SnJzMGay5ce4pzzbnJWH9wcDfm5A03novSSpyOa3dj7cvhGOat/cpy4i2HwxArC+M+NC4ld51U6o6mKMust6WwDsdlx8cx1ou1Tdr09TJlmncspy3Jj9MstfoFbQp20sBcuN+Gz3fHgJqOCjuez7fTWNc0xaU8VmWp+FgejzesLe+vpPP3ZzEnP9GpLKmfw+c2oOzDUJZ/0Op1tLqevp+eA7HyqXiuIspzEbbj66wth8fiV15TnTlzH6vabbVWDeEB9V7a1G2tJUVAaQ+xP4P1K2ZVu7B9hdYKol2pgdO0p3DqsrbsRK8yfb0ng/tVp4z34bH0KNu5lPpDTawPPxu82lIhfbiPv0bH4n7D+JrPRov3obVXUUrqJFOB77Pyl/E4lNIpUT4uJOfFv3vhLfjZkMTZ+zL+950Q65iJO3G+fexrLjltvZdB4hUeIiIisjwOeIiIiMjyOOAhIiIiyxtVNTxPP3ydlJZ+kNPV8v7ylXMhFHjsJYjFlsyG2IQ/YA61Zwzm1iu2YS1F8/m43oqyRIr0KQnYASvPi2M/5pntTszHejqUtYQ6cE0Oh1KHlKnDxGpSWWsk34OPv0twXZ9x1ZjzzSr1DPk03p+2nZa7r/NjDcLOHqxtCionPpbBczrWq7QQSIYhdkZJC8T2pCIQq3Ti8Wn1GgPrJqqUGpRyZcn/bak6iJ3mboNYjbJukFb5VuXA2oqwVtOSV9Y/suFrSqtrcgawPkKj1fVM/M06U7ftUGqW7DY8Bx5lfZmMspaOtv5NgxPf80mTLUF2Z/CzYbC0day0tYnU1ixKLVq/cluf0uJB2057377Zga/R2hJ8X3QksX5ubBDX8GnrxTohrf6woRrX6+lqw9u6g/jYMv3Kn9E+pZ4zo3yOxpSCGm/xu630eXysWh1Ossrc9Qvt74p3n/JCVpQ04+Pv6cfPZK1eZ+u/roDY4jNvOeY+szlz7SzM4BUeIiIisjwOeIiIiMjyRlVKayDtMrh6iW36aRBy9ShLcW9+FWJhZb+pBbMgNubPmNLRpCJ4ObblvOLLxV5c7V3SZXg5tXq7cnlSScHFpuD9eQ4qS/SXKJ3h8aZqeuRAHuc2GsplYcnh4+gJYlfoTqXDe15Zxl1rfeFU5nyGXTjVP5bBfZQ48P66MpjC07ti46XbtiymR2qcxZfu92fw3LmVNhp5JYXQl8fnLK+km0J2TNdqLRSShjJ1W7m/FmXqtjbNP5fClJ5Z+Qw+Xm3qu0ZrzaHpy+M+JjnxvVzpwO3eTmOKyKG89gYudaB1PNdaRsTyeD61FKlHWUrhQBanr2u3TSnP485ENcS0juJBNz4XZT58HD0Z/KzRNDZhOiyfxmP2BnG/7+7E27qU1kPuXcpnHL691Sndwf1K6wcP7iN4qPg10K8sWaJkCNXPfd9hfD154vhe1v52ZZW/U54opp1F8G+Sdn8LNiolJCbkDHNpbTN4hYeIiIgsjwMeIiIisjwOeIiIiMjyRnUNj+ZPb9w+6Ntq09zN1glp+9Xuz9mI+50QxRqjgdrOw6mtscmYCHb2K8uJ7zbXWqO7AffrSOJ2zjZl+fhJeFutXscewhqZAx342OxKDUZvv7KkvBNrTgIeZeqpUqsxp2Y/xDqVup7xPmx90ZTEY44rNSyagdPST1GmlvsHrlUgIk3ZMMTSJtsUeG2Yu4/lsRZAq8/SvlVp9SBhZSq9KHVXpim31epfAkoNi0Ppm5FTpmqXK0sx7FZeAyL42ALK9O2kge+N7nzxkgh7U1gjo7Uv0eqBtLYpiazSSkSpWTvQh69ZrS4sqdT1aO89u3I+D0SxHs0XwJqb/l7l/pzKq68HjyXbjq9vl7L0hlYTo7Er9TTuLry/8B58vvWamGKBx96BmFZfo9XNOJT601wj3p/m2ae+Y2o7jdm/cWYkEgkJhbCWcTB4hYeIiIgsjwMeIiIisjwOeIiIiMjyWMMzSFqOUqvX0Zit1zFb/2MmJ1up1P5o+d3EqeFj3peISHjji7gPZTutBUdsCua3g3/Fl2IaVycX9y6lBmEa1mDYHFgfYHcrLQ7syloyWTwWl9Iy4WAfHmDYjbUPW2MTIHZ6sBVi7Rlcq0Rbpn+g53rxeax1YSuDCifWC2REWadEqWlJK9+NXILnpEZpN9GW02pVsI5ibxprU2xaXYZZaXPf5/zKc/uuUofT4OqFWEapQylV1vppV+qzwkoLjx1KfU7pgO3GurENwpt94yDmd+BxZAxcM6XUicfx1wS2Pilx4f292jQWYuESrFfKZPB1FjfwvWx04+uiT4lpbRqcMaUVTRhfP3nlr54Hl/ISb0xpw1GtrOV1CLcraTa3doz2t2D+ojuKfn/2DZN1oMrfC7V9kkL7W2P2tmbv70TAKzxERERkeRzwEBERkeUxpTWA2dTS8Uxf1xxPOswMs6mwgJL66lU6yGsxrau8Nn29ajteZlZvq0y91KbSu9vwkrcbGydL3xjcb7/g9Na+kLkU2eHDmILylmD6ZnoE01c7EriU/SklOL28J4fHV+4sTq2ElOncXmVa+uEsHm+V0qE9bMe0nKZbyw0IPn6XMrNcmw4fceKTZmSP4zuZsqyB1loipq3Tr/Db8Jj19hp4XrQp4jFlKrnWEqQ5U5w6bU2HYZugkh5rT+PzfUhJwx7ux94IDiXVqy31MK4S22j0pvE1azuI6SubsmSFTUlBKTPf9eUuMOMoeSfeWJtunsVMn5qWKmnG7bR2PNp0c9NLj+AuBn1fx5NaOlHTUseDV3iIiIjI8jjgISIiIsvjgIeIiIgsjzU8A4xU3nKo868DHU/N0VAuEy6iP1atXicVMvfy1HLy2pR2m7J8fL4EayakD/dr+LGNgi2OuftwDdahpPNY+6HFXupogNjUENb17O2vKvq93ot1FFqbihoXHlvQhrUfvUpNS175blSu1A5p36A6lVYDFQ4suGjJ4pN2XNPSFS4bPo8RZfq2KLE9Gay5qVJqZzQZpa7HrjTi0KbrD6w7Sim1U6k8FqE0J8MQ68nicxt042PtVupwtr9bDzGttk3jVN57OS/e1q1MLc+U4HZlf9X2otxfN+638v4tEDueFgxhLajcn1mD/dy3Ys3NUOMVHiIiIrK8ER3wNDQ0iM1mK/r57ne/W7TNwYMH5fOf/7wEAgGprKyUb33rW5JOH3sxNiIiIqL3jXhK67bbbpOrrrqq8HtJyQeXZnO5nFx00UVSVVUlL7zwgnR0dMgVV1whhmHIhg0bRuJwiYiI6CQ04gOeYDAokQguYy4ismnTJnn77belqalJ6ureW7fknnvukSVLlsjatWultBTXmThZDWX+dajrgbRc9sDlz0VEnJtfNbVfsy0zRJRl8Hfi+hZaOwzPDqzVODQP6xcMZZ0ObY2PXAZrK7T1QTp7sHamN4X7rQhgDUsyi/vY04MNO7T2FQNFPFivkzPwce3NYCuDiDMGsTplvZ6McgIyynozXmVtmZzgsbRlQhAzlLV0zLKH8EqwthZR0sA6qaTy2MLKGj4deax1CSrtQA6myyGm1VmVO/D1vSdV/PmorYeTyGJ9UbkLa6yae/Aca6877XXs8ODzmO1V2j4odVfZEuV1cRjPsdZJxR/F10DFNqxbM1tzY7Zex+xn5onSgsHs5/5w14ueyEa8hueOO+6QiooKOeuss2Tt2rVF6aoXX3xRpk2bVhjsiIgsWrRIUqmUbNu27aj3mUqlJJFIFP0QERHR6DWiV3iuv/56Ofvss6WsrExeeeUVWbVqlezbt0/+5V/+RUREotGo1NTUFN2mrKxM3G63RKPRo97v+vXrZc2aNcN67ERERHTyGPIrPKtXr4ZC5IE/r776Xurj29/+tsydO1c+9alPyTe+8Q352c9+Jg8++KB0dHzQDdhmw8uZhmGo8fetWrVK4vF44aepqWmoHyYRERGdRIb8Cs+yZcvk0ksv/chtGhoa1Pi5577Xn2nPnj1SUVEhkUhEXn755aJturq6JJPJwJWfD/N4POLxYG59tBjqfOzx3N/x5LcloqzNE8G6Hq0Pl5ann/Qo7qJjprJgj6KvGr8bpLEcQjJ5rH0ITe6AWDSOtSRBH67pUu7BOgyfo7jHT2NXLWxTVdMNsdYMPtbTvdgcqDmD9SY55bvRGAfWCWn9tYJ2rKfKKcu3aOsEmV3nRZNP41pHmr2ZMMS0NYYyyro5DiUWU+p6WpRzr9XrvNk/DmLVruKUfLfSg6tbWSPoSAp7ZMWS2NMqnVHWierE+xOlhsfVgc931o/PWck+fP1U7sCCHW3trdKdMYhp79utb4zM59SJUv/Cep1jG/IBT2VlpVRWYqGlGdu3bxcRkdra9z7AZ8+eLWvXrpXW1tZCbNOmTeLxeGTmzJlDc8BERERkeSNWw/Piiy/KSy+9JPPnz5dQKCRbt26Vb3/72/KFL3xBxo1771vOwoULZerUqXL55ZfLXXfdJZ2dnXLDDTfIVVddZakZWkRERDS8RmzA4/F45Le//a2sWbNGUqmUjB8/Xq666iq58cYbC9s4HA554okn5Nprr5XPfvaz4vP55LLLLpO77757pA6bPoLZy6dmp7SbneauTWk3O0VVZs6GkKsHL8nnx2LNWHg3btd1Om53+BBefreXZCDWa8fp643tmK6y24v3e0YlFvB3ZDCdUerElNneNE5L99rw2FyC6YyEkroZ48Tp9rE8Tl3OGJhG0WJOt9L6wyRterRfmVreqzwObRr+4Rye03onpg6blCnoeW0Kv9JuIuTAJQd6BqSwDqcxrTswzSkicqATX3fJfqVtSAaPzV2Or5VMC6ZrNYEmvD9vbPCpSU1444sQW7ARP3+Gegr6ycaqj2uwRmzAc/bZZ8tLL2HtxUDjxo2TP/7xj5/AEREREZFVjfg6PERERETDjQMeIiIisrwRby1B1mE2X/zsU98xtd1xTWk3aeu/roDYp//XvRBTylAk68N6nWwQa05sSfxekXPgW68/j/dXEsRailJvcZ1HIo1TiINKvY5W+1HrjkFME1ZqS1qyYYhVGLhdwIbT0l12rDlJarU+fcqJPw4H0ziD9IKSHRDzKi0yIso08neU+wvbcUr7WDcuTaC1lujMYp3Q/r6Kot/bk/g8HunD2zns5upmnG1Y15MO4uvTnsXXZ/VW3Ed/ldYKosvUsTz71O0Q0z4HtNqcP72BtzXrRJq+PfBYWIczdHiFh4iIiCyPAx4iIiKyPA54iIiIyPJYw0MnPbO5e229Hi13H1Zu6/rKuab2kd2Fa8n01mOdg7tNqVcZg3Uj3TFsBZBMFd+2og5rRrqzSmsAk7T1cKJZXOjTa8PWAC6bsoaRUkqSVNal6VPWw7F3HkcNTyfWptS6YhDLCdac9OXxHGjrDpXasVYqrZy/fSlc7yiktK/oyeE+mnrCRb939GK9TsCDz0VvFo8j34Pn09eh9SXE56f+aay7OnIGnuPgIXwda2vfZBdg6xjNULe20e7vRKqTOZGOxWp4hYeIiIgsjwMeIiIisjymtOiENdSXds2mvrTL4FrHZk2mBJfzz5ZoKQPltn34drQFMY2Q6S/ebk8HTo2eN3YPxEqdOGW8NR2GmFeZMr4nFYGYNtU6lsc0Td7Ax6+lfTzKfm11eMxmGV5MrfTlMQUTUFppNOdCEIs4tHYTOEU8qkzXb03j/bXbME2opSKzA9J/1UFsZ9HchftMdmN6TNL4HdeO2TDxKGmu2GRz6avAY7iCvpa+0lrHDPX0cKaH6MN4hYeIiIgsjwMeIiIisjwOeIiIiMjyWMNDZIJW/6NOaW/E2yaXzzG1D1cX1rXk+vE7iVFeXHPS3YZ1JJuzp0LsjEgUYnXeOMQq3NhCQavXcduwjYZWI6O1ZGhX2ipot811KXUoJrmO4MebXylYeTM1BmLjXJ0Qi+aw5kZTrjzecR68P+3x7u6uglguX/wayNjwdaLV6xg5rMMZ8xyEpGM6xupewPOk1dxoNTLa8g+i3FbDmhsaTrzCQ0RERJbHAQ8RERFZHgc8REREZHms4SEaQKsjMLs+iFa/ULlDWehE0T4Dazrch7AOo2t6cQ2HoyyF+yzFOpJYCtd4qXD3QqwjjTVBnS6MVTlxXZqkgR8pzbkgxDQhB665Yw+ZO3caw4k9LdqUFhnTvIcgprWbyCntMBqUWp/XkuNMHd8z7adAzGnHdW3au459/uxurKdy7Me2JFq9Tuk+pfeHwmx9TSqCr5Vn3zD3niIaTrzCQ0RERJbHAQ8RERFZHlNaRIOkXZJ3TD8NYp4oppeazy+HWBabYEtoL6Y4ugb8brRg6iLuw1TQxHKcWv5udwXEZpY3QSynfDfSWihMcrdBTOu+7lc6rcdz+DhcezBmVrYG95FX0lJax/NeA9OLDhs+F1v7GyB2JIspqO4cphMnBDEd9k4Mu6rXVhQvHXBoZw1sY09jCs6NKw6oryetbYrW3VyjpXCfNbmEA6eg0yeNV3iIiIjI8jjgISIiIsvjgIeIiIgsjzU8RAMMdb2ButS+oqIR6yviE/E7SXBX8e89M5UalF5sNXDIFYJYpR+npYecOD1cq8MJO/og5lLaTTgEpz177VlTt02H8Zwcj9O9zRDT6nWqlPYQnUo7DK2ux67E8gbW2Gj1OkcSOKV74G2Vu1cpnSukeyy+ngKPYb1O71fONbcTBet16ETFKzxERERkeRzwEBERkeVxwENERESWxxoeokEyuw7Pn5R1SbS6nsSpYYj527H+ZWB7AEcL1utkKpQamXIs/mjqwn2+441ALJ3Hj4r/r/JNiO1NY11KuVIPE1TWvvHaMhAzQhg7Hi/1TIbYgtK3TN1WWzuoM4s1N6m8C2I9OXyOAi68vx4PPt5YS3E7DE9MWUtIaQ9RsQ3X+dH8yWR9DWtz6GTHKzxERERkeRzwEBERkeUxpUU0gNnL9MdzOV9bur9UMB2mpbkqGounKSfDOOU5G1RaQezDNhLTzzgAsWQOUzJnlLZATGuXMNHTDrGgDdNXjamxEMsondZtDkzVmE6tdOPjqHRhei2vdEbvU+Z0tytd37Wu6vEstsM42IetRI70YS+R3j5MfdmSxc9lzovnJOvD49BeO544pjrNdi3X0rVEJxNe4SEiIiLL44CHiIiILI8DHiIiIrK8Ya3hWbt2rTzxxBPy+uuvi9vtllgsBtscPHhQli5dKs8884z4fD657LLL5O677xa3+4McemNjoyxbtkxeeeUVKS8vl6uvvlpuueUWsdkwb010stKmr89fdIeyZfHbNjFBeR/4sE2D2LD2oykRhtip5YchdihZhveHJTyqqUo7hypnAmJPd06FmKHU4ZitndJaMIx3H4FYLIe1NN15fHB2pUWGNr3+z3Gsdan0YAuPXB6/b9rsuA9jwGbB/fh8p7G8SGpeiGFQYXZaOtHJblgHPOl0Wi6++GKZPXu2PPjgg/D/uVxOLrroIqmqqpIXXnhBOjo65IorrhDDMGTDhg0iIpJIJGTBggUyf/582bp1q+zatUuWLFkigUBAVq5cOZyHT0RERBYxrAOeNWvWiIjIxo0b1f/ftGmTvP3229LU1CR1dXUiInLPPffIkiVLZO3atVJaWiqPPPKIJJNJ2bhxo3g8Hpk2bZrs2rVL7r33XlmxYgWv8hAREdExjWgNz4svvijTpk0rDHZERBYtWiSpVEq2bdtW2Gbu3Lni8XiKtmlpaZH9+/er95tKpSSRSBT9EBER0eg1ouvwRKNRqampKYqVlZWJ2+2WaDRa2KahoaFom/dvE41GZcKECXC/69evL1xdIhoKx7Osvtnbau0mnlXqeuZcck/R71pbgWQXriPTMxPrTWJHsDVCvgzrXMKufohp2jIhiJ3qacX7s/dB7JzQXoj9l+NUU/vVOHvw+1xLBmuRzvbth9ie3hqIlTmxDschWCgU8eEXrG3ReoglOrF2SHrwIznQVPw4krickng7MJaK4HNLNJp97Cs8q1evFpvN9pE/r776qun701JShmEUxQduYxjGUW8rIrJq1SqJx+OFn6amJtPHQ0RERNbzsa/wLFu2TC699NKP3GbgFZmjiUQi8vLLLxfFurq6JJPJFK7iRCKRwtWe97W3v7ea68CrQ+/zeDxFKTAiIiIa3T72gKeyslIqKyuHZOezZ8+WtWvXSmtrq9TW1orIe4XMHo9HZs6cWdjmpptuknQ6XZiqvmnTJqmrqzM9sCIiIqLRbVhreA4ePCidnZ1y8OBByeVy8vrrr4uIyOTJk6WkpEQWLlwoU6dOlcsvv1zuuusu6ezslBtuuEGuuuoqKS0tFRGRyy67TNasWSNLliyRm266SXbv3i3r1q2TW2+9lTO06BNzPH2zzN5W66+l1f+UDuhppPVM6qtWUsVZzGCXlmNdyuF+rC1J5x0QOzXYBrFTfFGIBewpiCUNXF/HrqwTJG5lMR2TMnVpiMVzSp+rDPa5muXHeqL96SqIdSpr+Gi9yFxOXBfJH8K6qL4eXFAnO2AXfjzFsv0n34aYVhOmrfVktsbseOrYiE4EwzrgufXWW+Xhhx8u/D5jxgwREXn22Wdl3rx54nA45IknnpBrr71WPvvZzxYtPPi+UCgkmzdvlqVLl8qsWbOkrKxMVqxYIStWrBjOQyciIiILGdYBz8aNG4+6Bs/7xo0bJ3/84x8/cpvp06fL888/P4RHRkRERKPJiE5LJ6IPmE0jDJxuHJ+IqSp/O6aHeuvx7Z7oL4WYvR5vW+XD1Fcii+0XknlM57yTqoOYpj2jHItbaZFhkjeIqbRoCvfx2cAuiL2dGgMxlw2P5d2+aohpqbn+FJ4Xh9JGwpVQnssBKaysMh9Da0GSUlKdGqalaLRg81AiIiKyPA54iIiIyPI44CEiIiLLYw0P0QlMq68YWK/h7sbbZX04LT3QhLHkDGzx0NuHRSKJEoz1ZLF9xWeC+yAWdOD063jOD7FKJz6QfOfgFxBNNeOU8bpT4hDTpsh3DZwLLiIeewZi5S6sbWrsw5qlSRXY+6HxnXEQKzsEIQnvKZ5e79yMK9l/EnU4rPWhkx2v8BAREZHlccBDRERElscBDxEREVkea3iITjLPPvWdot/nXHIPbNNfhd9l0iG8r1wC63ByHlxvJp7ElgzTKlohdiiNbRpO9zXjsRj40ZNTvn/Z04NvH+NI4m29Sh2O25aF2Ew/1iK92Y81N50ZrPUp92Bd1JttWNdjS+LjTVZASJz3F9fsZBfMgm20dXgGvk6GA9tN0MmEV3iIiIjI8jjgISIiIstjSovoJBd47CWIDeyoLiJSo9z2nX8KQ8xwYMuDzh6cRn44UAKxWg9O++5WOpRHnDGIRbPKsVRjewizstWYvurLYwovaWAspkybr3XFIPa7/TPw/pQ2EumUuY/aVJnSMX6AkZqWrmH6ik4mvMJDRERElscBDxEREVkeBzxERERkeazhITpBDHaKr0Op19E0n49TxoPv4naJaTgtvSKILRRKXUm8PwfGXMq0b83r3Tjt+3jYO7GWptqVgFhHFmuRHLY8xF5KTILY6RVtEDuSxKnqu3fjtHRPDL9v1r2QhpjZ59cMTiOn0YxXeIiIiMjyOOAhIiIiy+OAh4iIiCyPNTxEJwiztRQD6zDM3u7U238EMa1mpGcCfixkc/jdKJHxQmy/0hvBb8e1dA6mKyF2bikWFP3FOxliZuVCWDu0P4n7/XTJXoi93IP77c3hej15A89LW3dQORhzLTKOnIH7aHzq9qLftTocs1ivQ6MZr/AQERGR5XHAQ0RERJbHlBbRSWZgWkJLcWhTmcc1vgOxQ9+bo+wBp2THlNYSmbwDYtpU9f2pKohNVTqox5V2Dukoxsxyt+G09DIXTq/X0lINnsMQS+Xw43J75xiIJaKY0vIcxnNV0YjnuXRnDGLHk8Iiog/wCg8RERFZHgc8REREZHkc8BAREZHlsYaH6CSn1evklHqd2JLZEMtjmYsoJS2Sy2JwUlkHxKL9WL8yK7QfYn15nH6dE5y6rXR4MC1dk4GYQwyIaa0v7DbczuPA7Wr93RBrKQlDLDUe23V0iAdigcfweRv4/P7pjdthGw3bSBAV4xUeIiIisjwOeIiIiMjyOOAhIiIiy2MND9EJYihrLrTbLT7zFmXLMoh0lGAtTT6N68g4lQKbal8PxNrTpRA7zdcCsT+3z4SYEcI6HLO8zVig1J3Ddhi9eayl6coGIHY4VQKx/XE8f7l+/FjV1gRy4pJAap1VxbYu3NAE1usQFeMVHiIiIrI8DniIiIjI8jjgISIiIstjDQ/RCWKwNRdm12VJnBqGWHjji7ihUkcSvygNsb8eqYbYlIojEJvkbYdYn1I3M69iJ8S2vz4Rj0+h9ptag33CHErdUd7k9z6PHdfhSWXxI9TWj/VOyk3FjUv4qM/Hn1iLQzQkhvUKz9q1a2XOnDni9/slHA6r29hsNvj52c9+VrRNY2OjzJ07V3w+n4wZM0Zuu+02MQxcGIyIiIhIM6xXeNLptFx88cUye/ZsefDBB4+63UMPPSSLFy8u/B4KhQr/TiQSsmDBApk/f75s3bpVdu3aJUuWLJFAICArV64czsMnIiIiixjWAc+aNWtERGTjxo0fuV04HJZIJKL+3yOPPCLJZFI2btwoHo9Hpk2bJrt27ZJ7771XVqxYITYbTqElGk3MTmf3xJW8isLVg1dP01E/xHKVSYiV1KQgtr1nPMTqvDjVOq/1tHCYu5KrPd4JG+6BWE7ZR1smBDGXDVtBNPWFIZaIYisNrR2GNgU9vAfThEQ0fE6IouVly5ZJZWWlfPrTn5af/exnks9/8Inx4osvyty5c8Xj+SDnv2jRImlpaZH9+/er95dKpSSRSBT9EBER0eg14gOe22+/XX73u9/J008/LZdeeqmsXLlS1q1bV/j/aDQqNTU1Rbd5//doNKre5/r16yUUChV+6uvrh+8BEBER0QnvYw94Vq9erRYaf/jn1VdfNX1/3/ve92T27Nly1llnycqVK+W2226Tu+66q2ibgWmr9wuWj5bOWrVqlcTj8cJPU1PTx3yUREREZCUfu4Zn2bJlcumll37kNg0NDYM9Hjn33HMlkUhIW1ub1NTUSCQSgSs57e3vTXMdeOXnfR6PpygFRmRlWv2KVtfzrMnt4hO170FYmDKmMgaxnV04VX1aRSvEtBqZ9gy2c/AcxineZmuWDBfW/6Ty+JFX48K6o7d6x0DM68AaqHAdpstjLdhKw57Gc+qJYhuODmVJACIaGh97wFNZWSmVlZXDcSwiIrJ9+3bxer2FaeyzZ8+Wm266SdLptLjdbhER2bRpk9TV1R3XwIqIiIhGj2GdpXXw4EHp7OyUgwcPSi6Xk9dff11ERCZPniwlJSXyH//xHxKNRmX27Nni8/nk2WeflZtvvln+6Z/+qXCF5rLLLpM1a9bIkiVL5KabbpLdu3fLunXr5NZbb+UMLSIiIjJlWAc8t956qzz88MOF32fMmCEiIs8++6zMmzdPXC6X/PSnP5UVK1ZIPp+XiRMnym233SZLly4t3CYUCsnmzZtl6dKlMmvWLCkrK5MVK1bIihUrhvPQiYiIyEKGdcCzcePGj1yDZ/HixUULDh7N9OnT5fnnnx/CIyOyNrN1PRp/O9a+ZANYg9J8JAyxaWOwXsdnz0Cs3IEL08TtuNaPUnJjugWHLYNXgFuTuOZOrTsOscl+bIexrR1ne8aOlEDMUNYOyuJmqoptuD4REQ2NEZ+WTkRERDTcOOAhIiIiy2O3dCILMjt1e/GZt0AsGcZUkJKVEiOP27X1YqsFuw1TPDnB25Y6sVVFzjv4JsGOJO4j7OqHWF/eDbFk3gWxcaEYxOJ9Poh5/hvzV5U7zLWRMNP53uxzS0TFeIWHiIiILI8DHiIiIrI8DniIiIjI8ljDQ3SSO56aDq1mZPqKH0FMKWlRa3iq/NguoSHQAbFKF27XnArjfkuwBYVZtqy5hUn9dqyvaUqWQexgPAyxdA/W/ziUKeg9Y/AEOje/Y+r4BmK9DtHg8AoPERERWR4HPERERGR5HPAQERGR5bGGh+gkZ7amQ6v1cUw/DWLemVi/ki3BehgjhvUr8YgXYkdSWNSSN/D+HDL4NXc0mTqszQk4UxDrzAYgpq0d5LArMW8Wb5vG86K1jPiTyfYfrNkhGhq8wkNERESWxwEPERERWR5TWkSjhNkO6uFGvG3fjXMw6M5D6Eg3pofKPNjOodaLHcrzyvcvX9NxfESl8f4O9JVDbKL/CMRa+7GrejKLx+LchR3eUxVKK41GnILO9BXRJ4tXeIiIiMjyOOAhIiIiy+OAh4iIiCyPNTxENDgebPtQ6sNp30471vrUurGG58m2MyDWPxnvzyxnzAGxMncfxFIGtn2YUtIOsTcOjoFYfjweX+BtD8SyC2ZB7NmnvgMxIho+vMJDRERElscBDxEREVkeBzxERERkeazhIRrFtHVfFp95C8Tq7twCsX13zIZYZwDXpakJdENsf7ICYlNDUYi921EPMbOyQawdKnUmIdabxZobu025bSmuJ9T/Gq7rk8YlfMS5+dWjHeYxDVyvh2v1EA0Or/AQERGR5XHAQ0RERJbHlBaRBR1P24LEqWGIlQp2Vc8rnx75NE4FL3VhGilj4HZat3Q7NiM3rawR99E5S+uMjumrtv6wqX2U7sNjNtsZ3SymsIiGBq/wEBERkeVxwENERESWxwEPERERWR5reIgsaKjrPjpmlkHM02WDmDEei252x6ogtqDuHYglsl6IubpxH2bFJ2N9TV7w/pp6cWp5dxqnqsdjOOXeX433lz0P7+94aqqIaGjwCg8RERFZHgc8REREZHkc8BAREZHlsYaHiIoEHnsJYrEl2EYi68PbZlpxnZvMxBTEUsoiPlosE8Q6HLOMatxvrScOscPJEohlc7iGj82Ox+Jvx5irB2Pa+WNdD9Eni1d4iIiIyPI44CEiIiLL44CHiIiILG/Yanj2798vt99+uzzzzDMSjUalrq5Ovv71r8vNN98sbre7sN3Bgwdl6dKl8swzz4jP55PLLrtM7r777qJtGhsbZdmyZfLKK69IeXm5XH311XLLLbeIzTb4NTqISK8j0YQ3vgixnu/NgVi6JgcxnysDseZkGGKdKVzn5njW4XG04Fo6iam41o/XYa5hV74T7+/wbHy8Za/jx+r2n3wb7/BfTe2WiIbIsA143nnnHcnn8/LP//zPMnnyZHnrrbfkqquukt7eXrn77rtFRCSXy8lFF10kVVVV8sILL0hHR4dcccUVYhiGbNiwQUREEomELFiwQObPny9bt26VXbt2yZIlSyQQCMjKlSuH6/CJiIjIQoZtwLN48WJZvHhx4feJEyfKzp075f777y8MeDZt2iRvv/22NDU1SV1dnYiI3HPPPbJkyRJZu3atlJaWyiOPPCLJZFI2btwoHo9Hpk2bJrt27ZJ7771XVqxYoV7lSaVSkkp9MEMjHn9vZkYikRiuh0t0UsoaePXFrFwKu6Dn+/H+sr04WypjT+N2KZwZpe3D7Ps4n8Tbpnrw+DIp5ViUY8734/1JDjut59L4scrPHqLBef+9YxiDn7FZYHyCbr75ZmPmzJmF32+55RbjU5/6VNE2nZ2dhogYzzzzjGEYhnH55ZcbX/jCF4q2ee211wwRMfbu3avu5/vf/74hIvzhD3/4wx/+8McCP+++++5xj0E+sXV43n33XdmwYYPcc889hVg0GpWampqi7crKysTtdks0Gi1s09DQULTN+7eJRqMyYcIE2NeqVatkxYoVhd9jsZiMHz9eDh48KKFQaKge0qiUSCSkvr5empqapLS0dKQP56TF8zh0eC6HDs/l0OB5HDrxeFzGjRsn5eXYo+7j+tgDntWrV8uaNWs+cputW7fKrFmzCr+3tLTI4sWL5eKLL5ZvfOMbRdtqKSnDMIriA7cx/t+lraMVLXs8HvF4sMAwFArxxTdESktLeS6HAM/j0OG5HDo8l0OD53Ho2O3HP6n8Yw94li1bJpdeeulHbvPhKzItLS0yf/58mT17tjzwwANF20UiEXn55ZeLYl1dXZLJZApXcSKRSOFqz/va29tFRODqEBEREZHmYw94KisrpbKy0tS2zc3NMn/+fJk5c6Y89NBDMEKbPXu2rF27VlpbW6W2tlZE3itk9ng8MnPmzMI2N910k6TT6cJU9U2bNkldXR2kuoiIiIg0w7bwYEtLi8ybN0/q6+vl7rvvlsOHD0s0Gi26WrNw4UKZOnWqXH755bJ9+3b585//LDfccINcddVVhcuAl112mXg8HlmyZIm89dZb8vjjj8u6deuOOkNL4/F45Pvf/76a5qKPh+dyaPA8Dh2ey6HDczk0eB6HzlCeS5thDMVcL7Rx40b5n//zf6r/9+FdHjx4UK699lpYePDDD66xsVGWLl0qr7zyipSVlck111wjt956KxceJCIiIlOGbcBDREREdKJgLy0iIiKyPA54iIiIyPI44CEiIiLL44CHiIiILG9UDHieeOIJOeecc8Tn80llZaV8+ctfLvr/gwcPyuc//3kJBAJSWVkp3/rWtySdxoaC9F5j1rPOOktsNpu8/vrrRf/H83hs+/fvlyuvvFImTJggPp9PJk2aJN///vfhPPFcmvPTn/5UJkyYIF6vV2bOnCn/9V//NdKHdMJbv369fPrTn5ZgMCjV1dXypS99SXbu3Fm0jWEYsnr1aqmrqxOfzyfz5s2THTt2jNARnxzWr18vNptNli9fXojxPJrX3NwsX//616WiokL8fr+cddZZsm3btsL/D8m5PO5uXCe4xx57zCgrKzPuv/9+Y+fOncY777xj/O53vyv8fzabNaZNm2bMnz/feO2114zNmzcbdXV1xrJly0bwqE9c3/rWt4wLL7zQEBFj+/bthTjPozn/+Z//aSxZssR46qmnjHfffdf4/e9/b1RXVxsrV64sbMNzac6jjz5quFwu4+c//7nx9ttvG9dff70RCASMAwcOjPShndAWLVpkPPTQQ8Zbb71lvP7668ZFF11kjBs3zujp6Sls88Mf/tAIBoPGv/3bvxmNjY3GV7/6VaO2ttZIJBIjeOQnrldeecVoaGgwPvWpTxnXX399Ic7zaE5nZ6cxfvx4Y8mSJcbLL79s7Nu3z3j66aeNPXv2FLYZinNp6QFPJpMxxowZY/zLv/zLUbd58sknDbvdbjQ3Nxdiv/nNbwyPx2PE4/FP4jBPGk8++aRx2mmnGTt27IABD8/j4N15553GhAkTCr/zXJrzmc98xrjmmmuKYqeddprx3e9+d4SO6OTU3t5uiIjx3HPPGYZhGPl83ohEIsYPf/jDwjbJZNIIhULGz372s5E6zBNWd3e3MWXKFGPz5s3G3LlzCwMenkfzvvOd7xjnnXfeUf9/qM6lpVNar732mjQ3N4vdbpcZM2ZIbW2tXHjhhUWXwV588UWZNm2a1NXVFWKLFi2SVCpVdDlttGtra5OrrrpKfvnLX4rf74f/53kcvHg8XtQJmOfy2NLptGzbtk0WLlxYFF+4cKFs2bJlhI7q5BSPx0VECq/Bffv2STQaLTq3Ho9H5s6dy3OrWLp0qVx00UVywQUXFMV5Hs37wx/+ILNmzZKLL75YqqurZcaMGfLzn/+88P9DdS4tPeDZu3eviLzX4f173/ue/PGPf5SysjKZO3eudHZ2iohINBqFJqRlZWXidruhaeloZRiGLFmyRK655hqZNWuWug3P4+C8++67smHDBrnmmmsKMZ7LYzty5Ijkcjk4TzU1NTxHH4NhGLJixQo577zzZNq0aSIihfPHc3tsjz76qLz22muyfv16+D+eR/P27t0r999/v0yZMkWeeuopueaaa+Rb3/qW/OIXvxCRoTuXJ+WAZ/Xq1WKz2T7y59VXX5V8Pi8iIjfffLP8wz/8Q6GJqc1mk9/97neF+9NaVBiGYfnWFWbP44YNGySRSMiqVas+8v5G63kUMX8uP6ylpUUWL14sF198sXzjG98o+r/RfC4/joHng+fo41m2bJm8+eab8pvf/Ab+j+f2ozU1Ncn1118vv/rVr8Tr9R51O57HY8vn83L22WfLunXrZMaMGXL11VfLVVddJffff3/Rdsd7Lj92t/QTwbJly+TSSy/9yG0aGhqku7tbRESmTp1aiHs8Hpk4caIcPHhQREQikYi8/PLLRbft6uqSTCYDo0mrMXsef/CDH8hLL70EzdtmzZol//iP/ygPP/zwqD6PIubP5ftaWlpk/vz5Mnv2bHnggQeKthvt59KMyspKcTgc8O2uvb2d58ik6667Tv7whz/I888/L2PHji3EI5GIiLz3rbq2trYQ57kttm3bNmlvb5eZM2cWYrlcTp5//nm57777CjPfeB6Prba2tujvtIjI6aefLv/2b/8mIkP4mhxMgdHJIh6PGx6Pp6hoOZ1OG9XV1cY///M/G4bxQYFoS0tLYZtHH32UBaIfcuDAAaOxsbHw89RTTxkiYjz22GNGU1OTYRg8jx/HoUOHjClTphiXXnqpkc1m4f95Ls35zGc+Y3zzm98sip1++uksWj6GfD5vLF261KirqzN27dql/n8kEjHuuOOOQiyVSrHYdoBEIlH0udjY2GjMmjXL+PrXv240NjbyPH4MX/va16Boefny5cbs2bMNwxi616SlBzyGYRjXX3+9MWbMGOOpp54y3nnnHePKK680qqurjc7OTsMwPpgCfP755xuvvfaa8fTTTxtjx47lFOCPsG/fvqNOS+d5/GjNzc3G5MmTjb/7u78zDh06ZLS2thZ+3sdzac7709IffPBB4+233zaWL19uBAIBY//+/SN9aCe0b37zm0YoFDL+8pe/FL3++vr6Ctv88Ic/NEKhkPHv//7vRmNjo/G1r32N06lN+PAsLcPgeTTrlVdeMZxOp7F27Vpj9+7dxiOPPGL4/X7jV7/6VWGboTiXlh/wpNNpY+XKlUZ1dbURDAaNCy64wHjrrbeKtjlw4IBx0UUXGT6fzygvLzeWLVtmJJPJETriE5824DEMnkczHnroIUNE1J8P47k05yc/+Ykxfvx4w+12G2effXZhajUd3dFefw899FBhm3w+b3z/+983IpGI4fF4jL/92781GhsbR+6gTxIDBzw8j+b9x3/8hzFt2jTD4/EYp512mvHAAw8U/f9QnEubYRjGIFJuRERERCeNk3KWFhEREdHHwQEPERERWR4HPERERGR5HPAQERGR5XHAQ0RERJbHAQ8RERFZHgc8REREZHkc8BAREZHlccBDRERElscBDxEREVkeBzxERERkef8/MGv50pCdtnUAAAAASUVORK5CYII=",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"noise = np.random.normal(0, 0.15, X_test[:,2].shape)\n",
"noisey_X_test = X_test.copy()\n",
"noisey_X_test[:, 2] = 1./(1./noisey_X_test[:,2] + noise * (1./noisey_X_test[:,2]))\n",
"noisey_X_test[:, 3] = noisey_X_test[:, 2] * np.sign( noisey_X_test[:, 3] )\n",
"noisey_X_test_model = np.delete( poly.fit_transform( noisey_X_test ), remove, axis=1)\n",
"noisy_y_pred_test = lin_reg.predict( noisey_X_test_model )\n",
"plt.figure()\n",
"plt.hist2d(np.sign(noisey_X_test[:, 3])/noisey_X_test[:, 2], noisy_y_pred_test - y_test, bins=100, range=[[-60,60], [-200,200]],cmin=1, norm=matplotlib.colors.LogNorm())"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3.10.6 (conda)",
"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.10.6"
},
"orig_nbformat": 4,
"vscode": {
"interpreter": {
"hash": "a2eff8b4da8b8eebf5ee2e5f811f31a557e0a202b4d2f04f849b065340a6eda6"
}
}
},
"nbformat": 4,
"nbformat_minor": 2
}