Skip to content

Instantly share code, notes, and snippets.

@arghyadeep99
Created September 6, 2019 19:10
Show Gist options
  • Save arghyadeep99/5f80ed548c3abfb2b207da8297d666f7 to your computer and use it in GitHub Desktop.
Save arghyadeep99/5f80ed548c3abfb2b207da8297d666f7 to your computer and use it in GitHub Desktop.
PyTorch Tutorial.ipynb
Display the source blob
Display the rendered blob
Raw
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"name": "PyTorch Tutorial.ipynb",
"version": "0.3.2",
"provenance": [],
"collapsed_sections": [
"8B7ImskqdjGJ",
"wzvrnoaRdvgp",
"EW_u9hYHkA7C",
"aqmgWMJvnxYV",
"ecp9byoBsPkN",
"lvNX2f4ksUBB",
"Jo8Kv8bF-fXX"
],
"include_colab_link": true
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
}
},
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/gist/arghyadeep99/5f80ed548c3abfb2b207da8297d666f7/pytorch-tutorial.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "ov1iAF2VS5ks",
"colab_type": "text"
},
"source": [
"#PyTorch Tutorial\n",
"<ol>\n",
"<li><a href=\"https://pytorch.org/\">What is PyTorch?</a></li>\n",
"<li><a href=\"https://pytorch.org/tutorials/\">What can we do with it?</a></li>\n",
"<li><a href=\"https://www.google.com/url?sa=i&source=imgres&cd=&cad=rja&uact=8&ved=2ahUKEwjBsLzk6LTkAhXFfn0KHeZRApgQjRx6BAgBEAQ&url=https%3A%2F%2Fblog.algorithmia.com%2Fexploring-the-deep-learning-framework-pytorch%2F&psig=AOvVaw3eLYpoGyGHRVB5KUBSwjIN&ust=1567605789915136\">What is a Computation Graph?</a></li>\n",
"<li>Looking at a detailed example of PyTorch Graph.</li> \n",
"</ol>"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "8B7ImskqdjGJ",
"colab_type": "text"
},
"source": [
"##Installing PyTorch"
]
},
{
"cell_type": "code",
"metadata": {
"id": "kavThgwUZHXN",
"colab_type": "code",
"outputId": "afbcad81-f6b1-4667-8983-4064d0a936e1",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"source": [
"!pip3 install torch torchvision"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"Requirement already satisfied: torch in /usr/local/lib/python3.6/dist-packages (1.1.0)\n",
"Requirement already satisfied: torchvision in /usr/local/lib/python3.6/dist-packages (0.3.0)\n",
"Requirement already satisfied: numpy in /usr/local/lib/python3.6/dist-packages (from torch) (1.16.4)\n",
"Requirement already satisfied: six in /usr/local/lib/python3.6/dist-packages (from torchvision) (1.12.0)\n",
"Requirement already satisfied: pillow>=4.1.1 in /usr/local/lib/python3.6/dist-packages (from torchvision) (4.3.0)\n",
"Requirement already satisfied: olefile in /usr/local/lib/python3.6/dist-packages (from pillow>=4.1.1->torchvision) (0.46)\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "wzvrnoaRdvgp",
"colab_type": "text"
},
"source": [
"##Importing all Libraries"
]
},
{
"cell_type": "code",
"metadata": {
"id": "qXfCVDrogpYq",
"colab_type": "code",
"colab": {}
},
"source": [
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"import torch\n",
"from torch.autograd import Variable\n",
"from math import pi\n",
"from copy import deepcopy"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "EW_u9hYHkA7C",
"colab_type": "text"
},
"source": [
"##Making Data\n",
"##Formula: mx + b + A1sin(w1x+c1) + A2sin(w2x+c2)"
]
},
{
"cell_type": "code",
"metadata": {
"id": "m9UDNCd_jo80",
"colab_type": "code",
"outputId": "3a1189a4-7343-4dd8-f414-4a78b863954b",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 269
}
},
"source": [
"x = np.array([_/100 for _ in range(1000)])\n",
"y = 4.5*x + 3 + 2.8 * np.sin( 2.5 * x + pi/3) - 5.2 * np.sin(5 * x + pi/5) + np.random.normal(size=1000)\n",
"\n",
"\n",
"plt.plot(x,y)\n",
"x = Variable(torch.tensor(x,dtype=torch.double))\n",
"y= Variable(torch.tensor(y,dtype=torch.double))"
],
"execution_count": 0,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "aqmgWMJvnxYV",
"colab_type": "text"
},
"source": [
"##How to compute a function in PyTorch\n"
]
},
{
"cell_type": "code",
"metadata": {
"id": "QG2JAGkUm5z9",
"colab_type": "code",
"outputId": "6ee5979a-6de4-4193-bf2f-4bb28fb6c5bf",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 34
}
},
"source": [
"m = Variable(torch.tensor(1.2,dtype=torch.double),requires_grad=True)\n",
"b = Variable(torch.tensor(2.8,dtype=torch.double),requires_grad=True)\n",
"A1 = Variable(torch.tensor(0.6,dtype=torch.double),requires_grad=True)\n",
"w1 = Variable(torch.tensor(2.2,dtype=torch.double),requires_grad=True)\n",
"c1 = Variable(torch.tensor(pi/4,dtype=torch.double),requires_grad=True)\n",
"A2 = Variable(torch.tensor(-1.0,dtype=torch.double),requires_grad=True)\n",
"w2 = Variable(torch.tensor(4.0,dtype=torch.double),requires_grad=True)\n",
"c2 = Variable(torch.tensor(pi/3,dtype=torch.double),requires_grad=True)\n",
"print(m)"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"tensor(1.2000, dtype=torch.float64, requires_grad=True)\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "AEQ75Ph0o8Ml",
"colab_type": "code",
"outputId": "0a53a7f1-8bcf-4d41-fecb-6a951ac54bb1",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 286
}
},
"source": [
"Y = m*x+b+A1*torch.sin(w1*x+c1)+A2*torch.sin(w2*x+c2)\n",
"plt.plot(x.detach().numpy(),Y.detach().numpy())"
],
"execution_count": 0,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7f1ceb700e10>]"
]
},
"metadata": {
"tags": []
},
"execution_count": 5
},
{
"output_type": "display_data",
"data": {
"image/png": "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\nTkSuQmCC\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "BpG5ftm4q2K6",
"colab_type": "text"
},
"source": [
"##Optimization in PyTorch"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "ecp9byoBsPkN",
"colab_type": "text"
},
"source": [
"###Initialization"
]
},
{
"cell_type": "code",
"metadata": {
"id": "pwWRtShPqOfj",
"colab_type": "code",
"outputId": "c9557e6f-2de5-482f-c19e-b56f39be3a78",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 34
}
},
"source": [
"params = [0]*8\n",
"params[0] = m = Variable(torch.tensor(1.2,dtype=torch.double),requires_grad=True)\n",
"params[1] = b = Variable(torch.tensor(2.8,dtype=torch.double),requires_grad=True)\n",
"params[2] = A1 = Variable(torch.tensor(0.6,dtype=torch.double),requires_grad=True)\n",
"params[3] = w1 = Variable(torch.tensor(2.2,dtype=torch.double),requires_grad=True)\n",
"params[4] = c1 = Variable(torch.tensor(pi/4,dtype=torch.double),requires_grad=True)\n",
"params[5] = A2 = Variable(torch.tensor(-1.0,dtype=torch.double),requires_grad=True)\n",
"params[6] = w2 = Variable(torch.tensor(4.0,dtype=torch.double),requires_grad=True)\n",
"params[7] = c2 = Variable(torch.tensor(pi/3,dtype=torch.double),requires_grad=True)\n",
"print(params[0])"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"tensor(1.2000, dtype=torch.float64, requires_grad=True)\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "NwHY-8Q2qX6w",
"colab_type": "code",
"outputId": "69bbb7e5-8ba1-4e84-ea1d-0ae8a5d3a574",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 286
}
},
"source": [
"Y = params[0]*x+params[1]+params[2]*torch.sin(params[3]*x+params[4])+params[5]*torch.sin(params[6]*x+params[7])\n",
"plt.plot(x.detach().numpy(),Y.detach().numpy())\n",
"plt.plot(x.detach().numpy(),y.detach().numpy())"
],
"execution_count": 0,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7f1cee40e5f8>]"
]
},
"metadata": {
"tags": []
},
"execution_count": 7
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "lvNX2f4ksUBB",
"colab_type": "text"
},
"source": [
"###Computing the Loss and Gradients!"
]
},
{
"cell_type": "code",
"metadata": {
"id": "KrascydGKaMn",
"colab_type": "code",
"colab": {}
},
"source": [
"# Initialize\n",
"\n",
"params = [0]*8\n",
"params[0] = m = Variable(torch.tensor(1.2,dtype=torch.double),requires_grad=True)\n",
"params[1] = b = Variable(torch.tensor(2.8,dtype=torch.double),requires_grad=True)\n",
"params[2] = A1 = Variable(torch.tensor(0.6,dtype=torch.double),requires_grad=True)\n",
"params[3] = w1 = Variable(torch.tensor(2.2,dtype=torch.double),requires_grad=True)\n",
"params[4] = c1 = Variable(torch.tensor(pi/4,dtype=torch.double),requires_grad=True)\n",
"params[5] = A2 = Variable(torch.tensor(-1.0,dtype=torch.double),requires_grad=True)\n",
"params[6] = w2 = Variable(torch.tensor(4.0,dtype=torch.double),requires_grad=True)\n",
"params[7] = c2 = Variable(torch.tensor(pi/3,dtype=torch.double),requires_grad=True)\n"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "YKCEQTGOqmZB",
"colab_type": "code",
"outputId": "dbdb3cd8-4067-4e8e-982f-b772e242927f",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 170
}
},
"source": [
"# Compute the function\n",
"Y = params[0]*x+params[1]+params[2]*torch.sin(params[3]*x+params[4])+params[5]*torch.sin(params[6]*x+params[7])\n",
"\n",
"# Compute the loss\n",
"loss = ((Y-y)*(Y-y))/2\n",
"loss = loss.sum()\n",
"print(loss)\n",
"\n",
"# Zero out the gradients\n",
"for i in params:\n",
" if i.grad!=None:\n",
" i.grad.data=torch.tensor(0.0,dtype=torch.double)\n",
"\n",
"# Compute Gradients\n",
"loss.backward()\n",
"for i in params:\n",
" print(i.grad)"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"tensor(195247.8528, dtype=torch.float64, grad_fn=<SumBackward0>)\n",
"tensor(-111146.0445, dtype=torch.float64)\n",
"tensor(-16694.4921, dtype=torch.float64)\n",
"tensor(-408.6225, dtype=torch.float64)\n",
"tensor(5220.8800, dtype=torch.float64)\n",
"tensor(278.4904, dtype=torch.float64)\n",
"tensor(-1326.2558, dtype=torch.float64)\n",
"tensor(-5679.0080, dtype=torch.float64)\n",
"tensor(-883.0339, dtype=torch.float64)\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "Jo8Kv8bF-fXX",
"colab_type": "text"
},
"source": [
"###Updating the parameters"
]
},
{
"cell_type": "code",
"metadata": {
"id": "ZC_QPP0D-ebU",
"colab_type": "code",
"outputId": "b4c291e9-0ff7-4164-f94c-34c7f6270449",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 207
}
},
"source": [
"# Update Paramters\n",
"lr = 1e-5\n",
"for i in range(len(params)):\n",
" params[i] = Variable(torch.tensor(params[i] - lr*params[i].grad.data,dtype=torch.double),requires_grad=True)\n",
"\n",
"for i in params:\n",
" print(i)"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"tensor(2.3115, dtype=torch.float64, requires_grad=True)\n",
"tensor(2.9669, dtype=torch.float64, requires_grad=True)\n",
"tensor(0.6041, dtype=torch.float64, requires_grad=True)\n",
"tensor(2.1478, dtype=torch.float64, requires_grad=True)\n",
"tensor(0.7826, dtype=torch.float64, requires_grad=True)\n",
"tensor(-0.9867, dtype=torch.float64, requires_grad=True)\n",
"tensor(4.0568, dtype=torch.float64, requires_grad=True)\n",
"tensor(1.0560, dtype=torch.float64, requires_grad=True)\n"
],
"name": "stdout"
},
{
"output_type": "stream",
"text": [
"/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:3: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).\n",
" This is separate from the ipykernel package so we can avoid doing imports until\n"
],
"name": "stderr"
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "nSkTXLFJLNDW",
"colab_type": "text"
},
"source": [
"##Complete Training Loop"
]
},
{
"cell_type": "code",
"metadata": {
"id": "lEIGtSH0LMT3",
"colab_type": "code",
"outputId": "820a3644-5eaf-4088-bc61-4db281015af7",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 1000
}
},
"source": [
"losses = []\n",
"\n",
"x = np.array([_/100 for _ in range(1000)])\n",
"y = 4.5*x + 3 + 2.8 * np.sin( 0.5 * pi * x + pi/3) - 5.2 * np.sin(0.25 * pi * x + pi/5) + np.random.normal(size=1000)\n",
"\n",
"\n",
"plt.plot(x,y)\n",
"x = Variable(torch.tensor(x,dtype=torch.double))\n",
"y= Variable(torch.tensor(y,dtype=torch.double))\n",
"\n",
"params = [0]*8\n",
"params[0] = m = Variable(torch.tensor(2,dtype=torch.double),requires_grad=True)\n",
"params[1] = b = Variable(torch.tensor(0,dtype=torch.double),requires_grad=True)\n",
"params[2] = A1 = Variable(torch.tensor(2.7,dtype=torch.double),requires_grad=True)\n",
"params[3] = w1 = Variable(torch.tensor(0.45*pi,dtype=torch.double),requires_grad=True)\n",
"params[4] = c1 = Variable(torch.tensor(1.1*pi/3,dtype=torch.double),requires_grad=True)\n",
"params[5] = A2 = Variable(torch.tensor(-5.0,dtype=torch.double),requires_grad=True)\n",
"params[6] = w2 = Variable(torch.tensor(0.23*pi,dtype=torch.double),requires_grad=True)\n",
"params[7] = c2 = Variable(torch.tensor(0.9*pi/5,dtype=torch.double),requires_grad=True)\n",
"\n",
"lr = 1e-6\n",
"\n",
"for epoch in range(10001):\n",
" \n",
" # Learning Rate Scheduling\n",
" #lr = lr*0.99\n",
" \n",
" # Compute the function\n",
" Y = params[0]*x+params[1]+params[2]*torch.sin(params[3]*x+params[4])+params[5]*torch.sin(params[6]*x+params[7])\n",
"\n",
" # Compute the loss\n",
" loss = ((Y-y)*(Y-y))/2\n",
" loss = loss.sum()\n",
"\n",
" # Zero out the gradients\n",
" for i in params:\n",
" if i.grad!=None:\n",
" i.grad.data=torch.tensor(0.0,dtype=torch.double)\n",
"\n",
" # Compute Gradients\n",
" loss.backward()\n",
" # for i in params:\n",
" # print(i.grad)\n",
" \n",
" losses.append(loss.detach().numpy())\n",
" \n",
" # Update Parameters\n",
" for i in range(len(params)):\n",
" params[i] = Variable(torch.tensor(params[i] - lr*params[i].grad.data,dtype=torch.double),requires_grad=True)\n",
" \n",
" if epoch%1000==0:\n",
" print('Epoch: ',epoch)\n",
" print(\"Loss: \",loss)\n",
" plt.plot(x.detach().numpy(),Y.detach().numpy())\n",
" plt.plot(x.detach().numpy(),y.detach().numpy())\n",
" plt.show()\n",
" \n",
"for i in params:\n",
" print(i)"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"Epoch: 0\n",
"Loss: tensor(133580.2945, dtype=torch.float64, grad_fn=<SumBackward0>)\n"
],
"name": "stdout"
},
{
"output_type": "stream",
"text": [
"/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:49: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).\n"
],
"name": "stderr"
},
{
"output_type": "display_data",
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAD8CAYAAABn919SAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzt3Xl4U1X6wPHvSdK90LLvBQQE2VFA\nBNxQRFEExQUQRXD0N+M47vs4rowz48y4jeOCgiICAoICyiICI+LCvpRFZN8LZWmhdE1yfn+cNG1I\n0qY0adr0/TxPnybnntz7Btq3J+eeRWmtEUIIUfVZwh2AEEKI4JCELoQQEUISuhBCRAhJ6EIIESEk\noQshRISQhC6EEBFCEroQQkQISehCCBEhJKELIUSEsFXkxerWratbtGhRkZcUQogqb82aNce01vVK\nq1ehCb1FixasXr26Ii8phBBVnlJqbyD1pMtFCCEihCR0IYSIEJLQhRAiQkhCF0KICCEJXQghIoQk\ndCGEiBCS0IUQIkJIQhdCiCDadeIIf/3fFDYf2V/h167QiUVCCFHZ2B0ODp/OoFlynaCcb/DcqwH4\nYufHLBs5hxoxcUE5byCkhS6EiCh2h4N8uz3g+vfM/jsDZ1/B9mOHgxuHLY3en/ek7yd3BPW8JZGE\nLoSIKFdOGsVFk7sFXH/jyWUA7DwReEKftG4J6w7t9ij7y3ef0GliJ6+6mWpjwOctL+lyEUJElAy1\noUz1lTLtWod2Bvya1zY+hHZGsWn0WgAyc7P5cv9bqDA3kaWFLoSotA5knqDTxE48tfDDEF5FAeB0\nBp7QAZSlwP340ikDUBb/3TwPz//vuYVWRpLQhRCV1qYjewCYf+AzMnOzAXj22/F0G9/fo16+3U5u\nQb7f85zOy2HBb2u9yl9fPosCqxmN4tQagNeWTeefP8zwe66zr3M6LwdtzSjxfSw++n6Jx4NFEroQ\notKyWawAaNsJrph8MwBzD7+J3Zbm0aLu8+lQeky5yOv1S3el0mliJ3p/3pMnfh7lNZTw450vuB+n\nZR3nT9+8zaTdr/DprpdN2emTdBnfj6kbvnfXy8g94378a/oBen/eMwjvNDgkoQshwi67II+dx9NK\nrGO3HfR4fqYgz/0417oLgP6T/s9d5nQ6GbfGs6X9n5XT/bbk39n6FP87VtS1s2TnRn439yWctnTe\nWfeBu/xkTlFCH7tsfIkxV7SAE7pSyqqUWqeU+tr1vKVSaoVSaodSappSKjp0YQohItmQaQ8z5Ov+\nXsk2p4RulKcXfcCqAzs8ytKcP7kf5zoKyHPkeRz/8cQnPLd4QkAxPbT8DvYWLAagXmwTAGZvWcFt\n869z19mQ9UVA56ooZWmhPwRsLfb8H8AbWuvWwEngnmAGJoSoPg47lgNwIifLXfbQvHdYuPMnfy9h\n2fHxPLXkb8zdutLn8Y9WLeBUwUm/r399+ayA46sfXx+AD9dPDfg14RBQQldKNQWuBz5yPVdAP6Dw\nz9NEYEgoAhRCVB8nsk1C359xnCXpH/D98Y88jmcXeLa40/VKnv/pLz7P9eH25zji/NmrvGZMIgCb\nj20POK5DWQfJyDnD3lzffzzOdlHNYQGfO5gCHYf+JvAkUMP1vA6QobUuHKdzAGji64VKqfuA+wBS\nUlLOPVIhRMR5ffksasfVdD//btdaOjZMYdneVJ/1T2Sf8Sqz2w6V6Zr5jgJGf/kqq08F3treW7CY\nS6cvBmtg9d+89mGe/i4WMN08FaXUhK6UugE4qrVeo5S6oqwX0FqPA8YBdO/eXZc5QiFElbRs92Ze\n+/lDbr/gRu7s1s/r+OvLZ3mMMgEYv/0vHMs+yZx9E3wmz+u+urzcce3O3MvGrJnlPs/Z/t7rY/68\n/BkctjRqxsTx/qDHcDqdXPrpGjLZHPTr+RJIC70PcKNSaiAQC9QE3gKSlVI2Vyu9KXCwhHMIISLI\ntI0/sObwVl4bcJ/fOn9a8iectnRe27iYO7t5t7jPTuaFZh98PeCW8LkoSzKPcTQnz7o3oLrXt+1O\nt0bT2Ji2B4vF9GZbLBZa1WzPutOp2B0ObNYQvjECSOha62eAZwBcLfTHtdZ3KKVmALcAnwOjgNkh\njFMIUYmMXXc/AK/hP6GD98zLZ78dz/eHFmPBUjhBMygSnReQZdlaesUADG/xLFn52cw99CaBdinM\nGDgfgMY1a9O4Zm2PY1GWKMAMs0yyxgclRn/KMw79KeBRpdQOTJ965RqQKYQIm/6Tfo/Tdtz9vHAS\n0NzDb3JKpZZ5vZWSWO0NaJfc1eexWlxYpnMl05VnLx9OnbhkV4n/lB7jaGFqOKNoV6+p/3pWM6I7\n56wbuqFQpoSutf6f1voG1+NdWuueWuvWWutbtdahj1YIUSWkOX/0eH7f3H9y4fjr/NQuL4XdWbSO\nSpyjlfvxN8PKNuXepkynRaytcFqN/48Rj1z0mKmho0o8Z5TV1ULPr2QJXQgh3l3xtfvx2QtabT16\ngCcXjvN6zYqMzyiwHfA+mSOwLogxrV/2e+zm80aR7zQTkHom3UGLxA4AXNvwAeJsRfMdb2n2ZKnX\nsbgSemK0iatnPe+buYUaJNQCQFFyQo92JfSSJkkFiyR0IUSZvPfrM+7HOQUFHsce+fZvzE/7T8Dn\nsuqapVcCRnTxnVhTR6Xy/JUjKXCYOGKsMfxn4JN0ThzKi1fc7XET8oV+d7oft48f7DseV0K/s+uV\nvNLjQ/57/cNedRKc7QCItpq6Spc8Sd7d5WKXhC6EqMTOnuhzIr9sg938dWjY7E2oQ3cAutW4nXrx\nrikwjgQaWvp41S/QJllG26JpkJjE5KEvkhAT4/e6Y6/8o8/y7g3MNS0WC0Pa93KPVilu/u0f82n/\nOVhdxxIs9f1eB4pa6Gfyc0usFwyywYUQ4pz1m9mHzolDeeXKP5CedYoCHWDScsaCJZfCNqVyJKGt\nmQDc2PgRRna5hj8ueBE0tK7VAovFwuu9J3FB/RSaJtX22hmowGESeozFR2vZEU+35EEeRcmxCV7V\nPu0/hy4Nm5caeq34RGrFJ7pj/b8eg0qsf2O7vsTZYmlXz+fcy6CShC6EKJeNWTMZ/NV8sGYHnFEs\nzkScllz3bkEaBwDxzvP5a/8xpo6ygAaH0xzr36ZoJMsnV3/lsWVcYQs9Lsq7VZ46ZoVXWVKsd999\nt8YtfcbaM2kkSTGJLPKxpnlhrCXp2qgFXRu1KLVeMEhCF0IEpNOEi7kw+UbfB63ZZTpXlKpBHsdQ\n7k4XB8tvX0GMtSglWVytd7sroRd3UZNWXNSkaDRLlGux15rRiQFdP9pmo3nUVe7VFEsyfshTAHSa\n+D4pUVcGdP5wkYQuhPBpX0Y6Kcn1igqs2aw9/XlQzt08oT2/5e6mc62+rD41Fa2cXq3m4e2H8vqm\nHxnU1rvP/GzjbniRvywZxwO9/PzB8eHrEW+a166a73UvwJdVI9a4b4RWVnJTVAjh5YvUH7l+dj/3\nVmxl3W+zNJ3qtWf2oO9449qHALDoWK86oy/qT+qoVHqltC31fCnJ9Zh485+JtpWccDslDMVmb+xR\ndl+P63i4d+mLxcZGRfu8SVqZVO7ohBAV5vopD/LYgvcA+PngRgC+27sU8NwdKBjy7QWcV7sByXEJ\nXFn3Pt67KpSbQBeZcsuLrLtnYYVcKxwq9+cHIUSF2VewlH1HlvLSkkS+PfIuAAWuCTvBHnKX6yg6\n39vX/ymo567OpIUuRDVwJCuTN378MqC6c/dMdz9O1yvoNLETqWmBrThYXH1LL/dj5UhyP45yNOPJ\nviPKfD5ROknoQlQDw2c9yoQdz7Nsd+nrctew1fUqe+YH37sClWTRHR+4R4WMafc42mmGFE6+YRwN\na9Qq8/lE6SShC1ENnCwwMzgzcz2HFx7IPMGIL170KK8R5Z1s86x7Ar5WLS4kxtESi8XCNyPeZsbA\n+eamozLT8xsmJpdyBnGuJKELUS2YUSpRZ22w8MLSD0k9M5OnFxVNmom1xfk9i9ZFr7fZG/Np/zle\ndV7s+xirxxSVFy4t+1SXN2hsvdTnpB4RHJLQhagGtGtdb4f2HH5YJ860xrdn/OouO5l7zO95atHR\n/VgpC90at/RaCTHW5nuxqju79WPhyHcr/dC/qkz+ZYWoFkwizzlrTe7CRJ/nKOpySXP+5Pcs8bZi\nqyO69n5oUrOeRx2rCu02a8I/SehC+DB02tP835x/hTuMoNGFCd1uEvrT337I5iP7WZFmkneOMzOg\n86hi6yNalFlFMOmsha5Km9wjQkcSuhA+/Jb7DT+dnBjuMILINKe3HtvNeyvn8c3htxm2YCAnWQsE\nftPzlSseQTnMTc0oZWZ3JscUrZ9yb5uxfhe5EqEnCV1Ue7O3rGB/xvHSK4aI0+nk13Qfu/mUw7pD\nuz2eF7bQ5x56k3e3PnVO57yy7n30aNqaO9uY6fpRFldCjytqoT/Y2/fGEaJiSEIX1Vp2QR7Prfod\nQ2fd6/P4F6k/+iwPpt/N+Qe3zruO9Yf3BOV8f/t+GnctupFOEzvRaUIP8x5U+ddiOVNwBoCsfPM9\n2pXQa8cFtsKhCD1J6KJa+Wz9UnpOuIlt6YcA2HxkPwDZap+7Tr69aMPhTzfNDHlM608sA2B/RrpH\n+S/7tvn85PDj3q08vsD/5sdrjqwvemLN5e21H6Cx+61fXNu4G/weO5KdBkBClBnW2DDebNhQK857\nswgRHpLQRbXy7zV/J8e6g2V7UgHYfGQPAFZnUSvzWPYp9+N92Rvo+HF3bp3+rNe51h/ew5KdG8sd\nk0PnAJAQ7bk5w71Lb2HgLO8E+4fF97LwyH85nZfjLjuQeYI7Z75MetYpjxuXADGWOLQKLKG/coX3\n1mytY65Dawt/6jEKgMf73sLgJo/ywQ1PA7j37dTOkjdLFqEnCV1UKw7MolD5jnycTifp2ScBsFA0\ndrp4QnfYjqIsefyaM9frXHd+O4iHlt/hfv7j3q3cMOVhjxZ+oXnb1tD742FeMzUBnCrPFZOPpGvN\ncj8sXLNbu+rvyygaL37zzDGsz5pBv5l9yLZneZwi2hoLeG8SUeinYSvBEYey1+aC+k29jn857DU2\n3b2BAW26AWa/zbFXj/bYs3NM65f56Kqpfq8hKoaMLxLVilYmoadlHafLpC7EO8/3atZk5fleWdDp\ndDJs5l9oXjOFOnHJHuUWi4UHFz9GvnU/X275mUtS2nlsDvH8jy+RZ93NvG2rGN7l8rNiykMBaw9v\n45rWXX1OvPls/VL+seFBnuv2LkrHoMllf2Y6HRo0AyDHutNdNyP/mMfuywqFsvhvodeIieOXO37w\nKv/PpVPZkr7H7+uKe6TPTQHVE6ElLXQRcRZuX8efF03weaywdbsn0/SZZ1t+cx/LLcjnoXnvsDsj\nzedr92UcY2v2HBakvcPk3WPd5YdOZwDg1KYVPHb1E1w/ux9/+36au47F1Xby2Qp3dYdM3fMqXSZ1\nMecqtqFEbkE+n2+ZDcDnW+a6N4M4fPo42QV53DHzRY/T5TlPeTzfm1v6jd2EmBiPFjfAFed15P6L\n/fepi8pHWugi4jz+010A9NrakUEX9PQ4piwm6Z7MO3HWqxSPLXyXZcfHsyQdn7ak7/dZvvLANpom\nXYJ76qTVjAKZsmcsi/ctZsGI98yGx/hO6Eppj+f9J/2eNGdREk47ncEZu5n4syNvPlYaALA38zAf\nrVrAxizPG7f5+rTnBazmE8dV9X/PYh8bHZ/trb6TcQR5hyJRMaSFLiLWsyvvYe7WlT6PZRZ4jh5x\nqGx+OfpdiefbfHSXz/JPU2cBRWO9izvi/Jntxw+7W+i59tI3iiiezAHSsk5iU0V9/IV97rN3f8aH\n25/zer3TctqrDOD1AX9gaLMnSr1+v1ad6d+ma6n1ROUjCV1EtOd+epI1B3dyJMtzanuOI8PjubZm\nkG8teROHiTv/6rN8Z94Cnl00HoftiM/jp3JzsLjWN1m8d7l7SYF3V3zNVZN8j38v7tudq7Cqog/T\nTmUStt122Gd9ZSnwWW6xWHix312sGLGaRzr8u9TriqpHulxERHPajnP3d2YD4Cc7v+Uuz9en/L3E\nL6X8jxSZe+hNv8feWTWVTOcOsJrkvzMP3lvZnvd+fSag687Y9w/P3X8s/uMIRHxUDGO6X8Mbpe91\nIaoYaaGLauO1jQ+5HzstJqG3ixtEp4QQjdBwmLHt67NmgNVzuGJZp98fdf6CxV6v9IqiWpOELqq8\nncfT2Ji2h/SsUx6jQ0qiLHaUI4kZt73K033HBD2mO1v+hRGtHi73eaIdKe7HWuWf83laxVxb7lhE\n5ScJXVQ5zy4aT6cJF5Nvt7Pm4E6GfN2fOxYO4pppt/LRmoUBn8eqTQv6/DqNy3T9euriUus83vcW\nujVqU6bz+tKz3lXux9qaSbzT/znjnefzp/aveZXPuv5bvhr2z3LHIio/Seiiyplz8G2wZnMi5zSH\nThWNVrHbDvHp5s8CPk+sxWzWEBvlvcNOvPN8n69JpitL7vqoxPPa7A2xWCw0rFE74FjO1q3G7aSO\nSuXKFp7DLu/v4j01v9DPo2ZwX4/rvMrb1G10znGIqkUSuqhylGvlwJM5Z7xmVWaqwNdWqRnlvbt9\noRWjZ/pcm+TDgX8D4NaUp7i09hgGNTLdKsXrvt//XQA6NyjqLnmu27te52oXN8jnte9tM5ZPbzbD\nEWvH1fA4Vi/Be4NlZa/Nh1d+4f636Ft7NHGO8n86EFWPjHIRVdaJnNNeW6r5s/z2FfSd5tlVUjvG\nf0IHWHzrUnafSKNWXA1umTcAgFquBPv8lSMB+GDlPDgMNmctHJajAFycYpKpxWLhhQvfp35iMpe1\n7MB/1nYiU6UWXT+2NrjW13q153ieXXkP4LmmeHyU5+zNlCTPG6Nr7liHzWLx+MP23qBHgUfpNLFT\nie9PRJ5SW+hKqVil1Eql1Aal1Gal1Euu8pZKqRVKqR1KqWlKKd87wwoRIieyszie43/rNKu9vvtx\njehYrqjrOea7Vmwt9+MVI1bTOsazu6JBYhK9UtrStl7jYq/xvVSswvdKg7d06sNlLTsAMPe2cTzV\n5W33seSYJPfjs2e0FmpzVv9+x4YpjO3xER9cMYNHO75OtM1Wrk2XZYXEyBJICz0P6Ke1zlJKRQHL\nlVLzgUeBN7TWnyul3gfuAd4LYaxCePjbL//itGWL3+OqWHvFYrEQZ4v1OJ4cW7ThcXxUDF8Oe41O\nE+ej7N7dGsm6Cxlqg9d+mYVjaqwqutQVx2vFJzL4gl78Y4N5nhAdV8oroF5iTVJHpTJu1XxSksyU\n/8HtzSeN3s3blfha5Uh2r0bgy4yB891rm4vIUGpC11proHA9zijXlwb6ASNc5ROBF5GELipQScnc\n8Gy5FiavGEdL4q3JPHTJLV6veLXneNrVa+ZVPm/4hxzN8v40oLVJ6VbXhsnKXvKN0IRiXSiJUfHm\nHE5TdmntMZxfx/d+nL5udpZm/d3fl3i8XT3vpXJF1RZQH7pSygqsAVoD/wV2Ahla68JGyQGgiZ/X\n3gfcB5CSkuKrihABmbdtDZuP7i69osvoC+73WOvkhra9+WI/jOlwn99VBP11fdSIiaNGjHdr1rR3\nwEoUt6Y8xY3t+pYYU/HukYToWF7p8SFt6phfnXcHPVLyGyqj8nTFiKopoISutXYAXZVSycCXQMmf\n9TxfOw4YB9C9e/cSPgAKUbKnfrkbMP2+Z69X0tDSh7SCdR4zMh/sPdgjoV/UpBWpo1IJpp5NL+D9\nbXBZk6vcN0pLk+i8gCzLVpRSDGnfq/QXCBGgMv0J11pnAEuBS4BkpdwrBjUFDgY5NiGwOxws2+25\n6IivxadevfJxlI71Kg+1Hk1bs/z2Ffz9mtIX2Spkcf3a5NnPfeanEL4EMsqlnqtljlIqDugPbMUk\n9sJOyFHA7FAFKaqv/5v7L/64bBgPzXunxHrxUTEozIqGVnt9rm34gPuY1d4gpDEmxcaXqf6A5gMB\n6NWsQyjCEdVYIF0ujYCJrn50CzBda/21UmoL8LlSaiywDhgfwjhFNbUtYwMoWJL+QYn1EqJi3KNa\nnu7xAsM6XwbAL8NWY7Wokl5a4Z6/ciRP24d5jZgRorwCGeWyEejmo3wX4PsOkhBBolzriJemaVId\ndws9zlY0kuTsbdUqC0nmIhTkp0pUSodOneCpRe+Q7zwT0J0em9XqbqFbVOVqkQtRUSShi0rp3q9f\nYl/BEv/J3FETrGZN83/1/hQoas3n2X3v2CNEpJOBqqJSOpV/vMTjH139ifvxgDamR3Bwy2EAXNik\ndcjiEqIykxa6qFR+2beNFrXqc1JvoaSek44NUhjd6iV2Zuxzlz1/5UieJ7Cx4EJEIknoIqyyC/J4\nf8U3ZBVk8/yVI7l3qRkJq0r57JgQE8OjfW+ugAiFqDokoYuw6j/5bk6pTQDSuhainCShi7AqTOZg\nWuslaRMzkMcuuZvTeTmhDkuIKkkSuqg0Xljyic/yROcF3Hb+cEZfeA3Jcb7XIxdCSEIXYZJvtzN0\nxhMeZQvSfE/vV8rKI31uqoiwhKjSZNiiCIuvtv7CnvzvAqpb4JQuFiECIQldVHoFOqv0SkIISegi\nPAo3hijJsObPAGC3lDzJSAhhSEIXYaFL2uzSpWuj8wFol3BtqMMRIiLITVERFoG00AHW3LFOViYU\nIkDSQhdh8e66D/0eS3C2BaBBQrIkcyHKQH5bRIU7nn2aDLWhqMARB9aikSzv9P87+zLT6d5UFtkS\noiwkoYsKN2TG/R7PLToRJ0UJvWlSHUnmQpwDSeiiwpzMzmLlwe3kODKh2EZEMSqJHNLdz2vH1QhD\ndEJUfZLQRUgN+Ox+6sTW5d3rn2L0nJfYmbcAm27sUSfGkkDxqUPSby7EuZHfHBFShxw/cOgMXDr9\nS3eZ3XbIo06crQYZDuicOJTRXWSKvxDnShK6CDursrHhzg1YLDLoSojykN8gEXZta7eTZC5EEMhv\nkQiZfLvd77Eazvbux68P+ENFhCNExJMuFxEyI798we+x03of97YZS1JsorTOhQgSSegi6NYd2s1P\n+zax/dRqvz9h2nKGB3sPrtjAhIhwktBFUJ3MzuKuRTcCYKOx33pKBbaWixAicPJZVwTVigO/uR/b\nVUYYIxGi+pGELoLKY6Nna7b74XnR1xQV2+vTp/bdFRiVENWDdLmIoMqx5/ks71C3PbsOfQvA+nsW\nV2RIQlQb0kIXQZVXkO/x3GKvx38v+5yxV40OU0RCVB/SQhdBdXYL3WlL57KWHcIUjRDViyR0US5H\nsjKZunEpTWvUY8fJA0zb/pHHT1Vj66XhC06IakYSuiiXm2bcx2nLlqKCYj9RNntDFo56t+KDEqKa\nkoQuysUjmZ+lTnRLj+etYq4lyhIV6pCEqLZKTehKqWbAp0ADQAPjtNZvKaVqA9OAFsAe4Dat9cnQ\nhSqqmihLjMfzr4b9M0yRCFE9BDLKxQ48prVuD/QC/qiUag88DSzWWrcBFrueC+EWbYkOdwhCVCul\nJnSt9WGt9VrX49PAVqAJMBiY6Ko2ERgSqiBF1RRjjQ13CEJUK2Uah66UagF0A1YADbTWh12H0jBd\nMkK43dHxxnCHIES1EvBNUaVUIjATeFhrfUop5T6mtdbKz2pLSqn7gPsAUlJSyhetqFReWjLJZ/mj\nHV9n9EX9KzgaIURALXSlVBQmmU/WWs9yFR9RSjVyHW8EHPX1Wq31OK11d61193r16gUjZlFJfLf/\nW5/lNou1giMRQkAACV2Zpvh4YKvW+vVih+YAo1yPRwGzgx+eqMyc2veORDE2uRkqRDgE0uXSB7gT\nSFVKrXeVPQv8HZiulLoH2AvcFpoQRWXl1A4o6nnj1Z4TmLfjB27p0Dt8QQlRjZWa0LXWy/H4tfVw\nVXDDEVVBRs4ZVh/cgROHR/mgC3ow6IIeYYpKCCEzRUWZDZr+ezJYj9XZwN1p1yv5rvAGJYSQ5XNF\n2WVget4ctiOmwJHIh4OfCGNEQgiQhC7K6EhWpldZ89iLwxCJEOJsktBFmQyf9ajH8xbRV/PFra+F\nKRohRHHShy5K9PS3H7IjYxcvXX4/w74ZBtZTHsfrxzUkNkqGKQpRGUhCFz7ZHQ6e+e4jFqS9A8CH\na5t6JXOAGKskcyEqC0nowqfXf5zpTuYAi4++77NebKROIso+AQfXQvpWyDwAGfshNwMKcsCeB9Yo\niIqHmESo0RBqNoXkZlD/AqjXDqLiwv0OhC9am//D/CzQTlAWQIHVBjE1oYrPcpaELnzak3kwoHrR\nkdJCL8iB3cvgtwWwcwmc3FN0LDoRkppBfB2Irw22WHAUQEE2ZB2BQ+vhTLGVL5QV6rSGZj2gxaXQ\nvI9J9iL08s9A+q9wdCuc2A2nDpo/yKcOQfYxyMsC7fD/+piaEJsM8bXM/3lSM/N/V6uF+WOd3AIs\nlffWoyR04VNmvvdolkLdaw5n/YnvsdsOEWuL8Vuv0tMaDq6BNZ/ApllQcAaiEuC8K+Ciu6HxhdCw\nE8TVAuVvbp2LPc+04o9sMl9pqbD1a1j3mTleqwW0GQDtBpoEb5Wdm8rNngeHN8D+FbB/pXmcsbfo\nuLJCjUaQ1AQadYaEehBTw3xFJ7pa59r8HDgKIO8U5GSYT2JnjsHxnbBzqfm5KBQVbz6B1W8PjbtC\n0+7QoGOl+f+UhC58KnAW+D32+oAHGTzjV05yiChLFfwRcjrh17mw7F+QttEk8Y43QYeboUVfOJc/\nUrYYqNvafHUYUnSdo5thz4+waymsnQgrP4CYJGhzNbQfbJJ8lKwbHxCt4chm+G0+bP8ODq0FR745\nltwcmlwI3e6E+q6Em9zcdKWU95o5J+HELji6BY5sMd9/WwDrXX+sbXHQuJtJ7s16QkpvSKhTvuue\noyr42ygqQo492++xpNh4Yq0J4IAz+TkVGFU5aQ2/fg1LxpqP5bVbwQ1vQMdbILZm8K9nsZgWfsNO\n0Ov3kJ8Nu/4H2+bBtvmwaab5iN/uBug0FFpeUf4EFGns+bB3OWxbYP7NMveZ8sbd4OL/g2YXQ9Oe\nUCNE2zEoZbrZ4mubhF1Ia8jcDwdWwYHV5vuK9+Gnt83xehdAiz7QvDc07xu6+M4iPz3Cpxz7Gb/H\nLBYL8bZEcEBGnvfIl0rp6Famp7MiAAAbkklEQVSY/xTs/h7qtoWh46HDTRV7Eyw63nS5tBsIDjvs\nWQapM2HrHNgwxXQJtB8CnW41Lb3SunkiVfYJ2L7I/OHbsRjyT5v7FuddCZc9DucPMDeiw0kpSE4x\nXx2HmjJ7HhxaB3t/NJ/KNnwOqz4yx+q0htsnm08PISQJXXhZf3gPJwsOgo9c99/LPgfgquZ92fnb\nAro36lCxwZWVPR++/wcsf8P0nV73T+g+JvwtYasNWvUzX9f/G3YsgtQZsG4SrPrQJIpOt0Kn20Ke\nBCqF4zuLPrns+8XcuExsYLrC2g6ElpebP4iVmS0GUnqZr0sfM3+00zaY5L73J9OXH2JKa58bDYVE\n9+7d9erVqyvseqLsnE4nXSZ18SjrXWsUPRt34rvdPzL11pfd5TuPp9GqTphbSiVJS4Uv/wBHUqHL\nCLhmbNj6NgOWe8p0C6XOMN0z2gkNOkHnW01LMKlpuCMMDqfD3MgsTOLHt5vyBh3h/GtNEm/crVKP\nKKlISqk1WuvupdaThC6KO5OXR6/PPX9uhjR5jFeuvjs8AZ0LrWHNx6aLJTYZBr1lujmqmqyjZvRN\n6gw4uBpQZoRMp1vMDdX42uGOsGxyT5mbw9vmw28LIecEWKLMjei2A01XSq3m4Y6yUgo0oUuXi/CQ\nXZDnVVYzJjEMkZyj/Gz45lHYMBVaXw03jav8rXJ/Euubm6m9fm9GWaR+ARunw9cPw7wnoE1/uOBG\n8z2hbrij9aY1HNsO27+F7Qth78/gLDB/ZM8fAG2vg1ZXheaGdDUlCb2aczqdLN65kf5tugKQY/dO\n6EmxCRUd1rnJPABThplx4Fc8A5c9GTkf2WufB5c/CZc9YYZabpxuWu/b5gEKmvYwSbLNNabbIlzv\nO+uo6S/es9zcFyicoFW/PVxyvxmm2ezi8N/DiFDyr1rNjf1+CjP2/YN70l/h4d5DfLbQezW7IAyR\nldHhjTDlNjNT8I4ZptUaiZSCRl3MV/9XTHL/baEZF73kFfMVmwQpl5ghcymXQIMOEB2CP8qOAjP8\n8/BGM2xv749w7DdzLCoBWl4KvR80/xfJKcG/vvAiCb2a25S+FYDN6eamVE5B0YSim5s+Tvt659G5\nYYtwhBa4Hd/B9FEmkY1ZYBJYdWCxmNmKjbvCFU/B6TQzs3HfT6aV/NsCV0VlWvgNOkDd881U9qRm\nJsnG1TKjf3xNpnLYzaSanBNwJh0y9pnp9Cf3wLFtZiho4cSemJpmdEfXO0yfeKMulWb2ZHUiCb2a\n05ib4oVDnrPyiiYKta7djNs7XxqOsAK3aRbMutdM5LhjOtRsHO6IwqdGQ+g63HwBnD5ibqambTIj\nfdJSzQga7fR+rTXaLCimtTnudIDdx6QxZTELkdVpBRf/vujTQu3zqvzCVpFAEno1V5jQAeZuXcmz\nK+9xP4+q7P2cG6bBV7+HZr1gxDS5uXa2Gg2g3fXmq5DDDqcPmXVnMg9AbibkZULeabNAmbKapG2x\nmPVO4lyzJOPrmBZ9UjOI1BU2I0Al/40VoVY4bPWnE5M4tM5zhcUWyRUzXfmcrJ0Ec/5k+mmHfx6a\nPuJIZLUVzXAUESdChgCI8lJKs7dgsft5z6SR9EppG8aISrD2U5jzgJllOWK6JHMhXKSFLnzq1aRr\nuEPwbfOXMOdBM8b89smyUqEQxUgLvZr7LfebcIcQuO3fwcx7zWiK2yZJMhfiLJLQq6Fxq+bzwNdv\nlVgnI7eSraK492eYNtIsVDX888q/UJMQYSBdLtXQf7Y8CUCniR/5rZNcmUaMHNkCU243q9WN/BLi\nksMdkRCVkrTQhZf7zh/LvT0GhDsM4/QRMwM0Kg7u/AoS64U7IiEqLWmhCy9/umRwuEMw8rNh6u2Q\nfRxGz5eNloUohST0asLucLD+8G66N23tdSzakcJTPZ5h9aEtJFWWlRWdDjMD9NB6GD7VTG8XQpRI\nEno18fuv/8WKjM94+9IpXscmDnyPjg1TuK1T3zBE5sei58009Wv/YZZZFUKUSvrQq4nNJ9YA8Oux\n/e4yZU/m1Z4T6Niwks0aXDcZfn4Het5n1gIXQgREEno1Ubhmy0/717jLolUtBl3QI1wh+XZwDXz9\niNlDcsDfwh2NEFWKJPRq4N/LZ3JG7wNgfdZ0d7lVVbLlTbOOwucjzebAt3wsmyAIUUbyGxPhnE4n\nn+x8EXysbGqlEiV0e75Z0zznJNzzbdXdNk6IMCq1ha6UmqCUOqqU2lSsrLZSapFSarvre63QhilK\n033Cjdw1a6xX+aaj+/y+xmqpRAn92z+bjRlu/A806hzuaISokgLpcvkEuPassqeBxVrrNsBi13MR\nRnnW3aw7Pc2r/Lf0gz5qG7bK0uWybjKsHAeXPACdbw13NEJUWaUmdK31MuDEWcWDgYmuxxOBIUGO\nSwTBN9tWM3f7//we/9NF91ZcMP4c3lh0E/Tql8IdjRBV2rn2oTfQWh92PU4DKvFOCNXT4KmPsSv/\nW7/Heybdwc0dLqnAiHzIPQUzRpndcG6ZIDdBhSinco9y0WbLG+3vuFLqPqXUaqXU6vT09PJeTpSi\n54SbOJB5osRkDtAgIcxromhtdhw6udck84S64Y1HiAhwrgn9iFKqEYDr+1F/FbXW47TW3bXW3evV\nk4WVQi3HuoPrvrq8xDoPtv8XL/e7u2IC8mfVR7DlK7jqeWge5k8KQkSIc03oc4BRrsejgNnBCUf4\n88u+bXSa2IlpG3/wOuZ0+tjF3Q+tLdzbYwA2axh3aD+4FhY+C20GQO8HwxeHEBEmkGGLU4GfgbZK\nqQNKqXuAvwP9lVLbgatdz0UIzdiyBIBPN33hdSzfYQ/8RDrMc8lyMmDG3ZBQH2563+wuL4QIilLv\nQmmth/s5dFWQYxElsCrTotbayfZjh7n5m2t4rOMb3H3R1eTaC8pwpjAmUK1h9h/h1EEYvQDia4cv\nFiEikDSPqgiLUgA4tZMF21cCMC51PAB5pbTQb276OK/2nACA0mHsavnlPbOC4tUvQbNKtoaMEBFA\nEnoVYVHmv8qJkxrRCQDYnXkA5Nnz/b7Oam/IS1eNok3dRoVnCmmcfh1YDYv+Am2vh0v+GJ4YhIhw\nktCriMKErrUmMToOAAe5AOQU+O9yebvfmwDYHYU3TsPwX559wvSb12wMQ/4Lrk8bQojgkoReRdgs\npqskzfkjr6z8MwB2nc0/f/iCghK6XC5r2QGAZslmnPegZveEONKzaA2zH4DTaXDrJxAny/4IESoy\nNa+KKGyhAzhtx93fP931Esey/Qz9c8S6HybFxpM6KjWkMfq04gPY9o1Z27zJRRV/fSGqEWmhV0Lp\nWaf42/feC235s/jgXK+yXsl3MXngjGCGVXYH18K3z0HbgdDrD+GNRYhqQBJ6BXvnl7lcM6nkbdVG\nfPkEU/aM5Zttq91lJXWr5Fl3e5Xd1r4/nRu2OOc4yy03E74YbTarGCz95kJUBOlyqWAfbHu21DoZ\nBUfACidzTrvLCpxlGWsOteNrlDm2oNEa5j4EGfth9DwZby5EBZEWepiUNF2/sC1r1j2DdYd2sztz\nb6nnVI5k9+OaMfHliq9c1nwCm7+Efs9BSq/wxSFENSMt9DLal5FOSnL5FxnLdRQQb4nxKt+Utg87\nZly505XQ71p0Y0DnXHnnYqZs+B/7TqUVG3dewdI2wYKnoVU/6PNweGIQopqq9i3022b8mRcWTyy9\nIvD68llcP7sfUzd8X+7r5vkZOz584fUUWPcDpoW+Yt/2gM8ZGxXNmO7X8GK/u8od3znJyzL95rFJ\ncNM4WadFiApW7X/jtmbPYdaBfwVUd9mBnwH46cCGUutmF+RxMjvL7/E8h3dCn7dtjcfzJXt/4XdL\nbw4otkph3hNwbDsM/QgSZalkISpatU/ogVp3aDen8s1OfMXHhPtzxaThXDbjEveyt+/84jm0MPes\nFvqVn47mqV/u9rymjz1CK631U2DDFLj8KWh5WbijEaJaqjZ96LM2/8wLKx5l7pDZtKhdHwC7w+Gz\nrtPp5N45r/GH7rfQvWlrwLMfWwUwBC/HarpKFu8yre4Ptj3LurQt7uOvLPuYlZmf0SNpBFtPriPL\nsvXc3hignTainQ3P+fXllr4NvnkMWlwKlz8ZvjiEqOaqTQv9jdXvgjWLvyx9nx92m8R6PKeoSyS3\noGiBq0U7N7AyczIPLHra57l8/aM5nU6um/wA76742qM8v1jXysrMz4oen5gDwKrMKeVK5gDr71rN\n6tHflOsc5yz/jFmnJSoebv4QLGFczVGIai4iWujb0g8RY7W5W97FfbZ+KXFRMTi1AxSsz5rB/ctm\nkNoylWNnTrnrPbbwXf57gxmVsTW9cIig75a48tHlctVnv+OYXsV7v37PqkMb3eUHTqf5idr3p4Oy\naGTty2VNLw3f7kNaw9ePwNGtMHIm1AzTyBohBBAhCf2WeQMAfK5V8o8NZp2TGrq9V35OP5Ppfnwy\nN8P9+MApk4SjLWYs99k3N5XrRD/s3sKlLdsDcEyvch9ffWqq+3HxVrmnwBJ6ku7MVc2u8Xnj9pMb\n/0rjmmGctLN6AmycBlc8C61lvxMhwq3KdLmcycvj1unPsi8j/Zxe7/SRQI/nFLXQtS6a6JOZZ2Zo\nFub//aeOebxOKcUHK+dx/7LbeXmpSdjKXrbEqlVgCf2uDiNpUyfFq3xM65fDm8wPrjHjzVv3h8ue\nCF8cQgi3KpPQ3/plFr/mzGX03GfpOWEIH65aCMAdM1/0WX/2lhXuZAug8Z6ZmVFsav2m7C9548cv\nAcjKN+UnWMtFEway4fAuj9cpFNuOm26ZlYfNeis1rU3K9oYCSOgWex1+d9EAakSbTwraaT5Q1eJC\nHulzU9muF0zZJ2D6KEhsCDfLeHMhKosq0+USZTGhHnGsRFmdvJf6Fvf2GMDGrJnuOk6nkzu/fJm7\nOw/huVW/83h9tsV7gs7WY56LWk3Y9ir3dR9Ilr0o0edb9/PvtX/1+Jf638EFgAYr7M1dYdYk13n+\nutx9Usr/1P9Cy0fOx2KxEB9lZpRanDWZOvAzmibVCfxCweZ0wqx7IesIjFko67QIUYlUmYSe4Nql\npzARFu8iKTT2+ylszJrJoz/N9Dp2tusmP8AB+1kzPq259Jp8GfWjOnsUO2xHPZ4XDkk0r8ni010v\nlfuzjtXeEIfNdQPVEQvWXGrEmPdc+D0lrhsdGjQr34XKa9k/Ycd3cMMb0OTC8MYihPBQZRL62TTe\nMy1n7PtHwK/3SuaFrNmcLkiHCh440iSuPfsKTEL/Yfj/KCg2Rr5XSlue7foON7YL80JX2+bD//4G\nnYfBRaPDG4sQwkuVSeg5BXleZRk5Z/y/wBEP1uxzulYux0qvFIAoRzP3uiy+jO3xEXN+W8rKzMnE\nWuO4vfEzNE6sS3Jcglfd4V0uD0pM5+zoVpj5O2jUBQa9KeubC1EJVZm7Wbl2z4SucbL+sPfGDm7n\nmMwBtDWz9Eo+DGjguZv9omHTmHDVl+7n1zS4n66JtwHQ1HY5g9tfTIHTbFwRa4vluStGMKb7NecY\ndQhln4Cpw8zkoWFTICou3BEJIXyoQgk93+O5U+Wx9di+MEXjzWZvxCXNPPve68TXoEfT1mhnNAD/\nvvYPPHrJSLS28ED3uwF4svddRDtSeKbPmIoOOTAOu5kJeuoQDJsMSWUczSOEqDBVJqHnOTwTOtbT\nrEvb7LuyI3i79WhnlPvx5XV+53V8UGMzu1QpK0M79GZM65dNePaiWasTr5nOIx3+DUC3xi3ZdPcG\nrm/bHYCODVNYM+YbOjb0HmteKXz7Z9j9PQx6C5r1DHc0QogSVImEnluQz/y0/3iV/3zyU5/145Xn\nFPQoRzNwJLqf/+XC9wK+9mOdi260vnPDQx6JGqBvSlcAGsaYRbwe6XMTy279mR9GFq3pclGTVpWz\nK6U0qz6CFe9Drz9C1xHhjkYIUYoqkdBTj5Sta8VKlMfz1Xd/zaJb5wFQU3fitk59ebTj6wGdq0Gi\n5zjraFXT4/mlLdrzbNd3mDq0KPHXik90DzWssn6dZ9Y3P/9a6P9yuKMRQgSgSoxyOXomo/RKxfRt\n3I9vD6Rz83mjaVazARaLhYY1avFKjw/pk2LWXqkbb/bf1E4bd5z3NPmOfL7Y/5rHeb4bupwDmd7T\n/otLiIoJ/wiUYDuwBr4YA426wi0TwFolfkyEqPaqxG/qiWyz5orWVlQAU+ab1mjA+nsWe5UPaV80\njjvWZlrxNmddnrn8diatWwJnjTBskJjEyWLLAwCosz7UWCJt2vuJXTDlNkisDyOmQbT3EEohROVU\nJbLRhNRJAPzu/BcDqu9El1qnc6OWAFyfMhzwTsw2u9kwIuGsIXoxFpPg4hxtAoqlSjl9BD67BbTD\nLIeb6L0csRCi8qoSCf2YNgtgtUgu2pXnklr+N0K+rk3pozEaJCaROiqVv/Y3wwVvbHcxtbiQGxs/\nQmPrpUwfbG64xkebIYfaaaaOfjzoNXokjeCnUTN8LtdbZWWfgElD4HQajJgOdSPwD5YQEa5KdLl0\nShhK6pmZdKjf3F027sYnWHPwZu5eOBKsZr1yq72+z66WQNSIiWPZqImuZ0VjwpNi4rHa63Nrq3sA\nOK92AyYMeebc3khllXsKPrsZju+EO2bI8EQhqqgqkdA/u/l5dp/8Pa3qmBZ6nKMVYIYDzh7yFe+s\nmMUfe97kc8p8edms1nP+I1El5J+BKbdDWircPhnOi7AbvEJUI0rr0vubg6V79+569erV5TrHT3t/\npU2dxtRLrFl6ZVGy3FPmBuj+FTB0PHS8OdwRCSF8UEqt0Vp3L61eufrQlVLXKqW2KaV2KKV876gc\nZL2bt5NkHgzZJ+DTG+HAKjM0UZK5EFXeOSd0pZQV+C9wHdAeGK6Uah+swEQInT4CEwfBkS2mm6VD\nGHc/EkIETXla6D2BHVrrXVrrfOBzYHBwwhIhc3QrfHS1GW8+Yhq0vTbcEQkhgqQ8N0Wb4DkV5wBw\n8dmVlFL3AfcBpKSc4wJU+36BjP1QkA0FOea7soA1CixREBUL8XUgvi4k1IUajcC1D6coZtf3MO1O\n8+81eh407hbuiIQQQRTyUS5a63HAODA3Rc/pJD/8G7Z/W7bX1GgMtc+DOudBg45mGnvDTtUz0WsN\nqyfA/CehThszNDE5zFvZCSGCrjwJ/SBQPCs0dZUF38B/guNVs7FCVLz5rjU4C8BRYFrt2cfhzDE4\nkw6ZB0yXwomd8Os3sNa1KqOyQL12kNILWvSFFpdG/mzI/Gz4+hHY+Dm07g+3jIfYpHBHJYQIgfIk\n9FVAG6VUS0wiHwaEZo3VWi1Kr+Ovxam12Zzh8Ho4tB4OrYWNM0yLFUyCb3kZtBlgknxUbNDCDrsj\nm2HmvXB0C1zxLFz2BETa2jNCCLdzTuhaa7tS6gFgIWZL5Qlaaz87ToSRUmaXnaQm0O56U+aww+EN\nsGcZ7P4B1k6CleNM6/+8K+H8AdDmGqjZqORzV1YOO/z0Nix9FeKSYeQX0PrqcEclhAixKjexKCQK\ncmDPcvhtAfy2EDJd93obdYW2A6HdQNMPXxU2Rj64xqxjfnANtB8M178BCXXCHZUQohwCnVgkCf1s\nWpsuit8WwLYFZuINGpKaQdvrzFfzvmCLDneknk4fgSUvw7rPILEBDHgVOg6tGn+EhBAlkoQeLFlH\nTat923zYuQTsORBdA9pcbVrvra+G+NqlnydUTqfBj2+ZewJOO/T6A1z2JMTKbFohIkWgCb1KLM4V\nVon14cI7zVdBjhnLvW2eacFv/hKUFZr3Lmq91z4v9DFpbT45rP4YNs00ibzz7XDZ41CnVeivL4So\nlKSFfq6cTji0ziT3bfPhqOt+cN3zoXkfMzQypRckNw9Ot4fW5kbutnmwZQ6kb4XoROh0K/R5sGL+\nkAghwkK6XCrayT2mz33HIti/EvLMtnkkNjQTmuq3g/rtTcKv0RAS6vvvh7fnQcY+OLHb/KE4sNqc\n88xRM5a+WS/ocrvpI4+pUWFvUQgRHpLQw8npMGum7PvZdI0c2QLHfgNHnme9uFpmqKTFZr4Kcswf\ngvwsz3q1W0HTHma8/PkDzPIGQohqQ/rQw8lihYYdzVfPe02Zw25a8cd3QFaaudmadQTsuWa2q9Nu\nZsDG1ITYZKjVHGq1NFvBhfOmqxCiypCEXlGsNqjb2nwJIUQIyDxwIYSIEJLQhRAiQkhCF0KICCEJ\nXQghIoQkdCGEiBCS0IUQIkJIQhdCiAghCV0IISJEhU79V0qlA3vP8eV1gWNBDKcqkPdcPch7rh7K\n856ba63rlVapQhN6eSilVgeylkEkkfdcPch7rh4q4j1Ll4sQQkQISehCCBEhqlJCHxfuAMJA3nP1\nIO+5egj5e64yfehCCCFKVpVa6EIIIUpQJRK6UupapdQ2pdQOpdTT4Y4n1JRSzZRSS5VSW5RSm5VS\nD4U7poqglLIqpdYppb4OdywVQSmVrJT6Qin1q1Jqq1LqknDHFGpKqUdcP9OblFJTlVKx4Y4pFJRS\nE5RSR5VSm4qV1VZKLVJKbXd9rxXs61b6hK6UsgL/Ba4D2gPDlVLtwxtVyNmBx7TW7YFewB+rwXsG\neAjYGu4gKtBbwAKtdTugCxH+3pVSTYAHge5a646AFRgW3qhC5hPg2rPKngYWa63bAItdz4Oq0id0\noCewQ2u9S2udD3wODA5zTCGltT6stV7renwa84veJLxRhZZSqilwPfBRuGOpCEqpJOAyYDyA1jpf\na50R3qgqhA2IU0rZgHjgUJjjCQmt9TLgxFnFg4GJrscTgSHBvm5VSOhNgP3Fnh8gwpNbcUqpFkA3\nYEV4Iwm5N4EnAWe4A6kgLYF04GNXN9NHSqmEcAcVSlrrg8C/gH3AYSBTa/1teKOqUA201oddj9OA\nBsG+QFVI6NWWUioRmAk8rLU+Fe54QkUpdQNwVGu9JtyxVCAbcCHwnta6G3CGEHwEr0xcfcaDMX/M\nGgMJSqmR4Y0qPLQZXhj0IYZVIaEfBJoVe97UVRbRlFJRmGQ+WWs9K9zxhFgf4Eal1B5Ml1o/pdRn\n4Q0p5A4AB7TWhZ+8vsAk+Eh2NbBba52utS4AZgG9wxxTRTqilGoE4Pp+NNgXqAoJfRXQRinVUikV\njbmJMifMMYWUUkph+la3aq1fD3c8oaa1fkZr3VRr3QLz/7tEax3RLTetdRqwXynV1lV0FbAljCFV\nhH1AL6VUvOtn/Coi/EbwWeYAo1yPRwGzg30BW7BPGGxaa7tS6gFgIeau+ASt9eYwhxVqfYA7gVSl\n1HpX2bNa63lhjEkE35+Aya6Gyi5gdJjjCSmt9Qql1BfAWsxIrnVE6IxRpdRU4AqgrlLqAPAC8Hdg\nulLqHsyqs7cF/boyU1QIISJDVehyEUIIEQBJ6EIIESEkoQshRISQhC6EEBFCEroQQkQISehCCBEh\nJKELIUSEkIQuhBAR4v8B4JFnv0daRM4AAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "stream",
"text": [
"Epoch: 1000\n",
"Loss: tensor(962.6994, dtype=torch.float64, grad_fn=<SumBackward0>)\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n2wAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "stream",
"text": [
"Epoch: 2000\n",
"Loss: tensor(811.3658, dtype=torch.float64, grad_fn=<SumBackward0>)\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAD8CAYAAABn919SAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzt3XeYVNX9x/H32cICi4DAUqQIiEpR\nFAVFsCMGBUvEWBPRWGLsPWriTxJjosbYW4gNeyKagIUoKlgJAkKkSUcB6b0su+zu+f1xZph2Z3Z2\nd8rOzOf1PPvce889994zyn7n7LmnGGstIiKS+fLSXQAREUkMBXQRkSyhgC4ikiUU0EVEsoQCuohI\nllBAFxHJEgroIiJZQgFdRCRLKKCLiGSJglQ+rFWrVrZz586pfKSISMabPn36emttSXX5UhrQO3fu\nzLRp01L5SBGRjGeM+T6efGpyERHJEgroIiJZQgFdRCRLKKCLiGQJBXQRkSyhgC4ikiUU0EVEsoQC\nuohIIu3cCLPfhq2rUv7olA4sEhGpd6yFqgrIL0zM/R7o4rYlPeDq/ybmnnFSDV1EctvkJ+GeVq5m\nnUjr5sHIZpS+eSV3/Xs2ZRWVib2/BwV0Ecku438Df+kWf/6Zr7nt1h/jv2bDYijdHJq2ZBI8PyQi\na6M5r/P2NytYuGZ7/PevJTW5iEh2mfJMzfIbX73WVsV/zeOHQctucO30QNo/fgFlWz2zj/n1AHq0\na1qzctWCaugiUn9VlMMLQ2H51OQ9wxjfjq3ZdRsWBfZfOy9qMAfoUfFdzctVCwroIlJ/rV8A338B\n71wXSFs7D6aMStD9F8Lqb92+v4a+YbH7iaYqrCZfVQkLxsd+znODa1/GGlBAF5H6y98csnYufPW4\n23/mGBh/q+ud4jd9NHz4u8jrd5fC6NPghVNhZDPYFVaLfqJvYN9a2LbaNac8flggbfJTsH1tIF9F\naWC/cje8d1PtP1+CqQ1dROqvPc0huIA94Fqo2u2Og7sa+mvwXY8PvX7yE7D0s8Dx1h+hYZS27An/\nB8s+DxxXVboXnR/cASunw9nPufTdgYC+fub7tJr+Yg0/VPLEXUM3xuQbY2YYY971HXcxxkwxxiwy\nxvzDGNMgecUUkay29DN467LQWje4oBpN2bbI/K8MD71215bQ808dCSum4yk4mAO8cSG8cpbbLyhy\n292lVH3w2z1ZWr1zUfTypUFNmlyuB+YFHd8PPGyt7QZsAi5NZMFEJIeMPg1mvRlS+6V0M5TviH7N\nA13g679Htmn7Ve6G3bsi05dOctttq2OXKahdfGdxB977dhUfjrqdvG/fiH1dGsXV5GKM6QAMBe4F\nbjLGGOBE4AJfltHASODpJJRRRHLF7p3QoLEL0vfvC03bh54PC96VXz/LjlUL8GpEqXjwAArKtkSk\nbylqR/m2MoqnjKZxnMV6bNL3PFP5DQ83XBbnFekRbw39EeA2wP9fsyWw2Vpb4TteAbT3ulBEJKaK\n8sB+uW/wzfoFbrt1ZUjWm1+fEnKcv2E+TWf+3fO2XsEc4O5/z+KUe9/i1Ukz4y7i7YVvMPHE7/kp\nk+K74Ppv4753IlUb0I0xw4C11tooDU/VXn+FMWaaMWbaunXranMLEclGFeVwfxd46fRA2rjr2LBx\nA5/PnO15SfH3H9X5sece1oZpDX/N5QXv1+i6Ll/dETtDpwGB/abt4a71cOPcWpSw9uKpoQ8ETjfG\nLAPewDW1PAo0N8b4m2w6ACu9LrbWjrLW9rXW9i0pKUlAkUUkI3z5qOsq+M8oLw5f+xmUboQfJgfS\nln7KrEd+yjFfeb+S+0P5g3Uu1lGbxtX5Hp4ueR9OfRBa7g/5Ba4HTrP2cOxtgIl8gZsE1QZ0a+0d\n1toO1trOwHnAJ9baC4GJwNm+bCOAsUkrpYjUL+N/42rXsUz5m9vODQsNu0tdf/AlkzwvOz7vf3Uv\nXywr42hs2P8nbrtPn/juecAprovlEZfDtdNCz+U3AGzsHjsJUpeBRb/BvSBdhGtTfy4xRRKRem/K\nM652HU3pZijzmIzqb8fBvW3hvo6JK0vDZnB8Nc0hNXHnj9D7nPjzmzy4IEbPF39f+cry6HkSpEYB\n3Vo7yVo7zLe/xFp7hLW2m7X2Z9basuQUUUQyzqO9IfilpL93yqr4X0TGrUkbMPne535awykCug+D\nBsVQ6Ov/EquZxP8lUlhNX5l83xCd+hbQRUTiEjagp2LUia49PSlMIFjmFcBBvpbgwsbQ66c1u1Ve\nWE/u/BjjJfcb5LYFDWPfc08NfXfNylILCugiUjOTnwzsh9dg1y+ECXdHXFKweob3vZq0ie+ZN8zy\nTu9xOpw1Cip9DQQn/BZa93D7pz8eugrR5ROrf44/f3Nfk9CAa6Pn9U8hUG1AVw1dROqrD+4M7IfX\nOifeC18+Ev+9GsaotQcHysatvPOc+zLsc2igL3tBEQy8Hs76Oxw0PHQumPaHBfZPe8z7fnm+gN72\nYNeW3vP0yDyHnO/bMYFnxqKALiIZoTLs1VlNVv0BAkExrJbboR8c4OtpcsoDUNjI7Xc8Egb/IXo5\n8hu4Wnbvc0KDebjuQ73T/c8E15bu5Ywn4berXddECPxFEE0Km1w026KI1N6fO8CA6+DoG6FsGxW7\ntscXVIqauZemeb6XmY1awDbfl8G5r8K+A+C9mwPnjHHNLo1bukD70e/BBnUDDK6hh2t1IBwW1hfe\nq5nkjpVQ1KT6suflQ14jaNHVlbXLsbHzdzkOLhkPzTpUf+86UkAXkbr56jGY+Srs3BB/QGncwgV0\nf+8U/5S4nQZAj2Fu3x/s/QtPNO8UuP6GWbB9TeC4wjcJV75HQL/m68g0f40/WLRgftJIKNor8AUT\nzF/WWJqUuJ8UUJOLiMTn7yfC1Ge9z+3cULN7NW7ptv5mkaoK14wxImgUpz/YW48BOc3ah7aJ+xVW\n84LSLy8fDo6zr/nRN0K/y9x+r7PiuyZNVEMXkfisnB7fKMt4tOsNK6dB56PdEnCVFZG15h7D4Ns3\noN0h1d9vyJ/dl8SBp8Zfhp/+zbWHLxjvPc1uuDtWQIFHzb4eUQ1dRCKtX+T6jS/3NVckeh6Sjv3h\nqv/CCb4eM1UeLwx7nAa/WwttelV/vyat4dQHQrspeuke1ESSlwcFDaDnGXDIudU/o2ivwIvQeqp+\nl05EUmfWGGi+L3TsB0t8fba/GQ0dj3BNIolUVeF6h1gLvc+LfGnpV12XwJo652Ug+ZNkpYsCuog4\nb/lmOLxqCvzHN6zdv4JQRYJn9ti9022NgbP+lth7x5KX3Y0S2f3pRMSxNv5+0GOvDjSBbP4Bxlwa\nCMCJ0vnoxN5PAAV0kdww5Rm4pxVsj2ORmcYtAvsrpsLsMez6phbraN6yKLA/6O7AqNAbZlc/GEdq\nRQFdJBfMeNVtt4WN5LQ2crFkj/lVGn5yV82f2aQE7toAQ+6Do64JNNsU7VXze0lcFNBFcoF/cI4J\n+5Wf9w789UBY+nkgrchryWUPTdq4ybDCjXgXrvb1jskvgP6/DvQmAQX0JFJAF8kFewbnhM1vsnGJ\n2wavKhSrZ0nwupnFreG42+DQC0Pz7NUWSg6MvPb0J1wzTF6UuculzhTQRXKBf/mz8Bn/in2zGG4P\nanb54qHo92m6T2RaeECP1he8oEHKhsDnKgV0ES87N0Ys0pDR/E0u4T1d/N0Sy+PsxRJce/d3AWwQ\ntmJPCtbOFG8K6CJeHugCD/VMdykSZ09AL3NB/S/7u4FE79/i0hd/HN99gifIKiwO3foVqxaeLhpY\nJBJNuccix5nK34Y+/UWYdB/sWBsYSBSvkh5w7K3uC+HzBwM18+A5WEZm0V81GUg1dJHJT8KaOd7n\nEj2HiZey7TDnX4m7X+Vu+OZltzDzri3uM/g/x+y34Psva3ffvpe4F5ptD3LH/sWRoy0EISmngC65\nrXynW1Jt9Gne5/9XiwE1NTXuWnjzYlg7LzH3m/wEjLsG/rA33NfJ1coTsVqOf4pcf3t7oUcNXdJK\nAV1yy7QXYGRz2LDYHW9Z4bbBL/KCg9+P3yS/TP5AHv4ycfHEQDmDff8V/Puq6H897Fgfdp+PI5eK\ni+aUv0Q/V7rJbf3t6J36u211iyRLyiigS26Z8gxgYfP37nirL6AHD3cv2xbYn/qcm0b22cGR91o9\nG5Z+Vvcy7d7htnlhr7RePhMe91jEYfRpboUgfw8VgC0rYcwvYe13kWtpFhbHnFzLBo8M7XNhZIZz\nX4Xe58IxvheoXY5xE3gdfrE79j+vZbeoz5DUUECX3FLuC56VFS4g+oO3f2V2CJ2Iyv8ycYXHMmbP\nDAxtqlk+FZ49yXuxhMWfwJ87wa6t0cvkNSd4sJ0b3dbfZu2vMQM8/xPXPv7UkbBzU+h1hY2IGFAU\nxNyyADofA/v/JLQ93L+YQ49hcNYo2Cso8LfuHvrFceWXcOmE2OWXpFMvF8kt/gC+fQ3c2xbaHOw7\nERScotVmrYX3bnKLA/snmvKnGwPv3QirZ8GqmS5Pk9aBPBP/5NbQXDs30FTh52+TXjMHWvfynuJ1\n4Ufw6nC4aBw0aOJedpZudEuxAWxZHsi7fXXk9f6/AqK5+N3ItOtmhK7bGYv/RamklQK6ZJ81c+DH\nmd7NB/7a8OYffHlnBc5VVcL0F4KCfJidG2Da85HpuzZDo71drxKAV38GZVvhZ6Oh15kuLc83etJr\noQh/+/a/fuV+Rm4JbR+vrIDvfAF34YcuoIOroVdWwKf3RZYzSNWsN2v3p3jTdu5HMoaaXCT7PD0A\nxl7l/ULR36yxI2waWWPg61FuZffnT/a+77ZV3ukbl7qtf/BOma9Z5c0R8M4NLjj7ly7z6m3iv87v\n3Zvg980Dx2VbXW0cXA+WPeVZ7VYW+izsRWZYQM/z9aefflCcMyZeMx2unhpfXqlXFNAlez1+mGsC\n8RIe0HeXul4lsWxZ6Z2++BO39VqdfvoLrtnC/8IznqXcpj0Xerxrc2gbv3/A07Tn4dWzI6/3t7WH\nOXz4zTD0r9U/v1U3KDmg+nxS7yigS3b74LfeAW772tDjTUth4Qex7zXuWu/0T+6BFdNg/QLv8xW7\nAk0uP84MDCJa+Q18HkeA3bIS8oPmUPF/nh8me+ePNsLVGOh3Gfx2tWsOkqyjNnTJbks/hSf6umaI\n62YG0nesjX5NNLGueXZQ9HOrZ0OFr4vhxD+6bZuD4O8nxPfc0cNct0G/itLoeeNR2Mi17b9Zt9tI\n/aOALtnP36b82KGBNP/gm5bdoNWBMP+95D3/Hx4vZ58eWLN7rPwGGreMaB8XCaYmF8lN5duxxa2Z\nO3wiH3e6JvH3P+oaOPne6OfjHbnZoZ/bblgY/0pCXtr2rv21kjEU0CXzrF8Ek59y+2Xb4Yl+bjTn\nJ3+s0Xwoi7cXcupjn3PVO3H2ta6JwfckZmX7lvsH9jctrT7/AI92/p+Nhkver3tZpN5TQJfM88Ip\n8MEdrk/52nmBl5Gf/QXmxx+4ivZqyePn92HsDTHavz083Df23OGb8vbmzrFzGDNrc43uG8LkU/mr\nL/mxa2gvlovLb41+ze/WuS+ScL3O1DqeOUIBXTKPv8vh7tLI1XI+/kPct+nYqSunHbIP3dt6NGXc\nFqU2fMWn3Dis754mjKojrojI8s/iC3nv21XcOTEQ0F+uGhKRb26Hc6KWbViLsfR6ajmXvfFdSPov\nT+7nfcEpD7gl3ozRnCo5TC9FJQP5RlGW74hcIzOKpWeOo8u/Tw9N3Ktt9Asat4Bf/Mv1Y88rdH8R\nQGCmwSs/ByBv0UduQNLenWHTMgB+dfO9XGEtG3eUs/rdESzP68CyxsOomvYheQQGEf1naRU9fb0Z\nX6oYzEUFbi6UwU3eom3jBlx45L4c1qQJTAoU69henUOOuXyiC+L79AlNK90Ej6rdPNdUG9CNMQ2B\nz4AiX/4x1tq7jTFdgDeAlsB04BfW2vh+u0QSoXwHVET/J7e6YB/aVvwIQJfeR8PCs2DO24EMwUul\nDX8ucgWf/U50PxAI6OGLORjfH7lhU8gaY2jZpAjOe4y2QD+AQyfAl4/CvHEA/PrUfjBhDABn/PZ1\nuN8t2DzhlpMCN9q8PDSAt+jq68Jo3Lww7T1mY2zY1P1IzomnyaUMONFaewhwKDDEGNMfuB942Frb\nDdgE1HA9K5E62vYjTPpT1NNtmjcJHOTlQ+ewroKNgobXH3w23P5D9c8MHrEJgTlX4pkTvENfOPOp\nwOOLAxN8NWtU6H1N847w01Fu/6DhkF/oZj486297/kqotcH3uC8yyRrV1tCttRbwDz0r9P1Y4ETg\nAl/6aGAk8HTiiygSxSvDY5424VPGFoStrNMqbHh7w2Yu7VCPfuOXjIeFEyLnGic8oEefpjaiDIUe\nXwJeXRMPOdf91NQF1YwcGnhdze8p9VpcbejGmHxcs0o34ElgMbDZWuufmGIF0D4pJRSprRZdYP38\nwLG/p0fv89xMjF2OjbzmmiiTUu07wP2E80+K6A/OfX8Zu0z5Qb9yhY3dl0jv89zxDbMTuz7nAVEm\nGZOsFVdAt9ZWAocaY5oD/wK6x/sAY8wVwBUAnTp1qk0ZRZzJT8KST10gDF6EIpphD8ND/wkcH3gq\nHH2T66sdvEJRnfgiusmHO1fVbDm2gqLQZp7mHRNUJslVNeq2aK3dDEwEjgKaG2P8XwgdAM+p6Ky1\no6y1fa21fUtKSryyiMTngzvdBFpeC1BcOAaadghNa7pP6HF+AZx0dwKDObDvQNhvEAy5z3Wh9Fqc\nIlyX49w2npkXRWqg2n99xpgSX80cY0wjYDAwDxfY/aMeRgBjk1VIyWHlO+B//whd8MFrmtqSA92L\nz1Rr0Bh+8XbNppv1v1j1mhtdpA7iaXJpB4z2taPnAf+01r5rjJkLvGGM+SMwA9Drckm8D+6E6S+6\nhRxiyW8QmHP8iF8FXiL2PAOa1bOmjEF3uRWTvNrkReognl4u3wJ9PNKXAEcko1Aie2z1rRL0v9dj\n5ysoCgT0g38G7Q93++e8lLyy1Va7Q+Aaj0WnRepIQ/+lfjNx/hNt2DwQ0AsaxM4rkqU09F/qp50b\n3Wo+pZviy29MoA09uL1dJIcooEv9NOEumPFK9PPNO7l2aIDrZrhtTdbtFMlCanKR+sm/olA0I94N\n7Lfo6rZHXum2e3dJTplE6jnV0KV+Kd3sBg6tmx87315t3TwkG4Omua3tEHmRLKGALum3Zo4L5J0H\nwv37xndNQZGbUEtE9lBAl/T68C746jG3P3JLessikuEU0CW9/MEcoMpjBGiwXmdBv8ugfHvsfCI5\nSgFd6o9133mn7zsQOh4J/X8NTVqntkwiGUQBXdJncdhw/qejDIUvbOQm1RKRmNRtUdJj3QJ4+cz4\n8u4uTW5ZRLKEArqkx67NNci7NXnlEMkiCuhSf3Uf5rbb16S3HCIZQgFd6q+B17tt+MLMIuJJL0Ul\nPeKZQKuwEZzxFHTol/zyiGQBBXRJj7Jt0c/lFULVbhf0+1yYujKJZDg1uUh6vDp8z25l+D/Dn/zJ\nLbbsn3RLROKigC6ptzxstZ7GLUOPDzoLfrcGipqkrkwiWUABXVLvnetDDvOLW4WeL2yUwsKIZA8F\ndEkuawMvQLf+CDNewYYv2tykJPS4QAFdpDb0UlSS688doGU3N3f5B3fAwg8pbdiaxsF5GoQ1reSp\nniFSGwroklzl22HVTHji8D1JjXetDc3TqAV0PQGOuhq6HJfiAopkDwV0ST9j4KJ/p7sUIhlPf9tK\n+nU6Kt0lEMkKCuiSPLEWrNhvUGD/0AuSXxaRHKAmF0meifdGP7fqf3DBm66vuTGpK5NIFlNAl8Tb\nuRE2LYP546PnKd0IB5ycsiKJ5AIFdEmsygp4oIvbb90rej5blZryiOQQtaFLYq1fENhX0BZJKQV0\nSazKssD+unl7dhd1/Xlovp5xLj8nInFTk4skVkW5Z/J+7dvBEt/Bb1dr0QqRJFANXRKrMjKgLzz8\nLsyxtwQSChtBXn4KCyWSG1RDl8QKbnLx6TbsZnVNFEkB1dAlsVb9L+SwsqARRsFcJCVUQ5e6+d8b\n8K9fuf38BhFNLvm/WZqGQonkJtXQpW7euSGwHxbMN3YeqsUqRFJINXSpm4rSqKdaNGsamnD9t2BU\nhxBJlmp/u4wxHY0xE40xc40xc4wx1/vSWxhjJhhjFvq2eye/uJJRChqGHu+9LzTv6J1XROosnupS\nBXCztbYn0B+42hjTE7gd+Nhauz/wse9YJCA8oItIUlUb0K21q6y13/j2twHzgPbAGcBoX7bRgIb+\nSaiivdJdApGcUqM2dGNMZ6APMAVoY61d5Tu1GmiT0JJJ/VdZ4Z1e0gO6HAMDr0tteURyXNwB3RjT\nBHgLuMFauzW4b7G11hpjbJTrrgCuAOjUqVPdSiv1y6Q/eacPfRA6H53asohIfN0WjTGFuGD+qrX2\nbV/yGmNMO9/5dsBar2uttaOstX2ttX1LSkoSUWapL9bMiXJCA4lE0iGeXi4GeA6YZ619KOjUOGCE\nb38EMDbxxZN6rSpKk0vDpt7pIpJU8TS5DAR+Acwyxsz0pd0J3Af80xhzKfA9cE5yiij1VnhAv2me\nG/rf9uD0lEckx1Ub0K21XxD9b+hBUdIlm5XvgA2LI1+KNt3H/YhIWmikqNTcP0fAoglUtNg/8A9o\n6EOxrhCRFNA4bKm5RRMAKNi4EIDKRq2g36XpLJGIoIAuNVUROd95frcT01AQEQmngC41M/62kMMd\nB54Fpz+epsKISDAFdIlt2Rfw7ZtQvhPeuR6mvxhyurh9LyjUnC0i9YFeikp06xbAi0Pd/tCHIoI5\nAAVFKS2SiESnGrp4+2EKPNkvcDx/vHe+fAV0kfpCAV28rZoZeuzr2RKhoEHyyyIicVFAF2+lm6Oe\n2l4QtJaJaugi9YYCuniLsbTc9sv/C/uf7A5UQxepNxTQxZtHf3O/tiWtA4tXVFWmqEAiUh0FdPG2\na2v0c3l5gYBeFiOfiKSUArp4ixao+13utg2buW35ztSUR0SqpX7oEumLR2DeuD2HK4q60aFskTsY\n+qDbHn0T7FgPh1+c+vKJiCcFdAlVVQkf3R2S9NT249i7/yhuPSpo4YpGzeHMp1JcOBGJRQFdQlXu\njkgqyy/mkhMOgibqoihSn6kNXUJVlkckHdW9E60UzEXqPQX0XFdZAd+8FOh+6FFDP7nPfikulIjU\nhgJ6rvvvUzDuWpjxsjuuCgT0tbY5AE279E1HyUSkhhTQc92OdW5busltg5pc7sm/iu3XL4CGTT0u\nFJH6RgE951nf1rcO+M4Ne878pE83muzdJvVFEpFaUUDPddYX0I2B5V/DqOP3nBp8ULv0lElEakUB\nXZyPRsLM10KSipopoItkEgV0cWwVTH9hz2HloN9Diy5pLJCI1JQCeq7zN7mEyd+nd4oLIiJ1pYCe\n66Y87Z1u9E9DJNPotzYXrZsPiz52+7bKO0/Z9tSVR0QSQnO55KInj3DbHqdFz1MVOWJUROo31dBz\n2bx3vNMHXAfdYwR7EamXVEOXSIP/4Pqli0hGUQ1dACg7+AIoLoF2hyqYi2Qo1dBzxerZ8M71cNHY\niFNjDx/NGaedmYZCiUgiqYaeKz78HaycBsunhCSPyx/MkCFD01QoEUkkBfRc4e+eGNScMrOqK0Vn\nPUFRYWGaCiUiiaSAnjN8I0JfGb4npXGjRpzcU7MpimQLtaHngif6wfoFbj9oIFHHkr0xegEqkjVU\nQ88WW1dB2bbI9IqyQDAP06hhoyQXSkRSqdqAbox53hiz1hgzOyithTFmgjFmoW+7d3KLKdV6qDs8\nc0xk+qZl0a/Jb5C04ohI6sVTQ38RGBKWdjvwsbV2f+Bj37Gk26alkWk7N0bP31jfwyLZpNqAbq39\nDAiPCmcAo337owF1Yq5vKsrgm5ejz6YIMPie1JVHRJKuti9F21hrV/n2VwPqKlHfPHcyrJoZ/fzx\nd0LjFqkrj4gkXZ1filprLYGVhiMYY64wxkwzxkxbt25dXR8n1RnZDLb+GDuYA7Q9ODXlEZGUqW1A\nX2OMaQfg266NltFaO8pa29da27ekpKSWj5MaeahH7PM3zoXup6amLCKSMrUN6OOAEb79EUDkBCGS\nWOvmu9r3kk8jz0VZRs6TyYdm7RNXLhGpN+Lptvg6MBk40BizwhhzKXAfMNgYsxA4yXcsybTsC7ed\n83bkuarK+O+Tp7FkItmq2t9ua+35UU4NSnBZJJa8fLe1Va4r4mN94MI3oeMRUFVRg/sooItkK40U\nzRT+RZurqmDFVNi1GT6935dWzXJxQx+Cyz5x+wroIllLv92Zwh/QbRUU+obs7y5121g19MatoN+l\nsG2NO/bX9EUk66iGnimCA3qBP6DvdNvKGAH93JcD14Fq6CJZTL/dmcL4ataLP4GGzdx++U7YsSF2\nDX3fAW5b1MRte5+TvDKKSFopoGcKfw19x1r4+m9uf/18+EtXOP8f1V9ftBfctjTwZSAiWUdNLvWR\ntbB7V2hajHnLK797PzKx20lw8XuhaY1bqA1dJIspoKfa9nWw7MvYeb7+O9zbxg3h94vR1zx/xujI\nxEH/B52PrmUhRSQTKaCn2nMnwYvVDLufPcZtN30fSKuua2K4or1qll9EMp4Ceqr5F5yIOVzf37wS\nlKcmg4cg0BNGRHKGAnq6BK3tGcHfXu4P+p89CBPurv6el38S2NfUuCI5R71cdmyAgqJAt75YynfA\nl4/CMbdAQR2Xb6uq8H5B+eWj8MNk34F1Qf2TOBeiaH84jNxSt3KJSMZSDf0vXeGZgfHl/fyvbrj9\nzFfq/tzKKG3iE/4vsG+rYOqzdX+WiOQEBXSIvZBysPIdbltRXn3e9QthySS3v3BC5GjO8DbxbWtg\n7NWhae9cD+/fEl/ZRCTn5U5AtxZ2rK/99XPHweKJbt/E8Z/tib7w0hlu/vJXz4bPHgg9v3sn/PBf\nV1Mv2w5/PQBmhNX8Ny6pfXlFJOfkThv6tOfhvZvgqinQurtLizYHyu5SeHoADP0r7HeiS/vnLwLn\nYwzyiVDqW1/70/vhv0ELNr93C8x/D1rsBxsXx38/Lyf9Hopb1e0eIpLxcqeGvvBDt/30Plj0kdsv\n3x44X7o5sL9mrqsdB7dnV6dsphgKAAAK6ElEQVR0s1tR6OM/hKaXbQva3xrYXznNbesazAGOvgH6\n/Lzu9xGRjJYdNfTVsyG/AZQcEHlu5utuull/m/Wcf7mfkVtCA/rkJ+DE37n9Lcvdtti3Bmp4n3Gv\nJpdRx7vt53+Ftd8F0oNHewarab9yL6c+GJh8S0RyXnbU0J8ZCE/28z737yvhzRHeQ+fLggJ6cL/w\nHevctrCx2/pfhvoZ44L84omBYL9paeD8/KA5VCb92btcsaa8Dc7W+3z4uceycwCHnA9tesV1HxHJ\nfpkT0HeXwtu/gm2ra3e9V424PEpAD24aAbc6UAgDc8fCy2cGuhW2PbiG5YlvKH/+kZcHvliCXfll\nfH3nRSRnZE5An/cufPsGvHsjPHoILPC1ib97k3f+5VNDe4141tCD2re/eBi+fTM0/bt34S/7w/oF\nodcZAzs3uP3Vs9y2SduafZ6KsurztO/rBgsVNnTH/sDe+zxoe1DNniciWS9z2tALitx24Yeutv3R\nSDjgZJj2XCCPtTDpPuh1ppsEK9gPX0Xe099W7jf+VjhoOOwKqqHvWAv/uTM036wxgaaW+ePhu/cD\nqwfFy0afPXGPSye4bb7vsxe3giu/gMLimj1LRHJC5gR0/zqa/qaTPI8/Lr571/Vi+fS+6u/3/q3w\n9ajQtNJN8MhB0Omo0PR180KPl30e2N+xFt44v/rnVafVAYG/BAoaQsWuwGfM900z0PlYLVAhIlFl\nTkAnrO93+AIQAP+oQde98GDut3Vl9J4pydTpqEBAv3VxaJt/q25w0djILxoRkSCZE9ArPdqcYw3B\nL2oGZbWcqCq8KaaWNtomtDDbo2e4aBws/dR1dWxQ7LohNmnj/bKz6/EJKZOIZK/MeSlaGRa8baWr\nTUdT22AOtQ7o9+6+IOR47IC3WHD6O4GEAddCf998LYecD12Pc80r4JqUjrgcep5eq2eLiGROQA+v\nje/eBVtWpKcsHtY16sLJx58QknbJT/pzwGHHBhJO/iMcPNzt9zjNbbsNctvuw1JQShHJZpkT0MOb\nXLb9GL2tu0Fyll/7tMBjVOaRvwagZK/G9Bs0HAbeEJnnkv/AYN+c5u0PhztWQvehgeORW6D9YUkp\ns4jkjswJ6PPHR6aNv9U7b6v9Y9/ryCvjfuy4ng/v2T/udx5l6OGrWTcodgtWDP49XDEJrpsRyLPv\nUTDwusCxBgSJSBJkRkDfvhbmvx+ZvitKO3n48mvXzYAL33L7jfaGk//Irj6/jOvRpx8VNgK0Y//Q\n4336uLbx4c+GprXoGtf9RUQSJTMC+s6NNcvfspvbNu3gRlW26Oraqo+6hgVDXufmt+Zy/tRue7Jv\nadSRHb0vjrzP8OegSUloWviycQUNXdv43vvWrIwiIgmWGd0Wg4fox6PrCXDoBdC2NxiDtZavFm/g\nkaVDmTpxI8UNtvDrXh1gPtC6J82umgzLvoRvXwy9z8FnR7bTh8+06LUuqIhIGmRIQPcNxR9yH/zn\n9jgusNDuEAC+WrSehz9awNRlm2jXrCF3n9aTsw/vwF6lK11A36uduyTaohX+Yfd+NVncQkQkhTIj\noL9yltsGTxXbpC1sjzLzYoNilq3fwR/fm8tH89bStmlD7jmjF+f060hRga9G3bCza1Lxr0hU3Dr0\nHqc+6Lb5hW5rfNf1PBOWfgYXvx85K6OISBplRkBv1MIt5da4ZSDtl+Ph74MCS7z5lA19jEe+K+G5\nLz6jMN9w+ynduXhAZxoWejSNHHx2YL9VN7jiUzenCtb1WoHApGAlvmXr+v4SDjkvcF5EpJ7IjIB+\n8XvwxUO+YOvToiv8Zil8/hB8/Hs4YAiLWxzHxRM7snzjEs46rD23D+lO66YN43/OPodGphUUwXmv\nQQffAhrGKJiLSL2UGQG9Tc9At8C99oEB1wTOHX0jOw6+iPs/Xc1Lk75n35aGf1zRnyO7tvS+V234\nBwGJiNRjmRHQg90cOpXt7B+3cs1rs/h+404uGdiZ237SnUYN1PNERHJPnQK6MWYI8CiQDzxrrY1j\nIvLEsNby0uTvufe9ebQobsDrl/enfyJr5SIiGabWAd0Ykw88CQwGVgBTjTHjrLVzE1W4aLbu2s1v\nxnzL+NmrObF7ax782SG0KG6Q7MeKiNRrdamhHwEsstYuATDGvAGcASQ1oC9Zt53LXprGDxt2cuep\n3bns6K7k5alvuIhIXQJ6eyB44vAVwJHhmYwxVwBXAHTq1KkOj4PPFqzjmte+oSA/j9cu788RXVpU\nf5GISI5I+lwu1tpR1tq+1tq+JSUl1V/gfQ+e/2IpF7/wNfs0b8TYqwcqmIuIhKlLDX0l0DHouIMv\nLaGstdz5r1m8/vVyTu7ZhofPPZTioszrnCMikmx1iYxTgf2NMV1wgfw84ILYl9ScMYb9Sppw7Ynd\nuPGkA9ReLiISRa0DurW2whhzDfABrtvi89baOQkrWZDLjtHc4iIi1alT24W19n3AY+UJERFJtcxY\n4EJERKqlgC4ikiUU0EVEsoQCuohIllBAFxHJEgroIiJZQgFdRCRLGGtt6h5mzDrg+1pe3gpYn8Di\nZAJ95tygz5wb6vKZ97XWVjsZVkoDel0YY6ZZa/umuxyppM+cG/SZc0MqPrOaXEREsoQCuohIlsik\ngD4q3QVIA33m3KDPnBuS/pkzpg1dRERiy6QauoiIxJARAd0YM8QYM98Ys8gYc3u6y5NsxpiOxpiJ\nxpi5xpg5xpjr012mVDDG5BtjZhhj3k13WVLBGNPcGDPGGPOdMWaeMeaodJcp2YwxN/r+Tc82xrxu\njGmY7jIlgzHmeWPMWmPM7KC0FsaYCcaYhb7t3ol+br0P6MaYfOBJ4BSgJ3C+MaZnekuVdBXAzdba\nnkB/4Ooc+MwA1wPz0l2IFHoU+I+1tjtwCFn+2Y0x7YHrgL7W2oNwC+Ocl95SJc2LwJCwtNuBj621\n+wMf+44Tqt4HdOAIYJG1dom1thx4AzgjzWVKKmvtKmvtN779bbhf9PbpLVVyGWM6AEOBZ9NdllQw\nxjQDjgWeA7DWlltrN6e3VClRADQyxhQAjYEf01yepLDWfgZsDEs+Axjt2x8NnJno52ZCQG8PLA86\nXkGWB7dgxpjOQB9gSnpLknSPALcBVekuSIp0AdYBL/iamZ41xhSnu1DJZK1dCTwI/ACsArZYaz9M\nb6lSqo21dpVvfzXQJtEPyISAnrOMMU2At4AbrLVb012eZDHGDAPWWmunp7ssKVQAHAY8ba3tA+wg\nCX+C1ye+NuMzcF9m+wDFxpifp7dU6WFd98KEdzHMhIC+EugYdNzBl5bVjDGFuGD+qrX27XSXJ8kG\nAqcbY5bhmtRONMa8kt4iJd0KYIW11v+X1xhcgM9mJwFLrbXrrLW7gbeBAWkuUyqtMca0A/Bt1yb6\nAZkQ0KcC+xtjuhhjGuBeooxLc5mSyhhjcG2r86y1D6W7PMlmrb3DWtvBWtsZ9//3E2ttVtfcrLWr\ngeXGmAN9SYOAuWksUir8APQ3xjT2/RsfRJa/CA4zDhjh2x8BjE30AwoSfcNEs9ZWGGOuAT7AvRV/\n3lo7J83FSraBwC+AWcaYmb60O62176exTJJ41wKv+ioqS4BL0lyepLLWTjHGjAG+wfXkmkGWjhg1\nxrwOHA+0MsasAO4G7gP+aYy5FDfr7DkJf65GioqIZIdMaHIREZE4KKCLiGQJBXQRkSyhgC4ikiUU\n0EVEsoQCuohIllBAFxHJEgroIiJZ4v8BLFud98xGRaUAAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "stream",
"text": [
"Epoch: 3000\n",
"Loss: tensor(720.1560, dtype=torch.float64, grad_fn=<SumBackward0>)\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n0KmrAAAAAElFTkSuQmCC\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "stream",
"text": [
"Epoch: 4000\n",
"Loss: tensor(663.7037, dtype=torch.float64, grad_fn=<SumBackward0>)\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "stream",
"text": [
"Epoch: 5000\n",
"Loss: tensor(625.9262, dtype=torch.float64, grad_fn=<SumBackward0>)\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\nRU5ErkJggg==\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "stream",
"text": [
"Epoch: 6000\n",
"Loss: tensor(599.5695, dtype=torch.float64, grad_fn=<SumBackward0>)\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "stream",
"text": [
"Epoch: 7000\n",
"Loss: tensor(580.8741, dtype=torch.float64, grad_fn=<SumBackward0>)\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\ndBGRIvH/khoE0Gwif6QAAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "stream",
"text": [
"Epoch: 8000\n",
"Loss: tensor(567.4760, dtype=torch.float64, grad_fn=<SumBackward0>)\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\nQmCC\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "stream",
"text": [
"Epoch: 9000\n",
"Loss: tensor(557.7858, dtype=torch.float64, grad_fn=<SumBackward0>)\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\nbMkAAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "stream",
"text": [
"Epoch: 10000\n",
"Loss: tensor(550.7140, dtype=torch.float64, grad_fn=<SumBackward0>)\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "stream",
"text": [
"tensor(4.5977, dtype=torch.float64, requires_grad=True)\n",
"tensor(2.4771, dtype=torch.float64, requires_grad=True)\n",
"tensor(2.8006, dtype=torch.float64, requires_grad=True)\n",
"tensor(1.6128, dtype=torch.float64, requires_grad=True)\n",
"tensor(0.8402, dtype=torch.float64, requires_grad=True)\n",
"tensor(-5.1978, dtype=torch.float64, requires_grad=True)\n",
"tensor(0.7993, dtype=torch.float64, requires_grad=True)\n",
"tensor(0.6075, dtype=torch.float64, requires_grad=True)\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "hUpls0GpSv3L",
"colab_type": "code",
"outputId": "b1977e18-38b4-426a-ee64-bd15882c204c",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 286
}
},
"source": [
"losses = np.array(losses)\n",
"plt.plot(losses)"
],
"execution_count": 0,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7f62f3286710>]"
]
},
"metadata": {
"tags": []
},
"execution_count": 15
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "ljZ0fP4bz7xS",
"colab_type": "code",
"outputId": "3572ee10-0bfb-416d-e4fa-23cde8928d4d",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 1000
}
},
"source": [
"import torch\n",
"from torch import nn\n",
"from torchviz import make_dot, make_dot_from_trace\n",
"\n",
"x = np.array([_/100 for _ in range(1000)])\n",
"y = 4.5*x + 3 + 2.8 * np.sin( 0.5 * pi * x + pi/3) - 5.2 * np.sin(0.25 * pi * x + pi/5) + np.random.normal(size=1000)\n",
"\n",
"\n",
"plt.plot(x,y)\n",
"x = Variable(torch.tensor(x,dtype=torch.double))\n",
"y= Variable(torch.tensor(y,dtype=torch.double))\n",
"\n",
"params = [0]*8\n",
"params[0] = m = Variable(torch.tensor(1.2,dtype=torch.double),requires_grad=True)\n",
"params[1] = b = Variable(torch.tensor(0,dtype=torch.double),requires_grad=True)\n",
"params[2] = A1 = Variable(torch.tensor(2.7,dtype=torch.double),requires_grad=True)\n",
"params[3] = w1 = Variable(torch.tensor(0.45*pi,dtype=torch.double),requires_grad=True)\n",
"params[4] = c1 = Variable(torch.tensor(1.1*pi/3,dtype=torch.double),requires_grad=True)\n",
"params[5] = A2 = Variable(torch.tensor(-5.0,dtype=torch.double),requires_grad=True)\n",
"params[6] = w2 = Variable(torch.tensor(0.23*pi,dtype=torch.double),requires_grad=True)\n",
"params[7] = c2 = Variable(torch.tensor(0.9*pi/5,dtype=torch.double),requires_grad=True)\n",
"\n",
"# Compute the function\n",
"Y = params[0]*x+params[1]+params[2]*torch.sin(params[3]*x+params[4])+params[5]*torch.sin(params[6]*x+params[7])\n",
"\n",
"# Compute the loss\n",
"loss = ((Y-y)*(Y-y))/2\n",
"loss = loss.sum()\n",
"\n",
"make_dot(loss)"
],
"execution_count": 0,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"<graphviz.dot.Digraph at 0x7f62ef45f438>"
],
"image/svg+xml": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n -->\n<!-- Title: %3 Pages: 1 -->\n<svg width=\"550pt\" height=\"669pt\"\n viewBox=\"0.00 0.00 549.50 669.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 665)\">\n<title>%3</title>\n<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-665 545.5,-665 545.5,4 -4,4\"/>\n<!-- 140062898007120 -->\n<g id=\"node1\" class=\"node\">\n<title>140062898007120</title>\n<polygon fill=\"#caff70\" stroke=\"#000000\" points=\"338,-21 245,-21 245,0 338,0 338,-21\"/>\n<text text-anchor=\"middle\" x=\"291.5\" y=\"-7.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">SumBackward0</text>\n</g>\n<!-- 140062898007624 -->\n<g id=\"node2\" class=\"node\">\n<title>140062898007624</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"336,-78 247,-78 247,-57 336,-57 336,-78\"/>\n<text text-anchor=\"middle\" x=\"291.5\" y=\"-64.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">DivBackward0</text>\n</g>\n<!-- 140062898007624&#45;&gt;140062898007120 -->\n<g id=\"edge1\" class=\"edge\">\n<title>140062898007624&#45;&gt;140062898007120</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M291.5,-56.7787C291.5,-49.6134 291.5,-39.9517 291.5,-31.3097\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"295.0001,-31.1732 291.5,-21.1732 288.0001,-31.1732 295.0001,-31.1732\"/>\n</g>\n<!-- 140062898007792 -->\n<g id=\"node3\" class=\"node\">\n<title>140062898007792</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"337,-135 246,-135 246,-114 337,-114 337,-135\"/>\n<text text-anchor=\"middle\" x=\"291.5\" y=\"-121.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">MulBackward0</text>\n</g>\n<!-- 140062898007792&#45;&gt;140062898007624 -->\n<g id=\"edge2\" class=\"edge\">\n<title>140062898007792&#45;&gt;140062898007624</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M291.5,-113.7787C291.5,-106.6134 291.5,-96.9517 291.5,-88.3097\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"295.0001,-88.1732 291.5,-78.1732 288.0001,-88.1732 295.0001,-88.1732\"/>\n</g>\n<!-- 140062898007904 -->\n<g id=\"node4\" class=\"node\">\n<title>140062898007904</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"282.5,-192 192.5,-192 192.5,-171 282.5,-171 282.5,-192\"/>\n<text text-anchor=\"middle\" x=\"237.5\" y=\"-178.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">SubBackward0</text>\n</g>\n<!-- 140062898007904&#45;&gt;140062898007792 -->\n<g id=\"edge3\" class=\"edge\">\n<title>140062898007904&#45;&gt;140062898007792</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M247.657,-170.7787C255.1994,-162.8173 265.6616,-151.7739 274.4742,-142.4717\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"277.0519,-144.8399 281.3886,-135.1732 271.9702,-140.0256 277.0519,-144.8399\"/>\n</g>\n<!-- 140062898040904 -->\n<g id=\"node5\" class=\"node\">\n<title>140062898040904</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"337.5,-249 245.5,-249 245.5,-228 337.5,-228 337.5,-249\"/>\n<text text-anchor=\"middle\" x=\"291.5\" y=\"-235.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">AddBackward0</text>\n</g>\n<!-- 140062898040904&#45;&gt;140062898007904 -->\n<g id=\"edge4\" class=\"edge\">\n<title>140062898040904&#45;&gt;140062898007904</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M281.343,-227.7787C273.8006,-219.8173 263.3384,-208.7739 254.5258,-199.4717\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"257.0298,-197.0256 247.6114,-192.1732 251.9481,-201.8399 257.0298,-197.0256\"/>\n</g>\n<!-- 140062898007960 -->\n<g id=\"node25\" class=\"node\">\n<title>140062898007960</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"390.5,-192 300.5,-192 300.5,-171 390.5,-171 390.5,-192\"/>\n<text text-anchor=\"middle\" x=\"345.5\" y=\"-178.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">SubBackward0</text>\n</g>\n<!-- 140062898040904&#45;&gt;140062898007960 -->\n<g id=\"edge25\" class=\"edge\">\n<title>140062898040904&#45;&gt;140062898007960</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M301.657,-227.7787C309.1994,-219.8173 319.6616,-208.7739 328.4742,-199.4717\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"331.0519,-201.8399 335.3886,-192.1732 325.9702,-197.0256 331.0519,-201.8399\"/>\n</g>\n<!-- 140062898041016 -->\n<g id=\"node6\" class=\"node\">\n<title>140062898041016</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"282.5,-306 190.5,-306 190.5,-285 282.5,-285 282.5,-306\"/>\n<text text-anchor=\"middle\" x=\"236.5\" y=\"-292.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">AddBackward0</text>\n</g>\n<!-- 140062898041016&#45;&gt;140062898040904 -->\n<g id=\"edge5\" class=\"edge\">\n<title>140062898041016&#45;&gt;140062898040904</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M246.8451,-284.7787C254.5272,-276.8173 265.1831,-265.7739 274.1589,-256.4717\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"276.7763,-258.7997 281.2013,-249.1732 271.7389,-253.9391 276.7763,-258.7997\"/>\n</g>\n<!-- 140062898041184 -->\n<g id=\"node7\" class=\"node\">\n<title>140062898041184</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"172.5,-370 80.5,-370 80.5,-349 172.5,-349 172.5,-370\"/>\n<text text-anchor=\"middle\" x=\"126.5\" y=\"-356.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">AddBackward0</text>\n</g>\n<!-- 140062898041184&#45;&gt;140062898041016 -->\n<g id=\"edge6\" class=\"edge\">\n<title>140062898041184&#45;&gt;140062898041016</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M144.6643,-348.9317C162.3386,-338.6484 189.4055,-322.9005 209.5819,-311.1615\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"211.4254,-314.1382 218.3088,-306.084 207.9051,-308.0878 211.4254,-314.1382\"/>\n</g>\n<!-- 140062898041352 -->\n<g id=\"node8\" class=\"node\">\n<title>140062898041352</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"91,-441 0,-441 0,-420 91,-420 91,-441\"/>\n<text text-anchor=\"middle\" x=\"45.5\" y=\"-427.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">MulBackward0</text>\n</g>\n<!-- 140062898041352&#45;&gt;140062898041184 -->\n<g id=\"edge7\" class=\"edge\">\n<title>140062898041352&#45;&gt;140062898041184</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M57.8022,-419.7166C70.7224,-408.3915 91.2435,-390.4039 106.497,-377.0335\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"109.1345,-379.3759 114.3475,-370.1522 104.5204,-374.1119 109.1345,-379.3759\"/>\n</g>\n<!-- 140062898041520 -->\n<g id=\"node9\" class=\"node\">\n<title>140062898041520</title>\n<polygon fill=\"#add8e6\" stroke=\"#000000\" points=\"72.5,-519 18.5,-519 18.5,-484 72.5,-484 72.5,-519\"/>\n<text text-anchor=\"middle\" x=\"45.5\" y=\"-491.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\"> ()</text>\n</g>\n<!-- 140062898041520&#45;&gt;140062898041352 -->\n<g id=\"edge8\" class=\"edge\">\n<title>140062898041520&#45;&gt;140062898041352</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M45.5,-483.9494C45.5,-474.058 45.5,-461.6435 45.5,-451.2693\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"49.0001,-451.0288 45.5,-441.0288 42.0001,-451.0289 49.0001,-451.0288\"/>\n</g>\n<!-- 140062898041408 -->\n<g id=\"node10\" class=\"node\">\n<title>140062898041408</title>\n<polygon fill=\"#add8e6\" stroke=\"#000000\" points=\"163.5,-448 109.5,-448 109.5,-413 163.5,-413 163.5,-448\"/>\n<text text-anchor=\"middle\" x=\"136.5\" y=\"-420.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\"> ()</text>\n</g>\n<!-- 140062898041408&#45;&gt;140062898041184 -->\n<g id=\"edge9\" class=\"edge\">\n<title>140062898041408&#45;&gt;140062898041184</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M134.0281,-412.9494C132.6201,-402.9527 130.8492,-390.3791 129.3787,-379.9389\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"132.8435,-379.4429 127.9829,-370.0288 125.9119,-380.4193 132.8435,-379.4429\"/>\n</g>\n<!-- 140062898041240 -->\n<g id=\"node11\" class=\"node\">\n<title>140062898041240</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"282,-370 191,-370 191,-349 282,-349 282,-370\"/>\n<text text-anchor=\"middle\" x=\"236.5\" y=\"-356.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">MulBackward0</text>\n</g>\n<!-- 140062898041240&#45;&gt;140062898041016 -->\n<g id=\"edge10\" class=\"edge\">\n<title>140062898041240&#45;&gt;140062898041016</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M236.5,-348.9317C236.5,-340.0913 236.5,-327.2122 236.5,-316.3135\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"240.0001,-316.2979 236.5,-306.2979 233.0001,-316.2979 240.0001,-316.2979\"/>\n</g>\n<!-- 140062898041464 -->\n<g id=\"node12\" class=\"node\">\n<title>140062898041464</title>\n<polygon fill=\"#add8e6\" stroke=\"#000000\" points=\"254.5,-448 200.5,-448 200.5,-413 254.5,-413 254.5,-448\"/>\n<text text-anchor=\"middle\" x=\"227.5\" y=\"-420.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\"> ()</text>\n</g>\n<!-- 140062898041464&#45;&gt;140062898041240 -->\n<g id=\"edge11\" class=\"edge\">\n<title>140062898041464&#45;&gt;140062898041240</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M229.7247,-412.9494C230.9786,-403.058 232.5522,-390.6435 233.8673,-380.2693\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"237.3799,-380.3896 235.1654,-370.0288 230.4355,-379.5093 237.3799,-380.3896\"/>\n</g>\n<!-- 140062898041688 -->\n<g id=\"node13\" class=\"node\">\n<title>140062898041688</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"354,-441 273,-441 273,-420 354,-420 354,-441\"/>\n<text text-anchor=\"middle\" x=\"313.5\" y=\"-427.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">SinBackward</text>\n</g>\n<!-- 140062898041688&#45;&gt;140062898041240 -->\n<g id=\"edge12\" class=\"edge\">\n<title>140062898041688&#45;&gt;140062898041240</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M301.8054,-419.7166C289.5232,-408.3915 270.0155,-390.4039 255.5152,-377.0335\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"257.7767,-374.358 248.0524,-370.1522 253.0315,-379.5042 257.7767,-374.358\"/>\n</g>\n<!-- 140062898041744 -->\n<g id=\"node14\" class=\"node\">\n<title>140062898041744</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"359.5,-512 267.5,-512 267.5,-491 359.5,-491 359.5,-512\"/>\n<text text-anchor=\"middle\" x=\"313.5\" y=\"-498.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">AddBackward0</text>\n</g>\n<!-- 140062898041744&#45;&gt;140062898041688 -->\n<g id=\"edge13\" class=\"edge\">\n<title>140062898041744&#45;&gt;140062898041688</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M313.5,-490.7166C313.5,-480.3953 313.5,-464.5401 313.5,-451.6896\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"317.0001,-451.3848 313.5,-441.3849 310.0001,-451.3849 317.0001,-451.3848\"/>\n</g>\n<!-- 140062898041800 -->\n<g id=\"node15\" class=\"node\">\n<title>140062898041800</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"287,-583 196,-583 196,-562 287,-562 287,-583\"/>\n<text text-anchor=\"middle\" x=\"241.5\" y=\"-569.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">MulBackward0</text>\n</g>\n<!-- 140062898041800&#45;&gt;140062898041744 -->\n<g id=\"edge14\" class=\"edge\">\n<title>140062898041800&#45;&gt;140062898041744</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M252.4353,-561.7166C263.7478,-550.5612 281.6157,-532.9415 295.1068,-519.6377\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"297.799,-521.8985 302.4618,-512.3849 292.884,-516.9142 297.799,-521.8985\"/>\n</g>\n<!-- 140062898041968 -->\n<g id=\"node16\" class=\"node\">\n<title>140062898041968</title>\n<polygon fill=\"#add8e6\" stroke=\"#000000\" points=\"268.5,-661 214.5,-661 214.5,-626 268.5,-626 268.5,-661\"/>\n<text text-anchor=\"middle\" x=\"241.5\" y=\"-633.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\"> ()</text>\n</g>\n<!-- 140062898041968&#45;&gt;140062898041800 -->\n<g id=\"edge15\" class=\"edge\">\n<title>140062898041968&#45;&gt;140062898041800</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M241.5,-625.9494C241.5,-616.058 241.5,-603.6435 241.5,-593.2693\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"245.0001,-593.0288 241.5,-583.0288 238.0001,-593.0289 245.0001,-593.0288\"/>\n</g>\n<!-- 140062898041856 -->\n<g id=\"node17\" class=\"node\">\n<title>140062898041856</title>\n<polygon fill=\"#add8e6\" stroke=\"#000000\" points=\"359.5,-590 305.5,-590 305.5,-555 359.5,-555 359.5,-590\"/>\n<text text-anchor=\"middle\" x=\"332.5\" y=\"-562.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\"> ()</text>\n</g>\n<!-- 140062898041856&#45;&gt;140062898041744 -->\n<g id=\"edge16\" class=\"edge\">\n<title>140062898041856&#45;&gt;140062898041744</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M327.8034,-554.9494C325.1282,-544.9527 321.7634,-532.3791 318.9696,-521.9389\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"322.2838,-520.7841 316.3176,-512.0288 315.5217,-522.5937 322.2838,-520.7841\"/>\n</g>\n<!-- 140062898041072 -->\n<g id=\"node18\" class=\"node\">\n<title>140062898041072</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"392,-306 301,-306 301,-285 392,-285 392,-306\"/>\n<text text-anchor=\"middle\" x=\"346.5\" y=\"-292.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">MulBackward0</text>\n</g>\n<!-- 140062898041072&#45;&gt;140062898040904 -->\n<g id=\"edge17\" class=\"edge\">\n<title>140062898041072&#45;&gt;140062898040904</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M336.1549,-284.7787C328.4728,-276.8173 317.8169,-265.7739 308.8411,-256.4717\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"311.2611,-253.9391 301.7987,-249.1732 306.2237,-258.7997 311.2611,-253.9391\"/>\n</g>\n<!-- 140062898041296 -->\n<g id=\"node19\" class=\"node\">\n<title>140062898041296</title>\n<polygon fill=\"#add8e6\" stroke=\"#000000\" points=\"369.5,-377 315.5,-377 315.5,-342 369.5,-342 369.5,-377\"/>\n<text text-anchor=\"middle\" x=\"342.5\" y=\"-349.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\"> ()</text>\n</g>\n<!-- 140062898041296&#45;&gt;140062898041072 -->\n<g id=\"edge18\" class=\"edge\">\n<title>140062898041296&#45;&gt;140062898041072</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M343.6142,-341.6724C344.1037,-333.8405 344.6819,-324.5893 345.1917,-316.4323\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"348.6991,-316.4223 345.8298,-306.2234 341.7127,-315.9856 348.6991,-316.4223\"/>\n</g>\n<!-- 140062898041576 -->\n<g id=\"node20\" class=\"node\">\n<title>140062898041576</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"469,-370 388,-370 388,-349 469,-349 469,-370\"/>\n<text text-anchor=\"middle\" x=\"428.5\" y=\"-356.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">SinBackward</text>\n</g>\n<!-- 140062898041576&#45;&gt;140062898041072 -->\n<g id=\"edge19\" class=\"edge\">\n<title>140062898041576&#45;&gt;140062898041072</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M414.9594,-348.9317C402.2587,-339.019 383.052,-324.0284 368.2117,-312.4457\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"370.0974,-309.4776 360.0607,-306.084 365.7905,-314.9959 370.0974,-309.4776\"/>\n</g>\n<!-- 140062898042136 -->\n<g id=\"node21\" class=\"node\">\n<title>140062898042136</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"474.5,-441 382.5,-441 382.5,-420 474.5,-420 474.5,-441\"/>\n<text text-anchor=\"middle\" x=\"428.5\" y=\"-427.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">AddBackward0</text>\n</g>\n<!-- 140062898042136&#45;&gt;140062898041576 -->\n<g id=\"edge20\" class=\"edge\">\n<title>140062898042136&#45;&gt;140062898041576</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M428.5,-419.7166C428.5,-409.3953 428.5,-393.5401 428.5,-380.6896\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"432.0001,-380.3848 428.5,-370.3849 425.0001,-380.3849 432.0001,-380.3848\"/>\n</g>\n<!-- 140062898042024 -->\n<g id=\"node22\" class=\"node\">\n<title>140062898042024</title>\n<polygon fill=\"#d3d3d3\" stroke=\"#000000\" points=\"469,-512 378,-512 378,-491 469,-491 469,-512\"/>\n<text text-anchor=\"middle\" x=\"423.5\" y=\"-498.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\">MulBackward0</text>\n</g>\n<!-- 140062898042024&#45;&gt;140062898042136 -->\n<g id=\"edge21\" class=\"edge\">\n<title>140062898042024&#45;&gt;140062898042136</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M424.2594,-490.7166C424.9862,-480.3953 426.1028,-464.5401 427.0078,-451.6896\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"430.5222,-451.6061 427.7335,-441.3849 423.5395,-451.1142 430.5222,-451.6061\"/>\n</g>\n<!-- 140062898042248 -->\n<g id=\"node23\" class=\"node\">\n<title>140062898042248</title>\n<polygon fill=\"#add8e6\" stroke=\"#000000\" points=\"450.5,-590 396.5,-590 396.5,-555 450.5,-555 450.5,-590\"/>\n<text text-anchor=\"middle\" x=\"423.5\" y=\"-562.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\"> ()</text>\n</g>\n<!-- 140062898042248&#45;&gt;140062898042024 -->\n<g id=\"edge22\" class=\"edge\">\n<title>140062898042248&#45;&gt;140062898042024</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M423.5,-554.9494C423.5,-545.058 423.5,-532.6435 423.5,-522.2693\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"427.0001,-522.0288 423.5,-512.0288 420.0001,-522.0289 427.0001,-522.0288\"/>\n</g>\n<!-- 140062898042080 -->\n<g id=\"node24\" class=\"node\">\n<title>140062898042080</title>\n<polygon fill=\"#add8e6\" stroke=\"#000000\" points=\"541.5,-519 487.5,-519 487.5,-484 541.5,-484 541.5,-519\"/>\n<text text-anchor=\"middle\" x=\"514.5\" y=\"-491.4\" font-family=\"Times,serif\" font-size=\"12.00\" fill=\"#000000\"> ()</text>\n</g>\n<!-- 140062898042080&#45;&gt;140062898042136 -->\n<g id=\"edge23\" class=\"edge\">\n<title>140062898042080&#45;&gt;140062898042136</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M493.2416,-483.9494C479.7308,-472.7952 462.334,-458.4327 448.977,-447.4054\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"451.1931,-444.6963 441.2532,-441.0288 446.7365,-450.0944 451.1931,-444.6963\"/>\n</g>\n<!-- 140062898007960&#45;&gt;140062898007792 -->\n<g id=\"edge24\" class=\"edge\">\n<title>140062898007960&#45;&gt;140062898007792</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M335.343,-170.7787C327.8006,-162.8173 317.3384,-151.7739 308.5258,-142.4717\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"311.0298,-140.0256 301.6114,-135.1732 305.9481,-144.8399 311.0298,-140.0256\"/>\n</g>\n</g>\n</svg>\n"
},
"metadata": {
"tags": []
},
"execution_count": 51
},
{
"output_type": "display_data",
"data": {
"image/png": "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\nSUVORK5CYII=\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
}
]
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment