assignment_1_notebook Bright Dark Blues Grays Night  SIT744 Assignment 1: Image Classification with Deep Feedforward Neural Network¶ Due: 8:00 pm (AEST) 19 April 2021 (Monday) This is an individual...

2 answer below »
deep learning


assignment_1_notebook Bright Dark Blues Grays Night  SIT744 Assignment 1: Image Classification with Deep Feedforward Neural Network¶ Due: 8:00 pm (AEST) 19 April 2021 (Monday) This is an individual assignment. It contributes 30% to your final mark. Read the assignment instruction carefully. What to submit This assignment is to be completed individually and submitted to CloudDeakin. By the due date, you are required to submit the following files to the corresponding Assignment (Dropbox) in CloudDeakin: [YourID]_assignment1_solution.ipynp: This is your Python notebook solution source file. [YourID]_assingment1_output.html: This is the output of your Python notebook solution exported in HTML format. Extra files needed to complete your assignment, if any (e.g., images used in your answers). For example, if your student ID is: 123456, you will then need to submit the following files: 123456_assignment1_solution.ipynp 123456_assignment1_output.html Marking criteria Your submission will be marked using the following criteria. Showing good effort through completed tasks. Applying deep learning theory to design suitable deep learning solutions for the tasks. Critically evaluating and reflecting on the pros and cons of various design decisions. Demonstrating creativity and resourcefulness in providing unique individual solutions. (Warning: Highly similar solutions will be investigated for collusion.) Showing attention to details through a good quality assignment report. Indicative weights of various tasks are provided below, but the assignment will be marked by the overall quality per the above criteria. Assignment objective¶ This assignment is for you to demonstrate the knowledge in deep learning that you have acquired from the lectures and practical lab materials. Most tasks in this assignment are straightforward applications of the practical materials in weeks 1-5. Going through these materials before attempting this assignment is highly recommended. In this assignment, you are going to work with the Fashion-MNIST dataset for image recognition. The dataset contains 10 classes of 28x28 grayscale images. You will see some examples in the visualization task below. This assignment consists of five tasks. Task 1 Load the data¶ (weight ~5%) Load the Fashion MNIST dataset (https://github.com/zalandoresearch/fashion-mnist). You may get the data via Keras (keras.datasets) or Tensorflow Datasets (tfds). Task 2 Understand the data¶ (weight ~15%) Display 25 images from the train set in the form of 5x5 matrix. Answer the following questions: What are the data types and shapes of the features and the label? What are the unique labels in this dataset? How many training images and how many test images? What is the size of each image? How much memory is required for holding the whole training data. Find out the numeric range of the input. Do we need to rescale the input? Why? Task 3 Construct an input pipeline¶ (weight ~15%) Creat train/validate/test data splits and construct tf.data pipelines. Make sure that the training data is batched. How do you determine the batch size? Do we need to shuffle the training data? If yes, how do you determine the buffer size? Task 4 Construct a deep forward neural network¶ (weight ~35%) Task 4.1 Setting up a model for training¶ Construct a deep feedforward neural network. You need to decide and report the following configurations: Output layer: How many output nodes? Which activation function? Hidden layers: How many hidden layers? How many nodes in each layer? Which activation function for each layer? Input layer What is the input size? The loss function The metrics for model evaluation (which may be different from the loss function) The optimiser Justify your model design decisions. Plot the model structure using keras.utils.plot_model or similar tools. What is the number of trainable parameters in the model. Explain how the total number can be estimated from the model configurations. Task 4.2 Fitting the model¶ Before you fit the model. Think about what initialisation method have you chosen? If you did not specify the initialisation method, find out what is the default one. Choose a layer and visualise its initial weights. (Hint: You may use UMAP to visualise a collection of high-dimension vectors.) Decide and report the following training setting: The training batch size The number of training epochs (at least 1,000 epochs recommended) The learning rate. If you used momentum or a learning rate schedule, please report the configuration as well. Now fit the model. Show how the training loss changes. How did you decide when to stop training? After fitting the model, visualise the model weights again. How did the weights change? Why? Task 4.3 Check the training using TensorBoard¶ Use TensorBoard to visualise the training process. Show screenshots of your TensorBoard output. Optional task: Record the gradients during training and use TensorBoard to visualise the gradients. Task 5 Overfitting and regularisation¶
Answered 4 days AfterApr 13, 2021SIT744Deakin University

Answer To: assignment_1_notebook Bright Dark Blues Grays Night  SIT744 Assignment 1: Image Classification with...

Vicky answered on Apr 18 2021
156 Votes
{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "v81NrNYlAzIm"
},
"source": [
"# SIT744 Assignment 1: Image Classification with Deep Feedforward Neural Network\n",
"\n",
"
\n",
"

Due: 8:00 pm (AEST) 19 April 2021 (Monday)

\n",
"\n",
"\n",
"This is an individual assignment. It contributes 30% to your final mark. Read the assignment instruction carefully.\n",
"\n",
"

What to submit

\n",
"\n",
"

\n",
"This assignment is to be completed individually and submitted to CloudDeakin. By the due date, you are required to submit the following files to the corresponding Assignment (Dropbox) in CloudDeakin:\n",
"\n",
"

    \n",
    "
  1. \t[YourID]_assignment1_solution.ipynp: This is your Python notebook solution source file.
  2. \n",
    "
  3. \t[YourID]_assingment1_output.html: This is the output of your Python notebook solution exported in HTML format.
  4. \n",
    "
  5. \tExtra files needed to complete your assignment, if any (e.g., images used in your answers).
  6. \n",
    "
\n",
"

\n",
"\n",
"

\n",
"For example, if your student ID is: 123456, you will then need to submit the following files:\n",
"

    \n",
    "
  • 123456_assignment1_solution.ipynp
  • \n",
    "
  • 123456_assignment1_output.html
  • \n",
    "
\n",
"

\n",
"\n",
"

Marking criteria

\n",
"\n",
"

\n",
"Your submission will be marked using the following criteria.\n",
"\n",
"

    \n",
    "
  • Showing good effort through completed tasks.
  • \n",
    "
  • Applying deep learning theory to design suitable deep learning solutions for the tasks.
  • \n",
    "
  • Critically evaluating and reflecting on the pros and cons of various design decisions.
  • \n",
    "
  • Demonstrating creativity and resourcefulness in providing unique individual solutions. (Warning: Highly similar solutions will be investigated for collusion.)
  • \n",
    "
  • Showing attention to details through a good quality assignment report.
  • \n",
    "
\n",
"

\n",
"\n",
"

\n",
"Indicative weights of various tasks are provided below, but the assignment will be marked by the overall quality per the above criteria. \n",
"

\n",
"
"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "JOr2bP8kAzKE"
},
"source": [
"## Assignment objective\n",
"\n",
"\n",
"\n",
"This assignment is for you to demonstrate the knowledge in deep learning that you have acquired from the lectures and practical lab materials. Most tasks in this assignment are straightforward applications of the practical materials in weeks 1-5. Going through these materials before attempting this assignment is highly recommended.\n",
"\n",
"In this assignment, you are going to work with the Fashion-MNIST dataset for image recognition. The dataset contains 10 classes of 28x28 grayscale images. You will see some examples in the visualization task below. \n",
"\n",
"This assignment consists of five tasks.\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "cDqvFgbRAzKG"
},
"source": [
"## Task 1 Load the data\n",
"\n",
"*(weight ~5%)*\n",
"\n",
"Load the Fashion MNIST dataset (https://github.com/zalandoresearch/fashion-mnist). You may get the data via Keras (keras.datasets) or Tensorflow Datasets (tfds). "
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Using TensorFlow backend.\n"
]
}
],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"from keras.datasets import fashion_mnist\n",
"from keras.utils import to_categorical"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"# load dataset\n",
"(train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"class_names = ['T-shirt/top', 'Trouser', 'Pullover', 'Dress', 'Coat',\n",
" 'Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle boot']"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "nFbty6i5AzKm"
},
"source": [
"## Task 2 Understand the data\n",
"\n",
"*(weight ~15%)*\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "PLYAtx-ZAzKo"
},
"source": [
"Display 25 images from the train set in the form of 5x5 matrix.\n",
"\n",
"Answer the following questions:\n",
"\n",
"1. What are the data types and shapes of the features and the label? \n",
"2. What are the unique labels in this dataset?\n",
"3. How many training images and how many test images?\n",
"4. What is the size of each image? How much memory is required for holding the whole training data.\n",
"5. Find out the numeric range of the input. Do we need to rescale the input? Why?\n",
" "
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAj0AAAI8CAYAAAAazRqkAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOydebxd0/n/P8tUEYSMMroSMTRERjEEMRRBiqKGmupb6qdaql9DtXxLW6qqVBUtVdSUIilRJIgMRCqDyCBERiKSuJKIkFLs3x/33JXPenL2yr4399x77t2f9+uVV5591jrr7LPXWvvs+4wuSRIIIYQQQjR1NmnoExBCCCGEqA/00COEEEKIXKCHHiGEEELkAj30CCGEECIX6KFHCCGEELlADz1CCCGEyAWb1aRz69atk4qKihKdiijGwoULUVlZ6ep63HKZy//85z9efuedd7y8/fbbB/222morLzvnisp2vJUrV3r5a1/7WtBvhx128PKmm25a09OuNVOmTKlMkqRNXY/bUPP5xRdfBMeVlZVebtWqlZc333zzjf6sTz/91Ms8z0C4XuyaKBVNYW9+9tlnXl6zZk3QtmrVKi/zHuF5BcK9mbb/AODjjz/28iabrPt7u2XLlkG/Nm3qfHtkohR7s1zus6Xkv//9r5frYp/XBbG5rNFDT0VFBSZPnlw3ZyUy0a9fv5KMWxdzyTmeavtDM3v2bC9feOGFXv72t78d9Ovdu7eXt9hiCy9vtlm4hGfNmuXl4cOHe7lr165Bv8suu8zL2223XU1Pu9Y45xaVYtyG2pvLly8Pju+9914vn3nmmV7mh8zaMm3aNC+/+eabQdsJJ5zg5fq68Zbz3szKggULvDx27Nig7YknnvAyP5icccYZQb8+ffp4mefl8ccfD/o9//zzXm7evLmXTz/99KDfeeedl+nc65pS7M08/GYuWbLEyx06dGjAM1lHbC5l3hJCCCFELqiRpkfkj5g2J02789prrwXHQ4cO9bL964/V5qxev/LKK4N+K1asyHjG69hll128/Prrrwdt119/vZdZC3HEEUcE/X7yk594ec8996zxOTRFeJ6efPLJoO3+++/38iOPPOJla7JgbR1rZqyJhc0v7777rpePO+64oB+vo5NOOin+BXLGM8884+Wbb745aGvWrJmXP//886Bt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+PEZ9sXDhQlRWVhbLOr1RNNRc5p0pU6ZUJknSpq7HLcf5/Pjjj738ta99LWjbYostMo3x2Wfrksd++umnXt5+++038uw2Hu3NpkUp9qbmsmGIzWWNHnoqKiowefLkGn24jQ4rXjUizvLly4Pj0aNHe/muu9bVGt1uu+2CfrvvvruX+aa7cuXKoN8rr7zi5X322cfL1113XdCvWbNseQf5O9fm+zL9+vXbqPenUZu5FBuPc25RKcati/lMi+Ss7RoeO3asl7t16xa0derUKdMYCxYs8DJ/v5NOOqlW51SXaG82LUqxNzWXDUNsLkuSpyfrjz5raf7whz8Ebc8/vy7h43/+EyZtZG3M559/7uVJkyYF/YYNG1b0czfffPPgmDU6//73v7283377Bf1atmzp5YMOOsjLP/zhD4N+5fBXqBA1hfdtTKu5ePFiL99zzz1B20033eRl1sjWBXxOZ5xxRtB2ww03ePmiiy5CFr766qvU8YUQTRPtciGEEELkAj30CCGEECIX6KFHCCGEELmg3mtvzZs3z8vHHHOMl3fYYYegHzslWx8cjtJiB2XrWLhmzZoNvgcI/YI++OADL9soL44kee6557z88ssvB/2+//3ve/lb3/oWhChHsvq09O7dOzh+++23vcx7AgC22morL/Oetn557PfGe/39998P+q1du9bLHEhgx/vf//1fL3MAwqGHHhr0e+ihh7xsvy9fD/n3pGMd3tOuW8yfM1b+qDaO8xMmTAiO2R/zrbfe8vIuu+yy0Z/VlKnrYIasnH766V6+5JJLgrY+ffp4me839nc8K9rZQgghhMgFeugRQgghRC4oiXkrpgr76U9/6uX27dt72YZ5s2nJjrfZZutOm9VxbM4CQvUXy2zOAsLkhGxK488BwmSHrNK14/3pT3/y8uGHHx60bb311hCiocgalr7vvvt6eebMmUFbu3btvGzXPu9VbrN7aenSpV5mk5bNhcVJDNmkxXvRHvO94+GHHw76cYLDf/7zn0EbX4+6zLWVJ7Jeq9pc0zFjxgTHM2bM8DKbXAHgyiuv9DLP5ahRo4J+tTWRlCNZ12ysHx9zv6z59v773/8Gx/x7yvN14oknBv3mzJnjZfs7zvu0LvaiND1CCCGEyAV66BFCCCFELih59JaNxmC19rbbbutlqxZjdTirpIHQHPXll1962dbe4mNWXdvIDx6f+8WixthMZVXtfH5PPvlk0HbaaadBiIYiph4ePny4lydOnOjlzp07B/3YtGv3LY+fJgPh3mfVuY0oSzPH2T3M4/O+7dKlS9Bv5MiRXn7mmWeCtsGDB6eebx7IasKwr9v7bhr333+/l7ncz/jx44N+t956q5c7dOjg5ddffz3ox5FYHOEDALfccouXe/Xqlen8GjtppqlYP/79tPBetJHMbIbmfvY3c9y4cV4+/vjjvWxr7+22225eZvcQix2/NkjTI4QQQohcoIceIYQQQuQCPfQIIYQQIheU3Kdn5cqVwTH79LAt2GZ2ZT8bazPmUNi0MFMgtDWyHdPaJ5mYXZT9jDhzc+vWrVPPj6vFA/LpEfVPzO+N4ezhvKY//vjjoF8sWzr7+MT2HLdlzX4c65d2H7Ah9XzuRx11VNDG/oecTdqeuw2/F+uYPXu2l+1145DzyZMne3nFihVBv7POOsvLBx10kJet3w6PwTIQ+ozMnTvXyzvvvHP0/JsKWX3SYvcDbov50vDee/fdd4M23mPbbLONl60v0U033eTljh07Bm11nT5Cmh4hhBBC5AI99AghhBAiF5RcTzt9+vTgmFWebOqyoap8bEPCOYyxW7duXq6oqAj6cfFDDrFr3rx50I9Vd2xm4wySADBixIii461atSroxxklOXxdiIYgTYV97LHHBsds+uGUDAsXLkztZ01OaWrwWGhsbbCfy2pv/r72vsL3BHtfYfPLKaecUnS8pkxW04FNIcLFPtks2KJFi6DfOeec4+Wbb77Zy9acwQUnly9fnnp+HOY8derUoI0LQvM858W8lbWYsGXZsmVeZrPjhx9+GPSbMmVK0fdYk2bLli29zGvjo48+CvrZYuGlRJoeIYQQQuQCPfQIIYQQIheU3LzFamIAOOCAA7z84IMPetkWNeSCcazGjGHVrmvXri0qW5MTZ3dl05eNtLr++uu93L9/fy+zmQ4IVejz58/PdO5C1DevvPJKapuNpmRiqvJYFmYmljE2C1kLJdpz5egym9V50qRJXub7Vl6yM1sTJF87vgaxws58H7cFQv/85z97+dlnn/XyEUcckXpObdu2TW1j0xebUQDgvffe8/I999zj5f333z/ot8cee6SO35iJzeW8efO8fPHFFwf92FWDo61mzZoV9GMXkzfeeMPLgwYNCvqx6ZLvKbbQayyiOitZTejS9AghhBAiF+ihRwghhBC5QA89QgghhMgFJffpueyyy4Jjti0efPDBXu7du3fQb/Xq1V62Pj1ss+dqza1atQr6pWWOtTZ6Ho9D6ayfEYc7sj8Sh/fa87C2y7xT2+q/af4Ftc2WyyGdWcM5Lewfwp/bWHxAOO0CEGYvjl1HnsNYRmYeI2Zvj4WYp62XWBg5rwkbls5+BTZ1xUMPPeRlzhCbF2JpABi7bniORo8e7eXTTz896HfnnXdu7CkGcBg1/14AQN++fb3M2Zmtr5oNxW4qxDIoc5qXe++9N2izv6E1pU2bNsEx+82x/9TJJ58c9GMfodi9n9tiFRNiSNMjhBBCiFyghx4hhBBC5IKSm7dsOOILL7zg5ccff9zLo0aNCvpx0bnbb789aGMTFBeTs6GUaWYQVsEDofqTVWlWPcshfL/5zW+8bE1Y22+/vZeHDRsWtHH2UhtmmQeymn6s6jLtfVlVmnYN/epXv/LykiVLMo1hiamQy5XXX3/dy1w0Fwgz6LJamveHbbPmo7TiptZsxW2xMPe0YoOx4sK8Jmw/LoBs923eC4lm3Zt8HwSAAw88sKhs4bQhvG6ypjaw/bhALN9zgdDtYfDgwUXfAwCLFi1K/ew8YM1ZvI94L2e917HLChD+xvMcjR07Nuh3+eWXezlrEVRLVlOlND1CCCGEyAV66BFCCCFELtBDjxBCCCFyQcmN2FdccUX4gWQ35zC13XffPej35JNPevnaa69NHZ9tjdZGn+Y3YG33af4+tlwFh8APGDDAy1w9Fgjtmraqbx79eGKk2eyz+ldwmDEATJs2zcuPPvqol63vCYdWnnrqqV5++OGHM30uEIZ4//a3v/Xyz3/+88xj1De81q2fDcP+cTaUmefMpgzgNh7f+tawvwCPHwtZj9nz0/rZ8Fe+X9jvtXjx4tTxRTpZ55LhttpWsWefNJs2JG0dWr/PvPtxxXwnY348vO/5Gp555plBP74H82exLy4Q+nvZlAgMl7z4wQ9+ELRxyYsY0vQIIYQQIhfooUcIIYQQuaDkur3jjz8+OOaQ9SlTpniZwwoB4Jvf/KaXuZouAHTp0sXLrFq1oeisMotlhGX1HFdIt+q9jz/+2Msc6njzzTcH/bjNVhrmzNM2C3VTJRZ2mhau+vbbbwfHrCbl6uA21UHXrl293KlTJy/bMNuFCxd6+emnn0479SiPPPKIl//973/Xaoz6ZurUqV5m8xyQHhJuQ9ZZ/WxNwGkqcTvPaRm2rcmJ920sE3fa/rav8z3BZo9lEwnPJ5uyxfqkmafs67xuYvfj2P2C4bV33333BW3HHHOMl0877TQvWzNYzJSSB2qbPT4tiz1fdyAMU+cK7pxSAAifCzp37hy02WeIajj9BBC6OnDFBIs0PUIIIYTIBXroEUIIIUQuKLl5a/bs2cExm4846mmfffYJ+r388stenjFjRtDGKrlYhEBaptdY0cu0SAR7vqwy7dWrV9Bvp5128rJV1e26666pn12OxApzsnnEmkCYmAqVVZ5XXnmll4cOHRr04+KQ7du39/Lee+8d9GMT56effuplW7T2vffe8/JVV12Ven5sWrXndMkll3j5zTff9DKbbYGw+GFDw2vf7gM2R2TNwGrH4Pdx5mZr6kgzW8X2JmPXFBeS5MzSNlqHzWL2O/IYt9xyi5drEtFX7mTNdF5qYhF2af0snE3YugpMnjzZy9///ve9PG/evKDffvvtt+GTbWJkNR/G7hVZ1w3//rF7yIoVK4J+Q4YMSR2jXbt2XuY9a7M/8+9CDGl6hBBCCJEL9NAjhBBCiFyghx4hhBBC5IKS+/RYGyrbb999910v26zGsdBxDjtkW6PNrpnmnxOr5Mx+IPZz2b+Dz8/6DbC/CPusAMDSpUu9zOHV5UTMlsvE/HgYDkfkqrtAGGbI2ap79OgR9OO5/eijj7y8evXqoB+HoLIfENv4gXC9cXjjjTfemDrennvuGbSxDwj7r9jw+HLChuwyaVWV7Tzzmoj5YzAx37usxMLoeZ/x/rZh+ZxV3Z4Tj8nz2ZRoKB+eGFkzMnO2dQDYa6+9vMxZ1QHgqaee8vLIkSO9bNeD9bnMA7VZA2kh6hvi9ddf93LPnj29bKvdc/oPe0+/+uqrvcy/td/4xjdqdU7S9AghhBAiF+ihRwghhBC5oOTmLWse4cKPbLKwJgE2M1nVGqulWb1uPyst3Nr2SyuSZ1Wh3Na6dWukweF4NnPskiVLvFyu5i1Wf2ZVPd96661evuOOO4K2ZcuWedmqk/fYYw8v83rg98TOL2aq5Hm12XetCrUaG8I6fPjw1PP41a9+5eU//elPXt5xxx2Dfg888EDqGPXNdddd52VrvuVjNt3Z8FIOFc4aYl4X8F635i1ep3zuNks7m/f4HgOEJut//vOfXi6XMO+mBM9l7B5zww03eNmuw/PPP9/Lf//734M2XqNHHXWUlzkTO5DdRJ8X0sLZ7e9YWjFvu1e4CDj/xtfkvvHrX//ay/wbfNJJJ2Ueg5GmRwghhBC5QA89QgghhMgFJTdv2QiJNPMDFyYDwsKAMfNWTNWcNSNzmlrfqvT4czlLJJvsgFD1Z8fgrJTlAhehBIDnnnvOy2+99ZaXbUQLm+r4e3GEDBAW/uTIKyC83raNYdMDX9OYqZJNG3YNcVQWz58tHMpZPm1xzY4dO3p5l1128bI1m9x1110oF+bPn+9lVj0D4Vywadea6/j71ad5i4ntYV6L1rwVy+bOJpeKioqi7xF1A98jrcnpF7/4hZd5r7dt2zbox5Gg3bt3D9p43vk+1RjNWbzWec3G9p6939U2+irt/Wl7ol+/fsExZ03mKLoY1q2E9yXfi2IuJjGk6RFCCCFELtBDjxBCCCFygR56hBBCCJELSu7TY2EbLdsFbUZm6xeRRpqPkP0stoVaWz4fZ63+y/4QsVD5WJbohmT58uW47bbbAADDhg0L2tifKpYFl+3mnP3YXg/OomnniH112BfI+kLxWmHfIvtZ7JfC88DfyY7BNmSu0A2E68H6nbEfCY9fbn5bnCGcz9PaxNOykds5S8t0DqSHvNqwZGu3T4PH5zFiobHsG2bXLPtv2XnivfrOO+9kOr9ywd5XsqaaqOvP5nmxc8x7ffbs2V6+9NJLg37sH8dZ+2+66aagX8zXirM3sx/bvvvum/qeUhNLfRCrfF6bFCJ1Tcwn6Fvf+paXOesyAPztb38r+h77G8zj23s/+1L27t17wye7AaTpEUIIIUQu0EOPEEIIIXJByc1bWcM9renAqriYtOzK1pSUFtoeOycew6qM+bPYTGBDtNnEYimXQoatWrXCGWecAQDo379/0Pbyyy97eebMmV5etGhR0I/NAytXrvSyDRPma2rVmlzEtbKy0ssxkwqrze1npYVx2kKbbI5jE4hVH/NasakJ+DxYdW9DwY8++mgv//a3vy16fqVk/PjxRV+PmZzYvGW/N2fGteajNFV81tQStYWvOc+tXUdsarX3GP6edVEgtT6JmT1ioc11ce3TXAJ4TwChmfX3v/+9lw855JCgH6eNePTRR2t1Tvy9YudUn8Syx9dmHt58883g+J577vGyNRnajPTVxMxM/Ftl7wE///nPvfzBBx942bpKpBEzl8VS1HTr1i31fVnTZ0jTI4QQQohcoIceIYQQQuSCeo/eygqr1qzqNi1DZUwlHVMfphUctWaKVatWeZnNWzYbKEcOWPV/Q2WwLUb1uXDRTwAYMGBA0f7WbLdgwQIvz50718s2wypnRLXmvbS5tCpOLiDIhev4dSA0NXIkljVBspo7pvJmk09s7jgSis0rQMNn9LWFRaux6zst2yuveyA0F8RMymn7yh7z+cWuMX+uvaZp5jj73dkMa83X9rs0Fep6/cWikGJmNs603KFDBy9Pnz496Dd06NCNPMNw7bHZvL4zMidJ4k3wsezxvPbYdAQAd999t5dtlDPD9+MnnngiaOPM+mnnYM+R9xFH0QGh2fHpp59OPSf+neQs+DGzGu9RIFxfAwcOTP0smbeEEEIIIQg99AghhBAiF+ihRwghhBC5oORGbPa/AMKQ0ZgPDtsCrV2e7cax0Le0jJfW9pcWHh/zx+Fz79KlS9Bv8uTJXrZ+E+WSkXnTTTf1fi62evj777/v5ZidtGXLll4eNGiQl63fTppPCZDup2HXBo+ZFr4OhCHs/B5ed0AYZhmrys3nbtcJZzDmdW59Q2yV8vrmoIMOKvq69fVI8zGwc8HXJOYXxOPba8fHbOu31z8tHNqOx+cUyxjN4zdUdttSEPOzYZ+sZcuWBf14r/MejpHVR+j//u//gmNeU+zHM3z48EzjxdKYxDLfs09PfeOci97/ijF16tTgmOcsdo/kKvScCgQARowY4eUhQ4ZEz7cYp556anB85JFHejkWRs57OytLly4NjtlHcr/99qvxeBZpeoQQQgiRC/TQI4QQQohcUBLzFpscYlkot91229QxWA0dCyXl8WOq8ayhsDHTWZq6vqKiIujH5xFTr5cLNsTaHqfBJsiY2YBNSzbsPe16WDNgWlHY2Pt4vqyZtWPHjl7mtWFV6LHvlbZu7PXj8NyG4F//+lfR1635lo/Z/NeuXbvUfnZfpa19e+3YLJZmEgPCaxzrx/MWy6ycNmfFjhsTMZPTG2+84WUbesz3YFvkuTbZiznr8oQJE4I2NjenZQmPETPHxvo2ZPHYNWvWYNy4cUXP48QTT/Qyr1k2OVo4DYetYsCmJHsPuuiii7wcM28xxx57rJdnzZoVtNmQ+LqECwYD2dehQtaFEEIIIQg99AghhBAiF5TEvBUr7snqbzYxWGLZV9PUmla9lRaxZd+fljnWfi6b2Tjix2Zkjpm3yikj88bC6tSYl75Vw4r65dlnny36ujUbs8mJ1/cdd9wR9PvOd77jZWue5MKuvPatKY3bYns97T02QpCPWT1uI9e4aK7N0p2GjXiy5r5SUH2fyBopFYveqouIl6yce+65Xp4zZ07Q9tRTT23U2LHM/BZeK7YwZ33y2WefYf78+QCA73//+0HbVVdd5WXeN2witG0cCWZNlfy+WNHOyy67zMvf+973gn6XX365l1988UUvH3bYYUE/mwm/LrHmPeuakEbWvSJNjxBCCCFygR56hBBCCJEL9NAjhBBCiFxQ8ozM1s7GtsVYKG/WrKppIa3F3ldN1irBMZsx+w306NEjaItVfm9KPj2iccBpAtg+bkOU0/bL8ccfHxz/6Ec/8vJDDz0UtLEv0IoVK7zcvn371HNirN8G7032Z7AZtvl9AwYM8DKH6gLA2LFji45d7LOrefLJJ4Nj9lspFTWtjB7rz/eco446KmhjP5ArrrgiaDvttNMyffa1117rZfYfu/jii4N+e+65Z6bx6gL+XbBVu+uTVq1a4eyzzwYA/OUvfwnaOJUAn6Pdh1xZndc9Z9oGgNatW3vZ+rzxGrjxxhuLygDQpk0bL7Of5jXXXIM0+DculkYgK/Z7ZfW9y/rZ0vQIIYQQIhfooUcIIYQQuaDezVusZosVYuTwWVa5AaGKPpZFNa1oYqzQKZ+fVcGnFbCMhd7b84sVzROiFPAeZPNTVrWx5Te/+U1ROYZVt/N58J6z9ws+5rD3WDb3rMSySXOGXC7WCJTevPXxxx9jzJgxANYP9ed7Hxf8tRl4+f7J34VlAJg7d66Xb7rppqCNw5S5mOWoUaOCfn/4wx+8zEVLs66N2hIz6fE93hbFbShs5v6JEyd6mYtW2yLKnDKBvxeHsgPh71Xs2nAKkdi1YbNazDRZU1MssP5vK5vSbEbmtBQR9p5i13Ya0vQIIYQQIhfooUcIIYQQuUAPPUIIIYTIBSXx6Ukr/2CJpZdmm5+13XHo6ocffuhlm1Y/a/g5wzZT6zfwySefeJlTZVtbIp+79eGx9lohSs1f//pXLw8bNszLvJ6Bug89ZeweyWp/r2vYr4IryQOhjxPfc/bff/+Snxfz+eefY+HChQDg/69m+fLlXma/KL4nAqHfBt8HO3fuHPQ7/fTTvdyzZ8+g7fnnn/cyV0yfMWNG0G/gwIFeZr8g64/E98VS+9mwj8gRRxxR0s/Kyk9/+tPg+OGHH/Yyl5Swv1X8O8m/SfYasm+N/d1hfzUe3/q38pqy6SiYjb1XxH6P7e99mk9PzDc3hjQ9QgghhMgFeugRQgghRC4oiXmLs2FaFWdWk9OJJ57o5dWrVwdtHMLOnxULX+d+sWrsrKqz5rIWLVp4uV+/fqmfxapme058HkLUB2y24Srjtvo277Os2XhjxNJE8HEs5DWtzarU+TgWAn/kkUd6+e677w7aOA3F0Ucf7WWuPF0fcBbfrLCZHwAWL17sZc6Mza8D4bXitQGEJi1eGzarM68Vaz5j6jN0nM1bv//9773Mlc3rGxv2zdeeM1lfffXVQb9JkyZ52f4W1jUHHHCAlw8++OCSfU7MJMbrDkiv3FCbUHlAmh4hhBBC5AQ99AghhBAiF5TEvLV27Vovx9TatrAYYz3dGxOsdrPfP/adhSg1scyvHLlhzSAMR33ZTMAMq7DrOhosBpuQrYm6V69eqW1s3rrwwgtLdHaloVWrVtHjvMFReo1hLtnsyrJlzpw5Xp4yZUrQNn36dC9zIVkgNHHy75OtJnDnnXcW/VzrErKx+zlm6rzsssuC41133bVoP+s6kxVpeoQQQgiRC/TQI4QQQohcoIceIYQQQuSCkvj0cPXfXXbZJWjjkMYBAwakjhELZ69tqFp9wSGcCxYsCNr69u1b36cjhIf31Y033hi08b5t37596hjlUrU6jdj9gdNdcFgzEH6v+vRBEqXll7/8ZUOfQp3Bv6f2t/XUU08t2efW9W9ubLzDDjss0xixFDUxtLOFEEIIkQv00COEEEKIXOCyFuIEAOfcBwAWbbCjqEt2TJKkzYa71QzNZYOh+Ww6aC6bFnU+n5rLBiN1Lmv00COEEEII0ViReUsIIYQQuUAPPUIIIYTIBWX70OOc+9I5N805N9M596hzbqsN9B/jnOtXkBc651rXz5mKLDjnfuacm+Wcm16Y1/R8BTUfe5Bz7qm6Gk/E0d5supRin/L8b0wfUXM0n+tTkjw9dcTaJEl6AYBz7kEA5wP4fcOeEuCqEgy4JEm+2mBnAQBwzu0L4BgAfZIk+azwo1e7wil1jHNusyRJvmjo82hkaG82Qcp5n4qao/ksTtlqegzjAexs/6J3zt3mnDs79kbn3CWFv0hnOucuLrx2g3PuAurzC+fcTwrypc65SYUn42sKr1U452Y7524HMBVA52KfJVJpD6AySZLPACBJksokSZYU/uq/xjk31Tk3wzm3GwA455o75+4pzMNrzrljC69XOOfGF/pPdc7tZz/IOde/8J6uzrm+zrmxzrkpzrmRzrn2hT5jnHPXOefGArio/i5Dk0R7s+mQtk+vLlz3mc65vxQeLqv30Q3OuVedc3OccwcUXm/mnHukME9DAfgskM65O5xzkwvah2sa4kvmCM1nEcr+occ5txmAwQBm1OK9fQF8F8AAAPsAONc51xvAIwBOpq7fBvCoc+5wAN0B7A2gF4C+zrkDC312BXB/kiS9kyRRCGLNGAWgc2Ej3e6cO4jaKpMk6QPgDgD/W3jtZwBGJ0nSH8DBAG50zjUHsBzANwr9TwZwK39I4SHoTgDHAngXwB8BnJgkSV8A9wD4NXXfLkmSg5Ikuamuv2xe0N5scqTt09uSJOmfJMkeqPrBO4bes1mSJHsDuBjA/xVe+38APk2SpCeq9hynof9ZkiT9APQEcJBzrmcpv1DO0XwWoZwfepo556YBmAzgHQB/rcUYAwEMT5LkkyRJ1gAYBuCAJEleA9DWOdfBObcXgJVJkrwD4PDCv9dQ9Vfjbqi60QLAoiRJJm7cV8onhWvfF8B5AD4AMJS0AMMK/08BUFGQDwdwRWH+xwDYEkAXAJsDuMs5NwPAowC+Th+zO4C/ABhSmMtdAewB4LnCOD8H0In6D627b5g7tDebIJF9erBz7t+FfXcIgB70tmL790AADxTGnA5gOvX/tnNuKqrmsQfCPSzqEM1ncRqFT081zrkvED6obbmBMWIFQx4DcCKAHVD112V1/+uTJPmz+dwKAJ9s+JRFGkmSfImqB5gxhc12VqHps8L/X2LdenQATkiS5C0ewzn3CwDLAOyFqnXwH2p+H1XroTeAJYUxZiVJsm/KKWk+a4/2ZhOlyD79Pqr+iu+XJMm7hT3Ic1ts/wLAegngnHM7oUqb2z9JkpXOuXux4XUiNgLN5/qUs6anGIsAfN059zXnXAsAh26g/zgAxznntiqYR45H6h0UawAAIABJREFUlQ8CUHUzPQVVN9fHCq+NBHCOc25rAHDOdXTOta3rL5E3nHO7Oue600u9EM9SOhLAD8nW3LvwegsA7xccVc8AwBXnVgE4GsB1zrlBAN4C0MZVOfPBObe5c47/ohF1i/ZmIydln1b/4VFZuPYnZhhqHIDvFMbcA1U/sgCwLaoeUD9yzrVDlWlUlAjNZ3HKWdOzHoUn03+gSr32NqpUarH+UwtPn68WXrq7oD5HkiSznHPbAHgvSZL3C6+Ncs7tDuCVwu/tGgCno+qpV9SerQH80Tm3HYAvAMxFlcr1mJT+vwRwC4DphQefhYW+twN43Dl3EoAXYf7CT5JkmXNuCIBnAJyDqg19a+FHeLPCmLPq9qsJQHuziZC2T1ehym9rIYBJGca5A8DfnHPTAUxDYY6TJHndOfcaqvbgfAAv1/UXEAGazyKoDIUQQgghckFjM28JIYQQQtQKPfQIIYQQIhfooUcIIYQQuUAPPUIIIYTIBXroEUIIIUQu0EOPEEIIIXJBjfL0tG7dOqmoqCjJiXz1VVgY+b333vPyJ5+ECVdbtWrl5TZt2pTkfABg5cqVwXFlZaWXt912Wy+3a9euZOewcOFCVFZWxrLX1opSzmWp+c9/1iViXr16ddC26abr8hVussm6Z/qtt9466Lf55puX6OziTJkypTJJkjpftI15Phsr2ptNi1LsTc1lwxCbyxo99FRUVGDy5Ml1c1YG+2Bz1VVXeXnChAlB25lnnunlCy64AKXi0UcfDY7vvvtuLw8evC755MUXX1yyc+jXr19Jxi3lXJaat95aV53i2WefDdpatmzp5S23XJcRfb/9woLsHTt23Ojz4BxXhYR5G8Q5V5KCmI15Phsr2ptNi1LsTc1lwxCbS5m3hBBCCJELGrQMxfnnn+/lsWPHBm1s7rLmI9YC3XrrrV7u3Llz0K9793VlR1q0aOHlFStWBP1Yk/T555972ZpO2rdv7+U77rjDyyNGjAj63XXXXV7u2rUrRDayak7+3//7f15+9dVXg7YvvvjCy5999hnS+N73vufl119/3cuffvpp0O/AAw/08k033RS0NWvWzMtffrmuGgKb2IQQQpQP0vQIIYQQIhfooUcIIYQQuUAPPUIIIYTIBfXu0zN69GgvL1iwwMu9e/cO+rE/jQ1n32uvvbz8wQcfeHnevHlBP44I40iL6dOnB/0222zdZWjdunXqOS1fvtzLO+20k5dXrVoV9PvJT37i5eHDh0NkI6tPz9KlS728/fbbB23sk7XFFlt42c7RAw884GUOgbeh7LNmzfIyrxMg9Cfjz2VfHyGEEOWDND1CCCGEyAV66BFCCCFELqh389Zzzz3nZc5UacOL2czw3//+N2hjExSbHNg8AoRhxGymsOYHzta7zTbbeJmzQgPAVlttVfSzOnXqFPRj09xLL70UtA0cOBCiOGzG5GzKQGg+euedd7zcvHnzoB+HrLN502ZkZrMYm1nZJAaE8/zjH/849dzt+QohhCg/dKcWQgghRC7QQ48QQgghckG9m7eWLFniZS7aGTNvsZnK9mVzhDVhsEmEsRlz2RzFGXnZnGXHZ3OGPT+OPJJ5Kw6bj2yUHsNRf2y2YnNkbAy7FngMXk/WlNqzZ8+i7wHCKLIddtgh9Rxk+hJCiPJAd2MhhBBC5AI99AghhBAiF+ihRwghhBC5oOQ+Pda/gf1nuPI5y0CYJdfCfhfsT7NmzZqgH4cvs++P9dvgc+T32HPn92255Zap58c+PXPmzEntJ8JrZcPFmUmTJnmZ/We22267oN9bb71VdGzrn8WZvBn2MwOAY4891sujRo0K2vr27Vv0nGzqBCGEEOWBND1CCCGEyAV66BFCCCFELii5eYuz3QKhyWjt2rVetmYFzphrzVEff/yxlzkjsw1LZjMDm8us+YHD49m8ZfuxuYTDkK3phLFZnUVI1iKjL774YtHXrXnrG9/4hpfnz5+fOjabt3r16uXladOmBf14TZ1wwglB24477lj0nGxKBJGdhQsXBseLFy/2stI9CCE2Fml6hBBCCJEL9NAjhBBCiFxQcvPW+++/Hxx/7Wtf8zKbiKwpiU0HNuMxZ+Hl99noLTZb8Wfx60BoPuNipNZMwdFF7du397LN1Mvn0apVq6CNzSpt2rRB3uG5ZVOlhU1VnDV74sSJQb+WLVt6mdeGjQ4cNGiQl9mEcuqppwb9rrvuutRzymqaE3EeffRRL1911VVB25FHHullNmXuscceJT2nBx54wMu77LJL0Lb33nuX9LOFEKVDmh4hhBBC5AI99AghhBAiF+ihRwghhBC5oOQ+PR9++GFwzL4wH330kZfHjRsX9PvOd77j5Q4dOgRt7CfEFbLZHwdIz/BrfUe4H4es235t27b1MvuS2Crau+++u5c5AzUAvPnmm16WT096ePf48eOD4+XLl3uZ/Tns+lq5cqWXOe2BzcDMGZTnzp3rZZ47UXM4JQXvC5u64Uc/+lHRtq5duwb9pk+f7uXzzjvPyxMmTMh0PtbP75577vFyZWVl0MYpNLbeemsv2/tPUyWWoiPGrbfe6uU+ffp4me+XQHjP5Htfz549g34dO3bM9LlZuf76673co0ePoO2b3/xmnX6WKH+k6RFCCCFELtBDjxBCCCFyQcnNW9aswNmUOcuu7TdlyhQvH3jggUEbq7w5jNWas1jVzmHqNnMzm7Q4c7MNRecwes7C/O9//zvox2N06tQpaHv99de9fMABByDvpKnQOWQYCFXvPF82JQCbONMybdt+zEknnRQcX3LJJV7+/e9/n3ruCl+vIq3Y6ooVK4JjLgxbUVHh5ZhJhO8Rdn0cfPDBXn7qqae8PHz48KAfm7Ds/jvrrLO8XOqQ+HLEpgZJSyHx/PPPB8ennHKKl9lsZa89Zzvn++ftt98e9GMTZ//+/b3MBX6B0BRtM3m/8MILXl60aJGXef4BmbeyYvc1rwGer27duqW+r1zui9L0CCGEECIX6KFHCCGEELlADz1CCCGEyAUl9+n53ve+FxxzFexVq1Z5mcMegTC0lMO8AWDLLbf0MvvxWF8dDpnlUhPWPsljsK2Z/Y8A4NVXX/Uyp863vh4cgnvnnXcGbVyGI49Yv4G0kPVRo0YFx+y7w9eXS1IA4TynpSwA1g91r+aMM85IPb9jjz02aHviiSe8XC726rqC/eHsd4t917T53HPPPYNjLhcya9YsL3OaASD04+A5++EPfxj0Y9+5vfbay8s/+clPgn7sq8PpMyxpPmTA+mVsGhM8r0B4j7Q+PLNnz/Yy3++4bAsAPP30017m+bPXqUuXLkU/y5aI4eN3333Xy5MmTQr6sf+QPfdvf/vbXuYUJ3PmzEFTpS78Z7jcz7XXXutl9rsDgLFjx3p5yJAhXmYfyI05jzRuu+02L/fq1StoGzhwYKYxpOkRQgghRC7QQ48QQgghckHJzVsWDvseNmxYaj9WQ9vsvKzKTguRtbBa16p42eSy7bbbetmaQLgfq+d/9atfZToHEVd3cioCG4K60047eZmzcLOpEwA6d+7sZVbV2iyvNot2Nbw+AeDll1/2MmcJbwrETB1p16euuPHGG7186KGHeplNhkCYGZnNI+3atQv6sdr7oIMO2ujz43XaGMxZ9j7IxyynmR8B4Nlnnw2Ob775Zi9feOGFXrZZs9NMRsuWLQuO+ZqyWbp58+ZBP16XnFrCrldeGzbVBK9fNpFxxnZgfVNdOZL2G1cTszOb/dmc/OSTTwb92BTIzJgxIzjmUH++pva3ujZpWThdDQBccMEFRc/juOOOC/rJvCWEEEIIQeihRwghhBC5oOTmLauaSzMzWRUyR3uwGhMI1Xg8ho2yYI/+mLqe38djcyQXEKpJY9gIJSamXs4DsXngiC27HjjqjVW1ds65wCSbwWzRSM7uy5/1zjvvBP2uuuqq1PM9++yzvXzvvfem9qsvqvdaTM3N+zE2F0uXLvXy3//+96DtmWee8fLo0aNrfJ4AMGDAAC9zpA2PDYR7OM3sAYTRRTHzFu9NLngMhGuHM/cuWbIk6FcdoWQjBxsSe5/lueXrxpmwAWDXXXf18jXXXBO0cQQtZ6dnUzMAnH766TU+X47cHTlyZNDGmZvZRG3NYJz912b0Z9Maz5O9r9SHeat6bmIFXWN7tjYRUPY+duWVV3qZ1wObjIEwSotdOLbZZpugH5vFuCqCzcLN1Qo4AtfOA0do23Pff//9vcxuDzNnzkRtkKZHCCGEELlADz1CCCGEyAV66BFCCCFELii5T4+1R7JPS8ynwPrxMJxplyua26ycbL9P8wOy58HjWRtyLMNv2nhNLVNvbeB5sD5N7HfDWblttk32ReDM23ZOrO25mtatWwfH8+bNK3p+nLIACH11bDj7mDFjvMyVvY855pii51Bf2PWddQ1efPHFXubs4/aacIgqh5MC61fMzsKf//xnLz/88MNBG19jtufbbOn33Xefl9n3jjPAA6EPx+rVq4M29g/je4n1P+jevTuA0AeovkjLumvvpTx/PF8c2g8AhxxyiJf/9a9/BW18vdlvh/2nLGnX0MJ+ICeffHLQxsfst/GnP/0p6Pfcc895mf38gNAPi+8XNuN3fVA9T1n3od2/vM4qKyu9bH1fVqxY4eW33347aONUHpyxnP2ngPBeyHvZXrfDDjus6Lnb+zHvN96XtnoC+2xypm0g9Mk66qijvGxTIrDfWQxpeoQQQgiRC/TQI4QQQohcUO8ZmRlWpVlVKKsrbRurm1n1Z8NY2VTF77HqQx6fQ1Wtqm6XXXYp8i3Wpy4KvzUlYmH6nM2a1Z+s/gZC9WyaqQtY3ySZ5Zx4PVgzAa8pNsUBYTZoLrpozSannXZapnPaWGqqRrf06NHDyw8++KCXq8051ey8885etiGqV1xxhZdtOGwavDdZ9Q6EKna+/hzGCgC9e/f2Mqe7sIUS995776LjWfieYDOzt23bFkD2tVYbqtdk1qy7d9xxR3DMpime10GDBgX92ERk21566SUvs1khdh/k84uFaGe9R7LJ26YO4N8Pa+7kPcj3Eus2YVNZlBL7u5MWps1mKiBMrcCmHmvKZ9OivfZf//rXvTxu3Dgvcxg5EGY6r17nwPr3NK6KwFgTE+9nTlNg9w7/jttUEJwigYvRsgkXCE1/MaTpEUIIIUQu0EOPEEIIIXJBg5q3Yrz33ntettETbLZirGotrVCgNWGkmdJiUV7slW5VfVmLoDZVYtfNwtFRrIa22a85gojNF3Pnzg36caQKmzZspE3WIpJs7rTqZI58qU3UUl2SJIk39Vn1MKuEY6aEc88918scRWXNHldffbWX99lnn6CNs+vyeHY+J06c6GXOumv3ds+ePb3cv39/L1v1OJuqOMpu8uTJQT8+D1a3A6EJldewzdpbbeoppem6pgVf7T2IzX1s9rCmSi7sbL9nnz59irZxpI0la8b52LXjNXTXXXd5+cgjjwz6caFTG53J2fR5/dvzK7V5a8WKFXjggQcAhKZfADjnnHO8zBFLNlqSTVD8Pa2pjrNS2wgoNplxZKxdD3y/4yKz9jctLfO9rUZgC7xWs3z58uCYTVP23syfNXXqVC/botRZkaZHCCGEELlADz1CCCGEyAV66BFCCCFELmhQn56YXfeVV17xsrXxcZgy296trZntk9xm7brcj30FbAVv7sc2SWtP53NqylXVs2aHZUaMGBEcs68A+/TwtQbCkEkOT7Uhzrw2Fi1a5GVra+bP4vONZZHt2rVrcPzXv/41tW9989lnn/ks07ZqNc9TrFI5+wiwb40NS+d+Nq3Deeed52X2I7AZc/l9u+22W/A9GPbjmDRpkpc7duyINDjE94ADDgjapk+f7uVDDz00aOO1yHufK5ED69ZLOaWjsOG7ab4UNostp12wGcc5RJwzmMfg6/b+++8HbTwv7LNpfTH5cx9//HEv2xQInCXY+njxbwavNevvFtvvdcG2226LwYMHF/0snrOsFcPZr9DeIxcsWOBl+1m8r/h9dgy+T/Jc8tzZ9/H90/5W875nXyU7X3xPie0r/h23a3nKlCmp72Ok6RFCCCFELtBDjxBCCCFyQYOat2JmEA5Fjpmj2JxhzVtpoegxkxOr9Tns0Y7HWYE5tBMoL7V3KanN9+RwZyAMK+fwSRvizPPCoYqcNRYIs8Xy+nrxxReDfrwe2MxjzTBp5xAjlom2VGyyySZeRczmIiC8JpwF1obGsrqYw2ltWCur0S+66KKg7bjjjvMy74tYgUEujmhNLDNmzPAymyStGYzH5zm0hRd5jPHjxwdtbCplM6DNBFydqbZUppE1a9b4dT1s2LCgrX379l7m72LvVWwy4nVrTZocDjx79uygjdcxh/M/++yzQb+0IqPWbJVmRramDl6//B57T3jjjTe8bPctH7PJxYZK/8///A9KiXPOf/4pp5wStNnjjYW/s/1t5f3C18Peq9LucfY3k8dguSF/+2xW7jSk6RFCCCFELtBDjxBCCCFyQb2bt9KKO9pIKc4uac1WsaJ2TJrpy6qleYy0QpRAqMZj85alptlUmwKxop0cdTNt2rSgjTOHcj9bcJSLznHBS6vS5IydHBEwcODAoB9nBOZ1YqOReK1xZtcYDaHi3WSTTbzpgiNjgDCKiqPgWrZsGfTjiB+eF2tW4IyuXCgRCE1abJriSBsgjELhrLjWlMTqdo40suYtPua1aDPTcnSKnc+lS5d6OVa8sdqUVKp93qxZM58p2c4lH3MhVC4UCYRmML6GtnAkZ8K115RNX3wNuEgwEJqoOTrK3tMZHs9eX143PEd2vnifxczSXGzTXs8zzzwz9X11waabburNyPba8zGvS2tK4t+rWD/G3oN4bnkf2THsb141do7Sfnft6zwey3at8VqJfS8ew5rMuUBqjPz9OgshhBAil+ihRwghhBC5QA89QgghhMgF9e7Tk2YLtPZOrixrwww51JZ9Omw2SJuFtxpra+Zz4vdYuyi/z1b3ZtjW3xDhy3VJmk0WCL9nzL/h8ssv9zLbk4HwenCbtb1zmDr3s9ly2X7PIdicnRkIq0tzGLe1J7OPj/VLKSfYd8DOBe+XWAZz9rPh/Wcr1HOosF0TvFc51N3uuTQfHOvLxeHL7JvEPitAOIf8vazvAPuFWJ8m9n3h7L88NrDOV6xU2dY33XRTfx1OPvnkTO+x9zr+Lhw6bueSr729B/PaZ58Zew/javU8nq1gzvuW14PNkszjcb9Y9W07F7zmOZzfZs+3a6CU2BQR9ljUD9L0CCGEECIX6KFHCCGEELmgbMxbNiyWVa2x8DsOW7P9WCWbFvpq38fZnlndD4Shg2mqXyBUw1r1fzkWILVzwt+Hv2fWEN0bb7wxOObw8IMOOihomzBhgpf52tjwVFZz8/nZoobWFFrN3XffnXpOHEZvVc78WTb8uZxwzvm5steO0yvwfNqilFxUkMP9Y2GoFr5ebI7i0Ggg3MNsorZj83ixsGSeN16ndn3wfcZmMWazGN8TOETfjl8u2PsKZzlmOWtYrxBNlfLbvUIIIYQQJUAPPUIIIYTIBQ1acJSxERJZM8fGzExsEomZt3gMjhyw0QL8Ph6PzQIA0Lp1ay/HMkaXC9YsaLMSV2MjRDgb7x//+Ecv33zzzUG/fffd18uc9RYA9ttvPy9zNmWbaTnN9BAzNTz55JNeHjJkSND29NNPF32PHY/nL5aRmfs1dITet771reCYTUZcgNPOBZsG58+f72VbEJLXvs1uzteI9x9n1AbCSDg2I1szDUdp8XuympjsmuXvaPc3m9xiplYhRONFmh4hhBBC5AI99AghhBAiF+ihRwghhBC5oGx8eji8FQjt69ZvgH1oOHOstd+zbwX7NdjssByeyz49NmSdx+DPsr4R7NPTGHnssce8/N3vftfL9rqxbwdjfSBmzZrl5b59+wZt06dP93K3bt28PHPmzKBfWmZWe+2HDx/uZevHw6Rl67bwGrIZZhleG+WWloD9XziDtc1m3RSJ+QgJIfKHND1CCCGEyAV66BFCCCFELiibjMwLFiwIjm04KcOF5rp27eplW1yQYZOYLRzJIdo8NmdnBsKwaTZn2PBqpjGErNustZdeeqmX2bTIZsAY1nTE8/LKK68Ebfvss4+XOUzafhaHGnMBxeOPPz7od9xxx2U6x7SwfGsOYdOQLYbJNIZ5FkKIvCNNjxBCCCFygR56hBBCCJEL9NAjhBBCiFxQNiHr1peCSz7EfGvY94crrgOh7weHxNuU+PZ91VjfFD5HLnkRKzsQq0hdLnC5BiC8VjvssIOX+XoC4fXh8HX7ndkvxvq+TJo0ycudOnXycr9+/YJ+XKJi4cKFXh42bBjSYF8iXjPA+qUVqklbCwDQrl271DYhhBDljzQ9QgghhMgFeugRQgghRC4oG/OWDSFmU5I1ObRt29bLbDqxJgx+H49nq7Z/+umnXmazhzXFpJmxbNV2Jms16IbkzDPPDI7/8Y9/eHn27Nle5nB+ID3jdSzsu1mzZkEbv2/evHle5hB1IMyU/eKLLxb5FutjM3kzaSkR7Hs4E3QsZJ9NfbHPFUII0XCU/y+yEEIIIUQdoIceIYQQQuSCstHDz5kzJzhmc4Y1RaxcubKobM1gH374oZdXr17t5blz5wb9li1b5uVp06Z5ed999w36sXmHTV9p2X0bC9bk9MILL3h58eLFXr733nuDfv/617+8zNFVsQiorNhipk8//bSXBw0atNHjd+/evejrvO6AMON3jx49UscrtyKjQggh1keaHiGEEELkAj30CCGEECIX6KFHCCGEELmg3n160kK4bQbeyspKL3OIOhCGprdp08bL1q9iyZIlReW+ffsG/Thz76JFi7xsQ9S32morL7PvD2cttjSGkPUYnCX55z//edBmj6ux/llcPZ19sIAwfQD7z6T53NQVXEm+f//+XrZrjc+vVatWqeMpTF0IIcqfxv2LLIQQQgiRET30CCGEECIXOJt1ONrZuQ8ALNpgR1GX7JgkSZsNd6sZmssGQ/PZdNBcNi3qfD41lw1G6lzW6KFHCCGEEKKxIvOWEEIIIXKBHnqEEEIIkQsa/KHHOdfKOTet8G+pc+49Ok6t7+Ccq3DOzUxpu9Y5d1hK29nOuQ7mtVOdcz9zzg1yzu23cd8o3zjnjnfOJc653TL2X+ica13k9TXF+kfGqVH/yDjrrQ8Rp7B3Zjnnphf27YA6GHOMc67fxvYRNUNz2fgpxRzS2IOcc0/V1XgNQYMnF0mS5EMAvQDAOfcLAGuSJPndRo55dbHXnXObAjgbwEwAS6jpSAC3AhgCYA2ACRvz+TnnVAAvATgFwC8a9lRqxdlYf32IFJxz+wI4BkCfJEk+KzzANu5idDlFc9n4Kec5dM5tliTJFw19Hg2u6cmCc66Hc+7VwlPrdOdcdea6TZ1zdxWeakc555oV+t/rnDuxIC90zl3tnHsJVT/I/QA8WBirmavKQNgLwAoA5wP4caHtAOfcjs65Fwqf+YJzrguNf6dzbrxzbo5z7pj6vibliHNuawD7A/gfVD30VL8+qPCX3GPOuTedcw86k/mxMBfPOufOLTLupc65SYV5uCby+Tc556YW5qpN4bVezrmJhfcOd85tn/Z6Yc0E66NOLkzTpj2AyiRJPgOAJEkqkyRZUthzk5xzM51zf6me78I6uKGwn+c45w4ovN7MOfdIYT6GAvDX3jl3h3NucmGfp86/2Gg0l42ftDlc6Jy7pnB/nOEKmnjnXHPn3D2F+X3NOXds4fWKwu/b1MK/9Swgzrn+hfd0dc71dc6Ndc5Ncc6NdM61L/QZ45y7zjk3FsBF9XcZIiRJUjb/UKUZ+N8ir/8RwHcK8hao2kQVAL4A0Kvw+j8AnF6Q7wVwYkFeCOAyGmsMgH503AfA/cU+H8AIAGcV5HMA/JPGfxZVD43dASwGsGVDX7+G/gfgdAB/LcgTUPXXBgAMAvARgE6Fa/YKgIE0PxUAngdwJo21pvD/4QD+AsAV3vsUgAOLfHZCa+RqALcV5OkADirI1wK4ZQOvB+tD/zY451sDmAZgDoDb6Zq2pD5/BzCEru9NBfkoAM8X5EsA3FOQexb2dj8eC8Cmhff31FxpLvWvRnO4EMAPC/IFAO4uyNdh3e/mdoX3NQewFQq/aaj6jZtckAcV7sH7AZgCoAuAzVF1v29T6HMyzf8YALc39HXhf41C04OqH8krnXOXoyr+fm3h9QVJklTXg5iCqh/PYgyNjH0kgGdS2vYF8FBB/juAgdT2jyRJvkqS5G0A8wFk8mFp4pwK4JGC/EjhuJpXkyRZnCTJV6jalBXU9gSAvyVJcn+RMQ8v/HsNwFRUXediNSq+wrp5fgDAQOdcCwDbJUkytvD6fQAOTHs987cU/7+9c4+7a7rz/+crtHENkSDk7pZISNIEDeo+KVr8lI5qR6npzfxG0RktbbXzQ0cN08HMqA6darRpS9U0TEmUxCWuQUQSEnIjgkiEikobsX5/nPOs57O+efbKeZ48l3Oe/Xm/Xnnle85eZ5999tpr7f18P9/vd0VCCGsAjAXwZQBvAPi1mZ0J4Agze8zMngVwJIAR9LHfVv/nMXsoKv2GEMJsVB5Km/hrM3sKlWtgBIB9OuTHlBz1ZeOT6UOg5b6aAOBCM5uFygNKTzQ/yNxQ7fNbkfbTcFT+ED0+hPASgL0BjARwT3U/30HlD9wmcvffTqfLY3pawsxOAvC96ssvhhAmmdljAD4BYIqZfRGVB40/08fWg9yojnczXzcBwMk1HloosFt6XSrMbEdUJsSRZhZQ+UsumNk3qk18X/G1NwPAsWY2KVT/POBdA7g8hPDjVh5SqfujMwkhrEdlwpxenSS/gspf+ONCCC9bJVavJ32k6Vrw18EGfWZmQwD8I4D9Qwirzewmty/RjqgvG58W+vCM6qaW+soAnBxJr2OrAAAgAElEQVRCmM/7qPbz6wBGoeJhX0ubX0Wl38agEvtoAOaGEMYXHFLu/tvp1KWnJ4RwewhhdPXfTDMbCmBRCOFaAJNRGYRt5R0A2wJA9S/+zUMlmDrZVuVhNMemfA6VAN0mPm1mm5nZ7gCGAkgumhJyCioy4aAQwuAQwgAAi5F6x4r4LoBVqLhjPVMAnGWVeCGY2W5mtlML7TarHgMAfBbAQyGEtwGsboo1AHA6gPuL3q/a/hoQGcxsb2uOsQMq8XFNY2Fltd9O2fCTG/AAKmMMZjYSzWN8O1QmzbfNbGcAx7bLgYsNUF82PgV9mKsIPQXAORSnNab6fi8Ar1Y986ej8kdsE2+h4oD4ZzM7HJVrpK9VgqhhZluYGXsD64q69PS0wKkA/sbM1gF4DZUYjO3auK+bAFxvZu8B+FdUYkmauAPAb6rBXOcA+BqA/zazC1BxFX6B2s5H5Ua5M4CvhhD4SbiMnAbgB+6921B5AKnFvXkeKuf6X0IITd4hhBCmmtlwAI9Ux+UaVGKHVrjPvwtghJk9iUr80KnV989Apb+3QsU7+IWNvH8Tmq+P8SSlipbZBsC/m9n2qMRuvIiKa/0tAM+iEkvwRA37+RGAn5rZbFTkz8cBIITwjJk9DWAuKv00o71/gIioLxufoj4sSra5FMDVAGZXH3yWVNteB+A2M/s0gGlw3poQwutmdjwqoSFnofIwfG2TI6G6z7nt+9Pah1IvQ2FmN6IS0PVoKz93E4A7Qwi/6ZADE0IIIUS70yieng4hhPDFrj4GIYQQQnQOpfb0CCGEEKI81GUgsxBCCCFEe6OHHiGEEEKUAj30CCGEEKIU6KFHCCGEEKWgVdlbffr0CYMHD+6gQxEtsWTJEqxcudI23rJ1dFVfvvtuWpxz1apV0d588+bLsUePHkk7o/VJ33+/eKHeD32oeUHhP/3pT4WfWbduXbT33nvvjR12u/Hkk0+uDCH0be/91uPY5HOe689GpTuMTU5k+ctf/pJse++95hJVW2+9dbS32GKLTf5e/i7+HgDo1avXJu+/LXTE2KyXcfnBBx9Em8+3P/dbbbVVtHmM8nwJpNfAllvW37rMub5s1UPP4MGDMXPmzPY5KlET48aN65D9dlVfPvFEWtts4sTm5bZ23HHHaG+7bVoUmR+IVq5cGW1/8xw4cGC0Z82aFe0VK9Jahm+88Ua0p02bVtOxtwdmlquO2mbqcWzyA62/kXF/diQ+O5Vfb7bZpjm6u3ps8o3M/5bcNoYfPl566aVk29y5zbXlDjzwwGjvsssuGz22jbF0afMwmDdvXrLtmGOOiXatD8f8e4G29W1HjM2OHJet+c1r1qyJNvcr2wCw337Nix18+MMfjvarr76atNt5552jPWrUqMLv5fHWmX/o5Pqy1HV6ROczffr05PWcOXOizYNi8eLFSTsetPzQs8MOOyTt+Oa6/fbbR7tPnz5JuyVLltR+0CKBJ7IpU6Yk22655ZZo88Pk66+/nrRbu7a5gPlXv/rVaD/99NNJO57Yn3vuuWgPG5au73vjjTdGmyduP9Hya/9A1GjeJz7eWm+AX/nKV5LXf/5z85J4fJMD0j675pprWvxeIPUCjBkzJtrei8APuvyg4//Aufvuu6P91ltvRfuEE05I2p18cvOSiW196Gtkcr9r/vx0VaR33nkn2gsWLIj27Nmzk3Y8f/Lcyv0ApOOXx9Ho0aOTdvU4prrn1SCEEEII4dBDjxBCCCFKgR56hBBCCFEKFNMjOhWfvTVkyJBov/nmm9EeMGBA0o41es624pgE345jenr37p20489xfE89ZFrUAxxo+td//dfJNu7Dt99+O9nGcQZ8zjn7x++f47x8LBfDgcMcowAAn/nMZ6LN8QZf/vKXk3YXXnhhtH28QVcFXbaVWoOyL7roomivXr062bbrrrtG22dv8RjkfvZBrXzuzz777GiPHz8+acfBr/y9Pt6OY4Q4m4jjxYA08Pr8889PtpVxeaWFCxdGe9myZcm2QYMGRZv7z8+f3Ec8F/rsS0464XgfH7TdUcH+m4I8PUIIIYQoBXroEUIIIUQpkLwlOhVOlwTSejmclu5lMH690047RTtXdJAlEO/u5s898MAD0Za8VeHMM8+MtpdEOJXVy1Yss7BE5EsLsKzJJQiOOuqopN12220X7T/+8Y/R3mabbZJ2RdLU73//+6Td5MmTo/3www8n2xpB0mJyadmLFi2KNpeF8LIxyxv+9/M+d9tttxY/A6Qy06233hptlqaAVMbifl2/fn3h97LNkhgAPPvss4X7YDmGt3mZpjvBMhPLVEBajqB///7Rvvnmm5N2t99+e7SPO+64aB999NFJu+HDh7f4Xb4UCJctqJcihvL0CCGEEKIU6KFHCCGEEKVA8pboVFjKAFIJKpcVxJlA7K72shXvg9313iXP8paXb8rKDTfcEG2uxuuza/j857KGuG/82j28Lhq7vb2syf2Wkyn4dc+ePaPdt2+6/A5LZLfddluyjSv8NgK5pTzuvffeaHMf8XkH0nOVW9OOx2m/fv2SbSxR33HHHdH21XlZvmbZw19DvK4TS3h+rPM19eCDDybbDj/88MLPNTJ8PljCBNLzy0vwAKmsyVLliy++mLTjtQs5m2/58uVJO5aGWd7kDDIgldJOO+20Ft/vbOTpEUIIIUQp0EOPEEIIIUqBHnqEEEIIUQpKE9PDqZTXX399sm3EiBHR5pTZE088seMPrGT4WB2OD2Btn1dhBtK4G45D8BTp9z59ltv57yor1113XbT5/Ph0YIbjL/znmFz1Y8bHqfB3c7yBb8cpuRyb4lcf59gfn67baDE9Ofia5nPtY6b4nPpzxfB585Wb+dxzKYFcO47H8TE9PL55vuBK20B6TXFaPpDG9ORinxoNjuPhWBogneP22GOPZBuvpn7AAQdEe5dddknacco5x0nxZwDg8ccfjzbHCx155JFJO75uZsyYEe299toraTdmzBh0FvL0CCGEEKIU6KFHCCGEEKWg+/j9NsKjjz4abb9Y4RNPPBHtf//3f4/2ueeem7S7+uqrW/293p182WWXRZvTgn/84x8n7bxs0Mhw2jGnDAOptMiudi+HcLXRV155JdqcpgmklV7Z3evTrrmKqF9AUaRSh5cpuD9zsmEunZ37t6iKM5BKE7zNp1fz8bI84qvAcjtfPZbTcn3130aDU4f5HPrSAZw67mVjHo/cR7nq5vxdvh1LHdzOy098ffH38rH6/XPafHeG50GuTO+3+XE0YcKEaPMcySUGfDuWlr1sxX3G/c+LRgNpxXa+9vycu+eee0bbV1tvb+TpEUIIIUQp0EOPEEIIIUpBw8tbtS4mx5HjvXr1Srax3MVR/9dcc03S7vTTT4/22LFjC7+L3Yy8PwBYtWpVtLk66hlnnJG0O+ywwwr332iwy3PbbbdNtnHFXHZRe0mFzxW7br3L++CDD442u8b9tcGu/O5UsbU1nHXWWclrPpd8vl9++eWkHbvHffYHZ+hwH+YWs6x1EciiRSQ9LMu89tpryTauCO6vxfvvvz/aXD22EfCyFUsELCnzuQFSqdgvRspjhGXBXOVmP24Zlq1q7XPO2PLSCR+vr07cneBxyefXy4IsJfl5kedWPqeDBg1K2nHfcsYWV3EGgLlz50a7qIK2f53Lqly2bFm0hw0bho5Enh4hhBBClAI99AghhBCiFOihRwghhBCloOFjenysAMMa8OLFi6PtNUPWmjlewVe1HDduXLRPOeWUaA8cODBp98Mf/jDaQ4YMSbZxDARr7TvuuGPBr2h8uJqyjyng2A6OS/DtOIaDq8361GKuUjp48OBo+9Rl7ufuVB6gNZxzzjnJ66lTp0abz7+PD+B+8iUZOM6A4zZy45S35So3cz9x/AKQxp9wGr2v1Mu/xX/XAw88EO1Gi+nxKcAck8VjzJd44Dly7733TrbxmMtV6Ob9c6xGrVW4/fjjsfrUU09F2/c5X4ccR9nd4Di0otIMQBqr07t372Qb3+N4DPjzduONN7a4Dx8bx/Bc4WPLeD7ga9TP71y+RTE9QgghhBDtgB56hBBCCFEKGl7eylV9nTRpUrS33377aPt0OXbBcUq5rzbL7t+77ror2t7FP3z48GhzCi+QLqDHLmhO2QOAkSNHorvAblfvombYNerd8FxRmd3m3K9A6vLlirtePuQ+z6XZdmf8In98DfLimz5VeOjQodH2ix7yGOGx6V3xRWnP7IYH0jHIn/HXEUvF7Jbv379/0o63nX/++cm2/fffv8VjagRYBgKKr2mec4DiaspA8aKgfs7NSZdF7XIp60WVm70Uw6ECfnzz2GeZuxHh+ZNtv7IAz4W+n7nP+J7k73G/+93vos3lVvw55PtYLhWdpTSWt0aPHp20y8ln7Y08PUIIIYQoBXroEUIIIUQp0EOPEEIIIUpBw8f05Pj+978fbV56wq/0XbQyMOunfhuXQPeaNpe39+m+rFezZs6rwAPAMcccg+4Cnx+fOs6wHuyXCuE0dWaHHXZIXnP5fV6518eecN/65QgEcNtttxVu++xnPxttv7o1x+RwHI+PAylaPsa34zGXiz/h64pjk+6+++6CX9G94JRfD8dw+PhDLt2QSzfmselTz4vS1HNxO5ym7vfHx8HH7pea4Pgxv49Zs2ZFu9Fjejh+huc3H9PD23xKuI+Va8Lfn44++uho8z3Ot+OxzXNp7ns5fsi34334vqw1ZqxW5OkRQgghRCnQQ48QQgghSkFDylvs/mLXF1ddBtI0OE5v9LIVu3FzbjZux+55nx7qq2EW7YNd+Y888kjhZxodPo+5EgO8zbtjfQp7E75q9jPPPBNtlrd8aia7jGtd8VlUKBoHQCoz5UoVFFXn9X3B0klOYuHjyK0CXrRvIF8Zut5ZuHBh8polIpYifPmBvfbaK9p+bBadx9x5488U9bE/Pn8NsUzD23w7/l5/TPPnzy/87nrHp5tzOAbLQv5+x2PMl/Iourb9vYul/qKxBxSPN38NsSzGlaV9O5ZduWwMkJYraQ/k6RFCCCFEKdBDjxBCCCFKQUPIWz5ynCP62VV3ySWXJO369u0bbc5S8K66nNucYZceu2d99g9v8xkR/FvYjTt9+vTC7210uI981g3LTiyN+Kygoqwvds8DwIwZM6LNbn2WN4G0Oqh3m4s8PvuxiKIMLaB4cVk/XnJZPgzvP1f1m8lJrY3G8uXLk9csLeYq9fJc6uWsIomv1vFS6/n1VetZcuHsTH9t8Lzt5W+/AGsj4c87X9ssA/lx6M9jEbXKUblMWz7fPC79/L5gwYJoc1al70ses746s+QtIYQQQog2oIceIYQQQpQCPfQIIYQQohTUbUwP64Q5bfGOO+6I9k033ZRs43Rm1j+97liUAp9rx/EiXktl3Ty3gjfr1S+++GKybcqUKRscd3fA69WsL/M59fEFPgWziX322afwuzj10ceDcLxXo6UndzWc9uzHZlG8gI+jqzUdml9zbIOPK+HYn1pjG7oTPhXdx0w0kYup8/C55/Odi63ibX7u4/7jse7LU/B4zMVn8W/01Yl9jFMj4fuO+6ioWjWQrjTv076Lygr48cbnm8e270seb7kSERyDxHOur7hftJJ8RyBPjxBCCCFKgR56hBBCCFEK2k3eYrdmke1h97eXGHKSw+WXXx7tSy+9NNrDhg1L2rHbjd2zuRTJ3PEWLXjoXYTsxvWpukVSGrt7gebKwj7FtBHJubyLFqvzqZRFi4Luv//+yWvuC+4v3w9FC+GJjcOVVbkUBJCmvLKr3MtRRYtUeorkTz8u+Di4FERZ8GU9eMwVVcUF0j6qtZK17y/+Lu5nP6cx3M6PdZ4jal2k0s8rjVyGwl/b/Fv43HtJk+e0XB/l7l38mvfvZUa+h/Lx+vPO38Wp6H6BXJbmJG8JIYQQQrQDeugRQgghRCloN3mrvRfrmzx5crS/8Y1vJNt4MblRo0ZFO1ddkl3e3o3L7dgdl5PccpkkOemkaKFSnwXT5FpsZDdtE7nMD85GWL16dWG7oiytoqwuIL0ecq57ZW9VKJJePewC9xIGL+TKfePd6EUycs49npNJ+XVOVqn1NzYCPuuJYYmAJa3Ro0cn7biPvORQVPk+J4lwVk9RBhmQznd+bPLv2nnnnaPtJRb+XbnFofk4+PjqFS9B8rXN4yMny+cqoPO86CVDJjfOOauY9+fHJctWfJ/11xDv/+WXXy48pvZAnh4hhBBClAI99AghhBCiFOihRwghhBCloMMrMvvKkH/4wx+iPWvWrGjfeeedSbs5c+ZE26+kzWnKrFX6tE3WK3Op6ExRWrqH9WWvrbOe6vfBx8Tf5fXvpnaNHncA5PuIV9DllZH9OR0wYECL+/ap7EWVQnNlBXK6ttiQohgDII0l4b7IpVTzPvw44PHDfeb7k6+X7rR6eg6OgfPwOS2KvwDycTfcNndOa51bi1KlfRwIj0eu6OtjWHgFbx+rxPtcsWJFtHfbbbeajrUr8X3Cv4V/sx8Du+yyS7T5/gmkMa25lPCifvZzJFfA5pUFZs6cmbTjysscn+Xjx/ga8jFN7U05ZgchhBBClB499AghhBCiFLRZ3po+fXry+pJLLok2p5yxaxEAdt1112ivWbMm2j4d8WMf+1i0vcTD7j7elnPB8Wd8O67myq5F7z7kNMtcRVlOA/Xu/6JKpHwuAGD8+PEAgF/+8pfoTrzxxhvJ6yKZ0Lu8efHYHOzG5f35kgDs4i1jBd+WqDWdO7c4II8tlrf89c37z5VlKJKb/ffyNl+ptuh7G5233nor2v588PzEFXMHDRqUtOMx4qV43kdOwiqqGOzxadRFn+Gxz2nzI0eOTNrxfcbP6XxMLJE1Aj6tvqjMCaeD+22+qnPRHOfPDZ9vHrN+4Ws+33y/W7x4cdKOS40ccMAB0b777ruTdvvuu2+0/bX2/PPPR9uvutAW5OkRQgghRCnQQ48QQgghSkGr5K1169bFqOuzzz472cbuLs7IYRtIXagc2e3dk7nFzhh2weYydHKwzMTf5d2u7CJkGYyzjvxx+MVN2e2Yk18OPfRQAMULbTYS3A8+i2fZsmXRzmWz+Qy+Itjly+5/fx7bu4J4mWCJhCVkIK2syufV9ydvK8rkAtL5IleBmK+dWhfObHRykn3RPPPxj388aTd79uxoe1mF57FcdXPeP3/G9yV/jvfnpTk+Dv6Ne+65Z9LulltuibaXT4sywBoBP0fy/Mnn+pBDDknaFd3HgGIJ2UuaPC5z44j3z/Os7yOGnwW8NMf95efj9s7mkqdHCCGEEKVADz1CCCGEKAV66BFCCCFEKWhVTM8bb7yB6667DsCGKcUcn1NrxUdOFfe6K+uYfhtrfqxJ+mqSHCfD+8uld3LVT/8bOUXytddeizZXwgSAfv36RdtrlxxbwsfEuijQrJl29+qyRXq7T1vs3bt3Tfvr379/tJ977rlo+1WCWa9uhJWXO4OiGA7fFxwv4mMC+FzmUtGLUqD9mOMxwn3m4/VyMSe1HkOjxXblKsbzb+N2PsaQY638GKs1pofjO7idj8HyfduEnyN5Hzzn+hgWTpX2MWMcf+nTresdH5/Fv4XnsVwMVg6+//F92383xxbxvRoAXnnllRa/d+jQoYXt+vbtG20fg8XXhq++n4vpbQvd+44qhBBCCFFFDz1CCCGEKAWtkrfMLLpKvSzBshC73byUxK5LlohyrmYvTbCLlvfn3XtFaZFeMmI3LLvjvFv08MMPj/all14a7SlTpiTt+Lfkqmuyi6+jF1mrF3wfsVTC15Q/b7yoXY6ddtop2lzJ08uH/LoRFiHsSrxMxde3H0u1yky5xWCZom1e2uFrpzuUeaiFnMzIcybPbzl5i+djIB1zLHX4itc85nibl2m4X3gh6pdeeilpx7IVz5FefuTj5Yq+QPr7fQp4vePvhTxWWGbyVZZ5DHj5l8dR0aLM/nVugV9ux/3lJU2uwM8SFldnBtJr2Zdvae/xLE+PEEIIIUqBHnqEEEIIUQpaJW/169cPF198MYANF4687777os1uRx8dzm4yds959yzLUbmF8Nj27YqkL3at+nZf//rXo33eeeehFm6++ebkNWdvebcgu5fZtVyU2dDdyLld2cXpswW8q7wIzgThz/hrg893LgtG5LMdvVxSlG3lKarc6yUMbsf789/blgq8jZ69xdewl5zefvvtaOcWNubfnKuMXLToJZDeC1hS/uhHP5q0K5LBvHzKVb752H2WLL/2C1G+8MILhcdb7/g5ks8Py0d+tYOZM2fWtH8eO/7c8zji8eFDPVg+9NcUw/d4ljH33nvvpN0DDzzQ4vEBG4YmbCry9AghhBCiFOihRwghhBClQA89QgghhCgFbQ5muPbaa5PXHJ9y9dVXR3vixIlJO04JX716dbR91UVOU/PxHJzSxt/r0+X4u/gz3/nOd5J23/rWt7Ap8ErFQKpden2W41a4QmXT6vVNNOnQRZVrGwmOFfBplvz7OLV01113bdN3DR48ONqs5fuyB4xieioUXWutWaW6aMV0Hy9TlNqeW2WdycUi8BjrznAsRS6ugs/vY489lmzjuJBly5Yl2/ic8v59n3Bf8P78WOd98Gd8ReY5c+ZEm9Pm77nnnqQdz/c+ponjQvzc2sj4dG6G57hcKjr3n78/FcXk+RIiPFfzePMxvBybyfdqTnMH8tXbfYzPpiJPjxBCCCFKgR56hBBCCFEK2uzX96nY7P664IILWrQ9nOb+1FNPJdvYxbl06dJkG6ewsbvPu8H+/u//PtoXXnhh4XEUkavwzPzgBz9IXnN16tziceziGzt2bIv7brQ02pZgt6Z3p7IExe5q7/6sFU6L5XPnzyN/rz8mkcLpz0DtKeZse+msaJFX75ZnVzx/b84d7hef7K6sWLEi2nvssUeyjedITgH3ad8sPfv5kyUM7i/fl0XydW6s8zZfnoLlVJZsfOo5f9f8+fOTbXzdNPocyvPiwIEDo+3TyOfNmxdtX6G6SHb24423cZ/78ACWDItWSPD74N+RCynIrWLQHsjTI4QQQohSoIceIYQQQpQCPfQIIYQQohS0OaanKL6lNRx55JEt2vVCrb/xjDPO6OAjaWw4xqIolgNIdWeOi8q183o9a885rZnjCHLp7GWi1pT13PkvGjO5ldRzmj3HceSuo6JYou5MUTwckF77K1eujLbvL46J9CnmPC5ypTM4fmjIkCGF7YrGt+8vLuXB15M/vlz8EP/+RitJwTFYAPDyyy9He/To0dH2sa5LliyJ9qhRo5JtPMb4fPhzz+eRy4b4pZu4HfeljzPibRyD5q9DPia/xFV7x1zK0yOEEEKIUqCHHiGEEEKUgsby+4mGhyusetgVmqs8yi5Z7/rk6q7sMvWyC7tXJW/l8fJWrSnhXK4hJ2Fx2qzvC+7rXD9x/7JbvtFXUs/BVey9JMKVybnkgJcOuEqyl5S5LZ9fXz2fZSaW2Tjl3cPH69vxd3F/caV7IJU4vdzJ80xOcqtHRo4cmbzm4+eKx15yOvHEE6Ptq5LzOOB50Y8PlgV5/PqyFbxiAs8Pfj7meZxlVl9+4FOf+lS0/bWcC4loC/L0CCGEEKIU6KFHCCGEEKVA8pbocNhNzhH8QLpAIVd2zUkZOXmrqAKolzVYoskt1lgmiqQff37YJc4uawBYvnx5tNkV77NEeB8sb3kZkmUxvnb8/lgC4GrunFkE5OXVRmPEiBHR9tIUL4L8/e9/P9o+k4klEh6LQCo7vfDCC9GePHly0o6lNO6/BQsWJO343HOfT5gwIWnHfcv954+PJZeZM2cm27ii+8EHH4xGwleo9q+b8KsYMLlFOnMLCHP/sczk51neB8/bnqJFZr1UyRXFWTrrCOTpEUIIIUQp0EOPEEIIIUqBHnqEEEIIUQoU0yM6HF7x9/jjj0+2sbbfu3fvaB9xxBGF+8tVyuZVpFkn9rEdXPWVYyPKTFHl2mOOOSZ5PWXKlGhzFVggjfFhrd/HBXG8AKev+r7l2CuOEfKrhXPa9NChQ6Odi+Fp9PR1Tm3+5je/mWx76KGHon3CCSdEm9OQ28rFF1+8yftoDzim59xzz022HXLIIdFutIrMOXi+9HE7HAfp42yKSoD4dHAeb7w/fw45TpPnUh8vxPFIfAxFcUrAhvF67bH6Q7K/dt2bEEIIIUSdooceIYQQQpQCyy0kt0FjszcALN1oQ9GeDAoh9N14s9ahvuwy1J/dB/Vl96Ld+1N92WUU9mWrHnqEEEIIIRoVyVtCCCGEKAV66BFCCCFEKaiLhx4zO8nMgpkNq7H9EjPr08L7rVpPoLXtM/s508x23XjLcmNmO5rZrOq/18zsFXq96bm0ol1pa3+Z2WAzm1Ow7RIzO7pg2wbjyMxOM7Nvm9nhZnbQpv0i0VaqfTDXzGZX+//AzDx8gpldWLAf9WMXY2a7mNmvzGyhmc0zs9+b2V6t3Mf2ZvZ3HXWMHUm9FDA4DcBDAD4D4J+69lDaxJkA5gBYvpF2pSaEsArAaAAws38CsCaEcFXTdjPbPITwfsHH2x0z6xFCWL/xluVkY/3Vxn1+t6X3zawHWh5HxwC4FsDxANYAeHhTvl+0HjMbD+CTAD4SQvhz9UGn8KE3hDAZwGT/vpltDuBwqB+7DKsUp7odwM9CCJ+pvjcawM4AFuQ+69gewN8BuK7dD7KD6XJPj5ltA+BgAH+LykNP0/uHm9l0M/uNmT1vZr8wV03MzLY0s7vN7Est7PcCM3ui+pfJ/8t8/7+a2VNmdq+Z9a2+N9rMHq1+9nYz26HofTM7BcA4AL+o/gXUchUo0SJmdpOZ/dDMpgG4InPup5vZuKrdx8yWVO0RZvZ49dzPNrM9q+//Db3/4+pNFWa2pupteAzA+C750d2IovMPoIeZ3VD1DkxtGhfV/j6lai8xs++a2UOo/OGTjKPqeNnn3VwAACAASURBVB8N4E0AXwVwfnXbx8xsUHXMzq7+P5D2f72ZPWhmC8zsk519Troh/QCsDCH8GQBCCCtDCE0PpudU589nreqpr3rs/qNq8/j+NVw/dsFvKTtHAFgXQri+6Y0QwiwAD5nZlWY2p9qXpwKV+3N1fDX18YnVj/0AwO7Vfryy839G2+nyhx4A/wfA3SGEBQDeNLOP0LYxAM4DsA+Aoag8HDWxDYA7AEwKIdzAOzSzCQD2BHAAKpPmWDM7tIXv3hrAUyGEjwC4H8D3qu9PBPDNEMJ+AJ7NvR9C+A2AmQA+F0IYHUJ4D6K17AXg6BDCP6D43BfxVQDXhBBGo3LTXGZmwwGcCuDg6vvrAXyu2n5rAHNCCAeGEB5qcY+iNWxw/qvv7wngP0MIIwC8BeDkgs+vDSEcEkL4OTYcR2MAPBNCWAzgegD/Vt32IID/ADCxep38AhVvUBODARwG4BMArjeznhCbwlQAA6oPkdeZ2WG0bWV1/vwRgH8s+HzT+D4ZG/aj6FxGAniyhfc/hcq9chSAowFcaWb9AKwFcFK1j48A8K/VP0YuBLCw2o8XdM6htw/18NBzGoBfVe1fVV838XgIYVkI4QMAs1CZzJr4HYCfhhAmtrDPCdV/TwN4CsAwVCZhzweo/PUBAD8HcIiZ9QKwfQjh/ur7PwNwaNH7Nf9KkePWEML6Np7jRwB8y8y+iUpthvcAHAVgLIAnzGxW9XXT2gTrAdzW7r+gvLR0/gFgcfUvSKAyyQ4u+PyvC94HKtLWXQXbxgOYVLVvBnAIbbslhPBBCOEFAItQGf+ijYQQ1qAynr4M4A0AvzazM6ubf1v9P9fHt0pGrnsOAfDLEML6EMLrqDgB9gdgAP7ZzGYD+AOA3VCRwhqWLo3pMbMdARwJYKSZBQA9AAQz+0a1yZ+p+XqkxzsDwLFmNilsWGzIAFweQvhxKw9JRYu6hnc33gTvo/khPf7lHkKYVJWqPgFgipl9EZX+/1kI4aIW9rNWE3DbMbOT0Ox9+2LB+V+EDcdukeyb6/sJKPYQeUKB3dJr0UqqY2Y6gOlm9iyAM6qbmvrZz89MLeNbdA5zAZzSwvtFC9F9DkBfAGNDCOuqYQUN7Tntak/PKai4qAeFEAaHEAYAWIz0r7YivgtgFVoOpJoC4CyrxAvBzHYzs51aaLcZmi+AzwJ4KITwNoDVpDefDuD+over9jsAtq3hmEWGjZzjJaj8tQnQoDWzoQAWhRCuRSV4cj8A9wI4panPzay3mQ3q+F/Q/Qkh3F51aY8OIcwsOP9tJY6jqtdv82owdbKtysNojgH8HCqJEE182sw2M7PdUfHwzd+EYyo9ZrY3xWoBFRmkrVWGNVd2LfcB+LBRHKyZ7Q9gNYBTzayHVWJbDwXwOIBeAFZUH3iOANA0jzZsP3b1Q89pqESSM7eh8gBSC+cB6Glm/8JvhhCmouL6fqT6V8lv0HIHvQtghJk9iYrH6ZLq+2egomnORmWAb+z9m1CJHVAg86ZTdI6vAnC2mT0MgNNkTwUwpypjDUPlIXoegO8AmFrdzz2oBGOK9meD878J+7oJ1XEE4ARU3OlN3AHgJAqA/RqAL1T793QAvMz2fFQelu8C8NUQQrrktGgt2wD4mVXSm2ejEmP5T23cl+9H0YlUVZGTAPyVVVLW56LSl5MAzAbwDCoPRt8IIbyGSrzcODObicofF89X97MKwIxq4HNDBTJrGQohRN1hZjcCuDGE8GgrP3cTgDurCQZCCJFQL3V6hBAiEkL4YlcfgxCi+yFPjxBCCCFKQVfH9AghhBBCdAp66BFCCCFEKdBDjxBCCCFKgR56hBBCCFEKWpW91adPnzB48OAOOpRi3nnnneT1n//cXOy1T58+vnm78cYbbySvt9yyuQTPNtts02HfyyxZsgQrV64sqpbZZjqzLz/44INob7ZZfTxncwC/Wbuf3kKefPLJlSGEvu29364am7Wybt265PVbb70V7fXrmwtk+8SKbbdtLq/VWWOuVrrD2BTNdMTYrJe+fPPNN6P9xz/+Mdrvv/9+0o7HH4/LzTdPHxV4LO6yyy7tdpztRa4vW/XQM3jwYMycOXOTDqYtN5tp06YlrxctWhTtv/3bv92k48lx3XVpsef99msuNnvIIbUUjd50xo0b1yH7bY++rJX33mteg5UfHLsSHux+QHckZtbWSrZZOrI/W5PhWTSmX3nlleT1nXfeGe3Vq1dH2z8cHXHEEdHOjbmiecUfe3s+4HaHsSma6YixWS99OWnSpGjfe++90V65cmXSjscfPxx558LBBzev/X3BBfW33miuL+vjz24hhBBCiA6mbooT8l97AHDyyScXbttiiy2iPXv27GizOw5IpRSWWNjV53nttdeivWLFisL99ezZvOba448/Xrg/kXp3/vKXvyTb+Hzvtttu0c55F9hztHbt2sJtq1atinbv3r2TdoMGaSmu9iDnOWFvzn/9138l27g/+vZt9kLzOAVSb+uCBQuifdZZZ9V8HExXyZpCtAe1hgrssMMOyeu333472r169Yq2l6befbd5bditt9462gsXLkzaTZ06NdoXX3xxtP18zNTL2JOnRwghhBClQA89QgghhCgFeugRQgghRCno9JieIi3v/PPPT14///zz0d5zzz2TbT169Ij2E088Ee0BAwYk7TjV/dhjj432I488krTjmJM1a9ZEm9Nl/fe+8MIL0b7pppuSdmeeeSZEy3zlK19JXt99993R3n777aPtY3o+/OEPR5szDHwMCF9f3P++3fLly1tz2KXGj1k+l37b7bffHu2JEydG22dlcTwCxxHsuOOOSbvdd9892vfdd1+0x44dm7QbNWpUi8dXLyUShGgPctfziy++GG0/3/F44XIRO++8c+H+OUaWY1iBNCZyyZIl0b7ooouSdpdffnm0ea7wx9eZ41QzghBCCCFKgR56hBBCCFEKujRlnV1c8+fPT7ax+8xXRuYUV3bBcUorkKbcTZ8+vbBdUXE673LjdOt+/fpFm114gOStHHPmzEleF1Xz5KrbAPDqq69GmyVIn3q+3XbbRZtdsvVSFLER8VJjzhXNaepcMoD7DwCGDBkSbU5zvf/++5N2XMaAJclrr702afejH/0o2h/60Iei3ZVu9E2h6Zx3ZmpvrpBjLt2Y52A+v75dWwpI1kuac2dSa0HNxYsXJ685dZznQSAtDsqFWbnEB5De4/70pz9F24eO8D44Pf6uu+5K2nF6/IUXXhhtPw47U5JujBlACCGEEGIT0UOPEEIIIUpBl8pb3/zmN6Pt5Qx2UXPmDpBmUbFs4V11vHYISyLefcivt9pqq2j7Cs/shudjYBkNAG677bZoc2VpkVZgBtLKvHwevezF7tmhQ4dG28tWfN2wPWPGjDYesWi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\n",
"text/plain": [
"
"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Display 25 images from the train set in the form of 5x5 matrix.\n",
"\n",
"plt.figure(figsize=(10,10))\n",
"for i in range(25):\n",
" plt.subplot(5,5,i+1)\n",
" plt.xticks([])\n",
" plt.yticks([])\n",
" plt.grid(False)\n",
" plt.imshow(train_images[i], cmap=plt.cm.binary)\n",
" plt.xlabel(class_names[train_labels[i]])\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Data type of features: uint8\n",
"Data type of label: uint8\n"
]
}
],
"source": [
"# What are the data types and shapes of the features and the label?\n",
"print('Data type of features: ', train_images.dtype.name)\n",
"print('Data type of label: ', train_labels.dtype.name)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Training data shape : (60000, 28, 28) (60000,)\n",
"Testing data shape : (10000, 28, 28) (10000,)\n"
]
}
],
"source": [
"# What are the shapes of the features and the label?\n",
"print('Training data shape : ', train_images.shape, train_labels.shape)\n",
"print('Testing data shape : ', test_images.shape, test_labels.shape)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Unique labels: [0 1 2 3 4 5 6 7 8 9]\n"
]
}
],
"source": [
"# What are the unique labels in this dataset?\n",
"print('Unique labels:',np.unique(train_labels))"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"No. of training images: 60000\n",
"No. of test images: 10000\n"
]
}
],
"source": [
"# How many training images and how many test images?\n",
"print('No. of training images:',len(train_images))\n",
"print('No. of test images:',len(test_images))"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Size of each image: (28, 28)\n"
]
}
],
"source": [
"# What is the size of each image?\n",
"print('Size of each image:',train_images[0].shape)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Memory required for holding the whole training data: 128 bytes\n"
]
}
],
"source": [
"# How much memory is required for holding the whole training data.\n",
"import sys\n",
" \n",
"print('Memory required for holding the whole training data:',sys.getsizeof(train_images),'bytes')"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Numeric range of input: 0 - 255\n"
]
}
],
"source": [
"# Find out the numeric range of the input.\n",
"print('Numeric range of input:',train_images.min(),'-',train_images.max())"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Do we need to rescale the input? Why?\n",
"Yes, we need to rescale the input because the images before feeding it into the network in order to reduce the number of parameters. When the number of parameters are high, we tend to increase the requirement of computation power."
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
"# Change from matrix to array of dimension 28x28 to array of dimension 784\n",
"dim_data = np.prod(train_images.shape[1:])\n",
"train_data = train_images.reshape(train_images.shape[0], dim_data)\n",
"test_data = test_images.reshape(test_images.shape[0], dim_data)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"train_data = train_data.astype('float32')/255.0\n",
"test_data = test_data.astype('float32')/255.0"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"# Change the labels from integer to categorical data\n",
"train_labels_one_hot = to_categorical(train_labels)\n",
"test_labels_one_hot = to_categorical(test_labels)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "-tkl-PwsrXip"
},
"source": [
"## Task 3 Construct an input pipeline\n",
"\n",
"*(weight ~15%)*\n",
"\n",
"Creat train/validate/test data splits and construct tf.data pipelines. Make sure that the training data is batched. \n",
"\n",
"- How do you determine the batch size?\n",
"- Do we need to shuffle the training data? If yes, how do you determine the buffer size?\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Create train/validate/test data splits\n",
"We already have the splitted dataset (training and test) available in ratio 85:15 (60,000:10,000) from Zalando Research, we will use the same for this"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [],
"source": [
"from tensorflow.keras.models import Sequential\n",
"from tensorflow.keras.layers import Dense"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [],
"source": [
"model = Sequential()\n",
"model.add(Dense(512, activation='relu', input_shape=(dim_data,)))\n",
"model.add(Dense(512, activation='relu'))\n",
"model.add(Dense(10, activation='softmax'))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### How do you determine the batch size?\n",
"We take batch size as 64 because small batch size values give a learning process that converges quickly at the cost of noise in the training process."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Do we need to shuffle the training data? If yes, how do you determine the buffer size?\n",
"No, we not need to shuffle training data because it is already in random form."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "lnE7ZFS_AzLg"
},
"source": [
"## Task 4 Construct a deep forward neural network\n",
"\n",
"*(weight ~35%)*"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "X6gil-HshhHI"
},
"source": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "h2qU873qfGVY"
},
"source": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "ChlhkwhkAzLi"
},
"source": [
"### Task 4.1 Setting up a model for training"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "yuxhQM6jAzLl"
},
"source": [
"Construct a deep feedforward neural network. You need to decide and report the following configurations:\n",
"\n",
"- Output layer: \n",
" - How many output nodes?\n",
" - Which activation function?\n",
"- Hidden layers:\n",
" - How many hidden layers?\n",
" - How many nodes in each layer?\n",
" - Which activation function for each layer?\n",
"- Input layer\n",
" - What is the input size?\n",
"- The loss function\n",
"- The metrics for model evaluation (which may be different from the loss function)\n",
"- The optimiser\n",
"\n",
"Justify your model design decisions.\n",
"\n",
"Plot the model structure `using keras.utils.plot_model` or similar tools.\n",
"\n",
"What is the number of trainable parameters in the model. Explain how the total number can be estimated from the model configurations."
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [],
"source": [
"model.compile(optimizer='rmsprop', loss='categorical_crossentropy', metrics=['accuracy'])"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Model: \"sequential\"\n",
"_________________________________________________________________\n",
"Layer (type) Output Shape Param # \n",
"=================================================================\n",
"dense (Dense) (None, 512) 401920 \n",
"_________________________________________________________________\n",
"dense_1 (Dense) (None, 512) 262656 \n",
"_________________________________________________________________\n",
"dense_2 (Dense) (None, 10) 5130 \n",
"=================================================================\n",
"Total params: 669,706\n",
"Trainable params: 669,706\n",
"Non-trainable params: 0\n",
"_________________________________________________________________\n"
]
}
],
"source": [
"model.summary()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"- Output layer: \n",
" - How many output nodes? 10\n",
" - Which activation function? softmax\n",
"- Hidden layers:\n",
" - How many hidden layers? 2\n",
" - How many nodes in each layer? 512 in both layers\n",
" - Which activation function for each layer? relu for both layers\n",
"- Input layer\n",
" - What is the input size? 784\n",
"- The loss function -> categorical_crossentropy\n",
"- The metrics for model evaluation (which may be different from the loss function) -> accuracy\n",
"- The optimiser -> rmsprop"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tf.keras.utils.plot_model(\n",
" model, to_file='model.png', show_shapes=False,\n",
" show_layer_names=True, rankdir='TB', expand_nested=False, dpi=96\n",
")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Number of trainable parameters in the model = 669,706\n",
"\n",
"input nodes = 784\n",
"\n",
"hidden_layer_1 nodes = 512\n",
"\n",
"hidden_layer_2 nodes = 512\n",
"\n",
"output_layer nodes = 10\n",
"\n",
"\n",
"dense_2 layer parameters = (784+1)*512 = 401920\n",
"\n",
"dense_3 layer parameters = (512+1)*512 = 262656\n",
"\n",
"dense_4 layer parameters = (512+1)*10 = 5130\n",
"\n",
"Total trainable parameters = 669706"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "MZ2BVK5tAzMM"
},
"source": [
"### Task 4.2 Fitting the model\n",
"\n",
"Before you fit the model. Think about what initialisation method have you chosen? If you did not specify the initialisation method, find out what is the default one. Choose a layer and visualise its initial weights. (Hint: You may use UMAP to visualise a collection of high-dimension vectors.)\n",
"\n",
"Decide and report the following training setting:\n",
"\n",
"1. The training batch size\n",
"2. The number of training epochs (at least 1,000 epochs recommended)\n",
"3. The learning rate. If you used momentum or a learning rate schedule, please report the configuration as well.\n",
"\n",
"Now fit the model. Show how the training loss changes. How did you decide when to stop training?\n",
"\n",
"After fitting the model, visualise the model weights again. How did the weights change? Why?\n",
"\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### what initialisation method have you chosen?\n",
"I choose Sequential() as the initialisation method."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The training batch size -> 64\n",
"\n",
"The number of training epochs -> 20\n",
"\n",
"The learning rate -> 0.0001"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Train on 60000 samples, validate on 10000 samples\n",
"Epoch 1/20\n",
"60000/60000 [==============================] - 18s 299us/sample - loss: 0.5110 - accuracy: 0.8143 - val_loss: 0.3990 - val_accuracy: 0.8574\n",
"Epoch 2/20\n",
"60000/60000 [==============================] - 13s 210us/sample - loss: 0.3798 - accuracy: 0.8637 - val_loss: 0.4374 - val_accuracy: 0.8417\n",
"Epoch 3/20\n",
"60000/60000 [==============================] - 14s 226us/sample - loss: 0.3533 - accuracy: 0.8739 - val_loss: 0.4658 - val_accuracy: 0.8477\n",
"Epoch 4/20\n",
"60000/60000 [==============================] - 13s 208us/sample - loss: 0.3343 - accuracy: 0.8798 - val_loss: 0.4453 - val_accuracy: 0.8351\n",
"Epoch 5/20\n",
"60000/60000 [==============================] - 12s 200us/sample - loss: 0.3208 - accuracy: 0.8870 - val_loss: 0.3952 - val_accuracy: 0.8695\n",
"Epoch 6/20\n",
"60000/60000 [==============================] - 12s 198us/sample - loss: 0.3075 - accuracy: 0.8916 - val_loss: 0.4261 - val_accuracy: 0.8673\n",
"Epoch 7/20\n",
"60000/60000 [==============================] - 12s 198us/sample - loss: 0.2968 - accuracy: 0.8956 - val_loss: 0.4091 - val_accuracy: 0.8771\n",
"Epoch 8/20\n",
"60000/60000 [==============================] - 11s 187us/sample - loss: 0.2922 - accuracy: 0.8959 - val_loss: 0.4385 - val_accuracy: 0.8710\n",
"Epoch 9/20\n",
"60000/60000 [==============================] - 12s 196us/sample - loss: 0.2841 - accuracy: 0.8982 - val_loss: 0.5819 - val_accuracy: 0.8515\n",
"Epoch 10/20\n",
"60000/60000 [==============================] - 11s 186us/sample - loss: 0.2808 - accuracy: 0.9014 - val_loss: 0.5518 - val_accuracy: 0.8536\n",
"Epoch 11/20\n",
"60000/60000 [==============================] - 11s 191us/sample - loss: 0.2732 - accuracy: 0.9032 - val_loss: 0.4855 - val_accuracy: 0.8708\n",
"Epoch 12/20\n",
"60000/60000 [==============================] - 12s 199us/sample - loss: 0.2696 - accuracy: 0.9048 - val_loss: 0.5141 - val_accuracy: 0.8647\n",
"Epoch 13/20\n",
"60000/60000 [==============================] - 12s 194us/sample - loss: 0.2632 - accuracy: 0.9087 - val_loss: 0.4493 - val_accuracy: 0.8831\n",
"Epoch 14/20\n",
"60000/60000 [==============================] - 12s 192us/sample - loss: 0.2623 - accuracy: 0.9089 - val_loss: 0.4972 - val_accuracy: 0.8736\n",
"Epoch 15/20\n",
"60000/60000 [==============================] - 17s 281us/sample - loss: 0.2538 - accuracy: 0.9110 - val_loss: 0.5129 - val_accuracy: 0.8857\n",
"Epoch 16/20\n",
"60000/60000 [==============================] - 19s 313us/sample - loss: 0.2510 - accuracy: 0.9128 - val_loss: 0.4962 - val_accuracy: 0.8864\n",
"Epoch 17/20\n",
"60000/60000 [==============================] - 17s 285us/sample - loss: 0.2487 - accuracy: 0.9144 - val_loss: 0.4799 - val_accuracy: 0.8794\n",
"Epoch 18/20\n",
"60000/60000 [==============================] - 13s 217us/sample - loss: 0.2463 - accuracy: 0.9156 - val_loss: 0.5018 - val_accuracy: 0.8737\n",
"Epoch 19/20\n",
"60000/60000 [==============================] - 14s 236us/sample - loss: 0.2394 - accuracy: 0.9181 - val_loss: 0.7292 - val_accuracy: 0.8628\n",
"Epoch 20/20\n",
"60000/60000 [==============================] - 15s 243us/sample - loss: 0.2370 - accuracy: 0.9189 - val_loss: 0.5742 - val_accuracy: 0.8803\n"
]
}
],
"source": [
"history = model.fit(train_data, train_labels_one_hot, batch_size=64, epochs=20, verbose=1,\n",
" validation_data=(test_data, test_labels_one_hot))"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"10000/10000 [==============================] - 2s 190us/sample - loss: 0.5742 - accuracy: 0.8803\n",
"Evaluation result on Test Data : Loss = 0.5742292147040368, accuracy = 0.880299985408783\n"
]
}
],
"source": [
"[test_loss, test_acc] = model.evaluate(test_data, test_labels_one_hot)\n",
"print(\"Evaluation result on Test Data : Loss = {}, accuracy = {}\".format(test_loss, test_acc))"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0.5, 1.0, 'Loss Curves')"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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VaoUDRs2ZPDgwaxZs8blda+//jpRUVG0bNmS0qVL0717d+bOnZthB0ohQllWq+EdnFviVq+GxETPxeRJktiDVFRUFN26dWPHjh2sXLkytfRepkwZOjg1DI0fP57+/ftTqlQppkyZwnfffcePP/7IzJkzAdMJLqt0yrRMyk21g+M5Z926dWP8+PF06tSJOXPmsGjRIn788UcGDhyY7RhywrmWwZm72LMjq9cZM2YMu3bt4t1336VSpUpMmzaNxo0bM2TIkNRzmjVrxp49e5g/fz73338/GzdupHv37tSvX5/Tp097JG4hgkV2E3vZslC6tNm+cMF0ovNHIZ/YrRYT/3vklPOY9kWLFnHs2DF69Ojhkrhmz55N+fLlWbRoEX369KFTp060a9eOEiVKZPu+lSpVAmDbtm3pnkt77OzZsyxcuJBHH32UyZMn061bNzp27Ei7du1cqsMd3H1ZuJaKFSuyY8cOEtN8tU5MTGTnzp1uS+fe5rjnli1b0j23fft2kpOT08VVsWJFBgwYwLx58zhy5AitWrVi3LhxLtXz+fLlo0uXLkycOJEtW7bw/vvvs23bNqZPn+7dNyREgMnsHPFpKRUYw95CPrEHswYNGlC/fn0+++wzJk6ciFKKXr16uZwTFhaGUsqlFJmYmMibb76Z7fvec889KKUYP368y9Ct9evX89NPP6W7P6QvxR49epRp06alu3a+fPkAMl0Kve+++zh58mS6a02dOpWTJ09y//33Z+o6nuQYrvbtt9/y999/px7XWvPGG28ApMZ17ty5dMPVoqKiqFGjBmA1U8TGxqa7T4MGDYDM/6yECBXZLbFDYLSzy3C3IPf4448zYMAAFi9eTJs2bVJL0w4PPPAAw4YN44477qBz587ExcUxd+7cHA2Pql69Ov3792fixIm0bduWLl26cOLECSZOnEi9evXY4LSgcf78+enQoQOffPIJefLk4eabb+bAgQNMmTKFChUqpGvXbtq0KQBDhgyhe/fuREVFUbt2bWrXru02lsGDB/P555/Tv39/1q9fz0033cSGDRuYPn061apVY/Dgwdl+n9eydu1axowZk+54eHg4Q4cOZcKECbRu3ZqWLVumDndbuHAhixcvplu3btx2222A6TTXt29funTpQrVq1ciXLx/r1q1j2rRpNGnShGopxY0aNWrQtGlTmjRpwo033sjR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9fffWufJY8XQu7fvY8ipVavM0EGl0if4KlW0njJF68uXPXe/3393X2PwxBP+26HPbp6qim8O3OW0XxT4H/AX8DYQlpXreerhlcSutdb/+pf12/X22965hwh5FStav2YrVtgdjefs3u1aKp8+3fRWd/7QvummzPecz4pZs6x75M2b/Tb77Lh40Qymcdy/Zk2tL1zw3f09bccO82UsMjJ90i1eXOvXXtP69OnsX//UKZO80167Tp30NT3ClacS+2/AKKf9j4BzwBfARWBkVq7nqYfXErvzjBsdOnjnHiKkHTxo/YrlyROYk4VcS//+6T+wHY9u3bzXgSwxUet69ax7PfGEd+7jTp8+1n2jouzrfOZpR49qPXy41oUKpf+/dPSkz8qXtORkU70eHe16rbx5TXV8MPQ18TZPJfaTwJ0p27mBOKB3yv5zwLasXM9TD68l9gMHXP9CPVnvJITWevZs61esbVu7o/G8Y8fMh77zB3euXKYCzNvtpYsXu97zWr3zPWXuXNf3OnWq9+/pa3FxWo8fn763uqOvxKOPar1587WvsX276QiX9vV33206zonMySixZ3XmuXwpydzRY/0GYGHK/nqgXBav59/KlbMW+b1yxUxULYQHBdr661lVooRZ2MShcGGzUMkLL1iLmHhLhw7WJJLJyTA03coUnrVrF/Tta+0//DA8/rh372mH/Plh4ECzkp9jBTmHxEQz013dutCpk5m33pT7jCtXzNz3devC0qXW8TJlzGI1CxaYNeVFzmQ1sR8G6qVs3wH8rbU+kbJfGLjkqcD8hkwvK7wokBd+yazhw6FfP+jaFdasMQnXV8aNs75AfPut68/bk+LjzaI1jjWjKlUyU596+8uLnSIi4LHHzPS/332X/vd30SK49Vazstz8+WZVujp14NVXISHBnBMWZr74bdsG990X3D8vn3JXjM/oAbyKKbHPxyRx5wVhXgZWZuV6nnp4rSpea62//tqqJ2rQwHv3ESHn8GHrVysyUlp6vMV5Vr+bb/ZOE8CAAdY9IiK0XrfO8/cIBH/8oXWXLu570qd9NGlihkWK7MNDVfGjgbFAJPAm8I7Tc/WAz3PyJcMvtWljLYy9fj2cPGlrOCJ4OJcemzVzXaBDeM6rr0JkpNleswbmzfPs9b/+Gt57z9p/++3AXMTHExyl8x074MknrZ+7s4IF4YMPTMtm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\n",
"text/plain": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"#Plot the Loss Curves\n",
"plt.figure(figsize=[8,6])\n",
"plt.plot(history.history['loss'],'r',linewidth=3.0)\n",
"plt.plot(history.history['val_loss'],'b',linewidth=3.0)\n",
"plt.legend(['Training loss', 'Validation Loss'],fontsize=18)\n",
"plt.xlabel('Epochs ',fontsize=16)\n",
"plt.ylabel('Loss',fontsize=16)\n",
"plt.title('Loss Curves',fontsize=16)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "9C2VXCM-4Nw9"
},
"source": [
"### Task 4.3 Check the training using TensorBoard\n",
"\n",
"Use TensorBoard to visualise the training process. Show screenshots of your TensorBoard output.\n",
"\n",
"**Optional task:** Record the gradients during training and use TensorBoard to visualise the gradients."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "4EgXZCBNAzMs"
},
"source": [
"## Task 5 Overfitting and regularisation\n",
"\n",
"*(weight ~30%)*\n",
"\n",
"Go back to the previous task. Plot the training and validation loss and accuracy. Answer the following questions:\n",
"\n",
"1. Do you see overfitting or underfitting? Why?\n",
"2. If you see overfitting, at which epoch did it happen?\n",
"\n",
"Now retrain the model with only 200 training examples. (Make sure that you reinitialise the weights before retraining.) Do you see overfitting? How did the validation loss and accuracy change?\n",
"\n",
"Neural networks are overparametrised models, meaning there can be more parameters than the training examples. Some form of regularisation is almost always necessary to obtain a useful model. Below are some options:\n",
"\n",
"1. Add dropout\n",
"2. Add Batch Normalisation\n",
"3. Add layer-specific weight regularizations\n",
"4. Change the learning rate\n",
"\n",
"In addition, you may also try changing the weight initialisation method.\n",
"\n",
"Apply different regularisation techniques to the model training. You may also try other techniques for improving training such as learning rate scheduling (see https://www.tensorflow.org/guide/keras/train_and_evaluate#using_learning_rate_schedules).\n",
"\n",
"Run **five or more** experiments of different training configurations and record the validation accuracy achieved in the Markdown table below. You may modify the table heading to match your experiment design.\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "d1LRIBrEgu92"
},
"source": [
"\n",
"|Dropout (rate) | Batch Normalisation (Y/N) | Optimiser | Learning Rate | Number of Epochs | Validation Accuracy |\n",
"|---|---|---|---|---|---|\n",
"| | | | | | |\n",
"| | | | | | |\n",
"| | | | | | |\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "dLjJA98Qgxg5"
},
"source": [
"\n",
"Answer the following questions:\n",
"\n",
"1. Which configuration achieved the best validation accuracy? Report the test accuracy of your final model.\n",
"2. Which setting had the most impact and which one had the least impact?"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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VaoUDRs2ZPDgwaxZs8blda+//jpRUVG0bNmS0qVL0717d+bOnZthB0ohQllWq+EdnFviVq+GxETPxeRJktiDVFRUFN26dWPHjh2sXLkytfRepkwZOjg1DI0fP57+/ftTqlQppkyZwnfffcePP/7IzJkzAdMJLqt0yrRMyk21g+M5Z926dWP8+PF06tSJOXPmsGjRIn788UcGDhyY7RhywrmWwZm72LMjq9cZM2YMu3bt4t1336VSpUpMmzaNxo0bM2TIkNRzmjVrxp49e5g/fz73338/GzdupHv37tSvX5/Tp097JG4hgkV2E3vZslC6tNm+cMF0ovNHIZ/YrRYT/3vklPOY9kWLFnHs2DF69Ojhkrhmz55N+fLlWbRoEX369KFTp060a9eOEiVKZPu+lSpVAmDbtm3pnkt77OzZsyxcuJBHH32UyZMn061bNzp27Ei7du1cqsMd3H1ZuJaKFSuyY8cOEtN8tU5MTGTnzp1uS+fe5rjnli1b0j23fft2kpOT08VVsWJFBgwYwLx58zhy5AitWrVi3LhxLtXz+fLlo0uXLkycOJEtW7bw/vvvs23bNqZPn+7dNyREgMnsHPFpKRUYw95CPrEHswYNGlC/fn0+++wzJk6ciFKKXr16uZwTFhaGUsqlFJmYmMibb76Z7fvec889KKUYP368y9Ct9evX89NPP6W7P6QvxR49epRp06alu3a+fPkAMl0Kve+++zh58mS6a02dOpWTJ09y//33Z+o6nuQYrvbtt9/y999/px7XWvPGG28ApMZ17ty5dMPVoqKiqFGjBmA1U8TGxqa7T4MGDYDM/6yECBXZLbFDYLSzy3C3IPf4448zYMAAFi9eTJs2bVJL0w4PPPAAw4YN44477qBz587ExcUxd+7cHA2Pql69Ov3792fixIm0bduWLl26cOLECSZOnEi9evXY4LSgcf78+enQoQOffPIJefLk4eabb+bAgQNMmTKFChUqpGvXbtq0KQBDhgyhe/fuREVFUbt2bWrXru02lsGDB/P555/Tv39/1q9fz0033cSGDRuYPn061apVY/Dgwdl+n9eydu1axowZk+54eHg4Q4cOZcKECbRu3ZqWLVumDndbuHAhixcvplu3btx2222A6TTXt29funTpQrVq1ciXLx/r1q1j2rRpNGnShGopxY0aNWrQtGlTmjRpwo033sjR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9fffWufJY8XQu7fvY8ipVavM0EGl0if4KlW0njJF68uXPXe/3393X2PwxBP+26HPbp6qim8O3OW0XxT4H/AX8DYQlpXreerhlcSutdb/+pf12/X22965hwh5FStav2YrVtgdjefs3u1aKp8+3fRWd/7QvummzPecz4pZs6x75M2b/Tb77Lh40Qymcdy/Zk2tL1zw3f09bccO82UsMjJ90i1eXOvXXtP69OnsX//UKZO80167Tp30NT3ClacS+2/AKKf9j4BzwBfARWBkVq7nqYfXErvzjBsdOnjnHiKkHTxo/YrlyROYk4VcS//+6T+wHY9u3bzXgSwxUet69ax7PfGEd+7jTp8+1n2jouzrfOZpR49qPXy41oUKpf+/dPSkz8qXtORkU70eHe16rbx5TXV8MPQ18TZPJfaTwJ0p27mBOKB3yv5zwLasXM9TD68l9gMHXP9CPVnvJITWevZs61esbVu7o/G8Y8fMh77zB3euXKYCzNvtpYsXu97zWr3zPWXuXNf3OnWq9+/pa3FxWo8fn763uqOvxKOPar1587WvsX276QiX9vV33206zonMySixZ3XmuXwpydzRY/0GYGHK/nqgXBav59/KlbMW+b1yxUxULYQHBdr661lVooRZ2MShcGGzUMkLL1iLmHhLhw7WJJLJyTA03coUnrVrF/Tta+0//DA8/rh372mH/Plh4ECzkp9jBTmHxEQz013dutCpk5m33pT7jCtXzNz3devC0qXW8TJlzGI1CxaYNeVFzmQ1sR8G6qVs3wH8rbU+kbJfGLjkqcD8hkwvK7wokBd+yazhw6FfP+jaFdasMQnXV8aNs75AfPut68/bk+LjzaI1jjWjKlUyU596+8uLnSIi4LHHzPS/332X/vd30SK49Vazstz8+WZVujp14NVXISHBnBMWZr74bdsG990X3D8vn3JXjM/oAbyKKbHPxyRx5wVhXgZWZuV6nnp4rSpea62//tqqJ2rQwHv3ESHn8GHrVysyUlp6vMV5Vr+bb/ZOE8CAAdY9IiK0XrfO8/cIBH/8oXWXLu570qd9NGlihkWK7MNDVfGjgbFAJPAm8I7Tc/WAz3PyJcMvtWljLYy9fj2cPGlrOCJ4OJcemzVzXaBDeM6rr0JkpNleswbmzfPs9b/+Gt57z9p/++3AXMTHExyl8x074MknrZ+7s4IF4YMPTMtm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\n",
"text/plain": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png":...
SOLUTION.PDF

Answer To This Question Is Available To Download

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here