Skip to content

Instantly share code, notes, and snippets.

@fbarbalho
Created October 20, 2018 19:58
Show Gist options
  • Save fbarbalho/34990e305b1190511271e32be12f8555 to your computer and use it in GitHub Desktop.
Save fbarbalho/34990e305b1190511271e32be12f8555 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"name": "Charts in Colaboratory",
"version": "0.3.2",
"provenance": [],
"collapsed_sections": [],
"toc_visible": true
},
"kernelspec": {
"display_name": "Python 3",
"name": "python3"
}
},
"cells": [
{
"metadata": {
"colab_type": "text",
"id": "QSMmdrrVLZ-N"
},
"cell_type": "markdown",
"source": [
"# Charting in Colaboratory\n",
"\n",
"A common use for notebooks is data visualization using charts. Colaboratory makes this easy with several charting tools available as Python imports."
]
},
{
"metadata": {
"colab_type": "text",
"id": "xNzEBRkzL3B0"
},
"cell_type": "markdown",
"source": [
"## Matplotlib\n",
"\n",
"[Matplotlib](http://matplotlib.org/) is the most common charting package, see its [documentation](http://matplotlib.org/api/pyplot_api.html) for details, and its [examples](http://matplotlib.org/gallery.html#statistics) for inspiration."
]
},
{
"metadata": {
"colab_type": "text",
"id": "WALI8x49GUpe"
},
"cell_type": "markdown",
"source": [
"### Line Plots"
]
},
{
"metadata": {
"colab_type": "code",
"id": "08RTGn_xE3MP",
"outputId": "908732cc-757d-46d8-ac75-5bdb5ba51cfe",
"colab": {}
},
"cell_type": "code",
"source": [
"import matplotlib.pyplot as plt\n",
"\n",
"x = [1, 2, 3, 4, 5, 6, 7, 8, 9]\n",
"y1 = [1, 3, 5, 3, 1, 3, 5, 3, 1]\n",
"y2 = [2, 4, 6, 4, 2, 4, 6, 4, 2]\n",
"plt.plot(x, y1, label=\"line L\")\n",
"plt.plot(x, y2, label=\"line H\")\n",
"plt.plot()\n",
"\n",
"plt.xlabel(\"x axis\")\n",
"plt.ylabel(\"y axis\")\n",
"plt.title(\"Line Graph Example\")\n",
"plt.legend()\n",
"plt.show()"
],
"execution_count": 0,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAewAAAFwCAYAAAB6jkhYAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XtclHXe//H3DEcR0JRRQPGEpiaggeABBQGVMs+mZrtr\ndW/He8tSuzvYcaut9tRh69ej7d6tzepOt9JaO5gJCh5QQcsTmaIoh0BRA5HzzFy/P2gIFOEC5nsd\n38/Ho8euMMP3Ow7yYWau6zUWSZIkEBERkaZZ1d4AERERtY8Dm4iISAc4sImIiHSAA5uIiEgHOLCJ\niIh0gAObiIhIBziwiTooJycH119/vdrbcJtHH30Ur776qtrbcCsj3iYiDmyiK0hOTkZWVtZlHx87\ndiy++uorYeu+//77mD17NsaMGYNJkyZh6dKl+PLLL4Wt1xHFxcUYMWIEoqOjER0djWuvvRbR0dFC\n/z6IqJGn2hsgol88++yz2L59O55++mnExMTAy8sL3377LT766CPMmDGj1etIkgSLxaLYHi0WC/bu\n3avomkTER9hEHbZnzx4kJiY2/Tk5ORlvv/02Zs+ejdjYWKxYsQL19fVNn9+yZQvmzp2L2NhYLFmy\nBD/88EOrX/fkyZP48MMP8fLLL2PChAnw9vaGxWJBdHQ0XnjhhabL/eY3v8HLL7+MJUuWYMyYMSgq\nKsK6deswY8YMREdHY9q0aVi7du1l+/373/+O8ePHIyUlBRs2bGixdkVFBe666y5ER0dj8eLFKCws\nbPPvoLVAYkNDA+bOnYv3338fAOB0OrFkyRK88cYbAIADBw7gpptuQmxsLCZPnoxnn30Wdru96foj\nRozA//3f/yE1NRUxMTF49dVXUVhYiJtuugljx47F8uXLmy4v5zY1J/c+INI0iYhalZSUJO3cufOy\nj+/evVtKTExscbmFCxdKZWVlUkVFhXT99ddLa9askSRJkg4dOiRNmDBBOnDggOR0OqX169dLSUlJ\nUn19/WVf98MPP5SSk5Pb3devf/1rKSkpScrLy5McDofU0NAgbd26VSosLJQkSZKys7Ol0aNHS7m5\nuU37veaaa6QXX3xRqq+vl/bs2SONGTNGys/PlyRJkh555BEpLi5OOnjwoORwOKSVK1dKK1asaHXt\noqIiacSIEZLdbm/180ePHpXi4uKkvLw86Y033pAWL14sOZ3Opr+L/fv3S06nUyouLpZmzJghvfvu\nu03XHT58uHTPPfdIVVVVUl5enhQRESHdeuutUlFRkVRZWSnNmDFDWr9+vezb9Morr3T4PiDSMj7C\nJnKDpUuXIigoCIGBgUhKSsL3338PAPjoo49w0003ITIyEhaLBXPnzoW3tzf2799/2df46aefYLPZ\nWnwsMTERsbGxiIqKQklJSdPH582bh/DwcFitVnh6eiIxMRH9+/cH0Pgae3x8PHJycpoub7FY8MAD\nD8DLywuxsbFITExs8brz9OnTERERAavVilmzZjXtvzWSJGHChAmIi4tDbGws4uLicOLECQDAsGHD\ncM899+Dee+/Fv/71L/z5z39ueup81KhRiIqKgsViQWhoKBYtWoTs7OwWX/vOO++En58fwsPDMWzY\nMMTHx6Nfv37w9/dHQkJCi321d5tcOnIfEGkZX8MmcoPevXs3/f9u3bqhrKwMAPDjjz/is88+a3qa\nWJIk2O12nDlz5rKv0bNnz8s+npGRAYfDgYiIiBZPQwcHB192uTfeeAMnT56E0+lEbW0thg8f3vT5\nwMBA+Pj4NP05NDS0xVpBQUEt9l9dXX3F22qxWLB79+4rvoY9Z84cvPTSS0hNTUVYWFjTx0+ePIkX\nX3wRhw4dQm1tLRwOB0aNGtXius3/Hn19fVvsy8fHB+fOnZN9m1w6ch8QaRkHNpFAwcHBuPvuu3HX\nXXe1e9nx48fjueeew+HDhy8bZNIlrxk3H5b19fW4//778ec//xkpKSmwWq343e9+1+I6Fy5cQG1t\nLXx9fQEAJSUluPrqqzt9u6Q2DnT7/e9/j6SkJGzfvh179+5FTEwMAODpp5/GNddcg5dffhndunXD\nu+++i02bNnV6D3JvU0fuAyIt41PiRG1oaGhAfX19038Oh6ND11+0aBHWrFmDAwcOAACqq6uRkZHR\n6iPYwYMHY/HixVixYgV27tyJuro6OJ1O7Nu3r80jshsaGtDQ0ICrrroKVqsVGRkZ2LFjR4vLSJKE\nv/3tb2hoaEBOTg62bt3a6XPJJUlq9aAzAPj000+Rm5uLF198EY899hgeeeQR1NTUAACqqqrg7++P\nbt264fjx4/jwww87tX7zfci5TR25D4i0jI+widrgelTmekR59913Y8KECS0u09YwjYiIwLPPPotn\nnnkGBQUF8PHxQUxMDGJjY1u9/JNPPon3338fL7zwAgoLCxEQEIBBgwbhlVdeQWhoaKvrde/eHY89\n9hjuv/9+NDQ0ICkpCSkpKS0uY7PZ0KNHD0yePBl+fn545plnMGjQoI7+dTSt79q/6+9l2bJlSE1N\nxYsvvog333wT3bp1w8yZM5Geno4XXngBzzzzDB5++GE88cQT+Mc//oFrrrkGN9xwA3bt2tXi6166\nTlvk3qaO3gdEWmWRrvSrsptUVlbisccew7Fjx2C1WvH8889j9OjRIpckomb27NmDhx56CFu3blV7\nK25jxNtE1B7hj7D/8Ic/IDExEX/7299gt9tRW1srekkiIiLDEfoa9sWLF5GTk4MFCxYAADw9PeHv\n7y9ySSIiIkMS+pT4kSNH8MQTT2Do0KE4cuQIIiIi8NhjjzUd1UlERETyCH2EbbfbkZubi5tvvhnr\n16+Hr68v3nrrLZFLEhERGZLQgR0cHIzg4GBERkYCAFJTU5Gbm9vmdQQfA0cClNdU4OaP7sOitfdg\nU16m2tshMg2n04llXzyJRWvvwZt73lN7OySY0IPOgoKCEBISgvz8fAwePBi7du1CeHh4m9exWCwo\nK6sUuS3V2GwBhrxtG45vgt3Z+KYM/8n9BqMDR8NqMd4p/ka9/1x4+/Tnu7JDKL3YWNXLPLkbU0NT\n0MMnQOVduZ8R77vmbDZ595nwn6qPP/44HnzwQcyZMwdHjhzB3XffLXpJUlCtvQ6ZxVnw9+qOSQNi\ncabmLA6cbftZFCJyj82nMgAA1w9Lgl1yIKNoRzvXID0TflrXiBEj8Mknn4hehlSyqyQH1fYazBg0\nFVNHTsT2gmykFWRgjC1C7a0RGdqJipPIv3AKEb1H4uaoudh2cg+2FWdh+sAk+Hr6tP8FSHeM97wl\nKcbhdCC9cBu8rJ5I6D8R/QNDENF7JE5UnMKJipNqb4/I0DYXNB4vMnVAAnw8vZHQbwKq7TXYVZLT\nzjVJrziwqdO+KzuEc7XnMS5kLAK8G8+vnzogEcAvP0yIyP1OV5fhQNlhDAwIw9CeQwAACf0nwsvq\nifTCTDicHWvekz5wYFOnSJKEtIJMWGBBStjkpo8P7TkYAwPCcKDsMM5Ul6m4QyLjSi/cBgkSUgYk\nNDXXA7z9MS5kLM7V/oTvyg6pvEMSgQObOiWvPB+nKgsRZRuFPn62po9bLBZMHZgICRLSC7eruEMi\nY6qsv4jdJTno7dvrsmNFUsImwwIL0goyeYqsAXFgU6dsLmg8OnXqgITLPjc6aBR6+/bCrpJsVNZf\nVHprRIaWWbQTDU47ksMmw8Pq0eJzffxsiLKNwqnKQuSVn1BphyQKBzZ1WGnVaRw69z0GBw7EkB6D\nLvu8h9UDyWGT0eC0I7M4S/kNEhlUvaMemcVZ8PPshvEhY1u9jOuXaB5H0rpp0xr/fs6ePYsnnnjE\nLV/z+ed/j4yMdLd8rbZwYFOHpbmOTh2YeMXLTAiNhZ9nN2QW7US9o16prREZ2q6SvbjYUIWEfhOu\neOrWkB6DMKTHQBw69z1Kqk4rvEPtc73mHxQUhGeffVHl3XQMBzZ1SEVdJfaU7oOtW29EBV1zxcv5\neDSeZnKxoQq7S/cquEMiY3JKTqQXZsLT4oGE/vFtXjbl57M10vko+4pKS0uwdOliAMBXX32Oxx77\nH6xcuQxLlszHG2/8rely2dm7cPfd/4Xf/vY3ePLJR1V9i2jh4RQylsyiHbBLDiSHJbSbH03oH4/N\nBRlIL9iG+NBxhsyVEinlwNlclNWcw8SQ2Hbzo1FB18DWrTf2lO7DzCHXaTJX+u/0PGQfOSPrsh4e\nFjgc7R9EFzuiDxYlD5W9B9ejbQDIyzuGd975P3h6euLmmxdg4cKb4O3tjXfffRuvvvoGfHx88cEH\n72LNmvdx6623y17DnfgTlGRrniEdHxLT7uV7+AQgLjiGuVIiN3BlSFNaOdDzUlaLFSkDEpgr7YCY\nmFj4+fnB29sbgwcPQWlpCQ4fPoSTJ0/gnnt+i9tuuxkbN36B06dLVdsjH2GTbM0zpN4e3rKukzJg\nMnaW7GGulKgLmmdIg7v3lXWdccEx+PzEJs3mShclD5X9aFiJN//w9v7lZ5rFYoXD4YAkSYiNHY+n\nnnpO6Npy8RE2yXJphlSu4O59mSsl6qLmGVK5vD2YK21NR85PHzUqEgcP7kdxcREAoK6uFoWFBV3+\nup3FgU2ytJYhlYu5UqLOay1DKhdzpZdr/rr1lS/T+L89e/bEqlVP4emnV+GWW5bgrrv+CwUFp1q9\nzl/+8gLmz78B8+ffgHvu+S93bvmXfUkazOEY9X1P9fqerpIk4c85r6OgsghPjn+wRdmsuSvdPrnX\n1zq93n9y8fZp04c/rMP24l34r1G/Qkzf0a1epq3bJuf6WqfX+04uzbwfNunflTKkcjXPlaYVbhOw\nQyJjaitDKhdzpcbBgU3taitDKpcrV7q7JIe5UiKZ2sqQysVcqXFwYFOb2suQysVcKVHHyMmQysVc\nqTFwYFOb5GRI5WKulEg+ORlSuZgrNQYObLoiuRlSuZgrJZKnIxlSuZgr1T8ObLqijmRI5UroHw9P\niwfSC7bBKTnd8jWJjMaVIY0LjnZbVrR5rrSizrhHXBsZBza1qqMZUrmYKyVqX0cypHIxV9pIqbfX\ndK3jThzY1CpXhjSh3wTZGVK5UgZMBgCk/Xz0ORH9ojMZUrnGBcfA36s7thVnodZe59avrRdKvb2m\nnEBLR3Fg02U6myGVi7lSoivrTIZULuZKf8G31yRDcGVIJ/Ub3+EMqVxTByTi0LnvsbkgE3dGDhKy\nBpHedCVDKldC/4n4pmAr0gszMbnf+E6f391V6/I+x7dnDsq6rIfVAoez/ejLtX0iMX/oTNl7cOfb\na77++qt4991/AhDXFefAphYkSUJaQSYssCAlbLKwdYb2HIyBAWE4UHYYZ6rLdJsrJXKn9MJtkCAh\nZUCCkKdUASDA2x/jQsZie/EufFd2SLe5Undzvb0mgKa316ysrGx6e01JkmC32xEREdXq9e+9934k\nJiY3/Xn69K6fCnspDmxqwZUhHW2LEDpEXbnSfx56H2mF27Bk+HxhaxHpgTsypHKlhE3GjuLdSCvI\nRHSfKGG/HLRl/tCZsh8N8+01G/E1bGrBHRlSuZgrJfqFOzKkcpk5Vyrq7TW7so5cHNjUxF0ZUrmY\nKyVq5M4MqVxmzZWKenvNzqzTUXx7TQVp/S3iPvj+I+wsycYdkUs79ZRcZ25fnaMej+/4A6wWK56d\n+KjbTyFzJ63ff13F26eezKIsrD26HtcNTMas8Os6fP3O3ra/7v1/OFFxCo+PW4kQN59C5k5avu/c\ngW+vSR3i7gypXMyVktmJyJDKxVypvnBgEwAxGVK5XLnStIJM5krJdERkSOVirlRfOLBJWIZULleu\ntKzmHHOlZDoiMqRyMVeqLxzYJDRDKhdzpWRGIjOkcjFXqh8c2CYnOkMqF3OlZEYiM6RyMVeqHxzY\nJufKkI4LGSssQyrX1J8PgDHbaSZkTkpkSOVK6D8RXlZPpBdmwuF0qLoXujIObBNTKkMq16W5UiIj\nUyJDKpcrV3qu9id8V3ZI1b3QlXFgm5grQxplG6WJlrcrVypBQlrhNrW3QySMkhlSuVLCJsMCC9IK\nMoW9eQV1DQe2iSmZIZWLuVIyAyUzpHKZOVeqFxzYJqV0hlSuFrnSop1qb4fI7dTIkMpl1lypXnBg\nm1Sa6+jUge5/C7iumhAaCz/PbsgszkK9o17t7RC51a6SvbjYUIWEfhPg6+mj9nZaGNJjEIb0GIhD\n575HSdVptbdDl+DANiG1MqRyMVdKRqVmhlQu5kq1iwPbhNTMkMrFXCkZkZoZUrmYK9Uubf60JmHU\nzpDKxVwpGZGaGVK5mCvVLg5sk9FChlQu5krJSLSQIZWLuVJt4sA2Ea1kSOVirpSMRAsZUrmYK9Um\nDmwT0VKGVC7mSskItJQhlYu5Uu3hwDYJrWVI5WqeKz3NXCnplJYypHIxV6o9HNgmobUMqVzNc6Xp\nzJWSDmkxQyoXc6XawoFtElrMkMrFXCnpmRYzpHIxV6otHNgmoNUMqVzMlZJeaTlDKhdzpdrBgW0C\nWs6QysVcKemRljOkcjFXqh0c2Aan9QypXMyVkt7oIUMqF3Ol2sCBbXB6yJDKxVwp6YkeMqRyMVeq\nDcJ/gicnJ2P27NmYO3cubrzxRtHLUTN6yZDKxVwp6YkeMqRyMVeqDcIHtsViwXvvvYdPP/0UH3/8\nsejlqBk9ZUjlYq6U9EBPGVK5mCtVn/CBLUkSnE4+fak0vWVI5WKulPRATxlSuZgrVZ8ij7B/+9vf\nYsGCBfj3v/8tejn6mdIZ0ryiCnyxI1+RuAJzpaRlSmdIz1bUYM03P6DBLj4fylypujxFL7BmzRrY\nbDacP38et912G4YMGYKxY9s+H9Fm0/cBGm1R4rZJkoSM77bDAgsWjr4etgCxazocTvzj71k481MN\nBv1uEkYN6S10vaCgKGw4NRAHyg6jwbcaoQHKPeVo5O9NgLfPHT7N2QAJEuZFpKJPn0Dh6/19Qy52\nHy6Fn48nZieEC13LhgBMGTwB3xzfhhN1xzFxgHLHxhj9e1MO4QPbZmvMYPbq1QvTpk3DwYMH2x3Y\nZWXGPArRZgtQ5LYd++kEjp8/hdG2CHjWdkNZrdg1d+eexpmfagAAa74+gmU3RgldDwCmhE7G8fPv\n4+P9G7Fk+Hzh6wHK3X9q4e3rusr6i9ian4Xevr0wxCdc+Hol56qw53ApAGDdljzEDQ+Ch1XsE6cT\nbeOx+fh2rD/0NYb6DlOkjW6G7005hN6zNTU1qKqqAgBUV1dj+/btGDZsmMglCcpmSCVJwsbdBbAA\n6Gfrju/yzqLkXJXwdZkrJS1SOkO6KbsQEoCwvv44d6EWOUfEv0EOc6XqETqwz549i5tvvhlz587F\n4sWLkZycjEmTJolc0vSUzpD+UFCOU6crET3cht/MaAyzfL2nUPi6zJWS1iidIb1QVY8dB0th6+mL\nx24bBwuAjbsLFDqOhLlSNQh9SjwsLAyfffaZyCXoEkpnSDfuKQAAXBc3ALERIejTsxt2HirFvIQh\n6NFd7KlkE0Jj8UX+JmQWZ2HawCmGOXWN9MmVIb1uYLIiGdK0vUWwO5yYHjsA/Wz+iB5uw94fynCk\noBwjB14ldO1Lc6UhBjl1Tev0nb6iFpTOkBaXXcSB4+cwrH8PhPfrAQ+rBdPjwmB3OJG+t0j4+syV\nklYonSGta3AgfV8R/Lt5YVJUCADgunEDAABf//xLtGjMlSqPA9tAlM6Qup76vi5uQNPH4iND4N/N\nC+n7ilBXr8RpJsyVkvqUzpBuP1CCqlo7kq7tBx+vxtfKw0N7YFj/Hjhw/ByKy8Qf18FcqfI4sA1C\n6Qxp+cU6ZB0uRd9efhg9LKjp4z5eHki6th+qau3YfrBE+D6YKyUtUDJD6nRK2JRdAE8PK5Jj+rf4\nnOuXZyWOI2GuVHkc2AahdIY0bW8RHE4JqXFhsF5yWkdKTH94elixKbsATqf4A2BcuVLXD00iJSmd\nId13tAxl5bWIjwy+7DiR0cOC0LeXH7IOl6L8ovh8KHOlyuLANgClM6Q1dXZs2VeMAD8vTBwVfNnn\nA7t7Iz4yGGXltdh3VPxpJq5caf4F5kpJeUpmSCVJwsY9jadRTo8Nu+zzVosFqXFhcDglbM4RfxwJ\nc6XK4sA2AKUzpNsPlKC6zo6UmP7w9mr9XNPpsWGwAPhKsdNMmCsl5SmdIT1WVIETP17AmGFBCOnd\nvdXLxEcEI9DPC1u/LUZNnV34npgrVQ4Hts5JkoS0gkxYYEFK2GTh6zmcTmzKLoS3pxVJ1/a74uVC\nenfHmGFByC+5gGNFFcL3NbTnYAwMCMOBssM4XS3+UT0RAKQXboMECSkDEhQpfrmOAE9tdqDnpbw8\nPZAc0x/VdXZsPyD+OJIAb3+MCxmLc7U/4buyQ8LXMzMObJ3LK8/HqcpCRNlGoY+fTfh6OUfKcO5C\nLeKjQhDg1/Zr5a4fKht3iz/NxGKxYOrAREiQkF64Tfh6RJX1F7G7JAe9fXthjC1C+Hol56rw3bGz\nGBIaiGH9e7R52aRr+8Hb04pN2YVwKPBuiSlhk2GBBWkFmYo8o2ZWHNg6p1aGNLWV188uNax/D4SH\nBjJXSoakVob0urgB7T6aD/DzxqSoEOZKDYYDW8fUzJD2ucqv3ctbLJamR9nMlZKRqJkhjb5a3jNp\nruNImCs1Dg5sHVMzQypX9NW2plxpRVW9qK01mRAaCz/PbsgszkK9Q/x6ZE6uDGlCvwmKZ0itVnmv\nlfe5yg/Rw204dboSRwrKBe/w8lwpuR8Htk6pnSGVy6pirnRXCXOl5H5ayJDKxVypsXBg65QWMqRy\nqZUrTS9krpTcTwsZUrmYKzUWDmwd0kqGVC7mSslItJIhlYu5UuPgwNYhLWVI5WKulIxASxlSuZgr\nNQ4ObJ3RWoZULuZKyQi0lCGVi7lS4+DA1hktZkjlYq6U9EyLGVK5mCs1Bg5sHdFqhlQu5kpJz7SY\nIZWLuVJj4MDWES1nSOVirpT0SMsZUrmYK9U/Dmwd0XKGVC7mSkmPtJwhlYu5Uv3jwNYJrWdI5WKu\nlPRGDxlSuZgr1TcObJ3QQ4ZULuZKSU/0kCGVi7lSfePA1gG9ZEjlYq6U9EJPGVK5mCvVLw5sHdBT\nhlQu5kpJD/SUIZWLuVL94sDWOL1lSOVirpT0QG8ZUrmYK9UnDmyN02OGVC7mSknL9JghlYu5Un3i\nwNYwvWZI5WKulLRMjxlSuZgr1ScObA3Tc4ZULtVypXyUTW3Qc4ZULuZK9YcDW6P0niGVS7Vc6dlc\n5krpivScIZWLuVL94cDWKCNkSOVirpS0xAgZUrmYK9UXDmyNMkKGVC7mSklLjJAhlYu5Un3hwNYg\no2RI5WKulLTCSBlSuZgr1Q8ObA0yUoZULuZKSQuMlCGVi7lS/eDA1hijZUjlYq6U1GbEDKlczJXq\nAwe2xhgxQyoXc6WkJiNmSOVirlQfOLA1xKgZUrlUzZWWHRa+HmmbUTOkcjFXqn0c2Bpi5AypXKrl\nSvnUnKkZOUMqF3Ol2seBrRFGz5DKxVwpqcHIGVK5mCvVPg5sjTBDhlQu5kpJSWbIkMrFXKm2cWBr\ngFkypHIxV0pKMkOGVC7mSrWNA1sDzJQhlYu5UlKCmTKkcjFXql0c2BpgpgypXMyVkhLMlCGVi7lS\n7eLAVpnZMqRyMVdKopkxQyoXc6XaxIGtMjNmSOVirpREMmOGVC7mSrWJA1tFZs2QysVcKYli5gyp\nXMyVag8HtorMnCGVi7lSEsHMGVK5mCvVHg5slZg9QyoXc6UkgtkzpHIxV6otHNgqYYZUPuZKyZ2Y\nIZWPuVJt4cBWATOkHcNcKbkTM6TyMVeqLRzYKmCGtOOYKyV3YIa045gr1Q4ObIUxQ9o5zJWSOzBD\n2nHMlWoHB7bCmCHtPOZKqSsu1FYyQ9pJzJVqgyID2+l0Yt68ebj77ruVWE7TmCHtPOZKqSs25mUw\nQ9pJzJVqgyIDe/Xq1QgPD1diKU0rulDCDGkXMFdKnVXvqMfXeRnMkHYBc6XqEz6wS0tLkZGRgYUL\nF4peSvM+P7IZADOkXaFWrjSjeCfq7MyV6tWukr2orLvIDGkXqJkrLaoQ/9q5Hggf2M8//zweeugh\n3T8l1FUVdZXIPLWHGdIuUitXWtVQjYyTWcLXI/drypBaPZkh7SK1cqWf/7BZkfW0TujA3rp1K4KC\ngjBy5EjTHziQWbQDdqedGVI3UCtXuuGHNOZKdciVIU0YGMcMaReplSvNPLWHuVIAniK/+L59+5Ce\nno6MjAzU1dWhqqoKDz30EP70pz+1eT2bTfw/KiXVNtRiW8kuBPj4Y2bkFPh4ij1a+/yFWuzKLUU/\nW3dMnTBY0afklLrvbpg0GGu/OYr9+edxwySx59PaEICEweORfmIHTtafwLj+1wpdT01G+7cHABn7\ntwMAZo6YClug2NvncEpI21cEL08rFk4fjqsCfIWu15xS992iacPxh3f2IONAKe6/Sfy/hTnXTMc/\n9n6I7PPZWBI1R/h6WiZ0YK9YsQIrVqwAAOzZswdvv/12u8MaAMrKjPWb1NbCHaiqr8aNo27AhZ/q\nAIhN7n2ScRx2h4SUmP44d065o5tttgDF7rsJI/rgk/Q8fLLlGMYOCxL+S0m8rXFgrzv4NYb4DBW6\nllqUvP+UcqLiJI6eO4GI3iPRPzBE+O3LOXIGpeeqkTgmFPbaBpTVNghdz0XJ+25wn+7o28sPW/YW\nYsa4MPT0F3tMwCj/CAT4+OPrYxmYZItX5BgEpcn9ZYvnYQvWPEN63VDxB5vpPUMqlxq50ujQSOZK\ndeaXDKn4f3t6z5DKpXyu1AvXDU1krhQKDuy4uDi8+eabSi2nGc0zpIG+yrx+pvcMqVxK50pnD58G\ngLlSvWiZIR0sfD0jZEjlUjpXmjo0kblS8BG2UMyQiqV0rnSkbShzpTrCDKk4SudKA30DmCsFB7ZQ\nzJCKx1wptaay/iIzpIIxV6o8DmyBmCEVj7lSak1m0U5mSAVjrlR5HNiClFadZoZUAcyV0qXqHfXI\nLM5ihlQBzJUqiwNbkDTX0anMkAqnZq603sFcqdbsKtmLiw1VzJAqQM1caUnVaeHraQ0HtgAVdZXY\nU7qPGVJZBe8EAAAgAElEQVSFqJkr3VWyV/h6JF9ThtTiwQypQtTKlaab8FE2B7YAmUU7YJcczJAq\nSK1caXphJnOlGuLKkMYFRzNDqhC1cqV7SveZLlfKge1mtfY6ZBZnwd+rO8aHxAhfr/xiHbIOl6Jv\nLz+MHhYkfD2t8vHyQNK1/VBVa8f2g+JPM+nhE4C44BiU1ZzDgbLDwtcjeVznyKcocKCn0ylhU3YB\nPD2sSI7pL3w9LbtOweNIrBYrUgYkwC45kFG0Q/h6WsKB7Wa7SnJQba9BQr8J8PYQf2pV2t4iOJwS\nUuPCYDXJ0alXkhLTH54eVmzKLoDTKf4AmJQBjefWm/UAGK05UXES+RdOIaL3SAR37yt8vX1Hy1BW\nXov4yGD06G6O0yivZPSwIPTt5Yesw6Uovyg2vQwA44LHwt+rO7YVZ6HWLn49reDAdqPmGdKE/hOF\nr2eWDKlcauRKI3qPZK5UI5ghVY8audKE/hNNlyvlwHaj5hnSAG9/4euZKUMql9K5UtdwYK5UXcyQ\nqk/pXGlCvwmmy5VyYLsJM6TaoHSudGjPwcyVagAzpOpTOlca4O1vulxpuwM7Pz8fdXWNrxFs27YN\nb731FioqxP8g1BtmSLWDuVJzYYZUO5grFavdgf3AAw/AarWisLAQTz31FAoLC/Hwww8rsTddYYZU\nO5grNRdmSLWDuVKx2h3YVqsVXl5eyMjIwJIlS/Dss8+ipET80x16wgyptjBXah7MkGoPc6XitDuw\n6+rqcPbsWWzZsgXjx48HAFM89dARzJBqj1q50sziLOZKFcQMqfYwVypOuwP7lltuwXXXXQc/Pz9E\nRkaisLAQAQHiC0J6wQypNqmVK73YUMVcqUKYIdUu5krFaHdgL168GDk5OXjttdcAAKGhoXjnnXeE\nb0wvmCHVLuZKjY0ZUu1irlSMK06YvXsbHyVkZGS0+G/79u3IyspSbINaxgyptjFXamzMkGobc6Xu\n53mlT6xfvx4xMTH4xz/+cdnnLBYLEhOVeb1Wy1wZ0hmDpjJDqlEpMf3x1e4CbMouQNK1/YS/7pgy\nYDJ2luzB5oJMjOkTKXQtM1MrQ5o4JtT0GVK5mudK5ycOQU9/sccYjAsei89PbMK24ixMH5ikyDEN\nSrviwH7uuecAAO+9955im9ETZkj1wZUrzfjuR+w7WoaxI/oIXc+VKz107nucqDipyFkDZsQMqfa5\ncqWrN/6AzTlFuHFKuND1XLnSL/O/wa6SHEwJE39cg9LafdF17dq1Lf7sdDrx0ksvCduQXjBDqh/M\nlRoLM6T6wVype7U7sL/66issX74cVVVVOH36NH7961/j9GljHzrfHmZI9YW5UmNhhlQ/mCt1r3YH\n9jvvvIOhQ4di/vz5WLJkCRYuXIg//vGPSuxNs5gh1R+lc6UpAxKYKxWAGVL9Ya7Ufdod2E6nExcv\nXoSnpyckSYKPj/FeyO8oZkj1R+lc6RhbBHOlAjBDqj/MlbpPuwN7yZIlqKysxLp167B69Wq88847\nePLJJ5XYmyYxQ6pPzJXqHzOk+sVcqXu0O7B/9atf4bnnnoOPjw/CwsLwwQcfwNfXV4m9aRIzpPrF\nXKm+MUOqX8yVuke7A3vOnDkt/uzt7Y1Vq1YJ25CWMUOqb8yV6hczpPrHXGnXtTuwKysr8de//hV3\n3HEHli5d2vSfGbkypCkDmCHVK+ZK9emXDGkMM6Q6pUautE+3IEPlStudOqtWrYKHhwdOnjyJRYsW\nwcPDA1FRUUrsTVOaZ0jHBTNDqleq5krP5gpfz6h+yZCKP42SGVJxlM6VJg+YbKhcabsD+9SpU3jg\ngQfg6+uLmTNn4u9//ztycnKU2JumuDKkCf0mMEOqcykx/eHpYcWm7AI4neIPgHENGYZUOketDGl8\nZDAzpG7WPFdafrFO+HrjgsfC36s7thVnodYufj3R2h3Y3t6N37BeXl4oLy+Hl5cXzp8/L3xjWsIM\nqbG4cqVl5bXYd1T8aSauXGn+hVM4UXFS+HpGwwypcbhypQ6nhM054o8jceVKq+012FWi/wea7Q7s\nQYMGoby8HLNmzcLixYuxcOFCjBo1Som9aQYzpMajWq7UQAfAKIEZUuNhrrTzrvjmHy5/+ctfAAC3\n3XYbIiMjUVlZiYQE8cEQrWCG1JhcudJvj53FsaIKXB3WU+h6TbnSssM4XV2GvgoU8oyAGVLjceVK\nP92Wj+0HSjBN8DMZrlzp9uJd+K7sEGL6jha6nkgdOtR57NixSEpKgoeHeR71MUNqXMyVahszpMbF\nXGnniD83SeeYITUu5kq1jRlS42KutHM4sNvADKmxMVeqXcyQGh9zpR3X7sCuq9P/ofCdlVbQ+NQl\nM6TGpXSudHzIWOZKZWCG1PjUzJWW6jRX2u7ATk5OxosvvohTp04psR/NaMyQ7mWG1OCUzpX6evow\nV9oOZkjNQ61caZpOH2W3O7D/85//IDAwELfeeituv/12bNmyRdcv2svFDKl5MFeqLcyQmgdzpR3T\n7iTq3bs3/vu//xubN2/GokWL8Pvf/x4pKSl4++23Dft0OTOk5sJcqbYwQ2ouzJXKJ+uhY01NDT76\n6CO8/vrrGDBgAJYvX44TJ07gjjvuEL0/VTBDaj7MlWoDM6Tmw1ypfO0O7GeffRbTpk1Dbm4u/vrX\nv2L16tWYNWsWnnvuOZw5c0aJPSqKGVJzYq5UG5ghNR/mSuVrd2CHhITgyy+/xDPPPINhw4a1+Nzq\n1auFbUwtzJCaF3Ol6mKG1LyYK5Wn3YF9++23IzAwsNXP9enTx+0bUhMzpObmypXml1zAsaIK4etd\nmis1O2ZIzcuVK62us2P7AfHHkbhypedqf8J3ZYeEr+cuDKc0wwwpMVeqDmZIibnS9nFgN8MMKTFX\nqg5mSIm50vZxYP/MlSEd0oMZUjNjrlR5zTOkE0Jjha/HDKl2KZ8r1ddxJBzYP3NlSFMUODoVYIZU\ny5grVVbzDKmPQqdRMkOqTcrnSgfqKlfKgQ1mSKkl5kqVwwwpXYq50ivjwAYzpHQ55kqVwQwpXYq5\n0isz/cBmhpRaw1ypMpTMkDqYIdUN5kpbJ3Rg19fXY+HChZg7dy5mzZqF119/XeRyncIMKV0Jc6Vi\nKZ0h3XWohBlSnWCutHVCB7a3tzdWr16NTz/9FJ9++ikyMzNx4MABkUt2iNIZ0uraBmZIdYS5UrGU\nzpCu35LHDKlOMFfaOuFPiXfr1g1A46Ntu118cq4jlM6Qbt5TwAypzjBXKoYaGdIfCn5ihlRHmudK\nq2sbhK+nh1yp8IHtdDoxd+5cxMfHIz4+HlFRUaKXlEWNDOlnmceZIdWZ5rnS3PzzwtczS66UGVJq\nT/Nc6WYFjhjXQ65U+MC2Wq1NT4fv378feXl5opeURY0M6Zmfapgh1SHXD/n1W8V/75ohV6pWhnT4\ngKuYIdUZV670s8zjzJUC8FRqIX9/f8TFxWHbtm0YOnRom5e12cSf3vHPI41HA94YdR1sQWLXkyQJ\nm/fthcUC3JQ6ArYg8U+/q0WJ+05pQUH+GL49H7sPl+LWmdegfx+xt3Fa7wn4/ORG7C7di1vHzkeg\nr3J/p0rcf1sOZaDBacfskVMR3Len8PXWbj0OCcC8KUPRp0/rb2RkBEb8t2cDMG3cQHyxIx9Hf6xE\nwrVij+63IQCxhaOxp/g7nEUprrFdLXS9jhI6sM+fPw8vLy8EBASgtrYWWVlZuPPOO9u9XlmZ2HPh\nSqtOY9+PBzGkx0D0kvoIX+/7Uz/heFEFJkaFwEuShK+nFpstwLC3LeXafvjh1E9Y8/UR3HLdCOHr\nJYZOwkfHPsO6/Ztww5DpwtcDlLn/6h312Hh0K/w8uyEyMEr4ehVV9UjLLoStpy/GR4YY9vvTyP/2\nJkf0xZc78/Hvb45iRL9A4S+hTA6Ox57i7/DxgY24Z7QycR25v2wJfUq8rKwMS5cuxZw5c7Bw4UJM\nmjQJiYnKpD/bonSG1PX62bwpbT+zQNoVfbUNIb27Y8dB5kq7QukMaXqzDKkHM6S61OcqP0yIDGGu\nFIIH9vDhw7F+/Xp89tln2LBhA+655x6Ry8miZoZ0xMBewtcjMaxWC+YkhquSK91daoxcKTOk1Fnz\nf36wY/ZcqelKZ8yQUmelxIapkitNKzBGrpQZUuqs4QN7MVcKkw1sZkipK3y9PZEcrXSuNNowuVIl\nM6TOZhnSFGZIDeGXNwUxb67UVAObGVLqquRopXOlCQD0nytVOkO672hZU4Y0kBlSQxg9lLlS0wxs\npTOkNXV2ZkgNiLnSzlE6Q7pxTwEzpAbDXKmJBrbSGdLtB0qYITUo5ko7Ro0M6YkfLzBDakDNc6U1\ndeJT11rLlZpiYKuRId2UXcgMqUE1z5UeK6oQvp7ec6XMkJK7NM+Vbj8g/jgSreVKTTGw1ciQnrtQ\nywypgbmGwcbd4k8z0XOuVK0M6ZDQQGZIDcqVK92UXWi6XKkpBvbmgsYDdqb+fACPSJIkYePuxtfP\nUvn6mWEN698D4aGB+C7vLErOVQlfb4wtAr19e2F3SQ4q68Wf1uIumUU70eC0IzlsMjys4l8a2pRd\nCAmNp1Eq8WielBfg541JUSE4d6EWOUfEP+PUx8+GKNsonKosRF75CeHrtcXwA7u06jQOnfv+53rN\nIOHrHSkox6nTlYgebkOfq/yEr0fqsFgsTY+yN2WLP83Ew+qB5LDJaHDakVm0U/h67lDvqEdmcRb8\nPLthQmis8PUqquqx42ApbD19EX21+GfSSD2u40g2muw4EsMPbLUypAylGF/01Tb06dmNudIrUDND\namWG1ND6XOWH6OE20+VKDT2w1cyQhvfj62dGZ7VaMD0ujLnSVjBDSqL9ElIxT67U0AObGVISLT4y\nhLnSVjBDSqKFh/YwXa7UsAObGVJSgo+XB3OlrWCGlJRgtlypYQc2M6SkFLVypWkF2syVMkNKSjFb\nrtSQA5sZUlKSWrnSExXazJUyQ0pKMVuu1JADmxlSUhpzpY2YISWlmSlXariBzQwpqYG50kauDOnU\ngYmKhEtcpTlmSM1LjVzp+JBYVXKlhhvYzJCSWsyeK22eIR0dNEr4eiXnqvBdHjOkpHyuNDlskiq5\nUsMNbGZISS1mz5WqkSEFmCEl8+RKDTWwmSElNZk5V8oMKanNDLlSQw1sZkhJbWbNlTJDSmozQ67U\nMAObGVLSAjPmSpkhJa0weq7UMAObGVLSiha50gbj50qZISWtMHqu1BADu+7n18+YISUtaJErVeA0\nE7VzpcyQkpaolSvNVCBXaoiBnfVjNjOkpClmyZUyQ0pao1auNFOBXKnuBzYzpKRFZsmVMkNKWmPk\nXKnuBzYzpKRVyudKGx9lK3WaCTOkpFVGzZXqemAzQ0papnyudEhTrvSMArlSZkhJq4yaK9X1wGaG\nlLROrVxpmuBcKTOkpHVGzJXqemAzQ0paZ9RcKTOkpHVGzJXqdmAzQ0p6YMRcKTOkpBdGy5XqdmAz\nQ0p6YbRcKTOkpBdGy5XqcmAzQ0p6YqRcKTOkpDdGypXqcmAzQ0p6Y5RcKTOkpDdGypXqbmC3zJCO\nFb4eM6TkDkbJlTJDSnpklFyp7gZ2U4a0/0R4e3gJX48ZUnIXvedKXRnSyCBmSElfjJIr1dXAbpEh\n7TdB+HrMkJI76T1X6jryNSWMGVLSF6PkSnU1sJkhJb3Ta66UGVLSOyPkSnUzsJkhJSPQa66UGVLS\nOyPkSnUzsJkhJaPQW66UGVIyCr3nSnUzsJkhJaNQJ1d6VadzpcyQklHoPVeqi4HNDCkZiTq50oTG\nXGlxVoeuywwpGY2ec6W6GNjMkJLRqJYrLdrZoVwpM6RkNHrOlWp+YDNDSkakh1wpM6RkVHrNlWp+\nYDNDSkalVq40vWCbrFwpM6RkVHrNlWp6YDNDSkamVq70TM1ZWblSZkjJyPSYK9X0wGaGlIxOq7lS\nZkjJ6PSYK9XswGaGlMxAq7lSpTOkX+1mhpSUpcdcqWYHNjOkZBZNp5ns0UauVI0MaX4JM6SkPL3l\nSjU5sJkhJTNx5UpP/KiNXCkzpGQWesuVanJgM0NKZqOVXCkzpGQ2esqVanJgM0NKZqOVXCkzpGQ2\nesqVam5gF10oYYaUTEcLudI6OzOkZE56yZUKHdilpaVYunQpZsyYgVmzZmH16tXtXufzH9IAMENK\n5qN2rjTjZBYzpGRKesmVCh3YHh4eePTRR/Hll19izZo1+OCDD3D8+PE2r5N5cjczpGRKauZKs0py\n8PkPacyQkmnpIVcqdGDbbDaMHDkSANC9e3eEh4fjzJkzbV7H7rQzQ0qmpVaudH3eFyi9WMYMKZmW\nmrlSuRR7DbuoqAhHjhxBVFRUm5cL8PFnhpRMS61caYOzAQAzpGRuauVK5fIUuJ8mVVVVWLZsGVat\nWoXu3dsOI8wYloR+wb2E7+mr7EI4nBJuTB6Gvn0Cha/nYrOJf/SiJt6+rls4bQS+2l2AtH1FWDh9\nBDwEv757o8/12F26F9GhkYgcNFToWgCwY/+PKCuvRer4gQgf1Fv4es0Z+fvTyLcNUOb2Te3tj3WZ\nJ7ArtxR3zI9Cr0BfoevNvGoKNp5Kk3154QPbbrdj2bJlmDNnDqZOndru5eeNvA5lZZ1/NxM5aurs\n+GJ7PgL8vBA5sKfw9VxstgDF1lIDb5/7TIwIRsZ3P2LTjhMYO6KP0LV84I9VcSsQ3i9U+O2TJAlr\nv/kBFgAJkcGKfr8Y+fvTyLcNUPb2pcT0x+qNP2Dt10dw45Rw4es9GH2v7MsKf0p81apVGDp0KG65\n5RZZl7daxT9LzwwpaZ3SudLg7n3g59VN+DrMkJLWKZ0rvcq3p+zLCp2Oe/fuxYYNG7Br1y7MnTsX\n8+bNQ2Zm197Au6uYISU9UDpXqhRmSEnrlM6VdoTQp8RjYmLw/fffi1yiw1wZ0qTofsyQkqalxg3A\nt8fOYuPuAlwdJv+3cK1ihpT0Iunafvgy6xQ2ZRciOaYfPBR45lcObexCIcyQkp4onSsVjRlS0gul\nc6VymWpgM0NKeqJ0rlQkZkhJb5TOlcphqoHNDCnpjdK5UlGYISW9UTpXKodpBjYzpKRHSudKRair\nZ4aU9EnpXGl7TDOwmSElvVI6V+pu2w8yQ0r6pHSutD2mGNjMkJKeKZ0rdSdmSEnvlMyVtscUAztt\nbxEcTgmpcWGw8uhU0qHk6P7w9LBiU3YBnE5tHAAjx76jZSgrr0V8ZDACu/M0StKf0UOD0LeXH7IO\nl6L8Yp2qezH8wK6ps2PLvmIE+Hlh4qhgtbdD1CmB3b0RHxmMsvJa7DuqndNM2iJJEr76+TTK6TyN\nknTKarEgNS4MDqeEzTnqHkdi+IHNDCkZhdK50q5ihpSMQulc6ZUYemAzQ0pGordcKTOkZBRayZUa\nemC7MqTxUSHMkJIhuIafVk4zuRJmSMlokq7tB29PKzZlF8LhdKqyB8MObGZIyYiacqXHtJ0rZYaU\njEYLuVLDDmxmSMmIXLlSCdrNlTJDSkaldq7UsAObGVIyKq3nSpkhJaNSO1dqyIHNDCkZmZZzpcyQ\nktGpmSs15MBmhpSMTqu5UmZIyejUzJUabmAzQ0pmoMVcKTOkZBZq5UoNN7CZISWz0FqulBlSMgu1\ncqWGGtjMkJKZaClXygwpmUnzXGmagseRGGpgM0NKZqOVXCkzpGQ2rlzpln3K5UoNM7CZISUz0kqu\nlBlSMhs1cqWGGdjMkJJZqZ0rZYaUzErpXKkhBjYzpGRmaudKm59GyQwpmYnSuVJDDGxmSMnM1MyV\nVlTVY+chZkjJvJTMlRpiYDNDSmanVq6UGVIyOyVzpbof2MyQEqmTK2WGlKiRUrlS3Q9sZkiJGimd\nK2WGlKiRUrlSXQ9sZkiJfqFkrpQZUqKWlMiV6npgM0NK1JJSuVJmSIlaUiJXqtuBzQwp0eWUyJUy\nQ0p0OSVypbod2MyQErVOdK6UGVKi1onOlepyYDNDSnRlonOlzJAStU50rlSXA5sZUqK2icqVMkNK\n1DaRuVLdDWxmSInaJypXygwpUdtE5kp1N7CZISVqn4hcKTOkRPKIypXqbmAzQ0okT/Nc6QU35EqZ\nISWSR1SuVFcDmxlSIvma50q7epoJM6REHSMiV6qrgc0MKVHHuCtXygwpUceIyJXqZmAzQ0rUce7I\nlTJDStQ57s6V6mZgM0NK1DldzZUyQ0rUOe7OlepiYDNDStR5XcmVMkNK1HnuzpXqYmAzQ0rUNZ3N\nlTJDStQ17syVan5gM0NK1HWdzZUyQ0rUNe7MlWp+YDNDSuQeHc2VMkNK5B7uypVqemAzQ0rkPh3N\nlTJDSuQe7sqVanpgM0NK5D4dyZUyQ0rkXu7IlWp6YDNDSuRecnOlzJASuZc7cqWaHdjMkBK5n5xc\nKTOkRGJ0NVeq2YHNDCmRGO3lSpkhJRKjq7lSTQ5sZkiJxGkrV8oMKZFYXcmVanJgM0NKJNaVcqXM\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x55674bad6690>"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"metadata": {
"colab_type": "text",
"id": "sIZLTZ0pdo0Z"
},
"cell_type": "markdown",
"source": [
"### Bar Plots"
]
},
{
"metadata": {
"colab_type": "code",
"id": "bZv4MenQpYOF",
"outputId": "ce9608d5-e7ea-4ac7-856f-a265b3d0eee9",
"colab": {}
},
"cell_type": "code",
"source": [
"import matplotlib.pyplot as plt\n",
"\n",
"# Look at index 4 and 6, which demonstrate overlapping cases.\n",
"x1 = [1, 3, 4, 5, 6, 7, 9]\n",
"y1 = [4, 7, 2, 4, 7, 8, 3]\n",
"\n",
"x2 = [2, 4, 6, 8, 10]\n",
"y2 = [5, 6, 2, 6, 2]\n",
"\n",
"# Colors: https://matplotlib.org/api/colors_api.html\n",
"\n",
"plt.bar(x1, y1, label=\"Blue Bar\", color='b')\n",
"plt.bar(x2, y2, label=\"Green Bar\", color='g')\n",
"plt.plot()\n",
"\n",
"plt.xlabel(\"bar number\")\n",
"plt.ylabel(\"bar height\")\n",
"plt.title(\"Bar Chart Example\")\n",
"plt.legend()\n",
"plt.show()"
],
"execution_count": 0,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAe8AAAFwCAYAAACRufNbAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XtAVHX+//HXMIKgoEiQl9b1QqKmmHlNTczbkpmrpHkp\nL5uVq2aWVqakZZlauuZqZpGXzC5fKw1bb22r5W3VEC2sTCmTTc1rgIKCwMz8/uDnJAnMeDkzc/D5\n+KdmOOe83/OZ47zmXOYci8PhcAgAAJiGn7cbAAAAl4fwBgDAZAhvAABMhvAGAMBkCG8AAEyG8AYA\nwGQIb8BEOnXqpO3bt3u7DZ8zYcIEzZkzx9ttAB5TztsNAGbRqVMn/fbbb7JarfL399dtt92mF154\nQVWrVr1mNbKzszVnzhytX79ep0+fVkREhO68806NGDFCoaGh16zOBYMGDVLPnj3Vp0+fYv9+5MgR\nde7cWRUqVJAkORwOWSwWTZ06Vd26dbvm/QBwD+ENXIaEhATdfvvtysvL0+TJkzVlyhTNmzfvspdj\ns9lktVqLPJefn68hQ4YoNDRUixYtUt26dZWenq4PP/xQe/bsUUxMzLV6GZIku93u1nQWi0W7du2S\nxWK5pvUBXDl2mwOX4cIFCQMCAhQbG6uffvrJ+bdNmzYpLi5OzZs3V8eOHYuE+pEjR9SgQQMtX75c\nHTt21N/+9rdLlr1y5UodP35cr7/+uurWrStJCgsL04gRI4oE9w8//KC//vWvatmypcaOHau8vDxJ\n0pkzZzR8+HC1adNGrVu31vDhw3X8+HHnfIMGDdLs2bM1YMAANW3aVM8884x27dqlKVOmqFmzZnrp\npZdcvu6L5efnq1evXnrvvfckFX4ZGDBggObPny9J2rNnj/r376+WLVuqffv2mjJligoKCpzzN2jQ\nQB988IFiY2PVvHlzzZkzR4cOHVL//v3VokULjRkzxjl9UlKSOnTo4Pzy1LlzZ61atarEfr/88kv1\n6tVLLVu21IABA7R///4SpwXMiC1v4Ark5ORo3bp1uu2225zPVahQQTNmzFC9evWUmpqqoUOHqmHD\nhurcubNzmuTkZK1bt05+fpd+b96+fbvat2+vwMDAUmt/9tlnWrx4sQICAtS/f38lJiaqX79+stvt\n6t27t+bOnauCggLFx8frxRdf1Ouvv+6cd9WqVVqwYIHq1Kkju92uY8eOlbrb/ILiwtvf318zZ87U\nwIED1aZNG33++edyOBwaMWKEJMlqtSo+Pl7R0dE6evSoHnnkEX3wwQcaPHiwcxlbt25VYmKijh49\nql69eumbb77RrFmzVLlyZfXr10+rV69Wr169JEmnTp1SZmamtmzZom+++UbDhg1TdHS0ateuXaSv\n77//Xs8++6wSEhLUuHFjffrppxoxYoT+/e9/y9/fv9TXCZgFW97AZXj00UfVqlUrtWjRQtu2bdPQ\noUOdf2vZsqXq1asnSYqKitLdd9+tnTt3Ov9usVj02GOPKTAwUAEBAZcsOzMzUxERES57GDx4sMLD\nw1WpUiV17NhRP/zwgyQpNDRUXbt2VUBAgCpUqKC///3vSk5OLjJvXFycIiMj5efnp3Ll3Pvu7nA4\n1KZNG7Vq1UotW7ZUq1at9PPPP0uS6tWrpxEjRmjUqFFasmSJZs6c6dy93qhRIzVp0kQWi0U1atRQ\n3759i4yHJA0bNkwVKlRQZGSk6tWrp3bt2ummm25ScHCwYmJinK/twvg98cQT8vf3V8uWLdWhQwet\nW7fukn4//vhj9e/fX9HR0bJYLOrVq5cCAgKUkpLi1usFzIAtb+AyzJ8/X7fffrscDofWr1+vgQMH\nau3atbrhhhuUkpKiWbNm6ccff1R+fr7y8/N11113FZm/WrVqJS47NDRUJ0+edNnDDTfc4Pz/oKAg\n5zy5ubmaNm2atm7dqjNnzsjhcOjcuXPOk8xc1S+JxWLRV199VeIx7549e+rVV19VbGysatas6Xw+\nLS1NL7/8sr777jvl5ubKZrOpUaNGJb6WwMBAhYeHOx+XL19ev/32m/NxpUqVVL58eefjGjVq6MSJ\nE5f08+uvv+rTTz917s53OBwqKCgodlrArNjyBi7Dhd3HFotFXbt2lZ+fn3bt2iVJeuqpp9SlSxdt\n3rxZycnJ6tev3yW7m0s76atNmzbasmWLcnNzr6i3RYsWKS0tTcuXL1dycrLef//9Ij0XV9/dk9BK\nu/ngCy+8oI4dO2rr1q3OsZCkyZMnq27duvrPf/6j5ORkPfHEE6Uux5UzZ84UGZujR4/qxhtvvGS6\natWqafjw4UpKSlJSUpJ27typr7/+WnffffcV1wZ8DeENXKH169crKytLkZGRkqRz586pUqVK8vf3\n1549e7R69eoi07sKrp49e6p69ep67LHH9PPPP8vhcCgjI0MJCQnavHmzy37OnTunwMBABQcHKzMz\n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\nukn+/v7q3r27NmzYYGRJAADKPEPD+/jx46pevbrzcdWqVXXixAkjSwIAUOaVM3LhDofDyMV70EEv\n1Ywo+c+ZHmvkMmoyTu7X9PRYuRgnyUfHinXKvZo+OE6S58fKG++Nl1gcBibsN998o9dee02LFi2S\nJOcJa8OGDTOqJAAAZZ6hu82jo6P1yy+/6MiRI8rLy9OaNWvUuXNnI0sCAFDmGbrb3Gq1atKkSRo6\ndKgcDof69OmjyMhII0sCAFDmGbrbHAAAXHtcYQ0AAJMhvAEAMBnCGwAAk/GZ8OYa6O45duyYBg8e\nrLvvvls9evTQ0qVLvd2ST7Pb7YqLi9Pw4cO93YrPysrK0ujRo9WtWzd1795dKSkp3m7JZy1ZskT3\n3HOPevTooSeffFJ5eXnebsknxMfHq23bturRo4fzudOnT2vo0KGKjY3VQw89pKysLC926DuKG6sZ\nM2aoW7du6tmzpx577DFlZ2e7XI5PhDfXQHef1WrVhAkTtHbtWi1btkzvv/8+Y1WKpUuX8gsHF6ZO\nnaoOHTpo3bp1+vTTTxmvEhw/flzvvvuuPvnkE61atUo2m01r1671dls+4d5773Vez+OCt956S23a\ntNG///1vtW7dWgkJCV7qzrcUN1Z33HGH1qxZo08//VS1atVya6x8Iry5Brr7IiIi1LBhQ0lSxYoV\nFRkZySVnS3Ds2DFt2rRJ9913n7db8VnZ2dlKTk5W7969JUnlypVTcHCwl7vyXXa7XTk5OSooKFBu\nbq5uvPFGb7fkE1q0aKFKlSoVeW7Dhg2Ki4uTJMXFxWn9+vXeaM3nFDdWbdu2lZ9fYRw3bdpUx44d\nc7kcnwhvroF+ZQ4fPqx9+/apSZMm3m7FJ02bNk3jxo2TxWLxdis+6/Dhw6pSpYomTJiguLg4TZo0\nSbm5ud5uyydVrVpVDz74oO68807FxMQoJCREbdu29XZbPis9PV3h4eGSCjc6MjIyvNyROSxfvlwx\nMTEup/OJ8Oan5pfv7NmzGj16tOLj41WxYkVvt+NzNm7cqPDwcDVs2JD1qxQFBQXau3ev7r//fiUm\nJiowMJBzTkpw5swZbdiwQV9++aW2bNmic+fOadWqVd5uC2XIG2+8IX9//yLHw0viE+FdrVo1/frr\nr87Hx48fZ3dUKQoKCjR69Gj17NlTXbp08XY7Pmn37t364osv1LlzZz355JP66quvNG7cOG+35XOq\nVaumatWqKTo6WpIUGxurvXv3erkr37Rt2zbVrFlToaGhslqt6tq1q77++mtvt+WzbrjhBp06dUqS\ndPLkSYWFhXm5I9+WmJioTZs2adasWW5N7xPhzTXQL098fLxuvvlmDRkyxNut+KyxY8dq48aN2rBh\ng1599VW1bt1aM2bM8HZbPic8PFzVq1fXwYOFd6XasWMHJ6yVoEaNGkpJSdH58+flcDgYqz/44x6u\nTp066ZNPPpFUGEx8pv/uj2O1efNmLVy4UG+88YYCAgLcWobPXB518+bNmjp1qvMa6Nx5rHi7du3S\nwIEDFRUVJYvFIovFojFjxrh1jOR6lZSUpMWLF+vNN9/0dis+ad++fXr22WdVUFCgmjVravr06QoJ\nCfF2Wz5p3rx5WrNmjcqVK6dbbrlFL730kvz9/b3dltdd2LuVmZmp8PBwPfbYY+rSpYsef/xxHT16\nVDVq1NCcOXMuOVHrelTcWCUkJCg/P1+hoaGSpFtvvVWTJ08udTk+E94AAMA9PrHbHAAAuI/wBgDA\nZAhvAABMhvAGAMBkCG8AAEyG8AYAwGQIb8BHNGjQQDk5Od5u47LNmzePC+AAHkZ4Az7iWtxAxW63\nX4NOPM9ms3m7BcBUynm7AQCFHA6HFi5cqA0bNuj8+fMaM2aM/vKXv0iSnnrqKaWlpSkvL0+1atXS\ntGnTFBISoqSkJL300ktq1KiR9u3bpyeeeEIdOnRwLvPIkSPq3bu3+vXrp82bNys3N1dTp05Vs2bN\nlJSUpFdeeUUrVqyQpCKPk5KSNHXqVDVp0kTffPON/P39NWPGDM2bN08//vijqlevrnnz5ikwMFCS\n9Ouvv2rIkCE6ceKE6tWrp2nTpik4OFj5+fmaPXu2kpOTlZ+fr6ioKE2ePFlBQUGaMGGCrFarDh48\nqHPnzikxMdHzgw6YFFvegA8pV66cVq5cqfnz52vSpElKT0+XJE2cOFHLly/Xv/71L0VGRmrBggXO\neQ4cOKABAwYoMTGxSHBfkJmZqWbNmikxMVEjR47UzJkznX/749b+xY8PHDiggQMHatWqVWratKke\nfvhhxcfHa82aNfLz89Pq1aud0+7atUuzZ8/WunXrFBwcrPnz50uSFi5cqEqVKumjjz5SYmKiIiIi\nlJCQ4Jxv3759Wrx4McENXCa2vAEf0qdPH0lSnTp11LhxY6WkpKhjx45KTEzUqlWrlJ+fr9zcXNWu\nXds5T61atUq9p3vFihWdod60aVO98sorbvVSp04d1a9fX5J0yy236Ndff3Xe7a9Ro0b65ZdfnNN2\n7NjRedeoPn366KWXXpIkffHFFzp79qw+++wzSVJ+fr4aNGjgnC82Nlbly5d3qx8AvyO8AR9y8a0G\n7Ha7LBaLkpOTtWzZMn344YcKDQ3V6tWr9dFHHzmnq1ChQqnLvPguRX5+fs7jy1artcgx8vPnzxeZ\n7+JQtVqtlzz+4/QXv4YLW/AOh0PPP/+8WrduXey0rnoHUDx2mwM+5MItFNPS0rRv3z41adJEWVlZ\nCgkJUeXKlZWXl+c8Ru2uP9576MLjP/3pTzp8+LCysrLkcDi0Zs2aK+5748aNysjIkFR4+8cLYd2p\nUye9/fbbzqA/e/asDhw4cMV1ABRiyxvwERaLRQUFBYqLi1Nubq6mTJmisLAwxcTE6F//+pdiY2MV\nFhamFi1aaM+ePZe13OIeV61aVQ8++KDi4uIUHh6uVq1a6aeffrqi3lu0aKExY8bo+PHjqlevnsaP\nHy9JGjZsmF577TX16dNHFotFfn5+GjVqFPfBBq4StwQFAMBk2G0OAIDJEN4AAJgM4Q0AgMkQ3gAA\nmAzhDQCAyRDeAACYDOENAIDJEN4AAJjM/wPjs+5LxyqfZwAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x55674b970090>"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"metadata": {
"colab_type": "text",
"id": "YQO2Lw8Xdu7x"
},
"cell_type": "markdown",
"source": [
"### Histograms"
]
},
{
"metadata": {
"cellView": "both",
"colab_type": "code",
"id": "SZ-DMbnPMbMY",
"outputId": "8c1089d5-ecf0-492b-cf21-8f30ddc45862",
"colab": {}
},
"cell_type": "code",
"source": [
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"\n",
"# Use numpy to generate a bunch of random data in a bell curve around 5.\n",
"n = 5 + np.random.randn(1000)\n",
"\n",
"m = [m for m in range(len(n))]\n",
"plt.bar(m, n)\n",
"plt.title(\"Raw Data\")\n",
"plt.show()\n",
"\n",
"plt.hist(n, bins=20)\n",
"plt.title(\"Histogram\")\n",
"plt.show()\n",
"\n",
"plt.hist(n, cumulative=True, bins=20)\n",
"plt.title(\"Cumulative Histogram\")\n",
"plt.show()"
],
"execution_count": 0,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAewAAAFhCAYAAACyBJlmAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XuUFOWdN/DvMNyGYRjA4WYkJBnkBPdoTrhmg5uwgEy8\nsDIaNSdnVzcmIeZoMEJ0VyJ6djW6r2Zd3fVoZI1RN3vcNQi6SIwxKOKK3AWyAgHGgXFm6Ln23G8w\nXe8fw9PUFFXdVdVPVT1P9/fzD8xMd9fTdXl+z/3JMwzDABERESltSNQJICIiovQYsImIiDTAgE1E\nRKQBBmwiIiINMGATERFpgAGbiIhIAwzYREREGhgadQKIctGiRYvQ1NSE/Px8jBo1Cn/xF3+B+++/\nHwUFBYEdc+PGjfjpT3+KkSNHAgDGjx+PuXPn4gc/+AE+97nPufqMe++9F5MnT8add94ZWDqJyB5r\n2EQRefbZZ7Fv3z68/vrrOHToEJ599tnAj/nlL38Z+/btw969e/GrX/0KI0eOxHXXXYfjx48Hfmwi\nygwDNlFExCKDF1xwAS6//HIcOXIk+bf33nsP5eXlmD17Nv7yL/8STz31VPJvf//3f48XXngBAFBX\nV4cvfvGLePnllwEAJ0+exPz589MeOy8vD1OnTsUDDzyAefPm4d/+7d+Sf7vzzjtx+eWXY+7cufib\nv/kbVFRUAABeeeUVbNq0Cc899xxmzZqFH/7whwCAdevW4YorrsCsWbNwzTXX4A9/+ENmJ4aIbDFg\nE0UsFoth27ZtmDZtWvJ3o0aNwqOPPoq9e/fi2WefxX/9139hy5YtAIC5c+di586dAIDdu3fjs5/9\nLHbv3g0A2LNnD+bMmePp+FdccQX27t2b/PnrX/863n77bWzfvh2XXHIJVq9eDQC48cYbsWzZMnzv\ne9/Dvn378MwzzwAApk2bhpdffhn79u3D7bffjrvvvhuNjY3+TwgR2WLAJorI7bffjlmzZmHhwoUo\nKSnBj370o+Tf5s6di4svvhgAMGPGDFx11VXJoDxv3rxkgN29e3cygIqf586d6ykdEydOREtLS/Ln\n6667DgUFBRg2bBhuv/12HDlyBB0dHY7vLysrQ0lJCQDgyiuvxLRp03Dw4EFPaSCi9DjojCgiTz/9\nNL7yla9gz549WL16NeLxOEaPHg0AOHjwIH7+85/j2LFjOH36NE6fPo1vfOMbAICpU6di1KhROHTo\nEPbu3Yvbb78d69evR2VlJXbt2oWbb77ZUzrq6uowduxYAEAikcDjjz+Ot956C/F4HHl5ecjLyxuU\nNqvXXnsNL7zwAmpqagAA3d3diMfjfk8LETlgDZsoIqIPe86cOVi+fDn+6Z/+Kfm31atXY8mSJdi2\nbRv27NmDm266CeaN9ebOnYu33noLp0+fxsSJEzFnzhy89tpraG9vx8yZMz2l4+233042o//P//wP\n3n33Xbz44ovYs2cP3nnnHaTa0K+2thZr167FAw88gN27d2P37t2YPn16yvcQkT8M2EQKuOWWW7B9\n+/bkwLOuri6MGTMGw4YNw8GDB/HGG28Mev3cuXPx61//Otn8PX/+fPz617/G7NmzkZeX53gcEUgT\niQSqq6vx4IMPYvfu3bjjjjuSxx0+fDjGjBmDrq4u/PM///OgzyspKcGnn36a/Lm7uxtDhgzBuHHj\nkEgk8Oqrr+LYsWNyTgoRDcKATRQBa1AdP348li9fjqeffhoAcP/99+Nf//VfMXv2bDz99NO46qqr\nBr1+7ty56OrqSgbs2bNno7e3N23/9YEDBzBr1izMnj0bN998M7q6urB+/XpMnz4dALB8+XJMmTIF\nX/va13DNNdfgy1/+8qD3f/Ob38Tx48cxb9483HHHHSgtLcXf/u3f4qabbsKCBQtw/PhxzJo1K6Nz\nQ0T28ow0bVdr1qzB1q1bccEFF2DTpk0AgNbWVtx1112oqanBRRddhCeeeAJFRUWhJJiIiCgXpa1h\nX3fddfjlL3856Hfr1q3Dn//5n+Ott97C/PnzQ1nwgYiIKJelDdhz5szBmDFjBv1uy5YtKC8vBwCU\nl5dzoQQiIqKA+erDbm5uTs67nDBhAqdwEBERBYyDzoiIiDTgK2BfcMEFyaUHGxoaMH78eFfv49xM\nIiIif1ytdGYNtIsWLcKGDRuwYsUKbNy4EYsXL3Z1sLy8PDQ0tHtPJbk2YUIRz3HAeI7DwfMcPJ7j\n4E2YIG8GVdoa9urVq/Gtb30LlZWVWLhwIV599VWsWLEC27dvR1lZGT788EOsWLFCWoKIiIjofGnn\nYcvG0lywWGIOHs9xOHieg8dzHLxQa9hEREQUPQZsIiIiDTBgExERaYABm4iISAMM2ERERBpgwCYi\nItIAA3aOq6g4hoqKY1Eng4iI0mDAJiIi0gADNhERkQYYsImIiDTAgE1ERKQBBmwiIiINMGATERFp\ngAGbiIhIAwzYREREGmDAJiIi0gADNhERkQYYsImIiDTAgE1ERKQBBmwiIiINMGATERFpgAGbiIhI\nAwzYREREGmDAJiIi0gADNhERkQYYsImIiDTAgE1ERKQBBmwiIiINMGATERFpgAGbiIhIAwzYRERE\nGmDAJiIi0gADNhERkQYYsImIiDTAgE1ERKQBBmwiIiINMGATERFpgAGbiIhIAwzYREREGmDAJiIi\n0gADNhERkQYYsImIiDTAgE1ERKQBBmwiIiINMGATERFpgAGbiIhIAwzYFKiKimOoqDgWdTKIiLTH\ngE1ERKQBBmwiIiINMGATERFpgAGbiIhIAwzYRFmMg/6IsgcDNhERkQaGZvLmF154AevXr0deXh5m\nzJiBRx55BMOHD5eVNiIiIjrLdw27rq4O//Ef/4ENGzZg06ZN6O/vx29/+1uZaSMiIqKzMqphJxIJ\ndHd3Y8iQIejp6cHEiRNlpYuIiIhMfAfsSZMm4Tvf+Q4WLlyIgoICLFiwAF/96ldlpo2IiIjO8h2w\n29rasGXLFrz77rsoKirCypUrsWnTJixbtizl+yZMKPJ7SHLJyzmOx0d7fo8XQX9+VHT5Prqff13T\nrROeY334Dtjbt2/H1KlTMXbsWADAFVdcgY8++ihtwG5oaPd7SHJhwoQiT+e4ubkDQHDXJejPj4LX\ncxwlnc+/TudZVzzHwZNZIPI96OzCCy/EgQMH0NvbC8MwsGPHDpSWlkpLGBER6Ydz/4Pju4Z92WWX\noaysDMuXL8fQoUNxySWX4MYbb5SZNiIiIjoro1Hid9xxB+644w5ZaSEiIiIHXOmMiIhIA5EE7P7+\nflRUHEN/f38UhyciItJOJAH7xIlPsGLtczhx4pMoDk9ERKSdyJrER44eH9WhiZTB1iYicot92EQR\nYmsTEbnFgE0UMbY2EZEbDNhEREQaYMAmIiLSAAM2keK41CMRAQzYkWEmTEREXjBgExGRdJyyKB8D\nNhERSccpi/IxYFPWY0nfGbtmKEicsigXAzZlPZb0iSgbMGBTTmBJn4h0x4BNnrEZ1R7PC+mC3UR6\nYsAmrTHjIfJOdBNVVFREnRTygAGbMhZlzZL909GIuqAU9fEzoUpLDLuJ9MOAncVUyRiClmsZjwrX\nNeqCUtTHJ4oCAzYR+SK7oOS1IJJrBTUiBmwiIlKCCq1HKmPAJiIi0gADNhGRJlgDzW0M2EQkHQML\nkXwM2EQe9Pf346233sLRo3+KOilElGMYsIk8OHHiE6z8hxdRU/Np1EnJyLl5zImok0JELjFgE3k0\norA46iRkTMxj1r3goSp2CVAQGLAR7MPFB5dUxXnMRHoZGnUCiIisKiqOIR4fjXHjpgR+HAAoLb04\n0OMQyZDVAZsPI9FgbO0h0hebxMmXqqqTzPyJiELEgE1EoeGYjuhVVBxDVdXJqJNBPuR8wO7v70dV\n1UlOb8kCDAbOOI2LSH85H7BPnPgEa5/4TVZNb2HmTFbppnGxsEOkvpwP2IA682plZZqcY0t2smEa\nFwsWlMsYsLNUqsyZmR6ROnR6Hs+13vVHnZScxIAdIA7uIKJsIlrvTpz4JOqk5CQGbHLFXAuoqjqJ\n2traiFNEqehUawsSa4TyZUPXiq4YsEOm24AwZvyks6BrhHw+wpXr55sBO2SyB4SpXIOQNWUu1x9S\nyky21ghVfvYpGAzYEZCZgajcpyR7ypysDMqpAMAMkHSi8rNPwWDA1lxV1UlfBQA3S4v6HTRnDogj\nCouRSMgJhEFnUMwA9VBVdZKDOc/K1tYDsseATVLZBflYrE5aIAw6g2IGmNv8dL9wXX0Ki/IBm/2X\n2YGBkLId8yp5eC7tZfX2mkTZhBkYZQNZ2x739/fjxIlP8LnPfQH5+fk5sZ2y8jVsXXHRFMqE7gPg\n2M9MQcvFMScM2JQzMu1rDLMQlouZEZFXudbVxoDtge61HlkSiX7U19f5ml/Nc+jeyNHjkzVVbgMr\nB/tG5eMzHR4lA3ZFxTEcPXpE2opgsnfBUr3WE3QtMBarw6tbj/uaXx31OdQ18NXUVLua0+53lLOX\neyaslobKykopz21PRxOb5wMU9TOdS5QM2MBABhXWFpG9nS2u18bOtSYYJ363JPU7b1yWVIFP9Uzd\n6zmX2Y+sQ83USxr9LhEc9HmQ/flhXbegn2ndlnQOirIBG2BwzAVRBIJM9j/npifZIdv2jFelQJWq\nBSuTNKa6Xrk0Dz6SgO231M++EqLsdS6zD/b5FsdRqUKQLUFH9nLEZkFdL53iSkYBu729HStXrsSV\nV16Jq6++GgcOHJCVLlvsK1HLuSVHg2mmspbIg2qyVqV2kutqaqrx0L+/7en59hPoRLcIMNBionpX\niB2Vpo1a05FJC1YUY0x0iisZBeyf/exn+PrXv44333wTr7/+OkpLS2Wly5FKpWJVRDWoRiw5mi3N\niuQsrNqv0/Mtu1BlDiqy1rrPZmEVakWhTUaeItLsJu1e40q6zwzqfPkO2B0dHdizZw+uv/56AMDQ\noUMxevRoaQlTjUolWivDSKC2tjZlhhPUDeT2RjeMhBajs8+lk5m3mZ/abxSqqk6aZpi4u4Yy17oP\ngy6L0vhNo+qVsoqKYzhx4pNI8gnfAbu6uhrjxo3Dvffei/LycqxduxY9PT0y06aU/v7+jAccyQz6\n5gDc19WG5zd/bJvhqDK6srczjof+/W3U1cUCO4aMWqBI57Zt77KZ3CJVRqpSt4KYYeIlAKseJHLJ\nuQqIuoX7WKwukgKs74B95swZHDp0CN/+9rexceNGjBw5EuvWrZOZNqXU1FTjmVc+8PSe2traQUG+\nqupkgKOMDdvCQE1NNb5/3zrs3r0z8AcgXf9TUJmiqBVXVVVJeYh0z7yt10H87IdKgdiLMK9hIqHn\n3P6oOd1bvZ1xPPPKB8p3tUWRT/je/GPy5MmYPHkyLr30UgBAWVkZnnvuubTvmzChCMXFowAA48eP\nxoQJRee9Jh4fjdbWgdcUF49Kvi4eH53yfUePHgUAzJgxI/k51mPbHQsAiopG2v5dKC4elez3cjq+\n9XOLikYOen1x8Si0t48873tZ05Lus82vFedJfKbdv3l5eXjmlQ8wc+b05HlsbR04vpDqOrS2NgAA\nPv/5z2PChKLk9xL/iu/S1laPtU/8Bvd8d/GgzxavM//fek1TXRtBfNfx40cjHj+V/L+oFd/5rdkY\nOXq843kV5wMA2tubEY+fwowZMxzP5fjxozF+/ChUVFSgtLR00DUtLh51Xpq9XD/re9yk2Zwup+PE\n46NRWVmZvA4XXXQROjqasfaJ36B40hcGvd/6+Xb3tfi89vbm5GuAwdfC7jqKz/Vyjsz5wsAxGs77\nfPOxzefDfF+bv4/5dXavMd+b6Z4Hu/TH46OxZcuf8N9ba/DYT65NPiNu7mvzZ7h5Hs2v7e/vx6lT\n554Bp/fZpcN6DlLdrwMtdBUoLi5Afn5+8vetrQ2Ix0djxowZyesm8gnA/r6yPs92xxfvG1FYPOgZ\nMz8P4rnct69h0O+sn+cm/ze/znz/W2OJ9fXWfMzpM73kBW74DtglJSWYMmUKKisr8fnPfx47duxw\nNeisoaEdra1dAIDm5g40NLSft+tKc3NH8jWtrV3J1zU3dwx6n5X4u/ib+Nl8bKf3tLf32P5dEOlJ\ndXzr57a39wx6fWtrV/J35u/llP50n29Nl/mcWf82orAYra1dyfMoji84nRu77y2+g/W7iOO0t/cM\n+mzxOvP/rdc01bWxfj/r7weOOxYVFScHfbb1c8zfRaTRnAbruWxu7kBz8wGsWPsc1j34vfO+szXN\nXq6f9T3793+M5uaO5E5Ddmkyp8vuOOYuF3EdxPtFYdN63dPd1+IeMF838b6ejibs3/8xxo2bcl6a\nxOd6OUfn3tOKmppqFBWNPO8aWdNszR+s38f8uoaGdjQ0tOLw4ePJ35vvzXTPg136m5s70NnZi5Gj\nx9vmVW7zKTfPo/m1tbW1eOaVD1A86Qsp32eXDut5SnW/VlQcw4q1z+G+71+Bz352WvL35u9ql9/Y\n3Vd2z631+NbPsObl5udy5T+8iOJJX0A83o7W1o/xmc9MRX7+EE/5v/l15vs/3fWz5mNOn9nQ0C41\naGc0Svy+++7DT37yE1x77bU4cuQIbrvtNl+fo9OwejdEE2QiwSaysPR2xvHym/s8vUdMCfLblO+m\nuViVJuXezpaokwDA3TgDMe3K2n0kY7CVn66tIGUyriWT6VNeqNpFJL6/6E9204Qu83mMYoBqRgH7\ni1/8Il599VW8/vrreOqpp1BU5L8koepN4YdYPKCxsSH9i0ma4QX+7j8xAjrIAXFWYQVy6ziKqLkd\nbR5kMPL62ZkurGG91mFNkVNBpkHN7aDZKOKH6IoLs6Kp9NKkQctkME46YZR+7QaxHT16VKkM2km6\nBzFdzUP2AgvZVGBUXZDnOpHIfDaHlewWwKCmyKm4YlemQS3MJWT9nL+w8w0lAnZUcwpFTZjCl+nm\nLjIXWAhbptP7gpyHm67mb1dQUmmNglisLpAmb9kZs5fPc9saY53OZnddorhWbr9rRcUx226QsIKi\nn+mAYTeLRxKwa2trlVmgIqiacG9nC5qamgCotU6wSplrpg+iCrVila5tGET/srX7wGmJTze1liBX\nMQuSKLwYhuH6PXZBSaYgnwkZBUU/n9HT0RRaq6HX82duQQijhSOyGnYU7f9eqNa8JCtTC3YuuFpU\nGfAlK6irsqCEl4Do1JycDQUd0ULX3Nzs+j1VVSdRX18XYKr0IbOlSDwbbvdQl5m/iyAfxuDpSJvE\nVaghOdFl5LoqD7+f8QBhlpz96O/vx44dH/p+v+zWDLGinZvBcYaRQH19nRIzFdI9537GI6hy34RV\nmw9CT0cTKisro06GFGKxFbcDR4PK34OOaUr0YcsQRFNv2AUKa4lTlRqiG+YdkHSSasnZmppqPPni\nmyGnKDXrPel0j/R1teHVrceVnalgbkIPYpR+qg1xVJniZn3exXoUlZWVrmp+QX0PN/mOiruceS08\nqVxhdJI1AVtViYS/ZkyV+prdcnpgVGkFsJMuKIupYjrOrR8+qghNTU1apFlknqJpM5eIke1VVVW4\n9/+9gEee35KVXQip6Ph8RSHUgC2We1NVEDXaxsaGQeviZhq8MkmjanNyw5Sq+d3N/G3RgqBqjdVO\nX1cbfr/rpFZpFk2buUSMbK+ri2F4QZGWNT8rr3lNVGtXeOlH7+/vx9GjR1BZWRlZwcL30qTZTmbt\nNtMN3cV85fx8Nog4cWoeVOU6RsXvYjJROreCVQxFRSeTy7XK1tPRhPr6IZg4cZKr11ZVnRy0PKdM\nOt5bsql+Dk6c+AS33v0vAIDrF06PJA2MAC7I2FrTjptmrkznKxOpQkxpEgPi3HQT1dbWKtcUnGrR\nn7CbrnXZZz5bjCgsjrRgEWoNu7Ky0nEB+FRk9+V6faBOnPgET774JopKpvo6nmEksH//RygpmZD2\ntYnE+ZlBNjSR+SG2LRSL+qskqK4FMfAomzPggXXfP3VVswUGzklNTbUyrUxikNx9378i6qQkp8eu\n+e4ixGLqjhVRgY7jgqwivftTjeRUjV3Totv+ZOuI3VTzaWOxOt81ajEP0fo7mSoqjoU2iMztov5B\njZaNor8/zKUYo+Slqd5psRavZC5akkkhWiyo5EV1dTV27PjQNs8YOXp8YCu8ZULlwaZeuF3PPAzR\nF1cDkm5up8xJ+24m4ZubUdLNGYyiRq3qFDKZ56K+vk6LQXdBXX9VFl7xI6y1+VWtQDQ2NuD5zR+n\nLMiJc+SlWV61BaKC5mfgrUqFaK0DdqqbTYw69HuSvY5w9DoJP4p+kPr6ukBKvdkw+nxgAFJ21Aic\niIJiTc2nygYmL2QtvGO97uZtV1WpWQHBFOROnTql3AJRqsyTN3M692GnVeuAnS5QhhkUs6mfWdXa\ndip93W2Dfla5v0oMYrQGgjBqeF6eCTfnUIwz0GX+rJdCmchfdu/eGWCKgpeuxp0u7xItM9XV1doX\nzAWZ3yPMrl1tp3WJJu8oAqX54kQVFESm72XjgSCpUjs1j5qtq4vhwgsvjDpJ56mpqcYzr3yQMm3m\nDEXlTFL0nV6/cDouuugiz+8PejOMTGVTQdyv3s44nnzxIJbOm4aZMy+JOjmhU6ngr20NO9e3xhSZ\nvpeNB3KBGDUrc5nLc599bgc2vyvYCarPOfXC6buI2nc20Ln/X4ag5/MHeZ84jWdyuqYqj2VQJmD7\naVbwkun5nR/pdPFUuKiyMn0VvotMYdSKxAp2QRQMskUsVqdsodpr36PYeEWFgUdBMneD+NnQJ1N+\nRtCnI6bhWa+ddfCvyi09gjZN4tYbR5UAk0j0u57/mEgkEI/HA05R+BKJRCAPmhNVtgj1U2AKahEe\nVZlHLusu15rHRStmWK1BvZ0taGkJpg7pdO10a+lSpoYtU5gDjrzMf4zH4/j9rmDSFcZ2iqLEbe03\nb2xskPa90o3MVX1LznTEIjxBcBrMRv6J5wpwf+/52S7UTKX1KYIOaHYLRbkV5ghtVfKdrAzYYXPu\nwzu/5in6gno7W1IO1BI7+Li9kcXiLEHcVObdhNY+8RvbfnNZfVxiZO6nn55AfX1dVvYdBtUfKMY1\nqNBMn0j0D7q/dZ36N7Aq2z5P7xELvXz66Ym0wch6nqycCslRspsCmSqgpSqAiIWiVLhndaBUwM6k\ntBU067QhN9ra2nzXPM07+JilKr0HVRo2pyWMJiSxctPLb+4bNHeY0lOliS8Wq8OrW49HnQwp/BSw\nRhQWu1q1UNzndioqjmHbtncdC8mqEq0SbgsZbrsaVKnlRkmpgO3mBvfaXCR7o3WvN42fh12UYEXm\naz6mGEDht0SaSLjfeMEsikAgzp0qQchOIiGmkUW3UpTXAZWixSQV0a0kXuunq0Xl62YVXEuOkfZc\np8sjwjqPmTblC6K1L4xChrnLQgbVCwVKBWxA74EdYe3U4+YciQzImtHG43G8uvV45E1QMh4KFR6u\nxsYGPPTvb7teKUqFvslYrM51P7poXdFpT20/0i0XnAlZhbqgu4fEIDMZ5yDVVD+Z38Ftl4VTfqgb\n5QJ2GPyOMlZxyTwnIgOyy2hVrPn4WV1NdunaLx0LmV5aflS8X4IQ1Pf0Wqhz4qdQ4TVABn2tRQFQ\nZhdXunu5trZ2UH4oWhmdZLrGgpnsClxOBuxcIevhUyEo2hFNb2Y6Far8OpehyG2GdzMfP+oWjUxU\nVZ10nH4Y9H3jtVDn1JXn9ZkOIkBmKooCYG9nS/K4jY0NKWvlYo2FVOcszGmsZgzYmjjXrKZ3k45s\nKtT+zMuh+uG1aV/s3HTixCe2rUWHDx/ylQ6VDMyiqPc13iIqspt7ZcnkGUlXkAl7XQG3+WC6qb3p\nauXDRxUNKhSr0pqnXMAOul9SrF3sZqvFMKYUue33Fs1q5uawgYUGoqtR1tfXoaejKbLSZljEfeBE\nLIcqdsEyX8+gpjOp3Azf3596qpJbra2tSoy3cMtpZkc2C3JdATsiH5TVYuA0vVasbCe6Mexa86Kg\nXMBWSZADUfwIM5OWNWI0FVFqVa1GYjWw+UHqTMl8bcIafKii/v5+bNv2Ll7auE3K57mtHYr7NepB\nRU7pjXoxlNra2sDuySDWFUhVWQorH7Qex2tLRRBLu0YesGXUQIJcC9vLRZI9hSxKYvEHmYUV64IL\notQqSsuprqObqUhBCiJTsrv3de4jBs6NNB42sjCS42b7aPZM6LRngKjhRlFZyqTFsKejCTt2fIiq\nqpPJPFSm0AN2VdVJJfoC3AhzAJOK2wyG0T/s9hhepiIJMkd7Bk2kNaoaosz+1zDXnjbnJXbH9Rqg\n3HSVqfacBsEpuIeZd6vc7ZOOKIzLfhYir2GrIqpBXWILQh2CStRELbe+vs5VxhHmjlqZjncQafVS\nQxQDfmQE+Vzsf80GYVQqxDHC3uQnClGPC0qHAfusxsYGrH3iN+cNZgh6dGAsVuc4iCLdeuMyqLLz\nVVAbV4RX2xsY7/DHPx5Iji712qdqXtnOzXWvqanGky++mTbIu81krecq3TrXMrn9zhSdTJZazhZO\nBaSwukNzOmCbM4impibbzN06OjCIgVI6N/24la4mYN64QtfM23z/iP6rdME00+8Z1EYiAEzrubdI\nqVmlW7Ai22Tjdw3yftOZ6NIKmrIBO+xaX+pmkHOL2IsAzqZD+UYUFkeayTU1NUltYhxRWOx77fYg\n+PluMjPodAtW+MH1CaLjtVYZ9fglwxho0g9i5zPRpRU0ZQN2poIM+KImJavJMKi557JqRkFy6vt1\nSneQD10QxNrtsuaN6j7vXXYNLR6PS52XGxUvXW9ux3BY35Mqj6mqOokdOz709JkypPoe5pY2Gfls\nX9dAk35Qm5KE0f2WtQHbiVjUwSnDF1t8uul7PHjwoPQag5kITmZij+hsaW7zOn0j6IcuCCqsxiYE\nce9EXTBUvUvJzbkJemEOlVp6wpJI9GPHjg8H5S26N+lHGrBF5hHUVBa7/uaammq8/OY+xwxfbPHp\ndrSu3Q0ga/DB6Z4ObP1j/Lzfu92hxuxc8PdXMw2ykOAmwzUfO91D57YPXMbcbpmBylpAC2KHIWtg\nyGT7TK89PkhTAAAXj0lEQVT3RFRBPYwVC2UQBbsgBpuqsktfmMTMh3SFe51arCIN2CLz8LvYQbo+\nOaf+5nQZvkoldqfamdeSoqiZtrS0pnyd0xq8doPvdLrR7YgHWhXiGgmpdlzLhPmeymT7TFWWa0wn\nykU4VKJSS0+QzHPIs+07R94k7vaEOtWG0pWes+2CZcJNkBfTvOzOtflcWoOLmZuBQOYaRJSjwlW7\nP6zXSKXFa/y+91xNPJxxB6Igb76PVSqEq0CFqZx+pKok+J3Bo/K8a6vIA7ZbTrWhTNf7zoXtGIPi\nVACQvUC/qqJcZCHoTXL8smudEV046Vp3dCHGkezf/1HUSTmPLs3/QRAtPqdO1Xru5tFlKqk2ARtw\nLs2rVksKmptChnhNdKVHQ6kMzevAKLGjWy4JcjMWXQf7OD1rfsaRyOS8r3dcuf2v05EZLEcUFqdd\nNVCnGrWVVgGbSGcqrhdvZt2MxQundduzuQVL1UJIJhUYXXbQSydbK3GhB+za2lrtBysFKddqdZSe\nmxXCxNKufphbH/xmdG1tHNiVDbgwlHdhTmtkDZu04PeBMIwEDh8+JDk14YrH0ze/inXFo8SBXZmJ\nsjXC3AWkau3Uy5iRIGaxqNBaNDTqBFB2kvXA9Ha2YEThWN/vHxjN3u6r+TKT9Mtq+h7IpIa4Sr/b\n7xh1xiP7+GKgFSBvTm26tRSiPoc6EQP0SkomOP5ddnAVz31RyVSpn2uW6h5IJBKB7M0eWQ3bzQ0v\nHsTTp09nVVOxKg97kDt1pZr2Fbag+xpVuJ4q9427kUmzohhoRe5Yl1S2DvqS3Y/d19WG9e8exZ/+\ndMR2hcmg8oowxxhYa/6NjQ2BrFGgVJO4NSiLB/Hjj/8vuWsQRcfr+bc+MFEvtqLCblFRHz+dVNOC\nzCubhfk9xLFSDWwLqxm3vr7O1z1sPa9BT8tLJJy3dxW7sDkJoh87Ly8v5ZLCXoJrEOcuiLwpiHtS\nqYBtR3xpr6Ul1TNGP2Rt/BDVSNCoa91tbW2RTsVxK8qCjVgVzH5/9minMonpOjoMiLJew1SrrfV1\nt0k/fixWh/v+5b/xpz8dsf17uvw0iGATRI1XViXOLm/q6WgKZY9rL5QP2EFJJNRZWjPoNdWt3Jag\nRbpk7owl66H1O5fSfHxzoc7NgBbDSIQyhzPqgk2qwWOyM12xGY9bqg6IsrK7hiMKx4a64puo1ZI7\nqk7TM8uKgG1eLL+/f6ApKF2QaWtTp4810zXV/XCT8Yl06bQzlldeSuinezqw62hrKDVgHTIPGcRm\nPILu3V7mvMh6DcNa8S1VGoQgavUUPC0CtpfMsaamGmuf+I2rIKNSpqhCzcFuEFoQ6dJ5T+fhBUWR\n14CzjUrPYdBU/q5en0kxpiBKuVbwyDhgJxIJlJeX47bbbpORHimcgkwmi0u45bRxRjpR7insNJiH\nnHnNeMUgIJndC5lyWhJS1XXKgxb1vt5mmT6TQX4P0cLU0FDvODo/rO4jO7K+u4rrsmccsF966SWU\nlpbKSEtg6uvrUFtb62pxiWwcrJZO0IN5ws4ERYaiUnCMxepct/yEJazBbW6budNl8KnSqntTulU8\nntmmRkESLUzNzc2OlaO+rjZ8cLAm5JTJpeK2rBkF7Fgshvfeew833HCDrPS4Yq7FZjrViAao0CQv\nizlD8SOo7SBVO8d+m/Zl1URFQTrbyCoEqXa/mLnJR4eNLAykIGWeXhg01VbvyyhgP/zww7jnnnuQ\nl5fn6vXnRoSqU/PJVWGPTA+KU4aQScEs27aDTCVbC7Bh3d9RbrGaK+ymyAWxKIkOfAfsrVu3oqSk\nBDNnznTd9Hjq1KmsyAiDmO4UNruR6WJhkbq6mK8SbDY1SwY1Z1SXzN3tIjOqXnO3My9Umt5ppst9\nEgb7KXLqtj4EyXfA3rdvH9555x0sXrwYq1evxs6dO3HPPfekfd/wgiIUFAwb9LvCwhEwjAS6u9sB\nAEVFI1FUNDL591Gjhg96vfXv4jOKi0ehuHjUee8pLByBoqKRyb8BOC8N4ufCwhGD/rUjMoOeng7b\ndIm0WY9h/R4iXea/Ox1f/Gz9DOsxRDqc/m7+eURhMQoKhiXPe3f3wMIiPT0dg45vPWaqn3s7W5Kf\n5/R6u99Zv3e6Y9p973THML+nqGjkeec41blyYncvm+8BkQa7e8KchlT3m9N9JD7T7j6ye30q1teI\ne8Hp7729nbZptD6Xdq8x/9xpCvhO59t6T9idX7t0jigsHnRei4pG2n4PczAYNWp4Mq8w5xfmtDjd\nV27SZH290/lK9Zl2abB+jlManI7p5jPt7kNzgc2ax9oRxxDnN90zKP4uCtB+nvt0eUe6n+3Ol9e8\nRRbfm3+sWrUKq1atAgDs2rULzz//PB599FFX7+3uPj3o587OXvR1teG1rTUoKpmK9vaeQX/v6uob\n9LP17+IzWlu7AAwEjdraIYP+1t7ek/y7XRoGfi5AZ2fv2RVuUpdlRhQWD0pXT0cTKiqGYOLESY7H\nsH4PkS7z3zs7e5N/s77W7jOsxwAGnx/xvZxeX10dw+93nURRyVR0dvZieEHRoHTYHTPTn+1+Z/3e\n6T7D7nunO4b5Pe3tPeedY/t7InUt0u5etl5TcbxUabCmJdUxurr6YBgJVFScTHlMp5/t2F0PcytD\nuvMvfrZ7Np3e83//dwS7jrYmj+N0Ta33hJfvaj6v7e09tq+3fk9rXmH9PKdzIdLl5t41jBGoqDjp\nuCGGeG7tPtOaBpH3pDqm3blL972sr02Xn6U6b9b3iNelewbT/T3VMZx+drp3nX62O2f2nzmQz1ZU\nnAys1SbUedixWOrRdm6bIevr67J6NHdYo3fF1AvreVe1mZDOkd2PF1UTrOp96EHN841isSTSn5Tt\nNefNm4d58+alfd1z6z9U/gEFzm1pGBWxNVwYx/mg5hQKx00Z9Pu2trZBNR9yZ2D09OBWliCNKCwO\nrQ95IKCPCeVYuUJ2P6x5K1pzAexcfpZ71y/qvFy2UL+JnwCQ6UAdUVvVbTS032DpdUeqYSMLpR4f\n4IAZqzCnoVD2CnuAH+9Z9WRP0cOBGGGYK01P9fX1yu9IZS2E9Xa2oKKiIsIUBSvoaSgqbBuaC851\nVYUzO0Sngp55/XIvoux6U3WGQypZF7DtFmIIq2lXZJxR1eZ7O1vQ2NjIpuw0opiWF+Q0lHg82m0v\no5Ju+UvZS42Kwn9Y01JFQU+n6YBuqLjkpwxhFACyImCLkm/UN0A8HudAEg0EsQtZuoc11d9lDDLM\nxUKa2D0tCIlEP/bv/+i834d9nrNxvrGKS37qIisC9umeDmz9Y1yJG0DFB0zHpp+gqXCd6uvr0NTU\nlDW7f4XRhGtdwSyoABqL1XlqtfDz3cOaDaIi1Zb81IWWAdtu2pEKGTCRmZemzGyoIYslXYMkczqU\n0/URXVteromb724tOGdLQc0LL037Ku2e5kcQFSUtA3Y8Hvd8ozc1qb9loA7zn7OtP43s+b0PZRc8\n7GqhQRfOGxsbfBU8/Hz3bCioqSCoVkTVBv5pGbAB+xtd99GybW2Zl7jj8bik1BBFz0stVGZhkoHU\nH9UrRV6F0WrkhZSFU2TzG3RFyVjnh03ntGcql/v0skFQtZxcfiZkSyQSSgyK7eloQn29HvVF6/0X\n5WIsSgbsTPDh1pdY4W14QVFWrU7kFwcLkmxum/sH1kYIZllW8i9rckXWzjKjyvnLlQJX2Itw6IQF\nlWDlyjMWhaCf66wJ2Lk44lImnj953IylCHsRjlx3bvBQ8AUkDsrMHl4Lj0E/15E3ictselGh5KhK\nTdWPIM7fwGpUudW05nYshQr3axBUrCG31Vfi5ZPtmDcj9QhzHWZqkNqCfK6zpoatCtZUB+vrasMH\nB2uiTkbowgjGKgZGlbm5JjJmalDwcvXeZ8CWwHrzZGvNyS+nHcGilE3zydN9j2z5nmHJpec3Fot+\ndUhyT7mArfvqNkHKpiBDlE2irvHplmdy0KU/ygVsolzW151Zfz8LdaQDDrr0hwFbAzoPZMs1Ogxa\nSlcoyKagny3fIxsF0fWQTfeuHQZsDXAgmz44aIkou2Ta6iVTTgVs1dYZ97L2eS4NhIlapv2RvFZE\nFITI52F7FeU6rrKJXceYwRMRUTpKB+yoR1564bcgwWBNRNlA9bEb2SA7qqpERERZTukadtg4Gtu7\nbOqioNR0avGi4GXzaGxVKZnTRjU1hqOxiUglLCSRmZI17La2Nuw62hpJ/y77lInkYLAhkkvJGjbA\nwCkw0yMiIkDhgE1ERETnMGATEZGSOLBtMAZsIqIswS607KbkoDMiInLH7dRKTlvVHwN2SDhfmUgO\nBh5/BqattnNAr8YYsIk0woLfucBD3jFY6y23n/yIcUAFkT8MPJSLGLCJiIg0wIBNRESkAfZh+8S+\nxPDwXBMRsYZNRESkBQZsIiIiDTBgExERaYABm4iISAMM2EREOcgwEmhsbJT2eYkEV6ALGgM2EVFA\nBmY4qLlAUl9XG17bekza57W1teH3u05K+zw6HwM2EVGOGl5QZFqb3ZDyeRScnAnYbK4hIjrfwNrs\nJ9HS0hp1UiiNnFk4pa2tDbuOtrIE6BEXLSHKfswX9ZBTOTFvSiIi0lVOBWwiIiJdMWATEWlC5gAx\n0g8DNhGRJjhALLcxYBMRaYRjcXIXAzYREZEGGLCJiIg04HsediwWwz333IPGxkbk5+fjhhtuwM03\n3ywzbURERHSW74Cdn5+Pe++9FzNnzkRnZyeuu+46LFiwAKWlpTLTR+Sbqms4ExH54btJfMKECZg5\ncyYAoLCwEKWlpaivr5eWMCIiIjpHSh92dXU1jhw5gssuu0zGxxEREZFFxgG7s7MTK1euxJo1a1BY\nWOjqPQUFw6T+nC3HkHHMTF/v5j0qnjseI/uOYTVq1HDpx8iWc6XiMXkM+TIK2GfOnMHKlStx7bXX\nYsmSJa7f1919WurP2XIMGcfM9PVu3qPiueMxsu8YVl1dfdKPkS3nSsVj8hjyZbRb15o1azB9+nTc\ncsststJDRHQe7hpHlEENe+/evdi0aRN27NiB5cuXo7y8HNu2bZOZNiIiIjrLdw179uzZOHz4sMy0\nEBERkQO2MREREWmAAZuIiEgDDNhEREQaYMAmIiLSAAM2ERGRBhiwiYiINMCATUREpAEGbCIiIg0w\nYBMREWmAAZuIiEgDDNhEREQaYMAmIiLSAAM2ERGRBhiwiYiINMCATUREpAEGbCIiIg0wYBMREWmA\nAZuIiEgDDNhEREQaYMAmIiLSAAM2ERGRBhiwiYiINMCATUREpAEGbCIiIg0wYBMREWmAAZuIiEgD\nDNhEREQaYMAmIiLSAAM2ERGRBhiwiYiINMCATUREpAEGbCIiIg0wYBMREWmAAZuIiEgDDNhEREQa\nYMAmIiLSAAM2ERGRBhiwiYiINMCATUREpAEGbCIiIg0wYBMREWmAAZuIiEgDDNhEREQaYMAmIiLS\nAAM2ERGRBhiwiYiINMCATUREpAEGbCIiIg0wYBMREWmAAZuIiEgDDNhEREQaYMAmIiLSQEYBe9u2\nbfjGN76BsrIyrFu3TlaaiIiIyMJ3wE4kEnjwwQfxy1/+Em+88QY2b96MiooKmWkjIiKis3wH7IMH\nD2LatGn4zGc+g2HDhuHqq6/Gli1bZKaNiIiIzvIdsOvq6jBlypTkz5MmTUJ9fb2URBEREdFgQ/2+\n0TAMz+/p624/+79i0/8z//l0TyeAPMvR9DuGnGOOUO578Rg8hr/PTH0v6/M9oj9Gtn4v9Y9hfV9m\nfAfsyZMno7a2NvlzXV0dJk6cmPI9lR+94fdwREREOc13k/ill16Kqqoq1NTUoK+vD5s3b8bixYtl\npo2IiIjO8l3Dzs/Px9q1a3HrrbfCMAx885vfRGlpqcy0ERER0Vl5hp/OaCIiIgoVVzojIiLSAAM2\nERGRBhiwiYiINBBKwOaa43LEYjHcfPPNuOqqq7Bs2TK89NJLAIDW1lbceuutKCsrw3e/+120t5+b\nD/jQQw9h6dKluPbaa3H48OGokq6dRCKB8vJy3HbbbQCA6upq3HjjjSgrK8OqVatw5swZAEBfXx/u\nuusuLF26FDfddNOgqY6UWnt7O1auXIkrr7wSV199NQ4cOMB7WbIXXngB11xzDZYtW4bVq1ejr6+P\n97IEa9aswVe/+lUsW7Ys+Ts/9+7GjRtRVlaGsrIyvPbaa+kPbASsv7/fWLJkiVFdXW309fUZf/VX\nf2UcP3486MNmpfr6euPQoUOGYRhGR0eHsXTpUuP48ePGo48+aqxbt84wDMN49tlnjccee8wwDMPY\nunWr8f3vf98wDMPYv3+/ccMNN0STcA396le/MlavXm384Ac/MAzDMO68807jt7/9rWEYhnH//fcb\nL7/8smEYhvGf//mfxgMPPGAYhmFs3rzZ+PGPfxxJenX0d3/3d8b69esNwzCM06dPG21tbbyXJYrF\nYsaiRYuM3t5ewzAG7uENGzbwXpZg9+7dxqFDh4xrrrkm+Tuv925LS4uxePFio62tzWhtbU3+P5XA\na9hcc1yeCRMmYObMmQCAwsJClJaWoq6uDlu2bEF5eTkAoLy8PHl+t2zZguXLlwMAvvSlL6G9vR2N\njY3RJF4jsVgM7733Hm644Ybk73bs2IGysjIAA+f4D3/4AwAMOvdlZWX48MMPw0+whjo6OrBnzx5c\nf/31AIChQ4eiqKiI97JkiUQC3d3dOHPmDHp6ejBx4kTs3LmT93KG5syZgzFjxgz6ndd793//93+x\nYMECFBUVYcyYMViwYAHef//9lMcNPGBzzfFgVFdX48iRI/jSl76EpqYmlJSUABgI6s3NzQCA+vp6\nTJ48OfmeSZMmoa6uLpL06uThhx/GPffcg7y8gWUF4/E4iouLMWTIwOMyefLk5Hk0n+P8/HyMGTMG\nLS0t0SRcI9XV1Rg3bhzuvfdelJeXY+3ateju7ua9LNGkSZPwne98BwsXLsTXvvY1FBUV4ZJLLsGY\nMWN4LwegubnZ1b0rzrldbEx3TwcesA1O85aus7MTK1euxJo1a1BYWJgMLFZ2597ptTRg69atKCkp\nwcyZM5PnzzCM886lOI/W3xuGwXPswpkzZ3Do0CF8+9vfxsaNG1FQUIB169bxXpaora0NW7Zswbvv\nvov3338f3d3d2LZt23mv470cLKfz6ueeDjxg+1lznJydOXMGK1euxLXXXoslS5YAAC644IJk82BD\nQwPGjx8PYKDEFovFku+NxWI892ns27cP77zzDhYvXozVq1dj586dePjhh9He3o5EIgFg8Hk0n+P+\n/n50dHSguLg4svTrYvLkyZg8eTIuvfRSAMDSpUtx6NAh3ssSbd++HVOnTsXYsWORn5+PJUuW4KOP\nPkJbWxvv5QB4vXetsdHNPR14wOaa43KtWbMG06dPxy233JL83aJFi7BhwwYAA6MOxfldvHhxcuTh\n/v37MWbMmGSTDdlbtWoVtm7dii1btuDxxx/H/Pnz8fOf/xzz58/H7373OwCDz/GiRYuwceNGAMDv\nfvc7fOUrX4ks7TopKSnBlClTUFlZCWBgjMD06dN5L0t04YUX4sCBA+jt7YVhGNixYwcuvvhi3suS\nWGvIXu/dyy+/HNu3b0d7eztaW1uxfft2XH755SmPGcrSpNu2bcPPfvaz5JrjK1asCPqQWWnv3r34\n67/+a8yYMQN5eXnIy8vDXXfdhcsuuww//vGPcerUKVx44YV48sknkwMi/vEf/xHvv/8+CgoK8Mgj\nj+DP/uzPIv4W+ti1axeef/55/OIXv8Cnn36KVatWoa2tDTNnzsRjjz2GYcOGoa+vD3fffTcOHz6M\nsWPH4vHHH8dFF10UddK1cOTIEfz0pz/FmTNnMHXqVDzyyCPo7+/nvSzRU089hc2bN2Po0KG45JJL\n8NBDDyEWi/FezpBofWtpaUFJSQl+9KMfYcmSJbjzzjs93bsbNmzAL37xC+Tl5eGHP/xhcnCaE64l\nTkREpAGudEZERKQBBmwiIiINMGATERFpgAGbiIhIAwzYREREGmDAJiIi0gADNhERkQYYsImIiDTw\n/wHp1hHKo/eYswAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x55674b970610>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "display_data",
"data": {
"image/png": "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\nGwAAQxBtAAAMwUe+/IQ3B0T5KQ6IAgCBiWj7CQ6IAgBoCNH2IxwQBQhslttt6zNhXbt2U3BwsG3r\nwf8RbQD4lVRXlCjr1VK1jvjW67WqyouVffcNSkjoYcNkMAXRBoBfkV3PqKFl4t3jAAAYgmgDAGAI\nog0AgCGINgAAhiDaAAAYgmgDAGAIog0AgCH4nLYXnnl+rT789GTd6eCQILlq3R6tVfrN/9VvOl9j\n12gAgABEtL3gcgfJave7utO13izmdHo9D4CWw5NDopaVhcnprDzvfJfLJcmh4GB7nnzl8KrNp9mi\nvXv3bmVmZsqyLKWmpmr69OnNdVMA0OLYeUjUkwVHFRoeZcsXFnF41ebVLNF2u9165JFHtGbNGsXG\nxmrSpElKSkpSQkJCc9wcALRIdn7JEIdXNUOzRPvw4cPq0qWL4uPP3QHGjh2r3Nxcog0A8BmXy6W8\nvC9tW88XLwM0S7SLiorUoUOHutPt27fXf//73+a4KQAAGiUv70ulLX/L6JcBmiXalmU1x7J+x2HV\nyn3y//9lxJt3j7srT6gqONyWuaornJIcfreW3euxlm/XYy3frueva1WVF9v6neEX8nNvqGtIc8/1\na2iWaMfFxenEiRN1p4uKihQb+8t/s4mJsSdYv6ZF9/0fX48AAGikq676vaZMSfH1GF5ploOr9O3b\nV/n5+Tp+/Li+//57bdq0SUlJSc1xUwAAtBjN8kg7ODhYCxYs0K233irLsjRp0iTehAYAgJccVkt5\nARoAAMNx7HEAAAxBtAEAMATRBgDAED79wpCMjAzt3LlTUVFR2rhxoy9H8VhhYaHmz5+v0tJSBQcH\na/Lkybr55pt9PVaTff/99/rTn/6ks2fPyuVyKTk5WTNmzPD1WB5xu91KTU1V+/bt9cwzz/h6HI8k\nJiYqLCxMQUFBCgkJ0bp163w9kkcqKip0//336/PPP1dQUJAyMzPVv39/X4/VaF999ZXS09PlcDhk\nWZa++eYbpaWlGfk7vmbNGq1bt04Oh0M9e/bUkiVL1KpVK1+P1ST//Oc/634XTPp/7YVaV15ervT0\ndB0/flydOnXSk08+qfDwRnz02fKhDz/80Dpy5Ig1btw4X47hleLiYuvIkSOWZVlWZWWlNWrUKOvY\nsWM+nsozVVVVlmVZVm1trTV58mTr0KFDPp7IM88//7w1d+5c64477vD1KB5LTEy0Tp065esxvHbP\nPfdY69atsyzLss6ePWtVVFT4eCLPuVwua+jQodaJEyd8PUqTFRYWWomJidaZM2csy7KstLQ0Kycn\nx8dTNc1nn31mjRs3zjpz5oxVW1tr3XLLLdbXX3/t67Ea5UKtW7ZsmbVy5UrLsixrxYoV1vLlyxu1\nlk+fHh8wYIDatm3ryxG8FhMTo969e0uS2rRpo4SEBBUXF/t4Ks+EhoZKOveou7bWqy8a9ZnCwkLt\n2rVLkydP9vUoXrEsS263Z0fX8xeVlZU6cOCAUlNTJUkhISEKCwvz8VSe27t3r37729/WO0SzSdxu\nt6qrq1VbW6uampoGD3jlb7744gtdfvnlatWqlYKDgzVw4EBt3brV12M1yoVal5ubq5SUcwd6SUlJ\n0bZt2xq1Fq9p26igoECffvqp+vXr5+tRPOJ2uzVhwgQNHTpUQ4cONXIfmZmZmj9/vhwO+w496QsO\nh0O33XabUlNT9dprr/l6HI8UFBSoXbt2uu+++5SSkqIFCxaopqbG12N5bPPmzRo7dqyvx/BI+/bt\nNW3aNI0YMULDhg1TeHi4hgwZ4uuxmqRHjx768MMPVV5erurqau3evVvffuv915L6itPpVHR0tKRz\nD/7Kysoa9XNE2yanT5/WrFmzlJGRoTZt2vh6HI8EBQXpjTfe0O7du3Xo0CEdO3bM1yM1yc6dOxUd\nHa3evXsbf/z7V155RRs2bNCzzz6rtWvX6sCBA74eqclqa2t15MgR3XTTTcrJydHFF1+slStX+nos\nj5w9e1bbt2/X6NGjfT2KR7777jvl5uZqx44deu+991RVVWXc+4gSEhJ0++23a9q0aZo+fbp69eql\nkBCfvi3LJ4i2DWprazVr1iyNHz9e1113na/H8VpYWJgGDRqk9957z9ejNMnBgwe1fft2JSUlae7c\nudq/f7/mz5/v67E8EhMTI0mKjIzUyJEjjfyWvLi4OMXFxalv376SpOTkZB05csTHU3lm9+7duuyy\nyxQZGenrUTyyd+9ede7cWZdccomCg4M1cuRIffzxx74eq8lSU1O1YcMGvfjii4qIiFCXLl18PZLH\noqKiVFpaKkkqKSlp9H3L59E2/RGRdO6dgd27d9fUqVN9PYrHnE6nKioqJEk1NTV6//331a1bNx9P\n1TRz5szRzp07lZubq8cff1yDBw/WsmXLfD1Wk1VXV+v06dOSpKqqKu3Zs0c9evy6X/9nh+joaHXo\n0EFfffWVJGnfvn3GHs5406ZNGjdunK/H8FjHjh116NAhnTlzRpZlGfvfwul0SpJOnDihrVu3GvXf\n5KetS0xFCIuQAAABFklEQVRM1IYNGyRJOTk5jf5+Dp8+t/DDo6FTp05pxIgRmjlzZt2bVkzx0Ucf\naePGjerZs6cmTJggh8Oh9PR0DRs2zNejNUlJSYnuvfdeud1uud1ujRkzRsOHD/f1WC1SaWmpZsyY\nIYfDIZfLpeuvv17XXHONr8fyyAMPPKB58+aptrZWnTt31pIlS3w9UpPV1NRo7969evjhh309isf6\n9eun5ORkTZgwQSEhIerTp4+mTJni67GabObMmSovL1dISIgWLVrUuI9I+YELtW769OlKS0vT+vXr\n1bFjR2VnZzdqLY49DgCAIXz+9DgAAGgcog0AgCGINgAAhiDaAAAYgmgDAGAIog0AgCGINgAAhiDa\nAAAY4v8BO1u7o2P9+rYAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x55674c17c950>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "display_data",
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAfMAAAFhCAYAAABkoUMDAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3X9YlXWe//HXAXRF+aH8OCDqdhXWxOxVjmaogyNegDCh\nKYg6u22ToxVbm0pK645WOuOUtqMz5e7MllSr2bpXTQil5aiJibb+KMvcvS5tZ1KJQToIggjir3PO\n/f3DOt9UCjnnxDkfeT7+isM5n/t9a/LkPuc+97FZlmUJAAAYKyTQAwAAAN8QcwAADEfMAQAwHDEH\nAMBwxBwAAMMRcwAADEfMgSD1u9/9Tv/0T//k9eMnTJigDz/80I8TXZsvvvhCw4YNE+96BboOMQeu\nsHHjRhUUFGjo0KH60Y9+pMLCQn300UcBmcVms13T/RYsWKCVK1dedtvbb7+tO++806/zHD9+XLfe\neqvcbvc3br9///76+OOPO5y9vLxc99xzj1/nA7qrsEAPAAST1atX66WXXtIvf/lLjR49Wj169NCu\nXbu0fft23XHHHYEeLyhc6y8YHbEsy29rBWJ9IJhwZA58qbW1Vf/6r/+qxYsXKysrS7169VJoaKjG\njh3rebr7yiPgDz74QOnp6Z6vMzIy9PLLL2vixIkaOnSonnjiCZ08eVIPPvighg0bppkzZ6qlpaXd\nx371+D179rQ7X1FRkUaPHq0777xTP/3pT3XkyBFJ0h/+8Adt3LhRL730koYNG6aHH374srVOnDih\nIUOG6PTp0561Dh06pJEjR8rlckmSSktLlZubqxEjRuiBBx5QbW2t13+OVx69l5WVKSsrS8OGDVNW\nVpbefvttHTlyRL/4xS/0ySefaOjQoUpNTfX8HcyfP1+jRo1SRkaGnn/+ec+6brdbzzzzjEaOHKms\nrCytW7fusu389Kc/1bPPPqu/+7u/0w9+8APV1NSorKxMubm5GjZsmMaNG6fXX3/ds95Xf/4vvfSS\nfvjDH+pHP/qRtm3bpsrKSuXk5GjEiBFatWqV138OQFfiyBz40oEDB3Tx4kVlZWV16nFXHv29++67\nWrNmjZxOp/Ly8nTo0CEtXbpUycnJeuCBB7R27Vo98sgj7T7226Snp+uZZ55RWFiYVqxYoeLiYr35\n5puaNm2aDhw4oMTERBUVFV31OLvdrqFDh2rLli2aOnWqpEtPwf/4xz9WaGiotm3bphdffFEvvPCC\nbrjhBpWUlGjevHl67bXXvnGWjl4P/2q/zp49q6efflplZWW64YYb1NDQoObmZiUnJ+uXv/ylSktL\ntW7dOs/jlixZojNnzmj79u1qbGzUzJkzZbfbVVBQoNdff13vv/++NmzYoPDwcM2ZM+eqP7+NGzfq\nxRdf1I033ii3263Y2FiVlJRo4MCB2r9/vx544AHdfvvtSklJkSQ1NDTo4sWL2rVrl8rKyvTkk08q\nLS1Nb775po4fP67Jkydr/PjxGjhw4LX9JQEBwpE58KVTp06pb9++Cgnx7Z/Fvffeq5iYGNntdg0f\nPlxDhgzRrbfeqh49emjcuHE6fPiwV+tOnjxZ4eHh6tGjhx555BF9+umnam1tvabHjh8/Xm+//bbn\n602bNunuu++WJL3++usqLCzUjTfeqJCQEBUWFurTTz/VF1980e5almVp1KhRSk1NVWpqqu68887L\n1r5SaGio/vSnP+n8+fOKi4tTcnJyu/dzu9364x//qOLiYoWHh2vAgAGaOXOm3nrrLUnS5s2bdd99\n98lutysyMlKFhYVXrZGfn6/k5GSFhIQoLCxM6enpnhAPHz5caWlp2r9/v+f+PXr00EMPPaTQ0FDl\n5uaqqalJ06dPV3h4uAYPHqzBgwfr//7v/zr40wUCjyNz4Et9+/bVqVOn5Ha7fQp6bGys57//6q/+\n6qqv29raOr2m2+3Wb3/7W23ZskVNTU2y2Wyy2WxqampSREREh4//8Y9/rKefflr19fU6duyYQkJC\nPOcA1NbW6umnn9a//Mu/SPr/rzXX1dWpf//+V61ls9m0b9++y46KFyxY0O52w8PD9eyzz+rll1/W\nwoULdccdd2j+/Pm66aabrrpvU1OTnE6nkpKSPLclJSWprq5OknTixAklJiZ6vvf1//6m2yorK/Xv\n//7vqqqqktvt1rlz5/S9733P8/2+fft69qNXr16SLv/769Wrl1d/X0BXI+bAl4YOHaqePXtq27Zt\nys7Obvc+4eHhOnfunOfr+vp6r7cXHh6us2fPer52uVxqampq974bNmzQe++9p1deeUVJSUlqaWnp\n1JnqkZGRSktL06ZNm3TkyBGNHz/e873+/fvr4Ycf1oQJE655vc6cXJaWlqa0tDRduHBBzz77rBYt\nWqT//M//vOrx/fr1U1hYmI4fP+45eq+trVVCQoIkKT4+3hN2Se0+c/D1NS9cuKCioiItX75cmZmZ\nCgkJ0SOPPMJb5nBd4ml24EsRERGaM2eOlixZom3btuncuXNyOp3auXOnVqxYIUlKSUlRZWWlmpub\nVV9fr7Vr13q9vRtvvFEXLlxQZWWlnE6nnn/+eV28eLHd+7a1talnz56KiopSW1ubfvOb31wWrri4\nOP3lL3/51u2NHz9eb731lt59993Lwv23f/u3WrVqlT777DNJUktLizZv3vyN61xLDL+6z8mTJ7V9\n+3adPXtWYWFh6t27t+dZj9jYWDkcDs8+h4SE6K677tJzzz2nM2fO6Pjx41qzZo0mTZokSbrrrru0\ndu1a1dXV6fTp03rppZe+dYaLFy/q4sWL6tevn0JCQlRZWan//u//7nB2wETEHPian/3sZ/r5z3+u\n559/XqNGjdLYsWP1X//1X56T4iZNmqTvfe97ysjI0AMPPKDc3NzLHn/l0ea3Hb1GRERo8eLFevzx\nx5Wenq4+ffp4jkKvlJeXp/79+2vMmDGaMGGChg4detn3p0yZos8++0ypqamaNWtWu9vOzMxUVVWV\n4uLiLnuqOSsrSw8++KDmzp2r4cOHa+LEidq1a9c3zn0tR+Rf3cftdmv16tUaM2aMRo4cqQ8//FCL\nFy+WJI0cOVI333yzRo8erVGjRkmSnnjiCfXq1UtZWVm69957NXHiRBUUFEiSpk2bprS0NE2cOFGT\nJ09Wenq6QkNDPb8cXDlXnz599Pjjj6uoqEipqanatGmTMjMzr2nuzuwrEAxsVge/Zi9cuFA7duxQ\nbGysNm7cKElqbm7W3Llzdfz4cQ0cOFDPPfecIiMjJUlPPfWUdu7cqfDwcD3zzDOes0bLy8v1wgsv\nSJIefvhh5eXlfZf7BeA6t3PnTv3iF7/Q9u3bAz0KEHAdHplPnjxZL7/88mW3lZSUaNSoUdqyZctl\n78WsrKxUdXW1tm7dqiVLlnh+A29ubtbvf/97lZaW6o033tDvfvc7z3ttAeBanD9/XpWVlXK5XKqr\nq9Pvf//7bzy3AehuOoz58OHDFRUVddltFRUVys/Pl3TprSAVFRWe27864h4yZIhaWlrU0NCg999/\nX2lpaYqMjFRUVJTS0tK+9Wk8ALiSZVn6t3/7N6Wmpmry5MkaPHiwZs+eHeixgKDg1dnsjY2NiouL\nk3TpDNPGxkZJ7b91pK6u7qq3uCQkJFx2VioAdKRXr14qLS0N9BhAUPLrCXBXvvz+1dtX2ntZnhNL\nAADwD6+OzGNjY9XQ0KC4uDjV19crJiZG0qUjbofD4bmfw+GQ3W5XYmKi9u3bd9ntI0eO7HA7fFAC\ngO7A5XJ5rrXvj7WkS1fe89WxY8e0qGSPekfbfV7rZM1hhUfG+mUtf6/nz7Xamk/o1WX36JZbbvF5\nrc64pphfeWSdkZGhsrIyFRYWqry83PN2j8zMTK1bt065ubn65JNPFBUVpbi4OI0ePVrPPvusWlpa\n5Ha7tXv3bj322GMdbtdms6m+3vwT5eLjI9mPIHE97IN0fezH9bAPkn/248iRP6to+YagC9PJmsOK\nHZiiiH4DfF6rrblOvaPtflnL3+v5e7bGxlaf/p+Ij4/s9GM6jHlxcbH27dunU6dOaezYsZo9e7YK\nCwtVVFSk9evXKykpyfMpUunp6aqsrNS4ceMUHh6uZcuWSZKio6P1j//4jyooKJDNZtOsWbOuOqkO\nALqzYAxTWzPnNpmiw5j/5je/aff2NWvWtHv7okWL2r198uTJmjx58rVPBgBBzOVyqarqqJqaItTY\neG0fePNNqqs/99NU6K64NjsAeKGq6qhfnxqPHZjih6nQXRFzAPAST2cjWHBtdgAADEfMAQAwHE+z\nA+gWvjphzV84aQ3BhJgD6Bb8ecKaxElrCC7EHEC34e+LlgDBgtfMAQAwHDEHAMBwxBwAAMMRcwAA\nDEfMAQAwHGezAwha/nxvOO8Lx/WMmAMIWnyYCXBtiDmAoMaHmQAd4zVzAAAMR8wBADAcMQcAwHDE\nHAAAwxFzAAAMR8wBADAcMQcAwHDEHAAAwxFzAAAMR8wBADAcMQcAwHDEHAAAwxFzAAAMR8wBADAc\nMQcAwHDEHAAAw4UFegAA1xeXy6WqqqMd3q+pKUKNja3fep/q6s/9NRZwXSPmAPyqquqoipZvUO9o\nu89rnaw5rNiBKX6YCri+EXMAftc72q6IfgN8Xqetuc4P0wDXP14zBwDAcMQcAADDEXMAAAxHzAEA\nMBwxBwDAcMQcAADDEXMAAAxHzAEAMBwxBwDAcMQcAADDEXMAAAxHzAEAMBwxBwDAcMQcAADDEXMA\nAAxHzAEAMBwxBwDAcMQcAADDEXMAAAznU8zXrFmjCRMm6O6771ZxcbEuXLigmpoaTZs2TTk5OZo3\nb56cTqck6cKFC5o7d66ys7P1k5/8RLW1tX7ZAQAAujuvY15XV6dXX31VZWVl2rhxo1wul9555x2t\n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\nzAEAMBwxBwDAcMQcAADDEXMAAAxHzAEAMBwxBwDAcFwBrhvx9XrqTU0RamxslcS11AEgmBDzbsSf\n11PnWuoAEDyIeTfjr+upcy11AAgeXR7znTt3aunSpbIsSwUFBSosLOzqEYziz48a5alxALg+dWnM\n3W63fvWrX2nNmjWy2+2aMmWKMjMzlZyc3JVjGIWnxgEAHenSmP/P//yPbrjhBg0YcOlp3vHjx6ui\nooKYd4CnxgEA36ZLY15XV6f+/ft7vk5ISND//u//duUIXcJRV6cP9h/wfB0V2UunW855t5ajVlIP\nP00GALgedWnMLcvqys0FzI739+qd9//s+To01CaXy7t9P+k4qpBo/zxzcbalUZIt6Nby93rdYS1/\nr8dagV2PtQK7nj/Xams+4Zd1OqtLY56YmKja2lrP13V1dbLbv/214Pj4yO96LL+b/dC9mv1QoKcA\nAHQXXXoFuNtuu03V1dU6fvy4Lly4oHfeeUeZmZldOQIAANedLj0yDw0N1ZNPPqmZM2fKsixNmTKF\nk98AAPCRzeouL2QDAHCd4oNWAAAwHDEHAMBwxBwAAMMF5QetLFy4UDt27FBsbKw2btwY6HG84nA4\nNH/+fDU0NCg0NFRTp07VfffdF+ixOu3ChQv6+7//e128eFEul0s5OTmaNWtWoMfyitvtVkFBgRIS\nEvTCCy8EehyvZGRkKCIiQiEhIQoLC1NpaWmgR/JKS0uLHn/8cf35z39WSEiIli5dqiFDhgR6rE45\nduyY5s6dK5vNJsuy9Je//EVFRUXG/Ttfs2aNSktLZbPZdMstt2jZsmXq2bNnoMfqtFdeecXz78Gk\nn7ft9a65uVlz587V8ePHNXDgQD333HOKjOzgbdpWEPrwww+tQ4cOWRMmTAj0KF47ceKEdejQIcuy\nLKu1tdXKzs62PvvsswBP5Z22tjbLsizL6XRaU6dOtQ4ePBjgibyzevVqq7i42PqHf/iHQI/itYyM\nDOvUqVOBHsNn//zP/2yVlpZalmVZFy9etFpaWgI8kW9cLpeVlpZm1dbWBnqUTnE4HFZGRoZ1/vx5\ny7Isq6ioyCovLw/wVJ33pz/9yZowYYJ1/vx5y+l0Wj/72c+szz//PNBjXZP2evfrX//aKikpsSzL\nslatWmUtX768w3WC8mn24cOHKyoqKtBj+CQ+Pl4pKZc+1KRPnz5KTk7WiROBuTKQr8LDwyVdOkp3\nOp0BnsY7DodDlZWVmjp1aqBH8YllWXK73YEewyetra3av3+/CgoKJElhYWGKiIgI8FS+2b17t/76\nr//6sst1hD/ZAAAECElEQVRVm8Ltduvs2bNyOp06d+5chxfyCkZHjhzRD37wA/Xs2VOhoaG68847\n9e677wZ6rGvSXu8qKiqUn58vScrPz9e2bds6XCcoY369qamp0aeffqrbb7890KN4xe12Ky8vT2lp\naUpLSzNyP5YuXar58+fLZvPf5SQDwWaz6f7771dBQYH+8Ic/BHocr9TU1Khfv35asGCB8vPz9eST\nT+rcOe8+uyBYbNq0SePHjw/0GJ2WkJCgGTNmaOzYsRozZowiIyP1wx/+MNBjddrNN9+sDz/8UM3N\nzTp79qx27typL774ItBjea2xsVFxcXGSLh0YNjU1dfgYYv4dO3PmjObMmaOFCxeqT58+gR7HKyEh\nIXrzzTe1c+dOHTx4UJ999lmgR+qUHTt2KC4uTikpKcZ/PsBrr72msrIyvfjii1q3bp32798f6JE6\nzel06tChQ7rnnntUXl6uXr16qaSkJNBjee3ixYvavn277rrrrkCP0mmnT59WRUWF3nvvPe3atUtt\nbW1GnqeUnJysBx98UDNmzFBhYaFuvfVWhYUF5Slh3xli/h1yOp2aM2eOJk2apKysrECP47OIiAil\npqZq165dgR6lUz7++GNt375dmZmZKi4u1r59+zR//vxAj+WV+Ph4SVJMTIzGjRtn5KcOJiYmKjEx\nUbfddpskKScnR4cOHQrwVN7buXOn/uZv/kYxMTGBHqXTdu/erUGDBqlv374KDQ3VuHHjdODAgY4f\nGIQKCgpUVlamV199VdHR0brhhhsCPZLXYmNj1dDQIEmqr6+/pv+3gjbmph9BSZfOUhw8eLCmT58e\n6FG81tjYqJaWFknSuXPntGfPHt10000Bnqpz5s2bpx07dqiiokK//e1vNWLECP36178O9Fiddvbs\nWZ05c0aS1NbWpvfff18333xzgKfqvLi4OPXv31/Hjh2TJO3du9foyzq/8847mjBhQqDH8EpSUpIO\nHjyo8+fPy7Iso/8uGhsbJUm1tbV69913jfo7ubJ3GRkZKisrkySVl5df02eYBOXzEF8dPZ06dUpj\nx47V7NmzPSfLmOKjjz7Sxo0bdcsttygvL082m01z587VmDFjAj1ap9TX1+vnP/+53G633G63cnNz\nlZ6eHuixuqWGhgbNmjVLNptNLpdLd999t0aPHh3osbzyxBNP6LHHHpPT6dSgQYO0bNmyQI/klXPn\nzmn37t1asmRJoEfxyu23366cnBzl5eUpLCxM3//+9zVt2rRAj+WV2bNnq7m5WWFhYVq8eHHHb+UK\nEu31rrCwUEVFRVq/fr2SkpK0cuXKDtfh2uwAABguaJ9mBwAA14aYAwBgOGIOAIDhiDkAAIYj5gAA\nGI6YAwBgOGIOAIDhiDkAAIb7f3DlH+DuvVv8AAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x55674b970110>"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"metadata": {
"colab_type": "text",
"id": "9-CelVUmdz8r"
},
"cell_type": "markdown",
"source": [
"### Scatter Plots"
]
},
{
"metadata": {
"colab_type": "code",
"id": "79C7jc9mv-Ji",
"outputId": "cf0c0e0e-8443-465e-f135-c518d818d486",
"colab": {}
},
"cell_type": "code",
"source": [
"import matplotlib.pyplot as plt\n",
"\n",
"x1 = [2, 3, 4]\n",
"y1 = [5, 5, 5]\n",
"\n",
"x2 = [1, 2, 3, 4, 5]\n",
"y2 = [2, 3, 2, 3, 4]\n",
"y3 = [6, 8, 7, 8, 7]\n",
"\n",
"# Markers: https://matplotlib.org/api/markers_api.html\n",
"\n",
"plt.scatter(x1, y1)\n",
"plt.scatter(x2, y2, marker='v', color='r')\n",
"plt.scatter(x2, y3, marker='^', color='m')\n",
"plt.title('Scatter Plot Example')\n",
"plt.show()"
],
"execution_count": 0,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAd0AAAFhCAYAAAA1NXBgAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAHfZJREFUeJzt3H9clfX9//HnBah5QzSVo2BpNyRNazolxdJuSv6IRC1B\nyTS1G5kul+mnTAvLWjdTl21tK2/LaWZpbdZQbGS1W2loTi1tTW1qabL5A0WMRFRADuf9/cPvzmqF\n5zLhfY7Hx/2vgIvrvM5713hc13WOxzHGGAEAgDoXEewBAAC4VBBdAAAsIboAAFhCdAEAsIToAgBg\nCdEFAMASogtcRObPn69p06YFewyrxowZo5ycnGCPAdQKoouwtHXrVt15553q1q2bevTooVGjRunz\nzz+/oH3m5uZq1KhR3/ledna2fve7313Qfv9Xdna2fvKTnygpKUk9evTQPffco4KCAv/PHcdxtZ++\nfftq06ZNNf78k08+UceOHZWUlKSkpCR17dpVSUlJ2rZt2wU/BwA/LCrYAwC17eTJk5o4caKeeuop\nDRw4UFVVVdq6davq169/Qfs1xrgOnlvV1dWKjIz83vfHjx+vKVOmqLKyUo899piys7O1fPnyWn1s\nSWrZsqXy8/Nrfb8AfhhXugg7//rXv+Q4jtLS0uQ4jurXr6+ePXuqffv2/m3efPNNpaWlKSkpSYMH\nD9auXbskSQsXLtSAAQP83//ggw8kSV999ZV+8Ytf6B//+Ie6du2q5ORkvfnmm8rLy9NLL72kpKQk\nTZw4UZJ09OhRTZ48WTfeeKP69++vZcuW+R93/vz5mjx5sqZNm6Zu3bopNzf3nM+lQYMGGjJkiL78\n8ssf/PmaNWs0ePBgJScna+zYsdq3b58kafr06Tp8+LAmTpyopKQkLV68+LzWsLS0VH369PEH+fTp\n07rlllv01ltvSZLWrVun9PR0XX/99br55ps1f/58/+8eOnRIHTp00MqVK5WSkqIePXpo+fLl2rFj\nh2677TYlJydr1qxZ/u1zc3M1cuRIPf300+rWrZvS0tLOeYWek5OjtLQ09ejRQ/fee68KCwvP67kB\nQWWAMFNWVmZ69OhhHnnkEbNu3TpTWlr6nZ+/8847pnfv3ubzzz83xhizf/9+U1hYaIwx5r333jPF\nxcX+7bp06eL/euXKlWbUqFHf2dejjz5qfvvb3/q/9vl8Jj093fz+9783Xq/XHDhwwPTv399s2LDB\nGGPMCy+8YK677jqzZs0aY4wxlZWV35v/2/s8efKkeeihh8zo0aP9vz9t2jRjjDH79u0zXbp0MRs3\nbjRer9csWrTIDBgwwFRVVRljjLn55pvNpk2balynjz/+2PTp06fGn2/YsMH06tXLfP311+axxx4z\nU6ZM8f/sk08+MV9++aUxxpgvvvjC9OrVy3zwwQfGGGMOHjxorrnmGvPkk0+ayspK87e//c106tTJ\n3H///aakpMQcOXLE3HjjjWbLli3+db322mvNq6++arxer1m9erW5/vrr/f+7jR492vz5z382xhjz\n/vvvm1tuucXs27fPVFdXmxdffNGMGDGixucAhBqudBF2GjVqpD/+8Y9yHEdPPPGEevbsqYkTJ6qk\npETS2Sule++9V9ddd50kqXXr1oqPj5ckpaamKjY2VpI0cOBAXXXVVdq+fbvrx96xY4eOHz+uiRMn\nKjIyUldeeaUyMzO1evVq/zZdu3ZV3759JanGW96LFy9WcnKyUlNTVV5erjlz5nxvm3fffVcpKSm6\n8cYbFRkZqXHjxqmiokKfffaZfxsT4KPVi4qKlJycrOTkZHXv3l3JycmqqKiQJPXq1Uu33nqr7r77\nbq1fv15PPfWU//e6d++udu3aSZLat2+vtLQ0bdmyxf9zx3F0//33++8yNGzYUIMGDVLTpk3VsmVL\ndevWTTt37vRv37x5c40dO1aRkZFKS0tTQkLCD972fuONNzRhwgQlJCQoIiJCEyZM0O7du3X48OFz\nPk8gVPCaLsJS27ZtNXfuXElSQUGBHn74Yc2ePVu//vWvdeTIEbVp0+YHf2/VqlV65ZVXdOjQIUlS\neXm5vvnmG9ePe+jQIX/IpLPR8/l86t69u3+buLi4gPsZN26cpkyZcs5tjh49qlatWvm/dhxH8fHx\nKioqcj1voNd077jjDr322mu677771KRJE//3t2/frl/96lfas2ePqqqqVFVVpVtvvfU7v9u8eXP/\nf1922WX+kxnp7G3z06dPf2eOb2vVqpWOHj36vXkKCws1e/ZsPfPMM5L++zp7UVGR/8QJCGVEF2Ev\nISFBGRkZeuONNySdjd7+/fu/t11hYaFmzpyppUuXqmvXrpKkoUOH+q8W3byJKj4+XldeeaX++te/\n1rhNbb0Zq0WLFtqzZ893vnf48GF/1C/0cXw+n5544gmlp6frT3/6k4YNG6bWrVtLkqZOnaoxY8Zo\n8eLFqlevnubMmaPjx4//6Mf63xOFw4cPq1+/ft/bLi4uThMnTtTgwYN/9GMBwcTtZYSdffv2acmS\nJf4/5IcPH9bbb7+tLl26SJIyMzP18ssv65///Kckaf/+/Tp8+LDKy8sVERGhpk2byufzacWKFd+J\nWvPmzXXkyBFVVVX5vxcbG6sDBw74v+7cubMaNWqkRYsWqbKyUtXV1dqzZ4927NhR689z4MCBys/P\n1+bNm+X1erV48WI1aNDA/zw9Ho8OHjx4zn2c6/bziy++KMdxNGfOHN1zzz2aNm2af/vTp0+rcePG\nqlevnrZv3663337b9X5/SElJiZYtWyav16t3331X+/btU0pKyve2GzlypP7whz9o7969kqSysjK9\n99575/VYQDBxpYuwEx0drW3btmnJkiUqKytT48aNdfPNN/s/VOLWW29VaWmppk6dqqNHj+qKK67Q\ns88+qw4dOigrK0sjRoxQRESEhg4dqqSkJP9+b7jhBrVr10433XSTIiIitGnTJg0fPlxTpkzxvy46\nf/58LViwQL/85S/Vr18/VVVVKSEhIeCt4h8jISFBzz77rGbNmqWjR4+qQ4cOWrBggaKizv7fevz4\n8Xr66af17LPPauLEicrKyvrePoqLi/3P8T+3ap955hm1atVKS5cuVU5OjhzH0fjx47Vu3TotXLhQ\nP/vZz/TEE0/omWee0axZs9S9e3elpaXpxIkT/v3+71V2oK87d+6sf//737rhhhsUGxurF154QY0b\nN/7etv3799fp06f14IMP6vDhw4qJiVHPnj2/d2sbCFWOcXFK+uqrr/o/ESYzM1Njx46t88EAXBpy\nc3OVk5Oj119/PdijAHUu4O3lPXv2KCcnRytWrNCqVav04Ycf/uDrYQAA4NwCRverr75Sly5dVL9+\nfUVGRqp79+56//33bcwGAEBYCRjddu3aacuWLSotLVV5ebnWr1/Pv4kDUGvS09O5tYxLRsA3UiUm\nJmr8+PHKyspSdHS0OnTo4H+jBgAAcM/VG6m+7Te/+Y3i4uI0cuTIGrcxdfDB8AAAXOxcXbKWlJSo\nWbNmKiws1Pvvv+//kIGaOI6j4uKyWhkwnHk8MayTC6yTe6yVO6yTe6yVOx5PjKvtXEX3gQceUGlp\nqaKiovTkk08qJsbdzgEAwH+5ii5vcgAA4MLxMZAAAFhCdAEAsIToAgBgCdEFAMASogsAgCVEFwAA\n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\nf11UVKQWLVrU1u5xifJ6vZo8ebJuv/129e/fP9jjhLxGjRopOTlZH330UbBHCTl///vftXbtWvXr\n109Tp07Vxx9/zPsqzsHj8UiSmjVrpgEDBmjHjh1Bnig0xcXFKS4uTp06dZIkpaamaufOnTVuX2vR\n7dSpk/bv369Dhw7pzJkzWr16tfr161dbuw87nGm7M2PGDF199dW6++67gz1KyCopKVFZWZkkqaKi\nQps2bVLbtm2DPFXoeeihh5Sfn681a9boueeeU48ePTRv3rxgjxWSysvLderUKUnS6dOntWHDBrVr\n1y7IU4Wm2NhYxcfHq6CgQJK0efPmc77Zs9bevRwZGamZM2fqnnvukTFGw4cP512mNfjPWfbx48eV\nkpKiBx54wP8iPP7r008/VV5entq3b6+hQ4fKcRw9+OCD6t27d7BHCynFxcV69NFH5fP55PP5lJaW\npj59+gR7LFzEjh07pkmTJslxHFVXV2vIkCG66aabgj1WyHr88cf18MMPy+v1qnXr1po7d26N2/LZ\nywAAWMInUgEAYAnRBQDAEqILAIAlRBcAAEuILgAAlhBdAAAsIboAAFhCdAEAsOT/AcZ5nJs+bIoi\nAAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x55674ccd7c10>"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"metadata": {
"colab_type": "text",
"id": "nlk-Sk0Nd82p"
},
"cell_type": "markdown",
"source": [
"### Stack Plots"
]
},
{
"metadata": {
"colab_type": "code",
"id": "5sxEM0pJzpgr",
"outputId": "264a9408-1739-46c6-d978-3987c275dabf",
"colab": {}
},
"cell_type": "code",
"source": [
"import matplotlib.pyplot as plt\n",
"\n",
"idxes = [ 1, 2, 3, 4, 5, 6, 7, 8, 9]\n",
"arr1 = [23, 40, 28, 43, 8, 44, 43, 18, 17]\n",
"arr2 = [17, 30, 22, 14, 17, 17, 29, 22, 30]\n",
"arr3 = [15, 31, 18, 22, 18, 19, 13, 32, 39]\n",
"\n",
"# Adding legend for stack plots is tricky.\n",
"plt.plot([], [], color='r', label = 'D 1')\n",
"plt.plot([], [], color='g', label = 'D 2')\n",
"plt.plot([], [], color='b', label = 'D 3')\n",
"\n",
"plt.stackplot(idxes, arr1, arr2, arr3, colors= ['r', 'g', 'b'])\n",
"plt.title('Stack Plot Example')\n",
"plt.legend()\n",
"plt.show()"
],
"execution_count": 0,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "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\nSUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x55674d9bfb50>"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"metadata": {
"colab_type": "text",
"id": "C0LOohpqeCjx"
},
"cell_type": "markdown",
"source": [
"### Pie Charts"
]
},
{
"metadata": {
"colab_type": "code",
"id": "ZdEG-d4g4U6v",
"outputId": "51f53730-aa0a-4a10-d5f0-ed4293dc832b",
"colab": {}
},
"cell_type": "code",
"source": [
"import matplotlib.pyplot as plt\n",
"\n",
"labels = 'S1', 'S2', 'S3'\n",
"sections = [56, 66, 24]\n",
"colors = ['c', 'g', 'y']\n",
"\n",
"plt.pie(sections, labels=labels, colors=colors,\n",
" startangle=90,\n",
" explode = (0, 0.1, 0),\n",
" autopct = '%1.2f%%')\n",
"\n",
"plt.axis('equal') # Try commenting this out.\n",
"plt.title('Pie Chart Example')\n",
"plt.show()"
],
"execution_count": 0,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x55674b90b850>"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"metadata": {
"colab_type": "text",
"id": "sX97x87MTyIf"
},
"cell_type": "markdown",
"source": [
"### fill_between and alpha"
]
},
{
"metadata": {
"colab_type": "code",
"id": "BCUl8mTMT4sN",
"outputId": "f52ac738-a80d-4d4a-b112-e3acb9334eed",
"colab": {}
},
"cell_type": "code",
"source": [
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"\n",
"ys = 200 + np.random.randn(100)\n",
"x = [x for x in range(len(ys))]\n",
"\n",
"plt.plot(x, ys, '-')\n",
"plt.fill_between(x, ys, 195, where=(ys > 195), facecolor='g', alpha=0.6)\n",
"\n",
"plt.title(\"Fills and Alpha Example\")\n",
"plt.show()"
],
"execution_count": 0,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x55674daf8250>"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"metadata": {
"colab_type": "text",
"id": "jONspxyzeT4Y"
},
"cell_type": "markdown",
"source": [
"### Subplotting using Subplot2grid"
]
},
{
"metadata": {
"colab_type": "code",
"id": "JF-dVGj3ExQm",
"outputId": "df00765b-d58a-4ad0-ce52-b1670a86f486",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 401
}
},
"cell_type": "code",
"source": [
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"\n",
"def random_plots():\n",
" xs = []\n",
" ys = []\n",
" \n",
" for i in range(20):\n",
" x = i\n",
" y = np.random.randint(10)\n",
" \n",
" xs.append(x)\n",
" ys.append(y)\n",
" \n",
" return xs, ys\n",
"\n",
"fig = plt.figure()\n",
"ax1 = plt.subplot2grid((5, 2), (0, 0), rowspan=1, colspan=2)\n",
"ax2 = plt.subplot2grid((5, 2), (1, 0), rowspan=3, colspan=2)\n",
"ax3 = plt.subplot2grid((5, 2), (4, 0), rowspan=1, colspan=1)\n",
"ax4 = plt.subplot2grid((5, 2), (4, 1), rowspan=1, colspan=1)\n",
"\n",
"x, y = random_plots()\n",
"ax1.plot(x, y)\n",
"\n",
"x, y = random_plots()\n",
"ax2.plot(x, y)\n",
"\n",
"x, y = random_plots()\n",
"ax3.plot(x, y)\n",
"\n",
"x, y = random_plots()\n",
"ax4.plot(x, y)\n",
"\n",
"plt.tight_layout()\n",
"plt.show()"
],
"execution_count": 0,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "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\n/pLW1tYxrzn6uR/22muvsW3btnFfO3nyJHfccQe33347eXl55myiTbLZHJfRHPHGPBWff/45u3fv\n5uWXXx7z8/vuu4+VK1fi7e3NPffcw759+7j66qut1ErTi46O5t577+Waa66hqqqK7du3s3///vNy\nHBzZ7t27ufnmm8/7+QMPPMCGDRuQyWRs27aNxYsXs2DBAiu00HKm8v13xGuEXq/ngQceYNmyZSxf\nvnzMa478Hbnxxhvx8fEhMTGRF154gb///e/893//94S/74jnfnBwkDNnzvD444+f91pycjJ+fn6s\nWbOGjIwMHnzwQT788EPLN9KKbHLE5UIbO377tYaGhmkNM9qLI0eO8I9//IMXX3wRT8+xG2zddNNN\n+Pv7o1QqWbVqFUVFRVZqpXkEBwdz7bXXIpPJiIqKIiAggIaGBsB5zv+JEydITU097+dbt25Fo9Hg\n7u7OsmXLHO7cD3N3d6e/vx8Y/xxPd/NXe/Twww8za9Ys7r333vNeu9B3xN4tX76cxMREwLgQ4duf\ncWc496dOnZpwiig2NnYkWTk1NZXW1lanSyWwycDlQhs7RkRE0N3dTXV1NTqdjkOHDrFixQprNtfk\nurq6+POf/8w///nPkcz60a/dcccdDA4OAsYP+PDKAkexZ88eXnrpJcA4NdTS0jKyasoZzn9DQwMa\njea8p+eysjLuv/9+JElCp9ORnp7ucOd+2KWXXjpyDdi/fz8rV64c87qjb/66Z88eXFxcuO+++yZ8\nfaLviL372c9+RlVVFWAM4L/9GXf0cw+QnZ3N3Llzx33txRdf5KOPPgKMK5L8/PwcYmXhdNjsXkVP\nP/00p0+fHtnYMS8vD09PT9avX8+pU6d4+umnAbjyyiu54447rNxa09q1axfPPfccMTExIz9bunQp\nc+bMYf369bz66qt88MEHqNVq5s2bx6OPPopMJrNii02ru7ubX//613R2dqLVarn33ntpaWlxmvOf\nk5PDX//6V/71r38B8MILL7BkyRJSU1N56qmnOH78OHK5nLVr1zrEMsicnBz+9Kc/UVNTg1KpJDg4\nmKeffpqHHnqIgYEBwsLCePLJJ3FxceGXv/wlTz75JK6uruddIya60Nu68frf0tKCWq0euSHHxsby\n+OOPj/Rfp9Od9x1ZvXq1lXsyfeP1fdu2bbzwwgu4ubnh7u7Ok08+ib+/v9Oc++eee47nnnuORYsW\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f6c9aca59d0>"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"metadata": {
"colab_type": "text",
"id": "fllyxKu8edm6"
},
"cell_type": "markdown",
"source": [
"## Plot styles\n",
"\n",
"Colaboratory charts use [Seaborn's](https://seaborn.pydata.org) custom styling by default. To customize styling further please see the [matplotlib docs](https://matplotlib.org/users/style_sheets.html)."
]
},
{
"metadata": {
"colab_type": "text",
"id": "Xn0jLwr8evoR"
},
"cell_type": "markdown",
"source": [
"## 3D Graphs"
]
},
{
"metadata": {
"colab_type": "text",
"id": "DrRCtocXe9SB"
},
"cell_type": "markdown",
"source": [
"### 3D Scatter Plots"
]
},
{
"metadata": {
"colab_type": "code",
"id": "Eo2bdDQ5GZ76",
"outputId": "7aceedf3-d92f-464c-b22c-34b34adb3e12",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 401
}
},
"cell_type": "code",
"source": [
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"from mpl_toolkits.mplot3d import axes3d\n",
"\n",
"fig = plt.figure()\n",
"ax = fig.add_subplot(111, projection = '3d')\n",
"\n",
"x1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]\n",
"y1 = np.random.randint(10, size=10)\n",
"z1 = np.random.randint(10, size=10)\n",
"\n",
"x2 = [-1, -2, -3, -4, -5, -6, -7, -8, -9, -10]\n",
"y2 = np.random.randint(-10, 0, size=10)\n",
"z2 = np.random.randint(10, size=10)\n",
"\n",
"ax.scatter(x1, y1, z1, c='b', marker='o', label='blue')\n",
"ax.scatter(x2, y2, z2, c='g', marker='D', label='green')\n",
"\n",
"ax.set_xlabel('x axis')\n",
"ax.set_ylabel('y axis')\n",
"ax.set_zlabel('z axis')\n",
"plt.title(\"3D Scatter Plot Example\")\n",
"plt.legend()\n",
"plt.tight_layout()\n",
"plt.show()"
],
"execution_count": 0,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f6c98bf9b50>"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"metadata": {
"colab_type": "text",
"id": "MXVPkFpTfCE-"
},
"cell_type": "markdown",
"source": [
"### 3D Bar Plots"
]
},
{
"metadata": {
"colab_type": "code",
"id": "YGi1XPCrGsQz",
"outputId": "a6cfb9a4-8e96-47e4-9f51-8629508590d8",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 401
}
},
"cell_type": "code",
"source": [
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"\n",
"fig = plt.figure()\n",
"ax = fig.add_subplot(111, projection = '3d')\n",
"\n",
"x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]\n",
"y = np.random.randint(10, size=10)\n",
"z = np.zeros(10)\n",
"\n",
"dx = np.ones(10)\n",
"dy = np.ones(10)\n",
"dz = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]\n",
"\n",
"ax.bar3d(x, y, z, dx, dy, dz, color='g')\n",
"\n",
"ax.set_xlabel('x axis')\n",
"ax.set_ylabel('y axis')\n",
"ax.set_zlabel('z axis')\n",
"plt.title(\"3D Bar Chart Example\")\n",
"plt.tight_layout()\n",
"plt.show()"
],
"execution_count": 0,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f6c9b4ead90>"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"metadata": {
"colab_type": "text",
"id": "Xbey0KVpfIbQ"
},
"cell_type": "markdown",
"source": [
"### Wireframe Plots"
]
},
{
"metadata": {
"colab_type": "code",
"id": "60f2SO4jIfQz",
"outputId": "3600f6d7-501d-4144-9c99-6b8f807b0d5c",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 401
}
},
"cell_type": "code",
"source": [
"import matplotlib.pyplot as plt\n",
"\n",
"fig = plt.figure()\n",
"ax = fig.add_subplot(111, projection = '3d')\n",
"\n",
"x, y, z = axes3d.get_test_data()\n",
"\n",
"ax.plot_wireframe(x, y, z, rstride = 2, cstride = 2)\n",
"\n",
"plt.title(\"Wireframe Plot Example\")\n",
"plt.tight_layout()\n",
"plt.show()"
],
"execution_count": 0,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f6c9aca4610>"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"metadata": {
"colab_type": "text",
"id": "cRkuifc7PazR"
},
"cell_type": "markdown",
"source": [
"## Seaborn\n",
"\n",
"There are several libraries layered on top of Matplotlib that you can use in Colab. One that is worth highlighting is [Seaborn](http://seaborn.pydata.org):"
]
},
{
"metadata": {
"cellView": "both",
"colab_type": "code",
"id": "el13bTbyPRw4",
"outputId": "9063327c-064d-4213-ccf8-8af4e26c5106",
"colab": {}
},
"cell_type": "code",
"source": [
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"import seaborn as sns\n",
"\n",
"# Generate some random data\n",
"num_points = 20\n",
"# x will be 5, 6, 7... but also twiddled randomly\n",
"x = 5 + np.arange(num_points) + np.random.randn(num_points)\n",
"# y will be 10, 11, 12... but twiddled even more randomly\n",
"y = 10 + np.arange(num_points) + 5 * np.random.randn(num_points)\n",
"sns.regplot(x, y)\n",
"plt.show()"
],
"execution_count": 0,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "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\n/wc32622TZPq9wAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x55674c6fc890>"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"metadata": {
"colab_type": "text",
"id": "MoWj1knmTZPI"
},
"cell_type": "markdown",
"source": [
"That's a simple scatterplot with a nice regression line fit to it, all with just one call to Seaborn's [regplot](http://seaborn.pydata.org/generated/seaborn.regplot.html#seaborn.regplot).\n",
"\n",
"Here's a Seaborn [heatmap](https://seaborn.pydata.org/generated/seaborn.heatmap.html):"
]
},
{
"metadata": {
"cellView": "both",
"colab_type": "code",
"id": "Fjw7UfGZQcL9",
"outputId": "db8cf44f-dd21-491f-ef2d-e504d8ee7fe1",
"colab": {}
},
"cell_type": "code",
"source": [
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"\n",
"# Make a 10 x 10 heatmap of some random data\n",
"side_length = 10\n",
"# Start with a 10 x 10 matrix with values randomized around 5\n",
"data = 5 + np.random.randn(side_length, side_length)\n",
"# The next two lines make the values larger as we get closer to (9, 9)\n",
"data += np.arange(side_length)\n",
"data += np.reshape(np.arange(side_length), (side_length, 1))\n",
"# Generate the heatmap\n",
"sns.heatmap(data)\n",
"plt.show()"
],
"execution_count": 0,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "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\nZqEBBQLP2dAAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x55674c44f410>"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"metadata": {
"colab_type": "text",
"id": "beTgCbVa_wFA"
},
"cell_type": "markdown",
"source": [
"## Altair"
]
},
{
"metadata": {
"colab_type": "text",
"id": "610XkhS2Atb0"
},
"cell_type": "markdown",
"source": [
"Altair is installed and correctly enabled by default, and can be imported and used directly in Colab: "
]
},
{
"metadata": {
"colab_type": "code",
"id": "bqIjKoB0s2MF",
"colab": {}
},
"cell_type": "code",
"source": [
"import altair as alt"
],
"execution_count": 0,
"outputs": []
},
{
"metadata": {
"colab_type": "text",
"id": "Him9xzhWtMD0"
},
"cell_type": "markdown",
"source": [
"### Interactive Scatter Chart\n",
"\n",
"Now you can use Altair to create any available chart type; for example, here is an interactive scatter plot of the cars dataset:"
]
},
{
"metadata": {
"colab_type": "code",
"id": "SYsgSJsyeaCA",
"outputId": "4f2b6dac-3df8-4d78-d69b-834674b2a90d",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 389
}
},
"cell_type": "code",
"source": [
"from vega_datasets import data\n",
"cars = data.cars()\n",
"\n",
"alt.Chart(cars).mark_point().encode(\n",
" x='Horsepower',\n",
" y='Miles_per_Gallon',\n",
" color='Origin',\n",
").interactive()"
],
"execution_count": 0,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"\n",
"<!DOCTYPE html>\n",
"<html>\n",
"<head>\n",
" <style>\n",
" .vega-actions a {\n",
" margin-right: 12px;\n",
" color: #757575;\n",
" font-weight: normal;\n",
" font-size: 13px;\n",
" }\n",
" .error {\n",
" color: red;\n",
" }\n",
" </style>\n",
"\n",
"<script src=\"https://cdn.jsdelivr.net/npm//[email protected]\"></script>\n",
"<script src=\"https://cdn.jsdelivr.net/npm//[email protected]\"></script>\n",
"<script src=\"https://cdn.jsdelivr.net/npm//[email protected]\"></script>\n",
"\n",
"</head>\n",
"<body>\n",
" <div id=\"vis\"></div>\n",
" <script type=\"text/javascript\">\n",
" var spec = {\"config\": {\"view\": {\"width\": 400, \"height\": 300}}, \"data\": {\"values\": [{\"Acceleration\": 12.0, \"Cylinders\": 8, \"Displacement\": 307.0, \"Horsepower\": 130.0, \"Miles_per_Gallon\": 18.0, \"Name\": \"chevrolet chevelle malibu\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3504, \"Year\": \"1970-01-01\"}, {\"Acceleration\": 11.5, \"Cylinders\": 8, \"Displacement\": 350.0, \"Horsepower\": 165.0, \"Miles_per_Gallon\": 15.0, \"Name\": \"buick skylark 320\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3693, \"Year\": \"1970-01-01\"}, {\"Acceleration\": 11.0, \"Cylinders\": 8, \"Displacement\": 318.0, \"Horsepower\": 150.0, \"Miles_per_Gallon\": 18.0, \"Name\": \"plymouth satellite\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3436, \"Year\": \"1970-01-01\"}, {\"Acceleration\": 12.0, \"Cylinders\": 8, \"Displacement\": 304.0, \"Horsepower\": 150.0, \"Miles_per_Gallon\": 16.0, \"Name\": \"amc rebel sst\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3433, \"Year\": \"1970-01-01\"}, {\"Acceleration\": 10.5, \"Cylinders\": 8, \"Displacement\": 302.0, \"Horsepower\": 140.0, \"Miles_per_Gallon\": 17.0, \"Name\": \"ford torino\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3449, \"Year\": \"1970-01-01\"}, {\"Acceleration\": 10.0, \"Cylinders\": 8, \"Displacement\": 429.0, \"Horsepower\": 198.0, \"Miles_per_Gallon\": 15.0, \"Name\": \"ford galaxie 500\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4341, \"Year\": \"1970-01-01\"}, {\"Acceleration\": 9.0, \"Cylinders\": 8, \"Displacement\": 454.0, \"Horsepower\": 220.0, \"Miles_per_Gallon\": 14.0, \"Name\": \"chevrolet impala\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4354, \"Year\": \"1970-01-01\"}, {\"Acceleration\": 8.5, \"Cylinders\": 8, \"Displacement\": 440.0, \"Horsepower\": 215.0, \"Miles_per_Gallon\": 14.0, \"Name\": \"plymouth fury iii\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4312, \"Year\": \"1970-01-01\"}, {\"Acceleration\": 10.0, \"Cylinders\": 8, \"Displacement\": 455.0, \"Horsepower\": 225.0, \"Miles_per_Gallon\": 14.0, \"Name\": \"pontiac catalina\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4425, \"Year\": \"1970-01-01\"}, {\"Acceleration\": 8.5, \"Cylinders\": 8, \"Displacement\": 390.0, \"Horsepower\": 190.0, \"Miles_per_Gallon\": 15.0, \"Name\": \"amc ambassador dpl\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3850, \"Year\": \"1970-01-01\"}, {\"Acceleration\": 17.5, \"Cylinders\": 4, \"Displacement\": 133.0, \"Horsepower\": 115.0, \"Miles_per_Gallon\": null, \"Name\": \"citroen ds-21 pallas\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 3090, \"Year\": \"1970-01-01\"}, {\"Acceleration\": 11.5, \"Cylinders\": 8, \"Displacement\": 350.0, \"Horsepower\": 165.0, \"Miles_per_Gallon\": null, \"Name\": \"chevrolet chevelle concours (sw)\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4142, \"Year\": \"1970-01-01\"}, {\"Acceleration\": 11.0, \"Cylinders\": 8, \"Displacement\": 351.0, \"Horsepower\": 153.0, \"Miles_per_Gallon\": null, \"Name\": \"ford torino (sw)\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4034, \"Year\": \"1970-01-01\"}, {\"Acceleration\": 10.5, \"Cylinders\": 8, \"Displacement\": 383.0, \"Horsepower\": 175.0, \"Miles_per_Gallon\": null, \"Name\": \"plymouth satellite (sw)\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4166, \"Year\": \"1970-01-01\"}, {\"Acceleration\": 11.0, \"Cylinders\": 8, \"Displacement\": 360.0, \"Horsepower\": 175.0, \"Miles_per_Gallon\": null, \"Name\": \"amc rebel sst (sw)\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3850, \"Year\": \"1970-01-01\"}, {\"Acceleration\": 10.0, \"Cylinders\": 8, \"Displacement\": 383.0, \"Horsepower\": 170.0, \"Miles_per_Gallon\": 15.0, \"Name\": \"dodge challenger se\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3563, \"Year\": \"1970-01-01\"}, {\"Acceleration\": 8.0, \"Cylinders\": 8, \"Displacement\": 340.0, \"Horsepower\": 160.0, \"Miles_per_Gallon\": 14.0, \"Name\": \"plymouth 'cuda 340\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3609, \"Year\": \"1970-01-01\"}, {\"Acceleration\": 8.0, \"Cylinders\": 8, \"Displacement\": 302.0, \"Horsepower\": 140.0, \"Miles_per_Gallon\": null, \"Name\": \"ford mustang boss 302\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3353, \"Year\": \"1970-01-01\"}, {\"Acceleration\": 9.5, \"Cylinders\": 8, \"Displacement\": 400.0, \"Horsepower\": 150.0, \"Miles_per_Gallon\": 15.0, \"Name\": \"chevrolet monte carlo\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3761, \"Year\": \"1970-01-01\"}, {\"Acceleration\": 10.0, \"Cylinders\": 8, \"Displacement\": 455.0, \"Horsepower\": 225.0, \"Miles_per_Gallon\": 14.0, \"Name\": \"buick estate wagon (sw)\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3086, \"Year\": \"1970-01-01\"}, {\"Acceleration\": 15.0, \"Cylinders\": 4, \"Displacement\": 113.0, \"Horsepower\": 95.0, \"Miles_per_Gallon\": 24.0, \"Name\": \"toyota corona mark ii\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 2372, \"Year\": \"1970-01-01\"}, {\"Acceleration\": 15.5, \"Cylinders\": 6, \"Displacement\": 198.0, \"Horsepower\": 95.0, \"Miles_per_Gallon\": 22.0, \"Name\": \"plymouth duster\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2833, \"Year\": \"1970-01-01\"}, {\"Acceleration\": 15.5, \"Cylinders\": 6, \"Displacement\": 199.0, \"Horsepower\": 97.0, \"Miles_per_Gallon\": 18.0, \"Name\": \"amc hornet\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2774, \"Year\": \"1970-01-01\"}, {\"Acceleration\": 16.0, \"Cylinders\": 6, \"Displacement\": 200.0, \"Horsepower\": 85.0, \"Miles_per_Gallon\": 21.0, \"Name\": \"ford maverick\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2587, \"Year\": \"1970-01-01\"}, {\"Acceleration\": 14.5, \"Cylinders\": 4, \"Displacement\": 97.0, \"Horsepower\": 88.0, \"Miles_per_Gallon\": 27.0, \"Name\": \"datsun pl510\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 2130, \"Year\": \"1970-01-01\"}, {\"Acceleration\": 20.5, \"Cylinders\": 4, \"Displacement\": 97.0, \"Horsepower\": 46.0, \"Miles_per_Gallon\": 26.0, \"Name\": \"volkswagen 1131 deluxe sedan\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 1835, \"Year\": \"1970-01-01\"}, {\"Acceleration\": 17.5, \"Cylinders\": 4, \"Displacement\": 110.0, \"Horsepower\": 87.0, \"Miles_per_Gallon\": 25.0, \"Name\": \"peugeot 504\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 2672, \"Year\": \"1970-01-01\"}, {\"Acceleration\": 14.5, \"Cylinders\": 4, \"Displacement\": 107.0, \"Horsepower\": 90.0, \"Miles_per_Gallon\": 24.0, \"Name\": \"audi 100 ls\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 2430, \"Year\": \"1970-01-01\"}, {\"Acceleration\": 17.5, \"Cylinders\": 4, \"Displacement\": 104.0, \"Horsepower\": 95.0, \"Miles_per_Gallon\": 25.0, \"Name\": \"saab 99e\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 2375, \"Year\": \"1970-01-01\"}, {\"Acceleration\": 12.5, \"Cylinders\": 4, \"Displacement\": 121.0, \"Horsepower\": 113.0, \"Miles_per_Gallon\": 26.0, \"Name\": \"bmw 2002\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 2234, \"Year\": \"1970-01-01\"}, {\"Acceleration\": 15.0, \"Cylinders\": 6, \"Displacement\": 199.0, \"Horsepower\": 90.0, \"Miles_per_Gallon\": 21.0, \"Name\": \"amc gremlin\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2648, \"Year\": \"1970-01-01\"}, {\"Acceleration\": 14.0, \"Cylinders\": 8, \"Displacement\": 360.0, \"Horsepower\": 215.0, \"Miles_per_Gallon\": 10.0, \"Name\": \"ford f250\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4615, \"Year\": \"1970-01-01\"}, {\"Acceleration\": 15.0, \"Cylinders\": 8, \"Displacement\": 307.0, \"Horsepower\": 200.0, \"Miles_per_Gallon\": 10.0, \"Name\": \"chevy c20\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4376, \"Year\": \"1970-01-01\"}, {\"Acceleration\": 13.5, \"Cylinders\": 8, \"Displacement\": 318.0, \"Horsepower\": 210.0, \"Miles_per_Gallon\": 11.0, \"Name\": \"dodge d200\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4382, \"Year\": \"1970-01-01\"}, {\"Acceleration\": 18.5, \"Cylinders\": 8, \"Displacement\": 304.0, \"Horsepower\": 193.0, \"Miles_per_Gallon\": 9.0, \"Name\": \"hi 1200d\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4732, \"Year\": \"1970-01-01\"}, {\"Acceleration\": 14.5, \"Cylinders\": 4, \"Displacement\": 97.0, \"Horsepower\": 88.0, \"Miles_per_Gallon\": 27.0, \"Name\": \"datsun pl510\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 2130, \"Year\": \"1971-01-01\"}, {\"Acceleration\": 15.5, \"Cylinders\": 4, \"Displacement\": 140.0, \"Horsepower\": 90.0, \"Miles_per_Gallon\": 28.0, \"Name\": \"chevrolet vega 2300\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2264, \"Year\": \"1971-01-01\"}, {\"Acceleration\": 14.0, \"Cylinders\": 4, \"Displacement\": 113.0, \"Horsepower\": 95.0, \"Miles_per_Gallon\": 25.0, \"Name\": \"toyota corona\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 2228, \"Year\": \"1971-01-01\"}, {\"Acceleration\": 19.0, \"Cylinders\": 4, \"Displacement\": 98.0, \"Horsepower\": null, \"Miles_per_Gallon\": 25.0, \"Name\": \"ford pinto\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2046, \"Year\": \"1971-01-01\"}, {\"Acceleration\": 20.0, \"Cylinders\": 4, \"Displacement\": 97.0, \"Horsepower\": 48.0, \"Miles_per_Gallon\": null, \"Name\": \"volkswagen super beetle 117\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 1978, \"Year\": \"1971-01-01\"}, {\"Acceleration\": 13.0, \"Cylinders\": 6, \"Displacement\": 232.0, \"Horsepower\": 100.0, \"Miles_per_Gallon\": 19.0, \"Name\": \"amc gremlin\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2634, \"Year\": \"1971-01-01\"}, {\"Acceleration\": 15.5, \"Cylinders\": 6, \"Displacement\": 225.0, \"Horsepower\": 105.0, \"Miles_per_Gallon\": 16.0, \"Name\": \"plymouth satellite custom\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3439, \"Year\": \"1971-01-01\"}, {\"Acceleration\": 15.5, \"Cylinders\": 6, \"Displacement\": 250.0, \"Horsepower\": 100.0, \"Miles_per_Gallon\": 17.0, \"Name\": \"chevrolet chevelle malibu\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3329, \"Year\": \"1971-01-01\"}, {\"Acceleration\": 15.5, \"Cylinders\": 6, \"Displacement\": 250.0, \"Horsepower\": 88.0, \"Miles_per_Gallon\": 19.0, \"Name\": \"ford torino 500\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3302, \"Year\": \"1971-01-01\"}, {\"Acceleration\": 15.5, \"Cylinders\": 6, \"Displacement\": 232.0, \"Horsepower\": 100.0, \"Miles_per_Gallon\": 18.0, \"Name\": \"amc matador\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3288, \"Year\": \"1971-01-01\"}, {\"Acceleration\": 12.0, \"Cylinders\": 8, \"Displacement\": 350.0, \"Horsepower\": 165.0, \"Miles_per_Gallon\": 14.0, \"Name\": \"chevrolet impala\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4209, \"Year\": \"1971-01-01\"}, {\"Acceleration\": 11.5, \"Cylinders\": 8, \"Displacement\": 400.0, \"Horsepower\": 175.0, \"Miles_per_Gallon\": 14.0, \"Name\": \"pontiac catalina brougham\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4464, \"Year\": \"1971-01-01\"}, {\"Acceleration\": 13.5, \"Cylinders\": 8, \"Displacement\": 351.0, \"Horsepower\": 153.0, \"Miles_per_Gallon\": 14.0, \"Name\": \"ford galaxie 500\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4154, \"Year\": \"1971-01-01\"}, {\"Acceleration\": 13.0, \"Cylinders\": 8, \"Displacement\": 318.0, \"Horsepower\": 150.0, \"Miles_per_Gallon\": 14.0, \"Name\": \"plymouth fury iii\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4096, \"Year\": \"1971-01-01\"}, {\"Acceleration\": 11.5, \"Cylinders\": 8, \"Displacement\": 383.0, \"Horsepower\": 180.0, \"Miles_per_Gallon\": 12.0, \"Name\": \"dodge monaco (sw)\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4955, \"Year\": \"1971-01-01\"}, {\"Acceleration\": 12.0, \"Cylinders\": 8, \"Displacement\": 400.0, \"Horsepower\": 170.0, \"Miles_per_Gallon\": 13.0, \"Name\": \"ford country squire (sw)\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4746, \"Year\": \"1971-01-01\"}, {\"Acceleration\": 12.0, \"Cylinders\": 8, \"Displacement\": 400.0, \"Horsepower\": 175.0, \"Miles_per_Gallon\": 13.0, \"Name\": \"pontiac safari (sw)\", \"Origin\": \"USA\", \"Weight_in_lbs\": 5140, \"Year\": \"1971-01-01\"}, {\"Acceleration\": 13.5, \"Cylinders\": 6, \"Displacement\": 258.0, \"Horsepower\": 110.0, \"Miles_per_Gallon\": 18.0, \"Name\": \"amc hornet sportabout (sw)\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2962, \"Year\": \"1971-01-01\"}, {\"Acceleration\": 19.0, \"Cylinders\": 4, \"Displacement\": 140.0, \"Horsepower\": 72.0, \"Miles_per_Gallon\": 22.0, \"Name\": \"chevrolet vega (sw)\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2408, \"Year\": \"1971-01-01\"}, {\"Acceleration\": 15.0, \"Cylinders\": 6, \"Displacement\": 250.0, \"Horsepower\": 100.0, \"Miles_per_Gallon\": 19.0, \"Name\": \"pontiac firebird\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3282, \"Year\": \"1971-01-01\"}, {\"Acceleration\": 14.5, \"Cylinders\": 6, \"Displacement\": 250.0, \"Horsepower\": 88.0, \"Miles_per_Gallon\": 18.0, \"Name\": \"ford mustang\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3139, \"Year\": \"1971-01-01\"}, {\"Acceleration\": 14.0, \"Cylinders\": 4, \"Displacement\": 122.0, \"Horsepower\": 86.0, \"Miles_per_Gallon\": 23.0, \"Name\": \"mercury capri 2000\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2220, \"Year\": \"1971-01-01\"}, {\"Acceleration\": 14.0, \"Cylinders\": 4, \"Displacement\": 116.0, \"Horsepower\": 90.0, \"Miles_per_Gallon\": 28.0, \"Name\": \"opel 1900\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 2123, \"Year\": \"1971-01-01\"}, {\"Acceleration\": 19.5, \"Cylinders\": 4, \"Displacement\": 79.0, \"Horsepower\": 70.0, \"Miles_per_Gallon\": 30.0, \"Name\": \"peugeot 304\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 2074, \"Year\": \"1971-01-01\"}, {\"Acceleration\": 14.5, \"Cylinders\": 4, \"Displacement\": 88.0, \"Horsepower\": 76.0, \"Miles_per_Gallon\": 30.0, \"Name\": \"fiat 124b\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 2065, \"Year\": \"1971-01-01\"}, {\"Acceleration\": 19.0, \"Cylinders\": 4, \"Displacement\": 71.0, \"Horsepower\": 65.0, \"Miles_per_Gallon\": 31.0, \"Name\": \"toyota corolla 1200\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 1773, \"Year\": \"1971-01-01\"}, {\"Acceleration\": 18.0, \"Cylinders\": 4, \"Displacement\": 72.0, \"Horsepower\": 69.0, \"Miles_per_Gallon\": 35.0, \"Name\": \"datsun 1200\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 1613, \"Year\": \"1971-01-01\"}, {\"Acceleration\": 19.0, \"Cylinders\": 4, \"Displacement\": 97.0, \"Horsepower\": 60.0, \"Miles_per_Gallon\": 27.0, \"Name\": \"volkswagen model 111\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 1834, \"Year\": \"1971-01-01\"}, {\"Acceleration\": 20.5, \"Cylinders\": 4, \"Displacement\": 91.0, \"Horsepower\": 70.0, \"Miles_per_Gallon\": 26.0, \"Name\": \"plymouth cricket\", \"Origin\": \"USA\", \"Weight_in_lbs\": 1955, \"Year\": \"1971-01-01\"}, {\"Acceleration\": 15.5, \"Cylinders\": 4, \"Displacement\": 113.0, \"Horsepower\": 95.0, \"Miles_per_Gallon\": 24.0, \"Name\": \"toyota corona hardtop\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 2278, \"Year\": \"1972-01-01\"}, {\"Acceleration\": 17.0, \"Cylinders\": 4, \"Displacement\": 97.5, \"Horsepower\": 80.0, \"Miles_per_Gallon\": 25.0, \"Name\": \"dodge colt hardtop\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2126, \"Year\": \"1972-01-01\"}, {\"Acceleration\": 23.5, \"Cylinders\": 4, \"Displacement\": 97.0, \"Horsepower\": 54.0, \"Miles_per_Gallon\": 23.0, \"Name\": \"volkswagen type 3\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 2254, \"Year\": \"1972-01-01\"}, {\"Acceleration\": 19.5, \"Cylinders\": 4, \"Displacement\": 140.0, \"Horsepower\": 90.0, \"Miles_per_Gallon\": 20.0, \"Name\": \"chevrolet vega\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2408, \"Year\": \"1972-01-01\"}, {\"Acceleration\": 16.5, \"Cylinders\": 4, \"Displacement\": 122.0, \"Horsepower\": 86.0, \"Miles_per_Gallon\": 21.0, \"Name\": \"ford pinto runabout\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2226, \"Year\": \"1972-01-01\"}, {\"Acceleration\": 12.0, \"Cylinders\": 8, \"Displacement\": 350.0, \"Horsepower\": 165.0, \"Miles_per_Gallon\": 13.0, \"Name\": \"chevrolet impala\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4274, \"Year\": \"1972-01-01\"}, {\"Acceleration\": 12.0, \"Cylinders\": 8, \"Displacement\": 400.0, \"Horsepower\": 175.0, \"Miles_per_Gallon\": 14.0, \"Name\": \"pontiac catalina\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4385, \"Year\": \"1972-01-01\"}, {\"Acceleration\": 13.5, \"Cylinders\": 8, \"Displacement\": 318.0, \"Horsepower\": 150.0, \"Miles_per_Gallon\": 15.0, \"Name\": \"plymouth fury iii\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4135, \"Year\": \"1972-01-01\"}, {\"Acceleration\": 13.0, \"Cylinders\": 8, \"Displacement\": 351.0, \"Horsepower\": 153.0, \"Miles_per_Gallon\": 14.0, \"Name\": \"ford galaxie 500\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4129, \"Year\": \"1972-01-01\"}, {\"Acceleration\": 11.5, \"Cylinders\": 8, \"Displacement\": 304.0, \"Horsepower\": 150.0, \"Miles_per_Gallon\": 17.0, \"Name\": \"amc ambassador sst\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3672, \"Year\": \"1972-01-01\"}, {\"Acceleration\": 11.0, \"Cylinders\": 8, \"Displacement\": 429.0, \"Horsepower\": 208.0, \"Miles_per_Gallon\": 11.0, \"Name\": \"mercury marquis\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4633, \"Year\": \"1972-01-01\"}, {\"Acceleration\": 13.5, \"Cylinders\": 8, \"Displacement\": 350.0, \"Horsepower\": 155.0, \"Miles_per_Gallon\": 13.0, \"Name\": \"buick lesabre custom\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4502, \"Year\": \"1972-01-01\"}, {\"Acceleration\": 13.5, \"Cylinders\": 8, \"Displacement\": 350.0, \"Horsepower\": 160.0, \"Miles_per_Gallon\": 12.0, \"Name\": \"oldsmobile delta 88 royale\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4456, \"Year\": \"1972-01-01\"}, {\"Acceleration\": 12.5, \"Cylinders\": 8, \"Displacement\": 400.0, \"Horsepower\": 190.0, \"Miles_per_Gallon\": 13.0, \"Name\": \"chrysler newport royal\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4422, \"Year\": \"1972-01-01\"}, {\"Acceleration\": 13.5, \"Cylinders\": 3, \"Displacement\": 70.0, \"Horsepower\": 97.0, \"Miles_per_Gallon\": 19.0, \"Name\": \"mazda rx2 coupe\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 2330, \"Year\": \"1972-01-01\"}, {\"Acceleration\": 12.5, \"Cylinders\": 8, \"Displacement\": 304.0, \"Horsepower\": 150.0, \"Miles_per_Gallon\": 15.0, \"Name\": \"amc matador (sw)\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3892, \"Year\": \"1972-01-01\"}, {\"Acceleration\": 14.0, \"Cylinders\": 8, \"Displacement\": 307.0, \"Horsepower\": 130.0, \"Miles_per_Gallon\": 13.0, \"Name\": \"chevrolet chevelle concours (sw)\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4098, \"Year\": \"1972-01-01\"}, {\"Acceleration\": 16.0, \"Cylinders\": 8, \"Displacement\": 302.0, \"Horsepower\": 140.0, \"Miles_per_Gallon\": 13.0, \"Name\": \"ford gran torino (sw)\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4294, \"Year\": \"1972-01-01\"}, {\"Acceleration\": 14.0, \"Cylinders\": 8, \"Displacement\": 318.0, \"Horsepower\": 150.0, \"Miles_per_Gallon\": 14.0, \"Name\": \"plymouth satellite custom (sw)\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4077, \"Year\": \"1972-01-01\"}, {\"Acceleration\": 14.5, \"Cylinders\": 4, \"Displacement\": 121.0, \"Horsepower\": 112.0, \"Miles_per_Gallon\": 18.0, \"Name\": \"volvo 145e (sw)\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 2933, \"Year\": \"1972-01-01\"}, {\"Acceleration\": 18.0, \"Cylinders\": 4, \"Displacement\": 121.0, \"Horsepower\": 76.0, \"Miles_per_Gallon\": 22.0, \"Name\": \"volkswagen 411 (sw)\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 2511, \"Year\": \"1972-01-01\"}, {\"Acceleration\": 19.5, \"Cylinders\": 4, \"Displacement\": 120.0, \"Horsepower\": 87.0, \"Miles_per_Gallon\": 21.0, \"Name\": \"peugeot 504 (sw)\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 2979, \"Year\": \"1972-01-01\"}, {\"Acceleration\": 18.0, \"Cylinders\": 4, \"Displacement\": 96.0, \"Horsepower\": 69.0, \"Miles_per_Gallon\": 26.0, \"Name\": \"renault 12 (sw)\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 2189, \"Year\": \"1972-01-01\"}, {\"Acceleration\": 16.0, \"Cylinders\": 4, \"Displacement\": 122.0, \"Horsepower\": 86.0, \"Miles_per_Gallon\": 22.0, \"Name\": \"ford pinto (sw)\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2395, \"Year\": \"1972-01-01\"}, {\"Acceleration\": 17.0, \"Cylinders\": 4, \"Displacement\": 97.0, \"Horsepower\": 92.0, \"Miles_per_Gallon\": 28.0, \"Name\": \"datsun 510 (sw)\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 2288, \"Year\": \"1972-01-01\"}, {\"Acceleration\": 14.5, \"Cylinders\": 4, \"Displacement\": 120.0, \"Horsepower\": 97.0, \"Miles_per_Gallon\": 23.0, \"Name\": \"toyouta corona mark ii (sw)\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 2506, \"Year\": \"1972-01-01\"}, {\"Acceleration\": 15.0, \"Cylinders\": 4, \"Displacement\": 98.0, \"Horsepower\": 80.0, \"Miles_per_Gallon\": 28.0, \"Name\": \"dodge colt (sw)\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2164, \"Year\": \"1972-01-01\"}, {\"Acceleration\": 16.5, \"Cylinders\": 4, \"Displacement\": 97.0, \"Horsepower\": 88.0, \"Miles_per_Gallon\": 27.0, \"Name\": \"toyota corolla 1600 (sw)\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 2100, \"Year\": \"1972-01-01\"}, {\"Acceleration\": 13.0, \"Cylinders\": 8, \"Displacement\": 350.0, \"Horsepower\": 175.0, \"Miles_per_Gallon\": 13.0, \"Name\": \"buick century 350\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4100, \"Year\": \"1973-01-01\"}, {\"Acceleration\": 11.5, \"Cylinders\": 8, \"Displacement\": 304.0, \"Horsepower\": 150.0, \"Miles_per_Gallon\": 14.0, \"Name\": \"amc matador\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3672, \"Year\": \"1973-01-01\"}, {\"Acceleration\": 13.0, \"Cylinders\": 8, \"Displacement\": 350.0, \"Horsepower\": 145.0, \"Miles_per_Gallon\": 13.0, \"Name\": \"chevrolet malibu\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3988, \"Year\": \"1973-01-01\"}, {\"Acceleration\": 14.5, \"Cylinders\": 8, \"Displacement\": 302.0, \"Horsepower\": 137.0, \"Miles_per_Gallon\": 14.0, \"Name\": \"ford gran torino\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4042, \"Year\": \"1973-01-01\"}, {\"Acceleration\": 12.5, \"Cylinders\": 8, \"Displacement\": 318.0, \"Horsepower\": 150.0, \"Miles_per_Gallon\": 15.0, \"Name\": \"dodge coronet custom\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3777, \"Year\": \"1973-01-01\"}, {\"Acceleration\": 11.5, \"Cylinders\": 8, \"Displacement\": 429.0, \"Horsepower\": 198.0, \"Miles_per_Gallon\": 12.0, \"Name\": \"mercury marquis brougham\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4952, \"Year\": \"1973-01-01\"}, {\"Acceleration\": 12.0, \"Cylinders\": 8, \"Displacement\": 400.0, \"Horsepower\": 150.0, \"Miles_per_Gallon\": 13.0, \"Name\": \"chevrolet caprice classic\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4464, \"Year\": \"1973-01-01\"}, {\"Acceleration\": 13.0, \"Cylinders\": 8, \"Displacement\": 351.0, \"Horsepower\": 158.0, \"Miles_per_Gallon\": 13.0, \"Name\": \"ford ltd\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4363, \"Year\": \"1973-01-01\"}, {\"Acceleration\": 14.5, \"Cylinders\": 8, \"Displacement\": 318.0, \"Horsepower\": 150.0, \"Miles_per_Gallon\": 14.0, \"Name\": \"plymouth fury gran sedan\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4237, \"Year\": \"1973-01-01\"}, {\"Acceleration\": 11.0, \"Cylinders\": 8, \"Displacement\": 440.0, \"Horsepower\": 215.0, \"Miles_per_Gallon\": 13.0, \"Name\": \"chrysler new yorker brougham\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4735, \"Year\": \"1973-01-01\"}, {\"Acceleration\": 11.0, \"Cylinders\": 8, \"Displacement\": 455.0, \"Horsepower\": 225.0, \"Miles_per_Gallon\": 12.0, \"Name\": \"buick electra 225 custom\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4951, \"Year\": \"1973-01-01\"}, {\"Acceleration\": 11.0, \"Cylinders\": 8, \"Displacement\": 360.0, \"Horsepower\": 175.0, \"Miles_per_Gallon\": 13.0, \"Name\": \"amc ambassador brougham\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3821, \"Year\": \"1973-01-01\"}, {\"Acceleration\": 16.5, \"Cylinders\": 6, \"Displacement\": 225.0, \"Horsepower\": 105.0, \"Miles_per_Gallon\": 18.0, \"Name\": \"plymouth valiant\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3121, \"Year\": \"1973-01-01\"}, {\"Acceleration\": 18.0, \"Cylinders\": 6, \"Displacement\": 250.0, \"Horsepower\": 100.0, \"Miles_per_Gallon\": 16.0, \"Name\": \"chevrolet nova custom\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3278, \"Year\": \"1973-01-01\"}, {\"Acceleration\": 16.0, \"Cylinders\": 6, \"Displacement\": 232.0, \"Horsepower\": 100.0, \"Miles_per_Gallon\": 18.0, \"Name\": \"amc hornet\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2945, \"Year\": \"1973-01-01\"}, {\"Acceleration\": 16.5, \"Cylinders\": 6, \"Displacement\": 250.0, \"Horsepower\": 88.0, \"Miles_per_Gallon\": 18.0, \"Name\": \"ford maverick\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3021, \"Year\": \"1973-01-01\"}, {\"Acceleration\": 16.0, \"Cylinders\": 6, \"Displacement\": 198.0, \"Horsepower\": 95.0, \"Miles_per_Gallon\": 23.0, \"Name\": \"plymouth duster\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2904, \"Year\": \"1973-01-01\"}, {\"Acceleration\": 21.0, \"Cylinders\": 4, \"Displacement\": 97.0, \"Horsepower\": 46.0, \"Miles_per_Gallon\": 26.0, \"Name\": \"volkswagen super beetle\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 1950, \"Year\": \"1973-01-01\"}, {\"Acceleration\": 14.0, \"Cylinders\": 8, \"Displacement\": 400.0, \"Horsepower\": 150.0, \"Miles_per_Gallon\": 11.0, \"Name\": \"chevrolet impala\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4997, \"Year\": \"1973-01-01\"}, {\"Acceleration\": 12.5, \"Cylinders\": 8, \"Displacement\": 400.0, \"Horsepower\": 167.0, \"Miles_per_Gallon\": 12.0, \"Name\": \"ford country\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4906, \"Year\": \"1973-01-01\"}, {\"Acceleration\": 13.0, \"Cylinders\": 8, \"Displacement\": 360.0, \"Horsepower\": 170.0, \"Miles_per_Gallon\": 13.0, \"Name\": \"plymouth custom suburb\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4654, \"Year\": \"1973-01-01\"}, {\"Acceleration\": 12.5, \"Cylinders\": 8, \"Displacement\": 350.0, \"Horsepower\": 180.0, \"Miles_per_Gallon\": 12.0, \"Name\": \"oldsmobile vista cruiser\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4499, \"Year\": \"1973-01-01\"}, {\"Acceleration\": 15.0, \"Cylinders\": 6, \"Displacement\": 232.0, \"Horsepower\": 100.0, \"Miles_per_Gallon\": 18.0, \"Name\": \"amc gremlin\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2789, \"Year\": \"1973-01-01\"}, {\"Acceleration\": 19.0, \"Cylinders\": 4, \"Displacement\": 97.0, \"Horsepower\": 88.0, \"Miles_per_Gallon\": 20.0, \"Name\": \"toyota carina\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 2279, \"Year\": \"1973-01-01\"}, {\"Acceleration\": 19.5, \"Cylinders\": 4, \"Displacement\": 140.0, \"Horsepower\": 72.0, \"Miles_per_Gallon\": 21.0, \"Name\": \"chevrolet vega\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2401, \"Year\": \"1973-01-01\"}, {\"Acceleration\": 16.5, \"Cylinders\": 4, \"Displacement\": 108.0, \"Horsepower\": 94.0, \"Miles_per_Gallon\": 22.0, \"Name\": \"datsun 610\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 2379, \"Year\": \"1973-01-01\"}, {\"Acceleration\": 13.5, \"Cylinders\": 3, \"Displacement\": 70.0, \"Horsepower\": 90.0, \"Miles_per_Gallon\": 18.0, \"Name\": \"maxda rx3\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 2124, \"Year\": \"1973-01-01\"}, {\"Acceleration\": 18.5, \"Cylinders\": 4, \"Displacement\": 122.0, \"Horsepower\": 85.0, \"Miles_per_Gallon\": 19.0, \"Name\": \"ford pinto\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2310, \"Year\": \"1973-01-01\"}, {\"Acceleration\": 14.0, \"Cylinders\": 6, \"Displacement\": 155.0, \"Horsepower\": 107.0, \"Miles_per_Gallon\": 21.0, \"Name\": \"mercury capri v6\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2472, \"Year\": \"1973-01-01\"}, {\"Acceleration\": 15.5, \"Cylinders\": 4, \"Displacement\": 98.0, \"Horsepower\": 90.0, \"Miles_per_Gallon\": 26.0, \"Name\": \"fiat 124 sport coupe\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 2265, \"Year\": \"1973-01-01\"}, {\"Acceleration\": 13.0, \"Cylinders\": 8, \"Displacement\": 350.0, \"Horsepower\": 145.0, \"Miles_per_Gallon\": 15.0, \"Name\": \"chevrolet monte carlo s\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4082, \"Year\": \"1973-01-01\"}, {\"Acceleration\": 9.5, \"Cylinders\": 8, \"Displacement\": 400.0, \"Horsepower\": 230.0, \"Miles_per_Gallon\": 16.0, \"Name\": \"pontiac grand prix\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4278, \"Year\": \"1973-01-01\"}, {\"Acceleration\": 19.5, \"Cylinders\": 4, \"Displacement\": 68.0, \"Horsepower\": 49.0, \"Miles_per_Gallon\": 29.0, \"Name\": \"fiat 128\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 1867, \"Year\": \"1973-01-01\"}, {\"Acceleration\": 15.5, \"Cylinders\": 4, \"Displacement\": 116.0, \"Horsepower\": 75.0, \"Miles_per_Gallon\": 24.0, \"Name\": \"opel manta\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 2158, \"Year\": \"1973-01-01\"}, {\"Acceleration\": 14.0, \"Cylinders\": 4, \"Displacement\": 114.0, \"Horsepower\": 91.0, \"Miles_per_Gallon\": 20.0, \"Name\": \"audi 100ls\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 2582, \"Year\": \"1973-01-01\"}, {\"Acceleration\": 15.5, \"Cylinders\": 4, \"Displacement\": 121.0, \"Horsepower\": 112.0, \"Miles_per_Gallon\": 19.0, \"Name\": \"volvo 144ea\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 2868, \"Year\": \"1973-01-01\"}, {\"Acceleration\": 11.0, \"Cylinders\": 8, \"Displacement\": 318.0, \"Horsepower\": 150.0, \"Miles_per_Gallon\": 15.0, \"Name\": \"dodge dart custom\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3399, \"Year\": \"1973-01-01\"}, {\"Acceleration\": 14.0, \"Cylinders\": 4, \"Displacement\": 121.0, \"Horsepower\": 110.0, \"Miles_per_Gallon\": 24.0, \"Name\": \"saab 99le\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 2660, \"Year\": \"1973-01-01\"}, {\"Acceleration\": 13.5, \"Cylinders\": 6, \"Displacement\": 156.0, \"Horsepower\": 122.0, \"Miles_per_Gallon\": 20.0, \"Name\": \"toyota mark ii\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 2807, \"Year\": \"1973-01-01\"}, {\"Acceleration\": 11.0, \"Cylinders\": 8, \"Displacement\": 350.0, \"Horsepower\": 180.0, \"Miles_per_Gallon\": 11.0, \"Name\": \"oldsmobile omega\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3664, \"Year\": \"1973-01-01\"}, {\"Acceleration\": 16.5, \"Cylinders\": 6, \"Displacement\": 198.0, \"Horsepower\": 95.0, \"Miles_per_Gallon\": 20.0, \"Name\": \"plymouth duster\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3102, \"Year\": \"1974-01-01\"}, {\"Acceleration\": 17.0, \"Cylinders\": 6, \"Displacement\": 200.0, \"Horsepower\": null, \"Miles_per_Gallon\": 21.0, \"Name\": \"ford maverick\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2875, \"Year\": \"1974-01-01\"}, {\"Acceleration\": 16.0, \"Cylinders\": 6, \"Displacement\": 232.0, \"Horsepower\": 100.0, \"Miles_per_Gallon\": 19.0, \"Name\": \"amc hornet\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2901, \"Year\": \"1974-01-01\"}, {\"Acceleration\": 17.0, \"Cylinders\": 6, \"Displacement\": 250.0, \"Horsepower\": 100.0, \"Miles_per_Gallon\": 15.0, \"Name\": \"chevrolet nova\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3336, \"Year\": \"1974-01-01\"}, {\"Acceleration\": 19.0, \"Cylinders\": 4, \"Displacement\": 79.0, \"Horsepower\": 67.0, \"Miles_per_Gallon\": 31.0, \"Name\": \"datsun b210\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 1950, \"Year\": \"1974-01-01\"}, {\"Acceleration\": 16.5, \"Cylinders\": 4, \"Displacement\": 122.0, \"Horsepower\": 80.0, \"Miles_per_Gallon\": 26.0, \"Name\": \"ford pinto\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2451, \"Year\": \"1974-01-01\"}, {\"Acceleration\": 21.0, \"Cylinders\": 4, \"Displacement\": 71.0, \"Horsepower\": 65.0, \"Miles_per_Gallon\": 32.0, \"Name\": \"toyota corolla 1200\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 1836, \"Year\": \"1974-01-01\"}, {\"Acceleration\": 17.0, \"Cylinders\": 4, \"Displacement\": 140.0, \"Horsepower\": 75.0, \"Miles_per_Gallon\": 25.0, \"Name\": \"chevrolet vega\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2542, \"Year\": \"1974-01-01\"}, {\"Acceleration\": 17.0, \"Cylinders\": 6, \"Displacement\": 250.0, \"Horsepower\": 100.0, \"Miles_per_Gallon\": 16.0, \"Name\": \"chevrolet chevelle malibu classic\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3781, \"Year\": \"1974-01-01\"}, {\"Acceleration\": 18.0, \"Cylinders\": 6, \"Displacement\": 258.0, \"Horsepower\": 110.0, \"Miles_per_Gallon\": 16.0, \"Name\": \"amc matador\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3632, \"Year\": \"1974-01-01\"}, {\"Acceleration\": 16.5, \"Cylinders\": 6, \"Displacement\": 225.0, \"Horsepower\": 105.0, \"Miles_per_Gallon\": 18.0, \"Name\": \"plymouth satellite sebring\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3613, \"Year\": \"1974-01-01\"}, {\"Acceleration\": 14.0, \"Cylinders\": 8, \"Displacement\": 302.0, \"Horsepower\": 140.0, \"Miles_per_Gallon\": 16.0, \"Name\": \"ford gran torino\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4141, \"Year\": \"1974-01-01\"}, {\"Acceleration\": 14.5, \"Cylinders\": 8, \"Displacement\": 350.0, \"Horsepower\": 150.0, \"Miles_per_Gallon\": 13.0, \"Name\": \"buick century luxus (sw)\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4699, \"Year\": \"1974-01-01\"}, {\"Acceleration\": 13.5, \"Cylinders\": 8, \"Displacement\": 318.0, \"Horsepower\": 150.0, \"Miles_per_Gallon\": 14.0, \"Name\": \"dodge coronet custom (sw)\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4457, \"Year\": \"1974-01-01\"}, {\"Acceleration\": 16.0, \"Cylinders\": 8, \"Displacement\": 302.0, \"Horsepower\": 140.0, \"Miles_per_Gallon\": 14.0, \"Name\": \"ford gran torino (sw)\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4638, \"Year\": \"1974-01-01\"}, {\"Acceleration\": 15.5, \"Cylinders\": 8, \"Displacement\": 304.0, \"Horsepower\": 150.0, \"Miles_per_Gallon\": 14.0, \"Name\": \"amc matador (sw)\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4257, \"Year\": \"1974-01-01\"}, {\"Acceleration\": 16.5, \"Cylinders\": 4, \"Displacement\": 98.0, \"Horsepower\": 83.0, \"Miles_per_Gallon\": 29.0, \"Name\": \"audi fox\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 2219, \"Year\": \"1974-01-01\"}, {\"Acceleration\": 15.5, \"Cylinders\": 4, \"Displacement\": 79.0, \"Horsepower\": 67.0, \"Miles_per_Gallon\": 26.0, \"Name\": \"volkswagen dasher\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 1963, \"Year\": \"1974-01-01\"}, {\"Acceleration\": 14.5, \"Cylinders\": 4, \"Displacement\": 97.0, \"Horsepower\": 78.0, \"Miles_per_Gallon\": 26.0, \"Name\": \"opel manta\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 2300, \"Year\": \"1974-01-01\"}, {\"Acceleration\": 16.5, \"Cylinders\": 4, \"Displacement\": 76.0, \"Horsepower\": 52.0, \"Miles_per_Gallon\": 31.0, \"Name\": \"toyota corona\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 1649, \"Year\": \"1974-01-01\"}, {\"Acceleration\": 19.0, \"Cylinders\": 4, \"Displacement\": 83.0, \"Horsepower\": 61.0, \"Miles_per_Gallon\": 32.0, \"Name\": \"datsun 710\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 2003, \"Year\": \"1974-01-01\"}, {\"Acceleration\": 14.5, \"Cylinders\": 4, \"Displacement\": 90.0, \"Horsepower\": 75.0, \"Miles_per_Gallon\": 28.0, \"Name\": \"dodge colt\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2125, \"Year\": \"1974-01-01\"}, {\"Acceleration\": 15.5, \"Cylinders\": 4, \"Displacement\": 90.0, \"Horsepower\": 75.0, \"Miles_per_Gallon\": 24.0, \"Name\": \"fiat 128\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 2108, \"Year\": \"1974-01-01\"}, {\"Acceleration\": 14.0, \"Cylinders\": 4, \"Displacement\": 116.0, \"Horsepower\": 75.0, \"Miles_per_Gallon\": 26.0, \"Name\": \"fiat 124 tc\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 2246, \"Year\": \"1974-01-01\"}, {\"Acceleration\": 15.0, \"Cylinders\": 4, \"Displacement\": 120.0, \"Horsepower\": 97.0, \"Miles_per_Gallon\": 24.0, \"Name\": \"honda civic\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 2489, \"Year\": \"1974-01-01\"}, {\"Acceleration\": 15.5, \"Cylinders\": 4, \"Displacement\": 108.0, \"Horsepower\": 93.0, \"Miles_per_Gallon\": 26.0, \"Name\": \"subaru\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 2391, \"Year\": \"1974-01-01\"}, {\"Acceleration\": 16.0, \"Cylinders\": 4, \"Displacement\": 79.0, \"Horsepower\": 67.0, \"Miles_per_Gallon\": 31.0, \"Name\": \"fiat x1.9\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 2000, \"Year\": \"1974-01-01\"}, {\"Acceleration\": 16.0, \"Cylinders\": 6, \"Displacement\": 225.0, \"Horsepower\": 95.0, \"Miles_per_Gallon\": 19.0, \"Name\": \"plymouth valiant custom\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3264, \"Year\": \"1975-01-01\"}, {\"Acceleration\": 16.0, \"Cylinders\": 6, \"Displacement\": 250.0, \"Horsepower\": 105.0, \"Miles_per_Gallon\": 18.0, \"Name\": \"chevrolet nova\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3459, \"Year\": \"1975-01-01\"}, {\"Acceleration\": 21.0, \"Cylinders\": 6, \"Displacement\": 250.0, \"Horsepower\": 72.0, \"Miles_per_Gallon\": 15.0, \"Name\": \"mercury monarch\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3432, \"Year\": \"1975-01-01\"}, {\"Acceleration\": 19.5, \"Cylinders\": 6, \"Displacement\": 250.0, \"Horsepower\": 72.0, \"Miles_per_Gallon\": 15.0, \"Name\": \"ford maverick\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3158, \"Year\": \"1975-01-01\"}, {\"Acceleration\": 11.5, \"Cylinders\": 8, \"Displacement\": 400.0, \"Horsepower\": 170.0, \"Miles_per_Gallon\": 16.0, \"Name\": \"pontiac catalina\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4668, \"Year\": \"1975-01-01\"}, {\"Acceleration\": 14.0, \"Cylinders\": 8, \"Displacement\": 350.0, \"Horsepower\": 145.0, \"Miles_per_Gallon\": 15.0, \"Name\": \"chevrolet bel air\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4440, \"Year\": \"1975-01-01\"}, {\"Acceleration\": 14.5, \"Cylinders\": 8, \"Displacement\": 318.0, \"Horsepower\": 150.0, \"Miles_per_Gallon\": 16.0, \"Name\": \"plymouth grand fury\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4498, \"Year\": \"1975-01-01\"}, {\"Acceleration\": 13.5, \"Cylinders\": 8, \"Displacement\": 351.0, \"Horsepower\": 148.0, \"Miles_per_Gallon\": 14.0, \"Name\": \"ford ltd\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4657, \"Year\": \"1975-01-01\"}, {\"Acceleration\": 21.0, \"Cylinders\": 6, \"Displacement\": 231.0, \"Horsepower\": 110.0, \"Miles_per_Gallon\": 17.0, \"Name\": \"buick century\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3907, \"Year\": \"1975-01-01\"}, {\"Acceleration\": 18.5, \"Cylinders\": 6, \"Displacement\": 250.0, \"Horsepower\": 105.0, \"Miles_per_Gallon\": 16.0, \"Name\": \"chevroelt chevelle malibu\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3897, \"Year\": \"1975-01-01\"}, {\"Acceleration\": 19.0, \"Cylinders\": 6, \"Displacement\": 258.0, \"Horsepower\": 110.0, \"Miles_per_Gallon\": 15.0, \"Name\": \"amc matador\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3730, \"Year\": \"1975-01-01\"}, {\"Acceleration\": 19.0, \"Cylinders\": 6, \"Displacement\": 225.0, \"Horsepower\": 95.0, \"Miles_per_Gallon\": 18.0, \"Name\": \"plymouth fury\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3785, \"Year\": \"1975-01-01\"}, {\"Acceleration\": 15.0, \"Cylinders\": 6, \"Displacement\": 231.0, \"Horsepower\": 110.0, \"Miles_per_Gallon\": 21.0, \"Name\": \"buick skyhawk\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3039, \"Year\": \"1975-01-01\"}, {\"Acceleration\": 13.5, \"Cylinders\": 8, \"Displacement\": 262.0, \"Horsepower\": 110.0, \"Miles_per_Gallon\": 20.0, \"Name\": \"chevrolet monza 2+2\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3221, \"Year\": \"1975-01-01\"}, {\"Acceleration\": 12.0, \"Cylinders\": 8, \"Displacement\": 302.0, \"Horsepower\": 129.0, \"Miles_per_Gallon\": 13.0, \"Name\": \"ford mustang ii\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3169, \"Year\": \"1975-01-01\"}, {\"Acceleration\": 16.0, \"Cylinders\": 4, \"Displacement\": 97.0, \"Horsepower\": 75.0, \"Miles_per_Gallon\": 29.0, \"Name\": \"toyota corolla\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 2171, \"Year\": \"1975-01-01\"}, {\"Acceleration\": 17.0, \"Cylinders\": 4, \"Displacement\": 140.0, \"Horsepower\": 83.0, \"Miles_per_Gallon\": 23.0, \"Name\": \"ford pinto\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2639, \"Year\": \"1975-01-01\"}, {\"Acceleration\": 16.0, \"Cylinders\": 6, \"Displacement\": 232.0, \"Horsepower\": 100.0, \"Miles_per_Gallon\": 20.0, \"Name\": \"amc gremlin\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2914, \"Year\": \"1975-01-01\"}, {\"Acceleration\": 18.5, \"Cylinders\": 4, \"Displacement\": 140.0, \"Horsepower\": 78.0, \"Miles_per_Gallon\": 23.0, \"Name\": \"pontiac astro\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2592, \"Year\": \"1975-01-01\"}, {\"Acceleration\": 13.5, \"Cylinders\": 4, \"Displacement\": 134.0, \"Horsepower\": 96.0, \"Miles_per_Gallon\": 24.0, \"Name\": \"toyota corona\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 2702, \"Year\": \"1975-01-01\"}, {\"Acceleration\": 16.5, \"Cylinders\": 4, \"Displacement\": 90.0, \"Horsepower\": 71.0, \"Miles_per_Gallon\": 25.0, \"Name\": \"volkswagen dasher\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 2223, \"Year\": \"1975-01-01\"}, {\"Acceleration\": 17.0, \"Cylinders\": 4, \"Displacement\": 119.0, \"Horsepower\": 97.0, \"Miles_per_Gallon\": 24.0, \"Name\": \"datsun 710\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 2545, \"Year\": \"1975-01-01\"}, {\"Acceleration\": 14.5, \"Cylinders\": 6, \"Displacement\": 171.0, \"Horsepower\": 97.0, \"Miles_per_Gallon\": 18.0, \"Name\": \"ford pinto\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2984, \"Year\": \"1975-01-01\"}, {\"Acceleration\": 14.0, \"Cylinders\": 4, \"Displacement\": 90.0, \"Horsepower\": 70.0, \"Miles_per_Gallon\": 29.0, \"Name\": \"volkswagen rabbit\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 1937, \"Year\": \"1975-01-01\"}, {\"Acceleration\": 17.0, \"Cylinders\": 6, \"Displacement\": 232.0, \"Horsepower\": 90.0, \"Miles_per_Gallon\": 19.0, \"Name\": \"amc pacer\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3211, \"Year\": \"1975-01-01\"}, {\"Acceleration\": 15.0, \"Cylinders\": 4, \"Displacement\": 115.0, \"Horsepower\": 95.0, \"Miles_per_Gallon\": 23.0, \"Name\": \"audi 100ls\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 2694, \"Year\": \"1975-01-01\"}, {\"Acceleration\": 17.0, \"Cylinders\": 4, \"Displacement\": 120.0, \"Horsepower\": 88.0, \"Miles_per_Gallon\": 23.0, \"Name\": \"peugeot 504\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 2957, \"Year\": \"1975-01-01\"}, {\"Acceleration\": 14.5, \"Cylinders\": 4, \"Displacement\": 121.0, \"Horsepower\": 98.0, \"Miles_per_Gallon\": 22.0, \"Name\": \"volvo 244dl\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 2945, \"Year\": \"1975-01-01\"}, {\"Acceleration\": 13.5, \"Cylinders\": 4, \"Displacement\": 121.0, \"Horsepower\": 115.0, \"Miles_per_Gallon\": 25.0, \"Name\": \"saab 99le\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 2671, \"Year\": \"1975-01-01\"}, {\"Acceleration\": 17.5, \"Cylinders\": 4, \"Displacement\": 91.0, \"Horsepower\": 53.0, \"Miles_per_Gallon\": 33.0, \"Name\": \"honda civic cvcc\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 1795, \"Year\": \"1975-01-01\"}, {\"Acceleration\": 15.5, \"Cylinders\": 4, \"Displacement\": 107.0, \"Horsepower\": 86.0, \"Miles_per_Gallon\": 28.0, \"Name\": \"fiat 131\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 2464, \"Year\": \"1976-01-01\"}, {\"Acceleration\": 16.9, \"Cylinders\": 4, \"Displacement\": 116.0, \"Horsepower\": 81.0, \"Miles_per_Gallon\": 25.0, \"Name\": \"opel 1900\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 2220, \"Year\": \"1976-01-01\"}, {\"Acceleration\": 14.9, \"Cylinders\": 4, \"Displacement\": 140.0, \"Horsepower\": 92.0, \"Miles_per_Gallon\": 25.0, \"Name\": \"capri ii\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2572, \"Year\": \"1976-01-01\"}, {\"Acceleration\": 17.7, \"Cylinders\": 4, \"Displacement\": 98.0, \"Horsepower\": 79.0, \"Miles_per_Gallon\": 26.0, \"Name\": \"dodge colt\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2255, \"Year\": \"1976-01-01\"}, {\"Acceleration\": 15.3, \"Cylinders\": 4, \"Displacement\": 101.0, \"Horsepower\": 83.0, \"Miles_per_Gallon\": 27.0, \"Name\": \"renault 12tl\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 2202, \"Year\": \"1976-01-01\"}, {\"Acceleration\": 13.0, \"Cylinders\": 8, \"Displacement\": 305.0, \"Horsepower\": 140.0, \"Miles_per_Gallon\": 17.5, \"Name\": \"chevrolet chevelle malibu classic\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4215, \"Year\": \"1976-01-01\"}, {\"Acceleration\": 13.0, \"Cylinders\": 8, \"Displacement\": 318.0, \"Horsepower\": 150.0, \"Miles_per_Gallon\": 16.0, \"Name\": \"dodge coronet brougham\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4190, \"Year\": \"1976-01-01\"}, {\"Acceleration\": 13.9, \"Cylinders\": 8, \"Displacement\": 304.0, \"Horsepower\": 120.0, \"Miles_per_Gallon\": 15.5, \"Name\": \"amc matador\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3962, \"Year\": \"1976-01-01\"}, {\"Acceleration\": 12.8, \"Cylinders\": 8, \"Displacement\": 351.0, \"Horsepower\": 152.0, \"Miles_per_Gallon\": 14.5, \"Name\": \"ford gran torino\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4215, \"Year\": \"1976-01-01\"}, {\"Acceleration\": 15.4, \"Cylinders\": 6, \"Displacement\": 225.0, \"Horsepower\": 100.0, \"Miles_per_Gallon\": 22.0, \"Name\": \"plymouth valiant\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3233, \"Year\": \"1976-01-01\"}, {\"Acceleration\": 14.5, \"Cylinders\": 6, \"Displacement\": 250.0, \"Horsepower\": 105.0, \"Miles_per_Gallon\": 22.0, \"Name\": \"chevrolet nova\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3353, \"Year\": \"1976-01-01\"}, {\"Acceleration\": 17.6, \"Cylinders\": 6, \"Displacement\": 200.0, \"Horsepower\": 81.0, \"Miles_per_Gallon\": 24.0, \"Name\": \"ford maverick\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3012, \"Year\": \"1976-01-01\"}, {\"Acceleration\": 17.6, \"Cylinders\": 6, \"Displacement\": 232.0, \"Horsepower\": 90.0, \"Miles_per_Gallon\": 22.5, \"Name\": \"amc hornet\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3085, \"Year\": \"1976-01-01\"}, {\"Acceleration\": 22.2, \"Cylinders\": 4, \"Displacement\": 85.0, \"Horsepower\": 52.0, \"Miles_per_Gallon\": 29.0, \"Name\": \"chevrolet chevette\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2035, \"Year\": \"1976-01-01\"}, {\"Acceleration\": 22.1, \"Cylinders\": 4, \"Displacement\": 98.0, \"Horsepower\": 60.0, \"Miles_per_Gallon\": 24.5, \"Name\": \"chevrolet woody\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2164, \"Year\": \"1976-01-01\"}, {\"Acceleration\": 14.2, \"Cylinders\": 4, \"Displacement\": 90.0, \"Horsepower\": 70.0, \"Miles_per_Gallon\": 29.0, \"Name\": \"vw rabbit\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 1937, \"Year\": \"1976-01-01\"}, {\"Acceleration\": 17.4, \"Cylinders\": 4, \"Displacement\": 91.0, \"Horsepower\": 53.0, \"Miles_per_Gallon\": 33.0, \"Name\": \"honda civic\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 1795, \"Year\": \"1976-01-01\"}, {\"Acceleration\": 17.7, \"Cylinders\": 6, \"Displacement\": 225.0, \"Horsepower\": 100.0, \"Miles_per_Gallon\": 20.0, \"Name\": \"dodge aspen se\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3651, \"Year\": \"1976-01-01\"}, {\"Acceleration\": 21.0, \"Cylinders\": 6, \"Displacement\": 250.0, \"Horsepower\": 78.0, \"Miles_per_Gallon\": 18.0, \"Name\": \"ford granada ghia\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3574, \"Year\": \"1976-01-01\"}, {\"Acceleration\": 16.2, \"Cylinders\": 6, \"Displacement\": 250.0, \"Horsepower\": 110.0, \"Miles_per_Gallon\": 18.5, \"Name\": \"pontiac ventura sj\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3645, \"Year\": \"1976-01-01\"}, {\"Acceleration\": 17.8, \"Cylinders\": 6, \"Displacement\": 258.0, \"Horsepower\": 95.0, \"Miles_per_Gallon\": 17.5, \"Name\": \"amc pacer d/l\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3193, \"Year\": \"1976-01-01\"}, {\"Acceleration\": 12.2, \"Cylinders\": 4, \"Displacement\": 97.0, \"Horsepower\": 71.0, \"Miles_per_Gallon\": 29.5, \"Name\": \"volkswagen rabbit\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 1825, \"Year\": \"1976-01-01\"}, {\"Acceleration\": 17.0, \"Cylinders\": 4, \"Displacement\": 85.0, \"Horsepower\": 70.0, \"Miles_per_Gallon\": 32.0, \"Name\": \"datsun b-210\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 1990, \"Year\": \"1976-01-01\"}, {\"Acceleration\": 16.4, \"Cylinders\": 4, \"Displacement\": 97.0, \"Horsepower\": 75.0, \"Miles_per_Gallon\": 28.0, \"Name\": \"toyota corolla\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 2155, \"Year\": \"1976-01-01\"}, {\"Acceleration\": 13.6, \"Cylinders\": 4, \"Displacement\": 140.0, \"Horsepower\": 72.0, \"Miles_per_Gallon\": 26.5, \"Name\": \"ford pinto\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2565, \"Year\": \"1976-01-01\"}, {\"Acceleration\": 15.7, \"Cylinders\": 4, \"Displacement\": 130.0, \"Horsepower\": 102.0, \"Miles_per_Gallon\": 20.0, \"Name\": \"volvo 245\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 3150, \"Year\": \"1976-01-01\"}, {\"Acceleration\": 13.2, \"Cylinders\": 8, \"Displacement\": 318.0, \"Horsepower\": 150.0, \"Miles_per_Gallon\": 13.0, \"Name\": \"plymouth volare premier v8\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3940, \"Year\": \"1976-01-01\"}, {\"Acceleration\": 21.9, \"Cylinders\": 4, \"Displacement\": 120.0, \"Horsepower\": 88.0, \"Miles_per_Gallon\": 19.0, \"Name\": \"peugeot 504\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 3270, \"Year\": \"1976-01-01\"}, {\"Acceleration\": 15.5, \"Cylinders\": 6, \"Displacement\": 156.0, \"Horsepower\": 108.0, \"Miles_per_Gallon\": 19.0, \"Name\": \"toyota mark ii\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 2930, \"Year\": \"1976-01-01\"}, {\"Acceleration\": 16.7, \"Cylinders\": 6, \"Displacement\": 168.0, \"Horsepower\": 120.0, \"Miles_per_Gallon\": 16.5, \"Name\": \"mercedes-benz 280s\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 3820, \"Year\": \"1976-01-01\"}, {\"Acceleration\": 12.1, \"Cylinders\": 8, \"Displacement\": 350.0, \"Horsepower\": 180.0, \"Miles_per_Gallon\": 16.5, \"Name\": \"cadillac seville\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4380, \"Year\": \"1976-01-01\"}, {\"Acceleration\": 12.0, \"Cylinders\": 8, \"Displacement\": 350.0, \"Horsepower\": 145.0, \"Miles_per_Gallon\": 13.0, \"Name\": \"chevy c10\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4055, \"Year\": \"1976-01-01\"}, {\"Acceleration\": 15.0, \"Cylinders\": 8, \"Displacement\": 302.0, \"Horsepower\": 130.0, \"Miles_per_Gallon\": 13.0, \"Name\": \"ford f108\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3870, \"Year\": \"1976-01-01\"}, {\"Acceleration\": 14.0, \"Cylinders\": 8, \"Displacement\": 318.0, \"Horsepower\": 150.0, \"Miles_per_Gallon\": 13.0, \"Name\": \"dodge d100\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3755, \"Year\": \"1976-01-01\"}, {\"Acceleration\": 18.5, \"Cylinders\": 4, \"Displacement\": 98.0, \"Horsepower\": 68.0, \"Miles_per_Gallon\": 31.5, \"Name\": \"honda Accelerationord cvcc\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 2045, \"Year\": \"1977-01-01\"}, {\"Acceleration\": 14.8, \"Cylinders\": 4, \"Displacement\": 111.0, \"Horsepower\": 80.0, \"Miles_per_Gallon\": 30.0, \"Name\": \"buick opel isuzu deluxe\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2155, \"Year\": \"1977-01-01\"}, {\"Acceleration\": 18.6, \"Cylinders\": 4, \"Displacement\": 79.0, \"Horsepower\": 58.0, \"Miles_per_Gallon\": 36.0, \"Name\": \"renault 5 gtl\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 1825, \"Year\": \"1977-01-01\"}, {\"Acceleration\": 15.5, \"Cylinders\": 4, \"Displacement\": 122.0, \"Horsepower\": 96.0, \"Miles_per_Gallon\": 25.5, \"Name\": \"plymouth arrow gs\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2300, \"Year\": \"1977-01-01\"}, {\"Acceleration\": 16.8, \"Cylinders\": 4, \"Displacement\": 85.0, \"Horsepower\": 70.0, \"Miles_per_Gallon\": 33.5, \"Name\": \"datsun f-10 hatchback\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 1945, \"Year\": \"1977-01-01\"}, {\"Acceleration\": 12.5, \"Cylinders\": 8, \"Displacement\": 305.0, \"Horsepower\": 145.0, \"Miles_per_Gallon\": 17.5, \"Name\": \"chevrolet caprice classic\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3880, \"Year\": \"1977-01-01\"}, {\"Acceleration\": 19.0, \"Cylinders\": 8, \"Displacement\": 260.0, \"Horsepower\": 110.0, \"Miles_per_Gallon\": 17.0, \"Name\": \"oldsmobile cutlass supreme\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4060, \"Year\": \"1977-01-01\"}, {\"Acceleration\": 13.7, \"Cylinders\": 8, \"Displacement\": 318.0, \"Horsepower\": 145.0, \"Miles_per_Gallon\": 15.5, \"Name\": \"dodge monaco brougham\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4140, \"Year\": \"1977-01-01\"}, {\"Acceleration\": 14.9, \"Cylinders\": 8, \"Displacement\": 302.0, \"Horsepower\": 130.0, \"Miles_per_Gallon\": 15.0, \"Name\": \"mercury cougar brougham\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4295, \"Year\": \"1977-01-01\"}, {\"Acceleration\": 16.4, \"Cylinders\": 6, \"Displacement\": 250.0, \"Horsepower\": 110.0, \"Miles_per_Gallon\": 17.5, \"Name\": \"chevrolet concours\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3520, \"Year\": \"1977-01-01\"}, {\"Acceleration\": 16.9, \"Cylinders\": 6, \"Displacement\": 231.0, \"Horsepower\": 105.0, \"Miles_per_Gallon\": 20.5, \"Name\": \"buick skylark\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3425, \"Year\": \"1977-01-01\"}, {\"Acceleration\": 17.7, \"Cylinders\": 6, \"Displacement\": 225.0, \"Horsepower\": 100.0, \"Miles_per_Gallon\": 19.0, \"Name\": \"plymouth volare custom\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3630, \"Year\": \"1977-01-01\"}, {\"Acceleration\": 19.0, \"Cylinders\": 6, \"Displacement\": 250.0, \"Horsepower\": 98.0, \"Miles_per_Gallon\": 18.5, \"Name\": \"ford granada\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3525, \"Year\": \"1977-01-01\"}, {\"Acceleration\": 11.1, \"Cylinders\": 8, \"Displacement\": 400.0, \"Horsepower\": 180.0, \"Miles_per_Gallon\": 16.0, \"Name\": \"pontiac grand prix lj\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4220, \"Year\": \"1977-01-01\"}, {\"Acceleration\": 11.4, \"Cylinders\": 8, \"Displacement\": 350.0, \"Horsepower\": 170.0, \"Miles_per_Gallon\": 15.5, \"Name\": \"chevrolet monte carlo landau\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4165, \"Year\": \"1977-01-01\"}, {\"Acceleration\": 12.2, \"Cylinders\": 8, \"Displacement\": 400.0, \"Horsepower\": 190.0, \"Miles_per_Gallon\": 15.5, \"Name\": \"chrysler cordoba\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4325, \"Year\": \"1977-01-01\"}, {\"Acceleration\": 14.5, \"Cylinders\": 8, \"Displacement\": 351.0, \"Horsepower\": 149.0, \"Miles_per_Gallon\": 16.0, \"Name\": \"ford thunderbird\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4335, \"Year\": \"1977-01-01\"}, {\"Acceleration\": 14.5, \"Cylinders\": 4, \"Displacement\": 97.0, \"Horsepower\": 78.0, \"Miles_per_Gallon\": 29.0, \"Name\": \"volkswagen rabbit custom\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 1940, \"Year\": \"1977-01-01\"}, {\"Acceleration\": 16.0, \"Cylinders\": 4, \"Displacement\": 151.0, \"Horsepower\": 88.0, \"Miles_per_Gallon\": 24.5, \"Name\": \"pontiac sunbird coupe\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2740, \"Year\": \"1977-01-01\"}, {\"Acceleration\": 18.2, \"Cylinders\": 4, \"Displacement\": 97.0, \"Horsepower\": 75.0, \"Miles_per_Gallon\": 26.0, \"Name\": \"toyota corolla liftback\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 2265, \"Year\": \"1977-01-01\"}, {\"Acceleration\": 15.8, \"Cylinders\": 4, \"Displacement\": 140.0, \"Horsepower\": 89.0, \"Miles_per_Gallon\": 25.5, \"Name\": \"ford mustang ii 2+2\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2755, \"Year\": \"1977-01-01\"}, {\"Acceleration\": 17.0, \"Cylinders\": 4, \"Displacement\": 98.0, \"Horsepower\": 63.0, \"Miles_per_Gallon\": 30.5, \"Name\": \"chevrolet chevette\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2051, \"Year\": \"1977-01-01\"}, {\"Acceleration\": 15.9, \"Cylinders\": 4, \"Displacement\": 98.0, \"Horsepower\": 83.0, \"Miles_per_Gallon\": 33.5, \"Name\": \"dodge colt m/m\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2075, \"Year\": \"1977-01-01\"}, {\"Acceleration\": 16.4, \"Cylinders\": 4, \"Displacement\": 97.0, \"Horsepower\": 67.0, \"Miles_per_Gallon\": 30.0, \"Name\": \"subaru dl\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 1985, \"Year\": \"1977-01-01\"}, {\"Acceleration\": 14.1, \"Cylinders\": 4, \"Displacement\": 97.0, \"Horsepower\": 78.0, \"Miles_per_Gallon\": 30.5, \"Name\": \"volkswagen dasher\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 2190, \"Year\": \"1977-01-01\"}, {\"Acceleration\": 14.5, \"Cylinders\": 6, \"Displacement\": 146.0, \"Horsepower\": 97.0, \"Miles_per_Gallon\": 22.0, \"Name\": \"datsun 810\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 2815, \"Year\": \"1977-01-01\"}, {\"Acceleration\": 12.8, \"Cylinders\": 4, \"Displacement\": 121.0, \"Horsepower\": 110.0, \"Miles_per_Gallon\": 21.5, \"Name\": \"bmw 320i\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 2600, \"Year\": \"1977-01-01\"}, {\"Acceleration\": 13.5, \"Cylinders\": 3, \"Displacement\": 80.0, \"Horsepower\": 110.0, \"Miles_per_Gallon\": 21.5, \"Name\": \"mazda rx-4\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 2720, \"Year\": \"1977-01-01\"}, {\"Acceleration\": 21.5, \"Cylinders\": 4, \"Displacement\": 90.0, \"Horsepower\": 48.0, \"Miles_per_Gallon\": 43.1, \"Name\": \"volkswagen rabbit custom diesel\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 1985, \"Year\": \"1978-01-01\"}, {\"Acceleration\": 14.4, \"Cylinders\": 4, \"Displacement\": 98.0, \"Horsepower\": 66.0, \"Miles_per_Gallon\": 36.1, \"Name\": \"ford fiesta\", \"Origin\": \"USA\", \"Weight_in_lbs\": 1800, \"Year\": \"1978-01-01\"}, {\"Acceleration\": 19.4, \"Cylinders\": 4, \"Displacement\": 78.0, \"Horsepower\": 52.0, \"Miles_per_Gallon\": 32.8, \"Name\": \"mazda glc deluxe\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 1985, \"Year\": \"1978-01-01\"}, {\"Acceleration\": 18.6, \"Cylinders\": 4, \"Displacement\": 85.0, \"Horsepower\": 70.0, \"Miles_per_Gallon\": 39.4, \"Name\": \"datsun b210 gx\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 2070, \"Year\": \"1978-01-01\"}, {\"Acceleration\": 16.4, \"Cylinders\": 4, \"Displacement\": 91.0, \"Horsepower\": 60.0, \"Miles_per_Gallon\": 36.1, \"Name\": \"honda civic cvcc\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 1800, \"Year\": \"1978-01-01\"}, {\"Acceleration\": 15.5, \"Cylinders\": 8, \"Displacement\": 260.0, \"Horsepower\": 110.0, \"Miles_per_Gallon\": 19.9, \"Name\": \"oldsmobile cutlass salon brougham\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3365, \"Year\": \"1978-01-01\"}, {\"Acceleration\": 13.2, \"Cylinders\": 8, \"Displacement\": 318.0, \"Horsepower\": 140.0, \"Miles_per_Gallon\": 19.4, \"Name\": \"dodge diplomat\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3735, \"Year\": \"1978-01-01\"}, {\"Acceleration\": 12.8, \"Cylinders\": 8, \"Displacement\": 302.0, \"Horsepower\": 139.0, \"Miles_per_Gallon\": 20.2, \"Name\": \"mercury monarch ghia\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3570, \"Year\": \"1978-01-01\"}, {\"Acceleration\": 19.2, \"Cylinders\": 6, \"Displacement\": 231.0, \"Horsepower\": 105.0, \"Miles_per_Gallon\": 19.2, \"Name\": \"pontiac phoenix lj\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3535, \"Year\": \"1978-01-01\"}, {\"Acceleration\": 18.2, \"Cylinders\": 6, \"Displacement\": 200.0, \"Horsepower\": 95.0, \"Miles_per_Gallon\": 20.5, \"Name\": \"chevrolet malibu\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3155, \"Year\": \"1978-01-01\"}, {\"Acceleration\": 15.8, \"Cylinders\": 6, \"Displacement\": 200.0, \"Horsepower\": 85.0, \"Miles_per_Gallon\": 20.2, \"Name\": \"ford fairmont (auto)\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2965, \"Year\": \"1978-01-01\"}, {\"Acceleration\": 15.4, \"Cylinders\": 4, \"Displacement\": 140.0, \"Horsepower\": 88.0, \"Miles_per_Gallon\": 25.1, \"Name\": \"ford fairmont (man)\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2720, \"Year\": \"1978-01-01\"}, {\"Acceleration\": 17.2, \"Cylinders\": 6, \"Displacement\": 225.0, \"Horsepower\": 100.0, \"Miles_per_Gallon\": 20.5, \"Name\": \"plymouth volare\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3430, \"Year\": \"1978-01-01\"}, {\"Acceleration\": 17.2, \"Cylinders\": 6, \"Displacement\": 232.0, \"Horsepower\": 90.0, \"Miles_per_Gallon\": 19.4, \"Name\": \"amc concord\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3210, \"Year\": \"1978-01-01\"}, {\"Acceleration\": 15.8, \"Cylinders\": 6, \"Displacement\": 231.0, \"Horsepower\": 105.0, \"Miles_per_Gallon\": 20.6, \"Name\": \"buick century special\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3380, \"Year\": \"1978-01-01\"}, {\"Acceleration\": 16.7, \"Cylinders\": 6, \"Displacement\": 200.0, \"Horsepower\": 85.0, \"Miles_per_Gallon\": 20.8, \"Name\": \"mercury zephyr\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3070, \"Year\": \"1978-01-01\"}, {\"Acceleration\": 18.7, \"Cylinders\": 6, \"Displacement\": 225.0, \"Horsepower\": 110.0, \"Miles_per_Gallon\": 18.6, \"Name\": \"dodge aspen\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3620, \"Year\": \"1978-01-01\"}, {\"Acceleration\": 15.1, \"Cylinders\": 6, \"Displacement\": 258.0, \"Horsepower\": 120.0, \"Miles_per_Gallon\": 18.1, \"Name\": \"amc concord d/l\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3410, \"Year\": \"1978-01-01\"}, {\"Acceleration\": 13.2, \"Cylinders\": 8, \"Displacement\": 305.0, \"Horsepower\": 145.0, \"Miles_per_Gallon\": 19.2, \"Name\": \"chevrolet monte carlo landau\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3425, \"Year\": \"1978-01-01\"}, {\"Acceleration\": 13.4, \"Cylinders\": 6, \"Displacement\": 231.0, \"Horsepower\": 165.0, \"Miles_per_Gallon\": 17.7, \"Name\": \"buick regal sport coupe (turbo)\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3445, \"Year\": \"1978-01-01\"}, {\"Acceleration\": 11.2, \"Cylinders\": 8, \"Displacement\": 302.0, \"Horsepower\": 139.0, \"Miles_per_Gallon\": 18.1, \"Name\": \"ford futura\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3205, \"Year\": \"1978-01-01\"}, {\"Acceleration\": 13.7, \"Cylinders\": 8, \"Displacement\": 318.0, \"Horsepower\": 140.0, \"Miles_per_Gallon\": 17.5, \"Name\": \"dodge magnum xe\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4080, \"Year\": \"1978-01-01\"}, {\"Acceleration\": 16.5, \"Cylinders\": 4, \"Displacement\": 98.0, \"Horsepower\": 68.0, \"Miles_per_Gallon\": 30.0, \"Name\": \"chevrolet chevette\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2155, \"Year\": \"1978-01-01\"}, {\"Acceleration\": 14.2, \"Cylinders\": 4, \"Displacement\": 134.0, \"Horsepower\": 95.0, \"Miles_per_Gallon\": 27.5, \"Name\": \"toyota corona\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 2560, \"Year\": \"1978-01-01\"}, {\"Acceleration\": 14.7, \"Cylinders\": 4, \"Displacement\": 119.0, \"Horsepower\": 97.0, \"Miles_per_Gallon\": 27.2, \"Name\": \"datsun 510\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 2300, \"Year\": \"1978-01-01\"}, {\"Acceleration\": 14.5, \"Cylinders\": 4, \"Displacement\": 105.0, \"Horsepower\": 75.0, \"Miles_per_Gallon\": 30.9, \"Name\": \"dodge omni\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2230, \"Year\": \"1978-01-01\"}, {\"Acceleration\": 14.8, \"Cylinders\": 4, \"Displacement\": 134.0, \"Horsepower\": 95.0, \"Miles_per_Gallon\": 21.1, \"Name\": \"toyota celica gt liftback\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 2515, \"Year\": \"1978-01-01\"}, {\"Acceleration\": 16.7, \"Cylinders\": 4, \"Displacement\": 156.0, \"Horsepower\": 105.0, \"Miles_per_Gallon\": 23.2, \"Name\": \"plymouth sapporo\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2745, \"Year\": \"1978-01-01\"}, {\"Acceleration\": 17.6, \"Cylinders\": 4, \"Displacement\": 151.0, \"Horsepower\": 85.0, \"Miles_per_Gallon\": 23.8, \"Name\": \"oldsmobile starfire sx\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2855, \"Year\": \"1978-01-01\"}, {\"Acceleration\": 14.9, \"Cylinders\": 4, \"Displacement\": 119.0, \"Horsepower\": 97.0, \"Miles_per_Gallon\": 23.9, \"Name\": \"datsun 200-sx\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 2405, \"Year\": \"1978-01-01\"}, {\"Acceleration\": 15.9, \"Cylinders\": 5, \"Displacement\": 131.0, \"Horsepower\": 103.0, \"Miles_per_Gallon\": 20.3, \"Name\": \"audi 5000\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 2830, \"Year\": \"1978-01-01\"}, {\"Acceleration\": 13.6, \"Cylinders\": 6, \"Displacement\": 163.0, \"Horsepower\": 125.0, \"Miles_per_Gallon\": 17.0, \"Name\": \"volvo 264gl\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 3140, \"Year\": \"1978-01-01\"}, {\"Acceleration\": 15.7, \"Cylinders\": 4, \"Displacement\": 121.0, \"Horsepower\": 115.0, \"Miles_per_Gallon\": 21.6, \"Name\": \"saab 99gle\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 2795, \"Year\": \"1978-01-01\"}, {\"Acceleration\": 15.8, \"Cylinders\": 6, \"Displacement\": 163.0, \"Horsepower\": 133.0, \"Miles_per_Gallon\": 16.2, \"Name\": \"peugeot 604sl\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 3410, \"Year\": \"1978-01-01\"}, {\"Acceleration\": 14.9, \"Cylinders\": 4, \"Displacement\": 89.0, \"Horsepower\": 71.0, \"Miles_per_Gallon\": 31.5, \"Name\": \"volkswagen scirocco\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 1990, \"Year\": \"1978-01-01\"}, {\"Acceleration\": 16.6, \"Cylinders\": 4, \"Displacement\": 98.0, \"Horsepower\": 68.0, \"Miles_per_Gallon\": 29.5, \"Name\": \"honda Accelerationord lx\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 2135, \"Year\": \"1978-01-01\"}, {\"Acceleration\": 15.4, \"Cylinders\": 6, \"Displacement\": 231.0, \"Horsepower\": 115.0, \"Miles_per_Gallon\": 21.5, \"Name\": \"pontiac lemans v6\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3245, \"Year\": \"1979-01-01\"}, {\"Acceleration\": 18.2, \"Cylinders\": 6, \"Displacement\": 200.0, \"Horsepower\": 85.0, \"Miles_per_Gallon\": 19.8, \"Name\": \"mercury zephyr 6\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2990, \"Year\": \"1979-01-01\"}, {\"Acceleration\": 17.3, \"Cylinders\": 4, \"Displacement\": 140.0, \"Horsepower\": 88.0, \"Miles_per_Gallon\": 22.3, \"Name\": \"ford fairmont 4\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2890, \"Year\": \"1979-01-01\"}, {\"Acceleration\": 18.2, \"Cylinders\": 6, \"Displacement\": 232.0, \"Horsepower\": 90.0, \"Miles_per_Gallon\": 20.2, \"Name\": \"amc concord dl 6\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3265, \"Year\": \"1979-01-01\"}, {\"Acceleration\": 16.6, \"Cylinders\": 6, \"Displacement\": 225.0, \"Horsepower\": 110.0, \"Miles_per_Gallon\": 20.6, \"Name\": \"dodge aspen 6\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3360, \"Year\": \"1979-01-01\"}, {\"Acceleration\": 15.4, \"Cylinders\": 8, \"Displacement\": 305.0, \"Horsepower\": 130.0, \"Miles_per_Gallon\": 17.0, \"Name\": \"chevrolet caprice classic\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3840, \"Year\": \"1979-01-01\"}, {\"Acceleration\": 13.4, \"Cylinders\": 8, \"Displacement\": 302.0, \"Horsepower\": 129.0, \"Miles_per_Gallon\": 17.6, \"Name\": \"ford ltd landau\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3725, \"Year\": \"1979-01-01\"}, {\"Acceleration\": 13.2, \"Cylinders\": 8, \"Displacement\": 351.0, \"Horsepower\": 138.0, \"Miles_per_Gallon\": 16.5, \"Name\": \"mercury grand marquis\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3955, \"Year\": \"1979-01-01\"}, {\"Acceleration\": 15.2, \"Cylinders\": 8, \"Displacement\": 318.0, \"Horsepower\": 135.0, \"Miles_per_Gallon\": 18.2, \"Name\": \"dodge st. regis\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3830, \"Year\": \"1979-01-01\"}, {\"Acceleration\": 14.9, \"Cylinders\": 8, \"Displacement\": 350.0, \"Horsepower\": 155.0, \"Miles_per_Gallon\": 16.9, \"Name\": \"buick estate wagon (sw)\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4360, \"Year\": \"1979-01-01\"}, {\"Acceleration\": 14.3, \"Cylinders\": 8, \"Displacement\": 351.0, \"Horsepower\": 142.0, \"Miles_per_Gallon\": 15.5, \"Name\": \"ford country squire (sw)\", \"Origin\": \"USA\", \"Weight_in_lbs\": 4054, \"Year\": \"1979-01-01\"}, {\"Acceleration\": 15.0, \"Cylinders\": 8, \"Displacement\": 267.0, \"Horsepower\": 125.0, \"Miles_per_Gallon\": 19.2, \"Name\": \"chevrolet malibu classic (sw)\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3605, \"Year\": \"1979-01-01\"}, {\"Acceleration\": 13.0, \"Cylinders\": 8, \"Displacement\": 360.0, \"Horsepower\": 150.0, \"Miles_per_Gallon\": 18.5, \"Name\": \"chrysler lebaron town @ country (sw)\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3940, \"Year\": \"1979-01-01\"}, {\"Acceleration\": 14.0, \"Cylinders\": 4, \"Displacement\": 89.0, \"Horsepower\": 71.0, \"Miles_per_Gallon\": 31.9, \"Name\": \"vw rabbit custom\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 1925, \"Year\": \"1979-01-01\"}, {\"Acceleration\": 15.2, \"Cylinders\": 4, \"Displacement\": 86.0, \"Horsepower\": 65.0, \"Miles_per_Gallon\": 34.1, \"Name\": \"maxda glc deluxe\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 1975, \"Year\": \"1979-01-01\"}, {\"Acceleration\": 14.4, \"Cylinders\": 4, \"Displacement\": 98.0, \"Horsepower\": 80.0, \"Miles_per_Gallon\": 35.7, \"Name\": \"dodge colt hatchback custom\", \"Origin\": \"USA\", \"Weight_in_lbs\": 1915, \"Year\": \"1979-01-01\"}, {\"Acceleration\": 15.0, \"Cylinders\": 4, \"Displacement\": 121.0, \"Horsepower\": 80.0, \"Miles_per_Gallon\": 27.4, \"Name\": \"amc spirit dl\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2670, \"Year\": \"1979-01-01\"}, {\"Acceleration\": 20.1, \"Cylinders\": 5, \"Displacement\": 183.0, \"Horsepower\": 77.0, \"Miles_per_Gallon\": 25.4, \"Name\": \"mercedes benz 300d\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 3530, \"Year\": \"1979-01-01\"}, {\"Acceleration\": 17.4, \"Cylinders\": 8, \"Displacement\": 350.0, \"Horsepower\": 125.0, \"Miles_per_Gallon\": 23.0, \"Name\": \"cadillac eldorado\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3900, \"Year\": \"1979-01-01\"}, {\"Acceleration\": 24.8, \"Cylinders\": 4, \"Displacement\": 141.0, \"Horsepower\": 71.0, \"Miles_per_Gallon\": 27.2, \"Name\": \"peugeot 504\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 3190, \"Year\": \"1979-01-01\"}, {\"Acceleration\": 22.2, \"Cylinders\": 8, \"Displacement\": 260.0, \"Horsepower\": 90.0, \"Miles_per_Gallon\": 23.9, \"Name\": \"oldsmobile cutlass salon brougham\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3420, \"Year\": \"1979-01-01\"}, {\"Acceleration\": 13.2, \"Cylinders\": 4, \"Displacement\": 105.0, \"Horsepower\": 70.0, \"Miles_per_Gallon\": 34.2, \"Name\": \"plymouth horizon\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2200, \"Year\": \"1979-01-01\"}, {\"Acceleration\": 14.9, \"Cylinders\": 4, \"Displacement\": 105.0, \"Horsepower\": 70.0, \"Miles_per_Gallon\": 34.5, \"Name\": \"plymouth horizon tc3\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2150, \"Year\": \"1979-01-01\"}, {\"Acceleration\": 19.2, \"Cylinders\": 4, \"Displacement\": 85.0, \"Horsepower\": 65.0, \"Miles_per_Gallon\": 31.8, \"Name\": \"datsun 210\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 2020, \"Year\": \"1979-01-01\"}, {\"Acceleration\": 14.7, \"Cylinders\": 4, \"Displacement\": 91.0, \"Horsepower\": 69.0, \"Miles_per_Gallon\": 37.3, \"Name\": \"fiat strada custom\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 2130, \"Year\": \"1979-01-01\"}, {\"Acceleration\": 16.0, \"Cylinders\": 4, \"Displacement\": 151.0, \"Horsepower\": 90.0, \"Miles_per_Gallon\": 28.4, \"Name\": \"buick skylark limited\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2670, \"Year\": \"1979-01-01\"}, {\"Acceleration\": 11.3, \"Cylinders\": 6, \"Displacement\": 173.0, \"Horsepower\": 115.0, \"Miles_per_Gallon\": 28.8, \"Name\": \"chevrolet citation\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2595, \"Year\": \"1979-01-01\"}, {\"Acceleration\": 12.9, \"Cylinders\": 6, \"Displacement\": 173.0, \"Horsepower\": 115.0, \"Miles_per_Gallon\": 26.8, \"Name\": \"oldsmobile omega brougham\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2700, \"Year\": \"1979-01-01\"}, {\"Acceleration\": 13.2, \"Cylinders\": 4, \"Displacement\": 151.0, \"Horsepower\": 90.0, \"Miles_per_Gallon\": 33.5, \"Name\": \"pontiac phoenix\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2556, \"Year\": \"1979-01-01\"}, {\"Acceleration\": 14.7, \"Cylinders\": 4, \"Displacement\": 98.0, \"Horsepower\": 76.0, \"Miles_per_Gallon\": 41.5, \"Name\": \"vw rabbit\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 2144, \"Year\": \"1980-01-01\"}, {\"Acceleration\": 18.8, \"Cylinders\": 4, \"Displacement\": 89.0, \"Horsepower\": 60.0, \"Miles_per_Gallon\": 38.1, \"Name\": \"toyota corolla tercel\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 1968, \"Year\": \"1980-01-01\"}, {\"Acceleration\": 15.5, \"Cylinders\": 4, \"Displacement\": 98.0, \"Horsepower\": 70.0, \"Miles_per_Gallon\": 32.1, \"Name\": \"chevrolet chevette\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2120, \"Year\": \"1980-01-01\"}, {\"Acceleration\": 16.4, \"Cylinders\": 4, \"Displacement\": 86.0, \"Horsepower\": 65.0, \"Miles_per_Gallon\": 37.2, \"Name\": \"datsun 310\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 2019, \"Year\": \"1980-01-01\"}, {\"Acceleration\": 16.5, \"Cylinders\": 4, \"Displacement\": 151.0, \"Horsepower\": 90.0, \"Miles_per_Gallon\": 28.0, \"Name\": \"chevrolet citation\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2678, \"Year\": \"1980-01-01\"}, {\"Acceleration\": 18.1, \"Cylinders\": 4, \"Displacement\": 140.0, \"Horsepower\": 88.0, \"Miles_per_Gallon\": 26.4, \"Name\": \"ford fairmont\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2870, \"Year\": \"1980-01-01\"}, {\"Acceleration\": 20.1, \"Cylinders\": 4, \"Displacement\": 151.0, \"Horsepower\": 90.0, \"Miles_per_Gallon\": 24.3, \"Name\": \"amc concord\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3003, \"Year\": \"1980-01-01\"}, {\"Acceleration\": 18.7, \"Cylinders\": 6, \"Displacement\": 225.0, \"Horsepower\": 90.0, \"Miles_per_Gallon\": 19.1, \"Name\": \"dodge aspen\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3381, \"Year\": \"1980-01-01\"}, {\"Acceleration\": 15.8, \"Cylinders\": 4, \"Displacement\": 97.0, \"Horsepower\": 78.0, \"Miles_per_Gallon\": 34.3, \"Name\": \"audi 4000\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 2188, \"Year\": \"1980-01-01\"}, {\"Acceleration\": 15.5, \"Cylinders\": 4, \"Displacement\": 134.0, \"Horsepower\": 90.0, \"Miles_per_Gallon\": 29.8, \"Name\": \"toyota corona liftback\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 2711, \"Year\": \"1980-01-01\"}, {\"Acceleration\": 17.5, \"Cylinders\": 4, \"Displacement\": 120.0, \"Horsepower\": 75.0, \"Miles_per_Gallon\": 31.3, \"Name\": \"mazda 626\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 2542, \"Year\": \"1980-01-01\"}, {\"Acceleration\": 15.0, \"Cylinders\": 4, \"Displacement\": 119.0, \"Horsepower\": 92.0, \"Miles_per_Gallon\": 37.0, \"Name\": \"datsun 510 hatchback\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 2434, \"Year\": \"1980-01-01\"}, {\"Acceleration\": 15.2, \"Cylinders\": 4, \"Displacement\": 108.0, \"Horsepower\": 75.0, \"Miles_per_Gallon\": 32.2, \"Name\": \"toyota corolla\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 2265, \"Year\": \"1980-01-01\"}, {\"Acceleration\": 17.9, \"Cylinders\": 4, \"Displacement\": 86.0, \"Horsepower\": 65.0, \"Miles_per_Gallon\": 46.6, \"Name\": \"mazda glc\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 2110, \"Year\": \"1980-01-01\"}, {\"Acceleration\": 14.4, \"Cylinders\": 4, \"Displacement\": 156.0, \"Horsepower\": 105.0, \"Miles_per_Gallon\": 27.9, \"Name\": \"dodge colt\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2800, \"Year\": \"1980-01-01\"}, {\"Acceleration\": 19.2, \"Cylinders\": 4, \"Displacement\": 85.0, \"Horsepower\": 65.0, \"Miles_per_Gallon\": 40.8, \"Name\": \"datsun 210\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 2110, \"Year\": \"1980-01-01\"}, {\"Acceleration\": 21.7, \"Cylinders\": 4, \"Displacement\": 90.0, \"Horsepower\": 48.0, \"Miles_per_Gallon\": 44.3, \"Name\": \"vw rabbit c (diesel)\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 2085, \"Year\": \"1980-01-01\"}, {\"Acceleration\": 23.7, \"Cylinders\": 4, \"Displacement\": 90.0, \"Horsepower\": 48.0, \"Miles_per_Gallon\": 43.4, \"Name\": \"vw dasher (diesel)\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 2335, \"Year\": \"1980-01-01\"}, {\"Acceleration\": 19.9, \"Cylinders\": 5, \"Displacement\": 121.0, \"Horsepower\": 67.0, \"Miles_per_Gallon\": 36.4, \"Name\": \"audi 5000s (diesel)\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 2950, \"Year\": \"1980-01-01\"}, {\"Acceleration\": 21.8, \"Cylinders\": 4, \"Displacement\": 146.0, \"Horsepower\": 67.0, \"Miles_per_Gallon\": 30.0, \"Name\": \"mercedes-benz 240d\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 3250, \"Year\": \"1980-01-01\"}, {\"Acceleration\": 13.8, \"Cylinders\": 4, \"Displacement\": 91.0, \"Horsepower\": 67.0, \"Miles_per_Gallon\": 44.6, \"Name\": \"honda civic 1500 gl\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 1850, \"Year\": \"1980-01-01\"}, {\"Acceleration\": 17.3, \"Cylinders\": 4, \"Displacement\": 85.0, \"Horsepower\": null, \"Miles_per_Gallon\": 40.9, \"Name\": \"renault lecar deluxe\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 1835, \"Year\": \"1980-01-01\"}, {\"Acceleration\": 18.0, \"Cylinders\": 4, \"Displacement\": 97.0, \"Horsepower\": 67.0, \"Miles_per_Gallon\": 33.8, \"Name\": \"subaru dl\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 2145, \"Year\": \"1980-01-01\"}, {\"Acceleration\": 15.3, \"Cylinders\": 4, \"Displacement\": 89.0, \"Horsepower\": 62.0, \"Miles_per_Gallon\": 29.8, \"Name\": \"vokswagen rabbit\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 1845, \"Year\": \"1980-01-01\"}, {\"Acceleration\": 11.4, \"Cylinders\": 6, \"Displacement\": 168.0, \"Horsepower\": 132.0, \"Miles_per_Gallon\": 32.7, \"Name\": \"datsun 280-zx\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 2910, \"Year\": \"1980-01-01\"}, {\"Acceleration\": 12.5, \"Cylinders\": 3, \"Displacement\": 70.0, \"Horsepower\": 100.0, \"Miles_per_Gallon\": 23.7, \"Name\": \"mazda rx-7 gs\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 2420, \"Year\": \"1980-01-01\"}, {\"Acceleration\": 15.1, \"Cylinders\": 4, \"Displacement\": 122.0, \"Horsepower\": 88.0, \"Miles_per_Gallon\": 35.0, \"Name\": \"triumph tr7 coupe\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 2500, \"Year\": \"1980-01-01\"}, {\"Acceleration\": 14.3, \"Cylinders\": 4, \"Displacement\": 140.0, \"Horsepower\": null, \"Miles_per_Gallon\": 23.6, \"Name\": \"ford mustang cobra\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2905, \"Year\": \"1980-01-01\"}, {\"Acceleration\": 17.0, \"Cylinders\": 4, \"Displacement\": 107.0, \"Horsepower\": 72.0, \"Miles_per_Gallon\": 32.4, \"Name\": \"honda Accelerationord\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 2290, \"Year\": \"1980-01-01\"}, {\"Acceleration\": 15.7, \"Cylinders\": 4, \"Displacement\": 135.0, \"Horsepower\": 84.0, \"Miles_per_Gallon\": 27.2, \"Name\": \"plymouth reliant\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2490, \"Year\": \"1982-01-01\"}, {\"Acceleration\": 16.4, \"Cylinders\": 4, \"Displacement\": 151.0, \"Horsepower\": 84.0, \"Miles_per_Gallon\": 26.6, \"Name\": \"buick skylark\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2635, \"Year\": \"1982-01-01\"}, {\"Acceleration\": 14.4, \"Cylinders\": 4, \"Displacement\": 156.0, \"Horsepower\": 92.0, \"Miles_per_Gallon\": 25.8, \"Name\": \"dodge aries wagon (sw)\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2620, \"Year\": \"1982-01-01\"}, {\"Acceleration\": 12.6, \"Cylinders\": 6, \"Displacement\": 173.0, \"Horsepower\": 110.0, \"Miles_per_Gallon\": 23.5, \"Name\": \"chevrolet citation\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2725, \"Year\": \"1982-01-01\"}, {\"Acceleration\": 12.9, \"Cylinders\": 4, \"Displacement\": 135.0, \"Horsepower\": 84.0, \"Miles_per_Gallon\": 30.0, \"Name\": \"plymouth reliant\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2385, \"Year\": \"1982-01-01\"}, {\"Acceleration\": 16.9, \"Cylinders\": 4, \"Displacement\": 79.0, \"Horsepower\": 58.0, \"Miles_per_Gallon\": 39.1, \"Name\": \"toyota starlet\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 1755, \"Year\": \"1982-01-01\"}, {\"Acceleration\": 16.4, \"Cylinders\": 4, \"Displacement\": 86.0, \"Horsepower\": 64.0, \"Miles_per_Gallon\": 39.0, \"Name\": \"plymouth champ\", \"Origin\": \"USA\", \"Weight_in_lbs\": 1875, \"Year\": \"1982-01-01\"}, {\"Acceleration\": 16.1, \"Cylinders\": 4, \"Displacement\": 81.0, \"Horsepower\": 60.0, \"Miles_per_Gallon\": 35.1, \"Name\": \"honda civic 1300\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 1760, \"Year\": \"1982-01-01\"}, {\"Acceleration\": 17.8, \"Cylinders\": 4, \"Displacement\": 97.0, \"Horsepower\": 67.0, \"Miles_per_Gallon\": 32.3, \"Name\": \"subaru\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 2065, \"Year\": \"1982-01-01\"}, {\"Acceleration\": 19.4, \"Cylinders\": 4, \"Displacement\": 85.0, \"Horsepower\": 65.0, \"Miles_per_Gallon\": 37.0, \"Name\": \"datsun 210\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 1975, \"Year\": \"1982-01-01\"}, {\"Acceleration\": 17.3, \"Cylinders\": 4, \"Displacement\": 89.0, \"Horsepower\": 62.0, \"Miles_per_Gallon\": 37.7, \"Name\": \"toyota tercel\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 2050, \"Year\": \"1982-01-01\"}, {\"Acceleration\": 16.0, \"Cylinders\": 4, \"Displacement\": 91.0, \"Horsepower\": 68.0, \"Miles_per_Gallon\": 34.1, \"Name\": \"mazda glc 4\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 1985, \"Year\": \"1982-01-01\"}, {\"Acceleration\": 14.9, \"Cylinders\": 4, \"Displacement\": 105.0, \"Horsepower\": 63.0, \"Miles_per_Gallon\": 34.7, \"Name\": \"plymouth horizon 4\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2215, \"Year\": \"1982-01-01\"}, {\"Acceleration\": 16.2, \"Cylinders\": 4, \"Displacement\": 98.0, \"Horsepower\": 65.0, \"Miles_per_Gallon\": 34.4, \"Name\": \"ford escort 4w\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2045, \"Year\": \"1982-01-01\"}, {\"Acceleration\": 20.7, \"Cylinders\": 4, \"Displacement\": 98.0, \"Horsepower\": 65.0, \"Miles_per_Gallon\": 29.9, \"Name\": \"ford escort 2h\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2380, \"Year\": \"1982-01-01\"}, {\"Acceleration\": 14.2, \"Cylinders\": 4, \"Displacement\": 105.0, \"Horsepower\": 74.0, \"Miles_per_Gallon\": 33.0, \"Name\": \"volkswagen jetta\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 2190, \"Year\": \"1982-01-01\"}, {\"Acceleration\": 15.8, \"Cylinders\": 4, \"Displacement\": 100.0, \"Horsepower\": null, \"Miles_per_Gallon\": 34.5, \"Name\": \"renault 18i\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 2320, \"Year\": \"1982-01-01\"}, {\"Acceleration\": 14.4, \"Cylinders\": 4, \"Displacement\": 107.0, \"Horsepower\": 75.0, \"Miles_per_Gallon\": 33.7, \"Name\": \"honda prelude\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 2210, \"Year\": \"1982-01-01\"}, {\"Acceleration\": 16.8, \"Cylinders\": 4, \"Displacement\": 108.0, \"Horsepower\": 75.0, \"Miles_per_Gallon\": 32.4, \"Name\": \"toyota corolla\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 2350, \"Year\": \"1982-01-01\"}, {\"Acceleration\": 14.8, \"Cylinders\": 4, \"Displacement\": 119.0, \"Horsepower\": 100.0, \"Miles_per_Gallon\": 32.9, \"Name\": \"datsun 200sx\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 2615, \"Year\": \"1982-01-01\"}, {\"Acceleration\": 18.3, \"Cylinders\": 4, \"Displacement\": 120.0, \"Horsepower\": 74.0, \"Miles_per_Gallon\": 31.6, \"Name\": \"mazda 626\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 2635, \"Year\": \"1982-01-01\"}, {\"Acceleration\": 20.4, \"Cylinders\": 4, \"Displacement\": 141.0, \"Horsepower\": 80.0, \"Miles_per_Gallon\": 28.1, \"Name\": \"peugeot 505s turbo diesel\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 3230, \"Year\": \"1982-01-01\"}, {\"Acceleration\": 15.4, \"Cylinders\": 4, \"Displacement\": 121.0, \"Horsepower\": 110.0, \"Miles_per_Gallon\": null, \"Name\": \"saab 900s\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 2800, \"Year\": \"1982-01-01\"}, {\"Acceleration\": 19.6, \"Cylinders\": 6, \"Displacement\": 145.0, \"Horsepower\": 76.0, \"Miles_per_Gallon\": 30.7, \"Name\": \"volvo diesel\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 3160, \"Year\": \"1982-01-01\"}, {\"Acceleration\": 12.6, \"Cylinders\": 6, \"Displacement\": 168.0, \"Horsepower\": 116.0, \"Miles_per_Gallon\": 25.4, \"Name\": \"toyota cressida\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 2900, \"Year\": \"1982-01-01\"}, {\"Acceleration\": 13.8, \"Cylinders\": 6, \"Displacement\": 146.0, \"Horsepower\": 120.0, \"Miles_per_Gallon\": 24.2, \"Name\": \"datsun 810 maxima\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 2930, \"Year\": \"1982-01-01\"}, {\"Acceleration\": 15.8, \"Cylinders\": 6, \"Displacement\": 231.0, \"Horsepower\": 110.0, \"Miles_per_Gallon\": 22.4, \"Name\": \"buick century\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3415, \"Year\": \"1982-01-01\"}, {\"Acceleration\": 19.0, \"Cylinders\": 8, \"Displacement\": 350.0, \"Horsepower\": 105.0, \"Miles_per_Gallon\": 26.6, \"Name\": \"oldsmobile cutlass ls\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3725, \"Year\": \"1982-01-01\"}, {\"Acceleration\": 17.1, \"Cylinders\": 6, \"Displacement\": 200.0, \"Horsepower\": 88.0, \"Miles_per_Gallon\": 20.2, \"Name\": \"ford granada gl\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3060, \"Year\": \"1982-01-01\"}, {\"Acceleration\": 16.6, \"Cylinders\": 6, \"Displacement\": 225.0, \"Horsepower\": 85.0, \"Miles_per_Gallon\": 17.6, \"Name\": \"chrysler lebaron salon\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3465, \"Year\": \"1982-01-01\"}, {\"Acceleration\": 19.6, \"Cylinders\": 4, \"Displacement\": 112.0, \"Horsepower\": 88.0, \"Miles_per_Gallon\": 28.0, \"Name\": \"chevrolet cavalier\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2605, \"Year\": \"1982-01-01\"}, {\"Acceleration\": 18.6, \"Cylinders\": 4, \"Displacement\": 112.0, \"Horsepower\": 88.0, \"Miles_per_Gallon\": 27.0, \"Name\": \"chevrolet cavalier wagon\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2640, \"Year\": \"1982-01-01\"}, {\"Acceleration\": 18.0, \"Cylinders\": 4, \"Displacement\": 112.0, \"Horsepower\": 88.0, \"Miles_per_Gallon\": 34.0, \"Name\": \"chevrolet cavalier 2-door\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2395, \"Year\": \"1982-01-01\"}, {\"Acceleration\": 16.2, \"Cylinders\": 4, \"Displacement\": 112.0, \"Horsepower\": 85.0, \"Miles_per_Gallon\": 31.0, \"Name\": \"pontiac j2000 se hatchback\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2575, \"Year\": \"1982-01-01\"}, {\"Acceleration\": 16.0, \"Cylinders\": 4, \"Displacement\": 135.0, \"Horsepower\": 84.0, \"Miles_per_Gallon\": 29.0, \"Name\": \"dodge aries se\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2525, \"Year\": \"1982-01-01\"}, {\"Acceleration\": 18.0, \"Cylinders\": 4, \"Displacement\": 151.0, \"Horsepower\": 90.0, \"Miles_per_Gallon\": 27.0, \"Name\": \"pontiac phoenix\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2735, \"Year\": \"1982-01-01\"}, {\"Acceleration\": 16.4, \"Cylinders\": 4, \"Displacement\": 140.0, \"Horsepower\": 92.0, \"Miles_per_Gallon\": 24.0, \"Name\": \"ford fairmont futura\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2865, \"Year\": \"1982-01-01\"}, {\"Acceleration\": 20.5, \"Cylinders\": 4, \"Displacement\": 151.0, \"Horsepower\": null, \"Miles_per_Gallon\": 23.0, \"Name\": \"amc concord dl\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3035, \"Year\": \"1982-01-01\"}, {\"Acceleration\": 15.3, \"Cylinders\": 4, \"Displacement\": 105.0, \"Horsepower\": 74.0, \"Miles_per_Gallon\": 36.0, \"Name\": \"volkswagen rabbit l\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 1980, \"Year\": \"1982-01-01\"}, {\"Acceleration\": 18.2, \"Cylinders\": 4, \"Displacement\": 91.0, \"Horsepower\": 68.0, \"Miles_per_Gallon\": 37.0, \"Name\": \"mazda glc custom l\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 2025, \"Year\": \"1982-01-01\"}, {\"Acceleration\": 17.6, \"Cylinders\": 4, \"Displacement\": 91.0, \"Horsepower\": 68.0, \"Miles_per_Gallon\": 31.0, \"Name\": \"mazda glc custom\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 1970, \"Year\": \"1982-01-01\"}, {\"Acceleration\": 14.7, \"Cylinders\": 4, \"Displacement\": 105.0, \"Horsepower\": 63.0, \"Miles_per_Gallon\": 38.0, \"Name\": \"plymouth horizon miser\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2125, \"Year\": \"1982-01-01\"}, {\"Acceleration\": 17.3, \"Cylinders\": 4, \"Displacement\": 98.0, \"Horsepower\": 70.0, \"Miles_per_Gallon\": 36.0, \"Name\": \"mercury lynx l\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2125, \"Year\": \"1982-01-01\"}, {\"Acceleration\": 14.5, \"Cylinders\": 4, \"Displacement\": 120.0, \"Horsepower\": 88.0, \"Miles_per_Gallon\": 36.0, \"Name\": \"nissan stanza xe\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 2160, \"Year\": \"1982-01-01\"}, {\"Acceleration\": 14.5, \"Cylinders\": 4, \"Displacement\": 107.0, \"Horsepower\": 75.0, \"Miles_per_Gallon\": 36.0, \"Name\": \"honda Accelerationord\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 2205, \"Year\": \"1982-01-01\"}, {\"Acceleration\": 16.9, \"Cylinders\": 4, \"Displacement\": 108.0, \"Horsepower\": 70.0, \"Miles_per_Gallon\": 34.0, \"Name\": \"toyota corolla\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 2245, \"Year\": \"1982-01-01\"}, {\"Acceleration\": 15.0, \"Cylinders\": 4, \"Displacement\": 91.0, \"Horsepower\": 67.0, \"Miles_per_Gallon\": 38.0, \"Name\": \"honda civic\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 1965, \"Year\": \"1982-01-01\"}, {\"Acceleration\": 15.7, \"Cylinders\": 4, \"Displacement\": 91.0, \"Horsepower\": 67.0, \"Miles_per_Gallon\": 32.0, \"Name\": \"honda civic (auto)\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 1965, \"Year\": \"1982-01-01\"}, {\"Acceleration\": 16.2, \"Cylinders\": 4, \"Displacement\": 91.0, \"Horsepower\": 67.0, \"Miles_per_Gallon\": 38.0, \"Name\": \"datsun 310 gx\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 1995, \"Year\": \"1982-01-01\"}, {\"Acceleration\": 16.4, \"Cylinders\": 6, \"Displacement\": 181.0, \"Horsepower\": 110.0, \"Miles_per_Gallon\": 25.0, \"Name\": \"buick century limited\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2945, \"Year\": \"1982-01-01\"}, {\"Acceleration\": 17.0, \"Cylinders\": 6, \"Displacement\": 262.0, \"Horsepower\": 85.0, \"Miles_per_Gallon\": 38.0, \"Name\": \"oldsmobile cutlass ciera (diesel)\", \"Origin\": \"USA\", \"Weight_in_lbs\": 3015, \"Year\": \"1982-01-01\"}, {\"Acceleration\": 14.5, \"Cylinders\": 4, \"Displacement\": 156.0, \"Horsepower\": 92.0, \"Miles_per_Gallon\": 26.0, \"Name\": \"chrysler lebaron medallion\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2585, \"Year\": \"1982-01-01\"}, {\"Acceleration\": 14.7, \"Cylinders\": 6, \"Displacement\": 232.0, \"Horsepower\": 112.0, \"Miles_per_Gallon\": 22.0, \"Name\": \"ford granada l\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2835, \"Year\": \"1982-01-01\"}, {\"Acceleration\": 13.9, \"Cylinders\": 4, \"Displacement\": 144.0, \"Horsepower\": 96.0, \"Miles_per_Gallon\": 32.0, \"Name\": \"toyota celica gt\", \"Origin\": \"Japan\", \"Weight_in_lbs\": 2665, \"Year\": \"1982-01-01\"}, {\"Acceleration\": 13.0, \"Cylinders\": 4, \"Displacement\": 135.0, \"Horsepower\": 84.0, \"Miles_per_Gallon\": 36.0, \"Name\": \"dodge charger 2.2\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2370, \"Year\": \"1982-01-01\"}, {\"Acceleration\": 17.3, \"Cylinders\": 4, \"Displacement\": 151.0, \"Horsepower\": 90.0, \"Miles_per_Gallon\": 27.0, \"Name\": \"chevrolet camaro\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2950, \"Year\": \"1982-01-01\"}, {\"Acceleration\": 15.6, \"Cylinders\": 4, \"Displacement\": 140.0, \"Horsepower\": 86.0, \"Miles_per_Gallon\": 27.0, \"Name\": \"ford mustang gl\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2790, \"Year\": \"1982-01-01\"}, {\"Acceleration\": 24.6, \"Cylinders\": 4, \"Displacement\": 97.0, \"Horsepower\": 52.0, \"Miles_per_Gallon\": 44.0, \"Name\": \"vw pickup\", \"Origin\": \"Europe\", \"Weight_in_lbs\": 2130, \"Year\": \"1982-01-01\"}, {\"Acceleration\": 11.6, \"Cylinders\": 4, \"Displacement\": 135.0, \"Horsepower\": 84.0, \"Miles_per_Gallon\": 32.0, \"Name\": \"dodge rampage\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2295, \"Year\": \"1982-01-01\"}, {\"Acceleration\": 18.6, \"Cylinders\": 4, \"Displacement\": 120.0, \"Horsepower\": 79.0, \"Miles_per_Gallon\": 28.0, \"Name\": \"ford ranger\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2625, \"Year\": \"1982-01-01\"}, {\"Acceleration\": 19.4, \"Cylinders\": 4, \"Displacement\": 119.0, \"Horsepower\": 82.0, \"Miles_per_Gallon\": 31.0, \"Name\": \"chevy s-10\", \"Origin\": \"USA\", \"Weight_in_lbs\": 2720, \"Year\": \"1982-01-01\"}]}, \"mark\": \"point\", \"encoding\": {\"color\": {\"type\": \"nominal\", \"field\": \"Origin\"}, \"x\": {\"type\": \"quantitative\", \"field\": \"Horsepower\"}, \"y\": {\"type\": \"quantitative\", \"field\": \"Miles_per_Gallon\"}}, \"selection\": {\"selector002\": {\"type\": \"interval\", \"bind\": \"scales\", \"encodings\": [\"x\", \"y\"]}}, \"$schema\": \"https://vega.github.io/schema/vega-lite/v2.3.0.json\"};\n",
" var opt = {\"mode\": \"vega-lite\"};\n",
"\n",
" function showError(el, error){\n",
" el.innerHTML = ('<div class=\"error\">'\n",
" + '<p>JavaScript Error: ' + error.message + '</p>'\n",
" + \"<p>This usually means there's a typo in your chart specification. \"\n",
" + \"See the javascript console for the full traceback.</p>\"\n",
" + '</div>');\n",
" throw error;\n",
" }\n",
" const el = document.getElementById('vis');\n",
" vegaEmbed(\"#vis\", spec, opt)\n",
" .catch(error => showError(el, error));\n",
" </script>\n",
"</body>\n",
"</html>\n"
],
"text/plain": [
"Chart({\n",
" data: Acceleration Cylinders Displacement Horsepower Miles_per_Gallon \\\n",
" 0 12.0 8 307.0 130.0 18.0 \n",
" 1 11.5 8 350.0 165.0 15.0 \n",
" 2 11.0 8 318.0 150.0 18.0 \n",
" 3 12.0 8 304.0 150.0 16.0 \n",
" 4 10.5 8 302.0 140.0 17.0 \n",
" 5 10.0 8 429.0 198.0 15.0 \n",
" 6 9.0 8 454.0 220.0 14.0 \n",
" 7 8.5 8 440.0 215.0 14.0 \n",
" 8 10.0 8 455.0 225.0 14.0 \n",
" 9 8.5 8 390.0 190.0 15.0 \n",
" 10 17.5 4 133.0 115.0 NaN \n",
" 11 11.5 8 350.0 165.0 NaN \n",
" 12 11.0 8 351.0 153.0 NaN \n",
" 13 10.5 8 383.0 175.0 NaN \n",
" 14 11.0 8 360.0 175.0 NaN \n",
" 15 10.0 8 383.0 170.0 15.0 \n",
" 16 8.0 8 340.0 160.0 14.0 \n",
" 17 8.0 8 302.0 140.0 NaN \n",
" 18 9.5 8 400.0 150.0 15.0 \n",
" 19 10.0 8 455.0 225.0 14.0 \n",
" 20 15.0 4 113.0 95.0 24.0 \n",
" 21 15.5 6 198.0 95.0 22.0 \n",
" 22 15.5 6 199.0 97.0 18.0 \n",
" 23 16.0 6 200.0 85.0 21.0 \n",
" 24 14.5 4 97.0 88.0 27.0 \n",
" 25 20.5 4 97.0 46.0 26.0 \n",
" 26 17.5 4 110.0 87.0 25.0 \n",
" 27 14.5 4 107.0 90.0 24.0 \n",
" 28 17.5 4 104.0 95.0 25.0 \n",
" 29 12.5 4 121.0 113.0 26.0 \n",
" .. ... ... ... ... ... \n",
" 376 18.6 4 112.0 88.0 27.0 \n",
" 377 18.0 4 112.0 88.0 34.0 \n",
" 378 16.2 4 112.0 85.0 31.0 \n",
" 379 16.0 4 135.0 84.0 29.0 \n",
" 380 18.0 4 151.0 90.0 27.0 \n",
" 381 16.4 4 140.0 92.0 24.0 \n",
" 382 20.5 4 151.0 NaN 23.0 \n",
" 383 15.3 4 105.0 74.0 36.0 \n",
" 384 18.2 4 91.0 68.0 37.0 \n",
" 385 17.6 4 91.0 68.0 31.0 \n",
" 386 14.7 4 105.0 63.0 38.0 \n",
" 387 17.3 4 98.0 70.0 36.0 \n",
" 388 14.5 4 120.0 88.0 36.0 \n",
" 389 14.5 4 107.0 75.0 36.0 \n",
" 390 16.9 4 108.0 70.0 34.0 \n",
" 391 15.0 4 91.0 67.0 38.0 \n",
" 392 15.7 4 91.0 67.0 32.0 \n",
" 393 16.2 4 91.0 67.0 38.0 \n",
" 394 16.4 6 181.0 110.0 25.0 \n",
" 395 17.0 6 262.0 85.0 38.0 \n",
" 396 14.5 4 156.0 92.0 26.0 \n",
" 397 14.7 6 232.0 112.0 22.0 \n",
" 398 13.9 4 144.0 96.0 32.0 \n",
" 399 13.0 4 135.0 84.0 36.0 \n",
" 400 17.3 4 151.0 90.0 27.0 \n",
" 401 15.6 4 140.0 86.0 27.0 \n",
" 402 24.6 4 97.0 52.0 44.0 \n",
" 403 11.6 4 135.0 84.0 32.0 \n",
" 404 18.6 4 120.0 79.0 28.0 \n",
" 405 19.4 4 119.0 82.0 31.0 \n",
" \n",
" Name Origin Weight_in_lbs Year \n",
" 0 chevrolet chevelle malibu USA 3504 1970-01-01 \n",
" 1 buick skylark 320 USA 3693 1970-01-01 \n",
" 2 plymouth satellite USA 3436 1970-01-01 \n",
" 3 amc rebel sst USA 3433 1970-01-01 \n",
" 4 ford torino USA 3449 1970-01-01 \n",
" 5 ford galaxie 500 USA 4341 1970-01-01 \n",
" 6 chevrolet impala USA 4354 1970-01-01 \n",
" 7 plymouth fury iii USA 4312 1970-01-01 \n",
" 8 pontiac catalina USA 4425 1970-01-01 \n",
" 9 amc ambassador dpl USA 3850 1970-01-01 \n",
" 10 citroen ds-21 pallas Europe 3090 1970-01-01 \n",
" 11 chevrolet chevelle concours (sw) USA 4142 1970-01-01 \n",
" 12 ford torino (sw) USA 4034 1970-01-01 \n",
" 13 plymouth satellite (sw) USA 4166 1970-01-01 \n",
" 14 amc rebel sst (sw) USA 3850 1970-01-01 \n",
" 15 dodge challenger se USA 3563 1970-01-01 \n",
" 16 plymouth 'cuda 340 USA 3609 1970-01-01 \n",
" 17 ford mustang boss 302 USA 3353 1970-01-01 \n",
" 18 chevrolet monte carlo USA 3761 1970-01-01 \n",
" 19 buick estate wagon (sw) USA 3086 1970-01-01 \n",
" 20 toyota corona mark ii Japan 2372 1970-01-01 \n",
" 21 plymouth duster USA 2833 1970-01-01 \n",
" 22 amc hornet USA 2774 1970-01-01 \n",
" 23 ford maverick USA 2587 1970-01-01 \n",
" 24 datsun pl510 Japan 2130 1970-01-01 \n",
" 25 volkswagen 1131 deluxe sedan Europe 1835 1970-01-01 \n",
" 26 peugeot 504 Europe 2672 1970-01-01 \n",
" 27 audi 100 ls Europe 2430 1970-01-01 \n",
" 28 saab 99e Europe 2375 1970-01-01 \n",
" 29 bmw 2002 Europe 2234 1970-01-01 \n",
" .. ... ... ... ... \n",
" 376 chevrolet cavalier wagon USA 2640 1982-01-01 \n",
" 377 chevrolet cavalier 2-door USA 2395 1982-01-01 \n",
" 378 pontiac j2000 se hatchback USA 2575 1982-01-01 \n",
" 379 dodge aries se USA 2525 1982-01-01 \n",
" 380 pontiac phoenix USA 2735 1982-01-01 \n",
" 381 ford fairmont futura USA 2865 1982-01-01 \n",
" 382 amc concord dl USA 3035 1982-01-01 \n",
" 383 volkswagen rabbit l Europe 1980 1982-01-01 \n",
" 384 mazda glc custom l Japan 2025 1982-01-01 \n",
" 385 mazda glc custom Japan 1970 1982-01-01 \n",
" 386 plymouth horizon miser USA 2125 1982-01-01 \n",
" 387 mercury lynx l USA 2125 1982-01-01 \n",
" 388 nissan stanza xe Japan 2160 1982-01-01 \n",
" 389 honda Accelerationord Japan 2205 1982-01-01 \n",
" 390 toyota corolla Japan 2245 1982-01-01 \n",
" 391 honda civic Japan 1965 1982-01-01 \n",
" 392 honda civic (auto) Japan 1965 1982-01-01 \n",
" 393 datsun 310 gx Japan 1995 1982-01-01 \n",
" 394 buick century limited USA 2945 1982-01-01 \n",
" 395 oldsmobile cutlass ciera (diesel) USA 3015 1982-01-01 \n",
" 396 chrysler lebaron medallion USA 2585 1982-01-01 \n",
" 397 ford granada l USA 2835 1982-01-01 \n",
" 398 toyota celica gt Japan 2665 1982-01-01 \n",
" 399 dodge charger 2.2 USA 2370 1982-01-01 \n",
" 400 chevrolet camaro USA 2950 1982-01-01 \n",
" 401 ford mustang gl USA 2790 1982-01-01 \n",
" 402 vw pickup Europe 2130 1982-01-01 \n",
" 403 dodge rampage USA 2295 1982-01-01 \n",
" 404 ford ranger USA 2625 1982-01-01 \n",
" 405 chevy s-10 USA 2720 1982-01-01 \n",
" \n",
" [406 rows x 9 columns],\n",
" encoding: EncodingWithFacet({\n",
" color: Color({\n",
" shorthand: 'Origin'\n",
" }),\n",
" x: X({\n",
" shorthand: 'Horsepower'\n",
" }),\n",
" y: Y({\n",
" shorthand: 'Miles_per_Gallon'\n",
" })\n",
" }),\n",
" mark: 'point',\n",
" selection: SelectionMapping({\n",
" selector002: SelectionDef({\n",
" bind: 'scales',\n",
" encodings: ['x', 'y'],\n",
" type: 'interval'\n",
" })\n",
" })\n",
"})"
]
},
"metadata": {
"tags": []
},
"execution_count": 0
}
]
},
{
"metadata": {
"colab_type": "text",
"id": "zPAYx6C_tSdc"
},
"cell_type": "markdown",
"source": [
"For more ideas of plots you can create, see the [Altair Gallery](https://altair-viz.github.io/gallery/index.html)."
]
},
{
"metadata": {
"colab_type": "text",
"id": "JNVxSV2Es2rU"
},
"cell_type": "markdown",
"source": [
"\n",
"\n",
"---\n",
"\n"
]
},
{
"metadata": {
"colab_type": "text",
"id": "MYqcrcKLO4xe"
},
"cell_type": "markdown",
"source": [
"## Plotly"
]
},
{
"metadata": {
"colab_type": "text",
"id": "niTJd49yO4xf"
},
"cell_type": "markdown",
"source": [
"### Cell configuration\n",
"This method pre-populates the outputframe with the configuration that Plotly expects and must be executed for every cell which is displaying a Plotly graph.\n"
]
},
{
"metadata": {
"colab_type": "code",
"id": "WWbPMtDkO4xg",
"colab": {}
},
"cell_type": "code",
"source": [
"def enable_plotly_in_cell():\n",
" import IPython\n",
" from plotly.offline import init_notebook_mode\n",
" display(IPython.core.display.HTML('''\n",
" <script src=\"/static/components/requirejs/require.js\"></script>\n",
" '''))\n",
" init_notebook_mode(connected=False)"
],
"execution_count": 0,
"outputs": []
},
{
"metadata": {
"colab_type": "text",
"id": "ZFFeVI4yO4xi"
},
"cell_type": "markdown",
"source": [
"### Sample"
]
},
{
"metadata": {
"colab_type": "code",
"id": "hFCg8XrdO4xj",
"outputId": "06d42f56-924f-4dce-84fa-7cf7e18bf0e1",
"colab": {
"resources": {
"http://localhost:8080/static/components/requirejs/require.js": {
"data": "LyoqIHZpbTogZXQ6dHM9NDpzdz00OnN0cz00CiAqIEBsaWNlbnNlIFJlcXVpcmVKUyAyLjEuMjIgQ29weXJpZ2h0IChjKSAyMDEwLTIwMTUsIFRoZSBEb2pvIEZvdW5kYXRpb24gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICogQXZhaWxhYmxlIHZpYSB0aGUgTUlUIG9yIG5ldyBCU0QgbGljZW5zZS4KICogc2VlOiBodHRwOi8vZ2l0aHViLmNvbS9qcmJ1cmtlL3JlcXVpcmVqcyBmb3IgZGV0YWlscwogKi8KLy9Ob3QgdXNpbmcgc3RyaWN0OiB1bmV2ZW4gc3RyaWN0IHN1cHBvcnQgaW4gYnJvd3NlcnMsICMzOTIsIGFuZCBjYXVzZXMKLy9wcm9ibGVtcyB3aXRoIHJlcXVpcmVqcy5leGVjKCkvdHJhbnNwaWxlciBwbHVnaW5zIHRoYXQgbWF5IG5vdCBiZSBzdHJpY3QuCi8qanNsaW50IHJlZ2V4cDogdHJ1ZSwgbm9tZW46IHRydWUsIHNsb3BweTogdHJ1ZSAqLwovKmdsb2JhbCB3aW5kb3csIG5hdmlnYXRvciwgZG9jdW1lbnQsIGltcG9ydFNjcmlwdHMsIHNldFRpbWVvdXQsIG9wZXJhICovCgp2YXIgcmVxdWlyZWpzLCByZXF1aXJlLCBkZWZpbmU7CihmdW5jdGlvbiAoZ2xvYmFsKSB7CiAgICB2YXIgcmVxLCBzLCBoZWFkLCBiYXNlRWxlbWVudCwgZGF0YU1haW4sIHNyYywKICAgICAgICBpbnRlcmFjdGl2ZVNjcmlwdCwgY3VycmVudGx5QWRkaW5nU2NyaXB0LCBtYWluU2NyaXB0LCBzdWJQYXRoLAogICAgICAgIHZlcnNpb24gPSAnMi4xLjIyJywKICAgICAgICBjb21tZW50UmVnRXhwID0gLyhcL1wqKFtcc1xTXSo/KVwqXC98KFteOl18XilcL1wvKC4qKSQpL21nLAogICAgICAgIGNqc1JlcXVpcmVSZWdFeHAgPSAvW14uXVxzKnJlcXVpcmVccypcKFxzKlsiJ10oW14nIlxzXSspWyInXVxzKlwpL2csCiAgICAgICAganNTdWZmaXhSZWdFeHAgPSAvXC5qcyQvLAogICAgICAgIGN1cnJEaXJSZWdFeHAgPSAvXlwuXC8vLAogICAgICAgIG9wID0gT2JqZWN0LnByb3RvdHlwZSwKICAgICAgICBvc3RyaW5nID0gb3AudG9TdHJpbmcsCiAgICAgICAgaGFzT3duID0gb3AuaGFzT3duUHJvcGVydHksCiAgICAgICAgYXAgPSBBcnJheS5wcm90b3R5cGUsCiAgICAgICAgaXNCcm93c2VyID0gISEodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIG5hdmlnYXRvciAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93LmRvY3VtZW50KSwKICAgICAgICBpc1dlYldvcmtlciA9ICFpc0Jyb3dzZXIgJiYgdHlwZW9mIGltcG9ydFNjcmlwdHMgIT09ICd1bmRlZmluZWQnLAogICAgICAgIC8vUFMzIGluZGljYXRlcyBsb2FkZWQgYW5kIGNvbXBsZXRlLCBidXQgbmVlZCB0byB3YWl0IGZvciBjb21wbGV0ZQogICAgICAgIC8vc3BlY2lmaWNhbGx5LiBTZXF1ZW5jZSBpcyAnbG9hZGluZycsICdsb2FkZWQnLCBleGVjdXRpb24sCiAgICAgICAgLy8gdGhlbiAnY29tcGxldGUnLiBUaGUgVUEgY2hlY2sgaXMgdW5mb3J0dW5hdGUsIGJ1dCBub3Qgc3VyZSBob3cKICAgICAgICAvL3RvIGZlYXR1cmUgdGVzdCB3L28gY2F1c2luZyBwZXJmIGlzc3Vlcy4KICAgICAgICByZWFkeVJlZ0V4cCA9IGlzQnJvd3NlciAmJiBuYXZpZ2F0b3IucGxhdGZvcm0gPT09ICdQTEFZU1RBVElPTiAzJyA/CiAgICAgICAgICAgICAgICAgICAgICAvXmNvbXBsZXRlJC8gOiAvXihjb21wbGV0ZXxsb2FkZWQpJC8sCiAgICAgICAgZGVmQ29udGV4dE5hbWUgPSAnXycsCiAgICAgICAgLy9PaCB0aGUgdHJhZ2VkeSwgZGV0ZWN0aW5nIG9wZXJhLiBTZWUgdGhlIHVzYWdlIG9mIGlzT3BlcmEgZm9yIHJlYXNvbi4KICAgICAgICBpc09wZXJhID0gdHlwZW9mIG9wZXJhICE9PSAndW5kZWZpbmVkJyAmJiBvcGVyYS50b1N0cmluZygpID09PSAnW29iamVjdCBPcGVyYV0nLAogICAgICAgIGNvbnRleHRzID0ge30sCiAgICAgICAgY2ZnID0ge30sCiAgICAgICAgZ2xvYmFsRGVmUXVldWUgPSBbXSwKICAgICAgICB1c2VJbnRlcmFjdGl2ZSA9IGZhbHNlOwoKICAgIGZ1bmN0aW9uIGlzRnVuY3Rpb24oaXQpIHsKICAgICAgICByZXR1cm4gb3N0cmluZy5jYWxsKGl0KSA9PT0gJ1tvYmplY3QgRnVuY3Rpb25dJzsKICAgIH0KCiAgICBmdW5jdGlvbiBpc0FycmF5KGl0KSB7CiAgICAgICAgcmV0dXJuIG9zdHJpbmcuY2FsbChpdCkgPT09ICdbb2JqZWN0IEFycmF5XSc7CiAgICB9CgogICAgLyoqCiAgICAgKiBIZWxwZXIgZnVuY3Rpb24gZm9yIGl0ZXJhdGluZyBvdmVyIGFuIGFycmF5LiBJZiB0aGUgZnVuYyByZXR1cm5zCiAgICAgKiBhIHRydWUgdmFsdWUsIGl0IHdpbGwgYnJlYWsgb3V0IG9mIHRoZSBsb29wLgogICAgICovCiAgICBmdW5jdGlvbiBlYWNoKGFyeSwgZnVuYykgewogICAgICAgIGlmIChhcnkpIHsKICAgICAgICAgICAgdmFyIGk7CiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBhcnkubGVuZ3RoOyBpICs9IDEpIHsKICAgICAgICAgICAgICAgIGlmIChhcnlbaV0gJiYgZnVuYyhhcnlbaV0sIGksIGFyeSkpIHsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAvKioKICAgICAqIEhlbHBlciBmdW5jdGlvbiBmb3IgaXRlcmF0aW5nIG92ZXIgYW4gYXJyYXkgYmFja3dhcmRzLiBJZiB0aGUgZnVuYwogICAgICogcmV0dXJucyBhIHRydWUgdmFsdWUsIGl0IHdpbGwgYnJlYWsgb3V0IG9mIHRoZSBsb29wLgogICAgICovCiAgICBmdW5jdGlvbiBlYWNoUmV2ZXJzZShhcnksIGZ1bmMpIHsKICAgICAgICBpZiAoYXJ5KSB7CiAgICAgICAgICAgIHZhciBpOwogICAgICAgICAgICBmb3IgKGkgPSBhcnkubGVuZ3RoIC0gMTsgaSA+IC0xOyBpIC09IDEpIHsKICAgICAgICAgICAgICAgIGlmIChhcnlbaV0gJiYgZnVuYyhhcnlbaV0sIGksIGFyeSkpIHsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBoYXNQcm9wKG9iaiwgcHJvcCkgewogICAgICAgIHJldHVybiBoYXNPd24uY2FsbChvYmosIHByb3ApOwogICAgfQoKICAgIGZ1bmN0aW9uIGdldE93bihvYmosIHByb3ApIHsKICAgICAgICByZXR1cm4gaGFzUHJvcChvYmosIHByb3ApICYmIG9ialtwcm9wXTsKICAgIH0KCiAgICAvKioKICAgICAqIEN5Y2xlcyBvdmVyIHByb3BlcnRpZXMgaW4gYW4gb2JqZWN0IGFuZCBjYWxscyBhIGZ1bmN0aW9uIGZvciBlYWNoCiAgICAgKiBwcm9wZXJ0eSB2YWx1ZS4gSWYgdGhlIGZ1bmN0aW9uIHJldHVybnMgYSB0cnV0aHkgdmFsdWUsIHRoZW4gdGhlCiAgICAgKiBpdGVyYXRpb24gaXMgc3RvcHBlZC4KICAgICAqLwogICAgZnVuY3Rpb24gZWFjaFByb3Aob2JqLCBmdW5jKSB7CiAgICAgICAgdmFyIHByb3A7CiAgICAgICAgZm9yIChwcm9wIGluIG9iaikgewogICAgICAgICAgICBpZiAoaGFzUHJvcChvYmosIHByb3ApKSB7CiAgICAgICAgICAgICAgICBpZiAoZnVuYyhvYmpbcHJvcF0sIHByb3ApKSB7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgLyoqCiAgICAgKiBTaW1wbGUgZnVuY3Rpb24gdG8gbWl4IGluIHByb3BlcnRpZXMgZnJvbSBzb3VyY2UgaW50byB0YXJnZXQsCiAgICAgKiBidXQgb25seSBpZiB0YXJnZXQgZG9lcyBub3QgYWxyZWFkeSBoYXZlIGEgcHJvcGVydHkgb2YgdGhlIHNhbWUgbmFtZS4KICAgICAqLwogICAgZnVuY3Rpb24gbWl4aW4odGFyZ2V0LCBzb3VyY2UsIGZvcmNlLCBkZWVwU3RyaW5nTWl4aW4pIHsKICAgICAgICBpZiAoc291cmNlKSB7CiAgICAgICAgICAgIGVhY2hQcm9wKHNvdXJjZSwgZnVuY3Rpb24gKHZhbHVlLCBwcm9wKSB7CiAgICAgICAgICAgICAgICBpZiAoZm9yY2UgfHwgIWhhc1Byb3AodGFyZ2V0LCBwcm9wKSkgewogICAgICAgICAgICAgICAgICAgIGlmIChkZWVwU3RyaW5nTWl4aW4gJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZSAmJgogICAgICAgICAgICAgICAgICAgICAgICAhaXNBcnJheSh2YWx1ZSkgJiYgIWlzRnVuY3Rpb24odmFsdWUpICYmCiAgICAgICAgICAgICAgICAgICAgICAgICEodmFsdWUgaW5zdGFuY2VvZiBSZWdFeHApKSB7CgogICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRhcmdldFtwcm9wXSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0W3Byb3BdID0ge307CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgbWl4aW4odGFyZ2V0W3Byb3BdLCB2YWx1ZSwgZm9yY2UsIGRlZXBTdHJpbmdNaXhpbik7CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0W3Byb3BdID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRhcmdldDsKICAgIH0KCiAgICAvL1NpbWlsYXIgdG8gRnVuY3Rpb24ucHJvdG90eXBlLmJpbmQsIGJ1dCB0aGUgJ3RoaXMnIG9iamVjdCBpcyBzcGVjaWZpZWQKICAgIC8vZmlyc3QsIHNpbmNlIGl0IGlzIGVhc2llciB0byByZWFkL2ZpZ3VyZSBvdXQgd2hhdCAndGhpcycgd2lsbCBiZS4KICAgIGZ1bmN0aW9uIGJpbmQob2JqLCBmbikgewogICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHJldHVybiBmbi5hcHBseShvYmosIGFyZ3VtZW50cyk7CiAgICAgICAgfTsKICAgIH0KCiAgICBmdW5jdGlvbiBzY3JpcHRzKCkgewogICAgICAgIHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2NyaXB0Jyk7CiAgICB9CgogICAgZnVuY3Rpb24gZGVmYXVsdE9uRXJyb3IoZXJyKSB7CiAgICAgICAgdGhyb3cgZXJyOwogICAgfQoKICAgIC8vQWxsb3cgZ2V0dGluZyBhIGdsb2JhbCB0aGF0IGlzIGV4cHJlc3NlZCBpbgogICAgLy9kb3Qgbm90YXRpb24sIGxpa2UgJ2EuYi5jJy4KICAgIGZ1bmN0aW9uIGdldEdsb2JhbCh2YWx1ZSkgewogICAgICAgIGlmICghdmFsdWUpIHsKICAgICAgICAgICAgcmV0dXJuIHZhbHVlOwogICAgICAgIH0KICAgICAgICB2YXIgZyA9IGdsb2JhbDsKICAgICAgICBlYWNoKHZhbHVlLnNwbGl0KCcuJyksIGZ1bmN0aW9uIChwYXJ0KSB7CiAgICAgICAgICAgIGcgPSBnW3BhcnRdOwogICAgICAgIH0pOwogICAgICAgIHJldHVybiBnOwogICAgfQoKICAgIC8qKgogICAgICogQ29uc3RydWN0cyBhbiBlcnJvciB3aXRoIGEgcG9pbnRlciB0byBhbiBVUkwgd2l0aCBtb3JlIGluZm9ybWF0aW9uLgogICAgICogQHBhcmFtIHtTdHJpbmd9IGlkIHRoZSBlcnJvciBJRCB0aGF0IG1hcHMgdG8gYW4gSUQgb24gYSB3ZWIgcGFnZS4KICAgICAqIEBwYXJhbSB7U3RyaW5nfSBtZXNzYWdlIGh1bWFuIHJlYWRhYmxlIGVycm9yLgogICAgICogQHBhcmFtIHtFcnJvcn0gW2Vycl0gdGhlIG9yaWdpbmFsIGVycm9yLCBpZiB0aGVyZSBpcyBvbmUuCiAgICAgKgogICAgICogQHJldHVybnMge0Vycm9yfQogICAgICovCiAgICBmdW5jdGlvbiBtYWtlRXJyb3IoaWQsIG1zZywgZXJyLCByZXF1aXJlTW9kdWxlcykgewogICAgICAgIHZhciBlID0gbmV3IEVycm9yKG1zZyArICdcbmh0dHA6Ly9yZXF1aXJlanMub3JnL2RvY3MvZXJyb3JzLmh0bWwjJyArIGlkKTsKICAgICAgICBlLnJlcXVpcmVUeXBlID0gaWQ7CiAgICAgICAgZS5yZXF1aXJlTW9kdWxlcyA9IHJlcXVpcmVNb2R1bGVzOwogICAgICAgIGlmIChlcnIpIHsKICAgICAgICAgICAgZS5vcmlnaW5hbEVycm9yID0gZXJyOwogICAgICAgIH0KICAgICAgICByZXR1cm4gZTsKICAgIH0KCiAgICBpZiAodHlwZW9mIGRlZmluZSAhPT0gJ3VuZGVmaW5lZCcpIHsKICAgICAgICAvL0lmIGEgZGVmaW5lIGlzIGFscmVhZHkgaW4gcGxheSB2aWEgYW5vdGhlciBBTUQgbG9hZGVyLAogICAgICAgIC8vZG8gbm90IG92ZXJ3cml0ZS4KICAgICAgICByZXR1cm47CiAgICB9CgogICAgaWYgKHR5cGVvZiByZXF1aXJlanMgIT09ICd1bmRlZmluZWQnKSB7CiAgICAgICAgaWYgKGlzRnVuY3Rpb24ocmVxdWlyZWpzKSkgewogICAgICAgICAgICAvL0RvIG5vdCBvdmVyd3JpdGUgYW4gZXhpc3RpbmcgcmVxdWlyZWpzIGluc3RhbmNlLgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGNmZyA9IHJlcXVpcmVqczsKICAgICAgICByZXF1aXJlanMgPSB1bmRlZmluZWQ7CiAgICB9CgogICAgLy9BbGxvdyBmb3IgYSByZXF1aXJlIGNvbmZpZyBvYmplY3QKICAgIGlmICh0eXBlb2YgcmVxdWlyZSAhPT0gJ3VuZGVmaW5lZCcgJiYgIWlzRnVuY3Rpb24ocmVxdWlyZSkpIHsKICAgICAgICAvL2Fzc3VtZSBpdCBpcyBhIGNvbmZpZyBvYmplY3QuCiAgICAgICAgY2ZnID0gcmVxdWlyZTsKICAgICAgICByZXF1aXJlID0gdW5kZWZpbmVkOwogICAgfQoKICAgIGZ1bmN0aW9uIG5ld0NvbnRleHQoY29udGV4dE5hbWUpIHsKICAgICAgICB2YXIgaW5DaGVja0xvYWRlZCwgTW9kdWxlLCBjb250ZXh0LCBoYW5kbGVycywKICAgICAgICAgICAgY2hlY2tMb2FkZWRUaW1lb3V0SWQsCiAgICAgICAgICAgIGNvbmZpZyA9IHsKICAgICAgICAgICAgICAgIC8vRGVmYXVsdHMuIERvIG5vdCBzZXQgYSBkZWZhdWx0IGZvciBtYXAKICAgICAgICAgICAgICAgIC8vY29uZmlnIHRvIHNwZWVkIHVwIG5vcm1hbGl6ZSgpLCB3aGljaAogICAgICAgICAgICAgICAgLy93aWxsIHJ1biBmYXN0ZXIgaWYgdGhlcmUgaXMgbm8gZGVmYXVsdC4KICAgICAgICAgICAgICAgIHdhaXRTZWNvbmRzOiA3LAogICAgICAgICAgICAgICAgYmFzZVVybDogJy4vJywKICAgICAgICAgICAgICAgIHBhdGhzOiB7fSwKICAgICAgICAgICAgICAgIGJ1bmRsZXM6IHt9LAogICAgICAgICAgICAgICAgcGtnczoge30sCiAgICAgICAgICAgICAgICBzaGltOiB7fSwKICAgICAgICAgICAgICAgIGNvbmZpZzoge30KICAgICAgICAgICAgfSwKICAgICAgICAgICAgcmVnaXN0cnkgPSB7fSwKICAgICAgICAgICAgLy9yZWdpc3RyeSBvZiBqdXN0IGVuYWJsZWQgbW9kdWxlcywgdG8gc3BlZWQKICAgICAgICAgICAgLy9jeWNsZSBicmVha2luZyBjb2RlIHdoZW4gbG90cyBvZiBtb2R1bGVzCiAgICAgICAgICAgIC8vYXJlIHJlZ2lzdGVyZWQsIGJ1dCBub3QgYWN0aXZhdGVkLgogICAgICAgICAgICBlbmFibGVkUmVnaXN0cnkgPSB7fSwKICAgICAgICAgICAgdW5kZWZFdmVudHMgPSB7fSwKICAgICAgICAgICAgZGVmUXVldWUgPSBbXSwKICAgICAgICAgICAgZGVmaW5lZCA9IHt9LAogICAgICAgICAgICB1cmxGZXRjaGVkID0ge30sCiAgICAgICAgICAgIGJ1bmRsZXNNYXAgPSB7fSwKICAgICAgICAgICAgcmVxdWlyZUNvdW50ZXIgPSAxLAogICAgICAgICAgICB1bm5vcm1hbGl6ZWRDb3VudGVyID0gMTsKCiAgICAgICAgLyoqCiAgICAgICAgICogVHJpbXMgdGhlIC4gYW5kIC4uIGZyb20gYW4gYXJyYXkgb2YgcGF0aCBzZWdtZW50cy4KICAgICAgICAgKiBJdCB3aWxsIGtlZXAgYSBsZWFkaW5nIHBhdGggc2VnbWVudCBpZiBhIC4uIHdpbGwgYmVjb21lCiAgICAgICAgICogdGhlIGZpcnN0IHBhdGggc2VnbWVudCwgdG8gaGVscCB3aXRoIG1vZHVsZSBuYW1lIGxvb2t1cHMsCiAgICAgICAgICogd2hpY2ggYWN0IGxpa2UgcGF0aHMsIGJ1dCBjYW4gYmUgcmVtYXBwZWQuIEJ1dCB0aGUgZW5kIHJlc3VsdCwKICAgICAgICAgKiBhbGwgcGF0aHMgdGhhdCB1c2UgdGhpcyBmdW5jdGlvbiBzaG91bGQgbG9vayBub3JtYWxpemVkLgogICAgICAgICAqIE5PVEU6IHRoaXMgbWV0aG9kIE1PRElGSUVTIHRoZSBpbnB1dCBhcnJheS4KICAgICAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnkgdGhlIGFycmF5IG9mIHBhdGggc2VnbWVudHMuCiAgICAgICAgICovCiAgICAgICAgZnVuY3Rpb24gdHJpbURvdHMoYXJ5KSB7CiAgICAgICAgICAgIHZhciBpLCBwYXJ0OwogICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYXJ5Lmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICBwYXJ0ID0gYXJ5W2ldOwogICAgICAgICAgICAgICAgaWYgKHBhcnQgPT09ICcuJykgewogICAgICAgICAgICAgICAgICAgIGFyeS5zcGxpY2UoaSwgMSk7CiAgICAgICAgICAgICAgICAgICAgaSAtPSAxOwogICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwYXJ0ID09PSAnLi4nKSB7CiAgICAgICAgICAgICAgICAgICAgLy8gSWYgYXQgdGhlIHN0YXJ0LCBvciBwcmV2aW91cyB2YWx1ZSBpcyBzdGlsbCAuLiwKICAgICAgICAgICAgICAgICAgICAvLyBrZWVwIHRoZW0gc28gdGhhdCB3aGVuIGNvbnZlcnRlZCB0byBhIHBhdGggaXQgbWF5CiAgICAgICAgICAgICAgICAgICAgLy8gc3RpbGwgd29yayB3aGVuIGNvbnZlcnRlZCB0byBhIHBhdGgsIGV2ZW4gdGhvdWdoCiAgICAgICAgICAgICAgICAgICAgLy8gYXMgYW4gSUQgaXQgaXMgbGVzcyB0aGFuIGlkZWFsLiBJbiBsYXJnZXIgcG9pbnQKICAgICAgICAgICAgICAgICAgICAvLyByZWxlYXNlcywgbWF5IGJlIGJldHRlciB0byBqdXN0IGtpY2sgb3V0IGFuIGVycm9yLgogICAgICAgICAgICAgICAgICAgIGlmIChpID09PSAwIHx8IChpID09PSAxICYmIGFyeVsyXSA9PT0gJy4uJykgfHwgYXJ5W2kgLSAxXSA9PT0gJy4uJykgewogICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGkgPiAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGFyeS5zcGxpY2UoaSAtIDEsIDIpOwogICAgICAgICAgICAgICAgICAgICAgICBpIC09IDI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvKioKICAgICAgICAgKiBHaXZlbiBhIHJlbGF0aXZlIG1vZHVsZSBuYW1lLCBsaWtlIC4vc29tZXRoaW5nLCBub3JtYWxpemUgaXQgdG8KICAgICAgICAgKiBhIHJlYWwgbmFtZSB0aGF0IGNhbiBiZSBtYXBwZWQgdG8gYSBwYXRoLgogICAgICAgICAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lIHRoZSByZWxhdGl2ZSBuYW1lCiAgICAgICAgICogQHBhcmFtIHtTdHJpbmd9IGJhc2VOYW1lIGEgcmVhbCBuYW1lIHRoYXQgdGhlIG5hbWUgYXJnIGlzIHJlbGF0aXZlCiAgICAgICAgICogdG8uCiAgICAgICAgICogQHBhcmFtIHtCb29sZWFufSBhcHBseU1hcCBhcHBseSB0aGUgbWFwIGNvbmZpZyB0byB0aGUgdmFsdWUuIFNob3VsZAogICAgICAgICAqIG9ubHkgYmUgZG9uZSBpZiB0aGlzIG5vcm1hbGl6YXRpb24gaXMgZm9yIGEgZGVwZW5kZW5jeSBJRC4KICAgICAgICAgKiBAcmV0dXJucyB7U3RyaW5nfSBub3JtYWxpemVkIG5hbWUKICAgICAgICAgKi8KICAgICAgICBmdW5jdGlvbiBub3JtYWxpemUobmFtZSwgYmFzZU5hbWUsIGFwcGx5TWFwKSB7CiAgICAgICAgICAgIHZhciBwa2dNYWluLCBtYXBWYWx1ZSwgbmFtZVBhcnRzLCBpLCBqLCBuYW1lU2VnbWVudCwgbGFzdEluZGV4LAogICAgICAgICAgICAgICAgZm91bmRNYXAsIGZvdW5kSSwgZm91bmRTdGFyTWFwLCBzdGFySSwgbm9ybWFsaXplZEJhc2VQYXJ0cywKICAgICAgICAgICAgICAgIGJhc2VQYXJ0cyA9IChiYXNlTmFtZSAmJiBiYXNlTmFtZS5zcGxpdCgnLycpKSwKICAgICAgICAgICAgICAgIG1hcCA9IGNvbmZpZy5tYXAsCiAgICAgICAgICAgICAgICBzdGFyTWFwID0gbWFwICYmIG1hcFsnKiddOwoKICAgICAgICAgICAgLy9BZGp1c3QgYW55IHJlbGF0aXZlIHBhdGhzLgogICAgICAgICAgICBpZiAobmFtZSkgewogICAgICAgICAgICAgICAgbmFtZSA9IG5hbWUuc3BsaXQoJy8nKTsKICAgICAgICAgICAgICAgIGxhc3RJbmRleCA9IG5hbWUubGVuZ3RoIC0gMTsKCiAgICAgICAgICAgICAgICAvLyBJZiB3YW50aW5nIG5vZGUgSUQgY29tcGF0aWJpbGl0eSwgc3RyaXAgLmpzIGZyb20gZW5kCiAgICAgICAgICAgICAgICAvLyBvZiBJRHMuIEhhdmUgdG8gZG8gdGhpcyBoZXJlLCBhbmQgbm90IGluIG5hbWVUb1VybAogICAgICAgICAgICAgICAgLy8gYmVjYXVzZSBub2RlIGFsbG93cyBlaXRoZXIgLmpzIG9yIG5vbiAuanMgdG8gbWFwCiAgICAgICAgICAgICAgICAvLyB0byBzYW1lIGZpbGUuCiAgICAgICAgICAgICAgICBpZiAoY29uZmlnLm5vZGVJZENvbXBhdCAmJiBqc1N1ZmZpeFJlZ0V4cC50ZXN0KG5hbWVbbGFzdEluZGV4XSkpIHsKICAgICAgICAgICAgICAgICAgICBuYW1lW2xhc3RJbmRleF0gPSBuYW1lW2xhc3RJbmRleF0ucmVwbGFjZShqc1N1ZmZpeFJlZ0V4cCwgJycpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIC8vIFN0YXJ0cyB3aXRoIGEgJy4nIHNvIG5lZWQgdGhlIGJhc2VOYW1lCiAgICAgICAgICAgICAgICBpZiAobmFtZVswXS5jaGFyQXQoMCkgPT09ICcuJyAmJiBiYXNlUGFydHMpIHsKICAgICAgICAgICAgICAgICAgICAvL0NvbnZlcnQgYmFzZU5hbWUgdG8gYXJyYXksIGFuZCBsb3Agb2ZmIHRoZSBsYXN0IHBhcnQsCiAgICAgICAgICAgICAgICAgICAgLy9zbyB0aGF0IC4gbWF0Y2hlcyB0aGF0ICdkaXJlY3RvcnknIGFuZCBub3QgbmFtZSBvZiB0aGUgYmFzZU5hbWUncwogICAgICAgICAgICAgICAgICAgIC8vbW9kdWxlLiBGb3IgaW5zdGFuY2UsIGJhc2VOYW1lIG9mICdvbmUvdHdvL3RocmVlJywgbWFwcyB0bwogICAgICAgICAgICAgICAgICAgIC8vJ29uZS90d28vdGhyZWUuanMnLCBidXQgd2Ugd2FudCB0aGUgZGlyZWN0b3J5LCAnb25lL3R3bycgZm9yCiAgICAgICAgICAgICAgICAgICAgLy90aGlzIG5vcm1hbGl6YXRpb24uCiAgICAgICAgICAgICAgICAgICAgbm9ybWFsaXplZEJhc2VQYXJ0cyA9IGJhc2VQYXJ0cy5zbGljZSgwLCBiYXNlUGFydHMubGVuZ3RoIC0gMSk7CiAgICAgICAgICAgICAgICAgICAgbmFtZSA9IG5vcm1hbGl6ZWRCYXNlUGFydHMuY29uY2F0KG5hbWUpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIHRyaW1Eb3RzKG5hbWUpOwogICAgICAgICAgICAgICAgbmFtZSA9IG5hbWUuam9pbignLycpOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvL0FwcGx5IG1hcCBjb25maWcgaWYgYXZhaWxhYmxlLgogICAgICAgICAgICBpZiAoYXBwbHlNYXAgJiYgbWFwICYmIChiYXNlUGFydHMgfHwgc3Rhck1hcCkpIHsKICAgICAgICAgICAgICAgIG5hbWVQYXJ0cyA9IG5hbWUuc3BsaXQoJy8nKTsKCiAgICAgICAgICAgICAgICBvdXRlckxvb3A6IGZvciAoaSA9IG5hbWVQYXJ0cy5sZW5ndGg7IGkgPiAwOyBpIC09IDEpIHsKICAgICAgICAgICAgICAgICAgICBuYW1lU2VnbWVudCA9IG5hbWVQYXJ0cy5zbGljZSgwLCBpKS5qb2luKCcvJyk7CgogICAgICAgICAgICAgICAgICAgIGlmIChiYXNlUGFydHMpIHsKICAgICAgICAgICAgICAgICAgICAgICAgLy9GaW5kIHRoZSBsb25nZXN0IGJhc2VOYW1lIHNlZ21lbnQgbWF0Y2ggaW4gdGhlIGNvbmZpZy4KICAgICAgICAgICAgICAgICAgICAgICAgLy9TbywgZG8gam9pbnMgb24gdGhlIGJpZ2dlc3QgdG8gc21hbGxlc3QgbGVuZ3RocyBvZiBiYXNlUGFydHMuCiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaiA9IGJhc2VQYXJ0cy5sZW5ndGg7IGogPiAwOyBqIC09IDEpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcFZhbHVlID0gZ2V0T3duKG1hcCwgYmFzZVBhcnRzLnNsaWNlKDAsIGopLmpvaW4oJy8nKSk7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9iYXNlTmFtZSBzZWdtZW50IGhhcyBjb25maWcsIGZpbmQgaWYgaXQgaGFzIG9uZSBmb3IKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vdGhpcyBuYW1lLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1hcFZhbHVlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwVmFsdWUgPSBnZXRPd24obWFwVmFsdWUsIG5hbWVTZWdtZW50KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWFwVmFsdWUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9NYXRjaCwgdXBkYXRlIG5hbWUgdG8gdGhlIG5ldyB2YWx1ZS4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm91bmRNYXAgPSBtYXBWYWx1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm91bmRJID0gaTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsgb3V0ZXJMb29wOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgLy9DaGVjayBmb3IgYSBzdGFyIG1hcCBtYXRjaCwgYnV0IGp1c3QgaG9sZCBvbiB0byBpdCwKICAgICAgICAgICAgICAgICAgICAvL2lmIHRoZXJlIGlzIGEgc2hvcnRlciBzZWdtZW50IG1hdGNoIGxhdGVyIGluIGEgbWF0Y2hpbmcKICAgICAgICAgICAgICAgICAgICAvL2NvbmZpZywgdGhlbiBmYXZvciBvdmVyIHRoaXMgc3RhciBtYXAuCiAgICAgICAgICAgICAgICAgICAgaWYgKCFmb3VuZFN0YXJNYXAgJiYgc3Rhck1hcCAmJiBnZXRPd24oc3Rhck1hcCwgbmFtZVNlZ21lbnQpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGZvdW5kU3Rhck1hcCA9IGdldE93bihzdGFyTWFwLCBuYW1lU2VnbWVudCk7CiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJJID0gaTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKCFmb3VuZE1hcCAmJiBmb3VuZFN0YXJNYXApIHsKICAgICAgICAgICAgICAgICAgICBmb3VuZE1hcCA9IGZvdW5kU3Rhck1hcDsKICAgICAgICAgICAgICAgICAgICBmb3VuZEkgPSBzdGFySTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoZm91bmRNYXApIHsKICAgICAgICAgICAgICAgICAgICBuYW1lUGFydHMuc3BsaWNlKDAsIGZvdW5kSSwgZm91bmRNYXApOwogICAgICAgICAgICAgICAgICAgIG5hbWUgPSBuYW1lUGFydHMuam9pbignLycpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBJZiB0aGUgbmFtZSBwb2ludHMgdG8gYSBwYWNrYWdlJ3MgbmFtZSwgdXNlCiAgICAgICAgICAgIC8vIHRoZSBwYWNrYWdlIG1haW4gaW5zdGVhZC4KICAgICAgICAgICAgcGtnTWFpbiA9IGdldE93bihjb25maWcucGtncywgbmFtZSk7CgogICAgICAgICAgICByZXR1cm4gcGtnTWFpbiA/IHBrZ01haW4gOiBuYW1lOwogICAgICAgIH0KCiAgICAgICAgZnVuY3Rpb24gcmVtb3ZlU2NyaXB0KG5hbWUpIHsKICAgICAgICAgICAgaWYgKGlzQnJvd3NlcikgewogICAgICAgICAgICAgICAgZWFjaChzY3JpcHRzKCksIGZ1bmN0aW9uIChzY3JpcHROb2RlKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKHNjcmlwdE5vZGUuZ2V0QXR0cmlidXRlKCdkYXRhLXJlcXVpcmVtb2R1bGUnKSA9PT0gbmFtZSAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NyaXB0Tm9kZS5nZXRBdHRyaWJ1dGUoJ2RhdGEtcmVxdWlyZWNvbnRleHQnKSA9PT0gY29udGV4dC5jb250ZXh0TmFtZSkgewogICAgICAgICAgICAgICAgICAgICAgICBzY3JpcHROb2RlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoc2NyaXB0Tm9kZSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBmdW5jdGlvbiBoYXNQYXRoRmFsbGJhY2soaWQpIHsKICAgICAgICAgICAgdmFyIHBhdGhDb25maWcgPSBnZXRPd24oY29uZmlnLnBhdGhzLCBpZCk7CiAgICAgICAgICAgIGlmIChwYXRoQ29uZmlnICYmIGlzQXJyYXkocGF0aENvbmZpZykgJiYgcGF0aENvbmZpZy5sZW5ndGggPiAxKSB7CiAgICAgICAgICAgICAgICAvL1BvcCBvZmYgdGhlIGZpcnN0IGFycmF5IHZhbHVlLCBzaW5jZSBpdCBmYWlsZWQsIGFuZAogICAgICAgICAgICAgICAgLy9yZXRyeQogICAgICAgICAgICAgICAgcGF0aENvbmZpZy5zaGlmdCgpOwogICAgICAgICAgICAgICAgY29udGV4dC5yZXF1aXJlLnVuZGVmKGlkKTsKCiAgICAgICAgICAgICAgICAvL0N1c3RvbSByZXF1aXJlIHRoYXQgZG9lcyBub3QgZG8gbWFwIHRyYW5zbGF0aW9uLCBzaW5jZQogICAgICAgICAgICAgICAgLy9JRCBpcyAiYWJzb2x1dGUiLCBhbHJlYWR5IG1hcHBlZC9yZXNvbHZlZC4KICAgICAgICAgICAgICAgIGNvbnRleHQubWFrZVJlcXVpcmUobnVsbCwgewogICAgICAgICAgICAgICAgICAgIHNraXBNYXA6IHRydWUKICAgICAgICAgICAgICAgIH0pKFtpZF0pOwoKICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvL1R1cm5zIGEgcGx1Z2luIXJlc291cmNlIHRvIFtwbHVnaW4sIHJlc291cmNlXQogICAgICAgIC8vd2l0aCB0aGUgcGx1Z2luIGJlaW5nIHVuZGVmaW5lZCBpZiB0aGUgbmFtZQogICAgICAgIC8vZGlkIG5vdCBoYXZlIGEgcGx1Z2luIHByZWZpeC4KICAgICAgICBmdW5jdGlvbiBzcGxpdFByZWZpeChuYW1lKSB7CiAgICAgICAgICAgIHZhciBwcmVmaXgsCiAgICAgICAgICAgICAgICBpbmRleCA9IG5hbWUgPyBuYW1lLmluZGV4T2YoJyEnKSA6IC0xOwogICAgICAgICAgICBpZiAoaW5kZXggPiAtMSkgewogICAgICAgICAgICAgICAgcHJlZml4ID0gbmFtZS5zdWJzdHJpbmcoMCwgaW5kZXgpOwogICAgICAgICAgICAgICAgbmFtZSA9IG5hbWUuc3Vic3RyaW5nKGluZGV4ICsgMSwgbmFtZS5sZW5ndGgpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBbcHJlZml4LCBuYW1lXTsKICAgICAgICB9CgogICAgICAgIC8qKgogICAgICAgICAqIENyZWF0ZXMgYSBtb2R1bGUgbWFwcGluZyB0aGF0IGluY2x1ZGVzIHBsdWdpbiBwcmVmaXgsIG1vZHVsZQogICAgICAgICAqIG5hbWUsIGFuZCBwYXRoLiBJZiBwYXJlbnRNb2R1bGVNYXAgaXMgcHJvdmlkZWQgaXQgd2lsbAogICAgICAgICAqIGFsc28gbm9ybWFsaXplIHRoZSBuYW1lIHZpYSByZXF1aXJlLm5vcm1hbGl6ZSgpCiAgICAgICAgICoKICAgICAgICAgKiBAcGFyYW0ge1N0cmluZ30gbmFtZSB0aGUgbW9kdWxlIG5hbWUKICAgICAgICAgKiBAcGFyYW0ge1N0cmluZ30gW3BhcmVudE1vZHVsZU1hcF0gcGFyZW50IG1vZHVsZSBtYXAKICAgICAgICAgKiBmb3IgdGhlIG1vZHVsZSBuYW1lLCB1c2VkIHRvIHJlc29sdmUgcmVsYXRpdmUgbmFtZXMuCiAgICAgICAgICogQHBhcmFtIHtCb29sZWFufSBpc05vcm1hbGl6ZWQ6IGlzIHRoZSBJRCBhbHJlYWR5IG5vcm1hbGl6ZWQuCiAgICAgICAgICogVGhpcyBpcyB0cnVlIGlmIHRoaXMgY2FsbCBpcyBkb25lIGZvciBhIGRlZmluZSgpIG1vZHVsZSBJRC4KICAgICAgICAgKiBAcGFyYW0ge0Jvb2xlYW59IGFwcGx5TWFwOiBhcHBseSB0aGUgbWFwIGNvbmZpZyB0byB0aGUgSUQuCiAgICAgICAgICogU2hvdWxkIG9ubHkgYmUgdHJ1ZSBpZiB0aGlzIG1hcCBpcyBmb3IgYSBkZXBlbmRlbmN5LgogICAgICAgICAqCiAgICAgICAgICogQHJldHVybnMge09iamVjdH0KICAgICAgICAgKi8KICAgICAgICBmdW5jdGlvbiBtYWtlTW9kdWxlTWFwKG5hbWUsIHBhcmVudE1vZHVsZU1hcCwgaXNOb3JtYWxpemVkLCBhcHBseU1hcCkgewogICAgICAgICAgICB2YXIgdXJsLCBwbHVnaW5Nb2R1bGUsIHN1ZmZpeCwgbmFtZVBhcnRzLAogICAgICAgICAgICAgICAgcHJlZml4ID0gbnVsbCwKICAgICAgICAgICAgICAgIHBhcmVudE5hbWUgPSBwYXJlbnRNb2R1bGVNYXAgPyBwYXJlbnRNb2R1bGVNYXAubmFtZSA6IG51bGwsCiAgICAgICAgICAgICAgICBvcmlnaW5hbE5hbWUgPSBuYW1lLAogICAgICAgICAgICAgICAgaXNEZWZpbmUgPSB0cnVlLAogICAgICAgICAgICAgICAgbm9ybWFsaXplZE5hbWUgPSAnJzsKCiAgICAgICAgICAgIC8vSWYgbm8gbmFtZSwgdGhlbiBpdCBtZWFucyBpdCBpcyBhIHJlcXVpcmUgY2FsbCwgZ2VuZXJhdGUgYW4KICAgICAgICAgICAgLy9pbnRlcm5hbCBuYW1lLgogICAgICAgICAgICBpZiAoIW5hbWUpIHsKICAgICAgICAgICAgICAgIGlzRGVmaW5lID0gZmFsc2U7CiAgICAgICAgICAgICAgICBuYW1lID0gJ19AcicgKyAocmVxdWlyZUNvdW50ZXIgKz0gMSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIG5hbWVQYXJ0cyA9IHNwbGl0UHJlZml4KG5hbWUpOwogICAgICAgICAgICBwcmVmaXggPSBuYW1lUGFydHNbMF07CiAgICAgICAgICAgIG5hbWUgPSBuYW1lUGFydHNbMV07CgogICAgICAgICAgICBpZiAocHJlZml4KSB7CiAgICAgICAgICAgICAgICBwcmVmaXggPSBub3JtYWxpemUocHJlZml4LCBwYXJlbnROYW1lLCBhcHBseU1hcCk7CiAgICAgICAgICAgICAgICBwbHVnaW5Nb2R1bGUgPSBnZXRPd24oZGVmaW5lZCwgcHJlZml4KTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy9BY2NvdW50IGZvciByZWxhdGl2ZSBwYXRocyBpZiB0aGVyZSBpcyBhIGJhc2UgbmFtZS4KICAgICAgICAgICAgaWYgKG5hbWUpIHsKICAgICAgICAgICAgICAgIGlmIChwcmVmaXgpIHsKICAgICAgICAgICAgICAgICAgICBpZiAocGx1Z2luTW9kdWxlICYmIHBsdWdpbk1vZHVsZS5ub3JtYWxpemUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgLy9QbHVnaW4gaXMgbG9hZGVkLCB1c2UgaXRzIG5vcm1hbGl6ZSBtZXRob2QuCiAgICAgICAgICAgICAgICAgICAgICAgIG5vcm1hbGl6ZWROYW1lID0gcGx1Z2luTW9kdWxlLm5vcm1hbGl6ZShuYW1lLCBmdW5jdGlvbiAobmFtZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZShuYW1lLCBwYXJlbnROYW1lLCBhcHBseU1hcCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIG5lc3RlZCBwbHVnaW4gcmVmZXJlbmNlcywgdGhlbiBkbyBub3QgdHJ5IHRvCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5vcm1hbGl6ZSwgYXMgaXQgd2lsbCBub3Qgbm9ybWFsaXplIGNvcnJlY3RseS4gVGhpcwogICAgICAgICAgICAgICAgICAgICAgICAvLyBwbGFjZXMgYSByZXN0cmljdGlvbiBvbiByZXNvdXJjZUlkcywgYW5kIHRoZSBsb25nZXIKICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGVybSBzb2x1dGlvbiBpcyBub3QgdG8gbm9ybWFsaXplIHVudGlsIHBsdWdpbnMgYXJlCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxvYWRlZCBhbmQgYWxsIG5vcm1hbGl6YXRpb25zIHRvIGFsbG93IGZvciBhc3luYwogICAgICAgICAgICAgICAgICAgICAgICAvLyBsb2FkaW5nIG9mIGEgbG9hZGVyIHBsdWdpbi4gQnV0IGZvciBub3csIGZpeGVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAvLyBjb21tb24gdXNlcy4gRGV0YWlscyBpbiAjMTEzMQogICAgICAgICAgICAgICAgICAgICAgICBub3JtYWxpemVkTmFtZSA9IG5hbWUuaW5kZXhPZignIScpID09PSAtMSA/CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9ybWFsaXplKG5hbWUsIHBhcmVudE5hbWUsIGFwcGx5TWFwKSA6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIC8vQSByZWd1bGFyIG1vZHVsZS4KICAgICAgICAgICAgICAgICAgICBub3JtYWxpemVkTmFtZSA9IG5vcm1hbGl6ZShuYW1lLCBwYXJlbnROYW1lLCBhcHBseU1hcCk7CgogICAgICAgICAgICAgICAgICAgIC8vTm9ybWFsaXplZCBuYW1lIG1heSBiZSBhIHBsdWdpbiBJRCBkdWUgdG8gbWFwIGNvbmZpZwogICAgICAgICAgICAgICAgICAgIC8vYXBwbGljYXRpb24gaW4gbm9ybWFsaXplLiBUaGUgbWFwIGNvbmZpZyB2YWx1ZXMgbXVzdAogICAgICAgICAgICAgICAgICAgIC8vYWxyZWFkeSBiZSBub3JtYWxpemVkLCBzbyBkbyBub3QgbmVlZCB0byByZWRvIHRoYXQgcGFydC4KICAgICAgICAgICAgICAgICAgICBuYW1lUGFydHMgPSBzcGxpdFByZWZpeChub3JtYWxpemVkTmFtZSk7CiAgICAgICAgICAgICAgICAgICAgcHJlZml4ID0gbmFtZVBhcnRzWzBdOwogICAgICAgICAgICAgICAgICAgIG5vcm1hbGl6ZWROYW1lID0gbmFtZVBhcnRzWzFdOwogICAgICAgICAgICAgICAgICAgIGlzTm9ybWFsaXplZCA9IHRydWU7CgogICAgICAgICAgICAgICAgICAgIHVybCA9IGNvbnRleHQubmFtZVRvVXJsKG5vcm1hbGl6ZWROYW1lKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy9JZiB0aGUgaWQgaXMgYSBwbHVnaW4gaWQgdGhhdCBjYW5ub3QgYmUgZGV0ZXJtaW5lZCBpZiBpdCBuZWVkcwogICAgICAgICAgICAvL25vcm1hbGl6YXRpb24sIHN0YW1wIGl0IHdpdGggYSB1bmlxdWUgSUQgc28gdHdvIG1hdGNoaW5nIHJlbGF0aXZlCiAgICAgICAgICAgIC8vaWRzIHRoYXQgbWF5IGNvbmZsaWN0IGNhbiBiZSBzZXBhcmF0ZS4KICAgICAgICAgICAgc3VmZml4ID0gcHJlZml4ICYmICFwbHVnaW5Nb2R1bGUgJiYgIWlzTm9ybWFsaXplZCA/CiAgICAgICAgICAgICAgICAgICAgICdfdW5ub3JtYWxpemVkJyArICh1bm5vcm1hbGl6ZWRDb3VudGVyICs9IDEpIDoKICAgICAgICAgICAgICAgICAgICAgJyc7CgogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgcHJlZml4OiBwcmVmaXgsCiAgICAgICAgICAgICAgICBuYW1lOiBub3JtYWxpemVkTmFtZSwKICAgICAgICAgICAgICAgIHBhcmVudE1hcDogcGFyZW50TW9kdWxlTWFwLAogICAgICAgICAgICAgICAgdW5ub3JtYWxpemVkOiAhIXN1ZmZpeCwKICAgICAgICAgICAgICAgIHVybDogdXJsLAogICAgICAgICAgICAgICAgb3JpZ2luYWxOYW1lOiBvcmlnaW5hbE5hbWUsCiAgICAgICAgICAgICAgICBpc0RlZmluZTogaXNEZWZpbmUsCiAgICAgICAgICAgICAgICBpZDogKHByZWZpeCA/CiAgICAgICAgICAgICAgICAgICAgICAgIHByZWZpeCArICchJyArIG5vcm1hbGl6ZWROYW1lIDoKICAgICAgICAgICAgICAgICAgICAgICAgbm9ybWFsaXplZE5hbWUpICsgc3VmZml4CiAgICAgICAgICAgIH07CiAgICAgICAgfQoKICAgICAgICBmdW5jdGlvbiBnZXRNb2R1bGUoZGVwTWFwKSB7CiAgICAgICAgICAgIHZhciBpZCA9IGRlcE1hcC5pZCwKICAgICAgICAgICAgICAgIG1vZCA9IGdldE93bihyZWdpc3RyeSwgaWQpOwoKICAgICAgICAgICAgaWYgKCFtb2QpIHsKICAgICAgICAgICAgICAgIG1vZCA9IHJlZ2lzdHJ5W2lkXSA9IG5ldyBjb250ZXh0Lk1vZHVsZShkZXBNYXApOwogICAgICAgICAgICB9CgogICAgICAgICAgICByZXR1cm4gbW9kOwogICAgICAgIH0KCiAgICAgICAgZnVuY3Rpb24gb24oZGVwTWFwLCBuYW1lLCBmbikgewogICAgICAgICAgICB2YXIgaWQgPSBkZXBNYXAuaWQsCiAgICAgICAgICAgICAgICBtb2QgPSBnZXRPd24ocmVnaXN0cnksIGlkKTsKCiAgICAgICAgICAgIGlmIChoYXNQcm9wKGRlZmluZWQsIGlkKSAmJgogICAgICAgICAgICAgICAgICAgICghbW9kIHx8IG1vZC5kZWZpbmVFbWl0Q29tcGxldGUpKSB7CiAgICAgICAgICAgICAgICBpZiAobmFtZSA9PT0gJ2RlZmluZWQnKSB7CiAgICAgICAgICAgICAgICAgICAgZm4oZGVmaW5lZFtpZF0pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgbW9kID0gZ2V0TW9kdWxlKGRlcE1hcCk7CiAgICAgICAgICAgICAgICBpZiAobW9kLmVycm9yICYmIG5hbWUgPT09ICdlcnJvcicpIHsKICAgICAgICAgICAgICAgICAgICBmbihtb2QuZXJyb3IpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBtb2Qub24obmFtZSwgZm4pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBmdW5jdGlvbiBvbkVycm9yKGVyciwgZXJyYmFjaykgewogICAgICAgICAgICB2YXIgaWRzID0gZXJyLnJlcXVpcmVNb2R1bGVzLAogICAgICAgICAgICAgICAgbm90aWZpZWQgPSBmYWxzZTsKCiAgICAgICAgICAgIGlmIChlcnJiYWNrKSB7CiAgICAgICAgICAgICAgICBlcnJiYWNrKGVycik7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBlYWNoKGlkcywgZnVuY3Rpb24gKGlkKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIG1vZCA9IGdldE93bihyZWdpc3RyeSwgaWQpOwogICAgICAgICAgICAgICAgICAgIGlmIChtb2QpIHsKICAgICAgICAgICAgICAgICAgICAgICAgLy9TZXQgZXJyb3Igb24gbW9kdWxlLCBzbyBpdCBza2lwcyB0aW1lb3V0IGNoZWNrcy4KICAgICAgICAgICAgICAgICAgICAgICAgbW9kLmVycm9yID0gZXJyOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAobW9kLmV2ZW50cy5lcnJvcikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgbm90aWZpZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kLmVtaXQoJ2Vycm9yJywgZXJyKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgIGlmICghbm90aWZpZWQpIHsKICAgICAgICAgICAgICAgICAgICByZXEub25FcnJvcihlcnIpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvKioKICAgICAgICAgKiBJbnRlcm5hbCBtZXRob2QgdG8gdHJhbnNmZXIgZ2xvYmFsUXVldWUgaXRlbXMgdG8gdGhpcyBjb250ZXh0J3MKICAgICAgICAgKiBkZWZRdWV1ZS4KICAgICAgICAgKi8KICAgICAgICBmdW5jdGlvbiB0YWtlR2xvYmFsUXVldWUoKSB7CiAgICAgICAgICAgIC8vUHVzaCBhbGwgdGhlIGdsb2JhbERlZlF1ZXVlIGl0ZW1zIGludG8gdGhlIGNvbnRleHQncyBkZWZRdWV1ZQogICAgICAgICAgICBpZiAoZ2xvYmFsRGVmUXVldWUubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICBlYWNoKGdsb2JhbERlZlF1ZXVlLCBmdW5jdGlvbihxdWV1ZUl0ZW0pIHsKICAgICAgICAgICAgICAgICAgICB2YXIgaWQgPSBxdWV1ZUl0ZW1bMF07CiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBpZCA9PT0gJ3N0cmluZycpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC5kZWZRdWV1ZU1hcFtpZF0gPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBkZWZRdWV1ZS5wdXNoKHF1ZXVlSXRlbSk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIGdsb2JhbERlZlF1ZXVlID0gW107CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGhhbmRsZXJzID0gewogICAgICAgICAgICAncmVxdWlyZSc6IGZ1bmN0aW9uIChtb2QpIHsKICAgICAgICAgICAgICAgIGlmIChtb2QucmVxdWlyZSkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBtb2QucmVxdWlyZTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChtb2QucmVxdWlyZSA9IGNvbnRleHQubWFrZVJlcXVpcmUobW9kLm1hcCkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LAogICAgICAgICAgICAnZXhwb3J0cyc6IGZ1bmN0aW9uIChtb2QpIHsKICAgICAgICAgICAgICAgIG1vZC51c2luZ0V4cG9ydHMgPSB0cnVlOwogICAgICAgICAgICAgICAgaWYgKG1vZC5tYXAuaXNEZWZpbmUpIHsKICAgICAgICAgICAgICAgICAgICBpZiAobW9kLmV4cG9ydHMpIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChkZWZpbmVkW21vZC5tYXAuaWRdID0gbW9kLmV4cG9ydHMpOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAobW9kLmV4cG9ydHMgPSBkZWZpbmVkW21vZC5tYXAuaWRdID0ge30pOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgJ21vZHVsZSc6IGZ1bmN0aW9uIChtb2QpIHsKICAgICAgICAgICAgICAgIGlmIChtb2QubW9kdWxlKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1vZC5tb2R1bGU7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIHJldHVybiAobW9kLm1vZHVsZSA9IHsKICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IG1vZC5tYXAuaWQsCiAgICAgICAgICAgICAgICAgICAgICAgIHVyaTogbW9kLm1hcC51cmwsCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZzogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGdldE93bihjb25maWcuY29uZmlnLCBtb2QubWFwLmlkKSB8fCB7fTsKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgZXhwb3J0czogbW9kLmV4cG9ydHMgfHwgKG1vZC5leHBvcnRzID0ge30pCiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9OwoKICAgICAgICBmdW5jdGlvbiBjbGVhblJlZ2lzdHJ5KGlkKSB7CiAgICAgICAgICAgIC8vQ2xlYW4gdXAgbWFjaGluZXJ5IHVzZWQgZm9yIHdhaXRpbmcgbW9kdWxlcy4KICAgICAgICAgICAgZGVsZXRlIHJlZ2lzdHJ5W2lkXTsKICAgICAgICAgICAgZGVsZXRlIGVuYWJsZWRSZWdpc3RyeVtpZF07CiAgICAgICAgfQoKICAgICAgICBmdW5jdGlvbiBicmVha0N5Y2xlKG1vZCwgdHJhY2VkLCBwcm9jZXNzZWQpIHsKICAgICAgICAgICAgdmFyIGlkID0gbW9kLm1hcC5pZDsKCiAgICAgICAgICAgIGlmIChtb2QuZXJyb3IpIHsKICAgICAgICAgICAgICAgIG1vZC5lbWl0KCdlcnJvcicsIG1vZC5lcnJvcik7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICB0cmFjZWRbaWRdID0gdHJ1ZTsKICAgICAgICAgICAgICAgIGVhY2gobW9kLmRlcE1hcHMsIGZ1bmN0aW9uIChkZXBNYXAsIGkpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgZGVwSWQgPSBkZXBNYXAuaWQsCiAgICAgICAgICAgICAgICAgICAgICAgIGRlcCA9IGdldE93bihyZWdpc3RyeSwgZGVwSWQpOwoKICAgICAgICAgICAgICAgICAgICAvL09ubHkgZm9yY2UgdGhpbmdzIHRoYXQgaGF2ZSBub3QgY29tcGxldGVkCiAgICAgICAgICAgICAgICAgICAgLy9iZWluZyBkZWZpbmVkLCBzbyBzdGlsbCBpbiB0aGUgcmVnaXN0cnksCiAgICAgICAgICAgICAgICAgICAgLy9hbmQgb25seSBpZiBpdCBoYXMgbm90IGJlZW4gbWF0Y2hlZCB1cAogICAgICAgICAgICAgICAgICAgIC8vaW4gdGhlIG1vZHVsZSBhbHJlYWR5LgogICAgICAgICAgICAgICAgICAgIGlmIChkZXAgJiYgIW1vZC5kZXBNYXRjaGVkW2ldICYmICFwcm9jZXNzZWRbZGVwSWRdKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChnZXRPd24odHJhY2VkLCBkZXBJZCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZC5kZWZpbmVEZXAoaSwgZGVmaW5lZFtkZXBJZF0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kLmNoZWNrKCk7IC8vcGFzcyBmYWxzZT8KICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrQ3ljbGUoZGVwLCB0cmFjZWQsIHByb2Nlc3NlZCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIHByb2Nlc3NlZFtpZF0gPSB0cnVlOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBmdW5jdGlvbiBjaGVja0xvYWRlZCgpIHsKICAgICAgICAgICAgdmFyIGVyciwgdXNpbmdQYXRoRmFsbGJhY2ssCiAgICAgICAgICAgICAgICB3YWl0SW50ZXJ2YWwgPSBjb25maWcud2FpdFNlY29uZHMgKiAxMDAwLAogICAgICAgICAgICAgICAgLy9JdCBpcyBwb3NzaWJsZSB0byBkaXNhYmxlIHRoZSB3YWl0IGludGVydmFsIGJ5IHVzaW5nIHdhaXRTZWNvbmRzIG9mIDAuCiAgICAgICAgICAgICAgICBleHBpcmVkID0gd2FpdEludGVydmFsICYmIChjb250ZXh0LnN0YXJ0VGltZSArIHdhaXRJbnRlcnZhbCkgPCBuZXcgRGF0ZSgpLmdldFRpbWUoKSwKICAgICAgICAgICAgICAgIG5vTG9hZHMgPSBbXSwKICAgICAgICAgICAgICAgIHJlcUNhbGxzID0gW10sCiAgICAgICAgICAgICAgICBzdGlsbExvYWRpbmcgPSBmYWxzZSwKICAgICAgICAgICAgICAgIG5lZWRDeWNsZUNoZWNrID0gdHJ1ZTsKCiAgICAgICAgICAgIC8vRG8gbm90IGJvdGhlciBpZiB0aGlzIGNhbGwgd2FzIGEgcmVzdWx0IG9mIGEgY3ljbGUgYnJlYWsuCiAgICAgICAgICAgIGlmIChpbkNoZWNrTG9hZGVkKSB7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGluQ2hlY2tMb2FkZWQgPSB0cnVlOwoKICAgICAgICAgICAgLy9GaWd1cmUgb3V0IHRoZSBzdGF0ZSBvZiBhbGwgdGhlIG1vZHVsZXMuCiAgICAgICAgICAgIGVhY2hQcm9wKGVuYWJsZWRSZWdpc3RyeSwgZnVuY3Rpb24gKG1vZCkgewogICAgICAgICAgICAgICAgdmFyIG1hcCA9IG1vZC5tYXAsCiAgICAgICAgICAgICAgICAgICAgbW9kSWQgPSBtYXAuaWQ7CgogICAgICAgICAgICAgICAgLy9Ta2lwIHRoaW5ncyB0aGF0IGFyZSBub3QgZW5hYmxlZCBvciBpbiBlcnJvciBzdGF0ZS4KICAgICAgICAgICAgICAgIGlmICghbW9kLmVuYWJsZWQpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKCFtYXAuaXNEZWZpbmUpIHsKICAgICAgICAgICAgICAgICAgICByZXFDYWxscy5wdXNoKG1vZCk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKCFtb2QuZXJyb3IpIHsKICAgICAgICAgICAgICAgICAgICAvL0lmIHRoZSBtb2R1bGUgc2hvdWxkIGJlIGV4ZWN1dGVkLCBhbmQgaXQgaGFzIG5vdAogICAgICAgICAgICAgICAgICAgIC8vYmVlbiBpbml0ZWQgYW5kIHRpbWUgaXMgdXAsIHJlbWVtYmVyIGl0LgogICAgICAgICAgICAgICAgICAgIGlmICghbW9kLmluaXRlZCAmJiBleHBpcmVkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChoYXNQYXRoRmFsbGJhY2sobW9kSWQpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2luZ1BhdGhGYWxsYmFjayA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGlsbExvYWRpbmcgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9Mb2Fkcy5wdXNoKG1vZElkKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZVNjcmlwdChtb2RJZCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFtb2QuaW5pdGVkICYmIG1vZC5mZXRjaGVkICYmIG1hcC5pc0RlZmluZSkgewogICAgICAgICAgICAgICAgICAgICAgICBzdGlsbExvYWRpbmcgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoIW1hcC5wcmVmaXgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vTm8gcmVhc29uIHRvIGtlZXAgbG9va2luZyBmb3IgdW5maW5pc2hlZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9sb2FkaW5nLiBJZiB0aGUgb25seSBzdGlsbExvYWRpbmcgaXMgYQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9wbHVnaW4gcmVzb3VyY2UgdGhvdWdoLCBrZWVwIGdvaW5nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9iZWNhdXNlIGl0IG1heSBiZSB0aGF0IGEgcGx1Z2luIHJlc291cmNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2lzIHdhaXRpbmcgb24gYSBub24tcGx1Z2luIGN5Y2xlLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChuZWVkQ3ljbGVDaGVjayA9IGZhbHNlKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CgogICAgICAgICAgICBpZiAoZXhwaXJlZCAmJiBub0xvYWRzLmxlbmd0aCkgewogICAgICAgICAgICAgICAgLy9JZiB3YWl0IHRpbWUgZXhwaXJlZCwgdGhyb3cgZXJyb3Igb2YgdW5sb2FkZWQgbW9kdWxlcy4KICAgICAgICAgICAgICAgIGVyciA9IG1ha2VFcnJvcigndGltZW91dCcsICdMb2FkIHRpbWVvdXQgZm9yIG1vZHVsZXM6ICcgKyBub0xvYWRzLCBudWxsLCBub0xvYWRzKTsKICAgICAgICAgICAgICAgIGVyci5jb250ZXh0TmFtZSA9IGNvbnRleHQuY29udGV4dE5hbWU7CiAgICAgICAgICAgICAgICByZXR1cm4gb25FcnJvcihlcnIpOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvL05vdCBleHBpcmVkLCBjaGVjayBmb3IgYSBjeWNsZS4KICAgICAgICAgICAgaWYgKG5lZWRDeWNsZUNoZWNrKSB7CiAgICAgICAgICAgICAgICBlYWNoKHJlcUNhbGxzLCBmdW5jdGlvbiAobW9kKSB7CiAgICAgICAgICAgICAgICAgICAgYnJlYWtDeWNsZShtb2QsIHt9LCB7fSk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy9JZiBzdGlsbCB3YWl0aW5nIG9uIGxvYWRzLCBhbmQgdGhlIHdhaXRpbmcgbG9hZCBpcyBzb21ldGhpbmcKICAgICAgICAgICAgLy9vdGhlciB0aGFuIGEgcGx1Z2luIHJlc291cmNlLCBvciB0aGVyZSBhcmUgc3RpbGwgb3V0c3RhbmRpbmcKICAgICAgICAgICAgLy9zY3JpcHRzLCB0aGVuIGp1c3QgdHJ5IGJhY2sgbGF0ZXIuCiAgICAgICAgICAgIGlmICgoIWV4cGlyZWQgfHwgdXNpbmdQYXRoRmFsbGJhY2spICYmIHN0aWxsTG9hZGluZykgewogICAgICAgICAgICAgICAgLy9Tb21ldGhpbmcgaXMgc3RpbGwgd2FpdGluZyB0byBsb2FkLiBXYWl0IGZvciBpdCwgYnV0IG9ubHkKICAgICAgICAgICAgICAgIC8vaWYgYSB0aW1lb3V0IGlzIG5vdCBhbHJlYWR5IGluIGVmZmVjdC4KICAgICAgICAgICAgICAgIGlmICgoaXNCcm93c2VyIHx8IGlzV2ViV29ya2VyKSAmJiAhY2hlY2tMb2FkZWRUaW1lb3V0SWQpIHsKICAgICAgICAgICAgICAgICAgICBjaGVja0xvYWRlZFRpbWVvdXRJZCA9IHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgICBjaGVja0xvYWRlZFRpbWVvdXRJZCA9IDA7CiAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrTG9hZGVkKCk7CiAgICAgICAgICAgICAgICAgICAgfSwgNTApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBpbkNoZWNrTG9hZGVkID0gZmFsc2U7CiAgICAgICAgfQoKICAgICAgICBNb2R1bGUgPSBmdW5jdGlvbiAobWFwKSB7CiAgICAgICAgICAgIHRoaXMuZXZlbnRzID0gZ2V0T3duKHVuZGVmRXZlbnRzLCBtYXAuaWQpIHx8IHt9OwogICAgICAgICAgICB0aGlzLm1hcCA9IG1hcDsKICAgICAgICAgICAgdGhpcy5zaGltID0gZ2V0T3duKGNvbmZpZy5zaGltLCBtYXAuaWQpOwogICAgICAgICAgICB0aGlzLmRlcEV4cG9ydHMgPSBbXTsKICAgICAgICAgICAgdGhpcy5kZXBNYXBzID0gW107CiAgICAgICAgICAgIHRoaXMuZGVwTWF0Y2hlZCA9IFtdOwogICAgICAgICAgICB0aGlzLnBsdWdpbk1hcHMgPSB7fTsKICAgICAgICAgICAgdGhpcy5kZXBDb3VudCA9IDA7CgogICAgICAgICAgICAvKiB0aGlzLmV4cG9ydHMgdGhpcy5mYWN0b3J5CiAgICAgICAgICAgICAgIHRoaXMuZGVwTWFwcyA9IFtdLAogICAgICAgICAgICAgICB0aGlzLmVuYWJsZWQsIHRoaXMuZmV0Y2hlZAogICAgICAgICAgICAqLwogICAgICAgIH07CgogICAgICAgIE1vZHVsZS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgIGluaXQ6IGZ1bmN0aW9uIChkZXBNYXBzLCBmYWN0b3J5LCBlcnJiYWNrLCBvcHRpb25zKSB7CiAgICAgICAgICAgICAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTsKCiAgICAgICAgICAgICAgICAvL0RvIG5vdCBkbyBtb3JlIGluaXRzIGlmIGFscmVhZHkgZG9uZS4gQ2FuIGhhcHBlbiBpZiB0aGVyZQogICAgICAgICAgICAgICAgLy9hcmUgbXVsdGlwbGUgZGVmaW5lIGNhbGxzIGZvciB0aGUgc2FtZSBtb2R1bGUuIFRoYXQgaXMgbm90CiAgICAgICAgICAgICAgICAvL2Egbm9ybWFsLCBjb21tb24gY2FzZSwgYnV0IGl0IGlzIGFsc28gbm90IHVuZXhwZWN0ZWQuCiAgICAgICAgICAgICAgICBpZiAodGhpcy5pbml0ZWQpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgdGhpcy5mYWN0b3J5ID0gZmFjdG9yeTsKCiAgICAgICAgICAgICAgICBpZiAoZXJyYmFjaykgewogICAgICAgICAgICAgICAgICAgIC8vUmVnaXN0ZXIgZm9yIGVycm9ycyBvbiB0aGlzIG1vZHVsZS4KICAgICAgICAgICAgICAgICAgICB0aGlzLm9uKCdlcnJvcicsIGVycmJhY2spOwogICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmV2ZW50cy5lcnJvcikgewogICAgICAgICAgICAgICAgICAgIC8vSWYgbm8gZXJyYmFjayBhbHJlYWR5LCBidXQgdGhlcmUgYXJlIGVycm9yIGxpc3RlbmVycwogICAgICAgICAgICAgICAgICAgIC8vb24gdGhpcyBtb2R1bGUsIHNldCB1cCBhbiBlcnJiYWNrIHRvIHBhc3MgdG8gdGhlIGRlcHMuCiAgICAgICAgICAgICAgICAgICAgZXJyYmFjayA9IGJpbmQodGhpcywgZnVuY3Rpb24gKGVycikgewogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVtaXQoJ2Vycm9yJywgZXJyKTsKICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAvL0RvIGEgY29weSBvZiB0aGUgZGVwZW5kZW5jeSBhcnJheSwgc28gdGhhdAogICAgICAgICAgICAgICAgLy9zb3VyY2UgaW5wdXRzIGFyZSBub3QgbW9kaWZpZWQuIEZvciBleGFtcGxlCiAgICAgICAgICAgICAgICAvLyJzaGltIiBkZXBzIGFyZSBwYXNzZWQgaW4gaGVyZSBkaXJlY3RseSwgYW5kCiAgICAgICAgICAgICAgICAvL2RvaW5nIGEgZGlyZWN0IG1vZGlmaWNhdGlvbiBvZiB0aGUgZGVwTWFwcyBhcnJheQogICAgICAgICAgICAgICAgLy93b3VsZCBhZmZlY3QgdGhhdCBjb25maWcuCiAgICAgICAgICAgICAgICB0aGlzLmRlcE1hcHMgPSBkZXBNYXBzICYmIGRlcE1hcHMuc2xpY2UoMCk7CgogICAgICAgICAgICAgICAgdGhpcy5lcnJiYWNrID0gZXJyYmFjazsKCiAgICAgICAgICAgICAgICAvL0luZGljYXRlIHRoaXMgbW9kdWxlIGhhcyBiZSBpbml0aWFsaXplZAogICAgICAgICAgICAgICAgdGhpcy5pbml0ZWQgPSB0cnVlOwoKICAgICAgICAgICAgICAgIHRoaXMuaWdub3JlID0gb3B0aW9ucy5pZ25vcmU7CgogICAgICAgICAgICAgICAgLy9Db3VsZCBoYXZlIG9wdGlvbiB0byBpbml0IHRoaXMgbW9kdWxlIGluIGVuYWJsZWQgbW9kZSwKICAgICAgICAgICAgICAgIC8vb3IgY291bGQgaGF2ZSBiZWVuIHByZXZpb3VzbHkgbWFya2VkIGFzIGVuYWJsZWQuIEhvd2V2ZXIsCiAgICAgICAgICAgICAgICAvL3RoZSBkZXBlbmRlbmNpZXMgYXJlIG5vdCBrbm93biB1bnRpbCBpbml0IGlzIGNhbGxlZC4gU28KICAgICAgICAgICAgICAgIC8vaWYgZW5hYmxlZCBwcmV2aW91c2x5LCBub3cgdHJpZ2dlciBkZXBlbmRlbmNpZXMgYXMgZW5hYmxlZC4KICAgICAgICAgICAgICAgIGlmIChvcHRpb25zLmVuYWJsZWQgfHwgdGhpcy5lbmFibGVkKSB7CiAgICAgICAgICAgICAgICAgICAgLy9FbmFibGUgdGhpcyBtb2R1bGUgYW5kIGRlcGVuZGVuY2llcy4KICAgICAgICAgICAgICAgICAgICAvL1dpbGwgY2FsbCB0aGlzLmNoZWNrKCkKICAgICAgICAgICAgICAgICAgICB0aGlzLmVuYWJsZSgpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICB0aGlzLmNoZWNrKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sCgogICAgICAgICAgICBkZWZpbmVEZXA6IGZ1bmN0aW9uIChpLCBkZXBFeHBvcnRzKSB7CiAgICAgICAgICAgICAgICAvL0JlY2F1c2Ugb2YgY3ljbGVzLCBkZWZpbmVkIGNhbGxiYWNrIGZvciBhIGdpdmVuCiAgICAgICAgICAgICAgICAvL2V4cG9ydCBjYW4gYmUgY2FsbGVkIG1vcmUgdGhhbiBvbmNlLgogICAgICAgICAgICAgICAgaWYgKCF0aGlzLmRlcE1hdGNoZWRbaV0pIHsKICAgICAgICAgICAgICAgICAgICB0aGlzLmRlcE1hdGNoZWRbaV0gPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIHRoaXMuZGVwQ291bnQgLT0gMTsKICAgICAgICAgICAgICAgICAgICB0aGlzLmRlcEV4cG9ydHNbaV0gPSBkZXBFeHBvcnRzOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LAoKICAgICAgICAgICAgZmV0Y2g6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIGlmICh0aGlzLmZldGNoZWQpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB0aGlzLmZldGNoZWQgPSB0cnVlOwoKICAgICAgICAgICAgICAgIGNvbnRleHQuc3RhcnRUaW1lID0gKG5ldyBEYXRlKCkpLmdldFRpbWUoKTsKCiAgICAgICAgICAgICAgICB2YXIgbWFwID0gdGhpcy5tYXA7CgogICAgICAgICAgICAgICAgLy9JZiB0aGUgbWFuYWdlciBpcyBmb3IgYSBwbHVnaW4gbWFuYWdlZCByZXNvdXJjZSwKICAgICAgICAgICAgICAgIC8vYXNrIHRoZSBwbHVnaW4gdG8gbG9hZCBpdCBub3cuCiAgICAgICAgICAgICAgICBpZiAodGhpcy5zaGltKSB7CiAgICAgICAgICAgICAgICAgICAgY29udGV4dC5tYWtlUmVxdWlyZSh0aGlzLm1hcCwgewogICAgICAgICAgICAgICAgICAgICAgICBlbmFibGVCdWlsZENhbGxiYWNrOiB0cnVlCiAgICAgICAgICAgICAgICAgICAgfSkodGhpcy5zaGltLmRlcHMgfHwgW10sIGJpbmQodGhpcywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWFwLnByZWZpeCA/IHRoaXMuY2FsbFBsdWdpbigpIDogdGhpcy5sb2FkKCk7CiAgICAgICAgICAgICAgICAgICAgfSkpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAvL1JlZ3VsYXIgZGVwZW5kZW5jeS4KICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWFwLnByZWZpeCA/IHRoaXMuY2FsbFBsdWdpbigpIDogdGhpcy5sb2FkKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sCgogICAgICAgICAgICBsb2FkOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB2YXIgdXJsID0gdGhpcy5tYXAudXJsOwoKICAgICAgICAgICAgICAgIC8vUmVndWxhciBkZXBlbmRlbmN5LgogICAgICAgICAgICAgICAgaWYgKCF1cmxGZXRjaGVkW3VybF0pIHsKICAgICAgICAgICAgICAgICAgICB1cmxGZXRjaGVkW3VybF0gPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIGNvbnRleHQubG9hZCh0aGlzLm1hcC5pZCwgdXJsKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKCiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBDaGVja3MgaWYgdGhlIG1vZHVsZSBpcyByZWFkeSB0byBkZWZpbmUgaXRzZWxmLCBhbmQgaWYgc28sCiAgICAgICAgICAgICAqIGRlZmluZSBpdC4KICAgICAgICAgICAgICovCiAgICAgICAgICAgIGNoZWNrOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZW5hYmxlZCB8fCB0aGlzLmVuYWJsaW5nKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIHZhciBlcnIsIGNqc01vZHVsZSwKICAgICAgICAgICAgICAgICAgICBpZCA9IHRoaXMubWFwLmlkLAogICAgICAgICAgICAgICAgICAgIGRlcEV4cG9ydHMgPSB0aGlzLmRlcEV4cG9ydHMsCiAgICAgICAgICAgICAgICAgICAgZXhwb3J0cyA9IHRoaXMuZXhwb3J0cywKICAgICAgICAgICAgICAgICAgICBmYWN0b3J5ID0gdGhpcy5mYWN0b3J5OwoKICAgICAgICAgICAgICAgIGlmICghdGhpcy5pbml0ZWQpIHsKICAgICAgICAgICAgICAgICAgICAvLyBPbmx5IGZldGNoIGlmIG5vdCBhbHJlYWR5IGluIHRoZSBkZWZRdWV1ZS4KICAgICAgICAgICAgICAgICAgICBpZiAoIWhhc1Byb3AoY29udGV4dC5kZWZRdWV1ZU1hcCwgaWQpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmV0Y2goKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZXJyb3IpIHsKICAgICAgICAgICAgICAgICAgICB0aGlzLmVtaXQoJ2Vycm9yJywgdGhpcy5lcnJvcik7CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLmRlZmluaW5nKSB7CiAgICAgICAgICAgICAgICAgICAgLy9UaGUgZmFjdG9yeSBjb3VsZCB0cmlnZ2VyIGFub3RoZXIgcmVxdWlyZSBjYWxsCiAgICAgICAgICAgICAgICAgICAgLy90aGF0IHdvdWxkIHJlc3VsdCBpbiBjaGVja2luZyB0aGlzIG1vZHVsZSB0bwogICAgICAgICAgICAgICAgICAgIC8vZGVmaW5lIGl0c2VsZiBhZ2Fpbi4gSWYgYWxyZWFkeSBpbiB0aGUgcHJvY2VzcwogICAgICAgICAgICAgICAgICAgIC8vb2YgZG9pbmcgdGhhdCwgc2tpcCB0aGlzIHdvcmsuCiAgICAgICAgICAgICAgICAgICAgdGhpcy5kZWZpbmluZyA9IHRydWU7CgogICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmRlcENvdW50IDwgMSAmJiAhdGhpcy5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0Z1bmN0aW9uKGZhY3RvcnkpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cG9ydHMgPSBjb250ZXh0LmV4ZWNDYihpZCwgZmFjdG9yeSwgZGVwRXhwb3J0cywgZXhwb3J0cyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyID0gZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGYXZvciByZXR1cm4gdmFsdWUgb3ZlciBleHBvcnRzLiBJZiBub2RlL2NqcyBpbiBwbGF5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlbiB3aWxsIG5vdCBoYXZlIGEgcmV0dXJuIHZhbHVlIGFueXdheS4gRmF2b3IKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1vZHVsZS5leHBvcnRzIGFzc2lnbm1lbnQgb3ZlciBleHBvcnRzIG9iamVjdC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm1hcC5pc0RlZmluZSAmJiBleHBvcnRzID09PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjanNNb2R1bGUgPSB0aGlzLm1vZHVsZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2pzTW9kdWxlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cG9ydHMgPSBjanNNb2R1bGUuZXhwb3J0czsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMudXNpbmdFeHBvcnRzKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vZXhwb3J0cyBhbHJlYWR5IHNldCB0aGUgZGVmaW5lZCB2YWx1ZS4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwb3J0cyA9IHRoaXMuZXhwb3J0czsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVycikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZXJlIGlzIGFuIGVycm9yIGxpc3RlbmVyLCBmYXZvciBwYXNzaW5nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdG8gdGhhdCBpbnN0ZWFkIG9mIHRocm93aW5nIGFuIGVycm9yLiBIb3dldmVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9ubHkgZG8gaXQgZm9yIGRlZmluZSgpJ2QgIG1vZHVsZXMuIHJlcXVpcmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBlcnJiYWNrcyBzaG91bGQgbm90IGJlIGNhbGxlZCBmb3IgZmFpbHVyZXMgaW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGVpciBjYWxsYmFja3MgKCM2OTkpLiBIb3dldmVyIGlmIGEgZ2xvYmFsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gb25FcnJvciBpcyBzZXQsIHVzZSB0aGF0LgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgodGhpcy5ldmVudHMuZXJyb3IgJiYgdGhpcy5tYXAuaXNEZWZpbmUpIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcS5vbkVycm9yICE9PSBkZWZhdWx0T25FcnJvcikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnIucmVxdWlyZU1hcCA9IHRoaXMubWFwOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnIucmVxdWlyZU1vZHVsZXMgPSB0aGlzLm1hcC5pc0RlZmluZSA/IFt0aGlzLm1hcC5pZF0gOiBudWxsOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnIucmVxdWlyZVR5cGUgPSB0aGlzLm1hcC5pc0RlZmluZSA/ICdkZWZpbmUnIDogJ3JlcXVpcmUnOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb25FcnJvcigodGhpcy5lcnJvciA9IGVycikpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIExvZyB0aGUgZXJyb3IgZm9yIGRlYnVnZ2luZy4gSWYgcHJvbWlzZXMgY291bGQgYmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdXNlZCwgdGhpcyB3b3VsZCBiZSBkaWZmZXJlbnQsIGJ1dCBtYWtpbmcgZG8uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBEbyBub3Qgd2FudCB0byBjb21wbGV0ZWx5IGxvc2UgdGhlIGVycm9yLiBXaGlsZSB0aGlzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdpbGwgbWVzcyB1cCBwcm9jZXNzaW5nIGFuZCBsZWFkIHRvIHNpbWlsYXIgcmVzdWx0cwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhcyBidWcgMTQ0MCwgaXQgYXQgbGVhc3Qgc3VyZmFjZXMgdGhlIGVycm9yLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXEub25FcnJvcihlcnIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vSnVzdCBhIGxpdGVyYWwgdmFsdWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cG9ydHMgPSBmYWN0b3J5OwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmV4cG9ydHMgPSBleHBvcnRzOwoKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubWFwLmlzRGVmaW5lICYmICF0aGlzLmlnbm9yZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lZFtpZF0gPSBleHBvcnRzOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXEub25SZXNvdXJjZUxvYWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVzTG9hZE1hcHMgPSBbXTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlYWNoKHRoaXMuZGVwTWFwcywgZnVuY3Rpb24gKGRlcE1hcCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNMb2FkTWFwcy5wdXNoKGRlcE1hcC5ub3JtYWxpemVkTWFwIHx8IGRlcE1hcCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxLm9uUmVzb3VyY2VMb2FkKGNvbnRleHQsIHRoaXMubWFwLCByZXNMb2FkTWFwcyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIC8vQ2xlYW4gdXAKICAgICAgICAgICAgICAgICAgICAgICAgY2xlYW5SZWdpc3RyeShpZCk7CgogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRlZmluZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgLy9GaW5pc2hlZCB0aGUgZGVmaW5lIHN0YWdlLiBBbGxvdyBjYWxsaW5nIGNoZWNrIGFnYWluCiAgICAgICAgICAgICAgICAgICAgLy90byBhbGxvdyBkZWZpbmUgbm90aWZpY2F0aW9ucyBiZWxvdyBpbiB0aGUgY2FzZSBvZiBhCiAgICAgICAgICAgICAgICAgICAgLy9jeWNsZS4KICAgICAgICAgICAgICAgICAgICB0aGlzLmRlZmluaW5nID0gZmFsc2U7CgogICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmRlZmluZWQgJiYgIXRoaXMuZGVmaW5lRW1pdHRlZCkgewogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRlZmluZUVtaXR0ZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVtaXQoJ2RlZmluZWQnLCB0aGlzLmV4cG9ydHMpOwogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRlZmluZUVtaXRDb21wbGV0ZSA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKCiAgICAgICAgICAgIGNhbGxQbHVnaW46IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHZhciBtYXAgPSB0aGlzLm1hcCwKICAgICAgICAgICAgICAgICAgICBpZCA9IG1hcC5pZCwKICAgICAgICAgICAgICAgICAgICAvL01hcCBhbHJlYWR5IG5vcm1hbGl6ZWQgdGhlIHByZWZpeC4KICAgICAgICAgICAgICAgICAgICBwbHVnaW5NYXAgPSBtYWtlTW9kdWxlTWFwKG1hcC5wcmVmaXgpOwoKICAgICAgICAgICAgICAgIC8vTWFyayB0aGlzIGFzIGEgZGVwZW5kZW5jeSBmb3IgdGhpcyBwbHVnaW4sIHNvIGl0CiAgICAgICAgICAgICAgICAvL2NhbiBiZSB0cmFjZWQgZm9yIGN5Y2xlcy4KICAgICAgICAgICAgICAgIHRoaXMuZGVwTWFwcy5wdXNoKHBsdWdpbk1hcCk7CgogICAgICAgICAgICAgICAgb24ocGx1Z2luTWFwLCAnZGVmaW5lZCcsIGJpbmQodGhpcywgZnVuY3Rpb24gKHBsdWdpbikgewogICAgICAgICAgICAgICAgICAgIHZhciBsb2FkLCBub3JtYWxpemVkTWFwLCBub3JtYWxpemVkTW9kLAogICAgICAgICAgICAgICAgICAgICAgICBidW5kbGVJZCA9IGdldE93bihidW5kbGVzTWFwLCB0aGlzLm1hcC5pZCksCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSB0aGlzLm1hcC5uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnROYW1lID0gdGhpcy5tYXAucGFyZW50TWFwID8gdGhpcy5tYXAucGFyZW50TWFwLm5hbWUgOiBudWxsLAogICAgICAgICAgICAgICAgICAgICAgICBsb2NhbFJlcXVpcmUgPSBjb250ZXh0Lm1ha2VSZXF1aXJlKG1hcC5wYXJlbnRNYXAsIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuYWJsZUJ1aWxkQ2FsbGJhY2s6IHRydWUKICAgICAgICAgICAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAgICAgICAgIC8vSWYgY3VycmVudCBtYXAgaXMgbm90IG5vcm1hbGl6ZWQsIHdhaXQgZm9yIHRoYXQKICAgICAgICAgICAgICAgICAgICAvL25vcm1hbGl6ZWQgbmFtZSB0byBsb2FkIGluc3RlYWQgb2YgY29udGludWluZy4KICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5tYXAudW5ub3JtYWxpemVkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vTm9ybWFsaXplIHRoZSBJRCBpZiB0aGUgcGx1Z2luIGFsbG93cyBpdC4KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBsdWdpbi5ub3JtYWxpemUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBwbHVnaW4ubm9ybWFsaXplKG5hbWUsIGZ1bmN0aW9uIChuYW1lKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZShuYW1lLCBwYXJlbnROYW1lLCB0cnVlKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pIHx8ICcnOwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAvL3ByZWZpeCBhbmQgbmFtZSBzaG91bGQgYWxyZWFkeSBiZSBub3JtYWxpemVkLCBubyBuZWVkCiAgICAgICAgICAgICAgICAgICAgICAgIC8vZm9yIGFwcGx5aW5nIG1hcCBjb25maWcgYWdhaW4gZWl0aGVyLgogICAgICAgICAgICAgICAgICAgICAgICBub3JtYWxpemVkTWFwID0gbWFrZU1vZHVsZU1hcChtYXAucHJlZml4ICsgJyEnICsgbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXAucGFyZW50TWFwKTsKICAgICAgICAgICAgICAgICAgICAgICAgb24obm9ybWFsaXplZE1hcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZWZpbmVkJywgYmluZCh0aGlzLCBmdW5jdGlvbiAodmFsdWUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1hcC5ub3JtYWxpemVkTWFwID0gbm9ybWFsaXplZE1hcDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmluaXQoW10sIGZ1bmN0aW9uICgpIHsgcmV0dXJuIHZhbHVlOyB9LCBudWxsLCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuYWJsZWQ6IHRydWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlnbm9yZTogdHJ1ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkpOwoKICAgICAgICAgICAgICAgICAgICAgICAgbm9ybWFsaXplZE1vZCA9IGdldE93bihyZWdpc3RyeSwgbm9ybWFsaXplZE1hcC5pZCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChub3JtYWxpemVkTW9kKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL01hcmsgdGhpcyBhcyBhIGRlcGVuZGVuY3kgZm9yIHRoaXMgcGx1Z2luLCBzbyBpdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9jYW4gYmUgdHJhY2VkIGZvciBjeWNsZXMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRlcE1hcHMucHVzaChub3JtYWxpemVkTWFwKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5ldmVudHMuZXJyb3IpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3JtYWxpemVkTW9kLm9uKCdlcnJvcicsIGJpbmQodGhpcywgZnVuY3Rpb24gKGVycikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVtaXQoJ2Vycm9yJywgZXJyKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3JtYWxpemVkTW9kLmVuYWJsZSgpOwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAvL0lmIGEgcGF0aHMgY29uZmlnLCB0aGVuIGp1c3QgbG9hZCB0aGF0IGZpbGUgaW5zdGVhZCB0bwogICAgICAgICAgICAgICAgICAgIC8vcmVzb2x2ZSB0aGUgcGx1Z2luLCBhcyBpdCBpcyBidWlsdCBpbnRvIHRoYXQgcGF0aHMgbGF5ZXIuCiAgICAgICAgICAgICAgICAgICAgaWYgKGJ1bmRsZUlkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWFwLnVybCA9IGNvbnRleHQubmFtZVRvVXJsKGJ1bmRsZUlkKTsKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIGxvYWQgPSBiaW5kKHRoaXMsIGZ1bmN0aW9uICh2YWx1ZSkgewogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmluaXQoW10sIGZ1bmN0aW9uICgpIHsgcmV0dXJuIHZhbHVlOyB9LCBudWxsLCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmFibGVkOiB0cnVlCiAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgICAgICBsb2FkLmVycm9yID0gYmluZCh0aGlzLCBmdW5jdGlvbiAoZXJyKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdGVkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lcnJvciA9IGVycjsKICAgICAgICAgICAgICAgICAgICAgICAgZXJyLnJlcXVpcmVNb2R1bGVzID0gW2lkXTsKCiAgICAgICAgICAgICAgICAgICAgICAgIC8vUmVtb3ZlIHRlbXAgdW5ub3JtYWxpemVkIG1vZHVsZXMgZm9yIHRoaXMgbW9kdWxlLAogICAgICAgICAgICAgICAgICAgICAgICAvL3NpbmNlIHRoZXkgd2lsbCBuZXZlciBiZSByZXNvbHZlZCBvdGhlcndpc2Ugbm93LgogICAgICAgICAgICAgICAgICAgICAgICBlYWNoUHJvcChyZWdpc3RyeSwgZnVuY3Rpb24gKG1vZCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1vZC5tYXAuaWQuaW5kZXhPZihpZCArICdfdW5ub3JtYWxpemVkJykgPT09IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGVhblJlZ2lzdHJ5KG1vZC5tYXAuaWQpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICAgICAgICAgIG9uRXJyb3IoZXJyKTsKICAgICAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICAgICAgLy9BbGxvdyBwbHVnaW5zIHRvIGxvYWQgb3RoZXIgY29kZSB3aXRob3V0IGhhdmluZyB0byBrbm93IHRoZQogICAgICAgICAgICAgICAgICAgIC8vY29udGV4dCBvciBob3cgdG8gJ2NvbXBsZXRlJyB0aGUgbG9hZC4KICAgICAgICAgICAgICAgICAgICBsb2FkLmZyb21UZXh0ID0gYmluZCh0aGlzLCBmdW5jdGlvbiAodGV4dCwgdGV4dEFsdCkgewogICAgICAgICAgICAgICAgICAgICAgICAvKmpzbGludCBldmlsOiB0cnVlICovCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBtb2R1bGVOYW1lID0gbWFwLm5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2R1bGVNYXAgPSBtYWtlTW9kdWxlTWFwKG1vZHVsZU5hbWUpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzSW50ZXJhY3RpdmUgPSB1c2VJbnRlcmFjdGl2ZTsKCiAgICAgICAgICAgICAgICAgICAgICAgIC8vQXMgb2YgMi4xLjAsIHN1cHBvcnQganVzdCBwYXNzaW5nIHRoZSB0ZXh0LCB0byByZWluZm9yY2UKICAgICAgICAgICAgICAgICAgICAgICAgLy9mcm9tVGV4dCBvbmx5IGJlaW5nIGNhbGxlZCBvbmNlIHBlciByZXNvdXJjZS4gU3RpbGwKICAgICAgICAgICAgICAgICAgICAgICAgLy9zdXBwb3J0IG9sZCBzdHlsZSBvZiBwYXNzaW5nIG1vZHVsZU5hbWUgYnV0IGRpc2NhcmQKICAgICAgICAgICAgICAgICAgICAgICAgLy90aGF0IG1vZHVsZU5hbWUgaW4gZmF2b3Igb2YgdGhlIGludGVybmFsIHJlZi4KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRleHRBbHQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQgPSB0ZXh0QWx0OwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAvL1R1cm4gb2ZmIGludGVyYWN0aXZlIHNjcmlwdCBtYXRjaGluZyBmb3IgSUUgZm9yIGFueSBkZWZpbmUKICAgICAgICAgICAgICAgICAgICAgICAgLy9jYWxscyBpbiB0aGUgdGV4dCwgdGhlbiB0dXJuIGl0IGJhY2sgb24gYXQgdGhlIGVuZC4KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGhhc0ludGVyYWN0aXZlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VJbnRlcmFjdGl2ZSA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAvL1ByaW1lIHRoZSBzeXN0ZW0gYnkgY3JlYXRpbmcgYSBtb2R1bGUgaW5zdGFuY2UgZm9yCiAgICAgICAgICAgICAgICAgICAgICAgIC8vaXQuCiAgICAgICAgICAgICAgICAgICAgICAgIGdldE1vZHVsZShtb2R1bGVNYXApOwoKICAgICAgICAgICAgICAgICAgICAgICAgLy9UcmFuc2ZlciBhbnkgY29uZmlnIHRvIHRoaXMgb3RoZXIgbW9kdWxlLgogICAgICAgICAgICAgICAgICAgICAgICBpZiAoaGFzUHJvcChjb25maWcuY29uZmlnLCBpZCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZy5jb25maWdbbW9kdWxlTmFtZV0gPSBjb25maWcuY29uZmlnW2lkXTsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcS5leGVjKHRleHQpOwogICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb25FcnJvcihtYWtlRXJyb3IoJ2Zyb210ZXh0ZXZhbCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmcm9tVGV4dCBldmFsIGZvciAnICsgaWQgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgZmFpbGVkOiAnICsgZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lkXSkpOwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBpZiAoaGFzSW50ZXJhY3RpdmUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZUludGVyYWN0aXZlID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgLy9NYXJrIHRoaXMgYXMgYSBkZXBlbmRlbmN5IGZvciB0aGUgcGx1Z2luCiAgICAgICAgICAgICAgICAgICAgICAgIC8vcmVzb3VyY2UKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kZXBNYXBzLnB1c2gobW9kdWxlTWFwKTsKCiAgICAgICAgICAgICAgICAgICAgICAgIC8vU3VwcG9ydCBhbm9ueW1vdXMgbW9kdWxlcy4KICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC5jb21wbGV0ZUxvYWQobW9kdWxlTmFtZSk7CgogICAgICAgICAgICAgICAgICAgICAgICAvL0JpbmQgdGhlIHZhbHVlIG9mIHRoYXQgbW9kdWxlIHRvIHRoZSB2YWx1ZSBmb3IgdGhpcwogICAgICAgICAgICAgICAgICAgICAgICAvL3Jlc291cmNlIElELgogICAgICAgICAgICAgICAgICAgICAgICBsb2NhbFJlcXVpcmUoW21vZHVsZU5hbWVdLCBsb2FkKTsKICAgICAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICAgICAgLy9Vc2UgcGFyZW50TmFtZSBoZXJlIHNpbmNlIHRoZSBwbHVnaW4ncyBuYW1lIGlzIG5vdCByZWxpYWJsZSwKICAgICAgICAgICAgICAgICAgICAvL2NvdWxkIGJlIHNvbWUgd2VpcmQgc3RyaW5nIHdpdGggbm8gcGF0aCB0aGF0IGFjdHVhbGx5IHdhbnRzIHRvCiAgICAgICAgICAgICAgICAgICAgLy9yZWZlcmVuY2UgdGhlIHBhcmVudE5hbWUncyBwYXRoLgogICAgICAgICAgICAgICAgICAgIHBsdWdpbi5sb2FkKG1hcC5uYW1lLCBsb2NhbFJlcXVpcmUsIGxvYWQsIGNvbmZpZyk7CiAgICAgICAgICAgICAgICB9KSk7CgogICAgICAgICAgICAgICAgY29udGV4dC5lbmFibGUocGx1Z2luTWFwLCB0aGlzKTsKICAgICAgICAgICAgICAgIHRoaXMucGx1Z2luTWFwc1twbHVnaW5NYXAuaWRdID0gcGx1Z2luTWFwOwogICAgICAgICAgICB9LAoKICAgICAgICAgICAgZW5hYmxlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICBlbmFibGVkUmVnaXN0cnlbdGhpcy5tYXAuaWRdID0gdGhpczsKICAgICAgICAgICAgICAgIHRoaXMuZW5hYmxlZCA9IHRydWU7CgogICAgICAgICAgICAgICAgLy9TZXQgZmxhZyBtZW50aW9uaW5nIHRoYXQgdGhlIG1vZHVsZSBpcyBlbmFibGluZywKICAgICAgICAgICAgICAgIC8vc28gdGhhdCBpbW1lZGlhdGUgY2FsbHMgdG8gdGhlIGRlZmluZWQgY2FsbGJhY2tzCiAgICAgICAgICAgICAgICAvL2ZvciBkZXBlbmRlbmNpZXMgZG8gbm90IHRyaWdnZXIgaW5hZHZlcnRlbnQgbG9hZAogICAgICAgICAgICAgICAgLy93aXRoIHRoZSBkZXBDb3VudCBzdGlsbCBiZWluZyB6ZXJvLgogICAgICAgICAgICAgICAgdGhpcy5lbmFibGluZyA9IHRydWU7CgogICAgICAgICAgICAgICAgLy9FbmFibGUgZWFjaCBkZXBlbmRlbmN5CiAgICAgICAgICAgICAgICBlYWNoKHRoaXMuZGVwTWFwcywgYmluZCh0aGlzLCBmdW5jdGlvbiAoZGVwTWFwLCBpKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIGlkLCBtb2QsIGhhbmRsZXI7CgogICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgZGVwTWFwID09PSAnc3RyaW5nJykgewogICAgICAgICAgICAgICAgICAgICAgICAvL0RlcGVuZGVuY3kgbmVlZHMgdG8gYmUgY29udmVydGVkIHRvIGEgZGVwTWFwCiAgICAgICAgICAgICAgICAgICAgICAgIC8vYW5kIHdpcmVkIHVwIHRvIHRoaXMgbW9kdWxlLgogICAgICAgICAgICAgICAgICAgICAgICBkZXBNYXAgPSBtYWtlTW9kdWxlTWFwKGRlcE1hcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5tYXAuaXNEZWZpbmUgPyB0aGlzLm1hcCA6IHRoaXMubWFwLnBhcmVudE1hcCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIXRoaXMuc2tpcE1hcCk7CiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGVwTWFwc1tpXSA9IGRlcE1hcDsKCiAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZXIgPSBnZXRPd24oaGFuZGxlcnMsIGRlcE1hcC5pZCk7CgogICAgICAgICAgICAgICAgICAgICAgICBpZiAoaGFuZGxlcikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kZXBFeHBvcnRzW2ldID0gaGFuZGxlcih0aGlzKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kZXBDb3VudCArPSAxOwoKICAgICAgICAgICAgICAgICAgICAgICAgb24oZGVwTWFwLCAnZGVmaW5lZCcsIGJpbmQodGhpcywgZnVuY3Rpb24gKGRlcEV4cG9ydHMpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnVuZGVmZWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRlZmluZURlcChpLCBkZXBFeHBvcnRzKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2hlY2soKTsKICAgICAgICAgICAgICAgICAgICAgICAgfSkpOwoKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZXJyYmFjaykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgb24oZGVwTWFwLCAnZXJyb3InLCBiaW5kKHRoaXMsIHRoaXMuZXJyYmFjaykpOwogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZXZlbnRzLmVycm9yKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBObyBkaXJlY3QgZXJyYmFjayBvbiB0aGlzIG1vZHVsZSwgYnV0IHNvbWV0aGluZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZWxzZSBpcyBsaXN0ZW5pbmcgZm9yIGVycm9ycywgc28gYmUgc3VyZSB0bwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcHJvcGFnYXRlIHRoZSBlcnJvciBjb3JyZWN0bHkuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbihkZXBNYXAsICdlcnJvcicsIGJpbmQodGhpcywgZnVuY3Rpb24oZXJyKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbWl0KCdlcnJvcicsIGVycik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIGlkID0gZGVwTWFwLmlkOwogICAgICAgICAgICAgICAgICAgIG1vZCA9IHJlZ2lzdHJ5W2lkXTsKCiAgICAgICAgICAgICAgICAgICAgLy9Ta2lwIHNwZWNpYWwgbW9kdWxlcyBsaWtlICdyZXF1aXJlJywgJ2V4cG9ydHMnLCAnbW9kdWxlJwogICAgICAgICAgICAgICAgICAgIC8vQWxzbywgZG9uJ3QgY2FsbCBlbmFibGUgaWYgaXQgaXMgYWxyZWFkeSBlbmFibGVkLAogICAgICAgICAgICAgICAgICAgIC8vaW1wb3J0YW50IGluIGNpcmN1bGFyIGRlcGVuZGVuY3kgY2FzZXMuCiAgICAgICAgICAgICAgICAgICAgaWYgKCFoYXNQcm9wKGhhbmRsZXJzLCBpZCkgJiYgbW9kICYmICFtb2QuZW5hYmxlZCkgewogICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmVuYWJsZShkZXBNYXAsIHRoaXMpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pKTsKCiAgICAgICAgICAgICAgICAvL0VuYWJsZSBlYWNoIHBsdWdpbiB0aGF0IGlzIHVzZWQgaW4KICAgICAgICAgICAgICAgIC8vYSBkZXBlbmRlbmN5CiAgICAgICAgICAgICAgICBlYWNoUHJvcCh0aGlzLnBsdWdpbk1hcHMsIGJpbmQodGhpcywgZnVuY3Rpb24gKHBsdWdpbk1hcCkgewogICAgICAgICAgICAgICAgICAgIHZhciBtb2QgPSBnZXRPd24ocmVnaXN0cnksIHBsdWdpbk1hcC5pZCk7CiAgICAgICAgICAgICAgICAgICAgaWYgKG1vZCAmJiAhbW9kLmVuYWJsZWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC5lbmFibGUocGx1Z2luTWFwLCB0aGlzKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KSk7CgogICAgICAgICAgICAgICAgdGhpcy5lbmFibGluZyA9IGZhbHNlOwoKICAgICAgICAgICAgICAgIHRoaXMuY2hlY2soKTsKICAgICAgICAgICAgfSwKCiAgICAgICAgICAgIG9uOiBmdW5jdGlvbiAobmFtZSwgY2IpIHsKICAgICAgICAgICAgICAgIHZhciBjYnMgPSB0aGlzLmV2ZW50c1tuYW1lXTsKICAgICAgICAgICAgICAgIGlmICghY2JzKSB7CiAgICAgICAgICAgICAgICAgICAgY2JzID0gdGhpcy5ldmVudHNbbmFtZV0gPSBbXTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGNicy5wdXNoKGNiKTsKICAgICAgICAgICAgfSwKCiAgICAgICAgICAgIGVtaXQ6IGZ1bmN0aW9uIChuYW1lLCBldnQpIHsKICAgICAgICAgICAgICAgIGVhY2godGhpcy5ldmVudHNbbmFtZV0sIGZ1bmN0aW9uIChjYikgewogICAgICAgICAgICAgICAgICAgIGNiKGV2dCk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIGlmIChuYW1lID09PSAnZXJyb3InKSB7CiAgICAgICAgICAgICAgICAgICAgLy9Ob3cgdGhhdCB0aGUgZXJyb3IgaGFuZGxlciB3YXMgdHJpZ2dlcmVkLCByZW1vdmUKICAgICAgICAgICAgICAgICAgICAvL3RoZSBsaXN0ZW5lcnMsIHNpbmNlIHRoaXMgYnJva2VuIE1vZHVsZSBpbnN0YW5jZQogICAgICAgICAgICAgICAgICAgIC8vY2FuIHN0YXkgYXJvdW5kIGZvciBhIHdoaWxlIGluIHRoZSByZWdpc3RyeS4KICAgICAgICAgICAgICAgICAgICBkZWxldGUgdGhpcy5ldmVudHNbbmFtZV07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9OwoKICAgICAgICBmdW5jdGlvbiBjYWxsR2V0TW9kdWxlKGFyZ3MpIHsKICAgICAgICAgICAgLy9Ta2lwIG1vZHVsZXMgYWxyZWFkeSBkZWZpbmVkLgogICAgICAgICAgICBpZiAoIWhhc1Byb3AoZGVmaW5lZCwgYXJnc1swXSkpIHsKICAgICAgICAgICAgICAgIGdldE1vZHVsZShtYWtlTW9kdWxlTWFwKGFyZ3NbMF0sIG51bGwsIHRydWUpKS5pbml0KGFyZ3NbMV0sIGFyZ3NbMl0pOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBmdW5jdGlvbiByZW1vdmVMaXN0ZW5lcihub2RlLCBmdW5jLCBuYW1lLCBpZU5hbWUpIHsKICAgICAgICAgICAgLy9GYXZvciBkZXRhY2hFdmVudCBiZWNhdXNlIG9mIElFOQogICAgICAgICAgICAvL2lzc3VlLCBzZWUgYXR0YWNoRXZlbnQvYWRkRXZlbnRMaXN0ZW5lciBjb21tZW50IGVsc2V3aGVyZQogICAgICAgICAgICAvL2luIHRoaXMgZmlsZS4KICAgICAgICAgICAgaWYgKG5vZGUuZGV0YWNoRXZlbnQgJiYgIWlzT3BlcmEpIHsKICAgICAgICAgICAgICAgIC8vUHJvYmFibHkgSUUuIElmIG5vdCBpdCB3aWxsIHRocm93IGFuIGVycm9yLCB3aGljaCB3aWxsIGJlCiAgICAgICAgICAgICAgICAvL3VzZWZ1bCB0byBrbm93LgogICAgICAgICAgICAgICAgaWYgKGllTmFtZSkgewogICAgICAgICAgICAgICAgICAgIG5vZGUuZGV0YWNoRXZlbnQoaWVOYW1lLCBmdW5jKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIG5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcihuYW1lLCBmdW5jLCBmYWxzZSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8qKgogICAgICAgICAqIEdpdmVuIGFuIGV2ZW50IGZyb20gYSBzY3JpcHQgbm9kZSwgZ2V0IHRoZSByZXF1aXJlanMgaW5mbyBmcm9tIGl0LAogICAgICAgICAqIGFuZCB0aGVuIHJlbW92ZXMgdGhlIGV2ZW50IGxpc3RlbmVycyBvbiB0aGUgbm9kZS4KICAgICAgICAgKiBAcGFyYW0ge0V2ZW50fSBldnQKICAgICAgICAgKiBAcmV0dXJucyB7T2JqZWN0fQogICAgICAgICAqLwogICAgICAgIGZ1bmN0aW9uIGdldFNjcmlwdERhdGEoZXZ0KSB7CiAgICAgICAgICAgIC8vVXNpbmcgY3VycmVudFRhcmdldCBpbnN0ZWFkIG9mIHRhcmdldCBmb3IgRmlyZWZveCAyLjAncyBzYWtlLiBOb3QKICAgICAgICAgICAgLy9hbGwgb2xkIGJyb3dzZXJzIHdpbGwgYmUgc3VwcG9ydGVkLCBidXQgdGhpcyBvbmUgd2FzIGVhc3kgZW5vdWdoCiAgICAgICAgICAgIC8vdG8gc3VwcG9ydCBhbmQgc3RpbGwgbWFrZXMgc2Vuc2UuCiAgICAgICAgICAgIHZhciBub2RlID0gZXZ0LmN1cnJlbnRUYXJnZXQgfHwgZXZ0LnNyY0VsZW1lbnQ7CgogICAgICAgICAgICAvL1JlbW92ZSB0aGUgbGlzdGVuZXJzIG9uY2UgaGVyZS4KICAgICAgICAgICAgcmVtb3ZlTGlzdGVuZXIobm9kZSwgY29udGV4dC5vblNjcmlwdExvYWQsICdsb2FkJywgJ29ucmVhZHlzdGF0ZWNoYW5nZScpOwogICAgICAgICAgICByZW1vdmVMaXN0ZW5lcihub2RlLCBjb250ZXh0Lm9uU2NyaXB0RXJyb3IsICdlcnJvcicpOwoKICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgIG5vZGU6IG5vZGUsCiAgICAgICAgICAgICAgICBpZDogbm9kZSAmJiBub2RlLmdldEF0dHJpYnV0ZSgnZGF0YS1yZXF1aXJlbW9kdWxlJykKICAgICAgICAgICAgfTsKICAgICAgICB9CgogICAgICAgIGZ1bmN0aW9uIGludGFrZURlZmluZXMoKSB7CiAgICAgICAgICAgIHZhciBhcmdzOwoKICAgICAgICAgICAgLy9BbnkgZGVmaW5lZCBtb2R1bGVzIGluIHRoZSBnbG9iYWwgcXVldWUsIGludGFrZSB0aGVtIG5vdy4KICAgICAgICAgICAgdGFrZUdsb2JhbFF1ZXVlKCk7CgogICAgICAgICAgICAvL01ha2Ugc3VyZSBhbnkgcmVtYWluaW5nIGRlZlF1ZXVlIGl0ZW1zIGdldCBwcm9wZXJseSBwcm9jZXNzZWQuCiAgICAgICAgICAgIHdoaWxlIChkZWZRdWV1ZS5sZW5ndGgpIHsKICAgICAgICAgICAgICAgIGFyZ3MgPSBkZWZRdWV1ZS5zaGlmdCgpOwogICAgICAgICAgICAgICAgaWYgKGFyZ3NbMF0gPT09IG51bGwpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gb25FcnJvcihtYWtlRXJyb3IoJ21pc21hdGNoJywgJ01pc21hdGNoZWQgYW5vbnltb3VzIGRlZmluZSgpIG1vZHVsZTogJyArCiAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3NbYXJncy5sZW5ndGggLSAxXSkpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAvL2FyZ3MgYXJlIGlkLCBkZXBzLCBmYWN0b3J5LiBTaG91bGQgYmUgbm9ybWFsaXplZCBieSB0aGUKICAgICAgICAgICAgICAgICAgICAvL2RlZmluZSgpIGZ1bmN0aW9uLgogICAgICAgICAgICAgICAgICAgIGNhbGxHZXRNb2R1bGUoYXJncyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY29udGV4dC5kZWZRdWV1ZU1hcCA9IHt9OwogICAgICAgIH0KCiAgICAgICAgY29udGV4dCA9IHsKICAgICAgICAgICAgY29uZmlnOiBjb25maWcsCiAgICAgICAgICAgIGNvbnRleHROYW1lOiBjb250ZXh0TmFtZSwKICAgICAgICAgICAgcmVnaXN0cnk6IHJlZ2lzdHJ5LAogICAgICAgICAgICBkZWZpbmVkOiBkZWZpbmVkLAogICAgICAgICAgICB1cmxGZXRjaGVkOiB1cmxGZXRjaGVkLAogICAgICAgICAgICBkZWZRdWV1ZTogZGVmUXVldWUsCiAgICAgICAgICAgIGRlZlF1ZXVlTWFwOiB7fSwKICAgICAgICAgICAgTW9kdWxlOiBNb2R1bGUsCiAgICAgICAgICAgIG1ha2VNb2R1bGVNYXA6IG1ha2VNb2R1bGVNYXAsCiAgICAgICAgICAgIG5leHRUaWNrOiByZXEubmV4dFRpY2ssCiAgICAgICAgICAgIG9uRXJyb3I6IG9uRXJyb3IsCgogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogU2V0IGEgY29uZmlndXJhdGlvbiBmb3IgdGhlIGNvbnRleHQuCiAgICAgICAgICAgICAqIEBwYXJhbSB7T2JqZWN0fSBjZmcgY29uZmlnIG9iamVjdCB0byBpbnRlZ3JhdGUuCiAgICAgICAgICAgICAqLwogICAgICAgICAgICBjb25maWd1cmU6IGZ1bmN0aW9uIChjZmcpIHsKICAgICAgICAgICAgICAgIC8vTWFrZSBzdXJlIHRoZSBiYXNlVXJsIGVuZHMgaW4gYSBzbGFzaC4KICAgICAgICAgICAgICAgIGlmIChjZmcuYmFzZVVybCkgewogICAgICAgICAgICAgICAgICAgIGlmIChjZmcuYmFzZVVybC5jaGFyQXQoY2ZnLmJhc2VVcmwubGVuZ3RoIC0gMSkgIT09ICcvJykgewogICAgICAgICAgICAgICAgICAgICAgICBjZmcuYmFzZVVybCArPSAnLyc7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIC8vU2F2ZSBvZmYgdGhlIHBhdGhzIHNpbmNlIHRoZXkgcmVxdWlyZSBzcGVjaWFsIHByb2Nlc3NpbmcsCiAgICAgICAgICAgICAgICAvL3RoZXkgYXJlIGFkZGl0aXZlLgogICAgICAgICAgICAgICAgdmFyIHNoaW0gPSBjb25maWcuc2hpbSwKICAgICAgICAgICAgICAgICAgICBvYmpzID0gewogICAgICAgICAgICAgICAgICAgICAgICBwYXRoczogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgYnVuZGxlczogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnOiB0cnVlLAogICAgICAgICAgICAgICAgICAgICAgICBtYXA6IHRydWUKICAgICAgICAgICAgICAgICAgICB9OwoKICAgICAgICAgICAgICAgIGVhY2hQcm9wKGNmZywgZnVuY3Rpb24gKHZhbHVlLCBwcm9wKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKG9ianNbcHJvcF0pIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFjb25maWdbcHJvcF0pIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ1twcm9wXSA9IHt9OwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIG1peGluKGNvbmZpZ1twcm9wXSwgdmFsdWUsIHRydWUsIHRydWUpOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ1twcm9wXSA9IHZhbHVlOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgIC8vUmV2ZXJzZSBtYXAgdGhlIGJ1bmRsZXMKICAgICAgICAgICAgICAgIGlmIChjZmcuYnVuZGxlcykgewogICAgICAgICAgICAgICAgICAgIGVhY2hQcm9wKGNmZy5idW5kbGVzLCBmdW5jdGlvbiAodmFsdWUsIHByb3ApIHsKICAgICAgICAgICAgICAgICAgICAgICAgZWFjaCh2YWx1ZSwgZnVuY3Rpb24gKHYpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2ICE9PSBwcm9wKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVuZGxlc01hcFt2XSA9IHByb3A7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIC8vTWVyZ2Ugc2hpbQogICAgICAgICAgICAgICAgaWYgKGNmZy5zaGltKSB7CiAgICAgICAgICAgICAgICAgICAgZWFjaFByb3AoY2ZnLnNoaW0sIGZ1bmN0aW9uICh2YWx1ZSwgaWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgLy9Ob3JtYWxpemUgdGhlIHN0cnVjdHVyZQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNBcnJheSh2YWx1ZSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcHM6IHZhbHVlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgodmFsdWUuZXhwb3J0cyB8fCB2YWx1ZS5pbml0KSAmJiAhdmFsdWUuZXhwb3J0c0ZuKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZS5leHBvcnRzRm4gPSBjb250ZXh0Lm1ha2VTaGltRXhwb3J0cyh2YWx1ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgc2hpbVtpZF0gPSB2YWx1ZTsKICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICBjb25maWcuc2hpbSA9IHNoaW07CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgLy9BZGp1c3QgcGFja2FnZXMgaWYgbmVjZXNzYXJ5LgogICAgICAgICAgICAgICAgaWYgKGNmZy5wYWNrYWdlcykgewogICAgICAgICAgICAgICAgICAgIGVhY2goY2ZnLnBhY2thZ2VzLCBmdW5jdGlvbiAocGtnT2JqKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBsb2NhdGlvbiwgbmFtZTsKCiAgICAgICAgICAgICAgICAgICAgICAgIHBrZ09iaiA9IHR5cGVvZiBwa2dPYmogPT09ICdzdHJpbmcnID8ge25hbWU6IHBrZ09ian0gOiBwa2dPYmo7CgogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gcGtnT2JqLm5hbWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uID0gcGtnT2JqLmxvY2F0aW9uOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAobG9jYXRpb24pIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZy5wYXRoc1tuYW1lXSA9IHBrZ09iai5sb2NhdGlvbjsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgLy9TYXZlIHBvaW50ZXIgdG8gbWFpbiBtb2R1bGUgSUQgZm9yIHBrZyBuYW1lLgogICAgICAgICAgICAgICAgICAgICAgICAvL1JlbW92ZSBsZWFkaW5nIGRvdCBpbiBtYWluLCBzbyBtYWluIHBhdGhzIGFyZSBub3JtYWxpemVkLAogICAgICAgICAgICAgICAgICAgICAgICAvL2FuZCByZW1vdmUgYW55IHRyYWlsaW5nIC5qcywgc2luY2UgZGlmZmVyZW50IHBhY2thZ2UKICAgICAgICAgICAgICAgICAgICAgICAgLy9lbnZzIGhhdmUgZGlmZmVyZW50IGNvbnZlbnRpb25zOiBzb21lIHVzZSBhIG1vZHVsZSBuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAvL3NvbWUgdXNlIGEgZmlsZSBuYW1lLgogICAgICAgICAgICAgICAgICAgICAgICBjb25maWcucGtnc1tuYW1lXSA9IHBrZ09iai5uYW1lICsgJy8nICsgKHBrZ09iai5tYWluIHx8ICdtYWluJykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKGN1cnJEaXJSZWdFeHAsICcnKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoanNTdWZmaXhSZWdFeHAsICcnKTsKICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAvL0lmIHRoZXJlIGFyZSBhbnkgIndhaXRpbmcgdG8gZXhlY3V0ZSIgbW9kdWxlcyBpbiB0aGUgcmVnaXN0cnksCiAgICAgICAgICAgICAgICAvL3VwZGF0ZSB0aGUgbWFwcyBmb3IgdGhlbSwgc2luY2UgdGhlaXIgaW5mbywgbGlrZSBVUkxzIHRvIGxvYWQsCiAgICAgICAgICAgICAgICAvL21heSBoYXZlIGNoYW5nZWQuCiAgICAgICAgICAgICAgICBlYWNoUHJvcChyZWdpc3RyeSwgZnVuY3Rpb24gKG1vZCwgaWQpIHsKICAgICAgICAgICAgICAgICAgICAvL0lmIG1vZHVsZSBhbHJlYWR5IGhhcyBpbml0IGNhbGxlZCwgc2luY2UgaXQgaXMgdG9vCiAgICAgICAgICAgICAgICAgICAgLy9sYXRlIHRvIG1vZGlmeSB0aGVtLCBhbmQgaWdub3JlIHVubm9ybWFsaXplZCBvbmVzCiAgICAgICAgICAgICAgICAgICAgLy9zaW5jZSB0aGV5IGFyZSB0cmFuc2llbnQuCiAgICAgICAgICAgICAgICAgICAgaWYgKCFtb2QuaW5pdGVkICYmICFtb2QubWFwLnVubm9ybWFsaXplZCkgewogICAgICAgICAgICAgICAgICAgICAgICBtb2QubWFwID0gbWFrZU1vZHVsZU1hcChpZCwgbnVsbCwgdHJ1ZSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAgICAgLy9JZiBhIGRlcHMgYXJyYXkgb3IgYSBjb25maWcgY2FsbGJhY2sgaXMgc3BlY2lmaWVkLCB0aGVuIGNhbGwKICAgICAgICAgICAgICAgIC8vcmVxdWlyZSB3aXRoIHRob3NlIGFyZ3MuIFRoaXMgaXMgdXNlZnVsIHdoZW4gcmVxdWlyZSBpcyBkZWZpbmVkIGFzIGEKICAgICAgICAgICAgICAgIC8vY29uZmlnIG9iamVjdCBiZWZvcmUgcmVxdWlyZS5qcyBpcyBsb2FkZWQuCiAgICAgICAgICAgICAgICBpZiAoY2ZnLmRlcHMgfHwgY2ZnLmNhbGxiYWNrKSB7CiAgICAgICAgICAgICAgICAgICAgY29udGV4dC5yZXF1aXJlKGNmZy5kZXBzIHx8IFtdLCBjZmcuY2FsbGJhY2spOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LAoKICAgICAgICAgICAgbWFrZVNoaW1FeHBvcnRzOiBmdW5jdGlvbiAodmFsdWUpIHsKICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGZuKCkgewogICAgICAgICAgICAgICAgICAgIHZhciByZXQ7CiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLmluaXQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0ID0gdmFsdWUuaW5pdC5hcHBseShnbG9iYWwsIGFyZ3VtZW50cyk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIHJldHVybiByZXQgfHwgKHZhbHVlLmV4cG9ydHMgJiYgZ2V0R2xvYmFsKHZhbHVlLmV4cG9ydHMpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHJldHVybiBmbjsKICAgICAgICAgICAgfSwKCiAgICAgICAgICAgIG1ha2VSZXF1aXJlOiBmdW5jdGlvbiAocmVsTWFwLCBvcHRpb25zKSB7CiAgICAgICAgICAgICAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTsKCiAgICAgICAgICAgICAgICBmdW5jdGlvbiBsb2NhbFJlcXVpcmUoZGVwcywgY2FsbGJhY2ssIGVycmJhY2spIHsKICAgICAgICAgICAgICAgICAgICB2YXIgaWQsIG1hcCwgcmVxdWlyZU1vZDsKCiAgICAgICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMuZW5hYmxlQnVpbGRDYWxsYmFjayAmJiBjYWxsYmFjayAmJiBpc0Z1bmN0aW9uKGNhbGxiYWNrKSkgewogICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjay5fX3JlcXVpcmVKc0J1aWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgZGVwcyA9PT0gJ3N0cmluZycpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzRnVuY3Rpb24oY2FsbGJhY2spKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL0ludmFsaWQgY2FsbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9uRXJyb3IobWFrZUVycm9yKCdyZXF1aXJlYXJncycsICdJbnZhbGlkIHJlcXVpcmUgY2FsbCcpLCBlcnJiYWNrKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgLy9JZiByZXF1aXJlfGV4cG9ydHN8bW9kdWxlIGFyZSByZXF1ZXN0ZWQsIGdldCB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgLy92YWx1ZSBmb3IgdGhlbSBmcm9tIHRoZSBzcGVjaWFsIGhhbmRsZXJzLiBDYXZlYXQ6CiAgICAgICAgICAgICAgICAgICAgICAgIC8vdGhpcyBvbmx5IHdvcmtzIHdoaWxlIG1vZHVsZSBpcyBiZWluZyBkZWZpbmVkLgogICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVsTWFwICYmIGhhc1Byb3AoaGFuZGxlcnMsIGRlcHMpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaGFuZGxlcnNbZGVwc10ocmVnaXN0cnlbcmVsTWFwLmlkXSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIC8vU3luY2hyb25vdXMgYWNjZXNzIHRvIG9uZSBtb2R1bGUuIElmIHJlcXVpcmUuZ2V0IGlzCiAgICAgICAgICAgICAgICAgICAgICAgIC8vYXZhaWxhYmxlIChhcyBpbiB0aGUgTm9kZSBhZGFwdGVyKSwgcHJlZmVyIHRoYXQuCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXEuZ2V0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVxLmdldChjb250ZXh0LCBkZXBzLCByZWxNYXAsIGxvY2FsUmVxdWlyZSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIC8vTm9ybWFsaXplIG1vZHVsZSBuYW1lLCBpZiBpdCBjb250YWlucyAuIG9yIC4uCiAgICAgICAgICAgICAgICAgICAgICAgIG1hcCA9IG1ha2VNb2R1bGVNYXAoZGVwcywgcmVsTWFwLCBmYWxzZSwgdHJ1ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gbWFwLmlkOwoKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFoYXNQcm9wKGRlZmluZWQsIGlkKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9uRXJyb3IobWFrZUVycm9yKCdub3Rsb2FkZWQnLCAnTW9kdWxlIG5hbWUgIicgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyIgaGFzIG5vdCBiZWVuIGxvYWRlZCB5ZXQgZm9yIGNvbnRleHQ6ICcgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dE5hbWUgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlbE1hcCA/ICcnIDogJy4gVXNlIHJlcXVpcmUoW10pJykpKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZGVmaW5lZFtpZF07CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAvL0dyYWIgZGVmaW5lcyB3YWl0aW5nIGluIHRoZSBnbG9iYWwgcXVldWUuCiAgICAgICAgICAgICAgICAgICAgaW50YWtlRGVmaW5lcygpOwoKICAgICAgICAgICAgICAgICAgICAvL01hcmsgYWxsIHRoZSBkZXBlbmRlbmNpZXMgYXMgbmVlZGluZyB0byBiZSBsb2FkZWQuCiAgICAgICAgICAgICAgICAgICAgY29udGV4dC5uZXh0VGljayhmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vU29tZSBkZWZpbmVzIGNvdWxkIGhhdmUgYmVlbiBhZGRlZCBzaW5jZSB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgLy9yZXF1aXJlIGNhbGwsIGNvbGxlY3QgdGhlbS4KICAgICAgICAgICAgICAgICAgICAgICAgaW50YWtlRGVmaW5lcygpOwoKICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZU1vZCA9IGdldE1vZHVsZShtYWtlTW9kdWxlTWFwKG51bGwsIHJlbE1hcCkpOwoKICAgICAgICAgICAgICAgICAgICAgICAgLy9TdG9yZSBpZiBtYXAgY29uZmlnIHNob3VsZCBiZSBhcHBsaWVkIHRvIHRoaXMgcmVxdWlyZQogICAgICAgICAgICAgICAgICAgICAgICAvL2NhbGwgZm9yIGRlcGVuZGVuY2llcy4KICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZU1vZC5za2lwTWFwID0gb3B0aW9ucy5za2lwTWFwOwoKICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZU1vZC5pbml0KGRlcHMsIGNhbGxiYWNrLCBlcnJiYWNrLCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmFibGVkOiB0cnVlCiAgICAgICAgICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tMb2FkZWQoKTsKICAgICAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGxvY2FsUmVxdWlyZTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBtaXhpbihsb2NhbFJlcXVpcmUsIHsKICAgICAgICAgICAgICAgICAgICBpc0Jyb3dzZXI6IGlzQnJvd3NlciwKCiAgICAgICAgICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAgICAgICAgICogQ29udmVydHMgYSBtb2R1bGUgbmFtZSArIC5leHRlbnNpb24gaW50byBhbiBVUkwgcGF0aC4KICAgICAgICAgICAgICAgICAgICAgKiAqUmVxdWlyZXMqIHRoZSB1c2Ugb2YgYSBtb2R1bGUgbmFtZS4gSXQgZG9lcyBub3Qgc3VwcG9ydCB1c2luZwogICAgICAgICAgICAgICAgICAgICAqIHBsYWluIFVSTHMgbGlrZSBuYW1lVG9VcmwuCiAgICAgICAgICAgICAgICAgICAgICovCiAgICAgICAgICAgICAgICAgICAgdG9Vcmw6IGZ1bmN0aW9uIChtb2R1bGVOYW1lUGx1c0V4dCkgewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgZXh0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXggPSBtb2R1bGVOYW1lUGx1c0V4dC5sYXN0SW5kZXhPZignLicpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VnbWVudCA9IG1vZHVsZU5hbWVQbHVzRXh0LnNwbGl0KCcvJylbMF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1JlbGF0aXZlID0gc2VnbWVudCA9PT0gJy4nIHx8IHNlZ21lbnQgPT09ICcuLic7CgogICAgICAgICAgICAgICAgICAgICAgICAvL0hhdmUgYSBmaWxlIGV4dGVuc2lvbiBhbGlhcywgYW5kIGl0IGlzIG5vdCB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgLy9kb3RzIGZyb20gYSByZWxhdGl2ZSBwYXRoLgogICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW5kZXggIT09IC0xICYmICghaXNSZWxhdGl2ZSB8fCBpbmRleCA+IDEpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHQgPSBtb2R1bGVOYW1lUGx1c0V4dC5zdWJzdHJpbmcoaW5kZXgsIG1vZHVsZU5hbWVQbHVzRXh0Lmxlbmd0aCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2R1bGVOYW1lUGx1c0V4dCA9IG1vZHVsZU5hbWVQbHVzRXh0LnN1YnN0cmluZygwLCBpbmRleCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjb250ZXh0Lm5hbWVUb1VybChub3JtYWxpemUobW9kdWxlTmFtZVBsdXNFeHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbE1hcCAmJiByZWxNYXAuaWQsIHRydWUpLCBleHQsICB0cnVlKTsKICAgICAgICAgICAgICAgICAgICB9LAoKICAgICAgICAgICAgICAgICAgICBkZWZpbmVkOiBmdW5jdGlvbiAoaWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGhhc1Byb3AoZGVmaW5lZCwgbWFrZU1vZHVsZU1hcChpZCwgcmVsTWFwLCBmYWxzZSwgdHJ1ZSkuaWQpOwogICAgICAgICAgICAgICAgICAgIH0sCgogICAgICAgICAgICAgICAgICAgIHNwZWNpZmllZDogZnVuY3Rpb24gKGlkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gbWFrZU1vZHVsZU1hcChpZCwgcmVsTWFwLCBmYWxzZSwgdHJ1ZSkuaWQ7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBoYXNQcm9wKGRlZmluZWQsIGlkKSB8fCBoYXNQcm9wKHJlZ2lzdHJ5LCBpZCk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAgICAgLy9Pbmx5IGFsbG93IHVuZGVmIG9uIHRvcCBsZXZlbCByZXF1aXJlIGNhbGxzCiAgICAgICAgICAgICAgICBpZiAoIXJlbE1hcCkgewogICAgICAgICAgICAgICAgICAgIGxvY2FsUmVxdWlyZS51bmRlZiA9IGZ1bmN0aW9uIChpZCkgewogICAgICAgICAgICAgICAgICAgICAgICAvL0JpbmQgYW55IHdhaXRpbmcgZGVmaW5lKCkgY2FsbHMgdG8gdGhpcyBjb250ZXh0LAogICAgICAgICAgICAgICAgICAgICAgICAvL2ZpeCBmb3IgIzQwOAogICAgICAgICAgICAgICAgICAgICAgICB0YWtlR2xvYmFsUXVldWUoKTsKCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBtYXAgPSBtYWtlTW9kdWxlTWFwKGlkLCByZWxNYXAsIHRydWUpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kID0gZ2V0T3duKHJlZ2lzdHJ5LCBpZCk7CgogICAgICAgICAgICAgICAgICAgICAgICBtb2QudW5kZWZlZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZVNjcmlwdChpZCk7CgogICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgZGVmaW5lZFtpZF07CiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSB1cmxGZXRjaGVkW21hcC51cmxdOwogICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgdW5kZWZFdmVudHNbaWRdOwoKICAgICAgICAgICAgICAgICAgICAgICAgLy9DbGVhbiBxdWV1ZWQgZGVmaW5lcyB0b28uIEdvIGJhY2t3YXJkcwogICAgICAgICAgICAgICAgICAgICAgICAvL2luIGFycmF5IHNvIHRoYXQgdGhlIHNwbGljZXMgZG8gbm90CiAgICAgICAgICAgICAgICAgICAgICAgIC8vbWVzcyB1cCB0aGUgaXRlcmF0aW9uLgogICAgICAgICAgICAgICAgICAgICAgICBlYWNoUmV2ZXJzZShkZWZRdWV1ZSwgZnVuY3Rpb24oYXJncywgaSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFyZ3NbMF0gPT09IGlkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmUXVldWUuc3BsaWNlKGksIDEpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIGNvbnRleHQuZGVmUXVldWVNYXBbaWRdOwoKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1vZCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9Ib2xkIG9uIHRvIGxpc3RlbmVycyBpbiBjYXNlIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9tb2R1bGUgd2lsbCBiZSBhdHRlbXB0ZWQgdG8gYmUgcmVsb2FkZWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vdXNpbmcgYSBkaWZmZXJlbnQgY29uZmlnLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1vZC5ldmVudHMuZGVmaW5lZCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuZGVmRXZlbnRzW2lkXSA9IG1vZC5ldmVudHM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xlYW5SZWdpc3RyeShpZCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIHJldHVybiBsb2NhbFJlcXVpcmU7CiAgICAgICAgICAgIH0sCgogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogQ2FsbGVkIHRvIGVuYWJsZSBhIG1vZHVsZSBpZiBpdCBpcyBzdGlsbCBpbiB0aGUgcmVnaXN0cnkKICAgICAgICAgICAgICogYXdhaXRpbmcgZW5hYmxlbWVudC4gQSBzZWNvbmQgYXJnLCBwYXJlbnQsIHRoZSBwYXJlbnQgbW9kdWxlLAogICAgICAgICAgICAgKiBpcyBwYXNzZWQgaW4gZm9yIGNvbnRleHQsIHdoZW4gdGhpcyBtZXRob2QgaXMgb3ZlcnJpZGRlbiBieQogICAgICAgICAgICAgKiB0aGUgb3B0aW1pemVyLiBOb3Qgc2hvd24gaGVyZSB0byBrZWVwIGNvZGUgY29tcGFjdC4KICAgICAgICAgICAgICovCiAgICAgICAgICAgIGVuYWJsZTogZnVuY3Rpb24gKGRlcE1hcCkgewogICAgICAgICAgICAgICAgdmFyIG1vZCA9IGdldE93bihyZWdpc3RyeSwgZGVwTWFwLmlkKTsKICAgICAgICAgICAgICAgIGlmIChtb2QpIHsKICAgICAgICAgICAgICAgICAgICBnZXRNb2R1bGUoZGVwTWFwKS5lbmFibGUoKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKCiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBJbnRlcm5hbCBtZXRob2QgdXNlZCBieSBlbnZpcm9ubWVudCBhZGFwdGVycyB0byBjb21wbGV0ZSBhIGxvYWQgZXZlbnQuCiAgICAgICAgICAgICAqIEEgbG9hZCBldmVudCBjb3VsZCBiZSBhIHNjcmlwdCBsb2FkIG9yIGp1c3QgYSBsb2FkIHBhc3MgZnJvbSBhIHN5bmNocm9ub3VzCiAgICAgICAgICAgICAqIGxvYWQgY2FsbC4KICAgICAgICAgICAgICogQHBhcmFtIHtTdHJpbmd9IG1vZHVsZU5hbWUgdGhlIG5hbWUgb2YgdGhlIG1vZHVsZSB0byBwb3RlbnRpYWxseSBjb21wbGV0ZS4KICAgICAgICAgICAgICovCiAgICAgICAgICAgIGNvbXBsZXRlTG9hZDogZnVuY3Rpb24gKG1vZHVsZU5hbWUpIHsKICAgICAgICAgICAgICAgIHZhciBmb3VuZCwgYXJncywgbW9kLAogICAgICAgICAgICAgICAgICAgIHNoaW0gPSBnZXRPd24oY29uZmlnLnNoaW0sIG1vZHVsZU5hbWUpIHx8IHt9LAogICAgICAgICAgICAgICAgICAgIHNoRXhwb3J0cyA9IHNoaW0uZXhwb3J0czsKCiAgICAgICAgICAgICAgICB0YWtlR2xvYmFsUXVldWUoKTsKCiAgICAgICAgICAgICAgICB3aGlsZSAoZGVmUXVldWUubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICAgICAgYXJncyA9IGRlZlF1ZXVlLnNoaWZ0KCk7CiAgICAgICAgICAgICAgICAgICAgaWYgKGFyZ3NbMF0gPT09IG51bGwpIHsKICAgICAgICAgICAgICAgICAgICAgICAgYXJnc1swXSA9IG1vZHVsZU5hbWU7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vSWYgYWxyZWFkeSBmb3VuZCBhbiBhbm9ueW1vdXMgbW9kdWxlIGFuZCBib3VuZCBpdAogICAgICAgICAgICAgICAgICAgICAgICAvL3RvIHRoaXMgbmFtZSwgdGhlbiB0aGlzIGlzIHNvbWUgb3RoZXIgYW5vbiBtb2R1bGUKICAgICAgICAgICAgICAgICAgICAgICAgLy93YWl0aW5nIGZvciBpdHMgY29tcGxldGVMb2FkIHRvIGZpcmUuCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmb3VuZCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZm91bmQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnc1swXSA9PT0gbW9kdWxlTmFtZSkgewogICAgICAgICAgICAgICAgICAgICAgICAvL0ZvdW5kIG1hdGNoaW5nIGRlZmluZSBjYWxsIGZvciB0aGlzIHNjcmlwdCEKICAgICAgICAgICAgICAgICAgICAgICAgZm91bmQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgY2FsbEdldE1vZHVsZShhcmdzKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGNvbnRleHQuZGVmUXVldWVNYXAgPSB7fTsKCiAgICAgICAgICAgICAgICAvL0RvIHRoaXMgYWZ0ZXIgdGhlIGN5Y2xlIG9mIGNhbGxHZXRNb2R1bGUgaW4gY2FzZSB0aGUgcmVzdWx0CiAgICAgICAgICAgICAgICAvL29mIHRob3NlIGNhbGxzL2luaXQgY2FsbHMgY2hhbmdlcyB0aGUgcmVnaXN0cnkuCiAgICAgICAgICAgICAgICBtb2QgPSBnZXRPd24ocmVnaXN0cnksIG1vZHVsZU5hbWUpOwoKICAgICAgICAgICAgICAgIGlmICghZm91bmQgJiYgIWhhc1Byb3AoZGVmaW5lZCwgbW9kdWxlTmFtZSkgJiYgbW9kICYmICFtb2QuaW5pdGVkKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbmZpZy5lbmZvcmNlRGVmaW5lICYmICghc2hFeHBvcnRzIHx8ICFnZXRHbG9iYWwoc2hFeHBvcnRzKSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGhhc1BhdGhGYWxsYmFjayhtb2R1bGVOYW1lKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9uRXJyb3IobWFrZUVycm9yKCdub2RlZmluZScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdObyBkZWZpbmUgY2FsbCBmb3IgJyArIG1vZHVsZU5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttb2R1bGVOYW1lXSkpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgLy9BIHNjcmlwdCB0aGF0IGRvZXMgbm90IGNhbGwgZGVmaW5lKCksIHNvIGp1c3Qgc2ltdWxhdGUKICAgICAgICAgICAgICAgICAgICAgICAgLy90aGUgY2FsbCBmb3IgaXQuCiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxHZXRNb2R1bGUoW21vZHVsZU5hbWUsIChzaGltLmRlcHMgfHwgW10pLCBzaGltLmV4cG9ydHNGbl0pOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBjaGVja0xvYWRlZCgpOwogICAgICAgICAgICB9LAoKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIENvbnZlcnRzIGEgbW9kdWxlIG5hbWUgdG8gYSBmaWxlIHBhdGguIFN1cHBvcnRzIGNhc2VzIHdoZXJlCiAgICAgICAgICAgICAqIG1vZHVsZU5hbWUgbWF5IGFjdHVhbGx5IGJlIGp1c3QgYW4gVVJMLgogICAgICAgICAgICAgKiBOb3RlIHRoYXQgaXQgKipkb2VzIG5vdCoqIGNhbGwgbm9ybWFsaXplIG9uIHRoZSBtb2R1bGVOYW1lLAogICAgICAgICAgICAgKiBpdCBpcyBhc3N1bWVkIHRvIGhhdmUgYWxyZWFkeSBiZWVuIG5vcm1hbGl6ZWQuIFRoaXMgaXMgYW4KICAgICAgICAgICAgICogaW50ZXJuYWwgQVBJLCBub3QgYSBwdWJsaWMgb25lLiBVc2UgdG9VcmwgZm9yIHRoZSBwdWJsaWMgQVBJLgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgbmFtZVRvVXJsOiBmdW5jdGlvbiAobW9kdWxlTmFtZSwgZXh0LCBza2lwRXh0KSB7CiAgICAgICAgICAgICAgICB2YXIgcGF0aHMsIHN5bXMsIGksIHBhcmVudE1vZHVsZSwgdXJsLAogICAgICAgICAgICAgICAgICAgIHBhcmVudFBhdGgsIGJ1bmRsZUlkLAogICAgICAgICAgICAgICAgICAgIHBrZ01haW4gPSBnZXRPd24oY29uZmlnLnBrZ3MsIG1vZHVsZU5hbWUpOwoKICAgICAgICAgICAgICAgIGlmIChwa2dNYWluKSB7CiAgICAgICAgICAgICAgICAgICAgbW9kdWxlTmFtZSA9IHBrZ01haW47CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgYnVuZGxlSWQgPSBnZXRPd24oYnVuZGxlc01hcCwgbW9kdWxlTmFtZSk7CgogICAgICAgICAgICAgICAgaWYgKGJ1bmRsZUlkKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRleHQubmFtZVRvVXJsKGJ1bmRsZUlkLCBleHQsIHNraXBFeHQpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIC8vSWYgYSBjb2xvbiBpcyBpbiB0aGUgVVJMLCBpdCBpbmRpY2F0ZXMgYSBwcm90b2NvbCBpcyB1c2VkIGFuZCBpdCBpcyBqdXN0CiAgICAgICAgICAgICAgICAvL2FuIFVSTCB0byBhIGZpbGUsIG9yIGlmIGl0IHN0YXJ0cyB3aXRoIGEgc2xhc2gsIGNvbnRhaW5zIGEgcXVlcnkgYXJnIChpLmUuID8pCiAgICAgICAgICAgICAgICAvL29yIGVuZHMgd2l0aCAuanMsIHRoZW4gYXNzdW1lIHRoZSB1c2VyIG1lYW50IHRvIHVzZSBhbiB1cmwgYW5kIG5vdCBhIG1vZHVsZSBpZC4KICAgICAgICAgICAgICAgIC8vVGhlIHNsYXNoIGlzIGltcG9ydGFudCBmb3IgcHJvdG9jb2wtbGVzcyBVUkxzIGFzIHdlbGwgYXMgZnVsbCBwYXRocy4KICAgICAgICAgICAgICAgIGlmIChyZXEuanNFeHRSZWdFeHAudGVzdChtb2R1bGVOYW1lKSkgewogICAgICAgICAgICAgICAgICAgIC8vSnVzdCBhIHBsYWluIHBhdGgsIG5vdCBtb2R1bGUgbmFtZSBsb29rdXAsIHNvIGp1c3QgcmV0dXJuIGl0LgogICAgICAgICAgICAgICAgICAgIC8vQWRkIGV4dGVuc2lvbiBpZiBpdCBpcyBpbmNsdWRlZC4gVGhpcyBpcyBhIGJpdCB3b25reSwgb25seSBub24tLmpzIHRoaW5ncyBwYXNzCiAgICAgICAgICAgICAgICAgICAgLy9hbiBleHRlbnNpb24sIHRoaXMgbWV0aG9kIHByb2JhYmx5IG5lZWRzIHRvIGJlIHJld29ya2VkLgogICAgICAgICAgICAgICAgICAgIHVybCA9IG1vZHVsZU5hbWUgKyAoZXh0IHx8ICcnKTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgLy9BIG1vZHVsZSB0aGF0IG5lZWRzIHRvIGJlIGNvbnZlcnRlZCB0byBhIHBhdGguCiAgICAgICAgICAgICAgICAgICAgcGF0aHMgPSBjb25maWcucGF0aHM7CgogICAgICAgICAgICAgICAgICAgIHN5bXMgPSBtb2R1bGVOYW1lLnNwbGl0KCcvJyk7CiAgICAgICAgICAgICAgICAgICAgLy9Gb3IgZWFjaCBtb2R1bGUgbmFtZSBzZWdtZW50LCBzZWUgaWYgdGhlcmUgaXMgYSBwYXRoCiAgICAgICAgICAgICAgICAgICAgLy9yZWdpc3RlcmVkIGZvciBpdC4gU3RhcnQgd2l0aCBtb3N0IHNwZWNpZmljIG5hbWUKICAgICAgICAgICAgICAgICAgICAvL2FuZCB3b3JrIHVwIGZyb20gaXQuCiAgICAgICAgICAgICAgICAgICAgZm9yIChpID0gc3ltcy5sZW5ndGg7IGkgPiAwOyBpIC09IDEpIHsKICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50TW9kdWxlID0gc3ltcy5zbGljZSgwLCBpKS5qb2luKCcvJyk7CgogICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRQYXRoID0gZ2V0T3duKHBhdGhzLCBwYXJlbnRNb2R1bGUpOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFyZW50UGF0aCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9JZiBhbiBhcnJheSwgaXQgbWVhbnMgdGhlcmUgYXJlIGEgZmV3IGNob2ljZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL0Nob29zZSB0aGUgb25lIHRoYXQgaXMgZGVzaXJlZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzQXJyYXkocGFyZW50UGF0aCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRQYXRoID0gcGFyZW50UGF0aFswXTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5bXMuc3BsaWNlKDAsIGksIHBhcmVudFBhdGgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIC8vSm9pbiB0aGUgcGF0aCBwYXJ0cyB0b2dldGhlciwgdGhlbiBmaWd1cmUgb3V0IGlmIGJhc2VVcmwgaXMgbmVlZGVkLgogICAgICAgICAgICAgICAgICAgIHVybCA9IHN5bXMuam9pbignLycpOwogICAgICAgICAgICAgICAgICAgIHVybCArPSAoZXh0IHx8ICgvXmRhdGFcOnxcPy8udGVzdCh1cmwpIHx8IHNraXBFeHQgPyAnJyA6ICcuanMnKSk7CiAgICAgICAgICAgICAgICAgICAgdXJsID0gKHVybC5jaGFyQXQoMCkgPT09ICcvJyB8fCB1cmwubWF0Y2goL15bXHdcK1wuXC1dKzovKSA/ICcnIDogY29uZmlnLmJhc2VVcmwpICsgdXJsOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIHJldHVybiBjb25maWcudXJsQXJncyA/IHVybCArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHVybC5pbmRleE9mKCc/JykgPT09IC0xID8gJz8nIDogJyYnKSArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnLnVybEFyZ3MpIDogdXJsOwogICAgICAgICAgICB9LAoKICAgICAgICAgICAgLy9EZWxlZ2F0ZXMgdG8gcmVxLmxvYWQuIEJyb2tlbiBvdXQgYXMgYSBzZXBhcmF0ZSBmdW5jdGlvbiB0bwogICAgICAgICAgICAvL2FsbG93IG92ZXJyaWRpbmcgaW4gdGhlIG9wdGltaXplci4KICAgICAgICAgICAgbG9hZDogZnVuY3Rpb24gKGlkLCB1cmwpIHsKICAgICAgICAgICAgICAgIHJlcS5sb2FkKGNvbnRleHQsIGlkLCB1cmwpOwogICAgICAgICAgICB9LAoKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIEV4ZWN1dGVzIGEgbW9kdWxlIGNhbGxiYWNrIGZ1bmN0aW9uLiBCcm9rZW4gb3V0IGFzIGEgc2VwYXJhdGUgZnVuY3Rpb24KICAgICAgICAgICAgICogc29sZWx5IHRvIGFsbG93IHRoZSBidWlsZCBzeXN0ZW0gdG8gc2VxdWVuY2UgdGhlIGZpbGVzIGluIHRoZSBidWlsdAogICAgICAgICAgICAgKiBsYXllciBpbiB0aGUgcmlnaHQgc2VxdWVuY2UuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIEBwcml2YXRlCiAgICAgICAgICAgICAqLwogICAgICAgICAgICBleGVjQ2I6IGZ1bmN0aW9uIChuYW1lLCBjYWxsYmFjaywgYXJncywgZXhwb3J0cykgewogICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrLmFwcGx5KGV4cG9ydHMsIGFyZ3MpOwogICAgICAgICAgICB9LAoKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIGNhbGxiYWNrIGZvciBzY3JpcHQgbG9hZHMsIHVzZWQgdG8gY2hlY2sgc3RhdHVzIG9mIGxvYWRpbmcuCiAgICAgICAgICAgICAqCiAgICAgICAgICAgICAqIEBwYXJhbSB7RXZlbnR9IGV2dCB0aGUgZXZlbnQgZnJvbSB0aGUgYnJvd3NlciBmb3IgdGhlIHNjcmlwdAogICAgICAgICAgICAgKiB0aGF0IHdhcyBsb2FkZWQuCiAgICAgICAgICAgICAqLwogICAgICAgICAgICBvblNjcmlwdExvYWQ6IGZ1bmN0aW9uIChldnQpIHsKICAgICAgICAgICAgICAgIC8vVXNpbmcgY3VycmVudFRhcmdldCBpbnN0ZWFkIG9mIHRhcmdldCBmb3IgRmlyZWZveCAyLjAncyBzYWtlLiBOb3QKICAgICAgICAgICAgICAgIC8vYWxsIG9sZCBicm93c2VycyB3aWxsIGJlIHN1cHBvcnRlZCwgYnV0IHRoaXMgb25lIHdhcyBlYXN5IGVub3VnaAogICAgICAgICAgICAgICAgLy90byBzdXBwb3J0IGFuZCBzdGlsbCBtYWtlcyBzZW5zZS4KICAgICAgICAgICAgICAgIGlmIChldnQudHlwZSA9PT0gJ2xvYWQnIHx8CiAgICAgICAgICAgICAgICAgICAgICAgIChyZWFkeVJlZ0V4cC50ZXN0KChldnQuY3VycmVudFRhcmdldCB8fCBldnQuc3JjRWxlbWVudCkucmVhZHlTdGF0ZSkpKSB7CiAgICAgICAgICAgICAgICAgICAgLy9SZXNldCBpbnRlcmFjdGl2ZSBzY3JpcHQgc28gYSBzY3JpcHQgbm9kZSBpcyBub3QgaGVsZCBvbnRvIGZvcgogICAgICAgICAgICAgICAgICAgIC8vdG8gbG9uZy4KICAgICAgICAgICAgICAgICAgICBpbnRlcmFjdGl2ZVNjcmlwdCA9IG51bGw7CgogICAgICAgICAgICAgICAgICAgIC8vUHVsbCBvdXQgdGhlIG5hbWUgb2YgdGhlIG1vZHVsZSBhbmQgdGhlIGNvbnRleHQuCiAgICAgICAgICAgICAgICAgICAgdmFyIGRhdGEgPSBnZXRTY3JpcHREYXRhKGV2dCk7CiAgICAgICAgICAgICAgICAgICAgY29udGV4dC5jb21wbGV0ZUxvYWQoZGF0YS5pZCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sCgogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogQ2FsbGJhY2sgZm9yIHNjcmlwdCBlcnJvcnMuCiAgICAgICAgICAgICAqLwogICAgICAgICAgICBvblNjcmlwdEVycm9yOiBmdW5jdGlvbiAoZXZ0KSB7CiAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IGdldFNjcmlwdERhdGEoZXZ0KTsKICAgICAgICAgICAgICAgIGlmICghaGFzUGF0aEZhbGxiYWNrKGRhdGEuaWQpKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHBhcmVudHMgPSBbXTsKICAgICAgICAgICAgICAgICAgICBlYWNoUHJvcChyZWdpc3RyeSwgZnVuY3Rpb24odmFsdWUsIGtleSkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoa2V5LmluZGV4T2YoJ19AcicpICE9PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlYWNoKHZhbHVlLmRlcE1hcHMsIGZ1bmN0aW9uKGRlcE1hcCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkZXBNYXAuaWQgPT09IGRhdGEuaWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50cy5wdXNoKGtleSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gb25FcnJvcihtYWtlRXJyb3IoJ3NjcmlwdGVycm9yJywgJ1NjcmlwdCBlcnJvciBmb3IgIicgKyBkYXRhLmlkICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBhcmVudHMubGVuZ3RoID8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyIsIG5lZWRlZCBieTogJyArIHBhcmVudHMuam9pbignLCAnKSA6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICciJyksIGV2dCwgW2RhdGEuaWRdKSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9OwoKICAgICAgICBjb250ZXh0LnJlcXVpcmUgPSBjb250ZXh0Lm1ha2VSZXF1aXJlKCk7CiAgICAgICAgcmV0dXJuIGNvbnRleHQ7CiAgICB9CgogICAgLyoqCiAgICAgKiBNYWluIGVudHJ5IHBvaW50LgogICAgICoKICAgICAqIElmIHRoZSBvbmx5IGFyZ3VtZW50IHRvIHJlcXVpcmUgaXMgYSBzdHJpbmcsIHRoZW4gdGhlIG1vZHVsZSB0aGF0CiAgICAgKiBpcyByZXByZXNlbnRlZCBieSB0aGF0IHN0cmluZyBpcyBmZXRjaGVkIGZvciB0aGUgYXBwcm9wcmlhdGUgY29udGV4dC4KICAgICAqCiAgICAgKiBJZiB0aGUgZmlyc3QgYXJndW1lbnQgaXMgYW4gYXJyYXksIHRoZW4gaXQgd2lsbCBiZSB0cmVhdGVkIGFzIGFuIGFycmF5CiAgICAgKiBvZiBkZXBlbmRlbmN5IHN0cmluZyBuYW1lcyB0byBmZXRjaC4gQW4gb3B0aW9uYWwgZnVuY3Rpb24gY2FsbGJhY2sgY2FuCiAgICAgKiBiZSBzcGVjaWZpZWQgdG8gZXhlY3V0ZSB3aGVuIGFsbCBvZiB0aG9zZSBkZXBlbmRlbmNpZXMgYXJlIGF2YWlsYWJsZS4KICAgICAqCiAgICAgKiBNYWtlIGEgbG9jYWwgcmVxIHZhcmlhYmxlIHRvIGhlbHAgQ2FqYSBjb21wbGlhbmNlIChpdCBhc3N1bWVzIHRoaW5ncwogICAgICogb24gYSByZXF1aXJlIHRoYXQgYXJlIG5vdCBzdGFuZGFyZGl6ZWQpLCBhbmQgdG8gZ2l2ZSBhIHNob3J0CiAgICAgKiBuYW1lIGZvciBtaW5pZmljYXRpb24vbG9jYWwgc2NvcGUgdXNlLgogICAgICovCiAgICByZXEgPSByZXF1aXJlanMgPSBmdW5jdGlvbiAoZGVwcywgY2FsbGJhY2ssIGVycmJhY2ssIG9wdGlvbmFsKSB7CgogICAgICAgIC8vRmluZCB0aGUgcmlnaHQgY29udGV4dCwgdXNlIGRlZmF1bHQKICAgICAgICB2YXIgY29udGV4dCwgY29uZmlnLAogICAgICAgICAgICBjb250ZXh0TmFtZSA9IGRlZkNvbnRleHROYW1lOwoKICAgICAgICAvLyBEZXRlcm1pbmUgaWYgaGF2ZSBjb25maWcgb2JqZWN0IGluIHRoZSBjYWxsLgogICAgICAgIGlmICghaXNBcnJheShkZXBzKSAmJiB0eXBlb2YgZGVwcyAhPT0gJ3N0cmluZycpIHsKICAgICAgICAgICAgLy8gZGVwcyBpcyBhIGNvbmZpZyBvYmplY3QKICAgICAgICAgICAgY29uZmlnID0gZGVwczsKICAgICAgICAgICAgaWYgKGlzQXJyYXkoY2FsbGJhY2spKSB7CiAgICAgICAgICAgICAgICAvLyBBZGp1c3QgYXJncyBpZiB0aGVyZSBhcmUgZGVwZW5kZW5jaWVzCiAgICAgICAgICAgICAgICBkZXBzID0gY2FsbGJhY2s7CiAgICAgICAgICAgICAgICBjYWxsYmFjayA9IGVycmJhY2s7CiAgICAgICAgICAgICAgICBlcnJiYWNrID0gb3B0aW9uYWw7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBkZXBzID0gW107CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmIChjb25maWcgJiYgY29uZmlnLmNvbnRleHQpIHsKICAgICAgICAgICAgY29udGV4dE5hbWUgPSBjb25maWcuY29udGV4dDsKICAgICAgICB9CgogICAgICAgIGNvbnRleHQgPSBnZXRPd24oY29udGV4dHMsIGNvbnRleHROYW1lKTsKICAgICAgICBpZiAoIWNvbnRleHQpIHsKICAgICAgICAgICAgY29udGV4dCA9IGNvbnRleHRzW2NvbnRleHROYW1lXSA9IHJlcS5zLm5ld0NvbnRleHQoY29udGV4dE5hbWUpOwogICAgICAgIH0KCiAgICAgICAgaWYgKGNvbmZpZykgewogICAgICAgICAgICBjb250ZXh0LmNvbmZpZ3VyZShjb25maWcpOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIGNvbnRleHQucmVxdWlyZShkZXBzLCBjYWxsYmFjaywgZXJyYmFjayk7CiAgICB9OwoKICAgIC8qKgogICAgICogU3VwcG9ydCByZXF1aXJlLmNvbmZpZygpIHRvIG1ha2UgaXQgZWFzaWVyIHRvIGNvb3BlcmF0ZSB3aXRoIG90aGVyCiAgICAgKiBBTUQgbG9hZGVycyBvbiBnbG9iYWxseSBhZ3JlZWQgbmFtZXMuCiAgICAgKi8KICAgIHJlcS5jb25maWcgPSBmdW5jdGlvbiAoY29uZmlnKSB7CiAgICAgICAgcmV0dXJuIHJlcShjb25maWcpOwogICAgfTsKCiAgICAvKioKICAgICAqIEV4ZWN1dGUgc29tZXRoaW5nIGFmdGVyIHRoZSBjdXJyZW50IHRpY2sKICAgICAqIG9mIHRoZSBldmVudCBsb29wLiBPdmVycmlkZSBmb3Igb3RoZXIgZW52cwogICAgICogdGhhdCBoYXZlIGEgYmV0dGVyIHNvbHV0aW9uIHRoYW4gc2V0VGltZW91dC4KICAgICAqIEBwYXJhbSAge0Z1bmN0aW9ufSBmbiBmdW5jdGlvbiB0byBleGVjdXRlIGxhdGVyLgogICAgICovCiAgICByZXEubmV4dFRpY2sgPSB0eXBlb2Ygc2V0VGltZW91dCAhPT0gJ3VuZGVmaW5lZCcgPyBmdW5jdGlvbiAoZm4pIHsKICAgICAgICBzZXRUaW1lb3V0KGZuLCA0KTsKICAgIH0gOiBmdW5jdGlvbiAoZm4pIHsgZm4oKTsgfTsKCiAgICAvKioKICAgICAqIEV4cG9ydCByZXF1aXJlIGFzIGEgZ2xvYmFsLCBidXQgb25seSBpZiBpdCBkb2VzIG5vdCBhbHJlYWR5IGV4aXN0LgogICAgICovCiAgICBpZiAoIXJlcXVpcmUpIHsKICAgICAgICByZXF1aXJlID0gcmVxOwogICAgfQoKICAgIHJlcS52ZXJzaW9uID0gdmVyc2lvbjsKCiAgICAvL1VzZWQgdG8gZmlsdGVyIG91dCBkZXBlbmRlbmNpZXMgdGhhdCBhcmUgYWxyZWFkeSBwYXRocy4KICAgIHJlcS5qc0V4dFJlZ0V4cCA9IC9eXC98OnxcP3xcLmpzJC87CiAgICByZXEuaXNCcm93c2VyID0gaXNCcm93c2VyOwogICAgcyA9IHJlcS5zID0gewogICAgICAgIGNvbnRleHRzOiBjb250ZXh0cywKICAgICAgICBuZXdDb250ZXh0OiBuZXdDb250ZXh0CiAgICB9OwoKICAgIC8vQ3JlYXRlIGRlZmF1bHQgY29udGV4dC4KICAgIHJlcSh7fSk7CgogICAgLy9FeHBvcnRzIHNvbWUgY29udGV4dC1zZW5zaXRpdmUgbWV0aG9kcyBvbiBnbG9iYWwgcmVxdWlyZS4KICAgIGVhY2goWwogICAgICAgICd0b1VybCcsCiAgICAgICAgJ3VuZGVmJywKICAgICAgICAnZGVmaW5lZCcsCiAgICAgICAgJ3NwZWNpZmllZCcKICAgIF0sIGZ1bmN0aW9uIChwcm9wKSB7CiAgICAgICAgLy9SZWZlcmVuY2UgZnJvbSBjb250ZXh0cyBpbnN0ZWFkIG9mIGVhcmx5IGJpbmRpbmcgdG8gZGVmYXVsdCBjb250ZXh0LAogICAgICAgIC8vc28gdGhhdCBkdXJpbmcgYnVpbGRzLCB0aGUgbGF0ZXN0IGluc3RhbmNlIG9mIHRoZSBkZWZhdWx0IGNvbnRleHQKICAgICAgICAvL3dpdGggaXRzIGNvbmZpZyBnZXRzIHVzZWQuCiAgICAgICAgcmVxW3Byb3BdID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICB2YXIgY3R4ID0gY29udGV4dHNbZGVmQ29udGV4dE5hbWVdOwogICAgICAgICAgICByZXR1cm4gY3R4LnJlcXVpcmVbcHJvcF0uYXBwbHkoY3R4LCBhcmd1bWVudHMpOwogICAgICAgIH07CiAgICB9KTsKCiAgICBpZiAoaXNCcm93c2VyKSB7CiAgICAgICAgaGVhZCA9IHMuaGVhZCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF07CiAgICAgICAgLy9JZiBCQVNFIHRhZyBpcyBpbiBwbGF5LCB1c2luZyBhcHBlbmRDaGlsZCBpcyBhIHByb2JsZW0gZm9yIElFNi4KICAgICAgICAvL1doZW4gdGhhdCBicm93c2VyIGRpZXMsIHRoaXMgY2FuIGJlIHJlbW92ZWQuIERldGFpbHMgaW4gdGhpcyBqUXVlcnkgYnVnOgogICAgICAgIC8vaHR0cDovL2Rldi5qcXVlcnkuY29tL3RpY2tldC8yNzA5CiAgICAgICAgYmFzZUVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYmFzZScpWzBdOwogICAgICAgIGlmIChiYXNlRWxlbWVudCkgewogICAgICAgICAgICBoZWFkID0gcy5oZWFkID0gYmFzZUVsZW1lbnQucGFyZW50Tm9kZTsKICAgICAgICB9CiAgICB9CgogICAgLyoqCiAgICAgKiBBbnkgZXJyb3JzIHRoYXQgcmVxdWlyZSBleHBsaWNpdGx5IGdlbmVyYXRlcyB3aWxsIGJlIHBhc3NlZCB0byB0aGlzCiAgICAgKiBmdW5jdGlvbi4gSW50ZXJjZXB0L292ZXJyaWRlIGl0IGlmIHlvdSB3YW50IGN1c3RvbSBlcnJvciBoYW5kbGluZy4KICAgICAqIEBwYXJhbSB7RXJyb3J9IGVyciB0aGUgZXJyb3Igb2JqZWN0LgogICAgICovCiAgICByZXEub25FcnJvciA9IGRlZmF1bHRPbkVycm9yOwoKICAgIC8qKgogICAgICogQ3JlYXRlcyB0aGUgbm9kZSBmb3IgdGhlIGxvYWQgY29tbWFuZC4gT25seSB1c2VkIGluIGJyb3dzZXIgZW52cy4KICAgICAqLwogICAgcmVxLmNyZWF0ZU5vZGUgPSBmdW5jdGlvbiAoY29uZmlnLCBtb2R1bGVOYW1lLCB1cmwpIHsKICAgICAgICB2YXIgbm9kZSA9IGNvbmZpZy54aHRtbCA/CiAgICAgICAgICAgICAgICBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnLCAnaHRtbDpzY3JpcHQnKSA6CiAgICAgICAgICAgICAgICBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsKICAgICAgICBub2RlLnR5cGUgPSBjb25maWcuc2NyaXB0VHlwZSB8fCAndGV4dC9qYXZhc2NyaXB0JzsKICAgICAgICBub2RlLmNoYXJzZXQgPSAndXRmLTgnOwogICAgICAgIG5vZGUuYXN5bmMgPSB0cnVlOwogICAgICAgIHJldHVybiBub2RlOwogICAgfTsKCiAgICAvKioKICAgICAqIERvZXMgdGhlIHJlcXVlc3QgdG8gbG9hZCBhIG1vZHVsZSBmb3IgdGhlIGJyb3dzZXIgY2FzZS4KICAgICAqIE1ha2UgdGhpcyBhIHNlcGFyYXRlIGZ1bmN0aW9uIHRvIGFsbG93IG90aGVyIGVudmlyb25tZW50cwogICAgICogdG8gb3ZlcnJpZGUgaXQuCiAgICAgKgogICAgICogQHBhcmFtIHtPYmplY3R9IGNvbnRleHQgdGhlIHJlcXVpcmUgY29udGV4dCB0byBmaW5kIHN0YXRlLgogICAgICogQHBhcmFtIHtTdHJpbmd9IG1vZHVsZU5hbWUgdGhlIG5hbWUgb2YgdGhlIG1vZHVsZS4KICAgICAqIEBwYXJhbSB7T2JqZWN0fSB1cmwgdGhlIFVSTCB0byB0aGUgbW9kdWxlLgogICAgICovCiAgICByZXEubG9hZCA9IGZ1bmN0aW9uIChjb250ZXh0LCBtb2R1bGVOYW1lLCB1cmwpIHsKICAgICAgICB2YXIgY29uZmlnID0gKGNvbnRleHQgJiYgY29udGV4dC5jb25maWcpIHx8IHt9LAogICAgICAgICAgICBub2RlOwogICAgICAgIGlmIChpc0Jyb3dzZXIpIHsKICAgICAgICAgICAgLy9JbiB0aGUgYnJvd3NlciBzbyB1c2UgYSBzY3JpcHQgdGFnCiAgICAgICAgICAgIG5vZGUgPSByZXEuY3JlYXRlTm9kZShjb25maWcsIG1vZHVsZU5hbWUsIHVybCk7CiAgICAgICAgICAgIGlmIChjb25maWcub25Ob2RlQ3JlYXRlZCkgewogICAgICAgICAgICAgICAgY29uZmlnLm9uTm9kZUNyZWF0ZWQobm9kZSwgY29uZmlnLCBtb2R1bGVOYW1lLCB1cmwpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBub2RlLnNldEF0dHJpYnV0ZSgnZGF0YS1yZXF1aXJlY29udGV4dCcsIGNvbnRleHQuY29udGV4dE5hbWUpOwogICAgICAgICAgICBub2RlLnNldEF0dHJpYnV0ZSgnZGF0YS1yZXF1aXJlbW9kdWxlJywgbW9kdWxlTmFtZSk7CgogICAgICAgICAgICAvL1NldCB1cCBsb2FkIGxpc3RlbmVyLiBUZXN0IGF0dGFjaEV2ZW50IGZpcnN0IGJlY2F1c2UgSUU5IGhhcwogICAgICAgICAgICAvL2Egc3VidGxlIGlzc3VlIGluIGl0cyBhZGRFdmVudExpc3RlbmVyIGFuZCBzY3JpcHQgb25sb2FkIGZpcmluZ3MKICAgICAgICAgICAgLy90aGF0IGRvIG5vdCBtYXRjaCB0aGUgYmVoYXZpb3Igb2YgYWxsIG90aGVyIGJyb3dzZXJzIHdpdGgKICAgICAgICAgICAgLy9hZGRFdmVudExpc3RlbmVyIHN1cHBvcnQsIHdoaWNoIGZpcmUgdGhlIG9ubG9hZCBldmVudCBmb3IgYQogICAgICAgICAgICAvL3NjcmlwdCByaWdodCBhZnRlciB0aGUgc2NyaXB0IGV4ZWN1dGlvbi4gU2VlOgogICAgICAgICAgICAvL2h0dHBzOi8vY29ubmVjdC5taWNyb3NvZnQuY29tL0lFL2ZlZWRiYWNrL2RldGFpbHMvNjQ4MDU3L3NjcmlwdC1vbmxvYWQtZXZlbnQtaXMtbm90LWZpcmVkLWltbWVkaWF0ZWx5LWFmdGVyLXNjcmlwdC1leGVjdXRpb24KICAgICAgICAgICAgLy9VTkZPUlRVTkFURUxZIE9wZXJhIGltcGxlbWVudHMgYXR0YWNoRXZlbnQgYnV0IGRvZXMgbm90IGZvbGxvdyB0aGUgc2NyaXB0CiAgICAgICAgICAgIC8vc2NyaXB0IGV4ZWN1dGlvbiBtb2RlLgogICAgICAgICAgICBpZiAobm9kZS5hdHRhY2hFdmVudCAmJgogICAgICAgICAgICAgICAgICAgIC8vQ2hlY2sgaWYgbm9kZS5hdHRhY2hFdmVudCBpcyBhcnRpZmljaWFsbHkgYWRkZWQgYnkgY3VzdG9tIHNjcmlwdCBvcgogICAgICAgICAgICAgICAgICAgIC8vbmF0aXZlbHkgc3VwcG9ydGVkIGJ5IGJyb3dzZXIKICAgICAgICAgICAgICAgICAgICAvL3JlYWQgaHR0cHM6Ly9naXRodWIuY29tL2pyYnVya2UvcmVxdWlyZWpzL2lzc3Vlcy8xODcKICAgICAgICAgICAgICAgICAgICAvL2lmIHdlIGNhbiBOT1QgZmluZCBbbmF0aXZlIGNvZGVdIHRoZW4gaXQgbXVzdCBOT1QgbmF0aXZlbHkgc3VwcG9ydGVkLgogICAgICAgICAgICAgICAgICAgIC8vaW4gSUU4LCBub2RlLmF0dGFjaEV2ZW50IGRvZXMgbm90IGhhdmUgdG9TdHJpbmcoKQogICAgICAgICAgICAgICAgICAgIC8vTm90ZSB0aGUgdGVzdCBmb3IgIltuYXRpdmUgY29kZSIgd2l0aCBubyBjbG9zaW5nIGJyYWNlLCBzZWU6CiAgICAgICAgICAgICAgICAgICAgLy9odHRwczovL2dpdGh1Yi5jb20vanJidXJrZS9yZXF1aXJlanMvaXNzdWVzLzI3MwogICAgICAgICAgICAgICAgICAgICEobm9kZS5hdHRhY2hFdmVudC50b1N0cmluZyAmJiBub2RlLmF0dGFjaEV2ZW50LnRvU3RyaW5nKCkuaW5kZXhPZignW25hdGl2ZSBjb2RlJykgPCAwKSAmJgogICAgICAgICAgICAgICAgICAgICFpc09wZXJhKSB7CiAgICAgICAgICAgICAgICAvL1Byb2JhYmx5IElFLiBJRSAoYXQgbGVhc3QgNi04KSBkbyBub3QgZmlyZQogICAgICAgICAgICAgICAgLy9zY3JpcHQgb25sb2FkIHJpZ2h0IGFmdGVyIGV4ZWN1dGluZyB0aGUgc2NyaXB0LCBzbwogICAgICAgICAgICAgICAgLy93ZSBjYW5ub3QgdGllIHRoZSBhbm9ueW1vdXMgZGVmaW5lIGNhbGwgdG8gYSBuYW1lLgogICAgICAgICAgICAgICAgLy9Ib3dldmVyLCBJRSByZXBvcnRzIHRoZSBzY3JpcHQgYXMgYmVpbmcgaW4gJ2ludGVyYWN0aXZlJwogICAgICAgICAgICAgICAgLy9yZWFkeVN0YXRlIGF0IHRoZSB0aW1lIG9mIHRoZSBkZWZpbmUgY2FsbC4KICAgICAgICAgICAgICAgIHVzZUludGVyYWN0aXZlID0gdHJ1ZTsKCiAgICAgICAgICAgICAgICBub2RlLmF0dGFjaEV2ZW50KCdvbnJlYWR5c3RhdGVjaGFuZ2UnLCBjb250ZXh0Lm9uU2NyaXB0TG9hZCk7CiAgICAgICAgICAgICAgICAvL0l0IHdvdWxkIGJlIGdyZWF0IHRvIGFkZCBhbiBlcnJvciBoYW5kbGVyIGhlcmUgdG8gY2F0Y2gKICAgICAgICAgICAgICAgIC8vNDA0cyBpbiBJRTkrLiBIb3dldmVyLCBvbnJlYWR5c3RhdGVjaGFuZ2Ugd2lsbCBmaXJlIGJlZm9yZQogICAgICAgICAgICAgICAgLy90aGUgZXJyb3IgaGFuZGxlciwgc28gdGhhdCBkb2VzIG5vdCBoZWxwLiBJZiBhZGRFdmVudExpc3RlbmVyCiAgICAgICAgICAgICAgICAvL2lzIHVzZWQsIHRoZW4gSUUgd2lsbCBmaXJlIGVycm9yIGJlZm9yZSBsb2FkLCBidXQgd2UgY2Fubm90CiAgICAgICAgICAgICAgICAvL3VzZSB0aGF0IHBhdGh3YXkgZ2l2ZW4gdGhlIGNvbm5lY3QubWljcm9zb2Z0LmNvbSBpc3N1ZQogICAgICAgICAgICAgICAgLy9tZW50aW9uZWQgYWJvdmUgYWJvdXQgbm90IGRvaW5nIHRoZSAnc2NyaXB0IGV4ZWN1dGUsCiAgICAgICAgICAgICAgICAvL3RoZW4gZmlyZSB0aGUgc2NyaXB0IGxvYWQgZXZlbnQgbGlzdGVuZXIgYmVmb3JlIGV4ZWN1dGUKICAgICAgICAgICAgICAgIC8vbmV4dCBzY3JpcHQnIHRoYXQgb3RoZXIgYnJvd3NlcnMgZG8uCiAgICAgICAgICAgICAgICAvL0Jlc3QgaG9wZTogSUUxMCBmaXhlcyB0aGUgaXNzdWVzLAogICAgICAgICAgICAgICAgLy9hbmQgdGhlbiBkZXN0cm95cyBhbGwgaW5zdGFsbHMgb2YgSUUgNi05LgogICAgICAgICAgICAgICAgLy9ub2RlLmF0dGFjaEV2ZW50KCdvbmVycm9yJywgY29udGV4dC5vblNjcmlwdEVycm9yKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIG5vZGUuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGNvbnRleHQub25TY3JpcHRMb2FkLCBmYWxzZSk7CiAgICAgICAgICAgICAgICBub2RlLmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgY29udGV4dC5vblNjcmlwdEVycm9yLCBmYWxzZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbm9kZS5zcmMgPSB1cmw7CgogICAgICAgICAgICAvL0ZvciBzb21lIGNhY2hlIGNhc2VzIGluIElFIDYtOCwgdGhlIHNjcmlwdCBleGVjdXRlcyBiZWZvcmUgdGhlIGVuZAogICAgICAgICAgICAvL29mIHRoZSBhcHBlbmRDaGlsZCBleGVjdXRpb24sIHNvIHRvIHRpZSBhbiBhbm9ueW1vdXMgZGVmaW5lCiAgICAgICAgICAgIC8vY2FsbCB0byB0aGUgbW9kdWxlIG5hbWUgKHdoaWNoIGlzIHN0b3JlZCBvbiB0aGUgbm9kZSksIGhvbGQgb24KICAgICAgICAgICAgLy90byBhIHJlZmVyZW5jZSB0byB0aGlzIG5vZGUsIGJ1dCBjbGVhciBhZnRlciB0aGUgRE9NIGluc2VydGlvbi4KICAgICAgICAgICAgY3VycmVudGx5QWRkaW5nU2NyaXB0ID0gbm9kZTsKICAgICAgICAgICAgaWYgKGJhc2VFbGVtZW50KSB7CiAgICAgICAgICAgICAgICBoZWFkLmluc2VydEJlZm9yZShub2RlLCBiYXNlRWxlbWVudCk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBoZWFkLmFwcGVuZENoaWxkKG5vZGUpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGN1cnJlbnRseUFkZGluZ1NjcmlwdCA9IG51bGw7CgogICAgICAgICAgICByZXR1cm4gbm9kZTsKICAgICAgICB9IGVsc2UgaWYgKGlzV2ViV29ya2VyKSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAvL0luIGEgd2ViIHdvcmtlciwgdXNlIGltcG9ydFNjcmlwdHMuIFRoaXMgaXMgbm90IGEgdmVyeQogICAgICAgICAgICAgICAgLy9lZmZpY2llbnQgdXNlIG9mIGltcG9ydFNjcmlwdHMsIGltcG9ydFNjcmlwdHMgd2lsbCBibG9jayB1bnRpbAogICAgICAgICAgICAgICAgLy9pdHMgc2NyaXB0IGlzIGRvd25sb2FkZWQgYW5kIGV2YWx1YXRlZC4gSG93ZXZlciwgaWYgd2ViIHdvcmtlcnMKICAgICAgICAgICAgICAgIC8vYXJlIGluIHBsYXksIHRoZSBleHBlY3RhdGlvbiBpcyB0aGF0IGEgYnVpbGQgaGFzIGJlZW4gZG9uZSBzbwogICAgICAgICAgICAgICAgLy90aGF0IG9ubHkgb25lIHNjcmlwdCBuZWVkcyB0byBiZSBsb2FkZWQgYW55d2F5LiBUaGlzIG1heSBuZWVkCiAgICAgICAgICAgICAgICAvL3RvIGJlIHJlZXZhbHVhdGVkIGlmIG90aGVyIHVzZSBjYXNlcyBiZWNvbWUgY29tbW9uLgogICAgICAgICAgICAgICAgaW1wb3J0U2NyaXB0cyh1cmwpOwoKICAgICAgICAgICAgICAgIC8vQWNjb3VudCBmb3IgYW5vbnltb3VzIG1vZHVsZXMKICAgICAgICAgICAgICAgIGNvbnRleHQuY29tcGxldGVMb2FkKG1vZHVsZU5hbWUpOwogICAgICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgICAgICBjb250ZXh0Lm9uRXJyb3IobWFrZUVycm9yKCdpbXBvcnRzY3JpcHRzJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaW1wb3J0U2NyaXB0cyBmYWlsZWQgZm9yICcgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2R1bGVOYW1lICsgJyBhdCAnICsgdXJsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21vZHVsZU5hbWVdKSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9OwoKICAgIGZ1bmN0aW9uIGdldEludGVyYWN0aXZlU2NyaXB0KCkgewogICAgICAgIGlmIChpbnRlcmFjdGl2ZVNjcmlwdCAmJiBpbnRlcmFjdGl2ZVNjcmlwdC5yZWFkeVN0YXRlID09PSAnaW50ZXJhY3RpdmUnKSB7CiAgICAgICAgICAgIHJldHVybiBpbnRlcmFjdGl2ZVNjcmlwdDsKICAgICAgICB9CgogICAgICAgIGVhY2hSZXZlcnNlKHNjcmlwdHMoKSwgZnVuY3Rpb24gKHNjcmlwdCkgewogICAgICAgICAgICBpZiAoc2NyaXB0LnJlYWR5U3RhdGUgPT09ICdpbnRlcmFjdGl2ZScpIHsKICAgICAgICAgICAgICAgIHJldHVybiAoaW50ZXJhY3RpdmVTY3JpcHQgPSBzY3JpcHQpOwogICAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgcmV0dXJuIGludGVyYWN0aXZlU2NyaXB0OwogICAgfQoKICAgIC8vTG9vayBmb3IgYSBkYXRhLW1haW4gc2NyaXB0IGF0dHJpYnV0ZSwgd2hpY2ggY291bGQgYWxzbyBhZGp1c3QgdGhlIGJhc2VVcmwuCiAgICBpZiAoaXNCcm93c2VyICYmICFjZmcuc2tpcERhdGFNYWluKSB7CiAgICAgICAgLy9GaWd1cmUgb3V0IGJhc2VVcmwuIEdldCBpdCBmcm9tIHRoZSBzY3JpcHQgdGFnIHdpdGggcmVxdWlyZS5qcyBpbiBpdC4KICAgICAgICBlYWNoUmV2ZXJzZShzY3JpcHRzKCksIGZ1bmN0aW9uIChzY3JpcHQpIHsKICAgICAgICAgICAgLy9TZXQgdGhlICdoZWFkJyB3aGVyZSB3ZSBjYW4gYXBwZW5kIGNoaWxkcmVuIGJ5CiAgICAgICAgICAgIC8vdXNpbmcgdGhlIHNjcmlwdCdzIHBhcmVudC4KICAgICAgICAgICAgaWYgKCFoZWFkKSB7CiAgICAgICAgICAgICAgICBoZWFkID0gc2NyaXB0LnBhcmVudE5vZGU7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vTG9vayBmb3IgYSBkYXRhLW1haW4gYXR0cmlidXRlIHRvIHNldCBtYWluIHNjcmlwdCBmb3IgdGhlIHBhZ2UKICAgICAgICAgICAgLy90byBsb2FkLiBJZiBpdCBpcyB0aGVyZSwgdGhlIHBhdGggdG8gZGF0YSBtYWluIGJlY29tZXMgdGhlCiAgICAgICAgICAgIC8vYmFzZVVybCwgaWYgaXQgaXMgbm90IGFscmVhZHkgc2V0LgogICAgICAgICAgICBkYXRhTWFpbiA9IHNjcmlwdC5nZXRBdHRyaWJ1dGUoJ2RhdGEtbWFpbicpOwogICAgICAgICAgICBpZiAoZGF0YU1haW4pIHsKICAgICAgICAgICAgICAgIC8vUHJlc2VydmUgZGF0YU1haW4gaW4gY2FzZSBpdCBpcyBhIHBhdGggKGkuZS4gY29udGFpbnMgJz8nKQogICAgICAgICAgICAgICAgbWFpblNjcmlwdCA9IGRhdGFNYWluOwoKICAgICAgICAgICAgICAgIC8vU2V0IGZpbmFsIGJhc2VVcmwgaWYgdGhlcmUgaXMgbm90IGFscmVhZHkgYW4gZXhwbGljaXQgb25lLgogICAgICAgICAgICAgICAgaWYgKCFjZmcuYmFzZVVybCkgewogICAgICAgICAgICAgICAgICAgIC8vUHVsbCBvZmYgdGhlIGRpcmVjdG9yeSBvZiBkYXRhLW1haW4gZm9yIHVzZSBhcyB0aGUKICAgICAgICAgICAgICAgICAgICAvL2Jhc2VVcmwuCiAgICAgICAgICAgICAgICAgICAgc3JjID0gbWFpblNjcmlwdC5zcGxpdCgnLycpOwogICAgICAgICAgICAgICAgICAgIG1haW5TY3JpcHQgPSBzcmMucG9wKCk7CiAgICAgICAgICAgICAgICAgICAgc3ViUGF0aCA9IHNyYy5sZW5ndGggPyBzcmMuam9pbignLycpICArICcvJyA6ICcuLyc7CgogICAgICAgICAgICAgICAgICAgIGNmZy5iYXNlVXJsID0gc3ViUGF0aDsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAvL1N0cmlwIG9mZiBhbnkgdHJhaWxpbmcgLmpzIHNpbmNlIG1haW5TY3JpcHQgaXMgbm93CiAgICAgICAgICAgICAgICAvL2xpa2UgYSBtb2R1bGUgbmFtZS4KICAgICAgICAgICAgICAgIG1haW5TY3JpcHQgPSBtYWluU2NyaXB0LnJlcGxhY2UoanNTdWZmaXhSZWdFeHAsICcnKTsKCiAgICAgICAgICAgICAgICAvL0lmIG1haW5TY3JpcHQgaXMgc3RpbGwgYSBwYXRoLCBmYWxsIGJhY2sgdG8gZGF0YU1haW4KICAgICAgICAgICAgICAgIGlmIChyZXEuanNFeHRSZWdFeHAudGVzdChtYWluU2NyaXB0KSkgewogICAgICAgICAgICAgICAgICAgIG1haW5TY3JpcHQgPSBkYXRhTWFpbjsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAvL1B1dCB0aGUgZGF0YS1tYWluIHNjcmlwdCBpbiB0aGUgZmlsZXMgdG8gbG9hZC4KICAgICAgICAgICAgICAgIGNmZy5kZXBzID0gY2ZnLmRlcHMgPyBjZmcuZGVwcy5jb25jYXQobWFpblNjcmlwdCkgOiBbbWFpblNjcmlwdF07CgogICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgIH0KCiAgICAvKioKICAgICAqIFRoZSBmdW5jdGlvbiB0aGF0IGhhbmRsZXMgZGVmaW5pdGlvbnMgb2YgbW9kdWxlcy4gRGlmZmVycyBmcm9tCiAgICAgKiByZXF1aXJlKCkgaW4gdGhhdCBhIHN0cmluZyBmb3IgdGhlIG1vZHVsZSBzaG91bGQgYmUgdGhlIGZpcnN0IGFyZ3VtZW50LAogICAgICogYW5kIHRoZSBmdW5jdGlvbiB0byBleGVjdXRlIGFmdGVyIGRlcGVuZGVuY2llcyBhcmUgbG9hZGVkIHNob3VsZAogICAgICogcmV0dXJuIGEgdmFsdWUgdG8gZGVmaW5lIHRoZSBtb2R1bGUgY29ycmVzcG9uZGluZyB0byB0aGUgZmlyc3QgYXJndW1lbnQncwogICAgICogbmFtZS4KICAgICAqLwogICAgZGVmaW5lID0gZnVuY3Rpb24gKG5hbWUsIGRlcHMsIGNhbGxiYWNrKSB7CiAgICAgICAgdmFyIG5vZGUsIGNvbnRleHQ7CgogICAgICAgIC8vQWxsb3cgZm9yIGFub255bW91cyBtb2R1bGVzCiAgICAgICAgaWYgKHR5cGVvZiBuYW1lICE9PSAnc3RyaW5nJykgewogICAgICAgICAgICAvL0FkanVzdCBhcmdzIGFwcHJvcHJpYXRlbHkKICAgICAgICAgICAgY2FsbGJhY2sgPSBkZXBzOwogICAgICAgICAgICBkZXBzID0gbmFtZTsKICAgICAgICAgICAgbmFtZSA9IG51bGw7CiAgICAgICAgfQoKICAgICAgICAvL1RoaXMgbW9kdWxlIG1heSBub3QgaGF2ZSBkZXBlbmRlbmNpZXMKICAgICAgICBpZiAoIWlzQXJyYXkoZGVwcykpIHsKICAgICAgICAgICAgY2FsbGJhY2sgPSBkZXBzOwogICAgICAgICAgICBkZXBzID0gbnVsbDsKICAgICAgICB9CgogICAgICAgIC8vSWYgbm8gbmFtZSwgYW5kIGNhbGxiYWNrIGlzIGEgZnVuY3Rpb24sIHRoZW4gZmlndXJlIG91dCBpZiBpdCBhCiAgICAgICAgLy9Db21tb25KUyB0aGluZyB3aXRoIGRlcGVuZGVuY2llcy4KICAgICAgICBpZiAoIWRlcHMgJiYgaXNGdW5jdGlvbihjYWxsYmFjaykpIHsKICAgICAgICAgICAgZGVwcyA9IFtdOwogICAgICAgICAgICAvL1JlbW92ZSBjb21tZW50cyBmcm9tIHRoZSBjYWxsYmFjayBzdHJpbmcsCiAgICAgICAgICAgIC8vbG9vayBmb3IgcmVxdWlyZSBjYWxscywgYW5kIHB1bGwgdGhlbSBpbnRvIHRoZSBkZXBlbmRlbmNpZXMsCiAgICAgICAgICAgIC8vYnV0IG9ubHkgaWYgdGhlcmUgYXJlIGZ1bmN0aW9uIGFyZ3MuCiAgICAgICAgICAgIGlmIChjYWxsYmFjay5sZW5ndGgpIHsKICAgICAgICAgICAgICAgIGNhbGxiYWNrCiAgICAgICAgICAgICAgICAgICAgLnRvU3RyaW5nKCkKICAgICAgICAgICAgICAgICAgICAucmVwbGFjZShjb21tZW50UmVnRXhwLCAnJykKICAgICAgICAgICAgICAgICAgICAucmVwbGFjZShjanNSZXF1aXJlUmVnRXhwLCBmdW5jdGlvbiAobWF0Y2gsIGRlcCkgewogICAgICAgICAgICAgICAgICAgICAgICBkZXBzLnB1c2goZGVwKTsKICAgICAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICAvL01heSBiZSBhIENvbW1vbkpTIHRoaW5nIGV2ZW4gd2l0aG91dCByZXF1aXJlIGNhbGxzLCBidXQgc3RpbGwKICAgICAgICAgICAgICAgIC8vY291bGQgdXNlIGV4cG9ydHMsIGFuZCBtb2R1bGUuIEF2b2lkIGRvaW5nIGV4cG9ydHMgYW5kIG1vZHVsZQogICAgICAgICAgICAgICAgLy93b3JrIHRob3VnaCBpZiBpdCBqdXN0IG5lZWRzIHJlcXVpcmUuCiAgICAgICAgICAgICAgICAvL1JFUVVJUkVTIHRoZSBmdW5jdGlvbiB0byBleHBlY3QgdGhlIENvbW1vbkpTIHZhcmlhYmxlcyBpbiB0aGUKICAgICAgICAgICAgICAgIC8vb3JkZXIgbGlzdGVkIGJlbG93LgogICAgICAgICAgICAgICAgZGVwcyA9IChjYWxsYmFjay5sZW5ndGggPT09IDEgPyBbJ3JlcXVpcmUnXSA6IFsncmVxdWlyZScsICdleHBvcnRzJywgJ21vZHVsZSddKS5jb25jYXQoZGVwcyk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8vSWYgaW4gSUUgNi04IGFuZCBoaXQgYW4gYW5vbnltb3VzIGRlZmluZSgpIGNhbGwsIGRvIHRoZSBpbnRlcmFjdGl2ZQogICAgICAgIC8vd29yay4KICAgICAgICBpZiAodXNlSW50ZXJhY3RpdmUpIHsKICAgICAgICAgICAgbm9kZSA9IGN1cnJlbnRseUFkZGluZ1NjcmlwdCB8fCBnZXRJbnRlcmFjdGl2ZVNjcmlwdCgpOwogICAgICAgICAgICBpZiAobm9kZSkgewogICAgICAgICAgICAgICAgaWYgKCFuYW1lKSB7CiAgICAgICAgICAgICAgICAgICAgbmFtZSA9IG5vZGUuZ2V0QXR0cmlidXRlKCdkYXRhLXJlcXVpcmVtb2R1bGUnKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGNvbnRleHQgPSBjb250ZXh0c1tub2RlLmdldEF0dHJpYnV0ZSgnZGF0YS1yZXF1aXJlY29udGV4dCcpXTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLy9BbHdheXMgc2F2ZSBvZmYgZXZhbHVhdGluZyB0aGUgZGVmIGNhbGwgdW50aWwgdGhlIHNjcmlwdCBvbmxvYWQgaGFuZGxlci4KICAgICAgICAvL1RoaXMgYWxsb3dzIG11bHRpcGxlIG1vZHVsZXMgdG8gYmUgaW4gYSBmaWxlIHdpdGhvdXQgcHJlbWF0dXJlbHkKICAgICAgICAvL3RyYWNpbmcgZGVwZW5kZW5jaWVzLCBhbmQgYWxsb3dzIGZvciBhbm9ueW1vdXMgbW9kdWxlIHN1cHBvcnQsCiAgICAgICAgLy93aGVyZSB0aGUgbW9kdWxlIG5hbWUgaXMgbm90IGtub3duIHVudGlsIHRoZSBzY3JpcHQgb25sb2FkIGV2ZW50CiAgICAgICAgLy9vY2N1cnMuIElmIG5vIGNvbnRleHQsIHVzZSB0aGUgZ2xvYmFsIHF1ZXVlLCBhbmQgZ2V0IGl0IHByb2Nlc3NlZAogICAgICAgIC8vaW4gdGhlIG9uc2NyaXB0IGxvYWQgY2FsbGJhY2suCiAgICAgICAgaWYgKGNvbnRleHQpIHsKICAgICAgICAgICAgY29udGV4dC5kZWZRdWV1ZS5wdXNoKFtuYW1lLCBkZXBzLCBjYWxsYmFja10pOwogICAgICAgICAgICBjb250ZXh0LmRlZlF1ZXVlTWFwW25hbWVdID0gdHJ1ZTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBnbG9iYWxEZWZRdWV1ZS5wdXNoKFtuYW1lLCBkZXBzLCBjYWxsYmFja10pOwogICAgICAgIH0KICAgIH07CgogICAgZGVmaW5lLmFtZCA9IHsKICAgICAgICBqUXVlcnk6IHRydWUKICAgIH07CgogICAgLyoqCiAgICAgKiBFeGVjdXRlcyB0aGUgdGV4dC4gTm9ybWFsbHkganVzdCB1c2VzIGV2YWwsIGJ1dCBjYW4gYmUgbW9kaWZpZWQKICAgICAqIHRvIHVzZSBhIGJldHRlciwgZW52aXJvbm1lbnQtc3BlY2lmaWMgY2FsbC4gT25seSB1c2VkIGZvciB0cmFuc3BpbGluZwogICAgICogbG9hZGVyIHBsdWdpbnMsIG5vdCBmb3IgcGxhaW4gSlMgbW9kdWxlcy4KICAgICAqIEBwYXJhbSB7U3RyaW5nfSB0ZXh0IHRoZSB0ZXh0IHRvIGV4ZWN1dGUvZXZhbHVhdGUuCiAgICAgKi8KICAgIHJlcS5leGVjID0gZnVuY3Rpb24gKHRleHQpIHsKICAgICAgICAvKmpzbGludCBldmlsOiB0cnVlICovCiAgICAgICAgcmV0dXJuIGV2YWwodGV4dCk7CiAgICB9OwoKICAgIC8vU2V0IHVwIHdpdGggY29uZmlnIGluZm8uCiAgICByZXEoY2ZnKTsKfSh0aGlzKSk7Cg==",
"headers": [
[
"content-type",
"text/javascript"
]
],
"ok": true,
"status": 200,
"status_text": ""
}
},
"base_uri": "https://localhost:8080/",
"height": 542
}
},
"cell_type": "code",
"source": [
"import plotly.plotly as py\n",
"import numpy as np\n",
"from plotly.offline import iplot\n",
"from plotly.graph_objs import Contours, Histogram2dContour, Marker, Scatter\n",
"\n",
"enable_plotly_in_cell()\n",
"\n",
"x = np.random.randn(2000)\n",
"y = np.random.randn(2000)\n",
"iplot([Histogram2dContour(x=x, y=y, contours=Contours(coloring='heatmap')),\n",
" Scatter(x=x, y=y, mode='markers', marker=Marker(color='white', size=3, opacity=0.3))], show_link=False)\n"
],
"execution_count": 0,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/html": [
"\n",
" <script src=\"/static/components/requirejs/require.js\"></script>\n",
" "
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "display_data",
"data": {
"text/html": [
"<script type='text/javascript'>if(!window.Plotly){define('plotly', function(require, exports, module) {/**\n",
"* plotly.js v1.20.5\n",
"* Copyright 2012-2016, Plotly, Inc.\n",
"* All rights reserved.\n",
"* Licensed under the MIT license\n",
"*/\n",
"!function(t){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=t();else if(\"function\"==typeof define&&define.amd)define([],t);else{var e;e=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:this,e.Plotly=t()}}(function(){var t;return function t(e,r,n){function i(o,s){if(!r[o]){if(!e[o]){var l=\"function\"==typeof require&&require;if(!s&&l)return l(o,!0);if(a)return a(o,!0);var u=new Error(\"Cannot find module '\"+o+\"'\");throw u.code=\"MODULE_NOT_FOUND\",u}var c=r[o]={exports:{}};e[o][0].call(c.exports,function(t){var r=e[o][1][t];return i(r?r:t)},c,c.exports,t,e,r,n)}return r[o].exports}for(var a=\"function\"==typeof require&&require,o=0;o<n.length;o++)i(n[o]);return i}({1:[function(t,e,r){\"use strict\";var n=t(\"../src/lib\"),i={\"X,X div\":\"font-family:'Open Sans', verdana, arial, sans-serif;margin:0;padding:0;\",\"X input,X button\":\"font-family:'Open Sans', verdana, arial, sans-serif;\",\"X input:focus,X button:focus\":\"outline:none;\",\"X a\":\"text-decoration:none;\",\"X a:hover\":\"text-decoration:none;\",\"X .crisp\":\"shape-rendering:crispEdges;\",\"X .user-select-none\":\"-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;\",\"X svg\":\"overflow:hidden;\",\"X svg a\":\"fill:#447adb;\",\"X svg a:hover\":\"fill:#3c6dc5;\",\"X .main-svg\":\"position:absolute;top:0;left:0;pointer-events:none;\",\"X .main-svg .draglayer\":\"pointer-events:all;\",\"X .cursor-pointer\":\"cursor:pointer;\",\"X .cursor-crosshair\":\"cursor:crosshair;\",\"X .cursor-move\":\"cursor:move;\",\"X .cursor-col-resize\":\"cursor:col-resize;\",\"X .cursor-row-resize\":\"cursor:row-resize;\",\"X .cursor-ns-resize\":\"cursor:ns-resize;\",\"X .cursor-ew-resize\":\"cursor:ew-resize;\",\"X .cursor-sw-resize\":\"cursor:sw-resize;\",\"X .cursor-s-resize\":\"cursor:s-resize;\",\"X .cursor-se-resize\":\"cursor:se-resize;\",\"X .cursor-w-resize\":\"cursor:w-resize;\",\"X .cursor-e-resize\":\"cursor:e-resize;\",\"X .cursor-nw-resize\":\"cursor:nw-resize;\",\"X .cursor-n-resize\":\"cursor:n-resize;\",\"X .cursor-ne-resize\":\"cursor:ne-resize;\",\"X .modebar\":\"position:absolute;top:2px;right:2px;z-index:1001;background:rgba(255,255,255,0.7);\",\"X .modebar--hover\":\"opacity:0;-webkit-transition:opacity 0.3s ease 0s;-moz-transition:opacity 0.3s ease 0s;-ms-transition:opacity 0.3s ease 0s;-o-transition:opacity 0.3s ease 0s;transition:opacity 0.3s ease 0s;\",\"X:hover .modebar--hover\":\"opacity:1;\",\"X .modebar-group\":\"float:left;display:inline-block;box-sizing:border-box;margin-left:8px;position:relative;vertical-align:middle;white-space:nowrap;\",\"X .modebar-group:first-child\":\"margin-left:0px;\",\"X .modebar-btn\":\"position:relative;font-size:16px;padding:3px 4px;cursor:pointer;line-height:normal;box-sizing:border-box;\",\"X .modebar-btn svg\":\"position:relative;top:2px;\",\"X .modebar-btn path\":\"fill:rgba(0,31,95,0.3);\",\"X .modebar-btn.active path,X .modebar-btn:hover path\":\"fill:rgba(0,22,72,0.5);\",\"X .modebar-btn.modebar-btn--logo\":\"padding:3px 1px;\",\"X .modebar-btn.modebar-btn--logo path\":\"fill:#447adb !important;\",\"X [data-title]:before,X [data-title]:after\":\"position:absolute;-webkit-transform:translate3d(0, 0, 0);-moz-transform:translate3d(0, 0, 0);-ms-transform:translate3d(0, 0, 0);-o-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);display:none;opacity:0;z-index:1001;pointer-events:none;top:110%;right:50%;\",\"X [data-title]:hover:before,X [data-title]:hover:after\":\"display:block;opacity:1;\",\"X [data-title]:before\":\"content:'';position:absolute;background:transparent;border:6px solid transparent;z-index:1002;margin-top:-12px;border-bottom-color:#69738a;margin-right:-6px;\",\"X [data-title]:after\":\"content:attr(data-title);background:#69738a;color:white;padding:8px 10px;font-size:12px;line-height:12px;white-space:nowrap;margin-right:-18px;border-radius:2px;\",\"X .select-outline\":\"fill:none;stroke-width:1;shape-rendering:crispEdges;\",\"X .select-outline-1\":\"stroke:white;\",\"X .select-outline-2\":\"stroke:black;stroke-dasharray:2px 2px;\",Y:\"font-family:'Open Sans';position:fixed;top:50px;right:20px;z-index:10000;font-size:10pt;max-width:180px;\",\"Y p\":\"margin:0;\",\"Y .notifier-note\":\"min-width:180px;max-width:250px;border:1px solid #fff;z-index:3000;margin:0;background-color:#8c97af;background-color:rgba(140,151,175,0.9);color:#fff;padding:10px;\",\"Y .notifier-close\":\"color:#fff;opacity:0.8;float:right;padding:0 5px;background:none;border:none;font-size:20px;font-weight:bold;line-height:20px;\",\"Y .notifier-close:hover\":\"color:#444;text-decoration:none;cursor:pointer;\"};for(var a in i){var o=a.replace(/^,/,\" ,\").replace(/X/g,\".js-plotly-plot .plotly\").replace(/Y/g,\".plotly-notifier\");n.addStyleRule(o,i[a])}},{\"../src/lib\":633}],2:[function(t,e,r){\"use strict\";e.exports={undo:{width:857.1,path:\"m857 350q0-87-34-166t-91-137-137-92-166-34q-96 0-183 41t-147 114q-4 6-4 13t5 11l76 77q6 5 14 5 9-1 13-7 41-53 100-82t126-29q58 0 110 23t92 61 61 91 22 111-22 111-61 91-92 61-110 23q-55 0-105-20t-90-57l77-77q17-16 8-38-10-23-33-23h-250q-15 0-25 11t-11 25v250q0 24 22 33 22 10 39-8l72-72q60 57 137 88t159 31q87 0 166-34t137-92 91-137 34-166z\",ascent:850,descent:-150},home:{width:928.6,path:\"m786 296v-267q0-15-11-26t-25-10h-214v214h-143v-214h-214q-15 0-25 10t-11 26v267q0 1 0 2t0 2l321 264 321-264q1-1 1-4z m124 39l-34-41q-5-5-12-6h-2q-7 0-12 3l-386 322-386-322q-7-4-13-4-7 2-12 7l-35 41q-4 5-3 13t6 12l401 334q18 15 42 15t43-15l136-114v109q0 8 5 13t13 5h107q8 0 13-5t5-13v-227l122-102q5-5 6-12t-4-13z\",ascent:850,descent:-150},\"camera-retro\":{width:1e3,path:\"m518 386q0 8-5 13t-13 5q-37 0-63-27t-26-63q0-8 5-13t13-5 12 5 5 13q0 23 16 38t38 16q8 0 13 5t5 13z m125-73q0-59-42-101t-101-42-101 42-42 101 42 101 101 42 101-42 42-101z m-572-320h858v71h-858v-71z m643 320q0 89-62 152t-152 62-151-62-63-152 63-151 151-63 152 63 62 151z m-571 358h214v72h-214v-72z m-72-107h858v143h-462l-36-71h-360v-72z m929 143v-714q0-30-21-51t-50-21h-858q-29 0-50 21t-21 51v714q0 30 21 51t50 21h858q29 0 50-21t21-51z\",ascent:850,descent:-150},zoombox:{width:1e3,path:\"m1000-25l-250 251c40 63 63 138 63 218 0 224-182 406-407 406-224 0-406-182-406-406s183-406 407-406c80 0 155 22 218 62l250-250 125 125z m-812 250l0 438 437 0 0-438-437 0z m62 375l313 0 0-312-313 0 0 312z\",ascent:850,descent:-150},pan:{width:1e3,path:\"m1000 350l-187 188 0-125-250 0 0 250 125 0-188 187-187-187 125 0 0-250-250 0 0 125-188-188 186-187 0 125 252 0 0-250-125 0 187-188 188 188-125 0 0 250 250 0 0-126 187 188z\",ascent:850,descent:-150},zoom_plus:{width:1e3,path:\"m1 787l0-875 875 0 0 875-875 0z m687-500l-187 0 0-187-125 0 0 187-188 0 0 125 188 0 0 187 125 0 0-187 187 0 0-125z\",ascent:850,descent:-150},zoom_minus:{width:1e3,path:\"m0 788l0-876 875 0 0 876-875 0z m688-500l-500 0 0 125 500 0 0-125z\",ascent:850,descent:-150},autoscale:{width:1e3,path:\"m250 850l-187 0-63 0 0-62 0-188 63 0 0 188 187 0 0 62z m688 0l-188 0 0-62 188 0 0-188 62 0 0 188 0 62-62 0z m-875-938l0 188-63 0 0-188 0-62 63 0 187 0 0 62-187 0z m875 188l0-188-188 0 0-62 188 0 62 0 0 62 0 188-62 0z m-125 188l-1 0-93-94-156 156 156 156 92-93 2 0 0 250-250 0 0-2 93-92-156-156-156 156 94 92 0 2-250 0 0-250 0 0 93 93 157-156-157-156-93 94 0 0 0-250 250 0 0 0-94 93 156 157 156-157-93-93 0 0 250 0 0 250z\",ascent:850,descent:-150},tooltip_basic:{width:1500,path:\"m375 725l0 0-375-375 375-374 0-1 1125 0 0 750-1125 0z\",ascent:850,descent:-150},tooltip_compare:{width:1125,path:\"m187 786l0 2-187-188 188-187 0 0 937 0 0 373-938 0z m0-499l0 1-187-188 188-188 0 0 937 0 0 376-938-1z\",ascent:850,descent:-150},plotlylogo:{width:1542,path:\"m0-10h182v-140h-182v140z m228 146h183v-286h-183v286z m225 714h182v-1000h-182v1000z m225-285h182v-715h-182v715z m225 142h183v-857h-183v857z m231-428h182v-429h-182v429z m225-291h183v-138h-183v138z\",ascent:850,descent:-150},\"z-axis\":{width:1e3,path:\"m833 5l-17 108v41l-130-65 130-66c0 0 0 38 0 39 0-1 36-14 39-25 4-15-6-22-16-30-15-12-39-16-56-20-90-22-187-23-279-23-261 0-341 34-353 59 3 60 228 110 228 110-140-8-351-35-351-116 0-120 293-142 474-142 155 0 477 22 477 142 0 50-74 79-163 96z m-374 94c-58-5-99-21-99-40 0-24 65-43 144-43 79 0 143 19 143 43 0 19-42 34-98 40v216h87l-132 135-133-135h88v-216z m167 515h-136v1c16 16 31 34 46 52l84 109v54h-230v-71h124v-1c-16-17-28-32-44-51l-89-114v-51h245v72z\",ascent:850,descent:-150},\"3d_rotate\":{width:1e3,path:\"m922 660c-5 4-9 7-14 11-359 263-580-31-580-31l-102 28 58-400c0 1 1 1 2 2 118 108 351 249 351 249s-62 27-100 42c88 83 222 183 347 122 16-8 30-17 44-27-2 1-4 2-6 4z m36-329c0 0 64 229-88 296-62 27-124 14-175-11 157-78 225-208 249-266 8-19 11-31 11-31 2 5 6 15 11 32-5-13-8-20-8-20z m-775-239c70-31 117-50 198-32-121 80-199 346-199 346l-96-15-58-12c0 0 55-226 155-287z m603 133l-317-139c0 0 4-4 19-14 7-5 24-15 24-15s-177-147-389 4c235-287 536-112 536-112l31-22 100 299-4-1z m-298-153c6-4 14-9 24-15 0 0-17 10-24 15z\",ascent:850,descent:-150},camera:{width:1e3,path:\"m500 450c-83 0-150-67-150-150 0-83 67-150 150-150 83 0 150 67 150 150 0 83-67 150-150 150z m400 150h-120c-16 0-34 13-39 29l-31 93c-6 15-23 28-40 28h-340c-16 0-34-13-39-28l-31-94c-6-15-23-28-40-28h-120c-55 0-100-45-100-100v-450c0-55 45-100 100-100h800c55 0 100 45 100 100v450c0 55-45 100-100 100z m-400-550c-138 0-250 112-250 250 0 138 112 250 250 250 138 0 250-112 250-250 0-138-112-250-250-250z m365 380c-19 0-35 16-35 35 0 19 16 35 35 35 19 0 35-16 35-35 0-19-16-35-35-35z\",ascent:850,descent:-150},movie:{width:1e3,path:\"m938 413l-188-125c0 37-17 71-44 94 64 38 107 107 107 187 0 121-98 219-219 219-121 0-219-98-219-219 0-61 25-117 66-156h-115c30 33 49 76 49 125 0 103-84 187-187 187s-188-84-188-187c0-57 26-107 65-141-38-22-65-62-65-109v-250c0-70 56-126 125-126h500c69 0 125 56 125 126l188-126c34 0 62 28 62 63v375c0 35-28 63-62 63z m-750 0c-69 0-125 56-125 125s56 125 125 125 125-56 125-125-56-125-125-125z m406-1c-87 0-157 70-157 157 0 86 70 156 157 156s156-70 156-156-70-157-156-157z\",ascent:850,descent:-150},question:{width:857.1,path:\"m500 82v107q0 8-5 13t-13 5h-107q-8 0-13-5t-5-13v-107q0-8 5-13t13-5h107q8 0 13 5t5 13z m143 375q0 49-31 91t-77 65-95 23q-136 0-207-119-9-14 4-24l74-55q4-4 10-4 9 0 14 7 30 38 48 51 19 14 48 14 27 0 48-15t21-33q0-21-11-34t-38-25q-35-16-65-48t-29-70v-20q0-8 5-13t13-5h107q8 0 13 5t5 13q0 10 12 27t30 28q18 10 28 16t25 19 25 27 16 34 7 45z m214-107q0-117-57-215t-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58 215-58 156-156 57-215z\",ascent:850,descent:-150},disk:{width:857.1,path:\"m214-7h429v214h-429v-214z m500 0h72v500q0 8-6 21t-11 20l-157 156q-5 6-19 12t-22 5v-232q0-22-15-38t-38-16h-322q-22 0-37 16t-16 38v232h-72v-714h72v232q0 22 16 38t37 16h465q22 0 38-16t15-38v-232z m-214 518v178q0 8-5 13t-13 5h-107q-7 0-13-5t-5-13v-178q0-8 5-13t13-5h107q7 0 13 5t5 13z m357-18v-518q0-22-15-38t-38-16h-750q-23 0-38 16t-16 38v750q0 22 16 38t38 16h517q23 0 50-12t42-26l156-157q16-15 27-42t11-49z\",ascent:850,descent:-150},lasso:{width:1031,path:\"m1018 538c-36 207-290 336-568 286-277-48-473-256-436-463 10-57 36-108 76-151-13-66 11-137 68-183 34-28 75-41 114-42l-55-70 0 0c-2-1-3-2-4-3-10-14-8-34 5-45 14-11 34-8 45 4 1 1 2 3 2 5l0 0 113 140c16 11 31 24 45 40 4 3 6 7 8 11 48-3 100 0 151 9 278 48 473 255 436 462z m-624-379c-80 14-149 48-197 96 42 42 109 47 156 9 33-26 47-66 41-105z m-187-74c-19 16-33 37-39 60 50-32 109-55 174-68-42-25-95-24-135 8z m360 75c-34-7-69-9-102-8 8 62-16 128-68 170-73 59-175 54-244-5-9 20-16 40-20 61-28 159 121 317 333 354s407-60 434-217c28-159-121-318-333-355z\",ascent:850,descent:-150},selectbox:{width:1e3,path:\"m0 850l0-143 143 0 0 143-143 0z m286 0l0-143 143 0 0 143-143 0z m285 0l0-143 143 0 0 143-143 0z m286 0l0-143 143 0 0 143-143 0z m-857-286l0-143 143 0 0 143-143 0z m857 0l0-143 143 0 0 143-143 0z m-857-285l0-143 143 0 0 143-143 0z m857 0l0-143 143 0 0 143-143 0z m-857-286l0-143 143 0 0 143-143 0z m286 0l0-143 143 0 0 143-143 0z m285 0l0-143 143 0 0 143-143 0z m286 0l0-143 143 0 0 143-143 0z\",ascent:850,descent:-150}}},{}],3:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/bar\")},{\"../src/traces/bar\":753}],4:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/box\")},{\"../src/traces/box\":765}],5:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/candlestick\")},{\"../src/traces/candlestick\":773}],6:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/choropleth\")},{\"../src/traces/choropleth\":778}],7:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/contour\")},{\"../src/traces/contour\":785}],8:[function(t,e,r){\"use strict\";e.exports=t(\"../src/core\")},{\"../src/core\":619}],9:[function(t,e,r){\"use strict\";e.exports=t(\"../src/transforms/filter\")},{\"../src/transforms/filter\":908}],10:[function(t,e,r){\"use strict\";e.exports=t(\"../src/transforms/groupby\")},{\"../src/transforms/groupby\":909}],11:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/heatmap\")},{\"../src/traces/heatmap\":797}],12:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/histogram\")},{\"../src/traces/histogram\":809}],13:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/histogram2d\")},{\"../src/traces/histogram2d\":814}],14:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/histogram2dcontour\")},{\"../src/traces/histogram2dcontour\":818}],15:[function(t,e,r){\"use strict\";var n=t(\"./core\");n.register([t(\"./bar\"),t(\"./box\"),t(\"./heatmap\"),t(\"./histogram\"),t(\"./histogram2d\"),t(\"./histogram2dcontour\"),t(\"./pie\"),t(\"./contour\"),t(\"./scatterternary\"),t(\"./scatter3d\"),t(\"./surface\"),t(\"./mesh3d\"),t(\"./scattergeo\"),t(\"./choropleth\"),t(\"./scattergl\"),t(\"./pointcloud\"),t(\"./scattermapbox\"),t(\"./ohlc\"),t(\"./candlestick\")]),n.register([t(\"./filter\"),t(\"./groupby\")]),e.exports=n},{\"./bar\":3,\"./box\":4,\"./candlestick\":5,\"./choropleth\":6,\"./contour\":7,\"./core\":8,\"./filter\":9,\"./groupby\":10,\"./heatmap\":11,\"./histogram\":12,\"./histogram2d\":13,\"./histogram2dcontour\":14,\"./mesh3d\":16,\"./ohlc\":17,\"./pie\":18,\"./pointcloud\":19,\"./scatter3d\":20,\"./scattergeo\":21,\"./scattergl\":22,\"./scattermapbox\":23,\"./scatterternary\":24,\"./surface\":25}],16:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/mesh3d\")},{\"../src/traces/mesh3d\":822}],17:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/ohlc\")},{\"../src/traces/ohlc\":827}],18:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/pie\")},{\"../src/traces/pie\":835}],19:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/pointcloud\")},{\"../src/traces/pointcloud\":844}],20:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/scatter3d\")},{\"../src/traces/scatter3d\":874}],21:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/scattergeo\")},{\"../src/traces/scattergeo\":880}],22:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/scattergl\")},{\"../src/traces/scattergl\":885}],23:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/scattermapbox\")},{\"../src/traces/scattermapbox\":892}],24:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/scatterternary\")},{\"../src/traces/scatterternary\":898}],25:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/surface\")},{\"../src/traces/surface\":907}],26:[function(t,e,r){\"use strict\";function n(t,e){t=t||document.body,e=e||{};var r=[.01,1/0];\"distanceLimits\"in e&&(r[0]=e.distanceLimits[0],r[1]=e.distanceLimits[1]),\"zoomMin\"in e&&(r[0]=e.zoomMin),\"zoomMax\"in e&&(r[1]=e.zoomMax);var n=a({center:e.center||[0,0,0],up:e.up||[0,1,0],eye:e.eye||[0,0,10],mode:e.mode||\"orbit\",distanceLimits:r}),l=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],u=0,c=t.clientWidth,h=t.clientHeight,f={view:n,element:t,delay:e.delay||16,rotateSpeed:e.rotateSpeed||1,zoomSpeed:e.zoomSpeed||1,translateSpeed:e.translateSpeed||1,flipX:!!e.flipX,flipY:!!e.flipY,modes:n.modes,tick:function(){var e=i(),r=this.delay;n.idle(e-r),n.flush(e-(100+2*r));var a=e-2*r;n.recalcMatrix(a);for(var o=!0,s=n.computedMatrix,f=0;f<16;++f)o=o&&l[f]===s[f],l[f]=s[f];var d=t.clientWidth===c&&t.clientHeight===h;return c=t.clientWidth,h=t.clientHeight,o?!d:(u=Math.exp(n.computedRadius[0]),!0)},lookAt:function(t,e,r){n.lookAt(n.lastT(),t,e,r)},rotate:function(t,e,r){n.rotate(n.lastT(),t,e,r)},pan:function(t,e,r){n.pan(n.lastT(),t,e,r)},translate:function(t,e,r){n.translate(n.lastT(),t,e,r)}};Object.defineProperties(f,{matrix:{get:function(){return n.computedMatrix},set:function(t){return n.setMatrix(n.lastT(),t),n.computedMatrix},enumerable:!0},mode:{get:function(){return n.getMode()},set:function(t){return n.setMode(t),n.getMode()},enumerable:!0},center:{get:function(){return n.computedCenter},set:function(t){return n.lookAt(n.lastT(),t),n.computedCenter},enumerable:!0},eye:{get:function(){return n.computedEye},set:function(t){return n.lookAt(n.lastT(),null,t),n.computedEye},enumerable:!0},up:{get:function(){return n.computedUp},set:function(t){return n.lookAt(n.lastT(),null,null,t),n.computedUp},enumerable:!0},distance:{get:function(){return u},set:function(t){return n.setDistance(n.lastT(),t),t},enumerable:!0},distanceLimits:{get:function(){return n.getDistanceLimits(r)},set:function(t){return n.setDistanceLimits(t),t},enumerable:!0}}),t.addEventListener(\"contextmenu\",function(t){return t.preventDefault(),!1});var d=0,p=0;return o(t,function(e,r,a,o){var s=1/t.clientHeight,l=s*(r-d),c=s*(a-p),h=f.flipX?1:-1,g=f.flipY?1:-1,m=Math.PI*f.rotateSpeed,v=i();if(1&e)o.shift?n.rotate(v,0,0,-l*m):n.rotate(v,h*m*l,-g*m*c,0);else if(2&e)n.pan(v,-f.translateSpeed*l*u,f.translateSpeed*c*u,0);else if(4&e){var y=f.zoomSpeed*c/window.innerHeight*(v-n.lastT())*50;n.pan(v,0,0,u*(Math.exp(y)-1))}d=r,p=a}),s(t,function(t,e,r){var a=f.flipX?1:-1,o=f.flipY?1:-1,s=i();if(Math.abs(t)>Math.abs(e))n.rotate(s,0,0,-t*a*Math.PI*f.rotateSpeed/window.innerWidth);else{var l=f.zoomSpeed*o*e/window.innerHeight*(s-n.lastT())/100;n.pan(s,0,0,u*(Math.exp(l)-1))}},!0),f}e.exports=n;var i=t(\"right-now\"),a=t(\"3d-view\"),o=t(\"mouse-change\"),s=t(\"mouse-wheel\")},{\"3d-view\":27,\"mouse-change\":413,\"mouse-wheel\":415,\"right-now\":459}],27:[function(t,e,r){\"use strict\";function n(t,e){this._controllerNames=Object.keys(t),this._controllerList=this._controllerNames.map(function(e){return t[e]}),this._mode=e,this._active=t[e],this._active||(this._mode=\"turntable\",this._active=t.turntable),this.modes=this._controllerNames,this.computedMatrix=this._active.computedMatrix,this.computedEye=this._active.computedEye,this.computedUp=this._active.computedUp,this.computedCenter=this._active.computedCenter,this.computedRadius=this._active.computedRadius}function i(t){t=t||{};var e=t.eye||[0,0,1],r=t.center||[0,0,0],i=t.up||[0,1,0],l=t.distanceLimits||[0,1/0],u=t.mode||\"turntable\",c=a(),h=o(),f=s();return c.setDistanceLimits(l[0],l[1]),c.lookAt(0,e,r,i),h.setDistanceLimits(l[0],l[1]),h.lookAt(0,e,r,i),f.setDistanceLimits(l[0],l[1]),f.lookAt(0,e,r,i),new n({turntable:c,orbit:h,matrix:f},u)}e.exports=i;var a=t(\"turntable-camera-controller\"),o=t(\"orbit-camera-controller\"),s=t(\"matrix-camera-controller\"),l=n.prototype,u=[[\"flush\",1],[\"idle\",1],[\"lookAt\",4],[\"rotate\",4],[\"pan\",4],[\"translate\",4],[\"setMatrix\",2],[\"setDistanceLimits\",2],[\"setDistance\",2]];u.forEach(function(t){for(var e=t[0],r=[],n=0;n<t[1];++n)r.push(\"a\"+n);var i=\"var cc=this._controllerList;for(var i=0;i<cc.length;++i){cc[i].\"+t[0]+\"(\"+r.join()+\")}\";l[e]=Function.apply(null,r.concat(i))}),l.recalcMatrix=function(t){this._active.recalcMatrix(t)},l.getDistance=function(t){return this._active.getDistance(t)},l.getDistanceLimits=function(t){return this._active.getDistanceLimits(t)},l.lastT=function(){return this._active.lastT()},l.setMode=function(t){if(t!==this._mode){var e=this._controllerNames.indexOf(t);if(!(e<0)){var r=this._active,n=this._controllerList[e],i=Math.max(r.lastT(),n.lastT());r.recalcMatrix(i),n.setMatrix(i,r.computedMatrix),this._active=n,this._mode=t,this.computedMatrix=this._active.computedMatrix,this.computedEye=this._active.computedEye,this.computedUp=this._active.computedUp,this.computedCenter=this._active.computedCenter,this.computedRadius=this._active.computedRadius}}},l.getMode=function(){return this._mode}},{\"matrix-camera-controller\":411,\"orbit-camera-controller\":431,\"turntable-camera-controller\":493}],28:[function(t,e,r){\"use strict\";function n(t){var e=s.get(t);if(!e||!t.isBuffer(e._triangleBuffer.buffer)){var r=a(t,new Float32Array([-1,-1,-1,4,4,-1]));e=o(t,[{buffer:r,type:t.FLOAT,size:2}]),e._triangleBuffer=r,s.set(t,e)}e.bind(),t.drawArrays(t.TRIANGLES,0,3),e.unbind()}var i=\"undefined\"==typeof WeakMap?t(\"weak-map\"):WeakMap,a=t(\"gl-buffer\"),o=t(\"gl-vao\"),s=new i;e.exports=n},{\"gl-buffer\":128,\"gl-vao\":236,\"weak-map\":514}],29:[function(t,e,r){function n(t,e,r){e=\"number\"==typeof e?e:1,r=r||\": \";var n=t.split(/\\r?\\n/),a=String(n.length+e-1).length;return n.map(function(t,n){var o=n+e,s=String(o).length,l=i(o,a-s);return l+r+t}).join(\"\\n\")}var i=t(\"pad-left\");e.exports=n},{\"pad-left\":432}],30:[function(t,e,r){\"use strict\";function n(t,e){for(var r=new Array(e+1),n=0;n<t.length;++n)r[n]=t[n];for(var n=0;n<=t.length;++n){for(var i=t.length;i<=e;++i){for(var o=new Array(e),s=0;s<e;++s)o[s]=Math.pow(i+1-n,s);r[i]=o}var l=a.apply(void 0,r);if(l)return!0}return!1}function i(t){var e=t.length;if(0===e)return[];if(1===e)return[0];for(var r=t[0].length,i=[t[0]],a=[0],o=1;o<e;++o)if(i.push(t[o]),n(i,r)){if(a.push(o),a.length===r+1)return a}else i.pop();return a}e.exports=i;var a=t(\"robust-orientation\")},{\"robust-orientation\":465}],31:[function(t,e,r){\"use strict\";function n(t,e){return i(e).filter(function(r){for(var n=new Array(r.length),i=0;i<r.length;++i)n[i]=e[r[i]];return a(n)*t<1})}e.exports=n;var i=t(\"delaunay-triangulate\"),a=t(\"circumradius\")},{circumradius:75,\"delaunay-triangulate\":96}],32:[function(t,e,r){function n(t,e){return a(i(t,e))}e.exports=n;var i=t(\"alpha-complex\"),a=t(\"simplicial-complex-boundary\")},{\"alpha-complex\":31,\"simplicial-complex-boundary\":473}],33:[function(t,e,r){\"use strict\";var n=function(){function t(t){return!Array.isArray(t)&&null!==t&&\"object\"==typeof t}function e(t,e,r){for(var n=(e-t)/Math.max(r-1,1),i=[],a=0;a<r;a++)i.push(t+a*n);return i}function r(){for(var t=[].slice.call(arguments),e=t.map(function(t){return t.length}),r=Math.min.apply(null,e),n=[],i=0;i<r;i++){n[i]=[];for(var a=0;a<t.length;++a)n[i][a]=t[a][i]}return n}function n(t,e,r){for(var n=Math.min.apply(null,[t.length,e.length,r.length]),i=[],a=0;a<n;a++)i.push([t[a],e[a],r[a]]);return i}function i(t){function e(t){for(var n=0;n<t.length;n++)Array.isArray(t[n])?e(t[n],r):r+=t[n]}var r=0;return e(t,r),r}function a(t){for(var e=[],r=0;r<t.length;++r){e[r]=[];for(var n=0;n<t[r].length;++n)e[r][n]=t[r][n]}return e}function o(t){for(var e=[],r=0;r<t.length;++r)e[r]=t[r];return e}function s(t,e){if(t.length!==e.length)return!1;for(var r=t.length;r--;)if(t[r]!==e[r])return!1;return!0}function l(t,e){var r,n;if(\"string\"!=typeof t)return t;if(r=[],\"#\"===t[0]?(t=t.substr(1),3===t.length&&(t+=t),n=parseInt(t,16),r[0]=n>>16&255,r[1]=n>>8&255,r[2]=255&n):h.test(t)&&(n=t.match(f),r[0]=parseInt(n[1]),r[1]=parseInt(n[2]),r[2]=parseInt(n[3])),!e)for(var i=0;i<3;++i)r[i]=r[i]/255;return r}function u(t,e){var r,n;if(\"string\"!=typeof t)return t;if(r=[],\"#\"===t[0]?(t=t.substr(1),3===t.length&&(t+=t),n=parseInt(t,16),r[0]=n>>16&255,r[1]=n>>8&255,r[2]=255&n):h.test(t)&&(n=t.match(f),r[0]=parseInt(n[1]),r[1]=parseInt(n[2]),r[2]=parseInt(n[3]),n[4]?r[3]=parseFloat(n[4]):r[3]=1),!e)for(var i=0;i<3;++i)r[i]=r[i]/255;return r}var c={},h=/^rgba?\\(\\s*\\d{1,3}\\s*,\\s*\\d{1,3}\\s*,\\s*\\d{1,3}\\s*(,.*)?\\)$/,f=/^rgba?\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,?\\s*(.*)?\\)$/;return c.isPlainObject=t,c.linspace=e,c.zip3=n,c.sum=i,c.zip=r,c.isEqual=s,c.copy2D=a,c.copy1D=o,c.str2RgbArray=l,c.str2RgbaArray=u,c};e.exports=n()},{}],34:[function(t,e,r){function n(t,e){return d.isUndefined(e)?\"\"+e:d.isNumber(e)&&!isFinite(e)?e.toString():d.isFunction(e)||d.isRegExp(e)?e.toString():e}function i(t,e){return d.isString(t)?t.length<e?t:t.slice(0,e):t}function a(t){return i(JSON.stringify(t.actual,n),128)+\" \"+t.operator+\" \"+i(JSON.stringify(t.expected,n),128)}function o(t,e,r,n,i){throw new m.AssertionError({message:r,actual:t,expected:e,operator:n,stackStartFunction:i})}function s(t,e){t||o(t,!0,e,\"==\",m.ok)}function l(t,e){if(t===e)return!0;if(d.isBuffer(t)&&d.isBuffer(e)){if(t.length!=e.length)return!1;for(var r=0;r<t.length;r++)if(t[r]!==e[r])return!1;return!0}return d.isDate(t)&&d.isDate(e)?t.getTime()===e.getTime():d.isRegExp(t)&&d.isRegExp(e)?t.source===e.source&&t.global===e.global&&t.multiline===e.multiline&&t.lastIndex===e.lastIndex&&t.ignoreCase===e.ignoreCase:d.isObject(t)||d.isObject(e)?c(t,e):t==e}function u(t){return\"[object Arguments]\"==Object.prototype.toString.call(t)}function c(t,e){if(d.isNullOrUndefined(t)||d.isNullOrUndefined(e))return!1;if(t.prototype!==e.prototype)return!1;if(d.isPrimitive(t)||d.isPrimitive(e))return t===e;var r=u(t),n=u(e);if(r&&!n||!r&&n)return!1;if(r)return t=p.call(t),e=p.call(e),l(t,e);var i,a,o=v(t),s=v(e);if(o.length!=s.length)return!1;for(o.sort(),s.sort(),a=o.length-1;a>=0;a--)if(o[a]!=s[a])return!1;for(a=o.length-1;a>=0;a--)if(i=o[a],!l(t[i],e[i]))return!1;return!0}function h(t,e){return!(!t||!e)&&(\"[object RegExp]\"==Object.prototype.toString.call(e)?e.test(t):t instanceof e||e.call({},t)===!0)}function f(t,e,r,n){var i;d.isString(r)&&(n=r,r=null);try{e()}catch(t){i=t}if(n=(r&&r.name?\" (\"+r.name+\").\":\".\")+(n?\" \"+n:\".\"),t&&!i&&o(i,r,\"Missing expected exception\"+n),!t&&h(i,r)&&o(i,r,\"Got unwanted exception\"+n),t&&i&&r&&!h(i,r)||!t&&i)throw i}var d=t(\"util/\"),p=Array.prototype.slice,g=Object.prototype.hasOwnProperty,m=e.exports=s;m.AssertionError=function(t){this.name=\"AssertionError\",this.actual=t.actual,this.expected=t.expected,this.operator=t.operator,t.message?(this.message=t.message,this.generatedMessage=!1):(this.message=a(this),this.generatedMessage=!0);var e=t.stackStartFunction||o;if(Error.captureStackTrace)Error.captureStackTrace(this,e);else{var r=new Error;if(r.stack){var n=r.stack,i=e.name,s=n.indexOf(\"\\n\"+i);if(s>=0){var l=n.indexOf(\"\\n\",s+1);n=n.substring(l+1)}this.stack=n}}},d.inherits(m.AssertionError,Error),m.fail=o,m.ok=s,m.equal=function(t,e,r){t!=e&&o(t,e,r,\"==\",m.equal)},m.notEqual=function(t,e,r){t==e&&o(t,e,r,\"!=\",m.notEqual)},m.deepEqual=function(t,e,r){l(t,e)||o(t,e,r,\"deepEqual\",m.deepEqual)},m.notDeepEqual=function(t,e,r){l(t,e)&&o(t,e,r,\"notDeepEqual\",m.notDeepEqual)},m.strictEqual=function(t,e,r){t!==e&&o(t,e,r,\"===\",m.strictEqual)},m.notStrictEqual=function(t,e,r){t===e&&o(t,e,r,\"!==\",m.notStrictEqual)},m.throws=function(t,e,r){f.apply(this,[!0].concat(p.call(arguments)))},m.doesNotThrow=function(t,e){f.apply(this,[!1].concat(p.call(arguments)))},m.ifError=function(t){if(t)throw t};var v=Object.keys||function(t){var e=[];for(var r in t)g.call(t,r)&&e.push(r);return e}},{\"util/\":504}],35:[function(t,e,r){e.exports=function(t){return atob(t)}},{}],36:[function(t,e,r){\"use strict\";function n(t){for(var e=0,r=0;r<t.length;++r)e+=t[r];return e}function i(t,e){for(var r=e.length,i=new Array(r+1),o=0;o<r;++o){for(var s=new Array(r+1),l=0;l<=r;++l)s[l]=t[l][o];i[o]=s}i[r]=new Array(r+1);for(var o=0;o<=r;++o)i[r][o]=1;for(var u=new Array(r+1),o=0;o<r;++o)u[o]=e[o];u[r]=1;var c=a(i,u),h=n(c[r+1]);0===h&&(h=1);for(var f=new Array(r+1),o=0;o<=r;++o)f[o]=n(c[o])/h;return f}e.exports=i;var a=t(\"robust-linear-solve\")},{\"robust-linear-solve\":464}],37:[function(t,e,r){\"use strict\";function n(t,e){return i(t[0].mul(e[1]).add(e[0].mul(t[1])),t[1].mul(e[1]))}var i=t(\"./lib/rationalize\");e.exports=n},{\"./lib/rationalize\":47}],38:[function(t,e,r){\"use strict\";function n(t,e){return t[0].mul(e[1]).cmp(e[0].mul(t[1]))}e.exports=n},{}],39:[function(t,e,r){\"use strict\";function n(t,e){return i(t[0].mul(e[1]),t[1].mul(e[0]))}var i=t(\"./lib/rationalize\");e.exports=n},{\"./lib/rationalize\":47}],40:[function(t,e,r){\"use strict\";function n(t,e){if(i(t))return e?u(t,n(e)):[t[0].clone(),t[1].clone()];var r,c,h=0;if(a(t))r=t.clone();else if(\"string\"==typeof t)r=s(t);else{if(0===t)return[o(0),o(1)];if(t===Math.floor(t))r=o(t);else{for(;t!==Math.floor(t);)t*=Math.pow(2,256),h-=256;r=o(t)}}if(i(e))r.mul(e[1]),c=e[0].clone();else if(a(e))c=e.clone();else if(\"string\"==typeof e)c=s(e);else if(e)if(e===Math.floor(e))c=o(e);else{for(;e!==Math.floor(e);)e*=Math.pow(2,256),h+=256;c=o(e)}else c=o(1);return h>0?r=r.shln(h):h<0&&(c=c.shln(-h)),l(r,c)}var i=t(\"./is-rat\"),a=t(\"./lib/is-bn\"),o=t(\"./lib/num-to-bn\"),s=t(\"./lib/str-to-bn\"),l=t(\"./lib/rationalize\"),u=t(\"./div\");e.exports=n},{\"./div\":39,\"./is-rat\":41,\"./lib/is-bn\":45,\"./lib/num-to-bn\":46,\"./lib/rationalize\":47,\"./lib/str-to-bn\":48}],41:[function(t,e,r){\"use strict\";function n(t){return Array.isArray(t)&&2===t.length&&i(t[0])&&i(t[1])}var i=t(\"./lib/is-bn\");e.exports=n},{\"./lib/is-bn\":45}],42:[function(t,e,r){\"use strict\";function n(t){return t.cmp(new i(0))}var i=t(\"bn.js\");e.exports=n},{\"bn.js\":55}],43:[function(t,e,r){\"use strict\";function n(t){var e=t.length,r=t.words,n=0;if(1===e)n=r[0];else if(2===e)n=r[0]+67108864*r[1];else for(var n=0,i=0;i<e;i++){var a=r[i];n+=a*Math.pow(67108864,i)}return t.sign?-n:n}e.exports=n},{}],44:[function(t,e,r){\"use strict\";function n(t){var e=a(i.lo(t));if(e<32)return e;var r=a(i.hi(t));return r>20?52:r+32}var i=t(\"double-bits\"),a=t(\"bit-twiddle\").countTrailingZeros;e.exports=n},{\"bit-twiddle\":54,\"double-bits\":97}],45:[function(t,e,r){\"use strict\";function n(t){return t&&\"object\"==typeof t&&Boolean(t.words)}t(\"bn.js\");e.exports=n},{\"bn.js\":55}],46:[function(t,e,r){\"use strict\";function n(t){var e=a.exponent(t);return e<52?new i(t):new i(t*Math.pow(2,52-e)).shln(e-52)}var i=t(\"bn.js\"),a=t(\"double-bits\");e.exports=n},{\"bn.js\":55,\"double-bits\":97}],47:[function(t,e,r){\"use strict\";function n(t,e){var r=a(t),n=a(e);if(0===r)return[i(0),i(1)];if(0===n)return[i(0),i(0)];n<0&&(t=t.neg(),e=e.neg());var o=t.gcd(e);return o.cmpn(1)?[t.div(o),e.div(o)]:[t,e]}var i=t(\"./num-to-bn\"),a=t(\"./bn-sign\");e.exports=n},{\"./bn-sign\":42,\"./num-to-bn\":46}],48:[function(t,e,r){\"use strict\";function n(t){return new i(t)}var i=t(\"bn.js\");e.exports=n},{\"bn.js\":55}],49:[function(t,e,r){\"use strict\";function n(t,e){return i(t[0].mul(e[0]),t[1].mul(e[1]))}var i=t(\"./lib/rationalize\");e.exports=n},{\"./lib/rationalize\":47}],50:[function(t,e,r){\"use strict\";function n(t){return i(t[0])*i(t[1])}var i=t(\"./lib/bn-sign\");e.exports=n},{\"./lib/bn-sign\":42}],51:[function(t,e,r){\"use strict\";function n(t,e){return i(t[0].mul(e[1]).sub(t[1].mul(e[0])),t[1].mul(e[1]))}var i=t(\"./lib/rationalize\");e.exports=n},{\"./lib/rationalize\":47}],52:[function(t,e,r){\"use strict\";function n(t){var e=t[0],r=t[1];if(0===e.cmpn(0))return 0;var n=e.divmod(r),o=n.div,s=i(o),l=n.mod;if(0===l.cmpn(0))return s;if(s){var u=a(s)+4,c=i(l.shln(u).divRound(r));return s<0&&(c=-c),s+c*Math.pow(2,-u)}var h=r.bitLength()-l.bitLength()+53,c=i(l.shln(h).divRound(r));return h<1023?c*Math.pow(2,-h):(c*=Math.pow(2,-1023),c*Math.pow(2,1023-h))}var i=t(\"./lib/bn-to-num\"),a=t(\"./lib/ctz\");e.exports=n},{\"./lib/bn-to-num\":43,\"./lib/ctz\":44}],53:[function(t,e,r){\"use strict\";function n(t,e,r,n,i,a){var o=[\"function \",t,\"(a,l,h,\",n.join(\",\"),\"){\",a?\"\":\"var i=\",r?\"l-1\":\"h+1\",\";while(l<=h){var m=(l+h)>>>1,x=a\",i?\".get(m)\":\"[m]\"];return a?e.indexOf(\"c\")<0?o.push(\";if(x===y){return m}else if(x<=y){\"):o.push(\";var p=c(x,y);if(p===0){return m}else if(p<=0){\"):o.push(\";if(\",e,\"){i=m;\"),r?o.push(\"l=m+1}else{h=m-1}\"):o.push(\"h=m-1}else{l=m+1}\"),o.push(\"}\"),a?o.push(\"return -1};\"):o.push(\"return i};\"),o.join(\"\")}function i(t,e,r,i){var a=new Function([n(\"A\",\"x\"+t+\"y\",e,[\"y\"],!1,i),n(\"B\",\"x\"+t+\"y\",e,[\"y\"],!0,i),n(\"P\",\"c(x,y)\"+t+\"0\",e,[\"y\",\"c\"],!1,i),n(\"Q\",\"c(x,y)\"+t+\"0\",e,[\"y\",\"c\"],!0,i),\"function dispatchBsearch\",r,\"(a,y,c,l,h){if(a.shape){if(typeof(c)==='function'){return Q(a,(l===undefined)?0:l|0,(h===undefined)?a.shape[0]-1:h|0,y,c)}else{return B(a,(c===undefined)?0:c|0,(l===undefined)?a.shape[0]-1:l|0,y)}}else{if(typeof(c)==='function'){return P(a,(l===undefined)?0:l|0,(h===undefined)?a.length-1:h|0,y,c)}else{return A(a,(c===undefined)?0:c|0,(l===undefined)?a.length-1:l|0,y)}}}return dispatchBsearch\",r].join(\"\"));return a()}e.exports={ge:i(\">=\",!1,\"GE\"),gt:i(\">\",!1,\"GT\"),lt:i(\"<\",!0,\"LT\"),le:i(\"<=\",!0,\"LE\"),eq:i(\"-\",!0,\"EQ\",!0)}},{}],54:[function(t,e,r){\"use strict\";\"use restrict\";\n",
"function n(t){var e=32;return t&=-t,t&&e--,65535&t&&(e-=16),16711935&t&&(e-=8),252645135&t&&(e-=4),858993459&t&&(e-=2),1431655765&t&&(e-=1),e}var i=32;r.INT_BITS=i,r.INT_MAX=2147483647,r.INT_MIN=-1<<i-1,r.sign=function(t){return(t>0)-(t<0)},r.abs=function(t){var e=t>>i-1;return(t^e)-e},r.min=function(t,e){return e^(t^e)&-(t<e)},r.max=function(t,e){return t^(t^e)&-(t<e)},r.isPow2=function(t){return!(t&t-1||!t)},r.log2=function(t){var e,r;return e=(t>65535)<<4,t>>>=e,r=(t>255)<<3,t>>>=r,e|=r,r=(t>15)<<2,t>>>=r,e|=r,r=(t>3)<<1,t>>>=r,e|=r,e|t>>1},r.log10=function(t){return t>=1e9?9:t>=1e8?8:t>=1e7?7:t>=1e6?6:t>=1e5?5:t>=1e4?4:t>=1e3?3:t>=100?2:t>=10?1:0},r.popCount=function(t){return t-=t>>>1&1431655765,t=(858993459&t)+(t>>>2&858993459),16843009*(t+(t>>>4)&252645135)>>>24},r.countTrailingZeros=n,r.nextPow2=function(t){return t+=0===t,--t,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t+1},r.prevPow2=function(t){return t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t-(t>>>1)},r.parity=function(t){return t^=t>>>16,t^=t>>>8,t^=t>>>4,t&=15,27030>>>t&1};var a=new Array(256);!function(t){for(var e=0;e<256;++e){var r=e,n=e,i=7;for(r>>>=1;r;r>>>=1)n<<=1,n|=1&r,--i;t[e]=n<<i&255}}(a),r.reverse=function(t){return a[255&t]<<24|a[t>>>8&255]<<16|a[t>>>16&255]<<8|a[t>>>24&255]},r.interleave2=function(t,e){return t&=65535,t=16711935&(t|t<<8),t=252645135&(t|t<<4),t=858993459&(t|t<<2),t=1431655765&(t|t<<1),e&=65535,e=16711935&(e|e<<8),e=252645135&(e|e<<4),e=858993459&(e|e<<2),e=1431655765&(e|e<<1),t|e<<1},r.deinterleave2=function(t,e){return t=t>>>e&1431655765,t=858993459&(t|t>>>1),t=252645135&(t|t>>>2),t=16711935&(t|t>>>4),t=65535&(t|t>>>16),t<<16>>16},r.interleave3=function(t,e,r){return t&=1023,t=4278190335&(t|t<<16),t=251719695&(t|t<<8),t=3272356035&(t|t<<4),t=1227133513&(t|t<<2),e&=1023,e=4278190335&(e|e<<16),e=251719695&(e|e<<8),e=3272356035&(e|e<<4),e=1227133513&(e|e<<2),t|=e<<1,r&=1023,r=4278190335&(r|r<<16),r=251719695&(r|r<<8),r=3272356035&(r|r<<4),r=1227133513&(r|r<<2),t|r<<2},r.deinterleave3=function(t,e){return t=t>>>e&1227133513,t=3272356035&(t|t>>>2),t=251719695&(t|t>>>4),t=4278190335&(t|t>>>8),t=1023&(t|t>>>16),t<<22>>22},r.nextCombination=function(t){var e=t|t-1;return e+1|(~e&-~e)-1>>>n(t)+1}},{}],55:[function(t,e,r){!function(t,e){\"use strict\";function r(t,e){if(!t)throw new Error(e||\"Assertion failed\")}function n(t,e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}function i(t,e,r){return null!==t&&\"object\"==typeof t&&Array.isArray(t.words)?t:(this.sign=!1,this.words=null,this.length=0,this.red=null,\"le\"!==e&&\"be\"!==e||(r=e,e=10),void(null!==t&&this._init(t||0,e||10,r||\"be\")))}function a(t,e,r){for(var n=0,i=Math.min(t.length,r),a=e;a<i;a++){var o=t.charCodeAt(a)-48;n<<=4,n|=o>=49&&o<=54?o-49+10:o>=17&&o<=22?o-17+10:15&o}return n}function o(t,e,r,n){for(var i=0,a=Math.min(t.length,r),o=e;o<a;o++){var s=t.charCodeAt(o)-48;i*=n,i+=s>=49?s-49+10:s>=17?s-17+10:s}return i}function s(t,e){this.name=t,this.p=new i(e,16),this.n=this.p.bitLength(),this.k=new i(1).ishln(this.n).isub(this.p),this.tmp=this._tmp()}function l(){s.call(this,\"k256\",\"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f\")}function u(){s.call(this,\"p224\",\"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001\")}function c(){s.call(this,\"p192\",\"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff\")}function h(){s.call(this,\"25519\",\"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed\")}function f(t){if(\"string\"==typeof t){var e=i._prime(t);this.m=e.p,this.prime=e}else this.m=t,this.prime=null}function d(t){f.call(this,t),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new i(1).ishln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv.sign=!0,this.minv=this.minv.mod(this.r)}\"object\"==typeof t?t.exports=i:e.BN=i,i.BN=i,i.wordSize=26,i.prototype._init=function(t,e,n){if(\"number\"==typeof t)return this._initNumber(t,e,n);if(\"object\"==typeof t)return this._initArray(t,e,n);\"hex\"===e&&(e=16),r(e===(0|e)&&e>=2&&e<=36),t=t.toString().replace(/\\s+/g,\"\");var i=0;\"-\"===t[0]&&i++,16===e?this._parseHex(t,i):this._parseBase(t,e,i),\"-\"===t[0]&&(this.sign=!0),this.strip(),\"le\"===n&&this._initArray(this.toArray(),e,n)},i.prototype._initNumber=function(t,e,n){t<0&&(this.sign=!0,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(r(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),\"le\"===n&&this._initArray(this.toArray(),e,n)},i.prototype._initArray=function(t,e,n){if(r(\"number\"==typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var i=0;i<this.length;i++)this.words[i]=0;var a=0;if(\"be\"===n)for(var i=t.length-1,o=0;i>=0;i-=3){var s=t[i]|t[i-1]<<8|t[i-2]<<16;this.words[o]|=s<<a&67108863,this.words[o+1]=s>>>26-a&67108863,a+=24,a>=26&&(a-=26,o++)}else if(\"le\"===n)for(var i=0,o=0;i<t.length;i+=3){var s=t[i]|t[i+1]<<8|t[i+2]<<16;this.words[o]|=s<<a&67108863,this.words[o+1]=s>>>26-a&67108863,a+=24,a>=26&&(a-=26,o++)}return this.strip()},i.prototype._parseHex=function(t,e){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var r=0;r<this.length;r++)this.words[r]=0;for(var n=0,r=t.length-6,i=0;r>=e;r-=6){var o=a(t,r,r+6);this.words[i]|=o<<n&67108863,this.words[i+1]|=o>>>26-n&4194303,n+=24,n>=26&&(n-=26,i++)}if(r+6!==e){var o=a(t,e,r+6);this.words[i]|=o<<n&67108863,this.words[i+1]|=o>>>26-n&4194303}this.strip()},i.prototype._parseBase=function(t,e,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=e)n++;n--,i=i/e|0;for(var a=t.length-r,s=a%n,l=Math.min(a,a-s)+r,u=0,c=r;c<l;c+=n)u=o(t,c,c+n,e),this.imuln(i),this.words[0]+u<67108864?this.words[0]+=u:this._iaddn(u);if(0!==s){for(var h=1,u=o(t,c,t.length,e),c=0;c<s;c++)h*=e;this.imuln(h),this.words[0]+u<67108864?this.words[0]+=u:this._iaddn(u)}},i.prototype.copy=function(t){t.words=new Array(this.length);for(var e=0;e<this.length;e++)t.words[e]=this.words[e];t.length=this.length,t.sign=this.sign,t.red=this.red},i.prototype.clone=function(){var t=new i(null);return this.copy(t),t},i.prototype.strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},i.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.sign=!1),this},i.prototype.inspect=function(){return(this.red?\"<BN-R: \":\"<BN: \")+this.toString(16)+\">\"};var p=[\"\",\"0\",\"00\",\"000\",\"0000\",\"00000\",\"000000\",\"0000000\",\"00000000\",\"000000000\",\"0000000000\",\"00000000000\",\"000000000000\",\"0000000000000\",\"00000000000000\",\"000000000000000\",\"0000000000000000\",\"00000000000000000\",\"000000000000000000\",\"0000000000000000000\",\"00000000000000000000\",\"000000000000000000000\",\"0000000000000000000000\",\"00000000000000000000000\",\"000000000000000000000000\",\"0000000000000000000000000\"],g=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],m=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];i.prototype.toString=function(t,e){if(t=t||10,16===t||\"hex\"===t){for(var n=\"\",i=0,e=0|e||1,a=0,o=0;o<this.length;o++){var s=this.words[o],l=(16777215&(s<<i|a)).toString(16);a=s>>>24-i&16777215,n=0!==a||o!==this.length-1?p[6-l.length]+l+n:l+n,i+=2,i>=26&&(i-=26,o--)}for(0!==a&&(n=a.toString(16)+n);n.length%e!==0;)n=\"0\"+n;return this.sign&&(n=\"-\"+n),n}if(t===(0|t)&&t>=2&&t<=36){var u=g[t],c=m[t],n=\"\",h=this.clone();for(h.sign=!1;0!==h.cmpn(0);){var f=h.modn(c).toString(t);h=h.idivn(c),n=0!==h.cmpn(0)?p[u-f.length]+f+n:f+n}return 0===this.cmpn(0)&&(n=\"0\"+n),this.sign&&(n=\"-\"+n),n}r(!1,\"Base should be between 2 and 36\")},i.prototype.toJSON=function(){return this.toString(16)},i.prototype.toArray=function(t){this.strip();var e=new Array(this.byteLength());e[0]=0;var r=this.clone();if(\"le\"!==t)for(var n=0;0!==r.cmpn(0);n++){var i=r.andln(255);r.ishrn(8),e[e.length-n-1]=i}else for(var n=0;0!==r.cmpn(0);n++){var i=r.andln(255);r.ishrn(8),e[n]=i}return e},Math.clz32?i.prototype._countBits=function(t){return 32-Math.clz32(t)}:i.prototype._countBits=function(t){var e=t,r=0;return e>=4096&&(r+=13,e>>>=13),e>=64&&(r+=7,e>>>=7),e>=8&&(r+=4,e>>>=4),e>=2&&(r+=2,e>>>=2),r+e},i.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,r=0;return 0===(8191&e)&&(r+=13,e>>>=13),0===(127&e)&&(r+=7,e>>>=7),0===(15&e)&&(r+=4,e>>>=4),0===(3&e)&&(r+=2,e>>>=2),0===(1&e)&&r++,r},i.prototype.bitLength=function(){var t=0,e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},i.prototype.zeroBits=function(){if(0===this.cmpn(0))return 0;for(var t=0,e=0;e<this.length;e++){var r=this._zeroBits(this.words[e]);if(t+=r,26!==r)break}return t},i.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},i.prototype.neg=function(){if(0===this.cmpn(0))return this.clone();var t=this.clone();return t.sign=!this.sign,t},i.prototype.ior=function(t){for(this.sign=this.sign||t.sign;this.length<t.length;)this.words[this.length++]=0;for(var e=0;e<t.length;e++)this.words[e]=this.words[e]|t.words[e];return this.strip()},i.prototype.or=function(t){return this.length>t.length?this.clone().ior(t):t.clone().ior(this)},i.prototype.iand=function(t){this.sign=this.sign&&t.sign;var e;e=this.length>t.length?t:this;for(var r=0;r<e.length;r++)this.words[r]=this.words[r]&t.words[r];return this.length=e.length,this.strip()},i.prototype.and=function(t){return this.length>t.length?this.clone().iand(t):t.clone().iand(this)},i.prototype.ixor=function(t){this.sign=this.sign||t.sign;var e,r;this.length>t.length?(e=this,r=t):(e=t,r=this);for(var n=0;n<r.length;n++)this.words[n]=e.words[n]^r.words[n];if(this!==e)for(;n<e.length;n++)this.words[n]=e.words[n];return this.length=e.length,this.strip()},i.prototype.xor=function(t){return this.length>t.length?this.clone().ixor(t):t.clone().ixor(this)},i.prototype.setn=function(t,e){r(\"number\"==typeof t&&t>=0);for(var n=t/26|0,i=t%26;this.length<=n;)this.words[this.length++]=0;return e?this.words[n]=this.words[n]|1<<i:this.words[n]=this.words[n]&~(1<<i),this.strip()},i.prototype.iadd=function(t){if(this.sign&&!t.sign){this.sign=!1;var e=this.isub(t);return this.sign=!this.sign,this._normSign()}if(!this.sign&&t.sign){t.sign=!1;var e=this.isub(t);return t.sign=!0,e._normSign()}var r,n;this.length>t.length?(r=this,n=t):(r=t,n=this);for(var i=0,a=0;a<n.length;a++){var e=r.words[a]+n.words[a]+i;this.words[a]=67108863&e,i=e>>>26}for(;0!==i&&a<r.length;a++){var e=r.words[a]+i;this.words[a]=67108863&e,i=e>>>26}if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;a<r.length;a++)this.words[a]=r.words[a];return this},i.prototype.add=function(t){if(t.sign&&!this.sign){t.sign=!1;var e=this.sub(t);return t.sign=!0,e}if(!t.sign&&this.sign){this.sign=!1;var e=t.sub(this);return this.sign=!0,e}return this.length>t.length?this.clone().iadd(t):t.clone().iadd(this)},i.prototype.isub=function(t){if(t.sign){t.sign=!1;var e=this.iadd(t);return t.sign=!0,e._normSign()}if(this.sign)return this.sign=!1,this.iadd(t),this.sign=!0,this._normSign();var r=this.cmp(t);if(0===r)return this.sign=!1,this.length=1,this.words[0]=0,this;var n,i;r>0?(n=this,i=t):(n=t,i=this);for(var a=0,o=0;o<i.length;o++){var e=n.words[o]-i.words[o]+a;a=e>>26,this.words[o]=67108863&e}for(;0!==a&&o<n.length;o++){var e=n.words[o]+a;a=e>>26,this.words[o]=67108863&e}if(0===a&&o<n.length&&n!==this)for(;o<n.length;o++)this.words[o]=n.words[o];return this.length=Math.max(this.length,o),n!==this&&(this.sign=!0),this.strip()},i.prototype.sub=function(t){return this.clone().isub(t)},i.prototype._smallMulTo=function(t,e){e.sign=t.sign!==this.sign,e.length=this.length+t.length;for(var r=0,n=0;n<e.length-1;n++){for(var i=r>>>26,a=67108863&r,o=Math.min(n,t.length-1),s=Math.max(0,n-this.length+1);s<=o;s++){var l=n-s,u=0|this.words[l],c=0|t.words[s],h=u*c,f=67108863&h;i=i+(h/67108864|0)|0,f=f+a|0,a=67108863&f,i=i+(f>>>26)|0}e.words[n]=a,r=i}return 0!==r?e.words[n]=r:e.length--,e.strip()},i.prototype._bigMulTo=function(t,e){e.sign=t.sign!==this.sign,e.length=this.length+t.length;for(var r=0,n=0,i=0;i<e.length-1;i++){var a=n;n=0;for(var o=67108863&r,s=Math.min(i,t.length-1),l=Math.max(0,i-this.length+1);l<=s;l++){var u=i-l,c=0|this.words[u],h=0|t.words[l],f=c*h,d=67108863&f;a=a+(f/67108864|0)|0,d=d+o|0,o=67108863&d,a=a+(d>>>26)|0,n+=a>>>26,a&=67108863}e.words[i]=o,r=a,a=n}return 0!==r?e.words[i]=r:e.length--,e.strip()},i.prototype.mulTo=function(t,e){var r;return r=this.length+t.length<63?this._smallMulTo(t,e):this._bigMulTo(t,e)},i.prototype.mul=function(t){var e=new i(null);return e.words=new Array(this.length+t.length),this.mulTo(t,e)},i.prototype.imul=function(t){if(0===this.cmpn(0)||0===t.cmpn(0))return this.words[0]=0,this.length=1,this;var e=this.length,r=t.length;this.sign=t.sign!==this.sign,this.length=this.length+t.length,this.words[this.length-1]=0;for(var n=this.length-2;n>=0;n--){for(var i=0,a=0,o=Math.min(n,r-1),s=Math.max(0,n-e+1);s<=o;s++){var l=n-s,u=this.words[l],c=t.words[s],h=u*c,f=67108863&h;i+=h/67108864|0,f+=a,a=67108863&f,i+=f>>>26}this.words[n]=a,this.words[n+1]+=i,i=0}for(var i=0,l=1;l<this.length;l++){var d=this.words[l]+i;this.words[l]=67108863&d,i=d>>>26}return this.strip()},i.prototype.imuln=function(t){r(\"number\"==typeof t);for(var e=0,n=0;n<this.length;n++){var i=this.words[n]*t,a=(67108863&i)+(67108863&e);e>>=26,e+=i/67108864|0,e+=a>>>26,this.words[n]=67108863&a}return 0!==e&&(this.words[n]=e,this.length++),this},i.prototype.muln=function(t){return this.clone().imuln(t)},i.prototype.sqr=function(){return this.mul(this)},i.prototype.isqr=function(){return this.mul(this)},i.prototype.ishln=function(t){r(\"number\"==typeof t&&t>=0);var e=t%26,n=(t-e)/26,i=67108863>>>26-e<<26-e;if(0!==e){for(var a=0,o=0;o<this.length;o++){var s=this.words[o]&i,l=this.words[o]-s<<e;this.words[o]=l|a,a=s>>>26-e}a&&(this.words[o]=a,this.length++)}if(0!==n){for(var o=this.length-1;o>=0;o--)this.words[o+n]=this.words[o];for(var o=0;o<n;o++)this.words[o]=0;this.length+=n}return this.strip()},i.prototype.ishrn=function(t,e,n){r(\"number\"==typeof t&&t>=0);var i;i=e?(e-e%26)/26:0;var a=t%26,o=Math.min((t-a)/26,this.length),s=67108863^67108863>>>a<<a,l=n;if(i-=o,i=Math.max(0,i),l){for(var u=0;u<o;u++)l.words[u]=this.words[u];l.length=o}if(0===o);else if(this.length>o){this.length-=o;for(var u=0;u<this.length;u++)this.words[u]=this.words[u+o]}else this.words[0]=0,this.length=1;for(var c=0,u=this.length-1;u>=0&&(0!==c||u>=i);u--){var h=this.words[u];this.words[u]=c<<26-a|h>>>a,c=h&s}return l&&0!==c&&(l.words[l.length++]=c),0===this.length&&(this.words[0]=0,this.length=1),this.strip(),this},i.prototype.shln=function(t){return this.clone().ishln(t)},i.prototype.shrn=function(t){return this.clone().ishrn(t)},i.prototype.testn=function(t){r(\"number\"==typeof t&&t>=0);var e=t%26,n=(t-e)/26,i=1<<e;if(this.length<=n)return!1;var a=this.words[n];return!!(a&i)},i.prototype.imaskn=function(t){r(\"number\"==typeof t&&t>=0);var e=t%26,n=(t-e)/26;if(r(!this.sign,\"imaskn works only with positive numbers\"),0!==e&&n++,this.length=Math.min(n,this.length),0!==e){var i=67108863^67108863>>>e<<e;this.words[this.length-1]&=i}return this.strip()},i.prototype.maskn=function(t){return this.clone().imaskn(t)},i.prototype.iaddn=function(t){return r(\"number\"==typeof t),t<0?this.isubn(-t):this.sign?1===this.length&&this.words[0]<t?(this.words[0]=t-this.words[0],this.sign=!1,this):(this.sign=!1,this.isubn(t),this.sign=!0,this):this._iaddn(t)},i.prototype._iaddn=function(t){this.words[0]+=t;for(var e=0;e<this.length&&this.words[e]>=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},i.prototype.isubn=function(t){if(r(\"number\"==typeof t),t<0)return this.iaddn(-t);if(this.sign)return this.sign=!1,this.iaddn(t),this.sign=!0,this;this.words[0]-=t;for(var e=0;e<this.length&&this.words[e]<0;e++)this.words[e]+=67108864,this.words[e+1]-=1;return this.strip()},i.prototype.addn=function(t){return this.clone().iaddn(t)},i.prototype.subn=function(t){return this.clone().isubn(t)},i.prototype.iabs=function(){return this.sign=!1,this},i.prototype.abs=function(){return this.clone().iabs()},i.prototype._ishlnsubmul=function(t,e,n){var i,a=t.length+n;if(this.words.length<a){for(var o=new Array(a),i=0;i<this.length;i++)o[i]=this.words[i];this.words=o}else i=this.length;for(this.length=Math.max(this.length,a);i<this.length;i++)this.words[i]=0;for(var s=0,i=0;i<t.length;i++){var l=this.words[i+n]+s,u=t.words[i]*e;l-=67108863&u,s=(l>>26)-(u/67108864|0),this.words[i+n]=67108863&l}for(;i<this.length-n;i++){var l=this.words[i+n]+s;s=l>>26,this.words[i+n]=67108863&l}if(0===s)return this.strip();r(s===-1),s=0;for(var i=0;i<this.length;i++){var l=-this.words[i]+s;s=l>>26,this.words[i]=67108863&l}return this.sign=!0,this.strip()},i.prototype._wordDiv=function(t,e){var r=this.length-t.length,n=this.clone(),a=t,o=a.words[a.length-1],s=this._countBits(o);r=26-s,0!==r&&(a=a.shln(r),n.ishln(r),o=a.words[a.length-1]);var l,u=n.length-a.length;if(\"mod\"!==e){l=new i(null),l.length=u+1,l.words=new Array(l.length);for(var c=0;c<l.length;c++)l.words[c]=0}var h=n.clone()._ishlnsubmul(a,1,u);h.sign||(n=h,l&&(l.words[u]=1));for(var f=u-1;f>=0;f--){var d=67108864*n.words[a.length+f]+n.words[a.length+f-1];for(d=Math.min(d/o|0,67108863),n._ishlnsubmul(a,d,f);n.sign;)d--,n.sign=!1,n._ishlnsubmul(a,1,f),0!==n.cmpn(0)&&(n.sign=!n.sign);l&&(l.words[f]=d)}return l&&l.strip(),n.strip(),\"div\"!==e&&0!==r&&n.ishrn(r),{div:l?l:null,mod:n}},i.prototype.divmod=function(t,e){if(r(0!==t.cmpn(0)),this.sign&&!t.sign){var n,a,o=this.neg().divmod(t,e);return\"mod\"!==e&&(n=o.div.neg()),\"div\"!==e&&(a=0===o.mod.cmpn(0)?o.mod:t.sub(o.mod)),{div:n,mod:a}}if(!this.sign&&t.sign){var n,o=this.divmod(t.neg(),e);return\"mod\"!==e&&(n=o.div.neg()),{div:n,mod:o.mod}}return this.sign&&t.sign?this.neg().divmod(t.neg(),e):t.length>this.length||this.cmp(t)<0?{div:new i(0),mod:this}:1===t.length?\"div\"===e?{div:this.divn(t.words[0]),mod:null}:\"mod\"===e?{div:null,mod:new i(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new i(this.modn(t.words[0]))}:this._wordDiv(t,e)},i.prototype.div=function(t){return this.divmod(t,\"div\").div},i.prototype.mod=function(t){return this.divmod(t,\"mod\").mod},i.prototype.divRound=function(t){var e=this.divmod(t);if(0===e.mod.cmpn(0))return e.div;var r=e.div.sign?e.mod.isub(t):e.mod,n=t.shrn(1),i=t.andln(1),a=r.cmp(n);return a<0||1===i&&0===a?e.div:e.div.sign?e.div.isubn(1):e.div.iaddn(1)},i.prototype.modn=function(t){r(t<=67108863);for(var e=(1<<26)%t,n=0,i=this.length-1;i>=0;i--)n=(e*n+this.words[i])%t;return n},i.prototype.idivn=function(t){r(t<=67108863);for(var e=0,n=this.length-1;n>=0;n--){var i=this.words[n]+67108864*e;this.words[n]=i/t|0,e=i%t}return this.strip()},i.prototype.divn=function(t){return this.clone().idivn(t)},i.prototype.egcd=function(t){r(!t.sign),r(0!==t.cmpn(0));var e=this,n=t.clone();e=e.sign?e.mod(t):e.clone();for(var a=new i(1),o=new i(0),s=new i(0),l=new i(1),u=0;e.isEven()&&n.isEven();)e.ishrn(1),n.ishrn(1),++u;for(var c=n.clone(),h=e.clone();0!==e.cmpn(0);){for(;e.isEven();)e.ishrn(1),a.isEven()&&o.isEven()?(a.ishrn(1),o.ishrn(1)):(a.iadd(c).ishrn(1),o.isub(h).ishrn(1));for(;n.isEven();)n.ishrn(1),s.isEven()&&l.isEven()?(s.ishrn(1),l.ishrn(1)):(s.iadd(c).ishrn(1),l.isub(h).ishrn(1));e.cmp(n)>=0?(e.isub(n),a.isub(s),o.isub(l)):(n.isub(e),s.isub(a),l.isub(o))}return{a:s,b:l,gcd:n.ishln(u)}},i.prototype._invmp=function(t){r(!t.sign),r(0!==t.cmpn(0));var e=this,n=t.clone();e=e.sign?e.mod(t):e.clone();for(var a=new i(1),o=new i(0),s=n.clone();e.cmpn(1)>0&&n.cmpn(1)>0;){for(;e.isEven();)e.ishrn(1),a.isEven()?a.ishrn(1):a.iadd(s).ishrn(1);for(;n.isEven();)n.ishrn(1),o.isEven()?o.ishrn(1):o.iadd(s).ishrn(1);e.cmp(n)>=0?(e.isub(n),a.isub(o)):(n.isub(e),o.isub(a))}return 0===e.cmpn(1)?a:o},i.prototype.gcd=function(t){if(0===this.cmpn(0))return t.clone();if(0===t.cmpn(0))return this.clone();var e=this.clone(),r=t.clone();e.sign=!1,r.sign=!1;for(var n=0;e.isEven()&&r.isEven();n++)e.ishrn(1),r.ishrn(1);for(;;){for(;e.isEven();)e.ishrn(1);for(;r.isEven();)r.ishrn(1);var i=e.cmp(r);if(i<0){var a=e;e=r,r=a}else if(0===i||0===r.cmpn(1))break;e.isub(r)}return r.ishln(n)},i.prototype.invm=function(t){return this.egcd(t).a.mod(t)},i.prototype.isEven=function(){return 0===(1&this.words[0])},i.prototype.isOdd=function(){return 1===(1&this.words[0])},i.prototype.andln=function(t){return this.words[0]&t},i.prototype.bincn=function(t){r(\"number\"==typeof t);var e=t%26,n=(t-e)/26,i=1<<e;if(this.length<=n){for(var a=this.length;a<n+1;a++)this.words[a]=0;return this.words[n]|=i,this.length=n+1,this}for(var o=i,a=n;0!==o&&a<this.length;a++){var s=this.words[a];s+=o,o=s>>>26,s&=67108863,this.words[a]=s}return 0!==o&&(this.words[a]=o,this.length++),this},i.prototype.cmpn=function(t){var e=t<0;if(e&&(t=-t),this.sign&&!e)return-1;if(!this.sign&&e)return 1;t&=67108863,this.strip();var r;if(this.length>1)r=1;else{var n=this.words[0];r=n===t?0:n<t?-1:1}return this.sign&&(r=-r),r},i.prototype.cmp=function(t){if(this.sign&&!t.sign)return-1;if(!this.sign&&t.sign)return 1;var e=this.ucmp(t);return this.sign?-e:e},i.prototype.ucmp=function(t){if(this.length>t.length)return 1;if(this.length<t.length)return-1;for(var e=0,r=this.length-1;r>=0;r--){var n=this.words[r],i=t.words[r];if(n!==i){n<i?e=-1:n>i&&(e=1);break}}return e},i.red=function(t){return new f(t)},i.prototype.toRed=function(t){return r(!this.red,\"Already a number in reduction context\"),r(!this.sign,\"red works only with positives\"),t.convertTo(this)._forceRed(t)},i.prototype.fromRed=function(){return r(this.red,\"fromRed works only with numbers in reduction context\"),this.red.convertFrom(this)},i.prototype._forceRed=function(t){return this.red=t,this},i.prototype.forceRed=function(t){return r(!this.red,\"Already a number in reduction context\"),this._forceRed(t)},i.prototype.redAdd=function(t){return r(this.red,\"redAdd works only with red numbers\"),this.red.add(this,t)},i.prototype.redIAdd=function(t){return r(this.red,\"redIAdd works only with red numbers\"),this.red.iadd(this,t)},i.prototype.redSub=function(t){return r(this.red,\"redSub works only with red numbers\"),this.red.sub(this,t)},i.prototype.redISub=function(t){return r(this.red,\"redISub works only with red numbers\"),this.red.isub(this,t)},i.prototype.redShl=function(t){return r(this.red,\"redShl works only with red numbers\"),this.red.shl(this,t)},i.prototype.redMul=function(t){return r(this.red,\"redMul works only with red numbers\"),this.red._verify2(this,t),this.red.mul(this,t)},i.prototype.redIMul=function(t){return r(this.red,\"redMul works only with red numbers\"),this.red._verify2(this,t),this.red.imul(this,t)},i.prototype.redSqr=function(){return r(this.red,\"redSqr works only with red numbers\"),this.red._verify1(this),this.red.sqr(this)},i.prototype.redISqr=function(){return r(this.red,\"redISqr works only with red numbers\"),this.red._verify1(this),this.red.isqr(this)},i.prototype.redSqrt=function(){return r(this.red,\"redSqrt works only with red numbers\"),this.red._verify1(this),this.red.sqrt(this)},i.prototype.redInvm=function(){return r(this.red,\"redInvm works only with red numbers\"),this.red._verify1(this),this.red.invm(this)},i.prototype.redNeg=function(){return r(this.red,\"redNeg works only with red numbers\"),this.red._verify1(this),this.red.neg(this)},i.prototype.redPow=function(t){return r(this.red&&!t.red,\"redPow(normalNum)\"),this.red._verify1(this),this.red.pow(this,t)};var v={k256:null,p224:null,p192:null,p25519:null};s.prototype._tmp=function(){var t=new i(null);return t.words=new Array(Math.ceil(this.n/13)),t},s.prototype.ireduce=function(t){var e,r=t;do this.split(r,this.tmp),r=this.imulK(r),r=r.iadd(this.tmp),e=r.bitLength();while(e>this.n);var n=e<this.n?-1:r.ucmp(this.p);return 0===n?(r.words[0]=0,r.length=1):n>0?r.isub(this.p):r.strip(),r},s.prototype.split=function(t,e){t.ishrn(this.n,0,e)},s.prototype.imulK=function(t){return t.imul(this.k)},n(l,s),l.prototype.split=function(t,e){for(var r=4194303,n=Math.min(t.length,9),i=0;i<n;i++)e.words[i]=t.words[i];if(e.length=n,t.length<=9)return t.words[0]=0,void(t.length=1);var a=t.words[9];e.words[e.length++]=a&r;for(var i=10;i<t.length;i++){var o=t.words[i];t.words[i-10]=(o&r)<<4|a>>>22,a=o}t.words[i-10]=a>>>22,t.length-=9},l.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e,r=0,n=0;n<t.length;n++){var i=t.words[n];e=64*i,r+=977*i,e+=r/67108864|0,r&=67108863,t.words[n]=r,r=e}return 0===t.words[t.length-1]&&(t.length--,0===t.words[t.length-1]&&t.length--),t},n(u,s),n(c,s),n(h,s),h.prototype.imulK=function(t){for(var e=0,r=0;r<t.length;r++){var n=19*t.words[r]+e,i=67108863&n;n>>>=26,t.words[r]=i,e=n}return 0!==e&&(t.words[t.length++]=e),t},i._prime=function t(e){if(v[e])return v[e];var t;if(\"k256\"===e)t=new l;else if(\"p224\"===e)t=new u;else if(\"p192\"===e)t=new c;else{if(\"p25519\"!==e)throw new Error(\"Unknown prime \"+e);t=new h}return v[e]=t,t},f.prototype._verify1=function(t){r(!t.sign,\"red works only with positives\"),r(t.red,\"red works only with red numbers\")},f.prototype._verify2=function(t,e){r(!t.sign&&!e.sign,\"red works only with positives\"),r(t.red&&t.red===e.red,\"red works only with red numbers\")},f.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.mod(this.m)._forceRed(this)},f.prototype.neg=function(t){var e=t.clone();return e.sign=!e.sign,e.iadd(this.m)._forceRed(this)},f.prototype.add=function(t,e){this._verify2(t,e);var r=t.add(e);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},f.prototype.iadd=function(t,e){this._verify2(t,e);var r=t.iadd(e);return r.cmp(this.m)>=0&&r.isub(this.m),r},f.prototype.sub=function(t,e){this._verify2(t,e);var r=t.sub(e);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},f.prototype.isub=function(t,e){this._verify2(t,e);var r=t.isub(e);return r.cmpn(0)<0&&r.iadd(this.m),r},f.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.shln(e))},f.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},f.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},f.prototype.isqr=function(t){return this.imul(t,t)},f.prototype.sqr=function(t){return this.mul(t,t)},f.prototype.sqrt=function(t){if(0===t.cmpn(0))return t.clone();var e=this.m.andln(3);if(r(e%2===1),3===e){var n=this.m.add(new i(1)).ishrn(2),a=this.pow(t,n);return a}for(var o=this.m.subn(1),s=0;0!==o.cmpn(0)&&0===o.andln(1);)s++,o.ishrn(1);r(0!==o.cmpn(0));var l=new i(1).toRed(this),u=l.redNeg(),c=this.m.subn(1).ishrn(1),h=this.m.bitLength();for(h=new i(2*h*h).toRed(this);0!==this.pow(h,c).cmp(u);)h.redIAdd(u);for(var f=this.pow(h,o),a=this.pow(t,o.addn(1).ishrn(1)),d=this.pow(t,o),p=s;0!==d.cmp(l);){for(var g=d,m=0;0!==g.cmp(l);m++)g=g.redSqr();r(m<p);var v=this.pow(f,new i(1).ishln(p-m-1));a=a.redMul(v),f=v.redSqr(),d=d.redMul(f),p=m}return a},f.prototype.invm=function(t){var e=t._invmp(this.m);return e.sign?(e.sign=!1,this.imod(e).redNeg()):this.imod(e)},f.prototype.pow=function(t,e){var r=[];if(0===e.cmpn(0))return new i(1);for(var n=e.clone();0!==n.cmpn(0);)r.push(n.andln(1)),n.ishrn(1);for(var a=t,o=0;o<r.length&&0===r[o];o++,a=this.sqr(a));if(++o<r.length)for(var n=this.sqr(a);o<r.length;o++,n=this.sqr(n))0!==r[o]&&(a=this.mul(a,n));return a},f.prototype.convertTo=function(t){var e=t.mod(this.m);return e===t?e.clone():e},f.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},i.mont=function(t){return new d(t)},n(d,f),d.prototype.convertTo=function(t){return this.imod(t.shln(this.shift))},d.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},d.prototype.imul=function(t,e){if(0===t.cmpn(0)||0===e.cmpn(0))return t.words[0]=0,t.length=1,t;var r=t.imul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).ishrn(this.shift),a=i;return i.cmp(this.m)>=0?a=i.isub(this.m):i.cmpn(0)<0&&(a=i.iadd(this.m)),a._forceRed(this)},d.prototype.mul=function(t,e){if(0===t.cmpn(0)||0===e.cmpn(0))return new i(0)._forceRed(this);var r=t.mul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),a=r.isub(n).ishrn(this.shift),o=a;return a.cmp(this.m)>=0?o=a.isub(this.m):a.cmpn(0)<0&&(o=a.iadd(this.m)),o._forceRed(this)},d.prototype.invm=function(t){var e=this.imod(t._invmp(this.m).mul(this.r2));return e._forceRed(this)}}(\"undefined\"==typeof e||e,this)},{}],56:[function(t,e,r){\"use strict\";function n(t){var e,r,n,i=t.length,a=0;for(e=0;e<i;++e)a+=t[e].length;var o=new Array(a),s=0;for(e=0;e<i;++e){var l=t[e],u=l.length;for(r=0;r<u;++r){var c=o[s++]=new Array(u-1),h=0;for(n=0;n<u;++n)n!==r&&(c[h++]=l[n]);if(1&r){var f=c[1];c[1]=c[0],c[0]=f}}}return o}e.exports=n},{}],57:[function(t,e,r){\"use strict\";function n(t,e){for(var r=0;r<t;++r)if(!(e[r]<=e[r+t]))return!0;return!1}function i(t,e,r,i){for(var a=0,o=0,s=0,l=t.length;s<l;++s){var u=t[s];if(!n(e,u)){for(var c=0;c<2*e;++c)r[a++]=u[c];i[o++]=s}}return o}function a(t,e,r,n){var a=t.length,o=e.length;if(!(a<=0||o<=0)){var s=t[0].length>>>1;if(!(s<=0)){var l,u=h.mallocDouble(2*s*a),c=h.mallocInt32(a);if(a=i(t,s,u,c),a>0){if(1===s&&n)f.init(a),l=f.sweepComplete(s,r,0,a,u,c,0,a,u,c);else{var p=h.mallocDouble(2*s*o),g=h.mallocInt32(o);o=i(e,s,p,g),o>0&&(f.init(a+o),l=1===s?f.sweepBipartite(s,r,0,a,u,c,0,o,p,g):d(s,r,n,a,u,c,o,p,g),h.free(p),h.free(g))}h.free(u),h.free(c)}return l}}}function o(t,e){c.push([t,e])}function s(t){return c=[],a(t,t,o,!0),c}function l(t,e){return c=[],a(t,e,o,!1),c}function u(t,e,r){switch(arguments.length){case 1:return s(t);case 2:return\"function\"==typeof e?a(t,t,e,!0):l(t,e);case 3:return a(t,e,r,!1);default:throw new Error(\"box-intersect: Invalid arguments\")}}e.exports=u;var c,h=t(\"typedarray-pool\"),f=t(\"./lib/sweep\"),d=t(\"./lib/intersect\")},{\"./lib/intersect\":59,\"./lib/sweep\":63,\"typedarray-pool\":496}],58:[function(t,e,r){\"use strict\";function n(t,e,r){var n=\"bruteForce\"+(t?\"Red\":\"Blue\")+(e?\"Flip\":\"\")+(r?\"Full\":\"\"),i=[\"function \",n,\"(\",w.join(),\"){\",\"var \",u,\"=2*\",a,\";\"],l=\"for(var i=\"+c+\",\"+p+\"=\"+u+\"*\"+c+\";i<\"+h+\";++i,\"+p+\"+=\"+u+\"){var x0=\"+f+\"[\"+o+\"+\"+p+\"],x1=\"+f+\"[\"+o+\"+\"+p+\"+\"+a+\"],xi=\"+d+\"[i];\",M=\"for(var j=\"+g+\",\"+x+\"=\"+u+\"*\"+g+\";j<\"+m+\";++j,\"+x+\"+=\"+u+\"){var y0=\"+v+\"[\"+o+\"+\"+x+\"],\"+(r?\"y1=\"+v+\"[\"+o+\"+\"+x+\"+\"+a+\"],\":\"\")+\"yi=\"+y+\"[j];\";return t?i.push(l,_,\":\",M):i.push(M,_,\":\",l),r?i.push(\"if(y1<x0||x1<y0)continue;\"):e?i.push(\"if(y0<=x0||x1<y0)continue;\"):i.push(\"if(y0<x0||x1<y0)continue;\"),i.push(\"for(var k=\"+o+\"+1;k<\"+a+\";++k){var r0=\"+f+\"[k+\"+p+\"],r1=\"+f+\"[k+\"+a+\"+\"+p+\"],b0=\"+v+\"[k+\"+x+\"],b1=\"+v+\"[k+\"+a+\"+\"+x+\"];if(r1<b0||b1<r0)continue \"+_+\";}var \"+b+\"=\"+s+\"(\"),e?i.push(\"yi,xi\"):i.push(\"xi,yi\"),i.push(\");if(\"+b+\"!==void 0)return \"+b+\";}}}\"),{name:n,code:i.join(\"\")}}function i(t){function e(e,r){var a=n(e,r,t);i.push(a.code),o.push(\"return \"+a.name+\"(\"+w.join()+\");\")}var r=\"bruteForce\"+(t?\"Full\":\"Partial\"),i=[],a=w.slice();t||a.splice(3,0,l);var o=[\"function \"+r+\"(\"+a.join()+\"){\"];o.push(\"if(\"+h+\"-\"+c+\">\"+m+\"-\"+g+\"){\"),t?(e(!0,!1),o.push(\"}else{\"),e(!1,!1)):(o.push(\"if(\"+l+\"){\"),e(!0,!0),o.push(\"}else{\"),e(!0,!1),o.push(\"}}else{if(\"+l+\"){\"),e(!1,!0),o.push(\"}else{\"),e(!1,!1),o.push(\"}\")),o.push(\"}}return \"+r);var s=i.join(\"\")+o.join(\"\"),u=new Function(s);return u()}var a=\"d\",o=\"ax\",s=\"vv\",l=\"fp\",u=\"es\",c=\"rs\",h=\"re\",f=\"rb\",d=\"ri\",p=\"rp\",g=\"bs\",m=\"be\",v=\"bb\",y=\"bi\",x=\"bp\",b=\"rv\",_=\"Q\",w=[a,o,s,c,h,f,d,g,m,v,y];r.partial=i(!1),r.full=i(!0)},{}],59:[function(t,e,r){\"use strict\";function n(t,e){var r=8*u.log2(e+1)*(t+1)|0,n=u.nextPow2(k*r);S.length<n&&(l.free(S),S=l.mallocInt32(n));\n",
"var i=u.nextPow2(T*r);L<i&&(l.free(L),L=l.mallocDouble(i))}function i(t,e,r,n,i,a,o,s,l){var u=k*t;S[u]=e,S[u+1]=r,S[u+2]=n,S[u+3]=i,S[u+4]=a,S[u+5]=o;var c=T*t;L[c]=s,L[c+1]=l}function a(t,e,r,n,i,a,o,s,l,u,c){var h=2*t,f=l*h,d=u[f+e];t:for(var p=i,g=i*h;p<a;++p,g+=h){var m=o[g+e],v=o[g+e+t];if(!(d<m||v<d||n&&d===m)){for(var y=s[p],x=e+1;x<t;++x){var m=o[g+x],v=o[g+x+t],b=u[f+x],_=u[f+x+t];if(v<b||_<m)continue t}var w;if(w=n?r(c,y):r(y,c),void 0!==w)return w}}}function o(t,e,r,n,i,a,o,s,l,u){var c=2*t,h=s*c,f=l[h+e];t:for(var d=n,p=n*c;d<i;++d,p+=c){var g=o[d];if(g!==u){var m=a[p+e],v=a[p+e+t];if(!(f<m||v<f)){for(var y=e+1;y<t;++y){var m=a[p+y],v=a[p+y+t],x=l[h+y],b=l[h+y+t];if(v<x||b<m)continue t}var _=r(g,u);if(void 0!==_)return _}}}}function s(t,e,r,s,l,u,c,g,E){n(t,s+c);var z,C=0,I=2*t;for(i(C++,0,0,s,0,c,r?16:0,-(1/0),1/0),r||i(C++,0,0,c,0,s,1,-(1/0),1/0);C>0;){C-=1;var P=C*k,D=S[P],O=S[P+1],R=S[P+2],F=S[P+3],j=S[P+4],N=S[P+5],B=C*T,U=L[B],V=L[B+1],q=1&N,H=!!(16&N),G=l,X=u,Y=g,W=E;if(q&&(G=g,X=E,Y=l,W=u),!(2&N&&(R=_(t,D,O,R,G,X,V),O>=R)||4&N&&(O=w(t,D,O,R,G,X,U),O>=R))){var Z=R-O,Q=j-F;if(H){if(t*Z*(Z+Q)<y){if(z=d.scanComplete(t,D,e,O,R,G,X,F,j,Y,W),void 0!==z)return z;continue}}else{if(t*Math.min(Z,Q)<m){if(z=h(t,D,e,q,O,R,G,X,F,j,Y,W),void 0!==z)return z;continue}if(t*Z*Q<v){if(z=d.scanBipartite(t,D,e,q,O,R,G,X,F,j,Y,W),void 0!==z)return z;continue}}var K=x(t,D,O,R,G,X,U,V);if(O<K)if(t*(K-O)<m){if(z=f(t,D+1,e,O,K,G,X,F,j,Y,W),void 0!==z)return z}else if(D===t-2){if(z=q?d.sweepBipartite(t,e,F,j,Y,W,O,K,G,X):d.sweepBipartite(t,e,O,K,G,X,F,j,Y,W),void 0!==z)return z}else i(C++,D+1,O,K,F,j,q,-(1/0),1/0),i(C++,D+1,F,j,O,K,1^q,-(1/0),1/0);if(K<R){var $=p(t,D,F,j,Y,W),J=Y[I*$+D],tt=b(t,D,$,j,Y,W,J);if(tt<j&&i(C++,D,K,R,tt,j,(4|q)+(H?16:0),J,V),F<$&&i(C++,D,K,R,F,$,(2|q)+(H?16:0),U,J),$+1===tt){if(z=H?o(t,D,e,K,R,G,X,$,Y,W[$]):a(t,D,e,q,K,R,G,X,$,Y,W[$]),void 0!==z)return z}else if($<tt){var et;if(H){if(et=M(t,D,K,R,G,X,J),K<et){var rt=b(t,D,K,et,G,X,J);if(D===t-2){if(K<rt&&(z=d.sweepComplete(t,e,K,rt,G,X,$,tt,Y,W),void 0!==z))return z;if(rt<et&&(z=d.sweepBipartite(t,e,rt,et,G,X,$,tt,Y,W),void 0!==z))return z}else K<rt&&i(C++,D+1,K,rt,$,tt,16,-(1/0),1/0),rt<et&&(i(C++,D+1,rt,et,$,tt,0,-(1/0),1/0),i(C++,D+1,$,tt,rt,et,1,-(1/0),1/0))}}else et=q?A(t,D,K,R,G,X,J):M(t,D,K,R,G,X,J),K<et&&(D===t-2?z=q?d.sweepBipartite(t,e,$,tt,Y,W,K,et,G,X):d.sweepBipartite(t,e,K,et,G,X,$,tt,Y,W):(i(C++,D+1,K,et,$,tt,q,-(1/0),1/0),i(C++,D+1,$,tt,K,et,1^q,-(1/0),1/0)))}}}}}e.exports=s;var l=t(\"typedarray-pool\"),u=t(\"bit-twiddle\"),c=t(\"./brute\"),h=c.partial,f=c.full,d=t(\"./sweep\"),p=t(\"./median\"),g=t(\"./partition\"),m=128,v=1<<22,y=1<<22,x=g(\"!(lo>=p0)&&!(p1>=hi)\",[\"p0\",\"p1\"]),b=g(\"lo===p0\",[\"p0\"]),_=g(\"lo<p0\",[\"p0\"]),w=g(\"hi<=p0\",[\"p0\"]),M=g(\"lo<=p0&&p0<=hi\",[\"p0\"]),A=g(\"lo<p0&&p0<=hi\",[\"p0\"]),k=6,T=2,E=1024,S=l.mallocInt32(E),L=l.mallocDouble(E)},{\"./brute\":58,\"./median\":60,\"./partition\":61,\"./sweep\":63,\"bit-twiddle\":54,\"typedarray-pool\":496}],60:[function(t,e,r){\"use strict\";function n(t,e,r,n,i,a){for(var o=2*t,s=o*(r+1)+e,l=r+1;l<n;++l,s+=o)for(var u=i[s],c=l,h=o*(l-1);c>r&&i[h+e]>u;--c,h-=o){for(var f=h,d=h+o,p=0;p<o;++p,++f,++d){var g=i[f];i[f]=i[d],i[d]=g}var m=a[c];a[c]=a[c-1],a[c-1]=m}}function i(t,e,r,i,a,l){if(i<=r+1)return r;for(var u=r,c=i,h=i+r>>>1,f=2*t,d=h,p=a[f*h+e];u<c;){if(c-u<s){n(t,e,u,c,a,l),p=a[f*h+e];break}var g=c-u,m=Math.random()*g+u|0,v=a[f*m+e],y=Math.random()*g+u|0,x=a[f*y+e],b=Math.random()*g+u|0,_=a[f*b+e];v<=x?_>=x?(d=y,p=x):v>=_?(d=m,p=v):(d=b,p=_):x>=_?(d=y,p=x):_>=v?(d=m,p=v):(d=b,p=_);for(var w=f*(c-1),M=f*d,A=0;A<f;++A,++w,++M){var k=a[w];a[w]=a[M],a[M]=k}var T=l[c-1];l[c-1]=l[d],l[d]=T,d=o(t,e,u,c-1,a,l,p);for(var w=f*(c-1),M=f*d,A=0;A<f;++A,++w,++M){var k=a[w];a[w]=a[M],a[M]=k}var T=l[c-1];if(l[c-1]=l[d],l[d]=T,h<d){for(c=d-1;u<c&&a[f*(c-1)+e]===p;)c-=1;c+=1}else{if(!(d<h))break;for(u=d+1;u<c&&a[f*u+e]===p;)u+=1}}return o(t,e,r,h,a,l,a[f*h+e])}e.exports=i;var a=t(\"./partition\"),o=a(\"lo<p0\",[\"p0\"]),s=8},{\"./partition\":61}],61:[function(t,e,r){\"use strict\";function n(t,e){var r=\"abcdef\".split(\"\").concat(e),n=[];return t.indexOf(\"lo\")>=0&&n.push(\"lo=e[k+n]\"),t.indexOf(\"hi\")>=0&&n.push(\"hi=e[k+o]\"),r.push(i.replace(\"_\",n.join()).replace(\"$\",t)),Function.apply(void 0,r)}e.exports=n;var i=\"for(var j=2*a,k=j*c,l=k,m=c,n=b,o=a+b,p=c;d>p;++p,k+=j){var _;if($)if(m===p)m+=1,l+=j;else{for(var s=0;j>s;++s){var t=e[k+s];e[k+s]=e[l],e[l++]=t}var u=f[p];f[p]=f[m],f[m++]=u}}return m\"},{}],62:[function(t,e,r){\"use strict\";function n(t,e){e<=4*f?i(0,e-1,t):h(0,e-1,t)}function i(t,e,r){for(var n=2*(t+1),i=t+1;i<=e;++i){for(var a=r[n++],o=r[n++],s=i,l=n-2;s-- >t;){var u=r[l-2],c=r[l-1];if(u<a)break;if(u===a&&c<o)break;r[l]=u,r[l+1]=c,l-=2}r[l]=a,r[l+1]=o}}function a(t,e,r){t*=2,e*=2;var n=r[t],i=r[t+1];r[t]=r[e],r[t+1]=r[e+1],r[e]=n,r[e+1]=i}function o(t,e,r){t*=2,e*=2,r[t]=r[e],r[t+1]=r[e+1]}function s(t,e,r,n){t*=2,e*=2,r*=2;var i=n[t],a=n[t+1];n[t]=n[e],n[t+1]=n[e+1],n[e]=n[r],n[e+1]=n[r+1],n[r]=i,n[r+1]=a}function l(t,e,r,n,i){t*=2,e*=2,i[t]=i[e],i[e]=r,i[t+1]=i[e+1],i[e+1]=n}function u(t,e,r){t*=2,e*=2;var n=r[t],i=r[e];return!(n<i)&&(n!==i||r[t+1]>r[e+1])}function c(t,e,r,n){t*=2;var i=n[t];return i<e||i===e&&n[t+1]<r}function h(t,e,r){var n=(e-t+1)/6|0,d=t+n,p=e-n,g=t+e>>1,m=g-n,v=g+n,y=d,x=m,b=g,_=v,w=p,M=t+1,A=e-1,k=0;u(y,x,r)&&(k=y,y=x,x=k),u(_,w,r)&&(k=_,_=w,w=k),u(y,b,r)&&(k=y,y=b,b=k),u(x,b,r)&&(k=x,x=b,b=k),u(y,_,r)&&(k=y,y=_,_=k),u(b,_,r)&&(k=b,b=_,_=k),u(x,w,r)&&(k=x,x=w,w=k),u(x,b,r)&&(k=x,x=b,b=k),u(_,w,r)&&(k=_,_=w,w=k);for(var T=r[2*x],E=r[2*x+1],S=r[2*_],L=r[2*_+1],z=2*y,C=2*b,I=2*w,P=2*d,D=2*g,O=2*p,R=0;R<2;++R){var F=r[z+R],j=r[C+R],N=r[I+R];r[P+R]=F,r[D+R]=j,r[O+R]=N}o(m,t,r),o(v,e,r);for(var B=M;B<=A;++B)if(c(B,T,E,r))B!==M&&a(B,M,r),++M;else if(!c(B,S,L,r))for(;;){if(c(A,S,L,r)){c(A,T,E,r)?(s(B,M,A,r),++M,--A):(a(B,A,r),--A);break}if(--A<B)break}l(t,M-1,T,E,r),l(e,A+1,S,L,r),M-2-t<=f?i(t,M-2,r):h(t,M-2,r),e-(A+2)<=f?i(A+2,e,r):h(A+2,e,r),A-M<=f?i(M,A,r):h(M,A,r)}e.exports=n;var f=32},{}],63:[function(t,e,r){\"use strict\";function n(t){var e=h.nextPow2(t);g.length<e&&(c.free(g),g=c.mallocInt32(e)),m.length<e&&(c.free(m),m=c.mallocInt32(e)),v.length<e&&(c.free(v),v=c.mallocInt32(e)),y.length<e&&(c.free(y),y=c.mallocInt32(e)),x.length<e&&(c.free(x),x=c.mallocInt32(e)),b.length<e&&(c.free(b),b=c.mallocInt32(e));var r=8*e;_.length<r&&(c.free(_),_=c.mallocDouble(r))}function i(t,e,r,n){var i=e[n],a=t[r-1];t[i]=a,e[a]=i}function a(t,e,r,n){t[r]=n,e[n]=r}function o(t,e,r,n,o,s,l,u,c,h){for(var p=0,x=2*t,b=t-1,w=x-1,M=r;M<n;++M){var A=s[M],k=x*M;_[p++]=o[k+b],_[p++]=-(A+1),_[p++]=o[k+w],_[p++]=A}for(var M=l;M<u;++M){var A=h[M]+d,T=x*M;_[p++]=c[T+b],_[p++]=-A,_[p++]=c[T+w],_[p++]=A}var E=p>>>1;f(_,E);for(var S=0,L=0,M=0;M<E;++M){var z=0|_[2*M+1];if(z>=d)z=z-d|0,i(v,y,L--,z);else if(z>=0)i(g,m,S--,z);else if(z<=-d){z=-z-d|0;for(var C=0;C<S;++C){var I=e(g[C],z);if(void 0!==I)return I}a(v,y,L++,z)}else{z=-z-1|0;for(var C=0;C<L;++C){var I=e(z,v[C]);if(void 0!==I)return I}a(g,m,S++,z)}}}function s(t,e,r,n,o,s,l,u,c,h){for(var d=0,p=2*t,w=t-1,M=p-1,A=r;A<n;++A){var k=s[A]+1<<1,T=p*A;_[d++]=o[T+w],_[d++]=-k,_[d++]=o[T+M],_[d++]=k}for(var A=l;A<u;++A){var k=h[A]+1<<1,E=p*A;_[d++]=c[E+w],_[d++]=1|-k,_[d++]=c[E+M],_[d++]=1|k}var S=d>>>1;f(_,S);for(var L=0,z=0,C=0,A=0;A<S;++A){var I=0|_[2*A+1],P=1&I;if(A<S-1&&I>>1===_[2*A+3]>>1&&(P=2,A+=1),I<0){for(var D=-(I>>1)-1,O=0;O<C;++O){var R=e(x[O],D);if(void 0!==R)return R}if(0!==P)for(var O=0;O<L;++O){var R=e(g[O],D);if(void 0!==R)return R}if(1!==P)for(var O=0;O<z;++O){var R=e(v[O],D);if(void 0!==R)return R}0===P?a(g,m,L++,D):1===P?a(v,y,z++,D):2===P&&a(x,b,C++,D)}else{var D=(I>>1)-1;0===P?i(g,m,L--,D):1===P?i(v,y,z--,D):2===P&&i(x,b,C--,D)}}}function l(t,e,r,n,o,s,l,u,c,h,p,v){var y=0,x=2*t,b=e,w=e+t,M=1,A=1;n?A=d:M=d;for(var k=o;k<s;++k){var T=k+M,E=x*k;_[y++]=l[E+b],_[y++]=-T,_[y++]=l[E+w],_[y++]=T}for(var k=c;k<h;++k){var T=k+A,S=x*k;_[y++]=p[S+b],_[y++]=-T}var L=y>>>1;f(_,L);for(var z=0,k=0;k<L;++k){var C=0|_[2*k+1];if(C<0){var T=-C,I=!1;if(T>=d?(I=!n,T-=d):(I=!!n,T-=1),I)a(g,m,z++,T);else{var P=v[T],D=x*T,O=p[D+e+1],R=p[D+e+1+t];t:for(var F=0;F<z;++F){var j=g[F],N=x*j;if(!(R<l[N+e+1]||l[N+e+1+t]<O)){for(var B=e+2;B<t;++B)if(p[D+B+t]<l[N+B]||l[N+B+t]<p[D+B])continue t;var U,V=u[j];if(U=n?r(P,V):r(V,P),void 0!==U)return U}}}}else i(g,m,z--,C-M)}}function u(t,e,r,n,i,a,o,s,l,u,c){for(var h=0,p=2*t,m=e,v=e+t,y=n;y<i;++y){var x=y+d,b=p*y;_[h++]=a[b+m],_[h++]=-x,_[h++]=a[b+v],_[h++]=x}for(var y=s;y<l;++y){var x=y+1,w=p*y;_[h++]=u[w+m],_[h++]=-x}var M=h>>>1;f(_,M);for(var A=0,y=0;y<M;++y){var k=0|_[2*y+1];if(k<0){var x=-k;if(x>=d)g[A++]=x-d;else{x-=1;var T=c[x],E=p*x,S=u[E+e+1],L=u[E+e+1+t];t:for(var z=0;z<A;++z){var C=g[z],I=o[C];if(I===T)break;var P=p*C;if(!(L<a[P+e+1]||a[P+e+1+t]<S)){for(var D=e+2;D<t;++D)if(u[E+D+t]<a[P+D]||a[P+D+t]<u[E+D])continue t;var O=r(I,T);if(void 0!==O)return O}}}}else{for(var x=k-d,z=A-1;z>=0;--z)if(g[z]===x){for(var D=z+1;D<A;++D)g[D-1]=g[D];break}--A}}}e.exports={init:n,sweepBipartite:o,sweepComplete:s,scanBipartite:l,scanComplete:u};var c=t(\"typedarray-pool\"),h=t(\"bit-twiddle\"),f=t(\"./sort\"),d=1<<28,p=1024,g=c.mallocInt32(p),m=c.mallocInt32(p),v=c.mallocInt32(p),y=c.mallocInt32(p),x=c.mallocInt32(p),b=c.mallocInt32(p),_=c.mallocDouble(8*p)},{\"./sort\":62,\"bit-twiddle\":54,\"typedarray-pool\":496}],64:[function(t,e,r){(function(e){\"use strict\";function n(){try{var t=new Uint8Array(1);return t.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===t.foo()&&\"function\"==typeof t.subarray&&0===t.subarray(1,1).byteLength}catch(t){return!1}}function i(){return o.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function a(t,e){if(i()<e)throw new RangeError(\"Invalid typed array length\");return o.TYPED_ARRAY_SUPPORT?(t=new Uint8Array(e),t.__proto__=o.prototype):(null===t&&(t=new o(e)),t.length=e),t}function o(t,e,r){if(!(o.TYPED_ARRAY_SUPPORT||this instanceof o))return new o(t,e,r);if(\"number\"==typeof t){if(\"string\"==typeof e)throw new Error(\"If encoding is specified then the first argument must be a string\");return c(this,t)}return s(this,t,e,r)}function s(t,e,r,n){if(\"number\"==typeof e)throw new TypeError('\"value\" argument must not be a number');return\"undefined\"!=typeof ArrayBuffer&&e instanceof ArrayBuffer?d(t,e,r,n):\"string\"==typeof e?h(t,e,r):p(t,e)}function l(t){if(\"number\"!=typeof t)throw new TypeError('\"size\" argument must be a number');if(t<0)throw new RangeError('\"size\" argument must not be negative')}function u(t,e,r,n){return l(e),e<=0?a(t,e):void 0!==r?\"string\"==typeof n?a(t,e).fill(r,n):a(t,e).fill(r):a(t,e)}function c(t,e){if(l(e),t=a(t,e<0?0:0|g(e)),!o.TYPED_ARRAY_SUPPORT)for(var r=0;r<e;++r)t[r]=0;return t}function h(t,e,r){if(\"string\"==typeof r&&\"\"!==r||(r=\"utf8\"),!o.isEncoding(r))throw new TypeError('\"encoding\" must be a valid string encoding');var n=0|v(e,r);t=a(t,n);var i=t.write(e,r);return i!==n&&(t=t.slice(0,i)),t}function f(t,e){var r=e.length<0?0:0|g(e.length);t=a(t,r);for(var n=0;n<r;n+=1)t[n]=255&e[n];return t}function d(t,e,r,n){if(e.byteLength,r<0||e.byteLength<r)throw new RangeError(\"'offset' is out of bounds\");if(e.byteLength<r+(n||0))throw new RangeError(\"'length' is out of bounds\");return e=void 0===r&&void 0===n?new Uint8Array(e):void 0===n?new Uint8Array(e,r):new Uint8Array(e,r,n),o.TYPED_ARRAY_SUPPORT?(t=e,t.__proto__=o.prototype):t=f(t,e),t}function p(t,e){if(o.isBuffer(e)){var r=0|g(e.length);return t=a(t,r),0===t.length?t:(e.copy(t,0,0,r),t)}if(e){if(\"undefined\"!=typeof ArrayBuffer&&e.buffer instanceof ArrayBuffer||\"length\"in e)return\"number\"!=typeof e.length||Q(e.length)?a(t,0):f(t,e);if(\"Buffer\"===e.type&&J(e.data))return f(t,e.data)}throw new TypeError(\"First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.\")}function g(t){if(t>=i())throw new RangeError(\"Attempt to allocate Buffer larger than maximum size: 0x\"+i().toString(16)+\" bytes\");return 0|t}function m(t){return+t!=t&&(t=0),o.alloc(+t)}function v(t,e){if(o.isBuffer(t))return t.length;if(\"undefined\"!=typeof ArrayBuffer&&\"function\"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;\"string\"!=typeof t&&(t=\"\"+t);var r=t.length;if(0===r)return 0;for(var n=!1;;)switch(e){case\"ascii\":case\"latin1\":case\"binary\":return r;case\"utf8\":case\"utf-8\":case void 0:return G(t).length;case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return 2*r;case\"hex\":return r>>>1;case\"base64\":return W(t).length;default:if(n)return G(t).length;e=(\"\"+e).toLowerCase(),n=!0}}function y(t,e,r){var n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return\"\";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return\"\";if(r>>>=0,e>>>=0,r<=e)return\"\";for(t||(t=\"utf8\");;)switch(t){case\"hex\":return P(this,e,r);case\"utf8\":case\"utf-8\":return L(this,e,r);case\"ascii\":return C(this,e,r);case\"latin1\":case\"binary\":return I(this,e,r);case\"base64\":return S(this,e,r);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return D(this,e,r);default:if(n)throw new TypeError(\"Unknown encoding: \"+t);t=(t+\"\").toLowerCase(),n=!0}}function x(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function b(t,e,r,n,i){if(0===t.length)return-1;if(\"string\"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(i)return-1;r=t.length-1}else if(r<0){if(!i)return-1;r=0}if(\"string\"==typeof e&&(e=o.from(e,n)),o.isBuffer(e))return 0===e.length?-1:_(t,e,r,n,i);if(\"number\"==typeof e)return e&=255,o.TYPED_ARRAY_SUPPORT&&\"function\"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):_(t,[e],r,n,i);throw new TypeError(\"val must be string, number or Buffer\")}function _(t,e,r,n,i){function a(t,e){return 1===o?t[e]:t.readUInt16BE(e*o)}var o=1,s=t.length,l=e.length;if(void 0!==n&&(n=String(n).toLowerCase(),\"ucs2\"===n||\"ucs-2\"===n||\"utf16le\"===n||\"utf-16le\"===n)){if(t.length<2||e.length<2)return-1;o=2,s/=2,l/=2,r/=2}var u;if(i){var c=-1;for(u=r;u<s;u++)if(a(t,u)===a(e,c===-1?0:u-c)){if(c===-1&&(c=u),u-c+1===l)return c*o}else c!==-1&&(u-=u-c),c=-1}else for(r+l>s&&(r=s-l),u=r;u>=0;u--){for(var h=!0,f=0;f<l;f++)if(a(t,u+f)!==a(e,f)){h=!1;break}if(h)return u}return-1}function w(t,e,r,n){r=Number(r)||0;var i=t.length-r;n?(n=Number(n),n>i&&(n=i)):n=i;var a=e.length;if(a%2!==0)throw new TypeError(\"Invalid hex string\");n>a/2&&(n=a/2);for(var o=0;o<n;++o){var s=parseInt(e.substr(2*o,2),16);if(isNaN(s))return o;t[r+o]=s}return o}function M(t,e,r,n){return Z(G(e,t.length-r),t,r,n)}function A(t,e,r,n){return Z(X(e),t,r,n)}function k(t,e,r,n){return A(t,e,r,n)}function T(t,e,r,n){return Z(W(e),t,r,n)}function E(t,e,r,n){return Z(Y(e,t.length-r),t,r,n)}function S(t,e,r){return 0===e&&r===t.length?K.fromByteArray(t):K.fromByteArray(t.slice(e,r))}function L(t,e,r){r=Math.min(t.length,r);for(var n=[],i=e;i<r;){var a=t[i],o=null,s=a>239?4:a>223?3:a>191?2:1;if(i+s<=r){var l,u,c,h;switch(s){case 1:a<128&&(o=a);break;case 2:l=t[i+1],128===(192&l)&&(h=(31&a)<<6|63&l,h>127&&(o=h));break;case 3:l=t[i+1],u=t[i+2],128===(192&l)&&128===(192&u)&&(h=(15&a)<<12|(63&l)<<6|63&u,h>2047&&(h<55296||h>57343)&&(o=h));break;case 4:l=t[i+1],u=t[i+2],c=t[i+3],128===(192&l)&&128===(192&u)&&128===(192&c)&&(h=(15&a)<<18|(63&l)<<12|(63&u)<<6|63&c,h>65535&&h<1114112&&(o=h))}}null===o?(o=65533,s=1):o>65535&&(o-=65536,n.push(o>>>10&1023|55296),o=56320|1023&o),n.push(o),i+=s}return z(n)}function z(t){var e=t.length;if(e<=tt)return String.fromCharCode.apply(String,t);for(var r=\"\",n=0;n<e;)r+=String.fromCharCode.apply(String,t.slice(n,n+=tt));return r}function C(t,e,r){var n=\"\";r=Math.min(t.length,r);for(var i=e;i<r;++i)n+=String.fromCharCode(127&t[i]);return n}function I(t,e,r){var n=\"\";r=Math.min(t.length,r);for(var i=e;i<r;++i)n+=String.fromCharCode(t[i]);return n}function P(t,e,r){var n=t.length;(!e||e<0)&&(e=0),(!r||r<0||r>n)&&(r=n);for(var i=\"\",a=e;a<r;++a)i+=H(t[a]);return i}function D(t,e,r){for(var n=t.slice(e,r),i=\"\",a=0;a<n.length;a+=2)i+=String.fromCharCode(n[a]+256*n[a+1]);return i}function O(t,e,r){if(t%1!==0||t<0)throw new RangeError(\"offset is not uint\");if(t+e>r)throw new RangeError(\"Trying to access beyond buffer length\")}function R(t,e,r,n,i,a){if(!o.isBuffer(t))throw new TypeError('\"buffer\" argument must be a Buffer instance');if(e>i||e<a)throw new RangeError('\"value\" argument is out of bounds');if(r+n>t.length)throw new RangeError(\"Index out of range\")}function F(t,e,r,n){e<0&&(e=65535+e+1);for(var i=0,a=Math.min(t.length-r,2);i<a;++i)t[r+i]=(e&255<<8*(n?i:1-i))>>>8*(n?i:1-i)}function j(t,e,r,n){e<0&&(e=4294967295+e+1);for(var i=0,a=Math.min(t.length-r,4);i<a;++i)t[r+i]=e>>>8*(n?i:3-i)&255}function N(t,e,r,n,i,a){if(r+n>t.length)throw new RangeError(\"Index out of range\");if(r<0)throw new RangeError(\"Index out of range\")}function B(t,e,r,n,i){return i||N(t,e,r,4,3.4028234663852886e38,-3.4028234663852886e38),$.write(t,e,r,n,23,4),r+4}function U(t,e,r,n,i){return i||N(t,e,r,8,1.7976931348623157e308,-1.7976931348623157e308),$.write(t,e,r,n,52,8),r+8}function V(t){if(t=q(t).replace(et,\"\"),t.length<2)return\"\";for(;t.length%4!==0;)t+=\"=\";return t}function q(t){return t.trim?t.trim():t.replace(/^\\s+|\\s+$/g,\"\")}function H(t){return t<16?\"0\"+t.toString(16):t.toString(16)}function G(t,e){e=e||1/0;for(var r,n=t.length,i=null,a=[],o=0;o<n;++o){if(r=t.charCodeAt(o),r>55295&&r<57344){if(!i){if(r>56319){(e-=3)>-1&&a.push(239,191,189);continue}if(o+1===n){(e-=3)>-1&&a.push(239,191,189);continue}i=r;continue}if(r<56320){(e-=3)>-1&&a.push(239,191,189),i=r;continue}r=(i-55296<<10|r-56320)+65536}else i&&(e-=3)>-1&&a.push(239,191,189);if(i=null,r<128){if((e-=1)<0)break;a.push(r)}else if(r<2048){if((e-=2)<0)break;a.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;a.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error(\"Invalid code point\");if((e-=4)<0)break;a.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return a}function X(t){for(var e=[],r=0;r<t.length;++r)e.push(255&t.charCodeAt(r));return e}function Y(t,e){for(var r,n,i,a=[],o=0;o<t.length&&!((e-=2)<0);++o)r=t.charCodeAt(o),n=r>>8,i=r%256,a.push(i),a.push(n);return a}function W(t){return K.toByteArray(V(t))}function Z(t,e,r,n){for(var i=0;i<n&&!(i+r>=e.length||i>=t.length);++i)e[i+r]=t[i];return i}function Q(t){return t!==t}var K=t(\"base64-js\"),$=t(\"ieee754\"),J=t(\"isarray\");r.Buffer=o,r.SlowBuffer=m,r.INSPECT_MAX_BYTES=50,o.TYPED_ARRAY_SUPPORT=void 0!==e.TYPED_ARRAY_SUPPORT?e.TYPED_ARRAY_SUPPORT:n(),r.kMaxLength=i(),o.poolSize=8192,o._augment=function(t){return t.__proto__=o.prototype,t},o.from=function(t,e,r){return s(null,t,e,r)},o.TYPED_ARRAY_SUPPORT&&(o.prototype.__proto__=Uint8Array.prototype,o.__proto__=Uint8Array,\"undefined\"!=typeof Symbol&&Symbol.species&&o[Symbol.species]===o&&Object.defineProperty(o,Symbol.species,{value:null,configurable:!0})),o.alloc=function(t,e,r){return u(null,t,e,r)},o.allocUnsafe=function(t){return c(null,t)},o.allocUnsafeSlow=function(t){return c(null,t)},o.isBuffer=function(t){return!(null==t||!t._isBuffer)},o.compare=function(t,e){if(!o.isBuffer(t)||!o.isBuffer(e))throw new TypeError(\"Arguments must be Buffers\");if(t===e)return 0;for(var r=t.length,n=e.length,i=0,a=Math.min(r,n);i<a;++i)if(t[i]!==e[i]){r=t[i],n=e[i];break}return r<n?-1:n<r?1:0},o.isEncoding=function(t){switch(String(t).toLowerCase()){case\"hex\":case\"utf8\":case\"utf-8\":case\"ascii\":case\"latin1\":case\"binary\":case\"base64\":case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return!0;default:return!1}},o.concat=function(t,e){if(!J(t))throw new TypeError('\"list\" argument must be an Array of Buffers');if(0===t.length)return o.alloc(0);var r;if(void 0===e)for(e=0,r=0;r<t.length;++r)e+=t[r].length;var n=o.allocUnsafe(e),i=0;for(r=0;r<t.length;++r){var a=t[r];if(!o.isBuffer(a))throw new TypeError('\"list\" argument must be an Array of Buffers');a.copy(n,i),i+=a.length}return n},o.byteLength=v,o.prototype._isBuffer=!0,o.prototype.swap16=function(){var t=this.length;if(t%2!==0)throw new RangeError(\"Buffer size must be a multiple of 16-bits\");for(var e=0;e<t;e+=2)x(this,e,e+1);return this},o.prototype.swap32=function(){var t=this.length;if(t%4!==0)throw new RangeError(\"Buffer size must be a multiple of 32-bits\");for(var e=0;e<t;e+=4)x(this,e,e+3),x(this,e+1,e+2);return this},o.prototype.swap64=function(){var t=this.length;if(t%8!==0)throw new RangeError(\"Buffer size must be a multiple of 64-bits\");for(var e=0;e<t;e+=8)x(this,e,e+7),x(this,e+1,e+6),x(this,e+2,e+5),x(this,e+3,e+4);return this},o.prototype.toString=function(){var t=0|this.length;return 0===t?\"\":0===arguments.length?L(this,0,t):y.apply(this,arguments)},o.prototype.equals=function(t){if(!o.isBuffer(t))throw new TypeError(\"Argument must be a Buffer\");return this===t||0===o.compare(this,t)},o.prototype.inspect=function(){var t=\"\",e=r.INSPECT_MAX_BYTES;return this.length>0&&(t=this.toString(\"hex\",0,e).match(/.{2}/g).join(\" \"),this.length>e&&(t+=\" ... \")),\"<Buffer \"+t+\">\"},o.prototype.compare=function(t,e,r,n,i){if(!o.isBuffer(t))throw new TypeError(\"Argument must be a Buffer\");if(void 0===e&&(e=0),void 0===r&&(r=t?t.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),e<0||r>t.length||n<0||i>this.length)throw new RangeError(\"out of range index\");if(n>=i&&e>=r)return 0;if(n>=i)return-1;if(e>=r)return 1;if(e>>>=0,r>>>=0,n>>>=0,i>>>=0,this===t)return 0;for(var a=i-n,s=r-e,l=Math.min(a,s),u=this.slice(n,i),c=t.slice(e,r),h=0;h<l;++h)if(u[h]!==c[h]){a=u[h],s=c[h];break}return a<s?-1:s<a?1:0},o.prototype.includes=function(t,e,r){return this.indexOf(t,e,r)!==-1},o.prototype.indexOf=function(t,e,r){return b(this,t,e,r,!0)},o.prototype.lastIndexOf=function(t,e,r){return b(this,t,e,r,!1)},o.prototype.write=function(t,e,r,n){if(void 0===e)n=\"utf8\",r=this.length,e=0;else if(void 0===r&&\"string\"==typeof e)n=e,r=this.length,e=0;else{if(!isFinite(e))throw new Error(\"Buffer.write(string, encoding, offset[, length]) is no longer supported\");e|=0,isFinite(r)?(r|=0,void 0===n&&(n=\"utf8\")):(n=r,r=void 0)}var i=this.length-e;if((void 0===r||r>i)&&(r=i),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError(\"Attempt to write outside buffer bounds\");n||(n=\"utf8\");for(var a=!1;;)switch(n){case\"hex\":return w(this,t,e,r);case\"utf8\":case\"utf-8\":return M(this,t,e,r);case\"ascii\":return A(this,t,e,r);case\"latin1\":case\"binary\":return k(this,t,e,r);case\"base64\":return T(this,t,e,r);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return E(this,t,e,r);default:if(a)throw new TypeError(\"Unknown encoding: \"+n);n=(\"\"+n).toLowerCase(),a=!0}},o.prototype.toJSON=function(){return{type:\"Buffer\",data:Array.prototype.slice.call(this._arr||this,0)}};var tt=4096;o.prototype.slice=function(t,e){var r=this.length;t=~~t,e=void 0===e?r:~~e,t<0?(t+=r,t<0&&(t=0)):t>r&&(t=r),e<0?(e+=r,e<0&&(e=0)):e>r&&(e=r),e<t&&(e=t);var n;if(o.TYPED_ARRAY_SUPPORT)n=this.subarray(t,e),n.__proto__=o.prototype;else{var i=e-t;n=new o(i,void 0);for(var a=0;a<i;++a)n[a]=this[a+t]}return n},o.prototype.readUIntLE=function(t,e,r){t|=0,e|=0,r||O(t,e,this.length);for(var n=this[t],i=1,a=0;++a<e&&(i*=256);)n+=this[t+a]*i;return n},o.prototype.readUIntBE=function(t,e,r){t|=0,e|=0,r||O(t,e,this.length);for(var n=this[t+--e],i=1;e>0&&(i*=256);)n+=this[t+--e]*i;return n},o.prototype.readUInt8=function(t,e){return e||O(t,1,this.length),this[t]},o.prototype.readUInt16LE=function(t,e){return e||O(t,2,this.length),this[t]|this[t+1]<<8},o.prototype.readUInt16BE=function(t,e){return e||O(t,2,this.length),this[t]<<8|this[t+1]},o.prototype.readUInt32LE=function(t,e){return e||O(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},o.prototype.readUInt32BE=function(t,e){return e||O(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},o.prototype.readIntLE=function(t,e,r){t|=0,e|=0,r||O(t,e,this.length);for(var n=this[t],i=1,a=0;++a<e&&(i*=256);)n+=this[t+a]*i;return i*=128,n>=i&&(n-=Math.pow(2,8*e)),n},o.prototype.readIntBE=function(t,e,r){t|=0,e|=0,r||O(t,e,this.length);for(var n=e,i=1,a=this[t+--n];n>0&&(i*=256);)a+=this[t+--n]*i;return i*=128,a>=i&&(a-=Math.pow(2,8*e)),a},o.prototype.readInt8=function(t,e){return e||O(t,1,this.length),128&this[t]?(255-this[t]+1)*-1:this[t]},o.prototype.readInt16LE=function(t,e){e||O(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},o.prototype.readInt16BE=function(t,e){e||O(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},o.prototype.readInt32LE=function(t,e){return e||O(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},o.prototype.readInt32BE=function(t,e){return e||O(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},o.prototype.readFloatLE=function(t,e){return e||O(t,4,this.length),$.read(this,t,!0,23,4)},o.prototype.readFloatBE=function(t,e){return e||O(t,4,this.length),$.read(this,t,!1,23,4)},o.prototype.readDoubleLE=function(t,e){return e||O(t,8,this.length),$.read(this,t,!0,52,8)},o.prototype.readDoubleBE=function(t,e){return e||O(t,8,this.length),$.read(this,t,!1,52,8)},o.prototype.writeUIntLE=function(t,e,r,n){if(t=+t,e|=0,r|=0,!n){var i=Math.pow(2,8*r)-1;R(this,t,e,r,i,0)}var a=1,o=0;for(this[e]=255&t;++o<r&&(a*=256);)this[e+o]=t/a&255;return e+r},o.prototype.writeUIntBE=function(t,e,r,n){if(t=+t,e|=0,r|=0,!n){var i=Math.pow(2,8*r)-1;R(this,t,e,r,i,0)}var a=r-1,o=1;for(this[e+a]=255&t;--a>=0&&(o*=256);)this[e+a]=t/o&255;return e+r},o.prototype.writeUInt8=function(t,e,r){return t=+t,e|=0,r||R(this,t,e,1,255,0),o.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[e]=255&t,e+1},o.prototype.writeUInt16LE=function(t,e,r){return t=+t,e|=0,r||R(this,t,e,2,65535,0),o.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):F(this,t,e,!0),e+2},o.prototype.writeUInt16BE=function(t,e,r){return t=+t,e|=0,r||R(this,t,e,2,65535,0),o.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):F(this,t,e,!1),e+2},o.prototype.writeUInt32LE=function(t,e,r){return t=+t,e|=0,r||R(this,t,e,4,4294967295,0),o.TYPED_ARRAY_SUPPORT?(this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t):j(this,t,e,!0),e+4},o.prototype.writeUInt32BE=function(t,e,r){return t=+t,e|=0,r||R(this,t,e,4,4294967295,0),o.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):j(this,t,e,!1),e+4},o.prototype.writeIntLE=function(t,e,r,n){if(t=+t,e|=0,!n){var i=Math.pow(2,8*r-1);R(this,t,e,r,i-1,-i)}var a=0,o=1,s=0;for(this[e]=255&t;++a<r&&(o*=256);)t<0&&0===s&&0!==this[e+a-1]&&(s=1),this[e+a]=(t/o>>0)-s&255;return e+r},o.prototype.writeIntBE=function(t,e,r,n){if(t=+t,e|=0,!n){var i=Math.pow(2,8*r-1);R(this,t,e,r,i-1,-i)}var a=r-1,o=1,s=0;for(this[e+a]=255&t;--a>=0&&(o*=256);)t<0&&0===s&&0!==this[e+a+1]&&(s=1),this[e+a]=(t/o>>0)-s&255;return e+r},o.prototype.writeInt8=function(t,e,r){return t=+t,e|=0,r||R(this,t,e,1,127,-128),o.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[e]=255&t,e+1},o.prototype.writeInt16LE=function(t,e,r){return t=+t,e|=0,r||R(this,t,e,2,32767,-32768),o.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):F(this,t,e,!0),e+2},o.prototype.writeInt16BE=function(t,e,r){return t=+t,e|=0,r||R(this,t,e,2,32767,-32768),o.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):F(this,t,e,!1),e+2},o.prototype.writeInt32LE=function(t,e,r){return t=+t,e|=0,r||R(this,t,e,4,2147483647,-2147483648),o.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24):j(this,t,e,!0),e+4},o.prototype.writeInt32BE=function(t,e,r){return t=+t,e|=0,r||R(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),o.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):j(this,t,e,!1),e+4},o.prototype.writeFloatLE=function(t,e,r){return B(this,t,e,!0,r)},o.prototype.writeFloatBE=function(t,e,r){return B(this,t,e,!1,r)},o.prototype.writeDoubleLE=function(t,e,r){return U(this,t,e,!0,r)},o.prototype.writeDoubleBE=function(t,e,r){return U(this,t,e,!1,r)},o.prototype.copy=function(t,e,r,n){if(r||(r=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n<r&&(n=r),n===r)return 0;if(0===t.length||0===this.length)return 0;if(e<0)throw new RangeError(\"targetStart out of bounds\");if(r<0||r>=this.length)throw new RangeError(\"sourceStart out of bounds\");if(n<0)throw new RangeError(\"sourceEnd out of bounds\");n>this.length&&(n=this.length),t.length-e<n-r&&(n=t.length-e+r);var i,a=n-r;if(this===t&&r<e&&e<n)for(i=a-1;i>=0;--i)t[i+e]=this[i+r];else if(a<1e3||!o.TYPED_ARRAY_SUPPORT)for(i=0;i<a;++i)t[i+e]=this[i+r];else Uint8Array.prototype.set.call(t,this.subarray(r,r+a),e);return a},o.prototype.fill=function(t,e,r,n){if(\"string\"==typeof t){if(\"string\"==typeof e?(n=e,e=0,r=this.length):\"string\"==typeof r&&(n=r,r=this.length),1===t.length){var i=t.charCodeAt(0);i<256&&(t=i)}if(void 0!==n&&\"string\"!=typeof n)throw new TypeError(\"encoding must be a string\");if(\"string\"==typeof n&&!o.isEncoding(n))throw new TypeError(\"Unknown encoding: \"+n)}else\"number\"==typeof t&&(t&=255);if(e<0||this.length<e||this.length<r)throw new RangeError(\"Out of range index\");if(r<=e)return this;e>>>=0,r=void 0===r?this.length:r>>>0,t||(t=0);var a;if(\"number\"==typeof t)for(a=e;a<r;++a)this[a]=t;else{var s=o.isBuffer(t)?t:G(new o(t,n).toString()),l=s.length;for(a=0;a<r-e;++a)this[a+e]=s[a%l]}return this};var et=/[^+\\/0-9A-Za-z-_]/g}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{\"base64-js\":65,ieee754:253,isarray:66}],65:[function(t,e,r){\"use strict\";function n(t){var e=t.length;if(e%4>0)throw new Error(\"Invalid string. Length must be a multiple of 4\");return\"=\"===t[e-2]?2:\"=\"===t[e-1]?1:0}function i(t){return 3*t.length/4-n(t)}function a(t){var e,r,i,a,o,s,l=t.length;o=n(t),s=new h(3*l/4-o),i=o>0?l-4:l;var u=0;for(e=0,r=0;e<i;e+=4,r+=3)a=c[t.charCodeAt(e)]<<18|c[t.charCodeAt(e+1)]<<12|c[t.charCodeAt(e+2)]<<6|c[t.charCodeAt(e+3)],s[u++]=a>>16&255,s[u++]=a>>8&255,s[u++]=255&a;return 2===o?(a=c[t.charCodeAt(e)]<<2|c[t.charCodeAt(e+1)]>>4,s[u++]=255&a):1===o&&(a=c[t.charCodeAt(e)]<<10|c[t.charCodeAt(e+1)]<<4|c[t.charCodeAt(e+2)]>>2,s[u++]=a>>8&255,s[u++]=255&a),s}function o(t){return u[t>>18&63]+u[t>>12&63]+u[t>>6&63]+u[63&t]}function s(t,e,r){for(var n,i=[],a=e;a<r;a+=3)n=(t[a]<<16)+(t[a+1]<<8)+t[a+2],i.push(o(n));return i.join(\"\")}function l(t){for(var e,r=t.length,n=r%3,i=\"\",a=[],o=16383,l=0,c=r-n;l<c;l+=o)a.push(s(t,l,l+o>c?c:l+o));return 1===n?(e=t[r-1],i+=u[e>>2],i+=u[e<<4&63],i+=\"==\"):2===n&&(e=(t[r-2]<<8)+t[r-1],i+=u[e>>10],i+=u[e>>4&63],i+=u[e<<2&63],i+=\"=\"),a.push(i),a.join(\"\")}r.byteLength=i,r.toByteArray=a,r.fromByteArray=l;for(var u=[],c=[],h=\"undefined\"!=typeof Uint8Array?Uint8Array:Array,f=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",d=0,p=f.length;d<p;++d)u[d]=f[d],c[f.charCodeAt(d)]=d;c[\"-\".charCodeAt(0)]=62,c[\"_\".charCodeAt(0)]=63},{}],66:[function(t,e,r){var n={}.toString;e.exports=Array.isArray||function(t){return\"[object Array]\"==n.call(t)}},{}],67:[function(t,e,r){\"use strict\";function n(t){return[Math.min(t[0],t[1]),Math.max(t[0],t[1])]}function i(t,e){return t[0]-e[0]||t[1]-e[1]}function a(t){return t.map(n).sort(i)}function o(t,e,r){return e in t?t[e]:r}function s(t,e,r){Array.isArray(e)?(r=r||{},e=e||[]):(r=e||{},e=[]);var n=!!o(r,\"delaunay\",!0),i=!!o(r,\"interior\",!0),s=!!o(r,\"exterior\",!0),f=!!o(r,\"infinity\",!1);if(!i&&!s||0===t.length)return[];var d=l(t,e);if(n||i!==s||f){for(var p=u(t.length,a(e)),g=0;g<d.length;++g){var m=d[g];p.addTriangle(m[0],m[1],m[2])}return n&&c(t,p),s?i?f?h(p,0,f):p.cells():h(p,1,f):h(p,-1)}return d}var l=t(\"./lib/monotone\"),u=t(\"./lib/triangulation\"),c=t(\"./lib/delaunay\"),h=t(\"./lib/filter\");e.exports=s},{\"./lib/delaunay\":68,\"./lib/filter\":69,\"./lib/monotone\":70,\"./lib/triangulation\":71}],68:[function(t,e,r){\"use strict\";function n(t,e,r,n,i,o){var s=e.opposite(n,i);if(!(s<0)){if(i<n){var l=n;n=i,i=l,l=o,o=s,s=l}e.isConstraint(n,i)||a(t[n],t[i],t[o],t[s])<0&&r.push(n,i)}}function i(t,e){for(var r=[],i=t.length,o=e.stars,s=0;s<i;++s)for(var l=o[s],u=1;u<l.length;u+=2){var c=l[u];if(!(c<s||e.isConstraint(s,c))){\n",
"for(var h=l[u-1],f=-1,d=1;d<l.length;d+=2)if(l[d-1]===c){f=l[d];break}f<0||a(t[s],t[c],t[h],t[f])<0&&r.push(s,c)}}for(;r.length>0;){for(var c=r.pop(),s=r.pop(),h=-1,f=-1,l=o[s],p=1;p<l.length;p+=2){var g=l[p-1],m=l[p];g===c?f=m:m===c&&(h=g)}h<0||f<0||a(t[s],t[c],t[h],t[f])>=0||(e.flip(s,c),n(t,e,r,h,s,f),n(t,e,r,s,f,h),n(t,e,r,f,c,h),n(t,e,r,c,h,f))}}var a=t(\"robust-in-sphere\")[4];t(\"binary-search-bounds\");e.exports=i},{\"binary-search-bounds\":72,\"robust-in-sphere\":463}],69:[function(t,e,r){\"use strict\";function n(t,e,r,n,i,a,o){this.cells=t,this.neighbor=e,this.flags=n,this.constraint=r,this.active=i,this.next=a,this.boundary=o}function i(t,e){return t[0]-e[0]||t[1]-e[1]||t[2]-e[2]}function a(t,e){for(var r=t.cells(),a=r.length,o=0;o<a;++o){var s=r[o],l=s[0],u=s[1],c=s[2];u<c?u<l&&(s[0]=u,s[1]=c,s[2]=l):c<l&&(s[0]=c,s[1]=l,s[2]=u)}r.sort(i);for(var h=new Array(a),o=0;o<h.length;++o)h[o]=0;var f=[],d=[],p=new Array(3*a),g=new Array(3*a),m=null;e&&(m=[]);for(var v=new n(r,p,g,h,f,d,m),o=0;o<a;++o)for(var s=r[o],y=0;y<3;++y){var l=s[y],u=s[(y+1)%3],x=p[3*o+y]=v.locate(u,l,t.opposite(u,l)),b=g[3*o+y]=t.isConstraint(l,u);x<0&&(b?d.push(o):(f.push(o),h[o]=1),e&&m.push([u,l,-1]))}return v}function o(t,e,r){for(var n=0,i=0;i<t.length;++i)e[i]===r&&(t[n++]=t[i]);return t.length=n,t}function s(t,e,r){var n=a(t,r);if(0===e)return r?n.cells.concat(n.boundary):n.cells;for(var i=1,s=n.active,l=n.next,u=n.flags,c=n.cells,h=n.constraint,f=n.neighbor;s.length>0||l.length>0;){for(;s.length>0;){var d=s.pop();if(u[d]!==-i){u[d]=i;for(var p=(c[d],0);p<3;++p){var g=f[3*d+p];g>=0&&0===u[g]&&(h[3*d+p]?l.push(g):(s.push(g),u[g]=i))}}}var m=l;l=s,s=m,l.length=0,i=-i}var v=o(c,u,e);return r?v.concat(n.boundary):v}var l=t(\"binary-search-bounds\");e.exports=s;var u=n.prototype;u.locate=function(){var t=[0,0,0];return function(e,r,n){var a=e,o=r,s=n;return r<n?r<e&&(a=r,o=n,s=e):n<e&&(a=n,o=e,s=r),a<0?-1:(t[0]=a,t[1]=o,t[2]=s,l.eq(this.cells,t,i))}}()},{\"binary-search-bounds\":72}],70:[function(t,e,r){\"use strict\";function n(t,e,r,n,i){this.a=t,this.b=e,this.idx=r,this.lowerIds=n,this.upperIds=i}function i(t,e,r,n){this.a=t,this.b=e,this.type=r,this.idx=n}function a(t,e){var r=t.a[0]-e.a[0]||t.a[1]-e.a[1]||t.type-e.type;return r?r:t.type!==p&&(r=d(t.a,t.b,e.b))?r:t.idx-e.idx}function o(t,e){return d(t.a,t.b,e)}function s(t,e,r,n,i){for(var a=f.lt(e,n,o),s=f.gt(e,n,o),l=a;l<s;++l){for(var u=e[l],c=u.lowerIds,h=c.length;h>1&&d(r[c[h-2]],r[c[h-1]],n)>0;)t.push([c[h-1],c[h-2],i]),h-=1;c.length=h,c.push(i);for(var p=u.upperIds,h=p.length;h>1&&d(r[p[h-2]],r[p[h-1]],n)<0;)t.push([p[h-2],p[h-1],i]),h-=1;p.length=h,p.push(i)}}function l(t,e){var r;return(r=t.a[0]<e.a[0]?d(t.a,t.b,e.a):d(e.b,e.a,t.a))?r:(r=e.b[0]<t.b[0]?d(t.a,t.b,e.b):d(e.b,e.a,t.b),r||t.idx-e.idx)}function u(t,e,r){var i=f.le(t,r,l),a=t[i],o=a.upperIds,s=o[o.length-1];a.upperIds=[s],t.splice(i+1,0,new n(r.a,r.b,r.idx,[s],o))}function c(t,e,r){var n=r.a;r.a=r.b,r.b=n;var i=f.eq(t,r,l),a=t[i],o=t[i-1];o.upperIds=a.upperIds,t.splice(i,1)}function h(t,e){for(var r=t.length,o=e.length,l=[],h=0;h<r;++h)l.push(new i(t[h],null,p,h));for(var h=0;h<o;++h){var f=e[h],d=t[f[0]],v=t[f[1]];d[0]<v[0]?l.push(new i(d,v,m,h),new i(v,d,g,h)):d[0]>v[0]&&l.push(new i(v,d,m,h),new i(d,v,g,h))}l.sort(a);for(var y=l[0].a[0]-(1+Math.abs(l[0].a[0]))*Math.pow(2,-52),x=[new n([y,1],[y,0],-1,[],[],[],[])],b=[],h=0,_=l.length;h<_;++h){var w=l[h],M=w.type;M===p?s(b,x,t,w.a,w.idx):M===m?u(x,t,w):c(x,t,w)}return b}var f=t(\"binary-search-bounds\"),d=t(\"robust-orientation\")[3],p=0,g=1,m=2;e.exports=h},{\"binary-search-bounds\":72,\"robust-orientation\":465}],71:[function(t,e,r){\"use strict\";function n(t,e){this.stars=t,this.edges=e}function i(t,e,r){for(var n=1,i=t.length;n<i;n+=2)if(t[n-1]===e&&t[n]===r)return t[n-1]=t[i-2],t[n]=t[i-1],void(t.length=i-2)}function a(t,e){for(var r=new Array(t),i=0;i<t;++i)r[i]=[];return new n(r,e)}var o=t(\"binary-search-bounds\");e.exports=a;var s=n.prototype;s.isConstraint=function(){function t(t,e){return t[0]-e[0]||t[1]-e[1]}var e=[0,0];return function(r,n){return e[0]=Math.min(r,n),e[1]=Math.max(r,n),o.eq(this.edges,e,t)>=0}}(),s.removeTriangle=function(t,e,r){var n=this.stars;i(n[t],e,r),i(n[e],r,t),i(n[r],t,e)},s.addTriangle=function(t,e,r){var n=this.stars;n[t].push(e,r),n[e].push(r,t),n[r].push(t,e)},s.opposite=function(t,e){for(var r=this.stars[e],n=1,i=r.length;n<i;n+=2)if(r[n]===t)return r[n-1];return-1},s.flip=function(t,e){var r=this.opposite(t,e),n=this.opposite(e,t);this.removeTriangle(t,e,r),this.removeTriangle(e,t,n),this.addTriangle(t,n,r),this.addTriangle(e,r,n)},s.edges=function(){for(var t=this.stars,e=[],r=0,n=t.length;r<n;++r)for(var i=t[r],a=0,o=i.length;a<o;a+=2)e.push([i[a],i[a+1]]);return e},s.cells=function(){for(var t=this.stars,e=[],r=0,n=t.length;r<n;++r)for(var i=t[r],a=0,o=i.length;a<o;a+=2){var s=i[a],l=i[a+1];r<Math.min(s,l)&&e.push([r,s,l])}return e}},{\"binary-search-bounds\":72}],72:[function(t,e,r){\"use strict\";function n(t,e,r,n,i){var a=[\"function \",t,\"(a,l,h,\",n.join(\",\"),\"){\",i?\"\":\"var i=\",r?\"l-1\":\"h+1\",\";while(l<=h){var m=(l+h)>>>1,x=a[m]\"];return i?e.indexOf(\"c\")<0?a.push(\";if(x===y){return m}else if(x<=y){\"):a.push(\";var p=c(x,y);if(p===0){return m}else if(p<=0){\"):a.push(\";if(\",e,\"){i=m;\"),r?a.push(\"l=m+1}else{h=m-1}\"):a.push(\"h=m-1}else{l=m+1}\"),a.push(\"}\"),i?a.push(\"return -1};\"):a.push(\"return i};\"),a.join(\"\")}function i(t,e,r,i){var a=new Function([n(\"A\",\"x\"+t+\"y\",e,[\"y\"],i),n(\"P\",\"c(x,y)\"+t+\"0\",e,[\"y\",\"c\"],i),\"function dispatchBsearch\",r,\"(a,y,c,l,h){if(typeof(c)==='function'){return P(a,(l===void 0)?0:l|0,(h===void 0)?a.length-1:h|0,y,c)}else{return A(a,(c===void 0)?0:c|0,(l===void 0)?a.length-1:l|0,y)}}return dispatchBsearch\",r].join(\"\"));return a()}e.exports={ge:i(\">=\",!1,\"GE\"),gt:i(\">\",!1,\"GT\"),lt:i(\"<\",!0,\"LT\"),le:i(\"<=\",!0,\"LE\"),eq:i(\"-\",!0,\"EQ\",!0)}},{}],73:[function(t,e,r){\"use strict\";function n(t){for(var e=1,r=1;r<t.length;++r)for(var n=0;n<r;++n)if(t[r]<t[n])e=-e;else if(t[n]===t[r])return 0;return e}e.exports=n},{}],74:[function(t,e,r){\"use strict\";function n(t,e){for(var r=0,n=t.length,i=0;i<n;++i)r+=t[i]*e[i];return r}function i(t){var e=t.length;if(0===e)return[];var r=(t[0].length,o([t.length+1,t.length+1],1)),i=o([t.length+1],1);r[e][e]=0;for(var a=0;a<e;++a){for(var l=0;l<=a;++l)r[l][a]=r[a][l]=2*n(t[a],t[l]);i[a]=n(t[a],t[a])}for(var u=s(r,i),c=0,h=u[e+1],a=0;a<h.length;++a)c+=h[a];for(var f=new Array(e),a=0;a<e;++a){for(var h=u[a],d=0,l=0;l<h.length;++l)d+=h[l];f[a]=d/c}return f}function a(t){if(0===t.length)return[];for(var e=t[0].length,r=o([e]),n=i(t),a=0;a<t.length;++a)for(var s=0;s<e;++s)r[s]+=t[a][s]*n[a];return r}var o=t(\"dup\"),s=t(\"robust-linear-solve\");a.barycenetric=i,e.exports=a},{dup:98,\"robust-linear-solve\":464}],75:[function(t,e,r){function n(t){for(var e=i(t),r=0,n=0;n<t.length;++n)for(var a=t[n],o=0;o<e.length;++o)r+=Math.pow(a[o]-e[o],2);return Math.sqrt(r/t.length)}e.exports=n;var i=t(\"circumcenter\")},{circumcenter:74}],76:[function(t,e,r){\"use strict\";function n(t){var e=b(t),r=x(y(e),t);return r<0?[e,w(e,1/0)]:r>0?[w(e,-(1/0)),e]:[e,e]}function i(t,e){for(var r=new Array(e.length),n=0;n<e.length;++n){var i=e[n],a=t[i[0]],o=t[i[1]];r[n]=[Math.min(a[0],o[0]),Math.min(a[1],o[1]),Math.max(a[0],o[0]),Math.max(a[1],o[1])]}return r}function a(t){for(var e=new Array(t.length),r=0;r<t.length;++r){var n=t[r];e[r]=[n[0],n[1],n[0],n[1]]}return e}function o(t,e,r){var n=[];return m(r,function(r,i){var a=e[r],o=e[i];if(a[0]!==o[0]&&a[0]!==o[1]&&a[1]!==o[0]&&a[1]!==o[1]){var s=t[a[0]],l=t[a[1]],u=t[o[0]],c=t[o[1]];v(s,l,u,c)&&n.push([r,i])}}),n}function s(t,e,r,n){var i=[];return m(r,n,function(r,n){var a=e[r];if(a[0]!==n&&a[1]!==n){var o=t[n],s=t[a[0]],l=t[a[1]];v(s,l,o,o)&&i.push([r,n])}}),i}function l(t,e,r,n,i){function a(e){if(e>=t.length)return o[e-t.length];var r=t[e];return[y(r[0]),y(r[1])]}for(var o=[],s=0;s<r.length;++s){var l=r[s],u=l[0],c=l[1],h=e[u],f=e[c],d=M(_(t[h[0]]),_(t[h[1]]),_(t[f[0]]),_(t[f[1]]));if(d){var p=o.length+t.length;o.push(d),n.push([u,p],[c,p])}}n.sort(function(t,e){if(t[0]!==e[0])return t[0]-e[0];var r=a(t[1]),n=a(e[1]);return x(r[0],n[0])||x(r[1],n[1])});for(var s=n.length-1;s>=0;--s){var g=n[s],u=g[0],m=e[u],v=m[0],b=m[1],w=t[v],A=t[b];if((w[0]-A[0]||w[1]-A[1])<0){var k=v;v=b,b=k}m[0]=v;var T,E=m[1]=g[1];for(i&&(T=m[2]);s>0&&n[s-1][0]===u;){var g=n[--s],S=g[1];i?e.push([E,S,T]):e.push([E,S]),E=S}i?e.push([E,b,T]):e.push([E,b])}return o}function u(t,e,r){for(var i=t.length+e.length,a=new g(i),o=r,s=0;s<e.length;++s){var l=e[s],u=n(l[0]),c=n(l[1]);o.push([u[0],c[0],u[1],c[1]]),t.push([b(l[0]),b(l[1])])}m(o,function(t,e){a.link(t,e)});for(var h=0,f=!0,d=new Array(i),s=0;s<i;++s){var p=a.find(s);p===s?(d[s]=h,t[h++]=t[s]):(f=!1,d[s]=-1)}if(t.length=h,f)return null;for(var s=0;s<i;++s)d[s]<0&&(d[s]=d[a.find(s)]);return d}function c(t,e){return t[0]-e[0]||t[1]-e[1]}function h(t,e){var r=t[0]-e[0]||t[1]-e[1];return r?r:t[2]<e[2]?-1:t[2]>e[2]?1:0}function f(t,e,r){if(0!==t.length){if(e)for(var n=0;n<t.length;++n){var i=t[n],a=e[i[0]],o=e[i[1]];i[0]=Math.min(a,o),i[1]=Math.max(a,o)}else for(var n=0;n<t.length;++n){var i=t[n],a=i[0],o=i[1];i[0]=Math.min(a,o),i[1]=Math.max(a,o)}r?t.sort(h):t.sort(c);for(var s=1,n=1;n<t.length;++n){var l=t[n-1],u=t[n];(u[0]!==l[0]||u[1]!==l[1]||r&&u[2]!==l[2])&&(t[s++]=u)}t.length=s}}function d(t,e,r){var n=i(t,e),c=o(t,e,n),h=a(t),d=s(t,e,n,h),p=l(t,e,c,d,r),g=u(t,p,h);return f(e,g,r),!!g||(c.length>0||d.length>0)}function p(t,e,r){var n,i=!1;if(r){n=e;for(var a=new Array(e.length),o=0;o<e.length;++o){var s=e[o];a[o]=[s[0],s[1],r[o]]}e=a}for(;d(t,e,!!r);)i=!0;if(r&&i){n.length=0,r.length=0;for(var o=0;o<e.length;++o){var s=e[o];n.push([s[0],s[1]]),r.push(s[2])}}return i}e.exports=p;var g=t(\"union-find\"),m=t(\"box-intersect\"),v=(t(\"compare-cell\"),t(\"robust-segment-intersect\")),y=t(\"big-rat\"),x=t(\"big-rat/cmp\"),b=t(\"big-rat/to-float\"),_=t(\"rat-vec\"),w=t(\"nextafter\"),M=t(\"./lib/rat-seg-intersect\")},{\"./lib/rat-seg-intersect\":77,\"big-rat\":40,\"big-rat/cmp\":38,\"big-rat/to-float\":52,\"box-intersect\":57,\"compare-cell\":82,nextafter:428,\"rat-vec\":453,\"robust-segment-intersect\":468,\"union-find\":497}],77:[function(t,e,r){\"use strict\";function n(t,e){return s(a(t[0],e[1]),a(t[1],e[0]))}function i(t,e,r,i){var a=u(e,t),s=u(i,r),f=n(a,s);if(0===l(f))return null;var d=u(t,r),p=n(s,d),g=o(p,f);return c(t,h(a,g))}e.exports=i;var a=t(\"big-rat/mul\"),o=t(\"big-rat/div\"),s=t(\"big-rat/sub\"),l=t(\"big-rat/sign\"),u=t(\"rat-vec/sub\"),c=t(\"rat-vec/add\"),h=t(\"rat-vec/muls\");t(\"big-rat/to-float\")},{\"big-rat/div\":39,\"big-rat/mul\":49,\"big-rat/sign\":50,\"big-rat/sub\":51,\"big-rat/to-float\":52,\"rat-vec/add\":452,\"rat-vec/muls\":454,\"rat-vec/sub\":455}],78:[function(t,e,r){(function(t){var r=function(){\"use strict\";function e(r,n,i,a){function s(r,i){if(null===r)return null;if(0==i)return r;var l,f;if(\"object\"!=typeof r)return r;if(e.__isArray(r))l=[];else if(e.__isRegExp(r))l=new RegExp(r.source,o(r)),r.lastIndex&&(l.lastIndex=r.lastIndex);else if(e.__isDate(r))l=new Date(r.getTime());else{if(h&&t.isBuffer(r))return l=new t(r.length),r.copy(l),l;\"undefined\"==typeof a?(f=Object.getPrototypeOf(r),l=Object.create(f)):(l=Object.create(a),f=a)}if(n){var d=u.indexOf(r);if(d!=-1)return c[d];u.push(r),c.push(l)}for(var p in r){var g;f&&(g=Object.getOwnPropertyDescriptor(f,p)),g&&null==g.set||(l[p]=s(r[p],i-1))}return l}var l;\"object\"==typeof n&&(i=n.depth,a=n.prototype,l=n.filter,n=n.circular);var u=[],c=[],h=\"undefined\"!=typeof t;return\"undefined\"==typeof n&&(n=!0),\"undefined\"==typeof i&&(i=1/0),s(r,i)}function r(t){return Object.prototype.toString.call(t)}function n(t){return\"object\"==typeof t&&\"[object Date]\"===r(t)}function i(t){return\"object\"==typeof t&&\"[object Array]\"===r(t)}function a(t){return\"object\"==typeof t&&\"[object RegExp]\"===r(t)}function o(t){var e=\"\";return t.global&&(e+=\"g\"),t.ignoreCase&&(e+=\"i\"),t.multiline&&(e+=\"m\"),e}return e.clonePrototype=function(t){if(null===t)return null;var e=function(){};return e.prototype=t,new e},e.__objToStr=r,e.__isDate=n,e.__isArray=i,e.__isRegExp=a,e.__getRegExpFlags=o,e}();\"object\"==typeof e&&e.exports&&(e.exports=r)}).call(this,t(\"buffer\").Buffer)},{buffer:64}],79:[function(t,e,r){e.exports={jet:[{index:0,rgb:[0,0,131]},{index:.125,rgb:[0,60,170]},{index:.375,rgb:[5,255,255]},{index:.625,rgb:[255,255,0]},{index:.875,rgb:[250,0,0]},{index:1,rgb:[128,0,0]}],hsv:[{index:0,rgb:[255,0,0]},{index:.169,rgb:[253,255,2]},{index:.173,rgb:[247,255,2]},{index:.337,rgb:[0,252,4]},{index:.341,rgb:[0,252,10]},{index:.506,rgb:[1,249,255]},{index:.671,rgb:[2,0,253]},{index:.675,rgb:[8,0,253]},{index:.839,rgb:[255,0,251]},{index:.843,rgb:[255,0,245]},{index:1,rgb:[255,0,6]}],hot:[{index:0,rgb:[0,0,0]},{index:.3,rgb:[230,0,0]},{index:.6,rgb:[255,210,0]},{index:1,rgb:[255,255,255]}],cool:[{index:0,rgb:[0,255,255]},{index:1,rgb:[255,0,255]}],spring:[{index:0,rgb:[255,0,255]},{index:1,rgb:[255,255,0]}],summer:[{index:0,rgb:[0,128,102]},{index:1,rgb:[255,255,102]}],autumn:[{index:0,rgb:[255,0,0]},{index:1,rgb:[255,255,0]}],winter:[{index:0,rgb:[0,0,255]},{index:1,rgb:[0,255,128]}],bone:[{index:0,rgb:[0,0,0]},{index:.376,rgb:[84,84,116]},{index:.753,rgb:[169,200,200]},{index:1,rgb:[255,255,255]}],copper:[{index:0,rgb:[0,0,0]},{index:.804,rgb:[255,160,102]},{index:1,rgb:[255,199,127]}],greys:[{index:0,rgb:[0,0,0]},{index:1,rgb:[255,255,255]}],yignbu:[{index:0,rgb:[8,29,88]},{index:.125,rgb:[37,52,148]},{index:.25,rgb:[34,94,168]},{index:.375,rgb:[29,145,192]},{index:.5,rgb:[65,182,196]},{index:.625,rgb:[127,205,187]},{index:.75,rgb:[199,233,180]},{index:.875,rgb:[237,248,217]},{index:1,rgb:[255,255,217]}],greens:[{index:0,rgb:[0,68,27]},{index:.125,rgb:[0,109,44]},{index:.25,rgb:[35,139,69]},{index:.375,rgb:[65,171,93]},{index:.5,rgb:[116,196,118]},{index:.625,rgb:[161,217,155]},{index:.75,rgb:[199,233,192]},{index:.875,rgb:[229,245,224]},{index:1,rgb:[247,252,245]}],yiorrd:[{index:0,rgb:[128,0,38]},{index:.125,rgb:[189,0,38]},{index:.25,rgb:[227,26,28]},{index:.375,rgb:[252,78,42]},{index:.5,rgb:[253,141,60]},{index:.625,rgb:[254,178,76]},{index:.75,rgb:[254,217,118]},{index:.875,rgb:[255,237,160]},{index:1,rgb:[255,255,204]}],bluered:[{index:0,rgb:[0,0,255]},{index:1,rgb:[255,0,0]}],rdbu:[{index:0,rgb:[5,10,172]},{index:.35,rgb:[106,137,247]},{index:.5,rgb:[190,190,190]},{index:.6,rgb:[220,170,132]},{index:.7,rgb:[230,145,90]},{index:1,rgb:[178,10,28]}],picnic:[{index:0,rgb:[0,0,255]},{index:.1,rgb:[51,153,255]},{index:.2,rgb:[102,204,255]},{index:.3,rgb:[153,204,255]},{index:.4,rgb:[204,204,255]},{index:.5,rgb:[255,255,255]},{index:.6,rgb:[255,204,255]},{index:.7,rgb:[255,153,255]},{index:.8,rgb:[255,102,204]},{index:.9,rgb:[255,102,102]},{index:1,rgb:[255,0,0]}],rainbow:[{index:0,rgb:[150,0,90]},{index:.125,rgb:[0,0,200]},{index:.25,rgb:[0,25,255]},{index:.375,rgb:[0,152,255]},{index:.5,rgb:[44,255,150]},{index:.625,rgb:[151,255,0]},{index:.75,rgb:[255,234,0]},{index:.875,rgb:[255,111,0]},{index:1,rgb:[255,0,0]}],portland:[{index:0,rgb:[12,51,131]},{index:.25,rgb:[10,136,186]},{index:.5,rgb:[242,211,56]},{index:.75,rgb:[242,143,56]},{index:1,rgb:[217,30,30]}],blackbody:[{index:0,rgb:[0,0,0]},{index:.2,rgb:[230,0,0]},{index:.4,rgb:[230,210,0]},{index:.7,rgb:[255,255,255]},{index:1,rgb:[160,200,255]}],earth:[{index:0,rgb:[0,0,130]},{index:.1,rgb:[0,180,180]},{index:.2,rgb:[40,210,40]},{index:.4,rgb:[230,230,50]},{index:.6,rgb:[120,70,20]},{index:1,rgb:[255,255,255]}],electric:[{index:0,rgb:[0,0,0]},{index:.15,rgb:[30,0,100]},{index:.4,rgb:[120,0,100]},{index:.6,rgb:[160,90,0]},{index:.8,rgb:[230,200,0]},{index:1,rgb:[255,250,220]}],alpha:[{index:0,rgb:[255,255,255,0]},{index:0,rgb:[255,255,255,1]}],viridis:[{index:0,rgb:[68,1,84]},{index:.13,rgb:[71,44,122]},{index:.25,rgb:[59,81,139]},{index:.38,rgb:[44,113,142]},{index:.5,rgb:[33,144,141]},{index:.63,rgb:[39,173,129]},{index:.75,rgb:[92,200,99]},{index:.88,rgb:[170,220,50]},{index:1,rgb:[253,231,37]}],inferno:[{index:0,rgb:[0,0,4]},{index:.13,rgb:[31,12,72]},{index:.25,rgb:[85,15,109]},{index:.38,rgb:[136,34,106]},{index:.5,rgb:[186,54,85]},{index:.63,rgb:[227,89,51]},{index:.75,rgb:[249,140,10]},{index:.88,rgb:[249,201,50]},{index:1,rgb:[252,255,164]}],magma:[{index:0,rgb:[0,0,4]},{index:.13,rgb:[28,16,68]},{index:.25,rgb:[79,18,123]},{index:.38,rgb:[129,37,129]},{index:.5,rgb:[181,54,122]},{index:.63,rgb:[229,80,100]},{index:.75,rgb:[251,135,97]},{index:.88,rgb:[254,194,135]},{index:1,rgb:[252,253,191]}],plasma:[{index:0,rgb:[13,8,135]},{index:.13,rgb:[75,3,161]},{index:.25,rgb:[125,3,168]},{index:.38,rgb:[168,34,150]},{index:.5,rgb:[203,70,121]},{index:.63,rgb:[229,107,93]},{index:.75,rgb:[248,148,65]},{index:.88,rgb:[253,195,40]},{index:1,rgb:[240,249,33]}],warm:[{index:0,rgb:[125,0,179]},{index:.13,rgb:[172,0,187]},{index:.25,rgb:[219,0,170]},{index:.38,rgb:[255,0,130]},{index:.5,rgb:[255,63,74]},{index:.63,rgb:[255,123,0]},{index:.75,rgb:[234,176,0]},{index:.88,rgb:[190,228,0]},{index:1,rgb:[147,255,0]}],cool:[{index:0,rgb:[125,0,179]},{index:.13,rgb:[116,0,218]},{index:.25,rgb:[98,74,237]},{index:.38,rgb:[68,146,231]},{index:.5,rgb:[0,204,197]},{index:.63,rgb:[0,247,146]},{index:.75,rgb:[0,255,88]},{index:.88,rgb:[40,255,8]},{index:1,rgb:[147,255,0]}],\"rainbow-soft\":[{index:0,rgb:[125,0,179]},{index:.1,rgb:[199,0,180]},{index:.2,rgb:[255,0,121]},{index:.3,rgb:[255,108,0]},{index:.4,rgb:[222,194,0]},{index:.5,rgb:[150,255,0]},{index:.6,rgb:[0,255,55]},{index:.7,rgb:[0,246,150]},{index:.8,rgb:[50,167,222]},{index:.9,rgb:[103,51,235]},{index:1,rgb:[124,0,186]}],bathymetry:[{index:0,rgb:[40,26,44]},{index:.13,rgb:[59,49,90]},{index:.25,rgb:[64,76,139]},{index:.38,rgb:[63,110,151]},{index:.5,rgb:[72,142,158]},{index:.63,rgb:[85,174,163]},{index:.75,rgb:[120,206,163]},{index:.88,rgb:[187,230,172]},{index:1,rgb:[253,254,204]}],cdom:[{index:0,rgb:[47,15,62]},{index:.13,rgb:[87,23,86]},{index:.25,rgb:[130,28,99]},{index:.38,rgb:[171,41,96]},{index:.5,rgb:[206,67,86]},{index:.63,rgb:[230,106,84]},{index:.75,rgb:[242,149,103]},{index:.88,rgb:[249,193,135]},{index:1,rgb:[254,237,176]}],chlorophyll:[{index:0,rgb:[18,36,20]},{index:.13,rgb:[25,63,41]},{index:.25,rgb:[24,91,59]},{index:.38,rgb:[13,119,72]},{index:.5,rgb:[18,148,80]},{index:.63,rgb:[80,173,89]},{index:.75,rgb:[132,196,122]},{index:.88,rgb:[175,221,162]},{index:1,rgb:[215,249,208]}],density:[{index:0,rgb:[54,14,36]},{index:.13,rgb:[89,23,80]},{index:.25,rgb:[110,45,132]},{index:.38,rgb:[120,77,178]},{index:.5,rgb:[120,113,213]},{index:.63,rgb:[115,151,228]},{index:.75,rgb:[134,185,227]},{index:.88,rgb:[177,214,227]},{index:1,rgb:[230,241,241]}],\"freesurface-blue\":[{index:0,rgb:[30,4,110]},{index:.13,rgb:[47,14,176]},{index:.25,rgb:[41,45,236]},{index:.38,rgb:[25,99,212]},{index:.5,rgb:[68,131,200]},{index:.63,rgb:[114,156,197]},{index:.75,rgb:[157,181,203]},{index:.88,rgb:[200,208,216]},{index:1,rgb:[241,237,236]}],\"freesurface-red\":[{index:0,rgb:[60,9,18]},{index:.13,rgb:[100,17,27]},{index:.25,rgb:[142,20,29]},{index:.38,rgb:[177,43,27]},{index:.5,rgb:[192,87,63]},{index:.63,rgb:[205,125,105]},{index:.75,rgb:[216,162,148]},{index:.88,rgb:[227,199,193]},{index:1,rgb:[241,237,236]}],oxygen:[{index:0,rgb:[64,5,5]},{index:.13,rgb:[106,6,15]},{index:.25,rgb:[144,26,7]},{index:.38,rgb:[168,64,3]},{index:.5,rgb:[188,100,4]},{index:.63,rgb:[206,136,11]},{index:.75,rgb:[220,174,25]},{index:.88,rgb:[231,215,44]},{index:1,rgb:[248,254,105]}],par:[{index:0,rgb:[51,20,24]},{index:.13,rgb:[90,32,35]},{index:.25,rgb:[129,44,34]},{index:.38,rgb:[159,68,25]},{index:.5,rgb:[182,99,19]},{index:.63,rgb:[199,134,22]},{index:.75,rgb:[212,171,35]},{index:.88,rgb:[221,210,54]},{index:1,rgb:[225,253,75]}],phase:[{index:0,rgb:[145,105,18]},{index:.13,rgb:[184,71,38]},{index:.25,rgb:[186,58,115]},{index:.38,rgb:[160,71,185]},{index:.5,rgb:[110,97,218]},{index:.63,rgb:[50,123,164]},{index:.75,rgb:[31,131,110]},{index:.88,rgb:[77,129,34]},{index:1,rgb:[145,105,18]}],salinity:[{index:0,rgb:[42,24,108]},{index:.13,rgb:[33,50,162]},{index:.25,rgb:[15,90,145]},{index:.38,rgb:[40,118,137]},{index:.5,rgb:[59,146,135]},{index:.63,rgb:[79,175,126]},{index:.75,rgb:[120,203,104]},{index:.88,rgb:[193,221,100]},{index:1,rgb:[253,239,154]}],temperature:[{index:0,rgb:[4,35,51]},{index:.13,rgb:[23,51,122]},{index:.25,rgb:[85,59,157]},{index:.38,rgb:[129,79,143]},{index:.5,rgb:[175,95,130]},{index:.63,rgb:[222,112,101]},{index:.75,rgb:[249,146,66]},{index:.88,rgb:[249,196,65]},{index:1,rgb:[232,250,91]}],turbidity:[{index:0,rgb:[34,31,27]},{index:.13,rgb:[65,50,41]},{index:.25,rgb:[98,69,52]},{index:.38,rgb:[131,89,57]},{index:.5,rgb:[161,112,59]},{index:.63,rgb:[185,140,66]},{index:.75,rgb:[202,174,88]},{index:.88,rgb:[216,209,126]},{index:1,rgb:[233,246,171]}],\"velocity-blue\":[{index:0,rgb:[17,32,64]},{index:.13,rgb:[35,52,116]},{index:.25,rgb:[29,81,156]},{index:.38,rgb:[31,113,162]},{index:.5,rgb:[50,144,169]},{index:.63,rgb:[87,173,176]},{index:.75,rgb:[149,196,189]},{index:.88,rgb:[203,221,211]},{index:1,rgb:[254,251,230]}],\"velocity-green\":[{index:0,rgb:[23,35,19]},{index:.13,rgb:[24,64,38]},{index:.25,rgb:[11,95,45]},{index:.38,rgb:[39,123,35]},{index:.5,rgb:[95,146,12]},{index:.63,rgb:[152,165,18]},{index:.75,rgb:[201,186,69]},{index:.88,rgb:[233,216,137]},{index:1,rgb:[255,253,205]}],cubehelix:[{index:0,rgb:[0,0,0]},{index:.07,rgb:[22,5,59]},{index:.13,rgb:[60,4,105]},{index:.2,rgb:[109,1,135]},{index:.27,rgb:[161,0,147]},{index:.33,rgb:[210,2,142]},{index:.4,rgb:[251,11,123]},{index:.47,rgb:[255,29,97]},{index:.53,rgb:[255,54,69]},{index:.6,rgb:[255,85,46]},{index:.67,rgb:[255,120,34]},{index:.73,rgb:[255,157,37]},{index:.8,rgb:[241,191,57]},{index:.87,rgb:[224,220,93]},{index:.93,rgb:[218,241,142]},{index:1,rgb:[227,253,198]}]}},{}],80:[function(t,e,r){\"use strict\";function n(t){var e,r,n,u,c,h,f,d,p,g,m,v,y,x=[],b=[],_=[],w=[];if(o.isPlainObject(t)||(t={}),p=t.nshades||72,d=t.format||\"hex\",f=t.colormap,f||(f=\"jet\"),\"string\"==typeof f){if(f=f.toLowerCase(),!l[f])throw Error(f+\" not a supported colorscale\");h=s(l[f])}else{if(!Array.isArray(f))throw Error(\"unsupported colormap option\",f);h=s(f)}if(h.length>p)throw new Error(f+\" map requires nshades to be at least size \"+h.length);for(m=Array.isArray(t.alpha)?2!==t.alpha.length?[1,1]:s(t.alpha):\"number\"==typeof t.alpha?[t.alpha,t.alpha]:[1,1],e=h.map(function(t){return Math.round(t.index*p)}),m[0]<0&&(m[0]=0),m[1]<0&&(m[0]=0),m[0]>1&&(m[0]=1),m[1]>1&&(m[0]=1),y=0;y<e.length;++y)v=h[y].index,r=h[y].rgb,4===r.length&&r[3]>=0&&r[3]<=1||(r[3]=m[0]+(m[1]-m[0])*v);for(y=0;y<e.length-1;++y)c=e[y+1]-e[y],n=h[y].rgb,u=h[y+1].rgb,x=x.concat(o.linspace(n[0],u[0],c)),b=b.concat(o.linspace(n[1],u[1],c)),_=_.concat(o.linspace(n[2],u[2],c)),w=w.concat(o.linspace(n[3],u[3],c));return x=x.map(Math.round),b=b.map(Math.round),_=_.map(Math.round),g=o.zip(x,b,_,w),\"hex\"===d&&(g=g.map(i)),\"rgbaString\"===d&&(g=g.map(a)),g}function i(t){for(var
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment