# [08/17] incubator-singa git commit: SINGA-268 Add IPython notebooks to the documentation

http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/6ef4bbee/doc/notebook/regression.ipynb
----------------------------------------------------------------------
diff --git a/doc/notebook/regression.ipynb b/doc/notebook/regression.ipynb
index 294b692..4e81a20 100755
--- a/doc/notebook/regression.ipynb
+++ b/doc/notebook/regression.ipynb
@@ -6,12 +6,12 @@
"source": [
"# Train a linear regression model\n",
"\n",
-    "In this notebook, we are going to use the tensor module from PySINGA to
train a linear regression model. The training would be conducted using numpy.
We use this example to illustrate the usage of tensor of PySINGA. Please
install
[PySINGA](http://singa.apache.org/en/docs/installation.html#install-pysinga)
before executing the following code. "
+    "In this notebook, we are going to use the tensor module from PySINGA to
train a linear regression model. We use this example to illustrate the usage of
tensor of PySINGA. Please refer the [documentation
page](http://singa.apache.org/en/docs/tensor.html) to for more tensor functions
provided by PySINGA. "
]
},
{
"cell_type": "code",
-   "execution_count": 27,
+   "execution_count": 1,
"collapsed": true
},
@@ -31,7 +31,7 @@
},
{
"cell_type": "code",
-   "execution_count": 28,
+   "execution_count": 2,
"collapsed": false
},
@@ -52,7 +52,7 @@
},
{
"cell_type": "code",
-   "execution_count": 29,
+   "execution_count": 3,
"collapsed": false
},
@@ -60,18 +60,18 @@
{
"data": {
"text/plain": [
-       "<matplotlib.legend.Legend at 0x7ff77e6437d0>"
+       "<matplotlib.legend.Legend at 0x7fce59cef510>"
]
},
-     "execution_count": 29,
+     "execution_count": 3,
"output_type": "execute_result"
},
{
"data": {
-      "image/png":

pFtamiUxUxqAMAYDN2htGVL5+9QagUJAgAK\npnFew8yZ2aaGRnQQBTc4OKj58+friCOO0JVXXilJ2rp1q84444yW3n/++efr4YcfTrNEAB00OCgt\nWCD199dSw8qV0vjx+dRCB1Fw3/jGNzRlyhT94he/0Be/+EVJ0jXXXKOrrrqqpfd/7nOf09VXX51m\niQA6oHGsIc/U0IgxiIJ7/vnnNWfOnH1f79ixQ9VqVXfccUdL7z/jjDO0e/dubdy4UfPmzUurTABt\nyHusYTgkiBR96Utf0gUXXHDA96644gotX768pfcvWrRIq1at0sqVKzVp0iQ9+uijeuSRRzRv3jyN\nGzdOkvTcc8/p6KOP1ubNmyVJL730kiZPnqzHHnts33HOPvtsPfjggx36UwHolKKMNQyHBJGiCy+8\nUCtWrNArr7yiSZMm6fXXX9eaNWv03e9+V0uWLNEdd9yxbw6CXbtNOSI0bdo0bd68WTfffLMk6fjj\nj9d1110nSbrqqqt00kkn7fuMGTNm6Prrr9cnPvEJ/ehHP9KiRYv0yU9+UvPnz9/XZvbs2Xr88ccz\n/JMDGElRU0OjnkgQdvuvsTj22GM1f/583XPPPZKkdevWafLkyTrttNN044036uWXX9bOnTv3/Xdo\neygNJNm1a5cmTpx4wPcWL16sWbNm6cwzz9TAwIA+//nPH7B/4sSJ2rVr19j+EAA6qnnl1aKlhkY9\n0UFEtP8aq4ULF2r16tWSpNtvv10XXXRRW3+Wo446Srt3737D9z/1qU9py5YtuuKKK3TooYcesG/3\n7t068sgj2/pcAO0bukNpxYpaavjCF/K7Q6kVPdFB5OmjH/2onnzySW3ZskUPPPCALrzwQknS5Zdf\nrokTJ2rSpEkHvCZOnKh3vetdwx7vlFNO0TPPPHPA9375y1/qs5/9rBYvXqz+/v43pIVt27Zp7ty5\nnf/DAWhJWs9rSBtrMWXg0ksv

jgoLVgg9ffXUsPKldL48SlUX1DVajXvEgqDc7Ef52I/zkVnpNpBRMSOiNhc\n335V0jZJU5uanSfp1nqb9ZKOsH1M8vFIDRI//I04F/txLvbjXHRGZmMQtqdLOlXS+qZdUyVtb/j6\nxfr3BpqPsWABYw0AkJVMOgjbEyTdK2lZPUkcsDvhLZF0nJkzpdWre+tyEgDkxRGJv4s79wH2myU9\nIGldRPxFwv6vSfrbiLi7/vVPJJ0dEQNN7dItFABKKiKS/iE+oiwSxLclbU3qHOrWSloi6W7bZ0na\n1dw5SGP/AwIAxibVBGH7vZIek/SUapeNQtLVkqZJioj4Rr3dX0r6kKRfSloUERtTKwoA0JLULzEB\nALpT4ZbasP0h2z+x/Yzt/5Wwf5ztu+oT635o+4Q86sxCC+fij21vqU8wfMT28XnUmYWRzkVDuwts\n77U9L8v6stTKubD9P+o/G0/ZXp11jVlp4e/I8fXJuhvrf0/OzaPOtNm+yfaA7ScP0mbUE5IVEYV5\nqdZh/VS1S1CHStos6Z1NbS6X9Ff17Y9JuivvunM8F2dLGl/f/qNePhf1dhMk/Z2kf5A0L++6c/y5\neIekH0uaVP/67XnXneO5+Lqky+rbsyX9LO+6UzoX/0W1aQRPDrP/XEkP1rfPlPREK8ctWoJ4t6Rn\nI+L5iHhN0l2qTaRrdJ6kVfXteyW9L8P6sjTiuYiIv4uI/6x/+YTeOAmxLFr5uZCk/y1ppaRfZVlc\nxlo5F5dIujEiXpGkiPiPjGvMSivnYq+kSfXtI1WbZ1U6EfEDSS8fpEnLE5IbFa2DaJ4094Le+Etv\nX5uIeF3SLttvy6a8TLVyLhotlrQu1YryM+K5qEfm4yLioSwLy0ErPxe/Jekk2z+w/Q+2P5hZddlq\n5VyskHSR7e2q3W5/RUa1Fc1wE5IPqmirubYyaa65jRPalEHLEwhtXyjpt1W75FRGBz0Xti3py5L6\n

RnhPGbTyc/Fm1S4zzZd0gqS/t33yUKIokVbOxR9Kujkivly/jX61pJNTr6x4Wv590qhoCeIF1X6g\nhxwn6aWmNtslHS9Jtt+k2nXWg0WrbtXKuZDt90v6U0m/X4/ZZTTSuZio2l/6qu2fSTpL0v0lHahu\n5efiBUn3R8TeiPhXSf8saVY25WWqlXOxWNIaSYqIJySNt/32bMorlBdU/71Zl/j7pFnROogNkt5h\ne5rtcZI+rtpEukbf0f5/KS6Q9GiG9WVpxHNh+zTVVr/9SET8PIcas3LQcxERr0TElIiYEREnqjYe\n8/tRzvk0rfwduU/SOZJU/2U4S9JzmVaZjVbOxfOS3i9JtmdLOqzEYzLW8Ml5raSFknSwCcnNCnWJ\nKSJet/0ZSQ+r1nndFBHbbK+QtCEiHpB0k6TbbD8r6eeq/VCUTovn4npJb5V0T/0yy/MR8dH8qk5H\ni+figLeopJeYWjkXEfE92x+wvUW1Jff/pIwpu8Wfiz+R9E3bf6zagHXf8EfsXrbvkFSRdLTtf5N0\nraRxqk9IjoiHbH/Y9k9Vn5Dc0nHrtz0BAHCAol1iAgAUBB0EACARHQQAIBEdBAAgER0EACARHQQA\nIBEdBAAgER0EACARHQQwRrZPt/1P9YdYvdX207bn5F0X0CnMpAbaYPs6SYfXX9sjYmXOJQEdQwcB\ntMH2oaotGvf/JL0n+AuFEuESE9Ceo1V71OlESeNzrgXoKBIE0Abb90u6U9KJkn4zInr1iWUooUIt\n9w10E9sXSXotIu6yfYikx21XIqKac2lAR5AgAACJGIMAACSigwAAJKKDAAAkooMAACSigwAAJKKD\nAAAkooMAACSigwAAJPr/r8gnZyjAzN0AAAAASUVORK5CYII=\n",
+      "image/png":

4FzzoEpU6Cvb3iVqnVhqIdOqHtTiHPuBb4J\nbAAOLfmNaU9geFRMSulh4M+ABcBaCsNvF6eUykfGSJKkcRgcLBQbxx4L++0H/f1w7rmF4qNWck9A\nUkodYzy+aIRlPwbaa9YoSZJaxFDqsXHj9qlHrdVDAiJJkjJWnnqsW1f71KNU7gmImltHxw4DLtWA\n+zx77vPsuc8nJ6/Uo1SklLJ9xZxERBvQ29vbO2rHpUceeYSNGzdm2zBVzfTp05k5c2bezZCkujU4\nCMuWwapVMH8+XHklzJ499vP6+vpob28HaE8p9Y21/niYgBQ98sgjzJkzhy1btuTdFFVo6tSprF+/\n3iJEkkZQD6lHKQuQoo0bN7JlyxbnCWlQ69cXxqhv3LjRAkSSSpSnHj0940s9as0CpIzzhEiSmkW9\npR6l6qQZkiSpWvIe4TIeJiCSJDWR0WYzrTd12CRJkjRRecxmOhkmIJIkNbh67usxmjpvnhrFmjVr\nmDNnDjvvvDOvfOUrh5enlJg7dy4XXXTRhLf58Y9/nEMPPbSazZSkptIIfT1G0wBNVL277777WLRo\nEa9//eu54oor+NrXvjb82LXXXsujjz7KBz7wgQlv90Mf+hB333033//+96vZXElqCj09MHcurFlT\nSD26u+tjeO14+ROMJu3WW28lpcSKFSvYb7/9tnvsC1/4Ah0dHbzsZS+b8HZnzJjBySefzBe+8AX+\n/M//vFrNlaSGNjgIH/0oXH55fc3rMVEmIJq0xx9/HIDddtttu+V33XUXd999N6eddlrF2z7ttNP4\nyU9+wsMPPzyZJkpSUxhKPVavbszUo5QFSAu49dZbmTJlCtdff/0LHrv22muZMmUKd9xxR0Xb3m+/\n/fj0pz8NwKtf/WqmTJnCZz7zGQC++93vsssuu3DkkUcOr79161bmzJnDnDlzeOaZZ4aXP/XUU+y5\n554cccQRlF6faMGCBaSURmy7

JLWKRhvhMh4N3HSN1/z589lnn3245pprXvDYNddcw+te9zre9ra3\n8eyzz/Lkk0+O6zZkxYoVnHLKKQB89atf5eqrr+Zd73oXALfddhsHHnggL3rRi4bX33XXXVm9ejW/\n/OUv+cQnPjG8fOnSpQwODrJ69WoiYnj5brvtxv77789Pf/rTqu8XSWoE3d2N3ddjNPYBaRFnnnkm\ny5cvZ3BwkJe//OVA4fo3N998M5/61KcA6OrqYtGiRWNuKyLYtm0bACeddBJ33XUX3/3ud3n3u9+9\n3QiYe++9d8RRLIcccgjLli3j85//PKeccgqPPfYY1113Hf/4j//I/vvv/4L1Z8+ezT333FPR+5ak\nRlWv13CpFguQCm3ZAvfeW9vXOOAAmDq1OttauHAhF110Ed/+9reHi4xvfvObbNu2jTPOOAOAE044\ngVtuuaU6Lwg8+eST7L777iM+9ulPf5obbriBhQsXsnnzZo455hjOO++8EdfdfffdWbt2bdXaJUn1\nrrsbFi9urHk9JsoCpEL33gvt7bV9jd5eqNZ18d74xjcyb948rrnmmuEC5Nprr+XQQw9ldrGknjFj\nBjNmzKjOCxaV9ucotdNOO3HllVcyb948XvKSl3DVVVftcBulP8tIUrNq9tSjlAVIhQ44oFAg1Po1\nqmnhwoV86EMf4je/+Q2///3vuf3227nsssuGH9+6dSsDAwPj2tZ4CpVXvepVPPXUU6M+/oMf/GD4\ndR944AH23XffEdd76qmnmD59+rjaJUmNqhFnM50MC5AKTZ1avXQiK6effjof/vCH6erqYsuWLey8\n887bDZG97rrrJtwHZEcOOOAAHnrooREfW7duHZ/97Gd5z3vew9q1a3nve99Lf3//cP+UUg899BAH\nH3zwmK8nSY2olVKPUhYgLeRVr3oVJ554ImvWrGHr1q2ccMIJ23UarXYfkMMOO4yLL76Y5557jp12\n2ml4+R/

Es5mmg13\nqSRJOJtp1uput0bExyLi+Yj40g7WObq4TultW0S8Jsu2SpKag1euzV5d/QQTEfOA9wF3j2P1BLwB\nGBxekNITNWqaJKkJOcIlP3WTgETEy4CrgfcCvxvn0zaklJ4YutWudZKkZmPqka+6KUCAlcD3Uko9\n41w/gLUR8ZuIuCki3l7DtkmSmsTmzbB0qX098lYXP8FExOnAwcBbx/mUx4D3Az8HdgH+Brg1Ig5J\nKa2tTSslSY3OeT3qR+4FSETsDXwZWJBSem48z0kp3Q/cX7Lo9ojYH+gEztrRczs7O5k2bdp2yzo6\nOujo6JhQuyVJjWPz5kJfj8svL/T18OeW0XV1ddHV1bXdsoGBgaq/TqSUqr7RCTUg4mTgfwPbKPys\nAvAiCp1MtwG7pHE0MiI+DxyeUjp8lMfbgN7e3l7a2tqq0nZJUv0rTT0+/3lYssTUY6L6+vpob28H\naE8p9VVjm7knIMAtwNyyZf8MrAc+N57io+hgCj/NSJL0ghEuph71JfcCJKX0NHBP6bKIeBp4MqW0\nvnj/QmCvlNJZxfsfBB4C/h3YlUIfkGOA4zJsuiSpTpXOZrpypalHPcq9ABlFeeqxJ7BPyf2dgS8C\nrwW2AOuAY1NKP86meZKkeuS8Ho2jLguQlNKflN1fVHb/EuCSTBslSaprXsOlsfinkSQ1NK/h0pjq\nMgGRJGk8hlIP5/VoPP6ZJEkNpzT1mDUL+vtNPRqNCYgkqaHY16M5+CeTJDUE+3o0FxMQSVLdM/Vo\nPv75JEl1y9SjeZmASJLqkqlHc/NPKUmqK+UjXEw9mpMJiCSpbph6tA7/rJKk3NnXo/WYgEiScuWV\na1uTf2JJUi7KU4/+fli61OKjVZiASJIyZ+oh/9ySpMyM1NfD1KM1mYBIkjLhCBeV8k8vSaopR7ho\nJCYgkqSa6emBxYthwwZTD23Pj4EkqeqczVRjMQGRJFWVfT00Hn4

IFILcF4PSfXGQ5DUxEpTD0e4SKonJiBSk/LKtZLqmYcjqcl45VpJjcAERGoiQ6mHs5lKqncemqQm\nUJ569PebekiqbyYgUoNzhIukRuRhSmpQI83rYeohqVGYgEgNyNRDUqPzkCU1kM2b/3jlWlMPSY3M\nBERqED09hREuTzxh6iGp8Xn4kupcaV+Pffd1hIuk5mACItUx+3pIalYeyqQ65AgXSc3OBESqM6Ye\nklqBhzWpTph6SGolJiBSHRga4eI1XCS1Cg9xUo5K5/WYNcvUQ1LrMAGRcmLqIamVebiTMjY4aOoh\nSSYgUoZKR7isXAlLllh4SGpNuR/6ImJJRNwdEQPF288i4oQxnjM/InojYmtE3B8RZ2XVXqkS5SNc\n+vsLKYjFh6RWVQ+Hv18DHwXagHagB7g+IuaMtHJEzAK+D3QDBwErgCsi4rgsGitNVE8PzJ0La9YU\nUo/u7kIRIkmtLPefYFJKN5Qt+mREnAMcCqwf4SnnAA+mlJYV798XEUcAncDNtWupNDGDg7BsGaxa\nBfPnFwqR2bPzbpUk1Yd6SECGRcSUiDgdmArcNspqhwK3lC27ETislm2TJqI09fjKVwqph8WHJP1R\nXRQgEXFgRAwCzwCXAaeklO4dZfU9gMfLlj0O7BYRu9SwmdKYnM1UksYn959giu6l0J9jGnAq8I2I\nOGoHRUjFOjs7mTZt2nbLOjo66OjoqPZLqcUMjXDZsAEuvdROppIaU1dXF11dXdstGxgYqPrrREqp\n6hudrIi4GfhlSumcER77EdCbUvpwybKzgeUppd13sM02oLe3t5e2trYatFqtqryvx5VX+nOLpObS\n19dHe3s7QHtKqa8a26yXBKTcFGC0n1NuA04sW3Y8o/cZkWrGK9dKUmVyP1RGxIURcWRE7FvsC3IR\ncDRwdfHxiyJidclTVgGzI+LiiHhjRCyl8LPNl7JvvVqVfT0kaXLqIQF5DbAa2

"text/plain": [
-       "<matplotlib.figure.Figure at 0x7ff77e6434d0>"
+       "<matplotlib.figure.Figure at 0x7fce59cef550>"
]
},
@@ -83,7 +83,7 @@
"f = lambda x: a * x + b\n",
"gx = np.linspace(0.,1,100)\n",
"gy = [f(x) for x in gx]\n",
-    "plt.plot(gx, gy, label='y=f(x)')\n",
+    "plt.plot(gx, gy,  label='y=f(x)')\n",
"plt.xlabel('x')\n",
"plt.ylabel('y')\n",
"plt.legend(loc='best')\n"
@@ -101,7 +101,7 @@
},
{
"cell_type": "code",
-   "execution_count": 30,
+   "execution_count": 4,
"collapsed": false
},
@@ -109,18 +109,18 @@
{
"data": {
"text/plain": [
-       "[<matplotlib.lines.Line2D at 0x7ff777debb50>]"
+       "[<matplotlib.lines.Line2D at 0x7fce43e79390>]"
]
},
-     "execution_count": 30,
+     "execution_count": 4,
"output_type": "execute_result"
},
{
"data": {
-      "image/png":
"iVBORw0KGgoAAAANSUhEUgAAAXkAAAEACAYAAABWLgY0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGqdJREFUeJzt3X9w3PV95/HnS5C4JA6kHESRIIFKJddibgaIbHxUd2zP\nnl6B1srdtISOctAc0+NCKMZcMnUZrog5SLhcLzi5JJOQ0gykzhBMU6QGM8BMso64FiMTfCWGXIhE\nUmDlPQiBVKHVGPS+P7Q2q9XK+u5qd7+7X70eM5p8d78fffXmG/m9X31+vD+KCMzMLJu60g7AzMya\nx0nezCzDnOTNzDLMSd7MLMOc5M3MMsxJ3swswxIleUknSNol6WlJBySdV6XNZyU9I2m/pLMbH6qZ\nmdXq2ITtPgPsjojflXQs8Lbyk5IuBPoj4ozSB8AXgY2NDdXMzGq17JO8pHcA/yoivgIQEa9HxM8q\nmg0Bd5XO7wVOkNTd6GDNzKw2Sbpr+oCXJH1F0ncl3S7puIo2pwDPlb1+ofSemZmlKEmSPxY4F/h8\nRJwLvAZsr2ijKt/neglmZilL0if/PPBcROwrvb4X+KMqbd5T9vpUoFB5IUlO/GZmdYiIag/Ty1r2\nST4iisBzkt5XemsT8FRFszHgMgBJG4FXSt9X7Xr+iuDGG29MPYZ2+fK98L3wvTj610oknV1zDbBT\n0luAKeDDkq6cz9lxe0TslnSRpB8CPwc+vKKozMysIRIl+Yj4P8D6ire/VNHm6kYFZWZmjeEVrynJ\n5XJph9A2fC/e5HvxJt+LxtBK+3tq+mFStPLnmZllgSSiWQOvZmbWuZzkzcwyzEnezCzDnOTNzDLM\nSd7MrEaFQoHx8XEKhUUL+9uOZ9eYmSU0MzPD8PDNTEy8m2LxLLq7D7B+/TQ7d97A2rVrm/ZzVzK7\nxknezCyhoaHtjI1tA8orqRfZsmUHo6OfbNrP9RRKM

4MstnF2z8IOs2bNrnOTNrK0VCgUmJyfp7+/v+ORf7weZk7yZZc5S\nc8v/9E+v4ODBg5lI+kk5yZtZ5ixeJDUD3MCaNSdy6ND5NS8o6mRO8maWKYVCgYGBXUxPby17dzuQ\n7ZWxS/GKVzNLTTPqsSyeW14Asr8ythmc5M2sLs0sLLZ4bvkkkO2Vsc3iJG9mdWlmPZbFi6T6gWyv\njG0WJ3kzq1kr6rHs3HkDW7bcRk/PDrq6DrBmzSNkeWVssyQaeJX0I+BVYA44FBEbqrT5LHAh8HPg\n9yNif5U2Hng1y4Dx8XFyuVnm5jYvOtfV9TB79hzH4OBgQ37W4bnl3d3dfOxjd9S9oKiTNX12jaQp\n4P0R8dMlzl8IXB0RF0s6D/hMRGys0s5J3iwDqs9+mdfTs4N9+y5p2tN1llfGLqUVs2u0TNsh4C6A\niNgLnCCp8u84M8uINAuL9fb2Mjg42PEJvlW7RCUtUBbAg5ICuD0ivlxx/hTgubLXL5Teq/wNMLOM\nyHphsWZZvJJ3V1MXdSVN8udHxEFJJwMPS3o6Ih4pO1/tz4iq/TIjIyNHjnO5HLlcLmEIZtZO1q5d\ny+jorWXdJ83roukESWvsHJ6VdHjQenp6M2NjRYaHbzmyqCufz5PP5xsSV80rXiXdCPxDRHy67L0v\nAt+OiK+XXn8fuCAiihXf6z55M8uUWvZvrXcso6l98pLeJmlt6fjtwG8A36toNgZcVmqzEXilMsGb\nmWVRLesF0tglKsnAazfwiKQngEeBv46IhyRdKek/AUTEbuBZST8EvgRc1fBIzczaTK3rBdLYJWrZ\nPvmIeBY4u8r7X6p4fXUD4zIza3tJnszLu1/S2CXKK17NzOpUz5P5wpW8D9PTs4MtW25r2qwk7/Fq\nZlanep7MWz0ryfXkzcxWYKX7tybhTUPMzFLWzHILTvJmVrMsbZCddU7yZpZYLYt3rD04yZtZYos3\nyIbVsld

x5o1e6ue\nW7PmMTZs2NDSeAqFAhMTPVT7y2JiojtT977TOclbZmS5+6C3t5dNm14FihVnimza9LOG9IXX8uHo\nomedwwOvlhlDQ9sXdB/MK7Jly45MdB8cnkK5d+/JvPjiWZx88vc477wXVzyFcmHJg7NKJQ+mj3pd\nly9urVbt8WrWtpJ0H3R60lm7di2jo7eWlSb4vYb8N9XTt+6iZ53DSd4yIUn3QVYSTyM3DF/Jh+PO\nnTcsWfTM2oeTvGXCfM30XUxPb150br5m+iUpRNX+VvLhuPgvC3fRtCMPvFomHO4+qDYw6e6DpTVi\nQ5He3l4GBwd9j9uUn+QtM9x9UDv3rWefZ9dYXdp5KbtrptfGG4q0P9eusZapZ7qddQZ/OLavliR5\nSV3APuD5iNhSce6twF3A+4GXgA9GxN9XuYaTfIfL+lx0s3bUqgJlW4Gnljh3BfByRJwB7AA+VU8w\n1t68lN2s8yRK8pJOBS4C/myJJkPAnaXje4FNKw/N2o2Xspt1nqRP8rcBHweW6ms5BXgOICLeAF6R\ndOLKw7N20ojpdmbWWstOoZR0MVCMiP2SckC1fqHK98QSHwgjIyNHjnO5HLlcLmGoljZPtzNrjXw+\nTz6fb8i1lh14lfQJ4EPA68BxwDuAb0TEZWVtHgBGImKvpGOA6Yh4V5VreeC1w3m6nVnrtWwKpaQL\ngP9SZXbNVcBZEXGVpEuBD0TEpVW+30k+Izzdzqx1UqlCKekmYCIivgncAXxV0jPAT4BFCd6ypZFF\nssysebwYysyszXkjbzMzq8pJ3swsw5zkzcwyzEnezCzDnOTNzDLMSd7MLMOc5M3MMsxJ3swsw5zk\nzcwyzEnezCzDnOTNzDLMSd7MLMOc5M3MMsxJ3jpOoVBgfHzcG4ebJeAkb8tql6Q6MzPD0NB2Bgbu\nIZebZWBgF0ND25mZmUk1LrN25nrytqSFW/2dVdrqbzq1rf6GhrY

y1183MSd7MLMNcu8bMzKpykjczyzAneTOzDHOSNzPL\nsGWTvKQ1kvZKekLSk5JurNLmrZLulvSMpL+V9N7mhGtmZrVYNslHxCzw6xFxDnA2cKGkDRXNrgBe\njogzgB3ApxoeqZmZ1SxRd01EvFY6XMN8vZvKeZBDwJ2l43uBTQ2JzszMViRRkpfUJekJ4CDwcERM\nVDQ5BXgOICLeAF6RdGJDIzUzs5olqkIZEXPAOZKOB+6TdGZEPFXWpHKSvlj8tA/AyMjIkeNcLkcu\nl6sl3o5SKBSYnJykv7/fq1XNLLF8Pk8+n2/ItWpe8SrpT4CZiPh02XsPACMRsVfSMcB0RLyryveu\nihWvC+vOnFWqOzPtujNmVpemljWQdBJwKCJelXQc8CBwa0TsLmtzFXBWRFwl6VLgAxFxaZVrrYok\n712dzKyRml3WoAf4tqT9wF7gwYjYLekmSb9VanMHcJKkZ4Brge31BJOFTasLhQITEz0sTPAA3UxM\ndHf0f5uZdZ62KFCWpe6N8fFxcrlZ5uY2LzrX1fUwe/Ycx+DgYAqRmVmn6vgCZcPDNzM2to3p6WuZ\nm9vM9PRWxsa2MTx8S9qh1cy7OplZO0k9yWete8O7OplZO0l9I+8sblq9c+cNS+7qZGbWSqn3yRcK\nBQYGdjE9vXVR+56eHezbd0nHJfnD6t3VyfPrzaxcR/fJZ7l7o7e3l8HBwcT/DTMzMwwNbWdg4B5y\nuVkGBnYxNLSdmZmZJkdqZlmV+pM8eNPqwzy/3syqycwer6t50+osd1uZ2cqsJMmnPvBarre3d9Um\nsiwOQJtZ+lLvk7d5nl9vZs3gJN8msjwAbWbpaas++dXOA9BmVk1mBl5t3moegDazxZzkzcwyrKMX\nQ5mZWfM4yZuZZZiTvJlZhjnJN0AWdrQys2zywOsKZGlHKzNrX83eyPtU4C7g3cAbwJcj4rMVbS4A\nRoGp0lvfiIibq1wrU

GhGB1+T/F48D4xG\nxFxE/Aj4v8AZrQmvpZLciyuAewAi4lHgFySd1Jrw2srzlPJmSdV8UqkZSX4C+GVJp0l6K3Ap84ul\nyv01bz6x/S7wrSbE0Q6WvReSzmG+aueWiPhJCjG2ylHvRUT8LCLeFRF9EfFLzI9P/HZkc71Fkn8j\n9wH/BqCU0M4AploaZWskuRc/BjYDSPpVYE2GxyjE0n/BjgGXARxt0WmlhnfXRMQbkq4GHmL+Q+SO\niHha0k3ARER8E7gD+KqkZ4CfMP9/bOYkvBefAt4O7Cp1Wfw4Ij6QXtTNkfBeLPgWMtpdk+ReRMSD\nkn5D0gHmy31/LIt/7Sb8vfgY8GVJ25gfhL186St2LklfA3LAP5P098CNwFspLTqNiN2SLpL0Q0qL\nThNdtzQdx8zMMsjb/5mZZZiTvJlZhjnJm5llmJO8mVmGOcmbmWWYk7yZWYY5yZuZZZiTvJlZhv1/\nC/2E8BD719MAAAAASUVORK5CYII=\n",
+      "image/png":

kuSpPqpKCyklPrnef2GGT8PA8NV9EuSJDUJ\n54bQE/r7M7OgloDHvP485vXnMW99i3p0cqlExDqgUCgUHBQjSVIF9u/fT1dXF0BXSml/Ld7TKwuS\nJCmTYUGSJGUyLEiSpEyGBUmSlMmwIEmSMhkWJElSJsOCJEnKZFiQJEmZDAuSJCmTYUGSJGUyLEiS\npEyGBUmSlMmwIEmSMhkWJElSJsOCJEnKZFiQJEmZDAuSJCmTYUGSJGUyLEiSpEyGBUmSmkBKid27\nx+nr20RX17X09W1ifHyClFKju8aPN7oDkiQtd8VikXx+gMOH11IsDgGrgKPs3TtCZ+c2du0apaOj\no2H9MyxIktRAKSXy+QEKhSFSumzaK6spFrdQKOwjnx9gcnIHEdGQPnobQpKkBpqY2MPhw2tnBIXT\nUrqMQ4cuYc+eu+rcs9MMC5IkNdDw8CjF4o2ZbYrFGxkeHq1Tj57MsCBJUgMdO3aC0hiFLKvK7RrD\nsCBJUgOtXHkucHSeVkfL7RrDsCBJUgMNDm4klxvJbJPLjTA4uLFOPXoyw4IkSQ3U09NNZ+cBIvbN\n+nrEPtasOUh395VPrKt3TQYfnZQkqYEigl27RsnnBzh06JLyYMcLgAfI5UZYs+YgO3duf+Kxyflq\nMmzb9nu172MzVIaaKSLWAYVCocC6desa3R1JkpZcSomJiT0MD9/K8eMnWLnyXAYHN9LdfeUTQSGl\nxIYN181Sk6EkYh8XX/z73HPPBEBXSml/LfrmlQVJkppARNDb20Nvb8+cbRZSk+Ho0RcAEzXtW0Vj\nFiLivRFxasZyzzzbvDwiChHxWETcHxEDi+uyJEnL00JqMnz3u79U8/1WM8DxK8B5wPnl5cq5GkbE\nhcBngM8ClwIfBj4ZEVdXsV9Jkpa1hdVkOK/m+63mNsSPUkoPL7DtW4GvpZTeUf75voi4EtgM7Kpi\n35IkLVunazKszmj1UM33W82V

hRdExIMRcTgibouIrIhzOXDnjHV3AC+tYr+SJC1rC6nJ8PSn76j5\nfisNC18A3gS8CngL8DxgIiJ+ao725/PkiPMQ8IyIOLvCfUuStKwtpCbDqlX/XPP9VhQWUkp3pJT+\nT0rpKymlXcBrgBzwazXvmSRJOsNUTYb1628ilxsCjgCngCPkckOsX38TH//4lprvd1GPTqaUTkbE\n/cCaOZoc58kjLc4DHkkp/WC+99+8eTMrVqw4Y11/fz/9/f3VdFeSpJbX0dHB5OQOJib28Du/85/5\n+tfv4Zxzzqaz87k885nP5D3veU/N97mookwR8TTgAeA9KaWPzvL6fwdenVK6dNq6TwEdKaXXZLyv\nRZkkSarC/v376erqghoWZaq0zsJwRPRExOqIeBlwO/BDYKz8+s0RsX3aJp8Anh8R74+IiyLibcBr\ngQ/WovOSJGnpVXob4rnAp4BnAg8DdwGXp5S+XX59JdMeAE0pHYmIa4BbgP8KfBO4MaU08wkJSZLU\npCoKCymlzMECKaUbZlk3AXRV2C9JkmoqpcT4+ATbtt3KsWOn517o6el+Yu4Fzc65ISRJbW++mRp3\n7Rqlo6Oj0d1sWoYFSVJbSymRzw/MMlPjaorFLRQK+8jnB5ic3OEVhjlUU8FRkqSWsZCZGg8duoQ9\ne+6qc89ah2FBktTWFjJTY7F4I8PDo3XqUesxLEiS2trCZmpcVW6n2RgWJElt7fRMjVmOlttpNoYF\nSVJbW8hMjbncCIODG+vUo9ZjWJAktbWFzNS4Zs1BuruvrHPPWoePTkqS2trUTI35/ACHDl1SHux4\nAfAAudwIa9YcZOfO7T42mcGwIElqe9Nnahwe3srx46crOHZ3bzEozMOwIElqerUo1RwR9Pb20Nvb\ns8S9bT+GBUlSU7NUc+MZFiRJTWu+Us133/1FLr/8Gjo7X8Tx4w87OdQSMSxIkppWdqnmInAT9933\nUu6777/

gFYel46OTkqSmNXep5gQMAEPANmA1pVPa1ORQQ+TzA6SU6tjb9mVYkCQ1rblLNe8B1gJO\nDlUPhgVJajIpJXbvHqevbxNdXdfS17eJ8fGJZfktee5SzaOAk0PVi2MWJKmJOPL/TIODG9m7d4Ri\nccuMV5wcqp68siBJTWL6yP/SydH78HOXanZyqHoyLEhSk8ge+b8878NPlWpev/4mcrkh4AhwCrga\n+Ejmtk4OVTuGBUlqEnOP/D9tOd6HnyrVfPvtV3PNNVvp6rqea67ZxUUXFYj44qzbODlUbTlmQZKa\nxNwj/6dbnvfhZyvV/J3vfMfJoerEsCBJTeL0yP/VGa28Dz/FyaHqx7AgSU1i7pH/p3kf/kxODlUf\njlmQpCYx98j/Eu/Dq1G8siBJTWJq5L/34dVsDAuS1ES8D69mZFiQpCbjfXg1G8csSJKkTIYFSZKU\nybAgSZIyGRYkSVImw4IkScpkWJAkSZkWFRYi4p0RcSoiPpjRprfcZvryeERY3FySpBZQdZ2FiLgM\n+E3gywtonoAXAt99YkVKy2/aNEmSWlBVVxYi4mnAbcAm4DsL3OzhlNKJqaWa/UqSpPqr9jbEx4BP\np5Q+t8D2ARyIiG9FxM6IeFmV+5UkSXVWcViIiNcBa4F3LXCTY8CbgV8BfpnSZO27I2JtpfuWpFpL\nKbF79zh9fZvo6rqWvr5NjI9PkFKyX1JZVPKLFxHPBe4GXplS+kp53T8AX0op/W4F77Mb+EZKaWCO\n19cBhZ6eHlasWHHGa/39/fT39y+4z5I0l2KxSD4/wOHDa8szPK4CjpLLjdDZeYBdu0bp6OiwX2pa\nY2NjjI2NnbHu5MmTTExMAHSllPbXYj+VhoXrgL8GHqd0awHgxygNYHwcODst4A0j4o+BK1JKV8zx\n+jqgUCgUWLdu3YL7J0kLlVJiw4brKBSGSOmyJ70esY/1629icnJHXWd6bNZ+qXXs37+f

MgS1qIRZd7Tin9/Iyfb5ilzQTQtdh9Saqt07Mmrs5o\n5RTI0nLnRFLSMuYUyJIWwrAg1Vkz1TRwCmRJC+Gsk1IdNVtNg3rMmiip9RkWpDpJKZHPD8xS02A1\nxeIWCoV95PMDda9p4BTIkuZjWJDqpJKaBj093XXtm7MmSsrimAWpTqxpIKlVGRakOrGmgaRWZViQ\n6uR0TYMs1jSQ1HwMC1KdWNNAUqsyLEh1Yk0DSa3KpyGkOrGmgaRWZViQ6siaBpJakWFBqjNrGkhq\nNY5ZkCRJmQwLkiQpk2FBkiRlMixIkqRMhgVJkpTJsCBJkjIZFtRwKSV27x6nr28TXV3X0te3ifHx\nCVJKje6aJAnrLKjBisUi+fwAhw+vpVgcojQr41H27h2hs3Mbu3aN0tHR0ehuVi2lxPj4BNu23cqx\nY6cLMPX0dFuASVLLMCyoYVJK5PMDFApDpHTZtFdWUyxuoVDYRz4/wOTkjpY8sbZ7EJK0fHgbQg0z\nMbGHw4fXzggKp6V0GYcOXcKePXfVuWeLNz0IFYtbgNWU/nebCkJD5PMD3mqR1BIMC2qY4eHR8mRK\ncysWb2R4eLROPaqddg5CkpYfw4Ia5tixE5QuzWdZVW7XWto5CElafgwLapiVK88Fjs7T6mi5XWtp\n5yAkafkxLKhhBgc3ksuNZLbJ5UYYHNxYpx7VTjsHIUnLj2FBDdPT001n5wEi9s36esQ+1qw5SHf3\nlXXu2eK1cxCStPwYFtQwEcGuXaOsX38TudwQcAQ4BRwhlxti/fqb2Llze0s+NtnOQUjS8mOdBTVU\nR0cHk5M7mJjYw/DwVo4fP124qLt7S0sGBTgdhPL5AQ4duqQ82PEC4AFyuRHWrDnYskFI0vJjWFDD\nRQS9vT309vY0uis11a5BSNLyY1iQllC7BiFJy4tjFiRJUqaKwkJEvCUivhwRJ8vL3oj4hYz2vRFx\nasbyeET4vJgkSS2i0

Q7aXpEo5ZqHGUkrk8wMUCkMUi1soTbl8FrCaYnELhcIQ+fxAVWMIssYj+Ay+JGmpeGWhxpbqG/58\nVyt++MPH8Rl8SdJS8MpCjS3FN/yFXK04cuSbLOQZ/PPP/+kF71eSJDAs1NxSVNlbyNWKxx+/lKc/\n/RPzvNNHOHDgC7zqVQM+VilJWjBvQ9TY6Sp7qzNaVVZlr3S1Yiizzfe+90esWHEdEdeT0oZZWnwW\n+DsefPB6HnzwzfhYpSRpobyyUGNLUWVvYVcrLuDCC5/LRRe9E/h94AhwqvzPdwO/DWwHbqaWgy4l\nSe3PsFBjS1Flb6FzAqxa9Rye//znARuArcD15X+eB7y2vP7JnNpYkpTFsFBjU1X21q+/iVxuiOnf\n8HO5Idavv6niKnuVXK04fvxhSsHgT4G/Kf/zy8CmzO19rFKSNBfDwhLo6OhgcnIHt99+Nddcs5Wu\nruvp69vKjh15Jid3VDw2oJKrFbNfhXBqY0lS9RzguERqWWWvkjkBBgc3snfvSPkRyym1H3QpSVo+\nvLLQIhZ6tWL2qxAbAac2liRVxysLLWQhVytmvwpxBaWBjpPAz82yzdRtjC1Pek2SJMNCG5q6ClGa\nmXArx4+f4FnPOo9vfONdPPTQyygWN+HUxpKkhTIstKnZrkKcntp464ypjbcYFCRJczIsLCNObSxJ\nqoYDHCVJUibDgiRJymRYkCRJmQwLkiQpk2FBkiRlMixIkqRMhgVJkpSporAQEW+JiC9HxMnysjci\nfmGebV4eEYWIeCwi7o+IgcV1WZIk1VOlVxaOAn8ArAO6gM8BfxMRF8/WOCIuBD4DfBa4FPgw8MmI\nuLrK/kqSpDqrKCyklP42pfT3KaXDKaVDKaV3A98DLp9jk7cCX0spvSOldF9K6WPAXwGbF9dtqVS+\nevfucfr6NtHVdS19fZsYH58gpdTorklSW6m63HNEnAX8GvBU4PNzNLscuHPGu

p4pj/\nHvDPM9b9NvBAoz9LKy7AKeDaedrU5Bxa1ysLEfETlGao/OzUulTq+Z3MPbGUE1EtQpXHfOZ7BPB0\nsicMU1m1xzwibgCeRyksqAJVHvNfBO4G/iAivhkR90XE8PS6MZpblcf888Cqcsl/IuI84FeBv13a\n3i5rNTmH1vs2xLOAH2P2iaXOn2ObzImoatu9tlTNMZ9pkNKlr/9Vw361s4qPeUS8ALiZUi33U0vb\nvbZUze/584Fu4MXALwFvp3RZ/GNL1Md2U/ExTyntBd4I/GVE/DtwDChSurqgpVGTc6hPQyhTeVKv\nIeBXU0r/0uj+tKOIOIvSxGnvTSkdnlrdwC4tF2dRuoz7+pTS3Smlvwd+Fxjwi8jSiIifoXTP/A8p\njYd6FaWraf+jgd3SAlQ9RXWV/gV4nNknljo+xzbVTESl06o55gBExOsoDTx6bUrpH5ame22p0mP+\ndGA9sDYipr7VnkXpDtC/A/mU0u4l6mu7qOb3/BjwYErpe9PW3UspqD0XODzrVppSzTF/J/CPKaWp\ncv9fKU8BsCci/ltKaeY3YC1eTc6hdb2ykFL6IVAArppaV74ffhVzT3rx+entyzInotJpVR5zIqIf\nGAFeV/7GpQWq4pg/ArwEWEtptPKllOZU+Wr53yeXuMstr8rf838Enh0RT5227iJKVxu+uURdbRtV\nHvOnAj+asW5qGgGvpi2N2pxDGzB689eA7wMbgRdRuvz0beCny6+/D9g+rf2FwHcpjei8iNLjIv8O\nvLLRI1FbZanimL++fIzfQimBTi3PaPRnaZWl0mM+y/Y+DbHEx5zSOJxvAH8JXEzpkeH7gE80+rO0\nylLFMR8AflD+2/I84Argi8DeRn+WVlnKv7eXUvpycQr4nfLPq+Y45jU5hzbqw74NOAL8G6V0s37a\na38OfG5G+x5KCfbfgH8Gfr3R/8FabankmFOqq/D4LMufNfpztNJS6e

/5jG0NC3U45pRqK9wBfK8c\nHP4YOLvRn6OVliqO+W8B/698zL9Jqe7CykZ/jlZZgN5ySJj17/NSnUOdSEqSJGXyaQhJkpTJsCBJ\nkjIZFiRJUibDgiRJymRYkCRJmQwLkiQpk2FBkiRlMixIkqRMhgVJkpTJsCBJkjIZFiRJUqb/DzjG\nuFavUES/AAAAAElFTkSuQmCC\n",
"text/plain": [
-       "<matplotlib.figure.Figure at 0x7ff77c270290>"
+       "<matplotlib.figure.Figure at 0x7fce59e405d0>"
]
},
@@ -149,7 +149,45 @@
},
{
"cell_type": "code",
-   "execution_count": 31,
+   "execution_count": 6,
+    "collapsed": false
+   },
+   "outputs": [],
+   "source": [
+    "def plot(idx, x, y):\n",
+    "    global gx, gy, axes\n",
+    "    # print the ground truth line\n",
+    "    axes[idx/5, idx%5].plot(gx, gy, label='y=f(x)')     \n",
+    "    # print the learned line\n",
+    "    axes[idx/5, idx%5].plot(x, y, label='y=kx+b')\n",
+    "    axes[idx/5, idx%5].legend(loc='best')\n",
+    "\n",
+    "# set hyper-parameters\n",
+    "max_iter = 15\n",
+    "alpha = 0.1\n",
+    "\n",
+    "# init parameters\n",
+    "k, b = 2.,0."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "source": [
+    "SINGA tensor module supports basic linear algebra operations, like + - *
/, and advanced functions including axpy, gemm, gemv, and random function
(e.g., Gaussian and Uniform).\n",
+    "\n",
+    "SINGA Tensor instances could be created via **tensor.Tensor()** by
specifying the shape, and optionally the device and data type. Note that every
Tensor instance should be initialized (e.g., via **set_value()** or random
functions) before reading data from it. You can also create Tensor instances
from numpy arrays,\n",
+    "\n",
+    "* numpy array could be converted into SINGA tensor via
**tensor.from_numpy(np_ary)** \n",
+    "* SINGA tensor could be converted into numpy array via
**tensor.to_numpy()**; Note that the tensor should be on the host device.
tensor instances could be transferred from other devices to host device via
**to_host()**\n",
+    "\n",
+    "Users cannot read a single cell of the Tensor instance. To read a single
cell, users need to convert the Tesnor into a numpy array.\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 7,
"collapsed": false
},
@@ -158,28 +196,28 @@
"name": "stdout",
"output_type": "stream",
"text": [
-      "9.18032938639\n",
-      "6.99725952148\n",
-      "5.33929697673\n",
-      "4.08013102214\n",
-      "3.12383524577\n",
-      "2.39755630493\n",
-      "1.84596570333\n",
-      "1.42704442342\n",
-      "1.10888010661\n",
-      "0.867236455282\n",
-      "0.6837073644\n",
-      "0.544314193726\n",
-      "0.438440195719\n",
-      "0.358023166656\n",
-      "0.29693962733\n"
+      "8.4457921346\n",
+      "6.52662099202\n",
+      "5.04807383219\n",
+      "3.90897369385\n",
+      "3.03137512207\n",
+      "2.35523325602\n",
+      "1.83428827922\n",
+      "1.43290456136\n",
+      "1.12362861633\n",
+      "0.885310490926\n",
+      "0.701658376058\n",
+      "0.560119374593\n",
+      "0.451024500529\n",
+      "0.366924413045\n",
+      "0.3020805041\n"
]
},
{
"data": {
-      "image/png":

QPgrbfgtNPgoYfg9de33286McD5Ks89Bzff\nDMOHw8UXJ9+Xl2EVdYEPI1MSOwH/U9WRHvZv+MDy5XDDDbBoEXzxBTRsWOkuTScZyqBBcOut0L69\ne1+1asymUTUgIjcCqqqvqeonInK2iMzHpV1ql5Y/wkgLn30GbdrA7bfDvffCDrGHaUwrWcyGDdCx\nI3z9NYwbB0ceGbOp6STL2boVbrkFJk6ESZPggAMq159nzrGq/gI08qq/RMnJybG+Pe7//fed2K67\nzr0vx9mJG791AuE9n0Hte/Vqp5NvvoEhQ6KPAJYklgZU9dUy27ckbZQHBPX39rv/yvRdUABdusCb\nb8LAgdCsWfntTSvZ2/e8edCqFRx9NEyZAtWrx25rOkl9/0Hu+6+/4NJLYccd4auvoEaNytskqumL\nPRcRTefxjOQocnamTYO334bGjaO3ExE0uQV5FWJaCQcjRsD117vpq27dYNddt29jOjHAzUJdeSWI\nwP/+B3WjJNEyrRgA/fvDbbfBk0+6wRkpowjTiVHEwoVwzjkuROuFF2CnMkO+yWrFcs0apfjkExc6\nUacOzJgR2zE2spu8PBduc/PN7gHqpZeiO8aGATB2rFuz0LSpC6mI5hgbxqZN0KEDPPIIjBrlHrzL\nOsaGUcTkyXDyye5e1KPH9o5xZfA6lZsRUvLy4K67YORI5+ycdprfFhlBZfx4aNvWPal/+y3svrvf\nFhlBpbAQ/vMfd+Pq2xdatPDbIiOo/Pyzmxo/6CAXomXXFaM8Bg1yD1J9+sC553rfvznHBuPGQbt2\nztmZNQtq1vTbIiOIbNwIDz4IAwbAa6+l5oJkZA6//w5XXw3r1jlnZz8rt2DE4MMP4cYbXTaKW2+1\n0WIjNqrugbtXL5cR6eijU3Mcc46zmCJnZ+BAePVVc3aM2HzzDVxzDRx1FMyeDXvt5bdFRpCZOBFa\nt3avJ56AKlX8tsgIIlu2wH33

cePPVU+B1jIzV88YVbGb7zzq4iYtgdYyN9qMJ//+tS\nKD33nIsBDJNjbKSP336D005z15hp08LlGEdDVR9Q1QNU9W+4sJrRUXLnfwS0ibxvBYxOp42ZxNdf\nO83ceKMr8BFUx7gymHOcYj7/3Dk7u+ziLkRNm/ptkRFE1q93cVtt27rsJa+8AtWr+22VERaKpjff\nesvF/V10kd8WGUFl1Ci32O7MM13p8EyovBoLEekqIudGNnsDtSOx6XcA9/lnWXh57z33AP7aa3Db\nbX5bkzosrCJFrF8P997rQil694YWLfy2yHtsCtQbJk1y8aEnnuhG/kK6GCYmppPUMnMmtGoF//qX\nGy0O86yUaSV1FOW5fuMNV/WueXO/LUoe00n6UXXVWHv1cuthGjXy26L4sGwVAWLiRDcC2KQJzJqV\nec6O4Q2bN7tcom+9BT17wsUX+22RESZUnaPzwAOujPgVV/htkRFUVqxwC3sLClwYRb16fltkhIkt\nW1wIxaxZMHlycPKkpxJzjj1k82bIzXXOzssvm7NjxGbmTLjmGvjb39z7unX9tsgIE+vXu0wmM2bA\nl1/C4Yf7bZERVMaPdw9ObdtC167Br4poBIvVq50vU6uW09Juu/ltUXqwmGOPmDnTxXH98IN7ujLH\n2IjG1q3wxBMuzObuu+HDD7PPMRaRaiLytYjMEJHZIpIbpU0bEVkZKQU7XUSu9cPWIDJnjkuyv9NO\nLjNFJjvGppXkKSx00+CXXupmGB5/3BxjIzHmz3cz4McdB4MHZ49jDDZyXGm2boVu3eCll1x1mKuu\nCmeeSCP1zJvnYotr1nRTm/vv77dF/qCqm0WkuapuiKRU+kpERqjqlDJNB6hqBi/5SJx+/VzxoKee\ngnbt/LYm9ZhWkuOPP9zM1Jo1rlx4/fp+W2SEjS+/dGsZunZ1IRXZho0cV4J58+CUU9xUw7Rprjyr\nOcZGWQoLXUxo06bOO

R45Mnsd4yJUdUPkbTXcQ3q0FTD2vynCxo1www3w2GMwenR2OMZFmFYSY/Jk\nN9J3xBEwdqw5xkbi9OsHLVvC229np2MM5hwnRWGhS3rdtKmL4/rsM3N2jOgsXAinn+7S30yeDB06\n2AMUgIjsICIzgOXAKFWdGqXZxSIyU0TeE5GsvcX/9BOcdBKsXetGAY86ym+L0otpJT5U3X3p/PPd\nw/gzz0CVKn5bZYQJVbdu6uGHYcyYzMyyFS8WVpEgCxe6UZstW5yz8/e/+22REURU4c034b77XGzx\n3XdbvF9JVLUQOEZEagJDRORIVZ1Toskw4F1VzReRG4G+wOnR+srkUq+DBrkHqq5dXXXNTHuwiqfU\nq2mlYtasgWuvhcWLXYGGgw7y2yJv8aoksBGbTZuchhYscL5Ntq2FKYvlOY4TVZev+P77t9Wgz3Zn\nx3JNRmfZMrj+eli6FPr2zb6RvrJUpBMReQRYp6rPxdi/A7BaVWtF2RdanZTH5s1wzz3w8cdu1uH4\n4/22KD2YVhJn+nS36O7f/3aVEatV89ui1BOlfHQ1YDxQFTfo976qdi3znTbA08CSyEc9VPXNKH1n\npE7KY9UqV26+fn2XbWuXXfy2yDusfHQKWbYMzjvPpWcbM8bdtLLdMTaiM3CgS45+7LHu6TvbHeNo\niEhtEdk98n4X4F/AvDJtSmZivQAoOVKY0Sxc6MqGL17sHJ9scYyjYVqJjSq8+qpzip94wuVKzwbH\nOBqquhlorqrHAI2As0TkxChNB6jqsZHXdo5xNjJvnstIkZMD/ftnlmNcGSysogIGDnQlEm+80aXd\nshguIxp//AEdO7oS4R9/7FJtGTHZB+gbGeXbARioqp+ISFdgqqp+DNwmIucD+cBqoK1v1qaRjz6C\n665z1TXvvDPzwiiSwLQShXXr3D1p9mz46is49FC/LfIfW7iZOF984XJgd+/u1k8Z27Cwihj88YeL\n

9Zs1y63YNGdneyyswjF8uMskcNllbgTHnrxLYzqpmPx8ePBBGDDAvU4+2W+L/MG0UjHffedSbJ18\nMvTokZ3Xm2g6iTxATQMOBnqq6v1l9rcBngRWAT8CnVR1CWXIFJ1URO/errrmwIFu1DhT8T2sIp5k\n7WHho4+gYUPYbz83rWmOsXdkkk7WroX27eGWW+Ddd128XzbeqIzK8dtvcNppbhRw+vTsdYyNiunb\nF5o3dwt9e/e2601JVLUwElZRH2gsIkeWaTIMOFBVGwFf4BZuZh2FhU4/3bq5XMaZ7BhXBs/CKhJI\n1h5Y1q51U5mjRztnp1kzvy3KPDJBJ+Biz9u1gzPOcLMLNWr4bZERRkaNcsUabr3V3bB2sFUgRhQ2\nbHAamTjRXXv++U+/LQouqrpWRMYCZ1Ii/lxV/yzR7HWge6w+MjWryYYN7nqzciVMmgS1a/ttkbcU\naiGjvhjFpAmTKt2XpzHHccb8BJLRo10akxYtzNlJNWHWyYYNLmPJ4MHw2mtw9tl+W2SEkYICePRR\nV9a3f38bvTFi88MPLoziqKNg6lSoXt1vi4KHiNQG8lX1rxILN7uVaVNPVZdHNstduFnSOc4Uli93\nObAPO8w9lGfa4s2Xp75Mx0860ni/xkzuMrn4865du5bzrdh46hxHifmJlqw9UJR0dl5/Hc46y2+L\nMp8w6gRc/tBrrnHVp2bNgj339NsiI4ysWOEWwai6ypr16lX8HSM7GTjQhW09/rhb12ALNGNiCzfL\nYdYsl3GrfXtX4CPTdCRdt/1B49uN96RPr0eOK0rWHqjpCnN2EsOrROzx6ASCo5UtW7aN8r30kssp\nasTGEvbHZtw4uPJKF5LTpYulhDSis3mzy6X/2Weu3Pwxx/htUbBR1dnAsVE+zy3x/gHggXTaFQRG\njIA2bVzVxMsv99sab5n621ROfMNl7Nuvxn4s6bTd+sqkSVm2imjJ2oOyCrSks

uBtUq1Yu/3X//pmXS9Rr4slskola2brV\nzVC99Ra89x6ceqovZvhO3uY8anarWbz9xTVfcNpBp23XzjLglM/QoXD99dCrF1x8sd/WeMdRrxzF\ndyu/A6BLsy7k5qSvoG7KslVEPVgaVoGqugtO584uFU7nzpYuKVWEfcXw8uVw442wcCG8844rGW54\nT0U6iZHZZgTQRVW/jsSaLlPVvaN8NxAry1Xh1VddDtGePS3dX7Jkg1aWLXOjezvuCP/7H9St67dF\n/lByNBDciGDc3w35vccrVOH55+HZZ2HIEDcLkSmU1MeWh7ZQZcfkhsJ9z1YRBJYvd1OYL74In3/u\nFjiYY2xE4/33oVEj+Mc/YMoUc4zTSZwZSz4C2kTetwJGp8/CxMjLc7mLX3nFrQw3x9g7Mk0rY8a4\nvPrNmrkcxtnoGA+eM7iU47PpwU0JOcaGIz8fOnRwg4GTJmWOY1xWH5qrSTvGlSFjJpAHDXJxou3b\nO8enalW/LTKCyOrVTifffOOetLN5VbiPxFPNqjfwjoj8BPxBQLMPzJ7twiiaNnXxxbvs4rdFGUdG\naKWw0GUr6dkT3n4bzjjDb4vSj6qyw6PbxuOeOeMZ7jr5Lk/6FpFqwHigKs6veV9Vu5ZpUxV4GzgO\n+B24TFUXeWJAmvnrL/cQvsMOMGEC1KxZ8XfCQEmneEK7CZxywCn+2RL2sIrVq115zWnTXOyoOTvp\nI2xTWyNGuLisiy92WQR23dXT7o0YhE0n8fLWWy5G/dlnXeo/o/JkolZWrXJ5i9evhwEDYL/90m6C\n7xzZ80jm/j63eLuyI8XRdCIiu5ZM+QfcVjLln4jcDBylqh0iKf8uUtXtHqSCHlaxcKHLSJGT4zLi\nZMIamRXrVlDv2W2FBLycScjKsIoRI9x0+N57w4wZ5hgb0cnLgxtugJtvdqM2L71kjrGRPBs2wLXX\nuop3Y8eaY5wM81fPR7oKz0zM7Iw

EX33lwigaNXIhFdnmGI/8eSTSVYod48V3Lk5ZCEWcKf/6Rt6/\nD5yeEkNSyNdfu+xbN9zgCnxkgmMsXSVljnFlCOVPm5cHd93las6/8w40b+63RUZQGTfOZS3JyYFv\nv83uilNG5fnhBxdGcdRRMHUqVLeiXQlRUFjATo9tu+2cflDo/JO4UHUzCk8/Db17u5G+bKPkFPlu\nVXZj3QPrUns8F3ozDTgY6FlRyj8RWSMie6rq6pQa5hGDBrkY4z59MkdPJTWy5M4l7FczOE+PoXOO\ni5yd5s1dCehMibUxvGXjRnjoIZdO69VX4bzz/LbICDsDB7oQrieecOE5VmEzMUreCGtUrcHa+9f6\naE3q+POUF/0DAAAgAElEQVRPd49atswt9s22Cpu1utXir81/FW+nayQwE1P+gXvQ+s9/XJq2UaPc\nLETYGfDdAC4ffHnxtpca8SrtX2hijoucnQEDnLOTKU9OYSao8YFTp7qKiP/8p6t4V7u2x8YZCRFU\nncTL5s0uLeRnn7nRm2OOSenhMo6SJV8B1t2/jt2q7ha1bdi18s03bqHUeee5UeNsWhi+NG8p+z23\nbeTvtXNf4/rjrk/JsbIh5R/Ali0u3eisWfDRR7Dvvn5bVHlKPiTfcsIt/Pfs/6b2eEleU0Ixcjx1\nqovra9jQiSRbqwgZ5bNlCzz+uHt4evFFaB24NeuZjapy0cCLGP3LaFbfu5qddgjF5aVcFixwYRQH\nHeQW/VpYTvwsy1vGvs9tu5v3Pr831x5zrY8WpQ7VbaXnX3kFLrnEb4vSS2VyFntyfJHaQL6q/lUi\n5V+3Ms2KUv59TcBT/oFLNtCypbvmjB8Pu0V/ngwNWwq2UO3xbVWRCh8pRAI8/Rbou5c5O0a8fP+9\nWxFer55bnJkJT9hhoWyKpvMOPa9cx1hE6uNSKtUDCoDXVfWlMm2aAUOBBZGPPlDVxz02vVyGDHEL\nXx58EG67zc

IoEqGksyQIhbmFyfUTAq3k5bkwm3nzXL7Zv/89XUf2n47DO/LyNy8Xb294YAO7VPEl\nn2FGpPwrYv58OOccNwPRvXv46zWc1PskJi+ZXLwdlEV35RFY5/i779xo8T77wMyZ7l/DKEtBwbaF\nL//5j8tzbU5Meii7uApg7X1rqVGtRkVf3Qp0UtWZIlIdmCYiI1W1bHGH8ap6vncWx0d+Ptx3Hwwe\n7KYyGzdOtwXhpembTflq8VfF2x6MDgVaK7NmuVHi5s2dY5wtea63Fm6lymPbCjOce+i5fHT5R77Z\no6qzgWOjfJ5b4v1mIPAler780s1Wde3qQirCTskH5UntJ9GkfjjSigXOOS7p7HTr5lImmbNjRGP+\nfGjb1qWzmToVDjzQb4uyg/yCfKo+XjqYcv0D69m1Snz58VR1ObA88n6diMzFrSQv6/Ck/X/+4sVw\n2WWw554wfbr716iYcQvHkdM3p3h7xo0zaFSv8iuHgqoVVZc14N57Xa7ZK69M59H9xe8QikymXz+3\nvqFfP2jRwm9rKseERRP4vz7/V7wdNp0EyjkucnaqVDFnx4iNqlu5+/DDbsr79ttdpSAjtWzauold\nnig9NJaIUxwNETkQaISLAyxLExGZASwF7imz8txzRoxwWQbuuAM6dzZNxUPZEcTL/3k577Z8NyXH\nCopW1q+Hjh3dPWrcODjyyFQdKVi8/e3btBnSpnh75o0zObre0T5alDmoQm6uS007Zgz84x9+W1Q5\nSj5A7Sg7svWRrT5akxyBcI6LnJ1HHtkW32c3JiMaixe70Ik1a1zZzMMP99uizGfdlnXU+E/pUIlN\nD26i2k7VYnwjPiLT5O8Dt6tq2SSo04AGkYpXZwFDgEOj9VPZtEtbt7obU9++LhvF//1fxd8xvBlB\njDftUlC0Mneum/I+9liXpi3si6Tixe/RYq/ScwWRTZvcDPmCBa4Efd26fluUPGXXn1R28MR

PfE/l\ntmSJE8aaNa56mTk74SGdaZdU3VP13XfDrbfC/fdnRnWgILNm0xr26L5Hqc/yH85POAtFjFKvOwEf\nAyNU9cU4+vgFOK5swv7Kpl1atgyuuMJp6X//c9U2jfI54fUT+GbpN8Xba+5dw+47e5PGI8haefdd\nN0uVTWsb/HaKYxH2lH9FrFoFF14I9eu7cvRhjlm/YvAV9P+uf/F22LXi2fisiNQXkdEiMkdEZovI\nbeW1L3J2jj0WTj0VJk40xzgbSFQnACtXupQ2Tz/tcs0+/LA5xqlk1fpVSFcp5RgXPFKA5qqX6dne\nBObEcnZEpG6J9yfiHuQ9rWQ1Zowr7dusGXz6qTnGFTFn1RykqxQ7xlc3vBrNVc8c43LwVSubNsFN\nN7k0bZ9/Dtddl/mO8U9//FTKMX7xzBcD4+xkCnPnQpMmrnpr//7hdoylqxQ7xk+f8XRGaMVLFyPe\nVcWsXOlWYc6f70pAZ0LFFyNu4tYJwIcfupKZbdq4C0i1ys3kG+Uwe8VsGvZqWOqzVOSiFJFTgCuB\n2ZE4UQUeABoAqqqvAZeIyM1APrARuMyr4xcWwpNPQs+ebrbqjDO86jlz8WsE0W+t/PyzC6M4+GBX\n4CMbKrIGdbQ4kxg9Gi6/3KVpa9vWb2uS57e1v1H/+frF25mklZSFVYjIEOC/qvpFic908GClY0fn\n7HTtas5OmPFiaiuaTiKf69VXK5MmuemmU06pzFGM8pi8ZDIn9T6p1GdeXuSCNAW6apXLh71hg6u2\nafmwy6eso5TqxP1B0soHH7gR44cfdmXDM320OOetHMb9Oq54e+ODG9l5p519tCg2QdJJovTuDQ88\n4MrR+1iVutKE5SEqUBXyyltVfO+9Ln/oySen4shGmKhg9Tk1a7oc19my6CXdjPp5FC36lc4XFNQL\nnBd89ZUrJHTlla64kIXmxKbHlB7cOuLW4u1hrYdx3mHn+WhR+tiyxW

UrGToUhg+HE07w26LUUjYL\nTeP9GjP5usnlfCN4hKFYTGGhWyvzwQcul/GhUZeMhoOSjvEvt//CgbUO9M+YFOH57aGCVcW0atWF\nkSNdOEUyq4UN//ByxXBFOgGoXbsLTz/t3ptWvGPwnMFcMqh0fVsvneKgrSxX3ZY7vXdvOPdcvy0K\nLtHS9WXyA1NZfv3V5bnee2+X53qPPSr+TpgJy+hfHAS6WMyGDW7GauVKVyymdu10W+ANnT7rxPOT\nny/eDrFeKsTTsIqKVhWncxWo4R2fL/icFu+0YNjlwzj30G2eRbLTFfGsPjeteM+bM96k/bD2pT5L\nx8XNzynQP/90MX3Ll8N770GDBqmwIjMIgqPkp1aGD3eZk+65B+66K7PDKO4ZeQ/PTHqmeHvKdVM4\nYb/wDJFXpJMYYZ3NgLtVtdwpEK/vPcuWwQUXwGGHwRtvhDeUtOT14aBaB7Hg9gXltA4OQQmrKHdV\nsREuOo/qzNMTny7ePmD3A7zq2nSSRu4ddS9PTXyq1GeZ/MRfxNSpbhTw/PNd/uKqVSv+Tjay8+M7\ns7lgc/H24jsXU79m/XK+kVls3eriivv1c1Pemb6+IQgPQakkKMViAGbPdjNV110HDz0UzgeuDfkb\n2O3JbbGNqV53EBQ8c45jrSpW1U+9OoaRHspePHuf35trj7nWm75NJ2nj2qHX0mdmn1KfZdqNMBqq\nLhPFo4/Cyy/DJZdU/J1s5Jul33DC69tGC3MOzGFMmzE+WpR+li51cei77OLCKOrU8dui1JHpTjEE\np1gMuIqbbdrAiy+6zBRhJIya8Sqsz/ciIEYwKPt0CPDZVZ/R4uDYBd7DvGI4kzn33XMZ/tPwUp/5\neVFLp07WroXrr4cff3SjxX//eyqOGn6CetNLp1Y+/xyuucalinzggcytyjpx8UROeXPbcPiD//cg\nj5+WtnVoKSHIxWLAPZw//ni4kw+UvEa8e/G7X

H5UOD38pK8pqpq2lzvc9jRo0EBxI4j2SsOrQYMG\nxb/9zGUzlS6Ueq1YtyLqeSpL5HymVSuJYLryT1fl6QSoD4wG5gCzgdtiaOAl4CdgJtCoIp3MnKl6\nyCGqN9xg5z4o5z5R0qGVrVtVu3RR3Wcf1S++SMw+01UwdFVWJ5Hz+zbwXLRzH9lft8T7E4GF5ekk\nGbZuVb39dtXDD1etX9+0ElStxPMKRDKjX3/9tUiURhoQEV6Y/AJ3fnZnqc8zLZbIdJVeEtBOhSvL\nI9OeB6vqISLSGOgFNInWmSq8+Sbcdx88/zxcdRWI2LlPJym8bniqlZUrXSq//HyYNg322ScxY+ya\nkl7i1ZXfxWIA8vJcKfqNG13F3z33NK2kE6+vQYFwjo30U+QYC0JhbqHP1hjZhKouB5ZH3q8TkbnA\nfkDJtEsX4EaCUNWvRWR3EamrqivK9te2rateNn48HHFE6u030ofXWjnuOJdS69FHLc91JqGqXwE7\nVtCmJ9AzFcdfsgTOO8/p65VXoEqVVBzFSCcZGmVlVESH4zuguWqOseEr5aws3w9YXGL7t8hnUZky\nxRzjTMcLrbz6qisdbo6x4RXTpkGTJm7R3euvm2OcKdglIkvpeU5KHqANI24qWFkebY4s6hzlgQda\nsZiwEu/Kcq+0MmVKF6ZMce9NK+EhaIWFihg61KVp69ULWrb02xrDSwKRrSKymjBtdmQ7Xv3eQc9W\nYbpKL7F+72RWlotIL2CMqg6MbM8DmpWdKrdrSjBI5TUl1VpJwr5K9WHETyLXFA+PWaFOVN36hmef\nhSFDopcYN62kF6+1YmEVaWDlypWceuqp7L777txzzz0AzJkzhxOi/Y+KQsuWLRk5cmQqTTRCSMh1\nVVEhmGHANQAi0gRYEy2GNFsJ+blPFNNKmsgyXSVFfj7cfDO89ZYrBR3nT5NRZIVOkklxkeyLGClS\nYn2eKTz22GPasmXLUp+1

bNlS33vvvbi+P2XKFD3uuOM8s8er35skU6TE8/LCRtNV+aRLV2V1ApwC\nFODSbs0ApgNnAjcCN5Ro1wOYD3wLHKsJ6MTOffmE5ZqSDq0kYV/GEhZd+XXvWbNGtUUL1bPOUv3r\nr+RszwSCphNV77ViMcdp4Ndff+XII48s3l6+fDljx47l3Xffjev7J5xwAnl5eUyfPp1jjz02VWYa\nISOsutI4VpZH2t2SBnNCSVjPfaKYVtJLtugqGRYudKWgc3LghReye1FnNujEwioq4JlnnuGSMvVn\nb731Vjp16hTX99u1a0ffvn3p3r07NWvWZPTo0YwaNYpjjz2WqlWrArBgwQL22msvZs6cCcDSpUup\nU6cO48ePL+6nWbNmDB8+POoxjPBhuspe7NwbqcB0lTq+/tpVurvhBujRI9yOsekkTpIZbk72RQin\nQJctW6bVq1fXvyJzKFu3btW9995bp0+frh06dNBatWrpHnvsUfxv0fujjz66uI+2bdvqww8/XLx9\nzz336C233FLqOG+88YYeeeSRumHDBm3RooV27ty51P7nnntuu2mMZPHq98bCKpImm3Tlh07s3Afj\n3CfZj11TkiCbdJVOnQwcqFq7tupHH3lju99kok5UvddKaEaORSr/SoZ69epx6qmnMmjQIABGjBhB\nnTp1OOaYY+jZsyd//vknq1evLv636H3RE1M01qxZQ40aNUp91r59ew455BAaN27MihUrePzxx0vt\nr1GjBmvWrEnujzBiYrrKXl3Zuc/ec59KTFfp15WI1BeR0SIyR0Rmi8htMdq9JCI/ichMEWlUXp+q\nLif23XfDqFEupMJbm/3RSjbrJBFC4xyrVv6VLNdccw39+vUD4H//+x9XX311pf6WPfbYg7y8vO0+\nv+666/j++++59dZbqVImk3heXh61atWq1HGN7TFdZa+u7Nxn77lPJaYrX3RVVGb8SOAkoKOIHF6y\nQck

y47gFnb1idbZlC1x7LQweDJMnQ6Ny3ejk8EInyWoli3USN6Fxjv3kwgsvZNasWXz//fd8/PHH\nXHXVVQDcfPPN1KhRg5o1a5Z61ahRg6OOOipmfw0bNuTHH38s9dn69eu54447aN++PV26dNnuiWru\n3LkcffTR3v9xhm+YrrIXO/dGKshWXanqclWdGXm/DigqM16SUmXGgd1FpG60/v79b/jzT1eSft99\nU2i4T2SrThIimViMZF+EMD6wiOuvv14bNmyop59+esLfLRufs2LFCq1du7Zu3ry5+LNrr71WW7du\nraqqN9xwg1566aWl+jj00EN16tSpSVpfGq9+byw+sNJkg67K6gToDawAZmn0c98MWINL2zUdeCha\nO7VrSvF2UM99kv2kVStJ2BdoskFX5d17gAOBhUD1Mp9/BJxcYvtzoqT9A7RTJ9WtW1Nje1DIJJ2o\nJqeV8l42chwnbdq0Yfbs2VxzzTUJf1fKBAbtvffenHbaaQwZMgSAYcOGMXLkSF555RUAnnvuOWbM\nmEH//v0BmDp1KtWrV+f444+v5F9hBI0s1VUf4N8VtBmvqsdGXo9X0DaUZOm5TxTTSoJks668KjNe\no0YXHnusC126dAlk2WovyFSdjB07li5duhS/kiYZjzrZFyEe5Vm0aJHutttumpeX50l/c+bM0RNP\nPDGuti1bttRPP/3Uk+Oq2shxkMgGXUXTCdCA8kcDP4q2L0rbhGwJEtlw7pPsJ61aScK+QJMNuoqh\nk52AT3GOcbTz3wu4rMT2PKBulHYptT0oZJJOVL0fORb33cojIr2Bc4EVqtowRhuNdryg1yAvLCyk\nU6dOrFu3jjfeeMNvcyqNV793MjXL49FJpF1UrSRhX6X6SCXZoqtoOhGRBjinZjsNiEgz3OjPEmAp\ncI+qzolxTLumBIBUXlNSrZUk7KtUH6kkW3QVQydvA7+ratSEvSJyNtBRVc+JlBl/

TJ\n6ZLUwcN64sL8nyVJ4tZJqgjr+Qxr31GIVwNxPe1/vuBznv/382iuct2x13lmZJh/7zDbXgZPtZIq\nwvp7h7XvaKjqBODPcppcALwdafs1sLuI1I3V+KtFX7Hrky6zSasjW3mSjcL+36e/72TxMuZ4P2Bx\nie0luAtbKfZ9dl+WrVtWvL35oc1U3TEcVWUMT4hLJ0ZGE68GLhaR/wN+BDqp6pIobSyFUmbjqVaM\nrKasln6LfLaibMNrh15Ln5l9AFh3/zp2q7pbWgw0goOXI8fRnty3u2stW7eM1859Dc1VNFfNMc4+\n4tKJkdHEo4FhwIGq2gj4AuibcquMIGJaMbwi7ntPn5l9eLbFs2iummOcpXi2IE9EmgBdVPXMyPZ9\ngJZcPCEi5gRlGIkGusejk8jnppUMoqRO4tVAifY7AKtVtVaUfaaTDMO0YsRDtHuPiDQAPoq2IE9E\negFjVHVgZHse0ExVV5RpZzrJMPzOczwV+HtEnMuA1sDlJRukKmm3ESoq1AmYVjKcCjUgIvVUdXlk\n8wJgTrSOTCcZj2nFSAQhdvz5MKAjMDDy0LWmrGMMphPD4ZlzrKoFInILMJJtKXfmetW/kRmYToxY\nGgZHzKIAACAASURBVBCRrsBUVf0YuE1EzgfygdVAW98MNnzDtGLEi4i8C+QAe4nIIiAXqIqbaXhN\nVT8RkbNFZD4ulVs7/6w1gk5ay0cbhmEYhmEYRpDxckFeMSJypojME5EfReTeKPurisgAEflJRCaJ\nyAEe9n2niHwvIjNFZJSI7B+tn2T6LtHuEhEpFJFjvexbRC6N2D5bRPp51beI7C8io0VkeuR3OSuB\nvnuLyAoRmVVOm5ci53KmiDTy0O6kdRJn/6aV7fcnpZVU6iROu+2aEr1NoHQS+a5pJYm+S7TLCq2Y\nTpLru0S7rNBJ5Lvea0VVPX3hHO75QAOgCjATOLxMm5uBlyPvL8MlcPeq7

N559fblPTShaTlwdXXAEbN8KkSVCrVsymppMsZ9QouPJKeO45uOqq\ncpuaVrKcb7+FM8+EZ55xmomB6STLUYVOnWDcOBgzBvbaq9Idpm6Iv+zLHS41jBkzxvr2uP/CQtVu\n3VTr11edNm37/ZHzaVqxvnXxYtVGjVTbt1fdsqX0PtNJevtOdf+V7fvVV1Xr1lUdN277faYV67sk\n33zjtDJwYOnPTSfp7z/IfRcUqHbooHrCCaqrV5fel6xWxH03PYiIpvN4RvJs2QIdOsC0afDRR1C/\n/vZtRARNItA9Hkwr4WHaNLjgAhdOcffdIGUUYToxwIXc3Huvu54MHw5///v2bUwrRhFffw3nnQev\nvgoXXVR6n+nEKKKwEG68EebMgU8+gd13L70/Wa3Em63CyCL+/BMuuQR22w2+/BKqV/fbIiOoDB0K\n110HvXpBy5Z+W2MElfXr3ZT4mjUu5GbPPf22yAgyEybAxRdDnz5wzjl+W2MElYICaN8efvkFPvvM\nW18l3jzHRpbw889u4d3RR8OHH5pjbERH1cWLdujgntbNMTZisXQpNGvmYtBHjjTH2CifsWOdY9yv\nnznGRmy2boWrr4YlS9w9yGtfxZxjo5ivvoKmTeG225zjs+OOfltkBJH8fLj5ZnjrLTcKeMIJfltk\nBJVvv4UmTbaNAlat6rdFRpAZNQpatYKBA6FFC7+tMYJKfj5cfrmb5f7oIzfL7TUWVmEALpXSHXfA\n22+7lcGGEY2//oJLL3UPThMmQM2afltkBJXhw6FtW+jZ02nGMMpjxAi45hr44AP4v//z2xojqGze\nDJdd5mKNhwyBatVScxwbOc5yVF3uyAcegC++MMfYiM3ChXDKKXDIITBsmDnGRnRU4aWX4Prr3aiO\nOcZGRQwdCm3auOuKOcZGLDZtcoszd9wR3n8/dY4x2MhxVrN5s1tM9cMPMHky1Kvnt0VGUPn6a3dR\nuu8+F3

nGUcuqUvh8VKaLzYBvH2JAVCxdqx/iLL0JzjJdvX+51\njDc+vzEijjEEtyDvJWBDFvvaoqvNXAUMAt7NqWGG82zbBjVraod4zhzdIbkYoxMHGTpUx6LPmKEd\nH5djtOIQ+/frilS5cmnnuGTJ8F9zweYF5OmtJysH3j2QHS/vCP9FDbZz4oQuI16mDEyYAHlsnH82\njnFsMXeuXnT31VdQt27w50/5bQq1xtQCYN+r+/hv8f/abGHWWHKOlVJlgYbAyCwOaYyuUw4wlWxq\n2xuCY+VKqFFDp8gZOtTejshujE6cIyUFOnbUK4CXL9eacTNGK87x++96rcJdd+npcDsXUGVFhUEV\nqP95fQC2d9zOy7eFWCPW4CjHjkH9+lCxIowZA7lz29OuiHgd45rlahrHOAb4+mudMnTWLKhVK/jz\n+3/fnxbTWgBwsstJSl4UgSd4H6y6Wh8AnYGsxiwvA3YAiEiKUuqIUupiETlkg41xy7Rp8OyzOj9t\nKCs7HcDoxAGOH9erxU+f1tPjTlakCgKjFQdYtEiP5Lz/vs5iEgl8RwNTu6ei3BrnY8iWw4e1Y3zD\nDfDxx/ZV1jyTfIYL+ur69Z1u7cT797xvT8MGx/jyS10lce5cuPHG4M9v+3VbRq8dDUByt2Ry57Lp\nKSwIAjrHSql7gX0islYplQD469kyfqYAv49+PXr08L5PSEggISHBoqnxgwi8954eBVywAKpXd9oi\nTWJiIomJiX732a0TMFqxws6duhT0TTfpmYW8eZ22KHudgOlTnGL4cL34bupUXTgo3Jw8d5KC75xP\neOtvNDCQVtJQSuUCfgZ2isj9GfblAz4DbgD+BR4Wke05sd2QnoMHdbxo7dowcKB96xj2HN/DpQMv\nBWBs47G0vi7EihAejE6cZ+JEeOUVHWtcrVrw59868lZ+2vUT4HBojYhk+wLeBrYDW4A9wAngswzH\nzANu8bzPDezPoi0x

BnURkp59jYp7ff9dT461aQY8e4V8kYwe+\nN8L9r+6nxEWhD3MbrVhDBN56C8aP1yM5V1/trD2+GjjQ+QDFLyyezdE2XM/oxDJbtug+5c474YMP\nwhtyk5yaTN7eeb3bJowidpg7F9q00QViatWyp83Gkxsz88+ZAPzz0j9UKFrBnoYNjnH2rJ7JzJVL\nr23IH+Rzse+95NgbxyiUP8xP8mHC6shxKnC9UqowMEMpVUVENvgcMhOYKCJJSql2wDignr+2Yrlm\nedpT+cCB+l+3c/zscQr3O1+HONCN0ErNcqOVwJw5o+O4tmzR0+OlSjlnS1JKEvn6nC/7HKna9kYn\n1vjhB2jSBP73P71aPJz0WdaHbkvOT4dHwjG2ohVDzpkxQ4dszZoFt9xiT5u+TtCpLqe4IO8F9jRs\ncIzTp3UsesGCOuwmb97A5/gSzrUqkSboVG5Kqe7ACREZmMX+XMAhEcm0pjGWU6R8+qkeCfzyS7j9\ndqetCYxvPNCT1z3JqMajgm4jUIoUo5XMHDigQ27KloVx4+ACB+8n3RZ3o893fbzbTtW2Nzrxz+TJ\n0KGD1kmDBuG9lu9NbUjDIbS/ycYSacHYYVJ02c6XX+rqiXPm2LeA01cvqd1TURGeIjU6sZ+TJ/W9\nKa1AWbDVWN2apSRUrVjJVlEcSBKRo0qpC4A7gX4ZjiktIns9m42BDcQJKSnQubPueL7/Hv7zH6ct\nCky4ptCNVrJn40Y9Pd6iha5Ln8vBh2pfDcx5ZA4Nr7JpybqVaxudZIsI9OkDI0fqhPtVq4b3erE0\n2mNIz8SJOtXfggVQrZo9bbrVCTKEzokTOlvSFVfAqFHBh27FoiasPBuUAcZ5Rm9yAVNEZK5S/0bj\nlgAAIABJREFUqiewSkRmAx2UUvcDScAhoE24DHYTJ07Ao4/CsWPw449w8cWBz3GSY2ePUaTf+bRs\nYRCx0UoWfPstPPII9O+v4/6cxA

UdmdFJFpw9C08/rR+kVqyAMmXCd61gw6qcwKT9C51x46BLF/2A\nZdeaBhf0HX4xOgmdo0d1Or+rr4Zhw4IftHGrJnKKqZAXIrt2wf3366fxYcMgX77A5zjJUzOfYtQv\nOnSi3Q3tGNZoWI7bNFNb1hg1St+kpkwBJ8NhfdMtQeQ6MqMTaxw8qOP9ihfXCzXDWV6+1VetGL9u\nvHfbLTc1f1pRSl3om/YP6OCb9s/j9NwQKO1fLGklECNGQK9e2jH+v/+zp003OUFGJ/Zw+DDccw/c\nfDMMHhybjnHYwioMmVm7VjvG7dvD66+7PyOFr4D/7fwvl1x4iYPWxA+pqfDmm3p1+HffQaVKztni\nq4Fnb3iWTxp94pwxhkxs2qSnNR96SJeYD2fIja8WZreczb2V7g3fxWzApP0Ljo8/hvfe01lw7Arz\niwYnyOgkOP79V6cPrVNHJxEI1o+JBk3kBOMcB8ns2fDEEzB0qE534mb2HN/DpQPP1yCORQG7lVOn\ndAL1Awf09PglDj6PmFXl7mbpUmjeXMcZP/10eK8VjTc0k/bPOh98AB99pDVVoYI9bUaLZoxOrLN/\nv04N2bChfhg3jnFmjHNsERE97dC/v3aQ7UqHEy6Kv1ucg6cPApA3V17OdTvnsEXxw549emahcmW9\nICbYPJF2ceDkAUoOKOndjtVOLJoZNw5ee03rpJ7fRHX2sPPYTsp9UM67HU1aMGn/rNG/v17EuXQp\nlCsX+PhApEoquXudX5nlpGZMekj72LtX9zVNmuiqrLHmGNuVHtLEHFsgORleekl3OrNn2/dEHi58\nxbut4zYuL3J5eK5jYkkzsX493HcftG0LXbs6F3Lzfx//H5sObvJuO9mJGZ1kJjUVunWDSZN0ppvK\nlcN3reuGXcev+371brvxhpaGSfsXPCI6+83EibB4MVx6aeBzAnH49GEufvf8CnO3acboJDR27YI7\n7tCzml27B

Qc38X8f/593220dWcYUKbGo\nlaNHoXlzfXOaPNmeBTDBUmFQBbYd3ebddpsOAhEPOgGdyu+JJ+Djj7VmwkGsJ+M3KbrOc/q0Tida\nuDB8/rk9i35jxTE2OknP4sU6tnjSJLjzzuDOjRVNZEU4K+RZSa49ChivlPoLOIiLV5WLQK9eMGYM\nfPutnvp0I9ESRpGBmNLK1q1w771Qty4MGgR5HCiZ46uDjxp8xAs3vxB5I+wnpnQCukhQv3562vvW\nW8NzjdcWvcZ7P7zn3Y6SPsEQAidPwv33Q+nSMG6cPX1PrDtB8crChfDYYzobTp06wZ1rNJE1cVUE\n5OxZnetv0yZ9Eytd2jFTssVXsDtf3sllhd2ZOiOWn95XrNCLGd54Azp0cMaGWOm4Ylknycl6BmrJ\nEr1Q6oorAp8TCr5aaHlNSyY2mRieCzl