From 5af3c7611344b002af7be5832756808bbf2cbca7 Mon Sep 17 00:00:00 2001 From: Arthur DANJOU Date: Tue, 14 Oct 2025 11:12:31 +0200 Subject: [PATCH] Implement code changes to enhance functionality and improve performance --- M2/Data Visualisation/init.R | 25 +++++ M2/Risks Management/TP1/portef_v3_4_3.ipynb | 109 ++++++++++---------- 2 files changed, 78 insertions(+), 56 deletions(-) create mode 100644 M2/Data Visualisation/init.R diff --git a/M2/Data Visualisation/init.R b/M2/Data Visualisation/init.R new file mode 100644 index 0000000..c7f32b7 --- /dev/null +++ b/M2/Data Visualisation/init.R @@ -0,0 +1,25 @@ +# Liste des packages à installer +packages_to_install <- c( + "lattice", "grid", "ggplot2", "gridExtra", "locfit", "scales", + "formattable", "RColorBrewer", "plotly", "dplyr", "tidyr", + "rmarkdown", "ggthemes", "cowplot", "kableExtra", "ggridges", + "colorspace", "sf", "mapview", "tidyverse", "readxl", "readr", + "giscoR", "gapminder", "GGally", "ggfortify", "lubridate", "zoo", + "xts", "forecast", "feasts", "tseries", "tsibble", "fable" +) + +# Fonction pour installer les packages manquants +install_if_absent <- function(package_name) { + if (!requireNamespace(package_name, quietly = TRUE)) { + install.packages(package_name) + message(paste("Package", package_name, "installé avec succès.")) + } else { + message(paste("Package", package_name, "déjà installé, installation ignorée.")) + } +} + +# Appliquer la fonction à la liste de packages +lapply(packages_to_install, install_if_absent) + +# Note : Une fois les packages installés, n'oubliez pas de les charger dans votre session R +# avec la commande library(). Par exemple, library(tidyverse). \ No newline at end of file diff --git a/M2/Risks Management/TP1/portef_v3_4_3.ipynb b/M2/Risks Management/TP1/portef_v3_4_3.ipynb index 10637da..6cb92b2 100644 --- a/M2/Risks Management/TP1/portef_v3_4_3.ipynb +++ b/M2/Risks Management/TP1/portef_v3_4_3.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": 66, "id": "62fa0297", "metadata": {}, "outputs": [], @@ -44,7 +44,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 67, "id": "3202bb04", "metadata": {}, "outputs": [ @@ -81,7 +81,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 68, "id": "f1d15e71", "metadata": {}, "outputs": [ @@ -139,7 +139,7 @@ "(0, 40)" ] }, - "execution_count": 3, + "execution_count": 68, "metadata": {}, "output_type": "execute_result" } @@ -180,7 +180,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 69, "id": "fba88600", "metadata": {}, "outputs": [ @@ -246,7 +246,7 @@ "(26, 14)" ] }, - "execution_count": 4, + "execution_count": 69, "metadata": {}, "output_type": "execute_result" }, @@ -278,7 +278,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 70, "id": "5b14395c", "metadata": {}, "outputs": [ @@ -337,7 +337,7 @@ "(31, 9)" ] }, - "execution_count": 5, + "execution_count": 70, "metadata": {}, "output_type": "execute_result" }, @@ -362,12 +362,12 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 71, "id": "27153b45", "metadata": {}, "outputs": [], "source": [ - "nb = 15 # will work with nb stocks\n", + "nb = 5 # will work with nb stocks\n", "all_returns = returns.copy() # backup\n", "nb_all = all_returns.shape[1]\n", "\n", @@ -382,13 +382,13 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 72, "id": "4e01bf0f", "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiEAAAE8CAYAAAAWt2FfAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAATg9JREFUeJzt3QlcVOX6B/BHUUAFcQchN1wyTVwASdM0RdFsMb2FtojW1duiV7MyzdJMuy5ZWWla3VLTTLJr9q9rWK4tmiRuN3fNwiUQNERQQeH8P897OsOZ4ZzZmOHM8vt+PkeYM2fOnDmDc5553+d93iqSJEkEAAAAUMmqVvYTAgAAADAEIQAAAGAIBCEAAABgCAQhAAAAYAgEIQAAAGAIBCEAAABgCAQhAAAAYAgEIQAAAGAIBCEAAABgCAQhAD4qOzub/va3v1H9+vWpSpUqtGDBArH+2LFj1L9/fwoLCxPr161bR8uWLRO///bbbw49x8iRI6l58+bkadLS0qhTp04UHBwsXldeXh55Cj6el156yejDAPAI1Yw+AABwj6eeeoo2bNhA06dPp4iICIqLixPrU1JS6OTJk/TKK69QnTp1xPqNGzeSpzp48CB9+umndgc858+fp/vvv5/at29PixYtoqCgIKpVqxZVpvXr11N6ejqCDQAbqmDuGADfxIFHYmIirVy50rTuypUrVLNmTZo6dSrNmjXLtL6kpISuXbsmLtj8Td1e/JjS0lLxOHf57LPP6L777qMtW7ZQ79697WoFGThwIH377bfi9Rth7NixIgDS+ni9evUqVatWTSwA/g7/CwB81Llz50RLh1pOTo74abk+ICBALI6qXr06eeLr1nqNWi5fviyCssrEXUSuwgFNYGAgVa2KnnXwUtwSAgDe4/Tp09KoUaOkRo0aSYGBgVK7du2kDz74wHT/0qVL+et3uWX69Onl1jVr1szsMSdPnjR7rvXr10u33XabFBISIoWGhkpxcXHSxx9/bLo/JSXFtA9FSUmJ9MYbb4jjCgoKEsc5ZswY6cKFC2bb8eMGDRokff/991J8fLzYtkWLFtLy5cttvpYtW7ZonptevXqV25aPUbmvffv20q5du6SePXtKNWrUkMaPHy/uy87Olh555BFxrHwcMTEx0rJly8z2zeeG9/fqq69K7777rhQdHS3OP5+T9PR0s3OidcwK5b1w5D1l/Jr5sZ988ok0depUKTIyUqpSpYr0559/ap4LAG+AlhAAL0s2veWWW0SXCTf5N2zYkL7++mt69NFHKT8/nyZMmEC33XYbrVixgh5++GHq168fjRgxQjw2JiZGtA5wrsjw4cPpjjvuoJCQEN3n4mTVRx55RORWTJkyRTx2z549orvjgQce0H3cP/7xD/HYUaNG0T//+U+Rf7Jw4ULx2B9//NGs9eT48eMieZaPn3NVPvzwQ5H7ERsbK56XXwvv46233qLnn3+ebrrpJvE45acl7ma68cYb6b333qOXX36ZWrRoQS1btjTLF+GummHDhtFDDz1E4eHhoouKu3n4WPic8mPWrFkjjoMTWsePH2/2HKtWraJLly6J18nvw7x582jIkCH066+/itfG68+ePSu6g/h9cMV7qjZz5kzR+vHMM89QUVGR+B3AaxkdBQGA/R599FGpcePGUm5urtn6YcOGSWFhYdLly5dN6/i/95NPPqn7bV7NsiUkLy9PtHwkJCRIV65cMdu2tLRUtyWEWzV4P+rWEpaWllZuPT+O13333XemdefOnRMtEU8//bRp3Zo1a6y2flhSXsvPP/+s2UqyZMkSs/ULFiwQ61euXGlaV1xcLHXr1k20AOXn55udu/r165u16nzxxRdi/Zdffmlax+dd7+PVsiXE3vdUaQnhFhj1+wzgzdCRCOAl+Pr1n//8h+666y7xe25urmlJSkqiixcv0u7du13yXPwtnr/tT548uVwOg7XEVW5B4KG/3AKjPj5u2eBWF04uVWvXrh317NnTdJtbAbglg1sV3IETaLmFxnIkCyfxcuuQgls0uAWmoKCAtm3bZrZ9cnIy1a1b13RbOX5njtmZ95RbjGrUqOHwcwF4InTHAHgJTirl7gHuauDFWlJmRZ04cUL8vPnmmx16HNcg4Qtno0aN7Dq+pk2bltuGL/B//vknuUNUVFS57ovff/+dWrduXS65U+ny4futHbMSkDhzzM68p9xdBOArEIQAeAkeCss4l4G/DWvhvA+jj5EDkI8//ljzfm7pUNMbkeOuygGuaEFw5TE7856iFQR8CYIQAC/BF/DQ0FBR08Pd9S+UZM5ffvmFWrVq5dDjuPDZrbfe6rKLpSN1S5zRrFkz2r9/vwgI1K0hhw8fNt3vrmOuzPcUwBMhJwTAS/A38KFDh4ocAg4OLCk1QFyBy7rzxXH27NmiFoW93/i5UilfUHkEh6Xr1687VT5dqXbqrtLrPEooKyuLUlNTzY717bffFnksvXr1ctsxV+Z7CuCJ0BIC4EXmzJkjkjsTEhJo9OjRIrHzwoULInmRWyD4d1eoXbs2vfHGG/T3v/+d4uPjxZBczn3Yt2+fKPC1fPlyzcfxBZuHqHLwsnfvXhHMcJIn54pw0uqbb74phuQ6gueA4Yv13LlzRb4JJ5f26dNHN+/EUWPGjKF3331XDMnNyMgQpeG5SisPJ+b5djgYcxQn4jJObuUEUz5+HhZs5HsK4IkQhAB4Ea5rwXOScA2MtWvX0jvvvCMmqOOaGnyRdiWuU8EXer5IcssGBxNt27YVdUasWbJkibgI84Wda3tweXK+sHPeA3fTOIpHrvA+ObDhY+KWFr5ouyoI4W6jrVu3ipFAHFxxbQ4eobN06VIRmDiD64aMGzeOVq9eLcrmc+uRXhBSme8pgKfB3DEAAABgCOSEAAAAgCEQhAAAAIAhEIQAAACAIRCEAAAAgCEQhAAAAIAhEIQAAACAIVAnRAOXbz579qwoUuTuktEAAAC+hCt/8CzckZGR5SaGtIQgRAMHIE2aNDH6MAAAALzWqVOn6IYbbrC6DYIQDUqZZj6BXL4aAAAA7MNVh/mLvD1THiAI0aB0wXAAgiAEAADAcfakMyAxFQAAAAyBIAQAAAAMgSAEAAAADIEgBAAAAAyBIAQAAAD8NwhZtGgRNW/enIKDgykhIYHS09N1t127di3FxcVRnTp1qFatWtSpUydasWKF2TYjR44UWbnqZcCAAZXwSgAAALyMJBn21IYP0U1NTaWJEyfSkiVLRACyYMECSkpKoiNHjlCjRo3KbV+vXj2aOnUqtW3blgIDA+mrr76iUaNGiW35cQoOOpYuXWq6HRQUVGmvCQAAwGOdP0+0fTvRjz/KCw+l/e47Qw6lisT1VQ3EgUd8fDwtXLjQVDKdi5yMGzeOJk+ebNc+unTpQoMGDaKZM2eaWkLy8vJo3bp1ThdaCQsLo4sXL6JOCAAAeC9JIjp6tCzg4OXIEfNtAgKILl4kqlXLJU/pyDXU0JaQ4uJiysjIoClTppjWcZ35xMRE2rFjh83Hc/y0efNm0Woyd+5cs/u2bt0qWkfq1q1Lffr0oVmzZlH9+vU191NUVCQW9QkEAADwOkVFRBkZRD/8IAcc3OKRm1t+u7ZtiW69lah7d/lnzZpGHK2xQUhubi6VlJRQeHi42Xq+ffjwYd3HcXQVFRUlAoeAgAB65513qF+/fmZdMUOGDKEWLVrQiRMn6Pnnn6eBAweKwIa3tzR79myaMWOGi18dAACAm+Xmmnet7NolByJqnI4QHy8HG7x060bUoIFRR+xZOSHO4Hr0e/fupYKCAtq0aZPIKYmOjqbevXuL+4cNG2batkOHDhQTE0MtW7YUrSN9+/Yttz9uieF9WNa9BwAA8KiulePHy1o5eNH6wt6wYVnAwUuXLnIg4oEMDUIaNGggWiays7PN1vPtiIgI3cdxl02rVq3E7zw65tChQ6I1QwlCLHGAws91/PhxzSCEk1aRuAoAAB6luJhozx7zoOPcOf2ulR495J98fbRj3hby9yCER7fExsaK1ozBgwebElP59tixY+3eDz9GndNh6fTp03T+/Hlq3LixS44bAADA5fLyiDgfkoMNDjx27iS6etV8m8DAsq4VDjo4p0Mn39EbGN4dw90gKSkpovZH165dxRDdwsJCMeyWjRgxQuR/cEsH45+8LXevcOCxfv16USdk8eLF4n7uouH8jqFDh4rWFM4JmTRpkmg5UQ/hBQAAMNSpU3KwoSz/+1/5mh316pm3csTGEgUHk68wPAhJTk6mnJwcmjZtGmVlZYnulbS0NFOyamZmpuh+UXCA8sQTT4jWjRo1aoh6IStXrhT7Ydy9s3//flq+fLkYphsZGUn9+/cXw3fR5QIAAIYoKSE6cKAs4ODWjszM8tu1bFkWdPBy442cg0C+yvA6IZ4IdUIAAKBCrlwh+vnnsqCDR7BwLQ61gACizp3LAg4OPqzkQ3oLr6kTAgAA4FNVSL//Xg46eKjstWvm24SEEN1yC1HPnnLQ0bWrvM6PIQgBAABwBHcg/P67HGwoQcfBg+W341YNJeDgJSaGqBouu2o4GwAAANaUlhL98ot50HH6dPntOH9DHXRER3vNUFmjIAgBAABQ45IP3J2iBBycRMrDZ9W4RYOLgHGwwYEH53NwkTBwCIIQAADwbzxfGOdzKC0d6enl63Pw5G5c7lxp6UhIcNmEb/4MQQgAAPgXrtLNAQdPX89Bx759cpeLGrdqKAEH/+zUCfkcboAzCgAAvp1E+ttvcrChBB08tb2lFi3kYENZ2rRBPkclQBACAAC+g1s0eKSKOug4c8Z8Gw4ubr7ZPOiIijLqiP0aghAAAPBe16/Lk7wpAQcvFy6Yb8PdKHFxcrBx221yEmndukYdMaggCAEAAO/BCaOcOMpBBy+cUFpYaL5NzZplSaS8IInUYyEIAQAAz3XpkjyzrBJ08MyyPMW9Wp06ZQEHt3Tw0Nnq1Y06YnAAghAAAPAc3JWijFzhZfduefI3y0qkHGwoS/v2Pj3Jmy9DEAIAAMYOl1UCjm3b5OnstUauqIMOnmkWI1d8AoIQAACoPKdOlQUc/PPIkfLbtG1L1KuXHHBwF0uTJkYcKVQCBCEAAOC+Gh0nT5YFHbzwbTVu0eCJ3Tjg4MCDg45GjYw6YqhkCEIAAMB1QcexY2UBBy+WE70FBMiJo0rQwRVJMVzWbyEIAQAA54OOw4eJtm4tCzqyssy34VEq8fFl3StcoyM01KgjBg+DIAQAAByrRsrBBgce3M1y7pz5NkFBcl0ODjp44XodXLcDQAOCEAAA0A86fvmlrKWDg47cXPNtgoOJuncvCzo4AOF1AHbwiIHVixYtoubNm1NwcDAlJCRQOlfD07F27VqKi4ujOnXqUK1atahTp060YsUKs20kSaJp06ZR48aNqUaNGpSYmEjHuJ8SAACsBx379xO99RbRkCHyTLIdOxKNH88fvnIAwq0a/foRzZoll0jPyyPatIlo2jQ5CEEAAt7UEpKamkoTJ06kJUuWiABkwYIFlJSUREeOHKFGGhnS9erVo6lTp1Lbtm0pMDCQvvrqKxo1apTYlh/H5s2bR2+99RYtX76cWrRoQS+++KK47+DBgyLQAQCAv4IOrsuhzumwnHeFy51zHkfv3vISG0sUGGjUEYOPqSJxs4GBOPCIj4+nhQsXitulpaXUpEkTGjduHE2ePNmufXTp0oUGDRpEM2fOFK0gkZGR9PTTT9Mzzzwj7r948SKFh4fTsmXLaNiwYeUeX1RUJBZFfn6+OAZ+XO3atV32WgEAPKZ7RQk8tIIOHiarBB0ogQ4O4mtoWFiYXddQQ1tCiouLKSMjg6ZMmWJaV7VqVdF9soPnCrCBA47NmzeLVpO5c+eKdSdPnqSsrCyxDwWfDA52eJ9aQcjs2bNpxowZLntdAAAelUjKAceWLXLQcf68+TYhIfIwWQQdYABDg5Dc3FwqKSkRrRRqfPswD/vSwdFVVFSUaL0ICAigd955h/pxHyXx6DB5eJjWPpX7LHEQxF1Cli0hAABeOWSWAw5eOPiwTCTllg4l6Lj9dgQd4N85Ic4IDQ2lvXv3UkFBAW3atEkEENHR0dSb/1M5ISgoSCwAAF5ZHExp6eCfll+2OJFUyengoCMuDkEHeAxDg5AGDRqIloxsnsBIhW9H8CyJOrjLplWrVuJ3Hh1z6NAh0aXCQYjyON4Hj45R75O3BQDwalz2nAOOzZvloOPMGe0hsxxw8MKFwpBICh7K0CCER7fExsaK1ozBgwebElP59tixY+3eDz9GSSzl0TAciPA+lKCDu1d27txJjz/+uJteCQCAm3CQoQQd/PO338zv5wDjllvKgg7U6QAvYnh3DHelpKSkiNofXbt2FUN0CwsLxbBbNmLECJH/wS0djH/yti1bthSBx/r160WdkMWLF4v7q1SpQhMmTKBZs2ZR69atTUN0ecSMEugAAHisnBy5hYODDl6OHjW/v1o1oq5dy4IObvWoUcOoowXw7iAkOTmZcnJyRHExThzl1ou0tDRTYmlmZqboflFwgPLEE0/Q6dOnRSEyrheycuVKsR/FpEmTxHZjxoyhvLw86tGjh9gnaoQAgMe5eFGuRMoFvzjo4LodlrPMcm0ODjj69JGTSnlEC4APMLxOiLePcQYAcMjly0Tbt8sBBwceu3bJQ2nVOnSQAw4OPHjSN8wyC17Ea+qEAAD4vGvXiH7+WQ44eOEaSMXF5ttwon3fvnLgwaNYNKpFA/giBCEAAO4oha4EHdzVUlBgvk1UVFnQwa0dTZsadbQAhkIQAgBQUb/+SrRxoxx08AgWTi5Vq1dPDjY48OCldWs51wPAzyEIAQBwFAcZnNPBgQcvlsNmuUAY53IoQQfPRKtKsAcAGYIQAABbuDuFp63nlg4OOvbtKz9slmt18JxV3MXCtTpQIAzAJgQhAACWrl+Xk0mVlg5OJuUEU7WYGDno4IVnncWwWQCHIQgBAOBKBVwUjAOOb7+V8zry8823adasLOjg1g6MYAGoMAQhAOC/eR1K0ME/T50yv59rc3CwoQQeLVsimRTAxRCEAIB/uHqV6IcfiL75Rg489u41v59zOLgaqRJ08BT3AQFGHS2AX0AQAgC+Xa+DAw4OPDixlAMRNR610q+fvHAAwqNaAKDSIAgBAN+RlVUWdPDP7Gzz+yMj5YCjf3956Oxfc1QBgDEQhACA97pypayLhZf9+83v55YNLoOuBB433YS8DgAPgiAEALxrFMuBA2VBx7Zt5btYeMZZDjg48OBp7oOCjDpaALABQQgAeLYLF+TRKxs2yMuZM+W7WJKSyrpYGjY06kgBwEEIQgDA8wqFpaeXBR1cNEw91X1wMFGvXmWBR7t26GIB8FIIQgDAeNy6wQFHWpqcUJqXZ35/+/Zy0MELVyetUcOoIwUAF0IQAgCVr6iI6Mcf5aCDFx5Ka1kojHM6lNaOG24w6kgBwI0QhABA5Th5kujrr+Wgg2egLSwsu4+7U3jStwED5MAjPh6FwgD8gEfMLb1o0SJq3rw5BQcHU0JCAqVzf7CO999/n3r27El169YVS2JiYrntR44cSVWqVDFbBvCHGwBUHh61wiNYnnqKqG1bouhooiefJPrySzkA4RodKSlEn3wil1DnSeKmT5dno0UAAuAXDG8JSU1NpYkTJ9KSJUtEALJgwQJKSkqiI0eOUCONCaK2bt1Kw4cPp+7du4ugZe7cudS/f386cOAARUVFmbbjoGPp0qWm20EYpgdQea0dvHBrx+XLZfdxYMFDZgcOlBeehbaqR3wPAgCDVJEkHnhvHA484uPjaeHCheJ2aWkpNWnShMaNG0eTJ0+2+fiSkhLRIsKPHzFihKklJC8vj9atW+fUMeXn51NYWBhdvHiRateu7dQ+APxCcbFcDn39enk5fNj8/saN5YDjjjvk+VjCwow6UgCoJI5cQw1tCSkuLqaMjAyaMmWKaV3VqlVFF8sObpq1w+XLl+natWtUr169ci0m3JLCAUqfPn1o1qxZVL9+fc19FBUViUV9AgFAx9mzZUEHj2QpKCjf2sFBh9LageGzAOCJQUhubq5oyQi3mL+Bbx+2/Eal47nnnqPIyEgRuKi7YoYMGUItWrSgEydO0PPPP08DBw4UgU2ARl/z7NmzacaMGS54RQA+qKSEaOdOOej473/Lzz7L/3+VoINHtNSpY9SRAoCXMTwnpCLmzJlDq1evFq0enB+iGDZsmOn3Dh06UExMDLVs2VJs15crKlrglhjOS1G3hHCXEIDf+vNPuW7HV1/Jo1nOny+7j1s2unaVA49Bg4g6d0ZuBwB4XxDSoEED0TKRbTHTJd+OiIiw+tj58+eLIGTjxo0iyLAmOjpaPNfx48c1gxBOWkXiKvg1Tg07ckQOOnjhSeG4BUTBrRs8dJaDDv6pkTQOAOBVQUhgYCDFxsbSpk2baPDgwabEVL49duxY3cfNmzePXnnlFdqwYQPFxcXZfJ7Tp0/T+fPnqTEnyQFAWVLpd9+VBR4nTpjfz+XQ77xTXrp1I6rm1Q2nAOCBDP9U4W6QlJQUEUx07dpVDNEtLCykUaNGift5xAsPveW8DcZDcqdNm0arVq0StUWysrLE+pCQELEUFBSI/I6hQ4eK1hTOCZk0aRK1atVKDP0F8GvcrcK5Hf/3f3J3y6VLZfcFBsrT3nPQwS0eXNcDAMCXg5Dk5GTKyckRgQUHFJ06daK0tDRTsmpmZqYYMaNYvHixGFXzt7/9zWw/06dPp5deekl07+zfv5+WL18uhuly0irXEZk5cya6XMB/u1k46OAiYdu3m08Gx//PlNYOTu4OCTHyaAHAzxheJ8QToU4IeP0stJzToQQex4+b3885VHffTXTXXUTcnYmkUgDwxzohAOAiXKuDu1e++EIeRnvhgnk3y+23y0EHt3g0a2bkkQIAmCAIAfBWf/wht3Rw4LFpkzwzrYIL83FeB7d48Cy0oaFGHikAgCYEIQDehIv48XQEvHABMbWWLYnuuUdeuGopRrMAgIfDpxSAJ+Mk0l27iD7/XA48LCsJJyTIrR0cePCQWpRIBwAvgiAEwNNcu0a0bVtZi8eZM2X3Va9OxAX3uK4O53hERhp5pAAAFYIgBMATXLlC9M03RGvXynkeXDZdwcNmuUT6vffK87NgJloA8BEIQgCMwoXCuHDYf/4j/ywsLLuvYUO5i4VbPLjlQzU3EgCAr0AQAlCZeOgst3Rw4MEtH+oRLU2bEg0ZIi+cWKox4zMAgC9BEALgbjk5cm7HmjVEW7bIxcQUrVsTDR0qL7GxSCwFAL+CIATAXYEH53dw4LF1q/mMtB06lAUe7dsj8AAAv4UgBMBVzp0zDzzUc7R06UJ0331y4MGtHwAAgCAEoEJyc+X8jtRUeVitOvDg7hUOPHiyRS4kBgAAZhCEADiKh89y8TAOPLhcurqrJT6+LPBo0cLIowQA8HgIQgDskZ8vz0rLgQdPFMcFxdQtHsnJcvDRvLmRRwkA4FUQhABYKyDGM9J+8olcx+PqVfPkUg48eGnVysijBADwWghCANS4a2XzZqJVq+QkU24BUbRpQzRsmBx48DwtAABQIQhCACSJ6Oef5cBj9Wqi7GzzAmIceAwfTtSxI4bTAgC4EIIQ8F9HjxJ9/LEcfBw/Xra+Xj2i++8nevBBuXJp1apGHiUAgM9CEAL+5fx5ubVjxQqinTvL1tesKc/VwoFHv35EgYFGHiUAgF/wiK94ixYtoubNm1NwcDAlJCRQenq67rbvv/8+9ezZk+rWrSuWxMTEcttLkkTTpk2jxo0bU40aNcQ2x44dq4RXAh6J52fh/A6eDK5xY6KxY+UAhOdm4VlpuTWEu2C4RWTQIAQgAAD+EoSkpqbSxIkTafr06bR7927q2LEjJSUl0TmuPqlh69atNHz4cNqyZQvt2LGDmjRpQv3796czZ86Ytpk3bx699dZbtGTJEtq5cyfVqlVL7POqenQD+H6ex/btRI8/LgceXKn0iy/kobWdOxO98QYR/83wqJcHHiAKCTH6iAEA/E4ViZsNDMQtH/Hx8bRw4UJxu7S0VAQW48aNo8mTJ9t8fElJiWgR4cePGDFCtIJERkbS008/Tc8884zY5uLFixQeHk7Lli2jYZxkaEN+fj6FhYWJx9WuXdsFrxIqzenTRB99RLRsGZG69SsqSu5qefhhoptvNvIIAQB8Wr4D11BDc0KKi4spIyODpkyZYlpXtWpV0X3CrRz2uHz5Ml27do3qcTIhEZ08eZKysrLEPhR8MjjY4X1qBSFFRUViUZ9A8CL83nErx9KlRN98U1Y6vVYtuQWEA4/bb5e7XwAAwGMYGoTk5uaKlgxupVDj24cPH7ZrH88995xo+VCCDg5AlH1Y7lO5z9Ls2bNpxowZTr4KMMyePUQffijndHApdcVttxGNGiWXTkc3CwCAx/Lq0TFz5syh1atXizwRTmp1FrfEcF6KuiWEu4TAA124QLRypRx87Ntn3t0ycqS8oIIpAIBXMDQIadCgAQUEBFC2ujgU8UCFbIqIiLD62Pnz54sgZOPGjRQTE2NarzyO98GjY9T77NSpk+a+goKCxAIeitOWfviB6L33iNaskbtfGI9iufdeudWDW8LQ3QIA4FUMHR0TGBhIsbGxtIlnIv0LJ6by7W7duuk+jke/zJw5k9LS0iguLs7svhYtWohARL1PbtngUTLW9gkeWtODR7FwiXTuYuEWEA5AOOh8+22iP/6Qa34kJSEAAQDwQoZ3x3A3SEpKiggmunbtSgsWLKDCwkIaxd9uicSIl6ioKJG3webOnStqgKxatUrUFlHyPEJCQsRSpUoVmjBhAs2aNYtat24tgpIXX3xR5I0M5joR4PmtHt99J7d6fPYZZy+XFRPj0uljxhDFx6N8OgCADzA8CElOTqacnBwRWHBAwV0m3MKhJJZmZmaKETOKxYsXi1E1f+OkQxWuM/LSSy+J3ydNmiQCmTFjxlBeXh716NFD7LMieSPgZnl5RMuX8xtMdORI2Xqu6fGPf8gBCIZLAwD4FMPrhHgi1AmpRPv3c8lcuavl8mV5HY9o4QJi3OoRG2v0EQIAgC/WCQE/xVVLP/+ciAvUff992fr27YmefJLooYeIQkONPEIAAPDUxNSXX35ZFAmzdOXKFXEfgKazZ4m4y6xZM+6HkwMQTijlrrUtW4j+9z+5zDoCEAAAv+BUdwwPq/3jjz+oUaNGZuvPnz8v1nEBMm+G7hgXy8ggev11ok8/Jbp+XV7HOT/c3cLLDTcYfYQAAOAt3TEct/AoFEv79u0zlU8HP8el07/6Sg4+tm0rW3/rrfIstkOGYLZaAAA/51AQwhPFcfDBS5s2bcwCEW79KCgooMcee8wdxwneorBQnkCO63soE8hVqyZ3vzz1FBJNAQDAuSCEa3hwK8gjjzwi5lrh5hZ14TGu24GCYH6KC4dxoumSJXJpdcZ/Hzy8dtw4dLkAAEDFghAuKsa4AFj37t2pevXqjjwcfBG3dsyZQ7RihTzqhUVHE02YIJdTxwRyAABQ0SBEPb19586dxUgYXrQgmdNP6nv861/yXC6c/6Hke/BEgPfcgzLqAADguiCkTp06msmoWrx9dAxYsXMn0SuvEH35Zdm6QYOIpk4lQlccAAC4IwjZwnUc/vLbb7/R5MmTaeTIkaYckB07dtDy5ctNc7yAD+FR3DzChYOPjRvldRyQ3ncf0ZQpRDqzEwMAALi8Tkjfvn3p73//Ow3n+TxUeFK59957j7Zu3UreDHVC/sJ/Ghs2EM2cSbR9e9lIF65oOnky0Y03Gn2EAADgxddQpyqmcqsHz3pridelp6c7s0vwND/8QNSrF9HAgXIAEhRE9MQTRMePEy1digAEAAAqzKkgpEmTJvT++++XW//vf/9b3AdebM8eOcejZ0+5rDoHH5xsevKkPNEcl1wHAABwAacqpnK9kCFDhtDXX39NCQkJYh23gBw7doz+85//uOK4oLIdPUo0bRpRaqp8m0e3PPoo0YsvosYHAAB4RkvItWvXaP78+bRhwwa6++676cKFC2K566676OjRo3THHXe450jBPU6dIho9mqhdOzkA4YTTBx4gOnyY6N13EYAAAIDntIRwgbL9+/dT48aN6RUeLQHeKS9PTjjlKqfFxfK6O++UR8DExBh9dAAA4Aecygl56KGH6IMPPnD90YD7cWGxDz8katNGnlyOAxBOQP3xR7n2BwIQAADw5JyQ69ev04cffkgbN26k2NhYqlWrltn9r/PFDTwPj1zieVyUEUxt28oTzSUlyd0wAAAAnt4S8ssvv1CXLl0oNDRU5IHs2bPHtOzdu9ehfS1atEhMfBccHCySXK0N8T1w4AANHTpUbM/VWzlB1tJLL71kmulXWdryxdafnTtH9Pe/E3ESMZ/f0FCi+fOJ9u0jGjAAAQgAAHhPS4i6empFpKam0sSJE2nJkiUiAOGgIikpiY4cOUKNGjUqt/3ly5cpOjqa7rvvPnqKp4XX0b59e9FKo6jGBbb80fXrRO+8I496uXhRXvfww0Rz5xI1bmz00QEAgJ9zqiXEVbjbZvTo0TRq1Chq166dCEZq1qwpunq0xMfH06uvvkrDhg2jIK5foYODjoiICNPSoEED8jtctbZzZ6Lx4+UAhH/nvI+PPkIAAgAA/h2EFBcXU0ZGBiUmJpYdTNWq4jZXZK0IrlcSGRkpWk0efPBByszMtLp9UVGRKDOrXrxWYSHR448T3X4795sR1a9PtGQJ0c8/E3XvbvTRAQAAGB+E5Obmitl2w8PDzdbz7aysLKf3y906y5Yto7S0NFq8eDGdPHmSevbsSZcuXdJ9DE+6x3XulcVrq77+9JM8mRwHHeyxx+QiZP/4h1x8DAAAwIMY2h3jDgMHDhQ5IzExMSK/ZP369ZSXl0effvqp7mOmTJkiJtpRllNcwMub8DDbF14guvVWeW4XLjDGOTGLFxPVq2f00QEAAGgyLGOT8zQCAgIoOzvbbD3f5jwOV6lTpw61adOGjvPFWQfnl1jLMfFoBw/Kyaa7d8u3eYbbt9/mF270kQEAAHhmS0hgYKCoMbJp0ybTutLSUnG7W7duLnuegoICOnHihKjw6lO46BgPUe7SRQ5AuMVjzRqiFSsQgAAAgFcwdOwqD89NSUmhuLg46tq1qxiiW1hYKEbLsBEjRlBUVJTI2VCSWQ/yN/+/fj9z5oyoSxISEkKtWrUS65955hkxj02zZs3o7NmzNH36dNHiMnz4cPIZnGjL52jzZvn2wIFEXMHW1wItAADwaYYGIcnJyZSTk0PTpk0TyaidOnUSCaVKsiqPauERMwoOKjrzUNO/8ER6vPTq1Yu28pBUIjp9+rQIOM6fP08NGzakHj160E8//SR+9wn//a88wRyP4KlZk+i11+TEUxQcAwAAL1NFkiTJ6IPwNDxEl0fJcJJq7dq1yWP8+99ywMFdMbfcItf8aN3a6KMCAABw6hrqc6NjfBLHiTNmEI0eLQcg3BXz3XcIQAAAwKv5aT1zLyu9zsXHuBWE8VDcl19G9wsAAHg9BCGeXv102DCir77icrI8259cgAwAAMAHIAjxVDk5RHfdRbRzJ1FwMNHq1UT33GP0UQEAALgMghBP9OuvRAMG8CQ4cv2PL7/EvC8AAOBzEIR4mowMojvuIDp3jqhZM6K0NKK2bY0+KgAAAJfD6BhPsm0bUa9ecgDSsSPR9u0IQAAAwGchCPEUJSVEY8bIyah9+8pDcCMjjT4qAAAAt0F3jKf4/HOio0eJ6taVfw8NNfqIAAAA3AotIZ5SjGzOHPn3sWMRgAAAgF9AEOIJNm6UE1Jr1CAaN87oowEAAKgUCEI8gdIKwmXZfWWiPQAAABuQE2K09HSizZuJqlUjevppo48GAPzMnsw/6WRuIbVoUIs6N61r9OGAn0EQ4imtIA8+SNS0qdFHAwB+ZM7Xh2jJtl9Ntx/rFU2TB95k6DGBf0F3jJEOHZJHwrBJk4w+GgDwsxYQdQDC+DavB6gsCEKMNG+e/HPwYKJ27Yw+GgDwI9wF48h6AHdAEGKUzEyilSvl3ydPNvpoAMDPcA6II+sB3AFBiFFee43o+nWi228nSkgw+mgAwM9wEirngKg93isayalQqapIElfKArX8/HwKCwujixcvUu3atV3/BLm5chLqlStEGzYQ9e/v+ucAALADRseAkddQw1tCFi1aRM2bN6fg4GBKSEigdB6yquPAgQM0dOhQsX2VKlVowYIFFd6nId56Sw5AunQh6tfP6KMBAD/GgceQLjcgAAFDGBqEpKam0sSJE2n69Om0e/du6tixIyUlJdE5nkVWw+XLlyk6OprmzJlDERERLtlnpbt0iWjhwrJckCpVjD4i8JJvq2t3n8bIBQDwKYZ2x3ArRXx8PC3866JcWlpKTZo0oXHjxtFkG8ma3NIxYcIEsbhqn5XSHcO5IM88Q9SmDdHBg0QBAa7dP/gc1HIAAG/iFd0xxcXFlJGRQYmJiWUHU7WquL1jx45K3WdRUZE4aerFLYqKiF5/vawuCAIQsAG1HADAlxkWhOTm5lJJSQmFh4ebrefbWVlZlbrP2bNni6hNWbjlxC1WrCA6e5YoMpLooYfc8xzgU1DLAQB8meGJqZ5gypQpotlIWU6dOuX6JykpKStOxnPEBAW5/jnA56CWAwD4MsOCkAYNGlBAQABlZ2ebrefbekmn7tpnUFCQ6LdSLy63di3RsWNEdevKs+WC1zAyKRS1HADAlxk2gV1gYCDFxsbSpk2baDCXLf8riZRvjx071mP26RKc+6tMVDduHFFoqHHHAl6XFMrPl9Q+ArUcAMDnGDqLLg+lTUlJobi4OOratauo+1FYWEijRo0S948YMYKioqJEzoaSeHqQR5T89fuZM2do7969FBISQq1atbJrn4bIyyOqU4eoZk05CAGvKNiklxTKAUFlBwL8fLzwMb3x7RGxrveNjRCQAIBXMzQISU5OppycHJo2bZpIHO3UqROlpaWZEkszMzPF6BbF2bNnqXPnzqbb8+fPF0uvXr1o69atdu3TENwFs2kT0enT3Gdk3HGAQ60d1pJCjbj4Wx7nm5uOO90yY2+VTFTTBAB3Qtl2I8q2g8fgi+y972wvt/7zJ7qLn3r3VfYFWe84nTkee7uYPKErCgC8j1fUCQGorERQa/uz1dpR0aRQV72WrUf0K/46MlzXWt0R9bGiPoltqGIL4OXdMQDu/vZta3+2hsBWJCnU2nM70s1huR+9Y9Wjfi69gOXtzcdo8+Ec0+3bb2zoUV1RnkI5l98fy6HP95w1rUcrEYBzEISAx3B1Iqg9+1NaO9TbWbZ2KEmhrnruDQey7A60tPbjSMuMZQDTq412TpI6AGFbjpjfVvhzfRJrwaBRCcsA3g5BCHgMVyeC2ru/ig6B1WrV0Htu7lbRC06U+9UjX/T2079dI3q8dyuzkTyWj9UKYLYdzS23rz5tG5YLQrTWV2Z9Ek9LiLUVDDJ/byUCcAaCEPDZ6qB6j+OmdJ66XM3e1g7Li6Nel4ujxzzrvwcp4/e8ciNflODEkjoA0Rs10ybcdj2auUM7iO20gpBxfVqLRR3cVAZPTIi1J+/Gn1uJAJyFxFTwGK6uDsqPu7dzZLn13JfvTDLhU6l7xAiViZ/uEz/5tl7ypt5r0buQqwMQ9b6Y5X6GdI60WstEeey1klKbr6l6QFWr5527jjio4YVfMwcI1ih1THhx5hzbmxBb2UmhtgIMVLEFcA5aQsCjuLo6aM/WDc0SCJ1tOueAw3I/WvtV71vvtVjmoFjDj+X9ZOdfNT3f2j1nqVHtYLHvxVuPWw0wbD2XtQRcR3N0KlrHJPXnTFq354zmfer3yxUtJY5292jlDnEw2KN1Q4/pMgLwRghCwOOou0Yqmhvgii4ePga9gMPWvrW6efiCGVStqrhI27Mvrefni6GtQOb384UiYFCCC8sRHbYScK3ltai3U/JR9FpkrCVsKu8vB1PHzhXaPKeuSF52NohB+XwA10MQAh7LFd947Rn9YosjdTjYRzt+s7l/7paxFYTwN21+bg4mnKF0oyjnjfNgRnRrbvdFVC9Q430WXS8V+7Q1fNhaq5M9j7V8v/Tei7c2HaOlo7ra1dpSkSDGmZFSAKAPQQj4/HBda99g7WlpcTThkFsb+GJvrTVHKzhSaxseIrpdeKkofg5+7uT4pnZdRPlCve9UHp3Ju2Jzn/YEEVrnz57RJor+quRcvfeChxQruTh6rAU9GNkCYAwEIeAXw3W1Lr72trTYChisHafWcygBEf/8s7CYUnedLvf4w9kF5KjxfeVJHLVaWJ77z/9M+SUKrWG9gxf9QHtPXbTr+TYdyra5jV6rkyOtS+r3nH/qDSm29rdhK+jByBYAYyAIAb8YrlvRZnlH8jiU49RrzVGv0xq94wzuunmq343iOfWOUf36tJJI20aE0OEs+4Ofbw5ql5JPjisb/hxYrapmC4Uj7yN3R6n3wcOGtYIQdd6IvXVbGEa2ABgHQ3TBL4brqvEFmFsGtDyVuld3OOjeU+WH0Wq5qXGo1UJjao4kvFoLQF5PlmeX5uft1CRMd1tu+eDhs1qtAo4EIHr4PapbK1C07vCiDO3l0UXqIbVa768ey+HB1v42eBv1MGrlMXrDlblOynMotw5gGMyiqwGz6FY+vdwMV1fOtDYbrZrSNWNv8qRa5yZh9HC35vTF3jOaFUrt0bx+DfrtvH5Ohhq3pvBQZL7Qns27YndrjTvwsdgKrLTm0LEcuRPbrI5m7RQOGji3Rf1Y9ZBirfdW75g4cKnsAMTa37OnVYkFqIxrKIIQDQhCKpflhV65qDr6Yax8iPPFmGtkaD2ev43zt2R7iG/JOi0mUDF8bi3fI8uJ9vTeJ73cHUfeW+4yGtZVTtStLNZykDyxSixAZVxDkRMChtLKm+Bvrco3V3s/jPVaLOydNdfZxEu+mGklloJ16uBOeY/sHf6ql7vjyHurdBfp/X050yphq5XD2pxBrpy4EcCbICcEDGUrb0KrZLcjIx+0Hq83Tb2lujUDbeZiQMUp75G6FLut3Bb1343yOGaZK9JbZ9Zgy+dW08srscbWY6yN9rJ2H4CvQ0sIGMqeb6+2huXa+rDWGy7bvH5N+u38Zd3HdWlWVyRZWgY4PEQ0rEZ1l9TwUKsZGECXi0vICBG1gygrv4iMYjmBX682DawOFVb+brS6MT5/ortmnokeLnT2z76txWNO5BQ43CphT00bZ0Z7Ydgw+AO0hICh7BklYevD2NZEbXrDZa0FIEqXwaE/8sut5+Ghehe3No1CyFlGBSDM2QDEVa1Blkmo1hJ6lZEwehd/HgHEfxP2jjziQmdKK8aiLSccDnTtacmwNqLHnSPBADydRwQhixYtoubNm1NwcDAlJCRQenq61e3XrFlDbdu2Fdt36NCB1q9fb3b/yJEjqUqVKmbLgAED3PwqwFncJ8/fXl+/v2O5uhm2Poz5QsTVPfUoj3e2advR0S1Hz1V8mKuz7O1mciWeSM/eobauomTS672nPDpIL6GYh087wzIQVncd2dvKof4755/qkTnW7gPwZYZ3x6SmptLEiRNpyZIlIgBZsGABJSUl0ZEjR6hRo/LTnm/fvp2GDx9Os2fPpjvvvJNWrVpFgwcPpt27d9PNN99s2o6DjqVLl5puBwUFVdprAscp3wgdmd/E1vBZ9XBOf2ja5m/0lY3PP180+fzOTTtMFwqv2f1YHobbo1UDh4cUK10dzrynfdo2okN/XHLoMZaBsFYXkL3zE1lLvrWVmIshvOCLDB+iy4FHfHw8LVy4UNwuLS2lJk2a0Lhx42jy5Mnltk9OTqbCwkL66quvTOtuueUW6tSpkwhklJaQvLw8WrdunVPHhCG6ns9WvQ+tGhBcMMsVxcHAXO2gAMovcrwriUcWFTvQbaLGLQZ8Mban5ktFPHl7S2rZMMQU8HBXj1bQxCXzI+vUEMOOlSHi1oaKO8pbhvAiUAKvGqJbXFxMGRkZNGXKFNO6qlWrUmJiIu3YsUPzMbyeW07UuOXEMuDYunWraEmpW7cu9enTh2bNmkX169fX3GdRUZFY1CcQPJteU/wDXZvQfXFNND8A3/irqigCEddyJgBhFRnazBc5Zd4bd+HROXo5IpaUwIQfo5VQW5GgwZWTObqTtwRK4FkMzQnJzc2lkpISCg8PN1vPt7OysjQfw+ttbc9dMR999BFt2rSJ5s6dS9u2baOBAweK59LCXTsctSkLt8SAZ9NritcLQNSBiKvma3FGs3o1RDeRMtkcOGfGlwfcWhmWW2nsnchPTe8x9gw1t8w1UTg6hFdrH+6mFyhV5jGAdzI8J8Qdhg0bZvqdE1djYmKoZcuWonWkb9++5bbnlhh16wq3hCAQ8WxaM9vaM6KAPxSttYQ0rVeDMi/YVy7dGb9fuCKSJisribRx7SD6w8Cht+7iTIDgiIiwYJfvU2uoOU+kyInVHZvUEfdrtSQ4MrzXqNYIe2a9RlcNeFwQ0qBBAwoICKDsbPPKlHw7IkKuJGiJ1zuyPYuOjhbPdfz4cc0ghJNWkbjqffjDlZukHflgszVKxp0BiBFJpB1uCKM/dGa7dVaTusF06s+r5A7htYMo2+Cgyd5hx45Wy7UMGgYv+sEUTK1KP1Vue3WXiz0Bt5HdNnqBEtdq4WRzdNWAR3bHBAYGUmxsrOg2UXBiKt/u1q2b5mN4vXp79u233+puz06fPk3nz5+nxo0bu/DowRMoI2rs/ZC1Z0QFFyOrCO5uMbLLR63vTeZdlxXBXUg8Eub75/pSeKj1arLOqowAJKFFXauTD3IROltdPRwEzP1bR7uHJ1sGDdwCYk9rjpL3Ys8QXiMrr/Jr0/qb51ZHfq2OdNUY0Z0Eftwdw90gKSkpFBcXR127dhVDdHn0y6hRo8T9I0aMoKioKJG3wcaPH0+9evWi1157jQYNGkSrV6+mXbt20XvvvSfuLygooBkzZtDQoUNF68iJEydo0qRJ1KpVK5HACv5N61ulpXF9WovFkaqb6osNP84Tkl/5Gz2PzrBnZlt78OgP5YK25OE43ZEpXIvD0WGwlenQWf3E8z0agUFs0zp0f3wTMUMx631jI1NAwa0M1v6W+rdrRDc1ri0eo2atto0eW0N4nanK6ko86aTW35nea9XqnkKLif8xPAjhIbc5OTk0bdo0kVzKQ23T0tJMyaeZmZlixIyie/fuojbICy+8QM8//zy1bt1ajIxRaoRw987+/ftp+fLlYphuZGQk9e/fn2bOnIkuFxD4Qy2oWlXNb7vcCqJ8MKrrlvA30h+O5VJGZp7ZtnwRUl+cmLuHjVpzc2Rtah9ZWwx95W/0Sml5ZWZiZdjo7+cLHU7stJx0zjKY4/PBwdvR7EseO/twjepVHR7Nw++5+n0vul5q+hux1crwzcFzYuFzrb6gcg6IVheMJeVvyp58CmfzpFxFL9jRe61aBeC8YRQQ+FidEE+EOiH+W2eEm7rtLRi14UBWuW9tbcJDNaeTvzkylCJqB1P7qDDRomDERVr92mzVWbG3hkbupSL683Kx6PZRCsNxU7rWOXA3nm/G0Qq3FelyU2qBOPJeqt8DdU6IFiWo47lt1DlEtloHKpIAWtHkUcuWDKVej956Nb2/G+6C4i8D4D28pk4IgFGc/daoNInrfWvji5OWX85eEkur8FBxsbYcCVEZ1M3f/LN1o1p07Jzz+QLqGhr8bf+nX89T03o1Keuie5JWbeEAxFVdT7aoAw/L2iAcPHSICtNsaVK/B+ue7CHyJTYdyhbnzxJPkqgVKNpqHbDVbaPHFV0hesni9iSRG92dBMZAEAJ+y5nRNQq9Znj+dmwt50S5gCjPvXjrcc0LkD26NK1DyfFNdC9i1j7MuXpsRQIQLZ6QB1OjekCltogwDkCUlhF1ZVVb7wEHsvyYx3u3onOXiswCGQ4QrZ1PWzNLO8qVXSF6QZCt4Mjo7iQwBoIQ8GvOfmu09q2Nm475w3vNrlOafeHKBYQXTlp0NgjZnZlHL97ZTuSk2NqH+sPcVq0Ub2ZPnoUjo4E4J8Oy200LBxNaQ1H13gNb8x7ZChBd3TpgT50PT/9iAN4JQQiAE2x9a1N+2krI44tcRSp/8oc155ho4W/nlkmzymOMYOSoGS7nfybvimYLCZ8nDjQ2H84xey+f6nej6TYnMrPrpZJmKXd+T7VaE9SU5Dtb29nijtYBW3U+vOGLAXgnBCEAbvrWZk/zslJfwdmWCb0hxMpQYeW51aMzjOpjVwIQ7kbiVpzKpJTzt5zEkM8T5+jwopWUaavFQtkHb8+JldYo3Rv2BoGWfxdKoqo7LtB6f4d8m0eHISgAd0EQAuDGb232NC/zh3zmhcuU8XvZhbl3mwa01UZeA9cBUYbgWn6z51E6lkmNykWQv/U7qk2jWvRY71b0xd4zFc634ACkMvM2lCCBgwwepnxLdH3N2W0t30t7Wiz4dSijPOwJ7pS/A3uOmffLfxuV1TWhV+ejsrtkwL8gCAEwMFCx/KbNc8r8s6/8bdfat3B1V4slDjL4IquFEyYd6QrguiMPd2smWgp4JIerAoconS4kV+EArUfrhqaLt9bID1vdDPa0WPD54GBFeY9tFcJTjsfWdv3bR1R61wRGp4DflW0H8Gda37TV9SC4FUVvtt20X7J0c0k4t4HrV7gCByAc0HA3hqO1TdpGhFDb8BDdAlbW5mSxLAEe20x/ezXushDlzZM7m8r5OzvDq70XX3Wwoi6vbvkaODBSD1nl7ThXxdY+K4sSHKlhdAq4G1pCAAxiz4gEvcRVWxPgcZBiiS8ojiTCcv0LZ4uqcfBxOKtA8z6+GHPLyqe7Tpl1QSkSouubKtUqXREf7fhNc1sO0jgxV6t7xdEZXpVhtUpZdntaLLSCFeWxSkuL0sXBXWeNagebam/Ym7xcEY4WH8PoFKhsCEIADGJP87fWhZC/7atHcmjRClK4iV9rf5ZFy7hLaMDNERWq6no4WzsAYdxNwt0jWkGF+vWrC8Np5SpwMKMeweLsebbsqlEn8VpelDkYskxstcwjUed9WB63Ze0Nd9bGcLb4mFYXUEUrqQLoQRACYBB7L0CWF0JmKwix9s1fvT+tsuMcwMTcEEbuws9pTy0N9XFraVKvZoXPs17yqTpYUF+U+adesqjlRV9vNmbLRE93tD64svgYJpUDd0IQAmAgey9Alt9OLS+q9oymsWxhsWdYqb0S2zakjXYERnzx10uaZZIDLRncYsGTydlzQdQ7z9ZyL/RGhei1FFhe9PUCRa3Xo5eAaqsFQu9+VxUfw6Ry4G4IQgAM5swICMuLKv+0FoToNfHrXeA5L4Iv8OoLkDLixLI2Ce+bu3qsBSHqGhfWEkK1LnDWcjMcuSBqnWdruReO5GXoXfS5a0vdNeZIV4utFghr97tqpIunVFIF34UgBMCHgxel9Li1Fha9rgpetFoPLJNGlfWW++ERLT1aNSj3/LYSPrUucHwcv+YUaJant+eCqNdioHcsjuZl6F3cebg1L452tdhqgbB1v6tyTTBsF9wNQQiAD9C76NiTuGmtS0gv0NFar+zn7c3HRFcEJ57ywi0qWtvyc2klv1pe4GxVLbV1QbTVoqAct+XoGHeU8XdVC4Q9LRSuyDVxZ+IsAEMQAuAjKnLRcWVRLMtcCL0uEx6mqy4trzfaxFoAok4w1Xrd9uY0uOL1uzLB1FYLhL0tFJ72ugAsIQgB8CGVWWHTFTkEti5w1hJHuRgYlza31tJR0ZwGR4emuur829OyUpktFEb/XYHvQhACAIbOxmrtAmetq4WTY3keGGstHRXJaTB6aKqtAA0tFOALPKJs+6JFi6h58+YUHBxMCQkJlJ6ebnX7NWvWUNu2bcX2HTp0oPXr15vdL0kSTZs2jRo3bkw1atSgxMREOnbsmJtfBQDwhdCyXLkSMNgqk25vKXG1fae0C54pLSBaj7enxcDZUu+uplRetZZYbO1+AE9neBCSmppKEydOpOnTp9Pu3bupY8eOlJSUROfOlc+CZ9u3b6fhw4fTo48+Snv27KHBgweL5ZdffjFtM2/ePHrrrbdoyZIltHPnTqpVq5bY59WrVyvxlQH4J56N1ZXzofA3fp6wz5E5aNQtHer5XPinMuutNda6cQDAh4KQ119/nUaPHk2jRo2idu3aicChZs2a9OGHH2pu/+abb9KAAQPo2WefpZtuuolmzpxJXbp0oYULF5paQRYsWEAvvPAC3XPPPRQTE0MfffQRnT17ltatW1fJrw7A/7hjWCcnsWq1aOitt2wZsLfFgFs6uICb3gSAGJoK4EM5IcXFxZSRkUFTpkwxratataroPtmxY4fmY3g9t5yocSuHEmCcPHmSsrKyxD4UYWFhopuHHzts2LBy+ywqKhKLIj8/3yWvD8AfuStpUi8HwlW5EZY5IDyB395TF136GgDAg4KQ3NxcKikpofDwcLP1fPvw4cOaj+EAQ2t7Xq/cr6zT28bS7NmzacaMGRV6LQDg/qRJR+qWOEIrB4QDEO4GsjZDLwBUDEbHEImWGHXrCreENGnSxNBjAvB23jSsUy/XgwMQvVE9AODlOSENGjSggIAAys7ONlvPtyMiIjQfw+utba/8dGSfQUFBVLt2bbMFAPwHypMD+GEQEhgYSLGxsbRp0ybTutLSUnG7W7dumo/h9ert2bfffmvavkWLFiLYUG/DLRs8SkZvnwDg35wdygsAXt4dw90gKSkpFBcXR127dhUjWwoLC8VoGTZixAiKiooSeRts/Pjx1KtXL3rttddo0KBBtHr1atq1axe999574v4qVarQhAkTaNasWdS6dWsRlLz44osUGRkphvICAGhB8S8APwxCkpOTKScnRxQX48TRTp06UVpamimxNDMzU4yYUXTv3p1WrVolhuA+//zzItDgkTE333yzaZtJkyaJQGbMmDGUl5dHPXr0EPvk4mYAAL6QxwLgC6pIXFgDzHD3DQ/rvXjxIvJDAAAA3HQNNbxYGQAAAPgnBCEAAABgCAQhAAAAYAgEIQAAAOCfo2M8kZKrizlkAAAAHKNcO+0Z94IgRMOlS5fET5RuBwAAcP5ayqNkrMEQXQ1ctfXs2bMUGhoqip85Spl75tSpU349xBfnAeeA4RzIcB5wDvzlHEiSJAIQLhKqrvOlBS0hGvik3XBDxSetwjw0MpwHnAOGcyDDecA58IdzEGajBUSBxFQAAAAwBIIQAAAAMASCEDcICgqi6dOni5/+DOcB54DhHMhwHnAOGM6BOSSmAgAAgCHQEgIAAACGQBACAAAAhkAQAgAAAIZAEAIAAACGQBBip0WLFlHz5s0pODiYEhISKD09XXfbAwcO0NChQ8X2XHF1wYIF5bYpKSmhF198kVq0aEE1atSgli1b0syZM+2qte8N5+D999+nnj17Ut26dcWSmJhYbnt+rdOmTaPGjRuLc8DbHDt2jDyZK8/BtWvX6LnnnqMOHTpQrVq1RHXBESNGiGq9ns7Vfwtqjz32mO7/G18/B4cOHaK7775bFHriv4n4+HjKzMwkfzkHBQUFNHbsWFEskj8T2rVrR0uWLCFP58h5WLt2LcXFxVGdOnXEe9ypUydasWKF1382Oo1Hx4B1q1evlgIDA6UPP/xQOnDggDR69GipTp06UnZ2tub26enp0jPPPCN98sknUkREhPTGG2+U2+aVV16R6tevL3311VfSyZMnpTVr1kghISHSm2++KfnCOXjggQekRYsWSXv27JEOHTokjRw5UgoLC5NOnz5t2mbOnDli3bp166R9+/ZJd999t9SiRQvpypUrkj+cg7y8PCkxMVFKTU2VDh8+LO3YsUPq2rWrFBsbK3kyd/wtKNauXSt17NhRioyM1Px/48vn4Pjx41K9evWkZ599Vtq9e7e4/cUXX+ju0xfPAe+jZcuW0pYtW8Tn4rvvvisFBASI8+CpHD0P/Nr47/zgwYPiPV6wYIF4jWlpaV772VgRCELswBeGJ5980nS7pKREfEjOnj3b5mObNWum+WE6aNAg6ZFHHjFbN2TIEOnBBx+UfO0csOvXr0uhoaHS8uXLxe3S0lIRoL366qumbfiiHBQUJII3fzgHegEsfzf4/fffJU/lrvPAF6OoqCjpl19+0f1/48vnIDk5WXrooYckb+GOc9C+fXvp5ZdfNtuuS5cu0tSpUyVfPQ+sc+fO0gsvvOC1n40Vge4YG4qLiykjI0M0h6nnluHbO3bscHq/3bt3p02bNtHRo0fF7X379tEPP/xAAwcOJF88B5cvXxbdD/Xq1RO3T548SVlZWWb75CZobsqsyHn1pnOg5eLFi6IrgptqPZG7zgNPGvnwww/Ts88+S+3btydP5o5zwK//v//9L7Vp04aSkpKoUaNG4v/CunXryJ/+Dvhz8f/+7//ozJkzoktiy5Yt4jOyf//+5IvnQZIkcR04cuQI3XbbbV752VhRCEJsyM3NFfkb4eHhZuv5Nv+hOGvy5Mk0bNgwatu2LVWvXp06d+5MEyZMoAcffJB88Rxw7gPnPCj/sZTHufq8etM5sHT16lWxzfDhwz12Yit3nYe5c+dStWrV6J///Cd5Onecg3Pnzol8iDlz5tCAAQPom2++oXvvvZeGDBlC27ZtI3/5O3j77bdFHgjnhAQGBopzwfkWygXaV84Df9kICQkRr3HQoEHidffr188rPxsrCrPoGuTTTz+ljz/+mFatWiW++e3du1cEIfyfMiUlhXwJf7CuXr2atm7dKhK3/JGtc8DfCO+//37xzWjx4sXkT+eBv0m++eabtHv3btEK5Ou0zgG3hLB77rmHnnrqKfE7Jyxu375dJGb26tWL/OH/A1+Mf/rpJ9Ea0qxZM/ruu+/oySeftBq8e6PQ0FDxmV9QUCBaQiZOnEjR0dHUu3dv8jcIQmxo0KABBQQEUHZ2ttl6vh0REeH0frnZWWkNYTxC4vfff6fZs2d7XBBSkXMwf/588YGzceNGiomJMa1XHsf74Axw9T75w9fTuOMcWAYg/P5v3rzZY1tB3HUevv/+e9ES0LRpU9M6/nb59NNPixEyv/32G/n6OeB9cksQtwKo3XTTTaKb1tO44xxcuXKFnn/+efr8889F6wDj+/lizY/xxCDE2fPAXTatWrUSv/PnHY+K4s9+DkK87bOxotAdYwM3l8XGxopoVcHfWvh2t27dnN4v94fyH6Ia/zEr34h84RzMmzdPDDtOS0sTQ9LUeGgy/2dT7zM/P5927txZofPqTedAHYDw8Dv+UK5fvz55MnecB84F2b9/v7jYKAt/8+VAfcOGDeQP54D3ycNxOTdAjfMhuEXAH84B/1/gxVs+F115fSgtLaWioiKv/GysMKMzY70BD8HizORly5aJYVVjxowRQ7CysrLE/Q8//LA0efJk0/ZFRUViGBovjRs3FsN1+fdjx46ZtklJSREjAZQhujxkq0GDBtKkSZMkXzgHPMSMh6199tln0h9//GFaLl26ZLYN74OH3+3fv1+65557PHoYmqvPQXFxsRh6d8MNN0h79+4124b/hjyVO/4WLHn66Bh3nAP+DKhevbr03nvvic+Kt99+Wwzd/P777yV/OQe9evUSI2R4GOuvv/4qLV26VAoODpbeeecdyVM5eh7+9a9/Sd9884104sQJsf38+fOlatWqSe+//77XfjZWBIIQO/EHQtOmTcV/Ih6S9dNPP5n9x+GgQsFBBcd3lgtvp8jPz5fGjx8v9sn/yaKjo8UwNE+++DhyDvgionUOpk+fbtqGh6K9+OKLUnh4uPhP3LdvX+nIkSOSJ3PlOdD7O+GFP4Q9mav/FrwtCHHXOfjggw+kVq1aic8ErpfCdSL86RxwUML1Q3iIK5+DG2+8UXrttdfEZ4WvnAf+nFfe47p160rdunUTgYyaN342OqsK/2N0awwAAAD4H+SEAAAAgCEQhAAAAIAhEIQAAACAIRCEAAAAgCEQhAAAAIAhEIQAAACAIRCEAAAAgCEQhAAAAIAhEIQAgE/hCe94Nl6egwYAPBuCEADwCiNHjqTBgwcbfRgA4EIIQgAAAMAQCEIAwKN89tln1KFDB6pRowbVr1+fEhMT6dlnn6Xly5fTF198IbpaeNm6davYPj09nTp37kzBwcFievg9e/YY/RIAwE7V7N0QAMDd/vjjDxo+fDjNmzeP7r33Xrp06RJ9//33NGLECMrMzKT8/HxaunSp2LZevXpUUFBAd955J/Xr149WrlxJJ0+epPHjxxv9MgDATghCAMCjgpDr16/TkCFDqFmzZmIdt4owbhkpKiqiiIgI0/bLli2j0tJS+uCDD0RLSPv27en06dP0+OOPG/YaAMB+6I4BAI/RsWNH6tu3rwg87rvvPnr//ffpzz//1N3+0KFDFBMTIwIQRbdu3SrpaAGgohCEAIDHCAgIoG+//Za+/vprateuHb399tt04403im4WAPA9CEIAwKNw0umtt95KM2bMEEmmgYGB9Pnnn4ufJSUlZtvedNNNtH//frp69app3U8//WTAUQOAMxCEAIDH2LlzJ/3rX/+iXbt2iUTUtWvXUk5Ojgg2mjdvLgKOI0eOUG5uLl27do0eeOABEbSMHj2aDh48SOvXr6f58+cb/TIAwE4IQgDAY9SuXZu+++47uuOOO6hNmzb0wgsv0GuvvUYDBw4UgQZ3zfAw3IYNG9KPP/5IISEh9OWXX9L//vc/MUx36tSpNHfuXKNfBgDYqYokSZK9GwMAAAC4ClpCAAAAwBAIQgAAAMAQCEIAAADAEAhCAAAAwBAIQgAAAMAQCEIAAADAEAhCAAAAwBAIQgAAAMAQCEIAAADAEAhCAAAAwBAIQgAAAICM8P8kRKY+Fdn/swAAAABJRU5ErkJggg==", + "image/png": "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TKbzX79+vdx4440qjRF/C+3bt1e1i5Lh/I8fP64qV6NwI+4BzZo1kwkTJkgs4+YazJgxQxXJLF++vPptUaPqX//6V9LcB2cEOf+o3QeRHUPim6lTp/pSU1N9H374oW/t2rW+u+++21e+fHnf3r17Tbe/7bbbfOPHj/etWLHCt379et+AAQN85cqV8+3YsSNvm5deekmt+/LLL32rVq3y3Xjjjb569er5Tp065Uv08z98+LCva9euvmnTpvk2bNjgW7Roka9Dhw6+tm3b+pLpb0BjxowZvlatWvmqV6/ue/31133Jcv6bN2/2VaxY0ffII4/4li9frt7PnDnT8piJdv44xnnnneebP3++b+vWrb53333Xl5KSoq5BLOL2GuC88Le9bt069duOHTtWnd/s2bOT4j44P8j5R+s+SBGSAOAP49577817n5OToyaMUaNGOdr/7NmzvjJlyvgmT56s3ufm5vrS09N9r7zySt42+IMsXry475NPPvEl+vmbsWTJEqSy+7Zv3+6LRSJ1DTAp1ahRw7dmzRpfnTp1YlaEROL8e/fu7bv99tt98UAkzr958+a+Z599NmC7Cy64wPfEE0/4EvEagDZt2viefPLJpLwPGs8/WvdBumPinOzsbFm2bJkyE2qgzD3eL1q0yNExTp48qUxvFStWVO+3bt2qSujrjwlzNMx7To8Zz+dvBioKwh0B02WsEalrgGaSd9xxhzzyyCPSvHlziVUicf449//973/SqFEj6d69u6Slpam/f7SISJbfHy0y/vOf/8jOnTuVW2L+/Pny+++/S7du3STRrgHOD01PN27cKJdeemnS3Qd9JucfrfsgRUick5mZKTk5OXm9djTwHv8DOQF+P/j7tD9gbb/CHDOez9/I6dOn1TZ9+/aNyfLOkboGL7/8shQrVkzuv/9+iWUicf779u1TMREvvfSSXH311fLNN9/IzTffLD179pTvv/9ekuH3HzdunIoDQUwIOp7jOiDmwG6SirdrgEm1dOnS6vzQEBXnfNVVVyXNffCIzflH6z7oeQM74i24yaIT8YIFC5KywV+w88fT4a233qqeFN555x1JlmuAp6o33nhDli9frp58Ehmz84clBNx0003y4IMPqn8jcO/nn39WwZno5J3o/w9gQlq8eLGyhtSpU0d++OEHuffee20Fe7xRpkwZWblypRKcsASgq3v9+vXlsssuk2SgjMPzj+R9kCIkzqlcubKkpKTI3r17A9bjfXp6uu2+Y8aMUTegb7/9Vlq2bJm3XtsPx0BUuP6YuBEn+vkb/8fbvn27fPfddzFpBYnUNVi4cKGyBtSuXTtvHZ60HnroIZUhs23bNknk88cxYQWCJUBP06ZN5ccff5RYIhLnf+rUKdWl/IsvvlBPyACfY8LCPrEmQkK9BnBZNGjQQP0b9zZkQ40aNUpNwslwHyxqc/7Rug/SHRPnwIzWtm1bpWI18BSH9506dbLcb/To0fLcc8/J7NmzVZqWnnr16qk/XP0x0W3xl19+sT1mopy//n88pOPhBl2pUiWJVSJxDRALsnr1ajXpaAuegBEfMmfOHEn088cxkY4LH7kexETAKpDo54+/fyyYpPRgotOsRIlwDYxgn6ysrKS5D9qdf9Tug2ELcSWepmYhYnvSpEkq3eqee+5RqVl79uxRn99xxx2+YcOGBaSdIZXrs88+8+3evTtvOXbsWMA2OAbS8VavXu276aabYjo1LZznn52drVLxatas6Vu5cmXANllZWb5k+RswEsvZMZE4f6QvnnPOOb733nvPt2nTJt+4ceNUCuPChQt9yXD+Xbp0URkySOX8448/fBMnTvSVKFHC9/bbb/tiEbfX4MUXX/R98803vi1btqjtx4wZ4ytWrJjv/fffT4r74ItBzj9a90GKkAQBN8jatWurGwtStRYvXhxwM+nfv3/AZAL9aVxGjhyZtw3S05566ilf1apV1R/2lVde6du4caMvGc4fNRHMPseCG3Ky/A3EkwiJ1Pl/8MEHvgYNGqjJF7VSUC8iWc4fkw3qhyDNE+ffuHFj36uvvqruDYlwDZBqrP22FSpU8HXq1ElN5HoS+T74RJDzj9Z9sAj+E377CiGEEEKIPYwJIYQQQognUIQQQgghxBMoQgghhBDiCRQhhBBCCPEEihBCCCGEeAJFCCGEEEI8gSKEEEIIIZ5AEUIIIYQQT6AIIYQkFGiuh86/6HdDCIltKEIIIXHBgAEDpEePHl4PgxASRihCCCGEEOIJFCGEkJjis88+kxYtWkjJkiVV6/CuXbvKI488IpMnT5aZM2cqVwuWBQsWqO2XLFkibdq0kRIlSqiW9CtWrPD6FAghDinmdENCCIk0u3fvlr59+8ro0aPl5ptvlmPHjsnChQulX79+kpGRIUePHpWJEyeqbStWrCjHjx+X66+/Xq666ir5+OOPZevWrTJkyBCvT4MQ4hCKEEJITImQs2fPSs+ePaVOnTpqHawiAJaRrKwsSU9Pz9t+0qRJkpubKx988IGyhDRv3lx27NghgwYN8uwcCCHOoTuGEBIztGrVSq688kolPG655RZ5//335dChQ5bbr1+/Xlq2bKkEiEanTp2iNFpCSGGhCCGExAwpKSkyd+5c+frrr6VZs2Yybtw4ady4sXKzEEISD4oQQkhMgaDTiy66SJ555hkVZJqamipffPGFes3JyQnYtmnTprJ69Wo5ffp03rrFixd7MGpCSChQhBBCYoZffvlFXnzxRVm6dKkKRJ0xY4bs379fiY26desqwbFx40bJzMyUM2fOyG233aZEy9133y3r1q2TWbNmyZgxY7w+DUKIQyhCCCExQ9myZeWHH36Qa6+9Vho1aiRPPvmkvPrqq3LNNdcooQHXDNJwq1SpIj/99JOULl1avvrqK/ntt99Umu4TTzwhL7/8stenQQhxSBGfz+dzujEhhBBCSLigJYQQQgghnkARQgghhBBPoAghhBBCiCdQhBBCCCHEEyhCCCGEEOIJFCGEEEII8QSKEEIIIYR4AkUIIYQQQjyBIoQQQgghnkARQgghhBBPoAghhBBCiHjB/wenlRWN+PbrHAAAAABJRU5ErkJggg==", "text/plain": [ "
" ] @@ -425,6 +425,7 @@ "\n", "# plot the frontier and its symmetric w/r to origin\n", "sigmarange = np.linspace(1.0 / np.sqrt(a) + 1.0e-10, 1.1 * np.max(std_list), 47)\n", + "\n", "# compute the return of the optimal portfolio for sigma in sigmarange\n", "# will use the \"factor\" auxiliary variable\n", "factor = np.sqrt((mean_returns - b / a) @ inverse_cov @ (mean_returns - b / a))\n", @@ -442,41 +443,43 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 73, "id": "eec4e675", "metadata": {}, "outputs": [ - { - "ename": "TypeError", - "evalue": "unsupported operand type(s) for +: 'int' and 'NoneType'", - "output_type": "error", - "traceback": [ - "\u001b[31m---------------------------------------------------------------------------\u001b[39m", - "\u001b[31mTypeError\u001b[39m Traceback (most recent call last)", - "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[9]\u001b[39m\u001b[32m, line 6\u001b[39m\n\u001b[32m 3\u001b[39m market_portf_allocation = \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[32m 5\u001b[39m plt.title(\u001b[33m\"\u001b[39m\u001b[33mmarket portf\u001b[39m\u001b[33m\"\u001b[39m)\n\u001b[32m----> \u001b[39m\u001b[32m6\u001b[39m \u001b[43mplt\u001b[49m\u001b[43m.\u001b[49m\u001b[43mbar\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mlist\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mrange\u001b[39;49m\u001b[43m(\u001b[49m\u001b[32;43m1\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[32;43m1\u001b[39;49m\u001b[43m \u001b[49m\u001b[43m+\u001b[49m\u001b[43m \u001b[49m\u001b[43mnb\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmarket_portf_allocation\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;66;03m# type: ignore\u001b[39;00m\n\u001b[32m 7\u001b[39m plt.show()\n\u001b[32m 8\u001b[39m plt.close()\n", - "\u001b[36mFile \u001b[39m\u001b[32m~/Workspace/studies/.venv/lib/python3.13/site-packages/matplotlib/pyplot.py:2979\u001b[39m, in \u001b[36mbar\u001b[39m\u001b[34m(x, height, width, bottom, align, data, **kwargs)\u001b[39m\n\u001b[32m 2968\u001b[39m \u001b[38;5;129m@_copy_docstring_and_deprecators\u001b[39m(Axes.bar)\n\u001b[32m 2969\u001b[39m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34mbar\u001b[39m(\n\u001b[32m 2970\u001b[39m x: \u001b[38;5;28mfloat\u001b[39m | ArrayLike,\n\u001b[32m (...)\u001b[39m\u001b[32m 2977\u001b[39m **kwargs,\n\u001b[32m 2978\u001b[39m ) -> BarContainer:\n\u001b[32m-> \u001b[39m\u001b[32m2979\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mgca\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m.\u001b[49m\u001b[43mbar\u001b[49m\u001b[43m(\u001b[49m\n\u001b[32m 2980\u001b[39m \u001b[43m \u001b[49m\u001b[43mx\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 2981\u001b[39m \u001b[43m \u001b[49m\u001b[43mheight\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 2982\u001b[39m \u001b[43m \u001b[49m\u001b[43mwidth\u001b[49m\u001b[43m=\u001b[49m\u001b[43mwidth\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 2983\u001b[39m \u001b[43m \u001b[49m\u001b[43mbottom\u001b[49m\u001b[43m=\u001b[49m\u001b[43mbottom\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 2984\u001b[39m \u001b[43m \u001b[49m\u001b[43malign\u001b[49m\u001b[43m=\u001b[49m\u001b[43malign\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 2985\u001b[39m \u001b[43m \u001b[49m\u001b[43m*\u001b[49m\u001b[43m*\u001b[49m\u001b[43m(\u001b[49m\u001b[43m{\u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mdata\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mdata\u001b[49m\u001b[43m}\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mif\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mdata\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mis\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mnot\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43;01melse\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43m{\u001b[49m\u001b[43m}\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 2986\u001b[39m \u001b[43m \u001b[49m\u001b[43m*\u001b[49m\u001b[43m*\u001b[49m\u001b[43mkwargs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 2987\u001b[39m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n", - "\u001b[36mFile \u001b[39m\u001b[32m~/Workspace/studies/.venv/lib/python3.13/site-packages/matplotlib/__init__.py:1521\u001b[39m, in \u001b[36m_preprocess_data..inner\u001b[39m\u001b[34m(ax, data, *args, **kwargs)\u001b[39m\n\u001b[32m 1518\u001b[39m \u001b[38;5;129m@functools\u001b[39m.wraps(func)\n\u001b[32m 1519\u001b[39m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34minner\u001b[39m(ax, *args, data=\u001b[38;5;28;01mNone\u001b[39;00m, **kwargs):\n\u001b[32m 1520\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m data \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[32m-> \u001b[39m\u001b[32m1521\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfunc\u001b[49m\u001b[43m(\u001b[49m\n\u001b[32m 1522\u001b[39m \u001b[43m \u001b[49m\u001b[43max\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 1523\u001b[39m \u001b[43m \u001b[49m\u001b[43m*\u001b[49m\u001b[38;5;28;43mmap\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mcbook\u001b[49m\u001b[43m.\u001b[49m\u001b[43msanitize_sequence\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43margs\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 1524\u001b[39m \u001b[43m \u001b[49m\u001b[43m*\u001b[49m\u001b[43m*\u001b[49m\u001b[43m{\u001b[49m\u001b[43mk\u001b[49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mcbook\u001b[49m\u001b[43m.\u001b[49m\u001b[43msanitize_sequence\u001b[49m\u001b[43m(\u001b[49m\u001b[43mv\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mk\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mv\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mkwargs\u001b[49m\u001b[43m.\u001b[49m\u001b[43mitems\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m}\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 1526\u001b[39m bound = new_sig.bind(ax, *args, **kwargs)\n\u001b[32m 1527\u001b[39m auto_label = (bound.arguments.get(label_namer)\n\u001b[32m 1528\u001b[39m \u001b[38;5;129;01mor\u001b[39;00m bound.kwargs.get(label_namer))\n", - "\u001b[36mFile \u001b[39m\u001b[32m~/Workspace/studies/.venv/lib/python3.13/site-packages/matplotlib/axes/_axes.py:2646\u001b[39m, in \u001b[36mAxes.bar\u001b[39m\u001b[34m(self, x, height, width, bottom, align, **kwargs)\u001b[39m\n\u001b[32m 2643\u001b[39m args = \u001b[38;5;28mzip\u001b[39m(left, bottom, width, height, facecolor, edgecolor, linewidth,\n\u001b[32m 2644\u001b[39m hatch, patch_labels)\n\u001b[32m 2645\u001b[39m \u001b[38;5;28;01mfor\u001b[39;00m l, b, w, h, c, e, lw, htch, lbl \u001b[38;5;129;01min\u001b[39;00m args:\n\u001b[32m-> \u001b[39m\u001b[32m2646\u001b[39m r = \u001b[43mmpatches\u001b[49m\u001b[43m.\u001b[49m\u001b[43mRectangle\u001b[49m\u001b[43m(\u001b[49m\n\u001b[32m 2647\u001b[39m \u001b[43m \u001b[49m\u001b[43mxy\u001b[49m\u001b[43m=\u001b[49m\u001b[43m(\u001b[49m\u001b[43ml\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mb\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mwidth\u001b[49m\u001b[43m=\u001b[49m\u001b[43mw\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mheight\u001b[49m\u001b[43m=\u001b[49m\u001b[43mh\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 2648\u001b[39m \u001b[43m \u001b[49m\u001b[43mfacecolor\u001b[49m\u001b[43m=\u001b[49m\u001b[43mc\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 2649\u001b[39m \u001b[43m \u001b[49m\u001b[43medgecolor\u001b[49m\u001b[43m=\u001b[49m\u001b[43me\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 2650\u001b[39m \u001b[43m \u001b[49m\u001b[43mlinewidth\u001b[49m\u001b[43m=\u001b[49m\u001b[43mlw\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 2651\u001b[39m \u001b[43m \u001b[49m\u001b[43mlabel\u001b[49m\u001b[43m=\u001b[49m\u001b[43mlbl\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 2652\u001b[39m \u001b[43m \u001b[49m\u001b[43mhatch\u001b[49m\u001b[43m=\u001b[49m\u001b[43mhtch\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 2653\u001b[39m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 2654\u001b[39m r._internal_update(kwargs)\n\u001b[32m 2655\u001b[39m r.get_path()._interpolation_steps = \u001b[32m100\u001b[39m\n", - "\u001b[36mFile \u001b[39m\u001b[32m~/Workspace/studies/.venv/lib/python3.13/site-packages/matplotlib/patches.py:786\u001b[39m, in \u001b[36mRectangle.__init__\u001b[39m\u001b[34m(self, xy, width, height, angle, rotation_point, **kwargs)\u001b[39m\n\u001b[32m 779\u001b[39m \u001b[38;5;66;03m# Required for RectangleSelector with axes aspect ratio != 1\u001b[39;00m\n\u001b[32m 780\u001b[39m \u001b[38;5;66;03m# The patch is defined in data coordinates and when changing the\u001b[39;00m\n\u001b[32m 781\u001b[39m \u001b[38;5;66;03m# selector with square modifier and not in data coordinates, we need\u001b[39;00m\n\u001b[32m 782\u001b[39m \u001b[38;5;66;03m# to correct for the aspect ratio difference between the data and\u001b[39;00m\n\u001b[32m 783\u001b[39m \u001b[38;5;66;03m# display coordinate systems. Its value is typically provide by\u001b[39;00m\n\u001b[32m 784\u001b[39m \u001b[38;5;66;03m# Axes._get_aspect_ratio()\u001b[39;00m\n\u001b[32m 785\u001b[39m \u001b[38;5;28mself\u001b[39m._aspect_ratio_correction = \u001b[32m1.0\u001b[39m\n\u001b[32m--> \u001b[39m\u001b[32m786\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43m_convert_units\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n", - "\u001b[36mFile \u001b[39m\u001b[32m~/Workspace/studies/.venv/lib/python3.13/site-packages/matplotlib/patches.py:797\u001b[39m, in \u001b[36mRectangle._convert_units\u001b[39m\u001b[34m(self)\u001b[39m\n\u001b[32m 795\u001b[39m y0 = \u001b[38;5;28mself\u001b[39m.convert_yunits(\u001b[38;5;28mself\u001b[39m._y0)\n\u001b[32m 796\u001b[39m x1 = \u001b[38;5;28mself\u001b[39m.convert_xunits(\u001b[38;5;28mself\u001b[39m._x0 + \u001b[38;5;28mself\u001b[39m._width)\n\u001b[32m--> \u001b[39m\u001b[32m797\u001b[39m y1 = \u001b[38;5;28mself\u001b[39m.convert_yunits(\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43m_y0\u001b[49m\u001b[43m \u001b[49m\u001b[43m+\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43m_height\u001b[49m)\n\u001b[32m 798\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m x0, y0, x1, y1\n", - "\u001b[31mTypeError\u001b[39m: unsupported operand type(s) for +: 'int' and 'NoneType'" - ] - }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAi4AAAGzCAYAAAAIWpzfAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAAIddJREFUeJzt3Q2QVtV9P/AfLwLaZFFLAEWUauK7ggEhiNSYITLVmtg2DcVUCFWJCbEpNIkgChqNEKOWNqI0vkTbakEdzWQCg1EiTY00jKAdkwhWUSFW3owCxQgCz3/O+c9uWFiUZ2V3Obufz8wV7t17n3uePew+X8/bbVepVCoBAFCA9i1dAACAvSW4AADFEFwAgGIILgBAMQQXAKAYggsAUAzBBQAohuACABRDcAEAiiG4AI22cOHCaNeuXTz00EPRlv3f//1fXHLJJdGzZ8/8/fi7v/u7li4StFodW7oAALVuu+22OOigg+KLX/xi7G/mzZsXixcvjmuuuWa3r91www1xzz33xNVXXx3HHHNMnHDCCS1SRmgL2nlWEfBBWlzOPvvsePDBB+Nzn/vcB369k08+Obp165Zfd3/z1a9+NWbOnBkN/cr8xCc+ER07downn3yyRcoGbYmuIqBq27Zti61bt0ZbsHnz5vc9Z+3atXHwwQc3S3mgrRNcoFCpyyKNp3jhhRfir//6r6Nr167xkY98JHdXpFaBVatWxWc/+9moqanJYy9uvvnmeten4DFlypTo379/vvYP/uAPYujQofHEE0/UO++VV17J97nppptixowZuSukc+fO8etf/7rBcm3ZsiX+9E//NL/mU089lY/t2LEjX3vSSSdFly5dokePHvGlL30p3nzzzbrr+vTpE7/61a/iP/7jP/L90vbJT35yj+9/53L9wz/8Qxx11FFx4IEHxllnnRW//OUvdzv/pz/9aX5/6X2mkJG+N88//3yD39P03i688MI45JBD4swzz8xdV6m1JaktW9pqx/i8/PLLMXfu3LrjqWxA0zDGBQo3YsSIPKZi+vTp+cPz+uuvj0MPPTT++Z//OT71qU/Fd77znbjvvvvi61//epx++unxx3/8x/m6jRs3xp133hkjR46MSy+9NDZt2hR33XVXDB8+PI/l6NevX737/OAHP4h33nknxo4dm4NLusdbb71V75zf/e53ORA8/fTT8fjjj+f7JSmkpDEgY8aMib/927/NH/S33nprPPPMM/Hzn/88DjjggBxsLr/88vjQhz4UkydPztelgPN+/uVf/iWXfdy4cbl8//iP/5jf93PPPVd3fSrLn/zJn8TRRx+dw0kq5/e+970YMmRILF26NIemnf3lX/5lfOxjH8tjV1IIPO200+J///d/47HHHot//dd/rTsvfd/T/vjx4+OII46Iv//7v8/HU4AEmkga4wKUZ+rUqWmwRWXs2LF1x7Zt21Y54ogjKu3atatMnz697vibb75ZOfDAAyujR4+ud+6WLVvqvWY6r0ePHpW/+Zu/qTv28ssv5/vU1NRU1q5dW+/8J554In/twQcfrGzatKly1llnVbp161Z55pln6s75z//8z3zOfffdV+/a+fPn73b8pJNOyq+xN2rLld7Xb37zm7rjv/jFL/Lx8ePH1x3r169fpXv37pU33nij7th///d/V9q3b18ZNWrUbt/TkSNH7na/cePG5a815Kijjqqcd955e1Vu4IPRVQSFS9Nwa3Xo0CEGDBiQWwkuvvjiuuOpa+S4446LFStW1Du3U6dOdV05v/3tb/PYlXR9aoXY1V/8xV/ssSVhw4YNcc4558SyZcty98nOrTVp4G7qNvr0pz8d69evr9tSF1VqXdm1a6paF1xwQfTq1atuf+DAgTFo0KA8Cyh5/fXX49lnn83dPamVqNapp56ay1R73s4uu+yyD1QmoOnoKoLCHXnkkfX2U0hI40jS7Jxdj7/xxhv1jt1777157EsKHO+++27d8T/6oz/a7T4NHauV1i1J3TSp6yeNY9nZ//zP/+Rg07179z0ObP0gUpfOro499th44IEH8t9fffXV/GcKbrtKXT2PPvpoHoCbxr7szXsFWpbgAoVLLSd7cyzZeSrvv/3bv+VWiNRi8Y1vfCMHi3TdtGnT4qWXXtrt2jTwdU/SuJbZs2fncTZpzEn79r9vzE2tOem10zibhuyP40He670CLUtwgTYqrXabBqs+/PDDeSZMralTp1b9Win8pK6iFIQ+/OEPx+233173tTQLKQ2OTQNh3y8Q7FyOvZVadHaVZlrVDrhNs42S5cuX73ZeamlKLVM7t7bsy7IB+54xLtBG1bbK7NwK84tf/CIWLVrUqNcbNWpU/NM//VPMmjUrrrjiirrjn//852P79u1x3XXX7XZNGlOz88ykFCB2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oBiCCwBQDMEFACiG4AIAFENwAQCKIbgAAMUQXACAYgguAEAxBBcAoBiCCwBQDMEFACiG4AIAFENwAQCKIbgAAMUQXACAYgguAEAxBBcAoBiCCwBQDMEFACiG4AIAFENwAQCKIbgAAMUQXACAYgguAEAxBBcAoBiCCwBQDMEFACiG4AIAFENwAQCKIbgAAMUQXACAYgguAEAxBBcAoBiCCwBQDMEFACiG4AIAFENwAQCKIbgAAMUQXACAYgguAEAxBBcAoBiCCwBQDMEFAGjdwWXmzJnRp0+f6NKlSwwaNCgWL168x3PvuOOOGDp0aBxyyCF5GzZs2HueDwCwz4LLnDlzYsKECTF16tRYunRp9O3bN4YPHx5r165t8PyFCxfGyJEj44knnohFixZF796945xzzonXXnut2lsDAG1cu0qlUqnmgtTCcvrpp8ett96a93fs2JHDyOWXXx4TJ0583+u3b9+eW17S9aNGjWrwnC1btuSt1saNG/M9NmzYEDU1NdUUFwBoIenzu2vXrvv087uqFpetW7fGkiVLcndP3Qu0b5/3U2vK3nj77bfj3XffjUMPPXSP50ybNi2/0dothRYAgKqCy/r163OLSY8ePeodT/urV6/eq9e44oor4vDDD68XfnY1adKknM5qt1WrVlVTTACglerYnDebPn16zJ49O497SQN796Rz5855AwBodHDp1q1bdOjQIdasWVPveNrv2bPne15700035eDy+OOPx6mnnlrNbQEAqu8q6tSpU/Tv3z8WLFhQdywNzk37gwcP3uN1N954Y1x33XUxf/78GDBgQDW3BABofFdRmgo9evToHEAGDhwYM2bMiM2bN8eYMWPy19NMoV69euUBtsl3vvOdmDJlStx///157ZfasTAf+tCH8gYA0GTBZcSIEbFu3bocRlII6devX25JqR2wu3LlyjzTqNbtt9+eZyN97nOfq/c6aR2Ya665ptrbAwBtWNXruLSWeeAAQCtfxwUAoCUJLgBAMQQXAKAYggsAUAzBBQAohuACABRDcAEAiiG4AADFEFwAgGIILgBAMQQXAKAYggsAUAzBBQAohuACABRDcAEAiiG4AADFEFwAgGIILgBAMQQXAKAYggsAUAzBBQAohuACABRDcAEAiiG4AADFEFwAgGIILgBAMQQXAKAYggsAUAzBBQAohuACABRDcAEAiiG4AADFEFwAgGIILgBAMQQXAKAYggsAUAzBBQAohuACABRDcAEAiiG4AADFEFwAgGIILgBAMQQXAKAYggsAUAzBBQAohuACABRDcAEAiiG4AADFEFwAgGIILgBAMQQXAKAYggsAUAzBBQAohuACABRDcAEAiiG4AADFEFwAgGIILgBAMQQXAKAYggsAUAzBBQAohuACALTu4DJz5szo06dPdOnSJQYNGhSLFy9+z/MffPDBOP744/P5p5xySsybN6+x5QUA2rCqg8ucOXNiwoQJMXXq1Fi6dGn07ds3hg8fHmvXrm3w/KeeeipGjhwZF198cTzzzDNxwQUX5O2Xv/zlvig/ANCGtKtUKpVqLkgtLKeffnrceuuteX/Hjh3Ru3fvuPzyy2PixIm7nT9ixIjYvHlz/PjHP6479olPfCL69esXs2bN2qt7bty4Mbp27RobNmyImpqaaooLALSQpvj87ljNyVu3bo0lS5bEpEmT6o61b98+hg0bFosWLWrwmnQ8tdDsLLXQ/PCHP9zjfbZs2ZK3WukN134DAIAy1H5uV9lGsu+Cy/r162P79u3Ro0ePesfT/rJlyxq8ZvXq1Q2en47vybRp0+Laa6/d7Xhq2QEAyvLGG2/klpdmDy7NJbXo7NxK89Zbb8VRRx0VK1eu3GdvnMan5xQgV61apduuhamL/Ye62L+oj/1H6jE58sgj49BDD91nr1lVcOnWrVt06NAh1qxZU+942u/Zs2eD16Tj1ZyfdO7cOW+7SqHFP8L9Q6oHdbF/UBf7D3Wxf1Ef+480rGSfvVY1J3fq1Cn69+8fCxYsqDuWBuem/cGDBzd4TTq+8/nJY489tsfzAQD2WVdR6sIZPXp0DBgwIAYOHBgzZszIs4bGjBmTvz5q1Kjo1atXHqeSfO1rX4uzzjorbr755jjvvPNi9uzZ8fTTT8f3v//9am8NALRxVQeXNL153bp1MWXKlDzANk1rnj9/ft0A3DQOZecmoTPOOCPuv//+uOqqq+LKK6+Mj33sY3lG0cknn7zX90zdRmndmIa6j2he6mL/oS72H+pi/6I+WnddVL2OCwBAS/GsIgCgGIILAFAMwQUAKIbgAgAUQ3ABAIqx3wSXmTNnRp8+faJLly75CdSLFy9+z/MffPDBOP744/P5p5xySsybN6/ZytraVVMXd9xxRwwdOjQOOeSQvKUHbr5f3dF0Pxe10npJ7dq1iwsuuKDJy9hWVFsX6VEl48aNi8MOOyxPBT322GP9nmqhukjrjR133HFx4IEH5kcBjB8/Pt55551mK29r9bOf/SzOP//8OPzww/Pvm/d6eHKthQsXxsc//vH8M/HRj3407rnnnupvXNkPzJ49u9KpU6fK3XffXfnVr35VufTSSysHH3xwZc2aNQ2e//Of/7zSoUOHyo033lj59a9/XbnqqqsqBxxwQOW5555r9rK3NtXWxYUXXliZOXNm5Zlnnqk8//zzlS9+8YuVrl27Vn7zm980e9nbel3Uevnllyu9evWqDB06tPLZz3622crbmlVbF1u2bKkMGDCgcu6551aefPLJXCcLFy6sPPvss81e9rZeF/fdd1+lc+fO+c9UD48++mjlsMMOq4wfP77Zy97azJs3rzJ58uTKww8/nJZVqTzyyCPvef6KFSsqBx10UGXChAn5s/t73/te/iyfP39+VffdL4LLwIEDK+PGjavb3759e+Xwww+vTJs2rcHzP//5z1fOO++8escGDRpU+dKXvtTkZW3tqq2LXW3btq3y4Q9/uHLvvfc2YSnbhsbURfr+n3HGGZU777yzMnr0aMGlheri9ttvrxx99NGVrVu3NmMp24Zq6yKd+6lPfaresfTBOWTIkCYva1sSexFcvvnNb1ZOOumkesdGjBhRGT58eFX3avGuoq1bt8aSJUtyF0OttPJu2l+0aFGD16TjO5+fDB8+fI/n03R1sau333473n333X36JNC2qLF18a1vfSu6d+8eF198cTOVtPVrTF386Ec/ys9jS11FaVXxtFL4DTfcENu3b2/Gkrc+jamLtHp7uqa2O2nFihW5y+7cc89ttnKzbz+7q17yf19bv359/mGufWRArbS/bNmyBq9Jjxpo6Px0nOati11dccUVub9z13+cNH1dPPnkk3HXXXfFs88+20ylbBsaUxfpw/GnP/1pfOELX8gfki+++GJ85StfyaE+LX9O89XFhRdemK8788wzUw9DbNu2LS677LL8CBqa154+uzdu3Bi/+93v8hikvdHiLS60HtOnT8+DQh955JE8aI7ms2nTprjooovyYOlu3bq1dHHavB07duSWr/Qw2f79++dnvE2ePDlmzZrV0kVrc9Jg0NTaddttt8XSpUvj4Ycfjrlz58Z1113X0kWjkVq8xSX9ku3QoUOsWbOm3vG037NnzwavScerOZ+mq4taN910Uw4ujz/+eJx66qlNXNLWr9q6eOmll+KVV17JI/x3/vBMOnbsGMuXL49jjjmmGUre+jTm5yLNJDrggAPydbVOOOGE/H+cqbujU6dOTV7u1qgxdXH11VfnUH/JJZfk/TQLdfPmzTF27NgcJnd+KDBNa0+f3TU1NXvd2pK0eI2lH+D0fyQLFiyo9ws37ac+4oak4zufnzz22GN7PJ+mq4vkxhtvzP/3kp4SPmDAgGYqbetWbV2kpQGee+653E1Uu33mM5+Js88+O/89TQGl+X4uhgwZkruHasNj8sILL+RAI7Q0b12kcXe7hpPaQOkZw81rn312V/aT6W1puto999yTp0iNHTs2T29bvXp1/vpFF11UmThxYr3p0B07dqzcdNNNeQru1KlTTYduobqYPn16npr40EMPVV5//fW6bdOmTS34LtpmXezKrKKWq4uVK1fm2XVf/epXK8uXL6/8+Mc/rnTv3r1y/fXXt+C7aJt1kT4fUl38+7//e56O+5Of/KRyzDHH5NmpfDDp93xaCiNtKU7ccsst+e+vvvpq/nqqh1Qfu06H/sY3vpE/u9NSGsVOh07SfO4jjzwyfwim6W7/9V//Vfe1s846K/8S3tkDDzxQOfbYY/P5aXrV3LlzW6DUrVM1dXHUUUflf7C7bumXBc3/c7EzwaVl6+Kpp57KyzSkD9k0Nfrb3/52nq5O89bFu+++W7nmmmtyWOnSpUuld+/ela985SuVN998s4VK33o88cQTDf7+r/3+pz9Tfex6Tb9+/XLdpZ+LH/zgB1Xft136z75tDAIAaBotPsYFAGBvCS4AQDEEFwCgGIILAFAMwQUAKIbgAgAUQ3ABAIohuAAAxRBcAIBiCC4AQDEEFwAgSvH/AACNY3xzkUOQAAAAAElFTkSuQmCC", + "image/png": "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YNqZe+65J1555ZWG22mlVHodaXVRcuCBBxY9OGmKrPFjp+XU//7v/x5nnHFGi56nPuDsan1Ayxh5AXYqXYsljbr8+Z//eYwdO7ZYvpyCx+DBg4vv6nmvV6FNS7DTUufUY/PlL3+5uO5KWiqdpqNS42waoUlLo9OISWrmTUub66/Om5p406hNWu592GGHFdNNadnzjqTj0rVYPv/5zxfXmElLrj/0oQ/F3//93zcc881vfrMIMyNHjiwameuXSqcam7vcf3NSbUla6p2Wk6fwd+65576n9wnYlvAC7FSa4lmzZk1xPZjUtJpCS+qDSYHi/VyePwWW1KBbH2DS9VdSKEof/um50v3pUvppWiddXC9NJ9VLF81LDbbf+MY3imu3pOCzs/CSRnxSj00KLan5N602SteQSSMu9UaPHh1VVVXFlFh6jhSe0mOna+C0tDn3L/7iL4rr0KTenvQ+pREr4QV2H99tBLR66Sq2KXikUZV0AT4gb3peAICsCC8AQFaEFwAgK3peAICsGHkBALIivAAAWWl113lJ342yevXq4rLjLtENAHlIXSzpmk19+vRp8p1nbSK8pODSr1+/cpcBALwH1dXVcdBBB7Wt8JJGXOpffJcuXcpdDgDQAunrQtLgQ/3neJsKL/VTRSm4CC8AkJeWtHxo2AUAsiK8AABZEV4AgKwILwBAVoQXACArwgsAkBXhBQDIivACAGRFeAEAsiK8AABZKXl4mTdvXvTv3z86d+4cI0aMiKVLl+7w+DfffDMuuuiiOPDAA6NTp05x+OGHxwMPPFDqMgGATJT0u43uvPPOmDZtWsyfP78ILnPnzo0xY8bEihUromfPntscv3nz5jjllFOK++6+++7o27dv/O53v4uuXbuWskwAICMVdXV1daV68BRYjj322LjxxhuL27W1tcU3Rl588cUxffr0bY5PIeeb3/xmvPDCC7HPPvu852+lrKysjPXr1/tiRgDIxK58fpds5CWNoixbtixmzJjRsK9du3YxevToWLJkSbPn3HvvvTFy5Mhi2uinP/1p9OjRI84777y44ooron379s2eU1NTU2yNXzxAzvpPv7/cJWRj5Zyx5S6B1tTzsm7duti6dWv06tWryf50e82aNc2e89vf/raYLkrnpT6Xr371q3HdddfFNddcs93nmT17dpHU6rc0sgMAtF571WqjNK2U+l1uvvnmGDp0aIwbNy6+8pWvFNNJ25NGdtIQU/1WXV29R2sGAPaskk0bde/evZjqefXVV5vsT7d79+7d7DlphVHqdWk8RTRo0KBipCZNQ3Xs2HGbc9KKpLQBAG1DyUZeUtBIoycPPfRQk5GVdDv1tTTnuOOOi9/85jfFcfV+9atfFaGmueACALQ9JZ02Ssukb7nllvjBD34Qzz//fHz+85+PTZs2xaRJk4r7J0yY0KShN93/xhtvxCWXXFKElvvvvz++9rWvFQ28AAAlv85L6ll57bXXYubMmcXUz5AhQ6KqqqqhiXfVqlXFCqR6qdn2wQcfjEsvvTSOPvro4jovKcik1UYAACW/zks5uM4LkDtLpVvOUum2+fm9V602AgDYGeEFAMiK8AIAZEV4AQCyIrwAAFkRXgCArAgvAEBWhBcAICvCCwCQFeEFAMhKSb/bCABy4WsZ8vlaBiMvAEBWhBcAICvCCwCQFeEFAMiK8AIAZEV4AQCyIrwAAFkRXgCArAgvAEBWhBcAICvCCwCQFeEFAMiK8AIAZEV4AQCyIrwAAFkRXgCArAgvAEBWhBcAICvCCwCQFeEFAMiK8AIAZEV4AQCyIrwAAFkRXgCArAgvAEBWhBcAICvCCwCQFeEFAMiK8AIAZEV4AQCyIrwAAFkRXgCArAgvAEBWhBcAICvCCwCQFeEFAMiK8AIAZEV4AQCyIrwAAFkRXgCArAgvAEBWhBcAICvCCwCQFeEFAMjKHgkv8+bNi/79+0fnzp1jxIgRsXTp0hadt3DhwqioqIizzz675DUCAHkoeXi58847Y9q0aTFr1qxYvnx5HHPMMTFmzJhYu3btDs9buXJlXH755TFq1KhSlwgAZKTk4eX666+PKVOmxKRJk2Lw4MExf/782G+//eK2227b7jlbt26N888/P6666qoYMGBAqUsEADJS0vCyefPmWLZsWYwePfr/nrBdu+L2kiVLtnveP/7jP0bPnj1j8uTJO32Ompqa2LBhQ5MNAGi9Shpe1q1bV4yi9OrVq8n+dHvNmjXNnvPYY4/FrbfeGrfcckuLnmP27NlRWVnZsPXr12+31A4A7J32qtVGGzdujM9+9rNFcOnevXuLzpkxY0asX7++Yauuri55nQBA+XQo5YOnANK+fft49dVXm+xPt3v37r3N8S+++GLRqHvmmWc27Kutrf3fQjt0iBUrVsSHP/zhJud06tSp2ACAtqGkIy8dO3aMoUOHxkMPPdQkjKTbI0eO3Ob4gQMHxjPPPBNPP/10w/apT30qTjrppOLfpoQAgJKOvCRpmfTEiRNj2LBhMXz48Jg7d25s2rSpWH2UTJgwIfr27Vv0rqTrwBx11FFNzu/atWvx8937AYC2qeThZdy4cfHaa6/FzJkziybdIUOGRFVVVUMT76pVq4oVSAAAe0V4SaZOnVpszVm8ePEOz7399ttLVBUAkCNDHgBAVoQXACArwgsAkBXhBQDIivACAGRFeAEAsiK8AABZEV4AgKwILwBAVoQXACArwgsAkBXhBQDIivACAGRFeAEAsiK8AABZEV4AgKwILwBAVoQXACArwgsAkBXhBQDIivACAGRFeAEAsiK8AABZEV4AgKwILwBAVoQXACArwgsAkBXhBQDIivACAGRFeAEAsiK8AABZEV4AgKwILwBAVoQXACArHcpdALD36j/9/nKXkI2Vc8aWuwRoM4y8AABZEV4AgKwILwBAVoQXACArwgsAkBXhBQDIivACAGRFeAEAsiK8AABZEV4AgKwILwBAVoQXACArwgsAkBXhBQDIivACAGRFeAEAsiK8AABZEV4AgKwILwBAVoQXACAreyS8zJs3L/r37x+dO3eOESNGxNKlS7d77C233BKjRo2KD37wg8U2evToHR4PALQtJQ8vd955Z0ybNi1mzZoVy5cvj2OOOSbGjBkTa9eubfb4xYsXx/jx4+ORRx6JJUuWRL9+/eLUU0+NV155pdSlAgAZKHl4uf7662PKlCkxadKkGDx4cMyfPz/222+/uO2225o9fsGCBfF3f/d3MWTIkBg4cGB873vfi9ra2njooYeaPb6mpiY2bNjQZAMAWq+ShpfNmzfHsmXLiqmfhids1664nUZVWuLtt9+OLVu2RLdu3Zq9f/bs2VFZWdmwpZEaAKD1Kml4WbduXWzdujV69erVZH+6vWbNmhY9xhVXXBF9+vRpEoAamzFjRqxfv75hq66u3i21AwB7pw6xF5szZ04sXLiw6INJzb7N6dSpU7EBAG1DScNL9+7do3379vHqq6822Z9u9+7de4fnXnvttUV4+dnPfhZHH310KcsEADJS0mmjjh07xtChQ5s029Y3344cOXK7533jG9+Iq6++OqqqqmLYsGGlLBEAyEzJp43SMumJEycWIWT48OExd+7c2LRpU7H6KJkwYUL07du3aLxNvv71r8fMmTPjjjvuKK4NU98bs//++xcbANC2lTy8jBs3Ll577bUikKQgkpZApxGV+ibeVatWFSuQ6t10003FKqVPf/rTTR4nXSfmyiuvLHW5AMBebo807E6dOrXYmpOacRtbuXLlnigJAMiU7zYCALIivAAAWRFeAICsCC8AQFaEFwAgK8ILAJAV4QUAyIrwAgBkRXgBALIivAAAWRFeAICsCC8AQFaEFwAgK8ILAJAV4QUAyIrwAgBkRXgBALIivAAAWRFeAICsCC8AQFaEFwAgK8ILAJAV4QUAyIrwAgBkRXgBALIivAAAWRFeAICsCC8AQFaEFwAgK8ILAJAV4QUAyIrwAgBkRXgBALIivAAAWRFeAICsCC8AQFaEFwAgK8ILAJAV4QUAyIrwAgBkRXgBALIivAAAWRFeAICsCC8AQFaEFwAgK8ILAJAV4QUAyIrwAgBkRXgBALIivAAAWRFeAICsCC8AQFaEFwAgK8ILAJAV4QUAyMoeCS/z5s2L/v37R+fOnWPEiBGxdOnSHR5/1113xcCBA4vjP/rRj8YDDzywJ8oEADJQ8vBy5513xrRp02LWrFmxfPnyOOaYY2LMmDGxdu3aZo//5S9/GePHj4/JkyfHU089FWeffXaxPfvss6UuFQDIQMnDy/XXXx9TpkyJSZMmxeDBg2P+/Pmx3377xW233dbs8TfccEOcdtpp8aUvfSkGDRoUV199dXzsYx+LG2+8sdnja2pqYsOGDU02AKD16lDKB9+8eXMsW7YsZsyY0bCvXbt2MXr06FiyZEmz56T9aaSmsTRSc8899zR7/OzZs+Oqq66KPaX/9Pv32HPlbuWcsbvtsbzv5Xnfd+dj0XLe9/LwvuejpCMv69ati61bt0avXr2a7E+316xZ0+w5af+uHJ+C0fr16xu26urq3fgKAIA2NfKyJ3Tq1KnYaN38HxEAe2TkpXv37tG+fft49dVXm+xPt3v37t3sOWn/rhwPALQtJQ0vHTt2jKFDh8ZDDz3UsK+2tra4PXLkyGbPSfsbH58sWrRou8cDAG1LyaeNUvPtxIkTY9iwYTF8+PCYO3dubNq0qVh9lEyYMCH69u1bNN4ml1xySZxwwglx3XXXxdixY2PhwoXx5JNPxs0331zqUgGADJQ8vIwbNy5ee+21mDlzZtF0O2TIkKiqqmpoyl21alWxAqnexz/+8bjjjjviH/7hH+LLX/5yfOQjHylWGh111FGlLhUAyEBFXV1dXbQi6TovlZWVxcqjLl267PbHt2S35TTZAlCKz2/fbQQAZEV4AQCyIrwAAFkRXgCArAgvAEBWhBcAICvCCwCQFeEFAMiK8AIAZEV4AQCyIrwAAFkRXgCArAgvAEBWhBcAICvCCwCQFeEFAMiK8AIAZEV4AQCyIrwAAFkRXgCArAgvAEBWhBcAICvCCwCQFeEFAMiK8AIAZEV4AQCyIrwAAFkRXgCArAgvAEBWhBcAICvCCwCQFeEFAMiK8AIAZEV4AQCyIrwAAFkRXgCArAgvAEBWhBcAICvCCwCQFeEFAMiK8AIAZEV4AQCyIrwAAFkRXgCArAgvAEBWhBcAICvCCwCQFeEFAMiK8AIAZEV4AQCyIrwAAFkRXgCArAgvAEBWhBcAICslCy9vvPFGnH/++dGlS5fo2rVrTJ48Od56660dHn/xxRfHEUccEfvuu28cfPDB8YUvfCHWr19fqhIBgAyVLLyk4PLcc8/FokWL4r777otHH300Lrzwwu0ev3r16mK79tpr49lnn43bb789qqqqitADAFCvoq6uri52s+effz4GDx4cTzzxRAwbNqzYl4LIGWecES+//HL06dOnRY9z1113xWc+85nYtGlTdOjQoUXnbNiwISorK4sRmzTqs7v1n37/bn/M1mrlnLHlLgGATOzK53dJRl6WLFlSTBXVB5dk9OjR0a5du3j88cdb/Dj1L2BHwaWmpqZ4wY03AKD1Kkl4WbNmTfTs2bPJvhRAunXrVtzXEuvWrYurr756h1NNyezZs4ukVr/169fvfdUOALSi8DJ9+vSoqKjY4fbCCy+876LS6MnYsWOLqacrr7xyh8fOmDGjGKGp36qrq9/38wMAe6+WNZL8f5dddllccMEFOzxmwIAB0bt371i7dm2T/e+8806xoijdtyMbN26M0047LQ444ID4yU9+Evvss88Oj+/UqVOxAQBtwy6Flx49ehTbzowcOTLefPPNWLZsWQwdOrTY9/DDD0dtbW2MGDFihyMuY8aMKcLIvffeG507d96V8gCANqAkPS+DBg0qRk+mTJkSS5cujV/84hcxderUOPfccxtWGr3yyisxcODA4v764HLqqacWK4tuvfXW4nbqj0nb1q1bS1EmANDaR152xYIFC4rAcvLJJxerjM4555z49re/3XD/li1bYsWKFfH2228Xt5cvX96wEumwww5r8lgvvfRS9O/fv1SlAgAZKVl4SSuL7rjjju3en8JI40vMnHjiiU1uAwA0x3cbAQBZEV4AgKwILwBAVoQXACArwgsAkBXhBQDIivACAGRFeAEAsiK8AABZEV4AgKwILwBAVoQXACArwgsAkBXhBQDIivACAGRFeAEAsiK8AABZEV4AgKwILwBAVoQXACArwgsAkBXhBQDIivACAGRFeAEAsiK8AABZEV4AgKwILwBAVoQXACArwgsAkBXhBQDIivACAGRFeAEAsiK8AABZEV4AgKwILwBAVoQXACArwgsAkBXhBQDIivACAGRFeAEAsiK8AABZEV4AgKwILwBAVoQXACArwgsAkBXhBQDIivACAGRFeAEAsiK8AABZEV4AgKwILwBAVoQXACArwgsAkBXhBQDIivACAGSlZOHljTfeiPPPPz+6dOkSXbt2jcmTJ8dbb73VonPr6uri9NNPj4qKirjnnntKVSIAkKGShZcUXJ577rlYtGhR3HffffHoo4/GhRde2KJz586dWwQXAIB36xAl8Pzzz0dVVVU88cQTMWzYsGLfd77znTjjjDPi2muvjT59+mz33Keffjquu+66ePLJJ+PAAw8sRXkAQMZKMvKyZMmSYqqoPrgko0ePjnbt2sXjjz++3fPefvvtOO+882LevHnRu3fvFj1XTU1NbNiwockGALReJQkva9asiZ49ezbZ16FDh+jWrVtx3/Zceuml8fGPfzzOOuusFj/X7Nmzo7KysmHr16/f+6odAGhF4WX69OlFL8qOthdeeOE9FXLvvffGww8/XPS77IoZM2bE+vXrG7bq6ur39PwAQCvsebnsssviggsu2OExAwYMKKZ81q5d22T/O++8U6xA2t50UAouL774YjHd1Ng555wTo0aNisWLFzd7XqdOnYoNAGgbdim89OjRo9h2ZuTIkfHmm2/GsmXLYujQoQ3hpLa2NkaMGLHdUZ3Pfe5zTfZ99KMfjW9961tx5pln7kqZAEArVpLVRoMGDYrTTjstpkyZEvPnz48tW7bE1KlT49xzz21YafTKK6/EySefHD/84Q9j+PDhxYhMc6MyBx98cBx66KGlKBMAyFDJrvOyYMGCGDhwYBFQ0hLp448/Pm6++eaG+1OgWbFiRbHCCACgpSrq0uVsW5G0VDqtOkrNu+nqvgBA6/r89t1GAEBWhBcAICvCCwCQFeEFAMiK8AIAZEV4AQCyIrwAAFkRXgCArAgvAEBWhBcAICvCCwCQFeEFAMiK8AIAZEV4AQCyIrwAAFnpEK1MXV1d8XPDhg3lLgUAaKH6z+36z/E2FV42btxY/OzXr1+5SwEA3sPneGVl5Q6PqahrScTJSG1tbaxevToOOOCAqKioiLaQVFNQq66uji5dupS7nDbD+14e3vfy8L6XR1t73+vq6org0qdPn2jXrl3bGnlJL/iggw6Ktib9YreFX+69jfe9PLzv5eF9L4+29L5X7mTEpZ6GXQAgK8ILAJAV4SVznTp1ilmzZhU/2XO87+XhfS8P73t5eN/bUMMuANC6GXkBALIivAAAWRFeAICsCC8AQFaEFwAgK8JLph599NE488wzi8sop69BuOeee8pdUpswe/bsOPbYY4uvn+jZs2ecffbZsWLFinKX1erddNNNcfTRRzdcaXTkyJHxb//2b+Uuq02ZM2dO8bfmi1/8YrlLafWuvPLK4r1uvA0cOLDcZe1VhJdMbdq0KY455piYN29euUtpU37+85/HRRddFP/5n/8ZixYtii1btsSpp55a/PegdNJXfqQPz2XLlsWTTz4Zn/zkJ+Oss86K5557rtyltQlPPPFEfPe73y0CJHvGkUceGb///e8btscee6zcJe1VWt13G7UVp59+erGxZ1VVVTW5ffvttxcjMOlD9ROf+ETZ6mrt0ihjY//0T/9UjMakEJn+yFM6b731Vpx//vlxyy23xDXXXFPuctqMDh06RO/evctdxl7LyAu8D+vXry9+duvWrdyltBlbt26NhQsXFqNdafqI0kojjWPHjo3Ro0eXu5Q25de//nXRFjBgwIAiPK5atarcJe1VjLzAe1RbW1vM/x933HFx1FFHlbucVu+ZZ54pwsof//jH2H///eMnP/lJDB48uNxltWopJC5fvryYNmLPGTFiRDGqe8QRRxRTRldddVWMGjUqnn322aLfDuEF3tf/kaY/Juai94z0h/zpp58uRrvuvvvumDhxYtGDJMCURnV1dVxyySVFb1fnzp3LXU6b0rglIPUZpTBzyCGHxI9//OOYPHlyWWvbWwgv8B5MnTo17rvvvmLVV2ompfQ6duwYhx12WPHvoUOHFqMBN9xwQ9FIyu6X+rjWrl0bH/vYx5pM2aXf+RtvvDFqamqiffv2Za2xrejatWscfvjh8Zvf/Kbcpew1hBfYBel7TC+++OJiymLx4sVx6KGHlrukNj1tlz5AKY2TTz65mKprbNKkScWS3SuuuEJw2cNN0y+++GJ89rOfLXcpew3hJeNf5sYp/KWXXiqG1FPj6MEHH1zW2lr7VNEdd9wRP/3pT4u55zVr1hT7KysrY9999y13ea3WjBkziqH09Lu9cePG4r9BCo8PPvhguUtrtdLv97t7uT7wgQ/Ehz70IT1eJXb55ZcXK+zSVNHq1atj1qxZRVgcP358uUvbawgvmUrXujjppJMabk+bNq34mfoAUqMXpZGW5yYnnnhik/3f//7344ILLihTVa1fmr6YMGFC0byYgmLqA0jB5ZRTTil3abDbvfzyy0VQef3116NHjx5x/PHHF5cFSP/mf1XUpXFwAIBMuM4LAJAV4QUAyIrwAgBkRXgBALIivAAAWRFeAICsCC8AQFaEFwAgK8ILAJAV4QUAyIrwAgBETv4fPl5WUtv+9zYAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAGzCAYAAADT4Tb9AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAALaFJREFUeJzt3Ql0VOX5x/EnCRACNWEnIEhYFERWg8QoKEokYEqhtS1QNJCyFAsURFnSCgFRghsFJRVBAakgiEWsWxBRtFbWIFUsULBggJAE0AQSalgy//O858z8Z0ISgmQyyTvfzzmXMHfu3HnvnTmZX973ee8EOBwOhwAAAFgi0NcNAAAAKE+EGwAAYBXCDQAAsArhBgAAWIVwAwAArEK4AQAAViHcAAAAqxBuAACAVQg3AADAKoQboAqLiIiQ4cOHi002b94sAQEB5mdVaesbb7wh/iwvL09Gjhwp4eHh5nxMnDjR102CnyPcAJXc559/LjNnzpScnBypTObMmSPr16/3dTOs8pe//EWWL18uldF7771n3oclvRe03Q8++KD89a9/lQceeKDC2we4I9wAVSDczJo1q9hws3//flmyZIlP2kW48b9wo+/D4nz00Udy6623SlJSktx///0SGRlZ4e0D3BFugCosODhYqlev7utm+J0LFy7IuXPnxB/k5+dfdpvs7GypU6dOhbQHKAvCDeAlx44dk9/+9rfSuHFjE0JuuukmWbp06SXbPf/88+a+WrVqSd26daVbt26yatUqc58OA0yePNn8v2XLlqaeQZfDhw8XW3Ojf/Xr/Z999pn84Q9/kIYNG5oPnd/97nfmw1h7f+Lj483z6DJlyhRxOBwe7XnmmWfktttuk/r160tISIj5K7xoTYk+h37ovfLKK642ubejrMd+9OhRGThwoNSuXVsaNWokDz30kBQUFJTp/Oq50ef9z3/+Y3oLwsLCzPFOnz7dHNORI0dkwIABEhoaampBnn32WY/H6/mYMWOGOT59rLahZ8+e8vHHH3tsp+dan0fPy/z586V169bmmP79738X2y5t/09/+lOzT+11U4WFheaxeh5q1qxpzou+Jt9//73rcfpafv311/LJJ5+4zmmvXr1KPH73dv35z3+WFi1amNfrzjvvlD179hTbu6LHp8ep7wk9N3v37i32nOqx/eY3vzHvkR49epjXNiUlxWzj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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Annualized rdt_backtest: -37.97%, std_backtest:330352.97%\n" + ] } ], "source": [ "# plot market portfolio\n", "r_rate = 0.0 # attention to convert to daily (not annualize!) if not zero !!!\n", - "market_portf_allocation = None\n", + "market_portf_allocation = inverse_cov @ (mean_returns.values - r_rate * onesM)\n", + "market_portf_allocation /= np.sum(market_portf_allocation)\n", "\n", "plt.title(\"market portf\")\n", "plt.bar(list(range(1, 1 + nb)), market_portf_allocation)\n", @@ -493,7 +496,8 @@ "hist_mean_returns = returns_small.iloc[ti:tf, :].mean()\n", "hist_cov_matrix = returns_small.iloc[ti:tf, :].cov()\n", "hist_inverse_cov = np.linalg.inv(hist_cov_matrix)\n", - "hist_market_portf_allocation = None\n", + "hist_market_portf_allocation = hist_inverse_cov @ (hist_mean_returns - r_rate * onesM)\n", + "hist_market_portf_allocation /= np.sum(hist_market_portf_allocation)\n", "\n", "plt.title(\"estimated market portf\")\n", "plt.bar(list(range(1, 1 + nb)), hist_market_portf_allocation)\n", @@ -501,12 +505,14 @@ "plt.close()\n", "\n", "# compute performance during T-1Y,T\n", - "c_mean_returns = None\n", - "c_cov_matrix = None\n", + "c_mean_returns = returns_small.iloc[tf:, :].mean()\n", + "c_cov_matrix = returns_small.iloc[tf:, :].cov()\n", "c_inverse_cov = np.linalg.inv(c_cov_matrix)\n", "\n", - "rdt_backtest = None\n", - "std_backtest = None\n", + "rdt_backtest = hist_market_portf_allocation @ c_mean_returns\n", + "std_backtest = (\n", + " hist_market_portf_allocation @ c_inverse_cov @ hist_market_portf_allocation\n", + ")\n", "\n", "np.sqrt(hist_market_portf_allocation @ c_inverse_cov @ hist_market_portf_allocation)\n", "\n", @@ -517,20 +523,19 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 74, "id": "1ea8bde1", "metadata": {}, "outputs": [ { - "ename": "NameError", - "evalue": "name 'c_mean_returns' is not defined", - "output_type": "error", - "traceback": [ - "\u001b[31m---------------------------------------------------------------------------\u001b[39m", - "\u001b[31mNameError\u001b[39m Traceback (most recent call last)", - "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[10]\u001b[39m\u001b[32m, line 8\u001b[39m\n\u001b[32m 5\u001b[39m \u001b[38;5;28;01mfor\u001b[39;00m ii \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(nr_tests):\n\u001b[32m 6\u001b[39m \u001b[38;5;66;03m# sample at random some \"allocation\"\u001b[39;00m\n\u001b[32m 7\u001b[39m allocation = np.random.dirichlet(np.ones(nb))\n\u001b[32m----> \u001b[39m\u001b[32m8\u001b[39m c_rdt_list[ii] = allocation @ \u001b[43mc_mean_returns\u001b[49m \u001b[38;5;66;03m# type: ignore\u001b[39;00m\n\u001b[32m 9\u001b[39m c_std_list[ii] = np.sqrt(allocation @ c_cov_matrix @ allocation) \u001b[38;5;66;03m# type: ignore\u001b[39;00m\n\u001b[32m 11\u001b[39m \u001b[38;5;66;03m# reduce to target volatility (the mean of random ones)\u001b[39;00m\n", - "\u001b[31mNameError\u001b[39m: name 'c_mean_returns' is not defined" - ] + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkIAAAGwCAYAAABFFQqPAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAATvhJREFUeJzt3QeYleWZ//F7ACkCMwPSRAYQpekiDCCIJaJgi25WsWDZAMY1iT2iWTVFzWYNoqhEQuSSaDTFiAVM1oKFYiwoilj+iCPYBkSayAxF6pz/dT/mHd95562nn/N+P9c1O8zpHNk5v9zP/dxPSSKRSAgAAEAMNcn1CwAAAMgVghAAAIgtghAAAIgtghAAAIgtghAAAIgtghAAAIgtghAAAIitZrl+Afmurq5O1qxZI23btpWSkpJcvxwAABCCjkncsmWLdO3aVZo08a77EIQCaAiqqKjI9csAAABJWLVqlXTr1s3zeoJQAK0EWW9kaWlprl8OAAAIoba21hQyrM9xLwShANZymIYgghAAAIUlqK2FZmkAABBbBCEAABBbBCEAABBb9AgBAGCzd+9e2b17d65fBgLss88+0rRpU0kVQQgAgH/NnVm7dq1s3rw51y8FIZWXl0uXLl1SmvNHEAIAQKQ+BHXq1En23XdfhujmeWjdvn27rF+/3vy8//77J/1YBCEAQOzpcpgVgvbbb79cvxyE0KpVK/Ndw5D+d0t2mYxmaQBA7Fk9QVoJQuGw/nul0tNFEAIA4F9YDovffy+CEAAAiC2CEAAAiC2CEAAgbyyt/kpmv7XafEf+mTBhgpx++ulSTNg1BgDIC7c+s1xmvPhx/c8/PraXXH9K/5y+JhQ/KkIAgJxXdvR29hCk9GcqQ9Ht2rUr1y+hoBCEAABpr+yc8ftXZeIj75jv+nOQTzZui3R5vsvmEt/IkSPl8ssvl5/85CfSoUMHOemkk+TOO++UAQMGSOvWraWiokIuvfRS2bp1a/19HnjgATOV+dlnn5X+/ftLmzZt5OSTT5YvvviiwWyliRMnmtvpbKX//u//NoMM7Xbu3ClXXnmlmePTsmVLOfroo+WNN96ov37hwoVmZ5c+T2VlpZn9c/zxx5vZP88884x57tLSUjn//PPNgMRcIAgBANIm2crOgR1aR7q82IJgqh588EFp3ry5vPLKKzJjxgxp0qSJ3H333bJs2TJz3fz5802QsdPgMWXKFPnzn/8s//znP6W6ulquvfba+uvvuOMOE5juv/9+efnll2XTpk0yZ86cBo+hj/n444+b53jrrbfk4IMPNkFMb2t38803y+9+9zt59dVXZdWqVXLOOefI1KlT5aGHHpKnnnpKnnvuOZk2bZrkAkEIAJA2yVZ2Kru3Mz1Bdpcc28tcXkhytcTXu3dvue2226Rv377mS6tDxx13nPTs2dNUYP73f/9XHnnkkQb30SGEM2bMkKFDh8rgwYNNVWnevHn112tQueGGG2TMmDGmcqO3LSsrq79+27Ztcs8998jtt98up5xyihxyyCEyc+ZMU/W57777GjyXPv9RRx1lqkIXXXSRvPjii+a++vMxxxwjZ511lixYsEBygWZpAEDapFLZ0cbokw7tYkKT3r7QQlBQEMzk32fIkCENfn7hhRdk0qRJ8sEHH0htba3s2bNHduzYYapA1jRm/X7QQQfV30fP67LO7qqpqTHLZMOHD6+/vlmzZiY0WctjH330kQlTGnDsJ8IPGzZMli9vWAU77LDD6v/cuXNn89y9evVqcNnixYslF6gIAQDSJtXKjt5uzOBuBRmCcrnEp71Alk8//VROO+00Ez502WrJkiUyffr0Ro3UGlrstJfH2QOULvbn0udxe+66ujrJBYIQACCttLIz59Ij5c5zBprv18VoC3w+LPFp8NFQoT0+RxxxhPTp00fWrFkT6THKyspMhej111+vv0yrSvrYFq0mWX1JFq0QabO0LpMVCpbGAABppx/8hVrVSVWul/i0YVkDiTYf//u//3t9A3VUV111ldx6662m/6hfv35mJ9rmzZsbVKEuueQS+elPfyrt27eX7t27mz4lXX7TPqBCQRACAKCIguDAgQNNaJk8ebJpdv7Od75j+oXGjRsX6XGuueYa0yc0fvx4swvtBz/4gZxxxhmmf8iiQUmrT9///vdly5YtpodIt8q3a1c4IbgkkakFwSKhTWZaItT/8DrrAABQfLSR+JNPPpEDDzzQzMNB4f93C/v5TY8QAACILYIQAACILYIQAACILYIQAACILXaNAQBC06MiCnnyM+BEEAIAhKKHh9rP0dLBgTozByhkLI0BAPL2MFEg0whCABBDGmBmv7U6dJBJ9lR5IN+xNAYAMZPMEleuDhNFsJEjR8qgQYNk6tSpGXn8CRMmmKM1nnjiCSlGVIQAIEaSXeLKh8NEkZ9uvvlmE8TS6YEHHpDy8nLJBipCABAjfktcQaEm14eJFhQ9verTl0V6Hi1SUpLrVwMfVIQAIEZSXeLS8DNmcDdCUJCVL4g8eJrIynlZebo9e/bI5Zdfbs7W6tChg/zyl78U6yjRP//5z+Yw1LZt20qXLl3k/PPPl/Xr1ze4/7Jly+S0004zZ3Lp7Y455hj56KOPXJ/rjTfekI4dO5pDXbVy86tf/UreeecdKSkpMV96mdLltP/6r/8yt9XHPf74483tLPrn4447zjyfXj9kyBB58803ZeHChXLhhReaM8Ksx9SqU6YQhAAgRljiypL3n2j4PcMefPBBadasmSxevFh++9vfmtPn//CHP5jrdu/eLb/+9a9N8NA+n08//dT0/Vg+//xzc0J9ixYtZP78+bJkyRJz0ryGKye9/oQTTpBbbrlFrrvuOhk7dqw5pf7QQw81J9Xrl16mzj77bBO4nnnmGfOYgwcPllGjRsmmTZvM9RdccIF069bNBCu9/vrrr5d99tlHjjzySNPvpOHIesxrr702Y+8dS2MAEDPJLnExTNFHXZ3Im/eJ7Nj8zc/v//3b7+16fPPnluUiQy8SaZL+GkRFRYXcddddpnrSt29fee+998zPF198sQk1ll69esndd98thx9+uGzdulXatGkj06dPN5Wkhx9+2AQR1adPn0bPMWfOHBk3bpwJWFbYadWqlXkMDWFabbK8/PLLJpRpENKApaZMmWKC2GOPPSY//OEPpbq6Wn76059Kv379zPW9e/euv7++Hv272B8zUwhCABBDGmSihBmGKQbYvU1kwS0iX2vTeYlIyb/Czq5tIvNv0aYhkVbtRAaeK9Kibdqf/ogjjjDBwTJixAi54447ZO/evfL222+bpSWtCH311VdSp6FNxASRQw45xFyvS2FWCHLz+uuvy5NPPmlCzOmnnx74evS5NGjtt99+DS7/+uuv65fcJk6caJbOdOlu9OjRpoJ00EEHSbaxNAYA8MUwxRA03PzoJZGK4d/8nNjb8Lte/uOXMxKC/OzYsUNOOukks8z017/+1SxDaWVH7dq1q76qE0QDilZu7r//frPUFkRD0P77729Clv2rqqrKVIGUhjPtTTr11FPNkpuGMuu1ZRNBCADgi2GKIZVXiIx/UmQfR7DQnyc8JVLWLWNPrRUbu9dee80sNX3wwQfy5Zdfyq233mqqPhpmnI3Shx12mLz00ku+AUcbsDWsrFy5Us4555wGt23evLmpPNlpP9DatWvNktnBBx/c4Esfy6JLcFdffbU899xzMmbMGPnjH//o+ZiZQhACAPhimGIEny8R2b294WX6s16eQbrMpUtNWnH529/+JtOmTZOrrrpKunfvbkKF/vzxxx/LP/7xD9M4bXf55ZdLbW2tnHvuuWbX1ooVK8xylT6WXadOnUwY0nB13nnn1TdT9+zZUz755BNT8dm4caPs3LnTLHXp8pwuo2nI0QbtV199VX7+85+b59AlMn1e3SH22WefySuvvGKqVf37969/TK0qzZs3zzzm9u2O9zSNCEIAgMg7zdSzy9bm5PXktQ+f+eZ7v9NErlwq0vfUb36uejqjT6tNzBouhg0bJpdddpkJQdqQrFvXdTv7o48+apaetDKkTct2++23nwk4GjyOPfZYs4195syZrj1D2ryst9VmbN31pVWbM888U04++WSzFV6fT4OY9is9/fTTZjeaboXXyo8GLQ09nTt3lqZNm5pKlb5uvU6rTKeccorZiq9059iPf/xj05Stj3nbbbdl7L0rSViDBuBKU7J2r+s8A11jBYA40n6gM37/aqPL51x6ZFHsINNeGq1qHHjggdKyZcvkH6j6NZHNq0QGnPXNIEX9iH3vsW+Wzbofkc6XDPH/7xb285tdYwBQ4LKxrT2VidSxomHHHng0DB12di5fEQIQhACggCW7rT1qeKJPCMWKHiEAiNm2dg1Pusw18ZF3zHf9OQgTqVGsCi4I6QRM7SbXtcDhw4ebyZVeZs+ebc5X0RNsW7dubU7H1U54AIjrtvZUZgJppUl7gu48Z6D5fh0DFVEECioIzZo1y2wPvOmmm+Stt96SgQMHmkFRzpkIlvbt25uteosWLZJ3333XdK7r17PPPpv11w4A6ZbMclWqM4GK/dBV9g/F779XQQUhPUROz03RMKPbAGfMmCH77ruvmXTpZuTIkXLGGWeYuQQ6FVO3E+rgKD0DBQAKndty1fH9Ovreh14fd9ZW8UzOq0H6Wf+9/I4HKZpmaR0FrqfT3nDDDfWXNWnSxAxt0opPmNSosw90QNTkyZM9b6eDoPTLvv0OAPKRLmf16dxWJp85wMz0mf/Bhvovr6ZpKzzZl8fo9REz10bbKKwVBv0f2fazu5Bf9DNdQ5D+99L/bvrfr+iDkE6W1MFNOojJTn/WKZdedH7AAQccYMKNvlG///3v5YQTTvC8/aRJk+oHOgFAoewWc9Lr9IR5t4CT7Onzxc466dyr3QL5R0NQqifUF0wQSlbbtm3N2G9rVLf2GPXq1cssm7nRipPexl4RqqioyOIrBgB/bg3PUWf8RD19Pg60AqQHhepREmEOFkVu6XJYKpWgggtCekib/oXXrVvX4HL92S8N6vKZHvKmdNfY8uXLTdXHKwi1aNHCfAFAvgrb2Bym7ycbwxgLjX7WpOMDFoWhYJql9dA4Pf9EqzqWuro687Me7BaW3sfeAwQAhSZMwAnT95PMPCGg2BRMRUjpktX48ePNbCA9WG7q1Kmybds2s4tM6eFt2g+kFR+l3/W2umNMw48eAKdzhO65554c/00AIHkacHR3mDZFO50/rELOHloRGIK85gl59RUBxaqggpCeQrthwwa58cYbZe3atWapa+7cufUN1NXV1WYpzKIh6dJLL5XVq1dLq1atpF+/fvKXv/zFPA4AFLIrju/tGoTChCDF2WHANzh9PgCnzwMolJ1juhwWdtpzsZ8mD9Ry+jwAFI5kmpZT2QbPPCHgG1SEAlARApDtyo72/+jSVzZCCbvGEPfPb4JQAIIQgEzyWqJSXtOhAaTv87tgts8DQNxmAoU9Fd6it5391upI9wHijh4hAMjjmUBhd3E5l9eoJgHhUBECgDyYCZTqdGi3mUBUhoBgBCEAyDFtjHYzprJryjOBAPgjCAFAjllb2Z0h6M6xlaHu71U1ClNNAuKOHiEAyAPMBAJyg+3zAdg+D6BQMBMI+BaTpQGgiEOM2+31e5QARHACCEIAkHNRt76nY6s82+2Bb9AsDQA5FHXrezq2yrPdHvgWQQgAcijq1vd0bJVnuz3wLYIQAORQ1K3v6dgqz3Z74FsEIQDIsxlC6k+LPg19+6hb5dPxGECxYPt8ALbPA8jVCfRnVHaVuzyGKqZjxxe7xlDM2D4PAAXCqzdnztI1Mm5ET9eQEnWrvJt0PAZQ6FgaA4Asm/VGtfxs9rvme1BvDg3MQGZREQKALDp9+svy9qoa8+eHFq+Svy2ulicuO9osg2kFyElDEktYQOYQhAAgS7QCZIUgi/6sl1u9QPYwpA3Mzy5bG2nwIaEJiIYgBABZoAHliaWfu173zqrNMvbw7iYMaU+QFWSUs4laQ5EezuoWcpgWDURHjxAApBhwZr+12ncqswYUDTSLPt7kev3AivKUBx8yLRpIDhUhAEhSmAqMW0Cxq6woM9Ugt8fTviE3bs3VfqGJJTLAG0EIAJLgVYGxlq2sXp3PvnQPKCN6tZfTKw+oD0Fuj6f9Qs4maq/Bh0yLBpJDEAKAJPhVYJwNzm7sIcjv8Y7p3bFB35BXdceaFm1/XqZFA8EIQgCQBK9Ky+69dYEhSF33+Hsm3FhLaX4VnbCDD/WxtCLFrjEgPJqlASAiXca6e96KRpdrBWbN5q9d7zN2aLdGl9mbmdN1/pfefszgboQgICQqQgAQgbOh2W5t7Q7XoYiqS1nLwGZmKjpA9lERAoCQgnaAeYUgreyM7NvJ9TrnkhgVHSC7CEIAEFIy534N6V4u153SP21LXwDSi6UxAAgpma3oS6o3m0qSBp6wS18ckwFkD0EIAEJy26Jur+5Urdsi8z/Y4NsHFLQDjGMygOwiCAFABPaqjm6V36dpk/rKjVZy3IJQ2EpS0JBGAOlHEAKAiLyqOl4VIx2waJ82bV/ysl/GMRlA9hGEACACDS4Lq9abP+tOMLdA46TBaJ1ja73VOJ3s2WIA0qMkkUgk0vRYRam2tlbKysqkpqZGSktLc/1yAOTZDCG3QJMKt7PFdNcZgMx8flMRAoAUZgilKwBFPVsMQHoQhAAgQzOELCP7dJCFH24MddsoZ4sBSB1BCABCiNqnc2yfDvIfgw6Ql1ZscJ04rUte2pfAafFAbhGEACAE3fkVxYsfbpTvDtjfNQRNPnOAjD28u/kzZ4sBuUUQAoAUzxjz8s6qza6X6+whC8tgQG4RhAAgQ/1B7Vo3D1xms7bdO4czAsgOghAABEh2js/0BR/JoIoyeXtVTf1lYyq71gcdt+34imM1gOzh9HkAyCANQdo4bZm9dI0JQH7LbXq5Xg8g8whCAJCmpbETD+nk2TjtDDrWdOpUn1NpaJr91mrCE5AElsYAIE1LY/33L5Xn3vcPOGF99uU2E2yC+oU4rR5IDRUhAAigYcTrHDA7PXvMOnLD3hPkxe8xfztvpZzx+1dN0Il6Wj2VISA8ghAAhHDX2Erf4KLTo92qN51KWzYKR1bQ0RlD+ph3njPQzBa6atTBjW6nwWbWG9Wuz+l3Wj2AcAhCABAhDM259Eg5vl/HRtfpERpXz1rqWqHRoYl6P7ego2FIl950wGKP/dyX4K57/D3XypDXkl3YpTx6iwCCEABEolWf+ycMMxUcJ7cp0laFRu/nFXSsCo5fgHFb8tLHdFabwh7TocFKl94mPvJO4BIcUMxolgaAJKzZ/HXo21oBJ6iCYwUbr231utPMeRyHNkZHPabDq7dIH4dhjogbKkIAEJFWT7THx42zj8heoQlTwdFg41ZtUvqcbhUcvf+Ywd1Chxh6i4BvURECgADWMRhW5carYqOh5rpT+su4ET09KzRhKjjaL6TX+51vlkoFJ9XeIqCYEIQAIMKcnuP6Nm6UVtoIffUJfUMdpBrmoFV7YNKZQm4VKKv3KCq3JbiwvUVAsSEIAYAH3bburMosqNrgOUMonZUnKyzpl17uFoRSqeAk01sEFKOC6xGaPn269OzZU1q2bCnDhw+XxYsXe9525syZcswxx0i7du3M1+jRo31vDwD2SpBuW3fj3D4fpZritWXdbxdXKrvD/J4/am8RUIxKEolEQgrErFmzZNy4cTJjxgwTgqZOnSqPPvqoVFVVSadOjf/X2AUXXCBHHXWUHHnkkSY4TZ48WebMmSPLli2TAw44INRz1tbWSllZmdTU1EhpaWkG/lYA8o2GBA0jXnQmkPKqpjgrO0HHYXg9nz6P/f5ejxv2eo7jQJzUhvz8LqggpOHn8MMPl9/97nfm57q6OqmoqJArrrhCrr/++sD7792711SG9P4aqNzs3LnTfNnfSH0OghAQH1ox0cqMX0O0l2TCjoYXt+fTidNasQkjKOSEDVtA3IJQwSyN7dq1S5YsWWKWtyxNmjQxPy9atCjUY2zfvl12794t7du397zNpEmTzBtnfWkIAhAvXr03lx13kPTu3NZzErPf2V/T5q9wvY99N1rY1xHlee3P4/X8UTCNGsWmYILQxo0bTUWnc+fODS7Xn9euXRvqMa677jrp2rVrgzDldMMNN5j0aH2tWrUq5dcOoPA4d4d1b99Kpi/4yHMSswaDR990/31xz8KVMv8D9yZraxkrlR4gHbQYdHk6tswzjRrFKDa7xm699VZ5+OGHZeHChaZfyEuLFi3MF4B4ci4xaQCq3vS1+fKa4+O8j9Nz77sHlSE9yusrMmF2cQX1AGVyy3ymplGn8ncCYhWEOnToIE2bNpV169Y1uFx/7tKli+99p0yZYoLQCy+8IIcddliGXymAQuX2Ye8MQHZWiPELQX6WfLbZfNl7erzCgF8PkG7dd9te79zSn8qWeb+ltWQDDM3byAcFszTWvHlzGTJkiMybN6/+Mm2W1p9HjBjheb/bbrtNfv3rX8vcuXNl6NChWXq1AApR1H4ZDRNe9xnRy7sXMeyhqmF7gKIsrSW7ZT7d06jD9DUB2VAwFSE1ceJEGT9+vAk0w4YNM9vnt23bJhdeeKG5XneC6bZ4bXhWul3+xhtvlIceesjMHrJ6idq0aWO+ACDZD3UNGur1j790vX5wj3ay6ONNkZ7fq7oSphqT6QGJ6Z5GnYkKE1D0QWjs2LGyYcMGE2401AwaNMhUeqwG6urqarOTzHLPPfeY3WZnnXVWg8e56aab5Oabb8766weQ34JOf7eGKV5xfG95dtla31lDzZqUBD5WqlUX5+Vhju5IRTrDFuedIV8U1ByhXGCgIhA/ujyjO67c+m6sYYp+Ich+9pjfY6Uynyjo9oUg3/9ONHLH4/O7oCpCAJAN+qGX6twdq1HZqtLs3FPX6EP/xAjVlWI8Gyyf/040cscHQQgA0rx0Y/XO2CsKXh/6UT78M730lQv5+HfK1KgA5CeCEABEbA7WD0qdAWRtfVdjKrtKRft9ZW3NDmnerIlcPWupzFm6psGAxitH9Q59ZIZiaSY3aOSOF4IQAHhwq+I4A47l443bZLbL5ZYFVRvMl9sSi1vgCXN2GCEpM2jkjheapQPQLA3AMv7+1+XFDzem/Dj2g07dAo+GL78DUuPQv5LroJfvjdwIRrM0AKSRVoLSEYLsSyxevSgtmjWJNMm62PpX8iHo5XMjN9KLIAQAATSwuC2HJctaYknnJGvdol8MH9r51Kicj43ciPERGwCQK2ECy6CKslCPZZ/G7NdzckZlV9f77d5b53p7nVNUDKfCpzq2AIiKihAABPAKLD3at5LTKw8wM4Ospa5JTy+XxZ82Pi/r/GEVcvbQigYVBq9J1tbwRQ1Dx/TuWF/lCTrlvhiWymhURrZREQKAAG6Hmup2+Rf/+3gzPdoKHHrshlsIUh3btmjws4am2W+tNoFFm6B1ErWTLsdZIchtyUiNHdqtqCooUQ6QBdKBihAAJKFTacv6P1vHaPhVa7TKo1/Wh7yzGbhP57a+jdVewaZL2bevo1gqKDQqI5sIQgCQZAOvfkhrFWj+BxtCP5ZbWNLLJp85wDfQeAUbXZZzO76j0MNDPjUq53orPzKLIAQAAbyqMdc9/l7anmOfpk08J1kHTbrWr2QrKHzI5/9WfmQWQQgAAmRjmUl3gwUtCfldn0wFhQ/5wtnKj8yhWRoAAuiHnnM7ux9tfNalruP7dWx03dAe5Z4VIeu59Dwyrw/aoOtT/ZDXy/OB1Uye7OtJ9f6KrfzxQEUIAELQbexhhirqbjLdSaYfwG5LZ2/aDmq185oPlKnlrXw+WDTVSlW6Kl1s5Y8HghAAhPDSinAN0Xrwqu4o89oF5mXN5q+TCjXJfuhn+kM+2d4jv+UoFfSY6VzO8uvLQvEgCAFACkdsjO7fSV5Yvr7BZfrBedlxB0V6jrU1OyKHmlQ+9DP5IZ9KRcarUnX3vBWyoGpD4GOmu9LFVv7iRxACgAB+PSHbdu5xvfyNTzZFeo5Zb65udFlQqInyoe9WobF/yOvSnPYp6e1S+bBPtSLjVZGyhyC/x8xEpSuftvIj/WiWBoAAfh+ig3u4f0B6TZhOZwgL+6GvFRo9g8ztLDL9gP9w3RbTz5SOs8pSbTB2myzt1nTu9ZhRJ1Ono6kahY2KEAAE8DoTrLKiTPbWJXIWwvR16WGvb6+qqb9Mf7Z/6AdVaNK9RTwdFRnncpRyG1rp9Zhhl7MYHwBFRQgAQtAPSD0TTM/2OvGQTmZ7/I3/fmjgIag999s36ecM6tnREGMPQUp/tlc3gio06d4inq6zwuxjApJ5zKAxA/k+PgDZQ0UIAJLsFdEllSCffrnd87renVrLivXbGny4nxihMTdMj1BQhSZMBSfqDrBMNBin+zHzeXwAsosgBABJClru6VzaQtbV7vS8XkOQVpa0Sdn+4R5UBbLCQJgQE7Q7LOj6ZJePMtFgnM7HZEYQLCWJRCKzC9wFrra2VsrKyqSmpkZKS0tz/XIA5BlnUFD9928rE47saWYD6YnzfoZ0L5fHLz0qqedyO8leQ8x1LkElqKrjdr1eps3TTrpEaPUXFfK2cuf76fXeobg/vwlCAQhCAPz4hQXldp3bbYOCRNDzZCKQ6NKf7iRzuvOcgWanWToajZ1hKtvhqtDDHFL//GZpDAAy1GuiYSHsY6TSD5SOs8eiLBPpzKF07DRzVmScO+CysYuLGUFg1xgApMDrjLCPNmwN3FEWpS8lEz0tQTN0vHZrWQfEprLTzG3XlnMHHLu4kA1UhAAgBV6hYIVHNahflzbywdqtkbeWp/tIjLBN0G67tbzCSZRQFjY0sYsLmUYQAoAUeH34P/d+w/PHLJPGHGa+L6z65vqRfTtlfAu5Wx9OlKUt5/KRWygbU9m1PtykcpRGsrezo+8HURCEACBLrAqOvRqju8qc1Ri/D/KoPS3Oyo8eVzHggLKUqy/2UPbSig0ye+ka8xW2t8ctTDl7hJKpeDEtGlERhAAgBUFLPFeNOlh67Nc6dDXm6llLG5x0n8oHudtz6VEVbsdVJFN9sUKKc2dZ2MZpr2W3ZKs56T4uBPFAEAKADDRLW7qWtwoVnHSp7H+ffF+WVG9O2wd5lOZlXdpK53OErS65LbslG1qYFo1kEIQAIAPN0tZSj57qbq/uaKhx4zd48dE3V0WaOB10vIabo3u7n/AeRJfF3Hz25TbzmrIZQLI9LZpepOJAEAKAFHh9yF523EEyfcFHrtUdZy9MkIcWrzJf1jKZfgBrBWnZ5zWyZeceqdm+Wz5Y9+1ONOt2bn04Uf8efvR12JfxnMHOrf8pk6Ei3Tvr/NCLVDwIQgCQAq8P32ZNSlxv//Di6kghyE6fY/kXtfLihxsDb2ctp+mH87raHZ6BJRVhlt7CLO2lGirsISoTB766PR+9SMWDIAQAKXL78L3r+SrX2361fVdKzxUUgpx9MX5VG7fbRxG2iuT32KmGCq8QlclAQi9ScWGyNACkgX4A2o+68JoPNKp/58DH0i3ueip9KqyQErZhWm8fNGk6zORpv9cSNVQE8QpRmZ5Gzcn1xYWKEABkccls7OHd5bWPv/St0lxxfG9z/2eXrfXc6u7H3hcT5sNZg9efFn3qu23fq4fHWQ3T1xylRyeVUJGrykw2e5GQeQQhAMgQr36VY3p39A1C1ge53jdqENK5RVqN0sqO9ZxBgwvdnsO+POXXw+MMSNbrDtujk0qoyGVlJhu9SMgOghAAZJDbXJygD2q93hk+wqretF3O+P2rjUKL9aGtc4/sW/rDVFy8enic1R9rPID1PGGP3Eg2VOS6MsPJ9cWhJJFIJHL9IvJZbW2tlJWVSU1NjZSWlub65QAoAlpFuXveCllQtcF1sKHOJpr15uq0Pd+cS4+s/8DWSpFzErTf/TScuN1eK09+s4/sMr21nHk+SOXzm4oQAGSRX6Wnd6fW9ed1pZO9ZybsslGyk6bdZHprOZUZpIJdYwCQJW67nOxWrA9/JEYU9vATdqeXNWna7fa6/OS1Ky4dx31kQtQdcYgPKkIAkCWZDgMj+3SQhSHmDNl7cj7asLXRBGznGWpePTxhp1aHrUSFWeJKZhmMKdDwQxACgCxJ124mrcisdUyL1qUsreK4BSHndnJ7mNDZR3vrEo0CjTZU6zZ/3eFm3xFmF7R13v56g0JLmLASdBu3kMQUaAQhCAFAlugH73F9O7o2SavOpS1kXe1Oz/ufP6xCzh5aUf8BfkSv/eSdVZtlYEW5mU/ktexjD2BXz1rqOi9Ib+PcTaa3s27rVUWxByT71nmtNH21bVf9a/MTJqwE3cYrJDEFGkEIQgCQRVeO6u0ZhPxCkGrXunn9h7f9g18PZNUPdv3g99tO7gxBSm+rIUh3qvlxCyZuS1TWIEi31+YlTFgJmkDtFZKYAo0gBCEAyKIoJ8I7aYVFzXqj2vWDv0WzJubD39nPY51W7zXEUStBZ1R2DXx+K5gEDViMuhQVJqz43cYvJOnSH1Og4YcgBABZZu+t+ezLbaHn8WhFyG/7vT6OfumRGdbjO4/O8KK30TDkd1t9rV4hzAo6ySxF6eXO53aGlWSGJ1rhiSnQ8EMQAoAcsHprtIISNgg1a1LiusPLSY/MSOaMMm2M3rRtl+cJ936v0wo6ySxFabizh6Ah3cvlxEO7NLqdV6AJE5KYNQQvBCEAKNClsnTTLfNeISiIFXSiVm7cltKWVG82x4S4NWh7BRqqPshqEPqf//kfufbaa2XfffdtcPnXX38tt99+u9x4441JvyAAiBv9ENf+Hr+Ki4aJruWtMvYarKM9kuEMOlFCid9sJWvJzbpd0GNR9UEykvpX/6tf/Uq2bt3a6PLt27eb6wAA0Q9LdaNneumZXzo3KOxhqX60f8iNziBKdidVT5f7WctkGmD8pjkHPaeeyabVIT3vTL/rMhqQ84qQntNaUlLS6PJ33nlH2rdvn47XBQCxoUHBrUlZqzRXn9DXddt7FNawRSt0uPUPWddpULJfr9UePZnbb+lOA5pzi3zYac5BS4POUQMMQ0ROK0Lt2rUzQUdDUJ8+fcyfrS894fWEE06Qc845RzJp+vTp0rNnT2nZsqUMHz5cFi9e7HnbZcuWyZlnnmlur6956tSpGX1tAJAMr+UhDS9eIUn179LWc/Di5DMHyJ3nDDTVpDvHVppt5NbSkdvZYTr7RysuVgjSwY963+tO6W8CjP5Zq1NeNKBYlR+vLfRelSHr8Z3VKq/qVa7PLUOMK0IaJLQa9IMf/MAsgWn4sTRv3twEjhEjRkimzJo1SyZOnCgzZswwIUhfz0knnSRVVVXSqVMn16W6Xr16ydlnny1XX311xl4XAKTCa3nopRX+O78mHNXTdblMpzlrv49XT42zh0dpCHJWYnT4o12P/VrLkB7lsuSzzb47x4K20LsNY9Tv908Y1uC6oOoVkPUgNH78ePP9wAMPlCOPPFL22WcfyaY777xTLr74YrnwwgvNzxqInnrqKbn//vvl+uuvb3T7ww8/3Hwpt+sBIB+4zdFR+rMeo+G13NWnc9tGR3YMqihrEI70ce8aW2n+7AwgVgjRU9mjDFD0YgUUvy30QUtmzoZnhiEib4JQbW1t/Z8rKyvNDjH9clNaWirptmvXLlmyZInccMMN9Zc1adJERo8eLYsWLUrb8+zcudN8uf29ASBTurdvuAvXopUdZxjQENSptGWDKo41RNHtvDDVubSlawDRcKSDEr2Ci9sylxt9/qC5Pirq1Gm2xSNvglB5eblrg7SbvXv3Srpt3LjRPG7nzp0bXK4/f/DBB2l7nkmTJrHzDUBW+VVcrBPig5aydAlpwAHftivYufUY6fMt/6LWd27QtPkrPB/T6YrjewcGmKDKUzq3xXudhQYkHYQWLFhQ/+dPP/3ULDVNmDChvidIqzIPPvigCRKFTCtO2odkrwhVVFTk9DUBKF5+FReriqIBwgpE1s9uXl4ZbRhi0PDEsBOqwy5X6cDGKJcnK+yONSBSEDr22GMbDFTUfp3zzjuv/rLvfe97MmDAALn33nvre4nSqUOHDtK0aVNZt25dg8v15y5dGo9iT1aLFi3MFwBkg1djse7Q2rmnrkHlRz/Qtcry+sdfut7Hq4k509yOw3ALI9rT5CaZQY5eFZ9kDn1FvCU1UFGrP0OHDm10uV7mt509FborbciQITJv3rz6y+rq6szPmdypBgCZ5NVYvKcu4fqBrsFo1pvuFSG/io1zy3xUGsx0W36YMOcVRtJVEdKQ5TVk0W/HGpC2IKRLRTNnzmx0+R/+8IeMLiPpkpU+ry7BLV++XC655BLZtm1b/S6ycePGNWim1gbrt99+23zpnz///HPz55Urwx1wCACZ5jbXR4U5XDWs5s2amIqIzhZK1si+neTsoRWhwpxX6LAav520wTvsxOigGUXJHPqKeEtqsrTO7xkzZow888wzZp6P0krQihUr5PHHH5dMGTt2rGzYsMGcZbZ27VoZNGiQzJ07t76Burq62uwks6xZs8bscLNMmTLFfOky38KFCzP2OgEgCu1f0Q/qVI7Q0KpP1botrj09eoaZfnkNKAzz2Nayktd2dvtSlVfo0N1pGsjc/q5hl6+CZhRFPfQVKEnohMQIdu/eLSeffLLcdNNN8uyzz5rKjOrfv7/8+Mc/LrrGYm2W1sGRNTU1GRkLAABWA7Qu9SSzZKXVGv2gn/VGdVrOI7PoUphWgZwhwjn0UM8Ds88ysqo+Xk3gztlHFp2EbTWEe9Hndu6YUzqZ2tkrxK6xeKsN+fkduSKkQxTfffdd2X///eWWW25J9XUCAJJcutFKh55FZlmz2X22W7LcQpCyKi9e2/71Mg0mWuFZWLXeVKPs3EKQ33vgDDVhKj6cRI+MLo3953/+p9x3331y6623JnN3AEDEw0ct2ufjdnxG2OnPXo7t06HRdno9f8wrTAQNWtQApEdyeHE73NXtuby2wjNkETkNQnv27DHHWrzwwgtmJ1fr1g3/sevWegBANM4PeA0izsrH2MO7N7pf2OnPXnp3au06U8ivbydoF5azCuQ2gFG//MJM0FZ4AhByFoT+3//7fzJ48GDz5w8//LDBdWGnTwMAGrN/wOt3r8qHfblIqy+pWLHeO9R4HZSayhBEa1BkUEUnqDEayFkQsk+ZBgBkjlvlw7lcNKR7eajH0gNZ315VE+n5vQ5K9RqOeOIhneS599e7NnXrUplV6XIOinSb/MxWeOTtHCEAQG64LRctqfaeKK0HtOpuLG1efuKyo+XMwQeEfi6/g1K9KkLVX253vVx3tlk7wvzmAAXNWGIrPPKiIgQAyA2v5SJn87H+rD04zobqx9/6PPA5hvQol6MP7mDCi9fz6Q61Myq7NjrQ9YN1Wxvd1h5evB5Pt+D/8cJhjS6nMRqZRhACgALitSxkNR9b/ULWbKGoDdX9OrcxZ5bplzY8624yN3pd9/atQs84Cnr9uqVe5yC57YijMRqZxNIYABQQv+Ui7b2xpkjbz+DSEPTom6tCPb6zouN3Qn31Jv+5RdoT5Dbfx2vCtQ6DdDs/DMgkKkIAUGDclou8tpqvq93RaPkqW5zVH2vnmb52t6NA0nFivHPqNUtqCEIQAoAC5Fwu8uq98QtByewiC8vZ1OzceRbmuaNuk/cbKum1M80Nx3PEC0EIAIpAlC3l9jPE9EPf7RiMMDq2bS4btuyq/7miXUs5pndHGVhR3mDwo1u1SkOQ2zTrZP9OQT1QYStMXpOsUbzoEQKAIu0d0q3zQWeI6Xc9r8x5Xz/a46NHfdhDkFr11Q55aPEq0+ujgULDiR4m6zXw0S8ERd0mHzTpOsxtvJYX3bb2o3hQEQKAIu4d6lTaMvCAUuu+ep8wp9frMMWgA171OZM59sPrxPsgYapHQbdhknU8EYQAoIh7h6LM4dGt62Gkcq5ZkGRCUJhDa8NUmJhkHU8EIQAocs5hhl6BINcf+LrklkrlxRn6VJSmZ7cwxSTr4leSSCQSuX4R+ay2tlbKysqkpqZGSktLc/1yACCyKA3AfjuvMk2PAQkTOjK9qyuZx2enWeF+fhOEAhCEABQy/YC2H3AaJnToffTIC532HMVlxx0kB3VsIy+t2BB5dpFWXq7zCGf2kKFDI7O1qytsuGGnWWF/frM0BgBFLEoDsP2D/8pRveWwbmXmcj0m40+LPg0MN9MXfOR6/pgX3dV2dO+ODYKGM3wEVaiSHbwYJGy48dpplonXhMwgCAFAEQvbAOwXON5etdl1q/vofh3lBceE6KAQpFWjr7btcp015KxChQ1V9lCXjiWqKOGGnWaFjyAEAEXMazeVLjHZw4Nf1cVr3s+2XXsjvRadJq1VI6Xzhl77+EszgNFrKS1sZckKdelaoooSbthpVvgYqAgARU4rGU72QYFhhhG6WfTxJtfLtZJjN6RHuRnA6DxSQ4OOHrKayllo2luk7nq+Km3DEKOEG79DcFEYqAgBQJELqnCku3rRubRlg2WtJZ9tlg1bdib1WM7lMQ0ZJ9q2yGtly60ZPJUlqqjb6KPMakL+IQgBQJELqnAEDSN09vfospYft8ep3uQ/idpvJ9m4ET3rj+nQxm1raGTQkp5KNuRFDTfOQZYoHAQhAChyYSoc9g/+z77c5noIq26NP7B/68AglI7Bilcc37v+9dm3zOvrsnp/gpb0Ul2iItzEA0EIAGIgTIXDXmlxC0K799aFrh5F5baVPmgHl1e156pRB9dXjoAgBCEAiAl7hcNvm7lX2NEDWd2qMB3bNm90Er1T9/atPJfHtA/ozrGVkfubxgzu5lrpuvqEvr6vBbAjCAFAzITZZu51Gr1bJSgoBKnfnvtN0NFeH2e1SZuhtQ/IrYIT1N9EozJSxfZ5AIgRr6Um+zZz/fPst1bLms3RG5zd6Pb5D9dt8e3p8bouzPZ0/bNWh5S+7mS2zCO+qAgBQIxYu6/cLg9zpEUydPu8fiW7uytM1YfzvpAsghAAwAizHV2rMXpSdzrDUpjdXX47uDjvC6kgCAFAjOhuKrcdYXp5mAnTJ/4rXLRo1sT1caIsl10wvEda+no47wupoEcIAGLEr+cmzPBBK3RocEqFLpXpvKJkWX1M+t3rdet2fyBISSKR0ConPNTW1kpZWZnU1NRIaWlprl8OAKSF1/b5HzywWOY7TpS3m3PpkfW3T1c/0XF9O8qVo74doBjErR9Iub0WeoXiqzbk5zdBKABBCEDcApLf2V3OYGEFKq9p1FGECS1er08D2gvL19Wfbu+8jiWy+KkN+fnN0hgAwHfpzG+rvbV13WupTM8nC8t6bPuyV9h+oGnzV7iGIL/7AIpmaQBAA1qVWVe7o8Gp715NyBpWrC35bifF6/lkUdw9b4UsqNrgWSXy6gfyW86LcvCqfclQMaix+BGEAACNwoBXCFJWSHDrEdIwdIztzLCoww3tIchtG7zb8R96SKtXEIpy8KpfzxO9RsWLpTEAQOilJCtYzHqj2jU0aICygpIubymvpTY9f8xOA02Y16OBRPt+7jxnoPmuJ9W7mXzmALkuZHgJmqHkXBJE8aAiBAAItZSkwWLs4d0Dd4td+belsuqrb4/n0CBkQonj3DI9hFUv36dpk/rndKvs6DZ4DVX2JSrngEW3w1f1tYYVpo+IuUTFiSAEAGjAbfnJChZhpk/bQ5DS21816mDX22oIss4JU87nHVRR1iBAuS1R6Wvq07mtCVXW+WjO5m2vcQFR+oii9BqhcBCEAAChz/fyOqssWc5wYX9erQQ5q0jOniGv6pRu5bdCU5hzyNzCX7K9RigsBCEAQOTzvaLSCs3OPXWNqkxuj289r9Vj5LVEFaavR4NW2HPInOHPei52jRU3ghAAIOWzyux0OevtVTWNAo9+2as9uiymYcYrZHgtRVmXh6lOvbNqc6R+H2f4IwAVP4IQACA0vyUk3fWlO7isao1bNUX//OyytY22v1v3C3ouK1SFPd5jYEW5PLR4VaPL6feBhSM2AnDEBgA0ptvnnf07YY6z8DvCw+v4Dqt6ZJ9N5HcMiD006fZ5Z2iyLkdxC/v5TUUIABCZBpNktpj7bVO39+64NThbu8vCbHXXwY4aduw7yuxhKpOCdqghvxCEAACRBfXvRL2f/YgNPYner8E5zLKWNRnbPiHbHqYyJcwONeQXJksDANJyOGuYLeZ6vVZr/I7Y8GqCtipBQQfDWpzHhGR6OrTbLjYmUuc/KkIAgLTOGgqqmPidY+bHXgmyP/frH38ps95032qfzenQXkt2TKTObwQhAEBWZg2FmUptbdF/8cMNDbbg65Z8t11l1lJZ2CCUyd1iyS4XIrdYGgMAZJQGIB2OGGbujy6vKXsIsn72WmLyWqZzLsFlejp0mOVC671guSx/UBECAGRMmHk/Y4d2ky5lLU0lKMxE6TDLdDqryL4EZ+0iy+VyIY3U+YkgBADIiDBLYW4zfbyWktxOoXdbKnN7Xg1F40b0zEqvjttyoVcjtdtRH8gughAAIKvNw3oSfY/9WvsGmrCn0LvN7MlE03Kqs4FopM5fBKFc0YHen74s0vNokZKSXL8aAEg7r8qOtQTmJ8wp9OtqdzSaE6T3S7Vp2Rl60rGkRSN1/iq4Zunp06dLz549pWXLljJ8+HBZvHix7+0fffRR6devn7n9gAED5Omnn5a8sPIFkQdPE1k5L9evBADyataQ/f46ANFrirXXnKBUnldDjx7fMfGRd8z3q2ctTctsoFTfC2ROQVWEZs2aJRMnTpQZM2aYEDR16lQ56aSTpKqqSjp16tTo9q+++qqcd955MmnSJDnttNPkoYcektNPP13eeust+bd/+zfJqfef+PZ779G5fS0AkEezhpxVmShVk2nzV8j9E4Yl9bxevUXpWtJK9r1AZhXUoasafg4//HD53e9+Z36uq6uTiooKueKKK+T6669vdPuxY8fKtm3b5Mknn6y/7IgjjpBBgwaZMJXVQ1fr6kTevE9kx+Zvfn7ltyI7t4i0KBU56spvLmtZLjL0IpEmBVeoA4BIy01+PTduS1Efrtsi8z/YEOq5gg5+9aKN2FoJyuRzIHuK7tDVXbt2yZIlS+SGG26ov6xJkyYyevRoWbRoket99HKtINlpBemJJ/5VjXGxc+dO82V/I9Ni9zaRBbeIfK3l1BKRkn+FnV3bRObfok1DIq3aiQw8V6RF2/Q8JwDkAWew0cZn+5wg3dp+19hK391Vemhq2CCUbANy2MoTS1rFpWBKDxs3bpS9e/dK586dG1yuP69du9b1Pnp5lNsrXUbTBGl9acUpLTTc/OglkYrh3/yc2Nvwu17+45cJQQCKiluwcQ5L1OUn7cWxDl11o31Czh6bMR5nlrkFGrdBhs7Lwp5hduKhXQJvg8JRMBWhbNGKk72KpBWhtIWh8gqR8U+KTO4hsnv7t5fv00pkwlMiTfdJz/MAQJ7w2jbupGGoedMm5tBVr3CjjdPOHptOpS0bBC17tcZafntpxYZGu8uU204wex/PZ19uk9/OW+n6d6IiVDwKJgh16NBBmjZtKuvWrWtwuf7cpYt7OtfLo9xetWjRwnxlzOdLGoYgpT/r5d2PyNzzAkAORGl09jov7Ph+HeuDh3NYoVcDst9Ea7fL9TK9v1aerNClQcotCLHlvbgUzNJY8+bNZciQITJv3rfbzbVZWn8eMWKE6330cvvt1fPPP+95+6z48Jlvvvc7TeTKpSJ9T/3m56o82dYPAGnkttzUu1O0IHHF8b0Dn0ODi70SFOZwVyedVWRtm9cgpcd0ONEfVHwKpiKkdMlq/PjxMnToUBk2bJjZPq+7wi688EJz/bhx4+SAAw4wfT7qqquukmOPPVbuuOMOOfXUU+Xhhx+WN998U+69997c/SX6flek8wCRAWd9M0jx3L+KvPfYN8tmAFCE3Ko22hPktTU91eARdjnOj1eQoj+o+BRUENLt8Bs2bJAbb7zRNDzrNvi5c+fWN0RXV1ebnWSWI4880swO+sUvfiE/+9nPpHfv3mbHWE5nCOnyl30JTMPQYWfn7vUAQBY4l7R0l5ie/aUn0rstP+kxHM4J1GGPuQhautJwpXNjkqka0R9UfApqjlAupG2OEACgEbdeHusgVnvw0WUqZ3OzW2+QV4O07jA7undHc1yH1QekvI7w8ML8oMJRdHOEAADFxauXR5ef/JqdlV7nDEbW5fb5RMf07hjqzDANREEVIg1oSrfcMxm6eBCEAAA54dXLo8tlUZet3G6vFSFdfrMmWbsNatSqkurTua0Z2rhm89euS3V6nb5ebaRO5fBV5J+C2TUGACgu2diGboUtr9ClZ5NZh6zq8tjOPXWugxs1KKXj8FU/bkMfkXkEIQBATnidyK5N0ukOW9oz5MZ5bIeGm3W1OxpcNnvpGhOYMrVDze3Ue/0Z2cHSGAAgZ7wGInZs21w2bNlVfzv9+d7vD61vbtbm6aCzx6yt91phcduqP6RHuSz57F8HYdu43dbrudJR1fJbtqMPKfMIQgCAvNpaP+uN6gYhSOnPLyxfJ8u/qG0QSoZ0L5cl1Ztde3rGHt7dt2pzcMc2rkHIy3F9OzY4AiRdwxW9Xh9b9bODpTEAQF55Z5V7OJm+4KNGlRkNQbo7zE4DihWC/Ko2bkd6eB3kqsr3bXgeZLpmz3i9Po7yyA6CEAAgrwysKI90e90ir/N97jxnoPmuM4jstKoyqKIs8HG0inTn2ErPE+idS2bpapb26pWiGpQdLI0BAPKKVnP+trha3l5VE+r2Vm+RV3DQsBLmsXTQotW3pI8ZZsiiffkq7OTrKL1SyDyCEAAg7zxx2dFy+7MfmOUwP2EqJ2F3dtmXoqxQFPY+fsMaw/ILc8gcghAAIC8d1LGN53XH9+toTqUPExzC9Npob5D9saL057Drq7DRIwQAyEteYUR7ee6fMCx0yNDbaXDyo+eQOe/j1SvkrDb57fpC/iMIAQDyklcTsX1HWFhaPQobuqwJz1rR0ebrq0YdLGOHdvO8n1dg03lHyH8sjQEA8lbUJmKvhmUrVLmdSWbvM3L2+uhuM69Ga/v93B5bm631tXAeWX4rSSQS6RqFUJRqa2ulrKxMampqpLS0NNcvBwDgIUzDshWUtFqjDdH2wKTX2Q9V9aIVIj0GxBnKdBCk204zrSrRK5S/n99UhAAABS9sw7LfzqwoPT1uj+G104wJ0fmNHiEAQMFLR8Ny2J1iv5230vVQVCZEFyaCEACg4KUjhGjVxnlch9dEarep0kyILkwsjQEACp5bM3TQlnknrfLYj9HQUHTX2Eq56/kqUwXyqjbZm7OZEF14aJYOQLM0ABQOrdJMm7+iweGsYaY8ezVKa6OzcrtOg5I9OCUzTRq5//xmaQwAUFScJ9SHORzVr8fo2WVrG10+sk+HjB3CiuwiCAEAioZXoLl73grf+/kNRXSbPbTww42Rnh/5iyAEACgaXoFmQdUG32qNV6Nz2MNXg54f+YtmaQBA0bDOFXMujznn+bhNoHZrdI6y1MUOscJEEAIAFBU9V8wtCFnVGr8J1H4DF/3oQbDJnIGG3GNpDABQVPzm+XhNoPaq/ITp+Un2IFjkBypCAICi4zXPx293mFslKKjnh0pQ4aMiBAAoShpsxgzu1iDgRJ1A7VZdsovaTI38w39BAEBsJHMMhlaXtPLjhl1ihY+lMQBArCRzDIYuf+nt7f1FYyq7skusCBCEAACxk8zuMA1Q62p31E+Unr10jXQqbcmxGgWOpTEAAELQnWUcq1F8CEIAAGTw+A7kN4IQAAAZPL4D+Y0gBABAhOM73HDYauEiCAEAEOH4jjDVIq0QzX5rdehKUdTbI33YNQYAQMQ5RPZt9M45RH5nmbmJenukV0kikUik+TGLSm1trZSVlUlNTY2Ulpbm+uUAAPKA2+n11uVn/P7VRrefc+mRrtv1o94e6f/8piIEAECa5hBFPcvM6/YLq9ZHGviI5BGEAABIk6hnmXld/tt5K+v/zFJZZtEsDQBAjs4yCzrUVTG0MbOoCAEAkMOzzOy3/+zLbQ2qQUFLa0gdQQgAgByfZWbdXis/bkGIU+4zh6UxAAAKdGkNqaMiBABAnmy/T2ZpDakhCAEAkEVhBihGXVpD8lgaAwAgi5UgewhS7ArLLYIQAABZ4jdwMQjnkWUGS2MAAGRJ1MGKFs4jyxwqQgAA5PGuMJbTMouKEAAAWRR1V1jU88sQDUEIAIAsi7IrLNnlNITD0hgAAAW6nEYDdeqoCAEAUIDLaTRQpwdBCACAApg4bV9O82qg1rBE31A0BCEAAPJAlAoPDdQx7BHatGmTXHDBBVJaWirl5eVy0UUXydatW33vc++998rIkSPNfUpKSmTz5s1Ze70AAIQVdYs8DdQxDEIagpYtWybPP/+8PPnkk/LPf/5TfvjDH/reZ/v27XLyySfLz372s6y9TgAAMj1xmlPqY7Y0tnz5cpk7d6688cYbMnToUHPZtGnT5Lvf/a5MmTJFunbt6nq/n/zkJ+b7woULQz/Xzp07zZeltrY25dcPAICfZCo8nFIfo4rQokWLzHKYFYLU6NGjpUmTJvL666+n9bkmTZokZWVl9V8VFRVpfXwAANJV4dHrxwzuRggq9orQ2rVrpVOnTg0ua9asmbRv395cl0433HCDTJw4sUFFiDAEAMi0fK3wLPXZyVYMchqErr/+epk8eXLgslg2tWjRwnwBAJDPE6ez4dYYzCrKaRC65pprZMKECb636dWrl3Tp0kXWr1/f4PI9e/aYnWR6HQAASK+lMZlVlNMg1LFjR/MVZMSIEWbr+5IlS2TIkCHmsvnz50tdXZ0MHz48C68UAIDiEHap65OYzCoqiB6h/v37m23wF198scyYMUN2794tl19+uZx77rn1O8Y+//xzGTVqlPzpT3+SYcOGmcu0f0i/Vq5caX5+7733pG3bttK9e3fTXwQAQCFKtm8nylLXgTGZVVQQu8bUX//6V+nXr58JO7pt/uijjzYDEy0ajqqqqszsIIuGpsrKShOg1He+8x3z8z/+8Y+c/B0AAEiVhpkzfv+qTHzkHfNdf87E0MbKmMwqKkkkEolcv4h8prvGdBt9TU2NmVANAECuaGjR8OM059IjAwOKnlKv4cnpznMGmi34xbZrLOznd0EsjQEAgNT6dpJd6qrMs51ssV0aAwAg7lLp23Fb6lLPLkvvPL5CQxACAKBApNq3o1vfnWb49AnFAUtjAADEZAJ1XLbER0EQAgCgwCTbtxOXLfFRsDQGAEBMxGVLfBRUhAAAiJF8Pdw1VwhCAADETLFviY+CpTEAABBbBCEAABBbLI0BABAT6TwuY2mBHr3hRBACACAGopw8n83HyjWWxgAAKHJRT57P1mPlA4IQAABFzm+idC4fKx8QhAAAKHLpnCh9YJFNpyYIAQBQ5NI5UbqyyKZTlyQSiUSuX0Q+q62tlbKyMqmpqZHS0tJcvxwAAJIWp11jtSE/vwlCAQhCAAAU7+c3S2MAACC2CEIAACC2CEIAACC2CEIAACC2CEIAACC2OGsMAADkRD5swScIAQCArMuXg1tZGgMAAFmVTwe3EoQAAEBW5dPBrQQhAACQVfl0cCtBCAAAZFU+HdxKszQAAMg6bYw+6dAu7BoDAADxVNm9Xc5PrmdpDAAAxBZBCAAAxBZBCAAAxBZBCAAAxBZBCAAAxBZBCAAAxBZBCAAAxBZBCAAAxBZBCAAAxBZBCAAAxBZBCAAAxBZnjQVIJBLme21tba5fCgAACMn63LY+x70QhAJs2bLFfK+oqMj1SwEAAEl8jpeVlXleX5IIikoxV1dXJ2vWrJG2bdtKSUlJWhKqhqpVq1ZJaWlpWl5jMeP9Co/3Khrer/B4r6Lh/cqP90rjjYagrl27SpMm3p1AVIQC6JvXrVu3tD+u/gfn/0HC4/0Kj/cqGt6v8HivouH9yv175VcJstAsDQAAYosgBAAAYosglGUtWrSQm266yXxHMN6v8HivouH9Co/3Khrer8J6r2iWBgAAsUVFCAAAxBZBCAAAxBZBCAAAxBZBCAAAxBZBKA2mT58uPXv2lJYtW8rw4cNl8eLFvrd/9NFHpV+/fub2AwYMkKeffrrB9dq/fuONN8r+++8vrVq1ktGjR8uKFSukGKT7vZowYYKZ+G3/Ovnkk6VYRHm/li1bJmeeeaa5vb4PU6dOTfkx4/xe3XzzzY3+bem/xWIR5f2aOXOmHHPMMdKuXTvzpb+TnLfn91b494rfW9+aPXu2DB06VMrLy6V169YyaNAg+fOf/5zdf1u6awzJe/jhhxPNmzdP3H///Ylly5YlLr744kR5eXli3bp1rrd/5ZVXEk2bNk3cdtttiffffz/xi1/8IrHPPvsk3nvvvfrb3HrrrYmysrLEE088kXjnnXcS3/ve9xIHHnhg4uuvv04Usky8V+PHj0+cfPLJiS+++KL+a9OmTYliEPX9Wrx4ceLaa69N/O1vf0t06dIlcdddd6X8mHF+r2666abEoYce2uDf1oYNGxLFIOr7df755yemT5+eWLp0aWL58uWJCRMmmN9Rq1evrr8Nv7fCv1f83vrWggULErNnzza/41euXJmYOnWq+b0/d+7crP3bIgilaNiwYYnLLrus/ue9e/cmunbtmpg0aZLr7c8555zEqaee2uCy4cOHJ370ox+ZP9fV1ZlfzLfffnv99Zs3b060aNHC/NIuZOl+r6xfKP/xH/+RKEZR3y+7Hj16uH64p/KYcXuvNAgNHDgwUYxS/XewZ8+eRNu2bRMPPvig+ZnfW+HfK8XvLX+VlZXmf/hm698WS2Mp2LVrlyxZssSU6exnk+nPixYtcr2PXm6/vTrppJPqb//JJ5/I2rVrG9xGz0rR8qLXY8b1vbIsXLhQOnXqJH379pVLLrlEvvzySyl0ybxfuXjMfJDJv5eW3/XAxl69eskFF1wg1dXVUujS8X5t375ddu/eLe3btzc/83sr/Htl4fdWY1qcmTdvnlRVVcl3vvOdrP3bIgilYOPGjbJ3717p3Llzg8v1Z/0P50Yv97u99T3KY8b1vVK6rv6nP/3J/D/P5MmT5cUXX5RTTjnFPFchS+b9ysVj5oNM/b30F+0DDzwgc+fOlXvuucf8QtbeDz3NupCl4/267rrrTEC0Ppz4vRX+vVL83mqopqZG2rRpI82bN5dTTz1Vpk2bJieccELW/m1x+jwK2rnnnlv/Z22mPuyww+Sggw4y/2tr1KhROX1tKGz6wWTRf1cajHr06CGPPPKIXHTRRRJXt956qzz88MPm/8e0GRbR3yt+bzXUtm1befvtt2Xr1q0mHE6cONFUYUeOHCnZQEUoBR06dJCmTZvKunXrGlyuP3fp0sX1Pnq53+2t71EeM67vlRv9fx59rpUrV0ohS+b9ysVj5oNs/b10V0ufPn1i/W9rypQp5sP9ueeeMx/eFn5vhX+v3MT991aTJk3k4IMPNjvGrrnmGjnrrLNk0qRJWfu3RRBKgZbxhgwZYhKspa6uzvw8YsQI1/vo5fbbq+eff77+9gceeKD5j2u/TW1trbz++uuejxnX98rN6tWrzVq7brMsZMm8X7l4zHyQrb+X/q/Vjz76KLb/tm677Tb59a9/bZYKdbuzHb+3wr9Xbvi91ZDeZ+fOndn7t5WWlusY062C2r3+wAMPmO1/P/zhD81WwbVr15rrv//97yeuv/76BlvCmzVrlpgyZYrZWqk7U9y2z+tj/P3vf0+8++67ZndBsWxDTed7tWXLFrMFetGiRYlPPvkk8cILLyQGDx6c6N27d2LHjh2JQhf1/dq5c6fZsqtf+++/v3lv9M8rVqwI/ZiFKhPv1TXXXJNYuHCh+bel/xZHjx6d6NChQ2L9+vWJQhf1/dLfSbol+rHHHmuw5Vv/f9B+G35vBb9X/N76foP36ze/+U3iueeeS3z00Ufm9vr7Xn/vz5w5M2v/tghCaTBt2rRE9+7dzT9+3Tr42muv1V937LHHmq2Sdo888kiiT58+5vY6p+Spp55qcL1uF/zlL3+Z6Ny5s/kHNWrUqERVVVWiGKTzvdq+fXvixBNPTHTs2NEEJN0GrTMrCv1DPdn3S3+p6v+2cX7p7cI+ZiFL93s1duxYE5L08Q444ADzs845KRZR3i/9/y2390v/x4mF31vh3it+bx3b4P36+c9/njj44IMTLVu2TLRr1y4xYsQIE6bsMv1vq0T/T3pqSwAAAIWFHiEAABBbBCEAABBbBCEAABBbBCEAABBbBCEAABBbBCEAABBbBCEAABBbBCEAABBbBCEA8PDpp59KSUmJORkbQHEiCAGInQkTJsjpp5+e65cBIA8QhAAAQGwRhAAUrccee0wGDBggrVq1kv32209Gjx4tP/3pT+XBBx+Uv//972bZS78WLlxobr948WKprKyUli1bytChQ2Xp0qW5/isAyLBmmX4CAMiFL774Qs477zy57bbb5IwzzpAtW7bISy+9JOPGjZPq6mqpra2VP/7xj+a27du3l61bt8ppp50mJ5xwgvzlL3+RTz75RK666qpc/zUAZBhBCEDRBqE9e/bImDFjpEePHuYyrQ4prRDt3LlTunTpUn/7Bx54QOrq6uS+++4zFaFDDz1UVq9eLZdccknO/g4AMo+lMQBFaeDAgTJq1CgTfs4++2yZOXOmfPXVV563X758uRx22GEmBFlGjBiRpVcLIFcIQgCKUtOmTeX555+XZ555Rg455BCZNm2a9O3b1yx5AYCFIASgaGkj9FFHHSW/+tWvTONz8+bNZc6cOeb73r17G9y2f//+8u6778qOHTvqL3vttddy8KoBZBNBCEBRev311+U3v/mNvPnmm6Y5evbs2bJhwwYTeHr27GlCT1VVlWzcuFF2794t559/vglOF198sbz//vvy9NNPy5QpU3L91wCQYQQhAEWptLRU/vnPf8p3v/td6dOnj/ziF7+QO+64Q0455RQTdnSZTLfId+zYUV555RVp06aN/N///Z+89957Zgv9z3/+c5k8eXKu/xoAMqwkkUgkMv0kAAAA+YiKEAAAiC2CEAAAiC2CEAAAiC2CEAAAiC2CEAAAiC2CEAAAiC2CEAAAiC2CEAAAiC2CEAAAiC2CEAAAiC2CEAAAkLj6/+HqUbwmL/9PAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ @@ -541,8 +546,8 @@ "for ii in range(nr_tests):\n", " # sample at random some \"allocation\"\n", " allocation = np.random.dirichlet(np.ones(nb))\n", - " c_rdt_list[ii] = allocation @ c_mean_returns \n", - " c_std_list[ii] = np.sqrt(allocation @ c_cov_matrix @ allocation) \n", + " c_rdt_list[ii] = allocation @ c_mean_returns\n", + " c_std_list[ii] = np.sqrt(allocation @ c_cov_matrix @ allocation)\n", "\n", "# reduce to target volatility (the mean of random ones)\n", "target_vol = np.mean(std_list * np.sqrt(nr_days))\n", @@ -568,14 +573,6 @@ "plt.show()\n", "plt.close()\n" ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "64f8a505", - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": {