{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Basic use of the macaulay2 interface\n",
    "\n",
    "`m2(\"string\")` --> evaluate string in M2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "4"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "macaulay2(\"2 + 2\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Shorthand: let's type `m2` instead of `macaulay2`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "m2 = macaulay2"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Let's construct a ring in M2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "m2.ring?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "R = m2.ring('QQ', '[x,y]')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "QQ[x..y, Degrees => {2:1}, Heft => {1}, MonomialOrder => {MonomialSize => 16}, DegreeRank => 1]\n",
       "                                                         {Lex => 2          }\n",
       "                                                         {Position => Up    }"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "R"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<class 'sage.interfaces.macaulay2.Macaulay2Element'>"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "type(R)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Can we convert a M2 ring to a Sage ring? Let's try first for the rationals."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 101,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "QQ"
      ]
     },
     "execution_count": 101,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "m2(QQ)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 102,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<class 'sage.interfaces.macaulay2.Macaulay2Element'>"
      ]
     },
     "execution_count": 102,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "type(m2(QQ))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 103,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<class 'sage.rings.rational_field.RationalField_with_category'>"
      ]
     },
     "execution_count": 103,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "type(QQ)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 104,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "QQ"
      ]
     },
     "execution_count": 104,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mQQ = m2(QQ)\n",
    "mQQ"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 105,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "QQ"
      ]
     },
     "execution_count": 105,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mQQ.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 106,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Ring"
      ]
     },
     "execution_count": 106,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "m2('class %s' % mQQ._name)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Every objected created by the interface sets a new variable in the M2 session called `sage0`, `sage1`, `sage2`, ...\n",
    "\n",
    "We can use these variable names to access the objects in M2 via the command `m2(\"sage9\")`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 136,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'sage5'"
      ]
     },
     "execution_count": 136,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mQQ._name"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 137,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "QQ"
      ]
     },
     "execution_count": 137,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "m2(\"sage5\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 138,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Ring"
      ]
     },
     "execution_count": 138,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "m2(\"class sage5\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Can we convert M2 objects to Sage objects?\n",
    "\n",
    "Some objects, yes. Try the command `m2object.sage()`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 111,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "QQ"
      ]
     },
     "execution_count": 111,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mQQ"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 112,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Macaulay2"
      ]
     },
     "execution_count": 112,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mQQ.parent()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 113,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "True"
      ]
     },
     "execution_count": 113,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mQQ.sage() is QQ"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 139,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "QQ[x..y, Degrees => {2:1}, Heft => {1}, MonomialOrder => {MonomialSize => 16}, DegreeRank => 1]\n",
       "                                                         {Lex => 2          }\n",
       "                                                         {Position => Up    }"
      ]
     },
     "execution_count": 139,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "R"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 140,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Multivariate Polynomial Ring in x, y over Rational Field"
      ]
     },
     "execution_count": 140,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "R.sage()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 114,
   "metadata": {},
   "outputs": [],
   "source": [
    "M = m2.matrix(\"{{1,2,3},{4,5,6/1}}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 115,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "| 1 2 3 |\n",
       "| 4 5 6 |"
      ]
     },
     "execution_count": 115,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "M"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 116,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[1 2 3]\n",
       "[4 5 6]"
      ]
     },
     "execution_count": 116,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "M.sage()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 117,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Full MatrixSpace of 2 by 3 dense matrices over Rational Field"
      ]
     },
     "execution_count": 117,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "_.parent()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### What version of Sage am I using?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 118,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'SageMath version 8.9.beta3, Release Date: 2019-07-19'"
      ]
     },
     "execution_count": 118,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "version()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Use a M2 package through the interface\n",
    "\n",
    "Here we will use the \"NormalToricVarieties\" to construct the smooth Fano toric variety, and compute its rays and cones."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 127,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "NormalToricVarieties"
      ]
     },
     "execution_count": 127,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "m2.needsPackage('\"NormalToricVarieties\"')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 128,
   "metadata": {},
   "outputs": [],
   "source": [
    "X = m2.smoothFanoToricVariety(3, 3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 129,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "sage47"
      ]
     },
     "execution_count": 129,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Hmm...it would be nice to have a better string representation of this object."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 130,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "sage47"
      ]
     },
     "execution_count": 130,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 131,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{{1, 0, 0}, {0, 1, 0}, {-1, -1, 0}, {0, 0, 1}, {0, 1, -1}}"
      ]
     },
     "execution_count": 131,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X.rays()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 132,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{{0, 1, 3}, {0, 1, 4}, {0, 2, 3}, {0, 2, 4}, {1, 2, 3}, {1, 2, 4}}"
      ]
     },
     "execution_count": 132,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X.max()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[[0, 1, 3], [0, 1, 4], [0, 2, 3], [0, 2, 4], [1, 2, 3], [1, 2, 4]]"
      ]
     },
     "execution_count": 51,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X.max().sage()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Let's convert the smooth Fano Toric Variety computed with M2 to a Sage `Fan`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 133,
   "metadata": {},
   "outputs": [],
   "source": [
    "rays = X.rays().sage()\n",
    "cones = X.max().sage()\n",
    "P = Fan(rays=rays, cones=cones)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 134,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Rational polyhedral fan in 3-d lattice N"
      ]
     },
     "execution_count": 134,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "P"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 135,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "<iframe srcdoc=\"\n",
       "<html>\n",
       "<head>\n",
       "  <style>\n",
       "    * {\n",
       "      margin: 0;\n",
       "      padding: 0;\n",
       "      overflow: hidden;\n",
       "    }\n",
       "    body, html {      \n",
       "      height: 100%;\n",
       "      width: 100%;\n",
       "    }\n",
       "  </style>\n",
       "  <script type=&quot;text/javascript&quot; src=&quot;/nbextensions/jsmol/JSmol.min.js&quot;></script>\n",
       "</head>\n",
       "<body>\n",
       "  <script type=&quot;text/javascript&quot;>\n",
       "    var script = [\n",
       "  'data &quot;model list&quot;',\n",
       "  '15',\n",
       "  'empty',\n",
       "  'Xx 3.0 -0.143270949775 -0.405058209696',\n",
       "  'Xx -0.143270949775 3.0 -0.405058209696',\n",
       "  'Xx -2.36589915347 -2.36589915347 -0.405058209696',\n",
       "  'Xx -0.143270949775 -0.143270949775 2.73821274008',\n",
       "  'Xx -0.143270949775 2.07935725392 -2.62768641339',\n",
       "  'Xx 0.809235398641 0.809235398641 -0.405058209696',\n",
       "  'Xx -0.816794647864 0.135711700553 -0.405058209696',\n",
       "  'Xx 0.135711700553 -0.816794647864 -0.405058209696',\n",
       "  'Xx 0.809235398641 -0.143270949775 0.54744813872',\n",
       "  'Xx -0.816794647864 -0.816794647864 0.54744813872',\n",
       "  'Xx -0.143270949775 0.809235398641 0.54744813872',\n",
       "  'Xx -0.143270949775 1.48275909673 -1.07858190779',\n",
       "  'Xx 0.809235398641 0.530252748313 -1.07858190779',\n",
       "  'Xx -0.816794647864 -0.143270949775 -1.07858190779',\n",
       "  'Xx 5.5 5.5 5.5',\n",
       "  'end &quot;model list&quot;; show data',\n",
       "  'select *',\n",
       "  'wireframe off; spacefill off',\n",
       "  'set labelOffset 0 0',\n",
       "  'background [255,255,255]',\n",
       "  'spin OFF',\n",
       "  'moveto 0 -764 -346 -545 76.39',\n",
       "  'centerAt absolute {0 0 0}',\n",
       "  'zoom 100',\n",
       "  'frank OFF',\n",
       "  'set perspectivedepth ON',\n",
       "  'draw point_1 DIAMETER 10 {-1.63606104458 -1.63606104458 -1.8978483045}',\n",
       "  'color $point_1  [0,0,0]',\n",
       "  'draw point_2 DIAMETER 10 {-1.63606104458 -1.63606104458 -0.405058209696}',\n",
       "  'color $point_2  [0,0,0]',\n",
       "  'draw point_3 DIAMETER 10 {-1.63606104458 -1.63606104458 1.08773188511}',\n",
       "  'color $point_3  [0,0,0]',\n",
       "  'draw point_4 DIAMETER 10 {-1.63606104458 -0.143270949775 -1.8978483045}',\n",
       "  'color $point_4  [0,0,0]',\n",
       "  'draw point_5 DIAMETER 10 {-1.63606104458 -0.143270949775 -0.405058209696}',\n",
       "  'color $point_5  [0,0,0]',\n",
       "  'draw point_6 DIAMETER 10 {-1.63606104458 -0.143270949775 1.08773188511}',\n",
       "  'color $point_6  [0,0,0]',\n",
       "  'draw point_7 DIAMETER 10 {-1.63606104458 1.34951914503 -1.8978483045}',\n",
       "  'color $point_7  [0,0,0]',\n",
       "  'draw point_8 DIAMETER 10 {-1.63606104458 1.34951914503 -0.405058209696}',\n",
       "  'color $point_8  [0,0,0]',\n",
       "  'draw point_9 DIAMETER 10 {-1.63606104458 1.34951914503 1.08773188511}',\n",
       "  'color $point_9  [0,0,0]',\n",
       "  'draw point_10 DIAMETER 10 {-0.143270949775 -1.63606104458 -1.8978483045}',\n",
       "  'color $point_10  [0,0,0]',\n",
       "  'draw point_11 DIAMETER 10 {-0.143270949775 -1.63606104458 -0.405058209696}',\n",
       "  'color $point_11  [0,0,0]',\n",
       "  'draw point_12 DIAMETER 10 {-0.143270949775 -1.63606104458 1.08773188511}',\n",
       "  'color $point_12  [0,0,0]',\n",
       "  'draw point_13 DIAMETER 10 {-0.143270949775 -0.143270949775 -1.8978483045}',\n",
       "  'color $point_13  [0,0,0]',\n",
       "  'draw point_14 DIAMETER 10 {-0.143270949775 -0.143270949775 -0.405058209696}',\n",
       "  'color $point_14  [0,0,0]',\n",
       "  'draw point_15 DIAMETER 10 {-0.143270949775 -0.143270949775 1.08773188511}',\n",
       "  'color $point_15  [0,0,0]',\n",
       "  'draw point_16 DIAMETER 10 {-0.143270949775 1.34951914503 -1.8978483045}',\n",
       "  'color $point_16  [0,0,0]',\n",
       "  'draw point_17 DIAMETER 10 {-0.143270949775 1.34951914503 -0.405058209696}',\n",
       "  'color $point_17  [0,0,0]',\n",
       "  'draw point_18 DIAMETER 10 {-0.143270949775 1.34951914503 1.08773188511}',\n",
       "  'color $point_18  [0,0,0]',\n",
       "  'draw point_19 DIAMETER 10 {1.34951914503 -1.63606104458 -1.8978483045}',\n",
       "  'color $point_19  [0,0,0]',\n",
       "  'draw point_20 DIAMETER 10 {1.34951914503 -1.63606104458 -0.405058209696}',\n",
       "  'color $point_20  [0,0,0]',\n",
       "  'draw point_21 DIAMETER 10 {1.34951914503 -1.63606104458 1.08773188511}',\n",
       "  'color $point_21  [0,0,0]',\n",
       "  'draw point_22 DIAMETER 10 {1.34951914503 -0.143270949775 -1.8978483045}',\n",
       "  'color $point_22  [0,0,0]',\n",
       "  'draw point_23 DIAMETER 10 {1.34951914503 -0.143270949775 -0.405058209696}',\n",
       "  'color $point_23  [0,0,0]',\n",
       "  'draw point_24 DIAMETER 10 {1.34951914503 -0.143270949775 1.08773188511}',\n",
       "  'color $point_24  [0,0,0]',\n",
       "  'draw point_25 DIAMETER 10 {1.34951914503 1.34951914503 -1.8978483045}',\n",
       "  'color $point_25  [0,0,0]',\n",
       "  'draw point_26 DIAMETER 10 {1.34951914503 1.34951914503 -0.405058209696}',\n",
       "  'color $point_26  [0,0,0]',\n",
       "  'draw point_27 DIAMETER 10 {1.34951914503 1.34951914503 1.08773188511}',\n",
       "  'color $point_27  [0,0,0]',\n",
       "  'draw line_28 diameter 3 curve {-0.143270949775 -0.143270949775 -0.405058209696}  {2.71424809547 -0.143270949775 -0.405058209696} ',\n",
       "  'color $line_28  [128,0,128]',\n",
       "  'draw line_29 diameter 3 curve {-0.143270949775 -0.143270949775 -0.405058209696}  {-0.143270949775 2.71424809547 -0.405058209696} ',\n",
       "  'color $line_29  [128,0,128]',\n",
       "  'draw line_30 diameter 3 curve {-0.143270949775 -0.143270949775 -0.405058209696}  {-2.16384204404 -2.16384204404 -0.405058209696} ',\n",
       "  'color $line_30  [128,0,128]',\n",
       "  'draw line_31 diameter 3 curve {-0.143270949775 -0.143270949775 -0.405058209696}  {-0.143270949775 -0.143270949775 2.45246083555} ',\n",
       "  'color $line_31  [128,0,128]',\n",
       "  'draw line_32 diameter 3 curve {-0.143270949775 -0.143270949775 -0.405058209696}  {-0.143270949775 1.87730014449 -2.42562930396} ',\n",
       "  'color $line_32  [128,0,128]',\n",
       "  'select atomno = 1',\n",
       "  'color atom  [0,0,0]',\n",
       "  'label &quot;u_0&quot;',\n",
       "  'select atomno = 2',\n",
       "  'color atom  [0,0,0]',\n",
       "  'label &quot;u_1&quot;',\n",
       "  'select atomno = 3',\n",
       "  'color atom  [0,0,0]',\n",
       "  'label &quot;u_2&quot;',\n",
       "  'select atomno = 4',\n",
       "  'color atom  [0,0,0]',\n",
       "  'label &quot;u_3&quot;',\n",
       "  'select atomno = 5',\n",
       "  'color atom  [0,0,0]',\n",
       "  'label &quot;u_4&quot;',\n",
       "  'draw line_33 diameter 3 arrow {-0.143270949775 -0.143270949775 -0.405058209696}  {1.34951914503 -0.143270949775 -0.405058209696} ',\n",
       "  'color $line_33  [0,0,255]',\n",
       "  'draw line_34 diameter 3 arrow {-0.143270949775 -0.143270949775 -0.405058209696}  {-0.143270949775 1.34951914503 -0.405058209696} ',\n",
       "  'color $line_34  [0,0,255]',\n",
       "  'draw line_35 diameter 3 arrow {-0.143270949775 -0.143270949775 -0.405058209696}  {-1.63606104458 -1.63606104458 -0.405058209696} ',\n",
       "  'color $line_35  [0,0,255]',\n",
       "  'draw line_36 diameter 3 arrow {-0.143270949775 -0.143270949775 -0.405058209696}  {-0.143270949775 -0.143270949775 1.08773188511} ',\n",
       "  'color $line_36  [0,0,255]',\n",
       "  'draw line_37 diameter 3 arrow {-0.143270949775 -0.143270949775 -0.405058209696}  {-0.143270949775 1.34951914503 -1.8978483045} ',\n",
       "  'color $line_37  [0,0,255]',\n",
       "  'pmesh obj_38 inline &quot;50',\n",
       "  '2.71425 -0.143271 -0.405058',\n",
       "  '2.7136 -0.0824864 -0.405058',\n",
       "  '2.71155 -0.0191483 -0.405058',\n",
       "  '2.70792 0.0468084 -0.405058',\n",
       "  '2.70251 0.115437 -0.405058',\n",
       "  '2.69512 0.186775 -0.405058',\n",
       "  '2.68553 0.260843 -0.405058',\n",
       "  '2.67349 0.337639 -0.405058',\n",
       "  '2.65876 0.417135 -0.405058',\n",
       "  '2.64107 0.499269 -0.405058',\n",
       "  '2.62016 0.583948 -0.405058',\n",
       "  '2.59576 0.671037 -0.405058',\n",
       "  '2.56761 0.760356 -0.405058',\n",
       "  '2.53544 0.851679 -0.405058',\n",
       "  '2.49901 0.944729 -0.405058',\n",
       "  '2.45812 1.03918 -0.405058',\n",
       "  '2.41257 1.13465 -0.405058',\n",
       "  '2.36224 1.23072 -0.405058',\n",
       "  '2.30703 1.32691 -0.405058',\n",
       "  '2.24693 1.42272 -0.405058',\n",
       "  '2.18199 1.51763 -0.405058',\n",
       "  '2.11232 1.61108 -0.405058',\n",
       "  '2.03812 1.70252 -0.405058',\n",
       "  '1.95967 1.79143 -0.405058',\n",
       "  '1.8773 1.8773 -0.405058',\n",
       "  '1.79143 1.95967 -0.405058',\n",
       "  '1.70252 2.03812 -0.405058',\n",
       "  '1.61108 2.11232 -0.405058',\n",
       "  '1.51763 2.18199 -0.405058',\n",
       "  '1.42272 2.24693 -0.405058',\n",
       "  '1.32691 2.30703 -0.405058',\n",
       "  '1.23072 2.36224 -0.405058',\n",
       "  '1.13465 2.41257 -0.405058',\n",
       "  '1.03918 2.45812 -0.405058',\n",
       "  '0.944729 2.49901 -0.405058',\n",
       "  '0.851679 2.53544 -0.405058',\n",
       "  '0.760356 2.56761 -0.405058',\n",
       "  '0.671037 2.59576 -0.405058',\n",
       "  '0.583948 2.62016 -0.405058',\n",
       "  '0.499269 2.64107 -0.405058',\n",
       "  '0.417135 2.65876 -0.405058',\n",
       "  '0.337639 2.67349 -0.405058',\n",
       "  '0.260843 2.68553 -0.405058',\n",
       "  '0.186775 2.69512 -0.405058',\n",
       "  '0.115437 2.70251 -0.405058',\n",
       "  '0.0468084 2.70792 -0.405058',\n",
       "  '-0.0191483 2.71155 -0.405058',\n",
       "  '-0.0824864 2.7136 -0.405058',\n",
       "  '-0.143271 2.71425 -0.405058',\n",
       "  '-0.143271 -0.143271 -0.405058',\n",
       "  '48',\n",
       "  '4',\n",
       "  '0',\n",
       "  '1',\n",
       "  '2',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '2',\n",
       "  '3',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '3',\n",
       "  '4',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '4',\n",
       "  '5',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '5',\n",
       "  '6',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '6',\n",
       "  '7',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '7',\n",
       "  '8',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '8',\n",
       "  '9',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '9',\n",
       "  '10',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '10',\n",
       "  '11',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '11',\n",
       "  '12',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '12',\n",
       "  '13',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '13',\n",
       "  '14',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '14',\n",
       "  '15',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '15',\n",
       "  '16',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '16',\n",
       "  '17',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '17',\n",
       "  '18',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '18',\n",
       "  '19',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '19',\n",
       "  '20',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '20',\n",
       "  '21',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '21',\n",
       "  '22',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '22',\n",
       "  '23',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '23',\n",
       "  '24',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '24',\n",
       "  '25',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '25',\n",
       "  '26',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '26',\n",
       "  '27',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '27',\n",
       "  '28',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '28',\n",
       "  '29',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '29',\n",
       "  '30',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '30',\n",
       "  '31',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '31',\n",
       "  '32',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '32',\n",
       "  '33',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '33',\n",
       "  '34',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '34',\n",
       "  '35',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '35',\n",
       "  '36',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '36',\n",
       "  '37',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '37',\n",
       "  '38',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '38',\n",
       "  '39',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '39',\n",
       "  '40',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '40',\n",
       "  '41',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '41',\n",
       "  '42',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '42',\n",
       "  '43',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '43',\n",
       "  '44',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '44',\n",
       "  '45',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '45',\n",
       "  '46',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '46',\n",
       "  '47',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '47',\n",
       "  '48',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '48',\n",
       "  '49',\n",
       "  '0&quot;',\n",
       "  'color pmesh translucent 0.6 [255,0,0]',\n",
       "  'pmesh obj_39 inline &quot;73',\n",
       "  '-0.143271 2.71425 -0.405058',\n",
       "  '-0.172429 2.7141 -0.405058',\n",
       "  '-0.203051 2.71362 -0.405058',\n",
       "  '-0.235237 2.71277 -0.405058',\n",
       "  '-0.269097 2.71148 -0.405058',\n",
       "  '-0.30475 2.70968 -0.405058',\n",
       "  '-0.342325 2.70731 -0.405058',\n",
       "  '-0.381959 2.70426 -0.405058',\n",
       "  '-0.423801 2.70044 -0.405058',\n",
       "  '-0.468012 2.69574 -0.405058',\n",
       "  '-0.514764 2.69 -0.405058',\n",
       "  '-0.56424 2.68307 -0.405058',\n",
       "  '-0.616635 2.67477 -0.405058',\n",
       "  '-0.672155 2.66488 -0.405058',\n",
       "  '-0.731017 2.65315 -0.405058',\n",
       "  '-0.793445 2.6393 -0.405058',\n",
       "  '-0.859666 2.62299 -0.405058',\n",
       "  '-0.929911 2.60384 -0.405058',\n",
       "  '-1.0044 2.58141 -0.405058',\n",
       "  '-1.08334 2.55519 -0.405058',\n",
       "  '-1.16692 2.5246 -0.405058',\n",
       "  '-1.25526 2.48901 -0.405058',\n",
       "  '-1.34845 2.44767 -0.405058',\n",
       "  '-1.44646 2.39978 -0.405058',\n",
       "  '-1.54917 2.34447 -0.405058',\n",
       "  '-1.65629 2.28081 -0.405058',\n",
       "  '-1.76734 2.20786 -0.405058',\n",
       "  '-1.88163 2.12467 -0.405058',\n",
       "  '-1.99818 2.03037 -0.405058',\n",
       "  '-2.11577 1.92425 -0.405058',\n",
       "  '-2.23287 1.80582 -0.405058',\n",
       "  '-2.34771 1.67493 -0.405058',\n",
       "  '-2.45832 1.53183 -0.405058',\n",
       "  '-2.56264 1.37728 -0.405058',\n",
       "  '-2.65867 1.21252 -0.405058',\n",
       "  '-2.74459 1.03934 -0.405058',\n",
       "  '-2.81891 0.859906 -0.405058',\n",
       "  '-2.88062 0.676695 -0.405058',\n",
       "  '-2.92921 0.492294 -0.405058',\n",
       "  '-2.96473 0.309236 -0.405058',\n",
       "  '-2.98771 0.129839 -0.405058',\n",
       "  '-2.99906 -0.0439168 -0.405058',\n",
       "  '-3 -0.210459 -0.405058',\n",
       "  '-2.99189 -0.368644 -0.405058',\n",
       "  '-2.97615 -0.517741 -0.405058',\n",
       "  '-2.95416 -0.65738 -0.405058',\n",
       "  '-2.92722 -0.787493 -0.405058',\n",
       "  '-2.89649 -0.908249 -0.405058',\n",
       "  '-2.86297 -1.01998 -0.405058',\n",
       "  '-2.82753 -1.12315 -0.405058',\n",
       "  '-2.79087 -1.21828 -0.405058',\n",
       "  '-2.75357 -1.30592 -0.405058',\n",
       "  '-2.7161 -1.38664 -0.405058',\n",
       "  '-2.67882 -1.461 -0.405058',\n",
       "  '-2.64201 -1.52953 -0.405058',\n",
       "  '-2.60588 -1.59274 -0.405058',\n",
       "  '-2.57059 -1.6511 -0.405058',\n",
       "  '-2.53624 -1.70504 -0.405058',\n",
       "  '-2.50291 -1.75495 -0.405058',\n",
       "  '-2.47064 -1.80121 -0.405058',\n",
       "  '-2.43947 -1.84413 -0.405058',\n",
       "  '-2.40938 -1.88401 -0.405058',\n",
       "  '-2.38038 -1.92112 -0.405058',\n",
       "  '-2.35245 -1.95572 -0.405058',\n",
       "  '-2.32556 -1.988 -0.405058',\n",
       "  '-2.29969 -2.01818 -0.405058',\n",
       "  '-2.2748 -2.04643 -0.405058',\n",
       "  '-2.25085 -2.07291 -0.405058',\n",
       "  '-2.22782 -2.09777 -0.405058',\n",
       "  '-2.20567 -2.12113 -0.405058',\n",
       "  '-2.18435 -2.14312 -0.405058',\n",
       "  '-2.16384 -2.16384 -0.405058',\n",
       "  '-0.143271 -0.143271 -0.405058',\n",
       "  '71',\n",
       "  '4',\n",
       "  '0',\n",
       "  '1',\n",
       "  '2',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '2',\n",
       "  '3',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '3',\n",
       "  '4',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '4',\n",
       "  '5',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '5',\n",
       "  '6',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '6',\n",
       "  '7',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '7',\n",
       "  '8',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '8',\n",
       "  '9',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '9',\n",
       "  '10',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '10',\n",
       "  '11',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '11',\n",
       "  '12',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '12',\n",
       "  '13',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '13',\n",
       "  '14',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '14',\n",
       "  '15',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '15',\n",
       "  '16',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '16',\n",
       "  '17',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '17',\n",
       "  '18',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '18',\n",
       "  '19',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '19',\n",
       "  '20',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '20',\n",
       "  '21',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '21',\n",
       "  '22',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '22',\n",
       "  '23',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '23',\n",
       "  '24',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '24',\n",
       "  '25',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '25',\n",
       "  '26',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '26',\n",
       "  '27',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '27',\n",
       "  '28',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '28',\n",
       "  '29',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '29',\n",
       "  '30',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '30',\n",
       "  '31',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '31',\n",
       "  '32',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '32',\n",
       "  '33',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '33',\n",
       "  '34',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '34',\n",
       "  '35',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '35',\n",
       "  '36',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '36',\n",
       "  '37',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '37',\n",
       "  '38',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '38',\n",
       "  '39',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '39',\n",
       "  '40',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '40',\n",
       "  '41',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '41',\n",
       "  '42',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '42',\n",
       "  '43',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '43',\n",
       "  '44',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '44',\n",
       "  '45',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '45',\n",
       "  '46',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '46',\n",
       "  '47',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '47',\n",
       "  '48',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '48',\n",
       "  '49',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '49',\n",
       "  '50',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '50',\n",
       "  '51',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '51',\n",
       "  '52',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '52',\n",
       "  '53',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '53',\n",
       "  '54',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '54',\n",
       "  '55',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '55',\n",
       "  '56',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '56',\n",
       "  '57',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '57',\n",
       "  '58',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '58',\n",
       "  '59',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '59',\n",
       "  '60',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '60',\n",
       "  '61',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '61',\n",
       "  '62',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '62',\n",
       "  '63',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '63',\n",
       "  '64',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '64',\n",
       "  '65',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '65',\n",
       "  '66',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '66',\n",
       "  '67',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '67',\n",
       "  '68',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '68',\n",
       "  '69',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '69',\n",
       "  '70',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '70',\n",
       "  '71',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '71',\n",
       "  '72',\n",
       "  '0&quot;',\n",
       "  'color pmesh translucent 0.6 [255,170,0]',\n",
       "  'pmesh obj_40 inline &quot;73',\n",
       "  '2.71425 -0.143271 -0.405058',\n",
       "  '2.7141 -0.172429 -0.405058',\n",
       "  '2.71362 -0.203051 -0.405058',\n",
       "  '2.71277 -0.235237 -0.405058',\n",
       "  '2.71148 -0.269097 -0.405058',\n",
       "  '2.70968 -0.30475 -0.405058',\n",
       "  '2.70731 -0.342325 -0.405058',\n",
       "  '2.70426 -0.381959 -0.405058',\n",
       "  '2.70044 -0.423801 -0.405058',\n",
       "  '2.69574 -0.468012 -0.405058',\n",
       "  '2.69 -0.514764 -0.405058',\n",
       "  '2.68307 -0.56424 -0.405058',\n",
       "  '2.67477 -0.616635 -0.405058',\n",
       "  '2.66488 -0.672155 -0.405058',\n",
       "  '2.65315 -0.731017 -0.405058',\n",
       "  '2.6393 -0.793445 -0.405058',\n",
       "  '2.62299 -0.859666 -0.405058',\n",
       "  '2.60384 -0.929911 -0.405058',\n",
       "  '2.58141 -1.0044 -0.405058',\n",
       "  '2.55519 -1.08334 -0.405058',\n",
       "  '2.5246 -1.16692 -0.405058',\n",
       "  '2.48901 -1.25526 -0.405058',\n",
       "  '2.44767 -1.34845 -0.405058',\n",
       "  '2.39978 -1.44646 -0.405058',\n",
       "  '2.34447 -1.54917 -0.405058',\n",
       "  '2.28081 -1.65629 -0.405058',\n",
       "  '2.20786 -1.76734 -0.405058',\n",
       "  '2.12467 -1.88163 -0.405058',\n",
       "  '2.03037 -1.99818 -0.405058',\n",
       "  '1.92425 -2.11577 -0.405058',\n",
       "  '1.80582 -2.23287 -0.405058',\n",
       "  '1.67493 -2.34771 -0.405058',\n",
       "  '1.53183 -2.45832 -0.405058',\n",
       "  '1.37728 -2.56264 -0.405058',\n",
       "  '1.21252 -2.65867 -0.405058',\n",
       "  '1.03934 -2.74459 -0.405058',\n",
       "  '0.859906 -2.81891 -0.405058',\n",
       "  '0.676695 -2.88062 -0.405058',\n",
       "  '0.492294 -2.92921 -0.405058',\n",
       "  '0.309236 -2.96473 -0.405058',\n",
       "  '0.129839 -2.98771 -0.405058',\n",
       "  '-0.0439168 -2.99906 -0.405058',\n",
       "  '-0.210459 -3 -0.405058',\n",
       "  '-0.368644 -2.99189 -0.405058',\n",
       "  '-0.517741 -2.97615 -0.405058',\n",
       "  '-0.65738 -2.95416 -0.405058',\n",
       "  '-0.787493 -2.92722 -0.405058',\n",
       "  '-0.908249 -2.89649 -0.405058',\n",
       "  '-1.01998 -2.86297 -0.405058',\n",
       "  '-1.12315 -2.82753 -0.405058',\n",
       "  '-1.21828 -2.79087 -0.405058',\n",
       "  '-1.30592 -2.75357 -0.405058',\n",
       "  '-1.38664 -2.7161 -0.405058',\n",
       "  '-1.461 -2.67882 -0.405058',\n",
       "  '-1.52953 -2.64201 -0.405058',\n",
       "  '-1.59274 -2.60588 -0.405058',\n",
       "  '-1.6511 -2.57059 -0.405058',\n",
       "  '-1.70504 -2.53624 -0.405058',\n",
       "  '-1.75495 -2.50291 -0.405058',\n",
       "  '-1.80121 -2.47064 -0.405058',\n",
       "  '-1.84413 -2.43947 -0.405058',\n",
       "  '-1.88401 -2.40938 -0.405058',\n",
       "  '-1.92112 -2.38038 -0.405058',\n",
       "  '-1.95572 -2.35245 -0.405058',\n",
       "  '-1.988 -2.32556 -0.405058',\n",
       "  '-2.01818 -2.29969 -0.405058',\n",
       "  '-2.04643 -2.2748 -0.405058',\n",
       "  '-2.07291 -2.25085 -0.405058',\n",
       "  '-2.09777 -2.22782 -0.405058',\n",
       "  '-2.12113 -2.20567 -0.405058',\n",
       "  '-2.14312 -2.18435 -0.405058',\n",
       "  '-2.16384 -2.16384 -0.405058',\n",
       "  '-0.143271 -0.143271 -0.405058',\n",
       "  '71',\n",
       "  '4',\n",
       "  '0',\n",
       "  '1',\n",
       "  '2',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '2',\n",
       "  '3',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '3',\n",
       "  '4',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '4',\n",
       "  '5',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '5',\n",
       "  '6',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '6',\n",
       "  '7',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '7',\n",
       "  '8',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '8',\n",
       "  '9',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '9',\n",
       "  '10',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '10',\n",
       "  '11',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '11',\n",
       "  '12',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '12',\n",
       "  '13',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '13',\n",
       "  '14',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '14',\n",
       "  '15',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '15',\n",
       "  '16',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '16',\n",
       "  '17',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '17',\n",
       "  '18',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '18',\n",
       "  '19',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '19',\n",
       "  '20',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '20',\n",
       "  '21',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '21',\n",
       "  '22',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '22',\n",
       "  '23',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '23',\n",
       "  '24',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '24',\n",
       "  '25',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '25',\n",
       "  '26',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '26',\n",
       "  '27',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '27',\n",
       "  '28',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '28',\n",
       "  '29',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '29',\n",
       "  '30',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '30',\n",
       "  '31',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '31',\n",
       "  '32',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '32',\n",
       "  '33',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '33',\n",
       "  '34',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '34',\n",
       "  '35',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '35',\n",
       "  '36',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '36',\n",
       "  '37',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '37',\n",
       "  '38',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '38',\n",
       "  '39',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '39',\n",
       "  '40',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '40',\n",
       "  '41',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '41',\n",
       "  '42',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '42',\n",
       "  '43',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '43',\n",
       "  '44',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '44',\n",
       "  '45',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '45',\n",
       "  '46',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '46',\n",
       "  '47',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '47',\n",
       "  '48',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '48',\n",
       "  '49',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '49',\n",
       "  '50',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '50',\n",
       "  '51',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '51',\n",
       "  '52',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '52',\n",
       "  '53',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '53',\n",
       "  '54',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '54',\n",
       "  '55',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '55',\n",
       "  '56',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '56',\n",
       "  '57',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '57',\n",
       "  '58',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '58',\n",
       "  '59',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '59',\n",
       "  '60',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '60',\n",
       "  '61',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '61',\n",
       "  '62',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '62',\n",
       "  '63',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '63',\n",
       "  '64',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '64',\n",
       "  '65',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '65',\n",
       "  '66',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '66',\n",
       "  '67',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '67',\n",
       "  '68',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '68',\n",
       "  '69',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '69',\n",
       "  '70',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '70',\n",
       "  '71',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '71',\n",
       "  '72',\n",
       "  '0&quot;',\n",
       "  'color pmesh translucent 0.6 [170,255,0]',\n",
       "  'pmesh obj_41 inline &quot;50',\n",
       "  '2.71425 -0.143271 -0.405058',\n",
       "  '2.7136 -0.143271 -0.344274',\n",
       "  '2.71155 -0.143271 -0.280936',\n",
       "  '2.70792 -0.143271 -0.214979',\n",
       "  '2.70251 -0.143271 -0.146351',\n",
       "  '2.69512 -0.143271 -0.0750123',\n",
       "  '2.68553 -0.143271 -0.000943991',\n",
       "  '2.67349 -0.143271 0.0758521',\n",
       "  '2.65876 -0.143271 0.155347',\n",
       "  '2.64107 -0.143271 0.237482',\n",
       "  '2.62016 -0.143271 0.322161',\n",
       "  '2.59576 -0.143271 0.40925',\n",
       "  '2.56761 -0.143271 0.498569',\n",
       "  '2.53544 -0.143271 0.589891',\n",
       "  '2.49901 -0.143271 0.682942',\n",
       "  '2.45812 -0.143271 0.777392',\n",
       "  '2.41257 -0.143271 0.872863',\n",
       "  '2.36224 -0.143271 0.96893',\n",
       "  '2.30703 -0.143271 1.06512',\n",
       "  '2.24693 -0.143271 1.16094',\n",
       "  '2.18199 -0.143271 1.25584',\n",
       "  '2.11232 -0.143271 1.34929',\n",
       "  '2.03812 -0.143271 1.44073',\n",
       "  '1.95967 -0.143271 1.52964',\n",
       "  '1.8773 -0.143271 1.61551',\n",
       "  '1.79143 -0.143271 1.69788',\n",
       "  '1.70252 -0.143271 1.77633',\n",
       "  '1.61108 -0.143271 1.85053',\n",
       "  '1.51763 -0.143271 1.9202',\n",
       "  '1.42272 -0.143271 1.98515',\n",
       "  '1.32691 -0.143271 2.04524',\n",
       "  '1.23072 -0.143271 2.10045',\n",
       "  '1.13465 -0.143271 2.15078',\n",
       "  '1.03918 -0.143271 2.19633',\n",
       "  '0.944729 -0.143271 2.23723',\n",
       "  '0.851679 -0.143271 2.27365',\n",
       "  '0.760356 -0.143271 2.30582',\n",
       "  '0.671037 -0.143271 2.33398',\n",
       "  '0.583948 -0.143271 2.35838',\n",
       "  '0.499269 -0.143271 2.37928',\n",
       "  '0.417135 -0.143271 2.39697',\n",
       "  '0.337639 -0.143271 2.4117',\n",
       "  '0.260843 -0.143271 2.42374',\n",
       "  '0.186775 -0.143271 2.43334',\n",
       "  '0.115437 -0.143271 2.44073',\n",
       "  '0.0468084 -0.143271 2.44613',\n",
       "  '-0.0191483 -0.143271 2.44976',\n",
       "  '-0.0824864 -0.143271 2.45181',\n",
       "  '-0.143271 -0.143271 2.45246',\n",
       "  '-0.143271 -0.143271 -0.405058',\n",
       "  '48',\n",
       "  '4',\n",
       "  '0',\n",
       "  '1',\n",
       "  '2',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '2',\n",
       "  '3',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '3',\n",
       "  '4',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '4',\n",
       "  '5',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '5',\n",
       "  '6',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '6',\n",
       "  '7',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '7',\n",
       "  '8',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '8',\n",
       "  '9',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '9',\n",
       "  '10',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '10',\n",
       "  '11',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '11',\n",
       "  '12',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '12',\n",
       "  '13',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '13',\n",
       "  '14',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '14',\n",
       "  '15',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '15',\n",
       "  '16',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '16',\n",
       "  '17',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '17',\n",
       "  '18',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '18',\n",
       "  '19',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '19',\n",
       "  '20',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '20',\n",
       "  '21',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '21',\n",
       "  '22',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '22',\n",
       "  '23',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '23',\n",
       "  '24',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '24',\n",
       "  '25',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '25',\n",
       "  '26',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '26',\n",
       "  '27',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '27',\n",
       "  '28',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '28',\n",
       "  '29',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '29',\n",
       "  '30',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '30',\n",
       "  '31',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '31',\n",
       "  '32',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '32',\n",
       "  '33',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '33',\n",
       "  '34',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '34',\n",
       "  '35',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '35',\n",
       "  '36',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '36',\n",
       "  '37',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '37',\n",
       "  '38',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '38',\n",
       "  '39',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '39',\n",
       "  '40',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '40',\n",
       "  '41',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '41',\n",
       "  '42',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '42',\n",
       "  '43',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '43',\n",
       "  '44',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '44',\n",
       "  '45',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '45',\n",
       "  '46',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '46',\n",
       "  '47',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '47',\n",
       "  '48',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '48',\n",
       "  '49',\n",
       "  '0&quot;',\n",
       "  'color pmesh translucent 0.6 [0,255,0]',\n",
       "  'pmesh obj_42 inline &quot;50',\n",
       "  '-2.16384 -2.16384 -0.405058',\n",
       "  '-2.16338 -2.16338 -0.344274',\n",
       "  '-2.16193 -2.16193 -0.280936',\n",
       "  '-2.15937 -2.15937 -0.214979',\n",
       "  '-2.15554 -2.15554 -0.146351',\n",
       "  '-2.15032 -2.15032 -0.0750123',\n",
       "  '-2.14353 -2.14353 -0.000943991',\n",
       "  '-2.13502 -2.13502 0.0758521',\n",
       "  '-2.1246 -2.1246 0.155347',\n",
       "  '-2.1121 -2.1121 0.237482',\n",
       "  '-2.09731 -2.09731 0.322161',\n",
       "  '-2.08006 -2.08006 0.40925',\n",
       "  '-2.06015 -2.06015 0.498569',\n",
       "  '-2.03741 -2.03741 0.589891',\n",
       "  '-2.01165 -2.01165 0.682942',\n",
       "  '-1.98273 -1.98273 0.777392',\n",
       "  '-1.95052 -1.95052 0.872863',\n",
       "  '-1.91493 -1.91493 0.96893',\n",
       "  '-1.8759 -1.8759 1.06512',\n",
       "  '-1.8334 -1.8334 1.16094',\n",
       "  '-1.78748 -1.78748 1.25584',\n",
       "  '-1.73821 -1.73821 1.34929',\n",
       "  '-1.68575 -1.68575 1.44073',\n",
       "  '-1.63027 -1.63027 1.52964',\n",
       "  '-1.57203 -1.57203 1.61551',\n",
       "  '-1.51131 -1.51131 1.69788',\n",
       "  '-1.44844 -1.44844 1.77633',\n",
       "  '-1.38378 -1.38378 1.85053',\n",
       "  '-1.3177 -1.3177 1.9202',\n",
       "  '-1.2506 -1.2506 1.98515',\n",
       "  '-1.18285 -1.18285 2.04524',\n",
       "  '-1.11483 -1.11483 2.10045',\n",
       "  '-1.0469 -1.0469 2.15078',\n",
       "  '-0.979389 -0.979389 2.19633',\n",
       "  '-0.912603 -0.912603 2.23723',\n",
       "  '-0.846807 -0.846807 2.27365',\n",
       "  '-0.782232 -0.782232 2.30582',\n",
       "  '-0.719074 -0.719074 2.33398',\n",
       "  '-0.657493 -0.657493 2.35838',\n",
       "  '-0.597616 -0.597616 2.37928',\n",
       "  '-0.539538 -0.539538 2.39697',\n",
       "  '-0.483326 -0.483326 2.4117',\n",
       "  '-0.429023 -0.429023 2.42374',\n",
       "  '-0.376649 -0.376649 2.43334',\n",
       "  '-0.326205 -0.326205 2.44073',\n",
       "  '-0.277677 -0.277677 2.44613',\n",
       "  '-0.231039 -0.231039 2.44976',\n",
       "  '-0.186252 -0.186252 2.45181',\n",
       "  '-0.143271 -0.143271 2.45246',\n",
       "  '-0.143271 -0.143271 -0.405058',\n",
       "  '48',\n",
       "  '4',\n",
       "  '0',\n",
       "  '1',\n",
       "  '2',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '2',\n",
       "  '3',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '3',\n",
       "  '4',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '4',\n",
       "  '5',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '5',\n",
       "  '6',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '6',\n",
       "  '7',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '7',\n",
       "  '8',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '8',\n",
       "  '9',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '9',\n",
       "  '10',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '10',\n",
       "  '11',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '11',\n",
       "  '12',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '12',\n",
       "  '13',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '13',\n",
       "  '14',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '14',\n",
       "  '15',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '15',\n",
       "  '16',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '16',\n",
       "  '17',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '17',\n",
       "  '18',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '18',\n",
       "  '19',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '19',\n",
       "  '20',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '20',\n",
       "  '21',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '21',\n",
       "  '22',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '22',\n",
       "  '23',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '23',\n",
       "  '24',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '24',\n",
       "  '25',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '25',\n",
       "  '26',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '26',\n",
       "  '27',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '27',\n",
       "  '28',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '28',\n",
       "  '29',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '29',\n",
       "  '30',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '30',\n",
       "  '31',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '31',\n",
       "  '32',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '32',\n",
       "  '33',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '33',\n",
       "  '34',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '34',\n",
       "  '35',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '35',\n",
       "  '36',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '36',\n",
       "  '37',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '37',\n",
       "  '38',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '38',\n",
       "  '39',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '39',\n",
       "  '40',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '40',\n",
       "  '41',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '41',\n",
       "  '42',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '42',\n",
       "  '43',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '43',\n",
       "  '44',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '44',\n",
       "  '45',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '45',\n",
       "  '46',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '46',\n",
       "  '47',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '47',\n",
       "  '48',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '48',\n",
       "  '49',\n",
       "  '0&quot;',\n",
       "  'color pmesh translucent 0.6 [0,255,169]',\n",
       "  'pmesh obj_43 inline &quot;50',\n",
       "  '-0.143271 2.71425 -0.405058',\n",
       "  '-0.143271 2.7136 -0.344274',\n",
       "  '-0.143271 2.71155 -0.280936',\n",
       "  '-0.143271 2.70792 -0.214979',\n",
       "  '-0.143271 2.70251 -0.146351',\n",
       "  '-0.143271 2.69512 -0.0750123',\n",
       "  '-0.143271 2.68553 -0.000943991',\n",
       "  '-0.143271 2.67349 0.0758521',\n",
       "  '-0.143271 2.65876 0.155347',\n",
       "  '-0.143271 2.64107 0.237482',\n",
       "  '-0.143271 2.62016 0.322161',\n",
       "  '-0.143271 2.59576 0.40925',\n",
       "  '-0.143271 2.56761 0.498569',\n",
       "  '-0.143271 2.53544 0.589891',\n",
       "  '-0.143271 2.49901 0.682942',\n",
       "  '-0.143271 2.45812 0.777392',\n",
       "  '-0.143271 2.41257 0.872863',\n",
       "  '-0.143271 2.36224 0.96893',\n",
       "  '-0.143271 2.30703 1.06512',\n",
       "  '-0.143271 2.24693 1.16094',\n",
       "  '-0.143271 2.18199 1.25584',\n",
       "  '-0.143271 2.11232 1.34929',\n",
       "  '-0.143271 2.03812 1.44073',\n",
       "  '-0.143271 1.95967 1.52964',\n",
       "  '-0.143271 1.8773 1.61551',\n",
       "  '-0.143271 1.79143 1.69788',\n",
       "  '-0.143271 1.70252 1.77633',\n",
       "  '-0.143271 1.61108 1.85053',\n",
       "  '-0.143271 1.51763 1.9202',\n",
       "  '-0.143271 1.42272 1.98515',\n",
       "  '-0.143271 1.32691 2.04524',\n",
       "  '-0.143271 1.23072 2.10045',\n",
       "  '-0.143271 1.13465 2.15078',\n",
       "  '-0.143271 1.03918 2.19633',\n",
       "  '-0.143271 0.944729 2.23723',\n",
       "  '-0.143271 0.851679 2.27365',\n",
       "  '-0.143271 0.760356 2.30582',\n",
       "  '-0.143271 0.671037 2.33398',\n",
       "  '-0.143271 0.583948 2.35838',\n",
       "  '-0.143271 0.499269 2.37928',\n",
       "  '-0.143271 0.417135 2.39697',\n",
       "  '-0.143271 0.337639 2.4117',\n",
       "  '-0.143271 0.260843 2.42374',\n",
       "  '-0.143271 0.186775 2.43334',\n",
       "  '-0.143271 0.115437 2.44073',\n",
       "  '-0.143271 0.0468084 2.44613',\n",
       "  '-0.143271 -0.0191483 2.44976',\n",
       "  '-0.143271 -0.0824864 2.45181',\n",
       "  '-0.143271 -0.143271 2.45246',\n",
       "  '-0.143271 -0.143271 -0.405058',\n",
       "  '48',\n",
       "  '4',\n",
       "  '0',\n",
       "  '1',\n",
       "  '2',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '2',\n",
       "  '3',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '3',\n",
       "  '4',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '4',\n",
       "  '5',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '5',\n",
       "  '6',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '6',\n",
       "  '7',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '7',\n",
       "  '8',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '8',\n",
       "  '9',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '9',\n",
       "  '10',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '10',\n",
       "  '11',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '11',\n",
       "  '12',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '12',\n",
       "  '13',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '13',\n",
       "  '14',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '14',\n",
       "  '15',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '15',\n",
       "  '16',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '16',\n",
       "  '17',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '17',\n",
       "  '18',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '18',\n",
       "  '19',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '19',\n",
       "  '20',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '20',\n",
       "  '21',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '21',\n",
       "  '22',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '22',\n",
       "  '23',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '23',\n",
       "  '24',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '24',\n",
       "  '25',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '25',\n",
       "  '26',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '26',\n",
       "  '27',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '27',\n",
       "  '28',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '28',\n",
       "  '29',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '29',\n",
       "  '30',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '30',\n",
       "  '31',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '31',\n",
       "  '32',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '32',\n",
       "  '33',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '33',\n",
       "  '34',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '34',\n",
       "  '35',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '35',\n",
       "  '36',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '36',\n",
       "  '37',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '37',\n",
       "  '38',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '38',\n",
       "  '39',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '39',\n",
       "  '40',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '40',\n",
       "  '41',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '41',\n",
       "  '42',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '42',\n",
       "  '43',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '43',\n",
       "  '44',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '44',\n",
       "  '45',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '45',\n",
       "  '46',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '46',\n",
       "  '47',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '47',\n",
       "  '48',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '48',\n",
       "  '49',\n",
       "  '0&quot;',\n",
       "  'color pmesh translucent 0.6 [0,169,255]',\n",
       "  'pmesh obj_44 inline &quot;26',\n",
       "  '-0.143271 2.71425 -0.405058',\n",
       "  '-0.143271 2.71298 -0.490251',\n",
       "  '-0.143271 2.70905 -0.577338',\n",
       "  '-0.143271 2.7023 -0.666132',\n",
       "  '-0.143271 2.69256 -0.756416',\n",
       "  '-0.143271 2.67972 -0.847949',\n",
       "  '-0.143271 2.66364 -0.940459',\n",
       "  '-0.143271 2.64425 -1.03365',\n",
       "  '-0.143271 2.62149 -1.12722',\n",
       "  '-0.143271 2.59533 -1.22084',\n",
       "  '-0.143271 2.56578 -1.31417',\n",
       "  '-0.143271 2.53288 -1.40686',\n",
       "  '-0.143271 2.49673 -1.49858',\n",
       "  '-0.143271 2.45744 -1.58901',\n",
       "  '-0.143271 2.41515 -1.67781',\n",
       "  '-0.143271 2.37005 -1.76469',\n",
       "  '-0.143271 2.32236 -1.84939',\n",
       "  '-0.143271 2.27229 -1.93165',\n",
       "  '-0.143271 2.2201 -2.01126',\n",
       "  '-0.143271 2.16605 -2.08804',\n",
       "  '-0.143271 2.11042 -2.16185',\n",
       "  '-0.143271 2.05346 -2.23257',\n",
       "  '-0.143271 1.99544 -2.30013',\n",
       "  '-0.143271 1.93664 -2.36449',\n",
       "  '-0.143271 1.8773 -2.42563',\n",
       "  '-0.143271 -0.143271 -0.405058',\n",
       "  '24',\n",
       "  '4',\n",
       "  '0',\n",
       "  '1',\n",
       "  '2',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '2',\n",
       "  '3',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '3',\n",
       "  '4',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '4',\n",
       "  '5',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '5',\n",
       "  '6',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '6',\n",
       "  '7',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '7',\n",
       "  '8',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '8',\n",
       "  '9',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '9',\n",
       "  '10',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '10',\n",
       "  '11',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '11',\n",
       "  '12',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '12',\n",
       "  '13',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '13',\n",
       "  '14',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '14',\n",
       "  '15',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '15',\n",
       "  '16',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '16',\n",
       "  '17',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '17',\n",
       "  '18',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '18',\n",
       "  '19',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '19',\n",
       "  '20',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '20',\n",
       "  '21',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '21',\n",
       "  '22',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '22',\n",
       "  '23',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '23',\n",
       "  '24',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '24',\n",
       "  '25',\n",
       "  '0&quot;',\n",
       "  'color pmesh translucent 0.6 [0,0,255]',\n",
       "  'pmesh obj_45 inline &quot;50',\n",
       "  '2.71425 -0.143271 -0.405058',\n",
       "  '2.7136 -0.10029 -0.448039',\n",
       "  '2.71155 -0.0555029 -0.492826',\n",
       "  '2.70792 -0.00886456 -0.539465',\n",
       "  '2.70251 0.039663 -0.587992',\n",
       "  '2.69512 0.0901067 -0.638436',\n",
       "  '2.68553 0.142481 -0.69081',\n",
       "  '2.67349 0.196784 -0.745113',\n",
       "  '2.65876 0.252996 -0.801325',\n",
       "  '2.64107 0.311074 -0.859403',\n",
       "  '2.62016 0.370951 -0.91928',\n",
       "  '2.59576 0.432532 -0.980861',\n",
       "  '2.56761 0.49569 -1.04402',\n",
       "  '2.53544 0.560265 -1.10859',\n",
       "  '2.49901 0.626061 -1.17439',\n",
       "  '2.45812 0.692847 -1.24118',\n",
       "  '2.41257 0.760356 -1.30869',\n",
       "  '2.36224 0.828286 -1.37661',\n",
       "  '2.30703 0.896304 -1.44463',\n",
       "  '2.24693 0.964055 -1.51238',\n",
       "  '2.18199 1.03116 -1.57949',\n",
       "  '2.11232 1.09724 -1.64557',\n",
       "  '2.03812 1.1619 -1.71023',\n",
       "  '1.95967 1.22477 -1.7731',\n",
       "  '1.8773 1.28549 -1.83382',\n",
       "  '1.79143 1.34373 -1.89206',\n",
       "  '1.70252 1.39921 -1.94753',\n",
       "  '1.61108 1.45167 -2',\n",
       "  '1.51763 1.50094 -2.04926',\n",
       "  '1.42272 1.54686 -2.09519',\n",
       "  '1.32691 1.58935 -2.13768',\n",
       "  '1.23072 1.62839 -2.17672',\n",
       "  '1.13465 1.66398 -2.21231',\n",
       "  '1.03918 1.69619 -2.24452',\n",
       "  '0.944729 1.72511 -2.27344',\n",
       "  '0.851679 1.75086 -2.29919',\n",
       "  '0.760356 1.77361 -2.32194',\n",
       "  '0.671037 1.79352 -2.34185',\n",
       "  '0.583948 1.81077 -2.3591',\n",
       "  '0.499269 1.82556 -2.37388',\n",
       "  '0.417135 1.83806 -2.38639',\n",
       "  '0.337639 1.84848 -2.39681',\n",
       "  '0.260843 1.85699 -2.40532',\n",
       "  '0.186775 1.86378 -2.41211',\n",
       "  '0.115437 1.869 -2.41733',\n",
       "  '0.0468084 1.87282 -2.42115',\n",
       "  '-0.0191483 1.87539 -2.42372',\n",
       "  '-0.0824864 1.87684 -2.42517',\n",
       "  '-0.143271 1.8773 -2.42563',\n",
       "  '-0.143271 -0.143271 -0.405058',\n",
       "  '48',\n",
       "  '4',\n",
       "  '0',\n",
       "  '1',\n",
       "  '2',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '2',\n",
       "  '3',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '3',\n",
       "  '4',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '4',\n",
       "  '5',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '5',\n",
       "  '6',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '6',\n",
       "  '7',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '7',\n",
       "  '8',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '8',\n",
       "  '9',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '9',\n",
       "  '10',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '10',\n",
       "  '11',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '11',\n",
       "  '12',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '12',\n",
       "  '13',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '13',\n",
       "  '14',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '14',\n",
       "  '15',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '15',\n",
       "  '16',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '16',\n",
       "  '17',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '17',\n",
       "  '18',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '18',\n",
       "  '19',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '19',\n",
       "  '20',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '20',\n",
       "  '21',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '21',\n",
       "  '22',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '22',\n",
       "  '23',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '23',\n",
       "  '24',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '24',\n",
       "  '25',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '25',\n",
       "  '26',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '26',\n",
       "  '27',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '27',\n",
       "  '28',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '28',\n",
       "  '29',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '29',\n",
       "  '30',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '30',\n",
       "  '31',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '31',\n",
       "  '32',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '32',\n",
       "  '33',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '33',\n",
       "  '34',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '34',\n",
       "  '35',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '35',\n",
       "  '36',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '36',\n",
       "  '37',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '37',\n",
       "  '38',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '38',\n",
       "  '39',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '39',\n",
       "  '40',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '40',\n",
       "  '41',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '41',\n",
       "  '42',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '42',\n",
       "  '43',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '43',\n",
       "  '44',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '44',\n",
       "  '45',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '45',\n",
       "  '46',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '46',\n",
       "  '47',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '47',\n",
       "  '48',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '48',\n",
       "  '49',\n",
       "  '0&quot;',\n",
       "  'color pmesh translucent 0.6 [170,0,255]',\n",
       "  'pmesh obj_46 inline &quot;65',\n",
       "  '-2.16384 -2.16384 -0.405058',\n",
       "  '-2.18007 -2.14722 -0.43791',\n",
       "  '-2.19666 -2.12934 -0.472383',\n",
       "  '-2.21361 -2.11009 -0.508575',\n",
       "  '-2.23089 -2.08935 -0.546592',\n",
       "  '-2.24846 -2.06698 -0.58654',\n",
       "  '-2.26629 -2.04281 -0.628534',\n",
       "  '-2.28432 -2.01669 -0.672689',\n",
       "  '-2.30249 -1.98842 -0.719126',\n",
       "  '-2.3207 -1.9578 -0.767963',\n",
       "  '-2.33887 -1.92461 -0.819322',\n",
       "  '-2.35686 -1.8886 -0.873317',\n",
       "  '-2.37452 -1.84952 -0.930059',\n",
       "  '-2.39168 -1.8071 -0.989645',\n",
       "  '-2.40812 -1.76102 -1.05216',\n",
       "  '-2.42359 -1.71099 -1.11766',\n",
       "  '-2.4378 -1.65668 -1.18617',\n",
       "  '-2.4504 -1.59777 -1.25769',\n",
       "  '-2.46102 -1.53392 -1.33216',\n",
       "  '-2.46923 -1.46484 -1.40945',\n",
       "  '-2.47454 -1.39023 -1.48937',\n",
       "  '-2.47643 -1.30985 -1.57164',\n",
       "  '-2.47435 -1.22353 -1.65588',\n",
       "  '-2.46773 -1.13116 -1.74162',\n",
       "  '-2.45599 -1.03278 -1.82827',\n",
       "  '-2.43859 -0.928511 -1.91514',\n",
       "  '-2.41503 -0.818658 -2.00143',\n",
       "  '-2.38489 -0.703677 -2.08627',\n",
       "  '-2.34789 -0.584196 -2.16876',\n",
       "  '-2.30389 -0.461009 -2.24794',\n",
       "  '-2.2529 -0.335055 -2.3229',\n",
       "  '-2.19514 -0.207392 -2.39281',\n",
       "  '-2.13102 -0.0791501 -2.45693',\n",
       "  '-2.06111 0.0485132 -2.51468',\n",
       "  '-1.98615 0.174467 -2.56567',\n",
       "  '-1.90697 0.297654 -2.60968',\n",
       "  '-1.82449 0.417135 -2.64668',\n",
       "  '-1.73964 0.532116 -2.67681',\n",
       "  '-1.65335 0.641969 -2.70038',\n",
       "  '-1.56648 0.746236 -2.71778',\n",
       "  '-1.47983 0.844622 -2.72951',\n",
       "  '-1.39409 0.936983 -2.73613',\n",
       "  '-1.30985 1.02331 -2.73821',\n",
       "  '-1.22758 1.10368 -2.73632',\n",
       "  '-1.14766 1.1783 -2.73102',\n",
       "  '-1.07037 1.24738 -2.72281',\n",
       "  '-0.995907 1.31123 -2.71219',\n",
       "  '-0.924387 1.37014 -2.69959',\n",
       "  '-0.855871 1.42445 -2.68538',\n",
       "  '-0.790372 1.47448 -2.66991',\n",
       "  '-0.727858 1.52055 -2.65347',\n",
       "  '-0.668272 1.56298 -2.63631',\n",
       "  '-0.61153 1.60206 -2.61865',\n",
       "  '-0.557535 1.63806 -2.60066',\n",
       "  '-0.506176 1.67126 -2.58249',\n",
       "  '-0.457339 1.70188 -2.56427',\n",
       "  '-0.410902 1.73015 -2.54611',\n",
       "  '-0.366747 1.75627 -2.52808',\n",
       "  '-0.324753 1.78044 -2.51025',\n",
       "  '-0.284804 1.80281 -2.49267',\n",
       "  '-0.246788 1.82355 -2.4754',\n",
       "  '-0.210595 1.8428 -2.45845',\n",
       "  '-0.176123 1.86067 -2.44185',\n",
       "  '-0.143271 1.8773 -2.42563',\n",
       "  '-0.143271 -0.143271 -0.405058',\n",
       "  '63',\n",
       "  '4',\n",
       "  '0',\n",
       "  '1',\n",
       "  '2',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '2',\n",
       "  '3',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '3',\n",
       "  '4',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '4',\n",
       "  '5',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '5',\n",
       "  '6',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '6',\n",
       "  '7',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '7',\n",
       "  '8',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '8',\n",
       "  '9',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '9',\n",
       "  '10',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '10',\n",
       "  '11',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '11',\n",
       "  '12',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '12',\n",
       "  '13',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '13',\n",
       "  '14',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '14',\n",
       "  '15',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '15',\n",
       "  '16',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '16',\n",
       "  '17',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '17',\n",
       "  '18',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '18',\n",
       "  '19',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '19',\n",
       "  '20',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '20',\n",
       "  '21',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '21',\n",
       "  '22',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '22',\n",
       "  '23',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '23',\n",
       "  '24',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '24',\n",
       "  '25',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '25',\n",
       "  '26',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '26',\n",
       "  '27',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '27',\n",
       "  '28',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '28',\n",
       "  '29',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '29',\n",
       "  '30',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '30',\n",
       "  '31',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '31',\n",
       "  '32',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '32',\n",
       "  '33',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '33',\n",
       "  '34',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '34',\n",
       "  '35',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '35',\n",
       "  '36',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '36',\n",
       "  '37',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '37',\n",
       "  '38',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '38',\n",
       "  '39',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '39',\n",
       "  '40',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '40',\n",
       "  '41',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '41',\n",
       "  '42',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '42',\n",
       "  '43',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '43',\n",
       "  '44',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '44',\n",
       "  '45',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '45',\n",
       "  '46',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '46',\n",
       "  '47',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '47',\n",
       "  '48',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '48',\n",
       "  '49',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '49',\n",
       "  '50',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '50',\n",
       "  '51',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '51',\n",
       "  '52',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '52',\n",
       "  '53',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '53',\n",
       "  '54',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '54',\n",
       "  '55',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '55',\n",
       "  '56',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '56',\n",
       "  '57',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '57',\n",
       "  '58',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '58',\n",
       "  '59',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '59',\n",
       "  '60',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '60',\n",
       "  '61',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '61',\n",
       "  '62',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '62',\n",
       "  '63',\n",
       "  '0',\n",
       "  '4',\n",
       "  '0',\n",
       "  '63',\n",
       "  '64',\n",
       "  '0&quot;',\n",
       "  'color pmesh translucent 0.6 [255,0,170]',\n",
       "  'select atomno = 6',\n",
       "  'color atom  [0,0,0]',\n",
       "  'label &quot;\\sigma_0&quot;',\n",
       "  'select atomno = 7',\n",
       "  'color atom  [0,0,0]',\n",
       "  'label &quot;\\sigma_1&quot;',\n",
       "  'select atomno = 8',\n",
       "  'color atom  [0,0,0]',\n",
       "  'label &quot;\\sigma_2&quot;',\n",
       "  'select atomno = 9',\n",
       "  'color atom  [0,0,0]',\n",
       "  'label &quot;\\sigma_3&quot;',\n",
       "  'select atomno = 10',\n",
       "  'color atom  [0,0,0]',\n",
       "  'label &quot;\\sigma_4&quot;',\n",
       "  'select atomno = 11',\n",
       "  'color atom  [0,0,0]',\n",
       "  'label &quot;\\sigma_5&quot;',\n",
       "  'select atomno = 12',\n",
       "  'color atom  [0,0,0]',\n",
       "  'label &quot;\\sigma_6&quot;',\n",
       "  'select atomno = 13',\n",
       "  'color atom  [0,0,0]',\n",
       "  'label &quot;\\sigma_7&quot;',\n",
       "  'select atomno = 14',\n",
       "  'color atom  [0,0,0]',\n",
       "  'label &quot;\\sigma_8&quot;',\n",
       "  'isosurface fullylit; pmesh o* fullylit; set antialiasdisplay on;',\n",
       "].join('\\n');;\n",
       "    var Info = {\n",
       "      width: '100%',\n",
       "      height: '500',\n",
       "      debug: false,\n",
       "      disableInitialConsole: true,   // very slow when used with inline mesh\n",
       "      color: '#3131ff',\n",
       "      addSelectionOptions: false,\n",
       "      use: 'HTML5',\n",
       "      j2sPath: '/nbextensions/jsmol/j2s',\n",
       "      script: script,\n",
       "    };\n",
       "    var jmolApplet0 = Jmol.getApplet('jmolApplet0', Info);\n",
       "  </script>\n",
       "</body>\n",
       "</html>\n",
       "\" \n",
       "        width=\"100%\"\n",
       "        height=\"500\"\n",
       "        style=\"border: 0;\">\n",
       "</iframe>\n"
      ],
      "text/plain": [
       "Graphics3d Object"
      ]
     },
     "execution_count": 135,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "P.plot()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Can we convert a M2 HashTable to a Sage object?\n",
    "\n",
    "Mostly, but there are some caveats.\n",
    "\n",
    "The keys of the first HastTable below (`ht1`) are strings, and this works well.\n",
    "\n",
    "The keys of the second HastTable below (`ht2`) are M2 \"symbols\", and this does not work so well because Sage does not know how to deal with these symbols (they should just be turned into strings; this should be a quick fix)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 159,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "HashTable{key1 => 12}\n",
       "          key2 => 1"
      ]
     },
     "execution_count": 159,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ht1 = m2('new HashTable from {\"key1\"=>12, \"key2\"=>1}')\n",
    "ht1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 160,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'key1': 12, 'key2': 1}"
      ]
     },
     "execution_count": 160,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ht1.sage()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 161,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "HashTable{key1 => 12}\n",
       "          key2 => 1"
      ]
     },
     "execution_count": 161,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ht2 = m2('new HashTable from {key1=>12, key2=>1}')\n",
    "ht2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 162,
   "metadata": {},
   "outputs": [
    {
     "ename": "NotImplementedError",
     "evalue": "cannot convert key2 to a Sage object",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mNotImplementedError\u001b[0m                       Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-162-14087f630959>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mht2\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msage\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[0;32m/home/saliola/Applications/sage-devel/local/lib/python2.7/site-packages/sage/interfaces/interface.pyc\u001b[0m in \u001b[0;36msage\u001b[0;34m(self, *args, **kwds)\u001b[0m\n\u001b[1;32m   1079\u001b[0m             \u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1080\u001b[0m         \"\"\"\n\u001b[0;32m-> 1081\u001b[0;31m         \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_sage_\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwds\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   1082\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1083\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0m__repr__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/home/saliola/Applications/sage-devel/local/lib/python2.7/site-packages/sage/interfaces/macaulay2.pyc\u001b[0m in \u001b[0;36m_sage_\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m   1217\u001b[0m                 \u001b[0;32mreturn\u001b[0m \u001b[0mmatrix\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbase_ring\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mentries\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1218\u001b[0m             \u001b[0;32melif\u001b[0m \u001b[0mcls_str\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m'HashTable'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1219\u001b[0;31m                 \u001b[0;32mreturn\u001b[0m \u001b[0;34m{\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_sage_\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_sage_\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpairs\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   1220\u001b[0m             \u001b[0;32melif\u001b[0m \u001b[0mcls_str\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m\"Ideal\"\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1221\u001b[0m                 \u001b[0mparent\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mring\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_sage_\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/home/saliola/Applications/sage-devel/local/lib/python2.7/site-packages/sage/interfaces/macaulay2.pyc\u001b[0m in \u001b[0;36m<dictcomp>\u001b[0;34m((x, y))\u001b[0m\n\u001b[1;32m   1217\u001b[0m                 \u001b[0;32mreturn\u001b[0m \u001b[0mmatrix\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbase_ring\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mentries\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1218\u001b[0m             \u001b[0;32melif\u001b[0m \u001b[0mcls_str\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m'HashTable'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1219\u001b[0;31m                 \u001b[0;32mreturn\u001b[0m \u001b[0;34m{\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_sage_\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_sage_\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpairs\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   1220\u001b[0m             \u001b[0;32melif\u001b[0m \u001b[0mcls_str\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m\"Ideal\"\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1221\u001b[0m                 \u001b[0mparent\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mring\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_sage_\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/home/saliola/Applications/sage-devel/local/lib/python2.7/site-packages/sage/interfaces/macaulay2.pyc\u001b[0m in \u001b[0;36m_sage_\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m   1308\u001b[0m             \u001b[0;32mreturn\u001b[0m \u001b[0msage_eval\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrepr_str\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1309\u001b[0m         \u001b[0;32mexcept\u001b[0m \u001b[0mException\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1310\u001b[0;31m             \u001b[0;32mraise\u001b[0m \u001b[0mNotImplementedError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"cannot convert %s to a Sage object\"\u001b[0m\u001b[0;34m%\u001b[0m\u001b[0mrepr_str\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   1311\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1312\u001b[0m     \u001b[0;32mfrom\u001b[0m \u001b[0msage\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmisc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msuperseded\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mdeprecated_function_alias\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mNotImplementedError\u001b[0m: cannot convert key2 to a Sage object"
     ]
    }
   ],
   "source": [
    "ht2.sage()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Some miscellaneous stuff"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 163,
   "metadata": {
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "pk = X.peek()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 164,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "NormalToricVariety{cache => CacheTable{...3...}                                             }\n",
       "                   max => {{0, 1, 3}, {0, 1, 4}, {0, 2, 3}, {0, 2, 4}, {1, 2, 3}, {1, 2, 4}}\n",
       "                   rays => {{1, 0, 0}, {0, 1, 0}, {-1, -1, 0}, {0, 0, 1}, {0, 1, -1}}"
      ]
     },
     "execution_count": 164,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pk"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 165,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Net"
      ]
     },
     "execution_count": 165,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "m2(\"class %s\" % pk._name)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 166,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Thing : HashTable : MutableHashTable : Variety : NormalToricVariety"
      ]
     },
     "execution_count": 166,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "m2(\"showStructure class %s\" % X._name)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### M2 can be used for some computations in Sage already (provided M2 is installed)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 198,
   "metadata": {},
   "outputs": [],
   "source": [
    "R = PolynomialRing(QQ, 3, \"a,b,c\", order='lex')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 199,
   "metadata": {},
   "outputs": [],
   "source": [
    "I = sage.rings.ideal.Katsura(R, 3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 200,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Ideal (a + 2*b + 2*c - 1, a^2 - a + 2*b^2 + 2*c^2, 2*a*b + 2*b*c - b) of Multivariate Polynomial Ring in a, b, c over Rational Field"
      ]
     },
     "execution_count": 200,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "I"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 204,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[a - 60*c^3 + 158/7*c^2 + 8/7*c - 1, b + 30*c^3 - 79/7*c^2 + 3/7*c, c^4 - 10/21*c^3 + 1/84*c^2 + 1/84*c]"
      ]
     },
     "execution_count": 204,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "I.groebner_basis(algorithm='macaulay2:gb')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The above dispatchs the computation to the method `_groebner_basis_macaulay2`, and then does some post-processing."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 205,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[84*c^4 - 40*c^3 + c^2 + c, 7*b + 210*c^3 - 79*c^2 + 3*c, 7*a - 420*c^3 + 158*c^2 + 8*c - 7]"
      ]
     },
     "execution_count": 205,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "I._groebner_basis_macaulay2()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "SageMath 8.9.beta3",
   "language": "sage",
   "name": "sagemath"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.15"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
