Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download
1347 views
License: MIT
ubuntu2004
{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "This notebook is the data analysis I did for [this post](https://lettertok.com/index.php/2020/08/26/rethinking-hydroxychloroquine/)."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "# [Boulware et al.](https://www.nejm.org/doi/10.1056/NEJMoa2016638)\n",
    "\n",
    "> The incidence of new illness compatible with Covid-19 did not differ significantly between participants receiving hydroxychloroquine (49 of 414 [11.8%]) and those receiving placebo (58 of 407 [14.3%])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.830543061802432"
      ]
     },
     "execution_count": 1,
     "metadata": {
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "n( (49/414) / (58/407))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "The study used [Fisher's exact test](https://en.wikipedia.org/wiki/Fisher%27s_exact_test) to calculate the p-value. In this case, p is the answer to the question, \"Assume that there are $821$ patients, $107$ of whom are sick. We pick $414$ of them at random. We would expect $\\frac{107}{821} \\cdot 414 \\approx 53.96 \\approx 54$ to be sick.  What's the chance that 49 or less are sick, or 59 or more are sick?\"\n",
    "\n",
    "($49$ is the number we actually observed, and $59$ goes the same distance in the opposite direction, since it's a two-tailed test.)\n",
    "\n",
    "For instance, the chance that the first 49 patients we choose are sick is \n",
    "$\\frac{107}{821} \\cdot \\frac{106}{820} \\cdots \\frac{59}{773}$.\n",
    "Of the $772$ patients not yet chosen, $58$  of them are sick. \n",
    "The chance that the next $414 - 49 = 365$ patients we choose are healthy is\n",
    "$\\frac{714}{772} \\cdot \\frac{713}{771} \\cdots  \\frac{350}{408} $.\n",
    "But it was arbitrary to make the first $49$ patients sick, \n",
    "so we multiply by ${414 \\choose 49}$.\n",
    "\n",
    "Let's write a function that does just that."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
   ],
   "source": [
    "def chance(sick_patients):\n",
    "    prob = 1\n",
    "    for i in range(sick_patients):\n",
    "        prob = prob * (107-i)/(821-i)\n",
    "    for i in range(414-sick_patients):\n",
    "        prob = prob * (821-107 - i)/(821- sick_patients -i)\n",
    "    prob = prob * binomial(414,sick_patients)\n",
    "    return prob"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "Let's check that the chances sum to 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false,
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1.00000000000000\n"
     ]
    }
   ],
   "source": [
    "sum = 0\n",
    "for i in range(822): #0 to 821\n",
    "    sum += chance(i)\n",
    "print(n(sum))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false,
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.350871118206300\n"
     ]
    }
   ],
   "source": [
    "sum = 0\n",
    "for i in range(50): #0 to 49\n",
    "    sum += chance(i)\n",
    "for i in range(59,822): #59 to 821\n",
    "    sum += chance(i)\n",
    "print(n(sum))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "And we get p=0.35, just as the paper says.\n",
    "\n",
    "Now let's do the Bayesian analysis I describe in the blog."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
   ],
   "source": [
    "ineffective_proportion = 58/407\n",
    "effective_proportion = ineffective_proportion * 0.9\n",
    "very_effective_proportion = ineffective_proportion * 0.5\n",
    "dangerous_proportion = ineffective_proportion * 1.1\n",
    "very_dangerous_proportion = ineffective_proportion * 1.5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.0712530712530713\n",
      "0.128255528255528\n",
      "0.142506142506143\n",
      "0.156756756756757\n",
      "0.213759213759214\n"
     ]
    }
   ],
   "source": [
    "print(n(very_effective_proportion))\n",
    "print(n(effective_proportion))\n",
    "print(n(ineffective_proportion))\n",
    "print(n(dangerous_proportion))\n",
    "print(n(very_dangerous_proportion))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2180.65375347407\n",
      "294570.250630714\n"
     ]
    }
   ],
   "source": [
    "#Motorcycle versus stock market\n",
    "print( 10000 * 0.97^50)\n",
    "print( 10000 * 1.07^50)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
   ],
   "source": [
    "f(x) = x^49 * (1-x)^(414-49) * binomial(414,49, hold=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}x \\ {\\mapsto}\\ -{\\left(x - 1\\right)}^{365} x^{49} {414 \\choose 49}</script></html>"
      ],
      "text/plain": [
       "x |--> -(x - 1)^365*x^49*binomial(414, 49)"
      ]
     },
     "execution_count": 9,
     "metadata": {
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "show(f)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "x \\ {\\mapsto}\\ -{\\left(x - 1\\right)}^{365} x^{49} {414 \\choose 49}"
      ]
     },
     "execution_count": 10,
     "metadata": {
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "latex(f)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.000171386510778484\n",
      "0.0503315749025967\n",
      "0.0214397799798485\n",
      "0.00504589206399895\n",
      "1.61492837223403e-7\n"
     ]
    }
   ],
   "source": [
    "print(n(f(very_effective_proportion)))\n",
    "print(n(f(effective_proportion)))\n",
    "print(n(f(ineffective_proportion)))\n",
    "print(n(f(dangerous_proportion)))\n",
    "print(n(f(very_dangerous_proportion)))\n",
    "#The n() function makes the output a decimal instead of a huge fraction"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": false,
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.00342773021556968\n",
      "1.00663149805193\n",
      "0.428795599596971\n",
      "0.100917841279979\n",
      "3.22985674446806e-6\n"
     ]
    }
   ],
   "source": [
    "print(n(100*0.2*f(very_effective_proportion)))\n",
    "print(n(100*0.2*f(effective_proportion)))\n",
    "print(n(100*0.2*f(ineffective_proportion)))\n",
    "print(n(100*0.2*f(dangerous_proportion)))\n",
    "print(n(100*0.2*f(very_dangerous_proportion)))\n",
    "#The n() function makes the output a decimal instead of a huge fraction"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
   ],
   "source": [
    "total = f(very_effective_proportion) + f(effective_proportion) + f(ineffective_proportion) + f(dangerous_proportion) + f(very_dangerous_proportion)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1.53977589900120"
      ]
     },
     "execution_count": 14,
     "metadata": {
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "n(total * 0.2 * 100)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "collapsed": false,
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.00222612278695435\n",
      "0.653751950985142\n",
      "0.278479225369819\n",
      "0.0655406032432649\n",
      "2.09761481950923e-6\n"
     ]
    }
   ],
   "source": [
    "print(n(f(very_effective_proportion)/total))\n",
    "print(n(f(effective_proportion)/total))\n",
    "print(n(f(ineffective_proportion)/total))\n",
    "print(n(f(dangerous_proportion)/total))\n",
    "print(n(f(very_dangerous_proportion)/total))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "collapsed": false,
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.222612278695435\n",
      "65.3751950985142\n",
      "27.8479225369819\n",
      "6.55406032432649\n",
      "0.000209761481950923\n"
     ]
    }
   ],
   "source": [
    "print(n(100*f(very_effective_proportion)/total))\n",
    "print(n(100*f(effective_proportion)/total))\n",
    "print(n(100*f(ineffective_proportion)/total))\n",
    "print(n(100*f(dangerous_proportion)/total))\n",
    "print(n(100*f(very_dangerous_proportion)/total))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "34.4021926227904\n"
     ]
    }
   ],
   "source": [
    "print(n(100*f(ineffective_proportion)/total) + n(100*f(dangerous_proportion)/total)+ n(100*f(very_dangerous_proportion)/total))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "Digression: what if the data was different? That is, suppose the hydroxychloroquine results were the same as the control?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "58.9975429975430"
      ]
     },
     "execution_count": 18,
     "metadata": {
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "n(58/407 * 414)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.142512077294686"
      ]
     },
     "execution_count": 19,
     "metadata": {
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "n(59/414)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "collapsed": false,
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.142506142506143"
      ]
     },
     "execution_count": 20,
     "metadata": {
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "n(58/407)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "Specifically, suppose 59 out of 414 of the hydroxychloroquine group got infected. That's 14.3%, \n",
    "almost exactly the same as the placebo group's 14.3%. Now follow the same procedure as before:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
   ],
   "source": [
    "fake_f(x) = x^59 * (1-x)^(414-59) * binomial(414,59, hold=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "collapsed": false,
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}x \\ {\\mapsto}\\ -{\\left(x - 1\\right)}^{355} x^{59} {414 \\choose 59}</script></html>"
      ],
      "text/plain": [
       "x |--> -(x - 1)^355*x^59*binomial(414, 59)"
      ]
     },
     "execution_count": 22,
     "metadata": {
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "show(fake_f)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1.96804363176439e-7\n",
      "0.0388781457121887\n",
      "0.0560069722228632\n",
      "0.0404266781168745\n",
      "0.0000579218083589014\n"
     ]
    }
   ],
   "source": [
    "print(n(fake_f(very_effective_proportion)))\n",
    "print(n(fake_f(effective_proportion)))\n",
    "print(n(fake_f(ineffective_proportion)))\n",
    "print(n(fake_f(dangerous_proportion)))\n",
    "print(n(fake_f(very_dangerous_proportion)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
   ],
   "source": [
    "total = fake_f(very_effective_proportion) + fake_f(effective_proportion) + fake_f(ineffective_proportion) + fake_f(dangerous_proportion) + fake_f(very_dangerous_proportion)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "collapsed": false,
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1.45382645519118e-6\n",
      "0.287199307235300\n",
      "0.413732788128065\n",
      "0.298638572810091\n",
      "0.000427878000088801\n"
     ]
    }
   ],
   "source": [
    "print(n(fake_f(very_effective_proportion)/total))\n",
    "print(n(fake_f(effective_proportion)/total))\n",
    "print(n(fake_f(ineffective_proportion)/total))\n",
    "print(n(fake_f(dangerous_proportion)/total))\n",
    "print(n(fake_f(very_dangerous_proportion)/total))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "Another digression: What if our priors were different?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
   ],
   "source": [
    "ineffective_proportion = 58/407\n",
    "effective_proportion = ineffective_proportion * 0.9\n",
    "very_effective_proportion = ineffective_proportion * 0.5\n",
    "dangerous_proportion = ineffective_proportion * 1.1\n",
    "very_dangerous_proportion = ineffective_proportion * 1.5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
   ],
   "source": [
    "f(x) = x^49 * (1-x)^(414-49) * binomial(414,49, hold=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}x \\ {\\mapsto}\\ -{\\left(x - 1\\right)}^{365} x^{49} {414 \\choose 49}</script></html>"
      ],
      "text/plain": [
       "x |--> -(x - 1)^365*x^49*binomial(414, 49)"
      ]
     },
     "execution_count": 28,
     "metadata": {
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "show(f)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
   ],
   "source": [
    "prior_very_effective_proportion = 40\n",
    "prior_effective_proportion = 40\n",
    "prior_ineffective_proportion = 10\n",
    "prior_dangerous_proportion = 5 \n",
    "prior_very_dangerous_proportion = 5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
   ],
   "source": [
    "posterior_very_effective_proportion = prior_very_effective_proportion * f(very_effective_proportion)\n",
    "posterior_effective_proportion = prior_effective_proportion * f(effective_proportion)\n",
    "posterior_ineffective_proportion = prior_ineffective_proportion * f(ineffective_proportion)\n",
    "posterior_dangerous_proportion = prior_dangerous_proportion * f(dangerous_proportion)\n",
    "posterior_very_dangerous_proportion = prior_very_dangerous_proportion * f(very_dangerous_proportion)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
   ],
   "source": [
    "total = posterior_very_effective_proportion + posterior_effective_proportion + posterior_ineffective_proportion + posterior_dangerous_proportion + posterior_very_dangerous_proportion"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.00303372982676281\n",
      "0.890924258370064\n",
      "0.0948769242524658\n",
      "0.0111647302255928\n",
      "3.57325114785736e-7\n"
     ]
    }
   ],
   "source": [
    "print(n(posterior_very_effective_proportion/total))\n",
    "print(n(posterior_effective_proportion/total))\n",
    "print(n(posterior_ineffective_proportion/total))\n",
    "print(n(posterior_dangerous_proportion/total))\n",
    "print(n(posterior_very_dangerous_proportion/total))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.303372982676281\n",
      "89.0924258370064\n",
      "9.48769242524658\n",
      "1.11647302255928\n",
      "0.0000357325114785736\n"
     ]
    }
   ],
   "source": [
    "print(n(100*posterior_very_effective_proportion/total))\n",
    "print(n(100*posterior_effective_proportion/total))\n",
    "print(n(100*posterior_ineffective_proportion/total))\n",
    "print(n(100*posterior_dangerous_proportion/total))\n",
    "print(n(100*posterior_very_dangerous_proportion/total))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "End of digressions.\n",
    "\n",
    "We can also integrate the likelihood function to get probabilties. (Well, we should multiply by the prior, but we assume the prior is uniform, i.e. $y = 1$.)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "Graphics object consisting of 2 graphics primitives"
      ]
     },
     "execution_count": 34,
     "metadata": {
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "plot(f,0,1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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+5v8ZlGvV69ezR4fFRWl7t27N/ucTp06aeTIkfxW6QL+/EzAvTrq+81ngDu05edhxYoVmjFjhl588UVdccUVbcrBaTgElZiYGKWkpCg/P7/R4/n5+crIyGj2Oenp6U2OX7NmjVJTUxUdHd3scxzHkdfrVe/evQMTHO3Gn58JuFdHfb/5DHAHf38eli9frptuuknPP/+8Jk+e3PYgfk8NB9rJCy+84ERHRztLly51tm/f7syePds588wznV27djmO4zh33XWX87Of/azh+B07djhnnHGGM2fOHGf79u3O0qVLnejoaOell15qOOaee+5xXn/9defzzz93PB6Pc/PNNztRUVHOhg0bOvz9wXe+/kw4juN4PB7H4/E4KSkpzvXXX+94PB5n27ZtNuLDR+3x/eYzwL18/Xl4/vnnnaioKCc3N9cpKytruH399dd+Z6AsISjl5uY6AwYMcGJiYpwRI0Y4BQUFDX924403OmPHjm10/Nq1a53hw4c7MTExzsCBA53Fixc3+vPZs2c7/fv3d2JiYpyePXs6WVlZTmFhYUe8FQSIrz8TkprcBgwY0LGh4bdAf7/5DHA3X34exo4d2+zPw4033uj367ORLgAAQAuYswQAANACyhIAAEALKEsAAAAtoCwBAAC0gLIEAADQAsoSAABACyhLAAAALaAsAQAAtICyBAAA0ALKEgAAQAsoSwAAAC34/y+6yK66l+7DAAAAAElFTkSuQmCC",
      "text/plain": [
       "Graphics object consisting of 1 graphics primitive"
      ]
     },
     "execution_count": 35,
     "metadata": {
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "plot(f,0,0.2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.0024096385542168746\n",
      "0.0016948379490692445\n",
      "0.0007148006051476249\n",
      "0.9999999999999979\n",
      "0.7033577488637344\n"
     ]
    }
   ],
   "source": [
    "total_area = numerical_integral(f, 0, 1)[0]\n",
    "print(total_area)\n",
    "at_least_effective_area = numerical_integral(f, 0, effective_proportion)[0]\n",
    "print(at_least_effective_area)\n",
    "not_effective_area = numerical_integral(f, effective_proportion,1)[0]\n",
    "print(not_effective_area)\n",
    "\n",
    "#To check that the pieces add to the total\n",
    "print( (at_least_effective_area + not_effective_area) / total_area ) \n",
    "\n",
    "print(at_least_effective_area / total_area)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "So the probability of effectiveness is roughly 70%.\n",
    "\n",
    "But really we should do this in 2 dimensions, since the control group's infection rate\n",
    "is also determined by the data, so it may vary."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left( x, y \\right) \\ {\\mapsto} \\ {\\left(x - 1\\right)}^{365} x^{49} {\\left(y - 1\\right)}^{349} y^{58} {414 \\choose 49} {407 \\choose 58}</script></html>"
      ],
      "text/plain": [
       "(x, y) |--> (x - 1)^365*x^49*(y - 1)^349*y^58*binomial(414, 49)*binomial(407, 58)"
      ]
     },
     "execution_count": 37,
     "metadata": {
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "var('x y')\n",
    "f_2d(x,y) = x^49 * (1-x)^(414-49) * binomial(414,49,hold=True) * y^58 * (1-y)^(407-58) * binomial(407,58,hold=True)\n",
    "show(f_2d)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": "\n<iframe srcdoc=\"\n<html>\n<head>\n  <style>\n    * {\n      margin: 0;\n      padding: 0;\n      overflow: hidden;\n    }\n    body, html {      \n      height: 100%;\n      width: 100%;\n    }\n  </style>\n  <script type=&quot;text/javascript&quot; src=&quot;/nbextensions/jsmol/JSmol.min.js&quot;></script>\n</head>\n<body>\n  <script type=&quot;text/javascript&quot;>\n    var script = [\n  'data &quot;model list&quot;',\n  '10',\n  'empty',\n  'Xx -3.0 -4.0 -1.5',\n  'Xx 0.0 -4.0 -1.5',\n  'Xx 3.0 -4.0 -1.5',\n  'Xx 4.0 -3.0 -1.5',\n  'Xx 4.0 0.0 -1.5',\n  'Xx 4.0 3.0 -1.5',\n  'Xx -4.0 -3.0 -1.5',\n  'Xx -4.0 -3.0 0.0',\n  'Xx -4.0 -3.0 1.5',\n  'Xx 5.5 5.5 5.5',\n  'end &quot;model list&quot;; show data',\n  'select *',\n  'wireframe off; spacefill off',\n  'set labelOffset 0 0',\n  'background [255,255,255]',\n  'spin OFF',\n  'moveto 0 -764 -346 -545 76.39',\n  'centerAt absolute {0 0 0}',\n  'zoom 100',\n  'frank OFF',\n  'set perspectivedepth ON',\n  'pmesh obj_1 inline &quot;1629',\n  '-3 -3 -1.5',\n  '-3 -2.84615 -1.5',\n  '-2.84615 -2.84615 -1.5',\n  '-2.84615 -3 -1.5',\n  '-3 -2.69231 -1.5',\n  '-2.84615 -2.69231 -1.5',\n  '-3 -2.53846 -1.5',\n  '-2.84615 -2.53846 -1.5',\n  '-3 -2.38462 -1.5',\n  '-2.84615 -2.38462 -1.5',\n  '-3 -2.23077 -1.5',\n  '-2.84615 -2.23077 -1.5',\n  '-3 -2.07692 -1.5',\n  '-2.84615 -2.07692 -1.5',\n  '-3 -1.92308 -1.5',\n  '-2.84615 -1.92308 -1.5',\n  '-3 -1.76923 -1.5',\n  '-2.84615 -1.76923 -1.5',\n  '-3 -1.61538 -1.5',\n  '-2.84615 -1.61538 -1.5',\n  '-3 -1.46154 -1.5',\n  '-2.84615 -1.46154 -1.5',\n  '-3 -1.30769 -1.5',\n  '-2.84615 -1.30769 -1.5',\n  '-3 -1.15385 -1.5',\n  '-2.84615 -1.15385 -1.5',\n  '-3 -1 -1.5',\n  '-2.84615 -1 -1.5',\n  '-3 -0.846154 -1.5',\n  '-2.84615 -0.846154 -1.5',\n  '-3 -0.692308 -1.5',\n  '-2.84615 -0.692308 -1.5',\n  '-3 -0.538462 -1.5',\n  '-2.84615 -0.538462 -1.5',\n  '-3 -0.384615 -1.5',\n  '-2.84615 -0.384615 -1.5',\n  '-3 -0.230769 -1.5',\n  '-2.84615 -0.230769 -1.5',\n  '-3 -0.0769231 -1.5',\n  '-2.84615 -0.0769231 -1.5',\n  '-3 0.0769231 -1.5',\n  '-2.84615 0.0769231 -1.5',\n  '-3 0.230769 -1.5',\n  '-2.84615 0.230769 -1.5',\n  '-3 0.384615 -1.5',\n  '-2.84615 0.384615 -1.5',\n  '-3 0.538462 -1.5',\n  '-2.84615 0.538462 -1.5',\n  '-3 0.692308 -1.5',\n  '-2.84615 0.692308 -1.5',\n  '-3 0.846154 -1.5',\n  '-2.84615 0.846154 -1.5',\n  '-3 1 -1.5',\n  '-2.84615 1 -1.5',\n  '-3 1.15385 -1.5',\n  '-2.84615 1.15385 -1.5',\n  '-3 1.30769 -1.5',\n  '-2.84615 1.30769 -1.5',\n  '-3 1.46154 -1.5',\n  '-2.84615 1.46154 -1.5',\n  '-3 1.61538 -1.5',\n  '-2.84615 1.61538 -1.5',\n  '-3 1.76923 -1.5',\n  '-2.84615 1.76923 -1.5',\n  '-3 1.92308 -1.5',\n  '-2.84615 1.92308 -1.5',\n  '-3 2.07692 -1.5',\n  '-2.84615 2.07692 -1.5',\n  '-3 2.23077 -1.5',\n  '-2.84615 2.23077 -1.5',\n  '-3 2.38462 -1.5',\n  '-2.84615 2.38462 -1.5',\n  '-3 2.53846 -1.5',\n  '-2.84615 2.53846 -1.5',\n  '-3 2.69231 -1.5',\n  '-2.84615 2.69231 -1.5',\n  '-3 2.84615 -1.5',\n  '-2.84615 2.84615 -1.5',\n  '-3 3 -1.5',\n  '-2.84615 3 -1.5',\n  '-2.69231 -2.84615 -1.5',\n  '-2.69231 -3 -1.5',\n  '-2.69231 -2.69231 -1.5',\n  '-2.69231 -2.53846 -1.5',\n  '-2.69231 -2.38462 -1.5',\n  '-2.69231 -2.23077 -1.5',\n  '-2.69231 -2.07692 -1.5',\n  '-2.69231 -1.92308 -1.5',\n  '-2.69231 -1.76923 -1.5',\n  '-2.69231 -1.61538 -1.5',\n  '-2.69231 -1.46154 -1.5',\n  '-2.69231 -1.30769 -1.5',\n  '-2.69231 -1.15385 -1.5',\n  '-2.69231 -1 -1.5',\n  '-2.69231 -0.846154 -1.5',\n  '-2.69231 -0.692308 -1.5',\n  '-2.69231 -0.538462 -1.5',\n  '-2.69231 -0.384615 -1.5',\n  '-2.69231 -0.230769 -1.5',\n  '-2.69231 -0.0769231 -1.5',\n  '-2.69231 0.0769231 -1.5',\n  '-2.69231 0.230769 -1.5',\n  '-2.69231 0.384615 -1.5',\n  '-2.69231 0.538462 -1.5',\n  '-2.69231 0.692308 -1.5',\n  '-2.69231 0.846154 -1.5',\n  '-2.69231 1 -1.5',\n  '-2.69231 1.15385 -1.5',\n  '-2.69231 1.30769 -1.5',\n  '-2.69231 1.46154 -1.5',\n  '-2.69231 1.61538 -1.5',\n  '-2.69231 1.76923 -1.5',\n  '-2.69231 1.92308 -1.5',\n  '-2.69231 2.07692 -1.5',\n  '-2.69231 2.23077 -1.5',\n  '-2.69231 2.38462 -1.5',\n  '-2.69231 2.53846 -1.5',\n  '-2.69231 2.69231 -1.5',\n  '-2.69231 2.84615 -1.5',\n  '-2.69231 3 -1.5',\n  '-2.53846 -2.84615 -1.5',\n  '-2.53846 -3 -1.5',\n  '-2.53846 -2.69231 -1.5',\n  '-2.53846 -2.53846 -1.5',\n  '-2.53846 -2.38462 -1.49764',\n  '-2.53846 -2.23077 -1.46024',\n  '-2.53846 -2.07692 -1.45353',\n  '-2.53846 -1.92308 -1.49231',\n  '-2.53846 -1.76923 -1.49973',\n  '-2.53846 -1.61538 -1.5',\n  '-2.53846 -1.46154 -1.5',\n  '-2.53846 -1.30769 -1.5',\n  '-2.53846 -1.15385 -1.5',\n  '-2.53846 -1 -1.5',\n  '-2.53846 -0.846154 -1.5',\n  '-2.53846 -0.692308 -1.5',\n  '-2.53846 -0.538462 -1.5',\n  '-2.53846 -0.384615 -1.5',\n  '-2.53846 -0.230769 -1.5',\n  '-2.53846 -0.0769231 -1.5',\n  '-2.53846 0.0769231 -1.5',\n  '-2.53846 0.230769 -1.5',\n  '-2.53846 0.384615 -1.5',\n  '-2.53846 0.538462 -1.5',\n  '-2.53846 0.692308 -1.5',\n  '-2.53846 0.846154 -1.5',\n  '-2.53846 1 -1.5',\n  '-2.53846 1.15385 -1.5',\n  '-2.53846 1.30769 -1.5',\n  '-2.53846 1.46154 -1.5',\n  '-2.53846 1.61538 -1.5',\n  '-2.53846 1.76923 -1.5',\n  '-2.53846 1.92308 -1.5',\n  '-2.53846 2.07692 -1.5',\n  '-2.53846 2.23077 -1.5',\n  '-2.53846 2.38462 -1.5',\n  '-2.53846 2.53846 -1.5',\n  '-2.53846 2.69231 -1.5',\n  '-2.53846 2.84615 -1.5',\n  '-2.53846 3 -1.5',\n  '-2.38462 -2.84615 -1.5',\n  '-2.38462 -3 -1.5',\n  '-2.38462 -2.69231 -1.5',\n  '-2.38462 -2.53846 -1.49989',\n  '-2.38462 -2.38462 -1.39318',\n  '-2.38462 -2.23077 0.302299',\n  '-2.38462 -2.07692 0.606503',\n  '-2.38462 -1.92308 -1.1513',\n  '-2.38462 -1.76923 -1.48759',\n  '-2.38462 -1.61538 -1.49988',\n  '-2.38462 -1.46154 -1.5',\n  '-2.38462 -1.30769 -1.5',\n  '-2.38462 -1.15385 -1.5',\n  '-2.38462 -1 -1.5',\n  '-2.38462 -0.846154 -1.5',\n  '-2.38462 -0.692308 -1.5',\n  '-2.38462 -0.538462 -1.5',\n  '-2.38462 -0.384615 -1.5',\n  '-2.38462 -0.230769 -1.5',\n  '-2.38462 -0.0769231 -1.5',\n  '-2.38462 0.0769231 -1.5',\n  '-2.38462 0.230769 -1.5',\n  '-2.38462 0.384615 -1.5',\n  '-2.38462 0.538462 -1.5',\n  '-2.38462 0.692308 -1.5',\n  '-2.38462 0.846154 -1.5',\n  '-2.38462 1 -1.5',\n  '-2.38462 1.15385 -1.5',\n  '-2.38462 1.30769 -1.5',\n  '-2.38462 1.46154 -1.5',\n  '-2.38462 1.61538 -1.5',\n  '-2.38462 1.76923 -1.5',\n  '-2.38462 1.92308 -1.5',\n  '-2.38462 2.07692 -1.5',\n  '-2.38462 2.23077 -1.5',\n  '-2.38462 2.38462 -1.5',\n  '-2.38462 2.53846 -1.5',\n  '-2.38462 2.69231 -1.5',\n  '-2.38462 2.84615 -1.5',\n  '-2.38462 3 -1.5',\n  '-2.23077 -2.84615 -1.5',\n  '-2.23077 -3 -1.5',\n  '-2.23077 -2.69231 -1.5',\n  '-2.23077 -2.53846 -1.49984',\n  '-2.23077 -2.38462 -1.34787',\n  '-2.23077 -2.23077 1.06676',\n  '-2.23077 -2.07692 1.5',\n  '-2.23077 -1.92308 -1.00339',\n  '-2.23077 -1.76923 -1.48232',\n  '-2.23077 -1.61538 -1.49982',\n  '-2.23077 -1.46154 -1.5',\n  '-2.23077 -1.30769 -1.5',\n  '-2.23077 -1.15385 -1.5',\n  '-2.23077 -1 -1.5',\n  '-2.23077 -0.846154 -1.5',\n  '-2.23077 -0.692308 -1.5',\n  '-2.23077 -0.538462 -1.5',\n  '-2.23077 -0.384615 -1.5',\n  '-2.23077 -0.230769 -1.5',\n  '-2.23077 -0.0769231 -1.5',\n  '-2.23077 0.0769231 -1.5',\n  '-2.23077 0.230769 -1.5',\n  '-2.23077 0.384615 -1.5',\n  '-2.23077 0.538462 -1.5',\n  '-2.23077 0.692308 -1.5',\n  '-2.23077 0.846154 -1.5',\n  '-2.23077 1 -1.5',\n  '-2.23077 1.15385 -1.5',\n  '-2.23077 1.30769 -1.5',\n  '-2.23077 1.46154 -1.5',\n  '-2.23077 1.61538 -1.5',\n  '-2.23077 1.76923 -1.5',\n  '-2.23077 1.92308 -1.5',\n  '-2.23077 2.07692 -1.5',\n  '-2.23077 2.23077 -1.5',\n  '-2.23077 2.38462 -1.5',\n  '-2.23077 2.53846 -1.5',\n  '-2.23077 2.69231 -1.5',\n  '-2.23077 2.84615 -1.5',\n  '-2.23077 3 -1.5',\n  '-2.07692 -2.84615 -1.5',\n  '-2.07692 -3 -1.5',\n  '-2.07692 -2.69231 -1.5',\n  '-2.07692 -2.53846 -1.49998',\n  '-2.07692 -2.38462 -1.47863',\n  '-2.07692 -2.23077 -1.13938',\n  '-2.07692 -2.07692 -1.07851',\n  '-2.07692 -1.92308 -1.43023',\n  '-2.07692 -1.76923 -1.49752',\n  '-2.07692 -1.61538 -1.49998',\n  '-2.07692 -1.46154 -1.5',\n  '-2.07692 -1.30769 -1.5',\n  '-2.07692 -1.15385 -1.5',\n  '-2.07692 -1 -1.5',\n  '-2.07692 -0.846154 -1.5',\n  '-2.07692 -0.692308 -1.5',\n  '-2.07692 -0.538462 -1.5',\n  '-2.07692 -0.384615 -1.5',\n  '-2.07692 -0.230769 -1.5',\n  '-2.07692 -0.0769231 -1.5',\n  '-2.07692 0.0769231 -1.5',\n  '-2.07692 0.230769 -1.5',\n  '-2.07692 0.384615 -1.5',\n  '-2.07692 0.538462 -1.5',\n  '-2.07692 0.692308 -1.5',\n  '-2.07692 0.846154 -1.5',\n  '-2.07692 1 -1.5',\n  '-2.07692 1.15385 -1.5',\n  '-2.07692 1.30769 -1.5',\n  '-2.07692 1.46154 -1.5',\n  '-2.07692 1.61538 -1.5',\n  '-2.07692 1.76923 -1.5',\n  '-2.07692 1.92308 -1.5',\n  '-2.07692 2.07692 -1.5',\n  '-2.07692 2.23077 -1.5',\n  '-2.07692 2.38462 -1.5',\n  '-2.07692 2.53846 -1.5',\n  '-2.07692 2.69231 -1.5',\n  '-2.07692 2.84615 -1.5',\n  '-2.07692 3 -1.5',\n  '-1.92308 -2.84615 -1.5',\n  '-1.92308 -3 -1.5',\n  '-1.92308 -2.69231 -1.5',\n  '-1.92308 -2.53846 -1.5',\n  '-1.92308 -2.38462 -1.49946',\n  '-1.92308 -2.23077 -1.49089',\n  '-1.92308 -2.07692 -1.48935',\n  '-1.92308 -1.92308 -1.49824',\n  '-1.92308 -1.76923 -1.49994',\n  '-1.92308 -1.61538 -1.5',\n  '-1.92308 -1.46154 -1.5',\n  '-1.92308 -1.30769 -1.5',\n  '-1.92308 -1.15385 -1.5',\n  '-1.92308 -1 -1.5',\n  '-1.92308 -0.846154 -1.5',\n  '-1.92308 -0.692308 -1.5',\n  '-1.92308 -0.538462 -1.5',\n  '-1.92308 -0.384615 -1.5',\n  '-1.92308 -0.230769 -1.5',\n  '-1.92308 -0.0769231 -1.5',\n  '-1.92308 0.0769231 -1.5',\n  '-1.92308 0.230769 -1.5',\n  '-1.92308 0.384615 -1.5',\n  '-1.92308 0.538462 -1.5',\n  '-1.92308 0.692308 -1.5',\n  '-1.92308 0.846154 -1.5',\n  '-1.92308 1 -1.5',\n  '-1.92308 1.15385 -1.5',\n  '-1.92308 1.30769 -1.5',\n  '-1.92308 1.46154 -1.5',\n  '-1.92308 1.61538 -1.5',\n  '-1.92308 1.76923 -1.5',\n  '-1.92308 1.92308 -1.5',\n  '-1.92308 2.07692 -1.5',\n  '-1.92308 2.23077 -1.5',\n  '-1.92308 2.38462 -1.5',\n  '-1.92308 2.53846 -1.5',\n  '-1.92308 2.69231 -1.5',\n  '-1.92308 2.84615 -1.5',\n  '-1.92308 3 -1.5',\n  '-1.76923 -2.84615 -1.5',\n  '-1.76923 -3 -1.5',\n  '-1.76923 -2.69231 -1.5',\n  '-1.76923 -2.53846 -1.5',\n  '-1.76923 -2.38462 -1.5',\n  '-1.76923 -2.23077 -1.49994',\n  '-1.76923 -2.07692 -1.49993',\n  '-1.76923 -1.92308 -1.49999',\n  '-1.76923 -1.76923 -1.5',\n  '-1.76923 -1.61538 -1.5',\n  '-1.76923 -1.46154 -1.5',\n  '-1.76923 -1.30769 -1.5',\n  '-1.76923 -1.15385 -1.5',\n  '-1.76923 -1 -1.5',\n  '-1.76923 -0.846154 -1.5',\n  '-1.76923 -0.692308 -1.5',\n  '-1.76923 -0.538462 -1.5',\n  '-1.76923 -0.384615 -1.5',\n  '-1.76923 -0.230769 -1.5',\n  '-1.76923 -0.0769231 -1.5',\n  '-1.76923 0.0769231 -1.5',\n  '-1.76923 0.230769 -1.5',\n  '-1.76923 0.384615 -1.5',\n  '-1.76923 0.538462 -1.5',\n  '-1.76923 0.692308 -1.5',\n  '-1.76923 0.846154 -1.5',\n  '-1.76923 1 -1.5',\n  '-1.76923 1.15385 -1.5',\n  '-1.76923 1.30769 -1.5',\n  '-1.76923 1.46154 -1.5',\n  '-1.76923 1.61538 -1.5',\n  '-1.76923 1.76923 -1.5',\n  '-1.76923 1.92308 -1.5',\n  '-1.76923 2.07692 -1.5',\n  '-1.76923 2.23077 -1.5',\n  '-1.76923 2.38462 -1.5',\n  '-1.76923 2.53846 -1.5',\n  '-1.76923 2.69231 -1.5',\n  '-1.76923 2.84615 -1.5',\n  '-1.76923 3 -1.5',\n  '-1.61538 -2.84615 -1.5',\n  '-1.61538 -3 -1.5',\n  '-1.61538 -2.69231 -1.5',\n  '-1.61538 -2.53846 -1.5',\n  '-1.61538 -2.38462 -1.5',\n  '-1.61538 -2.23077 -1.5',\n  '-1.61538 -2.07692 -1.5',\n  '-1.61538 -1.92308 -1.5',\n  '-1.61538 -1.76923 -1.5',\n  '-1.61538 -1.61538 -1.5',\n  '-1.61538 -1.46154 -1.5',\n  '-1.61538 -1.30769 -1.5',\n  '-1.61538 -1.15385 -1.5',\n  '-1.61538 -1 -1.5',\n  '-1.61538 -0.846154 -1.5',\n  '-1.61538 -0.692308 -1.5',\n  '-1.61538 -0.538462 -1.5',\n  '-1.61538 -0.384615 -1.5',\n  '-1.61538 -0.230769 -1.5',\n  '-1.61538 -0.0769231 -1.5',\n  '-1.61538 0.0769231 -1.5',\n  '-1.61538 0.230769 -1.5',\n  '-1.61538 0.384615 -1.5',\n  '-1.61538 0.538462 -1.5',\n  '-1.61538 0.692308 -1.5',\n  '-1.61538 0.846154 -1.5',\n  '-1.61538 1 -1.5',\n  '-1.61538 1.15385 -1.5',\n  '-1.61538 1.30769 -1.5',\n  '-1.61538 1.46154 -1.5',\n  '-1.61538 1.61538 -1.5',\n  '-1.61538 1.76923 -1.5',\n  '-1.61538 1.92308 -1.5',\n  '-1.61538 2.07692 -1.5',\n  '-1.61538 2.23077 -1.5',\n  '-1.61538 2.38462 -1.5',\n  '-1.61538 2.53846 -1.5',\n  '-1.61538 2.69231 -1.5',\n  '-1.61538 2.84615 -1.5',\n  '-1.61538 3 -1.5',\n  '-1.46154 -2.84615 -1.5',\n  '-1.46154 -3 -1.5',\n  '-1.46154 -2.69231 -1.5',\n  '-1.46154 -2.53846 -1.5',\n  '-1.46154 -2.38462 -1.5',\n  '-1.46154 -2.23077 -1.5',\n  '-1.46154 -2.07692 -1.5',\n  '-1.46154 -1.92308 -1.5',\n  '-1.46154 -1.76923 -1.5',\n  '-1.46154 -1.61538 -1.5',\n  '-1.46154 -1.46154 -1.5',\n  '-1.46154 -1.30769 -1.5',\n  '-1.46154 -1.15385 -1.5',\n  '-1.46154 -1 -1.5',\n  '-1.46154 -0.846154 -1.5',\n  '-1.46154 -0.692308 -1.5',\n  '-1.46154 -0.538462 -1.5',\n  '-1.46154 -0.384615 -1.5',\n  '-1.46154 -0.230769 -1.5',\n  '-1.46154 -0.0769231 -1.5',\n  '-1.46154 0.0769231 -1.5',\n  '-1.46154 0.230769 -1.5',\n  '-1.46154 0.384615 -1.5',\n  '-1.46154 0.538462 -1.5',\n  '-1.46154 0.692308 -1.5',\n  '-1.46154 0.846154 -1.5',\n  '-1.46154 1 -1.5',\n  '-1.46154 1.15385 -1.5',\n  '-1.46154 1.30769 -1.5',\n  '-1.46154 1.46154 -1.5',\n  '-1.46154 1.61538 -1.5',\n  '-1.46154 1.76923 -1.5',\n  '-1.46154 1.92308 -1.5',\n  '-1.46154 2.07692 -1.5',\n  '-1.46154 2.23077 -1.5',\n  '-1.46154 2.38462 -1.5',\n  '-1.46154 2.53846 -1.5',\n  '-1.46154 2.69231 -1.5',\n  '-1.46154 2.84615 -1.5',\n  '-1.46154 3 -1.5',\n  '-1.30769 -2.84615 -1.5',\n  '-1.30769 -3 -1.5',\n  '-1.30769 -2.69231 -1.5',\n  '-1.30769 -2.53846 -1.5',\n  '-1.30769 -2.38462 -1.5',\n  '-1.30769 -2.23077 -1.5',\n  '-1.30769 -2.07692 -1.5',\n  '-1.30769 -1.92308 -1.5',\n  '-1.30769 -1.76923 -1.5',\n  '-1.30769 -1.61538 -1.5',\n  '-1.30769 -1.46154 -1.5',\n  '-1.30769 -1.30769 -1.5',\n  '-1.30769 -1.15385 -1.5',\n  '-1.30769 -1 -1.5',\n  '-1.30769 -0.846154 -1.5',\n  '-1.30769 -0.692308 -1.5',\n  '-1.30769 -0.538462 -1.5',\n  '-1.30769 -0.384615 -1.5',\n  '-1.30769 -0.230769 -1.5',\n  '-1.30769 -0.0769231 -1.5',\n  '-1.30769 0.0769231 -1.5',\n  '-1.30769 0.230769 -1.5',\n  '-1.30769 0.384615 -1.5',\n  '-1.30769 0.538462 -1.5',\n  '-1.30769 0.692308 -1.5',\n  '-1.30769 0.846154 -1.5',\n  '-1.30769 1 -1.5',\n  '-1.30769 1.15385 -1.5',\n  '-1.30769 1.30769 -1.5',\n  '-1.30769 1.46154 -1.5',\n  '-1.30769 1.61538 -1.5',\n  '-1.30769 1.76923 -1.5',\n  '-1.30769 1.92308 -1.5',\n  '-1.30769 2.07692 -1.5',\n  '-1.30769 2.23077 -1.5',\n  '-1.30769 2.38462 -1.5',\n  '-1.30769 2.53846 -1.5',\n  '-1.30769 2.69231 -1.5',\n  '-1.30769 2.84615 -1.5',\n  '-1.30769 3 -1.5',\n  '-1.15385 -2.84615 -1.5',\n  '-1.15385 -3 -1.5',\n  '-1.15385 -2.69231 -1.5',\n  '-1.15385 -2.53846 -1.5',\n  '-1.15385 -2.38462 -1.5',\n  '-1.15385 -2.23077 -1.5',\n  '-1.15385 -2.07692 -1.5',\n  '-1.15385 -1.92308 -1.5',\n  '-1.15385 -1.76923 -1.5',\n  '-1.15385 -1.61538 -1.5',\n  '-1.15385 -1.46154 -1.5',\n  '-1.15385 -1.30769 -1.5',\n  '-1.15385 -1.15385 -1.5',\n  '-1.15385 -1 -1.5',\n  '-1.15385 -0.846154 -1.5',\n  '-1.15385 -0.692308 -1.5',\n  '-1.15385 -0.538462 -1.5',\n  '-1.15385 -0.384615 -1.5',\n  '-1.15385 -0.230769 -1.5',\n  '-1.15385 -0.0769231 -1.5',\n  '-1.15385 0.0769231 -1.5',\n  '-1.15385 0.230769 -1.5',\n  '-1.15385 0.384615 -1.5',\n  '-1.15385 0.538462 -1.5',\n  '-1.15385 0.692308 -1.5',\n  '-1.15385 0.846154 -1.5',\n  '-1.15385 1 -1.5',\n  '-1.15385 1.15385 -1.5',\n  '-1.15385 1.30769 -1.5',\n  '-1.15385 1.46154 -1.5',\n  '-1.15385 1.61538 -1.5',\n  '-1.15385 1.76923 -1.5',\n  '-1.15385 1.92308 -1.5',\n  '-1.15385 2.07692 -1.5',\n  '-1.15385 2.23077 -1.5',\n  '-1.15385 2.38462 -1.5',\n  '-1.15385 2.53846 -1.5',\n  '-1.15385 2.69231 -1.5',\n  '-1.15385 2.84615 -1.5',\n  '-1.15385 3 -1.5',\n  '-1 -2.84615 -1.5',\n  '-1 -3 -1.5',\n  '-1 -2.69231 -1.5',\n  '-1 -2.53846 -1.5',\n  '-1 -2.38462 -1.5',\n  '-1 -2.23077 -1.5',\n  '-1 -2.07692 -1.5',\n  '-1 -1.92308 -1.5',\n  '-1 -1.76923 -1.5',\n  '-1 -1.61538 -1.5',\n  '-1 -1.46154 -1.5',\n  '-1 -1.30769 -1.5',\n  '-1 -1.15385 -1.5',\n  '-1 -1 -1.5',\n  '-1 -0.846154 -1.5',\n  '-1 -0.692308 -1.5',\n  '-1 -0.538462 -1.5',\n  '-1 -0.384615 -1.5',\n  '-1 -0.230769 -1.5',\n  '-1 -0.0769231 -1.5',\n  '-1 0.0769231 -1.5',\n  '-1 0.230769 -1.5',\n  '-1 0.384615 -1.5',\n  '-1 0.538462 -1.5',\n  '-1 0.692308 -1.5',\n  '-1 0.846154 -1.5',\n  '-1 1 -1.5',\n  '-1 1.15385 -1.5',\n  '-1 1.30769 -1.5',\n  '-1 1.46154 -1.5',\n  '-1 1.61538 -1.5',\n  '-1 1.76923 -1.5',\n  '-1 1.92308 -1.5',\n  '-1 2.07692 -1.5',\n  '-1 2.23077 -1.5',\n  '-1 2.38462 -1.5',\n  '-1 2.53846 -1.5',\n  '-1 2.69231 -1.5',\n  '-1 2.84615 -1.5',\n  '-1 3 -1.5',\n  '-0.846154 -2.84615 -1.5',\n  '-0.846154 -3 -1.5',\n  '-0.846154 -2.69231 -1.5',\n  '-0.846154 -2.53846 -1.5',\n  '-0.846154 -2.38462 -1.5',\n  '-0.846154 -2.23077 -1.5',\n  '-0.846154 -2.07692 -1.5',\n  '-0.846154 -1.92308 -1.5',\n  '-0.846154 -1.76923 -1.5',\n  '-0.846154 -1.61538 -1.5',\n  '-0.846154 -1.46154 -1.5',\n  '-0.846154 -1.30769 -1.5',\n  '-0.846154 -1.15385 -1.5',\n  '-0.846154 -1 -1.5',\n  '-0.846154 -0.846154 -1.5',\n  '-0.846154 -0.692308 -1.5',\n  '-0.846154 -0.538462 -1.5',\n  '-0.846154 -0.384615 -1.5',\n  '-0.846154 -0.230769 -1.5',\n  '-0.846154 -0.0769231 -1.5',\n  '-0.846154 0.0769231 -1.5',\n  '-0.846154 0.230769 -1.5',\n  '-0.846154 0.384615 -1.5',\n  '-0.846154 0.538462 -1.5',\n  '-0.846154 0.692308 -1.5',\n  '-0.846154 0.846154 -1.5',\n  '-0.846154 1 -1.5',\n  '-0.846154 1.15385 -1.5',\n  '-0.846154 1.30769 -1.5',\n  '-0.846154 1.46154 -1.5',\n  '-0.846154 1.61538 -1.5',\n  '-0.846154 1.76923 -1.5',\n  '-0.846154 1.92308 -1.5',\n  '-0.846154 2.07692 -1.5',\n  '-0.846154 2.23077 -1.5',\n  '-0.846154 2.38462 -1.5',\n  '-0.846154 2.53846 -1.5',\n  '-0.846154 2.69231 -1.5',\n  '-0.846154 2.84615 -1.5',\n  '-0.846154 3 -1.5',\n  '-0.692308 -2.84615 -1.5',\n  '-0.692308 -3 -1.5',\n  '-0.692308 -2.69231 -1.5',\n  '-0.692308 -2.53846 -1.5',\n  '-0.692308 -2.38462 -1.5',\n  '-0.692308 -2.23077 -1.5',\n  '-0.692308 -2.07692 -1.5',\n  '-0.692308 -1.92308 -1.5',\n  '-0.692308 -1.76923 -1.5',\n  '-0.692308 -1.61538 -1.5',\n  '-0.692308 -1.46154 -1.5',\n  '-0.692308 -1.30769 -1.5',\n  '-0.692308 -1.15385 -1.5',\n  '-0.692308 -1 -1.5',\n  '-0.692308 -0.846154 -1.5',\n  '-0.692308 -0.692308 -1.5',\n  '-0.692308 -0.538462 -1.5',\n  '-0.692308 -0.384615 -1.5',\n  '-0.692308 -0.230769 -1.5',\n  '-0.692308 -0.0769231 -1.5',\n  '-0.692308 0.0769231 -1.5',\n  '-0.692308 0.230769 -1.5',\n  '-0.692308 0.384615 -1.5',\n  '-0.692308 0.538462 -1.5',\n  '-0.692308 0.692308 -1.5',\n  '-0.692308 0.846154 -1.5',\n  '-0.692308 1 -1.5',\n  '-0.692308 1.15385 -1.5',\n  '-0.692308 1.30769 -1.5',\n  '-0.692308 1.46154 -1.5',\n  '-0.692308 1.61538 -1.5',\n  '-0.692308 1.76923 -1.5',\n  '-0.692308 1.92308 -1.5',\n  '-0.692308 2.07692 -1.5',\n  '-0.692308 2.23077 -1.5',\n  '-0.692308 2.38462 -1.5',\n  '-0.692308 2.53846 -1.5',\n  '-0.692308 2.69231 -1.5',\n  '-0.692308 2.84615 -1.5',\n  '-0.692308 3 -1.5',\n  '-0.538462 -2.84615 -1.5',\n  '-0.538462 -3 -1.5',\n  '-0.538462 -2.69231 -1.5',\n  '-0.538462 -2.53846 -1.5',\n  '-0.538462 -2.38462 -1.5',\n  '-0.538462 -2.23077 -1.5',\n  '-0.538462 -2.07692 -1.5',\n  '-0.538462 -1.92308 -1.5',\n  '-0.538462 -1.76923 -1.5',\n  '-0.538462 -1.61538 -1.5',\n  '-0.538462 -1.46154 -1.5',\n  '-0.538462 -1.30769 -1.5',\n  '-0.538462 -1.15385 -1.5',\n  '-0.538462 -1 -1.5',\n  '-0.538462 -0.846154 -1.5',\n  '-0.538462 -0.692308 -1.5',\n  '-0.538462 -0.538462 -1.5',\n  '-0.538462 -0.384615 -1.5',\n  '-0.538462 -0.230769 -1.5',\n  '-0.538462 -0.0769231 -1.5',\n  '-0.538462 0.0769231 -1.5',\n  '-0.538462 0.230769 -1.5',\n  '-0.538462 0.384615 -1.5',\n  '-0.538462 0.538462 -1.5',\n  '-0.538462 0.692308 -1.5',\n  '-0.538462 0.846154 -1.5',\n  '-0.538462 1 -1.5',\n  '-0.538462 1.15385 -1.5',\n  '-0.538462 1.30769 -1.5',\n  '-0.538462 1.46154 -1.5',\n  '-0.538462 1.61538 -1.5',\n  '-0.538462 1.76923 -1.5',\n  '-0.538462 1.92308 -1.5',\n  '-0.538462 2.07692 -1.5',\n  '-0.538462 2.23077 -1.5',\n  '-0.538462 2.38462 -1.5',\n  '-0.538462 2.53846 -1.5',\n  '-0.538462 2.69231 -1.5',\n  '-0.538462 2.84615 -1.5',\n  '-0.538462 3 -1.5',\n  '-0.384615 -2.84615 -1.5',\n  '-0.384615 -3 -1.5',\n  '-0.384615 -2.69231 -1.5',\n  '-0.384615 -2.53846 -1.5',\n  '-0.384615 -2.38462 -1.5',\n  '-0.384615 -2.23077 -1.5',\n  '-0.384615 -2.07692 -1.5',\n  '-0.384615 -1.92308 -1.5',\n  '-0.384615 -1.76923 -1.5',\n  '-0.384615 -1.61538 -1.5',\n  '-0.384615 -1.46154 -1.5',\n  '-0.384615 -1.30769 -1.5',\n  '-0.384615 -1.15385 -1.5',\n  '-0.384615 -1 -1.5',\n  '-0.384615 -0.846154 -1.5',\n  '-0.384615 -0.692308 -1.5',\n  '-0.384615 -0.538462 -1.5',\n  '-0.384615 -0.384615 -1.5',\n  '-0.384615 -0.230769 -1.5',\n  '-0.384615 -0.0769231 -1.5',\n  '-0.384615 0.0769231 -1.5',\n  '-0.384615 0.230769 -1.5',\n  '-0.384615 0.384615 -1.5',\n  '-0.384615 0.538462 -1.5',\n  '-0.384615 0.692308 -1.5',\n  '-0.384615 0.846154 -1.5',\n  '-0.384615 1 -1.5',\n  '-0.384615 1.15385 -1.5',\n  '-0.384615 1.30769 -1.5',\n  '-0.384615 1.46154 -1.5',\n  '-0.384615 1.61538 -1.5',\n  '-0.384615 1.76923 -1.5',\n  '-0.384615 1.92308 -1.5',\n  '-0.384615 2.07692 -1.5',\n  '-0.384615 2.23077 -1.5',\n  '-0.384615 2.38462 -1.5',\n  '-0.384615 2.53846 -1.5',\n  '-0.384615 2.69231 -1.5',\n  '-0.384615 2.84615 -1.5',\n  '-0.384615 3 -1.5',\n  '-0.230769 -2.84615 -1.5',\n  '-0.230769 -3 -1.5',\n  '-0.230769 -2.69231 -1.5',\n  '-0.230769 -2.53846 -1.5',\n  '-0.230769 -2.38462 -1.5',\n  '-0.230769 -2.23077 -1.5',\n  '-0.230769 -2.07692 -1.5',\n  '-0.230769 -1.92308 -1.5',\n  '-0.230769 -1.76923 -1.5',\n  '-0.230769 -1.61538 -1.5',\n  '-0.230769 -1.46154 -1.5',\n  '-0.230769 -1.30769 -1.5',\n  '-0.230769 -1.15385 -1.5',\n  '-0.230769 -1 -1.5',\n  '-0.230769 -0.846154 -1.5',\n  '-0.230769 -0.692308 -1.5',\n  '-0.230769 -0.538462 -1.5',\n  '-0.230769 -0.384615 -1.5',\n  '-0.230769 -0.230769 -1.5',\n  '-0.230769 -0.0769231 -1.5',\n  '-0.230769 0.0769231 -1.5',\n  '-0.230769 0.230769 -1.5',\n  '-0.230769 0.384615 -1.5',\n  '-0.230769 0.538462 -1.5',\n  '-0.230769 0.692308 -1.5',\n  '-0.230769 0.846154 -1.5',\n  '-0.230769 1 -1.5',\n  '-0.230769 1.15385 -1.5',\n  '-0.230769 1.30769 -1.5',\n  '-0.230769 1.46154 -1.5',\n  '-0.230769 1.61538 -1.5',\n  '-0.230769 1.76923 -1.5',\n  '-0.230769 1.92308 -1.5',\n  '-0.230769 2.07692 -1.5',\n  '-0.230769 2.23077 -1.5',\n  '-0.230769 2.38462 -1.5',\n  '-0.230769 2.53846 -1.5',\n  '-0.230769 2.69231 -1.5',\n  '-0.230769 2.84615 -1.5',\n  '-0.230769 3 -1.5',\n  '-0.0769231 -2.84615 -1.5',\n  '-0.0769231 -3 -1.5',\n  '-0.0769231 -2.69231 -1.5',\n  '-0.0769231 -2.53846 -1.5',\n  '-0.0769231 -2.38462 -1.5',\n  '-0.0769231 -2.23077 -1.5',\n  '-0.0769231 -2.07692 -1.5',\n  '-0.0769231 -1.92308 -1.5',\n  '-0.0769231 -1.76923 -1.5',\n  '-0.0769231 -1.61538 -1.5',\n  '-0.0769231 -1.46154 -1.5',\n  '-0.0769231 -1.30769 -1.5',\n  '-0.0769231 -1.15385 -1.5',\n  '-0.0769231 -1 -1.5',\n  '-0.0769231 -0.846154 -1.5',\n  '-0.0769231 -0.692308 -1.5',\n  '-0.0769231 -0.538462 -1.5',\n  '-0.0769231 -0.384615 -1.5',\n  '-0.0769231 -0.230769 -1.5',\n  '-0.0769231 -0.0769231 -1.5',\n  '-0.0769231 0.0769231 -1.5',\n  '-0.0769231 0.230769 -1.5',\n  '-0.0769231 0.384615 -1.5',\n  '-0.0769231 0.538462 -1.5',\n  '-0.0769231 0.692308 -1.5',\n  '-0.0769231 0.846154 -1.5',\n  '-0.0769231 1 -1.5',\n  '-0.0769231 1.15385 -1.5',\n  '-0.0769231 1.30769 -1.5',\n  '-0.0769231 1.46154 -1.5',\n  '-0.0769231 1.61538 -1.5',\n  '-0.0769231 1.76923 -1.5',\n  '-0.0769231 1.92308 -1.5',\n  '-0.0769231 2.07692 -1.5',\n  '-0.0769231 2.23077 -1.5',\n  '-0.0769231 2.38462 -1.5',\n  '-0.0769231 2.53846 -1.5',\n  '-0.0769231 2.69231 -1.5',\n  '-0.0769231 2.84615 -1.5',\n  '-0.0769231 3 -1.5',\n  '0.0769231 -2.84615 -1.5',\n  '0.0769231 -3 -1.5',\n  '0.0769231 -2.69231 -1.5',\n  '0.0769231 -2.53846 -1.5',\n  '0.0769231 -2.38462 -1.5',\n  '0.0769231 -2.23077 -1.5',\n  '0.0769231 -2.07692 -1.5',\n  '0.0769231 -1.92308 -1.5',\n  '0.0769231 -1.76923 -1.5',\n  '0.0769231 -1.61538 -1.5',\n  '0.0769231 -1.46154 -1.5',\n  '0.0769231 -1.30769 -1.5',\n  '0.0769231 -1.15385 -1.5',\n  '0.0769231 -1 -1.5',\n  '0.0769231 -0.846154 -1.5',\n  '0.0769231 -0.692308 -1.5',\n  '0.0769231 -0.538462 -1.5',\n  '0.0769231 -0.384615 -1.5',\n  '0.0769231 -0.230769 -1.5',\n  '0.0769231 -0.0769231 -1.5',\n  '0.0769231 0.0769231 -1.5',\n  '0.0769231 0.230769 -1.5',\n  '0.0769231 0.384615 -1.5',\n  '0.0769231 0.538462 -1.5',\n  '0.0769231 0.692308 -1.5',\n  '0.0769231 0.846154 -1.5',\n  '0.0769231 1 -1.5',\n  '0.0769231 1.15385 -1.5',\n  '0.0769231 1.30769 -1.5',\n  '0.0769231 1.46154 -1.5',\n  '0.0769231 1.61538 -1.5',\n  '0.0769231 1.76923 -1.5',\n  '0.0769231 1.92308 -1.5',\n  '0.0769231 2.07692 -1.5',\n  '0.0769231 2.23077 -1.5',\n  '0.0769231 2.38462 -1.5',\n  '0.0769231 2.53846 -1.5',\n  '0.0769231 2.69231 -1.5',\n  '0.0769231 2.84615 -1.5',\n  '0.0769231 3 -1.5',\n  '0.230769 -2.84615 -1.5',\n  '0.230769 -3 -1.5',\n  '0.230769 -2.69231 -1.5',\n  '0.230769 -2.53846 -1.5',\n  '0.230769 -2.38462 -1.5',\n  '0.230769 -2.23077 -1.5',\n  '0.230769 -2.07692 -1.5',\n  '0.230769 -1.92308 -1.5',\n  '0.230769 -1.76923 -1.5',\n  '0.230769 -1.61538 -1.5',\n  '0.230769 -1.46154 -1.5',\n  '0.230769 -1.30769 -1.5',\n  '0.230769 -1.15385 -1.5',\n  '0.230769 -1 -1.5',\n  '0.230769 -0.846154 -1.5',\n  '0.230769 -0.692308 -1.5',\n  '0.230769 -0.538462 -1.5',\n  '0.230769 -0.384615 -1.5',\n  '0.230769 -0.230769 -1.5',\n  '0.230769 -0.0769231 -1.5',\n  '0.230769 0.0769231 -1.5',\n  '0.230769 0.230769 -1.5',\n  '0.230769 0.384615 -1.5',\n  '0.230769 0.538462 -1.5',\n  '0.230769 0.692308 -1.5',\n  '0.230769 0.846154 -1.5',\n  '0.230769 1 -1.5',\n  '0.230769 1.15385 -1.5',\n  '0.230769 1.30769 -1.5',\n  '0.230769 1.46154 -1.5',\n  '0.230769 1.61538 -1.5',\n  '0.230769 1.76923 -1.5',\n  '0.230769 1.92308 -1.5',\n  '0.230769 2.07692 -1.5',\n  '0.230769 2.23077 -1.5',\n  '0.230769 2.38462 -1.5',\n  '0.230769 2.53846 -1.5',\n  '0.230769 2.69231 -1.5',\n  '0.230769 2.84615 -1.5',\n  '0.230769 3 -1.5',\n  '0.384615 -2.84615 -1.5',\n  '0.384615 -3 -1.5',\n  '0.384615 -2.69231 -1.5',\n  '0.384615 -2.53846 -1.5',\n  '0.384615 -2.38462 -1.5',\n  '0.384615 -2.23077 -1.5',\n  '0.384615 -2.07692 -1.5',\n  '0.384615 -1.92308 -1.5',\n  '0.384615 -1.76923 -1.5',\n  '0.384615 -1.61538 -1.5',\n  '0.384615 -1.46154 -1.5',\n  '0.384615 -1.30769 -1.5',\n  '0.384615 -1.15385 -1.5',\n  '0.384615 -1 -1.5',\n  '0.384615 -0.846154 -1.5',\n  '0.384615 -0.692308 -1.5',\n  '0.384615 -0.538462 -1.5',\n  '0.384615 -0.384615 -1.5',\n  '0.384615 -0.230769 -1.5',\n  '0.384615 -0.0769231 -1.5',\n  '0.384615 0.0769231 -1.5',\n  '0.384615 0.230769 -1.5',\n  '0.384615 0.384615 -1.5',\n  '0.384615 0.538462 -1.5',\n  '0.384615 0.692308 -1.5',\n  '0.384615 0.846154 -1.5',\n  '0.384615 1 -1.5',\n  '0.384615 1.15385 -1.5',\n  '0.384615 1.30769 -1.5',\n  '0.384615 1.46154 -1.5',\n  '0.384615 1.61538 -1.5',\n  '0.384615 1.76923 -1.5',\n  '0.384615 1.92308 -1.5',\n  '0.384615 2.07692 -1.5',\n  '0.384615 2.23077 -1.5',\n  '0.384615 2.38462 -1.5',\n  '0.384615 2.53846 -1.5',\n  '0.384615 2.69231 -1.5',\n  '0.384615 2.84615 -1.5',\n  '0.384615 3 -1.5',\n  '0.538462 -2.84615 -1.5',\n  '0.538462 -3 -1.5',\n  '0.538462 -2.69231 -1.5',\n  '0.538462 -2.53846 -1.5',\n  '0.538462 -2.38462 -1.5',\n  '0.538462 -2.23077 -1.5',\n  '0.538462 -2.07692 -1.5',\n  '0.538462 -1.92308 -1.5',\n  '0.538462 -1.76923 -1.5',\n  '0.538462 -1.61538 -1.5',\n  '0.538462 -1.46154 -1.5',\n  '0.538462 -1.30769 -1.5',\n  '0.538462 -1.15385 -1.5',\n  '0.538462 -1 -1.5',\n  '0.538462 -0.846154 -1.5',\n  '0.538462 -0.692308 -1.5',\n  '0.538462 -0.538462 -1.5',\n  '0.538462 -0.384615 -1.5',\n  '0.538462 -0.230769 -1.5',\n  '0.538462 -0.0769231 -1.5',\n  '0.538462 0.0769231 -1.5',\n  '0.538462 0.230769 -1.5',\n  '0.538462 0.384615 -1.5',\n  '0.538462 0.538462 -1.5',\n  '0.538462 0.692308 -1.5',\n  '0.538462 0.846154 -1.5',\n  '0.538462 1 -1.5',\n  '0.538462 1.15385 -1.5',\n  '0.538462 1.30769 -1.5',\n  '0.538462 1.46154 -1.5',\n  '0.538462 1.61538 -1.5',\n  '0.538462 1.76923 -1.5',\n  '0.538462 1.92308 -1.5',\n  '0.538462 2.07692 -1.5',\n  '0.538462 2.23077 -1.5',\n  '0.538462 2.38462 -1.5',\n  '0.538462 2.53846 -1.5',\n  '0.538462 2.69231 -1.5',\n  '0.538462 2.84615 -1.5',\n  '0.538462 3 -1.5',\n  '0.692308 -2.84615 -1.5',\n  '0.692308 -3 -1.5',\n  '0.692308 -2.69231 -1.5',\n  '0.692308 -2.53846 -1.5',\n  '0.692308 -2.38462 -1.5',\n  '0.692308 -2.23077 -1.5',\n  '0.692308 -2.07692 -1.5',\n  '0.692308 -1.92308 -1.5',\n  '0.692308 -1.76923 -1.5',\n  '0.692308 -1.61538 -1.5',\n  '0.692308 -1.46154 -1.5',\n  '0.692308 -1.30769 -1.5',\n  '0.692308 -1.15385 -1.5',\n  '0.692308 -1 -1.5',\n  '0.692308 -0.846154 -1.5',\n  '0.692308 -0.692308 -1.5',\n  '0.692308 -0.538462 -1.5',\n  '0.692308 -0.384615 -1.5',\n  '0.692308 -0.230769 -1.5',\n  '0.692308 -0.0769231 -1.5',\n  '0.692308 0.0769231 -1.5',\n  '0.692308 0.230769 -1.5',\n  '0.692308 0.384615 -1.5',\n  '0.692308 0.538462 -1.5',\n  '0.692308 0.692308 -1.5',\n  '0.692308 0.846154 -1.5',\n  '0.692308 1 -1.5',\n  '0.692308 1.15385 -1.5',\n  '0.692308 1.30769 -1.5',\n  '0.692308 1.46154 -1.5',\n  '0.692308 1.61538 -1.5',\n  '0.692308 1.76923 -1.5',\n  '0.692308 1.92308 -1.5',\n  '0.692308 2.07692 -1.5',\n  '0.692308 2.23077 -1.5',\n  '0.692308 2.38462 -1.5',\n  '0.692308 2.53846 -1.5',\n  '0.692308 2.69231 -1.5',\n  '0.692308 2.84615 -1.5',\n  '0.692308 3 -1.5',\n  '0.846154 -2.84615 -1.5',\n  '0.846154 -3 -1.5',\n  '0.846154 -2.69231 -1.5',\n  '0.846154 -2.53846 -1.5',\n  '0.846154 -2.38462 -1.5',\n  '0.846154 -2.23077 -1.5',\n  '0.846154 -2.07692 -1.5',\n  '0.846154 -1.92308 -1.5',\n  '0.846154 -1.76923 -1.5',\n  '0.846154 -1.61538 -1.5',\n  '0.846154 -1.46154 -1.5',\n  '0.846154 -1.30769 -1.5',\n  '0.846154 -1.15385 -1.5',\n  '0.846154 -1 -1.5',\n  '0.846154 -0.846154 -1.5',\n  '0.846154 -0.692308 -1.5',\n  '0.846154 -0.538462 -1.5',\n  '0.846154 -0.384615 -1.5',\n  '0.846154 -0.230769 -1.5',\n  '0.846154 -0.0769231 -1.5',\n  '0.846154 0.0769231 -1.5',\n  '0.846154 0.230769 -1.5',\n  '0.846154 0.384615 -1.5',\n  '0.846154 0.538462 -1.5',\n  '0.846154 0.692308 -1.5',\n  '0.846154 0.846154 -1.5',\n  '0.846154 1 -1.5',\n  '0.846154 1.15385 -1.5',\n  '0.846154 1.30769 -1.5',\n  '0.846154 1.46154 -1.5',\n  '0.846154 1.61538 -1.5',\n  '0.846154 1.76923 -1.5',\n  '0.846154 1.92308 -1.5',\n  '0.846154 2.07692 -1.5',\n  '0.846154 2.23077 -1.5',\n  '0.846154 2.38462 -1.5',\n  '0.846154 2.53846 -1.5',\n  '0.846154 2.69231 -1.5',\n  '0.846154 2.84615 -1.5',\n  '0.846154 3 -1.5',\n  '1 -2.84615 -1.5',\n  '1 -3 -1.5',\n  '1 -2.69231 -1.5',\n  '1 -2.53846 -1.5',\n  '1 -2.38462 -1.5',\n  '1 -2.23077 -1.5',\n  '1 -2.07692 -1.5',\n  '1 -1.92308 -1.5',\n  '1 -1.76923 -1.5',\n  '1 -1.61538 -1.5',\n  '1 -1.46154 -1.5',\n  '1 -1.30769 -1.5',\n  '1 -1.15385 -1.5',\n  '1 -1 -1.5',\n  '1 -0.846154 -1.5',\n  '1 -0.692308 -1.5',\n  '1 -0.538462 -1.5',\n  '1 -0.384615 -1.5',\n  '1 -0.230769 -1.5',\n  '1 -0.0769231 -1.5',\n  '1 0.0769231 -1.5',\n  '1 0.230769 -1.5',\n  '1 0.384615 -1.5',\n  '1 0.538462 -1.5',\n  '1 0.692308 -1.5',\n  '1 0.846154 -1.5',\n  '1 1 -1.5',\n  '1 1.15385 -1.5',\n  '1 1.30769 -1.5',\n  '1 1.46154 -1.5',\n  '1 1.61538 -1.5',\n  '1 1.76923 -1.5',\n  '1 1.92308 -1.5',\n  '1 2.07692 -1.5',\n  '1 2.23077 -1.5',\n  '1 2.38462 -1.5',\n  '1 2.53846 -1.5',\n  '1 2.69231 -1.5',\n  '1 2.84615 -1.5',\n  '1 3 -1.5',\n  '1.15385 -2.84615 -1.5',\n  '1.15385 -3 -1.5',\n  '1.15385 -2.69231 -1.5',\n  '1.15385 -2.53846 -1.5',\n  '1.15385 -2.38462 -1.5',\n  '1.15385 -2.23077 -1.5',\n  '1.15385 -2.07692 -1.5',\n  '1.15385 -1.92308 -1.5',\n  '1.15385 -1.76923 -1.5',\n  '1.15385 -1.61538 -1.5',\n  '1.15385 -1.46154 -1.5',\n  '1.15385 -1.30769 -1.5',\n  '1.15385 -1.15385 -1.5',\n  '1.15385 -1 -1.5',\n  '1.15385 -0.846154 -1.5',\n  '1.15385 -0.692308 -1.5',\n  '1.15385 -0.538462 -1.5',\n  '1.15385 -0.384615 -1.5',\n  '1.15385 -0.230769 -1.5',\n  '1.15385 -0.0769231 -1.5',\n  '1.15385 0.0769231 -1.5',\n  '1.15385 0.230769 -1.5',\n  '1.15385 0.384615 -1.5',\n  '1.15385 0.538462 -1.5',\n  '1.15385 0.692308 -1.5',\n  '1.15385 0.846154 -1.5',\n  '1.15385 1 -1.5',\n  '1.15385 1.15385 -1.5',\n  '1.15385 1.30769 -1.5',\n  '1.15385 1.46154 -1.5',\n  '1.15385 1.61538 -1.5',\n  '1.15385 1.76923 -1.5',\n  '1.15385 1.92308 -1.5',\n  '1.15385 2.07692 -1.5',\n  '1.15385 2.23077 -1.5',\n  '1.15385 2.38462 -1.5',\n  '1.15385 2.53846 -1.5',\n  '1.15385 2.69231 -1.5',\n  '1.15385 2.84615 -1.5',\n  '1.15385 3 -1.5',\n  '1.30769 -2.84615 -1.5',\n  '1.30769 -3 -1.5',\n  '1.30769 -2.69231 -1.5',\n  '1.30769 -2.53846 -1.5',\n  '1.30769 -2.38462 -1.5',\n  '1.30769 -2.23077 -1.5',\n  '1.30769 -2.07692 -1.5',\n  '1.30769 -1.92308 -1.5',\n  '1.30769 -1.76923 -1.5',\n  '1.30769 -1.61538 -1.5',\n  '1.30769 -1.46154 -1.5',\n  '1.30769 -1.30769 -1.5',\n  '1.30769 -1.15385 -1.5',\n  '1.30769 -1 -1.5',\n  '1.30769 -0.846154 -1.5',\n  '1.30769 -0.692308 -1.5',\n  '1.30769 -0.538462 -1.5',\n  '1.30769 -0.384615 -1.5',\n  '1.30769 -0.230769 -1.5',\n  '1.30769 -0.0769231 -1.5',\n  '1.30769 0.0769231 -1.5',\n  '1.30769 0.230769 -1.5',\n  '1.30769 0.384615 -1.5',\n  '1.30769 0.538462 -1.5',\n  '1.30769 0.692308 -1.5',\n  '1.30769 0.846154 -1.5',\n  '1.30769 1 -1.5',\n  '1.30769 1.15385 -1.5',\n  '1.30769 1.30769 -1.5',\n  '1.30769 1.46154 -1.5',\n  '1.30769 1.61538 -1.5',\n  '1.30769 1.76923 -1.5',\n  '1.30769 1.92308 -1.5',\n  '1.30769 2.07692 -1.5',\n  '1.30769 2.23077 -1.5',\n  '1.30769 2.38462 -1.5',\n  '1.30769 2.53846 -1.5',\n  '1.30769 2.69231 -1.5',\n  '1.30769 2.84615 -1.5',\n  '1.30769 3 -1.5',\n  '1.46154 -2.84615 -1.5',\n  '1.46154 -3 -1.5',\n  '1.46154 -2.69231 -1.5',\n  '1.46154 -2.53846 -1.5',\n  '1.46154 -2.38462 -1.5',\n  '1.46154 -2.23077 -1.5',\n  '1.46154 -2.07692 -1.5',\n  '1.46154 -1.92308 -1.5',\n  '1.46154 -1.76923 -1.5',\n  '1.46154 -1.61538 -1.5',\n  '1.46154 -1.46154 -1.5',\n  '1.46154 -1.30769 -1.5',\n  '1.46154 -1.15385 -1.5',\n  '1.46154 -1 -1.5',\n  '1.46154 -0.846154 -1.5',\n  '1.46154 -0.692308 -1.5',\n  '1.46154 -0.538462 -1.5',\n  '1.46154 -0.384615 -1.5',\n  '1.46154 -0.230769 -1.5',\n  '1.46154 -0.0769231 -1.5',\n  '1.46154 0.0769231 -1.5',\n  '1.46154 0.230769 -1.5',\n  '1.46154 0.384615 -1.5',\n  '1.46154 0.538462 -1.5',\n  '1.46154 0.692308 -1.5',\n  '1.46154 0.846154 -1.5',\n  '1.46154 1 -1.5',\n  '1.46154 1.15385 -1.5',\n  '1.46154 1.30769 -1.5',\n  '1.46154 1.46154 -1.5',\n  '1.46154 1.61538 -1.5',\n  '1.46154 1.76923 -1.5',\n  '1.46154 1.92308 -1.5',\n  '1.46154 2.07692 -1.5',\n  '1.46154 2.23077 -1.5',\n  '1.46154 2.38462 -1.5',\n  '1.46154 2.53846 -1.5',\n  '1.46154 2.69231 -1.5',\n  '1.46154 2.84615 -1.5',\n  '1.46154 3 -1.5',\n  '1.61538 -2.84615 -1.5',\n  '1.61538 -3 -1.5',\n  '1.61538 -2.69231 -1.5',\n  '1.61538 -2.53846 -1.5',\n  '1.61538 -2.38462 -1.5',\n  '1.61538 -2.23077 -1.5',\n  '1.61538 -2.07692 -1.5',\n  '1.61538 -1.92308 -1.5',\n  '1.61538 -1.76923 -1.5',\n  '1.61538 -1.61538 -1.5',\n  '1.61538 -1.46154 -1.5',\n  '1.61538 -1.30769 -1.5',\n  '1.61538 -1.15385 -1.5',\n  '1.61538 -1 -1.5',\n  '1.61538 -0.846154 -1.5',\n  '1.61538 -0.692308 -1.5',\n  '1.61538 -0.538462 -1.5',\n  '1.61538 -0.384615 -1.5',\n  '1.61538 -0.230769 -1.5',\n  '1.61538 -0.0769231 -1.5',\n  '1.61538 0.0769231 -1.5',\n  '1.61538 0.230769 -1.5',\n  '1.61538 0.384615 -1.5',\n  '1.61538 0.538462 -1.5',\n  '1.61538 0.692308 -1.5',\n  '1.61538 0.846154 -1.5',\n  '1.61538 1 -1.5',\n  '1.61538 1.15385 -1.5',\n  '1.61538 1.30769 -1.5',\n  '1.61538 1.46154 -1.5',\n  '1.61538 1.61538 -1.5',\n  '1.61538 1.76923 -1.5',\n  '1.61538 1.92308 -1.5',\n  '1.61538 2.07692 -1.5',\n  '1.61538 2.23077 -1.5',\n  '1.61538 2.38462 -1.5',\n  '1.61538 2.53846 -1.5',\n  '1.61538 2.69231 -1.5',\n  '1.61538 2.84615 -1.5',\n  '1.61538 3 -1.5',\n  '1.76923 -2.84615 -1.5',\n  '1.76923 -3 -1.5',\n  '1.76923 -2.69231 -1.5',\n  '1.76923 -2.53846 -1.5',\n  '1.76923 -2.38462 -1.5',\n  '1.76923 -2.23077 -1.5',\n  '1.76923 -2.07692 -1.5',\n  '1.76923 -1.92308 -1.5',\n  '1.76923 -1.76923 -1.5',\n  '1.76923 -1.61538 -1.5',\n  '1.76923 -1.46154 -1.5',\n  '1.76923 -1.30769 -1.5',\n  '1.76923 -1.15385 -1.5',\n  '1.76923 -1 -1.5',\n  '1.76923 -0.846154 -1.5',\n  '1.76923 -0.692308 -1.5',\n  '1.76923 -0.538462 -1.5',\n  '1.76923 -0.384615 -1.5',\n  '1.76923 -0.230769 -1.5',\n  '1.76923 -0.0769231 -1.5',\n  '1.76923 0.0769231 -1.5',\n  '1.76923 0.230769 -1.5',\n  '1.76923 0.384615 -1.5',\n  '1.76923 0.538462 -1.5',\n  '1.76923 0.692308 -1.5',\n  '1.76923 0.846154 -1.5',\n  '1.76923 1 -1.5',\n  '1.76923 1.15385 -1.5',\n  '1.76923 1.30769 -1.5',\n  '1.76923 1.46154 -1.5',\n  '1.76923 1.61538 -1.5',\n  '1.76923 1.76923 -1.5',\n  '1.76923 1.92308 -1.5',\n  '1.76923 2.07692 -1.5',\n  '1.76923 2.23077 -1.5',\n  '1.76923 2.38462 -1.5',\n  '1.76923 2.53846 -1.5',\n  '1.76923 2.69231 -1.5',\n  '1.76923 2.84615 -1.5',\n  '1.76923 3 -1.5',\n  '1.92308 -2.84615 -1.5',\n  '1.92308 -3 -1.5',\n  '1.92308 -2.69231 -1.5',\n  '1.92308 -2.53846 -1.5',\n  '1.92308 -2.38462 -1.5',\n  '1.92308 -2.23077 -1.5',\n  '1.92308 -2.07692 -1.5',\n  '1.92308 -1.92308 -1.5',\n  '1.92308 -1.76923 -1.5',\n  '1.92308 -1.61538 -1.5',\n  '1.92308 -1.46154 -1.5',\n  '1.92308 -1.30769 -1.5',\n  '1.92308 -1.15385 -1.5',\n  '1.92308 -1 -1.5',\n  '1.92308 -0.846154 -1.5',\n  '1.92308 -0.692308 -1.5',\n  '1.92308 -0.538462 -1.5',\n  '1.92308 -0.384615 -1.5',\n  '1.92308 -0.230769 -1.5',\n  '1.92308 -0.0769231 -1.5',\n  '1.92308 0.0769231 -1.5',\n  '1.92308 0.230769 -1.5',\n  '1.92308 0.384615 -1.5',\n  '1.92308 0.538462 -1.5',\n  '1.92308 0.692308 -1.5',\n  '1.92308 0.846154 -1.5',\n  '1.92308 1 -1.5',\n  '1.92308 1.15385 -1.5',\n  '1.92308 1.30769 -1.5',\n  '1.92308 1.46154 -1.5',\n  '1.92308 1.61538 -1.5',\n  '1.92308 1.76923 -1.5',\n  '1.92308 1.92308 -1.5',\n  '1.92308 2.07692 -1.5',\n  '1.92308 2.23077 -1.5',\n  '1.92308 2.38462 -1.5',\n  '1.92308 2.53846 -1.5',\n  '1.92308 2.69231 -1.5',\n  '1.92308 2.84615 -1.5',\n  '1.92308 3 -1.5',\n  '2.07692 -2.84615 -1.5',\n  '2.07692 -3 -1.5',\n  '2.07692 -2.69231 -1.5',\n  '2.07692 -2.53846 -1.5',\n  '2.07692 -2.38462 -1.5',\n  '2.07692 -2.23077 -1.5',\n  '2.07692 -2.07692 -1.5',\n  '2.07692 -1.92308 -1.5',\n  '2.07692 -1.76923 -1.5',\n  '2.07692 -1.61538 -1.5',\n  '2.07692 -1.46154 -1.5',\n  '2.07692 -1.30769 -1.5',\n  '2.07692 -1.15385 -1.5',\n  '2.07692 -1 -1.5',\n  '2.07692 -0.846154 -1.5',\n  '2.07692 -0.692308 -1.5',\n  '2.07692 -0.538462 -1.5',\n  '2.07692 -0.384615 -1.5',\n  '2.07692 -0.230769 -1.5',\n  '2.07692 -0.0769231 -1.5',\n  '2.07692 0.0769231 -1.5',\n  '2.07692 0.230769 -1.5',\n  '2.07692 0.384615 -1.5',\n  '2.07692 0.538462 -1.5',\n  '2.07692 0.692308 -1.5',\n  '2.07692 0.846154 -1.5',\n  '2.07692 1 -1.5',\n  '2.07692 1.15385 -1.5',\n  '2.07692 1.30769 -1.5',\n  '2.07692 1.46154 -1.5',\n  '2.07692 1.61538 -1.5',\n  '2.07692 1.76923 -1.5',\n  '2.07692 1.92308 -1.5',\n  '2.07692 2.07692 -1.5',\n  '2.07692 2.23077 -1.5',\n  '2.07692 2.38462 -1.5',\n  '2.07692 2.53846 -1.5',\n  '2.07692 2.69231 -1.5',\n  '2.07692 2.84615 -1.5',\n  '2.07692 3 -1.5',\n  '2.23077 -2.84615 -1.5',\n  '2.23077 -3 -1.5',\n  '2.23077 -2.69231 -1.5',\n  '2.23077 -2.53846 -1.5',\n  '2.23077 -2.38462 -1.5',\n  '2.23077 -2.23077 -1.5',\n  '2.23077 -2.07692 -1.5',\n  '2.23077 -1.92308 -1.5',\n  '2.23077 -1.76923 -1.5',\n  '2.23077 -1.61538 -1.5',\n  '2.23077 -1.46154 -1.5',\n  '2.23077 -1.30769 -1.5',\n  '2.23077 -1.15385 -1.5',\n  '2.23077 -1 -1.5',\n  '2.23077 -0.846154 -1.5',\n  '2.23077 -0.692308 -1.5',\n  '2.23077 -0.538462 -1.5',\n  '2.23077 -0.384615 -1.5',\n  '2.23077 -0.230769 -1.5',\n  '2.23077 -0.0769231 -1.5',\n  '2.23077 0.0769231 -1.5',\n  '2.23077 0.230769 -1.5',\n  '2.23077 0.384615 -1.5',\n  '2.23077 0.538462 -1.5',\n  '2.23077 0.692308 -1.5',\n  '2.23077 0.846154 -1.5',\n  '2.23077 1 -1.5',\n  '2.23077 1.15385 -1.5',\n  '2.23077 1.30769 -1.5',\n  '2.23077 1.46154 -1.5',\n  '2.23077 1.61538 -1.5',\n  '2.23077 1.76923 -1.5',\n  '2.23077 1.92308 -1.5',\n  '2.23077 2.07692 -1.5',\n  '2.23077 2.23077 -1.5',\n  '2.23077 2.38462 -1.5',\n  '2.23077 2.53846 -1.5',\n  '2.23077 2.69231 -1.5',\n  '2.23077 2.84615 -1.5',\n  '2.23077 3 -1.5',\n  '2.38462 -2.84615 -1.5',\n  '2.38462 -3 -1.5',\n  '2.38462 -2.69231 -1.5',\n  '2.38462 -2.53846 -1.5',\n  '2.38462 -2.38462 -1.5',\n  '2.38462 -2.23077 -1.5',\n  '2.38462 -2.07692 -1.5',\n  '2.38462 -1.92308 -1.5',\n  '2.38462 -1.76923 -1.5',\n  '2.38462 -1.61538 -1.5',\n  '2.38462 -1.46154 -1.5',\n  '2.38462 -1.30769 -1.5',\n  '2.38462 -1.15385 -1.5',\n  '2.38462 -1 -1.5',\n  '2.38462 -0.846154 -1.5',\n  '2.38462 -0.692308 -1.5',\n  '2.38462 -0.538462 -1.5',\n  '2.38462 -0.384615 -1.5',\n  '2.38462 -0.230769 -1.5',\n  '2.38462 -0.0769231 -1.5',\n  '2.38462 0.0769231 -1.5',\n  '2.38462 0.230769 -1.5',\n  '2.38462 0.384615 -1.5',\n  '2.38462 0.538462 -1.5',\n  '2.38462 0.692308 -1.5',\n  '2.38462 0.846154 -1.5',\n  '2.38462 1 -1.5',\n  '2.38462 1.15385 -1.5',\n  '2.38462 1.30769 -1.5',\n  '2.38462 1.46154 -1.5',\n  '2.38462 1.61538 -1.5',\n  '2.38462 1.76923 -1.5',\n  '2.38462 1.92308 -1.5',\n  '2.38462 2.07692 -1.5',\n  '2.38462 2.23077 -1.5',\n  '2.38462 2.38462 -1.5',\n  '2.38462 2.53846 -1.5',\n  '2.38462 2.69231 -1.5',\n  '2.38462 2.84615 -1.5',\n  '2.38462 3 -1.5',\n  '2.53846 -2.84615 -1.5',\n  '2.53846 -3 -1.5',\n  '2.53846 -2.69231 -1.5',\n  '2.53846 -2.53846 -1.5',\n  '2.53846 -2.38462 -1.5',\n  '2.53846 -2.23077 -1.5',\n  '2.53846 -2.07692 -1.5',\n  '2.53846 -1.92308 -1.5',\n  '2.53846 -1.76923 -1.5',\n  '2.53846 -1.61538 -1.5',\n  '2.53846 -1.46154 -1.5',\n  '2.53846 -1.30769 -1.5',\n  '2.53846 -1.15385 -1.5',\n  '2.53846 -1 -1.5',\n  '2.53846 -0.846154 -1.5',\n  '2.53846 -0.692308 -1.5',\n  '2.53846 -0.538462 -1.5',\n  '2.53846 -0.384615 -1.5',\n  '2.53846 -0.230769 -1.5',\n  '2.53846 -0.0769231 -1.5',\n  '2.53846 0.0769231 -1.5',\n  '2.53846 0.230769 -1.5',\n  '2.53846 0.384615 -1.5',\n  '2.53846 0.538462 -1.5',\n  '2.53846 0.692308 -1.5',\n  '2.53846 0.846154 -1.5',\n  '2.53846 1 -1.5',\n  '2.53846 1.15385 -1.5',\n  '2.53846 1.30769 -1.5',\n  '2.53846 1.46154 -1.5',\n  '2.53846 1.61538 -1.5',\n  '2.53846 1.76923 -1.5',\n  '2.53846 1.92308 -1.5',\n  '2.53846 2.07692 -1.5',\n  '2.53846 2.23077 -1.5',\n  '2.53846 2.38462 -1.5',\n  '2.53846 2.53846 -1.5',\n  '2.53846 2.69231 -1.5',\n  '2.53846 2.84615 -1.5',\n  '2.53846 3 -1.5',\n  '2.69231 -2.84615 -1.5',\n  '2.69231 -3 -1.5',\n  '2.69231 -2.69231 -1.5',\n  '2.69231 -2.53846 -1.5',\n  '2.69231 -2.38462 -1.5',\n  '2.69231 -2.23077 -1.5',\n  '2.69231 -2.07692 -1.5',\n  '2.69231 -1.92308 -1.5',\n  '2.69231 -1.76923 -1.5',\n  '2.69231 -1.61538 -1.5',\n  '2.69231 -1.46154 -1.5',\n  '2.69231 -1.30769 -1.5',\n  '2.69231 -1.15385 -1.5',\n  '2.69231 -1 -1.5',\n  '2.69231 -0.846154 -1.5',\n  '2.69231 -0.692308 -1.5',\n  '2.69231 -0.538462 -1.5',\n  '2.69231 -0.384615 -1.5',\n  '2.69231 -0.230769 -1.5',\n  '2.69231 -0.0769231 -1.5',\n  '2.69231 0.0769231 -1.5',\n  '2.69231 0.230769 -1.5',\n  '2.69231 0.384615 -1.5',\n  '2.69231 0.538462 -1.5',\n  '2.69231 0.692308 -1.5',\n  '2.69231 0.846154 -1.5',\n  '2.69231 1 -1.5',\n  '2.69231 1.15385 -1.5',\n  '2.69231 1.30769 -1.5',\n  '2.69231 1.46154 -1.5',\n  '2.69231 1.61538 -1.5',\n  '2.69231 1.76923 -1.5',\n  '2.69231 1.92308 -1.5',\n  '2.69231 2.07692 -1.5',\n  '2.69231 2.23077 -1.5',\n  '2.69231 2.38462 -1.5',\n  '2.69231 2.53846 -1.5',\n  '2.69231 2.69231 -1.5',\n  '2.69231 2.84615 -1.5',\n  '2.69231 3 -1.5',\n  '2.84615 -2.84615 -1.5',\n  '2.84615 -3 -1.5',\n  '2.84615 -2.69231 -1.5',\n  '2.84615 -2.53846 -1.5',\n  '2.84615 -2.38462 -1.5',\n  '2.84615 -2.23077 -1.5',\n  '2.84615 -2.07692 -1.5',\n  '2.84615 -1.92308 -1.5',\n  '2.84615 -1.76923 -1.5',\n  '2.84615 -1.61538 -1.5',\n  '2.84615 -1.46154 -1.5',\n  '2.84615 -1.30769 -1.5',\n  '2.84615 -1.15385 -1.5',\n  '2.84615 -1 -1.5',\n  '2.84615 -0.846154 -1.5',\n  '2.84615 -0.692308 -1.5',\n  '2.84615 -0.538462 -1.5',\n  '2.84615 -0.384615 -1.5',\n  '2.84615 -0.230769 -1.5',\n  '2.84615 -0.0769231 -1.5',\n  '2.84615 0.0769231 -1.5',\n  '2.84615 0.230769 -1.5',\n  '2.84615 0.384615 -1.5',\n  '2.84615 0.538462 -1.5',\n  '2.84615 0.692308 -1.5',\n  '2.84615 0.846154 -1.5',\n  '2.84615 1 -1.5',\n  '2.84615 1.15385 -1.5',\n  '2.84615 1.30769 -1.5',\n  '2.84615 1.46154 -1.5',\n  '2.84615 1.61538 -1.5',\n  '2.84615 1.76923 -1.5',\n  '2.84615 1.92308 -1.5',\n  '2.84615 2.07692 -1.5',\n  '2.84615 2.23077 -1.5',\n  '2.84615 2.38462 -1.5',\n  '2.84615 2.53846 -1.5',\n  '2.84615 2.69231 -1.5',\n  '2.84615 2.84615 -1.5',\n  '2.84615 3 -1.5',\n  '3 -2.84615 -1.5',\n  '3 -3 -1.5',\n  '3 -2.69231 -1.5',\n  '3 -2.53846 -1.5',\n  '3 -2.38462 -1.5',\n  '3 -2.23077 -1.5',\n  '3 -2.07692 -1.5',\n  '3 -1.92308 -1.5',\n  '3 -1.76923 -1.5',\n  '3 -1.61538 -1.5',\n  '3 -1.46154 -1.5',\n  '3 -1.30769 -1.5',\n  '3 -1.15385 -1.5',\n  '3 -1 -1.5',\n  '3 -0.846154 -1.5',\n  '3 -0.692308 -1.5',\n  '3 -0.538462 -1.5',\n  '3 -0.384615 -1.5',\n  '3 -0.230769 -1.5',\n  '3 -0.0769231 -1.5',\n  '3 0.0769231 -1.5',\n  '3 0.230769 -1.5',\n  '3 0.384615 -1.5',\n  '3 0.538462 -1.5',\n  '3 0.692308 -1.5',\n  '3 0.846154 -1.5',\n  '3 1 -1.5',\n  '3 1.15385 -1.5',\n  '3 1.30769 -1.5',\n  '3 1.46154 -1.5',\n  '3 1.61538 -1.5',\n  '3 1.76923 -1.5',\n  '3 1.92308 -1.5',\n  '3 2.07692 -1.5',\n  '3 2.23077 -1.5',\n  '3 2.38462 -1.5',\n  '3 2.53846 -1.5',\n  '3 2.69231 -1.5',\n  '3 2.84615 -1.5',\n  '3 3 -1.5',\n  '-2.53846 -2.38462 -1.49764',\n  '-2.53846 -2.23077 -1.46024',\n  '-2.53846 -2.07692 -1.45353',\n  '-2.53846 -1.92308 -1.49231',\n  '-2.38462 -2.38462 -1.39318',\n  '-2.38462 -2.23077 0.302299',\n  '-2.38462 -2.07692 0.606503',\n  '-2.38462 -1.92308 -1.1513',\n  '-2.38462 -1.76923 -1.48759',\n  '-2.23077 -2.38462 -1.34787',\n  '-2.23077 -2.23077 1.06676',\n  '-2.23077 -2.07692 1.5',\n  '-2.23077 -1.76923 -1.48232',\n  '-2.07692 -2.38462 -1.47863',\n  '-2.07692 -2.23077 -1.13938',\n  '-2.07692 -2.07692 -1.07851',\n  '-2.07692 -1.92308 -1.43023',\n  '-2.07692 -1.76923 -1.49752',\n  '-1.92308 -2.38462 -1.49946',\n  '-1.92308 -2.23077 -1.49089',\n  '-1.92308 -2.07692 -1.48935',\n  '-1.92308 -1.92308 -1.49824',\n  '-2.38462 -2.38462 -1.39318',\n  '-2.38462 -1.92308 -1.1513',\n  '-2.23077 -2.38462 -1.34787',\n  '-2.23077 -2.23077 1.06676',\n  '-2.23077 -2.07692 1.5',\n  '-1.92308 -2.07692 -1.48935',\n  '-2.23077 -2.23077 1.06676',\n  '1521',\n  '5',\n  '0',\n  '1',\n  '2',\n  '3',\n  '0',\n  '5',\n  '1',\n  '4',\n  '5',\n  '2',\n  '1',\n  '5',\n  '4',\n  '6',\n  '7',\n  '5',\n  '4',\n  '5',\n  '6',\n  '8',\n  '9',\n  '7',\n  '6',\n  '5',\n  '8',\n  '10',\n  '11',\n  '9',\n  '8',\n  '5',\n  '10',\n  '12',\n  '13',\n  '11',\n  '10',\n  '5',\n  '12',\n  '14',\n  '15',\n  '13',\n  '12',\n  '5',\n  '14',\n  '16',\n  '17',\n  '15',\n  '14',\n  '5',\n  '16',\n  '18',\n  '19',\n  '17',\n  '16',\n  '5',\n  '18',\n  '20',\n  '21',\n  '19',\n  '18',\n  '5',\n  '20',\n  '22',\n  '23',\n  '21',\n  '20',\n  '5',\n  '22',\n  '24',\n  '25',\n  '23',\n  '22',\n  '5',\n  '24',\n  '26',\n  '27',\n  '25',\n  '24',\n  '5',\n  '26',\n  '28',\n  '29',\n  '27',\n  '26',\n  '5',\n  '28',\n  '30',\n  '31',\n  '29',\n  '28',\n  '5',\n  '30',\n  '32',\n  '33',\n  '31',\n  '30',\n  '5',\n  '32',\n  '34',\n  '35',\n  '33',\n  '32',\n  '5',\n  '34',\n  '36',\n  '37',\n  '35',\n  '34',\n  '5',\n  '36',\n  '38',\n  '39',\n  '37',\n  '36',\n  '5',\n  '38',\n  '40',\n  '41',\n  '39',\n  '38',\n  '5',\n  '40',\n  '42',\n  '43',\n  '41',\n  '40',\n  '5',\n  '42',\n  '44',\n  '45',\n  '43',\n  '42',\n  '5',\n  '44',\n  '46',\n  '47',\n  '45',\n  '44',\n  '5',\n  '46',\n  '48',\n  '49',\n  '47',\n  '46',\n  '5',\n  '48',\n  '50',\n  '51',\n  '49',\n  '48',\n  '5',\n  '50',\n  '52',\n  '53',\n  '51',\n  '50',\n  '5',\n  '52',\n  '54',\n  '55',\n  '53',\n  '52',\n  '5',\n  '54',\n  '56',\n  '57',\n  '55',\n  '54',\n  '5',\n  '56',\n  '58',\n  '59',\n  '57',\n  '56',\n  '5',\n  '58',\n  '60',\n  '61',\n  '59',\n  '58',\n  '5',\n  '60',\n  '62',\n  '63',\n  '61',\n  '60',\n  '5',\n  '62',\n  '64',\n  '65',\n  '63',\n  '62',\n  '5',\n  '64',\n  '66',\n  '67',\n  '65',\n  '64',\n  '5',\n  '66',\n  '68',\n  '69',\n  '67',\n  '66',\n  '5',\n  '68',\n  '70',\n  '71',\n  '69',\n  '68',\n  '5',\n  '70',\n  '72',\n  '73',\n  '71',\n  '70',\n  '5',\n  '72',\n  '74',\n  '75',\n  '73',\n  '72',\n  '5',\n  '74',\n  '76',\n  '77',\n  '75',\n  '74',\n  '5',\n  '76',\n  '78',\n  '79',\n  '77',\n  '76',\n  '5',\n  '3',\n  '2',\n  '80',\n  '81',\n  '3',\n  '5',\n  '2',\n  '5',\n  '82',\n  '80',\n  '2',\n  '5',\n  '5',\n  '7',\n  '83',\n  '82',\n  '5',\n  '5',\n  '7',\n  '9',\n  '84',\n  '83',\n  '7',\n  '5',\n  '9',\n  '11',\n  '85',\n  '84',\n  '9',\n  '5',\n  '11',\n  '13',\n  '86',\n  '85',\n  '11',\n  '5',\n  '13',\n  '15',\n  '87',\n  '86',\n  '13',\n  '5',\n  '15',\n  '17',\n  '88',\n  '87',\n  '15',\n  '5',\n  '17',\n  '19',\n  '89',\n  '88',\n  '17',\n  '5',\n  '19',\n  '21',\n  '90',\n  '89',\n  '19',\n  '5',\n  '21',\n  '23',\n  '91',\n  '90',\n  '21',\n  '5',\n  '23',\n  '25',\n  '92',\n  '91',\n  '23',\n  '5',\n  '25',\n  '27',\n  '93',\n  '92',\n  '25',\n  '5',\n  '27',\n  '29',\n  '94',\n  '93',\n  '27',\n  '5',\n  '29',\n  '31',\n  '95',\n  '94',\n  '29',\n  '5',\n  '31',\n  '33',\n  '96',\n  '95',\n  '31',\n  '5',\n  '33',\n  '35',\n  '97',\n  '96',\n  '33',\n  '5',\n  '35',\n  '37',\n  '98',\n  '97',\n  '35',\n  '5',\n  '37',\n  '39',\n  '99',\n  '98',\n  '37',\n  '5',\n  '39',\n  '41',\n  '100',\n  '99',\n  '39',\n  '5',\n  '41',\n  '43',\n  '101',\n  '100',\n  '41',\n  '5',\n  '43',\n  '45',\n  '102',\n  '101',\n  '43',\n  '5',\n  '45',\n  '47',\n  '103',\n  '102',\n  '45',\n  '5',\n  '47',\n  '49',\n  '104',\n  '103',\n  '47',\n  '5',\n  '49',\n  '51',\n  '105',\n  '104',\n  '49',\n  '5',\n  '51',\n  '53',\n  '106',\n  '105',\n  '51',\n  '5',\n  '53',\n  '55',\n  '107',\n  '106',\n  '53',\n  '5',\n  '55',\n  '57',\n  '108',\n  '107',\n  '55',\n  '5',\n  '57',\n  '59',\n  '109',\n  '108',\n  '57',\n  '5',\n  '59',\n  '61',\n  '110',\n  '109',\n  '59',\n  '5',\n  '61',\n  '63',\n  '111',\n  '110',\n  '61',\n  '5',\n  '63',\n  '65',\n  '112',\n  '111',\n  '63',\n  '5',\n  '65',\n  '67',\n  '113',\n  '112',\n  '65',\n  '5',\n  '67',\n  '69',\n  '114',\n  '113',\n  '67',\n  '5',\n  '69',\n  '71',\n  '115',\n  '114',\n  '69',\n  '5',\n  '71',\n  '73',\n  '116',\n  '115',\n  '71',\n  '5',\n  '73',\n  '75',\n  '117',\n  '116',\n  '73',\n  '5',\n  '75',\n  '77',\n  '118',\n  '117',\n  '75',\n  '5',\n  '77',\n  '79',\n  '119',\n  '118',\n  '77',\n  '5',\n  '81',\n  '80',\n  '120',\n  '121',\n  '81',\n  '5',\n  '80',\n  '82',\n  '122',\n  '120',\n  '80',\n  '5',\n  '82',\n  '83',\n  '123',\n  '122',\n  '82',\n  '5',\n  '83',\n  '84',\n  '124',\n  '123',\n  '83',\n  '5',\n  '84',\n  '85',\n  '125',\n  '124',\n  '84',\n  '5',\n  '85',\n  '86',\n  '126',\n  '125',\n  '85',\n  '5',\n  '86',\n  '87',\n  '127',\n  '126',\n  '86',\n  '5',\n  '87',\n  '88',\n  '128',\n  '127',\n  '87',\n  '5',\n  '88',\n  '89',\n  '129',\n  '128',\n  '88',\n  '5',\n  '89',\n  '90',\n  '130',\n  '129',\n  '89',\n  '5',\n  '90',\n  '91',\n  '131',\n  '130',\n  '90',\n  '5',\n  '91',\n  '92',\n  '132',\n  '131',\n  '91',\n  '5',\n  '92',\n  '93',\n  '133',\n  '132',\n  '92',\n  '5',\n  '93',\n  '94',\n  '134',\n  '133',\n  '93',\n  '5',\n  '94',\n  '95',\n  '135',\n  '134',\n  '94',\n  '5',\n  '95',\n  '96',\n  '136',\n  '135',\n  '95',\n  '5',\n  '96',\n  '97',\n  '137',\n  '136',\n  '96',\n  '5',\n  '97',\n  '98',\n  '138',\n  '137',\n  '97',\n  '5',\n  '98',\n  '99',\n  '139',\n  '138',\n  '98',\n  '5',\n  '99',\n  '100',\n  '140',\n  '139',\n  '99',\n  '5',\n  '100',\n  '101',\n  '141',\n  '140',\n  '100',\n  '5',\n  '101',\n  '102',\n  '142',\n  '141',\n  '101',\n  '5',\n  '102',\n  '103',\n  '143',\n  '142',\n  '102',\n  '5',\n  '103',\n  '104',\n  '144',\n  '143',\n  '103',\n  '5',\n  '104',\n  '105',\n  '145',\n  '144',\n  '104',\n  '5',\n  '105',\n  '106',\n  '146',\n  '145',\n  '105',\n  '5',\n  '106',\n  '107',\n  '147',\n  '146',\n  '106',\n  '5',\n  '107',\n  '108',\n  '148',\n  '147',\n  '107',\n  '5',\n  '108',\n  '109',\n  '149',\n  '148',\n  '108',\n  '5',\n  '109',\n  '110',\n  '150',\n  '149',\n  '109',\n  '5',\n  '110',\n  '111',\n  '151',\n  '150',\n  '110',\n  '5',\n  '111',\n  '112',\n  '152',\n  '151',\n  '111',\n  '5',\n  '112',\n  '113',\n  '153',\n  '152',\n  '112',\n  '5',\n  '113',\n  '114',\n  '154',\n  '153',\n  '113',\n  '5',\n  '114',\n  '115',\n  '155',\n  '154',\n  '114',\n  '5',\n  '115',\n  '116',\n  '156',\n  '155',\n  '115',\n  '5',\n  '116',\n  '117',\n  '157',\n  '156',\n  '116',\n  '5',\n  '117',\n  '118',\n  '158',\n  '157',\n  '117',\n  '5',\n  '118',\n  '119',\n  '159',\n  '158',\n  '118',\n  '5',\n  '121',\n  '120',\n  '160',\n  '161',\n  '121',\n  '5',\n  '120',\n  '122',\n  '162',\n  '160',\n  '120',\n  '5',\n  '122',\n  '123',\n  '163',\n  '162',\n  '122',\n  '5',\n  '123',\n  '124',\n  '164',\n  '163',\n  '123',\n  '5',\n  '1600',\n  '1601',\n  '165',\n  '1604',\n  '1600',\n  '5',\n  '1601',\n  '1602',\n  '166',\n  '165',\n  '1601',\n  '5',\n  '1602',\n  '1603',\n  '167',\n  '166',\n  '1602',\n  '5',\n  '127',\n  '128',\n  '168',\n  '1607',\n  '127',\n  '5',\n  '128',\n  '129',\n  '169',\n  '168',\n  '128',\n  '5',\n  '129',\n  '130',\n  '170',\n  '169',\n  '129',\n  '5',\n  '130',\n  '131',\n  '171',\n  '170',\n  '130',\n  '5',\n  '131',\n  '132',\n  '172',\n  '171',\n  '131',\n  '5',\n  '132',\n  '133',\n  '173',\n  '172',\n  '132',\n  '5',\n  '133',\n  '134',\n  '174',\n  '173',\n  '133',\n  '5',\n  '134',\n  '135',\n  '175',\n  '174',\n  '134',\n  '5',\n  '135',\n  '136',\n  '176',\n  '175',\n  '135',\n  '5',\n  '136',\n  '137',\n  '177',\n  '176',\n  '136',\n  '5',\n  '137',\n  '138',\n  '178',\n  '177',\n  '137',\n  '5',\n  '138',\n  '139',\n  '179',\n  '178',\n  '138',\n  '5',\n  '139',\n  '140',\n  '180',\n  '179',\n  '139',\n  '5',\n  '140',\n  '141',\n  '181',\n  '180',\n  '140',\n  '5',\n  '141',\n  '142',\n  '182',\n  '181',\n  '141',\n  '5',\n  '142',\n  '143',\n  '183',\n  '182',\n  '142',\n  '5',\n  '143',\n  '144',\n  '184',\n  '183',\n  '143',\n  '5',\n  '144',\n  '145',\n  '185',\n  '184',\n  '144',\n  '5',\n  '145',\n  '146',\n  '186',\n  '185',\n  '145',\n  '5',\n  '146',\n  '147',\n  '187',\n  '186',\n  '146',\n  '5',\n  '147',\n  '148',\n  '188',\n  '187',\n  '147',\n  '5',\n  '148',\n  '149',\n  '189',\n  '188',\n  '148',\n  '5',\n  '149',\n  '150',\n  '190',\n  '189',\n  '149',\n  '5',\n  '150',\n  '151',\n  '191',\n  '190',\n  '150',\n  '5',\n  '151',\n  '152',\n  '192',\n  '191',\n  '151',\n  '5',\n  '152',\n  '153',\n  '193',\n  '192',\n  '152',\n  '5',\n  '153',\n  '154',\n  '194',\n  '193',\n  '153',\n  '5',\n  '154',\n  '155',\n  '195',\n  '194',\n  '154',\n  '5',\n  '155',\n  '156',\n  '196',\n  '195',\n  '155',\n  '5',\n  '156',\n  '157',\n  '197',\n  '196',\n  '156',\n  '5',\n  '157',\n  '158',\n  '198',\n  '197',\n  '157',\n  '5',\n  '158',\n  '159',\n  '199',\n  '198',\n  '158',\n  '5',\n  '161',\n  '160',\n  '200',\n  '201',\n  '161',\n  '5',\n  '160',\n  '162',\n  '202',\n  '200',\n  '160',\n  '5',\n  '162',\n  '163',\n  '203',\n  '202',\n  '162',\n  '5',\n  '163',\n  '164',\n  '204',\n  '203',\n  '163',\n  '5',\n  '1622',\n  '1605',\n  '205',\n  '1609',\n  '1622',\n  '5',\n  '165',\n  '166',\n  '206',\n  '1610',\n  '165',\n  '5',\n  '1606',\n  '1623',\n  '207',\n  '1611',\n  '1606',\n  '5',\n  '1623',\n  '1608',\n  '208',\n  '207',\n  '1623',\n  '5',\n  '168',\n  '169',\n  '209',\n  '1612',\n  '168',\n  '5',\n  '169',\n  '170',\n  '210',\n  '209',\n  '169',\n  '5',\n  '170',\n  '171',\n  '211',\n  '210',\n  '170',\n  '5',\n  '171',\n  '172',\n  '212',\n  '211',\n  '171',\n  '5',\n  '172',\n  '173',\n  '213',\n  '212',\n  '172',\n  '5',\n  '173',\n  '174',\n  '214',\n  '213',\n  '173',\n  '5',\n  '174',\n  '175',\n  '215',\n  '214',\n  '174',\n  '5',\n  '175',\n  '176',\n  '216',\n  '215',\n  '175',\n  '5',\n  '176',\n  '177',\n  '217',\n  '216',\n  '176',\n  '5',\n  '177',\n  '178',\n  '218',\n  '217',\n  '177',\n  '5',\n  '178',\n  '179',\n  '219',\n  '218',\n  '178',\n  '5',\n  '179',\n  '180',\n  '220',\n  '219',\n  '179',\n  '5',\n  '180',\n  '181',\n  '221',\n  '220',\n  '180',\n  '5',\n  '181',\n  '182',\n  '222',\n  '221',\n  '181',\n  '5',\n  '182',\n  '183',\n  '223',\n  '222',\n  '182',\n  '5',\n  '183',\n  '184',\n  '224',\n  '223',\n  '183',\n  '5',\n  '184',\n  '185',\n  '225',\n  '224',\n  '184',\n  '5',\n  '185',\n  '186',\n  '226',\n  '225',\n  '185',\n  '5',\n  '186',\n  '187',\n  '227',\n  '226',\n  '186',\n  '5',\n  '187',\n  '188',\n  '228',\n  '227',\n  '187',\n  '5',\n  '188',\n  '189',\n  '229',\n  '228',\n  '188',\n  '5',\n  '189',\n  '190',\n  '230',\n  '229',\n  '189',\n  '5',\n  '190',\n  '191',\n  '231',\n  '230',\n  '190',\n  '5',\n  '191',\n  '192',\n  '232',\n  '231',\n  '191',\n  '5',\n  '192',\n  '193',\n  '233',\n  '232',\n  '192',\n  '5',\n  '193',\n  '194',\n  '234',\n  '233',\n  '193',\n  '5',\n  '194',\n  '195',\n  '235',\n  '234',\n  '194',\n  '5',\n  '195',\n  '196',\n  '236',\n  '235',\n  '195',\n  '5',\n  '196',\n  '197',\n  '237',\n  '236',\n  '196',\n  '5',\n  '197',\n  '198',\n  '238',\n  '237',\n  '197',\n  '5',\n  '198',\n  '199',\n  '239',\n  '238',\n  '198',\n  '5',\n  '201',\n  '200',\n  '240',\n  '241',\n  '201',\n  '5',\n  '200',\n  '202',\n  '242',\n  '240',\n  '200',\n  '5',\n  '202',\n  '203',\n  '243',\n  '242',\n  '202',\n  '5',\n  '203',\n  '204',\n  '244',\n  '243',\n  '203',\n  '5',\n  '1624',\n  '1625',\n  '245',\n  '1613',\n  '1624',\n  '5',\n  '1628',\n  '1626',\n  '246',\n  '1614',\n  '1628',\n  '5',\n  '1611',\n  '207',\n  '247',\n  '1615',\n  '1611',\n  '5',\n  '207',\n  '208',\n  '248',\n  '247',\n  '207',\n  '5',\n  '1612',\n  '209',\n  '249',\n  '1617',\n  '1612',\n  '5',\n  '209',\n  '210',\n  '250',\n  '249',\n  '209',\n  '5',\n  '210',\n  '211',\n  '251',\n  '250',\n  '210',\n  '5',\n  '211',\n  '212',\n  '252',\n  '251',\n  '211',\n  '5',\n  '212',\n  '213',\n  '253',\n  '252',\n  '212',\n  '5',\n  '213',\n  '214',\n  '254',\n  '253',\n  '213',\n  '5',\n  '214',\n  '215',\n  '255',\n  '254',\n  '214',\n  '5',\n  '215',\n  '216',\n  '256',\n  '255',\n  '215',\n  '5',\n  '216',\n  '217',\n  '257',\n  '256',\n  '216',\n  '5',\n  '217',\n  '218',\n  '258',\n  '257',\n  '217',\n  '5',\n  '218',\n  '219',\n  '259',\n  '258',\n  '218',\n  '5',\n  '219',\n  '220',\n  '260',\n  '259',\n  '219',\n  '5',\n  '220',\n  '221',\n  '261',\n  '260',\n  '220',\n  '5',\n  '221',\n  '222',\n  '262',\n  '261',\n  '221',\n  '5',\n  '222',\n  '223',\n  '263',\n  '262',\n  '222',\n  '5',\n  '223',\n  '224',\n  '264',\n  '263',\n  '223',\n  '5',\n  '224',\n  '225',\n  '265',\n  '264',\n  '224',\n  '5',\n  '225',\n  '226',\n  '266',\n  '265',\n  '225',\n  '5',\n  '226',\n  '227',\n  '267',\n  '266',\n  '226',\n  '5',\n  '227',\n  '228',\n  '268',\n  '267',\n  '227',\n  '5',\n  '228',\n  '229',\n  '269',\n  '268',\n  '228',\n  '5',\n  '229',\n  '230',\n  '270',\n  '269',\n  '229',\n  '5',\n  '230',\n  '231',\n  '271',\n  '270',\n  '230',\n  '5',\n  '231',\n  '232',\n  '272',\n  '271',\n  '231',\n  '5',\n  '232',\n  '233',\n  '273',\n  '272',\n  '232',\n  '5',\n  '233',\n  '234',\n  '274',\n  '273',\n  '233',\n  '5',\n  '234',\n  '235',\n  '275',\n  '274',\n  '234',\n  '5',\n  '235',\n  '236',\n  '276',\n  '275',\n  '235',\n  '5',\n  '236',\n  '237',\n  '277',\n  '276',\n  '236',\n  '5',\n  '237',\n  '238',\n  '278',\n  '277',\n  '237',\n  '5',\n  '238',\n  '239',\n  '279',\n  '278',\n  '238',\n  '5',\n  '241',\n  '240',\n  '280',\n  '281',\n  '241',\n  '5',\n  '240',\n  '242',\n  '282',\n  '280',\n  '240',\n  '5',\n  '242',\n  '243',\n  '283',\n  '282',\n  '242',\n  '5',\n  '243',\n  '244',\n  '284',\n  '283',\n  '243',\n  '5',\n  '244',\n  '245',\n  '285',\n  '1618',\n  '244',\n  '5',\n  '1614',\n  '246',\n  '286',\n  '285',\n  '1614',\n  '5',\n  '1615',\n  '247',\n  '287',\n  '1620',\n  '1615',\n  '5',\n  '1616',\n  '1617',\n  '288',\n  '287',\n  '1616',\n  '5',\n  '1617',\n  '249',\n  '289',\n  '288',\n  '1617',\n  '5',\n  '249',\n  '250',\n  '290',\n  '289',\n  '249',\n  '5',\n  '250',\n  '251',\n  '291',\n  '290',\n  '250',\n  '5',\n  '251',\n  '252',\n  '292',\n  '291',\n  '251',\n  '5',\n  '252',\n  '253',\n  '293',\n  '292',\n  '252',\n  '5',\n  '253',\n  '254',\n  '294',\n  '293',\n  '253',\n  '5',\n  '254',\n  '255',\n  '295',\n  '294',\n  '254',\n  '5',\n  '255',\n  '256',\n  '296',\n  '295',\n  '255',\n  '5',\n  '256',\n  '257',\n  '297',\n  '296',\n  '256',\n  '5',\n  '257',\n  '258',\n  '298',\n  '297',\n  '257',\n  '5',\n  '258',\n  '259',\n  '299',\n  '298',\n  '258',\n  '5',\n  '259',\n  '260',\n  '300',\n  '299',\n  '259',\n  '5',\n  '260',\n  '261',\n  '301',\n  '300',\n  '260',\n  '5',\n  '261',\n  '262',\n  '302',\n  '301',\n  '261',\n  '5',\n  '262',\n  '263',\n  '303',\n  '302',\n  '262',\n  '5',\n  '263',\n  '264',\n  '304',\n  '303',\n  '263',\n  '5',\n  '264',\n  '265',\n  '305',\n  '304',\n  '264',\n  '5',\n  '265',\n  '266',\n  '306',\n  '305',\n  '265',\n  '5',\n  '266',\n  '267',\n  '307',\n  '306',\n  '266',\n  '5',\n  '267',\n  '268',\n  '308',\n  '307',\n  '267',\n  '5',\n  '268',\n  '269',\n  '309',\n  '308',\n  '268',\n  '5',\n  '269',\n  '270',\n  '310',\n  '309',\n  '269',\n  '5',\n  '270',\n  '271',\n  '311',\n  '310',\n  '270',\n  '5',\n  '271',\n  '272',\n  '312',\n  '311',\n  '271',\n  '5',\n  '272',\n  '273',\n  '313',\n  '312',\n  '272',\n  '5',\n  '273',\n  '274',\n  '314',\n  '313',\n  '273',\n  '5',\n  '274',\n  '275',\n  '315',\n  '314',\n  '274',\n  '5',\n  '275',\n  '276',\n  '316',\n  '315',\n  '275',\n  '5',\n  '276',\n  '277',\n  '317',\n  '316',\n  '276',\n  '5',\n  '277',\n  '278',\n  '318',\n  '317',\n  '277',\n  '5',\n  '278',\n  '279',\n  '319',\n  '318',\n  '278',\n  '5',\n  '281',\n  '280',\n  '320',\n  '321',\n  '281',\n  '5',\n  '280',\n  '282',\n  '322',\n  '320',\n  '280',\n  '5',\n  '282',\n  '283',\n  '323',\n  '322',\n  '282',\n  '5',\n  '283',\n  '284',\n  '324',\n  '323',\n  '283',\n  '5',\n  '284',\n  '1619',\n  '325',\n  '324',\n  '284',\n  '5',\n  '1619',\n  '1627',\n  '326',\n  '325',\n  '1619',\n  '5',\n  '1627',\n  '1621',\n  '327',\n  '326',\n  '1627',\n  '5',\n  '1621',\n  '288',\n  '328',\n  '327',\n  '1621',\n  '5',\n  '288',\n  '289',\n  '329',\n  '328',\n  '288',\n  '5',\n  '289',\n  '290',\n  '330',\n  '329',\n  '289',\n  '5',\n  '290',\n  '291',\n  '331',\n  '330',\n  '290',\n  '5',\n  '291',\n  '292',\n  '332',\n  '331',\n  '291',\n  '5',\n  '292',\n  '293',\n  '333',\n  '332',\n  '292',\n  '5',\n  '293',\n  '294',\n  '334',\n  '333',\n  '293',\n  '5',\n  '294',\n  '295',\n  '335',\n  '334',\n  '294',\n  '5',\n  '295',\n  '296',\n  '336',\n  '335',\n  '295',\n  '5',\n  '296',\n  '297',\n  '337',\n  '336',\n  '296',\n  '5',\n  '297',\n  '298',\n  '338',\n  '337',\n  '297',\n  '5',\n  '298',\n  '299',\n  '339',\n  '338',\n  '298',\n  '5',\n  '299',\n  '300',\n  '340',\n  '339',\n  '299',\n  '5',\n  '300',\n  '301',\n  '341',\n  '340',\n  '300',\n  '5',\n  '301',\n  '302',\n  '342',\n  '341',\n  '301',\n  '5',\n  '302',\n  '303',\n  '343',\n  '342',\n  '302',\n  '5',\n  '303',\n  '304',\n  '344',\n  '343',\n  '303',\n  '5',\n  '304',\n  '305',\n  '345',\n  '344',\n  '304',\n  '5',\n  '305',\n  '306',\n  '346',\n  '345',\n  '305',\n  '5',\n  '306',\n  '307',\n  '347',\n  '346',\n  '306',\n  '5',\n  '307',\n  '308',\n  '348',\n  '347',\n  '307',\n  '5',\n  '308',\n  '309',\n  '349',\n  '348',\n  '308',\n  '5',\n  '309',\n  '310',\n  '350',\n  '349',\n  '309',\n  '5',\n  '310',\n  '311',\n  '351',\n  '350',\n  '310',\n  '5',\n  '311',\n  '312',\n  '352',\n  '351',\n  '311',\n  '5',\n  '312',\n  '313',\n  '353',\n  '352',\n  '312',\n  '5',\n  '313',\n  '314',\n  '354',\n  '353',\n  '313',\n  '5',\n  '314',\n  '315',\n  '355',\n  '354',\n  '314',\n  '5',\n  '315',\n  '316',\n  '356',\n  '355',\n  '315',\n  '5',\n  '316',\n  '317',\n  '357',\n  '356',\n  '316',\n  '5',\n  '317',\n  '318',\n  '358',\n  '357',\n  '317',\n  '5',\n  '318',\n  '319',\n  '359',\n  '358',\n  '318',\n  '5',\n  '321',\n  '320',\n  '360',\n  '361',\n  '321',\n  '5',\n  '320',\n  '322',\n  '362',\n  '360',\n  '320',\n  '5',\n  '322',\n  '323',\n  '363',\n  '362',\n  '322',\n  '5',\n  '323',\n  '324',\n  '364',\n  '363',\n  '323',\n  '5',\n  '324',\n  '325',\n  '365',\n  '364',\n  '324',\n  '5',\n  '325',\n  '326',\n  '366',\n  '365',\n  '325',\n  '5',\n  '326',\n  '327',\n  '367',\n  '366',\n  '326',\n  '5',\n  '327',\n  '328',\n  '368',\n  '367',\n  '327',\n  '5',\n  '328',\n  '329',\n  '369',\n  '368',\n  '328',\n  '5',\n  '329',\n  '330',\n  '370',\n  '369',\n  '329',\n  '5',\n  '330',\n  '331',\n  '371',\n  '370',\n  '330',\n  '5',\n  '331',\n  '332',\n  '372',\n  '371',\n  '331',\n  '5',\n  '332',\n  '333',\n  '373',\n  '372',\n  '332',\n  '5',\n  '333',\n  '334',\n  '374',\n  '373',\n  '333',\n  '5',\n  '334',\n  '335',\n  '375',\n  '374',\n  '334',\n  '5',\n  '335',\n  '336',\n  '376',\n  '375',\n  '335',\n  '5',\n  '336',\n  '337',\n  '377',\n  '376',\n  '336',\n  '5',\n  '337',\n  '338',\n  '378',\n  '377',\n  '337',\n  '5',\n  '338',\n  '339',\n  '379',\n  '378',\n  '338',\n  '5',\n  '339',\n  '340',\n  '380',\n  '379',\n  '339',\n  '5',\n  '340',\n  '341',\n  '381',\n  '380',\n  '340',\n  '5',\n  '341',\n  '342',\n  '382',\n  '381',\n  '341',\n  '5',\n  '342',\n  '343',\n  '383',\n  '382',\n  '342',\n  '5',\n  '343',\n  '344',\n  '384',\n  '383',\n  '343',\n  '5',\n  '344',\n  '345',\n  '385',\n  '384',\n  '344',\n  '5',\n  '345',\n  '346',\n  '386',\n  '385',\n  '345',\n  '5',\n  '346',\n  '347',\n  '387',\n  '386',\n  '346',\n  '5',\n  '347',\n  '348',\n  '388',\n  '387',\n  '347',\n  '5',\n  '348',\n  '349',\n  '389',\n  '388',\n  '348',\n  '5',\n  '349',\n  '350',\n  '390',\n  '389',\n  '349',\n  '5',\n  '350',\n  '351',\n  '391',\n  '390',\n  '350',\n  '5',\n  '351',\n  '352',\n  '392',\n  '391',\n  '351',\n  '5',\n  '352',\n  '353',\n  '393',\n  '392',\n  '352',\n  '5',\n  '353',\n  '354',\n  '394',\n  '393',\n  '353',\n  '5',\n  '354',\n  '355',\n  '395',\n  '394',\n  '354',\n  '5',\n  '355',\n  '356',\n  '396',\n  '395',\n  '355',\n  '5',\n  '356',\n  '357',\n  '397',\n  '396',\n  '356',\n  '5',\n  '357',\n  '358',\n  '398',\n  '397',\n  '357',\n  '5',\n  '358',\n  '359',\n  '399',\n  '398',\n  '358',\n  '5',\n  '361',\n  '360',\n  '400',\n  '401',\n  '361',\n  '5',\n  '360',\n  '362',\n  '402',\n  '400',\n  '360',\n  '5',\n  '362',\n  '363',\n  '403',\n  '402',\n  '362',\n  '5',\n  '363',\n  '364',\n  '404',\n  '403',\n  '363',\n  '5',\n  '364',\n  '365',\n  '405',\n  '404',\n  '364',\n  '5',\n  '365',\n  '366',\n  '406',\n  '405',\n  '365',\n  '5',\n  '366',\n  '367',\n  '407',\n  '406',\n  '366',\n  '5',\n  '367',\n  '368',\n  '408',\n  '407',\n  '367',\n  '5',\n  '368',\n  '369',\n  '409',\n  '408',\n  '368',\n  '5',\n  '369',\n  '370',\n  '410',\n  '409',\n  '369',\n  '5',\n  '370',\n  '371',\n  '411',\n  '410',\n  '370',\n  '5',\n  '371',\n  '372',\n  '412',\n  '411',\n  '371',\n  '5',\n  '372',\n  '373',\n  '413',\n  '412',\n  '372',\n  '5',\n  '373',\n  '374',\n  '414',\n  '413',\n  '373',\n  '5',\n  '374',\n  '375',\n  '415',\n  '414',\n  '374',\n  '5',\n  '375',\n  '376',\n  '416',\n  '415',\n  '375',\n  '5',\n  '376',\n  '377',\n  '417',\n  '416',\n  '376',\n  '5',\n  '377',\n  '378',\n  '418',\n  '417',\n  '377',\n  '5',\n  '378',\n  '379',\n  '419',\n  '418',\n  '378',\n  '5',\n  '379',\n  '380',\n  '420',\n  '419',\n  '379',\n  '5',\n  '380',\n  '381',\n  '421',\n  '420',\n  '380',\n  '5',\n  '381',\n  '382',\n  '422',\n  '421',\n  '381',\n  '5',\n  '382',\n  '383',\n  '423',\n  '422',\n  '382',\n  '5',\n  '383',\n  '384',\n  '424',\n  '423',\n  '383',\n  '5',\n  '384',\n  '385',\n  '425',\n  '424',\n  '384',\n  '5',\n  '385',\n  '386',\n  '426',\n  '425',\n  '385',\n  '5',\n  '386',\n  '387',\n  '427',\n  '426',\n  '386',\n  '5',\n  '387',\n  '388',\n  '428',\n  '427',\n  '387',\n  '5',\n  '388',\n  '389',\n  '429',\n  '428',\n  '388',\n  '5',\n  '389',\n  '390',\n  '430',\n  '429',\n  '389',\n  '5',\n  '390',\n  '391',\n  '431',\n  '430',\n  '390',\n  '5',\n  '391',\n  '392',\n  '432',\n  '431',\n  '391',\n  '5',\n  '392',\n  '393',\n  '433',\n  '432',\n  '392',\n  '5',\n  '393',\n  '394',\n  '434',\n  '433',\n  '393',\n  '5',\n  '394',\n  '395',\n  '435',\n  '434',\n  '394',\n  '5',\n  '395',\n  '396',\n  '436',\n  '435',\n  '395',\n  '5',\n  '396',\n  '397',\n  '437',\n  '436',\n  '396',\n  '5',\n  '397',\n  '398',\n  '438',\n  '437',\n  '397',\n  '5',\n  '398',\n  '399',\n  '439',\n  '438',\n  '398',\n  '5',\n  '401',\n  '400',\n  '440',\n  '441',\n  '401',\n  '5',\n  '400',\n  '402',\n  '442',\n  '440',\n  '400',\n  '5',\n  '402',\n  '403',\n  '443',\n  '442',\n  '402',\n  '5',\n  '403',\n  '404',\n  '444',\n  '443',\n  '403',\n  '5',\n  '404',\n  '405',\n  '445',\n  '444',\n  '404',\n  '5',\n  '405',\n  '406',\n  '446',\n  '445',\n  '405',\n  '5',\n  '406',\n  '407',\n  '447',\n  '446',\n  '406',\n  '5',\n  '407',\n  '408',\n  '448',\n  '447',\n  '407',\n  '5',\n  '408',\n  '409',\n  '449',\n  '448',\n  '408',\n  '5',\n  '409',\n  '410',\n  '450',\n  '449',\n  '409',\n  '5',\n  '410',\n  '411',\n  '451',\n  '450',\n  '410',\n  '5',\n  '411',\n  '412',\n  '452',\n  '451',\n  '411',\n  '5',\n  '412',\n  '413',\n  '453',\n  '452',\n  '412',\n  '5',\n  '413',\n  '414',\n  '454',\n  '453',\n  '413',\n  '5',\n  '414',\n  '415',\n  '455',\n  '454',\n  '414',\n  '5',\n  '415',\n  '416',\n  '456',\n  '455',\n  '415',\n  '5',\n  '416',\n  '417',\n  '457',\n  '456',\n  '416',\n  '5',\n  '417',\n  '418',\n  '458',\n  '457',\n  '417',\n  '5',\n  '418',\n  '419',\n  '459',\n  '458',\n  '418',\n  '5',\n  '419',\n  '420',\n  '460',\n  '459',\n  '419',\n  '5',\n  '420',\n  '421',\n  '461',\n  '460',\n  '420',\n  '5',\n  '421',\n  '422',\n  '462',\n  '461',\n  '421',\n  '5',\n  '422',\n  '423',\n  '463',\n  '462',\n  '422',\n  '5',\n  '423',\n  '424',\n  '464',\n  '463',\n  '423',\n  '5',\n  '424',\n  '425',\n  '465',\n  '464',\n  '424',\n  '5',\n  '425',\n  '426',\n  '466',\n  '465',\n  '425',\n  '5',\n  '426',\n  '427',\n  '467',\n  '466',\n  '426',\n  '5',\n  '427',\n  '428',\n  '468',\n  '467',\n  '427',\n  '5',\n  '428',\n  '429',\n  '469',\n  '468',\n  '428',\n  '5',\n  '429',\n  '430',\n  '470',\n  '469',\n  '429',\n  '5',\n  '430',\n  '431',\n  '471',\n  '470',\n  '430',\n  '5',\n  '431',\n  '432',\n  '472',\n  '471',\n  '431',\n  '5',\n  '432',\n  '433',\n  '473',\n  '472',\n  '432',\n  '5',\n  '433',\n  '434',\n  '474',\n  '473',\n  '433',\n  '5',\n  '434',\n  '435',\n  '475',\n  '474',\n  '434',\n  '5',\n  '435',\n  '436',\n  '476',\n  '475',\n  '435',\n  '5',\n  '436',\n  '437',\n  '477',\n  '476',\n  '436',\n  '5',\n  '437',\n  '438',\n  '478',\n  '477',\n  '437',\n  '5',\n  '438',\n  '439',\n  '479',\n  '478',\n  '438',\n  '5',\n  '441',\n  '440',\n  '480',\n  '481',\n  '441',\n  '5',\n  '440',\n  '442',\n  '482',\n  '480',\n  '440',\n  '5',\n  '442',\n  '443',\n  '483',\n  '482',\n  '442',\n  '5',\n  '443',\n  '444',\n  '484',\n  '483',\n  '443',\n  '5',\n  '444',\n  '445',\n  '485',\n  '484',\n  '444',\n  '5',\n  '445',\n  '446',\n  '486',\n  '485',\n  '445',\n  '5',\n  '446',\n  '447',\n  '487',\n  '486',\n  '446',\n  '5',\n  '447',\n  '448',\n  '488',\n  '487',\n  '447',\n  '5',\n  '448',\n  '449',\n  '489',\n  '488',\n  '448',\n  '5',\n  '449',\n  '450',\n  '490',\n  '489',\n  '449',\n  '5',\n  '450',\n  '451',\n  '491',\n  '490',\n  '450',\n  '5',\n  '451',\n  '452',\n  '492',\n  '491',\n  '451',\n  '5',\n  '452',\n  '453',\n  '493',\n  '492',\n  '452',\n  '5',\n  '453',\n  '454',\n  '494',\n  '493',\n  '453',\n  '5',\n  '454',\n  '455',\n  '495',\n  '494',\n  '454',\n  '5',\n  '455',\n  '456',\n  '496',\n  '495',\n  '455',\n  '5',\n  '456',\n  '457',\n  '497',\n  '496',\n  '456',\n  '5',\n  '457',\n  '458',\n  '498',\n  '497',\n  '457',\n  '5',\n  '458',\n  '459',\n  '499',\n  '498',\n  '458',\n  '5',\n  '459',\n  '460',\n  '500',\n  '499',\n  '459',\n  '5',\n  '460',\n  '461',\n  '501',\n  '500',\n  '460',\n  '5',\n  '461',\n  '462',\n  '502',\n  '501',\n  '461',\n  '5',\n  '462',\n  '463',\n  '503',\n  '502',\n  '462',\n  '5',\n  '463',\n  '464',\n  '504',\n  '503',\n  '463',\n  '5',\n  '464',\n  '465',\n  '505',\n  '504',\n  '464',\n  '5',\n  '465',\n  '466',\n  '506',\n  '505',\n  '465',\n  '5',\n  '466',\n  '467',\n  '507',\n  '506',\n  '466',\n  '5',\n  '467',\n  '468',\n  '508',\n  '507',\n  '467',\n  '5',\n  '468',\n  '469',\n  '509',\n  '508',\n  '468',\n  '5',\n  '469',\n  '470',\n  '510',\n  '509',\n  '469',\n  '5',\n  '470',\n  '471',\n  '511',\n  '510',\n  '470',\n  '5',\n  '471',\n  '472',\n  '512',\n  '511',\n  '471',\n  '5',\n  '472',\n  '473',\n  '513',\n  '512',\n  '472',\n  '5',\n  '473',\n  '474',\n  '514',\n  '513',\n  '473',\n  '5',\n  '474',\n  '475',\n  '515',\n  '514',\n  '474',\n  '5',\n  '475',\n  '476',\n  '516',\n  '515',\n  '475',\n  '5',\n  '476',\n  '477',\n  '517',\n  '516',\n  '476',\n  '5',\n  '477',\n  '478',\n  '518',\n  '517',\n  '477',\n  '5',\n  '478',\n  '479',\n  '519',\n  '518',\n  '478',\n  '5',\n  '481',\n  '480',\n  '520',\n  '521',\n  '481',\n  '5',\n  '480',\n  '482',\n  '522',\n  '520',\n  '480',\n  '5',\n  '482',\n  '483',\n  '523',\n  '522',\n  '482',\n  '5',\n  '483',\n  '484',\n  '524',\n  '523',\n  '483',\n  '5',\n  '484',\n  '485',\n  '525',\n  '524',\n  '484',\n  '5',\n  '485',\n  '486',\n  '526',\n  '525',\n  '485',\n  '5',\n  '486',\n  '487',\n  '527',\n  '526',\n  '486',\n  '5',\n  '487',\n  '488',\n  '528',\n  '527',\n  '487',\n  '5',\n  '488',\n  '489',\n  '529',\n  '528',\n  '488',\n  '5',\n  '489',\n  '490',\n  '530',\n  '529',\n  '489',\n  '5',\n  '490',\n  '491',\n  '531',\n  '530',\n  '490',\n  '5',\n  '491',\n  '492',\n  '532',\n  '531',\n  '491',\n  '5',\n  '492',\n  '493',\n  '533',\n  '532',\n  '492',\n  '5',\n  '493',\n  '494',\n  '534',\n  '533',\n  '493',\n  '5',\n  '494',\n  '495',\n  '535',\n  '534',\n  '494',\n  '5',\n  '495',\n  '496',\n  '536',\n  '535',\n  '495',\n  '5',\n  '496',\n  '497',\n  '537',\n  '536',\n  '496',\n  '5',\n  '497',\n  '498',\n  '538',\n  '537',\n  '497',\n  '5',\n  '498',\n  '499',\n  '539',\n  '538',\n  '498',\n  '5',\n  '499',\n  '500',\n  '540',\n  '539',\n  '499',\n  '5',\n  '500',\n  '501',\n  '541',\n  '540',\n  '500',\n  '5',\n  '501',\n  '502',\n  '542',\n  '541',\n  '501',\n  '5',\n  '502',\n  '503',\n  '543',\n  '542',\n  '502',\n  '5',\n  '503',\n  '504',\n  '544',\n  '543',\n  '503',\n  '5',\n  '504',\n  '505',\n  '545',\n  '544',\n  '504',\n  '5',\n  '505',\n  '506',\n  '546',\n  '545',\n  '505',\n  '5',\n  '506',\n  '507',\n  '547',\n  '546',\n  '506',\n  '5',\n  '507',\n  '508',\n  '548',\n  '547',\n  '507',\n  '5',\n  '508',\n  '509',\n  '549',\n  '548',\n  '508',\n  '5',\n  '509',\n  '510',\n  '550',\n  '549',\n  '509',\n  '5',\n  '510',\n  '511',\n  '551',\n  '550',\n  '510',\n  '5',\n  '511',\n  '512',\n  '552',\n  '551',\n  '511',\n  '5',\n  '512',\n  '513',\n  '553',\n  '552',\n  '512',\n  '5',\n  '513',\n  '514',\n  '554',\n  '553',\n  '513',\n  '5',\n  '514',\n  '515',\n  '555',\n  '554',\n  '514',\n  '5',\n  '515',\n  '516',\n  '556',\n  '555',\n  '515',\n  '5',\n  '516',\n  '517',\n  '557',\n  '556',\n  '516',\n  '5',\n  '517',\n  '518',\n  '558',\n  '557',\n  '517',\n  '5',\n  '518',\n  '519',\n  '559',\n  '558',\n  '518',\n  '5',\n  '521',\n  '520',\n  '560',\n  '561',\n  '521',\n  '5',\n  '520',\n  '522',\n  '562',\n  '560',\n  '520',\n  '5',\n  '522',\n  '523',\n  '563',\n  '562',\n  '522',\n  '5',\n  '523',\n  '524',\n  '564',\n  '563',\n  '523',\n  '5',\n  '524',\n  '525',\n  '565',\n  '564',\n  '524',\n  '5',\n  '525',\n  '526',\n  '566',\n  '565',\n  '525',\n  '5',\n  '526',\n  '527',\n  '567',\n  '566',\n  '526',\n  '5',\n  '527',\n  '528',\n  '568',\n  '567',\n  '527',\n  '5',\n  '528',\n  '529',\n  '569',\n  '568',\n  '528',\n  '5',\n  '529',\n  '530',\n  '570',\n  '569',\n  '529',\n  '5',\n  '530',\n  '531',\n  '571',\n  '570',\n  '530',\n  '5',\n  '531',\n  '532',\n  '572',\n  '571',\n  '531',\n  '5',\n  '532',\n  '533',\n  '573',\n  '572',\n  '532',\n  '5',\n  '533',\n  '534',\n  '574',\n  '573',\n  '533',\n  '5',\n  '534',\n  '535',\n  '575',\n  '574',\n  '534',\n  '5',\n  '535',\n  '536',\n  '576',\n  '575',\n  '535',\n  '5',\n  '536',\n  '537',\n  '577',\n  '576',\n  '536',\n  '5',\n  '537',\n  '538',\n  '578',\n  '577',\n  '537',\n  '5',\n  '538',\n  '539',\n  '579',\n  '578',\n  '538',\n  '5',\n  '539',\n  '540',\n  '580',\n  '579',\n  '539',\n  '5',\n  '540',\n  '541',\n  '581',\n  '580',\n  '540',\n  '5',\n  '541',\n  '542',\n  '582',\n  '581',\n  '541',\n  '5',\n  '542',\n  '543',\n  '583',\n  '582',\n  '542',\n  '5',\n  '543',\n  '544',\n  '584',\n  '583',\n  '543',\n  '5',\n  '544',\n  '545',\n  '585',\n  '584',\n  '544',\n  '5',\n  '545',\n  '546',\n  '586',\n  '585',\n  '545',\n  '5',\n  '546',\n  '547',\n  '587',\n  '586',\n  '546',\n  '5',\n  '547',\n  '548',\n  '588',\n  '587',\n  '547',\n  '5',\n  '548',\n  '549',\n  '589',\n  '588',\n  '548',\n  '5',\n  '549',\n  '550',\n  '590',\n  '589',\n  '549',\n  '5',\n  '550',\n  '551',\n  '591',\n  '590',\n  '550',\n  '5',\n  '551',\n  '552',\n  '592',\n  '591',\n  '551',\n  '5',\n  '552',\n  '553',\n  '593',\n  '592',\n  '552',\n  '5',\n  '553',\n  '554',\n  '594',\n  '593',\n  '553',\n  '5',\n  '554',\n  '555',\n  '595',\n  '594',\n  '554',\n  '5',\n  '555',\n  '556',\n  '596',\n  '595',\n  '555',\n  '5',\n  '556',\n  '557',\n  '597',\n  '596',\n  '556',\n  '5',\n  '557',\n  '558',\n  '598',\n  '597',\n  '557',\n  '5',\n  '558',\n  '559',\n  '599',\n  '598',\n  '558',\n  '5',\n  '561',\n  '560',\n  '600',\n  '601',\n  '561',\n  '5',\n  '560',\n  '562',\n  '602',\n  '600',\n  '560',\n  '5',\n  '562',\n  '563',\n  '603',\n  '602',\n  '562',\n  '5',\n  '563',\n  '564',\n  '604',\n  '603',\n  '563',\n  '5',\n  '564',\n  '565',\n  '605',\n  '604',\n  '564',\n  '5',\n  '565',\n  '566',\n  '606',\n  '605',\n  '565',\n  '5',\n  '566',\n  '567',\n  '607',\n  '606',\n  '566',\n  '5',\n  '567',\n  '568',\n  '608',\n  '607',\n  '567',\n  '5',\n  '568',\n  '569',\n  '609',\n  '608',\n  '568',\n  '5',\n  '569',\n  '570',\n  '610',\n  '609',\n  '569',\n  '5',\n  '570',\n  '571',\n  '611',\n  '610',\n  '570',\n  '5',\n  '571',\n  '572',\n  '612',\n  '611',\n  '571',\n  '5',\n  '572',\n  '573',\n  '613',\n  '612',\n  '572',\n  '5',\n  '573',\n  '574',\n  '614',\n  '613',\n  '573',\n  '5',\n  '574',\n  '575',\n  '615',\n  '614',\n  '574',\n  '5',\n  '575',\n  '576',\n  '616',\n  '615',\n  '575',\n  '5',\n  '576',\n  '577',\n  '617',\n  '616',\n  '576',\n  '5',\n  '577',\n  '578',\n  '618',\n  '617',\n  '577',\n  '5',\n  '578',\n  '579',\n  '619',\n  '618',\n  '578',\n  '5',\n  '579',\n  '580',\n  '620',\n  '619',\n  '579',\n  '5',\n  '580',\n  '581',\n  '621',\n  '620',\n  '580',\n  '5',\n  '581',\n  '582',\n  '622',\n  '621',\n  '581',\n  '5',\n  '582',\n  '583',\n  '623',\n  '622',\n  '582',\n  '5',\n  '583',\n  '584',\n  '624',\n  '623',\n  '583',\n  '5',\n  '584',\n  '585',\n  '625',\n  '624',\n  '584',\n  '5',\n  '585',\n  '586',\n  '626',\n  '625',\n  '585',\n  '5',\n  '586',\n  '587',\n  '627',\n  '626',\n  '586',\n  '5',\n  '587',\n  '588',\n  '628',\n  '627',\n  '587',\n  '5',\n  '588',\n  '589',\n  '629',\n  '628',\n  '588',\n  '5',\n  '589',\n  '590',\n  '630',\n  '629',\n  '589',\n  '5',\n  '590',\n  '591',\n  '631',\n  '630',\n  '590',\n  '5',\n  '591',\n  '592',\n  '632',\n  '631',\n  '591',\n  '5',\n  '592',\n  '593',\n  '633',\n  '632',\n  '592',\n  '5',\n  '593',\n  '594',\n  '634',\n  '633',\n  '593',\n  '5',\n  '594',\n  '595',\n  '635',\n  '634',\n  '594',\n  '5',\n  '595',\n  '596',\n  '636',\n  '635',\n  '595',\n  '5',\n  '596',\n  '597',\n  '637',\n  '636',\n  '596',\n  '5',\n  '597',\n  '598',\n  '638',\n  '637',\n  '597',\n  '5',\n  '598',\n  '599',\n  '639',\n  '638',\n  '598',\n  '5',\n  '601',\n  '600',\n  '640',\n  '641',\n  '601',\n  '5',\n  '600',\n  '602',\n  '642',\n  '640',\n  '600',\n  '5',\n  '602',\n  '603',\n  '643',\n  '642',\n  '602',\n  '5',\n  '603',\n  '604',\n  '644',\n  '643',\n  '603',\n  '5',\n  '604',\n  '605',\n  '645',\n  '644',\n  '604',\n  '5',\n  '605',\n  '606',\n  '646',\n  '645',\n  '605',\n  '5',\n  '606',\n  '607',\n  '647',\n  '646',\n  '606',\n  '5',\n  '607',\n  '608',\n  '648',\n  '647',\n  '607',\n  '5',\n  '608',\n  '609',\n  '649',\n  '648',\n  '608',\n  '5',\n  '609',\n  '610',\n  '650',\n  '649',\n  '609',\n  '5',\n  '610',\n  '611',\n  '651',\n  '650',\n  '610',\n  '5',\n  '611',\n  '612',\n  '652',\n  '651',\n  '611',\n  '5',\n  '612',\n  '613',\n  '653',\n  '652',\n  '612',\n  '5',\n  '613',\n  '614',\n  '654',\n  '653',\n  '613',\n  '5',\n  '614',\n  '615',\n  '655',\n  '654',\n  '614',\n  '5',\n  '615',\n  '616',\n  '656',\n  '655',\n  '615',\n  '5',\n  '616',\n  '617',\n  '657',\n  '656',\n  '616',\n  '5',\n  '617',\n  '618',\n  '658',\n  '657',\n  '617',\n  '5',\n  '618',\n  '619',\n  '659',\n  '658',\n  '618',\n  '5',\n  '619',\n  '620',\n  '660',\n  '659',\n  '619',\n  '5',\n  '620',\n  '621',\n  '661',\n  '660',\n  '620',\n  '5',\n  '621',\n  '622',\n  '662',\n  '661',\n  '621',\n  '5',\n  '622',\n  '623',\n  '663',\n  '662',\n  '622',\n  '5',\n  '623',\n  '624',\n  '664',\n  '663',\n  '623',\n  '5',\n  '624',\n  '625',\n  '665',\n  '664',\n  '624',\n  '5',\n  '625',\n  '626',\n  '666',\n  '665',\n  '625',\n  '5',\n  '626',\n  '627',\n  '667',\n  '666',\n  '626',\n  '5',\n  '627',\n  '628',\n  '668',\n  '667',\n  '627',\n  '5',\n  '628',\n  '629',\n  '669',\n  '668',\n  '628',\n  '5',\n  '629',\n  '630',\n  '670',\n  '669',\n  '629',\n  '5',\n  '630',\n  '631',\n  '671',\n  '670',\n  '630',\n  '5',\n  '631',\n  '632',\n  '672',\n  '671',\n  '631',\n  '5',\n  '632',\n  '633',\n  '673',\n  '672',\n  '632',\n  '5',\n  '633',\n  '634',\n  '674',\n  '673',\n  '633',\n  '5',\n  '634',\n  '635',\n  '675',\n  '674',\n  '634',\n  '5',\n  '635',\n  '636',\n  '676',\n  '675',\n  '635',\n  '5',\n  '636',\n  '637',\n  '677',\n  '676',\n  '636',\n  '5',\n  '637',\n  '638',\n  '678',\n  '677',\n  '637',\n  '5',\n  '638',\n  '639',\n  '679',\n  '678',\n  '638',\n  '5',\n  '641',\n  '640',\n  '680',\n  '681',\n  '641',\n  '5',\n  '640',\n  '642',\n  '682',\n  '680',\n  '640',\n  '5',\n  '642',\n  '643',\n  '683',\n  '682',\n  '642',\n  '5',\n  '643',\n  '644',\n  '684',\n  '683',\n  '643',\n  '5',\n  '644',\n  '645',\n  '685',\n  '684',\n  '644',\n  '5',\n  '645',\n  '646',\n  '686',\n  '685',\n  '645',\n  '5',\n  '646',\n  '647',\n  '687',\n  '686',\n  '646',\n  '5',\n  '647',\n  '648',\n  '688',\n  '687',\n  '647',\n  '5',\n  '648',\n  '649',\n  '689',\n  '688',\n  '648',\n  '5',\n  '649',\n  '650',\n  '690',\n  '689',\n  '649',\n  '5',\n  '650',\n  '651',\n  '691',\n  '690',\n  '650',\n  '5',\n  '651',\n  '652',\n  '692',\n  '691',\n  '651',\n  '5',\n  '652',\n  '653',\n  '693',\n  '692',\n  '652',\n  '5',\n  '653',\n  '654',\n  '694',\n  '693',\n  '653',\n  '5',\n  '654',\n  '655',\n  '695',\n  '694',\n  '654',\n  '5',\n  '655',\n  '656',\n  '696',\n  '695',\n  '655',\n  '5',\n  '656',\n  '657',\n  '697',\n  '696',\n  '656',\n  '5',\n  '657',\n  '658',\n  '698',\n  '697',\n  '657',\n  '5',\n  '658',\n  '659',\n  '699',\n  '698',\n  '658',\n  '5',\n  '659',\n  '660',\n  '700',\n  '699',\n  '659',\n  '5',\n  '660',\n  '661',\n  '701',\n  '700',\n  '660',\n  '5',\n  '661',\n  '662',\n  '702',\n  '701',\n  '661',\n  '5',\n  '662',\n  '663',\n  '703',\n  '702',\n  '662',\n  '5',\n  '663',\n  '664',\n  '704',\n  '703',\n  '663',\n  '5',\n  '664',\n  '665',\n  '705',\n  '704',\n  '664',\n  '5',\n  '665',\n  '666',\n  '706',\n  '705',\n  '665',\n  '5',\n  '666',\n  '667',\n  '707',\n  '706',\n  '666',\n  '5',\n  '667',\n  '668',\n  '708',\n  '707',\n  '667',\n  '5',\n  '668',\n  '669',\n  '709',\n  '708',\n  '668',\n  '5',\n  '669',\n  '670',\n  '710',\n  '709',\n  '669',\n  '5',\n  '670',\n  '671',\n  '711',\n  '710',\n  '670',\n  '5',\n  '671',\n  '672',\n  '712',\n  '711',\n  '671',\n  '5',\n  '672',\n  '673',\n  '713',\n  '712',\n  '672',\n  '5',\n  '673',\n  '674',\n  '714',\n  '713',\n  '673',\n  '5',\n  '674',\n  '675',\n  '715',\n  '714',\n  '674',\n  '5',\n  '675',\n  '676',\n  '716',\n  '715',\n  '675',\n  '5',\n  '676',\n  '677',\n  '717',\n  '716',\n  '676',\n  '5',\n  '677',\n  '678',\n  '718',\n  '717',\n  '677',\n  '5',\n  '678',\n  '679',\n  '719',\n  '718',\n  '678',\n  '5',\n  '681',\n  '680',\n  '720',\n  '721',\n  '681',\n  '5',\n  '680',\n  '682',\n  '722',\n  '720',\n  '680',\n  '5',\n  '682',\n  '683',\n  '723',\n  '722',\n  '682',\n  '5',\n  '683',\n  '684',\n  '724',\n  '723',\n  '683',\n  '5',\n  '684',\n  '685',\n  '725',\n  '724',\n  '684',\n  '5',\n  '685',\n  '686',\n  '726',\n  '725',\n  '685',\n  '5',\n  '686',\n  '687',\n  '727',\n  '726',\n  '686',\n  '5',\n  '687',\n  '688',\n  '728',\n  '727',\n  '687',\n  '5',\n  '688',\n  '689',\n  '729',\n  '728',\n  '688',\n  '5',\n  '689',\n  '690',\n  '730',\n  '729',\n  '689',\n  '5',\n  '690',\n  '691',\n  '731',\n  '730',\n  '690',\n  '5',\n  '691',\n  '692',\n  '732',\n  '731',\n  '691',\n  '5',\n  '692',\n  '693',\n  '733',\n  '732',\n  '692',\n  '5',\n  '693',\n  '694',\n  '734',\n  '733',\n  '693',\n  '5',\n  '694',\n  '695',\n  '735',\n  '734',\n  '694',\n  '5',\n  '695',\n  '696',\n  '736',\n  '735',\n  '695',\n  '5',\n  '696',\n  '697',\n  '737',\n  '736',\n  '696',\n  '5',\n  '697',\n  '698',\n  '738',\n  '737',\n  '697',\n  '5',\n  '698',\n  '699',\n  '739',\n  '738',\n  '698',\n  '5',\n  '699',\n  '700',\n  '740',\n  '739',\n  '699',\n  '5',\n  '700',\n  '701',\n  '741',\n  '740',\n  '700',\n  '5',\n  '701',\n  '702',\n  '742',\n  '741',\n  '701',\n  '5',\n  '702',\n  '703',\n  '743',\n  '742',\n  '702',\n  '5',\n  '703',\n  '704',\n  '744',\n  '743',\n  '703',\n  '5',\n  '704',\n  '705',\n  '745',\n  '744',\n  '704',\n  '5',\n  '705',\n  '706',\n  '746',\n  '745',\n  '705',\n  '5',\n  '706',\n  '707',\n  '747',\n  '746',\n  '706',\n  '5',\n  '707',\n  '708',\n  '748',\n  '747',\n  '707',\n  '5',\n  '708',\n  '709',\n  '749',\n  '748',\n  '708',\n  '5',\n  '709',\n  '710',\n  '750',\n  '749',\n  '709',\n  '5',\n  '710',\n  '711',\n  '751',\n  '750',\n  '710',\n  '5',\n  '711',\n  '712',\n  '752',\n  '751',\n  '711',\n  '5',\n  '712',\n  '713',\n  '753',\n  '752',\n  '712',\n  '5',\n  '713',\n  '714',\n  '754',\n  '753',\n  '713',\n  '5',\n  '714',\n  '715',\n  '755',\n  '754',\n  '714',\n  '5',\n  '715',\n  '716',\n  '756',\n  '755',\n  '715',\n  '5',\n  '716',\n  '717',\n  '757',\n  '756',\n  '716',\n  '5',\n  '717',\n  '718',\n  '758',\n  '757',\n  '717',\n  '5',\n  '718',\n  '719',\n  '759',\n  '758',\n  '718',\n  '5',\n  '721',\n  '720',\n  '760',\n  '761',\n  '721',\n  '5',\n  '720',\n  '722',\n  '762',\n  '760',\n  '720',\n  '5',\n  '722',\n  '723',\n  '763',\n  '762',\n  '722',\n  '5',\n  '723',\n  '724',\n  '764',\n  '763',\n  '723',\n  '5',\n  '724',\n  '725',\n  '765',\n  '764',\n  '724',\n  '5',\n  '725',\n  '726',\n  '766',\n  '765',\n  '725',\n  '5',\n  '726',\n  '727',\n  '767',\n  '766',\n  '726',\n  '5',\n  '727',\n  '728',\n  '768',\n  '767',\n  '727',\n  '5',\n  '728',\n  '729',\n  '769',\n  '768',\n  '728',\n  '5',\n  '729',\n  '730',\n  '770',\n  '769',\n  '729',\n  '5',\n  '730',\n  '731',\n  '771',\n  '770',\n  '730',\n  '5',\n  '731',\n  '732',\n  '772',\n  '771',\n  '731',\n  '5',\n  '732',\n  '733',\n  '773',\n  '772',\n  '732',\n  '5',\n  '733',\n  '734',\n  '774',\n  '773',\n  '733',\n  '5',\n  '734',\n  '735',\n  '775',\n  '774',\n  '734',\n  '5',\n  '735',\n  '736',\n  '776',\n  '775',\n  '735',\n  '5',\n  '736',\n  '737',\n  '777',\n  '776',\n  '736',\n  '5',\n  '737',\n  '738',\n  '778',\n  '777',\n  '737',\n  '5',\n  '738',\n  '739',\n  '779',\n  '778',\n  '738',\n  '5',\n  '739',\n  '740',\n  '780',\n  '779',\n  '739',\n  '5',\n  '740',\n  '741',\n  '781',\n  '780',\n  '740',\n  '5',\n  '741',\n  '742',\n  '782',\n  '781',\n  '741',\n  '5',\n  '742',\n  '743',\n  '783',\n  '782',\n  '742',\n  '5',\n  '743',\n  '744',\n  '784',\n  '783',\n  '743',\n  '5',\n  '744',\n  '745',\n  '785',\n  '784',\n  '744',\n  '5',\n  '745',\n  '746',\n  '786',\n  '785',\n  '745',\n  '5',\n  '746',\n  '747',\n  '787',\n  '786',\n  '746',\n  '5',\n  '747',\n  '748',\n  '788',\n  '787',\n  '747',\n  '5',\n  '748',\n  '749',\n  '789',\n  '788',\n  '748',\n  '5',\n  '749',\n  '750',\n  '790',\n  '789',\n  '749',\n  '5',\n  '750',\n  '751',\n  '791',\n  '790',\n  '750',\n  '5',\n  '751',\n  '752',\n  '792',\n  '791',\n  '751',\n  '5',\n  '752',\n  '753',\n  '793',\n  '792',\n  '752',\n  '5',\n  '753',\n  '754',\n  '794',\n  '793',\n  '753',\n  '5',\n  '754',\n  '755',\n  '795',\n  '794',\n  '754',\n  '5',\n  '755',\n  '756',\n  '796',\n  '795',\n  '755',\n  '5',\n  '756',\n  '757',\n  '797',\n  '796',\n  '756',\n  '5',\n  '757',\n  '758',\n  '798',\n  '797',\n  '757',\n  '5',\n  '758',\n  '759',\n  '799',\n  '798',\n  '758',\n  '5',\n  '761',\n  '760',\n  '800',\n  '801',\n  '761',\n  '5',\n  '760',\n  '762',\n  '802',\n  '800',\n  '760',\n  '5',\n  '762',\n  '763',\n  '803',\n  '802',\n  '762',\n  '5',\n  '763',\n  '764',\n  '804',\n  '803',\n  '763',\n  '5',\n  '764',\n  '765',\n  '805',\n  '804',\n  '764',\n  '5',\n  '765',\n  '766',\n  '806',\n  '805',\n  '765',\n  '5',\n  '766',\n  '767',\n  '807',\n  '806',\n  '766',\n  '5',\n  '767',\n  '768',\n  '808',\n  '807',\n  '767',\n  '5',\n  '768',\n  '769',\n  '809',\n  '808',\n  '768',\n  '5',\n  '769',\n  '770',\n  '810',\n  '809',\n  '769',\n  '5',\n  '770',\n  '771',\n  '811',\n  '810',\n  '770',\n  '5',\n  '771',\n  '772',\n  '812',\n  '811',\n  '771',\n  '5',\n  '772',\n  '773',\n  '813',\n  '812',\n  '772',\n  '5',\n  '773',\n  '774',\n  '814',\n  '813',\n  '773',\n  '5',\n  '774',\n  '775',\n  '815',\n  '814',\n  '774',\n  '5',\n  '775',\n  '776',\n  '816',\n  '815',\n  '775',\n  '5',\n  '776',\n  '777',\n  '817',\n  '816',\n  '776',\n  '5',\n  '777',\n  '778',\n  '818',\n  '817',\n  '777',\n  '5',\n  '778',\n  '779',\n  '819',\n  '818',\n  '778',\n  '5',\n  '779',\n  '780',\n  '820',\n  '819',\n  '779',\n  '5',\n  '780',\n  '781',\n  '821',\n  '820',\n  '780',\n  '5',\n  '781',\n  '782',\n  '822',\n  '821',\n  '781',\n  '5',\n  '782',\n  '783',\n  '823',\n  '822',\n  '782',\n  '5',\n  '783',\n  '784',\n  '824',\n  '823',\n  '783',\n  '5',\n  '784',\n  '785',\n  '825',\n  '824',\n  '784',\n  '5',\n  '785',\n  '786',\n  '826',\n  '825',\n  '785',\n  '5',\n  '786',\n  '787',\n  '827',\n  '826',\n  '786',\n  '5',\n  '787',\n  '788',\n  '828',\n  '827',\n  '787',\n  '5',\n  '788',\n  '789',\n  '829',\n  '828',\n  '788',\n  '5',\n  '789',\n  '790',\n  '830',\n  '829',\n  '789',\n  '5',\n  '790',\n  '791',\n  '831',\n  '830',\n  '790',\n  '5',\n  '791',\n  '792',\n  '832',\n  '831',\n  '791',\n  '5',\n  '792',\n  '793',\n  '833',\n  '832',\n  '792',\n  '5',\n  '793',\n  '794',\n  '834',\n  '833',\n  '793',\n  '5',\n  '794',\n  '795',\n  '835',\n  '834',\n  '794',\n  '5',\n  '795',\n  '796',\n  '836',\n  '835',\n  '795',\n  '5',\n  '796',\n  '797',\n  '837',\n  '836',\n  '796',\n  '5',\n  '797',\n  '798',\n  '838',\n  '837',\n  '797',\n  '5',\n  '798',\n  '799',\n  '839',\n  '838',\n  '798',\n  '5',\n  '801',\n  '800',\n  '840',\n  '841',\n  '801',\n  '5',\n  '800',\n  '802',\n  '842',\n  '840',\n  '800',\n  '5',\n  '802',\n  '803',\n  '843',\n  '842',\n  '802',\n  '5',\n  '803',\n  '804',\n  '844',\n  '843',\n  '803',\n  '5',\n  '804',\n  '805',\n  '845',\n  '844',\n  '804',\n  '5',\n  '805',\n  '806',\n  '846',\n  '845',\n  '805',\n  '5',\n  '806',\n  '807',\n  '847',\n  '846',\n  '806',\n  '5',\n  '807',\n  '808',\n  '848',\n  '847',\n  '807',\n  '5',\n  '808',\n  '809',\n  '849',\n  '848',\n  '808',\n  '5',\n  '809',\n  '810',\n  '850',\n  '849',\n  '809',\n  '5',\n  '810',\n  '811',\n  '851',\n  '850',\n  '810',\n  '5',\n  '811',\n  '812',\n  '852',\n  '851',\n  '811',\n  '5',\n  '812',\n  '813',\n  '853',\n  '852',\n  '812',\n  '5',\n  '813',\n  '814',\n  '854',\n  '853',\n  '813',\n  '5',\n  '814',\n  '815',\n  '855',\n  '854',\n  '814',\n  '5',\n  '815',\n  '816',\n  '856',\n  '855',\n  '815',\n  '5',\n  '816',\n  '817',\n  '857',\n  '856',\n  '816',\n  '5',\n  '817',\n  '818',\n  '858',\n  '857',\n  '817',\n  '5',\n  '818',\n  '819',\n  '859',\n  '858',\n  '818',\n  '5',\n  '819',\n  '820',\n  '860',\n  '859',\n  '819',\n  '5',\n  '820',\n  '821',\n  '861',\n  '860',\n  '820',\n  '5',\n  '821',\n  '822',\n  '862',\n  '861',\n  '821',\n  '5',\n  '822',\n  '823',\n  '863',\n  '862',\n  '822',\n  '5',\n  '823',\n  '824',\n  '864',\n  '863',\n  '823',\n  '5',\n  '824',\n  '825',\n  '865',\n  '864',\n  '824',\n  '5',\n  '825',\n  '826',\n  '866',\n  '865',\n  '825',\n  '5',\n  '826',\n  '827',\n  '867',\n  '866',\n  '826',\n  '5',\n  '827',\n  '828',\n  '868',\n  '867',\n  '827',\n  '5',\n  '828',\n  '829',\n  '869',\n  '868',\n  '828',\n  '5',\n  '829',\n  '830',\n  '870',\n  '869',\n  '829',\n  '5',\n  '830',\n  '831',\n  '871',\n  '870',\n  '830',\n  '5',\n  '831',\n  '832',\n  '872',\n  '871',\n  '831',\n  '5',\n  '832',\n  '833',\n  '873',\n  '872',\n  '832',\n  '5',\n  '833',\n  '834',\n  '874',\n  '873',\n  '833',\n  '5',\n  '834',\n  '835',\n  '875',\n  '874',\n  '834',\n  '5',\n  '835',\n  '836',\n  '876',\n  '875',\n  '835',\n  '5',\n  '836',\n  '837',\n  '877',\n  '876',\n  '836',\n  '5',\n  '837',\n  '838',\n  '878',\n  '877',\n  '837',\n  '5',\n  '838',\n  '839',\n  '879',\n  '878',\n  '838',\n  '5',\n  '841',\n  '840',\n  '880',\n  '881',\n  '841',\n  '5',\n  '840',\n  '842',\n  '882',\n  '880',\n  '840',\n  '5',\n  '842',\n  '843',\n  '883',\n  '882',\n  '842',\n  '5',\n  '843',\n  '844',\n  '884',\n  '883',\n  '843',\n  '5',\n  '844',\n  '845',\n  '885',\n  '884',\n  '844',\n  '5',\n  '845',\n  '846',\n  '886',\n  '885',\n  '845',\n  '5',\n  '846',\n  '847',\n  '887',\n  '886',\n  '846',\n  '5',\n  '847',\n  '848',\n  '888',\n  '887',\n  '847',\n  '5',\n  '848',\n  '849',\n  '889',\n  '888',\n  '848',\n  '5',\n  '849',\n  '850',\n  '890',\n  '889',\n  '849',\n  '5',\n  '850',\n  '851',\n  '891',\n  '890',\n  '850',\n  '5',\n  '851',\n  '852',\n  '892',\n  '891',\n  '851',\n  '5',\n  '852',\n  '853',\n  '893',\n  '892',\n  '852',\n  '5',\n  '853',\n  '854',\n  '894',\n  '893',\n  '853',\n  '5',\n  '854',\n  '855',\n  '895',\n  '894',\n  '854',\n  '5',\n  '855',\n  '856',\n  '896',\n  '895',\n  '855',\n  '5',\n  '856',\n  '857',\n  '897',\n  '896',\n  '856',\n  '5',\n  '857',\n  '858',\n  '898',\n  '897',\n  '857',\n  '5',\n  '858',\n  '859',\n  '899',\n  '898',\n  '858',\n  '5',\n  '859',\n  '860',\n  '900',\n  '899',\n  '859',\n  '5',\n  '860',\n  '861',\n  '901',\n  '900',\n  '860',\n  '5',\n  '861',\n  '862',\n  '902',\n  '901',\n  '861',\n  '5',\n  '862',\n  '863',\n  '903',\n  '902',\n  '862',\n  '5',\n  '863',\n  '864',\n  '904',\n  '903',\n  '863',\n  '5',\n  '864',\n  '865',\n  '905',\n  '904',\n  '864',\n  '5',\n  '865',\n  '866',\n  '906',\n  '905',\n  '865',\n  '5',\n  '866',\n  '867',\n  '907',\n  '906',\n  '866',\n  '5',\n  '867',\n  '868',\n  '908',\n  '907',\n  '867',\n  '5',\n  '868',\n  '869',\n  '909',\n  '908',\n  '868',\n  '5',\n  '869',\n  '870',\n  '910',\n  '909',\n  '869',\n  '5',\n  '870',\n  '871',\n  '911',\n  '910',\n  '870',\n  '5',\n  '871',\n  '872',\n  '912',\n  '911',\n  '871',\n  '5',\n  '872',\n  '873',\n  '913',\n  '912',\n  '872',\n  '5',\n  '873',\n  '874',\n  '914',\n  '913',\n  '873',\n  '5',\n  '874',\n  '875',\n  '915',\n  '914',\n  '874',\n  '5',\n  '875',\n  '876',\n  '916',\n  '915',\n  '875',\n  '5',\n  '876',\n  '877',\n  '917',\n  '916',\n  '876',\n  '5',\n  '877',\n  '878',\n  '918',\n  '917',\n  '877',\n  '5',\n  '878',\n  '879',\n  '919',\n  '918',\n  '878',\n  '5',\n  '881',\n  '880',\n  '920',\n  '921',\n  '881',\n  '5',\n  '880',\n  '882',\n  '922',\n  '920',\n  '880',\n  '5',\n  '882',\n  '883',\n  '923',\n  '922',\n  '882',\n  '5',\n  '883',\n  '884',\n  '924',\n  '923',\n  '883',\n  '5',\n  '884',\n  '885',\n  '925',\n  '924',\n  '884',\n  '5',\n  '885',\n  '886',\n  '926',\n  '925',\n  '885',\n  '5',\n  '886',\n  '887',\n  '927',\n  '926',\n  '886',\n  '5',\n  '887',\n  '888',\n  '928',\n  '927',\n  '887',\n  '5',\n  '888',\n  '889',\n  '929',\n  '928',\n  '888',\n  '5',\n  '889',\n  '890',\n  '930',\n  '929',\n  '889',\n  '5',\n  '890',\n  '891',\n  '931',\n  '930',\n  '890',\n  '5',\n  '891',\n  '892',\n  '932',\n  '931',\n  '891',\n  '5',\n  '892',\n  '893',\n  '933',\n  '932',\n  '892',\n  '5',\n  '893',\n  '894',\n  '934',\n  '933',\n  '893',\n  '5',\n  '894',\n  '895',\n  '935',\n  '934',\n  '894',\n  '5',\n  '895',\n  '896',\n  '936',\n  '935',\n  '895',\n  '5',\n  '896',\n  '897',\n  '937',\n  '936',\n  '896',\n  '5',\n  '897',\n  '898',\n  '938',\n  '937',\n  '897',\n  '5',\n  '898',\n  '899',\n  '939',\n  '938',\n  '898',\n  '5',\n  '899',\n  '900',\n  '940',\n  '939',\n  '899',\n  '5',\n  '900',\n  '901',\n  '941',\n  '940',\n  '900',\n  '5',\n  '901',\n  '902',\n  '942',\n  '941',\n  '901',\n  '5',\n  '902',\n  '903',\n  '943',\n  '942',\n  '902',\n  '5',\n  '903',\n  '904',\n  '944',\n  '943',\n  '903',\n  '5',\n  '904',\n  '905',\n  '945',\n  '944',\n  '904',\n  '5',\n  '905',\n  '906',\n  '946',\n  '945',\n  '905',\n  '5',\n  '906',\n  '907',\n  '947',\n  '946',\n  '906',\n  '5',\n  '907',\n  '908',\n  '948',\n  '947',\n  '907',\n  '5',\n  '908',\n  '909',\n  '949',\n  '948',\n  '908',\n  '5',\n  '909',\n  '910',\n  '950',\n  '949',\n  '909',\n  '5',\n  '910',\n  '911',\n  '951',\n  '950',\n  '910',\n  '5',\n  '911',\n  '912',\n  '952',\n  '951',\n  '911',\n  '5',\n  '912',\n  '913',\n  '953',\n  '952',\n  '912',\n  '5',\n  '913',\n  '914',\n  '954',\n  '953',\n  '913',\n  '5',\n  '914',\n  '915',\n  '955',\n  '954',\n  '914',\n  '5',\n  '915',\n  '916',\n  '956',\n  '955',\n  '915',\n  '5',\n  '916',\n  '917',\n  '957',\n  '956',\n  '916',\n  '5',\n  '917',\n  '918',\n  '958',\n  '957',\n  '917',\n  '5',\n  '918',\n  '919',\n  '959',\n  '958',\n  '918',\n  '5',\n  '921',\n  '920',\n  '960',\n  '961',\n  '921',\n  '5',\n  '920',\n  '922',\n  '962',\n  '960',\n  '920',\n  '5',\n  '922',\n  '923',\n  '963',\n  '962',\n  '922',\n  '5',\n  '923',\n  '924',\n  '964',\n  '963',\n  '923',\n  '5',\n  '924',\n  '925',\n  '965',\n  '964',\n  '924',\n  '5',\n  '925',\n  '926',\n  '966',\n  '965',\n  '925',\n  '5',\n  '926',\n  '927',\n  '967',\n  '966',\n  '926',\n  '5',\n  '927',\n  '928',\n  '968',\n  '967',\n  '927',\n  '5',\n  '928',\n  '929',\n  '969',\n  '968',\n  '928',\n  '5',\n  '929',\n  '930',\n  '970',\n  '969',\n  '929',\n  '5',\n  '930',\n  '931',\n  '971',\n  '970',\n  '930',\n  '5',\n  '931',\n  '932',\n  '972',\n  '971',\n  '931',\n  '5',\n  '932',\n  '933',\n  '973',\n  '972',\n  '932',\n  '5',\n  '933',\n  '934',\n  '974',\n  '973',\n  '933',\n  '5',\n  '934',\n  '935',\n  '975',\n  '974',\n  '934',\n  '5',\n  '935',\n  '936',\n  '976',\n  '975',\n  '935',\n  '5',\n  '936',\n  '937',\n  '977',\n  '976',\n  '936',\n  '5',\n  '937',\n  '938',\n  '978',\n  '977',\n  '937',\n  '5',\n  '938',\n  '939',\n  '979',\n  '978',\n  '938',\n  '5',\n  '939',\n  '940',\n  '980',\n  '979',\n  '939',\n  '5',\n  '940',\n  '941',\n  '981',\n  '980',\n  '940',\n  '5',\n  '941',\n  '942',\n  '982',\n  '981',\n  '941',\n  '5',\n  '942',\n  '943',\n  '983',\n  '982',\n  '942',\n  '5',\n  '943',\n  '944',\n  '984',\n  '983',\n  '943',\n  '5',\n  '944',\n  '945',\n  '985',\n  '984',\n  '944',\n  '5',\n  '945',\n  '946',\n  '986',\n  '985',\n  '945',\n  '5',\n  '946',\n  '947',\n  '987',\n  '986',\n  '946',\n  '5',\n  '947',\n  '948',\n  '988',\n  '987',\n  '947',\n  '5',\n  '948',\n  '949',\n  '989',\n  '988',\n  '948',\n  '5',\n  '949',\n  '950',\n  '990',\n  '989',\n  '949',\n  '5',\n  '950',\n  '951',\n  '991',\n  '990',\n  '950',\n  '5',\n  '951',\n  '952',\n  '992',\n  '991',\n  '951',\n  '5',\n  '952',\n  '953',\n  '993',\n  '992',\n  '952',\n  '5',\n  '953',\n  '954',\n  '994',\n  '993',\n  '953',\n  '5',\n  '954',\n  '955',\n  '995',\n  '994',\n  '954',\n  '5',\n  '955',\n  '956',\n  '996',\n  '995',\n  '955',\n  '5',\n  '956',\n  '957',\n  '997',\n  '996',\n  '956',\n  '5',\n  '957',\n  '958',\n  '998',\n  '997',\n  '957',\n  '5',\n  '958',\n  '959',\n  '999',\n  '998',\n  '958',\n  '5',\n  '961',\n  '960',\n  '1000',\n  '1001',\n  '961',\n  '5',\n  '960',\n  '962',\n  '1002',\n  '1000',\n  '960',\n  '5',\n  '962',\n  '963',\n  '1003',\n  '1002',\n  '962',\n  '5',\n  '963',\n  '964',\n  '1004',\n  '1003',\n  '963',\n  '5',\n  '964',\n  '965',\n  '1005',\n  '1004',\n  '964',\n  '5',\n  '965',\n  '966',\n  '1006',\n  '1005',\n  '965',\n  '5',\n  '966',\n  '967',\n  '1007',\n  '1006',\n  '966',\n  '5',\n  '967',\n  '968',\n  '1008',\n  '1007',\n  '967',\n  '5',\n  '968',\n  '969',\n  '1009',\n  '1008',\n  '968',\n  '5',\n  '969',\n  '970',\n  '1010',\n  '1009',\n  '969',\n  '5',\n  '970',\n  '971',\n  '1011',\n  '1010',\n  '970',\n  '5',\n  '971',\n  '972',\n  '1012',\n  '1011',\n  '971',\n  '5',\n  '972',\n  '973',\n  '1013',\n  '1012',\n  '972',\n  '5',\n  '973',\n  '974',\n  '1014',\n  '1013',\n  '973',\n  '5',\n  '974',\n  '975',\n  '1015',\n  '1014',\n  '974',\n  '5',\n  '975',\n  '976',\n  '1016',\n  '1015',\n  '975',\n  '5',\n  '976',\n  '977',\n  '1017',\n  '1016',\n  '976',\n  '5',\n  '977',\n  '978',\n  '1018',\n  '1017',\n  '977',\n  '5',\n  '978',\n  '979',\n  '1019',\n  '1018',\n  '978',\n  '5',\n  '979',\n  '980',\n  '1020',\n  '1019',\n  '979',\n  '5',\n  '980',\n  '981',\n  '1021',\n  '1020',\n  '980',\n  '5',\n  '981',\n  '982',\n  '1022',\n  '1021',\n  '981',\n  '5',\n  '982',\n  '983',\n  '1023',\n  '1022',\n  '982',\n  '5',\n  '983',\n  '984',\n  '1024',\n  '1023',\n  '983',\n  '5',\n  '984',\n  '985',\n  '1025',\n  '1024',\n  '984',\n  '5',\n  '985',\n  '986',\n  '1026',\n  '1025',\n  '985',\n  '5',\n  '986',\n  '987',\n  '1027',\n  '1026',\n  '986',\n  '5',\n  '987',\n  '988',\n  '1028',\n  '1027',\n  '987',\n  '5',\n  '988',\n  '989',\n  '1029',\n  '1028',\n  '988',\n  '5',\n  '989',\n  '990',\n  '1030',\n  '1029',\n  '989',\n  '5',\n  '990',\n  '991',\n  '1031',\n  '1030',\n  '990',\n  '5',\n  '991',\n  '992',\n  '1032',\n  '1031',\n  '991',\n  '5',\n  '992',\n  '993',\n  '1033',\n  '1032',\n  '992',\n  '5',\n  '993',\n  '994',\n  '1034',\n  '1033',\n  '993',\n  '5',\n  '994',\n  '995',\n  '1035',\n  '1034',\n  '994',\n  '5',\n  '995',\n  '996',\n  '1036',\n  '1035',\n  '995',\n  '5',\n  '996',\n  '997',\n  '1037',\n  '1036',\n  '996',\n  '5',\n  '997',\n  '998',\n  '1038',\n  '1037',\n  '997',\n  '5',\n  '998',\n  '999',\n  '1039',\n  '1038',\n  '998',\n  '5',\n  '1001',\n  '1000',\n  '1040',\n  '1041',\n  '1001',\n  '5',\n  '1000',\n  '1002',\n  '1042',\n  '1040',\n  '1000',\n  '5',\n  '1002',\n  '1003',\n  '1043',\n  '1042',\n  '1002',\n  '5',\n  '1003',\n  '1004',\n  '1044',\n  '1043',\n  '1003',\n  '5',\n  '1004',\n  '1005',\n  '1045',\n  '1044',\n  '1004',\n  '5',\n  '1005',\n  '1006',\n  '1046',\n  '1045',\n  '1005',\n  '5',\n  '1006',\n  '1007',\n  '1047',\n  '1046',\n  '1006',\n  '5',\n  '1007',\n  '1008',\n  '1048',\n  '1047',\n  '1007',\n  '5',\n  '1008',\n  '1009',\n  '1049',\n  '1048',\n  '1008',\n  '5',\n  '1009',\n  '1010',\n  '1050',\n  '1049',\n  '1009',\n  '5',\n  '1010',\n  '1011',\n  '1051',\n  '1050',\n  '1010',\n  '5',\n  '1011',\n  '1012',\n  '1052',\n  '1051',\n  '1011',\n  '5',\n  '1012',\n  '1013',\n  '1053',\n  '1052',\n  '1012',\n  '5',\n  '1013',\n  '1014',\n  '1054',\n  '1053',\n  '1013',\n  '5',\n  '1014',\n  '1015',\n  '1055',\n  '1054',\n  '1014',\n  '5',\n  '1015',\n  '1016',\n  '1056',\n  '1055',\n  '1015',\n  '5',\n  '1016',\n  '1017',\n  '1057',\n  '1056',\n  '1016',\n  '5',\n  '1017',\n  '1018',\n  '1058',\n  '1057',\n  '1017',\n  '5',\n  '1018',\n  '1019',\n  '1059',\n  '1058',\n  '1018',\n  '5',\n  '1019',\n  '1020',\n  '1060',\n  '1059',\n  '1019',\n  '5',\n  '1020',\n  '1021',\n  '1061',\n  '1060',\n  '1020',\n  '5',\n  '1021',\n  '1022',\n  '1062',\n  '1061',\n  '1021',\n  '5',\n  '1022',\n  '1023',\n  '1063',\n  '1062',\n  '1022',\n  '5',\n  '1023',\n  '1024',\n  '1064',\n  '1063',\n  '1023',\n  '5',\n  '1024',\n  '1025',\n  '1065',\n  '1064',\n  '1024',\n  '5',\n  '1025',\n  '1026',\n  '1066',\n  '1065',\n  '1025',\n  '5',\n  '1026',\n  '1027',\n  '1067',\n  '1066',\n  '1026',\n  '5',\n  '1027',\n  '1028',\n  '1068',\n  '1067',\n  '1027',\n  '5',\n  '1028',\n  '1029',\n  '1069',\n  '1068',\n  '1028',\n  '5',\n  '1029',\n  '1030',\n  '1070',\n  '1069',\n  '1029',\n  '5',\n  '1030',\n  '1031',\n  '1071',\n  '1070',\n  '1030',\n  '5',\n  '1031',\n  '1032',\n  '1072',\n  '1071',\n  '1031',\n  '5',\n  '1032',\n  '1033',\n  '1073',\n  '1072',\n  '1032',\n  '5',\n  '1033',\n  '1034',\n  '1074',\n  '1073',\n  '1033',\n  '5',\n  '1034',\n  '1035',\n  '1075',\n  '1074',\n  '1034',\n  '5',\n  '1035',\n  '1036',\n  '1076',\n  '1075',\n  '1035',\n  '5',\n  '1036',\n  '1037',\n  '1077',\n  '1076',\n  '1036',\n  '5',\n  '1037',\n  '1038',\n  '1078',\n  '1077',\n  '1037',\n  '5',\n  '1038',\n  '1039',\n  '1079',\n  '1078',\n  '1038',\n  '5',\n  '1041',\n  '1040',\n  '1080',\n  '1081',\n  '1041',\n  '5',\n  '1040',\n  '1042',\n  '1082',\n  '1080',\n  '1040',\n  '5',\n  '1042',\n  '1043',\n  '1083',\n  '1082',\n  '1042',\n  '5',\n  '1043',\n  '1044',\n  '1084',\n  '1083',\n  '1043',\n  '5',\n  '1044',\n  '1045',\n  '1085',\n  '1084',\n  '1044',\n  '5',\n  '1045',\n  '1046',\n  '1086',\n  '1085',\n  '1045',\n  '5',\n  '1046',\n  '1047',\n  '1087',\n  '1086',\n  '1046',\n  '5',\n  '1047',\n  '1048',\n  '1088',\n  '1087',\n  '1047',\n  '5',\n  '1048',\n  '1049',\n  '1089',\n  '1088',\n  '1048',\n  '5',\n  '1049',\n  '1050',\n  '1090',\n  '1089',\n  '1049',\n  '5',\n  '1050',\n  '1051',\n  '1091',\n  '1090',\n  '1050',\n  '5',\n  '1051',\n  '1052',\n  '1092',\n  '1091',\n  '1051',\n  '5',\n  '1052',\n  '1053',\n  '1093',\n  '1092',\n  '1052',\n  '5',\n  '1053',\n  '1054',\n  '1094',\n  '1093',\n  '1053',\n  '5',\n  '1054',\n  '1055',\n  '1095',\n  '1094',\n  '1054',\n  '5',\n  '1055',\n  '1056',\n  '1096',\n  '1095',\n  '1055',\n  '5',\n  '1056',\n  '1057',\n  '1097',\n  '1096',\n  '1056',\n  '5',\n  '1057',\n  '1058',\n  '1098',\n  '1097',\n  '1057',\n  '5',\n  '1058',\n  '1059',\n  '1099',\n  '1098',\n  '1058',\n  '5',\n  '1059',\n  '1060',\n  '1100',\n  '1099',\n  '1059',\n  '5',\n  '1060',\n  '1061',\n  '1101',\n  '1100',\n  '1060',\n  '5',\n  '1061',\n  '1062',\n  '1102',\n  '1101',\n  '1061',\n  '5',\n  '1062',\n  '1063',\n  '1103',\n  '1102',\n  '1062',\n  '5',\n  '1063',\n  '1064',\n  '1104',\n  '1103',\n  '1063',\n  '5',\n  '1064',\n  '1065',\n  '1105',\n  '1104',\n  '1064',\n  '5',\n  '1065',\n  '1066',\n  '1106',\n  '1105',\n  '1065',\n  '5',\n  '1066',\n  '1067',\n  '1107',\n  '1106',\n  '1066',\n  '5',\n  '1067',\n  '1068',\n  '1108',\n  '1107',\n  '1067',\n  '5',\n  '1068',\n  '1069',\n  '1109',\n  '1108',\n  '1068',\n  '5',\n  '1069',\n  '1070',\n  '1110',\n  '1109',\n  '1069',\n  '5',\n  '1070',\n  '1071',\n  '1111',\n  '1110',\n  '1070',\n  '5',\n  '1071',\n  '1072',\n  '1112',\n  '1111',\n  '1071',\n  '5',\n  '1072',\n  '1073',\n  '1113',\n  '1112',\n  '1072',\n  '5',\n  '1073',\n  '1074',\n  '1114',\n  '1113',\n  '1073',\n  '5',\n  '1074',\n  '1075',\n  '1115',\n  '1114',\n  '1074',\n  '5',\n  '1075',\n  '1076',\n  '1116',\n  '1115',\n  '1075',\n  '5',\n  '1076',\n  '1077',\n  '1117',\n  '1116',\n  '1076',\n  '5',\n  '1077',\n  '1078',\n  '1118',\n  '1117',\n  '1077',\n  '5',\n  '1078',\n  '1079',\n  '1119',\n  '1118',\n  '1078',\n  '5',\n  '1081',\n  '1080',\n  '1120',\n  '1121',\n  '1081',\n  '5',\n  '1080',\n  '1082',\n  '1122',\n  '1120',\n  '1080',\n  '5',\n  '1082',\n  '1083',\n  '1123',\n  '1122',\n  '1082',\n  '5',\n  '1083',\n  '1084',\n  '1124',\n  '1123',\n  '1083',\n  '5',\n  '1084',\n  '1085',\n  '1125',\n  '1124',\n  '1084',\n  '5',\n  '1085',\n  '1086',\n  '1126',\n  '1125',\n  '1085',\n  '5',\n  '1086',\n  '1087',\n  '1127',\n  '1126',\n  '1086',\n  '5',\n  '1087',\n  '1088',\n  '1128',\n  '1127',\n  '1087',\n  '5',\n  '1088',\n  '1089',\n  '1129',\n  '1128',\n  '1088',\n  '5',\n  '1089',\n  '1090',\n  '1130',\n  '1129',\n  '1089',\n  '5',\n  '1090',\n  '1091',\n  '1131',\n  '1130',\n  '1090',\n  '5',\n  '1091',\n  '1092',\n  '1132',\n  '1131',\n  '1091',\n  '5',\n  '1092',\n  '1093',\n  '1133',\n  '1132',\n  '1092',\n  '5',\n  '1093',\n  '1094',\n  '1134',\n  '1133',\n  '1093',\n  '5',\n  '1094',\n  '1095',\n  '1135',\n  '1134',\n  '1094',\n  '5',\n  '1095',\n  '1096',\n  '1136',\n  '1135',\n  '1095',\n  '5',\n  '1096',\n  '1097',\n  '1137',\n  '1136',\n  '1096',\n  '5',\n  '1097',\n  '1098',\n  '1138',\n  '1137',\n  '1097',\n  '5',\n  '1098',\n  '1099',\n  '1139',\n  '1138',\n  '1098',\n  '5',\n  '1099',\n  '1100',\n  '1140',\n  '1139',\n  '1099',\n  '5',\n  '1100',\n  '1101',\n  '1141',\n  '1140',\n  '1100',\n  '5',\n  '1101',\n  '1102',\n  '1142',\n  '1141',\n  '1101',\n  '5',\n  '1102',\n  '1103',\n  '1143',\n  '1142',\n  '1102',\n  '5',\n  '1103',\n  '1104',\n  '1144',\n  '1143',\n  '1103',\n  '5',\n  '1104',\n  '1105',\n  '1145',\n  '1144',\n  '1104',\n  '5',\n  '1105',\n  '1106',\n  '1146',\n  '1145',\n  '1105',\n  '5',\n  '1106',\n  '1107',\n  '1147',\n  '1146',\n  '1106',\n  '5',\n  '1107',\n  '1108',\n  '1148',\n  '1147',\n  '1107',\n  '5',\n  '1108',\n  '1109',\n  '1149',\n  '1148',\n  '1108',\n  '5',\n  '1109',\n  '1110',\n  '1150',\n  '1149',\n  '1109',\n  '5',\n  '1110',\n  '1111',\n  '1151',\n  '1150',\n  '1110',\n  '5',\n  '1111',\n  '1112',\n  '1152',\n  '1151',\n  '1111',\n  '5',\n  '1112',\n  '1113',\n  '1153',\n  '1152',\n  '1112',\n  '5',\n  '1113',\n  '1114',\n  '1154',\n  '1153',\n  '1113',\n  '5',\n  '1114',\n  '1115',\n  '1155',\n  '1154',\n  '1114',\n  '5',\n  '1115',\n  '1116',\n  '1156',\n  '1155',\n  '1115',\n  '5',\n  '1116',\n  '1117',\n  '1157',\n  '1156',\n  '1116',\n  '5',\n  '1117',\n  '1118',\n  '1158',\n  '1157',\n  '1117',\n  '5',\n  '1118',\n  '1119',\n  '1159',\n  '1158',\n  '1118',\n  '5',\n  '1121',\n  '1120',\n  '1160',\n  '1161',\n  '1121',\n  '5',\n  '1120',\n  '1122',\n  '1162',\n  '1160',\n  '1120',\n  '5',\n  '1122',\n  '1123',\n  '1163',\n  '1162',\n  '1122',\n  '5',\n  '1123',\n  '1124',\n  '1164',\n  '1163',\n  '1123',\n  '5',\n  '1124',\n  '1125',\n  '1165',\n  '1164',\n  '1124',\n  '5',\n  '1125',\n  '1126',\n  '1166',\n  '1165',\n  '1125',\n  '5',\n  '1126',\n  '1127',\n  '1167',\n  '1166',\n  '1126',\n  '5',\n  '1127',\n  '1128',\n  '1168',\n  '1167',\n  '1127',\n  '5',\n  '1128',\n  '1129',\n  '1169',\n  '1168',\n  '1128',\n  '5',\n  '1129',\n  '1130',\n  '1170',\n  '1169',\n  '1129',\n  '5',\n  '1130',\n  '1131',\n  '1171',\n  '1170',\n  '1130',\n  '5',\n  '1131',\n  '1132',\n  '1172',\n  '1171',\n  '1131',\n  '5',\n  '1132',\n  '1133',\n  '1173',\n  '1172',\n  '1132',\n  '5',\n  '1133',\n  '1134',\n  '1174',\n  '1173',\n  '1133',\n  '5',\n  '1134',\n  '1135',\n  '1175',\n  '1174',\n  '1134',\n  '5',\n  '1135',\n  '1136',\n  '1176',\n  '1175',\n  '1135',\n  '5',\n  '1136',\n  '1137',\n  '1177',\n  '1176',\n  '1136',\n  '5',\n  '1137',\n  '1138',\n  '1178',\n  '1177',\n  '1137',\n  '5',\n  '1138',\n  '1139',\n  '1179',\n  '1178',\n  '1138',\n  '5',\n  '1139',\n  '1140',\n  '1180',\n  '1179',\n  '1139',\n  '5',\n  '1140',\n  '1141',\n  '1181',\n  '1180',\n  '1140',\n  '5',\n  '1141',\n  '1142',\n  '1182',\n  '1181',\n  '1141',\n  '5',\n  '1142',\n  '1143',\n  '1183',\n  '1182',\n  '1142',\n  '5',\n  '1143',\n  '1144',\n  '1184',\n  '1183',\n  '1143',\n  '5',\n  '1144',\n  '1145',\n  '1185',\n  '1184',\n  '1144',\n  '5',\n  '1145',\n  '1146',\n  '1186',\n  '1185',\n  '1145',\n  '5',\n  '1146',\n  '1147',\n  '1187',\n  '1186',\n  '1146',\n  '5',\n  '1147',\n  '1148',\n  '1188',\n  '1187',\n  '1147',\n  '5',\n  '1148',\n  '1149',\n  '1189',\n  '1188',\n  '1148',\n  '5',\n  '1149',\n  '1150',\n  '1190',\n  '1189',\n  '1149',\n  '5',\n  '1150',\n  '1151',\n  '1191',\n  '1190',\n  '1150',\n  '5',\n  '1151',\n  '1152',\n  '1192',\n  '1191',\n  '1151',\n  '5',\n  '1152',\n  '1153',\n  '1193',\n  '1192',\n  '1152',\n  '5',\n  '1153',\n  '1154',\n  '1194',\n  '1193',\n  '1153',\n  '5',\n  '1154',\n  '1155',\n  '1195',\n  '1194',\n  '1154',\n  '5',\n  '1155',\n  '1156',\n  '1196',\n  '1195',\n  '1155',\n  '5',\n  '1156',\n  '1157',\n  '1197',\n  '1196',\n  '1156',\n  '5',\n  '1157',\n  '1158',\n  '1198',\n  '1197',\n  '1157',\n  '5',\n  '1158',\n  '1159',\n  '1199',\n  '1198',\n  '1158',\n  '5',\n  '1161',\n  '1160',\n  '1200',\n  '1201',\n  '1161',\n  '5',\n  '1160',\n  '1162',\n  '1202',\n  '1200',\n  '1160',\n  '5',\n  '1162',\n  '1163',\n  '1203',\n  '1202',\n  '1162',\n  '5',\n  '1163',\n  '1164',\n  '1204',\n  '1203',\n  '1163',\n  '5',\n  '1164',\n  '1165',\n  '1205',\n  '1204',\n  '1164',\n  '5',\n  '1165',\n  '1166',\n  '1206',\n  '1205',\n  '1165',\n  '5',\n  '1166',\n  '1167',\n  '1207',\n  '1206',\n  '1166',\n  '5',\n  '1167',\n  '1168',\n  '1208',\n  '1207',\n  '1167',\n  '5',\n  '1168',\n  '1169',\n  '1209',\n  '1208',\n  '1168',\n  '5',\n  '1169',\n  '1170',\n  '1210',\n  '1209',\n  '1169',\n  '5',\n  '1170',\n  '1171',\n  '1211',\n  '1210',\n  '1170',\n  '5',\n  '1171',\n  '1172',\n  '1212',\n  '1211',\n  '1171',\n  '5',\n  '1172',\n  '1173',\n  '1213',\n  '1212',\n  '1172',\n  '5',\n  '1173',\n  '1174',\n  '1214',\n  '1213',\n  '1173',\n  '5',\n  '1174',\n  '1175',\n  '1215',\n  '1214',\n  '1174',\n  '5',\n  '1175',\n  '1176',\n  '1216',\n  '1215',\n  '1175',\n  '5',\n  '1176',\n  '1177',\n  '1217',\n  '1216',\n  '1176',\n  '5',\n  '1177',\n  '1178',\n  '1218',\n  '1217',\n  '1177',\n  '5',\n  '1178',\n  '1179',\n  '1219',\n  '1218',\n  '1178',\n  '5',\n  '1179',\n  '1180',\n  '1220',\n  '1219',\n  '1179',\n  '5',\n  '1180',\n  '1181',\n  '1221',\n  '1220',\n  '1180',\n  '5',\n  '1181',\n  '1182',\n  '1222',\n  '1221',\n  '1181',\n  '5',\n  '1182',\n  '1183',\n  '1223',\n  '1222',\n  '1182',\n  '5',\n  '1183',\n  '1184',\n  '1224',\n  '1223',\n  '1183',\n  '5',\n  '1184',\n  '1185',\n  '1225',\n  '1224',\n  '1184',\n  '5',\n  '1185',\n  '1186',\n  '1226',\n  '1225',\n  '1185',\n  '5',\n  '1186',\n  '1187',\n  '1227',\n  '1226',\n  '1186',\n  '5',\n  '1187',\n  '1188',\n  '1228',\n  '1227',\n  '1187',\n  '5',\n  '1188',\n  '1189',\n  '1229',\n  '1228',\n  '1188',\n  '5',\n  '1189',\n  '1190',\n  '1230',\n  '1229',\n  '1189',\n  '5',\n  '1190',\n  '1191',\n  '1231',\n  '1230',\n  '1190',\n  '5',\n  '1191',\n  '1192',\n  '1232',\n  '1231',\n  '1191',\n  '5',\n  '1192',\n  '1193',\n  '1233',\n  '1232',\n  '1192',\n  '5',\n  '1193',\n  '1194',\n  '1234',\n  '1233',\n  '1193',\n  '5',\n  '1194',\n  '1195',\n  '1235',\n  '1234',\n  '1194',\n  '5',\n  '1195',\n  '1196',\n  '1236',\n  '1235',\n  '1195',\n  '5',\n  '1196',\n  '1197',\n  '1237',\n  '1236',\n  '1196',\n  '5',\n  '1197',\n  '1198',\n  '1238',\n  '1237',\n  '1197',\n  '5',\n  '1198',\n  '1199',\n  '1239',\n  '1238',\n  '1198',\n  '5',\n  '1201',\n  '1200',\n  '1240',\n  '1241',\n  '1201',\n  '5',\n  '1200',\n  '1202',\n  '1242',\n  '1240',\n  '1200',\n  '5',\n  '1202',\n  '1203',\n  '1243',\n  '1242',\n  '1202',\n  '5',\n  '1203',\n  '1204',\n  '1244',\n  '1243',\n  '1203',\n  '5',\n  '1204',\n  '1205',\n  '1245',\n  '1244',\n  '1204',\n  '5',\n  '1205',\n  '1206',\n  '1246',\n  '1245',\n  '1205',\n  '5',\n  '1206',\n  '1207',\n  '1247',\n  '1246',\n  '1206',\n  '5',\n  '1207',\n  '1208',\n  '1248',\n  '1247',\n  '1207',\n  '5',\n  '1208',\n  '1209',\n  '1249',\n  '1248',\n  '1208',\n  '5',\n  '1209',\n  '1210',\n  '1250',\n  '1249',\n  '1209',\n  '5',\n  '1210',\n  '1211',\n  '1251',\n  '1250',\n  '1210',\n  '5',\n  '1211',\n  '1212',\n  '1252',\n  '1251',\n  '1211',\n  '5',\n  '1212',\n  '1213',\n  '1253',\n  '1252',\n  '1212',\n  '5',\n  '1213',\n  '1214',\n  '1254',\n  '1253',\n  '1213',\n  '5',\n  '1214',\n  '1215',\n  '1255',\n  '1254',\n  '1214',\n  '5',\n  '1215',\n  '1216',\n  '1256',\n  '1255',\n  '1215',\n  '5',\n  '1216',\n  '1217',\n  '1257',\n  '1256',\n  '1216',\n  '5',\n  '1217',\n  '1218',\n  '1258',\n  '1257',\n  '1217',\n  '5',\n  '1218',\n  '1219',\n  '1259',\n  '1258',\n  '1218',\n  '5',\n  '1219',\n  '1220',\n  '1260',\n  '1259',\n  '1219',\n  '5',\n  '1220',\n  '1221',\n  '1261',\n  '1260',\n  '1220',\n  '5',\n  '1221',\n  '1222',\n  '1262',\n  '1261',\n  '1221',\n  '5',\n  '1222',\n  '1223',\n  '1263',\n  '1262',\n  '1222',\n  '5',\n  '1223',\n  '1224',\n  '1264',\n  '1263',\n  '1223',\n  '5',\n  '1224',\n  '1225',\n  '1265',\n  '1264',\n  '1224',\n  '5',\n  '1225',\n  '1226',\n  '1266',\n  '1265',\n  '1225',\n  '5',\n  '1226',\n  '1227',\n  '1267',\n  '1266',\n  '1226',\n  '5',\n  '1227',\n  '1228',\n  '1268',\n  '1267',\n  '1227',\n  '5',\n  '1228',\n  '1229',\n  '1269',\n  '1268',\n  '1228',\n  '5',\n  '1229',\n  '1230',\n  '1270',\n  '1269',\n  '1229',\n  '5',\n  '1230',\n  '1231',\n  '1271',\n  '1270',\n  '1230',\n  '5',\n  '1231',\n  '1232',\n  '1272',\n  '1271',\n  '1231',\n  '5',\n  '1232',\n  '1233',\n  '1273',\n  '1272',\n  '1232',\n  '5',\n  '1233',\n  '1234',\n  '1274',\n  '1273',\n  '1233',\n  '5',\n  '1234',\n  '1235',\n  '1275',\n  '1274',\n  '1234',\n  '5',\n  '1235',\n  '1236',\n  '1276',\n  '1275',\n  '1235',\n  '5',\n  '1236',\n  '1237',\n  '1277',\n  '1276',\n  '1236',\n  '5',\n  '1237',\n  '1238',\n  '1278',\n  '1277',\n  '1237',\n  '5',\n  '1238',\n  '1239',\n  '1279',\n  '1278',\n  '1238',\n  '5',\n  '1241',\n  '1240',\n  '1280',\n  '1281',\n  '1241',\n  '5',\n  '1240',\n  '1242',\n  '1282',\n  '1280',\n  '1240',\n  '5',\n  '1242',\n  '1243',\n  '1283',\n  '1282',\n  '1242',\n  '5',\n  '1243',\n  '1244',\n  '1284',\n  '1283',\n  '1243',\n  '5',\n  '1244',\n  '1245',\n  '1285',\n  '1284',\n  '1244',\n  '5',\n  '1245',\n  '1246',\n  '1286',\n  '1285',\n  '1245',\n  '5',\n  '1246',\n  '1247',\n  '1287',\n  '1286',\n  '1246',\n  '5',\n  '1247',\n  '1248',\n  '1288',\n  '1287',\n  '1247',\n  '5',\n  '1248',\n  '1249',\n  '1289',\n  '1288',\n  '1248',\n  '5',\n  '1249',\n  '1250',\n  '1290',\n  '1289',\n  '1249',\n  '5',\n  '1250',\n  '1251',\n  '1291',\n  '1290',\n  '1250',\n  '5',\n  '1251',\n  '1252',\n  '1292',\n  '1291',\n  '1251',\n  '5',\n  '1252',\n  '1253',\n  '1293',\n  '1292',\n  '1252',\n  '5',\n  '1253',\n  '1254',\n  '1294',\n  '1293',\n  '1253',\n  '5',\n  '1254',\n  '1255',\n  '1295',\n  '1294',\n  '1254',\n  '5',\n  '1255',\n  '1256',\n  '1296',\n  '1295',\n  '1255',\n  '5',\n  '1256',\n  '1257',\n  '1297',\n  '1296',\n  '1256',\n  '5',\n  '1257',\n  '1258',\n  '1298',\n  '1297',\n  '1257',\n  '5',\n  '1258',\n  '1259',\n  '1299',\n  '1298',\n  '1258',\n  '5',\n  '1259',\n  '1260',\n  '1300',\n  '1299',\n  '1259',\n  '5',\n  '1260',\n  '1261',\n  '1301',\n  '1300',\n  '1260',\n  '5',\n  '1261',\n  '1262',\n  '1302',\n  '1301',\n  '1261',\n  '5',\n  '1262',\n  '1263',\n  '1303',\n  '1302',\n  '1262',\n  '5',\n  '1263',\n  '1264',\n  '1304',\n  '1303',\n  '1263',\n  '5',\n  '1264',\n  '1265',\n  '1305',\n  '1304',\n  '1264',\n  '5',\n  '1265',\n  '1266',\n  '1306',\n  '1305',\n  '1265',\n  '5',\n  '1266',\n  '1267',\n  '1307',\n  '1306',\n  '1266',\n  '5',\n  '1267',\n  '1268',\n  '1308',\n  '1307',\n  '1267',\n  '5',\n  '1268',\n  '1269',\n  '1309',\n  '1308',\n  '1268',\n  '5',\n  '1269',\n  '1270',\n  '1310',\n  '1309',\n  '1269',\n  '5',\n  '1270',\n  '1271',\n  '1311',\n  '1310',\n  '1270',\n  '5',\n  '1271',\n  '1272',\n  '1312',\n  '1311',\n  '1271',\n  '5',\n  '1272',\n  '1273',\n  '1313',\n  '1312',\n  '1272',\n  '5',\n  '1273',\n  '1274',\n  '1314',\n  '1313',\n  '1273',\n  '5',\n  '1274',\n  '1275',\n  '1315',\n  '1314',\n  '1274',\n  '5',\n  '1275',\n  '1276',\n  '1316',\n  '1315',\n  '1275',\n  '5',\n  '1276',\n  '1277',\n  '1317',\n  '1316',\n  '1276',\n  '5',\n  '1277',\n  '1278',\n  '1318',\n  '1317',\n  '1277',\n  '5',\n  '1278',\n  '1279',\n  '1319',\n  '1318',\n  '1278',\n  '5',\n  '1281',\n  '1280',\n  '1320',\n  '1321',\n  '1281',\n  '5',\n  '1280',\n  '1282',\n  '1322',\n  '1320',\n  '1280',\n  '5',\n  '1282',\n  '1283',\n  '1323',\n  '1322',\n  '1282',\n  '5',\n  '1283',\n  '1284',\n  '1324',\n  '1323',\n  '1283',\n  '5',\n  '1284',\n  '1285',\n  '1325',\n  '1324',\n  '1284',\n  '5',\n  '1285',\n  '1286',\n  '1326',\n  '1325',\n  '1285',\n  '5',\n  '1286',\n  '1287',\n  '1327',\n  '1326',\n  '1286',\n  '5',\n  '1287',\n  '1288',\n  '1328',\n  '1327',\n  '1287',\n  '5',\n  '1288',\n  '1289',\n  '1329',\n  '1328',\n  '1288',\n  '5',\n  '1289',\n  '1290',\n  '1330',\n  '1329',\n  '1289',\n  '5',\n  '1290',\n  '1291',\n  '1331',\n  '1330',\n  '1290',\n  '5',\n  '1291',\n  '1292',\n  '1332',\n  '1331',\n  '1291',\n  '5',\n  '1292',\n  '1293',\n  '1333',\n  '1332',\n  '1292',\n  '5',\n  '1293',\n  '1294',\n  '1334',\n  '1333',\n  '1293',\n  '5',\n  '1294',\n  '1295',\n  '1335',\n  '1334',\n  '1294',\n  '5',\n  '1295',\n  '1296',\n  '1336',\n  '1335',\n  '1295',\n  '5',\n  '1296',\n  '1297',\n  '1337',\n  '1336',\n  '1296',\n  '5',\n  '1297',\n  '1298',\n  '1338',\n  '1337',\n  '1297',\n  '5',\n  '1298',\n  '1299',\n  '1339',\n  '1338',\n  '1298',\n  '5',\n  '1299',\n  '1300',\n  '1340',\n  '1339',\n  '1299',\n  '5',\n  '1300',\n  '1301',\n  '1341',\n  '1340',\n  '1300',\n  '5',\n  '1301',\n  '1302',\n  '1342',\n  '1341',\n  '1301',\n  '5',\n  '1302',\n  '1303',\n  '1343',\n  '1342',\n  '1302',\n  '5',\n  '1303',\n  '1304',\n  '1344',\n  '1343',\n  '1303',\n  '5',\n  '1304',\n  '1305',\n  '1345',\n  '1344',\n  '1304',\n  '5',\n  '1305',\n  '1306',\n  '1346',\n  '1345',\n  '1305',\n  '5',\n  '1306',\n  '1307',\n  '1347',\n  '1346',\n  '1306',\n  '5',\n  '1307',\n  '1308',\n  '1348',\n  '1347',\n  '1307',\n  '5',\n  '1308',\n  '1309',\n  '1349',\n  '1348',\n  '1308',\n  '5',\n  '1309',\n  '1310',\n  '1350',\n  '1349',\n  '1309',\n  '5',\n  '1310',\n  '1311',\n  '1351',\n  '1350',\n  '1310',\n  '5',\n  '1311',\n  '1312',\n  '1352',\n  '1351',\n  '1311',\n  '5',\n  '1312',\n  '1313',\n  '1353',\n  '1352',\n  '1312',\n  '5',\n  '1313',\n  '1314',\n  '1354',\n  '1353',\n  '1313',\n  '5',\n  '1314',\n  '1315',\n  '1355',\n  '1354',\n  '1314',\n  '5',\n  '1315',\n  '1316',\n  '1356',\n  '1355',\n  '1315',\n  '5',\n  '1316',\n  '1317',\n  '1357',\n  '1356',\n  '1316',\n  '5',\n  '1317',\n  '1318',\n  '1358',\n  '1357',\n  '1317',\n  '5',\n  '1318',\n  '1319',\n  '1359',\n  '1358',\n  '1318',\n  '5',\n  '1321',\n  '1320',\n  '1360',\n  '1361',\n  '1321',\n  '5',\n  '1320',\n  '1322',\n  '1362',\n  '1360',\n  '1320',\n  '5',\n  '1322',\n  '1323',\n  '1363',\n  '1362',\n  '1322',\n  '5',\n  '1323',\n  '1324',\n  '1364',\n  '1363',\n  '1323',\n  '5',\n  '1324',\n  '1325',\n  '1365',\n  '1364',\n  '1324',\n  '5',\n  '1325',\n  '1326',\n  '1366',\n  '1365',\n  '1325',\n  '5',\n  '1326',\n  '1327',\n  '1367',\n  '1366',\n  '1326',\n  '5',\n  '1327',\n  '1328',\n  '1368',\n  '1367',\n  '1327',\n  '5',\n  '1328',\n  '1329',\n  '1369',\n  '1368',\n  '1328',\n  '5',\n  '1329',\n  '1330',\n  '1370',\n  '1369',\n  '1329',\n  '5',\n  '1330',\n  '1331',\n  '1371',\n  '1370',\n  '1330',\n  '5',\n  '1331',\n  '1332',\n  '1372',\n  '1371',\n  '1331',\n  '5',\n  '1332',\n  '1333',\n  '1373',\n  '1372',\n  '1332',\n  '5',\n  '1333',\n  '1334',\n  '1374',\n  '1373',\n  '1333',\n  '5',\n  '1334',\n  '1335',\n  '1375',\n  '1374',\n  '1334',\n  '5',\n  '1335',\n  '1336',\n  '1376',\n  '1375',\n  '1335',\n  '5',\n  '1336',\n  '1337',\n  '1377',\n  '1376',\n  '1336',\n  '5',\n  '1337',\n  '1338',\n  '1378',\n  '1377',\n  '1337',\n  '5',\n  '1338',\n  '1339',\n  '1379',\n  '1378',\n  '1338',\n  '5',\n  '1339',\n  '1340',\n  '1380',\n  '1379',\n  '1339',\n  '5',\n  '1340',\n  '1341',\n  '1381',\n  '1380',\n  '1340',\n  '5',\n  '1341',\n  '1342',\n  '1382',\n  '1381',\n  '1341',\n  '5',\n  '1342',\n  '1343',\n  '1383',\n  '1382',\n  '1342',\n  '5',\n  '1343',\n  '1344',\n  '1384',\n  '1383',\n  '1343',\n  '5',\n  '1344',\n  '1345',\n  '1385',\n  '1384',\n  '1344',\n  '5',\n  '1345',\n  '1346',\n  '1386',\n  '1385',\n  '1345',\n  '5',\n  '1346',\n  '1347',\n  '1387',\n  '1386',\n  '1346',\n  '5',\n  '1347',\n  '1348',\n  '1388',\n  '1387',\n  '1347',\n  '5',\n  '1348',\n  '1349',\n  '1389',\n  '1388',\n  '1348',\n  '5',\n  '1349',\n  '1350',\n  '1390',\n  '1389',\n  '1349',\n  '5',\n  '1350',\n  '1351',\n  '1391',\n  '1390',\n  '1350',\n  '5',\n  '1351',\n  '1352',\n  '1392',\n  '1391',\n  '1351',\n  '5',\n  '1352',\n  '1353',\n  '1393',\n  '1392',\n  '1352',\n  '5',\n  '1353',\n  '1354',\n  '1394',\n  '1393',\n  '1353',\n  '5',\n  '1354',\n  '1355',\n  '1395',\n  '1394',\n  '1354',\n  '5',\n  '1355',\n  '1356',\n  '1396',\n  '1395',\n  '1355',\n  '5',\n  '1356',\n  '1357',\n  '1397',\n  '1396',\n  '1356',\n  '5',\n  '1357',\n  '1358',\n  '1398',\n  '1397',\n  '1357',\n  '5',\n  '1358',\n  '1359',\n  '1399',\n  '1398',\n  '1358',\n  '5',\n  '1361',\n  '1360',\n  '1400',\n  '1401',\n  '1361',\n  '5',\n  '1360',\n  '1362',\n  '1402',\n  '1400',\n  '1360',\n  '5',\n  '1362',\n  '1363',\n  '1403',\n  '1402',\n  '1362',\n  '5',\n  '1363',\n  '1364',\n  '1404',\n  '1403',\n  '1363',\n  '5',\n  '1364',\n  '1365',\n  '1405',\n  '1404',\n  '1364',\n  '5',\n  '1365',\n  '1366',\n  '1406',\n  '1405',\n  '1365',\n  '5',\n  '1366',\n  '1367',\n  '1407',\n  '1406',\n  '1366',\n  '5',\n  '1367',\n  '1368',\n  '1408',\n  '1407',\n  '1367',\n  '5',\n  '1368',\n  '1369',\n  '1409',\n  '1408',\n  '1368',\n  '5',\n  '1369',\n  '1370',\n  '1410',\n  '1409',\n  '1369',\n  '5',\n  '1370',\n  '1371',\n  '1411',\n  '1410',\n  '1370',\n  '5',\n  '1371',\n  '1372',\n  '1412',\n  '1411',\n  '1371',\n  '5',\n  '1372',\n  '1373',\n  '1413',\n  '1412',\n  '1372',\n  '5',\n  '1373',\n  '1374',\n  '1414',\n  '1413',\n  '1373',\n  '5',\n  '1374',\n  '1375',\n  '1415',\n  '1414',\n  '1374',\n  '5',\n  '1375',\n  '1376',\n  '1416',\n  '1415',\n  '1375',\n  '5',\n  '1376',\n  '1377',\n  '1417',\n  '1416',\n  '1376',\n  '5',\n  '1377',\n  '1378',\n  '1418',\n  '1417',\n  '1377',\n  '5',\n  '1378',\n  '1379',\n  '1419',\n  '1418',\n  '1378',\n  '5',\n  '1379',\n  '1380',\n  '1420',\n  '1419',\n  '1379',\n  '5',\n  '1380',\n  '1381',\n  '1421',\n  '1420',\n  '1380',\n  '5',\n  '1381',\n  '1382',\n  '1422',\n  '1421',\n  '1381',\n  '5',\n  '1382',\n  '1383',\n  '1423',\n  '1422',\n  '1382',\n  '5',\n  '1383',\n  '1384',\n  '1424',\n  '1423',\n  '1383',\n  '5',\n  '1384',\n  '1385',\n  '1425',\n  '1424',\n  '1384',\n  '5',\n  '1385',\n  '1386',\n  '1426',\n  '1425',\n  '1385',\n  '5',\n  '1386',\n  '1387',\n  '1427',\n  '1426',\n  '1386',\n  '5',\n  '1387',\n  '1388',\n  '1428',\n  '1427',\n  '1387',\n  '5',\n  '1388',\n  '1389',\n  '1429',\n  '1428',\n  '1388',\n  '5',\n  '1389',\n  '1390',\n  '1430',\n  '1429',\n  '1389',\n  '5',\n  '1390',\n  '1391',\n  '1431',\n  '1430',\n  '1390',\n  '5',\n  '1391',\n  '1392',\n  '1432',\n  '1431',\n  '1391',\n  '5',\n  '1392',\n  '1393',\n  '1433',\n  '1432',\n  '1392',\n  '5',\n  '1393',\n  '1394',\n  '1434',\n  '1433',\n  '1393',\n  '5',\n  '1394',\n  '1395',\n  '1435',\n  '1434',\n  '1394',\n  '5',\n  '1395',\n  '1396',\n  '1436',\n  '1435',\n  '1395',\n  '5',\n  '1396',\n  '1397',\n  '1437',\n  '1436',\n  '1396',\n  '5',\n  '1397',\n  '1398',\n  '1438',\n  '1437',\n  '1397',\n  '5',\n  '1398',\n  '1399',\n  '1439',\n  '1438',\n  '1398',\n  '5',\n  '1401',\n  '1400',\n  '1440',\n  '1441',\n  '1401',\n  '5',\n  '1400',\n  '1402',\n  '1442',\n  '1440',\n  '1400',\n  '5',\n  '1402',\n  '1403',\n  '1443',\n  '1442',\n  '1402',\n  '5',\n  '1403',\n  '1404',\n  '1444',\n  '1443',\n  '1403',\n  '5',\n  '1404',\n  '1405',\n  '1445',\n  '1444',\n  '1404',\n  '5',\n  '1405',\n  '1406',\n  '1446',\n  '1445',\n  '1405',\n  '5',\n  '1406',\n  '1407',\n  '1447',\n  '1446',\n  '1406',\n  '5',\n  '1407',\n  '1408',\n  '1448',\n  '1447',\n  '1407',\n  '5',\n  '1408',\n  '1409',\n  '1449',\n  '1448',\n  '1408',\n  '5',\n  '1409',\n  '1410',\n  '1450',\n  '1449',\n  '1409',\n  '5',\n  '1410',\n  '1411',\n  '1451',\n  '1450',\n  '1410',\n  '5',\n  '1411',\n  '1412',\n  '1452',\n  '1451',\n  '1411',\n  '5',\n  '1412',\n  '1413',\n  '1453',\n  '1452',\n  '1412',\n  '5',\n  '1413',\n  '1414',\n  '1454',\n  '1453',\n  '1413',\n  '5',\n  '1414',\n  '1415',\n  '1455',\n  '1454',\n  '1414',\n  '5',\n  '1415',\n  '1416',\n  '1456',\n  '1455',\n  '1415',\n  '5',\n  '1416',\n  '1417',\n  '1457',\n  '1456',\n  '1416',\n  '5',\n  '1417',\n  '1418',\n  '1458',\n  '1457',\n  '1417',\n  '5',\n  '1418',\n  '1419',\n  '1459',\n  '1458',\n  '1418',\n  '5',\n  '1419',\n  '1420',\n  '1460',\n  '1459',\n  '1419',\n  '5',\n  '1420',\n  '1421',\n  '1461',\n  '1460',\n  '1420',\n  '5',\n  '1421',\n  '1422',\n  '1462',\n  '1461',\n  '1421',\n  '5',\n  '1422',\n  '1423',\n  '1463',\n  '1462',\n  '1422',\n  '5',\n  '1423',\n  '1424',\n  '1464',\n  '1463',\n  '1423',\n  '5',\n  '1424',\n  '1425',\n  '1465',\n  '1464',\n  '1424',\n  '5',\n  '1425',\n  '1426',\n  '1466',\n  '1465',\n  '1425',\n  '5',\n  '1426',\n  '1427',\n  '1467',\n  '1466',\n  '1426',\n  '5',\n  '1427',\n  '1428',\n  '1468',\n  '1467',\n  '1427',\n  '5',\n  '1428',\n  '1429',\n  '1469',\n  '1468',\n  '1428',\n  '5',\n  '1429',\n  '1430',\n  '1470',\n  '1469',\n  '1429',\n  '5',\n  '1430',\n  '1431',\n  '1471',\n  '1470',\n  '1430',\n  '5',\n  '1431',\n  '1432',\n  '1472',\n  '1471',\n  '1431',\n  '5',\n  '1432',\n  '1433',\n  '1473',\n  '1472',\n  '1432',\n  '5',\n  '1433',\n  '1434',\n  '1474',\n  '1473',\n  '1433',\n  '5',\n  '1434',\n  '1435',\n  '1475',\n  '1474',\n  '1434',\n  '5',\n  '1435',\n  '1436',\n  '1476',\n  '1475',\n  '1435',\n  '5',\n  '1436',\n  '1437',\n  '1477',\n  '1476',\n  '1436',\n  '5',\n  '1437',\n  '1438',\n  '1478',\n  '1477',\n  '1437',\n  '5',\n  '1438',\n  '1439',\n  '1479',\n  '1478',\n  '1438',\n  '5',\n  '1441',\n  '1440',\n  '1480',\n  '1481',\n  '1441',\n  '5',\n  '1440',\n  '1442',\n  '1482',\n  '1480',\n  '1440',\n  '5',\n  '1442',\n  '1443',\n  '1483',\n  '1482',\n  '1442',\n  '5',\n  '1443',\n  '1444',\n  '1484',\n  '1483',\n  '1443',\n  '5',\n  '1444',\n  '1445',\n  '1485',\n  '1484',\n  '1444',\n  '5',\n  '1445',\n  '1446',\n  '1486',\n  '1485',\n  '1445',\n  '5',\n  '1446',\n  '1447',\n  '1487',\n  '1486',\n  '1446',\n  '5',\n  '1447',\n  '1448',\n  '1488',\n  '1487',\n  '1447',\n  '5',\n  '1448',\n  '1449',\n  '1489',\n  '1488',\n  '1448',\n  '5',\n  '1449',\n  '1450',\n  '1490',\n  '1489',\n  '1449',\n  '5',\n  '1450',\n  '1451',\n  '1491',\n  '1490',\n  '1450',\n  '5',\n  '1451',\n  '1452',\n  '1492',\n  '1491',\n  '1451',\n  '5',\n  '1452',\n  '1453',\n  '1493',\n  '1492',\n  '1452',\n  '5',\n  '1453',\n  '1454',\n  '1494',\n  '1493',\n  '1453',\n  '5',\n  '1454',\n  '1455',\n  '1495',\n  '1494',\n  '1454',\n  '5',\n  '1455',\n  '1456',\n  '1496',\n  '1495',\n  '1455',\n  '5',\n  '1456',\n  '1457',\n  '1497',\n  '1496',\n  '1456',\n  '5',\n  '1457',\n  '1458',\n  '1498',\n  '1497',\n  '1457',\n  '5',\n  '1458',\n  '1459',\n  '1499',\n  '1498',\n  '1458',\n  '5',\n  '1459',\n  '1460',\n  '1500',\n  '1499',\n  '1459',\n  '5',\n  '1460',\n  '1461',\n  '1501',\n  '1500',\n  '1460',\n  '5',\n  '1461',\n  '1462',\n  '1502',\n  '1501',\n  '1461',\n  '5',\n  '1462',\n  '1463',\n  '1503',\n  '1502',\n  '1462',\n  '5',\n  '1463',\n  '1464',\n  '1504',\n  '1503',\n  '1463',\n  '5',\n  '1464',\n  '1465',\n  '1505',\n  '1504',\n  '1464',\n  '5',\n  '1465',\n  '1466',\n  '1506',\n  '1505',\n  '1465',\n  '5',\n  '1466',\n  '1467',\n  '1507',\n  '1506',\n  '1466',\n  '5',\n  '1467',\n  '1468',\n  '1508',\n  '1507',\n  '1467',\n  '5',\n  '1468',\n  '1469',\n  '1509',\n  '1508',\n  '1468',\n  '5',\n  '1469',\n  '1470',\n  '1510',\n  '1509',\n  '1469',\n  '5',\n  '1470',\n  '1471',\n  '1511',\n  '1510',\n  '1470',\n  '5',\n  '1471',\n  '1472',\n  '1512',\n  '1511',\n  '1471',\n  '5',\n  '1472',\n  '1473',\n  '1513',\n  '1512',\n  '1472',\n  '5',\n  '1473',\n  '1474',\n  '1514',\n  '1513',\n  '1473',\n  '5',\n  '1474',\n  '1475',\n  '1515',\n  '1514',\n  '1474',\n  '5',\n  '1475',\n  '1476',\n  '1516',\n  '1515',\n  '1475',\n  '5',\n  '1476',\n  '1477',\n  '1517',\n  '1516',\n  '1476',\n  '5',\n  '1477',\n  '1478',\n  '1518',\n  '1517',\n  '1477',\n  '5',\n  '1478',\n  '1479',\n  '1519',\n  '1518',\n  '1478',\n  '5',\n  '1481',\n  '1480',\n  '1520',\n  '1521',\n  '1481',\n  '5',\n  '1480',\n  '1482',\n  '1522',\n  '1520',\n  '1480',\n  '5',\n  '1482',\n  '1483',\n  '1523',\n  '1522',\n  '1482',\n  '5',\n  '1483',\n  '1484',\n  '1524',\n  '1523',\n  '1483',\n  '5',\n  '1484',\n  '1485',\n  '1525',\n  '1524',\n  '1484',\n  '5',\n  '1485',\n  '1486',\n  '1526',\n  '1525',\n  '1485',\n  '5',\n  '1486',\n  '1487',\n  '1527',\n  '1526',\n  '1486',\n  '5',\n  '1487',\n  '1488',\n  '1528',\n  '1527',\n  '1487',\n  '5',\n  '1488',\n  '1489',\n  '1529',\n  '1528',\n  '1488',\n  '5',\n  '1489',\n  '1490',\n  '1530',\n  '1529',\n  '1489',\n  '5',\n  '1490',\n  '1491',\n  '1531',\n  '1530',\n  '1490',\n  '5',\n  '1491',\n  '1492',\n  '1532',\n  '1531',\n  '1491',\n  '5',\n  '1492',\n  '1493',\n  '1533',\n  '1532',\n  '1492',\n  '5',\n  '1493',\n  '1494',\n  '1534',\n  '1533',\n  '1493',\n  '5',\n  '1494',\n  '1495',\n  '1535',\n  '1534',\n  '1494',\n  '5',\n  '1495',\n  '1496',\n  '1536',\n  '1535',\n  '1495',\n  '5',\n  '1496',\n  '1497',\n  '1537',\n  '1536',\n  '1496',\n  '5',\n  '1497',\n  '1498',\n  '1538',\n  '1537',\n  '1497',\n  '5',\n  '1498',\n  '1499',\n  '1539',\n  '1538',\n  '1498',\n  '5',\n  '1499',\n  '1500',\n  '1540',\n  '1539',\n  '1499',\n  '5',\n  '1500',\n  '1501',\n  '1541',\n  '1540',\n  '1500',\n  '5',\n  '1501',\n  '1502',\n  '1542',\n  '1541',\n  '1501',\n  '5',\n  '1502',\n  '1503',\n  '1543',\n  '1542',\n  '1502',\n  '5',\n  '1503',\n  '1504',\n  '1544',\n  '1543',\n  '1503',\n  '5',\n  '1504',\n  '1505',\n  '1545',\n  '1544',\n  '1504',\n  '5',\n  '1505',\n  '1506',\n  '1546',\n  '1545',\n  '1505',\n  '5',\n  '1506',\n  '1507',\n  '1547',\n  '1546',\n  '1506',\n  '5',\n  '1507',\n  '1508',\n  '1548',\n  '1547',\n  '1507',\n  '5',\n  '1508',\n  '1509',\n  '1549',\n  '1548',\n  '1508',\n  '5',\n  '1509',\n  '1510',\n  '1550',\n  '1549',\n  '1509',\n  '5',\n  '1510',\n  '1511',\n  '1551',\n  '1550',\n  '1510',\n  '5',\n  '1511',\n  '1512',\n  '1552',\n  '1551',\n  '1511',\n  '5',\n  '1512',\n  '1513',\n  '1553',\n  '1552',\n  '1512',\n  '5',\n  '1513',\n  '1514',\n  '1554',\n  '1553',\n  '1513',\n  '5',\n  '1514',\n  '1515',\n  '1555',\n  '1554',\n  '1514',\n  '5',\n  '1515',\n  '1516',\n  '1556',\n  '1555',\n  '1515',\n  '5',\n  '1516',\n  '1517',\n  '1557',\n  '1556',\n  '1516',\n  '5',\n  '1517',\n  '1518',\n  '1558',\n  '1557',\n  '1517',\n  '5',\n  '1518',\n  '1519',\n  '1559',\n  '1558',\n  '1518',\n  '5',\n  '1521',\n  '1520',\n  '1560',\n  '1561',\n  '1521',\n  '5',\n  '1520',\n  '1522',\n  '1562',\n  '1560',\n  '1520',\n  '5',\n  '1522',\n  '1523',\n  '1563',\n  '1562',\n  '1522',\n  '5',\n  '1523',\n  '1524',\n  '1564',\n  '1563',\n  '1523',\n  '5',\n  '1524',\n  '1525',\n  '1565',\n  '1564',\n  '1524',\n  '5',\n  '1525',\n  '1526',\n  '1566',\n  '1565',\n  '1525',\n  '5',\n  '1526',\n  '1527',\n  '1567',\n  '1566',\n  '1526',\n  '5',\n  '1527',\n  '1528',\n  '1568',\n  '1567',\n  '1527',\n  '5',\n  '1528',\n  '1529',\n  '1569',\n  '1568',\n  '1528',\n  '5',\n  '1529',\n  '1530',\n  '1570',\n  '1569',\n  '1529',\n  '5',\n  '1530',\n  '1531',\n  '1571',\n  '1570',\n  '1530',\n  '5',\n  '1531',\n  '1532',\n  '1572',\n  '1571',\n  '1531',\n  '5',\n  '1532',\n  '1533',\n  '1573',\n  '1572',\n  '1532',\n  '5',\n  '1533',\n  '1534',\n  '1574',\n  '1573',\n  '1533',\n  '5',\n  '1534',\n  '1535',\n  '1575',\n  '1574',\n  '1534',\n  '5',\n  '1535',\n  '1536',\n  '1576',\n  '1575',\n  '1535',\n  '5',\n  '1536',\n  '1537',\n  '1577',\n  '1576',\n  '1536',\n  '5',\n  '1537',\n  '1538',\n  '1578',\n  '1577',\n  '1537',\n  '5',\n  '1538',\n  '1539',\n  '1579',\n  '1578',\n  '1538',\n  '5',\n  '1539',\n  '1540',\n  '1580',\n  '1579',\n  '1539',\n  '5',\n  '1540',\n  '1541',\n  '1581',\n  '1580',\n  '1540',\n  '5',\n  '1541',\n  '1542',\n  '1582',\n  '1581',\n  '1541',\n  '5',\n  '1542',\n  '1543',\n  '1583',\n  '1582',\n  '1542',\n  '5',\n  '1543',\n  '1544',\n  '1584',\n  '1583',\n  '1543',\n  '5',\n  '1544',\n  '1545',\n  '1585',\n  '1584',\n  '1544',\n  '5',\n  '1545',\n  '1546',\n  '1586',\n  '1585',\n  '1545',\n  '5',\n  '1546',\n  '1547',\n  '1587',\n  '1586',\n  '1546',\n  '5',\n  '1547',\n  '1548',\n  '1588',\n  '1587',\n  '1547',\n  '5',\n  '1548',\n  '1549',\n  '1589',\n  '1588',\n  '1548',\n  '5',\n  '1549',\n  '1550',\n  '1590',\n  '1589',\n  '1549',\n  '5',\n  '1550',\n  '1551',\n  '1591',\n  '1590',\n  '1550',\n  '5',\n  '1551',\n  '1552',\n  '1592',\n  '1591',\n  '1551',\n  '5',\n  '1552',\n  '1553',\n  '1593',\n  '1592',\n  '1552',\n  '5',\n  '1553',\n  '1554',\n  '1594',\n  '1593',\n  '1553',\n  '5',\n  '1554',\n  '1555',\n  '1595',\n  '1594',\n  '1554',\n  '5',\n  '1555',\n  '1556',\n  '1596',\n  '1595',\n  '1555',\n  '5',\n  '1556',\n  '1557',\n  '1597',\n  '1596',\n  '1556',\n  '5',\n  '1557',\n  '1558',\n  '1598',\n  '1597',\n  '1557',\n  '5',\n  '1558',\n  '1559',\n  '1599',\n  '1598',\n  '1558&quot;',\n  'color pmesh  [102,102,255]',\n  'draw line_2 diameter 1 curve {-3.0 -3.0 -1.5}  {-3.0 3.0 -1.5} ',\n  'color $line_2 translucent 0.5 [0,0,0]',\n  'draw line_3 diameter 1 curve {-3.0 3.0 -1.5}  {3.0 3.0 -1.5} ',\n  'color $line_3 translucent 0.5 [0,0,0]',\n  'draw line_4 diameter 1 curve {3.0 3.0 -1.5}  {3.0 -3.0 -1.5} ',\n  'color $line_4 translucent 0.5 [0,0,0]',\n  'draw line_5 diameter 1 curve {3.0 -3.0 -1.5}  {-3.0 -3.0 -1.5} ',\n  'color $line_5 translucent 0.5 [0,0,0]',\n  'draw line_6 diameter 1 curve {-3.0 -3.0 -1.5}  {-3.0 -3.0 1.5} ',\n  'color $line_6 translucent 0.5 [0,0,0]',\n  'draw line_7 diameter 1 curve {-3.0 -3.0 1.5}  {-3.0 3.0 1.5} ',\n  'color $line_7 translucent 0.5 [0,0,0]',\n  'draw line_8 diameter 1 curve {-3.0 3.0 1.5}  {3.0 3.0 1.5} ',\n  'color $line_8 translucent 0.5 [0,0,0]',\n  'draw line_9 diameter 1 curve {3.0 3.0 1.5}  {3.0 -3.0 1.5} ',\n  'color $line_9 translucent 0.5 [0,0,0]',\n  'draw line_10 diameter 1 curve {3.0 -3.0 1.5}  {-3.0 -3.0 1.5} ',\n  'color $line_10 translucent 0.5 [0,0,0]',\n  'draw line_11 diameter 1 curve {-3.0 -3.0 1.5} ',\n  'color $line_11 translucent 0.5 [0,0,0]',\n  'draw line_12 diameter 1 curve {-3.0 3.0 -1.5}  {-3.0 3.0 1.5} ',\n  'color $line_12 translucent 0.5 [0,0,0]',\n  'draw line_13 diameter 1 curve {3.0 -3.0 -1.5}  {3.0 -3.0 1.5} ',\n  'color $line_13 translucent 0.5 [0,0,0]',\n  'draw line_14 diameter 1 curve {3.0 3.0 -1.5}  {3.0 3.0 1.5} ',\n  'color $line_14 translucent 0.5 [0,0,0]',\n  'select atomno = 1',\n  'color atom  [76,76,76]',\n  'label &quot;0.00&quot;',\n  'select atomno = 2',\n  'color atom  [76,76,76]',\n  'label &quot;0.50&quot;',\n  'select atomno = 3',\n  'color atom  [76,76,76]',\n  'label &quot;1.00&quot;',\n  'select atomno = 4',\n  'color atom  [76,76,76]',\n  'label &quot;0.00&quot;',\n  'select atomno = 5',\n  'color atom  [76,76,76]',\n  'label &quot;0.50&quot;',\n  'select atomno = 6',\n  'color atom  [76,76,76]',\n  'label &quot;1.00&quot;',\n  'select atomno = 7',\n  'color atom  [76,76,76]',\n  'label &quot;0.00&quot;',\n  'select atomno = 8',\n  'color atom  [76,76,76]',\n  'label &quot;0.12&quot;',\n  'select atomno = 9',\n  'color atom  [76,76,76]',\n  'label &quot;0.23&quot;',\n  'isosurface fullylit; pmesh o* fullylit; set antialiasdisplay on;',\n].join('\\n');;\n    var Info = {\n      width: '100%',\n      height: '500',\n      debug: false,\n      disableInitialConsole: true,   // very slow when used with inline mesh\n      color: '#3131ff',\n      addSelectionOptions: false,\n      use: 'HTML5',\n      j2sPath: '/nbextensions/jsmol/j2s',\n      script: script,\n    };\n    var jmolApplet0 = Jmol.getApplet('jmolApplet0', Info);\n  </script>\n</body>\n</html>\n\" \n        width=\"100%\"\n        height=\"500\"\n        style=\"border: 0;\">\n</iframe>\n",
      "text/plain": [
       "Graphics3d Object"
      ]
     },
     "execution_count": 38,
     "metadata": {
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "plot3d(f_2d*100, (0,1),(0,1))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "Now we need to do some integrals. Symbolic integration is theoretically possible, but the result is a really long expression. You don't believe me? Here it is:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "y |--> 27101836261352403057669001965570401374968441258953491312131661547410800/83*(14589930354045020136586730464187821267314045147212760459986525400*y^415 - 5338187682074805374853804340731522286150712533029113262503523997500*y^414 + 973902579828020424659768642773459421832648639076701273857422581510000*y^413 - 118128236945984623013404413556597300211754734079077652326400433654852500*y^412 + 10716616649070517405542085070246440232835734829373453393289942990887665000*y^411 - 775626892116703286818382782418309553066376006033643245568693722683411582300*y^410 + 46651397423156236811081213808045024463161001829896390809266175007364119620000*y^409 - 2398414332997007495520961381179642502433611015296049355362521618524608210057500*y^408 + 107592749120047574577940326529675461448238009624754961007884323614305397295405000*y^407 - 4278357650354075681061891489993244354944590739044135489733055374065396803947742500*y^406 + 152685605271994242626657172443867547181795399273699547442977010258250911717380471600*y^405 - 4939777879833702122782996167443082042318324376817316029166071028325838171054540347500*y^404 + 146085044098903379402798382936939582581513126359575117706206537259521933803047175835000*y^403 - 3976638401926118608967220657907785701963925725753309733977657057788429158225734440702500*y^402 + 100233388034583806135250728887884451010100346615068817348908867884804752334445017153040000*y^401 - 2351324933209284216223779223616437394020438981069591851779378677275692282637578434884588840*y^400 + 51564143272133425794381123324921872675886819760298066924986374501659918478894263922907650000*y^399 - 1061241282114669180504487999426351713270753109435599485275092763188094192743793252369023525000*y^398 + 20569012389869876878896390410376073005157065304963374070604736646040274009485913885547052100000*y^397 - 376603745057959113365216353873338309558404061582462712465767931369200173747045456002003767975000*y^396 + 6531739080109028592006137207887255926892948215415533039393627706896497595712048126527917502894000*y^395 - 107579495182723939010833496253908122001128416492114063928374016891143365948230524346457814564525000*y^394 + 1686432391751754776517734067576878466752826863020491761345836311977562716534741192206975058387400000*y^393 - 25213997335375420598914600108173873163244710327007461062295628773099320832538440324790154269694225000*y^392 + 360218386484417134182958967274320346521444889735712730163640364006477765142096490164393354860644350000*y^391 - 4925977198805520094128010468272041653543668573677160412866495730599762759401114577447049271479443264600*y^390 + 64582220344236895835611448298682294172423418318132437289509327059277095303202273380411185821452855140000*y^389 - 812955515369880077390026469892662544369191351377476387724788513615304489760269854233314574786255198565000*y^388 + 9838892405654074646478186726430725057101627038118102933903623553854327427567444607195810870779683625010000*y^387 - 114630919122118881661518548747040265429885393664849461009181407921219182488468693784694520096142179622135000*y^386 + 1287201011814920387530070103748583053263585802316564129441280682402635765543241186935042465661407456993283200*y^385 - 13946299605076390875478057092655703905802333573066100352376442877426070888855807466813432628417340958140851875*y^384 + 145944566102209333234767761951342196486829642195428016220169146351758987265102026963415764946988779530622805000*y^383 - 1476568619396293523038953323140745073594618890684015053205152527094795294050757370846190960302554494094566232500*y^382 + 14456101481111280667430308495754350255794653866922149537416262474623306960992222695707682750456320145055524770000*y^381 - 137073189013866520018819822158502019932971398030933774459631750145655628884036856870555757845323081940834382275900*y^380 + 1259819547225070478625037063813848819964424898349391330785533675481179702584155808528854590574869134812418025315000*y^379 - 11231814611972062280154046655513558073086236593742596484125481161834961983048832541203446857812884834040841984452500*y^378 + 97205451825404451329234909991427682823783607276181912780107054053395639153031303489359776296179862715602383959260000*y^377 - 817197960691764549605615825752401344164840379255348474196591483677615998305138165770920885298469537351114722593672500*y^376 + 6677923815316915428830531030495089810823298288506906304874759846884497240550041053835759895756346800690015882442800024*y^375 - 53076298747342446060305267336741168037960706854817999602622365745340296151821850361042991867438683079046281835966887500*y^374 + 410543442934250494306367360832181014819859990670204641889912408499767376898580654879978653295592356746234664097735450000*y^373 - 3092139501205024087492925310433879500155158278066740750828629473846178657249568562095833218954718151314679050752129862500*y^372 + 22689833252410108141157349018929908236129960743686993022375432056799232068119475658054844786772357206387987957320088425000*y^371 - 162291587499265596915229420541344246351288477773359020181844599343920561334799788323928499729820227751708821250763162199500*y^370 + 1132044536344588586942568834222643971249708717353935901350913194433851447039018200633506207612272591363398399675406999200000*y^369 - 7704330158282716648797220169124748178756617878610612215767653967969651230481606811677303954917218952473230170223857150950000*y^368 + 51180264103251398337241478943667945667053499694966410305290300746348800272245660509180564147379236528963856008190091918300000*y^367 - 332009632291076415253503759274416478808929246181147385329941357116620557314195823462560368704246291878171408728494875860550000*y^366 + 2104049645603108705893656481240652727294549090209686684806558772530403680916746967582788054951140226491057120433030321234398400*y^365 - 13031302952123325978244082844787979278210018403730808370266865700909457186673291456465797059793543823573006486844842770088610000*y^364 + 78905795836823885675428358382490298769987935127824564181395511874928338557322023750170308367565314942736827157258855120261060000*y^363 - 467278099509230327663738906028362621492091066469733094846553563208458401883892995750578560742958590559721440882966426556287990000*y^362 + 2707307770132887561693512209011356721134848333402971922865966227711917807652324331181560734818544939580238966814699911817656240000*y^361 - 15351118720231788860550116627167375274673260466640659633943681532901248696107783080105303295899639338970353992083493626246468874800*y^360 + 85216118641955214725298100656181808627812170119234859488067790443283891488541016302216068833187412964041559168151506600134596420000*y^359 - 463251458251040572610606860917911605061836314980733225417565816998134145188441805322999643817225958419783112813986806755833133170000*y^358 + 2466915811484243103367910504793422448591631383900104721696246365569509484451769884194689110685917274181346718406328661263652303480000*y^357 - 12872381737900474189964750686290911585564378596651474833040702029139814796535399330501510752336023963673653541735632019893116968630000*y^356 + 65834074037555213913521130552196560773945593746705401991179432687623233083351185984390261751947281995622212310916094353008290614773600*y^355 - 330100229990566397447740132006070325914557708758197990210009867289636267578950155712691284208210241644715895061796800781326880907410000*y^354 + 1623141110786109541612720554051232029316505637655224111963831759035067923411144108433564161626188127791179099103094421679762113484960000*y^353 - 7828713477118122766114492141989796474732328936596551036775770252283181368151720900701009612345574312789354494091264260842608040054015000*y^352 + 37046988847558979813436385891296444286411391349535245789414684869066564821937345914713324689760680722345064999104244835497355995811165000*y^351 - 172046216208063902253598576079180687266094501427241681446041796531945127033077034427928679859248601274570481855840113016049721244547050260*y^350 + 784269024131575485657195905544585055263520128933766456187999853948694900515459260872297967579278593984106129845585302886394926225468450000*y^349 - 3510004157537915315826644790679490268562514538272751049479926778152352957783868988303532561968832585384948479821439009328280877790095137500*y^348 + 15426405795614170618430512433150782285599551096670510884695131657972182197576637970970907815155781252532662194922974700092390242004747675000*y^347 - 66592525546209299227813947425990050748580218500115865848445822800492381884060096031259562223428820478544174966346940169926348577983048112500*y^346 + 282407457405406691085540092736240042959279157677344369222957655815123303645461647831779682181146421454682410904902203910690555526406288012000*y^345 - 1176794095047300441583313254922651096142345081584168161548743671003282600250444612187986290287675116424430984680904921512059093051916146512500*y^344 + 4819252008288944665531663805873714012773413191249450566342474081251538267692296983246039093559050476785764984883705869049384857260228028575000*y^343 - 19399583737123714249029347145177536832881328699326224964625983445153342320147727089611619116542137862152230842579009698533771079459891718487500*y^342 + 76774194750103931194621016220417275829391337450642550918102925052183299415837069750216958526367759985177553335313871147435068363286939311050000*y^341 - 298760004676375027308762276885028497953973796335871018437422406111890234679722677191520745550196046709378580196726695993377618382640246069600100*y^340 + 1143368128438541286005432405715875248341166601409597982375789832426345953245639495850176428786264951309762770043364858909603833741978274431865000*y^339 - 4304038996052114359918474533942596401876294209893941594226485271368690516615251942209238258073432857326088078994793613779789333571634270512727500*y^338 + 15938993077368067421893935366054481630687285382633943945384728838777821260343722326044894202004878949385631817761134807113285128478930473590160000*y^337 - 58077285693563973514849289280795034992406704148695465056271307585810431527998209751836050419066828176071011293777848003661461134017242181855285000*y^336 + 208246076343609089510558108310719391142922188129591022762964461707688030899795371802702876905621116433123876913689406035815364519944809877147965200*y^335 - 734911441520887034117710334551856800080228280907544278047387890202613837146372555735309276726701267518758858147944704711668216439037876950569305000*y^334 + 2552946594041795228457830934382587293210654574590420421829012880431375453612990373794349108371346056975001473979398041094631228980494281697180180000*y^333 - 8730843884304860666810768232881428506491467428321477360021205720676890382241058202787257425744203841750151107067226447768796356071011780115421795000*y^332 + 29399242117111144981639021904592535696006227395668608702151681930393223462341275830015616070632834861171635277228528591062645304301266253112007270000*y^331 - 97484952176635461885462640512230172464215159226329160926767561070509950354931351380591175270788969813634045232452858209744303115806241549668481575400*y^330 + 318357587514000023970338162979079237141919866845013588380339387959112158506950479520980582279667095878270508923398745266854230858150021884122700840000*y^329 - 1024052471106587335304923966849336356058801741574524891050593382399595743675059274800614263668100728825425016981626514816015443814846112235965336165000*y^328 + 3244968047170665123104121038128644922534951973996784739559261432468888597833840871330942834942733418724546662095240204579634147512264661458307729110000*y^327 - 10130487376599975052927834132234594624605135963764209172280221317005564910153424977055403289662847257691139177842585044827279294392824869726065202835000*y^326 + 31162418194767841208965292440408201228836639776945247332823425409192913106186822760189297996263396405402322689421006221995872881787651640289656160351520*y^325 - 94462797658301987791726801379103343672068738300925297801217394042416789067475487864330433740877799950238522261803094257593309551274296749114367770025000*y^324 + 282205859634991831612543361126372272103633541237143095894497084853600513738531562479600167780999043221913280802053826080633451632922565897138817914650000*y^323 - 830983453441325877237776699417697875570236493446538471010514207082937277130500722897504280864246130777569331057380095170112106175765676158545509413475000*y^322 + 2412038668595648095446193227341408190294412177438245689831804742929408712142830758741135246742696795851482478005222319062076579415995923002255249435600000*y^321 - 6902159730914606035228940626304488154009908214721395750136793631321453726250558899133226850309011084470931323820799169655562622367661228220039026435930250*y^320 + 19473177924210487246727418694902944635137672079151273276248007110311311453371482787523210549461159799447768625199746873636383574078041082752461203110775000*y^319 - 54172757273371786329797267899511008950457069921028655615253768337642609969696567123132795839324761186228764620923798190157936551747739848021508406280837500*y^318 + 148613244893640543300413389540588625081882229026902277285597989854093021053802235128496407410371900062291902274306630301874074058010345097784878401367350000*y^317 - 402073789622581573468983789711222370486684246982738199948079793608892060125711781710804482380976449602746589841293916446756161430633473939758800761198412500*y^316 + 1072911570175102118714568299300524049956467652837493401105898258145683523997677127729631160984614490406618011292057188598366219213121501126360817675660119400*y^315 - 2824030186049273171460509200482791356187051060118867429441724698830514352201113017507440283886948810830940231210332150414599865952428495507440539051388297500*y^314 + 7332606850301965445761773184339456000203025267168252660245605795723056998686445677482201646717174360165433233302377182884441223078134202956361301923319060000*y^313 - 18783073914301950881555371133981817229297760672393060453658141134494844693641695348663721600576023031941072265752377001427194331670678661101714775112823677500*y^312 + 47471048542255091295506500679452438399447073596466062754261411355990186267531744514629212791166411907092227655567100717433359307695027098475716441281927365000*y^311 - 118380106950027281583642339989303652145054329059869332713553088208205204593604277542149549353971392347483355177574105448073216846848327023360134539333189743300*y^310 + 291305996830072629164119576330764925288251173054450394355265888428324463889738803501778521033464438639774025380487051936090287533002844174232974411377391870000*y^309 - 707413224672519194824422072257781518865882680869059337014391440611944264157048373074731060105267401650071459680354389291699290009520288327103992448019906807500*y^308 + 1695436255440254110795267087401747816840345679592801639417046731716357190462531424719822323567528314776247993486538822254662576345654487622903596811721977155000*y^307 - 4010560206211567101026436946960199706208743592198610557905065961674427833852109698356097065034311222268129472869653610873377184478497134345489922793309716242500*y^306 + 9364269577162125795111981063400125311045250016049787083876341197428553764311143526987279275306342888452941591258336371427030555091134173355836023604670936857600*y^305 - 21583276030221204768694710976942411867785215742006643861085894874051854226508392241922583144765019504191190500833247726639915286338696074346554846368340508360000*y^304 + 49109330561927173132352982166300839073046417336597861043658900830822370814299623271814420677338983558334127938246701333693649774573572491653217203476478686160000*y^303 - 110316830907424695691058057196461818628045047957752312891808230639102506131787927691321036004926716890298772596203887872578722911241736319452733329464437074440000*y^302 + 244668418120261381385798285973058525525113374417928018310840286313407271861443971819674072510314823751800949748251462454238244694210558397611202928995789447840000*y^301 - 535795468330546887683433226189870859766604073931851585837747665833745878156636333766614372528312905776009088534207137387830539851950779637620985289523504016630720*y^300 + 1158593591419415770276135738791382611074135207729468023810145165999623482347702832213587762069642138542286980742288527969302574354062636167154131493318613806000000*y^299 - 2473999067136090274560562780036632443557633234402186194019650024489128890158573497422526887909336512838060230690188814198432454633003996021361562663025988541000000*y^298 + 5217098301022245495951715793409441422949361597764628444981687365458100253902848135408161477031661406288421026334751872525279693180320930262018630572626623784000000*y^297 - 10865350734291701888982566400429344008237060454531438169867465462259844893426613569310905002088509229613680390384143272103735890643174060955355005682980822569000000*y^296 + 22349473984976965105880072175527206590502536555287039598222298449150080953665319030026634424634940340778241562322366567839142164211111932839692940503161908931760000*y^295 - 45406989156805817536051110824934751681806117657091437200245027840904090091813148167065131923328563364528796562569546401601562936930289395232158522372126467871000000*y^294 + 91123923632088125294191307730585781532088727584879744278990021742155648375379287106601698194256639106972465456624209160893238931450546636165560447627339123236000000*y^293 - 180641837584392539058389768323587734138077328079848895002778999833493150926568377956981131243258671560789970153864212831229472064827582969939629644465389192429000000*y^292 + 353754428862196939918580384348132237144803688932336833956223679310330340790240213389649558202350924708226982899696838917692035638758904860542456191012699864034000000*y^291 - 684390395876820237060136853371554811674544207131412813853349595964490403585112728420124501139008902088625283799686593383080280038118641566198703313983769770057060800*y^290 + 1308111483303858090278066814814637636418637799097773709128168613146826278066783267370809723712720920123258080750760336668929189066102527956484586989983807766133120000*y^289 - 2470269254792234857655193377243597883450123890569836172987525543489294560705128692600863911487350904249605175402880774662609580544202966657981925524528969439375020000*y^288 + 4609160926624535770990787642905737514242304332404694322769407416510513021803471828877221688506886443294995022398058030772917875893451876813063836649426003953955830000*y^287 - 8497601698597991505584170452724165446447858686665444330797753647303859305850554299571739091195042797920590514134913785307722149953832688484517512469705300670681455000*y^286 + 15480543164603779612980004558085567367704309579356837531755065591860223689816167692412796267187600774317089806802972762567611720196596252144426289383406989853395829600*y^285 - 27868223267641601429398339030152157683367275940152246900583150145544524288394737963642270454652444948389611058236455778221852353514864906659847079116591848871927365000*y^284 + 49577327483520458951496306311912190571952449134777752436694341633801983780639273640427527715343797020296070041925310664886803191058567893698115362720104612609294490000*y^283 - 87161504744197076275868259529173410497626314282997659519095296565650002893179039742338579161255655940950849530595452992373777945267714721446169383629312058093218935000*y^282 + 151443519583161138744154804574192415371453337909673311636938723177114935711567044566387613614648909392913591642048040489006800028979523236200514839182135021211312360000*y^281 - 260062177239750599921212500521571531062867926377111225705431996300256814602474297085946729823822099407497728758650273973066677160875392401719884093284432972535648058200*y^280 + 441387418675941878424153622011100743212331184342345639242826812189978359171393230348275600902755197181184211787293844714987718984829624464230458981855299479003155570000*y^279 - 740447502143165534695100537307967168633593753579184089609395784740584659607716349319478979606100202255501771656303918308178342531632346180857749693055635640733881545000*y^278 + 1227764465961450432980543411728357427318362017392952554172603526918778267790914379879293037287528258770541628594756646210578560744649835984081190983745053352489832780000*y^277 - 2012318888937286043566457855960467799821480692619420906417973547313258750402067179971589690637120461454303176530333207097147568581556590471354426229457439520154524955000*y^276 + 3260270208216939071519516239568575051471809861891662297629286181486021501690372530335269572550156516978535452967689977295887707476446074993278017934769798636601523340080*y^275 - 5221546283931850314496818018411388448253306289914236285805562004437738272430807069278221380171375847389524283076456420385749647981184989651837173466736069023132972425000*y^274 + 8266976854011279082251372406181122050250088398332976481390965629272316571446969372233919296017086209807033028893891277346018944293793786433244553441015141421962784800000*y^273 - 12939255550579819499392773054193246845361351594048572480733252687794872494681202396447675154828881925309604169221287717851405988010640475222889118905171760454228516450000*y^272 + 20021627899913177035960773065406032634027774053275650898846779681729335299273004446163807312146043618744750362706494402284217383662221055141936668613414605967305625700000*y^271 - 30628743717846745488141166274846301417230074478281788198795210266116261057695006622865813122138919498601324239408803480132926266281330299195548633970013133230853160378000*y^270 + 46324473617153757753108552139478288541617009319395483500749490497716196639687411350975945904543764786294206340604036429187142135181316386724438276157732344907895241800000*y^269 - 69271526684438649177413390067235390808082029546525213943361083224463368368378137122990759193384549886419382417791765409682295926633834136925662079569706827364935947550000*y^268 + 102417240485161545691395887774272711624946464577036873656921953798614430447265013748193443544748935685903583317569240365808241148336246725775505651806370879693517000700000*y^267 - 149718738872427077655896107931412086562995741311221159176676618083915867328154807275485187605066573767612850427326139616353728715079320761081571932179677105479201733450000*y^266 + 216408549953564029529488472385087115611659957554151520041638535059860882344816669353969231170734718550741231047860394409992951875562200091791265331706051013142465781059200*y^265 - 309298543387625691913571285223267570037485603091706373027602737684014995273829262904936708457571006156644632725061357904609382729032619662598016814016462383950230480530000*y^264 + 437115531999882456732767743895680524235485957381154774128663304687715408569898389960909152516983479183154772124151152596027908911832771674458113816406695488384336132380000*y^263 - 610856034203996790493262391989525701919565131131440136005428071279277789569354335858408666737736304953378914823699631224788889620614679350183831708858121902005740802270000*y^262 + 844140607150987653161112760627611474036431448563584388572560501346872805489381928420148554144420195111968911901467192037360652960327953172777298811683722021321761136520000*y^261 - 1153540133409728065688229301253677208105715044760425703798498247386442488116768044169379678046832867618144911844310167064255298242635749607395003048591420730427064703456400*y^260 + 1558838018121254142821931488180644875818533844270845545673646280251949308265902762391053618982206577862357988978797523059804457084642904874858112227826244230306844193860000*y^259 - 2083184238357813854863328232526205692315534871975142947535183597400836123185246196390414344766845017189238638755031074921006148877914508561224126623326480680164414730110000*y^258 + 2753090650820906336683880369164318137034449671715364013607055424590416926429913113409230049686449564163997988232034369417349011805752947530648956585583220687099028519840000*y^257 - 3598213186247577540419756086850740973174520638895087710295836810455620825205015421586518018211218316724659222090113905725077389913872126957620721339338683110578351469805625*y^256 + 4650866926224319832636672965592173430424792166979689840445128677357539701912051305705554269813402185068422272944711934615629442022008835471497214719396195895084802527246800*y^255 - 5945225915008957775005675142473978238261261078125477732901381660117997454821061329431159814508133203512783643521905814594611167450005181060119257090439578921493570013005000*y^254 + 7516172010249942811440347025385049929091531352758252920705069831178308596081786801488434512969146295642863350234984426121953160898586553013495813824189167554679910793780000*y^253 - 9397776761963842946069840852973774936902618530195518350240814136222776102496944403974206547657570956225577437061022620050574359494364270528292226657817982677008606934895000*y^252 + 11621427176440760405372149907195050028862377165996323634745369808334568912678662373430740698230516761143396993881894263216753405784207531507438235006062739048451222607470000*y^251 - 14213639332814855835428614181039938642572988858222558150219118841219086938510332009744346641610370936156255072444495696328446692732583131444406458043415060551113033497441672*y^250 + 17193641230965858416108547661779574493846456740483086744833694828977460369804920900160094161719614525761183374999389965075297204157089964005910942617959864217246133325400000*y^249 - 20570845002790932257499387801546254967756079243472991870128800764696304297474493807316805722604032725661396499290003191023905055128162179023973660364654462812168320272525000*y^248 + 24342364878953295198868564165392502986714249931836750356439286503509912430672535760422316083544159026433324024029697240506020672522972711557576696995999439510524223989350000*y^247 - 28490766648505998727131030541295853245550793463059711252080128012081801822391276219906419356068101074402730400857772598878685233662753864715450149110702283329547270291475000*y^246 + 32982252214270473820584628297217787757202330314883242202408054075162932933215312706338725466318837008485043193463586161525442670498999768094121113794036525642675898784484000*y^245 - 37765485081410504428588596896260660773184290355515935581920352397682607633121502361838093403158432510794097846987892552652622557355232334404578568965345964255077199320025000*y^244 + 42771246095646656082679438766422495893373805346652845408789879440537465664691344525791175933867058123527357060125822611550496252631047894089748567818538055411482780816650000*y^243 - 47913071959101240233640256979564530523654949050606023905480259778382616017970653201048114463345701976193319609297304606580679399802787827471339943680351986355112285327475000*y^242 + 53088972564212334292360874238052328569921866568592509532699832840720414715004255027745972013757206482134935907053702514431360891697351400191451784784754010922018820657600000*y^241 - 58184249907220427614563414334566350866716034286163852530945381083123843089199068171004162803934713609027457969942594772423570790612399578624112312033976473255986865087856800*y^240 + 63075356498888633967860681191903423343530124654076447209278941075276893421155323045782375044204615361631135494232177672653928015688603575153564126777038017793671573031720000*y^239 - 67634641988588958955567460241168625928182102757187656005562812688395113533850996944904231665046923052277453862459329099640378445536483693995671204734500885480651821331620000*y^238 + 71735751698132659638456133338805504160872801540027603477762823944662944103698596863954746636819312687884663054612435908460368206681942502350123557214253724457077824246480000*y^237 - 75259368892849667231245558503989232527831684770677098724812295104713498241923542145952334442694705023538499713979939092582498308681398772882660873311677653967740557067980000*y^236 + 78098942243984136945218795179458897187747036281173567981663368934196305409632997778693231033014817298185484242195352397352277677491221762043907368673508328571346087306289600*y^235 - 80166017709241402316035961666595257950543098699627446475015700156164338142413811645386226074522339850748782344747673076330223167326128963140644870687084445026190469510340000*y^234 + 81394804001535108666680289711760727876210528170805059081928877657025226219397469089368234444763332184451246819682493325814132167438424011625326735657763237868406755063840000*y^233 - 81745643673955518617829773719139006875676952861196460198661329715891714263446596111305166489783863788694571159422504072908158599194624115123711764690770838031632646249460000*y^232 + 81207134822348433514945519610317274287563138942479750974691228729621017858549055952469164075490162446213052245328811687711135156512182586038575323553150476779777358724760000*y^231 - 79796745336244661661419203770316699300524145765546906416047355215374485962016323817360475185906443761189516508330033971207761974827987452523122746253367205279418828334687200*y^230 + 77559873618831971469755248065246545312525229719999106109413544300054085524427755224649567373257425264432689661568845527726941488422751573800471467692383957800815595930320000*y^229 - 74567426107269475150500454391653089851433570021870798351885040679320691897265646740163486635641127662406426069926084694320645899050966548495523171314816371475120369940420000*y^228 + 70912091600370802781608174173560057140560971172734194402308147223956110224918666400384172406524967781682969247864847249843216167566885987537311659589476699314516006506280000*y^227 - 66703584970063643886365941614446540615503096426213587977954278393766272246266027468769856794534969342609917624431373733470304405971576347175671797786336664834900468825580000*y^226 + 62063199901035122788867641956870774257830436571908109366341739821998765961812339382404440324197027849629288501272101090585142176653226217199053132836241571473052656093713920*y^225 - 57118046374889163234191833443618799934603436799244619631163659440239374760339399382530264532658423045511248007142599580258740959370811104670267322022882663536636320439650000*y^224 + 51995351632746637383591669009213526397867702557159900381731941104791897203358287330285397758428968063851046392152231904899212622207509660305220925428902155596130820848650000*y^223 - 46817174780369988414824791082165164423828084230795682136648381549777496200540525764717368251935563621698863809056643669399867519771822694882022080990561925517974395218225000*y^222 + 41695829682643271857808224627545706916999849985275512588183556493369032861907903060128935703034649468931040156855410782114207710383152441605055071617848032933207405584100000*y^221 - 36730235420437573118378336058265263638702595123392701543590787492795084402898870968422671542036886668540161738175357316244242973964795196286634876725177039920252705464539000*y^220 + 32003326920239615008558143895702191316920069369464333187268088999872708896384721233319539550651839563027724559867634974082906700826655026118724825028460099082505152930150000*y^219 - 27580569381199375752846492425926368062928530886071914394681209937463065919156496939561064553373427887747848779519886322958656450060432384195969927330329640179355428098025000*y^218 + 23509537146046779722856443201767148534578376278254847851575772302510062054256564351219206540118894543613024570617146504027320063003613918884541326131033671785335223168600000*y^217 - 19820447530141197896347353554551453930406332075834669441961064872293461259636228259906775214204555633863586390624296765295134277014423152951258447740148176805992070361225000*y^216 + 16527487596296343994684435094232486793689521928165765290952463768859403416872479081098077490244617367623552409819181042242379875270445501679542393073738442501294224997025200*y^215 - 13630739351806686269852381433205409146002133965724659964117232812579330827487589980051943529232989285266320773197922710595350957251570515926948584049167044397949798478855000*y^214 + 11118496450774124048871361009152071756335492345583430160848287147080467501545680703293427464834309300323218376241209860341524594331360545413754183651502965420686239190580000*y^213 - 8969771314119035524973621685954800151227157699282254664803691826830717334003264437625348734816952890554926545327599338721010140128973575058558683478867261279877440711445000*y^212 + 7156812238920735899769864863452087547480380634331143811170383609810290774997865297040353520782302529347142395519261027995408703944555999949148300004604990739617852053570000*y^211 - 5647481267558102653915960029647639165515819059903909091969084822505583923750348014071030184773416939011655617147150206318978608169582157358246617873552523586888688783085400*y^210 + 4407380744877415551901710804946362148960178390225561980075283365916932685418583482900232596469243488428290721794589281653683310133738107661009113219477047255062478355360000*y^209 - 3401655275293139079460371417669373852008911373225233420658717519806428606213883029548904436391430471106478283536696312212782192471531286131619143473533114022040626584610000*y^208 + 2596432528967710022003568521699328833900521724490757876638054918499592849187408302747472951448531470699630767143951774539225055123197793279206882458059091862233908214340000*y^207 - 1959898284919440888305243958440713703092234299350237846259584400899295489518780657569334404448502444982285044395672613944123079538458797876641995470907753668201323525290000*y^206 + 1463026510665996571116778625980273532231638593354686258476144118636463643465169226751408372156958758930330132095222650910762817283342901941086345329920826292248960111700800*y^205 - 1080003423854940085662011914332385268252493176838703555967834759076146089376120996655190061920067014334430813756288907459564364816890175382818014656124761997867547336430000*y^204 + 788395472716488468518397767001259772920818051016932589327202732390003846636309536920704781700920748264952096964577849166968911727098748717971250776949891321800512759580000*y^203 - 569115766910738050102563943784970187494716865303186661365536876895391843831105329503559936197854727847374777567582936300769010117881281932586554127301786700223170310970000*y^202 + 406242862956881505796929449248470838258190045851793445170582700241691337076074255755737766332332067787831756415005962620979487763505530303113813128857443131158511675920000*y^201 - 286741328688472339126572225910240428185449443759250764055171058954315669106882086894009231301223502079732131138415022593240661235119915121623426564510517592413767159903440*y^200 + 200126555477716596263660124169626206159582247179823257994954675428751862860749641885824421622852807146658382983260066019849707729704016695717076050049216633454611362300000*y^199 - 138108097017869357068700515331973808100306596172064875082818998304192186512221003387715401143676595091597256291873672614498991851544332705970000045617681943829136561550000*y^198 + 94237406860048517662674053492482663637390781312024148917871930477950166105204775375439205400137357205890327350092350912664240143847043394396332169160819440273110832200000*y^197 - 63577976545991636916256125130202344988239670953660127865824555836151310694264865578635354328174860854658885232767784691078271603896806673616703552481785718266448061450000*y^196 + 42409029763172416829733922534402571193087795431467091352177983445391746079885393785506510476807734690371064331489112510953282522543380414270759647035402799858104375908000*y^195 - 27968356499363252457450358251159973421760447259988151513337511823446648794345279406754596812327720725153749218007525685665066551404442814141571325743481227923401157550000*y^194 + 18235634765583994320387742335443332341649158723218713547976397570363758127219103895511749441002362091628043181493213778526333827662664296687180519907806833386270240800000*y^193 - 11754607714297287445076170140038782915199344441379700934477779254121575125026159576145103999024294454569375087958501659976370686417738040084769599423943404209353334637500*y^192 + 7490595192656162231267686581385970862939298028463354671783895231497069563591838413519542712916005142328427505565178320343954992391857000861797829999401481216431593950000*y^191 - 4718812143471885498251931399375569153446040589580037536042387894256083752446591820222100697112068642995248681926919703980890102926435108542902394379272076974028520623800*y^190 + 2938624409241751047747843218227984723548828947952170212546882005600314365666510802498194468866906070695172892710962778618056766817511211481977892271588641838955814220000*y^189 - 1808993388677243457104311303450824507272267440520467327158570090194157341372783421417894528343858125954468250642274420214522666629085130678672818630305211588508955745000*y^188 + 1100772222437433254787368713217191833583631355588305758884556300309532274710936604870669285189817412978767339681564113848521814030982846194002430024970410203871759730000*y^187 - 662081128013912817636230433016651114818496776513518458864240218284967538757089845522413401354132795771776317680940767072481578477244436696345688472782949218504733355000*y^186 + 393607619606109016096970271059675830797854158841033206473086264670658962641582719913865320814433447751888454337416630878154970838081674986386851600646709363837737601600*y^185 - 231280592406892826016888587420369938692273847568577177010759680504180961602990975669320214270197519235916952453345105312015819609474163203110568857664021418262928115000*y^184 + 134314449933680740490682235995775419455358582665602950734343571756903283146866061242292236740295600958186555014360206250543198800904347275671146263297628417389550490000*y^183 - 77090020207891702655348652122368955669574412665615955712002740012999787966598430990335111777155464597493339680576169880016292874008652274266849712361481348178188685000*y^182 + 43726935955857540364359824776592335812576278270736122208649804648257706618254726970576822149841405333384804091376538348149204797780230019289483814746475608174736860000*y^181 - 24510860010622651053885007216968814998865156833981659425278853853778687508875598846320260756380367892668725527438040207398718556977944065895341624857061067267876730200*y^180 + 13577173663681707098307668991503415182592668069197302115129371749323484700967924746801773073082582347515580374539582919541947122272604183835597813219752603306228470000*y^179 - 7431624640119335765586269963561498126896299682023299273229325441227624928413463004987430475289193310256536918136194690066446238097869037333423152350479006375198445000*y^178 + 4019421160339907564998280749413311810359523618554309705200041562287665725893090754062422635640435369626476217604687362162890164953279403375699404243301374003050880000*y^177 - 2147978515197812432331598349326308391619240476927594329193413234087686331598297524262295512232820147247849916687328052825684861591497901019454804773325684343252680000*y^176 + 1134132656024444964271083928444290830774958971817769805814122187598298383083901092810492030458929037746864756010909211891961606920310891738272136920315961333237415040*y^175 - 591623786200570744346591332444290120742171686662701256788856842984517983735401736186138054234966201667207195539148161638209094085510582266769280181521239427781000000*y^174 + 304898361703136539913582730349639412533633409244600447056713687580231214280681886493864105913477064137287117253921099113982692733697423278742033850773951700516000000*y^173 - 155228544326754771576732867238730430168034867339359099265953932386346540546430994896711032389053460804319374295295891186870459342529128862770402390434943971559000000*y^172 + 78068156795911756465491383523572029207315781234999313081123030322957909280661202111796191727828056310944246721610799076437774874020497556714939213902954278094000000*y^171 - 38782910738636498271968360539885446730577931081233392243973988485289846360772171257987395030984161179585772122853518455956158461425164824633584808520192724322760000*y^170 + 19030436789055288515614435825604058144604555589001808865566685069993574487895133825538626512533720307489049677832582299069265228582127349365592199302735641896000000*y^169 - 9223084496450041144628926134777405372714049967476753858092625878220570091721106525096571182609544271831315742984650631785762314729495930284640079048036352761000000*y^168 + 4414680970099131148617052146412673462156734753603901112681770702381798857887753905580317440700492699555341010453151297192412404075659825235723027985519428654000000*y^167 - 2086864360448224791039545698184478317537147151271752645296586774902936272421464739950980366619415659181589200252676324474828130914847760325175212750013647759000000*y^166 + 974173578782812523060787683981583381393825588967002883341359392424992505739338788666571586415114374138198342789467522523328254276274144795674518708224552757510400*y^165 - 449056060086577291445885878523723269408897107925587399460749549880095053843259972669035950156126597251781011428193232919059217396081573644396171229437394047560000*y^164 + 204390692846885019010426584498966068869138677811295696278074145110484397863803399771650017628759929453191590945113951763918860853957082015182364819007730039760000*y^163 - 91852636791752675673475022199933050858846076870303406766843499702093693560078925008393638674282172951699017069683645087093678282072792993647684028724524950040000*y^162 + 40753514988740659935920448055841572719296307984906954868137341873986109843841933177294815378935192107292682684803150986947417683521513084480451386931524935040000*y^161 - 17850638881465302296932213902106488874180007843094906628639275407598180613218117348319501118552716131113419908336203708032776995642474517959562419996403973384800*y^160 + 7718436623275091401975406954527176793080978234042608998232391096052672434960663947779658502518863107006588796843484307718574958807673730249810794809765868995000*y^159 - 3294297027975683620342702505267953036518899516677152552538185738208364920708842704993578818577412611622203379749160876153046904671619795571084836843029411307500*y^158 + 1387791549039082242075936294620361196246445004507453985990016329353368365352680884758071124282944966294407704341077400648683957470906043342344138050892556030000*y^157 - 577009955259566938536621468501322832782497515857853665742161279002258072704674937705445916662439176536475473349810891334948069536524864422038391622535987742500*y^156 + 236760213900054563167284679978607304290108658119738665427106176416410409187208555084299098707942784694966710355148210896146433693696654046720269078666379486600*y^155 - 95866857770398268785081309813699404819662596678577568289449993063071090449366055480842111545797104565621316888840054046245290549955541737830829956095320847500*y^154 + 38302738962498095915328599959492333173469943331938789944714640744852232316445810122765236205096203829840617953691121728400553146936285897148594835524189460000*y^153 - 15099381211477073582391019780909537684628598083050415017479438250403400267031957217446902075147865623235398697523974067387040150154315825824612417776308327500*y^152 + 5872486612049481959196025754646334343329364456141221012216566592270076202590393956936001649937098851661690282119498643908505681516970513836664432199575665000*y^151 - 2253114297367714449300593428531100504908582070958736142322386342105935400395121968232225438067690429853897823713320096056569060347555152365357717118886250740*y^150 + 852720251817018639034891795629169591099276658030505175728813522016173765098824986715531653908648040768241089864757567766274812161611931308481751949924150000*y^149 - 318313504265432785312371922191666176695653152713027174996855153944239781581454787403603791547891164322611709601048660849284334299927563486471665224550337500*y^148 + 117190046346477741856296130558125856096907130849572193779936723342655441975261961531675027734049483382454062241182094044015128050719600487556732470729975000*y^147 - 42547559985090037203466072353931776291841899953762028596733659371159646257708924720684275104644588876875604050950131867739769589937637708205720025974912500*y^146 + 15232352509604647801884558623568525581263245715247218207198441117399070292415026536018155807578507220901365680156246443377793373501045469175258541099984000*y^145 - 5376836198744465546098805735948555757531293812206089350250064739446806920818393566360447320863928274085596357219974752909212374948157578359193993533525000*y^144 + 1871165538518230296996951728758732279256056999229268445212486536228711910741407222188785863204805972799841430772562172341091595724451382678682895322650000*y^143 - 641918962409171560639799335519846787954039674785895915309313791603612436179899258316273621079314725075197110556784407211581724488971752005463649200225000*y^142 + 217063449938225844287372224445599172693264334819147492819818692693213047218879844454206103064144731800548093707973067655746328330587745721369185514100000*y^141 - 72341327952139631377955143165233324281227913767908609879768666128483548282219409979010870348468598798255391957584478729633276332721334164958130372244600*y^140 + 23759272552313610555787582209413509695117081468972174029952173736286432810863428363453679657770418748254038647314264205853906834331373435472642130390000*y^139 - 7689163416121793443877156372957006446876299242731511665477380350850192547041057716849408021929520492195121438443069180416959175626888002151207445065000*y^138 + 2451746062211391576496460300194031567790415848441198279303610433774214627192842643318258967030197365363061354525353991676299748695397991338661534760000*y^137 - 770144458030191234457656291324390213380085560235363754243615137048146324623431674723548614485371136352580863498516082299963543767142332352032121885000*y^136 + 238296549765108906831130899029895977134748166997693504487654038172357656423165525597000650661928592877772110568218097846041629838637479343634066073200*y^135 - 72620515975849171559123255600150218771478069163927682689643333723583260940559420147277379995369166709312024453452559430162205938236709923731898555000*y^134 + 21794286989392584521662970325688979429738099144381432206970227814020508322586701679138116280805080266624437349972324666610830001620871511265564180000*y^133 - 6440387998605437962700437129919708853326878585898560609614100675633697167069134806617562523391350280096026445720754149125092418564428756099704545000*y^132 + 1873743675328063125155078257559695963563330120787173960823111109371549783258690332943460293333726895811186707033691079188528124356020235889237770000*y^131 - 536634119808531115277207432954546123329837946333946097119946882092888387318703458106965105872177492346896144354507315553831900878319317760342833400*y^130 + 151271069713468954271235358126721951608129089875671908983776429060715542584553476562921805742685691993487285230305092474653108069998398241111440000*y^129 - 41964380211508115009205126705940314918293868546465930543708231395844732536998706436540073016215970358929358770199237734352946002323434137499093125*y^128 + 11454843942248934280727908602146437667985727897198049282272063163170215705637442176903327017549766187214313155120001901240699171237892782939385000*y^127 - 3076204726513218221871758615378426263394091094268680285915815501528026017065649119787379439353522369000076024164291168018696028877227262161922500*y^126 + 812627212719740074279833393127277514434808726033569170149788944624341438328845681960936427896533247049509738135096613101987122000781469309312272*y^125 - 211129035562785810785207794606147508530826177989267015024783043893504073393551941813096635947511339959238271672113145655446437999039083105387500*y^124 + 53940306000783010350959648159761931681670035895687552340667368603597098158459533858920111689897651616715958928146514771532924464839698924575000*y^123 - 13549208515107442789158694142743310708043284627857061838159578769420308408348015288962224664678314045389486801763205844950319721641460768862500*y^122 + 3345596435506374809129419501598280802255923207148378905560064651447348880050850798286506478173225124380200485373812338844201057932720284300000*y^121 - 811921440040544236870927766616690123507927578322365061516003260468479497980702237516366586270795961682211931351593836243235347138418078034500*y^120 + 193621965033516113721206939574727374445451727739832685576153400747650118755334396863998391002574553660304912087025557132727030319177602075000*y^119 - 45364091619306078005045659443248486890703764665632773533806870214545315445416045558702584846263187242617235437612476448576774694708876637500*y^118 + 10440012366010209657330533223559509516750043242042028762555679647837767771869969298543840440727809741144974965622741668771296969837206050000*y^117 - 2359568012257929693916908370991898140404901077567969769048378870931849312757717948658896471423864045693560683759562678511653700454211112500*y^116 + 523618918894107528597908709806202091679418047822039900053170685097224299665886626519782938702060960400866683909078604831455673352969283400*y^115 - 114065728820115806267685714454781157408161389155147993614776792886336528530701828211091026018473674855641384339347280151399753987102797500*y^114 + 24386788884474152333383196760888569549608670669752088185354611759324600368047838557935888349961435027450024618762168316961044514150560000*y^113 - 5115792965245505965975806746250758092399343661538340281457434026244455151465480984616501330839682224198984124851717239758535946965990000*y^112 + 1052752084834779321590090150722062120484265125228847644453544982166948096603138334435069500988346176056120962629514121410718160731740000*y^111 - 212464511666655463084545466782088900679551688909821979153351805491874979496269736585986753835829864622235321548865577230163119711314800*y^110 + 42041907327454759739701387562564812151017603489980963674885228645630954748317451024390255301207564505209363861081513753045409548920000*y^109 - 8154527265739581369466148613067146427289003741225346163384814375076989684715572672754666782545115434099451652509808630288184003170000*y^108 + 1549944131344603037332684637463666865533994399655163501864379088647962840910861367342372640061372832843760321377638101108301510980000*y^107 - 288609307476055868739453001278955370730043104460427495813361667633386009852700234457505365199191332585763393786475385560833208630000*y^106 + 52632407040794704664743257007431000941736893028482261602092622398518566958083827703218182728798763447898356544286263861416464713600*y^105 - 9397481779018965478570749110125959387785387003446854463025132771192330082331625803428302166052833876812175644424102578520902910000*y^104 + 1642278369148945423439548388177352126020747243320809517810217377489921761960866645259314941640301065850671471841105304984235460000*y^103 - 280811802831049710786083275420039004446133533837258007822025204025480263689293084522664920955158914943269296647891807927987890000*y^102 + 46964299748246442139414318371315093636321254445128853928486525892386558573753248417361882472919306453273013477341809587250040000*y^101 - 7679781206451346776511846156528382454625104179265356399543939519735973435346126431677176400571661826692358489580560672505554160*y^100 + 1227429549682161292755377534287236679233011152548484273037965017219021454313087589770677726724789321488997329238678025908700000*y^99 - 191664866590747583569057375227817714896006473347476250837158575243979690815450585784380275939675304144180970969446568714450000*y^98 + 29228798951010718832550278579772240513220983292048508200025738765080738688837436151518019127933366747527306212808035376800000*y^97 - 4351296186574512381060498956543287764491067882329191120817572591105116499556226208685039485509672773053062598752345653175000*y^96 + 632083024997139693248788269476814433157649860801503552287184229023690607303957070314247841052984044927708040660867052777000*y^95 - 89552426985576065110312515808755276123449100381998663950013673330558671247577930522748376764814303442233441831550561762500*y^94 + 12368558004820096349971701241735518000620633112266963003314517895384714628998274248383332875818872605258716203008519450000*y^93 - 1664485915374732982350815495547864331823997570869416645923231830113187299817071568154696061731042924634190540309296987500*y^92 + 218137755291275547544551318504848316991179168831889361004184228447882096272322769615715153389253488698497905567600175000*y^91 - 27824682563820480953460545960396207545097076202112109603644832695352071835625171057648999565651445002875066176845000100*y^90 + 3452431833933746861255185960482055116921123400000123890987847166997568711940808430672654526654208382517068940395740000*y^89 - 416436992479289524444563193940548141188254772080915694523867720206024499553327288812370859814316002770251122189102500*y^88 + 48800297969257925768945168227403735076167786579709212310338297461765696891867341385918424278773223761694692760035000*y^87 - 5551995446491880365103361013784287241471128331097899004275782127992640782318547109679487091021807001091935251097500*y^86 + 612797786179638560084135675532126677347401544138292168172471353592342811481576536597778682132032601617847826645200*y^85 - 65568746003611880170130327820028660088782894324968321116138047652755713715929010084102703903855452086501844492500*y^84 + 6795773645896194286757592402888730338712583328208358437642991148797732558161317056183674058259949599326798805000*y^83 - 681667912404221641816049424723951966517753084888401587955180281130776733201635077158393146032886616588152857500*y^82 + 66115790720362149335599678068886299997877729531572623892747581048538410139760865027856273201385912690445520000*y^81 - 6194654869359304364988462374290055943831006673648464872936163284062684621676848212124891865995523386780175400*y^80 + 560095376976428966092989364764019524758680531071289771513215486804944360006948301277114996925454194103090000*y^79 - 48816043089591370361372541834983212783311918766047510710521824555661855313700013628009984705022276447165000*y^78 + 4096451168357317792562730783355234639159042134213777122561271990684910935415385758993844870351519701860000*y^77 - 330558996235633585263853334055097532014114601654651554021304318763931448328232688749736201112436324335000*y^76 + 25615081433788704489465654435014616598427076583121234146905777799118766348885795802724656211693104975920*y^75 - 1903316069127122965750499408165665614728175025495455101270045707115308191494050373706456780412323525000*y^74 + 135395711718728285955815386882248743561533239016259242964655979165136078991165323387914253064659400000*y^73 - 9205110138311661488492631785523794964359179960653517530679356536210863161085462340796405527031225000*y^72 + 596990438056242703806597148225912677020346423913985087151822009226908256107082064683160266738350000*y^71 - 36857670523472375626320345673078087016038779215559079293721184917487379290089414428264677337759000*y^70 + 2161378015115243607139502552664376385291710266473264262847015953944974910200434790968021624900000*y^69 - 120086734099681487072380396954695602691872866559859698618089418359970423261263350184737936525000*y^68 + 6304090004203557221504271996592357938533727426199531270738610742520320727045219618550318850000*y^67 - 311728684326988437756940427373391321176952137641801950046508536760034961713315322806668975000*y^66 + 14469691896672518253684795222254999347818086037351334472488484167850414047000482676212854400*y^65 - 628024821904189160316180348188151013360159984260040558701757125340729776345507060599516250*y^64 + 25374740278957137790552741340935394479198383202425881159666954559221405104868972145435000*y^63 - 949552786642871966118189489090107286779835321337238265090342492186892569719806642927500*y^62 + 32715905958242879632857876256508281067157427020232715996444142548256370837803840990000*y^61 - 1030627835585961137729935913996105943477118945097471945240094819243193654092318183300*y^60 + 29440901797351775025612338049784020476398370170371508624264753930009340718691245000*y^59 - 755004291238954531952098498234101944990221895125435674658774477776246494814307500*y^58 + 17167597330925948388992144623180598964787952530540142754173838953649827187780000*y^57 - 340721813322694658138075293705185982239872316936207568589104742464498659367500*y^56 + 5781945923051788138100671650754671213767530226796249648784807750912704522600*y^55 - 81565360051258938031070314145764572883249759534675728604484566097311672500*y^54 + 918279879655578578896653177081473352589489630954339486008999597467910000*y^53 - 7735033951326392988163162489719975792632382460359185117367606272377500*y^52 + 43333523536842537748813235236526475028752842915177507660322724215000*y^51 - 121096421938573667133669862852758916518706574721865911817888160820*y^50)*(y - 1)^349*y^58"
      ]
     },
     "execution_count": 39,
     "metadata": {
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "var('x y')\n",
    "f_2d.integrate(x,0,y)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "Worse, the expression has lots of large (more than 100 digits) numbers, so SageMath encounters errors and thinks that the integral is sometimes negative, which is riduculous. \n",
    "\n",
    "\n",
    "\n",
    "*Where* are we integrating? The placebo proportion is represented by $y$, the hydroxychloroquine proportion by $x$. We want to know the chance that the hydroxychloroquine \n",
    "proportion is at least $10\\%$ better than the placebo proportion. That is, we need $x \\leq 0.9y$.\n",
    "\n",
    "\n",
    "(Of course, we are assuming that our prior knowledge is uniform.)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
   ],
   "source": [
    "def inner1(y):\n",
    "    '''For constant y, this function does the integral with\n",
    "    respect to x, from x=0 to x=0.9y'''\n",
    "    return numerical_integral(f_2d, 0, 0.9*y, params = [y])[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
   ],
   "source": [
    "def inner2(y):\n",
    "    '''For constant y, this function does the integral with\n",
    "    respect to x, from x=0 to x=1'''\n",
    "    return numerical_integral(f_2d, 0, 1, params = [y])[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
   ],
   "source": [
    "def inner3(y):\n",
    "    '''For constant y, this function does the integral with\n",
    "    respect to x, from x=0 to x=y'''\n",
    "    return numerical_integral(f_2d, 0, y, params = [y])[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.6683714444990453\n"
     ]
    }
   ],
   "source": [
    "part_volume =  numerical_integral(inner1, 0, 1)[0]\n",
    "total_volume = numerical_integral(inner2, 0, 1)[0]\n",
    "print(part_volume/total_volume)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.8470851993226352\n"
     ]
    }
   ],
   "source": [
    "part_volume =  numerical_integral(inner3, 0, 1)[0]\n",
    "total_volume = numerical_integral(inner2, 0, 1)[0]\n",
    "print(part_volume/total_volume)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "So there's an 85% chance that hydroxychloroquine is better than the placebo, and a 67% chance that it reduces cases by at least 10%.\n",
    "\n",
    "Before I figured out how to use SageMath's built-in numerical integration, I did it\n",
    "using Monte Carlo integration, which was much slower and less accurate.\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.6894516820972163\n",
      "0.6249901715346099\n",
      "0.6759584915783055\n",
      "0.6472110465519125\n",
      "0.6981347683159699\n",
      "0.687890644602133\n",
      "0.6761077587198506\n",
      "0.6821597024531272\n",
      "0.6786683281125644\n",
      "0.639106862842741\n"
     ]
    }
   ],
   "source": [
    "#This takes a long time---1 minute? 2 minutes?\n",
    "import random\n",
    "for j in range(10): #Do it ten times to make sure the results don't jump around\n",
    "    total_volume = 0\n",
    "    effective_volume = 0\n",
    "    for i in range(100000):\n",
    "        x = random.random()\n",
    "        y = random.random()\n",
    "        value = f_2d(x,y)\n",
    "        total_volume += value\n",
    "        if x <= 0.9*y:\n",
    "            effective_volume += value\n",
    "    print(effective_volume/total_volume)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "When I analyze Horby et al. later on, I have to use my own integration method because\n",
    "SageMath won't cooperate. Let's check that my method gives the right answers for this problem."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
   ],
   "source": [
    "part_volume =  0\n",
    "total_volume = 0\n",
    "density = 100\n",
    "for x in range(density):\n",
    "    xx = x / density\n",
    "    for y in range(density):\n",
    "        yy = y / density\n",
    "        value = f_2d(xx, yy)\n",
    "        if 0.9 * yy >= xx:\n",
    "            part_volume+= value\n",
    "        total_volume += value"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.0384530013381997 0.0590597684857099 0.651086218658371\n"
     ]
    }
   ],
   "source": [
    "print(n(part_volume), n(total_volume), n(part_volume/total_volume))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
   ],
   "source": [
    "part_volume =  0\n",
    "total_volume = 0\n",
    "density = 300\n",
    "for x in range(density):\n",
    "    xx = x / density\n",
    "    for y in range(density):\n",
    "        yy = y / density\n",
    "        value = f_2d(xx, yy)\n",
    "        if 0.9 * yy >= xx:\n",
    "            part_volume+= value\n",
    "        total_volume += value"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {
    "collapsed": false,
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.356537055127285 0.531537916371368 0.670765046379466\n"
     ]
    }
   ],
   "source": [
    "print(n(part_volume), n(total_volume), n(part_volume/total_volume))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "Let's look at the participants who took the drug completely: \n",
    "43/312 in the experimental group got infected, versus 50/336 in the control group.\n",
    "\n",
    "(See the paper's supplemental appendix.)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.926153846153846"
      ]
     },
     "execution_count": 50,
     "metadata": {
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "n(43/312 / (50/336))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left( x, y \\right) \\ {\\mapsto} \\ -{\\left(x - 1\\right)}^{269} x^{43} {\\left(y - 1\\right)}^{286} y^{50} {336 \\choose 50} {312 \\choose 43}</script></html>"
      ],
      "text/plain": [
       "(x, y) |--> -(x - 1)^269*x^43*(y - 1)^286*y^50*binomial(336, 50)*binomial(312, 43)"
      ]
     },
     "execution_count": 51,
     "metadata": {
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "var('x y')\n",
    "f_2d(x,y) = x^43 * (1-x)^(312-43) * binomial(312,43,hold=True) * y^50 * (1-y)^(336-50) * binomial(336,50,hold=True)\n",
    "show(f_2d)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
   ],
   "source": [
    "def inner1(y):\n",
    "    '''For constant y, this function does the integral with\n",
    "    respect to x, from x=0 to x=0.9y'''\n",
    "    return numerical_integral(f_2d, 0, 0.9*y, params = [y])[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
   ],
   "source": [
    "def inner2(y):\n",
    "    '''For constant y, this function does the integral with\n",
    "    respect to x, from x=0 to x=1'''\n",
    "    return numerical_integral(f_2d, 0, 1, params = [y])[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
   ],
   "source": [
    "def inner3(y):\n",
    "    '''For constant y, this function does the integral with\n",
    "    respect to x, from x=0 to x=y'''\n",
    "    return numerical_integral(f_2d, 0, y, params = [y])[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.43644423926443965\n"
     ]
    }
   ],
   "source": [
    "part_volume =  numerical_integral(inner1, 0, 1)[0]\n",
    "total_volume = numerical_integral(inner2, 0, 1)[0]\n",
    "print(part_volume/total_volume)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.6527656841888028\n"
     ]
    }
   ],
   "source": [
    "part_volume =  numerical_integral(inner3, 0, 1)[0]\n",
    "total_volume = numerical_integral(inner2, 0, 1)[0]\n",
    "print(part_volume/total_volume)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "What about the participants who took some of the drug? \n",
    "4/37 in the experimental group got infected, versus 3/15 in the control group."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.540540540540541"
      ]
     },
     "execution_count": 57,
     "metadata": {
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "n( 4/37/(3/15))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left( x, y \\right) \\ {\\mapsto} \\ -{\\left(x - 1\\right)}^{33} x^{4} {\\left(y - 1\\right)}^{12} y^{3} {37 \\choose 4} {15 \\choose 3}</script></html>"
      ],
      "text/plain": [
       "(x, y) |--> -(x - 1)^33*x^4*(y - 1)^12*y^3*binomial(37, 4)*binomial(15, 3)"
      ]
     },
     "execution_count": 58,
     "metadata": {
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "var('x y')\n",
    "f_2d(x,y) = x^4 * (1-x)^(37-4) * binomial(37,4,hold=True) * y^3 * (1-y)^(15-3) * binomial(15,3,hold=True)\n",
    "show(f_2d)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
   ],
   "source": [
    "def inner1(y):\n",
    "    '''For constant y, this function does the integral with\n",
    "    respect to x, from x=0 to x=0.9y'''\n",
    "    return numerical_integral(f_2d, 0, 0.9*y, params = [y])[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
   ],
   "source": [
    "def inner2(y):\n",
    "    '''For constant y, this function does the integral with\n",
    "    respect to x, from x=0 to x=1'''\n",
    "    return numerical_integral(f_2d, 0, 1, params = [y])[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
   ],
   "source": [
    "def inner3(y):\n",
    "    '''For constant y, this function does the integral with\n",
    "    respect to x, from x=0 to x=y'''\n",
    "    return numerical_integral(f_2d, 0, y, params = [y])[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.7860010827253943\n"
     ]
    }
   ],
   "source": [
    "part_volume =  numerical_integral(inner1, 0, 1)[0]\n",
    "total_volume = numerical_integral(inner2, 0, 1)[0]\n",
    "print(part_volume/total_volume)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.8296253815322459\n"
     ]
    }
   ],
   "source": [
    "part_volume =  numerical_integral(inner3, 0, 1)[0]\n",
    "total_volume = numerical_integral(inner2, 0, 1)[0]\n",
    "print(part_volume/total_volume)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "What about the participants who took none of the drug? \n",
    "2/65 in the experimental group got infected, versus 5/56 in the control group."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.344615384615385"
      ]
     },
     "execution_count": 64,
     "metadata": {
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "n( 2/65/(5/56))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left( x, y \\right) \\ {\\mapsto} \\ {\\left(x - 1\\right)}^{63} x^{2} {\\left(y - 1\\right)}^{51} y^{5} {65 \\choose 2} {56 \\choose 5}</script></html>"
      ],
      "text/plain": [
       "(x, y) |--> (x - 1)^63*x^2*(y - 1)^51*y^5*binomial(65, 2)*binomial(56, 5)"
      ]
     },
     "execution_count": 65,
     "metadata": {
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "var('x y')\n",
    "f_2d(x,y) = x^2 * (1-x)^(65-2) * binomial(65,2,hold=True) * y^5 * (1-y)^(56-5) * binomial(56,5,hold=True)\n",
    "show(f_2d)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
   ],
   "source": [
    "def inner1(y):\n",
    "    '''For constant y, this function does the integral with\n",
    "    respect to x, from x=0 to x=0.9y'''\n",
    "    return numerical_integral(f_2d, 0, 0.9*y, params = [y])[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
   ],
   "source": [
    "def inner2(y):\n",
    "    '''For constant y, this function does the integral with\n",
    "    respect to x, from x=0 to x=1'''\n",
    "    return numerical_integral(f_2d, 0, 1, params = [y])[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
   ],
   "source": [
    "def inner3(y):\n",
    "    '''For constant y, this function does the integral with\n",
    "    respect to x, from x=0 to x=y'''\n",
    "    return numerical_integral(f_2d, 0, y, params = [y])[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.8764540990473931\n"
     ]
    }
   ],
   "source": [
    "part_volume =  numerical_integral(inner1, 0, 1)[0]\n",
    "total_volume = numerical_integral(inner2, 0, 1)[0]\n",
    "print(part_volume/total_volume)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.9058717565052852\n"
     ]
    }
   ],
   "source": [
    "part_volume =  numerical_integral(inner3, 0, 1)[0]\n",
    "total_volume = numerical_integral(inner2, 0, 1)[0]\n",
    "print(part_volume/total_volume)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "Let's compare the percentage sick in the various subgroups of this study."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.137820512820513\n",
      "0.148809523809524\n"
     ]
    }
   ],
   "source": [
    "print(n(43/312))\n",
    "print(n(50/336))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.108108108108108\n",
      "0.200000000000000\n"
     ]
    }
   ],
   "source": [
    "print(n(4/37))\n",
    "print(n(3/15))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.0307692307692308\n",
      "0.0892857142857143\n"
     ]
    }
   ],
   "source": [
    "print(n(2/65))\n",
    "print(n(5/56))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "# [Skipper et al.](https://www.acpjournals.org/doi/full/10.7326/M20-4207)\n",
    "\n",
    "> At 14 days, 24% (49 of 201) of participants receiving hydroxychloroquine had ongoing symptoms compared with 30% (59 of 194) receiving placebo (P = 0.21).\n",
    "\n",
    "Same procedure as last time."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.801585293869635"
      ]
     },
     "execution_count": 74,
     "metadata": {
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "n( (49/201) / (59/194))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
   ],
   "source": [
    "ineffective_proportion = 59/194\n",
    "effective_proportion = ineffective_proportion * 0.9\n",
    "very_effective_proportion = ineffective_proportion * 0.5\n",
    "dangerous_proportion = ineffective_proportion * 1.1\n",
    "very_dangerous_proportion = ineffective_proportion * 1.5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
   ],
   "source": [
    "f(x) = x^49 * (1-x)^(201-49) * binomial(201,49, hold=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}x \\ {\\mapsto}\\ {\\left(x - 1\\right)}^{152} x^{49} {201 \\choose 49}</script></html>"
      ],
      "text/plain": [
       "x |--> (x - 1)^152*x^49*binomial(201, 49)"
      ]
     },
     "execution_count": 77,
     "metadata": {
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "show(f)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.000213115038855560\n",
      "0.0411358667778100\n",
      "0.0107795231338404\n",
      "0.00129091347725268\n",
      "2.42500308651183e-10\n"
     ]
    }
   ],
   "source": [
    "print(n(f(very_effective_proportion)))\n",
    "print(n(f(effective_proportion)))\n",
    "print(n(f(ineffective_proportion)))\n",
    "print(n(f(dangerous_proportion)))\n",
    "print(n(f(very_dangerous_proportion)))\n",
    "#The n() function makes the output a decimal instead of a huge fraction"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
   ],
   "source": [
    "total = f(very_effective_proportion) + f(effective_proportion) + f(ineffective_proportion) + f(dangerous_proportion) + f(very_dangerous_proportion)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "metadata": {
    "collapsed": false,
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.00398946757865432\n",
      "0.770054556971662\n",
      "0.201790348943686\n",
      "0.0241656219664439\n",
      "4.53955349360988e-9\n"
     ]
    }
   ],
   "source": [
    "print(n(f(very_effective_proportion)/total))\n",
    "print(n(f(effective_proportion)/total))\n",
    "print(n(f(ineffective_proportion)/total))\n",
    "print(n(f(dangerous_proportion)/total))\n",
    "print(n(f(very_dangerous_proportion)/total))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "So hydroxychloroquine is probably effective."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left( x, y \\right) \\ {\\mapsto} \\ -{\\left(x - 1\\right)}^{152} x^{49} {\\left(y - 1\\right)}^{135} y^{59} {201 \\choose 49} {194 \\choose 59}</script></html>"
      ],
      "text/plain": [
       "(x, y) |--> -(x - 1)^152*x^49*(y - 1)^135*y^59*binomial(201, 49)*binomial(194, 59)"
      ]
     },
     "execution_count": 81,
     "metadata": {
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "var('x y')\n",
    "f_2d(x,y) = x^49 * (1-x)^(201-49) * binomial(201,49, hold=True) * y^59 * (1-y)^(194-59) * binomial(194,59,hold=True)\n",
    "show(f_2d)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
   ],
   "source": [
    "def inner1(y):\n",
    "    '''For constant y, this function does the integral with\n",
    "    respect to x, from x=0 to x=0.9y'''\n",
    "    return numerical_integral(f_2d, 0, 0.9*y, params = [y])[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
   ],
   "source": [
    "def inner2(y):\n",
    "    '''For constant y, this function does the integral with\n",
    "    respect to x, from x=0 to x=1'''\n",
    "    return numerical_integral(f_2d, 0, 1, params = [y])[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
   ],
   "source": [
    "def inner3(y):\n",
    "    '''For constant y, this function does the integral with\n",
    "    respect to x, from x=0 to x=y'''\n",
    "    return numerical_integral(f_2d, 0, y, params = [y])[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.7559254454549569\n"
     ]
    }
   ],
   "source": [
    "part_volume =  numerical_integral(inner1, 0, 1)[0]\n",
    "total_volume = numerical_integral(inner2, 0, 1)[0]\n",
    "print(part_volume/total_volume)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "metadata": {
    "collapsed": false,
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.9100585108660569\n"
     ]
    }
   ],
   "source": [
    "part_volume =  numerical_integral(inner3, 0, 1)[0]\n",
    "total_volume = numerical_integral(inner2, 0, 1)[0]\n",
    "print(part_volume/total_volume)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "So there's a 91% chance that hydroxychloroquine is better than the placebo, and a 76% chance that it reduces cases by at least 10%.\n",
    "\n",
    "**The following is speculative. I might be comparing apples to oranges, and I'm not sure that\n",
    "a uniform prior is a reasonable choice.**\n",
    "\n",
    "Since Skipper et al. and Boulware et al. are kind of measuring the same thing, we can try to combine their statistics. That is, assume that the chance of developing symptoms in Boulware et al. is some fraction $z$ of the chance in Skipper. Then we can \"import\" Boulware's data into Skipper.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 87,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left( x, y, k \\right) \\ {\\mapsto} \\ -{\\left(k x - 1\\right)}^{365} {\\left(k y - 1\\right)}^{349} k^{107} {\\left(x - 1\\right)}^{152} x^{98} {\\left(y - 1\\right)}^{135} y^{117} {414 \\choose 49} {407 \\choose 58} {201 \\choose 49} {194 \\choose 59}</script></html>"
      ],
      "text/plain": [
       "(x, y, k) |--> -(k*x - 1)^365*(k*y - 1)^349*k^107*(x - 1)^152*x^98*(y - 1)^135*y^117*binomial(414, 49)*binomial(407, 58)*binomial(201, 49)*binomial(194, 59)"
      ]
     },
     "execution_count": 87,
     "metadata": {
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "var('x y k')\n",
    "f_3d(x,y,k) = x^49 * (1-x)^(201-49) * binomial(201,49, hold=True) * y^59 * (1-y)^(194-59) * binomial(194,59,hold=True)  * (k*x)^49 * (1-k*x)^(414-49) * binomial(414,49,hold=True) * (k*y)^58 * (1-k*y)^(407-58) * binomial(407,58,hold=True)\n",
    "show(f_3d)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 88,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
   ],
   "source": [
    "from scipy.integrate import tplquad"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 89,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "5.411877197980955e-09\n"
     ]
    }
   ],
   "source": [
    "#The ordering of the variables is weird\n",
    "gfun = lambda k: 0\n",
    "hfun = lambda k: 1\n",
    "qfun = lambda k,y: 0\n",
    "rfun = lambda k,y: 0.9*y \n",
    "effective_volume = tplquad( f_3d, 0, 1, gfun, hfun, qfun, rfun )[0]\n",
    "print(effective_volume)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 90,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "6.528422087537368e-09\n"
     ]
    }
   ],
   "source": [
    "gfun = lambda k: 0\n",
    "hfun = lambda k: 1\n",
    "qfun = lambda k,y: 0\n",
    "rfun = lambda k,y: y \n",
    "safe_volume = tplquad( f_3d, 0, 1, gfun, hfun, qfun, rfun )[0]\n",
    "print(safe_volume)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 91,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "6.843994100902817e-09\n"
     ]
    }
   ],
   "source": [
    "gfun = lambda k: 0\n",
    "hfun = lambda k: 1\n",
    "qfun = lambda k,y: 0\n",
    "rfun = lambda k,y: 1\n",
    "total_volume= tplquad( f_3d, 0, 1, gfun, hfun, qfun, rfun )[0]\n",
    "print(total_volume)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 92,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.9538906654925636\n",
      "0.7907483726888447\n"
     ]
    }
   ],
   "source": [
    "print(safe_volume/total_volume)\n",
    "print(effective_volume/total_volume)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "So it looks like a 95% chance that hydroxychloroquine does not make patients more sick,\n",
    "and a 79% chance that it reduces cases by at least 10%. **I don't trust these numbers.**\n",
    "Even if it was valid to compare the studies, I'm not sure that this statistical method is\n",
    "the right one. \n",
    "It gives probabilites that are lower than I expected.\n",
    "\n",
    "Let's do the integrals a slower way."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 93,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "6.09161669138185e-9\n",
      "6.76651578836300e-9\n",
      "6.84282719741760e-9\n",
      "0.988847970750541\n",
      "0.890219278616410\n"
     ]
    }
   ],
   "source": [
    "effective_volume =  0\n",
    "safe_volume =  0\n",
    "total_volume = 0\n",
    "density = 30\n",
    "for x in range(density):\n",
    "    xx = x / density\n",
    "    for y in range(density):\n",
    "        yy = y / density\n",
    "        for k in range(density):\n",
    "            kk = k / density\n",
    "            value = f_3d(xx, yy,kk)\n",
    "            if  yy >= xx:\n",
    "                safe_volume+= value\n",
    "            if  0.9 * yy >= xx:\n",
    "                effective_volume+= value\n",
    "            total_volume += value\n",
    "effective_volume = effective_volume / density ^ 3\n",
    "safe_volume = safe_volume / density ^ 3\n",
    "total_volume = total_volume / density ^ 3\n",
    "\n",
    "print(n(effective_volume))\n",
    "print(n(safe_volume))\n",
    "print(n(total_volume))\n",
    "\n",
    "print(n(safe_volume/total_volume))\n",
    "print(n(effective_volume/total_volume))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 94,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "5.06957969207133e-9\n",
      "6.72430911409873e-9\n",
      "6.84272611467702e-9\n",
      "0.982694470216440\n",
      "0.740871343834375\n"
     ]
    }
   ],
   "source": [
    "effective_volume =  0\n",
    "safe_volume =  0\n",
    "total_volume = 0\n",
    "density = 40\n",
    "for x in range(density):\n",
    "    xx = x / density\n",
    "    for y in range(density):\n",
    "        yy = y / density\n",
    "        for k in range(density):\n",
    "            kk = k / density\n",
    "            value = f_3d(xx, yy,kk)\n",
    "            if  yy >= xx:\n",
    "                safe_volume+= value\n",
    "            if  0.9 * yy >= xx:\n",
    "                effective_volume+= value\n",
    "            total_volume += value\n",
    "effective_volume = effective_volume / density ^ 3\n",
    "safe_volume = safe_volume / density ^ 3\n",
    "total_volume = total_volume / density ^ 3\n",
    "\n",
    "print(n(effective_volume))\n",
    "print(n(safe_volume))\n",
    "print(n(total_volume))\n",
    "\n",
    "print(n(safe_volume/total_volume))\n",
    "print(n(effective_volume/total_volume))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 95,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "5.36078489855872e-9\n",
      "6.69338517816548e-9\n",
      "6.84272621368508e-9\n",
      "0.978175213963562\n",
      "0.783428231840906\n"
     ]
    }
   ],
   "source": [
    "effective_volume =  0\n",
    "safe_volume =  0\n",
    "total_volume = 0\n",
    "density = 50\n",
    "for x in range(density):\n",
    "    xx = x / density\n",
    "    for y in range(density):\n",
    "        yy = y / density\n",
    "        for k in range(density):\n",
    "            kk = k / density\n",
    "            value = f_3d(xx, yy,kk)\n",
    "            if  yy >= xx:\n",
    "                safe_volume+= value\n",
    "            if  0.9 * yy >= xx:\n",
    "                effective_volume+= value\n",
    "            total_volume += value\n",
    "effective_volume = effective_volume / density ^ 3\n",
    "safe_volume = safe_volume / density ^ 3\n",
    "total_volume = total_volume / density ^ 3\n",
    "\n",
    "print(n(effective_volume))\n",
    "print(n(safe_volume))\n",
    "print(n(total_volume))\n",
    "\n",
    "print(n(safe_volume/total_volume))\n",
    "print(n(effective_volume/total_volume))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "What is the constant $k$?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 96,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
   ],
   "source": [
    "from scipy.integrate import dblquad"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 97,
   "metadata": {
    "collapsed": false,
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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6mn98r92628f+3X8fz/Q/3xwQn/peFuHOo/qt/+9d8QtARYuXDiK75iBenp69KMf/Uj33nuvzj333LDelxT+xxOp+wj3/Yzl52X69OlasWKFNm7cqDvuuEMPPvigiouL+00Q/6///qMSEhL03/v/r6pfbtLf/vaxzjv3C/r4Y79+9sJvtOO3r+hjf0BTvvRFPfdfr46Z93UsfPZQY+gapU8vntn1+2Y9+eSTmj59+qi8T2I2LE2fPl1Tp07VA6WPqeZlt04P8oYc7W3H//cD7T/coT+9eVi/a27VL3/XpL99HJn7psaxUU+oYHTDN76hJ5/8D/3kJz/p+2PyrW+tHPIbNhJ/9CP5R5mgdPZi4XnpvZLunHPOkTQwRP37v/+7brrpJh3u+CRAPfubl/WXtzt17bU2WS64UFU1dWcdquLpc4Yaw1vji3/Yo+/+aIt2/b5ZFRUVo9uzbtSaEESJ2+028vPzDJPJZEgyTCaTcd111xrXXXddWLfl5+cZFRUVUblvahwb9eTn5xlut7uvX02s9Uo6deqU8cADDxinTp2Kdin4jHh7XoK9Pz67LRKf4WPtc4Yaw1vjaPZX6pVgGEbvhQ4xraurS0lJSTp27JimTp0q6ZOJiV6vV1artW+C12hvi9T9UOPYrQfAyI2193UsfPZQY+Q+l+MmLHm9Xk2ePHnIlwMCAACEEjdhyfh/zSuH2mgKAAAglLgJSwAAAOEw5vssAQAARBNhCQAAIATCEkasoqJCM2bM0HnnnaevfvWrampqGnTfnTt36utf/7r+/u//XlarVddcc43+8z//M4LVji9DeW4+y+PxaMKECfrHf/zHMFc4Pg31eenp6dF9992nSy65ROeee65mzZqln/70pxGqdnwZ6nOzfft2zZ8/X+eff76Sk5O1Zs0avffeexGqFq+++qqysrI0bdo0JSQkqK6uLiz3Q1jCiDz33HNyOBy67777tHfvXmVkZOimm25SR0dH0P1fffVVff3rX9euXbvU0tKir33ta8rKytLevXsjXHn8G+pz0+vEiRNavXq1brjhhghVOr4M53lZsWKFXnrpJT311FP6y1/+omeffVZXXHFFBKseH4b63Ljdbq1evVq333679u/fr+rqajU3N8tut0e48vHro48+0vz587V169bw3tGod27CuLJw4UKjoKCg37YrrrjCuOeee876GKmpqcaDDz442qWNe8N9bm699Vbj3/7t34wHHnjAmD9/fjhLHJeG+ry8+OKLxuTJk4333nsvEuWNa0N9bkpLS42ZM2f22/b4448bF110UdhqxOAkGbW1tWE5NmeWMGynT59WS0uLvvGNb/Tb/o1vfEO///3vz+oYgUBA3d3duuCCC8JR4rg13Odm27ZtOnTokB544IFwlzguDed5ef7557VgwQJt3rxZKSkpmj17tr73ve/J5/NFouRxYzjPzaJFi3TkyBHt2rVLhmGoq6tLNTU1Wrp0aSRKRgRNiHYBiF3vvvuu/H5/X8f0XlOnTtWxY8fO6hiPPvqoPvroI61YsSIcJY5bw3lu3njjDd1zzz1qamrShAl8NITDcJ6Xw4cPy+1267zzzlNtba3effddFRYW6v3332fe0igaznOzaNEibd++XbfeeqtOnTqljz/+WMuWLdNPfvKTSJSMCOLMEkbs801ADcM4q8agzz77rDZt2qTnnntOU6ZMCVd549rZPjd+v1/f+ta39OCDD2r27NmRKm/cGsp7JhAIKCEhQdu3b9fChQt1880367HHHtPPfvYzzi6FwVCemwMHDmj9+vW6//771dLSosbGRrW3t6ugoCASpSKC+PqIYfu7v/s7mUymAd+6jh8/PuDb2ec999xzuv3221VdXa0lS5aEs8xxaajPTXd3t/bs2aO9e/equLhY0id/pA3D0IQJE/Sb3/xG119/fURqj2fDec8kJycrJSVFkydP7ts2Z84cGYahI0eO6PLLLw9rzePFcJ6bhx9+WIsXL9bGjRslSfPmzdPEiROVkZGhhx56SMnJyWGvG5HBmSUM2xe+8AV99atf1W9/+9t+23/7299q0aJFg/7es88+q9tuu02/+MUvGNsPk6E+N1arVa+//rpaW1v7bgUFBfryl7+s1tZWXX311ZEqPa4N5z2zePFivfPOO/rwww/7th08eFCJiYm66KKLwlrveDKc5+bkyZNKTOz/Z9RkMkn65IwU4khYpo1j3NixY4dxzjnnGE899ZRx4MABw+FwGBMnTjTeeustwzAM45577jFWrVrVt/8vfvELY8KECYbT6TSOHj3ad/vggw+i9RDi1lCfm8/jarjwGOrz0t3dbVx00UVGfn6+sX//fmP37t3G5Zdfbtjt9mg9hLg11Odm27ZtxoQJE4yKigrj0KFDhtvtNhYsWGAsXLgwWg9h3Onu7jb27t1r7N2715BkPPbYY8bevXuNv/71r6N6P4QljJjT6TQuueQS4wtf+IJx1VVXGbt37+772Xe+8x3j2muv7fv3tddea0gacPvOd74T+cLHgaE8N59HWAqfoT4vbW1txpIlSwyz2WxcdNFFxp133mmcPHkywlWPD0N9bh5//HEjNTXVMJvNRnJysrFy5UrjyJEjEa56/Hr55Zcj8jeFhXQBAABCYM4SAABACIQlAACAEAhLAAAAIRCWAAAAQiAsAQAAhEBYAgAACIGwBAAAEAJhCQAAIATCEgAAQAiEJQAAgBAISwAAACH8/53h0RT/ixjrAAAAAElFTkSuQmCC",
      "text/plain": [
       "Graphics object consisting of 1 graphics primitive"
      ]
     },
     "execution_count": 97,
     "metadata": {
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "density = 100\n",
    "points = [ (i/density, dblquad( f_3d, 0, 1, gfun, hfun, args = [i/density] )[0] ) for i in range(density+1)]\n",
    "scatter_plot(points)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "The constant $k$ is somewhere around 0.5, which makes sense because all the proportions \n",
    "from Boulware are half of their counterparts in Skipper, as you can see:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 98,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.485507246376812"
      ]
     },
     "execution_count": 98,
     "metadata": {
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "n(49/414 / (49/201))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 99,
   "metadata": {
    "collapsed": false,
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.468579519426977"
      ]
     },
     "execution_count": 99,
     "metadata": {
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "n( 58/407 / (59/194))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "Skipper et al. also looks at hospitalization/death rates:\n",
    "> The incidence of hospitalization or death was 3.2% (15 of 465) among participants with known vital status. With hydroxychloroquine, 4 hospitalizations and 1 nonhospitalized death occurred (n = 5 events). With placebo, 10 hospitalizations and 1 hospitalized death occurred (n = 10 events); of these hospitalizations, 2 were not COVID-19–related (nonstudy medicine overdose and syncope). The incidence of hospitalization or death did not differ between groups (P = 0.29).\n",
    "\n",
    "Based on the flow chart (Figure 1), the placebo group had 234 patients, and the hydroxychloroquine group had 231 patients. This does add up to 465. I'm going to decrease\n",
    "the placebo group's hospitalizations by 2 because those 2 patients were not hospitalized for\n",
    "COVID-19."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 100,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.0341880341880342"
      ]
     },
     "execution_count": 100,
     "metadata": {
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "n(8/234)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 101,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.0212765957446809"
      ]
     },
     "execution_count": 101,
     "metadata": {
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "n(5/235)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 102,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.622340425531915"
      ]
     },
     "execution_count": 102,
     "metadata": {
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "n(5/235 / (8/234))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 103,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1.60683760683761"
      ]
     },
     "execution_count": 103,
     "metadata": {
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "n(5/235 / (8/234)) ^ -1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 104,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left( x, y \\right) \\ {\\mapsto} \\ {\\left(x - 1\\right)}^{230} x^{5} {\\left(y - 1\\right)}^{226} y^{8} {235 \\choose 5} {234 \\choose 8}</script></html>"
      ],
      "text/plain": [
       "(x, y) |--> (x - 1)^230*x^5*(y - 1)^226*y^8*binomial(235, 5)*binomial(234, 8)"
      ]
     },
     "execution_count": 104,
     "metadata": {
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "var('x y')\n",
    "f_2d(x,y) = x^5 * (1-x)^(235-5) * binomial(235,5, hold=True) * y^8 * (1-y)^(234-8) * binomial(234,8,hold=True)\n",
    "show(f_2d)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 105,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
   ],
   "source": [
    "def inner1(y):\n",
    "    '''For constant y, this function does the integral with\n",
    "    respect to x, from x=0 to x=0.9y'''\n",
    "    return numerical_integral(f_2d, 0, 0.9*y, params = [y])[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 106,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
   ],
   "source": [
    "def inner2(y):\n",
    "    '''For constant y, this function does the integral with\n",
    "    respect to x, from x=0 to x=1'''\n",
    "    return numerical_integral(f_2d, 0, 1, params = [y])[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 107,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
   ],
   "source": [
    "def inner3(y):\n",
    "    '''For constant y, this function does the integral with\n",
    "    respect to x, from x=0 to x=y'''\n",
    "    return numerical_integral(f_2d, 0, y, params = [y])[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 108,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.7314235205271544\n"
     ]
    }
   ],
   "source": [
    "part_volume =  numerical_integral(inner1, 0, 1)[0]\n",
    "total_volume = numerical_integral(inner2, 0, 1)[0]\n",
    "print(part_volume/total_volume)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 109,
   "metadata": {
    "collapsed": false,
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.7939248539228614\n"
     ]
    }
   ],
   "source": [
    "part_volume =  numerical_integral(inner3, 0, 1)[0]\n",
    "total_volume = numerical_integral(inner2, 0, 1)[0]\n",
    "print(part_volume/total_volume)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "So there's a 73% chance that hydroxychloroquine decreases hospitalizations/deaths by at least 10%, and a 79% chance\n",
    "that it decreases hospitalizations. I'm surprised that we can get such high probabilities from\n",
    "just a few hospitalizations, but the placebo group did have 60% more of them."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "# [Mitjà et al.](https://academic.oup.com/cid/advance-article/doi/10.1093/cid/ciaa1009/5872589)\n",
    "\n",
    "> The clinical outcome of risk of hospitalization was similar in the control arm (7.1%, 11/157) and the intervention arm (5.9%, 8/136;RR 0.75 [95% CI 0.32; 1.77]) (Table 2).\n",
    "\n",
    "Here we go again.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 110,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.839572192513369"
      ]
     },
     "execution_count": 110,
     "metadata": {
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "n( (8/136) / (11/157))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 111,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
   ],
   "source": [
    "ineffective_proportion = 11/157\n",
    "effective_proportion = ineffective_proportion * 0.9\n",
    "very_effective_proportion = ineffective_proportion * 0.5\n",
    "dangerous_proportion = ineffective_proportion * 1.1\n",
    "very_dangerous_proportion = ineffective_proportion * 1.5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 112,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
   ],
   "source": [
    "f(x) = x^8 * (1-x)^(136-8) * binomial(136,8, hold=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 113,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}x \\ {\\mapsto}\\ {\\left(x - 1\\right)}^{128} x^{8} {136 \\choose 8}</script></html>"
      ],
      "text/plain": [
       "x |--> (x - 1)^128*x^8*binomial(136, 8)"
      ]
     },
     "execution_count": 113,
     "metadata": {
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "show(f)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 114,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.0555971684750819\n",
      "0.140876262292071\n",
      "0.125210622945351\n",
      "0.101946062708870\n",
      "0.0235383063646503\n"
     ]
    }
   ],
   "source": [
    "print(n(f(very_effective_proportion)))\n",
    "print(n(f(effective_proportion)))\n",
    "print(n(f(ineffective_proportion)))\n",
    "print(n(f(dangerous_proportion)))\n",
    "print(n(f(very_dangerous_proportion)))\n",
    "#The n() function makes the output a decimal instead of a huge fraction"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 115,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
   ],
   "source": [
    "total = f(very_effective_proportion) + f(effective_proportion) + f(ineffective_proportion) + f(dangerous_proportion) + f(very_dangerous_proportion)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 116,
   "metadata": {
    "collapsed": false,
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.124331606710266\n",
      "0.315040720930965\n",
      "0.280007747786041\n",
      "0.227981354483190\n",
      "0.0526385700895380\n"
     ]
    }
   ],
   "source": [
    "print(n(f(very_effective_proportion)/total))\n",
    "print(n(f(effective_proportion)/total))\n",
    "print(n(f(ineffective_proportion)/total))\n",
    "print(n(f(dangerous_proportion)/total))\n",
    "print(n(f(very_dangerous_proportion)/total))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "*This* is what inconclusive data looks like. The results lean toward hydroxychloroquine reducing hospitalizations, but there's still a 56% chance that it's ineffective or harmful."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 117,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left( x, y \\right) \\ {\\mapsto} \\ {\\left(x - 1\\right)}^{128} x^{8} {\\left(y - 1\\right)}^{146} y^{11} {157 \\choose 11} {136 \\choose 8}</script></html>"
      ],
      "text/plain": [
       "(x, y) |--> (x - 1)^128*x^8*(y - 1)^146*y^11*binomial(157, 11)*binomial(136, 8)"
      ]
     },
     "execution_count": 117,
     "metadata": {
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "var('x y')\n",
    "f_2d(x,y) = x^8 * (1-x)^(136-8) * binomial(136,8, hold=True) * y^11 * (1-y)^(157-11) * binomial(157,11,hold=True)\n",
    "show(f_2d)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 118,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
   ],
   "source": [
    "def inner1(y):\n",
    "    '''For constant y, this function does the integral with\n",
    "    respect to x, from x=0 to x=0.9y'''\n",
    "    return numerical_integral(f_2d, 0, 0.9*y, params = [y])[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 119,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
   ],
   "source": [
    "def inner2(y):\n",
    "    '''For constant y, this function does the integral with\n",
    "    respect to x, from x=0 to x=1'''\n",
    "    return numerical_integral(f_2d, 0, 1, params = [y])[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 120,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
   ],
   "source": [
    "def inner3(y):\n",
    "    '''For constant y, this function does the integral with\n",
    "    respect to x, from x=0 to x=y'''\n",
    "    return numerical_integral(f_2d, 0, y, params = [y])[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 121,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.5456222630855441\n"
     ]
    }
   ],
   "source": [
    "part_volume =  numerical_integral(inner1, 0, 1)[0]\n",
    "total_volume = numerical_integral(inner2, 0, 1)[0]\n",
    "print(part_volume/total_volume)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 122,
   "metadata": {
    "collapsed": false,
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.6407564605821422\n"
     ]
    }
   ],
   "source": [
    "part_volume =  numerical_integral(inner3, 0, 1)[0]\n",
    "total_volume = numerical_integral(inner2, 0, 1)[0]\n",
    "print(part_volume/total_volume)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "So there's a 64% chance that hydroxychloroquine is better than the placebo, and only a 54% chance that it reduces cases by at least 10%. The prior probabilities were 50% and 45%, so we're not updating by very much.\n",
    "\n",
    "Let's bring in the hospitalization data from Skipper et al. and use my **highly speculative** method.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 123,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left( x, y, k \\right) \\ {\\mapsto} \\ {\\left(k x - 1\\right)}^{230} {\\left(k y - 1\\right)}^{226} k^{13} {\\left(x - 1\\right)}^{128} x^{13} {\\left(y - 1\\right)}^{146} y^{19} {235 \\choose 5} {234 \\choose 8} {157 \\choose 11} {136 \\choose 8}</script></html>"
      ],
      "text/plain": [
       "(x, y, k) |--> (k*x - 1)^230*(k*y - 1)^226*k^13*(x - 1)^128*x^13*(y - 1)^146*y^19*binomial(235, 5)*binomial(234, 8)*binomial(157, 11)*binomial(136, 8)"
      ]
     },
     "execution_count": 123,
     "metadata": {
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "var('x y k')\n",
    "f_3d(x,y,k) = x^8 * (1-x)^(136-8) * binomial(136,8, hold=True) * y^11 * (1-y)^(157-11) * binomial(157,11,hold=True) * (k*x)^5 * (1-(k*x))^(235-5) * binomial(235,5, hold=True) * (k*y)^8 * (1-(k*y))^(234-8) * binomial(234,8,hold=True)\n",
    "show(f_3d)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 124,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
   ],
   "source": [
    "from scipy.integrate import tplquad"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 125,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1.624275021015414e-07\n"
     ]
    }
   ],
   "source": [
    "#The ordering of the variables is weird\n",
    "gfun = lambda k: 0\n",
    "hfun = lambda k: 1\n",
    "qfun = lambda k,y: 0\n",
    "rfun = lambda k,y: 0.9*y \n",
    "effective_volume = tplquad( f_3d, 0, 1, gfun, hfun, qfun, rfun )[0]\n",
    "print(effective_volume)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 126,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1.8566276539272728e-07\n"
     ]
    }
   ],
   "source": [
    "gfun = lambda k: 0\n",
    "hfun = lambda k: 1\n",
    "qfun = lambda k,y: 0\n",
    "rfun = lambda k,y: y \n",
    "safe_volume = tplquad( f_3d, 0, 1, gfun, hfun, qfun, rfun )[0]\n",
    "print(safe_volume)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 127,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2.3381682205960883e-07\n"
     ]
    }
   ],
   "source": [
    "gfun = lambda k: 0\n",
    "hfun = lambda k: 1\n",
    "qfun = lambda k,y: 0\n",
    "rfun = lambda k,y: 1\n",
    "total_volume= tplquad( f_3d, 0, 1, gfun, hfun, qfun, rfun )[0]\n",
    "print(total_volume)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 128,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.7940522147093196\n",
      "0.6946784267734699\n"
     ]
    }
   ],
   "source": [
    "print(safe_volume/total_volume)\n",
    "print(effective_volume/total_volume)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "So we have a 79% chance that hydroxychloroquine is safer than the placebo, and a 69% chance\n",
    "that it reduces cases by at least 10%. If possible, I trust these numbers **even less** than\n",
    "when I combined two studies up above. The two following expressions show that it is **not** the case that the results of Mitjà et al. are just a multiple of Skipper et al. That breaks  the critical assumptions of my methods. It is **much better** to do the statistics separately for each study and then make an intuitive judgement about what they mean together.\n",
    "\n",
    "(I'm sorry I'm using so much bold, but I want to be very clear about which sections of this notebook are unreliable.)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 129,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.361702127659574"
      ]
     },
     "execution_count": 129,
     "metadata": {
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "n(  (5/235) /(8/136)  )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 130,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.487956487956488"
      ]
     },
     "execution_count": 130,
     "metadata": {
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "n( 8/234 / (11/157))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "And thus the constant $k$ has a wide distribution, indicating that there really isn't a \n",
    "value of $k$ that works:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 131,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
   ],
   "source": [
    "from scipy.integrate import dblquad"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 132,
   "metadata": {
    "collapsed": false,
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAksAAAGDCAYAAAA77lRGAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi40LCBodHRwOi8vbWF0cGxvdGxpYi5vcmcv7US4rQAAIABJREFUeJzs3X1YlGXeN/DvML40qwOt3osoopmKiaJhqWsIZlGHLyFDvNjevvKIhQzqYOnd1j53cjyutpExFjhkmGZpGCagbXnflasytLVKkqZsqfmGC7itLoM5jTVzPX+4M8vLMMwM83bNfD/HMcdRl8PMOVwD/Oa8zvP7kwiCIICIiIiIrAry9gCIiIiIfBmLJSIiIiIbWCwRERER2cBiiYiIiMgGFktERERENrBYIiIiIrKBxRIRERGRDSyWiIiIiGxgsURERERkA4slIiIiIhtYLBERERHZ4DfFkiAI0Ol0YKs7IiIiciW/KZZaWloQEhKClpYWbw+FyOfo9Xo0NTVBr9fbPEZERB35TbFERB1ptVqkpqRALpcjLCwMcrkcD06bhunTH2xzLDUlBdXV1d4eLhGRT5IIfnLdSqfTISQkBM3NzQgODvb2cIi8Rq/XQ6fTobS0FLm5uRg9bAgyE2dgePhA7PjoE7z/Jy0iI8KR9fhjGB4+EOeuNKBk/wHUnb8EtVqNuXPnIjg4GDKZzNsvhYjIJ7BYIvITWq0W6oICVFRWwmg0AgCWpyehYOVTCAoKgvarrzFt2WrkpM2xHDM7cvwklqwvwHf1f4MAQCqVQpGUhNxVqxAbG+ulV0RE5BtEfxmuqKgIUVFRmDhxoreHQuQ1Go0G8fHxqKutQX5OJh6IjsI9QyPaFEWbdldg9F0RHQolzd4PMF25Br179sDGlU+h8qW1yM/JRF1tDeLi4lBcXOytl0VE5BM4s0QkclqtFvHx8ZYZI8OtnxCckIz8nKVQPZEMAND/aOhwDIDN2SaTyQSVuhhFe/ajqqqKM0xEFLBEP7NEFMj0ej1efPFFjL5riKXY0d28CaPRhOHhAy33s3YM6Hy2CQCCgoKgVmVh1NDBePHFDdw1R0QBi8USkQiZd7n17dsXH/7xj8icM8NS7AT/4heQSoNw7kqD5f7Wjul/NKDiyGfInDOzQ6EE3J51mvu79fj2Uj0++OCP3DVHRAGLxRKRyLRen/TC/5kHAWgzYyS7ozcU8Q+gZN9HMJlMnR7rbLYJuL2Oadqy1ai7cAkvL3+S65iIKKCxWCISEa1WC6VSiZy0OTjxtgbPzEvtMGMEACvnKlB34TJyN71uKY7aH7M22wTcnlHKebno9nO8UwzVE8lIjPs1VE8k48TbGihTE5Gdnc0ZJiIKGFzgTSQiqSkpqKutwYm3NZZLZ2nPrUPdhUs48U5xm8tpxXv/COXLhRh9VwQy58zE3eFheOejg9jzpypLzlLZwSO4rruBr3e93uXjmZlMJoyd9xRGjB2H994rYx4TEfk9ziwRiYRer0dFZSUyE2e0KWKszSIBQNbjs3Fo80u49dPPeHrT61CsyUP5kc/w4IPTMGj4SKwuLMGfT9bhrxf//bVcx0RE1FEPbw+AiLqm1+tx7tw5GI3GDmuMpo4fi6JncqB8uRCfHj1umUX67kojSvYfwLkrDVBv2tQhmduc9L17926oVCp8eqwWcx+Kt7mOKeflIoy+KwIvL3+yTfp3XFwcNm/ejKysLI98P4iIPInFEpEPa5/KLQE6rDECbs8iRQ+/C5t2l+OZ17bAZBIglUqRnKzAlh07rWYkyWQyyGQyrFixAvfddx/U6gLkvbnT6nO0XsfUPmZgRXoSVOpiZGdnIzo6mnlMROR3RL9mqaioCEVFRTAajfj222+5Zon8hkajgVKpbNPb7b+37ID+1i2cfneLW9YT6fV6pKWl4fzpr3Hina7XRbV+3nELliFqwv0oK9vj3AsmIvJRol+zpFQqcfr0aRw9etTbQyFymfa73sw70l57JhtnLl/psD4J+Hfi9jcX6/Hss791auG1TCbDs88+i7oLl+xexwTcDrDMTJyB8vIKhlcSkd/hZTgiH6QuKMDoYUM6XPJqvT7pfz6vQVby7Dbrk+rOX8LmzZu7dSls6tSp2Lx5M7Kzs7tcx9Ta3eFhMBqN0Ol03CFHRH6FxRKRjzHvesvPybQ6k2Nen5SzsQhPb3odAtDl+iRHZWVlITo62uY6pvb+erEeQUFB6NmzZ7efn4jIl4j+MhyRv9HpdFZ3vbUWO34M8pYugADg5MmTaGlpQVnZHpcuro6NjUVZ2R7cuHEDs2bPRsm+Ax0u/QG3F3+n/vb/4beb34TJZEJoaCjjBIjIr7BYIvIxwcHBkEqlXc7kfHelEVKpFMOHD3frZS9r65jMzG1RTp+/iI0r2BaFiPyT6HfDmTHBm/xFZzvSWvPG7rPi4tvxAObdeT/euoXni7dbjRMwLzYv2rMfVVVVjBMgIlFjsUTkI9pnKgHA8vQknypEqquroVYXoLy8AiajESMjwnG69A2fKeiIiNyBC7yJfEDrTKX8nEwMDx+Itz/6FK+9V4n/+fMxZD3+mMt3vTkjNjYWsbGxuHbtGkJDQ5H1+GNdxgmsLiyBXq/nDjkiEi0WS0Re1jpTqfUsUmLcr1FVexJLfl/gtl1vzvrpp5+6XIQOME6AiPyD6Iul1gneRGLUWaYSAMTdG42/7i7pViq3OziyCD0oKAh6vZ6zS0QkWqLfDccEbxIzc6ZSZuIMm5eznkyahY8+OuDh0XVOJpNBkZSEkv3W4wQA4Mjxk8jb+jYgCBg2bBjkcjkjBYhIlERfLBGJmT2ZSkDby1m+QpWbi7rzHeMEAGDz+/sxPXs1Bvzyl3iZkQJEJHKivwxHJGaOZir50k7P9m1RMhNn4O7wMHzyl+Mo3LPP6k6+FelJUKlvRxBER0czUoCIRIHRAURelpqSgrraGpx423cylRzROk7AaDQiSCLByCHhOLVriyhfDxFRe7wMR+RFer0eCxct6vRyljlTqe78JahUuV4apW3mtigtLS04f/48JEFBeEoxu8tIgfLyCuj1eg+PlojIcbwMR+QF7QMoJRIJCt+rxCdHj2PpnJk+kankKJlMBplMxkgBIvI7Ds8sXblyBfPnz0f//v3xi1/8Avfeey9qamq6NYjFixdDIpF0uI0ZM6Zbj0vkizQaDeLj41FXW4P8nExUvrQWG1c8iaGDBuCvFy7hmdfegGJNHlYXliBqwv2oqqpCVlaWt4dtFzGvwSIi6oxDa5auX7+OmJgYTJ8+HcuWLUNoaCjOnTuHu+66C8OHD3d6EM3NzW2m43/++WeMHz8ey5cvx9q1a+16DK5ZIjHQarWIj4+32U+tsGwf9u3bh4SEBFHOutizBsvXcqOIiGxxaGbpD3/4AyIiIrBt2zZMmjQJd911Fx5++OE2hdKtW7ewZs0ahIeHo0+fPpg8eTIOHTpk83FDQkIQFhZmuR07dgzXr19HRkZGp19jMBig0+na3Ih8na0AyqCgIKhVWYi6eyh27HhLtEWErUiBI8dPYtTcTHxz4TI++OCPzF4iIlFwqFjat28f7r//fqSlpSE0NBQxMTF444032twnIyMD1dXVKC0txYkTJ5CWloYZM2bgzJkzdj/P1q1bkZCQgKFDh3Z6nw0bNiAkJMRyi4iIcOSlEHmcvQGUYl/8bI4UKCzbh3ELlkFdWo59VX9G2nPr8GD2akglEmxc+RSzl4hINBy6DHfHHXcAAFatWoW0tDT85S9/gUqlwuuvv46FCxfi3LlzGDlyJOrr6zFo0CDL1yUkJGDSpElYv359l8/R0NCAiIgI7Nq1C+np6Z3ez2AwwGAwWP5fp9MhIiKCl+HIZzU1NSEsLAyVL61FYtyvO73fvqo/Q7EmD42NjRgwYIAHR+ha7SMFAFjNXjJffizasx9VVVU+v5CdiAKPQ7vhTCYT7r//fkvRExMTg1OnTkGj0WDhwoX48ssvIQgCIiMj23ydwWBA//79AQB9+/a1HJ8/f36HT5Pbt2/HnXfeCYVCYXMsvXv3Ru/evR0ZPpFXBdri59jYWMTGxkKv1yMtLQ3nT39t8/LjwZqvoFYXsFgiIp/jULE0cOBAREVFtTk2evRovP/++wBuF1NSqRQ1NTWQSqVt7mcukmpray3H2v8xEAQBb775JhYsWIBevXo5MjQin9e6n9qK9KROFz+X7D+A5GSFaNcsWXPgwAHk52R2eflxdWEJG+4Skc9xqFiKjY3FN9980+bYt99+a1lbFBMTA6PRiKtXryIuLs7qY4wYMaLTxz98+DDOnj2LJUuWODIsItFQ5eYiPj4euZte7/RyVN35S9iyY6cXR+lazvS/Y7FERL7EoWIpNzcXDzzwANavX4/09HT85S9/wZYtW7BlyxYAQGRkJObNm4eFCxdi48aNiImJwffff4+DBw8iOjoas2bNsvn4W7duxeTJkzF27FjnXxGRD+usn5rYAigdEWiXH4nI/zjcG+6DDz7Ab3/7W5w5cwbDhg3DqlWrsHTpUsu///TTT1i3bh127NiBK1euoH///pgyZQry8vIQHR3d6eM2Nzdj4MCB2LRpU5vHsxdzlkhM2i9+lkqlSE5WQKXK9atCyUzs/e+IKLCxkS6RF+n1euh0OgQHB/v1padACOMkIv/FYonIQwKlMOpMcXExsrOzMXrYkDaXH18tq8DFhquQSCSWTSKKpCTkrlrll7NsRCQ+LJaI3Kx909xALgbaX36USCSAIOCeYUOwdM5MDA8fiHNXGtqs3xJLXzwi8l+iL5aKiopQVFQEo9GIb7/9lsUS+RSNRgOlUmmZTWExcJter8fHH38MhUJh89IcgyqJyBeIvlgy48wS+Rp71ukEcjHARd9EJBYO9YYjIvvZ0zR39LAhUKsLvDRC7wmUPnlE5B9YLBG5AYsB25wJqiQi8hYWS0RuwGLANgZVEpGYsFgicgMWA7a17pNnMpms3sdf++QRkfiwWCJyAxYDXVPl5qLu/CXkbnq9w/eodZ88lSrXSyMkIrrNod5wRGS/QGya6wh7+uSp1WqMGDECer0+IAtKIvINjA4gcqPOUqsDPWepNWt98uLipgIAqqq0AR/kSUTex2KJyM0CrWmus8ztYEpLS5Gbm8sgTyLyGSyWiDwk0HvD2YNBnkTki0RfLLHdCfkiFkbOYao3Efki0e+GUyqVOH36NI4ePertoRBBq9UiNSUFcrkcYWFhkMvlSE1JQXV1tbeH5vMY5ElEvkr0xRKRr9BoNIiPj0ddbQ3yczJR+dJa5Odkoq62BnFxcSguLvb2EH0agzyJyFcxOoDIBbRaLZRKpdW1NivSk6BS394VFx0dzbU2nWCQJxH5Ks4sEbkAm+Z2H4M8ichXsVgi6iautXEdpnoTkS/iZTiibnJmrQ1nRaxjqjcR+SLOLBF1E9fauFZWVhaqqqoQNeF+rC4sgWJNHlYXliB0yF2YNi0eq1at4k5DIvIo0ecsmTGUkryJ+UDuwVRvIvIFLJaIXIDJ0+7D7y0ReZvoiyUmeJOvYNNc9+CsHRF5m+iLJTPOLJEvYNNc19Lr9ZDL5cjPyYTqieRO76cuLcfqwhK0tLRw0TcRuRx3wxG5UGxsLGJjY9kbzkW405CIfAGLJSI3kMlk/KPtAtxpSES+gNEBROSzmOpNRL6AxRIR+TSmehORt/EyHFE3cX2SezHVm4i8jbvhiJyk1WqhLihARWWlZeebIikJuatWceebG1jbaRgXNxUAUFWl5TkgIrdhsUTkBI1GA6VSyURpL2CqNxF5GoslIgcxUdr7eA6IyJNEXywxwZs8jYnS3sdzQESeJPrdcEqlEqdPn8bRo0e9PRQKAHq9HhWVlchMnGH1jzQABAUFITNxBsrLK6DX6z08Qv/Hc0BEnib6YonIk5xJlCbX4jkgIk9jsUTkACZKex/PARF5GoslIgcwUdr7eA6IyNNYLBE5iInS3sdzQESeJPrdcGaMDiBPKi4uRnZ2tiXjp32iNDN+3I/ngIg8xaFiae3atcjLy2tzbMCAAWhsbHR6AIsXL8Zbb73V4XhUVBROnTpl9+OwWCJPs5YonZysgEqVy2wfD7F1DiZMmMA2NETkEg4XS3v27MEnn3xiOSaVSvGrX/3K6QE0Nze32dr7888/Y/z48Vi+fDnWrl1r9+OwWCJvYW8472t9DmpqatiGhohcyuE1Sz169EBYWJjl1rpQunXrFtasWYPw8HD06dMHkydPxqFDh2w+XkhISJvHO3bsGK5fv46MjAybX2cwGKDT6drciLxBJpNhwIABLJS8yHwOtm/fjvj4eNTV1iA/JxOVL61Ffk4m6mprEBcXh+LiYm8PlYhEqIejX3DmzBkMGjQIvXv3xuTJk7F+/XrcfffdAICMjAxcuHABpaWlGDRoEMrLyzFjxgycPHkSI0eOtOvxt27dioSEBAwdOtTm/TZs2NDhkiARBS6tVgulUmm1BcqK9CSo1LfXOEVHR3OGiYgc4tBluI8++gg3b95EZGQkmpqasG7dOvz1r3/FqVOn8M9//hMjR45EfX09Bg0aZPmahIQETJo0CevXr+/y8RsaGhAREYFdu3YhPT3d5n0NBgMMBoPl/3U6HSIiIngZjihAsQUKEbmLQzNLM2fOtPx3dHQ0pkyZguHDh+Ott95CREQEBEFAZGRkm68xGAzo378/AKBv376W4/Pnz+8wJb59+3bceeedUCgUXY6ld+/e6N27tyPDJyI/ZW6Bkp+T2WULlNWFJdDr9bxsSkR2c/gyXGt9+vRBdHQ0zpw5g/DwcEilUtTU1EAqlba5n7lIqq2ttRxrP/sjCALefPNNLFiwAL169erOsIgowDjTAoXFEhHZq1vFksFgQF1dHeLi4hATEwOj0YirV68iLi7O6v1HjBjR6WMdPnwYZ8+exZIlS7ozJCK34s4338QWKETkTg7thnvmmWdw+PBhnD9/Hl988QVSU1Oh0+mwaNEiREZGYt68eVi4cCH27t2L8+fP4+jRo/jDH/6ADz/8sMvH3rp1KyZPnoyxY8c6/WKI3EWr1SI1JQVyuRxhYWGQy+VITUlBdXW1t4dGYAsUInIvh4ql+vp6/OY3v8GoUaPw+OOPo1evXvj8888tO9e2bduGhQsX4umnn8aoUaMwZ84cfPHFF4iIiLD5uM3NzXj//fc5q0Q+SaPRcDu6CLAFChG5C9udENmg1WoRHx9vdTu6+Q9w0Z79qKqq4nZ0H8AWKETkDiyWiGzgdnTxYQsUInI1hxO8iQKFeTt6ZuKMLrejl5dXtGnbQ94TGxuLsrI9aGlpQWNjI1paWrBypQoFr7zCNWdE5BTRF0tFRUWIiorCxIkTvT0U8jPObEcn38EWKETkKt2KDvAFSqUSSqXSchmOyFW4HV382AKFiFxB9DNLRO7C7ejipy4owOhhQzoUSsDtS6hqVRZGDxsCtbrASyMkIjFgsURkA7ejixfXnBGRq4j+MhyRO02dOhWbN29GdnY2Pj1W2+l2dF7C8T1sgUJErsJiiagLWVlZiI6OhlpdgNWFJW22o2/ZsZOFko/imjMichXmLBE5gL3hxIU5WUTkClyzROQA83Z0FkriwDVnROQKvAxHRH6La86IyBV4GY6I/J6tFiixsbG8vEpENvEyHBH5PWstUMrK9kAQBKSmpLANChHZJPpiie1OiMherdecaTQatkEhIrvwMhxRJ3hpxn9ptVrEx8dbbYNiXvhdtGc/qqqquJ6JiMQ/s0Tkalqtlpdm/BzboBCRI1gsEbXCSzP+j21QiMhRjA4g+hd2qA8MbINCRI7izBLRv/DSTGBgGxQichSLJSLw0kwgkclkUCQloWT/gQ6p3mYmkwkl+w8gOVnBWSUiYrFEBDh3aYbEi21QiMgRXLNEBF6aCTRsg0JEjmDOEtG/sEN94OmqDQoREeAHxVJRURGKiopgNBrx7bffslgipzGoMHBZCyBlKCkRmYm+WDLjzBK5QnHx7XiA0cOGdHppJisry9vDJDfSarVQFxSgorLSMtukSEpC7qpVLJKJAhSLJaJ2eGkmcGk0GiiVSkuxPDx8IM5daWCxTBTgWCwRdYKXYQILL8MSUWdYLBERgQv8iahzzFkiooDHUFIisoXFEhEFPIaSEpEtLJaIKOAxlJSIbGGxREQBj/3iiMgWFktERGC/OCLqnOh7w7VO8CYichb7xRFRZxgdQAGPeUrUmq1Q0gkTJvC9QhSAeBmOApZWq0VqSgrkcjnCwsIgl8uRmpKC6upqbw+NvCg2NhZlZXvQ0tKCxsZGtLS0YOVKFQpeeYXvFaIAxZklCkhsa0H24nuFiFgsUcBhWwuyF98rRASwWKIAxLYWZC++V4gI4JolCjBsa0H24nuFiMy6VSxt2LABEokEKpWqW4NYvHgxJBJJh9uYMWO69bhE7bGtBdmL7xUiMnO6WDp69Ci2bNmCcePGdXsQmzZtQkNDg+V2+fJl9OvXD2lpad1+bKLW2NaC7MX3ChGZOVUs3bhxA/PmzcMbb7yBX/7yl23+7datW1izZg3Cw8PRp08fTJ48GYcOHbL5eCEhIQgLC7Pcjh07huvXryMjI6PTrzEYDNDpdG1uRF1hWwuyF98rRGTmVLGkVCoxe/ZsJCQkdPi3jIwMVFdXo7S0FCdOnEBaWhpmzJiBM2fO2P34W7duRUJCAoYOHdrpfTZs2ICQkBDLLSIiwpmXQgGIbS3IXnyvEBHgxG640tJS/P73v8fRo0dxxx134MEHH8S9994LtVqNc+fOYeTIkaivr8egQYMsX5OQkIBJkyZh/fr1XT5+Q0MDIiIisGvXLqSnp3d6P4PBAIPBYPl/nU6HiIgI7oYjuxQXFyM7O9uSnWOtrQWzcwjo+r2iVqsxd+5cpnoT+TPBAZcuXRJCQ0OF2tpay7Fp06YJK1euFARBEN577z0BgNCnT582tx49egjp6emCIAhtjj/11FMdnmP9+vVC//79BYPB4MjQhObmZgGA0Nzc7NDXUeDSarVCamqKIJVKBQCCVCoVUlNTBK1W6+2hkY+x9l558MFpwoMPTmtzLOXxx/n+IfJDDs0sVVRUIDk5GVKp1HLMaDRCIpEgKCgIO3fuxLx583Dq1Kk29wGAvn37IiwsDGfPnrUcCw4ORmhoaOvCDZGRkXjsscdQUFDgUNHHnCVyFnvDkb3M75XS0lLk5uYy1ZsoQDhULLW0tODixYttjmVkZOCee+7Bf/3Xf6FXr14YNWoUjhw5gri4OIcHc+jQIUyfPh0nT57E2LFjHfpaFktE5AlM9SYKPN1O8G69ZgkA5s+fj+rqamzcuBExMTH4/vvvcfDgQURHR2PWrFk2H2vBggU4c+YMPv/8c4fHwWKJiDyBqd5EgcflCd7btm3DwoUL8fTTT2PUqFGYM2cOvvjiiy53qzU3N+P999/HkiVLXD0kIiKXYKo3UWDq0d0HaJ+h1LNnT+Tl5SEvL8+hxwkJCcHNmze7OxwiIrdxJtWb6+CIxI+94YiI7MRUb6LAxGKJiMhOTPUmCkyiL5aKiooQFRWFiRMnensoRBQAmOpNFHi6vRvOV3A3HBF5ChPgiQILiyUKKAygJFeprq6GWl2A8vIKGI1GSKVSJCcroFLlYsKECXyfEfkR0V+GI7KHVqtFakoK5HI5wsLCIJfLkZqSgurqam8PjUQqNjYWZWV70NLSgsbGRrS0tGDlShUKXnmF7zMiP8OZJfJ7Go0GSqWSrSnIrfg+I/JfLJbIr7E1BXkC32dE/o3FEvk1tqYgT+D7jMi/cc0S+S22piBP4PuMyP+xWCK/5UxrCiJH8X1G5P9YLJHfYmsK8gS+z4j8H4sl8ltsTUGewPcZkf8TfbHEdidkC1tTkCfwfUbk37gbjvweW1OQJ3T1PlOr1Zg7dy5TvYlEiMUSBQRbrSmYe0OuYu19Fhc3FQBQVaW1HFMkJSF31Sq+94hEgsUSBRT2hiNPML/PSktLkZuby1RvIpFjsURE5AZM9SbyHyyWiIjcgKneRP5D9LvhiIh8DVO9ifwLiyUiIhdjqjeRf2GxRETkYkz1JvIvLJaIiFyMqd5E/kX0xRITvInIFzHVm8h/cDccEZGbMNWbyD+wWCK/xQBK8gVM9SYSP9FfhiNqT6vVIjUlBXK5HGFhYZDL5UhNSUF1dbW3h0YBKDY2FmVle9DS0oLGxkZs3LgRhw8fwdVLF5Cfk4nKl9YiPycTdbU1iIuLQ3FxsbeHTETtcGaJ/IpGo4FSqWR7CfJJTPUmEicWS+Q3+IeIfB1TvYnEiZfhyG+oCwowetiQDoUScDstWa3KwuhhQ6BWF3hphBTImOpNJF4slsgv8A8R+TqmehOJF4sl8gv8Q0S+jqneROLFYon8Av8Qka9jqjeReIm+WGKCNwH8Q0TiwFRvInHibjjyG9wNR2LAVG8i8WGxRH6lqz9EzFkiX8BUbyJxYbFEfsfaH6LkZAVUqlz+0SGfYm7JU1paitzcXIapEvkoFkvkt9gbjsSAl4+JfB+LJSIiL2KqN5HvE/1uOCIisWKYKpE4OFQsaTQajBs3DsHBwQgODsaUKVPw0UcfdWsAixcvhkQi6XAbM2ZMtx6XiMjXMUyVSBwcKpYGDx6MF198EceOHcOxY8fw0EMPISkpCadOnXJ6AJs2bUJDQ4PldvnyZfTr1w9paWlOPyYRkRgwTJVIHBwqlhITEzFr1ixERkYiMjISv//979G3b198/vnnAIBbt25hzZo1CA8PR58+fTB58mQcOnTI5mOGhIQgLCzMcjt27BiuX7+OjIwMm19nMBig0+na3IiIxIRhqkTi4PSaJaPRiNLSUvzwww+YMmUKACAjIwPV1dUoLS3FiRMnkJaWhhkzZuDMmTN2P+7WrVuRkJCAoUOH2rzfhg0bEBISYrlFREQ4+1KIiLzG3lTvZcuy0dTUxHVLRF7g8G64kydPYsqUKfjxxx/Rt29f7Nq1C7NmzcK5c+cwcuRI1NfXY9CgQZb7JyQkYNKkSVi/fn2Xj93Q0ICIiAjs2rUL6enpNu9rMBhgMBgs/6/T6RAREcHdcEQkOrbCVE9/dxETYmLw1YkTDKsk8pIejn7BqFGjUFtbi3/+8594//2Ax+d8AAAgAElEQVT3sWjRIhw+fBinTp2CIAiIjIxsc3+DwYD+/fsDAPr27Ws5Pn/+fBQXF7e57/bt23HnnXdCoVB0OY7evXujd+/ejg6f/BQzlUjMsrKyEB0dDbW6AKsLSyxF0bhx0ZBILuHH5mvIz8lsE1YZFxfHsEoiD+l2zlJCQgKGDx+Ohx56CPPmzcOpU6cglUrb3Kdv374ICwvD2bNnLceCg4MRGhpq+X9zofXYY4+hoKDA4XEwZykwabVaqAsKUFFZyU/d5BfMhf/XX3+NRx55hGGVRD7A4Zml9gRBgMFgQExMDIxGI65evYq4uDir9x0xYkSnj3P48GGcPXsWS5Ys6e6QKEBoNBoolUqMHjaEn7rJb8hkMshkMij/dVmufaEE3M5eUquycLDmK6jVBSyWiNzMoWLpueeew8yZMxEREYGWlhaUlpbi0KFDOHDgACIjIzFv3jwsXLgQGzduRExMDL7//nscPHgQ0dHRmDVrls3H3rp1KyZPnoyxY8d26wVRYNBqtVAqlVY/da9IT4JKfXsNSHR0NP+QkOiYwyrzczK7DKtcXVgCvV7Py89EbuTQbrimpiYsWLAAo0aNwsMPP4wvvvgCBw4cwCOPPAIA2LZtGxYuXIinn34ao0aNwpw5c/DFF190uVOtubkZ77//PmeVyG7qgoIuP3WPHjYEarXjl3SJvI1hlUS+xaGZpa1bt9r89549eyIvLw95eXkODSIkJAQ3b9506GsocPFTN/k7hlUS+Rb2hiPR4adu8ncMqyTyLSyWSHT4qZsCgT1hlae/u4iFCxcxqJLIzbodHeBtRUVFKCoqgtFoxLfffsvogACRmpKCutoanHhbY/VSnMlkwrgFyxA14X6Ule3xwgiJuq+zsMpXyypwseEqJBIJTCYTIzOI3Ez0xZIZc5YCi1arRXx8PDNoyO9VV1dDrS5AeXkFjEYjJBIJIAi4Z9gQLJ0zs01kRt35S4zMIHIDFkskWrZaRPCPBvkbvV6Pjz/+GAqFgh8SiDyMxRKJWvtP3VKpFMnJCqhUufxjQX6Hl5+JvIPFEvkF9oYjf6fX6yGXy5GfkwnVE8md3k9dWo7VhSVoaWnhzwKRi3S73QmRLzC3iCDyV85EZvBngsg1GB1ARCQCjMwg8h4WS0REIsCgSiLvYbFERCQSDKok8g4u8CYiEhEGVRJ5HoslIiKRYVAlkWeJvlhiuxMiClQMqiTyDNEXS2acWSKiQMSgSiL34wJvEh29Xo+mpiYuYKWAp9frUVFZiczEGVYLJQAICgpCZuIMlJdX8GeGyEkslkg0tFotUlNSIJfLERYWBrlcjtSUFFRXV3t7aERe4UxQJRE5jsUSiYJGo0F8fDzqamuQn5OJypfWIj8nE3W1NYiLi0NxcbG3h0jkcQyqJPIMrlkin6fVahEfH88FrERW2LNmaey8pzBi7Di8914ZwyqJnMCZJfJ56oICjB42pEOhBNxej6FWZWH0sCFQqwu8NEIi77EVVHnk+EmMmpuJby5cxgcf/JGXromcxJkl8mnstE7UNWtBlW9/9Cne/5MWkRHhyHr8MWYvEXVDD28PgMgWdlon6lpWVhaio6OhVhdgdWEJjEYjAGB5elKHGdkV6UlQqW8XV9HR0bx0TWQHXoYjn8YFrET2iY2NRVnZHrS0tGD27NmIGjaUl66JXET0xVJRURGioqIwceJEbw+F3ICd1okcd+DAAWTOYfYSkauIvlhSKpU4ffo0jh496u2hkJvY02m97vwlqFS5Xhohke9g9hKR63HNEvm8qVOnYvPmzcjOzsanx2rbdFpvvViVay+IeOmayB24G45Eo32ndalUiuRkBVSqXBZKRK0we4nItVgskejo9XrodDoEBwfzlzyRFbaCXI8cP4kl6wvwXf3fIACQSqVQJCUhd9Uqfugg6gSLJSIiP8TsJSLXYbFEROSn2l+6BqxnL7FtEJFtLJaIiPycXq9HWloazp/+Gife6Xwd07gFyxA14X6Ule3xwiiJfJfoowOIiKhrzF4ich6LJSIiP8fsJaLuEX2xxARvIiLbmL1E1D1cs0Q+jTEBRK7B7CUi54l+Zon8k1arRWpKCuRyOcLCwiCXy5GakoLq6mpvD41IlGy1DTpy/CRGzc3ENxcu44MP/sifN6J2OLNEPkej0UCpVFryYZgFQ+QazF4icg6LJfIptpKHmQVD1H3MXiJyHIsl8in2rKtgFgxR9zF7ich+XLNEPkOv16OishKZicyCIfIEZi8R2cehYmnDhg2YOHEi5HI5QkNDoVAo8M0333R7EIsXL4ZEIulwGzNmTLcfm8SDWTBEnsOfNyL7OVQsHT58GEqlEp9//jk+/vhj/Pzzz3j00Ufxww8/dGsQmzZtQkNDg+V2+fJl9OvXD2lpad16XBIXZsEQeY69P29/vViPoKAg9OzZ00MjI/I9DhVLBw4cwOLFizFmzBiMHz8e27Ztw6VLl1BTU2O5z61bt7BmzRqEh4ejT58+mDx5Mg4dOmTzcUNCQhAWFma5HTt2DNevX0dGRkanX2MwGKDT6drcSNxkMhkUSUko2X+gw9ZmM5PJhJL9B5CcrGAODFE3dPXzpv3qa6T+9v/ht5vfhMlkQmhoKOMEKGB1a81Sc3MzAKBfv36WYxkZGaiurkZpaSlOnDiBtLQ0zJgxA2fOnLH7cbdu3YqEhAQMHTq00/ts2LABISEhlltERITzL4R8hq0sGPPunLrzl6BS5XpphET+o7OfN83eDzBt2WqcPn8RG1c8icqX1iI/JxN1tTWIi4tDcXGxF0dN5HlO74YTBAFJSUm4fv06qqqqAADnzp3DyJEjUV9fj0GDBlnum5CQgEmTJmH9+vVdPm5DQwMiIiKwa9cupKend3o/g8EAg8Fg+X+dToeIiAjuhvMD1rJgvrvSyNwXIjdo//P2461beL54O+M7iFrp4ewX5uTk4MSJE9BqtZZjX375JQRBQGRkZJv7GgwG9O/fHwDQt29fy/H58+d3+ISyfft23HnnnVAoFDafv3fv3ujdu7ezwycflpWVhejoaKjVBVhdWAKj0QipVIrkZAW27NjJX9BELtT+581kNGJkRHiHQgm4vTtOrcrCwZqvoFYX8GeRAoZTxdLy5cuxb98+HDlyBIMHD7YcN5lMkEqlqKmpgVQqbfM15iKptrbWcqz9DJAgCHjzzTexYMEC9OrVy5mhkZ+IjY1FbGwse8MReYD55+3atWsIDQ1F1uOPdRknsLqwBHq9nj+XFBAcKpYEQcDy5ctRXl6OQ4cOYdiwYW3+PSYmBkajEVevXkVcXJzVxxgxYkSnj3/48GGcPXsWS5YscWRY5MdkMhl/GRN5yE8//WRXnEB4aH8YjUY0NTXhrrvu8szgiLzIoQXeSqUS77zzDnbt2gW5XI7GxkY0NjZawsoiIyMxb948LFy4EHv37sX58+dx9OhR/OEPf8CHH37Y5eNv3boVkydPxtixY517NURE5LSu4gS0X32NtOfW4Tf/dwOA2x9+uUOOAoFDC7wlEonV49u2bcPixYsB3P5ksm7dOuzYsQNXrlxB//79MWXKFOTl5SE6OrrTx25ubsbAgQOxadMmLF261LFXAbY7ISJyhc5aDmn2foCcl4sw+q4IZM6ZyYa7FFDYG46IiCysNbPWfvU1pi1bzR1yFLBYLBERURvt4wTKDh7Bdd0NfL3rdTbcpYDERrrkM/R6PZqamtiwk8jLsrKyUFVVhagJ9+OZ197A5yfr8KRiFhvuUsASfbFUVFSEqKgoTJw40dtDISdptVqkpqRALpcjLCwMcrmci0aJvCw2NhZlZXtw7tw5CAAb7lJAE32xpFQqcfr0aRw9etTbQyEnaDQaxMfHo662Bvk5mWyrQORjBgwYYHeD66CgIOj1es4ukd/hmiXyGmsLSc24aJTId3S2Q87syPGTSFrzAlp+0MMkCJBKpVAkJSF31Sr+7JJfYLFEXtPVL2AuGiXyDbY+2Gx+fz+Wv1yEkRHhyHr8MUYKkF9isUReodfrIZfLkZ+TCdUTyZ3eT11ajtWFJWhpaWGSN5EXWWtw/clfjqNwzz4sT0/i7DD5Nacb6RJ1h06ns6utQutFoyyWiLzHWoPrIIkEo4YOZtNd8nuiX+BN4tRVWwWz7640QiqVcraQyAeYd8i1tLTg/PnzkAQF4SnFbJuRAgtnJmDv3nJcu3bNw6Mlch0WS+QVMpkMiqQklOw/AJPJZPU+JpMJJfsPIDlZwVklIh9ibnBta3bY3Efuec02mEwmhIaGMhKERIvFEnmNKjcXdecvIXfT6x0KJvN6h7rzl6BS5XpphETUGVuzw5q9H2DastWou3AJ+cuXMhKERI8LvMmrrC0a/e5KI3fSEImAtR2t7CNH/ojFEnlddXU11OoClJdXwGg0QiqVIjlZAZUql79MiXyYtUiBtOfWoe7CJZx4p5iRIOQ3RL8brqioCEVFRTAajd4eCjkpNjYWsbGx0Ov10Ol0CA4O5holIhGYOnUqNm/ejOzsbHx6rBYLZyag4vBnyF++tMs+cqsLS6DX6/mzTqIg+jVLbHfiP2QyGQYMGMBfnkQi0rrp7nOabTCaTF1GgoSH9ofRaERTU5OHRknUPaIvloiIyLvMkQJ///vfbUaCmHfI/eb/bgAAjBgxgjvkSBRYLBERkUv069ev00iQ1jvkXl7+JHfIkahwgTcREbmMtUXf3CFHYsdiiTyOC7mJ/Fv7SJCyg0dwXXcDX+96nTvkSJR4GY48RqvVIjUlBXK5HGFhYZDL5VyvQOSHWi/6fua1N/D5yTo8qZjFtigkWiyWyCM0Gg3i4+NRV1uD/JxMrlcg8nPmRd/nzp2DALAtComa6HOWyPdptVoolUqr6xVWpCdBpb49ZR8dHc31CkR+ZsCAATbbouS8XITRd0Ugf/lSDA8fiHNXGlCy/wDi4uKY4E8+g2uWyO2stURojesViPwb26KQ2In+MlxRURGioqIwceJEbw+FrNDr9aiorERm4owuE33Lyyug1+s9PEIicjdrTbM37a7A6LsiOhRKwO3fCWpVFkYPGwK1usAbQyZqQ/TFEhO8fZtOp4PRaOwy0ffu8DAYjUbodDoPjYyIPMXcFqWwbB/GLViGl94pQ8Xhz5A5ZyYXfZMoiL5YIt8WHBxsM9HX7LsrjZBKpbyESuSnHGmLwkXf5GtYLJFbyWSyThN9zUwmE0r2H0BysoK5S0R+zJ62KK2TvvOXL+XOWfIJXOBNbmct0deMCzmJAhMXfZOYsFgij2if6Ht3eBi+u9KIkv0HUHf+ErcIEwUYax+i0p5bh7oLl3DinWLunCWfwpwl8oisrCxER0dDrS7A6sISGI1GSKVSJCcrsGXHTn5KJAow5kXf2dnZ+PRYLRbOTEDF4c+Qv3xpl4u+n9Nsw7Vr19CvXz8Pj5oCFWeWyOPYG46IzKqrq6FWF2Dv3nKYTCZUvrQWiXG/7nA/7VdfY9PuClQc/gxGkwlSqRSKpCTkrlrFD1vkdpxZIo+TyWQskogIwO1F37Gxsbh27RpCQ0OZ9E0+iTNLRETkE7jom3yV6KMDmODt2/R6PZqampjMTURdcjbpe9TQwXjxxQ38PUNuI/piiQnevkmr1SI1JQVyuRxhYWGQy+UMlSMimxxN+tZ+9TXm/m49vr1Ujw8++CN/z5DbiL5YIt+j0WgQHx+Putoa5OdkMlSOiOxmb9J36/DKl5c/yd8z5FZcs0QuxQBKInIV86Lv/JxMqJ5IthznOibyNBZL5FLWFmi2xlA5InKEtd8p9oRXjp33FEaMHYf33ivj7lvqNl6GI5fR6/WoqKxEZuIMm6FymYkzUF5ewcWYRNSl9ou+9T8aUHGE65jIs5izRC6j0+lgNBo77SRudnd4GIxGI3Q6HT/xEZFN7ZO+5z4UD6Ox83VM5jyml5c/yTwmchmHZ5aOHDmCxMREDBo0CBKJBBUVFd0exOLFiyGRSDrcxowZ0+3HJs8JDg7utJN4a99daYRUKuXlUiKyS+tF33lv7oQE6PB7RvvV18h5uQg5aXNw4p1iqJ5IRmLcr6F6Ihkn3tZAmZqI7OxszjCRUxwuln744QeMHz8ehYWFLhvEpk2b0NDQYLldvnwZ/fr1Q1pamsueg9xPJpNBkZSEkv0HLBkp7ZlMJpTsP4DkZAVnlYjIbrGxsSgr24MbN25g1uzZKNnX9veMPXlMo4cNwcaNLzP7jRzmcLE0c+ZMrFu3Do8//rjVf7916xbWrFmD8PBw9OnTB5MnT8ahQ4dsPmZISAjCwsIst2PHjuH69evIyMjo9GsMBgN0Ol2bG3mftVA5M/Mulbrzl6BS5XpphEQkZjKZDM8++yzqLti/jgkAPjt5Gj2DpKgor2D2GznM5WuWMjIycOHCBZSWlmLQoEEoLy/HjBkzcPLkSYwcOdKux9i6dSsSEhIwdOjQTu+zYcMG5OXluWrY5CLt1xdkJs7A3eFh+O5KI0r2H0Dd+UvYvHkzt/MSkdMcWccE/Hst0z1DB2Pjyqe4lokc1q3oAIlEgvLycigUCgDAuXPnMHLkSNTX12PQoEGW+yUkJGDSpElYv359l4/Z0NCAiIgI7Nq1C+np6Z3ez2AwwGAwWP5fp9MhIiKC0QE+wtxJvLy8AkajEVKpFMnJCqhUuSyUiMglzL9n9u4th2AyYePKp9rkMQH2ZTIVlu3Dvn37kJCQwOUBZJVLZ5a+/PJLCIKAyMjINscNBgP69+8PAOjbt6/l+Pz58zukrG7fvh133nmnpQDrTO/evdG7d28XjZxczdxJXK/XQ6fTITg4mL+EiMilWv+eSUtLQ8m+A1iRntSmILK1lumzk6fxt7//AxKJBHPmzIFUKoUiKQm5q1bxQx214dJiyWQyQSqVoqamBlKptM2/mYuk2tpay7H2M0CCIODNN9/EggUL0KtXL1cOjTzAWmEkk8lYJBGRW5nXMcXHxyN30+uWwsi8lik/Z2mHQql1zMDGFYwZINtcWizFxMTAaDTi6tWriIuLs3qfESNGdPr1hw8fxtmzZ7FkyRJXDovcTKvVQl1QgIrKSsslN346IyJPsrZesl9wX6trmVrHDLSfcVqRngSVuhjZ2dmIjo7m7zAC4MSapRs3buDs2bMAbhdHr7zyCqZPn45+/fphyJAhmD9/Pqqrq7Fx40bExMTg+++/x8GDBxEdHY1Zs2bZfOwFCxbgzJkz+Pzzzx1+IWx34h0ajQZKpRKjhw1BZuKMNp/OzIu5+emMiDyl/XpJCdBhLRPbpZCjHC6WDh06hOnTp3c4vmjRImzfvh0//fQT1q1bhx07duDKlSvo378/pkyZgry8PERHR3f6uM3NzRg4cCA2bdqEpUuXOvxCWCx5HpvmEpGvMi8LyMp6Ct+eqLX0ltP/aEBwQjLyc5Z2WAwO3J512rS7AuWHq2EyCZwpJwBspEvdwKa5ROTr2n+o+/s/mzFw9m9Q+dJaJMb9us19W69jypwzkzPlZMHecOQUc9Pc/JzMLpvmri4sgV6v51Q2EXlc+7VMC2cmQBoUZLNdSmfrmJYtW4bw8HBGDAQghxO8iQDnmuYSEXlD695yzxdvh8lkQvHeD+xul9I+YoDp34FH9MVSUVERoqKiMHHiRG8PJaCwaS4RiYm5t1xLSwsqKitxpv5vdrVL0ez9ANOWrcZfL17GxhVPovKltcjPyURdbQ3i4uLw6quvstdcAOCaJXIa1ywRkVgVF9+OBxg9bAjmPhSPF0re7rCOyVb695HjJ7FkfQG+q/8bBIALwf2c6GeWyHvYNJeIxKr1pbm8N3dCAnSYKe/s0pxm7weYrlyD3j17YOPKpzrMNrXvTEHix5kl6pbWn846a5rL3SNE5MvM7VLOn/4aJ96xHTHAXnOBiTNL5BS9Xo+mpiYsWrTI8ulsdWEJFGvysLqwBFET7kdVVRULJSLyeeZ2KXUX/j1Trrt502r6NxeCByZGB5BDbLU22bHjbTbNJSJRsidigL3mAhcvw5Hd2NqEiPxd63YpJqMRIyPCcbr0DQQFBaHp2nWrgZa8NOf/eBmO7KLVaqFUKpGTNgcn3tZA9UQyEuN+DdUTyTjxtgbK1ERkZ2dzupmIRM1WxEDwL34BqbRjoCUvzfk/ziyRXRgTQESBqP0mlrKDR3BddwNf73q9y15zXbVPUavVmDt3LpcuiABnlqhL5tYmmYkzumxtUl5ewXA2IvIbrSMGVheW4M8n6/DXi5e7XAjeun3KiXeK28zGb34mB3eHD4Rq5UqEhYVxtkkEuMCbuuRMaxN+SiIifxEbG4vY2Fjo9XrodDrs3r0bKpXKZq85WxlNloXgK5+yuhB80aJF3CzjY0Q/s8R2J+7H1iZERLcjBgYMGIAVK1bY7DXXWfsUW7NNJ97WIPnBB5CdnQ25vC9nnHyM6IslpVKJ06dP4+jRo94eit+SyWRQJCWhZP+BDkndZiaTCSX7DyA5WcFPQkTk92wtBHcmo+n1ig9RfugzjIwIR37OUvag8zGiL5bI/fR6PRYuWsTWJkRE7chkMsyZMwebN29GYdk+jFuwDG99+EmnGU3WmvW2nnE6/e4Wrm/yQdwNR51qH0ApkUgAQcA9w4Zg6ZyZbG1CRNSKMxlNAJD23DrUXbiEE+8Ud7q+ibvpvIvFElnVWQDlq2UVuNjQBIkkCCaTCVKpFMnJCqhUuey0TUSE27PxH3/8MRQKhSWo0nDrJ6sRA870oDty/CSWrC/Ad/V/gwC06aQwYcIELg53AxZL1IFWq0V8fDzTaImIuqGrjCYAnc44OTrbdPuD7FVIJBLLB1lzAcUPst3HNUvUgbqgAKOHDbG6CDEoKAhqVRai7h6KHTveYqFERNSJrjKaAFhNBXd0N13vXj1xseEqRg0Jx8vLuTjcHTizRG3o9XrI5XLk52R2SKNtTV1ajtWFJWhpaWHBRETUhfYZTebZprvDw/DClrehv3ULp9/dYnN9k7XZJl6u8wzOLFEbzgRQEhGRbdYymlYXlkCxJg8nv7uAM5fqbfag62y2yVb45XTlGvTu2QMbVz5lmW2q+bwacXFx6NuXWU6OYII3tdGzZ08GUBIRuVH7RPDg4GC89dZbyM7OxqfHapGZOAOTokZhS8WHWJGehKCgIKvZTeYCKj9naaeX61oXUZq9H1gu1z2pmN0hPZy76zon+pklJni7hlarRWpKCkJDQ2EyGtuk0bbHAEoiou4zzzbJZLIu1zdZm21yJPyydQH19S77s5z0ej3XO8EPiiUmeHefRqNBfHw86mprkJ+TifXLMtqk0bbGAEoiIvdonQre2NiITZs2WYIuX6/40DLb5MzicFdfrgu0IoqX4QKcVquFUqnsMF0b0rcvlC8X4uMvavCkYrbVAEpuRyUicj2ZTAaZTIYVK1bgvvvug1pdgNWFJTAajQCA3E2vo2DlU5Dd0RuK+AdQsu8jj12umzp1KibExOCrEydgNBoDZtE4i6UA11lMQNbjsxE9/C6od5fj6Ve3QBAESwDllh07WSgREXlA+/VN5t105rVN990zEnsPVVsKKFdermv/d6FXzx5Y/nIRbnx/Ffk5mW0ynuLiyq1mPPlLAcXogAB27do1hIaGdhkT8NI7ZXhOsw1///vf0a9fPw+OkIiI2mvdVsVaK6r24ZfWUsI7Sw7vLAyzs4gCc0hm+1koWyGZYiygRL9miRxnXsz9q1/9yq6YgHuGDobJZMJPP/3koRESEVFn2q9t+uGHH1Cl1WLMfROtLg5vfbnOvN7J1uU6a81+HVk03llIpq11UNbWQPnSuigWSwGm9WLu9csyOnTGtoYxAUREvqf1bjpbi8PVpeW4756RqLvg3O46RxaNu6KAenDaNEyf/iDkcrnP7M7jmqUAYm0x99HT37RZHNgeYwKIiMTD1uJwiUSCwvcq8cnR41g6Z2aHLCdrBRRgexaq/aJxR9ZBWVtIvuOjT/D+n44gMiLcp9ZFcWYpQOj1erz44osYfVfbxdwr5yrafNpojTEBRETi5YrLdYD1iAJHLuPZOwP1y+C+2HuoGsvTk3C69I1uXdZzNc4s+TmtVgt1QQHKKyogmEzY2G53w9TxY1H0TA6ULxfi06PHkTlnJmMCiIj8iHm2CXB8d11QUJDViAJHCyh7ZqC6OyvVOo188+bNyMrKctn3UPTFUlFREYqKiiz5E/RvGo0GSqUSo4cNwQv/Zx5eKHnb6mJuc0zApt3lWP3aGzD+a4qTMQFERP7Jkct1d4eHYWD/fnj/T1qbGU/dKaBccVkPAFakJ0GlLkZ2djaio6Nd9vdL9JfhmODdlnnx26effmpZn3TibQ2emZdq9Vq0Wez4MXhv/e/w+2UZCAoKwtWrV1FWtoeFEhGRn+vqcp1iTR405X9ETEyMzUXj1i7j2VtAdfeynllQUBDUqiyMHjYEanWBy75Hoi+WAlnrXQHmOADz7oFHH3kEkUPCrU6j2ur5tuOjT/D448nMUyIiCjC2dte1tLTgyy+/bNO/7jnNNgBA4XuViJ6f1a0CqrvroloLCgpCZuIMlJdXuGzXHIslkbBVGPXp0wfxcXE4ffwY8nMy8d7vnwckwFOK2W3eTFzMTUREjmhdQAFdz0I5W0B1Z1bKmrvDw2A0GqHT6VzyffCbYslcPXYVaOXqY+5+nq4Kow3LMgAAOelJOPlOMVRPJCPu3rEwmYQObybzYu7Csn0Y96838b6qP0NdWo5xC5ahaM9+LuYmIqIu2ZqFcqaAAjp+oLe3gLLG1fmAom93Yt7tVVFZaWnqNzU2FpIgCaqqtG47pkhKwkMPP4yDn37qtuduH2FvuHULzxVvb7OozVo0fWcx9mbVX53Cpt3l2Hu4GibTv3u+qVS5LJSIiMhlzLvugoOD8eWXX9ps03J3eBje+egg9vypCpER4ch6/DH8eOsWnrfj715rJpMJ4xYsQ9SE+1FWtsclr0PUxVLr3V6ZiTNaBUjssf4AAAmVSURBVFppLd9odxw7d6UBL+0sQ+P313DPXUPwZNJMlz+PPYWRraLInjfT2HlPYcTYcXjvvTIGThIRkUfYKqCkUini4qYCkKCqqspqUWWtgDIzLykp2rMfVVVVLpsAEG10gLU0au1XX1sCrdx1DLi9bbHpH9fd+jxpz61rs9rf2rZKW9duV85VYNqy1W2yMszMb6ZvLtaj5J13WSgREZHH2Mp9ap3Cba2oshVv4M58QNEWS+qCAoweNqTLQCtXH/PE89hbGNm6dts6bPLjL77Ek4pZDJskIiKf1LqAsnbMWlHVvoByZz6gzxdLgiCgpaWlzTG9Xo+Kykrk52TaDLRy9TFPPY+9hZG1ULDWsh6fjTF3D0HiMy/gmVe3wCTcXp/02GOPoUCzBb/+9a9dtlOAiIjIE2QyGX766SdER0dj69Y3UVhYhJaWFsjlcktx1dXfNrlcfvvynp18vlhqaWlBSEiI1X/rKtDK1cc89TyOFEZdXW4rO1gF3Q83LceMRiMqKytRWVlp9XtKRETk75qbmx3aKefzxZJcLkdzc3ObY3q9HuHh4V0GWrn6mKeex5HCqO3ltho8qZj978tt+w6g7sIlvPLKK1iyZInV7+/EiRPdmn6u0+kQERGBy5cvu2wLZ2fc/Vo8+TyeeA5/Ozf+cv797bx46nn4M+Obz+GJ53HmvMjlcoeew+eLJYlE0uHFBwcHQ5GUhJL9ByzFhLUCw9XHAOuFjDuex5HC6MdbtzB0YCi+uVSPZ157A6bWvd3etn3t1pU5FLYEBwe7/Xk89Vo88Tyeei2A/5wbfzr/gP+cF089D39mfPM5PPk87jwvog2lVOXmou78JZuBVu445qnnaR0gOfY/n7QESLYvjBRr8rC6sAT3PzAVVVVa3LhxwxJNb09vN6VS2f2T4SM89Vo88Tz+dF4A//qe+dO58afvmT+dF8C/vmf+cG5EnbNUXHy7s7A5Z8laoJU7jn13pbFDzpK7nufVsgpcbGiCRBLUZsZIpcrFhAkTOmy19DU6nQ4hISEOXx8m9+O58U08L76L58Y3eeS8CCKn1WqF1NQUQSqVCgAEqVQqPPjgNOHBBx9067HU1BRh8+bNbn/u1NQUQavVCjdv3hQaGxuFmzdvevtb7pAff/xReOGFF4Qff/zR20OhdnhufBPPi+/iufFNnjgvop5Zaq2pqQlhYWFobGzEgAEDAKDLkCtXHPPk8xAREZHn+U2xxOlRIiIicge/KZaEf4VXOho0RURERGSL3xRLRERERO4g2ugAIiIiIk9gsURERERkA4sl6rbNmzdj2LBhuOOOO3Dfffehqqqq0/vu3bsXjzzyCH71q18hODgYU6ZMwf/8z/94cLSBxZFz01p1dTV69OiBe++9180jDEyOnheDwYDnn38eQ4cORe/evTF8+HC8+eabHhptYHH03OzcuRPjx4/HL37xCwwcOBAZGRn4xz/+4aHR0pEjR5CYmIhBgwZBIpGgoqLCLc/DYom6Zffu3VCpVHj++edx/PhxxMXFYebMmbh06ZLV+x85cgSPPPIIPvzwQ9TU1GD69OlITEzE8ePHPTxy/+fouTFrbm7GwoUL8fDDD3topIHFmfOSnp6OTz/9FFu3bsU333yDd999F/fcc48HRx0YHD03Wq0WCxcuxJIlS3Dq1CmUlZXh6NGjyMzM9PDIA9cPP/yA8ePHo7Cw0L1P5LYEJwoIkyZNErKystocu+eee4Rnn33W7seIiooS8vLyXD20gOfsuZk7d67wu9/9TnjhhReE8ePHu3OIAcnR8/LRRx8JISEhwj/+8Q9PDC+gOXpu8vPzhbvvvrvNsVdffVUYPHiw28ZInQMglJeXu+WxObNETrt16xZqamrw6KOPtjn+6KOP4rPPPrPrMUwmE1paWtCvXz93DDFgOXtutm3bhnPnzuGFF15w9xADkjPnZd++fbj//vvx0ksvITw8HJGRkXjmmWeg1+s9MeSA4cy5eeCBB1BfX48PP/wQgiCgqakJe/bswezZsz0xZPKgHt4eAInX999/D6PRaElMNxswYAAaGxvteoyNGzfihx9+QHp6ujuGGLCcOTdnzpzBs88+i6qqKvTowV8N7uDMefnuu++g1Wpxxx13oLy8HN9//z2ys7Nx7do1rltyIWfOzQMPPICdO3di7ty5+PHHH/Hzzz9jzpw5eO211zwxZPIgzixRt7UPARUEwa5g0HfffRdr167F7t27ERoa6q7hBTR7z43RaMR//ud/Ii8vD5GRkZ4aXsBy5GfGZDJBIpFg586dmDRpEmbNmoVXXnkF27dv5+ySGzhybk6fPo0VK1bgv//7v1FTU4MDBw7g/PnzyMrK8sRQyYP48ZGc9h//8R+QSqUdPnVdvXq1w6ez9nbv3o0lS5agrKwMCQkJ7hxmQHL03LS0tODYsWM4fvw4cnJyANz+Iy0IAnr06IH//d//xUMPPeSRsfszZ35mBg4ciPDwcISEhFiOjR49GoIgoL6+HiNHjnTrmAOFM+dmw4YNiI2NxerVqwEA48aNQ58+fRAXF4d169Zh4MCBbh83eQZnlshpvXr1wn333YePP/64zfGPP/4YDzzwQKdf9+6772Lx4sXYtWsXr+27iaPnJjg4GCdPnkRtba3llpWVhVGjRqG2thaTJ0/21ND9mjM/M7Gxsfjb3/6GGzduWI59++23CAoKwuDBg9063kDizLm5efMmgoLa/hmVSqUAbs9IkR9xy7JxChilpaVCz549ha1btwqnT58WVCqV0KdPH+HChQuCIAjCs88+KyxYsMBy/127dgk9evQQioqKhIaGBsvtn//8p7degt9y9Ny0x91w7uHoeWlpaREGDx4spKamCqdOnRIOHz4sjBw5UsjMzPTWS/Bbjp6bbdu2CT169BA2b94snDt3TtBqtcL9998vTJo0yVsvIeC0tLQIx48fF44fPy4AEF555RXh+PHjwsWLF136PCyWqNuKioqEoUOHCr169RImTJggHD582PJvixYtEqZNm2b5/2nTpgkAOtwWLVrk+YEHAEfOTXssltzH0fNSV1cnJCQkCDKZTBg8eLCwatUq4ebNmx4edWBw9Ny8+uqrQlRUlCCTyYSBAwcK8+bNE+rr6z086sD1pz/9ySN/U9hIl4iIiMgGrlkiIiIisoHFEhEREZENLJaIiIiIbGCxRERERGQDiyUiIiIiG1gsEREREdnAYomIiIjIBhZLRERERDawWCIiIiL6/+3WgQAAAACAIH/rDSYoioYsAQAMWQIAGAHEhc0QhJUBlQAAAABJRU5ErkJggg==",
      "text/plain": [
       "Graphics object consisting of 1 graphics primitive"
      ]
     },
     "execution_count": 132,
     "metadata": {
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "density = 100\n",
    "points = [ (i/density, dblquad( f_3d, 0, 1, gfun, hfun, args = [i/density] )[0] ) for i in range(density+1)]\n",
    "scatter_plot(points)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "# [Horby et al](https://www.medrxiv.org/content/10.1101/2020.07.15.20151852v1)\n",
    "\n",
    "Let's do the big British randomized control trial. This one studied whether hydroxychloroquine prevented deaths, and the answer was no.\n",
    "\n",
    "> Results: 1561 patients randomly allocated to receive hydroxychloroquine were compared with 3155 patients concurrently allocated to usual care. Overall, 418 (26.8%) patients allocated hydroxychloroquine and 788 (25.0%) patients allocated usual care died within 28 days (rate ratio 1.09; 95% confidence interval [CI] 0.96 to 1.23; P=0.18).\n",
    "    \n",
    "    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 133,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1.07212771976834"
      ]
     },
     "execution_count": 133,
     "metadata": {
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "n((418/1561) / (788/3155))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 134,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
   ],
   "source": [
    "ineffective_proportion = 788/3155\n",
    "effective_proportion = ineffective_proportion * 0.9\n",
    "very_effective_proportion = ineffective_proportion * 0.5\n",
    "dangerous_proportion = ineffective_proportion * 1.1\n",
    "very_dangerous_proportion = ineffective_proportion * 1.5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 135,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
   ],
   "source": [
    "f(x) = x^418 * (1-x)^(1561-418) * binomial(1561,418,hold=True) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 136,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}x \\ {\\mapsto}\\ -{\\left(x - 1\\right)}^{1143} x^{418} {1561 \\choose 418}</script></html>"
      ],
      "text/plain": [
       "x |--> -(x - 1)^1143*x^418*binomial(1561, 418)"
      ]
     },
     "execution_count": 136,
     "metadata": {
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "show(f)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 137,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2.39677198943557e-52\n",
      "8.12393127425579e-6\n",
      "0.00602380538451211\n",
      "0.0188375797027912\n",
      "1.01781031504652e-19\n"
     ]
    }
   ],
   "source": [
    "print(n(f(very_effective_proportion)))\n",
    "print(n(f(effective_proportion)))\n",
    "print(n(f(ineffective_proportion)))\n",
    "print(n(f(dangerous_proportion)))\n",
    "print(n(f(very_dangerous_proportion)))\n",
    "#The n() function makes the output a decimal instead of a huge fraction"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 138,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
   ],
   "source": [
    "total = f(very_effective_proportion) + f(effective_proportion) + f(ineffective_proportion) + f(dangerous_proportion) + f(very_dangerous_proportion)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 139,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "9.63739166561420e-51\n",
      "0.000326662310389288\n",
      "0.242216498122754\n",
      "0.757456839566857\n",
      "4.09260317236747e-18\n"
     ]
    }
   ],
   "source": [
    "print(n(f(very_effective_proportion)/total))\n",
    "print(n(f(effective_proportion)/total))\n",
    "print(n(f(ineffective_proportion)/total))\n",
    "print(n(f(dangerous_proportion)/total))\n",
    "print(n(f(very_dangerous_proportion)/total))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "So hydroxychloroquine is probably dangerous."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 140,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left( x, y \\right) \\ {\\mapsto} \\ {\\left(x - 1\\right)}^{1143} x^{418} {\\left(y - 1\\right)}^{2367} y^{788}</script></html>"
      ],
      "text/plain": [
       "(x, y) |--> (x - 1)^1143*x^418*(y - 1)^2367*y^788"
      ]
     },
     "execution_count": 140,
     "metadata": {
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "var('x y')\n",
    "f_2d(x,y) = x^418 * (1-x)^(1561-418) * y^788 * (1-y)^(3155-788)  \n",
    "show(f_2d)\n",
    "#The binomials are just constants, so I could leave them out."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 141,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
   ],
   "source": [
    "dangerous_volume =  0\n",
    "unsafe_volume =  0\n",
    "safe_volume =  0\n",
    "effective_volume =  0\n",
    "total_volume = 0\n",
    "density = 100\n",
    "for x in range(density):\n",
    "    xx = x / density\n",
    "    for y in range(density):\n",
    "        yy = y / density\n",
    "        value = f_2d(xx, yy)\n",
    "        if 1.1 * yy <= xx: #Raises death rates by at least 10%\n",
    "            dangerous_volume+= value\n",
    "        if  yy < xx: #Raises death rates\n",
    "            unsafe_volume+= value\n",
    "        if xx <= yy: #Does not raise death rates\n",
    "            safe_volume+= value\n",
    "        if  0.9 * yy >= xx: #Lowers death rates by at least 10% \n",
    "            effective_volume+= value\n",
    "        total_volume += value"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 142,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.301958885090088\n",
      "0.839044451427119\n",
      "0.160955548572881\n",
      "0.000510455405632987\n"
     ]
    }
   ],
   "source": [
    "print(n(dangerous_volume/total_volume))\n",
    "print(n(unsafe_volume/total_volume))\n",
    "print(n(safe_volume/total_volume))\n",
    "print(n(effective_volume/total_volume))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 143,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
   ],
   "source": [
    "dangerous_volume =  0\n",
    "unsafe_volume =  0\n",
    "safe_volume =  0\n",
    "effective_volume =  0\n",
    "total_volume = 0\n",
    "density = 300\n",
    "for x in range(density):\n",
    "    xx = x / density\n",
    "    for y in range(density):\n",
    "        yy = y / density\n",
    "        value = f_2d(xx, yy)\n",
    "        if 1.1 * yy <= xx: #Raises death rates by at least 10%\n",
    "            dangerous_volume+= value\n",
    "        if  yy < xx: #Raises death rates\n",
    "            unsafe_volume+= value\n",
    "        if xx <= yy: #Does not raise death rates\n",
    "            safe_volume+= value\n",
    "        if  0.9 * yy >= xx: #Lowers death rates by at least 10% \n",
    "            effective_volume+= value\n",
    "        total_volume += value"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 144,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.306166791525411\n",
      "0.888306834715452\n",
      "0.111693165284547\n",
      "0.000524937366943429\n"
     ]
    }
   ],
   "source": [
    "print(n(dangerous_volume/total_volume))\n",
    "print(n(unsafe_volume/total_volume))\n",
    "print(n(safe_volume/total_volume))\n",
    "print(n(effective_volume/total_volume))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "Ah, now the result is more subtle. Assume we start with a uniform prior. \n",
    "The data tells us that there's an $89\\%$ chance that hydroxychloroquine increases the death\n",
    "rate, but there's only a $31\\%$ chance that it raises the death rate by at least $10\\%$. \n",
    "\n",
    "Of course, the chance that hydroxychloroquine *lowers* the death rate by at least $10\\%$ \n",
    "is miniscule: $0.05\\%$."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 0,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
   ],
   "source": [
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "SageMath 9.1",
   "language": "sagemath",
   "metadata": {
    "cocalc": {
     "description": "Open-source mathematical software system",
     "priority": 10,
     "url": "https://www.sagemath.org/"
    }
   },
   "name": "sage-9.1"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}