diff --git a/doc/HandWrittenNotes/2025/FYSSTKweek35.pdf b/doc/HandWrittenNotes/2025/FYSSTKweek35.pdf
new file mode 100644
index 000000000..395778e18
Binary files /dev/null and b/doc/HandWrittenNotes/2025/FYSSTKweek35.pdf differ
diff --git a/doc/pub/week35/ipynb/week35.ipynb b/doc/pub/week35/ipynb/week35.ipynb
index 01ae64c94..182816ba0 100644
--- a/doc/pub/week35/ipynb/week35.ipynb
+++ b/doc/pub/week35/ipynb/week35.ipynb
@@ -1370,11 +1370,14 @@
},
{
"cell_type": "code",
- "execution_count": 1,
+ "execution_count": 19,
"id": "8ec18f31",
"metadata": {
"collapsed": false,
- "editable": true
+ "editable": true,
+ "jupyter": {
+ "outputs_hidden": false
+ }
},
"outputs": [],
"source": [
@@ -1382,15 +1385,13 @@
"# First we set up the data\n",
"import numpy as np\n",
"x = np.random.rand(100)\n",
- "y = 2.0+5*x*x+0.1*np.random.randn(100)\n",
+ "y = 2.0+5*x*x#+0.1*np.random.randn(100)\n",
"# and then the design matrix X including the intercept\n",
"# The design matrix now as function of a fourth-order polynomial\n",
- "X = np.zeros((len(x),5))\n",
+ "X = np.zeros((len(x),3))\n",
"X[:,0] = 1.0\n",
"X[:,1] = x\n",
"X[:,2] = x**2\n",
- "X[:,3] = x**3\n",
- "X[:,4] = x**4\n",
"theta = (np.linalg.inv(X.T @ X) @ X.T ) @ y\n",
"# and then make the prediction\n",
"ytilde = X @ theta"
@@ -1408,11 +1409,14 @@
},
{
"cell_type": "code",
- "execution_count": 2,
+ "execution_count": 20,
"id": "9d5f3a70",
"metadata": {
"collapsed": false,
- "editable": true
+ "editable": true,
+ "jupyter": {
+ "outputs_hidden": false
+ }
},
"outputs": [],
"source": [
@@ -1435,11 +1439,14 @@
},
{
"cell_type": "code",
- "execution_count": 3,
+ "execution_count": 21,
"id": "de91ca73",
"metadata": {
"collapsed": false,
- "editable": true
+ "editable": true,
+ "jupyter": {
+ "outputs_hidden": false
+ }
},
"outputs": [],
"source": [
@@ -1459,13 +1466,24 @@
},
{
"cell_type": "code",
- "execution_count": 4,
+ "execution_count": 22,
"id": "9b329ab4",
"metadata": {
"collapsed": false,
- "editable": true
+ "editable": true,
+ "jupyter": {
+ "outputs_hidden": false
+ }
},
- "outputs": [],
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "1.0\n"
+ ]
+ }
+ ],
"source": [
"print(R2(y,ytilde))"
]
@@ -1482,13 +1500,24 @@
},
{
"cell_type": "code",
- "execution_count": 5,
+ "execution_count": 23,
"id": "34c18b8f",
"metadata": {
"collapsed": false,
- "editable": true
+ "editable": true,
+ "jupyter": {
+ "outputs_hidden": false
+ }
},
- "outputs": [],
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "1.372677139652452e-28\n"
+ ]
+ }
+ ],
"source": [
"def MSE(y_data,y_model):\n",
" n = np.size(y_model)\n",
@@ -1509,13 +1538,48 @@
},
{
"cell_type": "code",
- "execution_count": 6,
+ "execution_count": 24,
"id": "afb92eb9",
"metadata": {
"collapsed": false,
- "editable": true
+ "editable": true,
+ "jupyter": {
+ "outputs_hidden": false
+ }
},
- "outputs": [],
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "[2.02190265e-15 1.89157464e-15 3.06589386e-15 6.23625811e-16\n",
+ " 6.36209972e-15 2.02776358e-15 6.58420075e-15 1.46525257e-14\n",
+ " 8.72470261e-16 4.09784690e-15 3.01300002e-15 1.41920313e-15\n",
+ " 5.00865963e-15 3.64706024e-15 1.58262816e-15 1.50253525e-15\n",
+ " 0.00000000e+00 1.09526925e-15 1.75999669e-15 3.67887552e-15\n",
+ " 6.22168553e-16 3.75960248e-15 3.85194243e-15 8.69564617e-16\n",
+ " 1.19803547e-15 3.70781044e-16 1.38763089e-15 1.92076026e-15\n",
+ " 1.09978132e-14 3.65877804e-16 1.96876839e-15 2.14252942e-15\n",
+ " 2.08723331e-15 9.37274336e-15 1.53425960e-15 1.39998044e-15\n",
+ " 8.85612726e-16 1.58501690e-15 1.54860290e-15 8.45166746e-15\n",
+ " 1.69166018e-15 4.31448451e-15 1.46734867e-15 1.46784925e-15\n",
+ " 1.26293927e-15 5.44552037e-16 1.72634004e-15 1.16873304e-14\n",
+ " 6.99421322e-16 6.97386162e-16 4.09510627e-16 6.82786471e-15\n",
+ " 1.84872273e-15 1.87366433e-16 1.48733552e-14 2.17059780e-15\n",
+ " 2.97263586e-15 1.83925485e-16 1.39025700e-15 1.85642456e-15\n",
+ " 2.12109871e-15 3.66284586e-16 2.16564595e-15 1.03411970e-15\n",
+ " 1.76754182e-15 2.53312975e-15 2.97435473e-15 3.58859731e-16\n",
+ " 0.00000000e+00 1.95336516e-15 5.61691809e-16 3.93600271e-15\n",
+ " 1.03770782e-15 3.19847658e-15 1.77033960e-15 1.80001846e-16\n",
+ " 1.60553581e-15 1.73706443e-15 4.98971194e-15 1.47271125e-15\n",
+ " 1.52033672e-15 8.91104522e-15 1.84796618e-15 1.90811537e-16\n",
+ " 0.00000000e+00 1.34656982e-15 2.16699049e-15 2.11028323e-15\n",
+ " 1.34293192e-15 1.14195255e-15 2.16379262e-15 1.42038226e-14\n",
+ " 1.81820774e-16 1.51912494e-15 8.22271616e-15 0.00000000e+00\n",
+ " 2.00763800e-15 3.99591913e-16 1.18283866e-15 1.12348545e-14]\n"
+ ]
+ }
+ ],
"source": [
"def RelativeError(y_data,y_model):\n",
" return abs((y_data-y_model)/y_data)\n",
@@ -1555,13 +1619,33 @@
},
{
"cell_type": "code",
- "execution_count": 7,
+ "execution_count": 26,
"id": "094eed3e",
"metadata": {
"collapsed": false,
- "editable": true
+ "editable": true,
+ "jupyter": {
+ "outputs_hidden": false
+ }
},
- "outputs": [],
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "[ 2.00000000e+00 -1.48681067e-11 5.00000000e+00 -1.71951342e-11\n",
+ " 5.11590770e-13]\n",
+ "Training R2\n",
+ "1.0\n",
+ "Training MSE\n",
+ "4.970269452444655e-23\n",
+ "Test R2\n",
+ "1.0\n",
+ "Test MSE\n",
+ "4.544297656004626e-23\n"
+ ]
+ }
+ ],
"source": [
"%matplotlib inline\n",
"\n",
@@ -1579,7 +1663,7 @@
" return np.sum((y_data-y_model)**2)/n\n",
"\n",
"x = np.random.rand(100)\n",
- "y = 2.0+5*x*x+0.1*np.random.randn(100)\n",
+ "y = 2.0+5*x*x#+0.1*np.random.randn(100)\n",
"\n",
"\n",
"# The design matrix now as function of a fourth-order polynomial\n",
@@ -1623,7 +1707,10 @@
"id": "dff69c9a",
"metadata": {
"collapsed": false,
- "editable": true
+ "editable": true,
+ "jupyter": {
+ "outputs_hidden": false
+ }
},
"outputs": [],
"source": [
@@ -1809,13 +1896,425 @@
},
{
"cell_type": "code",
- "execution_count": 9,
+ "execution_count": 1,
"id": "9dacf721",
"metadata": {
"collapsed": false,
- "editable": true
+ "editable": true,
+ "jupyter": {
+ "outputs_hidden": false
+ }
},
- "outputs": [],
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " 0 | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 3 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " -1.749765 | \n",
+ " 0.342680 | \n",
+ " 1.153036 | \n",
+ " -0.252436 | \n",
+ " 0.981321 | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " 0.514219 | \n",
+ " 0.221180 | \n",
+ " -1.070043 | \n",
+ " -0.189496 | \n",
+ " 0.255001 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " -0.458027 | \n",
+ " 0.435163 | \n",
+ " -0.583595 | \n",
+ " 0.816847 | \n",
+ " 0.672721 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " -0.104411 | \n",
+ " -0.531280 | \n",
+ " 1.029733 | \n",
+ " -0.438136 | \n",
+ " -1.118318 | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 1.618982 | \n",
+ " 1.541605 | \n",
+ " -0.251879 | \n",
+ " -0.842436 | \n",
+ " 0.184519 | \n",
+ "
\n",
+ " \n",
+ " | 5 | \n",
+ " 0.937082 | \n",
+ " 0.731000 | \n",
+ " 1.361556 | \n",
+ " -0.326238 | \n",
+ " 0.055676 | \n",
+ "
\n",
+ " \n",
+ " | 6 | \n",
+ " 0.222400 | \n",
+ " -1.443217 | \n",
+ " -0.756352 | \n",
+ " 0.816454 | \n",
+ " 0.750445 | \n",
+ "
\n",
+ " \n",
+ " | 7 | \n",
+ " -0.455947 | \n",
+ " 1.189622 | \n",
+ " -1.690617 | \n",
+ " -1.356399 | \n",
+ " -1.232435 | \n",
+ "
\n",
+ " \n",
+ " | 8 | \n",
+ " -0.544439 | \n",
+ " -0.668172 | \n",
+ " 0.007315 | \n",
+ " -0.612939 | \n",
+ " 1.299748 | \n",
+ "
\n",
+ " \n",
+ " | 9 | \n",
+ " -1.733096 | \n",
+ " -0.983310 | \n",
+ " 0.357508 | \n",
+ " -1.613579 | \n",
+ " 1.470714 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " 0 1 2 3 4\n",
+ "0 -1.749765 0.342680 1.153036 -0.252436 0.981321\n",
+ "1 0.514219 0.221180 -1.070043 -0.189496 0.255001\n",
+ "2 -0.458027 0.435163 -0.583595 0.816847 0.672721\n",
+ "3 -0.104411 -0.531280 1.029733 -0.438136 -1.118318\n",
+ "4 1.618982 1.541605 -0.251879 -0.842436 0.184519\n",
+ "5 0.937082 0.731000 1.361556 -0.326238 0.055676\n",
+ "6 0.222400 -1.443217 -0.756352 0.816454 0.750445\n",
+ "7 -0.455947 1.189622 -1.690617 -1.356399 -1.232435\n",
+ "8 -0.544439 -0.668172 0.007315 -0.612939 1.299748\n",
+ "9 -1.733096 -0.983310 0.357508 -1.613579 1.470714"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "0 -0.175300\n",
+ "1 0.083527\n",
+ "2 -0.044334\n",
+ "3 -0.399836\n",
+ "4 0.331939\n",
+ "dtype: float64\n",
+ "0 1.069584\n",
+ "1 0.965548\n",
+ "2 1.018232\n",
+ "3 0.793167\n",
+ "4 0.918992\n",
+ "dtype: float64\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " 0 | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 3 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " -1.574465 | \n",
+ " 0.259153 | \n",
+ " 1.197370 | \n",
+ " 0.147400 | \n",
+ " 0.649382 | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " 0.689519 | \n",
+ " 0.137652 | \n",
+ " -1.025709 | \n",
+ " 0.210340 | \n",
+ " -0.076938 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " -0.282727 | \n",
+ " 0.351636 | \n",
+ " -0.539261 | \n",
+ " 1.216683 | \n",
+ " 0.340782 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 0.070889 | \n",
+ " -0.614808 | \n",
+ " 1.074067 | \n",
+ " -0.038300 | \n",
+ " -1.450257 | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 1.794282 | \n",
+ " 1.458078 | \n",
+ " -0.207545 | \n",
+ " -0.442600 | \n",
+ " -0.147420 | \n",
+ "
\n",
+ " \n",
+ " | 5 | \n",
+ " 1.112383 | \n",
+ " 0.647473 | \n",
+ " 1.405890 | \n",
+ " 0.073598 | \n",
+ " -0.276263 | \n",
+ "
\n",
+ " \n",
+ " | 6 | \n",
+ " 0.397700 | \n",
+ " -1.526744 | \n",
+ " -0.712018 | \n",
+ " 1.216290 | \n",
+ " 0.418506 | \n",
+ "
\n",
+ " \n",
+ " | 7 | \n",
+ " -0.280647 | \n",
+ " 1.106095 | \n",
+ " -1.646283 | \n",
+ " -0.956563 | \n",
+ " -1.564374 | \n",
+ "
\n",
+ " \n",
+ " | 8 | \n",
+ " -0.369139 | \n",
+ " -0.751699 | \n",
+ " 0.051649 | \n",
+ " -0.213103 | \n",
+ " 0.967809 | \n",
+ "
\n",
+ " \n",
+ " | 9 | \n",
+ " -1.557795 | \n",
+ " -1.066837 | \n",
+ " 0.401842 | \n",
+ " -1.213743 | \n",
+ " 1.138775 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " 0 1 2 3 4\n",
+ "0 -1.574465 0.259153 1.197370 0.147400 0.649382\n",
+ "1 0.689519 0.137652 -1.025709 0.210340 -0.076938\n",
+ "2 -0.282727 0.351636 -0.539261 1.216683 0.340782\n",
+ "3 0.070889 -0.614808 1.074067 -0.038300 -1.450257\n",
+ "4 1.794282 1.458078 -0.207545 -0.442600 -0.147420\n",
+ "5 1.112383 0.647473 1.405890 0.073598 -0.276263\n",
+ "6 0.397700 -1.526744 -0.712018 1.216290 0.418506\n",
+ "7 -0.280647 1.106095 -1.646283 -0.956563 -1.564374\n",
+ "8 -0.369139 -0.751699 0.051649 -0.213103 0.967809\n",
+ "9 -1.557795 -1.066837 0.401842 -1.213743 1.138775"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " 0 | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 3 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ "
\n",
+ " \n",
+ " | 5 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ "
\n",
+ " \n",
+ " | 6 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ "
\n",
+ " \n",
+ " | 7 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ "
\n",
+ " \n",
+ " | 8 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ "
\n",
+ " \n",
+ " | 9 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " 0 1 2 3 4\n",
+ "0 0.0 0.0 0.0 0.0 0.0\n",
+ "1 0.0 0.0 0.0 0.0 0.0\n",
+ "2 0.0 0.0 0.0 0.0 0.0\n",
+ "3 0.0 0.0 0.0 0.0 0.0\n",
+ "4 0.0 0.0 0.0 0.0 0.0\n",
+ "5 0.0 0.0 0.0 0.0 0.0\n",
+ "6 0.0 0.0 0.0 0.0 0.0\n",
+ "7 0.0 0.0 0.0 0.0 0.0\n",
+ "8 0.0 0.0 0.0 0.0 0.0\n",
+ "9 0.0 0.0 0.0 0.0 0.0"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
"source": [
"import sklearn.linear_model as skl\n",
"from sklearn.metrics import mean_squared_error\n",
@@ -1906,11 +2405,14 @@
},
{
"cell_type": "code",
- "execution_count": 10,
+ "execution_count": 27,
"id": "e1630ab8",
"metadata": {
"collapsed": false,
- "editable": true
+ "editable": true,
+ "jupyter": {
+ "outputs_hidden": false
+ }
},
"outputs": [],
"source": [
@@ -1936,13 +2438,27 @@
},
{
"cell_type": "code",
- "execution_count": 11,
+ "execution_count": 31,
"id": "355c6a66",
"metadata": {
"collapsed": false,
- "editable": true
+ "editable": true,
+ "jupyter": {
+ "outputs_hidden": false
+ }
},
- "outputs": [],
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAi4AAAGdCAYAAAA1/PiZAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAABWtUlEQVR4nO3deXhTVf4G8Pdm75KkYEsXWsq+C0jLUhBFhbKog+OoHReUcRvckZmfiLiiDjozIm6gjo4MOmJ1XMdBsS5sgghYEBURpdAKLaWFNl3Ifn9/3Ny06Z40yU3a9/M8eZqe3Nycxjzm5XvOPUcQRVEEERERURRQKd0BIiIioo5icCEiIqKoweBCREREUYPBhYiIiKIGgwsRERFFDQYXIiIiihoMLkRERBQ1GFyIiIgoamiU7kCwuN1uHD16FEajEYIgKN0dIiIi6gBRFFFTU4O0tDSoVO3XU7pMcDl69CgyMjKU7gYREREFoKSkBOnp6e0e12WCi9FoBCD94SaTSeHeEBERUUdYLBZkZGR4v8fb02WCizw8ZDKZGFyIiIiiTEeneXByLhEREUUNBhciIiKKGgwuREREFDW6zBwXIiKKXqIowul0wuVyKd0VCjK1Wg2NRhO0pUoYXIiISFF2ux2lpaWor69XuisUIrGxsUhNTYVOp+v0uRhciIhIMW63G0VFRVCr1UhLS4NOp+Miol2IKIqw2+04fvw4ioqKMGjQoA4tMtcWBhciIlKM3W6H2+1GRkYGYmNjle4OhUBMTAy0Wi0OHz4Mu90Og8HQqfNxci4RESmus/8Kp8gWzP++/KQQERFR1GBwISIioqjB4EJERERRg8GFiIjID4IgtHmbN29ewOfu27cvVqxY0aHjWnrtxx57LODXjha8qqg9X60CKn8Gxt0A9BqqdG+IiEhhpaWl3vv5+fm4//77sX//fm9bTExMWPqxdOlS3HDDDT5tre2wLIoiXC4XNBrfr3273R7Q2iqBPi8YWHFpz3dvAzteksILERGFlCiKqLc7FbmJotihPqakpHhvZrMZgiD4tG3atAlZWVkwGAzo378/HnroITidTu/zH3zwQfTp0wd6vR5paWm4/fbbAQBTp07F4cOHceedd3orKG0xGo0+r5uSkoK4uDgAwIYNGyAIAtavX4/s7Gzo9Xps3rwZU6dOxa233oqFCxciMTER06dPBwBs3LgR48ePh16vR2pqKu6++26fPrf2PCWw4tIeg1n6aa1StBtERN3BKYcLw+9fr8hr/7B0BmJ1nftaXL9+Pa666io8/fTTmDJlCn755RfceOONAIAHHngA//nPf/Dkk0/ijTfewIgRI1BWVoY9e/YAAN555x2MHj0aN954Y7NKSqDuuusu/P3vf0f//v2RkJAAAPjXv/6Fm266CV9++SVEUcSRI0cwe/ZszJs3D2vWrMGPP/6IG264AQaDAQ8++KD3XE2fpxQGl/YYEqSf1mpFu0FERJHv0Ucfxd13341rrrkGANC/f388/PDDuOuuu/DAAw+guLgYKSkpmDZtGrRaLfr06YPx48cDAHr27Am1Wu2tpLRn0aJFuPfee33aPvzwQ0ydOtX7+9KlS5tVRwYOHIi//vWv3t+XLFmCjIwMPPvssxAEAUOHDsXRo0exaNEi3H///d41WJo+TykMLu2JSZB+nqpSshdERN1CjFaNH5bOUOy1O2vXrl3YsWMHHn30UW+by+WC1WpFfX09Lr30UqxYsQL9+/fHzJkzMXv2bFx44YXN5p50xP/93/81mwjcu3dvn9+zs7ObPa9p2759+5CTk+MzNDV58mTU1tbi119/RZ8+fVo9lxIYXNrjrbhUKdkLIqJuQRCETg/XKMntduOhhx7CxRdf3Owxg8GAjIwM7N+/HwUFBfj0009x8803429/+xs2btwIrVbr12slJiZi4MCBbR4jz3lpq00UxWbzaeShoMbtLZ1LCdH76QgX7xwXDhUREVHbxo4di/3797cZKGJiYvCb3/wGv/nNb3DLLbdg6NCh2Lt3L8aOHQudTgeXyxXGHgPDhw/H22+/7RNgtm7dCqPR2KyCEwkYXNrDoSIiIuqg+++/HxdccAEyMjJw6aWXQqVS4dtvv8XevXvxyCOPYPXq1XC5XJgwYQJiY2Px6quvIiYmBpmZmQCk9Vk2bdqE3//+99Dr9UhMTGz1tWpqalBWVubTFhsbC5PJ5Fefb775ZqxYsQK33XYbbr31Vuzfvx8PPPAAFi5cGJF7SEVejyINh4qIiKiDZsyYgQ8//BAFBQUYN24cJk6ciOXLl3uDSUJCAv7xj39g8uTJGDVqFD777DP897//xWmnnQZAmkx76NAhDBgwAElJSW2+1v3334/U1FSf21133eV3n3v37o1169bh66+/xujRozF//nxcd911zSb+RgpBVPKapiCyWCwwm82orq72O222qWgT8K8LgcQhwK1fB++8REQEq9WKoqIi9OvXDwaDQenuUIi09d/Z3+9vVlzawzkuREREEYPBpT0cKiIiIooYAQWXlStXess9WVlZ2Lx5c6vHvvPOO5g+fTqSkpJgMpmQk5OD9et9V0VcvXp1i5tFWa3WQLoXXPLkXKcVcERAf4iIiLoxv4NLfn4+FixYgCVLlqCwsBBTpkzBrFmzUFxc3OLxmzZtwvTp07Fu3Trs2rUL55xzDi688EIUFhb6HGcymVBaWupzi4jxTp0REDxvE6suREREivL7cujly5fjuuuuw/XXXw8AWLFiBdavX49Vq1Zh2bJlzY5vuj33X/7yF7z//vv473//izPOOMPbLm9SFXFUKkBvkkKLtRowRmAfiYiIugm/Ki52ux27du1Cbm6uT3tubi62bt3aoXO43W7U1NSgZ8+ePu21tbXIzMxEeno6LrjggmYVmaZsNhssFovPLWS4lgsREVFE8Cu4VFRUwOVyITk52ac9OTm52SI4rXniiSdQV1eHyy67zNs2dOhQrF69Gh988AHWrl0Lg8GAyZMn48CBA62eZ9myZTCbzd5bRkaGP3+KfzhBl4iIKCIENDm3pT0Nmra1ZO3atXjwwQeRn5+PXr16edsnTpyIq666CqNHj8aUKVPw5ptvYvDgwXjmmWdaPdfixYtRXV3tvZWUlATyp3QMKy5EREQRwa85LomJiVCr1c2qK+Xl5c2qME3l5+fjuuuuw1tvvYVp06a1eaxKpcK4ceParLjo9Xro9fqOd74zuJYLERGF2NSpUzFmzJhmc0PJl18VF51Oh6ysLBQUFPi0FxQUYNKkSa0+b+3atZg3bx5ef/11nH/++e2+jiiK2L17N1JTU/3pXuhwqIiIiDxaWr6j8W3evHkBnfedd97Bww8/3Km+zZs3r8U+zZw5s1PnjSR+X1W0cOFCzJ07F9nZ2cjJycGLL76I4uJizJ8/H4A0hHPkyBGsWbMGgBRarr76ajz11FOYOHGit1oTExMDs1mqZDz00EOYOHEiBg0aBIvFgqeffhq7d+/Gc889F6y/s3M4VERERB6lpaXe+/n5+bj//vuxf/9+b1tMTIzP8Q6HA1qttt3zNr1oJVAzZ87EK6+84tPW1ghFS/3raJ87cq5g83uOS15eHlasWIGlS5dizJgx2LRpE9atW+fdQKq0tNRnTZcXXngBTqcTt9xyi89GUHfccYf3mKqqKtx4440YNmwYcnNzceTIEWzatAnjx48Pwp8YBKy4EBGRR0pKivdmNpu9y3mkpKTAarUiISEBb775JqZOnQqDwYDXXnsNlZWVuPzyy5Geno7Y2FicfvrpWLt2rc95p06digULFnh/79u3L/7yl7/g2muvhdFoRJ8+ffDiiy+22z+9Xu/Tx5SUFPTo0cP7uCAIeP755zFnzhzExcXhkUcewYMPPogxY8bgn//8J/r37w+9Xg9RFFFcXIw5c+YgPj4eJpMJl112GY4dO+Y9V2vPCyW/Ky6AtAX2zTff3OJjq1ev9vl9w4YN7Z7vySefxJNPPhlIV8KDc1yIiMJDFAFHvTKvrY0FOnChSUcsWrQITzzxBF555RXo9XpYrVZkZWVh0aJFMJlM+N///oe5c+eif//+mDBhQqvneeKJJ/Dwww/jnnvuwX/+8x/cdNNNOOusszB06NBO9e+BBx7AsmXL8OSTT0KtVuOVV17Bzz//jDfffBNvv/021Go1AOCiiy5CXFwcNm7cCKfTiZtvvhl5eXk+3+0tPS+UAgou3ckdbxTitKKjuB/gUBERUag56oG/pCnz2vccBXRxQTnVggULcPHFF/u0/fnPf/bev+222/Dxxx/jrbfeajO4zJ4921soWLRoEZ588kls2LChzeDy4YcfIj4+3qdt0aJFuO+++7y/X3HFFbj22mt9jrHb7Xj11VeRlJQEQJq/+u2336KoqMi75Mirr76KESNGYMeOHRg3blyLzws1Bpd2HK06hRM1GkAHDhUREVGHZGdn+/zucrnw2GOPIT8/H0eOHIHNZoPNZkNcXNtBadSoUd778pBUeXl5m88555xzsGrVKp+2pvNnmvYPADIzM33Cx759+5CRkeGzTtrw4cORkJCAffv2eYNL0+eFGoNLO4wGLSpEzweLFRciotDSxkqVD6VeO0iaBpInnngCTz75JFasWIHTTz8dcXFxWLBgAex2e9tdajLRVRAEuN3udl974MCBfvWvpbbW1mhr2t5e+Ao2Bpd2GA0aHITnw8w5LkREoSUIQRuuiSSbN2/GnDlzcNVVVwGQtr85cOAAhg0bpnDPWjd8+HAUFxejpKTEW3X54YcfUF1drWi/A1o5tzsxGjSolisu9hrA5VS2Q0REFHUGDhyIgoICbN26Ffv27cMf//jHDm+V4y+bzYaysjKfW0VFhd/nmTZtGkaNGoUrr7wS33zzDb7++mtcffXVOPvss1scagoXBpd2GA1aWNAo/bPqQkREfrrvvvswduxYzJgxA1OnTkVKSgouuuiikLzWxx9/7LP8SGpqKs4880y/zyMIAt577z306NEDZ511FqZNm4b+/fsjPz8/BL32o19iqC+4DhOLxQKz2Yzq6mqYTKagnfe5L37G39bvx4+x18Pgrgdu+wY4bUDQzk9E1J1ZrVYUFRWhX79+MBgMSneHQqSt/87+fn+z4tIOk0GaBlSv8lxaxiuLiIiIFMPg0g6jQZrRXSPwyiIiIiKlMbi0w+ipuFhEVlyIiIiUxuDSDrniUiV6LolmxYWIiEgxDC7tkCsuJ91cy4WIiEhpDC7tkINLpcuzTTmHioiIgq6LXOBKrQjmf18Gl3bIQ0UnXBwqIiIKNnlJ+/p6hXaEprCQ//s23cIgEFzyvx3xeuktqpYXoWPFhYgoaNRqNRISErwbB8bGxra4Pw5FJ1EUUV9fj/LyciQkJECtVnf6nAwu7VCrBMTrNbA45ODCOS5ERMGUkpICAO3uekzRKyEhwfvfubMYXDrAaNCg2sF1XIiIQkEQBKSmpqJXr15wOBxKd4eCTKvVBqXSImNw6YB4vQbVFg4VERGFklqtDuoXHHVNnJzbAUaDpmGOCysuREREimFw6QCjQQuLvACdzQK43cp2iIiIqJticOkAo0EDi1xxEd2AvUbZDhEREXVTDC4dYDRoYYMOTpVeauBwERERkSIYXDrA5Fk995TaKDVwgi4REZEiGFw6QF72v17FtVyIiIiUxODSAfKy/7VCvNTAoSIiIiJFMLh0gFxxscATXDhUREREpAgGlw6QKy7VIjdaJCIiUhKDSwfIFZeTbk9w4RwXIiIiRTC4dIC8Q3SlK0Zq4FARERGRIhhcOsDkGSqqcHKoiIiISEkMLh0gDxVVeCsuHCoiIiJSAoNLB8TLVxXJk3M5VERERKQIBpcO0KpViNGqUS1yHRciIiIlMbh0kNGgQbW80SIrLkRERIpgcOkgo0GDarHRkv+iqGyHiIiIuiEGlw4yGrSwwDPHxWUHHKeU7RAREVE3xODSQUaDBnUwwC2opQYOFxEREYUdg0sHSWu5CLBrTFIDJ+gSERGFHYNLB8lruVg1RqmBa7kQERGFHYNLB8nL/teruEM0ERGRUhhcOkjeIbpW4FouRERESmFw6SB5qKhG4FouRERESmFw6SA5uFR7l/3nHBciIqJwY3DpIHmo6KSbO0QTEREphcGlg0yeissJFzdaJCIiUgqDSwfJFZcKJysuRERESmFw6SB5jku5Qy81cI4LERFR2DG4dJA3uDhjpAYOFREREYUdg0sHyUNF3h2iOVREREQUdgwuHaTTqKDXqFANruNCRESkFAYXPxgNWljkioujHnDale0QERFRN8Pg4gejQYMaxDY0cIIuERFRWDG4+MFo0MANFRxaeYfoKkX7Q0RE1N0wuPhBvrLIrjVJDZygS0REFFYBBZeVK1eiX79+MBgMyMrKwubNm1s99p133sH06dORlJQEk8mEnJwcrF+/vtlxb7/9NoYPHw69Xo/hw4fj3XffDaRrIWXUS1cW2dSeHaI5VERERBRWfgeX/Px8LFiwAEuWLEFhYSGmTJmCWbNmobi4uMXjN23ahOnTp2PdunXYtWsXzjnnHFx44YUoLCz0HrNt2zbk5eVh7ty52LNnD+bOnYvLLrsM27dvD/wvCwG54lKv5lARERGREgRRFEV/njBhwgSMHTsWq1at8rYNGzYMF110EZYtW9ahc4wYMQJ5eXm4//77AQB5eXmwWCz46KOPvMfMnDkTPXr0wNq1azt0TovFArPZjOrqaphMJj/+oo5b+t8f8M8vi7A+9UUMObkBmP13YPwNIXktIiKi7sDf72+/Ki52ux27du1Cbm6uT3tubi62bt3aoXO43W7U1NSgZ8+e3rZt27Y1O+eMGTPaPKfNZoPFYvG5hZpccakR5KGiqpC/JhERETXwK7hUVFTA5XIhOTnZpz05ORllZWUdOscTTzyBuro6XHbZZd62srIyv8+5bNkymM1m7y0jI8OPvyQwcnCpFuUdojnHhYiIKJwCmpwrCILP76IoNmtrydq1a/Hggw8iPz8fvXr16tQ5Fy9ejOrqau+tpKTEj78gMCbPsv9VIneIJiIiUoLGn4MTExOhVqubVULKy8ubVUyays/Px3XXXYe33noL06ZN83ksJSXF73Pq9Xro9Xp/ut9pcsXlhJvL/hMRESnBr4qLTqdDVlYWCgoKfNoLCgowadKkVp+3du1azJs3D6+//jrOP//8Zo/n5OQ0O+cnn3zS5jmVIG+0WCnvEM2KCxERUVj5VXEBgIULF2Lu3LnIzs5GTk4OXnzxRRQXF2P+/PkApCGcI0eOYM2aNQCk0HL11VfjqaeewsSJE72VlZiYGJjNZgDAHXfcgbPOOguPP/445syZg/fffx+ffvoptmzZEqy/MyjiPRWX4w6D1MA5LkRERGHl9xyXvLw8rFixAkuXLsWYMWOwadMmrFu3DpmZmQCA0tJSnzVdXnjhBTidTtxyyy1ITU313u644w7vMZMmTcIbb7yBV155BaNGjcLq1auRn5+PCRMmBOFPDB55qKjMG1yqlOsMERFRN+T3Oi6RKhzruJTXWDH+0c8wQHUUn+n+DOjNwOKWF94jIiKi9oV0HZfuzntVkTw511YNuF0K9oiIiKh7YXDxg16jglYtwIK4hkZb6Be+IyIiIgmDix8EQYDRoIUDGrg1vLKIiIgo3Bhc/CRP0HXqpCuiOEGXiIgofBhc/CQHF7vWM4GIFRciIqKwYXDxk1EvTdC1aeSNFrmWCxERUbgwuPhJrricUhulBg4VERERhQ2Di5/kZf/rVJ7gwqEiIiKisGFw8ZNccakBN1okIiIKNwYXPzUPLpzjQkREFC4MLn6Sg0uV6AkuHCoiIiIKGwYXP8lzXE64PAvQcaiIiIgobBhc/CRXXCpcsVIDh4qIiIjChsHFT3LF5bjDIDVwqIiIiChsGFz8JFdcjsnBhUNFREREYcPg4ieTJ7iU2RpVXERRuQ4RERF1IwwufpKHio7aPcFFdAH2OgV7RERE1H0wuPhJHiqqc2shqqQQw+EiIiKi8GBw8VOMVg21SgAgwG0wS42coEtERBQWDC5+EgQB8Xqp6uLSeYILKy5ERERhweASAHm4yK41SQ1cy4WIiCgsGFwCIE/QtWu4QzQREVE4MbgEQK64nFJ7gguHioiIiMKCwSUA8loudap4qYEVFyIiorBgcAmAPFRUK3iCC+e4EBERhQWDSwDkoaIaxEkNHCoiIiIKCwaXAMjBpUr0BBcOFREREYUFg0sA5KGiE+5YqYEVFyIiorBgcAmAXHGpdMVIDZzjQkREFBYMLgGQKy6VTk9w4VARERFRWDC4BMDoWfL/mMOzQzSHioiIiMKCwSUA8lBRmd0TXJxWwGFVsEdERETdA4NLAOShomNWLSB43kLOcyEiIgo5BpcAyBUXi80FUS9vtFilXIeIiIi6CQaXAMjBxeESIRoSpEZO0CUiIgo5BpcAxOk0EATpvktvlu6w4kJERBRyDC4BUKkExHuuLHJo5aEiznEhIiIKNQaXAJk8E3TtGqPUwKEiIiLqouxOt9Jd8GJwCZA8z+WUHFw4VERERF3Ub57dghH3f4yvi04o3RUGl0DJwaVexYoLERF1bRW1dtTZXd5pEkpicAmQvJZLneDZIZpzXIiIqAtyuUWcqLMBABLjdQr3hsElYHLqtEAOLlXKdYaIiChEqurtcIvS/Z5xDC5RSx4qqhY9wYVDRURE1AVV1tkBAD1itdColY8NyvcgSslDRSdFVlyIiKjrqqiRholOi9cr3BMJg0uA5IrLCae8QzTnuBARUddT4am4RML8FoDBJWAmT3CpcMZKDRwqIiKiLqiylhWXLsG7Q7RccbHXAC6ngj0iIiIKvgpPcEmMgIm5AINLwOShomN2Q0Mjh4uIiKiLqayVh4pYcYlqcsWl2iYCunipkRN0iYioi6nwBBcOFUU5ueJSY3UAhgSpkcGFiIi6mArvHBcOFUU1ObhYrE4gJkFq5ARdIiLqYiojaNVcgMElYPJQkd3phltvlhpZcSEioi6Gc1y6iMYbTTl18g7RnJxLRERdR73diXq7CwDnuEQ9tUpAnE4NALBpTFIjh4qIiKgLkasteo3K+52ntICCy8qVK9GvXz8YDAZkZWVh8+bNrR5bWlqKK664AkOGDIFKpcKCBQuaHbN69WoIgtDsZrVaA+le2MjDRd7gwqEiIiLqQrxruMTrIQiCwr2R+B1c8vPzsWDBAixZsgSFhYWYMmUKZs2aheLi4haPt9lsSEpKwpIlSzB69OhWz2symVBaWupzMxgMrR4fCeQJuvUqz+XQrLgQEVEX0jC/JTIm5gIBBJfly5fjuuuuw/XXX49hw4ZhxYoVyMjIwKpVq1o8vm/fvnjqqadw9dVXw2w2t3peQRCQkpLic4t0cnCplYML57gQEVEXUhFhy/0DfgYXu92OXbt2ITc316c9NzcXW7du7VRHamtrkZmZifT0dFxwwQUoLCxs83ibzQaLxeJzCzd5qKgG3CGaiIi6nsoI22AR8DO4VFRUwOVyITk52ac9OTkZZWVlAXdi6NChWL16NT744AOsXbsWBoMBkydPxoEDB1p9zrJly2A2m723jIyMgF8/UHLFpVoOLhwqIiKiLiTqKy6yphN0RFHs1KSdiRMn4qqrrsLo0aMxZcoUvPnmmxg8eDCeeeaZVp+zePFiVFdXe28lJSUBv36g5IpLlVuuuHCoiIiIug7vcv8RssEiAGjaP6RBYmIi1Gp1s+pKeXl5sypMZ6hUKowbN67Nioter4der2wCNHkqLidcMVIDh4qIiKgLqfRUXJKMUVpx0el0yMrKQkFBgU97QUEBJk2aFLROiaKI3bt3IzU1NWjnDAV5qKjCKQeXasDtVrBHREREwVPprbhETnDxq+ICAAsXLsTcuXORnZ2NnJwcvPjiiyguLsb8+fMBSEM4R44cwZo1a7zP2b17NwBpAu7x48exe/du6HQ6DB8+HADw0EMPYeLEiRg0aBAsFguefvpp7N69G88991wQ/sTQkYeKyuXgIroBew1gaP3qKSIiomgRaRssAgEEl7y8PFRWVmLp0qUoLS3FyJEjsW7dOmRmZgKQFpxruqbLGWec4b2/a9cuvP7668jMzMShQ4cAAFVVVbjxxhtRVlYGs9mMM844A5s2bcL48eM78aeFnrzs/0m7CtAYAKdVqrowuBARUZRzuUWcqPdUXCIouAiiKIpKdyIYLBYLzGYzqqurYTKZwvKan3xfhhtf3YUxGQl479QfgNpjwB83A6mjwvL6REREoVJRa0P2I59CEIADj8yCRh2aXYL8/f7mXkWd4F3HxeoADAlSIyfoEhFRFyDPb+kRqwtZaAlE5PQkCsmTc2usTiAmQWrkWi5ERNQFeOe3RNCl0ACDS6eYvBUXZ6OKC9dyISKi6Nd4g8VIwuDSCXLF5ZTDBbeeO0QTEVHX4b0UOoIm5gIMLp0Sb2i4KMuu9QQXDhUREVEXwIpLF6RVqxCjVQMAbBpWXIiIqOuQKy6RtMEiwODSafJwUb3aKDVwjgsREXUBlXWRt8EiwODSaXJwqRO4QzQREXUdxyNwg0WAwaXTvGu5CPFSA4eKiIioC5A3WEyMoA0WAQaXTvOu5QJWXIiIqOvwznGJoA0WAQaXTpODS5XoCS6c40JERFGuzubEKYcLAC+H7nKMemmo6ITLs0O0tQroGts/ERFRNyVXW2K0asTp/d6POaQYXDpJrrhUysHFZQccpxTsERERUedUeK8oiqxqC8Dg0mny5NwKuw4QpDVdOEGXiIiiWcOquZE1vwVgcOk07+RcW6ONFjnPhYiIoph31dwIuxQaYHDpNJ8dog1mqZFXFhERURSrjNDl/gEGl07zruNidTTaIbpKsf4QERF1VkWEbrAIMLh0mqlxxUUeKmLFhYiIopg8VMQ5Ll1QQ8XF2ajiwjkuREQUvSJ1g0WAwaXTGua4OBrmuHCoiIiIopi8wSLnuHRB3k0W7S645YoLh4qIiCiKcY5LFxZvaFhR0KY1SndYcSEioijldLlxsl4eKmLFpcvRa9TQaaS30aqWgwvnuBARUXQ6We+AKAKCAPSIZcWlS5KvLKoT4qUGDhUREVGUkq8o6hmrg1olKNyb5hhcgkC+sqhWDi4cKiIioijVcEVR5A0TAQwuQSFP0LUgTmpgxYWIiKJUZQRvsAgwuASFHFyqRE9w4RwXIiKKUhURvMEiwOASFEa9NFR00hUjNTjqAJdDwR4REREFxrtqbgRusAgwuASFXHGpdBkaGjlcREREUUjeYDHJyIpLlyVPzrXYREDP1XOJiCh6yZNzWXHpwnyW/Y+RgwvnuRARUfSJ5A0WAQaXoDA23iFa3q+IQ0VERBSFKiJ4g0WAwSUo5OBSa2u8Q3SVYv0hIiIKhCiKEb3BIsDgEhTyHBdpqChBajx1UrkOERERBaDO7oLV4QbAdVy6NN+hogSpkXNciIgoyshXFMXq1IjVado5WhkMLkHQUHFpNMeFQ0VERBRlGhafi8xqC8DgEhTeJf99hoqqFOsPERFRIBoWn4vM+S0Ag0tQNJ6c69YnSI2suBARUZSJ9A0WAQaXoDB5hopEEbBpjVIj57gQEVGUkee4ROql0ACDS1DoNSpo1QIAoF6Ilxo5VERERFGmso5zXLoFQRC8E3RrVZ7gwqEiIiKKMsdrI3sNF4DBJWi8E3QRJzVwqIiIiKJMZYQv9w8wuASNHFyqRTm4WAC3W8EeERER+cc7OTdCN1gEGFyCJl4vBZeTYqynRQRsrLoQEVH0iPQNFgEGl6CR57hY7AKg9YQXTtAlIqIo4XS5cbLeAYBXFXULXPafiIii2Yl6aZhIJQAJsQwuXZ6p8UaLXPafiIiiTEWNFFx6xumgVgkK96Z1DC5B4lNx4bL/REQUZSrrIv9SaIDBJWhaHiqqUqw/RERE/qiMgg0WAQaXoDE2HiqSKy6c40JERFEiGjZYBBhcgqZhh2hnwxwXDhUREVGUqIiCDRYBBpegaai4cKiIiIiiT8OquRwq6hYa5rg4ODmXiIiijrzBYiSv4QIwuASNieu4EBFRFKuIgg0WgQCDy8qVK9GvXz8YDAZkZWVh8+bNrR5bWlqKK664AkOGDIFKpcKCBQtaPO7tt9/G8OHDodfrMXz4cLz77ruBdE0x8XrP7tA2J0SDSWrkUBEREUWJhquKulhwyc/Px4IFC7BkyRIUFhZiypQpmDVrFoqLi1s83mazISkpCUuWLMHo0aNbPGbbtm3Iy8vD3LlzsWfPHsydOxeXXXYZtm/f7m/3FCMPFbncImwaT3DhUBEREUUBURQbXVXUxYaKli9fjuuuuw7XX389hg0bhhUrViAjIwOrVq1q8fi+ffviqaeewtVXXw2z2dziMStWrMD06dOxePFiDB06FIsXL8Z5552HFStW+Ns9xcTq1N6VBmtV8VIjKy5ERBQFam1O2JxuAF1sqMhut2PXrl3Izc31ac/NzcXWrVsD7sS2bduanXPGjBltntNms8FisfjclCQIgneH6BrESY3WakAUFewVERFR++RhojidGjE6tcK9aZtfwaWiogIulwvJyck+7cnJySgrKwu4E2VlZX6fc9myZTCbzd5bRkZGwK8fLPJwUbXoCS5uJ2CvU7BHRERE7ZOX+4/0+S1AgJNzBcF38yVRFJu1hfqcixcvRnV1tfdWUlLSqdcPBnktl2qnFlBJ9zlcREREke54TXQs9w8AGn8OTkxMhFqtblYJKS8vb1Yx8UdKSorf59Tr9dDrIysZetdysXk2Wqw7Lk3QNacr2i8iIqK2RMsGi4CfFRedToesrCwUFBT4tBcUFGDSpEkBdyInJ6fZOT/55JNOnVMJXMuFiIiiUWVtdCw+B/hZcQGAhQsXYu7cucjOzkZOTg5efPFFFBcXY/78+QCkIZwjR45gzZo13ufs3r0bAFBbW4vjx49j9+7d0Ol0GD58OADgjjvuwFlnnYXHH38cc+bMwfvvv49PP/0UW7ZsCcKfGD4+Gy3K+xVxqIiIiCJctGywCAQQXPLy8lBZWYmlS5eitLQUI0eOxLp165CZmQlAWnCu6ZouZ5xxhvf+rl278PrrryMzMxOHDh0CAEyaNAlvvPEG7r33Xtx3330YMGAA8vPzMWHChE78aeFnbFxx4bL/REQUJbp0xQUAbr75Ztx8880tPrZ69epmbWIHLgm+5JJLcMkllwTSnYhhbHGoqEqx/hAREXWEt+LS1ea4UNvkZf8tjTda5BwXIiKKcPIGi9FwVRGDSxDJFZdaq7NhjguHioiIKMLJFZckVly6Fw4VERFRtHG43KiqdwDgUFG3Y5KvKrI5ODmXiIiiwknPMJFaJSAhRqtwb9rH4BJELVdcOMeFiIgi13HPMFHPOB1Uqs6tgh8ODC5B1LCOi5PruBARUVSQL4U+LS7yJ+YCDC5B1VBxcUDk5FwiIooC0bTcP8DgElRycHG4RNi1rLgQEVHkq4iiDRYBBpegitNpIG9obRHipDtOK+CwKtcpIiKiNlSw4tJ9qVQC4vVS1cXiNgDwpBhO0CUiogjlnePCikv31HBJtJsTdImIKOLJi88lRsEGiwCDS9DJFZcaK9dyISKiyOfdYNHIiku35Lvsf4LUyKEiIiKKUJXyBousuHRPvovQcaiIiIgilyiKqIiiDRYBBpegkxehs3CoiIiIIlyNzQm70w2AVxV1W9xokYiIooU8vyVer4FBq1a4Nx3D4BJkPsv+yxUXznEhIqII5J3fEiXDRACDS9A1XvYfXPafiIgimPdS6CgZJgIYXILOxKEiIiKKEhVRtsEiwOASdN6hIhsn5xIRUWRrWDWXFZduq8XJuadOKtchIiKiVshDRUmc49J9+UzO7dlPaiz/ASjfp2CviIhIaaIooqiiDqIoKt0Vr8o6eXIuKy7dls+S/z37A8PnABCBzx9RtmNERKSo1746jHP+vgFPfPKT0l3xqoiyDRYBBpegk4eKLFan1HDOEkBQAT9+CBzZpWDPiIhIKaIo4uUtRQCAFzcdRMmJeoV7JKmIsuX+AQaXoJN3h7Y73bA5XUDSEGD05dKDnz2sYM+IiEgp24tO4FClFFbsLjf+tn6/wj2SyJNzk6Jkg0WAwSXo4j0VF8Cz0SIAnL0IUGmBg18ARZsU6hkRESnlzR0lAIDxfXtCEIAP9hzFt79WKdonu9ON6lMOAKy4dGtqlYA4nbRsco0cXHpkAtl/kO5/9jAQQROziIgotKpPOfC/vaUAgMWzh+K3Z/QGADz6v32KTtQ9WS9VW9QqAeYYrWL98BeDSwj4XFkkm/JnQBMD/Po18NN6hXpGRETh9sGeo7A53RicHI8xGQn4c+4Q6DUqbC86gc/2lSvWr+M18vwWHVQqQbF++IvBJQR8lv33NiYDE+dL9z9/GHC7FegZERGFW/6OYgBA3rg+EAQBaQkxuPZMabmMZR/tg9OlzPdBZV30LT4HMLiERLMri2STbgf0ZuDYd8D37yjQMyIiCqfvjlTjuyMWaNWCd4gIAG6aOgA943T45Xgd8neWKNK3Su8+RdEzMRdgcAmJhqEih+8DsT2BybdJ9794FHA1eZyIiLqUNz2hJHdECno22g/IZNDi9nMHAgCeLDiAWpuzxeeHUjRusAgwuISEz7L/TU24CYhNBE4cBHa/HuaeERFRuFgdLrxXeAQAkJed0ezxKyZkou9psaioteHFTQfD3b2GfYqiaINFgMElJFqcnCvTxwNn/Vm6v/FxwGENY8+IiChcPv6uDBarE70TYnDmwMRmj+s0KiyaORQA8I9NB3HMEt7vg4oo3GARYHAJiRYn5zaW9QfAlA5YjgA7/xnGnhERUbjke9ZuuTQ7vdWrdmaOTEFWZg+ccrjwZEF4twKo4BwXkhn1bQwVAYDWAExdJN3f/ARgqwlTz4iIKBwOV9Zh28FKCAJwaQvDRDJBEHDPbKnq8ubOEuwvC9/3gbzBIue4kLfi0uZkq9FXAD0HAPUVwFfPh6lnREQUDvKk3CmDktA7IabNY7Mye2LWyBS4Reny6HCpjMINFgEGl5CQ57hYWhsqAgC1BjjnHun+1qeB+hNh6BkREYWa0+XGWzt/BQD8flzr1ZbG7po5FBqVgA37j+PLnytC2T0A0qaPlZzjQrI2rypqbMTFQPJIwGYBvnwqDD0jIqJQ2/jTcZTX2NAzTodpw5I79Jx+iXG4amImAOAv6/bB7Q7tVgAWqxN2z8J3vKqIWl/HpSmVCjj3Pun+9heAmrIQ94yIiELtDc+k3IvP6A2dpuNfs7efNwhGvQbfH7Xgvd1HQtU9AA2Lzxn1Ghi06pC+VrAxuIRAhysuADB4BpA+HnCeAjb9PcQ9IyKiUCqvseLzH6X9h/I6OEwk6xmnw03nDAAA/H39flgdrqD3T9aw3H90VVsABpeQMLW1jktTggCcd790f9dq4OShkPWLiIhC6+1dR+ByixjbJwGDko1+P//ayf2QZjbgaLUVr3x5KPgd9Kioic4rigAGl5CQKy6nHC44OrJ5Vr8pQP9zALcD2PB4iHtHREShIIqi92oif6stMoNWjT/lDgEArPziZ5zwVEaCrYIVF2os3hNcAKC2I1UXADjPM9fl2zeA8h9D0CsiIgqlr4tOoKiiDnE6NS4YlRbweX57Rm8MTzWhxubE058dCGIPG8hzXKLtiiKAwSUktGoVYjyTnTo0XAQAvbOAoRcAolvagJGIiKKKvMvzBaPSEKfXtHN061QqAffMHgYAeO2rwyiqqAtK/xqL1g0WAQaXkJGrLm2u5dLUufcCEIB9HwBHvglNx4iIKOgsVgfW7S0FAOSND2yYqLEzByXi7MFJcLpF/PXj4Ffh5TVcom25f4DBJWT8urJI1msYMCpPuv/5IyHoFRERhcIHu4/C6nBjUK94nJGREJRzLp49FCoB+Oi7Muw6HNxFSht2hmbFhTzktVzaXPa/JVPvBlQa4JfPgENbQtAzIiIKNnlDxbxxGRCEljdU9NfQFBMuyUoHADz6v30QxeAtShetGywCDC4hY2pvh+jW9OwHjL1Guv/Zw0AQP6hERBR83x+txt4j1dCqBVw8Nj2o5144fQgMWhW+Ka7Cx98Fb5HSCk7OpaYCGiqSnfV/gMYAlHwFHCgIcs+IiCiY3vRUW3KHp6BnkJfPTzEbcOOU/gCAxz/+EXZnB5bYaIfd6YbF893Eigt5GfUdXPa/JaZUYPyN0v3PlwLuzn9QiYgo+KwOF94tlJbnvyzAtVvac+PZA5AYr8Ohynq8vv1wp89XWSdVWzQqAeYYbafPF24MLiHSqYoLAJx5J6AzAmV7pauMiIgo4qz/vgwWqxO9E2Jw5sDEkLxGvF6DBdMGAwCe+uwA6vydO9lEw67QuqDNxwknBpcQkSfnWgINLrE9gYk3Sfe3PsO5LkREEUielHtJVjrUqtCFgN+Py0Df02Jxst6Bdwo7twGjd35LFF5RBDC4hIwx0Mm5jY2/AVDrgSM7gZLtQeoZEREFw+HKOmz9pRKCAFyaHdxJuU1p1CpcM6kvAOBfWw916gqjitroXe4fYHAJmU4PFQFAfC9g1GXS/W3PBqFXREQULG/t/BUAcObARKT3iA35612SlY44nRo/l9fiy58rAz6PvNx/UhReUQQEGFxWrlyJfv36wWAwICsrC5s3b27z+I0bNyIrKwsGgwH9+/fH888/7/P46tWrIQhCs5vVag2kexHBaOjE5NzGcm6Rfu77EDhxsJO9IiKiYHC63PjPLim4/H5cn7C8ptGgxe8867qs3noo4PNURvEGi0AAwSU/Px8LFizAkiVLUFhYiClTpmDWrFkoLi5u8fiioiLMnj0bU6ZMQWFhIe655x7cfvvtePvtt32OM5lMKC0t9bkZDIbA/qoIYApGxQWQVtMdOA2ACHz1fLuHExFR6G06cBxlFit6xGoxbXivsL3u1Tl9AQCf/XgMJSfqAzpHNK/hAgQQXJYvX47rrrsO119/PYYNG4YVK1YgIyMDq1atavH4559/Hn369MGKFSswbNgwXH/99bj22mvx97//3ec4QRCQkpLic4tm8cEKLgCQc6v0s/A14NTJzp+PiIg6RZ6Ue/HYdOg16rC97sBe8ZgyKBGiCLz6VWCXRld49ynqBsHFbrdj165dyM3N9WnPzc3F1q1bW3zOtm3bmh0/Y8YM7Ny5Ew5HwzBKbW0tMjMzkZ6ejgsuuACFhYVt9sVms8FisfjcIkmwhopEUQT6TwWSRwKOOmDnK0HoHRERBep4jQ2f7SsHIC3xH27XeKoub3xdjHq7//84rvRWXLrBUFFFRQVcLheSk5N92pOTk1FW1vJSxGVlZS0e73Q6UVFRAQAYOnQoVq9ejQ8++ABr166FwWDA5MmTceDAgVb7smzZMpjNZu8tIyP8H562yJNz6+wuuNz+z/52uty49729GPfop9h28ETDXJevXwSc9mB2lYiI/PDON7/C6RZxRp8EDE42hv31zxnaC316xsJideK9wqN+P9+7M3R3uhy66YI1oii2uYhNS8c3bp84cSKuuuoqjB49GlOmTMGbb76JwYMH45lnnmn1nIsXL0Z1dbX3VlJSEsifEjJycAH832jR6nBh/mvf4LWvilFRa8fd73wL69DfAvEpQE0p8P07we4uERF1gCiK3mGi3ytQbQEAtUrA1TmZAPy/NFoURe/KuYnGblBxSUxMhFqtblZdKS8vb1ZVkaWkpLR4vEajwWmnndZyp1QqjBs3rs2Ki16vh8lk8rlFEr1GDZ1Genv9GS6qrndg7svb8em+Y9BrVOgZp8Phynqs3FwiresCSJdGc0E6IqKw23n4JA5W1CFWp8b5o9IU68el2RmI0aqx/1gNvjp4osPPs5xywuGSvj+Cva9SuPgVXHQ6HbKyslBQ4LvxX0FBASZNmtTic3Jycpod/8knnyA7Oxtabct7JIiiiN27dyM1NdWf7kUcf68sOmax4rIXtmHHoZMwGjR49boJeOSikQCA5zf8gkP98gBtrLQNQNGmkPWbiIiac7rceM0zIfbCUWmI12vaeUbomGO0+O3Y3gCkqktHVXiqLUaDJqyTioPJ73d94cKFmDt3LrKzs5GTk4MXX3wRxcXFmD9/PgBpCOfIkSNYs2YNAGD+/Pl49tlnsXDhQtxwww3Ytm0bXn75Zaxdu9Z7zoceeggTJ07EoEGDYLFY8PTTT2P37t147rnngvRnKsNo0KKi1t6h4HLweC3mvvw1jlSdQpJRjzXXjsewVBNEUcTZg5Ow8afjWLL+CF4bcyWEHf+Qqi79zw7DX0FE1L243SKOVJ3CT8dq8GNZDX46VoP9ZTU4eLwOdpe06W2oNlT0xzU5ffH69mJ88kMZjlSdQu+EmHafU1ET3YvPAQEEl7y8PFRWVmLp0qUoLS3FyJEjsW7dOmRmSuNtpaWlPmu69OvXD+vWrcOdd96J5557DmlpaXj66afxu9/9zntMVVUVbrzxRpSVlcFsNuOMM87Apk2bMH78+CD8icrp6LL/e3+txrxXvkZlnR19T4vFq9dNQEZPaRVGQRCwdM4I5D65CV/+XInPhl6MaXgJOPAJcHw/kDQk5H8HEVFXJIoijtfa8FNZLfYfq8FPZTXYf6wGB47VoM7uavE5MVo1Zp2egrF9EsLb2RYMSTEip/9p2HawEq99dRiLZg5t9znRvvgcAAhiZzY8iCAWiwVmsxnV1dURM9/lype+wpc/V2JF3hhcdEbvFo/ZcqACf3x1J+rsLozsbcLqP4xv8dr6pz87gOUFPyHJqMfWvi9De2AdMPYa4DdPh/rPICLqMo5WncKLmw5iX6kFPx2rwcn6lv9hqVULGJAUjyEpRgxONmJIshFDUozonRADVQg3U/TX+u/L8MdXd6FHrBbbFp8Hg7bt4Z9Xtx3Cfe9/j5kjUvD83Kww9bJt/n5/KzdA1w0Y9W2v5fLht0dxZ/5uOFwiJg04DS/MzfKu/9LUH8/uj/cKj+BgRR3W4Hxch3XAnjeA8+4H4kKzlToRUVdSZ3Ni7svb8cvxOm+bSgD6JsZhcC8jBqfIASUemafFQauO/O38pg1LRu+EGBypOoUPdh9tdwjruHwpdJReUQQwuISUPFRkaWGOy6vbDuH+D76HKAKzT0/Bk3lj2pwopdeo8fBFI3HlS9vx6HcJuDx9NGKP7wF2vARMvTtkfwMRUVcgiiLueXcvfjleh2STHotmDsWQFCMGJMW3W6WIZGqVgLk5mXjsox+xeushXJqd3ubyJN7F56J0DReAu0OHVEvL/ouiiCcLfsJ970uh5aqJffDM5WM7NLt78sBEzBmTBrco4FnrTKnx638AjlMh6T8RUVfx+tfFeH/3UahVAp69YiwuHpuOEWnmqA4tsrzsDOg1KvxQasHOw21vC+NdfC6K57gwuIRQ02X/XW4R9773HZ76TFqfZsG0QXh4zkio/RgvXXL+MBgNGrxwfCRqDalAfQXw7ZvB7zwRURfx3ZFqPPTBDwCARTOHYFzfngr3KLh6xOlw0RhpHmV7u0bLi89F6waLAINLSMnruNTanLA5Xbht7Tf49/ZiCALw8EUjsWDa4DZLei3pZTTg/2YMgQtqrDo1XWrc9hzgdge7+0REUa/6lAM3/XsX7C43pg1Lxg1T+ivdpZC4ZlJfAMDH35WhrNra6nHRvsEiwOASUvIcl9JqK/7wyg6s21sGrVrAs5ePxdyJmQGf98oJmRiVbsYa21mwqmKBiv3Az58Gq9tERF2CKIr4v7f2oOTEKaT3iMETl472+x+L0WJ4mgnj+/WEyy3i39tb3zW6Iso3WAQYXEJKHir6uugEtv5SiTidGqv/MB7nj+rcisBqlYBHLhqJWiEWr9qnSo3bnu1kb4mIupaXtxThkx+OQadWYeWVY2GObfmqza5inqfq8vr2YlgdzdehsTld3jmX0brBIsDgElKNN1o8LU6HN27MweSBwbl0eVR6AuZOzMRq5wy4oAKKNgKl3wbl3ERE0W7X4RN47KMfAQD3XTAMo9ITlO1QGOQOT0aq2YDKOjv+921ps8fliblatQBTTPReVMzgEkIDe8VDoxKQ3iMG/7lpEk5PNwf1/H+eMQR2YzrWuTwrDH+1MqjnJyKKRifq7Lj19UI43SIuHJ2GqzoxNB9NNGqV92/917bmu0bLweW0OH1UD5kxuIRQqjkGX959Lj5deDb6JcYF/fwmgxb3nj8MLzlnAwDEvf8BLM1TNhFRd+F2i1iQvxul1Vb0T4zDsotPj+ovaX/9flwGdBoVvv21GoUlVT6PVdRF//wWgMEl5JJNhpCuE/Cb0WmIHzABX7uHQHA7IG5/IWSvRUQU6Z774mds+uk4DFoVVl41VtEdnJVwWrweF45KA9B812h5g8VovqIIYHCJeoIg4OE5I7HafQEAwPn1y4CtVuFeERGF39afK/Dkpz8BAB6eMxJDUyJj37pwkyfprttbivKahkuju8IGiwCDS5fQPykeg6ZcgiJ3MrQOC2w7X1W6S0REYVVuseL2N3bDLQKXZqXj0uy29+zpyk5PNyMrswccLhGvby/2tsvL/bPiQhHhpnOH4D3DHABA3aZnAHfLW7ITEXU1Tpcbt60tREWtDUNTjFg6Z6TSXVKcvCDdv7cXw+6UFiit6ALL/QMMLl2GQatG9kW3okqMQ0/bEZRs+4/SXSIiCovlBT9he9EJxOnUeO7KsYjRRf/+Q501a2QKehn1OF5jw0ffSRdtVHSBDRYBBpcuZcrwTGzvKVVdajesgNsttvMMIqLo9vmPx7Bywy8AgMd+NwoDkuIV7lFk0KpVuHKCdGm0vH+R93JoVlwokpxxySI4RDWGOX7Ap5/+T+nuEBGFzK8n63Fn/h4AwNU5mbhwdJrCPYosl0/IgFYtoLC4Ct/+WuXdYJFzXCii9OrdF0VpnnVdtj7rnYxFRNSV2J1u3Pp6IapPOTAq3Ywl5w9TuksRp5fRgPNPl7aYWf3lIW/FJdqDS/e6wL2b6H/B/wH/+C+miV/h2hc+gKFXP2hUKmjUgvRTJXjuC9CoVQ33vY+poFULiNVpcO7QXkgxG5T+k4iIfCz7aB92l1TBZNDguSvGQq/hvJaWzJvcD+/tPor39xyFyzN9oGdcdA8VMbh0QZreo2FJOxOmo1twedUL+PzEGNhFLezQoA7STzu0sIsa2KCV7kPjPUb+3QYt1CoVpg3rhSsmZGLKwESoVN1nBUoiikzr9pbilS8PAQCeuGwMMnrGKtuhCDYmIwGjMxKwx7OKrsmggU4T3YMtDC5dlOmcBcC/t2CmegdmqncEdA4bdHjTeRae/v5irP/+GPr0jMXl4/vg0uz0qC81ElH0qaq346XNRXhpy0EAwB/P6o/pw5MV7lXkmzcpE3fmVwEAEo3R//9uQWy6C1OUslgsMJvNqK6uhsnUPVdL9CGKwKa/A2XfAi474LR5floBpx1w2Rq1NfrpdjQ7lV1lwCvu2XjGOhu1iIVWLWDGiBRcMaEPcvqf1q32ASGi8Ks+5cA/txThn1uKUGNzAgDOGpyEl6/JhlYd3dWDcLA5XZj82OeoqLVjfN+eeHN+jtJd8uHv9zeDC/lyu6UQ47IBpXuATx8CjuwEANi0CXhNdykerzwTdmgBAP2T4nDF+D64JCsdCbHRPW5KRJGlxurA6i8P4R+bD8JilQLL0BQj7pw+GLnDk/mPJj8sL/gJT392ABef0RvL88Yo3R0fDC4MLsElisCPH0oBpvIAAMAe3xsf9JiHhw6PRI1d+vjoNCpccHoqrpzYB2P79OD/UIgoYHU2J1ZvlQJLVb1UBR7UKx53Th+MmSNSONcuAHanG/k7inHO0F5I7xFZc4IYXBhcQsPlBHb/G9jwGFBzVGpKGobNfW7GX3/pix/KaryHDkk24sqJfXDhqDT0iPLZ60QUPvV2J17ddhgvbDqIE54NAfsnxWHBtME4//RUqBlYuiQGFwaX0HKcAra/AGxZDlirAQBinxwcGPVnvHQoCR/sOQqrw+09vJdRj0HJ8RjUy4iBveIxqFc8BiUbo/5yPCIKHqvDhde+OoznN/7i3U+nX2Ic7jhvEC4cncbA0sUxuDC4hMepk8CWJ6UQ4/Rsmz5kNmom34O3S+Lxxo4S/NioCtPUaXE6Kch4Qs2gXvEYmByPpHh9u8NMbreIWrsTNVYnLKccqLE6UWN1wGKV7zvRI1aHC0enwmjQBvOvJuq2RFFEabUVe0qqsPvXKnx/xAK1SkCySY9kkwG9TAYkG6X7ySYDEuN10LQzcdbqcGHt18VYueEXHK+RFsvs0zMWt583CBeNSWv3+dQ1MLgwuIRX9RFg42NA4WuA6AYEFTD6CuCcxajRJ+OX43U4cKwGP5fX4kB5LQ6U16DkxKlWT2eO0WJQr3j0TYyDyy16g4kcSixWB2ptTnTkUxuv1yBvXAbmTerLdR6I/FR9yoFvf62SgkpJNfb8WuUNFx0hCNIKrckmPZKNnmBjkoONHiUnTmHVhl9QZpH+4dM7IQa3nzcQF49N55VC3QyDC4OLMo7vBz5bKk3kBQC1Hhh/AzDlT0BsT59D6+1OHDxehwPlNThwTAo0P5fX4nBlHfzZF1KnVsEUo4HRoIXJIP00GjQwGjTYdfgkfjleBwBQCUDu8BRcN6UfsjM5cZioKZvThR+OWrCnpAp7fq3GnpIqHKyoa3acWiVgSLIRozMSMCrdDLUgoLzGimMWG45ZrDhWY0O5xYryGpt3ldb2pJoNuPXcgbg0KyPqF0ajwDC4MLgoq2QH8OmDwOEt0u96EzD5DmDiTYAurs2nWh0uFFXU4UB5LQ5X1MGgVXuCiLbFgGLQtr7Et9stYtOB43h5SxE2H6jwto9KN+Payf0w+/RU/k+SuiVRFHG4sh7fFJ/E7hKpovJDqQUOV/Ovgj49YzE6IwGj080Yk5GAEWlmxOjaX1rf5RZxos6OYxarb7CxSMHmWI0VLjdw+fgM5I3L4HL93RyDC4OL8kQR+PlTKcAc+05qi08Gzr4LGHsNoA7vvJOfjtXgn1uK8E7hEdid0sThZJMeV+f0xRXj+/DKJ+rSTtld2PNrFb4pPolvDp9EYXEVKj1X7DTWM06H0elmKahkJGB0egIn0VNYMLgwuEQOtxv47j/A548AVYeltp79gXPvBYb/FlCFt+JRWWvD69uLsearw96xeoNWhYvHpuPayf0wsFd8wOd2u0WcqJf+halVqzCoVzyHpCjsRFHErydPeUPKruKT2Fda02zYRqdWYURvE8b26YExGQkYk5GA9B4x/MySIhhcGFwij9MO7HoF2PhXoN4zbJM6Gpj2IDDg3LB3x+Z04X/fluLlLUX4/qjF2z51SBKundwPUwYlev8HLooiLKecOFZj9Za6j1msUrnbYkOZ5355jQ3ORl8OI3ubcPXEvrhwdFqHSutE8v+K5f8ji03afduknw6XGz+UWvDN4ZP4pvgkdh2uQkVt8wm0ySY9sjJ7YGyfHjijTw+M7G3i8AxFDAYXBpfIZasBtj0HbH0GsNdKbf3OBqY9APTOCnt3RFHE9qITeHlLET7dd8z7ZTCwVzx6xuq8YaXxujTtSYzXwWJ1eoekzDFaXJqVjqsmZqJvYttzfKh7OFlnx7aDldh8oAJf/lyB4hP1QT2/RiVgRJoJYz1BZWxmD6SZDaymUMRicGFwiXx1FdIGkDteatjUcfgc4Nz7gcSBinTpUEUdVm89hLd2lqDO7mr2uDlG27BehdGAFHPDfbk9MV4PnUaFE3V2vLmzBK99dRi/nmy49PvswUmYOzET5wztxQW1uhGrw4Vdh09iy88V2HKgAt8dre7Q5fwdlRivR1ZmgjeknN7b3ObEdaJIw+DC4BI9Th4GvvgL8G0+ABEQ1MDYucDZdwOmVEW6VH3Kgc9/PAatWiWtN2E0oJdJH9AXgcstYsP+crz61WFs/Om498sqvUcMrpyQicuy03FafPRvMU++3G4RP5RasOVnqaLyddEJ2Jy+VbvByfGYPDARZw5MxMjeZm+QleOsXB0RIK2HIt333vEcI92N12tYTaGoxuDC4BJ9yr4DPn8Y+Olj6XdNDDBxPpD1B6BHprJ9C5LDlXV47avDeHPnr6g+JVWZ5I0p5+ZkYkxGAr98oljJiXqpovJzBbb+XIGTno0BZb2Mepw5SAoqkwcmItlkUKinRJGHwYXBJXod3ipdQl2yvaEtaRgweAYweCaQPg5QaxTrXjBYHS58sOcoXt12GHuPVHvbT+9txtyJmfjNmLSoK/OLoginW4RbFCN+wqcoSuuLSJOqpcnVZdVWWKwOuNwiHC4RTpcbTrcIh8sNp0uE0+2W2uWfLnfDsW43aqxOlFZbfV4nTqfGxP6necPKQF5lRtQqBhcGl+gmilLlZeszQPFXgNhovokhARg0XQoxA85ttiJvNBFFEXt+rcaabYfw4belPpN5G1+W3TB0IP/eZLig0TkbHyMI8lCC0NAuCN6hB6HJ7/Ac53aLsLvccLikL2mHyw27U/rd6RbhcLph97Q7Gh0nM2hV6BGrQ0KsDj1itegR5/npaesZp/U8JrUnxOpgMgRnqMPqcKGs2ooyi3wFmBVl1dJVYHJbucUGu6vjk607Sq0ScEZGgjeojM5I4LL1RB3E4MLg0nXUnwB++VwKMgcKAGtVw2OCCsiY6KnGzACShjZ8c0eZ1ibzdhcalYCEWK23WiOKIkRIGVZEwyXCchsg+lwyLIoinC4RNTZnh18zMV7nmWQtbQiYEKuFViVAo1ZBoxagVamgVgnQqj1tKgFaz2MalcrbrlUJ0GlUGJJi5IaeRAFicGFw6ZpcTuDXHZ4Q8wlQ/oPv4wl9pErMoBlA3zMBbfTNIXC5Rew4dAJV9Q40rNjR0roe8u8tH9N4PRDR8yXf9HHP93/D457jNSoBWo30Ja1Vq6Dz/NSohYbfNUKLjwGA5ZQDJ+vtOFnvQFW9HSfqGu6frHfgZJ0dJ+vtqKqXjqtv4QquzojRqpFiNqCXUY8UswEpnp2KpYDScCUYt3sgihwMLgwu3cPJw1KA+Wk9ULQJcDVadEsbK1Vhzl4E9BqmXB+pXVaHyxti5OGy5kNcnp+tDYEBUKkEJMbrgzbsREThw+DC4NL92OuAgxuBA+ulIFNT6nlAAEZfDpyzWKrIEBFRxGFwYXDp3kQROFoIbFkO7Puv1KbWAeOuB6b8CYhLVLZ/RETkw9/vbw70UtciCEDvsUDea8D1nwN9pwAuO/DVSuCpMcCGx6WtB4iIKCoxuFDXlZ4FXPNf4Kp3gJRRgL0G2PAXKcBsf0Ha/JGIiKIKgwt1bYIADDwPuHEjcMk/gZ79pR2qP7oLeDYL2JMPuIO/rgcREYUGgwt1DyoVMPJ3wC1fA+cvB+KTgapi4N0bgRemSJN6u8Z0LyKiLo3BhboXtRYYdx1weyFw3v2A3gwc+w54/TLgldlA8fb2z0FERIrhVUXUvdWfAL5c4Znz4tlvZvAsIGO8dF8QAAiNVuUV2m9TqQFdPKCL89xauK8xRO1Kv0REwcTLoRlcKBDVR4CNjwOFr/nujxQqQtNw0yjUqDqxkaQcnFSaRrcWfhdaOUZQeVZ4U8EbxARVw7m97apGYa3pc+Tf5fuqJo+pWj4GQvO/xbeh7cebvY7QSr9aOK5xEG0WSBvfb3yM0PC6WoO08KFax0BK5CcGFwYX6ozjPwG7XgGsFk+DvF6+vGa+2KityeNym9shLYrnvdU23HfUh/XPoTAT1FKA0cVKP733YwBtXAv3gxF22ghoQCvBsmlga6GS2GqVsaWqo+c4n2618ljT87YbcFsJwnL4VmuahPBGN7XWE8gZJiOZv9/fnfinHVEXlDQYmLksdOd3u1oPNfYa6ae7MxUfUXq+2wW4nY1uHfndAYjuRkGshfuNQ5ro9r3f7PfGz3W3cJzcjuZVLp9/T4kdbBd9X6dpX3xet+nvaDgerd1vEl7l+6K7of+iy/PfkWsFRRRBBai0TaqOnQgzjcOToJIm//v8rm70u9Dk99ZCo3zutkKiIAVdvbGFmwkwmJq36Y2ARt+Zdy/iMLgQhZNKLf3PxcCqYJfickjVNHu99LOt+01/7/R6Qq2FscZtaCNAtlZFRBvVxsbHo+EY768dCJ5Ng6O3fy2F20bBWQ6Kolt63+XQLYfwFt8it7SfWeM9zboTOezo4qUQo9I2qlRpGypTjatUam1D2FM3Om7CH4EefRX9cwIKLitXrsTf/vY3lJaWYsSIEVixYgWmTJnS6vEbN27EwoUL8f333yMtLQ133XUX5s+f73PM22+/jfvuuw+//PILBgwYgEcffRS//e1vA+keEVF4qbWA2gwYzEr3pHsTxSbVRE+wcTmaVBhbCTj+vI4cntyuFn5vFK7c7ia/u9DhwNj0JyBdRGCrlVYA994sTX56bvZa6TkuO1BfKd06a8TF0Rdc8vPzsWDBAqxcuRKTJ0/GCy+8gFmzZuGHH35Anz7NN7IrKirC7NmzccMNN+C1117Dl19+iZtvvhlJSUn43e9+BwDYtm0b8vLy8PDDD+O3v/0t3n33XVx22WXYsmULJkyY0Pm/koiIuj5BkKoDag4mAPAMTTcJOS67b5BzOaSA53I2VK5cTX42Ps6UpvRf5f/k3AkTJmDs2LFYtWqVt23YsGG46KKLsGxZ87kBixYtwgcffIB9+/Z52+bPn489e/Zg27ZtAIC8vDxYLBZ89NFH3mNmzpyJHj16YO3atR3qFyfnEhERRZ+QbrJot9uxa9cu5Obm+rTn5uZi69atLT5n27ZtzY6fMWMGdu7cCYfD0eYxrZ0TAGw2GywWi8+NiIiIuja/gktFRQVcLheSk5N92pOTk1FWVtbic8rKylo83ul0oqKios1jWjsnACxbtgxms9l7y8jI8OdPISIioigU0JL/QpPLyERRbNbW3vFN2/095+LFi1FdXe29lZSUdLj/REREFJ38msGUmJgItVrdrBJSXl7erGIiS0lJafF4jUaD0047rc1jWjsnAOj1euj1XevadCIiImqbXxUXnU6HrKwsFBQU+LQXFBRg0qRJLT4nJyen2fGffPIJsrOzodVq2zymtXMSERFR9+T3NWMLFy7E3LlzkZ2djZycHLz44osoLi72rsuyePFiHDlyBGvWrAEgXUH07LPPYuHChbjhhhuwbds2vPzyyz5XC91xxx0466yz8Pjjj2POnDl4//338emnn2LLli1B+jOJiIioK/A7uOTl5aGyshJLly5FaWkpRo4ciXXr1iEzMxMAUFpaiuLiYu/x/fr1w7p163DnnXfiueeeQ1paGp5++mnvGi4AMGnSJLzxxhu49957cd9992HAgAHIz8/nGi5ERETkg5ssEhERkWJCuo4LERERkZIYXIiIiChqMLgQERFR1GBwISIioqjB4EJERERRo8vs/S1fHMXNFomIiKKH/L3d0Yucu0xwqampAQButkhERBSFampqYDab2z2uy6zj4na7cfToURiNxjY3Z/SXxWJBRkYGSkpKuD6MH/i+BYbvm//4ngWG71tg+L4Fpq33TRRF1NTUIC0tDSpV+zNYukzFRaVSIT09PWTnN5lM/JAGgO9bYPi++Y/vWWD4vgWG71tgWnvfOlJpkXFyLhEREUUNBhciIiKKGgwu7dDr9XjggQeg1+uV7kpU4fsWGL5v/uN7Fhi+b4Hh+xaYYL5vXWZyLhEREXV9rLgQERFR1GBwISIioqjB4EJERERRg8GFiIiIogaDSztWrlyJfv36wWAwICsrC5s3b1a6SxHtwQcfhCAIPreUlBSluxVRNm3ahAsvvBBpaWkQBAHvvfeez+OiKOLBBx9EWloaYmJiMHXqVHz//ffKdDaCtPe+zZs3r9lnb+LEicp0NkIsW7YM48aNg9FoRK9evXDRRRdh//79Psfw89ZcR943ft6aW7VqFUaNGuVdZC4nJwcfffSR9/FgfdYYXNqQn5+PBQsWYMmSJSgsLMSUKVMwa9YsFBcXK921iDZixAiUlpZ6b3v37lW6SxGlrq4Oo0ePxrPPPtvi43/961+xfPlyPPvss9ixYwdSUlIwffp0735c3VV77xsAzJw50+ezt27dujD2MPJs3LgRt9xyC7766isUFBTA6XQiNzcXdXV13mP4eWuuI+8bwM9bU+np6Xjsscewc+dO7Ny5E+eeey7mzJnjDSdB+6yJ1Krx48eL8+fP92kbOnSoePfddyvUo8j3wAMPiKNHj1a6G1EDgPjuu+96f3e73WJKSor42GOPedusVqtoNpvF559/XoEeRqam75soiuI111wjzpkzR5H+RIvy8nIRgLhx40ZRFPl566im75so8vPWUT169BBfeumloH7WWHFphd1ux65du5Cbm+vTnpubi61btyrUq+hw4MABpKWloV+/fvj973+PgwcPKt2lqFFUVISysjKfz51er8fZZ5/Nz10HbNiwAb169cLgwYNxww03oLy8XOkuRZTq6moAQM+ePQHw89ZRTd83GT9vrXO5XHjjjTdQV1eHnJycoH7WGFxaUVFRAZfLheTkZJ/25ORklJWVKdSryDdhwgSsWbMG69evxz/+8Q+UlZVh0qRJqKysVLprUUH+bPFz579Zs2bh3//+Nz7//HM88cQT2LFjB84991zYbDaluxYRRFHEwoULceaZZ2LkyJEA+HnriJbeN4Cft9bs3bsX8fHx0Ov1mD9/Pt59910MHz48qJ+1LrM7dKgIguDzuyiKzdqowaxZs7z3Tz/9dOTk5GDAgAH417/+hYULFyrYs+jCz53/8vLyvPdHjhyJ7OxsZGZm4n//+x8uvvhiBXsWGW699VZ8++232LJlS7PH+HlrXWvvGz9vLRsyZAh2796NqqoqvP3227jmmmuwceNG7+PB+Kyx4tKKxMREqNXqZkmwvLy8WWKk1sXFxeH000/HgQMHlO5KVJCvwOLnrvNSU1ORmZnJzx6A2267DR988AG++OILpKene9v5eWtba+9bS/h5k+h0OgwcOBDZ2dlYtmwZRo8ejaeeeiqonzUGl1bodDpkZWWhoKDAp72goACTJk1SqFfRx2azYd++fUhNTVW6K1GhX79+SElJ8fnc2e12bNy4kZ87P1VWVqKkpKRbf/ZEUcStt96Kd955B59//jn69evn8zg/by1r731rCT9vLRNFETabLbiftSBNHO6S3njjDVGr1Yovv/yy+MMPP4gLFiwQ4+LixEOHDindtYj1pz/9SdywYYN48OBB8auvvhIvuOAC0Wg08j1rpKamRiwsLBQLCwtFAOLy5cvFwsJC8fDhw6IoiuJjjz0mms1m8Z133hH37t0rXn755WJqaqposVgU7rmy2nrfampqxD/96U/i1q1bxaKiIvGLL74Qc3JyxN69e3fr9+2mm24SzWazuGHDBrG0tNR7q6+v9x7Dz1tz7b1v/Ly1bPHixeKmTZvEoqIi8dtvvxXvueceUaVSiZ988okoisH7rDG4tOO5554TMzMzRZ1OJ44dO9bncjhqLi8vT0xNTRW1Wq2YlpYmXnzxxeL333+vdLciyhdffCECaHa75pprRFGULlF94IEHxJSUFFGv14tnnXWWuHfvXmU7HQHaet/q6+vF3NxcMSkpSdRqtWKfPn3Ea665RiwuLla624pq6f0CIL7yyiveY/h5a669942ft5Zde+213u/LpKQk8bzzzvOGFlEM3mdNEEVRDLACRERERBRWnONCREREUYPBhYiIiKIGgwsRERFFDQYXIiIiihoMLkRERBQ1GFyIiIgoajC4EBERUdRgcCEiIqKoweBCREREUYPBhYiIiKIGgwsRERFFDQYXIiIiihr/D9JYi9Ggyvw3AAAAAElFTkSuQmCC",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
"source": [
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
@@ -1953,8 +2469,8 @@
"\n",
"\n",
"np.random.seed(2018)\n",
- "n = 50\n",
- "maxdegree = 5\n",
+ "n = 70\n",
+ "maxdegree = 30\n",
"# Make data set.\n",
"x = np.linspace(-3, 3, n).reshape(-1, 1)\n",
"y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2)+ np.random.normal(0, 0.1, x.shape)\n",
@@ -2705,13 +3221,121 @@
},
{
"cell_type": "code",
- "execution_count": 12,
+ "execution_count": 2,
"id": "bce32748",
"metadata": {
"collapsed": false,
- "editable": true
+ "editable": true,
+ "jupyter": {
+ "outputs_hidden": false
+ }
},
- "outputs": [],
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Theta values for own Ridge implementation\n",
+ "[ 1.03032441e+00 6.28336218e-02 -6.24175744e-01 5.21169159e-02\n",
+ " 2.80847477e-01 2.12552073e-01 8.13220608e-02 -1.69634577e-02\n",
+ " -6.50846112e-02 -7.38962192e-02 -5.94226022e-02 -3.50227564e-02\n",
+ " -9.80609616e-03 1.08299273e-02 2.41882037e-02 2.93492130e-02\n",
+ " 2.64742912e-02 1.63249532e-02 -5.01831251e-05 -2.15098090e-02]\n",
+ "Theta values for Scikit-Learn Ridge implementation\n",
+ "[ 1.03032441e+00 6.28336218e-02 -6.24175744e-01 5.21169159e-02\n",
+ " 2.80847477e-01 2.12552073e-01 8.13220608e-02 -1.69634577e-02\n",
+ " -6.50846112e-02 -7.38962192e-02 -5.94226022e-02 -3.50227564e-02\n",
+ " -9.80609615e-03 1.08299273e-02 2.41882037e-02 2.93492130e-02\n",
+ " 2.64742912e-02 1.63249532e-02 -5.01831207e-05 -2.15098090e-02]\n",
+ "MSE values for own Ridge implementation\n",
+ "4.3632959215700067e-07\n",
+ "MSE values for Scikit-Learn Ridge implementation\n",
+ "4.363295916323784e-07\n",
+ "Theta values for own Ridge implementation\n",
+ "[ 1.03630548 -0.01963611 -0.37900111 -0.07062318 0.12182967 0.16343471\n",
+ " 0.13003291 0.07490892 0.02365049 -0.01449782 -0.03814292 -0.04909093\n",
+ " -0.05009826 -0.04389027 -0.03279636 -0.01866537 -0.00289724 0.01348565\n",
+ " 0.02976145 0.04543942]\n",
+ "Theta values for Scikit-Learn Ridge implementation\n",
+ "[ 1.03630548 -0.01963611 -0.37900111 -0.07062318 0.12182967 0.16343471\n",
+ " 0.13003291 0.07490892 0.02365049 -0.01449782 -0.03814292 -0.04909093\n",
+ " -0.05009826 -0.04389027 -0.03279636 -0.01866537 -0.00289724 0.01348565\n",
+ " 0.02976145 0.04543942]\n",
+ "MSE values for own Ridge implementation\n",
+ "5.194042827197027e-06\n",
+ "MSE values for Scikit-Learn Ridge implementation\n",
+ "5.1940428268204826e-06\n",
+ "Theta values for own Ridge implementation\n",
+ "[ 1.04220758 -0.10931453 -0.17641709 -0.06020587 0.02208512 0.05789007\n",
+ " 0.06491736 0.05785343 0.04537385 0.03196357 0.01969145 0.00934499\n",
+ " 0.00107405 -0.00526348 -0.00992331 -0.01318643 -0.01531845 -0.01655318\n",
+ " -0.01708852 -0.01708781]\n",
+ "Theta values for Scikit-Learn Ridge implementation\n",
+ "[ 1.04220758 -0.10931453 -0.17641709 -0.06020587 0.02208512 0.05789007\n",
+ " 0.06491736 0.05785343 0.04537385 0.03196357 0.01969145 0.00934499\n",
+ " 0.00107405 -0.00526348 -0.00992331 -0.01318643 -0.01531845 -0.01655318\n",
+ " -0.01708852 -0.01708781]\n",
+ "MSE values for own Ridge implementation\n",
+ "2.0940821989643363e-05\n",
+ "MSE values for Scikit-Learn Ridge implementation\n",
+ "2.094082198961999e-05\n",
+ "Theta values for own Ridge implementation\n",
+ "[ 1.01219292 -0.06043581 -0.10391807 -0.05651951 -0.01898855 0.00312361\n",
+ " 0.01463049 0.01975848 0.02123176 0.02068067 0.01905883 0.01691985\n",
+ " 0.01458337 0.01223198 0.00996754 0.00784393 0.00588657 0.00410387\n",
+ " 0.00249435 0.00105081]\n",
+ "Theta values for Scikit-Learn Ridge implementation\n",
+ "[ 1.01219292 -0.06043581 -0.10391807 -0.05651951 -0.01898855 0.00312361\n",
+ " 0.01463049 0.01975848 0.02123176 0.02068067 0.01905883 0.01691985\n",
+ " 0.01458337 0.01223198 0.00996754 0.00784393 0.00588657 0.00410387\n",
+ " 0.00249435 0.00105081]\n",
+ "MSE values for own Ridge implementation\n",
+ "0.0003153514830957865\n",
+ "MSE values for Scikit-Learn Ridge implementation\n",
+ "0.00031535148309580783\n",
+ "Theta values for own Ridge implementation\n",
+ "[ 8.38916861e-01 1.31276579e-01 8.97497404e-03 -1.72271878e-02\n",
+ " -2.11744554e-02 -1.91492986e-02 -1.57201944e-02 -1.23002365e-02\n",
+ " -9.30466214e-03 -6.81048318e-03 -4.78184120e-03 -3.15130074e-03\n",
+ " -1.84923989e-03 -8.13661243e-04 7.46984697e-06 6.56636616e-04\n",
+ " 1.16805821e-03 1.56912044e-03 1.88168312e-03 2.12318726e-03]\n",
+ "Theta values for Scikit-Learn Ridge implementation\n",
+ "[ 8.38916861e-01 1.31276579e-01 8.97497404e-03 -1.72271878e-02\n",
+ " -2.11744554e-02 -1.91492986e-02 -1.57201944e-02 -1.23002365e-02\n",
+ " -9.30466214e-03 -6.81048318e-03 -4.78184120e-03 -3.15130074e-03\n",
+ " -1.84923989e-03 -8.13661243e-04 7.46984697e-06 6.56636616e-04\n",
+ " 1.16805821e-03 1.56912044e-03 1.88168312e-03 2.12318726e-03]\n",
+ "MSE values for own Ridge implementation\n",
+ "0.015072388895177157\n",
+ "MSE values for Scikit-Learn Ridge implementation\n",
+ "0.0150723888951771\n",
+ "Theta values for own Ridge implementation\n",
+ "[0.37396662 0.14174745 0.0764924 0.04892055 0.03447512 0.02586427\n",
+ " 0.02024962 0.01633913 0.01347916 0.0113104 0.0096208 0.00827728\n",
+ " 0.00719176 0.00630331 0.00556826 0.0049544 0.00443743 0.0039987\n",
+ " 0.0036237 0.003301 ]\n",
+ "Theta values for Scikit-Learn Ridge implementation\n",
+ "[0.37396662 0.14174745 0.0764924 0.04892055 0.03447512 0.02586427\n",
+ " 0.02024962 0.01633913 0.01347916 0.0113104 0.0096208 0.00827728\n",
+ " 0.00719176 0.00630331 0.00556826 0.0049544 0.00443743 0.0039987\n",
+ " 0.0036237 0.003301 ]\n",
+ "MSE values for own Ridge implementation\n",
+ "0.26409315307910036\n",
+ "MSE values for Scikit-Learn Ridge implementation\n",
+ "0.26409315307910025\n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAGwCAYAAABB4NqyAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAABThUlEQVR4nO3deVxU9eL/8deArCK4oKAJuGSuaYqoaG4Vy2hdMyvvrSxLLW/lkr82rq1+b9ert2umZdomeculrpZmDIqVOymaaLllpmEKmRu4scic3x/qXEcWAcEDzPv5eMxD58xnzrxnonh35vM5x2IYhoGIiIiIC3EzO4CIiIjItaYCJCIiIi5HBUhERERcjgqQiIiIuBwVIBEREXE5KkAiIiLiclSARERExOXUMDtAZWS32zl06BC1atXCYrGYHUdERERKwDAMTp48SaNGjXBzK/4YjwpQIQ4dOkRISIjZMURERKQMDhw4QOPGjYsdowJUiFq1agHnP0B/f3+T04iIiEhJZGVlERIS4vg9XhwVoEJc/NrL399fBUhERKSKKcn0FU2CFhEREZejAiQiIiIuRwVIREREXI7mAF2F/Px88vLyzI4hUmE8PDxwd3c3O4aISLlTASoDwzDIyMjgxIkTZkcRqXC1a9cmODhY58QSkWpFBagMLpafBg0a4Ovrq18MUi0ZhsGZM2c4fPgwAA0bNjQ5kYhI+VEBKqX8/HxH+alXr57ZcUQqlI+PDwCHDx+mQYMG+jpMRKoNTYIupYtzfnx9fU1OInJtXPxZ13w3EalOVIDKSF97iavQz7qIVEcqQCIiIuJyVIBERETE5agAiRRh//79WCwWUlNTixyzcuVKLBaLTokgIlLFqAC5kKFDh2KxWBg5cmSBxx5//HEsFgtDhw51bDt8+DCPPfYYoaGheHl5ERwcTExMDMnJyY4xTZo0wWKxFLj985//vBZvqcz69OnjyOrp6Unz5s2Ji4sjJyfHMSYkJIT09HTatWtnYtKiP+OLtz59+pR533369GHs2LHlllVE5ErO5WazPmEW53KzTc2hZfAuJiQkhPnz5/PGG284ljhnZ2czb948QkNDncYOGjSIvLw8PvroI5o1a8bvv//O119/zbFjx5zGTZgwgREjRjhtq1WrVsW+kXIwYsQIJkyYQG5uLikpKTz88MMATJw4EQB3d3eCg4PNjAhASkoK+fn5AKxfv55Bgwaxe/du/P39AfD09DQznohIqXy3/EN6bn6C678exU//ysbiZs6xGB0BKg+GAadPm3MzjFJF7dSpE6GhoSxatMixbdGiRYSEhNCxY0fHthMnTrB27VomTZpE3759CQsLo0uXLsTFxdG/f3+nfdaqVYvg4GCnW82aNYvMcPz4cR588EHq1KmDr68vVquVPXv2XPgoDerXr8/ChQsd42+66SYaNGjguJ+cnIyHhwenTp0Czq9Sev/99xk4cCC+vr60aNGCJUuWXPGz8PX1JTg4mNDQUAYNGkRUVBTLly93PF7YV2AJCQnccMMN+Pj40LdvX/bv319gv++99x4hISH4+voycOBApkyZQu3atZ3GfPnll4SHh+Pt7U2zZs149dVXOXfuXKE569ev7/hc69atC0CDBg0c23bt2kWvXr3w8fEhJCSE0aNHc/r0acfzZ8yYQYsWLfD29iYoKIi7774bOH9EcNWqVbz55puOo0mFvR8RkfJk2/gJAJ1paFr5ARWg8nHmDPj5mXM7c6bUcR9++GFmz57tuP/hhx/yyCOPOI3x8/PDz8+PL774wulrofIwdOhQNm3axJIlS0hOTsYwDPr160deXh4Wi4VevXqxcuVK4HxZ2rFjB3l5eezYsQM4P+8mPDwcPz8/xz5fffVV7r33XrZt20a/fv24//77CxypKs7WrVtZt24dHh4eRY45cOAAd911F/369SM1NZXhw4fz/PPPO41Zt24dI0eOZMyYMaSmphIVFcVrr73mNGbZsmU88MADjB49mh07djBr1izi4+MLjCuJH374gZiYGO666y62bdvGggULWLt2LU8++SQAmzZtYvTo0UyYMIHdu3eTmJhIr169AHjzzTeJjIxkxIgRpKenk56eTkhISKkziIiUhu3kFgCszWLMDWJIAZmZmQZgZGZmFnjs7Nmzxo4dO4yzZ8/+b+OpU4Zx/ljMtb+dOlXi9/XQQw8ZAwYMMP744w/Dy8vL2Ldvn7F//37D29vb+OOPP4wBAwYYDz30kGP8f//7X6NOnTqGt7e30b17dyMuLs7YunWr0z7DwsIMT09Po2bNmk63b7/9ttAMP/30kwEY69atc2w7cuSI4ePjY3z66aeGYRjGtGnTjHbt2hmGYRhffPGF0blzZ+Ouu+4y3n77bcMwDCM6Otp47rnnHM8HjBdeeOGSfxynDIvFYthstiI/i969exseHh5GzZo1DU9PTwMw3NzcjP/+97+OMfv27TMAY8uWLYZhGEZcXJzRunVrw263O8Y899xzBmAcP37cMAzDGDx4sNG/f3+n17r//vuNgIAAx/2ePXsa//jHP5zG/Oc//zEaNmxYZN6Lvv32W6fXGzJkiPHoo486jVmzZo3h5uZmnD171li4cKHh7+9vZGVlFfk5jBkzptjXLPRnXkSkDNL3bjV4BYNXMDJ++aHc91/c7+/LaQ5QefD1hQtfx5jy2qUUGBhI//79+eijjzAMg/79+xMYGFhg3KBBg+jfvz9r1qwhOTmZxMREJk+ezPvvv+80WfqZZ55xug9w3XXXFfraO3fupEaNGnTt2tWxrV69erRs2ZKdO3cC5yfmjhkzhiNHjrBq1Sr69OlDaGgoq1at4tFHH2X9+vUFJu62b9/e8feaNWtSq1YtxzWsinL//fczfvx4srKymDRpEv7+/gwaNKjI8Tt37qRbt25OJwaMjIx0GrN7924GDhzotK1Lly4sXbrUcX/z5s2kpKQ4HfHJz88nOzubM2fOlOos45s3b+bnn3/mk08+cWwzDAO73c6+ffuIiooiLCyMZs2aERsbS2xsrOOrQhGRa22ZbToA4Sd8CWpq7gITFaDyYLFAMXNeKqNHHnnE8TXJ22+/XeQ4b29voqKiiIqK4qWXXmL48OG8/PLLToUnMDCQ66+/vkSvaxQxZ8kwDEexaNeuHfXq1WPVqlWsWrWKCRMmEBISwmuvvUZKSgpnz57l5ptvdnr+5V9dWSwW7HZ7sVkCAgIcuT/++GPatm3LBx98wLBhw0qVvaj3UdTz7HY7r776KnfddVeB53t7e1/xNS7f12OPPcbo0aMLPBYaGoqnpyfff/89K1euZPny5bz00ku88sorpKSkFJiXJCJS0Wx7l0EAWP07mR1Fc4BcVWxsLLm5ueTm5hITU/LvYdu0aeM0wba02rRpw7lz59iwYYNj29GjR/npp59o3bo1gGMe0OLFi/nxxx/p2bMnN954I3l5ecycOZNOnTqV+yozDw8P/va3v/HCCy9wpoh5VW3atOG7775z2nb5/VatWrFx40anbZs2bXK636lTJ3bv3s31119f4OZWygmBnTp1Yvv27YXu6+LqsBo1anDbbbcxefJktm3bxv79+/nmm2+A8yvILq4wExGpSOdys1nu9RsA1q4PmJxGBchlubu7s3PnTnbu3FnoFb6PHj3KLbfcwscff8y2bdvYt28fn332GZMnT2bAgAFOY0+ePElGRobTLSsrq9DXbdGiBQMGDGDEiBGsXbuWrVu38sADD3Ddddc57bdPnz7MnTuX9u3b4+/v7yhFn3zyyVWd96Y49913HxaLhRkzZhT6+MiRI9m7dy/jxo1j9+7dzJ07l/j4eKcxo0aNIiEhgSlTprBnzx5mzZqFzWZzOir00ksvMWfOHF555RW2b9/Ozp07WbBgAS+88EKpMz/33HMkJyfzxBNPkJqayp49e1iyZAmjRo0CYOnSpUybNo3U1FR+/fVX5syZg91up2XLlsD5cwxt2LCB/fv3c+TIkSseNRMRKauNKz7iuLdBnWwLXW57yOw4KkCuzN/f33Eumcv5+fnRtWtX3njjDXr16kW7du148cUXGTFiBG+99ZbT2JdeeomGDRs63Z599tkiX3f27NmEh4dz++23ExkZiWEYJCQkOH2N1bdvX/Lz853KTu/evcnPz6d3795X98aL4OnpyZNPPsnkyZMdS+wvFRoaysKFC/nyyy/p0KEDM2fO5B//+IfTmB49ejBz5kymTJlChw4dSExM5KmnnnL6aismJoalS5eSlJREREQE3bp1Y8qUKYSFhZU6c/v27Vm1ahV79uyhZ8+edOzYkRdffJGGDRsCULt2bRYtWsQtt9xC69atmTlzJvPmzaNt27YAPP3007i7u9OmTRvq169PWlpaqTOIiJSEbcPHAETlNKaGZ+m+7q8IFqMkExtcTFZWFgEBAWRmZhYoCNnZ2ezbt4+mTZuWer6GuKYRI0awa9cu1qxZY3aUMtHPvIiUh85P1WRz7TPMrjeMoU++XyGvUdzv78tpErRIOXv99deJioqiZs2a2Gw2PvrooyK/VhMRcQW/7/uRzbXPz6+M7Vdw0YYZVIBEytnGjRuZPHkyJ0+epFmzZkybNo3hw4ebHUtExDTLbeenTnQ84UNws/ZXGH1tqACJlLNPP/3U7AgiIpWKbW8i+IO1VscrD75GNAlaREREKkx+Xi7LPM4vsLB2ud/kNP+jAiQiIiIVJuXrORzzMQjIhm7Rj1z5CdeI6QVoxowZjtUl4eHhxa6UWbRoEVFRUdSvXx9/f38iIyNZtmyZ05j4+HjHla0vvWVnZ1f0WxEREZHL2L77DwBROddViuXvF5lagBYsWMDYsWMZP348W7ZsoWfPnlit1iLPRbJ69WqioqJISEhg8+bN9O3blzvuuIMtW7Y4jfP393dc3friTct3RURErj1b5mYArE2iTE7izNRJ0FOmTGHYsGGOFTJTp05l2bJlvPPOO0ycOLHA+KlTpzrd/8c//sHixYv58ssv6djxfxOrLBYLwcHBFZpdREREivdH2k42BZy/fFKsdZTJaZyZdgQoNzeXzZs3Ex0d7bQ9Ojqa9evXl2gfdrudkydPUrduXaftp06dIiwsjMaNG3P77bcXOEJ0uZycHLKyspxuYq79+/djsVhITU0tcszKlSuxWCycOHHimuUSEZGSW54wHcMCHU5406iF+RdAvZRpBejIkSPk5+cTFBTktD0oKIiMjIwS7ePf//43p0+f5t5773Vsa9WqFfHx8SxZsoR58+bh7e1Njx492LNnT5H7mThxIgEBAY5bSEhI2d5UJTd06FAsFgsjR44s8Njjjz+OxWJxusr74cOHeeyxxwgNDcXLy4vg4GBiYmJITk52jGnSpEmhc67++c9/FpmjT58+jnGenp40b96cuLg4cnJyHGNCQkJIT0+nXbt25fPmy6io93fxdjXXJevTpw9jx44tt6wiIpWNbY8NAKvfTeYGKYTp5wG69CKRAIZhFNhWmHnz5vHKK6+wePFiGjRo4NjerVs3unXr5rjfo0cPOnXqxPTp05k2bVqh+4qLi2PcuHGO+1lZWdW2BIWEhDB//nzeeOMNfHx8gPOXOpg3bx6hoaFOYwcNGkReXh4fffQRzZo14/fff+frr7/m2LFjTuMmTJjAiBEjnLZd6WrtI0aMYMKECeTm5pKSksLDDz8M4Pjq093dvVJ8jZmSkuK4Wvr69esZNGgQu3fvdpxi/eIV10VExJk9/xzLPH4FwBpxn8lpCjLtCFBgYCDu7u4FjvYcPny4wFGhyy1YsIBhw4bx6aefcttttxU71s3NjYiIiGKPAHl5eTkuDFrcBUKrg06dOhEaGsqiRYsc2xYtWkRISIjTPKoTJ06wdu1aJk2aRN++fQkLC6NLly7ExcXRv39/p33WqlWL4OBgp1vNmjWLzeHr60twcDChoaEMGjSIqKgoli9f7ni8sK/AEhISuOGGG/Dx8aFv377s37+/wH7fe+89QkJC8PX1ZeDAgUyZMoXatWs7jfnyyy8JDw/H29ubZs2a8eqrr3Lu3LlCc9avX9/xni5+1dqgQQPHtl27dtGrVy98fHwICQlh9OjRnD592vH8GTNm0KJFC7y9vQkKCuLuu+8Gzh+NW7VqFW+++abjaFJh70dEpKra9PV/OOJj4J8DkdHDzI5TgGkFyNPTk/DwcJKSkpy2JyUl0b179yKfN2/ePIYOHcrcuXML/CIujGEYpKamOq6OXREMw+B07mlTbmW5lu3DDz/M7NmzHfc//PBDHnnE+dwMfn5++Pn58cUXXzh9NVURtm7dyrp165yuBn+5AwcOcNddd9GvXz9SU1MZPnw4zz//vNOYdevWMXLkSMaMGUNqaipRUVG89tprTmOWLVvGAw88wOjRo9mxYwezZs0iPj6+wLiS+OGHH4iJieGuu+5i27ZtLFiwgLVr1/Lkk08CsGnTJkaPHs2ECRPYvXs3iYmJ9OrVC4A333yTyMhIRowY4VipWF2POoqIa7IlzwEgKvs6PLx9TU5TkKlfgY0bN44hQ4bQuXNnIiMjeffdd0lLS3PMUYmLi+PgwYPMmXP+Q5w3bx4PPvggb775Jt26dXMcPfLx8SEgIACAV199lW7dutGiRQuysrKYNm0aqampvP322xX2Ps7kncFvol+F7b84p+JOUdOz+KMtlxsyZAhxcXGOoyzr1q1j/vz5rFy50jGmRo0axMfHM2LECGbOnEmnTp3o3bs3f/7zn2nf3vk6Ls899xwvvPCC07alS5cWOz9mxowZvP/+++Tl5ZGbm4ubm1ux/4zeeecdmjVrxhtvvIHFYqFly5b88MMPTJo0yTFm+vTpWK1Wnn76aQBuuOEG1q9fz9KlSx1jXnvtNZ5//nkeeughAJo1a8b//d//8eyzz/Lyyy9f8bO71L/+9S/uu+8+xzyeFi1aMG3aNHr37s0777xDWloaNWvW5Pbbb6dWrVqEhYU5jrIFBATg6enpOBImIlLd2E6kQG2IDbvV7CiFMrUADR48mKNHjzJhwgTHhNeEhATCwsIASE9Pdzon0KxZszh37hxPPPEETzzxhGP7Qw89RHx8PHD+q5tHH32UjIwMAgIC6NixI6tXr6ZLly7X9L1VZoGBgfTv35+PPvoIwzDo378/gYGBBcYNGjSI/v37s2bNGpKTk0lMTGTy5Mm8//77TpOln3nmGaf7ANddd12xGe6//37Gjx9PVlYWkyZNwt/fn0GDBhU5fufOnXTr1s1pflhkZKTTmN27dzNw4ECnbV26dHEqQJs3byYlJcXpiE9+fj7Z2dmcOXMGX9+S/1/K5s2b+fnnn/nkk08c2wzDwG63s2/fPqKioggLC6NZs2bExsYSGxvLwIEDS/UaIiJV0ZEDu9l4cfl77JMmpymc6ZOgH3/8cR5//PFCH7tYai669AhFUd544w3eeOONckhWcr4evpyKO3VNX/PS1y6LRx55xPFVTXFHXry9vYmKiiIqKoqXXnqJ4cOH8/LLLzsVnsDAQK6//vpSvX5AQIDjOR9//DFt27blgw8+YNiwwr8nLslXfYVNoL/8eXa7nVdffZW77rqrwPNLe7JMu93OY489xujRows8FhoaiqenJ99//z0rV65k+fLlvPTSS7zyyiukpKQUmJckIlKdLP9qGoYFbsz0pnHLCLPjFMr0AlQdWCyWUn8NZbbY2Fhyc3MBiImJKfHz2rRpwxdffFGuWTw8PPjb3/5GXFwcf/nLXwo9QlLY63733XdO91u1asXGjRudtm3atMnpfqdOndi9e3epC1thOnXqxPbt24vdV40aNbjtttu47bbbePnll6lduzbffPMNd911F56eno4VZiIi1Uniz4lQC6y+7a882CSmXwtMzOHu7s7OnTvZuXMn7u7uBR4/evQot9xyCx9//DHbtm1j3759fPbZZ0yePJkBAwY4jT158iQZGRlOt9KeTPK+++7DYrEwY8aMQh8fOXIke/fuZdy4cezevZu5c+cWOEI4atQoEhISmDJlCnv27GHWrFnYbDano0IvvfQSc+bM4ZVXXmH79u3s3LmTBQsWFJjDVBLPPfccycnJPPHEE6SmprJnzx6WLFnCqFHnz3a6dOlSxxy0X3/9lTlz5mC322nZsiVw/hxDGzZsYP/+/Rw5cgS73V7qDCIilY09/xyJ7vsAsHb+i8lpiqYC5MKKW/Lv5+dH165deeONN+jVqxft2rXjxRdfZMSIEbz11ltOY1966SUaNmzodHv22WdLlcXT05Mnn3ySyZMnc+pUwa8TQ0NDWbhwIV9++SUdOnRg5syZ/OMf/3Aa06NHD2bOnMmUKVPo0KEDiYmJPPXUU05fbcXExLB06VKSkpKIiIigW7duTJkyxTHvrDTat2/PqlWr2LNnDz179qRjx468+OKLjhWHtWvXZtGiRdxyyy20bt2amTNnMm/ePNq2bQvA008/jbu7O23atKF+/fpFXgNPRKQq+f7bufzha1ArB3rEPmp2nCJZjLKso67msrKyCAgIIDMzs0BByM7OZt++fY4r2EvlNmLECHbt2sWaNWvMjlJl6WdeRErj/ybcykvGNww80ZBFbxy6pq9d3O/vy2kOkFQrr7/+OlFRUdSsWRObzcZHH31U5NdqIiJS/mzHNkIdsIYVf6Jis6kASbWyceNGJk+ezMmTJ2nWrBnTpk1j+PDhZscSEXEJxw7tZUPA+WkMsTFPXGG0uVSApFr59NNPzY4gIuKyli99E7sbtM30IqR1V7PjFEuToEVERKRcJP6UAIDV50aTk1yZClAZae64uAr9rItISTgtfw//s8lprkwFqJQuXrDzzJkzJicRuTYu/qwXd7FaEZHUVQv43deOXy7cbH3M7DhXpDlApeTu7k7t2rU5fPgwAL6+vgUuvyBSHRiGwZkzZzh8+DC1a9cu9ISZIiIX2dbFA3DrmWA8fcy5QHhpqACVwcWrd18sQSLVWe3atXXFehG5ItvRDeeXv4feYnaUElEBKgOLxULDhg1p0KABeXl5ZscRqTAeHh468iMiV3Q8fR/JAScBiI0u/ALnlY0K0FVwd3fXLwcREXF5SV9Nw+4GrTM9CWvbw+w4JaJJ0CIiInJVbLuWAmD1rvzL3y9SARIREZEyM+x2Et1+AcDa6V6T05ScCpCIiIiU2dY1n5FR007NXOhpHWl2nBJTARIREZEys635EIBbzgThVbP4K7BXJipAIiIiUma2I98BYG3c1+QkpaMCJCIiImVy4vdfWR+QBUBs1F9NTlM6KkAiIiJSJiuWTiPfDVpmedK0fS+z45SKCpCIiIiUiW3XlwBYPduanKT0VIBERESk1Ay7nUTLXgCsHe8xOU3pqQCJiIhIqf2wbhGHatrxzYVe/arW/B9QARIREZEysK3+AIC+Zxrg7Vfb3DBloAIkIiIipWb7IxkA63W9TU5SNipAIiIiUipZf/zGOv9MAKxRVePq75dTARIREZFSWbF0Gufc4YYsD5p16GN2nDJRARIREZFSse1YAkCsZxuTk5SdCpCIiIiUmGG3Y2MPANYOd5ucpuxUgERERKTEticv5qCfHe886N2vas7/ARUgERERKQXbqvcB6Hu6Pj7+dU1OU3YqQCIiIlJitsPrAbA2qlrX/rqcCpCIiIiUyMmjh1jrfwIA621V7+zPl1IBEhERkRL5eul08tzh+iwPru94q9lxrooKkIiIiJSIbfsXAFg9WpsbpByoAImIiMgVGXY7NuP88vfY9neZnObqqQCJiIjIFe347ksO+OXjdQ769H/C7DhXTQVIRERErijxwvL3Pqfq4RsQaHKaq6cCJCIiIldk+30dANaGVXv5+0UqQCIiIlKsU8cyWFPrOADWWx4zOU35UAESERGRYn3z1XRya0CzkzVo0SnK7DjlQgVIREREimX78QsArDVaY3GrHtWherwLERERqRCG3Y4tfzcAse3uNDdMOVIBEhERkSLtSkng11r5eJ6Dvv2fNDtOuVEBEhERkSIlfnt++Xvvk3WpWaeByWnKjwqQiIiIFMmWsQYAa3BPk5OULxUgERERKdTp44dZVesYANZbHjU5TflSARIREZFCffvVW+TWgCYna9Cyc6zZccqVCpCIiIgUyvbD5wBY3VtWm+XvF1WvdyMiIiLl4vzy910AWNsNNDlN+VMBEhERkQJ+2ryMfbXOXVj+XvWv/n45FSAREREpwPbNuwD0PFkHv7rBJqcpf6YXoBkzZtC0aVO8vb0JDw9nzZo1RY5dtGgRUVFR1K9fH39/fyIjI1m2bFmBcQsXLqRNmzZ4eXnRpk0bPv/884p8CyIiItVO4sXl70E9TE5SMUwtQAsWLGDs2LGMHz+eLVu20LNnT6xWK2lpaYWOX716NVFRUSQkJLB582b69u3LHXfcwZYtWxxjkpOTGTx4MEOGDGHr1q0MGTKEe++9lw0bNlyrtyUiIlKlnck8wkq/owBY+44wOU3FsBiGYZj14l27dqVTp0688847jm2tW7fmzjvvZOLEiSXaR9u2bRk8eDAvvfQSAIMHDyYrKwubzeYYExsbS506dZg3b16h+8jJySEnJ8dxPysri5CQEDIzM/H39y/LWxMREamyEua+Sv89rxB6yp39k3KrzAqwrKwsAgICSvT727R3lJuby+bNm4mOjnbaHh0dzfr160u0D7vdzsmTJ6lbt65jW3JycoF9xsTEFLvPiRMnEhAQ4LiFhISU4p2IiIhUL7ZtCwGwWm6oMuWntEx7V0eOHCE/P5+goCCn7UFBQWRkZJRoH//+9785ffo09957r2NbRkZGqfcZFxdHZmam43bgwIFSvBMREZHqxZa3EwBrNbr6++VqmB3AYrE43TcMo8C2wsybN49XXnmFxYsX06CB88XZSrtPLy8vvLy8SpFaRESketqzOYm9/ufwyIdbqtHV3y9nWgEKDAzE3d29wJGZw4cPFziCc7kFCxYwbNgwPvvsM2677Tanx4KDg8u0TxEREQHb1zMBuDmrNrXqNTI5TcUx7SswT09PwsPDSUpKctqelJRE9+7di3zevHnzGDp0KHPnzqV///4FHo+MjCywz+XLlxe7TxERETkvMf3C8vcG1fv3pqlfgY0bN44hQ4bQuXNnIiMjeffdd0lLS2PkyJHA+bk5Bw8eZM6cOcD58vPggw/y5ptv0q1bN8eRHh8fHwICAgAYM2YMvXr1YtKkSQwYMIDFixezYsUK1q5da86bFBERqSLOZh3j25p/AGDtPdzkNBXL1KndgwcPZurUqUyYMIGbbrqJ1atXk5CQQFhYGADp6elO5wSaNWsW586d44knnqBhw4aO25gxYxxjunfvzvz585k9ezbt27cnPj6eBQsW0LVr12v+/kRERKqSVQkzyPaAxqfcaRs5wOw4FcrU8wBVVqU5j4CIiEh1MSbuJqZ5b2XE6Va8O3mn2XFKrUqcB0hEREQqF1vuDgCsbf5kcpKKpwIkIiIi7E39hj3+edTIh1v7jzI7ToVTARIRERFsSecvS9UjKwD/+o1NTlPxVIBEREQE26FVAFjrR5qc5NpQARIREXFx2adO/G/5e69hJqe5NlSAREREXNzqhHc46wHXnXLjxh53mR3nmlABEhERcXG2LZ8BEMv11fbq75dzjXcpIiIiRbLlbgfA2rr6L3+/SAVIRETEhe3btprd/rnUyIfbbq/+y98vUgESERFxYbakGQB0zwogoEGoyWmuHRUgERERF2b77VsAYgNd65qZKkAiIiIuKud0Ft/4HgbA2vMRk9NcWypAIiIiLmqNbSZnPKHhaTc69LzH7DjXlAqQiIiIi7J9/ykAsUZzl1n+fpFrvVsRERFxsGX/AIC11e0mJ7n2VIBERERc0K/b17EzIBd3O0TdPsbsONecCpCIiIgLsi17G4DITH9qB4WZnObaUwESERFxQbYD55e/W+u51vL3i1SAREREXEzO6Sy+9s0AILbHQyanMYcKkIiIiItZt+w9TntC0Bk3buo92Ow4plABEhERcTG2zfMBiM1vipt7DZPTmEMFSERExMXYzl5Y/t6yv8lJzKMCJCIi4kIO7NzA9oAc3OwQ1X+02XFMowIkIiLiQmzLpgPQLbMWdRs1NzmNeVSAREREXIjt128AsNbtYnISc6kAiYiIuIjcs6dY4ZsOgLXHUHPDmEwFSERExEWsX/Y+pzyhwRkLHfv82ew4plIBEhERcRG2TfMAiHHh5e8XqQCJiIi4CNuZbQBYW/QzOYn5VIBERERcwG+7U/ghIBs3O0S78PL3i1SAREREXEBi4lsAdMnyo17jFianMZ8KkIiIiAuw/boCAGvtCJOTVA4qQCIiItVcXvYZVngfAsDa3TWv/n45FSAREZFqbv2y98jygsCzFsJvud/sOJWCCpCIiEg1l7jp/NXfY/LCXH75+0UqQCIiItWc7VQqANYWVnODVCIqQCIiItXYoT3fs7V2NhYDYvqPMTtOpaECJCIiUo0l2s5f/T0isyaBIS1NTlN5qACJiIhUY7b9SQBYAzqbnKRyUQESERGpps7lZpPkdRAAa+QQk9NULipAIiIi1VTysvfJ9IZ6Zy10vkUF6FIqQCIiItWUbeNcAKLzQnH38DQ5TeWiAiQiIlJNJV5c/t481twglZAKkIiISDWU8cs2ttQ+C0BMv1Emp6l8VIBERESqocSEaQB0PuFLgyZtTU5T+agAiYiIVEO2X5YDYPUPNzlJ5aQCJCIiUs2cy81muddvAFi7PWBymspJBUhERKSa2ZA0mxPeBnXPWuhy21Cz41RKKkAiIiLVjG3DJwBE54Vo+XsRVIBERESqmcSTWwCIbRZtcpLKSwVIRESkGvl9349srn0GgNh+uvp7UVSAREREqpFlF5a/dzrhQ1DTdianqbxML0AzZsygadOmeHt7Ex4ezpo1a4ocm56ezn333UfLli1xc3Nj7NixBcbEx8djsVgK3LKzsyvwXYiIiFQOtl+WAWCt1cnkJJWbqQVowYIFjB07lvHjx7NlyxZ69uyJ1WolLS2t0PE5OTnUr1+f8ePH06FDhyL36+/vT3p6utPN29u7ot6GiIhIpZCfl8tyjwMAWLveb3Kays3UAjRlyhSGDRvG8OHDad26NVOnTiUkJIR33nmn0PFNmjThzTff5MEHHyQgIKDI/VosFoKDg51uIiIi1d3GFfEc8zGonW2ha9TDZsep1EwrQLm5uWzevJnoaOcZ6tHR0axfv/6q9n3q1CnCwsJo3Lgxt99+O1u2bCl2fE5ODllZWU43ERGRqsb23ccAROc0poanvvkojmkF6MiRI+Tn5xMUFOS0PSgoiIyMjDLvt1WrVsTHx7NkyRLmzZuHt7c3PXr0YM+ePUU+Z+LEiQQEBDhuISEhZX59ERERs9iyNgNg1fL3KzJ9ErTFYnG6bxhGgW2l0a1bNx544AE6dOhAz549+fTTT7nhhhuYPn16kc+Ji4sjMzPTcTtw4ECZX19ERMQMh/dvZ9OF5e8x1idNTlP51TDrhQMDA3F3dy9wtOfw4cMFjgpdDTc3NyIiIoo9AuTl5YWXl1e5vaaIiMi1ttz2FgA3nfChYfObzA1TBZh2BMjT05Pw8HCSkpKcticlJdG9e/dyex3DMEhNTaVhw4bltk8REZHKxvazDQCr303mBqkiTDsCBDBu3DiGDBlC586diYyM5N133yUtLY2RI0cC57+aOnjwIHPmzHE8JzU1FTg/0fmPP/4gNTUVT09P2rRpA8Crr75Kt27daNGiBVlZWUybNo3U1FTefvvta/7+REREroX8vFyWeZw/hYy1y30mp6kaTC1AgwcP5ujRo0yYMIH09HTatWtHQkICYWFhwPkTH15+TqCOHTs6/r5582bmzp1LWFgY+/fvB+DEiRM8+uijZGRkEBAQQMeOHVm9ejVdunS5Zu9LRETkWtr0zX846mMQkA2RMcPNjlMlWAzDMMwOUdlkZWUREBBAZmYm/v7+ZscREREp1iuv9OFVyyruzryOz6b8ZnYc05Tm97fpq8BERETk6tgyNwFgbRJlcpKqQwVIRESkCjtyYDcpAacBiIl9wuQ0VYcKkIiISBW2/KtpGBZof8Kb627obHacKkMFSEREpAqz7bmw/L1m0RcJl4JUgERERKooe/45ltXYD4A14i/mhqliVIBERESqqM3ffMIfvgb+OdA9ZoTZcaqUUhWgyZMnc/bsWcf91atXk5OT47h/8uRJHn/88fJLJyIiIkWyrf8IgNuyG+Hh7WtymqqlVAUoLi6OkydPOu7ffvvtHDx40HH/zJkzzJo1q/zSiYiISJFsJ1IAsIbdZnKSqqdUBejycybqHIoiIiLmOPrbHjYEnAIgNlZXfy8tzQESERGpgpISpmNYoF2mF41bRpgdp8pRARIREamCbD99BYDVp73JSaqmUl8M9f3338fPzw+Ac+fOER8fT2BgIIDT/CARERGpGPb8cyS67wPA2vnPJqepmkp1MdQmTZpgsViuOG7fvn1XFcpsuhiqiIhUZpu//pjOa4fglwtHXziJp4+f2ZEqhdL8/i7VEaD9+/dfTS4REREpB7Z18QDcdqahyk8ZaQ6QiIhIFWM7thEAa9gtJiepukpVgDZs2IDNZnPaNmfOHJo2bUqDBg149NFHnU6MKCIiIuXr2KG9fBdwfs6tNWaUyWmqrlIVoFdeeYVt27Y57v/www8MGzaM2267jeeff54vv/ySiRMnlntIEREROW9FwlvY3aBtphchrbuaHafKKlUBSk1N5dZbb3Xcnz9/Pl27duW9995j3LhxTJs2jU8//bTcQ4qIiMh5tl1LAYj1aWdykqqtVAXo+PHjBAUFOe6vWrWK2NhYx/2IiAgOHDhQfulERETEwZ5/jkS3XwCwdhpscpqqrVQFKCgoyLHEPTc3l++//57IyEjH4ydPnsTDw6N8E4qIiAgAW9d8RkZNOzVz4ebYx8yOU6WVqgDFxsby/PPPs2bNGuLi4vD19aVnz56Ox7dt20bz5s3LPaSIiIiAbc1sAG49E4xXTZ2n7mqU6jxAf//737nrrrvo3bs3fn5+xMfH4+np6Xj8ww8/JDo6utxDioiICNiOboA6YA3pa3aUKq9UBah+/fqsWbOGzMxM/Pz8cHd3d3r8s88+o1atWuUaUERERODE77+SHJAFgDXmCZPTVH2lKkCPPPJIicZ9+OGHZQojIiIihUta+ib5btA605Owtj3MjlPllaoAxcfHExYWRseOHSnFJcRERETkKiXuWgp+EOut5e/loVQFaOTIkcyfP59ffvmFRx55hAceeIC6detWVDYREREBDLudRMteAKwd7zE5TfVQqlVgM2bMID09neeee44vv/ySkJAQ7r33XpYtW6YjQiIiIhVk29r/cqimHd9c6NXvcbPjVAulvhiql5cXf/nLX0hKSmLHjh20bduWxx9/nLCwME6dOlURGUVERFyabfX5ubW3nGmg5e/l5KquBm+xWLBYLBiGgd1uL69MIiIicgnbke8AsDbW8vfyUuoClJOTw7x584iKiqJly5b88MMPvPXWW6SlpeHn51cRGUVERFxW5uE01gVkAmCN0tdf5aVUk6Aff/xx5s+fT2hoKA8//DDz58+nXr16FZVNRETE5a1YOp18N2iZ5UnT9r3MjlNtlKoAzZw5k9DQUJo2bcqqVatYtWpVoeMWLVpULuFERERcXeLOL8EPrJ5tzY5SrZSqAD344INYLJaKyiIiIiKXMOx2bOwBIPamQSanqV5KfSJEERERuTZ+XP85B/3s+ORB7/66/EV5uqpVYCIiIlJxbKs+AKDv6fp4+9U2N0w1owIkIiJSSdn+SAbA2qi3yUmqHxUgERGRSijrj99Y638CAGvUX80NUw2pAImIiFRCX381nXPu0CLLg+Y33WJ2nGpHBUhERKQSsu1YAoDVs43JSaonFSAREZFKxrDbSTTOL3+3drjb5DTVkwqQiIhIJbPjuy854JePdx701tXfK4QKkIiISCVjW/UeAH1OB+LjX9fkNNWTCpCIiEglY/t9PQDWhrr2V0VRARIREalETh49xBr/4wBYbx1pcprqSwVIRESkEvnmq7fIc4fmWTVoER5ldpxqSwVIRESkErH9+AUAVo/W5gap5lSAREREKgnDbsdm/ASAtb2u/l6RVIBEREQqiV0pCaT55eN1Dvro6u8VSgVIRESkkrB9e375e++T9fANCDQ5TfWmAiQiIlJJ2DLWAmBt2NPkJNWfCpCIiEglcOpYBqtrHQPAesujJqep/lSAREREKoFvv3qb3BrQ9GQNbgiPMTtOtacCJCIiUgnYfvwcAKt7Kyxu+vVc0Uz/hGfMmEHTpk3x9vYmPDycNWvWFDk2PT2d++67j5YtW+Lm5sbYsWMLHbdw4ULatGmDl5cXbdq04fPPP6+g9CIiIlfPsNux5e8GwHrjQJPTuAZTC9CCBQsYO3Ys48ePZ8uWLfTs2ROr1UpaWlqh43Nycqhfvz7jx4+nQ4cOhY5JTk5m8ODBDBkyhK1btzJkyBDuvfdeNmzYUJFvRUREpMx+2ryM/bXO4XkO+vZ/0uw4LsFiGIZh1ot37dqVTp068c477zi2tW7dmjvvvJOJEycW+9w+ffpw0003MXXqVKftgwcPJisrC5vN5tgWGxtLnTp1mDdvXolyZWVlERAQQGZmJv7+/iV/QyIiImUwddJAnsr+gtuO1yVp6lGz41RZpfn9bdoRoNzcXDZv3kx0dLTT9ujoaNavX1/m/SYnJxfYZ0xMTLH7zMnJISsry+kmIiJyrdjSz0//sAbfbHIS12FaATpy5Aj5+fkEBQU5bQ8KCiIjI6PM+83IyCj1PidOnEhAQIDjFhISUubXFxERKY0zmUdYVev8UR9r3xEmp3Edpk+CtlgsTvcNwyiwraL3GRcXR2ZmpuN24MCBq3p9ERGRkvp26Vvk1ICwk+60iuhndhyXUcOsFw4MDMTd3b3AkZnDhw8XOIJTGsHBwaXep5eXF15eXmV+TRERkbKy/bAIfMDq3lLL368h0z5pT09PwsPDSUpKctqelJRE9+7dy7zfyMjIAvtcvnz5Ve1TRESkIhh2O7ZzOwGwtrvT3DAuxrQjQADjxo1jyJAhdO7cmcjISN59913S0tIYOXIkcP6rqYMHDzJnzhzHc1JTUwE4deoUf/zxB6mpqXh6etKmTRsAxowZQ69evZg0aRIDBgxg8eLFrFixgrVr117z9yciIlKcPd8n8cuF5e+39B9ldhyXYmoBGjx4MEePHmXChAmkp6fTrl07EhISCAsLA86f+PDycwJ17NjR8ffNmzczd+5cwsLC2L9/PwDdu3dn/vz5vPDCC7z44os0b96cBQsW0LVr12v2vkREREoi8Zt3Aeh5sg5+dYNNTuNaTD0PUGWl8wCJiMi1YH2qPom1j/Avz/48HbfU7DhVXpU4D5CIiIgrO5t1jJU1jwBg7a3l79eaCpCIiIgJVn71FtkeEHLKnTbd7jA7jstRARIRETGBbetCAKyWFlr+bgJ94iIiIiaw5V1Y/t72TnODuCgVIBERkWvs5y1f87N/Hh75cOvtWv5uBhUgERGRayxxxUwAbs6qTa16jUxO45pUgERERK4x26FVAFgb6CoFZlEBEhERuYayT53g25p/ABDb6xGT07guFSAREZFraNVXb3PWA6475Ua77gPNjuOyVIBERESuIVvqfwGwouXvZtInLyIicg3ZcrcDYG3zJ5OTuDYVIBERkWvkl60r+ck/jxr5cNvto82O49JUgERERK4RW9IMAHpkBeBfv7HJaVybCpCIiMg1knjwwvL3+pEmJxEVIBERkWsg+9QJvvE9DEBsz4dNTiMqQCIiItfAGttMznhCo9NutL/5brPjuDwVIBERkWvAtuUzAGKN5lr+Xgnon4CIiMg1YMv+EQBrqztMTiKgAiQiIlLh9v+4ll0Bubjbtfy9slABEhERqWC2ZW8D0D3Tn9pBYSanEVABEhERqXCJv60EwBrYzdwg4qACJCIiUoFyTmfxtW8GANaeuvp7ZaECJCIiUoHWJs7itCcEn3ajQ897zI4jF6gAiYiIVCDb9wsAiLU30/L3SkT/JERERCqQ7ezF5e+3m5xELqUCJCIiUkHSdiSzIyAHNztE9dfy98pEBUhERKSC2Ja9BUBkZi3qNGxqchq5lAqQiIhIBbGlfQOAtV5Xk5PI5VSAREREKkDu2VP/W/7eY6i5YaQAFSAREZEKsC7xXU55QtAZN27qPdjsOHIZFSAREZEKYNs0H4CY/Ca4udcwOY1cTgVIRESkAtjObgPAekN/k5NIYVSAREREytmBnRv48cLy9+jbx5gdRwqhAiQiIlLOEi9c/b1rph91GzU3OY0URgVIRESknNl+XQGAtW4Xk5NIUVSAREREylFe9hlW+KQDYO3+kMlppCgqQCIiIuVo/bL3OOkFDc5Y6NT3PrPjSBFUgERERMqRLWUeADH5TbX8vRJTARIRESlHttNbAYi9PtbkJFIcFSAREZFycvCnTWyrnY3FgGhd/b1SUwESEREpJ4mJ56/+3iWzJoEhLU1OI8VRARIRESkntv0Xlr/XjjA5iVyJCpCIiEg5yMs+Q5L3QQCskQ+anEauRAVIRESkHHyX9CFZXhB41kLnW4eYHUeuQAVIRESkHNg2zgUgJi9My9+rABUgERGRcmA7lQpo+XtVoQIkIiJyldL3ppJa+ywWA2K0/L1KUAESERG5SokJ0wDonFmT+qGtTU4jJaECJCIicpVs+5IAsAaEm5xESkoFSERE5Cqcy80myevC8vduWv1VVagAiYiIXIXvln/ICW+DemctRNyq8/9UFSpAIiIiVyHxwvL36LxQ3D08TU4jJaUCJCIichVsJ78HwNpcy9+rEtML0IwZM2jatCne3t6Eh4ezZs2aYsevWrWK8PBwvL29adasGTNnznR6PD4+HovFUuCWnZ1dkW9DRERcUMYv2/i+9lkAoq1PmpxGSsPUArRgwQLGjh3L+PHj2bJlCz179sRqtZKWllbo+H379tGvXz969uzJli1b+Nvf/sbo0aNZuHCh0zh/f3/S09Odbt7e3tfiLYmIiAtZZpsOQPgJX4KatjM5jZSGqefqnjJlCsOGDWP48OEATJ06lWXLlvHOO+8wceLEAuNnzpxJaGgoU6dOBaB169Zs2rSJ119/nUGDBjnGWSwWgoODS5wjJyeHnJwcx/2srKwyviMREXEltr3LIACs/p3MjiKlZNoRoNzcXDZv3kx0dLTT9ujoaNavX1/oc5KTkwuMj4mJYdOmTeTl5Tm2nTp1irCwMBo3bsztt9/Oli1bis0yceJEAgICHLeQkJAyvisREXEV53KzWe71GwDWrg+YnEZKy7QCdOTIEfLz8wkKCnLaHhQUREZGRqHPycjIKHT8uXPnOHLkCACtWrUiPj6eJUuWMG/ePLy9venRowd79uwpMktcXByZmZmO24EDB67y3YmISHW3ccVHHPc2qJNtoWvUw2bHkVIy/XK1FovF6b5hGAW2XWn8pdu7detGt27dHI/36NGDTp06MX36dKZNm1boPr28vPDy8ipTfhERcU2JGz4BN4jOaazl71WQaUeAAgMDcXd3L3C05/DhwwWO8lwUHBxc6PgaNWpQr169Qp/j5uZGREREsUeARERESsuWtRkAa/MYk5NIWZhWgDw9PQkPDycpKclpe1JSEt27dy/0OZGRkQXGL1++nM6dO+Ph4VHocwzDIDU1lYYNG5ZPcBERcXmH929nU+0zAMRYR5mcRsrC1GXw48aN4/333+fDDz9k586dPPXUU6SlpTFy5Ejg/NycBx/832nFR44cya+//sq4cePYuXMnH374IR988AFPP/20Y8yrr77KsmXL+OWXX0hNTWXYsGGkpqY69ikiInK1liWcX/7e8YQPwc3am5xGysLUOUCDBw/m6NGjTJgwgfT0dNq1a0dCQgJhYWEApKenO50TqGnTpiQkJPDUU0/x9ttv06hRI6ZNm+a0BP7EiRM8+uijZGRkEBAQQMeOHVm9ejVdunS55u9PRESqJ9veRPAHa62OZkeRMrIYF2cRi0NWVhYBAQFkZmbi7+9vdhwREalE8vNyafCiN8d8DNaEv83Ntz9udiS5oDS/v02/FIaIiEhVkvL1HI75GNTOttAt+hGz40gZqQCJiIiUgu27/wAQlXMdNTx1maWqSgVIRESkFBIzLyx/bxplchK5GipAIiIiJfRH2k5SAk4DENtvtMlp5GqoAImIiJTQ8oTpGBbocMKbhs1vMjuOXAUVIBERkRKy7bEBYPW7ydwgctVUgERERErAnn+OZR6/AmCNuM/kNHK1VIBERERKYNPX/+GIj4F/DkRGDzM7jlwlFSAREZESsCXPASAq+zo8vH1NTiNXSwVIRESkBBJPbALA2uQ2k5NIeVABEhERuYKjv+1hQ8ApAGJjnzQ5jZQHFSAREZErWP7VNAwLtD/hzXU3dDY7jpQDFSAREZErsO1JACC2ZnuTk0h5UQESEREphj3/HInu+wCwdv6LyWmkvKgAiYiIFOP7b+fyh69BrRzoEfuo2XGknKgAiYiIFMO2/iMAbjvbUMvfqxEVIBERkWLYjm0EwBqm5e/ViQqQiIhIEY4d2utY/m61jjI5jZQnFSAREZEiJH01DbsbtMv0onHLCLPjSDlSARIRESmCbfdXAFh9tPy9ulEBEhERKcSly99jwwebnEbKmwqQiIhIIVJXLeB3Xzt+uXCz9TGz40g5UwESEREphG1dPAC3ngnG08fP3DBS7lSARERECmE7ugEAa+gtJieRiqACJCIicpnj6ftIDjgJgDVGV3+vjlSARERELrMiYTp2N2iT6UVom0iz40gFUAESERG5jG3XUgCsPu1MTiIVRQVIRETkEobdTqJlLwDWTlr+Xl2pAImIiFxi65rPSK9pp2Yu3Byr5e/VlQqQiIjIJWxrPgTgljNBeNX0NzmNVBQVIBERkUvYjnwHgLVxX5OTSEVSARIREbngxO+/sj4gCwBrzBMmp5GKpAIkIiJywddfvUW+G7TK9KRJu5vNjiMVSAVIRETkAtvOJQBYvbX8vbpTARIREeHC8nd+BsDa8R6T00hFUwESEREBkhPf46CfHd9c6GkdaXYcqWA1zA4gIiJyrR1P38emtQtI2fUNKcd+ZKPH7xyqaQeg75kGePvVNjegVDgVIBERqdbOZB5hy9rPSPlxOSmHt5DCIfb45/1vQO3zf7jZ4cYsb+Jue8WMmHKNqQCJiEi1kZd9hu0bviRly1dsPLiRlHO/8qN/NvkXJ3xccl7D5lk1iKAREfVvoku7GDr2uJuadRqYkluuPRUgERGpkgy7nZ+3fM3GlM9J+TWZlLN7+d7vJNkeFwb4/W9s8Gk3uuQ1IKJOWyJa9qVzj3up17iFKbmlclABEhGRKuHgT5tISV7Ixp9XkXJyN5t8jnPC2zj/oPeFGxCQDZ3P1iGiVku6NO9FROTdXNciHIub1v3I/6gAiYhIpXPs0F42rf2UlN0XJykfJv3CJGVqAHXO/9XrHHQ85UcX7+ZEhEYS0flPtOgUhZu7fr1J8fQTIiIipro4SXnjD8tI+SOVFA7xcxGTlNtleRNRI5Qu10UQcVN/2nUbgIe3rym5pWpTARIRkWsmL/sMP363mJTUr0g5uImN535lezGTlLtwHRH1byKiXbQmKUu5UgESEZEKYc8/d2GS8hekpJ2fpLzF71Shk5QbnnYjIq8BXeq2I6LlLXS++V7qNmpuSm5xDSpAIiJy1Qy7nYN7NpOS/F9S9q5h48ldbPI5TuaFicmXT1KOOFuXiFotiWjeky7d7+G6GzqbFV1clAqQiIiU2rFDe0lZM5+U3d+Scnw7Gz0Ok1HIJGXvvPOTlCN8mtMlrDsRnQdwfcdbNUlZTKefQBERKdbp44fZsu6/bPzxf5OU9/qf+9+A2uf/cHdMUg4j4rrOdOl4B2273qFJylIpqQCJiIhDXvYZflj/OSlbE0g5tImN+Wlsr5WNvZBJytdneRBBI7o06Hh+kvLN9+AbEGhKbpHSUgESEXFR9vxz7Pk+iY0pi89PUs75hdSaRU9S7pLXgIi67ejS6lY63zyYOg2bmpJbpDyoAImIuADDbue33SmkfLeQjXtXk3LqJzb5HifL68IAnws3oHa2hc5n69DFvxURzXsRETlIk5Sl2lEBEhGpho7+toeUtQtI+enCJGXPP/jd98IkZQ+cJil3OlXrf5OUI+7k+o636rIRUu2ZXoBmzJjBv/71L9LT02nbti1Tp06lZ8+eRY5ftWoV48aNY/v27TRq1Ihnn32WkSNHOo1ZuHAhL774Inv37qV58+a89tprDBw4sKLfioiIKU4fP8z3az8lZXsSGw9vIcUtnV9qFT1JuYtHEyIaRRDRsb8mKYvLMrUALViwgLFjxzJjxgx69OjBrFmzsFqt7Nixg9DQ0ALj9+3bR79+/RgxYgQff/wx69at4/HHH6d+/foMGjQIgOTkZAYPHsz//d//MXDgQD7//HPuvfde1q5dS9euXa/1WxQRKVe5Z0/xw/ovzk9STj8/SXlHrZz/TVIO+N/YFhcnKQd1IqJdDDf1GKRJyiIXWAzDMMx68a5du9KpUyfeeecdx7bWrVtz5513MnHixALjn3vuOZYsWcLOnTsd20aOHMnWrVtJTk4GYPDgwWRlZWGz2RxjYmNjqVOnDvPmzStRrqysLAICAsjMzMTf3//KTyihnNNZpO/bVm77k+IZdnv57MeobPspn39ly/PzOX8zsNvPYdgNp21Of9oL2XbJ3+32/EIeL9mfdvsl++Li9kvHXPg7BbfbjfzixzjuX77vS557cYzT2Mv35zzOfvn+i/kzM/ckm3J+IdXvNDmF/K9ro9NudMkLIqJuOyJa3aJJyuKSSvP727QjQLm5uWzevJnnn3/eaXt0dDTr168v9DnJyclER0c7bYuJieGDDz4gLy8PDw8PkpOTeeqppwqMmTp1apFZcnJyyMnJcdzPysoq5bspmS1rPiVyw4gK2beIVBOWy/686LJJyhFn6xDh34ou1/cmIvJuGrXodA1DilR9phWgI0eOkJ+fT1BQkNP2oKAgMjIyCn1ORkZGoePPnTvHkSNHaNiwYZFjitonwMSJE3n11VfL+E5Kzs3NHZ+8K4+rjCymHSe8Opf/DjF9P+X0OVa+PBYsgJtxPpvl4p9YLvn7xe2WQu+7Xf6Y03OvvN3twr2C4yyXjS34p9ul2yw49lRw/GXbLJZLnu+8zek5lqLvu1ncLnltS+HPsVjwdveiQ+POmqQsUk5MnwRtsTj/p9wwjALbrjT+8u2l3WdcXBzjxo1z3M/KyiIkJOTK4UupS/TDnIl+uNz3KyIiIqVjWgEKDAzE3d29wJGZw4cPFziCc1FwcHCh42vUqEG9evWKHVPUPgG8vLzw8vIq8nERERGpXkw7hurp6Ul4eDhJSUlO25OSkujevXuhz4mMjCwwfvny5XTu3BkPD49ixxS1TxEREXE9pn4FNm7cOIYMGULnzp2JjIzk3XffJS0tzXFen7i4OA4ePMicOXOA8yu+3nrrLcaNG8eIESNITk7mgw8+cFrdNWbMGHr16sWkSZMYMGAAixcvZsWKFaxdu9aU9ygiIiKVj6kFaPDgwRw9epQJEyaQnp5Ou3btSEhIICwsDID09HTS0tIc45s2bUpCQgJPPfUUb7/9No0aNWLatGmOcwABdO/enfnz5/PCCy/w4osv0rx5cxYsWKBzAImIiIiDqecBqqwq6jxAIiIiUnFK8/tb6yhFRETE5agAiYiIiMtRARIRERGXowIkIiIiLkcFSERERFyOCpCIiIi4HBUgERERcTkqQCIiIuJyVIBERETE5Zh6KYzK6uLJsbOyskxOIiIiIiV18fd2SS5yoQJUiJMnTwIQEhJichIREREprZMnTxIQEFDsGF0LrBB2u51Dhw5Rq1YtLBZLue47KyuLkJAQDhw4oOuMXYE+q5LTZ1Vy+qxKTp9V6ejzKrmK+qwMw+DkyZM0atQIN7fiZ/noCFAh3NzcaNy4cYW+hr+/v/4FKSF9ViWnz6rk9FmVnD6r0tHnVXIV8Vld6cjPRZoELSIiIi5HBUhERERcjgrQNebl5cXLL7+Ml5eX2VEqPX1WJafPquT0WZWcPqvS0edVcpXhs9IkaBEREXE5OgIkIiIiLkcFSERERFyOCpCIiIi4HBUgERERcTkqQJVATk4ON910ExaLhdTUVLPjVEp/+tOfCA0Nxdvbm4YNGzJkyBAOHTpkdqxKZ//+/QwbNoymTZvi4+ND8+bNefnll8nNzTU7WqX12muv0b17d3x9faldu7bZcSqVGTNm0LRpU7y9vQkPD2fNmjVmR6qUVq9ezR133EGjRo2wWCx88cUXZkeqlCZOnEhERAS1atWiQYMG3Hnnnezevdu0PCpAlcCzzz5Lo0aNzI5RqfXt25dPP/2U3bt3s3DhQvbu3cvdd99tdqxKZ9euXdjtdmbNmsX27dt54403mDlzJn/729/MjlZp5ebmcs899/DXv/7V7CiVyoIFCxg7dizjx49ny5Yt9OzZE6vVSlpamtnRKp3Tp0/ToUMH3nrrLbOjVGqrVq3iiSee4LvvviMpKYlz584RHR3N6dOnzQlkiKkSEhKMVq1aGdu3bzcAY8uWLWZHqhIWL15sWCwWIzc31+wold7kyZONpk2bmh2j0ps9e7YREBBgdoxKo0uXLsbIkSOdtrVq1cp4/vnnTUpUNQDG559/bnaMKuHw4cMGYKxatcqU19cRIBP9/vvvjBgxgv/85z/4+vqaHafKOHbsGJ988gndu3fHw8PD7DiVXmZmJnXr1jU7hlQhubm5bN68mejoaKft0dHRrF+/3qRUUt1kZmYCmPbfJxUgkxiGwdChQxk5ciSdO3c2O06V8Nxzz1GzZk3q1atHWloaixcvNjtSpbd3716mT5/OyJEjzY4iVciRI0fIz88nKCjIaXtQUBAZGRkmpZLqxDAMxo0bx80330y7du1MyaACVM5eeeUVLBZLsbdNmzYxffp0srKyiIuLMzuyaUr6WV30zDPPsGXLFpYvX467uzsPPvgghoucyLy0nxXAoUOHiI2N5Z577mH48OEmJTdHWT4vKchisTjdNwyjwDaRsnjyySfZtm0b8+bNMy2DLoVRzo4cOcKRI0eKHdOkSRP+/Oc/8+WXXzr9xyQ/Px93d3fuv/9+Pvroo4qOarqSflbe3t4Ftv/222+EhISwfv16IiMjKypipVHaz+rQoUP07duXrl27Eh8fj5uba/2/Tll+tuLj4xk7diwnTpyo4HSVX25uLr6+vnz22WcMHDjQsX3MmDGkpqayatUqE9NVbhaLhc8//5w777zT7CiV1qhRo/jiiy9YvXo1TZs2NS1HDdNeuZoKDAwkMDDwiuOmTZvG3//+d8f9Q4cOERMTw4IFC+jatWtFRqw0SvpZFeZib8/JySnPSJVWaT6rgwcP0rdvX8LDw5k9e7bLlR+4up8tAU9PT8LDw0lKSnIqQElJSQwYMMDEZFKVGYbBqFGj+Pzzz1m5cqWp5QdUgEwTGhrqdN/Pzw+A5s2b07hxYzMiVVobN25k48aN3HzzzdSpU4dffvmFl156iebNm7vE0Z/SOHToEH369CE0NJTXX3+dP/74w/FYcHCwickqr7S0NI4dO0ZaWhr5+fmOc3Fdf/31jn8vXdG4ceMYMmQInTt3JjIyknfffZe0tDTNJyvEqVOn+Pnnnx339+3bR2pqKnXr1i3w33pX9sQTTzB37lwWL15MrVq1HPPJAgIC8PHxufaBTFl7JgXs27dPy+CLsG3bNqNv375G3bp1DS8vL6NJkybGyJEjjd9++83saJXO7NmzDaDQmxTuoYceKvTz+vbbb82OZrq3337bCAsLMzw9PY1OnTqZtly5svv2228L/Rl66KGHzI5WqRT136bZs2ebkkdzgERERMTluN7kABEREXF5KkAiIiLiclSARERExOWoAImIiIjLUQESERERl6MCJCIiIi5HBUhERERcjgqQiIiIuBwVIBEpsT59+jB27FizYxTq6NGjNGjQgP379wOwcuVKLBZLhV/ctKyvEx8fT+3atUv1nIiICBYtWlSq54hI4VSARMQ06enp3HfffbRs2RI3N7ciy9XChQtp06YNXl5etGnThs8//7zAmIkTJ3LHHXfQpEmTig1tohdffJHnn38eu91udhSRKk8FSERMk5OTQ/369Rk/fjwdOnQodExycjKDBw9myJAhbN26lSFDhnDvvfeyYcMGx5izZ8/ywQcfMHz48GsV3RT9+/cnMzOTZcuWmR1FpMpTARKRMjl+/DgPPvggderUwdfXF6vVyp49e5zGvPfee4SEhODr68vAgQOZMmWK09c+TZo04c033+TBBx8kICCg0NeZOnUqUVFRxMXF0apVK+Li4rj11luZOnWqY4zNZqNGjRpERkYWmffo0aP85S9/oXHjxvj6+nLjjTcyb948pzF9+vRh1KhRjB07ljp16hAUFMS7777L6dOnefjhh6lVqxbNmzfHZrMV2P+6devo0KED3t7edO3alR9++MHp8fj4eEJDQx2fxdGjR50e37t3LwMGDCAoKAg/Pz8iIiJYsWKF0xh3d3f69etXILeIlJ4KkIiUydChQ9m0aRNLliwhOTkZwzDo168feXl5wPlCMHLkSMaMGUNqaipRUVG89tprpX6d5ORkoqOjnbbFxMSwfv16x/3Vq1fTuXPnYveTnZ1NeHg4S5cu5ccff+TRRx9lyJAhTkeSAD766CMCAwPZuHEjo0aN4q9//Sv33HMP3bt35/vvvycmJoYhQ4Zw5swZp+c988wzvP7666SkpNCgQQP+9Kc/OT6LDRs28Mgjj/D444+TmppK3759+fvf/+70/FOnTtGvXz9WrFjBli1biImJ4Y477iAtLc1pXJcuXVizZk3JPjwRKZop16AXkSqpd+/expgxY4yffvrJAIx169Y5Hjty5Ijh4+NjfPrpp4ZhGMbgwYON/v37Oz3//vvvNwICAord9+U8PDyMTz75xGnbJ598Ynh6ejruDxgwwHjkkUecxnz77bcGYBw/frzI99OvXz/j//2//+eU4eabb3bcP3funFGzZk1jyJAhjm3p6ekGYCQnJzu9zvz58x1jjh49avj4+BgLFiwwDMMw/vKXvxixsbFOrz148OAiP4uL2rRpY0yfPt1p2+LFiw03NzcjPz+/2OeKSPF0BEhESm3nzp3UqFGDrl27OrbVq1ePli1bsnPnTgB2795Nly5dnJ53+f2SslgsTvcNw3DadvbsWby9vYvdR35+Pq+99hrt27enXr16+Pn5sXz58gJHWNq3b+/4u7u7O/Xq1ePGG290bAsKCgLg8OHDTs+79Ou3unXrOn0WO3fuLPD13OX3T58+zbPPPkubNm2oXbs2fn5+7Nq1q0A+Hx8f7HY7OTk5xb5fESleDbMDiEjVYxhGkdsvFpPLS0pxzytOcHAwGRkZTtsOHz7sKCIAgYGBHD9+vNj9/Pvf/+aNN95g6tSp3HjjjdSsWZOxY8eSm5vrNM7Dw8PpvsVicdp28T2VZCXWpZ/FlTzzzDMsW7aM119/neuvvx4fHx/uvvvuAvmOHTuGr68vPj4+V9yniBRNR4BEpNTatGnDuXPnnObPHD16lJ9++onWrVsD0KpVKzZu3Oj0vE2bNpX6tSIjI0lKSnLatnz5crp37+6437FjR3bs2FHsftasWcOAAQN44IEH6NChA82aNSswaftqfPfdd46/Hz9+nJ9++olWrVoB5z+vSx+/fPzFfEOHDmXgwIHceOONBAcHO85pdKkff/yRTp06lVtuEVelAiQipdaiRQsGDBjAiBEjWLt2LVu3buWBBx7guuuuY8CAAQCMGjWKhIQEpkyZwp49e5g1axY2m63AUaHU1FRSU1M5deoUf/zxB6mpqU5lZsyYMSxfvpxJkyaxa9cuJk2axIoVK5zOGRQTE8P27duLPQp0/fXXk5SUxPr169m5cyePPfZYgSNLV2PChAl8/fXX/PjjjwwdOpTAwEDuvPNOAEaPHk1iYiKTJ0/mp59+4q233iIxMbFAvkWLFpGamsrWrVu57777Cj3KtGbNmgKTwkWk9FSARKRMZs+eTXh4OLfffjuRkZEYhkFCQoLj66IePXowc+ZMpkyZQocOHUhMTOSpp54qMFenY8eOdOzYkc2bNzN37lw6duxIv379HI93796d+fPnM3v2bNq3b098fDwLFixwmn9044030rlzZz799NMi87744ot06tSJmJgY+vTpQ3BwsKOglId//vOfjBkzhvDwcNLT01myZAmenp4AdOvWjffff5/p06dz0003sXz5cl544QWn57/xxhvUqVOH7t27c8cddxATE1PgSM/BgwdZv349Dz/8cLnlFnFVFqMsX8qLiJTBiBEj2LVrV4Us405ISODpp5/mxx9/xM2tev6/3TPPPENmZibvvvuu2VFEqjxNghaRCvP6668TFRVFzZo1sdlsfPTRR8yYMaNCXqtfv37s2bOHgwcPEhISUiGvYbYGDRrw9NNPmx1DpFrQESARqTD33nsvK1eu5OTJkzRr1oxRo0YxcuRIs2OJiKgAiYiIiOupnl+Ui4iIiBRDBUhERERcjgqQiIiIuBwVIBEREXE5KkAiIiLiclSARERExOWoAImIiIjLUQESERERl/P/AZaP27Xvhj1uAAAAAElFTkSuQmCC",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
"source": [
"import numpy as np\n",
"import pandas as pd\n",
@@ -3027,7 +3651,10 @@
"id": "0b32041d",
"metadata": {
"collapsed": false,
- "editable": true
+ "editable": true,
+ "jupyter": {
+ "outputs_hidden": false
+ }
},
"outputs": [],
"source": [
@@ -4060,7 +4687,10 @@
"id": "ca5ce77c",
"metadata": {
"collapsed": false,
- "editable": true
+ "editable": true,
+ "jupyter": {
+ "outputs_hidden": false
+ }
},
"outputs": [],
"source": [
@@ -4098,7 +4728,10 @@
"id": "58381fbe",
"metadata": {
"collapsed": false,
- "editable": true
+ "editable": true,
+ "jupyter": {
+ "outputs_hidden": false
+ }
},
"outputs": [],
"source": [
@@ -4157,7 +4790,10 @@
"id": "81d407da",
"metadata": {
"collapsed": false,
- "editable": true
+ "editable": true,
+ "jupyter": {
+ "outputs_hidden": false
+ }
},
"outputs": [],
"source": [
@@ -5064,7 +5700,25 @@
]
}
],
- "metadata": {},
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.9.15"
+ }
+ },
"nbformat": 4,
"nbformat_minor": 5
}
diff --git a/doc/src/week35/week35.do.txt b/doc/src/week35/week35.do.txt
index 8f07a83f9..4d5e32c90 100644
--- a/doc/src/week35/week35.do.txt
+++ b/doc/src/week35/week35.do.txt
@@ -17,7 +17,7 @@ o Introduction of Ridge and Lasso regression
=== Reading recommendations: ===
o These lecture notes
-# o "Video of lecture":"https://youtu.be/VKakN-e4aUA"
+o "Video of lecture":"https://youtu.be/2mvizAQFST8"
# o "Video for exercises week 35":"https://youtu.be/yiY0OltU1s8"
o Goodfellow, Bengio and Courville, Deep Learning, chapter 2 on linear algebra
o Raschka et al on preprocessing of data, relevant for exercise 3 this week, see chapter 4.