shortcuts/notebooks/regressions.ipynb
2024-10-04 06:09:41 +02:00

576 lines
202 KiB
Plaintext
Vendored

{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Regressions\n"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"data": {
"text/markdown": [
"![name](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAkAAAAEgCAIAAADT5FumAABLrklEQVR4nOzdB3hT5foA8Dd7NknTNt1NW0YLpZVNywYFRIELCCIgQ1FwsQQHV0XkqlfF+5d78TpAryCyRAQEFBAQQfZqKdBS6N4zHdnr/J/00FBCWjqSnCR9f08enpyRc9720LznO+c778ckCAIQQgghT8OkOgCEnE6pVAqFwsZzTCYTg8Fwwa7t7ujgwYNHjx4VCASrVq1yQQwIeSs61QEg5CwlJSUzZswYP3780qVLx48fHxcXl5ycTC4aMmTIggULnB1Abm6uWCzev3+/zfxHH300KChox44dNvMPHz48depUHo83ePDgxx57LKnezJkzL1265OxQEfJEmMCQ15o1a1bnzp337du3YcOGffv2zZw5s7q6mlz0wgsvTJ061dkBBAUFLV++vFevXi1cf/To0S+//LJWq33//fd//fXXM2fOHDp0KDAwcMCAAe+++27znz1w4IDRaHRE1Ah5DLyEiLwTQRAnTpyYOXOmdc706dPZbDb5fvbs2U19ikajtXD7969pM5PD4dx/kZBch06n2739TH7cuhGRSPR///d/RqPx/ffff/TRR5OSkuwGo9PpnnvuuZycHCYT/6JRB4ItMOSdaDRaVFTUypUrT5w4Qc6JiooKDQ0FgCNHjowbN27x4sUAcOvWraeeemrixImvv/56jx49+Hw+mXLOnz8/YcKEl19+GQCys7OXLl0aHx+v0WgA4Mcffxw4cODcuXOHDx++b98+MietXbv20UcfJWd+/vnn5B4///zz3r177927l5zMyMgYNWrU448//uyzz/744492MyWZ1Wxy2+rVq81m8/fffw8ACoVi6NCh06dPHzly5Pjx41UqVWlp6dy5c0tKSmbNmvXJJ58AwPr160eNGjVr1qz4+PiNGzc6/5eNEEUIhLzUoUOHyL4bcXFx//rXv+rq6qyL5s2b97e//Y18v2rVqoSEBK1WazabV61aRafTlUolQRAvvPDCuHHjyHX++usvsjOIwWDg8/kXL14kCCIrK+uXX34hCGLr1q1hYWHkp8rLyyUSyU8//UR+0M/P77vvviMIQq/XR0ZGrlq1ipz/6aefxsbG3h/z8ePHAeD48eM288PCwkaMGEEQRFlZ2RdffEEQhMFgEAgE3377LUEQR44cAQCtVmvdOBnMF198IRKJnPCrRcgtYAsMea3Ro0enpaW98847arV62bJl8fHxhYWFdtdks9kcDodGo02cONFsNldUVDS1TbPZbDKZdu3aZTQao6Kixo8fDwDffvvtmDFjBAIBAPj7+48ZM+a7776z+eChQ4dycnLa3HNEKpUqFAoACAgIePHFFwGAyWRGRkaWlZXdv/KyZcvIYLp06VJbW6vVatu2U4TcHCYw5M3CwsJWr16dmZm5cePGoqKif/zjH82v/8B7SGw2+9NPP/3Pf/4jl8tXrFihVqsBICcnRyaTWdcJDg7Oycmx+WBWVhaXyw0MDGzbD1JUVNS5c2cAUKvVK1eunD9//vLly0tKSuxehzx79uzzzz+/ePHi9evXt213CHkEvOWLvBNBEOnp6d26dSPvh82ZM+f3339PT09v/5ZfeeWVGTNmbNmy5b333svNzd26datAINDpdNYVdDqdv7+/zacEAoHZbG5hDxEbWVlZFRUVffr0IbufSCSSDRs20Gi0Q4cO2V152LBhFy9ejI+PP3r06M6dO9u2U4TcH7bAkHcymUwffPBB4zl0Or1Tp04t3wKLxaqtrbWZqdFoUlJSpFLpwoULV69eff78eQB46KGHbt++bV0nLS0tPj7e5oOxsbF6vf7atWtt+FlWr14dERGxaNEiADh37lzv3r3t5iSz2QwAV65codPpcXFxTXUJQchrYAsMea09e/asW7duypQpfn5++/bt++23306dOnX/auTdYOt767/x8fFfffXVhg0bZDLZn3/+Sc4nb6dt27aNzWafOnVq2LBhALBixYphw4YdOXJk+PDhu3fvzszM3Lx5s81eEhMTH3744eeff37NmjUmk+ns2bN284pKpQKA9PR0iURCo9EyMjI2bdpUVla2b98+Pp9PJsIffvihe/fuubm5CoWC3EjXrl0BYNu2bQkJCTExMTqdbs2aNQMGDLB2gETIKzGwmA3ySnQ6feDAgTdu3NizZ8/+/fvNZvOGDRvkcjkAbN68Wa/XBwYG3rp1SyQSpaamdurUqaysLCIi4ocffkhKSsrMzBw4cGCvXr04HE5KSgqfz588ebJUKr1x48aQIUMUCsX27dsPHjzYp0+fd955h8ViBQQETJkyZe/evdu3b+fz+R9//HFERER1dfW6desSEhLIZlx0dPSECRMYDMaBAwdqa2snTZokEAgUCkX37t2tMR8+fPivv/4id3H16tUbN25wOJwJEyasXr06KCiIXGfYsGH5+fnXr18n63SUlpYGBwdHR0f7+PhcuHCBTqc/9thjsbGx586dq6ure+GFF4RCYXp6+oABA6g7FAg5Cw0vLyCEEPJEeA8MIYSQR8IEhhBCyCNhAkMIIeSRMIGh5pSVwZUr0HRhCoQQogx2o0f2EQR8/jns22d5Q6PBxInw0ktUx4QQQo1gAvNsly7B2bPAYMDQodCoP7YD7NkDv/xy5z1BwO7dEBEB48Y5chcIIdQeeAnRg23cCG++ack0u3bB4sV3841D/PHHg+cghCiXn59/7NixEydO5ObmWgc11Wq1V65cccHeCwsL8/LybGYWFxe///778fHxZ8+edere3SWBqVSqV155xe6iW7duuTwcD1BUBFu33jNn/XpQKh22/fqyRPdw+Hi/eGS9FR5Z1zAajTNmzFi0aFFWVlZqauq8efOmT59OLtq4cWPv3r3Ly8sduLuqejYz582bN2PGDJuZwcHBr7322rVr18jKMs7jLpcQCYJoatAH8/1fpQjg5k2weQZdp4PMTHjoIcdsPynJsovGBg1yzJat8Mh6KzyyrrFhw4br16+npKSQk/Pnz583bx75fubMmTExMQEBAQ7cnd2qF+vWrTM6/Ny2xdwlgaHW8vVt6cy2mTYNbt+G+nEcLYYPhylTHLZxhFD73bp1S6VSmUwmBoNBlp/+5z//SVayNplMvXr1IgiCRqPV1NQQBCESiTQazfXr1yMjI2UyGUEQNTU1ACASieh0em1trdls5vF4HA6HHLv12rVrAoEgMjLSx8eH3J1Wq83IyJDJZF27dmWxWOQcmUxG7p1EEERubm5hYaFjc2dT3OUSImqthASwKa3erx9ERDhs+0wmvPsufPEFvPkmfPklvPUW0PE/C0LuZMCAAZmZmWPHjj1z5gw5JzQ0FABqamo+/fRTX1/foqIiANi6dauvr++rr746e/bsGTNmREdHp6am6nS6f//7376+vvn5+QBw8ODB7t27r127lhzQoF+/fidOnPjll1/GNXTc2rFjx6hRo06fPr19+/a4uLjTp08DQEZGxlNPPTVixAhynfLy8hEjRixevDglJWXHjh2u+BVQPST0HXV1dfPmzbO7KD093eXheIaqKuK994ixY4lx44g1awiViuqAWgmPrLfCI+syy5cvp9efWsbExHz55Zcmk4mcn5ycDAAFBQUEQZAjjJMDIBiNxoCAgNWrVxMEQQ7uk5OTQ36kZ8+eH330EUEQzz///Pz588mZv/32G0EQJSUlAoHgwIEDFRUVBEF8/PHHXbp0MRgMBEGsWrWqb9++5MoLFixITEw0m83WW0JHjhxx6o9P2SVEnU5nvVxL3o3U6/VUBeOhfH1h5co7z2khhDqgNWvWvPLKK5s3b/72229ffPHF8+fP/+9//2tmfQaD0b179/sHumssKCjoyy+/HDFixJQpUx599FEAOHbsmEaj6d+/P7nCww8//MYbb9y6dYscMNZq9+7dCxcudOUAqpQlMA6Hs3HjRuukSqVatmwZVcF4NMxeCHVkcrn87bfffuONN5577rnvvvvuk08+uX9A8MYemGDefPPN0tLSZ555ZtGiRe+9996LL75YVFTk4+Nj/aBUKiX7yjdOYHq9vqysLCwsrLlNnzsHhYV33icmQkjI3UUFBVA/PKxFeDj063fPB3/++e77yZOtb6m8rcFspPFtQIQQQg+0b98+63sWi7V8+fL68m9l7dwsn8//+uuvy8rK5s2b99JLL12/fj0gIECpVFp7IZK9PyIjIxt/is1m+/r6PqDfPIsFXO6dl81NdQbj7iLmfS0r6yIut/Fs7IWIEEIe6cCBAwkJCeQwreQTzWKxuHPnzi38uEAgqH+itMi6BdIPP/zw9NNP+/j4fPDBB//5z3+Ki4sHDRpEo9Fu3LgRFxdX34465+/vHxUVZbPB+Pj4I0eOvPzyy03usnfvJhcFB1teTXnsMbuzMYEhhJBH4nK5w4cPX7ZsWXx8fHZ29ieffLJhwwY2m61UKq9fvw4AV69elUqlN+uf6Lx582bv3r3Lysqqq6uLiorq6urkcnmnTp3mz58/YcIEtVpdWVmZn5+vVCoPHDiQnZ09YsSIw4cPh4eHJyUlCQSC9957b9myZStWrNDr9R988MFPP/1Eo9GKi4vz8vJqa2vT09NjY2PXrVuXlJQ0d+7cPn365OXl0en027dvDxs2jHl/i8pB3GVEZqVSuWTJkm+++eb+RTdv3oyJiaEiKORceGS9FR5Zl0lNTb1+/bpCoQgKCho0aJBMJgOA3Nzc9PR0coWEhITr16+bTKb6u06Jt27dqqysBIDY2Fi5XF5cXHz48GF/f/8RI0Zcu3ZNoVB0796dxWKdOnWqrKwsKCho7Nix3IardqdPn75y5UpUVFRiYiJ5G+zChQvW2hyPPPIIg8GoqKg4ceKETqcbPXr01atXdTrd4MGDhUKhk358TGCIMnhkvRUeWa9EZj4/Pz+qA7kLn01FCCHkkfAeGEIIdXQpKSmbNm1SKBTkJIfDiYiIiI6OHjdunPMuALYftsAQQqije+ihh1auXLlx48bOnTuTD0d37dp17dq1nTt33rJlS/OfVSqVTZVidzYvT2AGk+lsdnZqYWEtRb9fhBDyIAKBwN/fv0ePHlOmTDlz5szYsWPnzp3b/NBir7/+Olm5yvW8/BIii8FIjIpS6nR5VVU1Go2/UNilvpcOQgihxshCG43rdNBotM8++2zPnj3vvPPO/v37yUfE8vLyampq4uPjX3zxRSaTuW3btu+++85sNp8/f54cmWzbtm0FBQV0On3WrFmJiYlOjdkpCay8vPzEiRNPPPGEMzbeBkIOp3v9I3I1Gg05R6nT8VgshofUV9dq4c8/oaICYmOhTx+qo0EIdRgSiSQhISE1NZWcPHjw4BdffOHj49OnTx+dTrd8+XK5XK7VaocOHdqn/rvp/PnzQqHwX//61w8//PDwww8XFBT4tmaQp+pq2LEDMjLAzw8mTYJ7Sy3a4eAEZjAYvvrqq82bNwcGBrpPArMS83jkG43BkFZcTKfRwqVSWcNoN+6ptBSWLbP8SxoyBN5+G0c2QQi5SGRk5MmTJ8knyT799FOyAEdiYmJKSgqdTifLIXbq1Il8cGLUqFFCoZDD4YwfP37BggW3b9/uZ1PVsGlKJSxaBMXFdyZPnID334e+fZv7iOMT2OzZs9lsNtnedFsBQmGAUGgwmfIViqyKikg/vyCRiOqg7Pvvf+9mLwA4eRKOHoVRo+5Zp7LSMl+jgV69LK00hBBqLfKZ4PufDFYoFNZRK00m048//lhZWZmVldXJZkDCer6+vn/99VdWVlZJSUlrx+bet+9u9qrfF3z77QMSmIPP5Pl8vlgsduw2nYfFYET7+ydGRZHZy0QQGaWlWoOB6rjucfmy7Ryb+6mpqfDMM5Y897//wcKF0KjEP0IItVdmZibZujp69Oj48eN5PN6oUaPCw8Ptrjx58uQNGzYkJCSMGTPGbjpsRna27Zzc3Ad8xMs7cbQKg0bzFwrTS0p0RmOQWBwqkTDd4FKdQAA6ne0cK4KATz6Bhlt7Flu2wODB0OJ6ngghBHY7cdRf8jl548aNn+tHM9myZcvIkSPHjx9PtlWMRqPNFoqKivbu3Zuenh4TE0OW7WjV2GD3j8TSTHVfkusSmEajIYvw26VWq1vV2HQSqUAgFQgIgiiurb1aUNDbgUP0t9Vjj8EPP9ydZDBg9Oi7kyUlUN9Sv8flyw5NYOXlUFFhac8bjRASAo27cRqNoFSCUGhn+AOEkCcjCOLEiROzZ89esGDBpEmTyNrBaWlpRqPRbDZXVlaSF9sEAgGbzS6sH+WLrJqYnJwcExNTVFTU2j2OHw8HDkBDbUWLOXMe8BHXfe+kpqZu3bq1qaUGg6Gurs7uIrVaTVZTdjFBfUk3AKg2GjVms4TJ5FHRIOvfn1ZYGHDihK/JBCKRaerUUrO5zvr7UCqZALZXopXK0ps3q1u1F1F+Premhq1UstTq/EGDjByOdVFgaqo4J4eg0wkGo7x795pGSZ1fURH+11+W/+tMpjIwsKjFd2tJhdah7ZB3wSPrcdLT03/66aewsLANGzbs3LmTwWCYzWZ/f/9//OMfAwYMIL8JJ0yY8MYbb0RGRvbu3TsoKCg9PX3Lli19+/YdN27cnDlzNmzY8O67786r98knn4wdO7Zr165fffUVi8USNL5q1KzFi1kHDvjn5nLFYuPDDysCA5XNfPeHhIQ4pZjv119/vX///saDrT2QmxfzVev1eVVVCrXal8+X+/nxWCwXB6DVQk0NBATY6X/43ntQn0TuEIvhf/+D5rqkmM2gUIBNRc6tW4EgQCq1fLJPH5tR45pkMkFtraURplQCi2Xb7lu3zrKX0FDLy16T0B2OLHIGPLJeyQ2L+Tq4BWYymfLy8nJychQKRXp6ekREBJ/Pd+wuKMFns2ODgiytMbVao9eTCcxEEAxXjed/30ikd732GjAYcPKkJTFFRlom7WcvkwnOnoXcXCgutqTBJUugcfAzZrQlLAYDfH3B7nMeZjMMH27ZV1YWXL+ON+UQQg7n4ASmUqkyMjKG18vNzWWz2dHR0Y7dBbUkDfmYAEjOyzMTRJivb5BY7KI8Zg+fD2+/DSoVaDTg79/0egyGJXv5+0PPnhAWBs5OvXQ6xMdbXmTutPHbb+Dvz67vmIsQciWlUtnUIj6fT3fEjZItW7b88ccfXbt2ff3119u/tWY4OIGJRCKy96TXowH0kcuNZnOBQnE+O5vLYiWEhVGYxgSCRr0TTSbIzISCAhg58p6V2tbMaj+bREX21jl3LkqlgmvX4Omn8cFshFzDaDRGREQMHjzYx8enrq5u3759Q4YMCQ4OVqvVycnJu3fv7tv8g1ctM3PmzOPHj585c8YRITcHO4+1C5NOj/Tzi/Tz0xoMZPaq0WiYDIaAzaYspoMHIT0dDAaIjrb86/LbdQ9Gp8PYsQCQd/ZsBIeD2QshV5owYcLG+sdFk5OT9+3bt2jRoilTppBVNqgOrdUwgTkGtyFPMOj0rPJylV4v8/EJ9/Vluf4qGYcDw4ZBbCw01M1yWxpfX7C51W80wsmTkJBg28cEIeQIDAZjwYIFdhdNmDChcd1CrVbLbbjxXltbK7J3a72uro7P5zPu/ZarqanhcrkMBsMFw/3jya+DCTmc+NDQAVFRAjb7amFhXuOHGpyhogJsnp8bMQJ69XL/7GVfXR3k5MA338C2bZCZSXU0CHkbGo2WlJRkdxGHw1m0aNHgwYO///772NjY9957DwD+/e9/Dxw48K233urfv/+FCxcAYNOmTaGhoYsWLZowYUJ4eHhQUFBKSgq5hf379yckJCxcuHDp0qV//vlnq55ibhtMYE5BAwgUifpERERIpeScq4WFlSqVI/eRk2P5lv/2W8jKcuRmqeXrC888AzNngo8P4LNECLmQXC4fPnz4jRs3unTpcvTo0ZCQkNOnT//973/fv3//unXrXnzxxblz59Y/XDynsrJyyJAhv/zyS1FRkY+PD/n4U15e3pQpUz788MPvv//+iy++GDx4sAtixkuILtJVJstTKDJKS8U8ntzPr703yc6dg+PHoVMnePppCA11WJRuIizMTlUZhJDzCQQCsom2cOHCV199NSEhQVp/Ft6rV6/S0tKioiI/Pz8ajUZ2VuTz+UlJSRUVFQCwbds2gUAwbtw4V0aLCcxFuCxWV5kMZLIajSarvLx7SEi7niGLi4OoKOhQg3NeuAAaDQwYAI2qhCCEnCe/HtnwMhqNQ4cOVd13GYlOp5NVALOzsyMeVHtPpdfrG1VQZDOZ5Kl8m+djAnM1MY8X39BmKq6pyVcoQsTiEImE3nw+I0sOWgmF90x2BByOpd2ZnGzJYX372nbNRwg5mkgkCg0N3dgwwgVZiaMpEonk/vK+Nmo1mjqt1jrpw+WSCanN8zGBUSlYLJaJRMXV1Rdzc1kMRpSfn+T+wiXFxXD8OFRWwksvdege5wkJ0K0bXLxoyWG9ejkqgd28adkkmw1DhkB9rRWE0B1xcXG7du2qq6vzacGov926dVu7dm1lZWUztaaCxeJge+NttXl+B/5CdA8MGi3M17d/ZGT34GBrpx2NdUyyX3+F77+3fFlPndqhsxeJxYKkJJg/Hxz0mN22bfDKK7BxI6xfD/PmWRp4CHUQWq22oKCg/gy52HphUKvVmkwmXcMATs8995xYLP7b3/62c+fOY8eO7dq1CwD0ej1BEJr6MZwIgtDVA4Ann3yye/fuTz311G+//bZly5aUlBSdTufsnvSMVatWOXUHLaTX6w8ePDhhwoT7F1VWVvo3VyLJSzDpdOvDZBllZbfLyrRGo5BOZ/bpA4MGeeUFwzYeWZtrrRoNKJVteGwgPx/q+wnfYTLBlSsweTKeJzhAB/mb9Whbt24tLCx89NFHCYJISUkZMGBATk7OzZs3Bw8efPny5W7dunHqPfvss0ajMTU1tba2tm/fvv7+/vv27Rs4cKBGowkKCkpOTmaz2XK5nCCIqKioKVOmcLncc+fOBQYGTps2jc/n6/V6uVzuvJ/CKdXo28DNq9FTokKpzFco9EZj74gICh6Idj7HHNnTpy2vfv1g4MBWlR05cADWrrWd+dVXYG+cdNQ6HfZv1rt5fzV61C7V1VBSArGx5JS/UOgvFJoJguzfoVCrDSaTrAUXozuWpCQQCODECbh+HZ58stl6xvewO0QR/nYR8iCUJTC9Xr9y5crGk7W1tVQFQz2CgPPn4dQpCAqyJjCStXeigMPJr6rKqqgQsNmRfn4+LRyyy+vRaPDQQxATA5cvQ8Nj4y2RmGhJdvVPsNzRr1/HejABIU9HWQJjsVgvvPCCdVKtVq9Zs4aqYKi3axfk58OwYdC7d1OrsBmMTgEBnQIClDpdblUVl8nsFBDg2ijdGJcLAwe29hMffwyffAI3bwKdbvn0q686LTyEkBNQlsBoNFpkZKR1UqlUMrzxNk9L9e8Po0c3O47yXUIOJy442DqZnJ8vFQhCJRIGdj9orLoazObm22QREfD555YV2WzwioFXEepY8B6Ye3jQE+zNSAgLK66puZyXR6/vkS8TiSgclsyNXLwIV6/C8OHNNGpJEomrQkIIORQmMCoQBOTmQqMGaHvQabRQiSRUIjGYTGSvRQ6TSdQXFO7QHn4YhEI4dgwyM2HiRHccFw0h1D6YwFyuuhoOHICyMpg/335PuLZiMRjRDX3wqlSqjNJSqUAQIZXyOuZ3N40GiYkQFQXXrmH2QsgrYQJzrbQ0OHgQAgLgmWccm71s+AkESdHRVWr1zZISrdEol0rtVmTxfoGBlhdCyBthAnMtsRgGDICkJNtyEs4h5fOlfD5BECq9npxTrdGIebwOfXWRIFzzy0cIORsmMNcKCbG8XItGowkbhiCp0WjSS0p4LJZcKrVTONjrGY2weTM89NADe3YghNwfdrzuWORSaWJUVBeZrKS29kxWlrqhZdZRMJmQkADHjsGePdBQsRQh5KEwgTmTXg+7d0NqKtVx2OKz2bFBQUnR0fz6su7VanVWRYXBZKI6Lpfo0wdmzYLycjh7lupQEELtgpcQnaayEn7+GUwmGDCA6lAeQMzna43GlIICAiBUIgkWiWjefZcoMBDmzsU7YQh5OkxgzmE0wrZtEBAAf/sbuH3RQhpAkEgUJBIZzebC6upbZWVdPaTnXm0tHD1qOVXo0gWGDGnNSCjYsR4hz4cJzDmYTJg2Dfz9Pes0n0mnyxvVXkotLGTQ6XI/P4GDBpB0rPx8ePVVqK6+M9mnD3zwQVsHatZoLOccWIseIY+C98CcJiDAs7LX/eJDQ0Mlkqzy8rPZ2VkVFUazmeqI7vHll3ezFwBcugSHD7d1W6dPw8aNkJfnoNAQQq6ACcxxDAaqI3A8MY8XHxo6ICpKwGaTCcxMEGY3GATVbIbkZNuZV6+2dXPDh0PnzrBjh52NIoTcFSYwB8nMtLQISkupjsMpaACBIhGXyQQAtV5/MTf3cl5ehVJJYUj//KedE4aWVfO3h8GAsWNh5Ei4eRPcID0jhFoC74E5wrlz8Oef0LdvRxgPUcjh9I+M1BmNeVVVt8rKAoTCzi7/qW/ehOPHbWcymfDoo+3bbp8+0Lu3p1/4RajjoCyB6XS6OXPmWCeNRqPZzW6xtFRpKfz1l+W7MyGB6lBch8NkdpHJushk+oanx0prayV8Pofpiv9R2dl2Zs6bB1FR7d50m7KXXg+3boFQCHJ5uwNocPky/PADFBZafqhnnoGYGIdtGSGvQVkC43A427dvt04qlcolS5ZQFUy7BAbC/PkdtgMbu6HbH4NOv1ZUZDSZQiWSEImE7sx2TKPhPO+g0WDECEfvxmyGsjIICmp+rVOn4F//gro6y/sePWDlSvD1be+ek5NhxQogz+iqqiA1FT7/3BHpGSHvgvfAHKGjZq/G/IXCPhERfesHObuYm1uj0ThvXwkJts3dxx8HPz9H7+b6dUsj6Pr1ZlYpKYEPPriTvQDg2jVYs8YBe96+HRpfj9DrYedOB2wWIS+D98DaxGgEl1wr8ziM+lGhwxraIEqdLqeyUi6V+jj0aW4azZI2Nm+G06eBzYaHH4YpUxy4+Qbx8aBSwYEDUFMDAwfaXeXUKdu+JBcvglIJQmG79lxSYjvHS7sHIdQu+C3ceunpcPQozJ6NDa8HEnI4cqk0T6Go1Wj8hcIIqdRRN8m4XHj+ecvLuRITQSSCM2egTx9oqOjfmNFoO4cg7MxsrehoKCy0nYMQsoGXEFvp3Dn45Rfo1QuzVwv5cLlxwcFJ0dE+bH5uZSXV4bRe9+7w7LN2sxcA9O9v2+0jNhYkkvbuc+7ce4Y79fOD6dPbu02EvA+2wFojJwdOnICxYyE+nupQPElmJvz735CWJuRyhePGwbx5kFlZqtLpCE+pf990h5SoKHjpJfjqKyB/lOBgeOMNB+wwIsKyzR9/hOJikMth2jQHdAxByPtgAmuNyEjLuXFAANVxeJLqanjttTvdHLRa+Okny3f9Sy8F6k2mi2lpZ7OzBWx2Z5mM50HVde+9xzVxIiQmQmqqZV6fPuCospFBQbBokWM2hZC3wkuIrYTZq5X++ONuJz3SgQNgMACbwfBjsRKjoqL9/ckGjokgtO5fjuvaNfjf/6CoqPG8oCAYNQqSkhyWvRBCLYEJDDlX43q7JL0eGvexF3A43Prml9FkSi8tPZednVdVZXLbp9q7dQO5HLZvh8xMqkNBqKPDBNas2lr48UdQq6mOw4PFxdnOiYiwX7SQw2T2DAvrFxnJpNMv5+Wl2vTDcxMMBkyYAAkJ8OuvoNNRHQ1CHRreA2taZSXs2AFicWvGSUS2+veHkSPh2LE7kzweLF7c3Pp0Gi2kvpaHteZ9YXW1gMOR8HguiLZFaDR45BHLD9ZE10SEkGtgAmuCQgFbtkBwMEyahM8st9OKFTB0KCQng48PjBplpxCUXdZiVL58fl5VVXpxsa9AECGVukt3j7aXvkcIOQZ+NTdBLIakJOjTB5tfDjFokOXVNnw2O7a+IGGVWp1RWhoqkfi3s9AFQsgrYAJrAp0O/fpRHQS6h5TPl/L55Hud0Xi1oCDM1zdILKZ++JP0dMjJgTFjcCgWhFwJmxfII3GYzF4RETqj8Xx2dkpBgYLajjY8HqSlwS+/gNt2nkTIG2ECa+T2bfCU2hAIgEmnR/r5DYiK6hoYaC1+b6ZkPGW5HJ56ytII27uXgr0j1FFRdgnRYDB8/fXX1kmdTqdSqagKxuLSJTh6FP72Nxw60OPwWKzIhsFUcquqSmtrZT4+4b6+rIaxylwhOBimTweFwnV7RKjDoyyBMRiMnj17Wic1Gk1KSgpVwcDZs3DiBIwahdnL00X5+UX6+ZXV1l4tKDADdJXJxC7rfy+TWV4IIVehLIHR6fTBgwdbJ5VK5Y4dO6gJxWiEtDQs0es1aACBIlGgSGQ0m8mKHmaCqFarpY0LvCOEPB/2QgRgMmHOHOwu732YdDqz/rASBFGhUt0sLRXzeHI/P4FrShaWl4OPDzh0JE+EUGOYwOph9vJqDDq9a/31vRqNJqu8XGc09pXLnb7XQ4csjftp08B9aogg5F3wixt1IGIeLz401Jq98hWKwupqZ3VcnDQJTCbYvv2e0sUIIcfpqAns2DE4cYLqIBDFQsRik9l8MTf3Sn5+pcM7wQoEMH06mM1w44aDt4wQqtchLyEePQrJyTB5MtVxIIox6PQIqTRCKtUajXlVVQaTKcixFQ75fJg9G9ykeCNCXqfjJbA//7RkryeegMhIqkNB7oLLZHZt6AFvIogLOTn+AkG4VMppfx1nzF4IOU3HS2DkgISYvVATGDRaYlRUWV3dtaIio8kUKpGE+fpSHRRCyI6Ol8DwUVPUAjIfH5mPj4kgSmtryTl6k4ndztIeKhUcOgRjxgA+kYaQI3TUThwItQCDRgsRi8n3VSrV2ezsa0VFdVptGzdHp0NNDWzfjmN8I+QQHSOBlZRQHQHyeEEiUWJUVKSfX55CcSYry9oyawUeD556ypLGtm+HNmdBhFCDDpDA/vgDtmwBaisFI28h5HDigoOToqP96gfVJAAKFApTy58kI3NYZCS4phoIQl7N2++BHTsGly/DpEl41wE5FrOhegudRrucm0un08N9fWU+Pg/+JI8HI0c6PT6EOgCvTmDl5ZCcDBMnQqdOVIeCvBMNIEQiCZFIDCZTvkKRXVHRPyoKR2VGyDW8OoEFBMALL0DDIPQIOQ+LwYj294/29ycnC6urlTqdXCrlPvA5MLMZjEa8oohQG3h1AiNLISDkcqESSZVKlV5SojMag8TiUImE2VTB6CNHoLQUpk3DHIZQa1GWwHQ63Zw5c6yTRqPRXD90E0LeQSoQSAUCgiCKa2vL6uqs3fFtJSbCli3w44/w5JOYwxBqFcoSGIfD2b59u3VSqVQuWbLEAdtNSQGZDIKDHbAphNqN1uhJMgA4n5PDYTLlUqnEem1AJIIZMyw57OhRGDuWskAR8kDedQkxJQUOHYLRozGBIffUPzJSrdfnVVWllZT48vldAwPpNBqIxTB9Oja/EGotL0pg165ZsteIEdCzJ9WhINQkPpsdGxQEANUajSV7AWgNBqZY3ORNMoRQE7wogdXVwZAh0K8f1XEg1CKShpGatUbj7aIigiDCfH2DxGLshY9QC3lRAktKojoChNpCwuP1lcuNZnOBQnE+OztIJJKXlUFsLNAwlyHUnDtXLW7dukV1JAh1aEw6PdLPb0BUVASTCQcPwm+/3S4rU+n1VMeFkPu6k8A+++wzqiNBCFnQxGKYMgXS0gKuXcssLz+TlZVVUWEwmaiOCyG3cyeB7dq168knnywoKKA6ntbIz4eNG0GjaWaVqiqoq3NhSAg5RHg4TJwovnEjQSRKjI4WsNlXCwowhyFk404CW7BgwUsvvTR16tRPPvnEYDDYrHTt2jUqYmtWURH89BP4+0PDnXAb2dnwwgswbRo88QS89RZUV7s8QoTao1Mny/9gHx8aQKBI1EcuZ9UPp1laW3slP78SR1dAyJrA/v73vw8fPvzkyZNcLnfYsGHHjh2zrmEwGHbu3EldhPYoFLBzJ0RFweOP212u1cKbb0JmpuU9QcD58/D++66OEaH2YtrpYxUoEnULCqpUqc5mZd0oLlbjTTLUgd35C+FyufV/L8xFixZNmzZt6NChAQEBPvVjQ+h0ukGDBlEd573EYkhMhH79muqmdeECVFXdMyclBYqL8flm5A24LFZXmQxkshqNpk6r5dc/AW0mCDr2WkQdjO0p3o0bNxYsWJCRkUGn003119z1rTzF+/XXX48fP67T6Z588klnZT46HQYMaGa53esrSqVTYkHIFdLSwGyGuLjG88Q8nrjhEnpqYaHOaAyVSILFYsxkqIO4k8A2bdr05JNPvv/++2vWrBEKhd9+++2zzz5LLtLpdB988EELN3fhwoXVq1efOnVKpVL17dv38OHDkZGRTgu+SQkJlrZZ42FyJRKIinJ9IAg5iEIBp04BkwkxMXaXPxQWZjKbC6urL+bmMun0HqGh7Pp7Zgh5sTv3wL755psePXp8+OGHkydPTktLs2YvsuruhAkTWri5b7/99rHHHmMwGCKRaNiwYZs2bXJYpFottLgXVkgIzJ9/9/oihwOvvWb3hgJCHmLgQOjfH375BW7fbmoVBp0eIZX2j4yMCwlh1RemUuv1dTqdawNFyHXufKlfvHhRJpPt37//cXvdIvr27dvCzV27dq1///7ke7lcnpKS4pgwdTrYtg3CwmDUqBZ+YsoU6NULLlywZK/BgyEgwDGBIESZYcPAbG7JaRyn4WSNRqPlVVTUarUBQmG4VMrBkzjkXe78hx46dOiuXbuEQmE7N1deXi4QCMj3QqGwvLy83REC3WSCnTvBaLSchLZGp06WF0LeY8SIVq3OY7HiQkIAoEKpvFFcLORwushkTgsOodYxmaCd17nvJLCXX365/dkLAHx8fKydPnQ6XeNt5uXlXb58uakPauvZXeR/9aq5trZuwgSzXg/YadiLKJVKhUJBdRQdAgMgsv6PkfyF51RXi7lc3/q+x86AR9Yr1dTU1Hehc8CwCXl5zG++4d28yeRyYeRI3cyZGiaTaO1GhELhnQTW8rtczQsLC6tq6MBeUVERFhZmXWQymZpKUWQCIwj7P0BpTAwhFps4HEsjDHkRk8lkxGPaDjSAVv/R1wvk88vU6vzqah6LFSgQ8B19aRGPrFci+6W3/8gqlfTVq4W1tTQA0GjgwAGOwUDMndvqmklms9nB/3EnT5588OBB8v2pU6dWrVplXRRVr6kPKpXKv/76y+4iGp8vjY52bJzIHVRVVQXgzck2Ky+HX36BJ54AiaQNnw6p/1ep0+VWVckkEh6L5cDQ8Mh6JbLt5efn187tnDkDtbX3zDl2jLt4MbcNQ7o6eAy96dOnA8CHH364dOnSXr16jWpxnwuEUOtIpcDnw/bt7Sn3KeRw4oKDyeylUKvPZWfnVVWZzGaHBorQPe4v7Gc0tvF/sYNbYCwWa+vWrWVlZWw2W9KmE0OEUIswGDBliiWBbd8Oc+ZAG05f7+XL5/eLjCyuqbmcl0en0eR+fv6OuC+OkI3u3W3nhIRA29p1TulWK8OeTgi5AIsFU6dCenr7sxeJTqOFSiShEonBZKptuGOtNRq52P8eOU7fvvDww3D06J1JDgcWL27jpvD/JUKejMuFnj0dvlUWg+HX8DxMflVVhVIpFQjkUinXobfKUIf1xhswZAgkJ4NQCI88AqGhbdwOJjCEUHO6yGRdZLIqtTq9tFRnMMSHhvId1OBDHRaNBoMGQftr5WICQ8iLqFTA4TijbJqUz5fy+WaCIAu0qfT6Oq02UCTCssHI1UpLQSqF+osBDu6FiBCi0p49sHt3y6uGthadZkFWq9IaDOeys1MKCqrVaiftDiFbxcWwdStcvEhOYQJDyIuMHm35C9+7F5zcFZ5Jp0f6+SVGRXWRyUpqa28UFzt1dwhZlJXBjz9CVBQkJpIzMIEh5EUCAmDaNMjLs56iOhufzY4NCureMFbsjeLirIoKfI4MOcWJExAWBhMmWIcawXtgCHmXwECYObONj9W0W7fg4NLa2mydTpmbGyqRBItENBxdEznKhAnAYECjYozYAkPI6wQEgCMqrrYBDSBIJArjcHqFhxtMJiWORoYciM22KV+PLTCEkOMx6XS5VEq+V+p0qYWFYh5P7ucnwC74nkavh23b4OxZIAhJUpJu1iyqzo7swASGkFczGiEtDeLjKQxByOEkRUfXaDSZ5eVqvT5ELI5oyG3I/b33Hpw/T75lZGbya2pg0SJX7VulgpSUZkaCdJtMihByhuJiOHgQmhjqwZXEPF5CaOiAqCgJn0/OqdVqzU0MooTcRFqaNXvdsX8/lJW5ZN8aDezYAenp0PSFaExgCHm18HAYNw5On4azZ6kOBcibZKKGgTSVOt3F3Nwr+fmVKhXVcSH7Cgps5xAEuOKhCa3Wkr3MZnjqKeBwmlqLskuIOp1uzpw51kmj0WjGQRwQcoZu3cBkgosXoW9fZxTpaLMQsThELNYaDHkKxa3S0pigIN+GxhlyE5GRtnPodGg0ULHTaLWWvDVlCjT7X4Ky/80cDmf79u3WSaVSuWTJEqqCQcjL9egB3bu70c33RrgsVleZDBqGsFDr9UU1NRFSKfve/maIEl26wPDhcPz43TlTp7rkGQ2JBOpHl2yeG52OIYScyC2z1/34bLaIy71WWGg0my1NNImEjk+SUWrFCksb/vRpIAjDoEH6yZMFVEd0FyYwhJB7kfn4yHx8TARRXF19o7i4R0gI1RF1aHQ6TJ5seVVW1tbPcFoCIwho5cmKZ5yUIYQc6fhxuHGD6iAegEGjhfn6WrPXrbKya0VFdfhktLcymeDHHyElpVUfwhYYQh0PlwsHDlhOrWNjqQ6lpbrIZHVabW5lZZ1WGyAURvj54U0y72Eywc8/Q3k5PPJIqz6HCQyhjicxEQgC9u0DGg1iYqiOpqV8uFyyQVahVGoNBjaDQQCYCYKBN8k83b59UFoKM2ZAK59wxwSGUIeUlARMJvj6Uh1HW/gLheQbvdF4taCAQaeH+frKfHyojgu1Va9eMHRoa7MXJjCEOrB+/aiOoL04TGa/yEi9yZRfVZVVUSHicq0DuyBPIpe37XOYwBBCno3NYHQKCOgUEKAzGsk5lSqVgMPhutNT28gZsBciQqheTQ3VEbQXpyFjMWi09OLic9nZeVVVJizx44ZMJigpaf9mMIEhhOoHa1+/Hq5dozoOx5Dw+T3Dw/tFRjLo9Mt5eWV1dVRHhBoxGmHXLtizB9p9boFNbIQQgEwGgwbBr78CQVA79ooD0Wm0UIkkVCIhJw0mU1pJSYRUKuHxqA6tAyOzV3k5PPVU+6vDYAJDCNUbONDyhXLoEMjlIBJRHY3jsRiMzgEBuVVVacXFUoEgQirlsVhUB9Xx3L4NFRUwfbpDKipiAkPI3d24cecpz65dLX/4ThwMMjHRsg9vzF4kPpvdLSgIAKrU6qzy8jgsUuV6sbEQGQkNQ+q0EyYwhNzapUvw1ltgMgGZyU6dgq++cmaK6RhjJUv5fGnDOB3ZFRUVSmWYr2+QWIxPRLuCg7IXduJAyN1t3Hgne5HKy2HvXirj8T5R/v49w8N1RuP57OyUggIlllv0HJS1wMxm8+XLl62TGo3GYDBQFQxCbis313ZOXp6r9l1cbNl9YqKr9kcZFoMR6ecX6eenMRis3e41BgPeJHMAtRp+/RVGjQKx2OHbpiyBmUym441GSdPr9To88UHoPqGhcPv2PXNcV2uithZOngStFoYPd9UuKWbNWCaCuFVaqtbrZSJRuK8vCwsHt41SCeTAxc55qJyyBMZisZYvX26dxBGZEbJr9mx4910giDuTEglMmuSqfcfEwMSJsHcvGAyWM+iOhEGjJYSFEQCltbUpBQUA0Let5Y46LrUatmwBDgemTQPnPLqAnTgQcmtJSfDRR7BzJ5SXQ5cuMHeuawvwduliSZilpS7cpRuhAQSJREEikbnhDKK8ro5Bp0sFbjQqsfvi8SA+Hnr3dmCvDRuYwBByd717W16U6dTJ8urY6A0jtvhwuXlVVTdLS8U8ntzPT8BmUx2aG6PRYOBAp+4BExhCCLUUl8XqGhgIADUaTVZ5uVQgsFb6QK6H3egRQq1RVwdaLdVBUE/M48WHhpLZy0wQF3NzC6urrVcaO678fNDrXbY3TGAIodb4/XfYuhWUSqrjcCN0Gq1XeLjJbL6Qk3MlP79SpaI6IoqkpcH27XDjhst2iAkMIdQaY8cCnQ6bN0NlJdWhuBEGnR4hlQ6IiuoWFKRQqciGWMdqjl28CPv2wZAh0LOny/aJCQwh1Bo8HsyYAb6+cOEC1aG4Iy6L1VkmI7t8FNfUnM3Kyiwv1zcupuKVzGa4eRNGjXLxY+/YiQMh1EpsNkydSnUQHiBELA4Ri8vq6q4VFhrN5mh/f3+hkOqgnINOt5zW0FxdSxITGEKo9bAyRYvJfHxkPj4mgtAbjeScKrXaWkrYe7g8e2ECQwg5gsnkKSmNICAnB4xGiI52acgMGs1ap6pKpcooKRFyuXKp1MdpD/k6nVYLHA4lecsKExhCqN127QJfX3jkEWq/zh6ooADee8+SwADA3x/efhvi4igIo3NAQOeAAKVOl1tVVafR9IuKYrj3780OhQJ+/NHy6xs8mMIosBMHQqjd+veH69fh55/BjceUIIi72QsAKipg5UpQqymLR8jhxAUHJ0ZHk9mrtK4ur6rK5BFPkhUUwObNIJFAv37UBoIJDCHUbpGR8PTTUFYGf/xBdShNysm5m71ItbVw6RJl8dgIEAoZdPrl3NxLeXlldXVUh9M0goCDB6FLF5g6FTgcamPBS4gIIUfw94dZs9z5TpjdxqH7tBjpNFqoRBIqkehNpvyqKo3BIHfP0bFpNJgxA9yjEwomMISQg7h3H/FOnSxJtqLi7hwOB3r1sr8yQcCePfD776DXw4ABMHu26xobbAajU0CAdfJibq5PfXcPrvuMruke2YvKBKbT6ebNm2edNBqNehdW0EIIOR1BuFWfDgYD3n4bVq6E2logs9fy5U2OTfP117Br1533ubmQkQFr1rgw1kb6yuVVKlV6SYnOaAwSi8N9femu/63q9eCWdfcpS2AcDmfjxo3WSZVKtWzZMqqCQQg53pEjYDTCmDFAd5d77XFx8P33cOkSGAzQu3eT2au6GnbvvmdOcrLl5cIaSfeQCgRSgYAgiGIy9wIYzWYGne6iPFZebknmgwZBSIhrdthyVF5CZDYaZJrhxpfOEUJtERtryQMKBUyc6D4XnQQCGDr0AeuUlIDZbDuzsJCyBEai0WghYjH5vlajySgr47NYEVKpxKm/21u3YP9+CA+HmBhwv64l7nJmhBDyNuHhMHs2aDSwdy/VobROWBgw7zu3j4ykJhi7pAJBYlRUZ5mspLb2TFZWvkLhlN3odPDrr5a26hNP4CVEhFAHI5HArFmWHOZRhEJ4+mlodIsDBg+m5pHn5vHZ7NigIAAwNBQLLq6pCfDxYTrqmi2HA889Z2m0uitMYAghZ2Kz3fPkvXkzZ0JoKBw5YmmEJCbCpElUB9QsVsMtGBqNlpyfTxBEmK9vkFjsgJtkbpy9MIEhhFxOowEej+ogHmz4cMvLswSJREEikcFkKqyuPp+d/VB4OPf+i6HNq6gAf39nxedoeA8MIeRCqanwzTeQl0d1HN6MxWBE+vkNiIois1eFUplWUqJ+4HNKZjP8/jt89x1UV7so0HbDFhhCyIW6dbNkr+3bYeBAGDTIrR4U81b+QiGTTr9dVqY2GGQ+PuG+vqz7e31XV8Mvv4BCAZMmgURCTaCthwkMIeRCTCY8/jhERsKJE9Czp5sX7/AaEj5fwucTAGW1tYXV1ZF+frZr1NYCgwHPPAMiETUhtgkmMISQy8XFQWysOxdO9Eo0gMBG+Sm5oIAgiAip1E8ggIgImDmT0ujaAhMYQogKmL2o1jMsTGsw5FVVZZSWinm8LjKZnUuL7g0TGELIDVy5AqGhIJNRHUeHcfky8Pnc2NiugYEAUKPR0OrvRxpMJqK+oDDV8bUI9kJECFGNICAzE77/Hs6eBY8Y0dGj1dXBjh3wxx+g1VrniXk88vFnvdF4rbDwQk5OYXW12e2PBbbAEEJUo9FgyhRLI+yPP6CsDCZMoDog72UyWU4UhEKYOxfu78oBIOBwekdEmMzmwurqi7m5Eh6PbKK5J0xgCCH30KsXyOWNmwXI8RgMmDgRgoObHyKAQadHSKURUqm1CZZTWckwGPjuMyZZPUxgCCG34Z5jEHuZ0NCWr2t9TM9PIEgvLFQbDKEmU7hUymltgQ/noCwIgiBKS0utk2q12nz/AAYIoQ4uLQ1iYtxnRDHPo1BAcTF0797OzfhwudH1DzgTHM6N4uIuMpnQZWNUN42yBGYwGD766KPGk3XuN9gMQohKdXVw6BCcOQOjRkF4ONXReBqTCc6fh9OnISSk/QnMyl8o9G94/LxGo7ldXh4hlQZQ9EA6ZQmMzWavXbvWOqlUKpcsWUJVMAghd+TjA889B0eOwNatMHQoJCVRHZBH2bEDSkth+HDo3dtJexDzePEhIXkKRWZZmZDLlUulPlyuk/Zll1tcx0QIIfuEQpg4EXJz3WdMZ48xdCj4+jp7PBQ2k9k5IKBzQIBSp1Oo1WQCMxME3SVVLjGBIYTcnlxOdQQeKCzsgatcvAh//QXkiJ19+7Zrb0IOx3pXLKO0tEajCRaLQyUShjPvX2ICQwh5GoKAX3+FhAS8MXaH0WjJRWo1jBzZ8g/98ANs2nTn/YEDMHeuw6ohxgYFmQmiuKbmcl4enUbrFhzMd86gppjAEEKeRq8HnQ62boVOnWDYMAgIoDog6hAEpKTA6dNgMEBiYss/V1EBmzffM2fzZnj0UbsPN7cFnUYLlUhCJRKDyUQWqdIbjRqDQezQsUyxcypCyBXKyqC42EHb4nBg8mRLe0Gng/PnHbRRj5WSAnFxsGABDBjQ8g/dvg02Dy6ZTHDzpuOjYzEYzIariIXV1WeysjJKS7VGo0M2ji0whJBzlZXBhx/C9euW91FRsGKF5V8HCAuz5DAHfRV6KhoNZs9uw7igdltaTm3KspnM7sHBAFClUqUXFzMZjB4hIe3cJrbAEELOtWrVnewFANnZ8NZbloaTw9iUhMjMhJwcx23dzRgMcO4cNCoBAWQOa70uXaBnz3vm9OplmekCUoGgZ3h4+7MXtsAQQs51+zbcunXPnPJyuHKlVfdrWrm/5GTw97d8H8fHg5vV7mu7mho4f/7OiYBIBI4osLtqFXz9NZw4YXk/ZAi88EL7N+lqmMAQQk6k0bR0pmOMGQP9+1sy5OnT0K2b9yQwhQIKCmD4cOjeHRzUo08ggFdftbw8FyYwhJATxcSAWGxpP1ixWJCQ4Mxd+vrCyJEwYoTttTWj0fZ6ozvTaKBxh73ISHjmGSrjcUuOvwem0+k+/vjj2bNnO3zLCCGPw2bD66+DtcAQkwlLljisr3Zz7s9e//0v7NwJ16+DXu/83bdVZSWcPAnr18NPP1Edigdw8PlITU3N+vXrc3NzFQqFY7eMEPJQ/fvDd9/BmTOWJDJgADji5n3r0enw+OOW7HXwIJw+Dc8/T0UQD6JWw7ffWlqQcXHQrRvV0XgABycwsVj82muvff311/n5+Y7dMkLIc/n7w/jxlEZAp0PnzpaXwQD3n16npVnyqljsunjMZigpsWSszp3vzuTzYd48l7RPvYTnXBFGCKH2Y7FAJrtnjlIJv/5qaR76+EBkJDz2mHMDUKthzx4oLrbsUSa7J4E19XwWagImMIRQxyYUwtKlUFoKBQWg1dou/esvYDAs6/j4QHi45X1LqFSQl2f5V6kEkeieAU14PEve6tkTwsIsi1A7tDeB/fnnn8uWLSPf79mzJ6zp+seXLl3auXNnU0v1en1tba3dRWq1+qYzKpwgqhUWFlIdAnIKTz2yIpHlde+3TWhWFkutZmq1DJ3u9uOPmxr1y5ddu+ZTWAg0Gs1sLuvRo7bRt5+grCzszBkjl2vicJRBQRU2Y5qQNYiLix1XXMsVyDGHKyoqqA7kjpCQkPYmsIceeuirr74i3wc0W4ckJibmhaaflFOr1WvWrLG7iM/nx8TEtDNO5J7wyHor7zmy1h/EbO5sMzIInw/l5WA2A5MZHBERLJXeXdS1KwwZwqxvInAAvOOyYGVlZf01Tjf6adqbwCQSSd+WDSMjrNfUUqVSyWhh2xwhhFzv/nGtwsObHM/FJcM5Igc/B1ZVVfXll1+ePn1arVavXbs2NTXVsdtHCCGESA7uxCGVSl+s59jNIoQQQjawGj1CCCGPhAkMIYSQR8LnwBBC3q+4GDZvhtu3ITAQpk2DHj2oDgg5AiYwhJC7yMoCpRI6dwY+35GbLS+HhQvvVMTPzoYLF+Cjj2yHc0SeCBMYQoh61dXw7rtw4waQj1ctXQrDhzts47t33zOei8kEmzZhAvMGeA8MIUS9Tz+9k73IYoEffwwOrAdeUGA7x0NLhSAbmMAQQhTTaOD8+XvmGI1w6pTDtn//08ZNPX+MPIu7JDChULhu3Tq7i7p06eLycJAr4JH1Vq09smYzEITtTKPRYfFMngy+vncnmUwc3LgtpPWojuIebnQPjNd4/OxG6PdXcEFeAY+st2rtkRUIID4eGtftodEgKclh8fj5weefw+bNkJkJMhlMnw5eU6nRlWjuVx+LRtx/5oMQQq5VXAx///udm1VMJixYABMnUh0TcnuYwBBCbsFggORkqKuDHj1sh5xEyC5MYAghhDwS3oRACCHkkTCBIYQQ8kiYwBBCCHkkTGAIIYQ8EiYwhBBCHgkTGEIIIY+ECQwhhJBHwgSGEELII7lRLcSmHD169MyZM1RHYZ/ZbNZqtXzHjr7nOGq1msvlum3Jwbq6Oh8fH6qjsE+v1wMAm82mOhD73PlXh38U7eHOR9bd/iimTJniAZU4Jk+evHr1aqqjsK+0tHTz5s3Lly+nOhD71q1bN3HixHB3HTritddeW7NmDdVR2Hfs2DGdTjd27FiqA7HPnX91RUVFO3bsWLp0KdWB2PfZZ59NmzYtJCSE6kDsc+cj+/vvvwPAqFGjqA7kjoiICA9ogbHZ7B49elAdhX0SicTf399twwsICOjSpUvnzp2pDsQ+sVjstr+627dva7Vatw3PnX91QqEwICDAbcMLCAjo2rVrZGQk1YHY585HNj09HQDcKjw3bUcjhBBCzcMEhhBCyCNhAkMIIeSRPOAemDsLDAx89dVXqY6iSa+88oq7DQHuKUaMGOHO/Zs+/vhjqkPwVIsXL/bz86M6iibhkW0VTGDtwmKx3LY7EwAEBQVRHYKnEovFVIfQHLlcTnUInio4OJjqEJqDR7ZV8BIiQgghj4QJDCGEkEfCBIYQQsgjecA9sMmTJ1MdAnIKPLJeSSKRjBw5kuookON169aN6hBseUApKYQQQuh+7tUC02g0f//73zkcTkVFxapVq8LCwlq+FLmzwsLCf/zjH2KxWKPRfPzxxzwez7rIbDZPnTpVJpPxeDyNRvPPf/5TIpFQGixqhbNnz27atEkgEPj6+r711ls2S1Uq1b///e+amhqFQtGrV68XX3yRojBRq23evPny5cs6nW7EiBFTp05tvEilUq1atUqtVhsMhrFjx06aNImyKAl3smDBgv/+978EQZw8ebJ3796tWorcWZ8+fc6dO0cQxGeffTZ//vzGiwwGw+uvv06+X7x48TPPPENRjKjVampqwsLCqqqqCIKYOXPm+vXrbVZ49tlnv//+e/L9Rx99REWMqC1OnTqVmJhoNpv1en1cXNyVK1caL124cOFzzz1HEERdXV1ERERycjJVcbpRAtPpdD4+PllZWQRBmM1mqVTa+PfS/FLkzlJTU6VSKfk+MzNTIBBotdrGK6hUKvLN//3f/yUlJVERI2qL7777bvTo0eT7HTt2JCYmNl6ampoaFBRkMpkoig613YIFC1auXEm+X7p06ZIlSxov7dy58/bt28n3zz///LJly6iI0cKNeiGWlJTU1dWRz97SaLTQ0NCMjIwWLkXu7ObNm9ZHqkNDQ1UqVWFhYeMVyLGjysrK9u7d+/TTT1MUJmo1myN78+bNxktTUlK6d+8OAFevXr19+zZFMaK2yMjIsB7ZsLAwmy9bDodjNBrJ93K5PDMzk4oYwb3ugVVWVtJoNOvdEYFAUFFR0cKlyJ1VVVVZhzfkcDhMJrOysjI6OrrxOmvXrt2zZ09sbCx2TfQgjY+sUChUKBRms9k6VmRGRkZNTc2//vUvkUi0devWxMRErJPkKSorK61H9v4v2wULFqxdu7ZLly51dXXJyckKhYKiMN0pgYnFYvJSIYfDIQdObVzOp/mlyJ2JxWKtVku+N9a7/9gtqXfw4MH+/ftnZGRwuVwqIkWtIxaLy8vLyfdqtdrHx6fxSMcCgSA0NPS1114DgIEDB/bs2fPdd99125GaUWON/2Y1Go3NH+zChQsfeuihs2fP9u3bNzY2lqIYwb0eZA4ODmaz2dZUX1ZW1njQueaXIncWGRlpPXClpaU2BSTNZrP1WY7Ro0cXFBTg5SZP0fjI3v8nGR0dXVRURL4PDAw0m821tbVUhIlazeZv9v4v26FDhy5atGjgwIFZWVkUPh/mRgmMx+ONHz/+5MmTAJCWlsZmsxMTEwHg559/ViqVTS1F7q9fv348Ho9MS8eOHXv88ceFQqFard61axcA/PHHH0ePHiXXTEtL4/P5eGriKSZPnnz58mW9Xk8e2WnTpgFAUVHRkSNHAGDcuHG5ubnk/c6cnJzQ0NDAwECqQ0Yt8uSTT5JftuRfKHlkk5OTr169CgC7d+8mF5WVlR0+fHjBggVUxeleDzKXlJS8/PLLcXFxycnJ77zzTr9+/aqqqgIDA/ft2/foo4/ev5TqeFFLXbx48cMPP+zRo8fVq1e/+OKLkJCQP/74Y9SoUQUFBSUlJStWrOjXrx9BEOfPn1+8ePFjjz1GdbyopbZu3frbb7+Fh4fn5+dv2LCBy+WuWbPmv//9b05ODgCcPn36008/7dmz54ULF1599dURI0ZQHS9qqRUrVuh0OrVaHRwc/O677wLAE088wWKxtm/fvmrVqqqqKl9f3+Tk5FdffXXYsGFUBeleCYyk1+vZbLZ1UqlUCoXCppYiD9LMkSXvjeGtLw9lc2RVKpVAILBOarVaPLKeyGg00uuRk3q9nkajsVgs8gFirVbbuCIBJdwxgSGEEEIP5Eb3wBBCCKGWwwSGEELII2ECQwgh5JEwgSGEEPJIblSJAyF0v48++oh81ioqKuq5556Li4vbt2/fnj17NBrNI4888uyzz1IdIEKUwRYYQm7tzTffHDNmzN69ezt16hQXFwcAjz32WF5e3sKFCzF7oQ4Ou9Ej5AEef/zxP//88+rVq9HR0W+99ZZEIiFrDCLUkWECQ8gDFBUV9ejRIz4+fsWKFV988cXevXtpNBrVQSFEMUxgCHmGH374YdasWXK5/NKlS35+flSHgxD1MIEh5BlMJpNcLq+qqrpy5UpMTAzV4SBEPUxgCHmGt99+GwDWr18fHR196tQpBoNBdUQIUQx7ISLkAQ4fPnzjxo3333//yy+/PHfu3Jo1a6iOCCHqYQsMIXdXVFQ0ceLEQ4cO+fr6AsCMGTN27dp16dKlHj16UB0aQlTCBIaQWzOZTGPGjPnwww/79+9PzqmqqoqLiwsJCTl37hyTibUIUMeFlxARcl+XLl2aP3++yWQ6dOiQdeaOHTv69OlDo9Hmz59/7tw5SgNEiErYAkMIIeSRsAWGEELII2ECQwgh5JEwgSGEEPJImMAQQgh5pP8PAAD//9v+jvhlAwh2AAAAAElFTkSuQmCC)"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"// deno-lint-ignore-file\n",
"import pl from \"npm:nodejs-polars\";\n",
"import plot from \"../plot/mod.ts\";\n",
"\n",
"const data = await Deno.readTextFile(\"assets/X_Y_Sinusoid_Data.csv\");\n",
"const df = pl.readCSV(data, { sep: \",\" });\n",
"\n",
"const real = pl.DataFrame({ x: new Array(100).fill(0).map((_, i) => i / 100)}).select(\n",
" pl.col('x'),\n",
" pl.col('x').mul(2).mul(3.14).sin().alias('y')\n",
");\n",
"\n",
"const draw = (x, y, title = \"Sinusoid Data\") => \n",
" plot.DrawPlot(\n",
" { \n",
" title,\n",
" width: 6,\n",
" height: 3,\n",
" XLabel: \"X\", \n",
" YLabel: \"Y\", \n",
" }, \n",
" { type: \"line\", data: [real.x, real.y], legend: \"Sinusoid\", lineDashes: [3, 4], lineColor: \"#ff8888\", lineWidth: 1 },\n",
" { type: \"scatter\", data: [x, y], legend: \"Data\", lineDashes: [3, 4], lineWidth: 2, glyphColor: \"#4444ff\", glyphShape: \"circle\" },\n",
" { type: \"trend\", data: [x, y], legend: \"Trend\", lineDashes: [4, 2], lineColor: '#aacccc', lineWidth: .5 },\n",
" );\n",
"\n",
" const comparePredicted = (x, y, predicted) => plot.DrawPlot(\n",
" { \n",
" width: 7,\n",
" height: 4,\n",
" XLabel: \"X\", \n",
" YLabel: \"Y\", \n",
" }, \n",
" { type: \"line\", data: [real.x, real.y], legend: \"Sinusoid\", lineDashes: [3, 4], lineColor: \"#ff8888\", lineWidth: 1 },\n",
" { type: \"linePoints\", data: [x, y], legend: \"Test Data\", lineDashes: [3, 4], lineColor: \"#8888ff\", glyphColor: \"#4444ff\", glyphShape: \"circle\" },\n",
" { type: \"linePoints\", data: [x, predicted], lineWidth: .5, legend: \"Predicted\", glyphColor: '#f00', glyphShape: \"pyramid\" },\n",
");\n",
"\n",
"\n",
"draw(df.x, df.y);"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Polynomial Tranformation\n",
"\n",
"First we try to predict values without polynomial transformation:"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/markdown": [
"![name](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAqAAAAGACAIAAAD9Gkc5AABiSklEQVR4nOzdB1xT5/4/8E8Ie08FwYECIqKCqOCoC2e1WrVaR+sorbZ6f73W2/Gv3tZxu9vrbWtv1XvtVVtb99a6Fy7cigIiooAsAZmBMDL+r8PBGELAhJzkJOH7fuV1b3Jycp4v8TTf5znnGZZyuRyEEEIIMS+WfAdACNGv48ePHz16VCgUfvnll3zHQggxHAu+AyCEcODGjRvz58+3s7MLCwsbOXLksGHDYmJiCgoKAAwbNqxTp06bNm3iO0ZCiEFRgifEHISHh69YsaKysvLNN988cuTIgQMHCgsL+/TpI5FIND/I3r179RkjIcSgKMETYoZsbW3feeedhw8fXrt2rbF9VPrfZGdnL1q0yCDREUIMgRI8IebJ3t4ewOPHj1W2y+XylStXjh49evbs2YMGDfr5558BJCcnz549OycnZ9q0ab/++itPIRNCuESd7AgxT7GxsTY2NhERESrbN23a9OOPPyYmJtrb2+fn5wcEBPj6+o4fP37SpElJSUmbN2/mKV5CCMcowRNiVhISErZv33758uUNGzasXbvW19dXZYdffvll1KhRbPvey8tr+PDh69evHz9+PE/xEkL0hS7RE2JWioqKiouLhw4dmpSUNGvWrIY7pKWltWrVSvHSx8cnLS3NsDESQgyBWvCEmJUBAwa89dZbTezg4OBQVVWleFlZWenp6WmQ0AghBkUteEJalh49ety/f1/x8u7du926dWOfy2Qy/uIihHCMEjwhZkIsFgOoqKhoOP+0vBb7fPHixWfPnj116pREItmyZcujR48++OADAEFBQTk5OUePHo2Pj+cjfEIIxwQ0Fz0hZiAlJeW3335jm+C2traLFi1iu9GxU9WePXtWKpW6urrOmzfPyckpNTV1w4YNubm53bt3Hz9+fLt27QBIJJKlS5fm5uaOHj36lVde4fsPIoToihI8IYQQYoboEj0hhBBihijBE0IIIWaIEjwhhBBihmgcPNE7mQwpKZBIEBQEKyu+oyGEkJaBEjzRr7Q0LFuGrCzmuYcHlizB00HXhBBC9Ih60RM9kskQE4PMzGdbXFzw6694OoCLEEKIvtA9+BanoADffYc5c7BoEc6d029Zqan1sjuAkhJcv67fQgkhROHRo0cnT56MjY1NT0+XSCTsxsrKyhs3bhig9KysrIyMDJWNOTk5n332Wbdu3eLi4vRaurEk+PLy8r/85S9q30pJSTF4OGZLJMLChThyhMm7t29j+XIcO6bH4qRSNRuf/iemL3TCEK3QCWOuJBLJ9OnT33333QcPHty+fTsmJmbatGnsWxs2bOjZs2d+fn4zDqvVCRMTEzN9+nSVjT4+Ph988MGdO3fKy8ubEYDmjOUevFwur6ysVPsWzY/NoUOH8PhxvS0bNmD4cH0VFxAAV1cUFz/bYmeHnj31VRyLThiiFTphzNV///vfhISEW7dusS/nzp0bExPDPp8xY0bnzp29vLyacVitTphVq1ZJ9N2maZyxtOCJYahcMAeQl6e+nc0JS0t8+CEcHete2tvj44/h7Kyv4gghRCElJaW8vFz69AfOysrqyy+/rL2yyAgPD2e7oJWUlBQXF8tksvLy8suXL+fl5bFtzuJabDovLS0tLi5WLMMoEoni4uJu375dVlamKE4sFl+/fj0hIaGmpobdUllZ2apVq7Zt2yr2kcvlaWlp58+fT09PN8A3QAm+ZfH3V93i6wuhUI8l9u6NzZuxYgU+/RSbNqFvXz2WRQghCpGRkampqaNHj7548SK7xdfXl83o3333nZubW3Z2NoA//vjDzc1t0aJFM2fOnD59eseOHW/fvl1VVfXDDz+4ubk9evQIwOHDh0NCQr7//nsASUlJvXv3jo2N3bdv39ixY9kjb926NTIyMjY2dsuWLV27dr1w4QKAe/fuTZ06dciQIew++fn5Q4YM+etf/3rr1q2tW7ca4iuQG4eysrKYmBi1b929e9fg4ZgtsVgeEyMfNqzuMWKE/Px5vmPiGp0wRCt0wpix999/38KCacd27tx59erVUqmU3X7z5s3aK5qZcrm8oKAAQFxcnFwul0gkXl5eK1askMvld+7cqR3om8Z+JCws7KuvvpLL5ZMnT547dy678dChQ3K5PDc318HB4ezZs+zGr7/+OjAwsKamRi6XL1u2rFevXuz2efPmRUVFyWQyxS3p48eP6/XPpxZ8y2Jri++/x/Tp8PFBUBD++U/068d9Kamp6rfLZKhd0ZQQQgzh22+/ffDgwT/+8Y+qqqp33nnnzTffbHp/oVAYEhJSWlraxD5eXl67du3asmWLRCIZNWoUgJMnT4rF4n5Pf0yjo6NTaql8cPfu3WPGjBEIBDr/WZqiBN/iZGSgVy8mxw8ZgtBQjg8ul+PAAezdC7X/gezZg1OnOC6REEKa0L59+7///e/37t2bOXPm+vXr2fZ6E56bgOfOnTtx4sQ5c+a0adNm9erVALKzs52cnNhLBQDc3d3ZsXDKn6qurs7Ly/Pz82vq0JcuYdeuukft7YNnMjOfvXXliuoHFW/t2qW8mc8EX6DkyZMnNOWOYVy8iPx8dO6M4GCOjyyTMak9JQVTpqjvSde+PR484LhQQghRa//+/YrnVlZW77//fm234jwdD2tra7t27dq8vLyYmJj58+cnJCR4eXmJRCJFCispKQHQoUMH5U9ZW1u7ubk9Z1yclRVsbeseFvWzs1D47C3LBsPfFG/Z2ipv5m2YXHV19bJlyxQva2pq2C+F6NXjxygowEsvoVUr7g9eWIicHEydCh8f9TsEBOD4cWafxnYghBCuHDx4sHv37u3bt2dfPnr0yMXFJSAgQMOPOzg4sK1zxRFY+/bt++CDD5ycnD7//PMff/wxJyenf//+AoEgPj6+R48ete3wS56env4NujR369bt+PHjCxYsaLTIJsYQ+/g09bv54otqN/OW4K2trX/66SfFS5FItHDhQr6CaTkSEuDlpZfsDsDTE/PmqdY7lbm4oEMHiER6KZ0QQpTZ2toOHjz4b3/7W7du3R4+fPjNN9/897//tba2FolECQkJAOLj493d3ZOTkwEkJyf37NkzLy+vuLg4Ozu7rKysffv2nTp1mjt37rhx4yoqKp48efLo0SORSHT69OnKysohQ4YcPXq0bdu2ffv2dXBwWL58+TvvvLNixYqCgoLPP/98x44dAoEgJycnIyOjtLT07t27wcHBq1at6tu37+zZsyMiIjIyMiwsLO7fvz9o0CDLhi1yjhjLXPRsgl+3bl3Dt5KTkzt37sxHUGaoogJlZWjdmu849IlOGKIVOmHM2O3btxMSEoqKiry9vfv379+qtnGTnp5+9+5ddofu3bsnJCSwY+WjoqJSUlKePHkCIDg4uH379jk5OUePHvX09BwyZMidO3eKiopCQkIyMjJyc3Pz8vK8vb1Hjx5t+/SqeGJi4pUrV7y8vKKiotjb8FeuXCksLGTfHTZsmFAoLCgoiI2NraqqGjFiRHx8fFVV1YABAxwVU4VwjRI80YlcDgP2CdUInTBEK3TCEK2Y0AlDvehbKLkceXmortbpIOXl2LgRaWmcRUUIIYQrxjIXPTEwuRwbNmDiRGjc40RVaSm2bIGVlb7u6BNCiFZmz57d2FuffPJJp06dmnfYuLi4zZs3KwbHV1ZWhoWFderUaezYsbb1e60bG0rwLZSFBWxsUFHRzI9LJNi8GXZ2mDIFzTjDS0vh6NhUdzxCCNFWRkbGhg0bnJycUlJSIiMjf/nll5deekksFn/77bf5+fmaJPiCggJPT0+VjVFRUZ6enoGBgatXr540adKFCxcqKipWrFjxt7/9bdWqVePGjWvigCUlJfb29lZWVjr/cc1BP7Etxc6dqJ148RkHh+YneEtLDB2KqVObk93FYqxZgwZLJBNCiE6io6PbtWvn5uZmb29fu7qVvZeXV7t27aKjo+3s7DQ5wosvvihtfPUtR0dHLy+v4ODgadOm3bhxIzw8fOrUqamNzdxZ66233jLMujJqUQu+RSguxv376NOn3kZfX1hbN/+YgYHN/KCdHby9mXjqzwNBCCE6WbJkidrtL7/88oEDB9asWWNjY/PSSy9FR0cDePLkyQ8//JCenu7u7j5lypSuXbv+9NNPV65c+fzzz7t06TJ58uSmyxIKhT///LO/v/8//vGPDRs2APjxxx8fPnwoEokiIiLmzp0rkUh+/fXXnTt3+vn5hYSEvPnmmwkJCbt27crMzLS1tX3jjTfYQfN6RQm+RUhIgIsLlBYtZIwezVs8AQG4fRvDhvEWACGk5Vi7du1PP/108uTJioqKPn36/P7778OGDZs6derAgQP/97//Xb58+eTJkz169PDw8AAwfvx4Nzc3TQ7bpk2bgICA27dvsy8PHz78n//8x8LCIiQkxNra+vXXX2/durVMJhs+fHhQUBCAU6dOtW/f/oMPPvjXv/41dOjQ3NxcbS/dFxdj61bcuwcPD0yYgC5dnrM/XaJvER4+RNeuuh4kIwP5+dzEExDAVDierq1MCCF69Nlnn82bN8/Ly6t9+/ZDhgzZvHkzgGvXrrVv314oFPbt23fBggX29vbs5LKhoaHt2rXT8MgdOnRIezqOaN26dX5+fm3atImIiLh165aVlRWb14OCgtjb/5MnT37ttddsbW3Hjh1bWFiYmZmp1V8hEuHdd7FjB+LjceoU3nsPV68+5yPUgm8Rpk9H4/eVNJKaij170LMnni5trJNWrTB1KgfHIYSQpolEoszMzLi4OHYe+PT0dHZVmIkTJ8bExJw+fTomJqZ///7NO3hRUZHP0xlkxWLx5s2bi4qKsrOzu6hrXHt4eJw+fTotLe3hw4e1i3fIVHaorERNTd1zO7t6U85LJExqV16/RirFL7+gVy/meVnZs+1OTs+eUwu+RbCwgC69OJOTsXs3wsK4ye6EEGIw7MrrkZGRL9fasGHDH3/8AeA///nP1q1bs7OzBwwY0NjN+6bJ5fKHDx+yk95s3rx5zJgx7u7uI0eObK1urlCpVBodHb1r166ePXsOaeSX9PBh/Pxz3UOl615KCk6cUN1f0XtP8amff663A7XgyfNlZ6N3bwwaxHcchBCiJU9PT1tb25qaGpXp58rKyibW+u6775YtW/b55583cRB2DVmVlWT37NmTm5v77rvvstWFyZMnjxw5kp0Dv+ER7ty5Exsbu2vXLg8PD3b2+4YGD0ZUVN1zlW4A/v7o25dpaClTrD4za5b6sKkF33Ll5uKnn1Bbu32OIUMouxNCTNXUqVN//vnnx48fK29ctGgR+8TX15edo57tW5eVldXwCOyc7oqZ3WUy2Z9//jl//vyPP/54UO2Po52dXXx8vEwmE4vFxcXF7G6urq6KA7Lj9G7evMmuUKc2TldXeHvXPWxs6r1la4tp01A7w/0ziryu+JS3d70dqAVv5sRiNDb+08oK5eWoqGjOWHZOSKUoLkZtx1VCCOHGunXrzp8/36lTp+3bt6empi5ZsmTlypULFy4MDw/38fHp2LHj/PnzhwwZkpaWNmrUKGdn59zcXHacW0RERM+ePfv16zdmzJi1a9cqDhgXF/e///2vY8eOq1at+u233yorK+3t7X19fffu3dvn6eDjjz766PXXXw8ODn7hhRfCwsIePnx49erVXr16jRs3btKkScOHD//vf//71ltvTZgwgR09HxgYuH79+qVLl2rekd7NDT/8gI0bkZzM/GxOnqw68rkhWmzGnInF+Pe/mfOg/nLGdSoqsGoVZsyAn5+adyUS6G0NwzrXr+PCBfzlLxwflk4YohU6YYhWTOiEoUv05iwpiWmmq83fbC9NgUD9ZHanT+P336Hvul/Hjigvr9cvlBBCCFcowZuzO3fQpQuEQvXvCgRYsEDNYjPHjuHqVfTtq/d1YF1d4e6u2lmUEEKap6qqSvRUjWLAWbOkpKR8+umnkydPVtwvVyw2o7vc3Nwvv/xy8uTJ7C15/aEEb4YuXEBMDEaOxL59EIub2tPBQXXFl2vXEB+PiRNRO0OD3nXr1mj9gxBCtHLu3Lk333zTyclpQq1+/frNnTuXHf6urcDAwFmzZu3YsaOsdoz577//7u7u3ljnOG15e3t/+OGHO3bsUOn3xznu77LW1NT8/PPPt2/fVntDnejbzZtYtqzu6npJCf79b/j5ISJC04/36IE2bZ6NvtA3xZgQQgjRUXR0tEQi2bp162effRYZGVleXj5w4MCXX3752LFjuh/5hx9+8FbppF7f+fPn2U58OpbFIY5b8CUlJStXrrxz546+KyakMTt31rt3Lpdjx45Gd5ZImEqAMktLw2V3QgjRHwcHhylTppw+fVokEilvr1QaHFxeXt5w+TiJRFJUVGShdHnT29t7wYIFFvUveJaVlYmVrpF+9NFHOfW7FFVWVlZXV6scXCaTPXnyRKDvO6C1OG7Bu7i4fPTRR2vXrj1w4AC3RyYaevJEdUthoZrdZDKsX489e1BZCW9v/N//PX/EBSGEmBZLS0uJRFJeXr5jx45PP/30448/Pn369P79+ysqKlJTU+fMmdO5c+e8vDwfH5/Vq1cLBIKioqJ58+bl5uaGh4crmqmFhYXffPPNxo0bL168yM5Xf/DgweXLl4eGhpaUlNy4cePkyZOrV68+f/780qVLAwIC1qxZk5+fP3v2bDc3N6lUWlVVtXnzZhsbm8rKykWLFl29ejUqKkrc9N3Tpi1ciOXL4eLy/D+/+WUQo9SlC1JSVLc09Mcf2LKl7nluLpYuxZo16kfTEUKIiTp27FiXLl1at249e/bs9957LyUlZeXKlSEhIQDmzJkzdOjQZcuWSaXSdu3a9e3bd9asWYsWLcrJyYmNjRUIBKmpqVu3bgXg7u4+Z86cr7/+mm3rp6enT5o06dixYy+88AKAr776SiqVLl68+Jtvvlm+fDk7rf3f/vY3Ly8vdnh9VFTUV199tXTp0q+//vrYsWO3b9+2tbWVSqXNvIt9/jx++AEWFli58rn7Uic7c/P666idPalOq1aYOVPNbipXWCQSHD6s/+AaUVxcb7EEQgjRxcGDB3/44YfRo0dnZGSwa8exIiIifH19ly5dmpeXd/bsWXZOeKFQ2K1btytXrkgkkk2bNs2cObPp6+e7d+/29vZmszuAd955p63KUtzAzp07FRPOh4WFXblyBcCGDRumTJmidiJbTclk+OtfmSc//YRG5rtVZrgW/M2bN/fs2dPYu9XV1Y0NQqioqGhs5l7SUHa2U3h4G0vLktJSQatW1S+8UJyfL224zGtJSRBQ7yR+9Kg0OZmbMekCudxSLLYSi2vs7Grs7RXbbcrKWt+8aSGVCmQysZtbbng4u/3MmfYeHuL+zlflQmGNnZ3E3l5ia9vsQfhqZ5okpDF0wpgTdg1WkUjk4+Pz9ttvBwUFWVhYsBlEKpXm5OSwzxMSEgCsWLHC2dmZTUAAYmNjJRKJYv9Hjx7VrrX9UPl/JRLJvXv3vLy8VLISe5s/IyPD09OzuLi4oqJizZo1bMoTiUQeHh5JSUkZGRk2NjbsB9ml5DIzM5WP8+jRoxKVXlH1dTh5MuLaNdT2Zs+dNu18k2vkeHl5GS7B+/v7T218idCKiooff/xR7Vv29vamMm0Q7yorcewYIiMRHa24PeOpds+wMNW1hAcNcu7c2ZmDIC5exLlzYFdCHDQIT7M4akeSMg8rKwiF1g4OLk//WQsKkJho6y1+jLy8uuUS/+//oFQzgFSq1XA6OmGIVuiEMRvs6uyvvvpqZGSkyltCodDHx4f9t2a7y/39739XXtiNnUPe29ub3ceydi5Pf39/xenh7+/fqVMnb2/voqIilXOGTczt2rXr3LlzdXW1QCCYO3funDlzlPdxcnLy8PBgP8he7ffz81M+zr1799iahFrWlZWjf/1V8dL7xg3BoUMPgoMb2//hw4eGS/AutRp7VyQSWep7ZtQW4MEDJnsOHPj8PRcswPvvP+uR168foqO1KUkuR1YW0tORnY3Bg+Hl9eytgAC0agVnZ+ahsmCCszOGDm14sI4dmSpB8bzXXF1r59ctKamX3QHs388U17o1/PwQGgpHR21iJYSQetq2bevk5HT16lXlBO/q6urt7R0XFzdmzJgmPhsaGrpz586cnByfBiOO2LRtbW0dEBBw9epVlQTfpUuXuLi4BQsWNHbkl2o1WvCHH6L+cICJZ89i9eom1gLnOKcWFhZu3br13LlzxcXF33//fXR0dLdu3bgtgjQhJASBgRot/e7nh19+wYkTyM9nPhUVpeW8dfv3IykJHh7w9VWdK8fLq16+14CPDzp3RlVV7Qs7OzXL4/Tti8xM5Obi5k106EAJnhDSkFQqzc3NZa91d+/e3U7pl6SmpkYmkykmvbG1tV28ePHSpUsFAkFERERJSUlgYGDXrl2//PLLv/zlL97e3gEBAefOnVOMqWM/yP7v+PHj9+/fP3r06A8//NDHxyc9Pb1///6BgYFt27bduHFjdXV1nz59li5dOnv2bA8Pj0GDBonFYi8vr8jIyM8++2zMmDHBwcF9+vRJTEwUCASVmqzmqfD665gyRXVjdXUTv/i02AzRQGkp06RWvsTy5AlzVjlzcUlfR/HxkEiYSsrTrit0whCt0AljNs6fP3/16a1HR0fHmJgYxVubNm16UnvFskePHoMHD2Y3njhxIjY2trq6Ojw8fPz48Ta1VxxjY2NPnjwpFAqnTJly+PBhCwuLIUOGnDhxgv3I6NGj5XJ5QEDAtm3b4uPj2frB+PHjLS0tjx8//ueffwYHB8+cOdPW1vbKlStHjhwpKSkJDQ2dNGmSY22z5Pr160eOHBGLxRMnTrx8+bJYLH799dfdVVaB5Q4leNK4qircvYuEBKb1PG4cGr/Zw6cLF3D1KlON9ffHsGFwcaEThmiFThiiFRM6Yei2N2ncxYu4cYPJ6wMGoME4EGPRrx8iI5GaiqSkRpe+J4SQlocSvMmTSLB5MwYP1kMKjopiUrvxd34UChEUpGZ5nJwceHvrfVE8QggxSkb/202e5+xZFBbCw0O3o5SV4fp12Nujd+9nG3WZkEF7UikyMuDvz9HhJBJs2cL8CeHhCAsz8N9CCCG8o5nsTFtODq5cQXS06rAyLZSX48ABrFmDu3f5zYJlZdi2DTnczLVTu2zO3Lno3h1Xr6J2vklCCGlRqAVv2goLERiI0FAdDmFpyaTW8eOZA/F6NdvVFe7uSE3lbjk7Bwf074+oKDQySSIhhJgxSvCmrWtX5qETGxtMm8ZVPDrq1IlJ8AMGcHpQoRBubvW2iERMtYYu2hNCzBpdom9hqqpw6hSezvZgbIKD0aYN9D5y8/x5rFmDCxfQYB1oQggxG9SCbzHkcty6hdhYpvEaFAQHB74DUqNNG+ahd9HRcHdnEnx8PKZPN4rpegghhGuU4E2SRKL94LXERJw4gd690bevRpPZmjFLS+Z7CA1lajyU3QkhZooSvOkpKcGvv2LSJC0buyEh8PND4+v9tDh2doiK4jsIQgjRF7oHb3qOHGHStNZdzQUCyu7PkZuLlBS+gyCEEG5Qgjcxd+4gPR2jRz9vRFthIbZsQUGBwQLjUHExHj3io+BHj7B7N/btg1jMR/GEEMIlSvAmxsYGgwY1uRyrXI5Ll7B+PSQSCIWGjI0rCQk4fJiPgnv3xvTpePwY69ahooKPCAghhDN0D97EBAY+b4+0NJw7h4ED0auXiU7D3rEj8xcUF8PV1eBl+/nhjTdw754OUwMSQohRoARvdvz9MW8eatceNlE+PnBwQGoqIiL4KF4oRJcuejp2QgK2b8fjx+jcGTNmNHklhhBCdEMJ3hyZcnZnRUUZ0/i1x4/h7q772MLr17F4cd3kOvfv4+JFrFmjOskeIYRwhe7Bm4bCwsbfS0vjqU+aHvXqpcHNCIM5dAjr1yM3V8fDbNxYb+q8wkLs2aNraIQQ0hhK8CbgwQOsW4cnTxq8IZXixAls24aHD3kJrKV49VV4emLTJly+rMthGlbDzK5iRggxInSJ3thVV+PIEYSGNljxXSZjUk5xMcaPR+fOfIXXItjZYeJE3LyJqipdDuPnh6Skelt8fXUNjRBCGkMJ3tidPs2k8ujoBm9YWCA8HB06GNPNarMWFqbjAQYOxN27z5bScXPDhAkcxEUIIWrxluCrqqpmzZqleCmRSGQyGV/BGLOuXREUBBsbde917274eAwpJQWtWpnP/HuTJsHLC8eOIT8fgYGYORPu7nzHRAgxX7wleBsbmy1btiheikSihQsX8hWMMWvJV3FPnkS3bujXj+841CoqwrVrGDJE89mEBAIMGsQ8VA5DHekJIfpAnexMR14eNm5EcTHfcRhOp064f5/vIBpTUYGkJPz+O8rKmn2Mhw/xyy/IyeE0MEIIqUUJ3kQkJuK332BvD1tbvkMxnIAA5OaivJzvONTy9cXs2cyTDRsaq3VJJDhzBjU1jR7D3x+Bgdi9mybGJYRwjxK8MZLJ6q9qlpmJAwfQpw9eeaVFJfh27dCrF4y3b4aTE2bMwNChaufUranBjh24ffs5LfwXX2T+SQ8e1GOYhJCWiXrRG6NLlxAXh7lz4eBQ+9rPD6+9puXy7+bAwoLJnkZNKETXrg03V1dj+3amYT99+nN60llZYeLEplr5hBDSPJTgjc6TJzh/HtHRT7M7q+Vld1Pn4IAxYzRaL4eHNXUIIS0AXaI3OsePM9k8PJzvOEgziMXYuxfl5dbWePllytyEED5Rgjc6I0fixbBs/PorKiv5joVoSSJBQQHzb1dQ0OxjKGbCIYQQXVCCNzquWQmuf/6BVq1gbc13LEZBJMKNG3wHoQGmPubkhNdeg4cHNm1qXo5PSsLmzfXWpCGEkOahBG9kHjzAwYPo2xejRsGC/nUYZWU4etTYx/+XlmLjRly6BNjY4JVX0L9/86apa9OGqRgcP66HEAkhLQylECPToQMmTGDSA3nKxwcODkhN5TuOxhUX4/ffYWeHHj1qX1tYoHfv5tXPXFwwfjzi43HrFudhEkJaFkrwRqGigmn8yWS1ucGIFkI3Fp06GXWC37cPzs6YOpWbSQrat28whoIQQrRHw+SMwtGjKChAr158x2GsundHfj7fQTTupZfg6Agrq0belkqZ9njPnpofUJt9CSFEPWrB8626Onlnwr17GD1a81VLWhxfX90Xa9UjN7fGszu7iMCpU9i/34jn5COEmCFK8LyqrMSWrecf+ER0q27Jq8aZOR8fTJ2K1FTs3Us5nhBiMJTg+SMWY/NmiCumz7YaOIxGxJmSzEwtO8H5+jI5vrIS1dXalvXwIRIStP0QIYRQgueXmxtmzLD1cmrqAi8xMunp2LaNyfHa8fbGtGnN6IaXn49Dh5Cdre3nCCEtHSV4/tjZ4eWX4ejIdxwmIz0dDx7wU3RFRV3b+8ED7NiBkBC8+KKBiu7Tp25JWSNdNpcQYqwowROTkZKCCxcMXeiDB1iwAOPHM49vvmHSfHg4Ro2CQKDzoSUSDXd88UU4OCAjQ+cSCSEtCSV4wxKL2f/PysKRIzTruHYCApCdrfgKDUEkwkcf4d49sOn42DHs3MnRCraXL2PTJg2XG7CywsyZ6NKFi3IJIS0GJXgDKinBhg24eVMqxaFDzG87B63AlqRtW1haGvQq/fnzqlPknjmDsjIuDt2lC6qrsWWLhjmepi0mhGiLfjYMpbQUmzfDxQVdu54/j4oKDB/Od0imRihkvjQvL8OVWFqqukUuZ5r1HHBywrRpqKrCvn1cHI4QQlTRTHaGsncv85s+ebJMaHX/PqKjYW/Pd0gmqFs3w5Ulkai5WtCqFby9OSqAzfHaLwpcUAA7O5rLlhDyHJTgDeXFF5kfdCsrC2D2bLriagL+/W/VVd1sbLBoEac3VpydmYeW2N4b06fTWUQIaQpvCV4qle7evVvxsrKyUmzI3lOG5+GheEq/y8avvByHDqlunDULERH8xKNs7Fhs3MhUPkaM4DsUQogRo1RDiBrFxZBKVTc23MKxhw81GTvHLil765b2k+0QQloS3lrwQqHwlVdeUbwUiUSnT5/mKxi9qKpCRgat/co5qRRXriAkpBnXtrXg7Q03NxQV1duo34FqEgkOH4anJyZNeu5FnvbtMXu24fob3rmDLVuQkwN/f7z+OlM6IcT4UQteP2pqsH07zpxRNPpu3IDSHQnSfEIhrl5FSgrHhy0vR1wc1q2r61gnFOLdd+ut7zdsGHr04LjQeiwt8eqryM3F/v2azJDAZvc7d/D//h9mzMCHH+L2bb3EFR+P99/HpUtMffXMGeZrycrSS0GEEG5RJzs9kEqxaxfKypjf3doUUVqK06fRty/fgZmLjh2Rmsrl7fDr13HiBOzsEBr6rLPEgAH4+WccO8bk/t698cILnBXXKHd3TJmCrVuZxnKbNs/dPTkZH3xQd1E/L4/JxCtXIiSEm1ikUubIUik2bqx3b6Kigqm7LlzITSmEEP2hBK8HOTl48gTTpikuIh85Ajc39OnDd2DmomNHHDiA6mpYc7QIX7t2mDCBOazKpfGOHTFvHjdFaKp1a7z9toZ/2Pbt9W7ZS6VYtw5ffgkbm2cbMzPr7uxLJPD3R0DAs7fKyrBnD/MpmQyOjkzVQtnGjcjPZ56wE/kpo5VvCDEJlOD1wM8Pc+fCsu67ra6GXI7Ro6nzPGc6dsTw4c0crlZZicRE2NrWa+l6ejIPY6FxtSU3V3VLWhqKi5lKgkJRER48YE5GS0vVEfxWVmjbFkIh81bDWRlGjmQSv4UFk+ZV1sZt107zP4YQwhtK8Pph+eyLtbZWbRsRHVlbN+d2eHExTp/G/ftMYouK0ktgBubvj+Tkelv69KmX3dmpgRqbHcjWFoMHN3pwX9+6J3Pn4r33ni1k7+KCV1/VLW5CiEFQgicthZUVamowdiwCA+v1njNq2dl48qSxFD1jBi5eRElJ3UsnJ8ycyX0IQUH46Sds3ozUVHTpwhRhyNmCCSHNRgmeIzdvolUrTTpGEcOoqUF+fr1/EAcHTJ7MZ0jNkZWF06eZtra68Zbe3li9Gtu3IzOT+UsnT1ZtvnPF359pxP/4I6ZOZU5zQohJoATPhaQkHD2KESOU80lNDdNMpPvu+lNWxnzxdnYICanXIi8stD90CHfvwsYG77xj4kv29e6N0lLs24dXX4WfX8P3vbwwf74hArGygjZL2BNC+EcJXmfp6Th4EH37IixMefOJExCJoDSXD+HSyZNYuRJVVWD7fH3+eV0PMrkcly+38fTEsGEIDjbx7M6KjoZYzDTS1SV4g2F7ldTU8BgCIUQ71MDUWW4uQkNVRkmnpSE+3ijmLTdL2dn45pu67A4gIwNffFH3XCBAdPTDGTPQrVtdo9McjB1rDN0Co6Lg6sp3EIQQjVELXmeRkSobampw+DCT9P39eQrJ3MXFqU4Ln5SEgoK6oW5WVvqeMr6FGjSI7wgIIdqgBM89mQydOhlk4jNCCCGkEXSJnns2Nhg+HLa2fMdhvvr2VZ5oAOwyMEY0U41elZbi5ElNJqsnhLRwlOC1J5fjxIlno4+Jwfn44MMPYWdX97JDByxezHNIhiMW49YtnDrFdxyEEGNHl+i1d+IEbt9udHowYhBDhqB3byQkwMEBISEtaThi69YYPx47d8LVFT17GrLk8nLme1bUqwghRq7l/C5y5OpV3LiBl19uON9HScmzft3EABwdERmJ0NCWlN1Z7Fz8mZkGLvbAAZw7Z+AyCSHNRy14LT1+jJEjG/aPl8uxZw88PDB2LE+BkRYlLExl3gUDsLSkiW4IMSWU4LU0ZozazZcvo7AQEyYYPB5CDIWdzJ8QYipa2sVNvSguxrlzGDhQsf47IWbIyYmzBfgJIQZALXgOODlh6FDDXzElpFZ1NS5cwAsv6HuNvCFD9Hp4QgjHqAX/PFIpTp5EZWUTuwiFCA83i2nPiSkSixEfj4MH+Y6DEGJcKME/z6FDuHOn6QRPCJ9cXDBxIu7dw/nzfIdCCDEilOCbdPEi7t5lfj1pkQ1izPz8MHo0Hj6ETMZ3KIQQY8HbPfiqqqpZs2YpXkokEpmx/TbJ5cwv5qhRjS3TmZHB5H3qWEeMQteuCAmhG0WEEAXeEryNjc2WLVsUL0Ui0cKFC/kKRj2BANOmNfaLWVGBPXsQFoaBAw0eGCFq6Tm7p6Tg2jVMnarXQgghnKFL9E1q/Bfz+HHY2aF/f8PGQwh/qquRk8N3EIQQjVGCb46MDNy9i9Gj9T0uiZBmkclw/TrnK85ZWtJEN4SYEkrwDdy69dyeSu3aYfr0xm7NE8K3khKcOYOTJ7k9qpUVU2eQSrk9KiFEXyjB1xcbixMnUFT03B0puxPj5eaGceNw7Rri4zk8qp8fZs9ueUv7EGKy6D9WJYmJiIvD2LHw8OA7FEJ006kTBg5kzmfuWtzW1mjdmvrpE2IyaKrap+Ry5tewf38EBfEdCiFciIpCeDj1EyGkxaIE/5RAgBkzYGPTxC7XrsHXF97eBoyKEF00eT4TQswbXaJX0uSvYXY2TpxASYkB4yGEEEKaixK8RqRSHDqEwEB07sx3KIQ0j85j2GUyxMVRHZcQk9HiE/zjx5rslZoKkQgjRug/HkL0IScHv/2Ge/d0OYZAgDNnUFDAXVSEEH1q2Qk+NRUbNyIz87k7BgXhrbfg4GCQqAjhnI8PIiNx8KAu+VkggFBIc90QYjJacIIvLMT+/YiI0HBIu729/kMiRH8GDmRO9QMHdDmGpSUkEu5CIoToUwvuRX/gALy9MXQo33EQYhACAcaNQ3m5LseIjKRJIggxGS04wY8Zw7TKadoO0nLY2Og4cK5vX+6CIYToWQu+RO/hATu7pnfZtw8ZGYaKhxBCCOFOC07wz3P9Ou7do451xHzR7XRCzFoLS/Aa/6KVluLMGfTrR3cciZm6fx///a+Ot+QJIcasJSX4ykqsX4/kZE32zcyEuzuiovQfFSG8aN8eNjbYvVur1WjKy6lKQIjJaDEJXi7H3r3Mkw4dNNk9JASvv04rYxLzZWWFiRPx5AmOH9f8Q8eO4dQpfUZFCOFOi+lFHxuL7GzMnKl5L2LK7sTMubpi3DitBpLQOHhCTEiLSfAdOsDXl+6oE1KPv79Wu1tZobJSb8EQQjjVYhJ8+/aa7CWX08B4Qhrl5ERT1RJiMlpMgtdAVRV++w0jRqBdO75DIcQo9evHdwSEEI3xluBlMlliYqLiZUVFhYTvm3unTjGtE29vfqMghCf37yMnBy+8wHcchBBu8JbgpVLpnj17FC+rq6vFYjHHZVy8CHd3DZdwT09HfDwmT4a1NcdREGIyLl6EhwdCQviOgxDCAd4SvJWV1d///nfFS5FItHDhQi4LuH8fZ89izBgNd6+sRM+e2nY5IsSMBASgf38cOsTk+Nat+Y6GEKIrM70HX1SEAwcQEYGuXTX8ROfOGjb1CTFf/fvj8WM8eUIJnhAzYKZjvfPz4etLS8ESorWJE5u4RJ+Whg0bDBsPIaS5zLQFHxTEPAghnJJImBY+jSYlxCSYaQteYxUVfEdAiOmwsmL+l4bCE2ISWnSCz8/H6tXIyeE7DkKM0+PHKCpS3mBZe8mPEjwhJsGMErxIhNxczXeXy/Hnn/Dzg4+PPqMixHSdOoVdu5TzeevWeOMN2NnxGhUhRDPmkuClUuzejaNHNf/E5csoLMTo0fqMihCTNnYsxGIcOqTYYGkJLy9ah4kQ02Au/6WePMmk63HjNP9Eq1YYMQLOzvqMihCT5uiI8eORnIz0dL5DIYRozSx60T9+jBs3MGkSXF01/xDNaUPI87Vti5gYuLvzHQchRGt1LfiUlBS+I9FB69Z480106sR3HISYI8ruhJimugT/r3/9i+9IdEO/QYQYRFwcCgr4DoIQooG6BL9z584pU6ZkZmbyHY8eVVRALkdWFt9xEGK6amouXkReHt9hEEI0UJfg582bN3/+/MmTJ3/zzTc1DUa53rlzh4/Ynkcq1XDHK1cwezbGj2cen32G4mI9B0aIWaqqwn/+I4SM74WdCSEaqUvwixcvHjx48NmzZ21tbQcNGnTy5EnFHjU1Ndu3b+cvwkakp2PtWpSXP3fHBw/w6ad1DXexGPfv48QJQwRIiLmxsUFIiGVNhaSUJoAkxATU9aK3tbWtHeRq+e6777766qsDBw708vJycnKqrbVX9e/fn+846ysrw759CAyEg8Nz9z14ECoNjj17MGmSHqMjxGwNHtwn5WbrhCxEjqybt5YQYqxUh8klJibOmzfv3r17FhYW0tpr4NXV1TzF1giZjEnRLi4YPlyT3UtLVbeUlOglLkLMn0DQ67XOuF1dN2ktIcSI1V2i37hxo1gsXrJkSVhYWEJCwi+//JKUlHSx1oULFwRGtXSUQMC03cePh1Coye7duqlu6d5dL3ER0iLY2yMykpaTI8T41SX4devWhYaGfvHFFxMnTkxKSnrjjTcUe9jY2IzTZoa42ja2TC6Xcx3qUwIBoqKYFrxmXnwR4eHPXrq745139BUaIYQQYiTqrrNdvXq1VatWBw4cGDNmTMOdevXqpfkRP/roI5lMVlRUFBwc/P7773MXajNZWuKrr3DmDO7dg6cnRoxAbdcCQgghxJzVJfiBAwfu3LnT0dFRx8Pt2LEjOTl5z549crk8PDy8f//+ffv25SJOnVhYYMgQ5kEI0VF5OWSyp7XkkhJcuoRhw2j9GUKMUN1/lgsWLNA9uwPYtm3bCy+8UHsdXTB06NAtW7bofsw6Z86oLE1NCDG8M2dw7NjTFzIZEhOZTYQQ41OX4LW9y96Yhw8fenp6ss+9vLwePnzIyWFx+TKuXEFlpU4HWbwYYjE38RDSUllaKo07dXPDmDHMf5v37vEbFSGkIY4vrJWWlrJD6ms729qXcDEizb6ggGkiDBsGH5/mH+X8eXz5Jb79Vvd4CGnJrKxQb67LwED06YP793kMiRCiFseDWT08PCoq6ma5EolEHh4eircuXbr022+/NfbBmpqa4kamkLXNyCj188uxs0NycvOiEsjl7efNswHkX375cNCgGm/v5h2HmIQsWm9Anyor3WQy++TkZ1+ywMdHDjT7P0/e0QlDtKK/E0YqFWRkMC3kdu0qhUJdR6K1adOG4wQfFBSUk5PDPs/KygoKClK8FRYW1qnxFV3Ly8tXrFih9q3Cnj07BwY669KL53//Q0IC80tUWdlh9WoLDnsGEKPUuXNnvkMwW0+/WrP6humEIVrRxwmTkoIVK+pWcvLywqefIjhY12NynOBnzZq1fPnyxYsXV1VVnThxYufOnYq3bGo19kFbW9umptPRJbuXlmLx4mdH2rr189LSlFatFFtkMplQKHRxcXF9yrmWqxJLU5y3q6oKjX/hhBBCjERNDZYuRX5+3cv8fOblr7/q+hPOcd4aMmRISkrKe++9JxaLP//889DQUG6P3xyffYbHj5U3LMnLw4EDypUGqVRaVlZWrCQ7O/vu3bvs85KSkqqqqtpqxrOPWFtbq1QClKsFLi4uPE//JxZj2DAcOwZ7e/U7XL6M3r0hEODRI7Rta+jwiLmqrmaq1E972hJCNJGU9Cy7swoLkZCAnj11Oiz3DdO5c+dyfkydvPQSRoxQ3SgWKy9UIxQK2cSs+VErKytLaynqBLm5uYotZWVlUqlUJpMpVwscHR0bXhtQbOFkmOIz336LCxfw1VdQe+OjogITJ+Kbb9C+PWJicPs2LRxCuHH+PPNbNXt2ozVLQkgDtblCle7rMpvglWdt1Y7L55xtrVZKl/qfSyQSFRcXK1cL0tLSFFsqKirYCoGiWmBhYcHmfrXVAldXV2tra/UlZWXh66+ZJ999h7feUtNA/+orZp8PPkDr1khOxqpVWLRIhy9DAzU1TK1C4wmGiakaMAAPHmDvXkydSvPVE6KhLl2YX0flYWfOztD9CngLSPBGw7GW5vvLZDK2KqCoE+Tm5rI3DtgtlU8nBlDUCaysrFxcXGadONGNHcsgFufNmZP93XdsncDFxUUoFCI9vW64YHY28wCYVv7rr8PLSz9/d61Vq5CZiZUr9VgEMYjsbBw6xDTR1S/2ZGWFCROwcSOuX0dEhOHDI8QU2djgk0+wfDnKylCbLLBkCQdXwSjBGy8LCwttbxzU1NRUnDzpopRHW504cXr9+kQ3N8WNgwVnzvRWmTKopOTWmDHnZ89Wvk7AXjbgpjNBfj5Th6iowLx54Lb36ZUr6NqVrgYbkkyGggLU1DS+mqO7O6ZN0299kRDTV1EBS0sorsP26IFNm3DrFvOfWFiY8j3k5qMEb1asLC1dPv0U9Zfym3L+PC5frutUGBvLtK4a6HHtmsVf/pLTqlVpaamid2FpaWl5eblUKlW+SKC2M4HySzVXKZYsqbv29N57+PNPzv5aqRQxMZg4EcuWcXZM8jzsgJKaGjyd0UodmmqCkCbFx+P0aUREoH//Zxvt7cHt4i2U4M2LQKB+YnBF///LlzFjBqqqmJNL0a+jbVtYWna7caPbv/6lSSFqOxMoXirqBGxtoF1h4fL9++suAhw6dOSvfy3p31+5cuDm5tbE+MmmrF2L27eRmoo334SfX3OOoImKCqYUR0cEBqKxTg8tCZvga/+FCSFaKy/Hvn3IykJkJKKi9FsWJXiz01TDCuBiAV/tOhMMHFjv1e7dp4YMKSwsZDsYstjZD5VHIQqFQicnp6ZmJigtxSefgE3AH36IP/7Q/e9S76uvsHs3U7WeNIkpqMVzd8fcuXB25jsOQkyTjQ2cnDBnDpQmetUXSvBEn06eREYG2rdXbLADXhSJ8NprTX/uuTMTTDl3bnhhYd3emzd/Xlyc7ufHVgKqq6uDgoK4mZmA7ZDIdllISsLMmRxcfBaJ8PHHWLVK1+PwxMICbm7afGD7dnTqpOt4XkLMhaUlxo41VFkGKoe0TEOHIi2tGZ97zswEiYnYsEF5w5K8vKodO0pEotLS0lu3brm4uKidmUDlMI6Ojo2NQnR2dnZ0dMQHHzxbw7CsDIsX43//a8afU88XX+CnnzBhAvPlcCU7G23acHY0bvn7M/W81q3h68t3KITwQCyGTMZNpzltUYInJujGDcTEqGyzychoFRzcqlUrqVSq4UzRbGcC5f4EihsHpaWl7dPSPjp0SHl/+fr1K8XiksBAtRUCd3f3RmcmUHjwoG6s4MKFzF/RaE90beTnIzISV64Yade2Xr2Qk4O9e2n2G9IC3bmDU6cQFISRI/VfmESCzZsxYABTq65FCZ6YoBkzmIfO2M4Efmo76MlkDa8qC4CFDx8++vJLbWcmUNQDhq9e7VM77TFu3674179s3ntPqHuOX7IEmZncXF1oWk5OvSWbZTJNF4kYNYppxBPSklRWYvfuus503PaNb9ThwygthdL0a5TgCVHn3j2mIuzujoyMZxs9PIR+fh1EInTvruFhampqSkpK2KsClmfO+MTFPXvvk0/eu3mz9Ok6RmydQCAQ2NnZNbxxoHip2png5k388gvzZMMGzJ/PNJf1JC0NQ4awAwouXULn5H2uokymRE1YWRmk/UKIEbG1hZcXhg0z1JQQ168jKQnTpyvfDKAET4g6wcH46SfdD2NlZeVZC1Ip3nhD+S37ysof3d3x448qH6msrFQZhXj37t3GOhMsPnQoiB3uKJdnvfLK/v/3/xpWDrhZ5uDDD5kc/8UX+OKL6xerw/+5CBVFmDqVqQMRQtQZNsyAhdnYIDpapacLJXhCDKK6Ws0ldHVr/Nja2nrXev4xt21TnrbINz19WF7e/Q4diouLMzMzFfWD8vJyef25jywsLNjZitSue6RmZoLYWGzfzjxZuRJvvtnz7A7rzFTm5bJlDSsohLRMlZUQi7UcY8Khrl0bbqMET4hB2NlxfP1cJsOvv6r8Vx1w4ULAkiXP7bvHLnOgfJGA7Uyg2MJ2JmDvGlgKBMv3769bsKiqKm3MmB6pT0dG/Pxz9ksv2ffu7ezsbKHh/XipFHFx6N2bZg0i5iQxESdOMO3niRP5DkUJJXhCTJOFBQ4caO5HtVnm4D//YWoST3W4e/fZW1Jp5dtvf/PSSyo3DmQymVwud3BwUDNVka2t65kzrhkZjtOmNS94g7pzh4MlvYhZk0qxcyfS09GnT715Z40BJXhCSOOqq7Fp07MlgiormV8yJR0fPPh+6FCMG9fwo2xnAoXS0tLc3FzmWV5e8cGD5b//Lvf0VOzMXi1obIEDnaY0braKCowaxdRvXnzx+Tvn5yMzE+HhhgiMGBOhEH5+GDwY2iwezpF79+Do2MQcGJTgCSGNs7ZGbOyzl8XFzENFI534mupMcP0685gzR/luglwuLy8vV64TqExpXFl/FUSZTCYUChWjENVPaWypw0/cV18hKwvvvYfhw9X2lqhnyRIkJOD8+eYXR4xbYiLOnYNcDj8/e5WJNvr14yOg/HwcOICICErwhBAuuLpCm/WLG9WzJ7p3V+krIBAImpqZQJ3nTmlcU1OjvL9MJrO2tlbpWlhSUiIWi1WnNGZnKWYbSatWYdGipuJgByvKZPjjD0yfrv3X0SxpaejQAezkx5wMlCCN27MH//634lXb7Gy89RavAVVVYfdu+PqqLPahghI8IYQPurStn3rOlMbqVFdXK7oWsh49evTkyRP2uaIzwYIzZ3o/vWAg/vjjf6alWbZpo/Y6gaOjI959t25txg8/xMsvG2LCvn378OmnuH4dx49j0yblThLPRxUCLZWW4j//qbdl+3bm39lAA9zVun+fOeXGjUOTS2xQgieEaEckQk0Nf8OBdGNtbV03M8FTycnJqnMbx8Yqjz+0q67+W1FR+vz5is4E2dnZivpByJ0788+erds1K2tv3767w8PZZQ701ZmguhqLFiE1FWvXYtUq3L2L+fO1WHk0JgYLFjTd8iPKkpNR/0oQ5HLmW+czwXftqskC1pTgCSHauXQJeXngshd8fj6vP5YNHD+OMWOUN9iVlgZ7eSE4WHVPsVhl4/h798bt2VPm4aF8nYCD9ZGVL3h8/z2T3dkLBiIR8+Svf0VcXNONuTqxsdi2jUlZ169rOtNwi6e2LsvJrSqdaDDQlLcEX1VVNWvWLMVLiUTCdqMlhBg5S0tIJNwd7sED7NqF6dONaEG8FSs03TMxERMmqGwT3Lnj/NJLzs7O+uhM4CIWf717ty37gs3uAC5fvv7ee6Uvv6yoH7i4uKhZ5kAmw7vvMk9u3cK6dZg7V9M/s2ULCED37oiPf7YlKMg0hk/yluBtbGy2bNmieCkSiRYuXMhXMIQQzVlZqV6x1EnHjujcGbt3Y/ZsftbU1EVEBPPQmRadCd54Q+23H/Lrrzu7dLkpFrM3EcrKytg6gWLdI7lcPiItbcatW+z+Ve+/f9rFxcHXt9FlDoiSZcvw0084exZyOUJDRUuWOPLwVUkkEIvh5KT5J+gSPSFEO87OXF+fHDUKv/2Gw4cxaRKnxzU7WVm4exeRkcwPfUIC2BmIhUJYW9tWV8/Iy8MnnzT62ZISpin6lE1ZWcdNm86MH6+yzIGiQsDuxk5p3Nisxtwsc2AKnJzw8cf46CPmK79/P8vVVaMFqTn2558oLGTqwRqjBE8I0U5oKNfXJ62smNRef8J8ooavLy5caOZnv/uOqRYoXSMJPHcu8F//Us76DYlEIpWlj9jOBOyWiooKlVurFhYWbO5Xuxyiu7u7tbFNUfztt3jnHQ2HFfDZaeHSJdy7p+0gTErwhBAj4OLCdwTm7h//YB5aYmcm0Hx/dpkD5ToBu8yBYotitiLFpQIrKyt2tiK1lwrUdybgSnIylixBURG++OK5+xYWwuniUasqkdplXfTr8WOcOYORI7Xtp0IJnhBCCDe0W+agVk1NTUlJiXKdQDHiQLkzgaJOIBAI7OzsGhtu4Ozs7OTkpGlngvfeQ00Nu0YiOnZset99OyWvfrHQSlBpsXev5n8dN1q3xqRJ6NRJ289RgieEGB+5XKNBX8T0WVlZqcxM8FzKyxyw1QLFiIPS0tLy8nLF0keK6wSKmQkUdQL/pKTOhw6BnRXu/fexa1cTJUqlaHfgZ7u0JABu69czdQI92bcPEomaNem0z+6U4AkhxufWLSQm4tVXaaA2UaupZQ4awXYmeFYnKCjw/uqrZ2/v3v3NyJGJPj6KDSozE9hVCF86vIR9y33NGtl771m0bcvln8RipzCSyTBmDLhYWokSPCFEO3l52L0bM2fCzk4/BbRvj9OncfIkhg3TTwGkxVFd5mDlSuY8VvJhTg7+/FOxPoJEIlHuWui94mv76rpZByzE4otDh67t319lxIGtra3aroWqyxw0QTGF0T//icWLdb+ORQmeEKK14mLU1Ogtwbu6Ytw4bN+O1q3RrZt+yiAtW3g4U0tVUVqqmLXO0tLSvRbzIj4esceUd+ybmtr3t99UpgdmbxwoVwtyc3ObHoVob2+vqAH4AGOXLaurX3zxBYYORWIiXntNkxnrGkMJnhCiHXbpVC7numnI359pvvM/HSgxU0OGaLGzqytOn1a8evToUdu2bRsu/968GweKGkDbpUuFYnHdG+XlePddfP65LtmdEjwhRGvstOj6TfDskrKEGIN27ZjHUxXJyejMzUQ37I2DNm3a4OpVHKt3kQBXrui+6B8leEKIdhwd8fbbtOIoIdzx9sbly3XPZTJcv47QUGi8lkFjKMETQrQjENC0NKQFMcSYTT+/eum8Tx9OjkqjUAghRu/uXdy4wXcQpIW6cwdr1/IdRLNQgieEGD2xGMePIz2d7zhIS5SXp9USbkaEEjwhxOiFh6NHD+zZg6IivkMhLU5+PrSZZ69ZKipw6BCqqrg9KiV4QojWLl3Co0eGLXLYMPj4ML+1hBhWSQm8vPRZgFSK3buRk8P5rX7qZEcI0drt25DLoY/JOhtlYYEpUwxYHiF15s1D/UVxuXbkCJ48waxZOo56b4ha8IQQrQmFeLqcByHmT4+rIkgkKC3FhAn6GJpCLXhCiNYsLZnfJUKIriwtMXWqno5NLXhCiHakUri7o7qaefAmOxuZmfwVT4gJoARPCNFCWhrmzMH33+Obb/Daa4iP5ymOmzexaxeKi3kqnhATQAmeEKIpmQzLliEnp+5lURGWL0d5OR+hjBwJd3fs2MH5yCJClP32G7KyuD6oVIpLl/Tccw+U4AkhWkhNVf2xKy1l2tI8EAoxaRLzQ3n/Ph/FkxahpATZ2Zz3bQcOHUJcHMrKuD6uKt462dXU1KxVmv2vqqqqnJ+GACFEU2qbHLz1trOzwxtv1C1eS4ge5OXBwgIeHpwe9OJF3L2LKVMMsKIDbwleKBSGhYUpXorF4lu3bvEVDCFEEwEBaNWK+dVTsLZGt278BUTZnehTfj7c3TkdI1dTg/h4jBihvP6s/vCW4C0sLAYMGKB4KRKJtm7dylcwhBBNCIX45BN8+mndjLH29ggLw/79eOUVODjwHRwhXIuI4Grl96esrAx52YnGwRNCtBAcjI0bcesWJBL06AGBADt24MIFDB/Od2TFxUzzSL9zipKWxcaGeXDMgJedKMETQrRjZ4eoqGcvp0/X5zxfmjt/HhkZmDmTLiYQwjKG/y4JISbM2hqWxtBSGDEC9vbYsYNpxxNiPGQy3L3LS8mU4AkhXOJtjnorK0yahPJynsbtEdKII0eYBx/DxIyh4k0IMR/79zNt+lGj+Lhu7+iImTOZ/yVEZ4mJkEjQvbtuR7l4EQkJePVVXu4cUQueEMKlXr1w/z62beNpijnK7oQjiYnPJm1sJrEYV65gzBjDrqz8DCV4QgiX/Pzw+usoLcWxY3yHQogO8vPh6anbIezsMHcuunThKiRt0SV6QgjH3NyYHC+X8x1HVRWKiuDtzXccxPRUVTGVVA4GXdrachJP81ALnhDCPTs72NvzHURcHLZuRUEB33EQ02NhgTFj0Lo133HohhI8IcRMvfAC03zfvt0Aq3oQM2NlhdDQZs1yU1WF1FR9hNQMlOAJIXp34gTzMPRFewsLTJgAOzucO2fYgklLJZFgxw4cP87faNF66B48IUTv/P2xdy/TkB471rCz4lhb49VXaU0aYghyOXOWFxbitdcgFPIdDagFTwgxhI4dMX06srJw8KDBy7azM46Z9oi5y85GZiYmT4abG9+h1KHznhBiCK1bY+ZMVFfzHQchz1NZiZQUBAdreenH1xdvv62H1Wmaj1rwhBADcXKChwevEchkzC83IU3KzsahQxAItP+kMWV3SvCEkJYkMxO7d+P6db7jIEYtPx9ubuZwY8f0/wJCiGm6cQOVlejb14BFtmuHkSNx5AisrREaasCC9SItDUePorwcYWEYPLhZLU6iTkGBxnPYpacz55KPj75Dah5K8IQQftjY4MQJFBczOddwK9P06AGxGHFxCAkxjnXsmykuDsuXQyJhnv/5J/Py44/5jslctG3LZO3ny8rCzp0ID6cETwgh9YSEwNERu3ejqgovv2zAgqOiEBFh0tldLscPP9Rld9bJkxg1isk1RHcarSCXl4ft29G5M4YMMUBIzWPCpzghxNS1a4fXX0fPngYv2MRHxhcUqJmB984dfoJpodLS0L49XnyR7ziaQi14Qgif3N2ZB9GKkxMsLeu14AGdlz4jWunTB3K5kXd8oBY8IaRFc3vwAIWFfEehHVtbjB1bb4uXFwYPZp6cOoVjx/D4MV+htSTGnd0pwRNCjMuDB7h504DlSaWOubnYvBlFRQYslQNvv42pU5lMLxCgZ098+y3s7MC247OysGED1q9Xs8hOVRUSEpCezkvIpqGggPmWzANvl+irqqpmzZqleCmRSGQyGV/BEEKMRGkpjh5lsq2Bui4JhVlRUYHx8UyOnz4drq4GKZUDQiFiYjBoEJONunZ9tr1bN+aRl4ekJDg61vvI2bNYuRIiUd1un35qQn+u4ezcibAwREY2eEMsxpEjGDaMl6iah7cEb2Njs2XLFsVLkUi0cOFCvoIhhBiJsDAmLe3bx7Q+x40zRIkyCwtMmsQUWVFhchkvIED99latmIey7Gx8/vmzRc5u38Y//4l//EP/IZqUmhqUlKh+dWBnr92yBTKZaQ2+oE52hBDjEhCAGTMMexfZ0hITJxqwPB6cPq26hOmlS0yVxt6et5CMUEEB5HJ4edXfWlXFZHepFNOnm9b3RQmeEGJ0WrdmHkSv5HLVfvhEIkHbtqq3NmBlhXbtEBlpWtmdOtkRQog6cjnfEXAsMlK103fXrnB2BrsET24uX3EZl7ZtmVa6KgsLDB0KBwdeQtIFJXhCiLHLz0dysgHLS0/HL7+gtNSARTZTUZGmXb47dcLbb0MorHvZpg0++KDu+aNH2LgR69bh4kWT+KOJpugSPSHE2KWn4+RJDByIqCiDlNe6Nays8McfmDYNLi4GKbKZ/vgD/fppOkPtxInMzrdvw9ERERHPpltv3x5vvIGEBNy4gbIyjBih15BNRGUlcw4oKkSmiRI8IcTY9eoFW1scPly3Mo3e5xextcXUqdi2jcmfb71lzOuG1tRoN+uutzfzaIidJ2fQIOaAKse3sDD1NKe98nJs2YJ27TB8ON+h6MR4T1xCCFEIDYWzM9LSDDV7mI0Nk+MzMow5u7OdwjgMUCBQXUXt2jVcuoTgYHTtCj8/zgoyTnWD4MrKmOwuFKJfP74j0pVRn7uEEKLQrh3zMBwrK3TqZMDytCaXw81Nvz27w8JgZ4c7d/D77xg1Cj166LEs3l27hlu38Kb7MaaaM2VK3dSApowSPCGEmCSBADEx+i3C1pZJ6j16oLjYDPLdcxQU1E50NGoU03y3seE7HA5QgieEmKTycuYXuX17Q5WXlwex2IDlGZeGU/wdOoSyMnTtiqAgU199t05+fu0/r6kNdm8CDZMjhJikpCRs24ZbtwxY3vbthh2uZ9S6dGHa9EeOYNUqNYvTm6Ly8gZz2Jk4asETQkxSr17M/x45guJiDBqk//IGDYJAgL17MWIEwsL0X56x69CBeVRX4/59eHjwHY0u7t5FVhaio995x9zmN6IETwgxVb16wcUFCQnM77IhetcPHAh7e5NbPF6vrK0REqK6cf9+eHo+mynPqN24gWPHFIvHGf0K79qhBE8IMWGBgczDcNjrBsYhKwuHD2P2bOMapy6XM7Wumzdx9izatsWrrxrxAmxXruDUKURHIyKC71D0ghI8IYSYpPJyPHliXNmdbQQPHIgXXsCjR8jJMeLsDsDfH05OCA7mOw59MebvnhBCtCORGHad2fJyVFQYsLx6JBLj7b4uENQtwKZMJsOxY0ziNxaenmac3SnBE0LMSnw8Nm3C3buGKu/UKfz2G9OO5kNNjZHPs6eqvBx5efjjD6xZg0uX+I5GiUyG9euRk8N3HFwzqbODEEKa1LMn06Letw+lpejTR//ljRiBvXuZOsXLLxt+iHxwsIkNy3dywowZKC5GYiKTU3mQk4OCAnTrprL5yROm5mFry0dI+kQteEKIWRkwAKNHIykJUqn+C7O2xiuvICQE16/rvzBVNjZq5p8xfq6u6NcPffvW21hejoQE1aVuOJacjD/+QGpqw3fy82FpaZJfZtOoBU8IMTfduiE01FBDngQCDB/OU4PUfOTk4PBhHDmCwED07AlfX64LuHwZp08jMlLtnAkFBfD0NLcxcpTgCSHmydA/1kbdWdwEBATg//4PKSlMOz4vTw8J3ssLo0ahe3e1b0ZFNfaOaaMETwgxfyUlcHExVGE1NSguNrdZT/XP2hpduzIPFcXFTHVN138+f/+mi1ZZJ9c8UK2TEGLmbt/G+vXIyDBUeTdu4NdfmaaoniUlGXC8AH+uXsWaNfj9d9y6haoqvqMxKby14KVS6alTpxQvxWJxFf3TEUL0IDQUOTnYtg2jRjHP9a5PH0ilOHgQ2dmIjtbf1fvERNjbm/dAbkZ0NIKCmPrSqVNwc0O7dpp97Px5eHsb+Yr++sZbgpfL5WlpaYqXVVVVEomEr2AIIWbs/7N3J9BNVGscwL80zdImadIKdKF0Y2lp2FqkyiY+nghSwT6XhyhC9SEeBUVRBAWUx9HaIwroU3gurCqIT9BSVvdCtRQtrRSKbdmX0tRSuqRp0jTJO0NqaVKWJk0zM8n/d3o407nJzNdwz3y5d+7cKxDQnXeSSkVZWUyqcEdn7NChFBxMBw6Q2dx5Cb6piWfPwTvHOmdORASNGWM/bV99Pclkbd5gMND27XT6NI0f78YwuYi12uHr6zt9+vSWX7VabX5+PlvBAIDHS0qiQYPceKs1Job56UxGI3dnsusMbb/NbN3K5Pj4eFKr/1rRzmSi9euZ71VTplC3bu05rHXF4YEDXR8w67zg6x8AwGUeNpBq4EAPfHTbIRMmUFERHT5M+/fTzJmXW/NCIf3tb0x7XyJp50GKijx2QCQSPAB4KYOh/VmgwywW+vZbuvlmCgpy1SHbTMjmdaxz5gwbRhcvtuqrv7y8YPtXEK6ouMqKt54Bo+gBwBuVltJHH7lx+nHrs3Pr1tGhQ+46pdeorW3un/+LyUSrVlFmJp04wWT669BqSa+nLl06O0R2IMEDgDeKiaHISNq0iS5ckLvjfGIx/fOfNHw47dlDv/zijjN6A4OBdu+mjz+mhobWuwUCuv12Zt+XX9KaNdc7gFhMEya082Y9/6CLHgC8kVDIXNmzsui330JvuYX8/Nxy1ltuYb5WXGXkNzju5EnatYtJ5v/4h93/n48PxcczP/X1VFl59XdfuEBr19Iff1BQEN17L912m5uidickeADwXqNGkVJ5ys+vc4e72wgJcdWRNBomOXnVQHob9fXUuzfzX3jtwZMymf23qdpaysxkvmX95z9UVUXWTH/kCL3wAo0d64ag3Qpd9ADg1fz8OnUJsxsxmZyb806vp3XrmBzvvfr1ozFjHH00wmKhLl3o88+bs3uLTz5xcXRcgAQPAHDF9cdkud65c7RrF23adM2u5GtobKSrPhruyfT6jh9DqWRa6m3X0a+ocPt/fedDggcAaHbuHH38MV286MZTRkbStGnMxtq1VFLS/vdZZ/70lv55o5H27qWVK5k87AptZ7CNiMBysQAAnqtbN6aF9+mnNHo0/fhj8wis++6jhITOPGvXrjR5MnOytu3KaxMIKDjYjc/xs+jECdq9m0wm+vvfXTUlzfjxtHMnnT7d/KtQSDNmuOTA3IIEDwDQTCym+++nbdtowYIrD14dOECLF9OwYZ18bgcXjQkMpNTUTguGU4RC6tOHRowgqdRVh5RK6Z136H//o6Ii5jtcSopnrtmDBA8AcIWPDxkMNo9VWyy0Zk3nJ3g7Oh3TbB02zIWj7vkqMtKhvo12ksk8/xsS7sEDANg4d+7GezpdYyMZjbR+PW3ZQn/+6fbTs6e2lvbvZzsID4EWPACAjfBw+z3du7s9CJWKJk2iM2do7146e9Zjl0Npra6OcnLo0CHmbx840F1zD3kyJHgAABvjx1Nm5pVHzAUCeuwxlkKJiKApUzzw+a2r+u47qqxkPv2+fT1wRDsbkOABAGwoFPTuu7RhAx09Sv7+THtyyBBWA7LLdjk5pFQWGPoWlwgmTWItKNcbN46kUqR2F0KCBwCwFxREzz5L1gew//tf+vVXGj6c7ZhaaLX0yy9aH12DuC+ZpCQUsh2Q4/R6KiykwEDq1evKTvTJu1pnJXidTufv799JBwcAcA+RiG69lbKzKTGRMwlozBgaMcL4VbVIoyMh39atqaykrCw6eZIkEho5ku1oPJzrE7xGo1m0aJFGo8nIyHD5wQEA3CwxkYqL6dIlziR46wT6XfxEba/fZ89SeDine7mt/Q133029e/Oy74FXXJzga2pqtm3bFhoaWlZW5tojAwCwQiikKVPYDqKNkSPJbLbdVVNDmzYxLeOoKIqNZX/qFr2eaambzaRWX9kZGEj33cdmVN7Exc/BK5XKxx9/PDQ01LWHBQCA1vz82iwrr1TSU0/R7beTyUTFxWwFxqiupvXr6d13aedOOnOGzUi8GwbZAQB4CrmcBg5kfuw0NtK6dRQcTKGh1L27K5/rNxpJoyGBwOaYcjn16EG33cb8610L3nELPnoAAE9nsTBZ/8IFysujwkL6179sSo8eJZGIJBImGQcHk0+rnl2jkfR6MpmYDZmMWg+dPnuWMjNJq2UOHhdnk+B9fWn0aHf8XXBdHU3wO3bsePjhh63b+fn50dHR13plVlbWqlWrrlXa1NRktr+h1Eyn0xWz290EvHL+/Hm2QwA+aX+FMZl8fv89uHfvKoXC0MlBdQKVivnp29enqclse0WNysqS1NZap9M5Pm5cU6s1XYILC1XHj1u3KwYMuBQT01IkamiQR0UZZTK9SsW8xWuu0ny5woSFhXU0wd95552nTp2ybgcEBFznlaMuu1apVqt91vrYaRv+/v6xsbEdjBO8CioMOKT9Fea33+jcuYCUlE4OqB0OHKDQUOrRwxXHio0ls5lpoxuNPWUym0H4ISE0YgTTIvf17ebv300stnnjoEGuOD3/8OUK09FBdiKRSPUXHx8sXQMAnmzUKKalWl7OdhxEeXlUUeG6w/n4kERCcrn9I3ZKJZPju3RhWv922R04z8UpuaqqatWqVUeOHFGpVCtWrCgsLHTt8QEAWGRdubSggO04Lg+bE4nYDgK4zcWD7IKCgp588knXHhMAgDsmTuTEjDdNTRifDjeACgIA4ACOzME9ciSFhLAdBHAbEjwAAP8kJbEdAXAehsUBAAB4ICR4AABnaDR09izbQQBcGxI8AIAzCgpo927r9DAAXIQEDwDgjGHDqLaWWHkW2GikCxfarCYHYAsJHgDAGQoFJSRQdjaZTG49b3U1ffIJvfoq7d/v1vMC72AUPQCAk4YOpagoEgrdd8bSUnrxRdJqme1XX6XRo+mll9x3duAXtOABAJzk50cxMWQ2U3ExHT5MRmOnn/Gdd5qzu9UPP1BOTqefFHgKLXgAAOedO8e0pM+cYbYDA2nBgqusxu4ck4lKSshgIL2eLBYaOpQaG6+yZlt+PlME0BYSPACAkywW+ve/m7M7EV26RIsX04YNpFDYvKymhurqmFRtMFCPHjalx49TdnZzUVwcjRlzpchopB07SCplfmQyJouLROTnRw0NNgdXKjv1TwQeQ4IHAHDSqVP013LZzbRaWr6cXnnFZud339GxY8yGWEwpKTYJXiajmBhmv0RCXbvavEsqpRdesNkjENBdd9HWrTavueMOV/5F4EkEFs48xdnQ0OB3tTUczGYzFqKF9kOFAYd0pMKUltJTT9nvTEmhmTNt9uh0TG6WSKjjFbOpiT74gHbupMZG6tGDnn2WBgzo6DHBITy6wnAowQMA8IvZTNOm2SwPL5HQhg0UFNS55zUaqaGBAgI69yzAd/z4GgIAwEE+PrRo0ZV0LpXSvHmdnt2JSCRCdocbQwseAKBDGhooP58aGykhAUPegEOQ4AEAADwQuugBAAA8EBI8AACAB0KCBwAA8EBI8AAAAB4ICR4AAMADIcEDAAB4ICR4AAAAD4QEDwAA4IF4sJrc999/n5OTw3YUztDr9UKhUCQSsR2Iw8xms16v9/f3ZzsQZ9TV1SnsVuvkCZ1OJ5VK+bKORWtNl0mlUrYDcQZ/K4xWq5XL5WxH4QyDweDj48PHa6PFYtHpdDKZjO1Abuz+++/nwUx2995775IlS9iOwhlffPFFdHT0kCFD2A7EYWVlZZs3b37uuefYDsQZc+fOXbp0KdtROGP58uWTJk0KCwtjOxCH5efn//HHH5MnT2Y7EGfwt8LMnz//9ddfFwqFbAfisO3btysUilGjRrEdiMPq6uqWL1/+it16wJwUERHBgxa8WCzu168f21E4Izs7Ozo6mo/By+Xyrl278jFyIlIqlTyNvGvXrn369ImKimI7EIdVV1fX1NTw9GPnb4VRqVRqtdrXlweXcTsFBQUqlYqPH3t1dXVQUBBfIudfZyAAAADcEBI8AACAB0KCBwAA8ED8u3nDIw888IBEImE7CmeEhYXNnj2b7Si8zuzZs2+66Sa2o3BGQkJCXFwc21F4nbS0ND7egCei5ORkPo4N5B1eVg6+4OnF2jqwMTQ0lO0ovA5/P3PZZWxH4XUiIiLYDsFJgYGBbIfgFdBFDwAA4IGQ4AEAADwQEjwAAIAHEi5evJjtGG7AbDar1Wq2owDeQIUBh6DCgEN8fHxiY2PZjqJdeDBVLQAAADiKW6PoGxoaXn75ZYlEUllZuXjx4vDw8PaXghe6dOnSwoULFQpFdXV1enq6SqVqXfroo4+KRKKAgICqqqq0tLSQkBD2IgVOOH36dFpamkqlamxsTE9Pt3uK1WKxvPfee+fPn7cu4pKens5epMAJhw4dWrlypUKhkEgkS5YssVsIavXq1Xv37lWpVEFBQYsWLeLiMlEWLnniiSfef/99i8Wyb9++xMREh0rBCyUnJ2dkZFgslk2bNk2cONGudM6cOdaNN95446677mIjQOAWtVr9+++/W6vEM888Y1e6bNmyF1980bqdnp7ORoDAIXq9Pjw8/MKFCxaLZebMmW+++Wbr0h07dvTq1auhocFisTz44IN2pRzBoQRvMBgUCsWJEycsFovZbA4KCiooKGhnKXih8vJysVis0+ksFktdXZ1IJNJoNK1fUF9fb93YuHFjdHQ0S2ECV/z6669hYWHW7SNHjqhUqqamppZSvV4vlUrLy8vZCxC45auvvkpKSrJu79mzJy4urnXprFmzUlNTrdtbtmxRq9VsxHgDHOpSKC8vr6urs/ajCgSC7t27l5SUtLMUvNCxY8fkcrmfn591+TuZTHbs2LHWL7CuZ19dXf35559PmzaNvUiBE4qLi1tu03Tv3r26ulqj0bQuDQgICA4OLikpKSwsxOAksKswpaWlZrO5pVQikTQ1NVm3IyMjjx8/zlKY18Ohe/AXL14UCATW67V1bqzKysp2loIXqqqqsqZwK7lcfvHiRbvXrF27duPGjSEhIVOnTnV7gMAtrSuMXC63XlVaVt8vLi4WCoXLli3z9/f/6aeftFrt9u3bWY0XWGZXYUwmU01NTcscfNOmTRszZsy2bdtCQkK+/fZb/WVSqZTVkO1xKMErlUprV7x15ItOp1Mqle0sBS+kVCr1en3Lr1etEo9edvDgwSFDhhQXF/N38mDouNYVRqfTWfe0lMpkMj8/vzlz5hBRamqqSqXKy8sbPHgwe/ECy+wqjEAgUCgULaX9+/fPzs7evXs3ESUlJclkMq5ld25NdBMaGioWi1va5RUVFVFRUe0sBS8UFRVVU1NjNBqJyGAw1NbWRkZGtpRab0FZtxMTE4VCYX5+PnvBAvuioqJaX0CkUmlwcHBLaUxMjEajMZlMRCSVSgMCAi5dusResMA+uwoTHh5ut7RPr169Zs2aNXHixPLy8vj4eJbCvB4OJXg/P78JEybs27ePiI4ePSoWi2+99VYi2rp1q1arvVYpeK2IiIjExMTc3Fwi2rt378033xwZGdnU1PTll18ajcaioqLPPvvM+sqKiora2to+ffqwHTKwafjw4Uaj8ezZs0T0ww8/pKSkSCQSrVa7detWIoqLi4uPj//xxx+JqLa2VqfT9evXj+2QgU133313cXFxfX29tcJMmjSJiP7888+dO3dan6Cz3nc3m81r1qzh5vKb3Jropry8fObMmWq1uqCgYNGiRUOGDKmqqgoODs7MzBw3blzbUrbjBZaVlJTMmzevf//+BQUFb7/9du/evY8cOTJgwICCggKVSpWamjp06FBfX9/c3NypU6dOnjyZ7XiBZTk5OW+99VZ8fPzhw4c/+OCDbt267dq165577tFoNIGBgSdPnpwzZ86gQYMOHz6cnJycmprKdrzAsszMzI0bN/bs2bO0tHT16tVyufyjjz6aN29eZWXlvn37VqxYkZCQUFxcnJiY+Pzzz7Md7FVwK8FbNTY2isXill+tk05cqxTgOhXGbDYbDIaWsZkAN7zCcHCoFLDLrsLU19e3LI6s0+laD/XlGi4meAAAAOggDt2DBwAAAFdBggcAAPBASPAAAAAeCAkeAADAA3FoJjsA4L709PSDBw82NjZGR0dPnz5drVZnZmZ+/fXXDQ0Nd9xxx2OPPcZ2gADQDC14AHDA/Pnzx44dm5GR0bNnT7VaTUTjx48/c+bM008/jewOwCl4TA4AHJacnJyVlXXo0KGYmJgFCxaoVKq5c+eyHRQA2ECCBwCHlZWV9evXr3///i+99NLKlSszMjIEAgHbQQGADSR4AHDGp59++sgjj0RGRubl5WGZPgAOQoIHAGeYTKbIyMiqqqr8/PzY2Fi2wwEAe0jwAOCMhQsXEtGHH34YExPz888/C4VCtiMCABsYRQ8ADvvmm2+Kiopee+21VatW5ebmLl26lO2IAMAeWvAA4JiysrKUlJQ9e/YEBgYS0UMPPbRly5a8vDwsoA7AKUjwAOAAk8k0duzYtLS0pKQk656qqiq1Wh0WFpabm+vri7mzALgCXfQA0F55eXkzZswwmUx79uxp2bl58+bBgwcLBIIZM2bk5uayGiAAXIEWPAAAgAdCCx4AAMADIcEDAAB4ICR4AAAAD4QEDwAA4IH+HwAA///iooXoH5tIeQAAAABJRU5ErkJggg==)"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import regr from '../regr/mod.ts';\n",
"\n",
"const linregWoPoly = regr.Linear();\n",
"\n",
"linregWoPoly.fit(df.drop('y').rows(), df.select('y').rows());\n",
"const predWoPoly = linregWoPoly.predict(df.drop('y').rows());\n",
"\n",
"comparePredicted(df.x, df.y, predWoPoly);"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now augment our dataset with high degree polynomial:"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/markdown": [
"![name](data:image/png;base64,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)"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import { polynomialTransform } from '../encoding.ts';\n",
"\n",
"\n",
"\n",
"const polyFeatures = polynomialTransform(df.drop('y'), 36, false, false)\n",
"\n",
"const [polyX, polyY] = [polyFeatures, df.select('y')]\n",
"\n",
"const linregPoly = regr.Linear();\n",
"\n",
"linregPoly.fit(polyX.rows(), polyY.rows());\n",
"const predY = linregPoly.predict(polyX.rows());\n",
"\n",
"comparePredicted(df.x, df.y, predY);\n"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\u001b[33m0.9999999469410812\u001b[39m"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"linregPoly.score(df.select('y').rows(), pl.DataFrame({\"py\":predY}).rows());"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# ElasticNet"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/markdown": [
"![name](data:image/png;base64,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bmhoePHiRV9f35EjR3IdL3Ds/PnzP/30k7u7+82bNzds2NC0adOjR49++OGH6enp1tbWDx8+/Prrrzt06HDz5s1Bgwb5+/tzHS9w7ODBgxEREa1bt753797mzZvNzc03btw4Y8aMrKysmJiYlStXduzYMT4+vlOnTt988w3XwVZDuxK8UmlpqbGxccVb5aATL9sK8IoDRi6XSySSiraZAK89w2hhUynglsoBU1RUVDE5slgsrtzUV9toY4IHAACAetKiZ/AAAACgLkjwAAAAeggJHgAAQA8hwQMAAOghLRrJDgC039KlS69evVpaWurk5DRu3DgPD4+DBw/+/vvvxcXF77333tixY7kOEADKoQYPALUwc+bM999/f//+/a1bt/bw8CCigQMHPn78+KuvvkJ2B9Aq6CYHALU2aNCgM2fOXL9+3dnZec6cOSKRaPr06VwHBQBVIMEDQK2lpKS0bdu2Xbt2s2bNCgsL279/P4/H4zooAKgCCR4A6mL79u2ffvqpo6PjlStXME0fgBZCggeAuigrK3N0dMzJyYmNjXV1deU6HABQhQQPAHUxd+5cIvr555+dnZ3/+usvPp/PdUQAUAVa0QNArR0/fvz27duLFi1at27dxYsXf/zxR64jAgBVqMEDQO2kpKR4e3tHR0dbW1sT0ahRo3777bcrV65gAnUArYIEDwC1UFZW9v7774eEhHh6eirX5OTkeHh42NvbX7x40dAQY2cBaAvcogeAmrpy5cr48ePLysqio6MrVkZFRXXu3JnH440fP/7ixYucBggAz6EGDwAAoIdQgwcAANBDSPAAAAB6CAkeAABADyHBAwAA6KH/DwAA///XA+2N8LVuhgAAAABJRU5ErkJggg==)"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"const elasticNetPoly = regr.ElasticNet(1000, 0.0001);\n",
"elasticNetPoly.fit(polyX.rows(), polyY.rows());\n",
"const predEnetY = elasticNetPoly.predict(polyX.rows());\n",
"\n",
"comparePredicted(df.x, df.y, predEnetY);"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Lasso"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/markdown": [
"![name](data:image/png;base64,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)"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"const lassoPoly = regr.Lasso(1000, 0.0001);\n",
"lassoPoly.fit(polyX.rows(), polyY.rows());\n",
"const predLassoY = lassoPoly.predict(polyX.rows());\n",
"\n",
"comparePredicted(df.x, df.y, predLassoY);"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\u001b[33m0.8637104981289901\u001b[39m"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"lassoPoly.score(df.select('y').rows(), pl.DataFrame({\"py\":predLassoY}).rows());\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Logistic Regression\n",
"\n",
"Logistic regression is applicable for classification problems when there are linear relationships in the data.\n",
"\n",
"For example we'll use a simple linear pattern for predictions:"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.dataresource+json": {
"bytes": null,
"data": [
{
"is_even": 1,
"x": 0,
"x2": -0.9906467224227306,
"x3": 0.00261179419023964
},
{
"is_even": 0,
"x": 1,
"x2": 0.00202764718654894,
"x3": 0.0013126936809724655
},
{
"is_even": 1,
"x": 2,
"x2": -0.9972687463767552,
"x3": -1.9905576758692132
},
{
"is_even": 0,
"x": 3,
"x2": 0.009024117668298463,
"x3": 1.0021275936361942
},
{
"is_even": 1,
"x": 4,
"x2": -0.9968599379688912,
"x3": -0.9947633704461447
},
{
"is_even": 0,
"x": 5,
"x2": 0.0019298798125454942,
"x3": -0.9913865823439642
},
{
"is_even": 1,
"x": 6,
"x2": -0.9967558047825875,
"x3": 0.00801993440722967
},
{
"is_even": 0,
"x": 7,
"x2": 0.007736464312311071,
"x3": 0.00034330022067074583
},
{
"is_even": 1,
"x": 8,
"x2": -0.9959077406033643,
"x3": -1.994011690184521
},
{
"is_even": 0,
"x": 9,
"x2": 0.002684616942261051,
"x3": 1.0072230674765243
}
],
"description": null,
"dialect": null,
"encoding": null,
"format": null,
"hash": null,
"homepage": null,
"licenses": null,
"mediatype": null,
"path": null,
"schema": {
"fields": [
{
"constraints": null,
"description": null,
"example": null,
"format": null,
"name": "x",
"rdfType": null,
"title": null,
"type": "number"
},
{
"constraints": null,
"description": null,
"example": null,
"format": null,
"name": "x2",
"rdfType": null,
"title": null,
"type": "number"
},
{
"constraints": null,
"description": null,
"example": null,
"format": null,
"name": "x3",
"rdfType": null,
"title": null,
"type": "number"
},
{
"constraints": null,
"description": null,
"example": null,
"format": null,
"name": "is_even",
"rdfType": null,
"title": null,
"type": "number"
}
],
"foreignKeys": null,
"missingValues": null,
"primaryKey": null
},
"sources": null,
"title": null
},
"text/html": [
"<table><thead><tr><th>x</th><th>x2</th><th>x3</th><th>is_even</th></tr></thead><tbody><tr><td>0</td><td>-0.9906467224227306</td><td>0.00261179419023964</td><td>1</td></tr><tr><td>1</td><td>0.00202764718654894</td><td>0.0013126936809724655</td><td>0</td></tr><tr><td>2</td><td>-0.9972687463767552</td><td>-1.9905576758692132</td><td>1</td></tr><tr><td>3</td><td>0.009024117668298463</td><td>1.0021275936361942</td><td>0</td></tr><tr><td>4</td><td>-0.9968599379688912</td><td>-0.9947633704461447</td><td>1</td></tr><tr><td>5</td><td>0.0019298798125454942</td><td>-0.9913865823439642</td><td>0</td></tr><tr><td>6</td><td>-0.9967558047825875</td><td>0.00801993440722967</td><td>1</td></tr><tr><td>7</td><td>0.007736464312311071</td><td>0.00034330022067074583</td><td>0</td></tr><tr><td>8</td><td>-0.9959077406033643</td><td>-1.994011690184521</td><td>1</td></tr><tr><td>9</td><td>0.002684616942261051</td><td>1.0072230674765243</td><td>0</td></tr></tbody></table>"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"const clsDf = pl.DataFrame({ \n",
" x: new Array(100).fill(0).map((_, i) => i ),\n",
" x2: new Array(100).fill(0).map((_, i) => i % 2 - 1 + Math.random() / 100),\n",
" x3: new Array(100).fill(0).map((_, i) => i % 2 - i % 3 + Math.random() / 100),\n",
" }).select(\n",
" pl.all(),\n",
" pl.col('x').modulo(2).eq(0).add(0).alias('is_even'),\n",
");\n",
"clsDf.head(10);"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Notice that I left `x` in training data which is a continuos sequence that couln't be generalized by this model, however the model should guess a correct class in most cases. "
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"tags": [
"hide_code",
"parameters"
]
},
"outputs": [],
"source": [
"const drawBin = (x1, y1, t = \"Example\") => {\n",
" const xTrue = clsDf.x.toArray().map((v, i) => v % 2)\n",
" const yTrue = clsDf.is_even.toArray()\n",
" y1 = y1.map((v, i) => v + i * 0.02)\n",
" x1 = x1.map((v, i) => v % 2)\n",
" return plot.DrawPlot(\n",
" { \n",
" title: \"\",\n",
" width: 2.5,\n",
" height: 2,\n",
" XLabel: \"X\", \n",
" YLabel: \"Y\", \n",
" }, \n",
" { type: \"scatter\", data: [xTrue, yTrue], lineDashes: [3, 4], glypRadius: 12, glyphColor: \"#00f\", glyphShape: \"ring\" },\n",
" { type: \"scatter\", data: [x1, y1], legend: t, lineDashes: [3, 4], glypRadius: 3, glyphColor: \"#f00\", glyphShape: \"ring\" },\n",
" );\n",
"}\n"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"import {trainTestSplit} from \"../split.ts\";\n",
"\n",
"\n",
"const {testX, trainX, testY, trainY} = trainTestSplit(clsDf, 0.05, true, \"is_even\");\n",
"\n",
"const drawTestBin = () => drawBin(testX.x.toArray(), testY.is_even.toArray(), \"Test Data\");\n"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/markdown": [
"![name](data:image/png;base64,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)"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"const logreg = regr.Logistic({\n",
" epochs: 5000,\n",
" learningRate: 0.001,\n",
"});\n",
"logreg.fit(trainX.rows(), trainY.rows());\n",
"\n",
"const predLogReg = logreg.predict(testX.rows());\n",
"\n",
"const yPred1 = predLogReg.map((x) => x[0]);\n",
"\n",
"drawBin(\n",
" testX.x.toArray(), \n",
" yPred1,\n",
" \"Predicted\"\n",
");"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"tags": [
"hide_code",
"parameters"
]
},
"outputs": [
{
"data": {
"text/markdown": [
"![name](data:image/png;base64,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)"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"drawTestBin()"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[ 0, 1, 1, 0, 1 ] should be [ 0, 1, 1, 0, 1 ]\n"
]
}
],
"source": [
"console.log(yPred1, \"should be\", testY.is_even.toArray());"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\u001b[33m1.6635532311438688\u001b[39m"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"logreg.loss();"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Deno",
"language": "typescript",
"name": "deno"
},
"language_info": {
"codemirror_mode": "typescript",
"file_extension": ".ts",
"mimetype": "text/x.typescript",
"name": "typescript",
"nbconvert_exporter": "script",
"pygments_lexer": "typescript",
"version": "5.6.2"
}
},
"nbformat": 4,
"nbformat_minor": 2
}