Skip to content
Snippets Groups Projects
Metavoxel GPU Validation 3.ipynb 395 KiB
Newer Older
Amira Abdel-Rahman's avatar
Amira Abdel-Rahman committed
{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "using LinearAlgebra\n",
    "using Plots\n",
    "import JSON\n",
    "# using Quaternions\n",
    "using StaticArrays, Rotations\n",
    "using Distributed\n",
    "using StaticArrays, BenchmarkTools\n",
    "using Base.Threads\n",
    "using CUDAnative\n",
    "using CuArrays,CUDAdrv \n",
    "using Test\n",
    "import Base: +, * , -, ^"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Todo\n",
    "- create struct for material and get for each edge its properties\n",
    "- implement getTimestep (done)\n",
    "- implement on single voxel (done)\n",
    "- get reat E and L (done)\n",
    "- compare to Frame3dd"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "struct Vector3\n",
    "    x::Float64\n",
    "    y::Float64\n",
    "    z::Float64\n",
    "    function Vector3()\n",
    "        x=0.0\n",
    "        y=0.0\n",
    "        z=0.0\n",
    "        new(x,y,z)\n",
    "    end\n",
    "    function Vector3(x,y,z)\n",
    "       new(x,y,z)\n",
    "    end\n",
    "end\n",
    "struct Quaternion\n",
    "    x::Float64\n",
    "    y::Float64\n",
    "    z::Float64\n",
    "    w::Float64\n",
    "    function Quaternion()\n",
    "        x=0.0\n",
    "        y=0.0\n",
    "        z=0.0\n",
    "        w=1.0\n",
    "        new(x,y,z,w)\n",
    "    end\n",
    "    function Quaternion(x,y,z,w)\n",
    "        new(x,y,z,w)\n",
    "    end\n",
    "end\n",
    "struct RotationMatrix\n",
    "    te1::Float64\n",
    "    te2::Float64\n",
    "    te3::Float64\n",
    "    te4::Float64\n",
    "    te5::Float64\n",
    "    te6::Float64\n",
    "    te7::Float64\n",
    "    te8::Float64\n",
    "    te9::Float64\n",
    "    te10::Float64\n",
    "    te11::Float64\n",
    "    te12::Float64\n",
    "    te13::Float64\n",
    "    te14::Float64\n",
    "    te15::Float64\n",
    "    te16::Float64\n",
    "    function RotationMatrix()\n",
    "        te1 =0.0\n",
    "        te2 =0.0\n",
    "        te3 =0.0\n",
    "        te4 =0.0\n",
    "        te5 =0.0\n",
    "        te6 =0.0\n",
    "        te7 =0.0\n",
    "        te8 =0.0\n",
    "        te9 =0.0\n",
    "        te10=0.0\n",
    "        te11=0.0\n",
    "        te12=0.0\n",
    "        te13=0.0\n",
    "        te14=0.0\n",
    "        te15=0.0\n",
    "        te16=0.0\n",
    "        new(te1,te2,te3,te4,te5,te6,te7,te8,te9,te10,te11,te12,te13,te14,te15,te16)\n",
    "    end\n",
    "    function RotationMatrix(te1,te2,te3,te4,te5,te6,te7,te8,te9,te10,te11,te12,te13,te14,te15,te16)\n",
    "        new(te1,te2,te3,te4,te5,te6,te7,te8,te9,te10,te11,te12,te13,te14,te15,te16)\n",
    "    end\n",
    "end\n",
    "\n",
    "+(f::Vector3, g::Vector3)=Vector3(f.x+g.x , f.y+g.y,f.z+g.z )\n",
    "-(f::Vector3, g::Vector3)=Vector3(f.x-g.x , f.y-g.y,f.z-g.z )\n",
    "*(f::Vector3, g::Vector3)=Vector3(f.x*g.x , f.y*g.y,f.z*g.z )\n",
    "\n",
    "+(f::Vector3, g::Number)=Vector3(f.x+g , f.y+g,f.z+g )\n",
    "-(f::Vector3, g::Number)=Vector3(f.x-g , f.y-g,f.z-g )\n",
    "*(f::Vector3, g::Number)=Vector3(f.x*g , f.y*g,f.z*g )\n",
    "\n",
    "+(g::Vector3, f::Number)=Vector3(f.x+g , f.y+g,f.z+g )\n",
    "-(g::Vector3, f::Number)=Vector3(g-f.x , g-f.y,g-f.z )\n",
    "*(g::Vector3, f::Number)=Vector3(f.x*g , f.y*g,f.z*g )\n",
    "\n",
    "addX(f::Vector3, g::Number)=Vector3(f.x+g , f.y,f.z)\n",
    "addY(f::Vector3, g::Number)=Vector3(f.x , f.y+g,f.z )\n",
    "addZ(f::Vector3, g::Number)=Vector3(f.x , f.y,f.z+g )\n",
    "\n",
    "function normalizeVector3(f::Vector3)\n",
    "    leng=sqrt((f.x * f.x) + (f.y * f.y) + (f.z * f.z))\n",
    "    return Vector3(f.x/leng,f.y/leng,f.z/leng)\n",
    "    \n",
    "end\n",
    "function normalizeQuaternion(f::Quaternion)\n",
    "    l = sqrt((f.x * f.x) + (f.y * f.y) + (f.z * f.z)+ (f.w * f.w))\n",
    "    if l === 0 \n",
    "        qx = 0\n",
    "        qy = 0\n",
    "        qz = 0\n",
    "        qw = 1\n",
    "    else \n",
    "        l = 1 / l\n",
    "        qx = f.x * l\n",
    "        qy = f.y * l\n",
    "        qz = f.z * l\n",
    "        qw = f.w * l\n",
    "    end\n",
    "    return Quaternion(qx,qy,qz,qw)\n",
    "end\n",
    "\n",
    "function normalizeQuaternion1!(fx::Float64,fy::Float64,fz::Float64,fw::Float64)\n",
    "    l = sqrt((fx * fx) + (fy * fy) + (fz * fz)+ (fw * fw))\n",
    "    if l === 0 \n",
    "        qx = 0.0\n",
    "        qy = 0.0\n",
    "        qz = 0.0\n",
    "        qw = 1.0\n",
    "    else \n",
    "        l = 1.0 / l\n",
    "        qx = fx * l\n",
    "        qy = fy * l\n",
    "        qz = fz * l\n",
    "        qw = fw * l\n",
    "    end\n",
    "    return qx,qy,qz,qw\n",
    "end\n",
    "\n",
    "\n",
    "function dotVector3(f::Vector3, g::Vector3)\n",
    "    return (f.x * g.x) + (f.y * g.y) + (f.z * g.z)\n",
    "end\n",
    "\n",
    "function Base.show(io::IO, v::Vector3)\n",
    "    print(io, \"x:$(v.x), y:$(v.y), z:$(v.z)\")\n",
    "end\n",
    "\n",
    "function Base.show(io::IO, v::Quaternion)\n",
    "    print(io, \"x:$(v.x), y:$(v.y), z:$(v.z), w:$(v.z)\")\n",
    "end\n",
    "\n",
    "Base.Broadcast.broadcastable(q::Vector3) = Ref(q)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "simulateParallel (generic function with 2 methods)"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "function simulateParallel(numTimeSteps,dt)\n",
Amira Abdel-Rahman's avatar
Amira Abdel-Rahman committed
201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200
    "    # initialize(setup)\n",
    "    \n",
    "    for i in 1:numTimeSteps\n",
    "        #println(\"Timestep:\",i)\n",
    "        doTimeStep(dt,i)\n",
    "    end\n",
    "end\n",
    "\n",
    "function simulateParallel(metavoxel,numTimeSteps,dt)\n",
    "    # initialize(setup)\n",
    "    \n",
    "    for i in 1:numTimeSteps\n",
    "        #println(\"Timestep:\",i)\n",
    "        doTimeStep(metavoxel,dt,i)\n",
    "    end\n",
    "end"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "initialize (generic function with 1 method)"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "function initialize(setup)\n",
    "    nodes      = setup[\"nodes\"]\n",
    "    edges      = setup[\"edges\"]\n",
    "\n",
    "    i=1\n",
    "    # pre-calculate current position\n",
    "    for node in nodes\n",
    "        # element=parse(Int,node[\"id\"][2:end])\n",
    "        N_position[i]=Vector3(node[\"position\"][\"x\"]/100.0,node[\"position\"][\"y\"]/100.0,node[\"position\"][\"z\"]/100.0)\n",
    "        N_restrained[i]=node[\"restrained_degrees_of_freedom\"][1] ## todo later consider other degrees of freedom\n",
    "        N_displacement[i]=Vector3(node[\"displacement\"][\"x\"],node[\"displacement\"][\"y\"],node[\"displacement\"][\"z\"])\n",
    "        N_angle[i]=Vector3(node[\"angle\"][\"x\"],node[\"angle\"][\"y\"],node[\"angle\"][\"z\"])\n",
    "        N_force[i]=Vector3(node[\"force\"][\"x\"]/1,node[\"force\"][\"y\"]/1,node[\"force\"][\"z\"]/1)\n",
    "        N_currPosition[i]=Vector3(node[\"position\"][\"x\"]/100.0,node[\"position\"][\"y\"]/100.0,node[\"position\"][\"z\"]/100.0)\n",
    "\n",
    "        # for dynamic simulations\n",
    "        # append!(N_posTimeSteps,[[]])\n",
    "        # append!(N_angTimeSteps,[[]])\n",
    "\n",
    "        i=i+1\n",
    "    end \n",
    "\n",
    "    i=1\n",
    "    # pre-calculate the axis\n",
    "    for edge in edges\n",
    "        # element=parse(Int,edge[\"id\"][2:end])\n",
    "\n",
    "        # find the nodes that the lements connects\n",
    "        fromNode = nodes[edge[\"source\"]+1]\n",
    "        toNode = nodes[edge[\"target\"]+1]\n",
    "\n",
    "\n",
    "        node1 = [fromNode[\"position\"][\"x\"]/100.0 fromNode[\"position\"][\"y\"]/100.0 fromNode[\"position\"][\"z\"]/100.0]\n",
    "        node2 = [toNode[\"position\"][\"x\"]/100.0 toNode[\"position\"][\"y\"]/100.0 toNode[\"position\"][\"z\"]/100.0]\n",
    "\n",
    "        length=norm(node2-node1)\n",
    "        axis=normalize(collect(Iterators.flatten(node2-node1)))\n",
    "\n",
    "        E_source[i]=edge[\"source\"]+1\n",
    "        E_target[i]=edge[\"target\"]+1\n",
    "        E_area[i]=edge[\"area\"]\n",
    "        E_density[i]=edge[\"density\"]\n",
    "        E_stiffness[i]=edge[\"stiffness\"]\n",
    "        E_axis[i]=Vector3(axis[1],axis[2],axis[3])\n",
    "        E_currentRestLength[i]=length #?????????? todo change\n",
    "#         E_currentRestLength[i]=75/sqrt(2)\n",
    "\n",
    "        N_edgeID[E_source[i],N_currEdge[E_source[i]]]=i\n",
    "        N_edgeFirst[E_source[i],N_currEdge[E_source[i]]]=true\n",
    "        N_currEdge[E_source[i]]+=1\n",
    "\n",
    "        N_edgeID[E_target[i],N_currEdge[E_target[i]]]=i\n",
    "        N_edgeFirst[E_target[i],N_currEdge[E_target[i]]]=false\n",
    "        N_currEdge[E_target[i]]+=1\n",
    "\n",
    "\n",
    "        # for dynamic simulations\n",
    "        # append!(E_stressTimeSteps,[[]])\n",
    "\n",
    "        i=i+1\n",
    "    end \n",
    "end"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "doTimeStep! (generic function with 1 method)"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "function doTimeStep(dt,currentTimeStep)\n",
    "    # update forces: go through edges, get currentposition from nodes, calc pos2 and update stresses and interior forces of nodes\n",
    "    run_updateEdges!(\n",
    "        E_sourceGPU, \n",
    "        E_targetGPU,\n",
    "        E_areaGPU,\n",
    "        E_densityGPU,\n",
    "        E_stiffnessGPU,\n",
    "        E_stressGPU,\n",
    "        E_axisGPU,\n",
    "        E_currentRestLengthGPU,\n",
    "        E_pos2GPU,\n",
    "        E_angle1vGPU,\n",
    "        E_angle2vGPU,\n",
    "        E_angle1GPU,\n",
    "        E_angle2GPU,\n",
    "        E_intForce1GPU,\n",
    "        E_intMoment1GPU,\n",
    "        E_intForce2GPU,\n",
    "        E_intMoment2GPU,\n",
    "        E_dampGPU,\n",
    "        N_currPositionGPU,\n",
    "        N_orientGPU)\n",
    "    \n",
    "    # update forces: go through nodes and update interior force (according to int forces from edges), integrate and update currpos\n",
    "    run_updateNodes!(dt,currentTimeStep,\n",
    "        N_positionGPU, \n",
    "        N_restrainedGPU,\n",
    "        N_displacementGPU,\n",
    "        N_angleGPU,\n",
    "        N_currPositionGPU,\n",
    "        N_linMomGPU,\n",
    "        N_angMomGPU,\n",
    "        N_intForceGPU,\n",
    "        N_intMomentGPU,\n",
    "        N_forceGPU,\n",
    "        N_momentGPU,\n",
    "        N_orientGPU,\n",
    "        N_edgeIDGPU, \n",
    "        N_edgeFirstGPU, \n",
    "        E_intForce1GPU,\n",
    "        E_intMoment1GPU,\n",
    "        E_intForce2GPU,\n",
    "        E_intMoment2GPU)\n",
    "    \n",
    "end\n",
    "\n",
    "function doTimeStep!(metavoxel,dt,currentTimeStep)\n",
    "    # update forces: go through edges, get currentposition from nodes, calc pos2 and update stresses and interior forces of nodes\n",
    "    run_updateEdges!(\n",
    "        metavoxel[\"E_sourceGPU\"], \n",
    "        metavoxel[\"E_targetGPU\"],\n",
    "        metavoxel[\"E_areaGPU\"],\n",
    "        metavoxel[\"E_densityGPU\"],\n",
    "        metavoxel[\"E_stiffnessGPU\"],\n",
    "        metavoxel[\"E_stressGPU\"],\n",
    "        metavoxel[\"E_axisGPU\"],\n",
    "        metavoxel[\"E_currentRestLengthGPU\"],\n",
    "        metavoxel[\"E_pos2GPU\"],\n",
    "        metavoxel[\"E_angle1vGPU\"],\n",
    "        metavoxel[\"E_angle2vGPU\"],\n",
    "        metavoxel[\"E_angle1GPU\"],\n",
    "        metavoxel[\"E_angle2GPU\"],\n",
    "        metavoxel[\"E_intForce1GPU\"],\n",
    "        metavoxel[\"E_intMoment1GPU\"],\n",
    "        metavoxel[\"E_intForce2GPU\"],\n",
    "        metavoxel[\"E_intMoment2GPU\"],\n",
    "        metavoxel[\"E_dampGPU\"],\n",
    "        metavoxel[\"N_currPositionGPU\"],\n",
    "        metavoxel[\"N_orientGPU\"])\n",
    "    \n",
    "    # update forces: go through nodes and update interior force (according to int forces from edges), integrate and update currpos\n",
    "    run_updateNodes!(dt,currentTimeStep,\n",
    "        metavoxel[\"N_positionGPU\"], \n",
    "        metavoxel[\"N_restrainedGPU\"],\n",
    "        metavoxel[\"N_displacementGPU\"],\n",
    "        metavoxel[\"N_angleGPU\"],\n",
    "        metavoxel[\"N_currPositionGPU\"],\n",
    "        metavoxel[\"N_linMomGPU\"],\n",
    "        metavoxel[\"N_angMomGPU\"],\n",
    "        metavoxel[\"N_intForceGPU\"],\n",
    "        metavoxel[\"N_intMomentGPU\"],\n",
    "        metavoxel[\"N_forceGPU\"],\n",
    "        metavoxel[\"N_momentGPU\"],\n",
    "        metavoxel[\"N_orientGPU\"],\n",
    "        metavoxel[\"N_edgeIDGPU\"], \n",
    "        metavoxel[\"N_edgeFirstGPU\"], \n",
    "        metavoxel[\"E_intForce1GPU\"],\n",
    "        metavoxel[\"E_intMoment1GPU\"],\n",
    "        metavoxel[\"E_intForce2GPU\"],\n",
    "        metavoxel[\"E_intMoment2GPU\"])\n",
    "    \n",
    "end"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "run_updateEdges! (generic function with 1 method)"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "function updateEdges!(E_source,E_target,E_area,E_density,E_stiffness,E_stress,E_axis,\n",
    "        E_currentRestLength,E_pos2,E_angle1v,E_angle2v,\n",
    "        E_angle1,E_angle2,E_intForce1,E_intMoment1,E_intForce2,E_intMoment2,E_damp,\n",
    "        N_currPosition,N_orient)\n",
    "\n",
    "    index = (blockIdx().x - 1) * blockDim().x + threadIdx().x\n",
    "    stride = blockDim().x * gridDim().x\n",
    "    ## @cuprintln(\"thread $index, block $stride\")\n",
    "    N=length(E_source)\n",
    "    for i = index:stride:N\n",
    "        \n",
    "        @inbounds pVNeg=N_currPosition[E_source[i]]\n",
    "        @inbounds pVPos=N_currPosition[E_target[i]]\n",
    "        \n",
    "        @inbounds oVNeg=N_orient[E_source[i]]\n",
    "        @inbounds oVPos=N_orient[E_target[i]]\n",
    "        \n",
    "        @inbounds oldPos2=Vector3(E_pos2[i].x,E_pos2[i].y,E_pos2[i].z) #?copy?\n",
    "        @inbounds oldAngle1v = Vector3(E_angle1v[i].x,E_angle1v[i].y,E_angle1v[i].z)\n",
    "        @inbounds oldAngle2v = Vector3(E_angle2v[i].x,E_angle2v[i].y,E_angle2v[i].z)# remember the positions/angles from last timestep to calculate velocity\n",
    "        \n",
    "        \n",
    "        @inbounds E_pos2[i],E_angle1v[i],E_angle2v[i],E_angle1[i],E_angle2[i],totalRot= orientLink!(E_currentRestLength[i],pVNeg,pVPos,oVNeg,oVPos,E_axis[i])\n",
    "        \n",
    "        @inbounds dPos2   = Vector3(0.5,0.5,0.5) * (E_pos2[i]-oldPos2)  #deltas for local damping. velocity at center is half the total velocity\n",
    "        @inbounds dAngle1 = Vector3(0.5,0.5,0.5) *(E_angle1v[i]-oldAngle1v)\n",
    "        @inbounds dAngle2 = Vector3(0.5,0.5,0.5) *(E_angle2v[i]-oldAngle2v)\n",
    "        \n",
    "        \n",
    "        @inbounds strain=(E_pos2[i].x/E_currentRestLength[i])\n",
    "        \n",
    "        positiveEnd=true\n",
    "        if axialStrain( positiveEnd,strain)>100.0\n",
    "            diverged=true\n",
    "            @cuprintln(\"DIVERGED!!!!!!!!!!\")\n",
    "            return \n",
    "        end\n",
    "        \n",
    "        @inbounds E = E_stiffness[i]\n",
    "        \n",
    "        \n",
    "        \n",
    "        @inbounds l   = E_currentRestLength[i]\n",
    "        \n",
    "        \n",
    "        nu=0\n",
    "#         L = 5.0 #?? change!!!!!!\n",
    "        L=l\n",
    "        a1 = E*L # EA/L : Units of N/m\n",
    "        a2 = E * L*L*L / (12.0*(1+nu)) # GJ/L : Units of N-m\n",
    "        b1 = E*L # 12EI/L^3 : Units of N/m\n",
    "        b2 = E*L*L/2.0 # 6EI/L^2 : Units of N (or N-m/m: torque related to linear distance)\n",
    "        b3 = E*L*L*L/6.0 # 2EI/L : Units of N-m\n",
    "        \n",
    "        nu=0.35\n",
    "        W = 75\n",
    "#         L = W/sqrt(2)\n",
    "        l=L\n",
    "        n_min = 1\n",
    "        n_max = 7\n",
    "        # Cross Section inputs, must be floats\n",
    "        mass=125000 #before for voxel\n",
    "        mass=1\n",
    "        E = 2000e9  # MPa\n",
    "        G = E * 1 / 3  # MPa\n",
    "        h = 2.38/100.0  # mm\n",
    "        b = 2.38/100.0 # mm\n",
    "        rho = 7.85e-9 / 3  # kg/mm^3\n",
    "        S = h * b\n",
    "        Sy = (S * (6 + 12 * nu + 6 * nu^2)/ (7 + 12 * nu + 4 * nu^2))\n",
    "        # For solid rectangular cross section (width=b, depth=d & ( b < d )):\n",
    "        Q = 1 / 3 - 0.2244 / (min(h / b, b / h) + 0.1607)\n",
    "        Jxx = Q * min(h * b^3, b * h^3)\n",
    "        s=b\n",
    "    \n",
    "        MaxFreq2=E*s/mass\n",
    "        dt= 1/(6.283185*sqrt(MaxFreq2))\n",
    "\n",
    "\n",
    "        ##if voxels\n",
    "        #nu=0\n",
    "        #L=l\n",
    "        #a1 = E*L # EA/L : Units of N/m\n",
    "        #a2 = E * L*L*L / (12.0*(1+nu)) # GJ/L : Units of N-m\n",
    "        #b1 = E*L # 12EI/L^3 : Units of N/m\n",
    "        #b2 = E*L*L/2.0 # 6EI/L^2 : Units of N (or N-m/m: torque related to linear distance)\n",
    "        #b3 = E*L*L*L/6.0 # 2EI/L : Units of N-m\n",
    "\n",
    "        I= b*h^3/12\n",
    "        J=b*h*(b*b+h*h)/12\n",
    "        a1=E*b*h/L\n",
    "        a2=G*J/L\n",
    "        b1=12*E*I/(L^3)\n",
    "        b2=6*E*I/(L^2)\n",
    "        b3=2*E*I/(L)\n",
    "        \n",
    "        \n",
    "\n",
    "        \n",
    "        #inbounds currentTransverseArea=25.0 #?? change!!!!!! E_area[i]\n",
    "        @inbounds currentTransverseArea= b*h\n",
    "        @inbounds _stress=updateStrain(strain,E)\n",
    "        \n",
    "        #@inbounds currentTransverseArea= E_area[i]\n",
    "        #@inbounds _stress=updateStrain(strain,E_stiffness[i])\n",
    "        \n",
    "        @inbounds E_stress[i]=_stress\n",
    "        \n",
    "        #@cuprintln(\"_stress $_stress\")\n",
    "        x=(_stress*currentTransverseArea)\n",
    "        @inbounds y=(b1*E_pos2[i].y-b2*(E_angle1v[i].z + E_angle2v[i].z))\n",
    "        @inbounds z=(b1*E_pos2[i].z + b2*(E_angle1v[i].y + E_angle2v[i].y))\n",
    "        \n",
    "        x=convert(Float64,x)\n",
    "        y=convert(Float64,y)\n",
    "        z=convert(Float64,z)\n",
    "        \n",
    "        # Use Curstress instead of -a1*Pos2.x to account for non-linear deformation \n",
    "        forceNeg = Vector3(x,y,z)\n",
    "        \n",
    "        forcePos = Vector3(-x,-y,-z)\n",
    "        \n",
    "        @inbounds x= (a2*(E_angle2v[i].x-E_angle1v[i].x))\n",
    "        @inbounds y= (-b2*E_pos2[i].z-b3*(2.0*E_angle1v[i].y+E_angle2v[i].y))\n",
    "        @inbounds z=(b2*E_pos2[i].y - b3*(2.0*E_angle1v[i].z + E_angle2v[i].z))  \n",
    "        x=convert(Float64,x)\n",
    "        y=convert(Float64,y)\n",
    "        z=convert(Float64,z)\n",
    "        momentNeg = Vector3(x,y,z)\n",
    "        \n",
    "\n",
    "        @inbounds x= (a2*(E_angle1v[i].x-E_angle2v[i].x))\n",
    "        @inbounds y= (-b2*E_pos2[i].z- b3*(E_angle1v[i].y+2.0*E_angle2v[i].y))\n",
    "        @inbounds z=(b2*E_pos2[i].y - b3*(E_angle1v[i].z + 2.0*E_angle2v[i].z))\n",
    "        x=convert(Float64,x)\n",
    "        y=convert(Float64,y)\n",
    "        z=convert(Float64,z)\n",
    "        momentPos = Vector3(x,y,z)\n",
    "        \n",
    "        \n",
    "        ### damping\n",
    "        @inbounds if E_damp[i] #first pass no damping\n",
    "            sqA1=CUDAnative.sqrt(a1) \n",
    "            sqA2xIp=CUDAnative.sqrt(a2*L*L/6.0) \n",
    "            sqB1=CUDAnative.sqrt(b1) \n",
    "            sqB2xFMp=CUDAnative.sqrt(b2*L/2) \n",
    "            sqB3xIp=CUDAnative.sqrt(b3*L*L/6.0)\n",
    "            \n",
    "            dampingMultiplier=Vector3(28099.3,28099.3,28099.3) # 2*mat->_sqrtMass*mat->zetaInternal/previousDt;?? todo link to material\n",
    "            \n",
    "            zeta=1\n",
    "            dampingM= 2*sqrt(mass)*zeta/dt\n",
    "            dampingMultiplier=Vector3(dampingM,dampingM,dampingM)\n",
    "            \n",
    "            posCalc=Vector3(sqA1*dPos2.x, sqB1*dPos2.y - sqB2xFMp*(dAngle1.z+dAngle2.z),sqB1*dPos2.z + sqB2xFMp*(dAngle1.y+dAngle2.y))\n",
    "            \n",
    "            \n",
    "            forceNeg =forceNeg + (dampingMultiplier*posCalc);\n",
    "            forcePos =forcePos - (dampingMultiplier*posCalc);\n",
    "\n",
    "            momentNeg -= Vector3(0.5,0.5,0.5)*dampingMultiplier*Vector3(-sqA2xIp*(dAngle2.x - dAngle1.x),\n",
    "                                                                    sqB2xFMp*dPos2.z + sqB3xIp*(2*dAngle1.y + dAngle2.y),\n",
    "                                                                    -sqB2xFMp*dPos2.y + sqB3xIp*(2*dAngle1.z + dAngle2.z));\n",
    "            momentPos -= Vector3(0.5,0.5,0.5)*dampingMultiplier*Vector3(sqA2xIp*(dAngle2.x - dAngle1.x),\n",
    "                                                                sqB2xFMp*dPos2.z + sqB3xIp*(dAngle1.y + 2*dAngle2.y),\n",
    "                                                                -sqB2xFMp*dPos2.y + sqB3xIp*(dAngle1.z + 2*dAngle2.z));\n",
    "\n",
    "        else\n",
    "           @inbounds E_damp[i]=true \n",
    "        end\n",
    "\n",
    "        smallAngle=true\n",
    "        if !smallAngle # ?? check\n",
    "            @inbounds forceNeg = RotateVec3DInv(E_angle1[i],forceNeg)\n",
    "            @inbounds momentNeg = RotateVec3DInv(E_angle1[i],momentNeg)\n",
    "        end\n",
    "        \n",
    "        @inbounds forcePos = RotateVec3DInv(E_angle2[i],forcePos)\n",
    "        @inbounds momentPos = RotateVec3DInv(E_angle2[i],momentPos)\n",
    "\n",
    "        @inbounds forceNeg =toAxisOriginalVector3(forceNeg,E_axis[i])\n",
    "        @inbounds forcePos =toAxisOriginalVector3(forcePos,E_axis[i])\n",
    "\n",
    "        @inbounds momentNeg=toAxisOriginalQuat(momentNeg,E_axis[i])# TODOO CHECKKKKKK\n",
    "        @inbounds momentPos=toAxisOriginalQuat(momentPos,E_axis[i])\n",
    "\n",
    "\n",
    "        @inbounds E_intForce1[i] =forceNeg\n",
    "        @inbounds E_intForce2[i] =forcePos\n",
    "        \n",
    "\n",
    "\n",
    "        @inbounds x= momentNeg.x\n",
    "        @inbounds y= momentNeg.y\n",
    "        @inbounds z= momentNeg.z  \n",
    "        x=convert(Float64,x)\n",
    "        y=convert(Float64,y)\n",
    "        z=convert(Float64,z)\n",
    "        \n",
    "        @inbounds E_intMoment1[i]=Vector3(x,y,z)\n",
    "\n",
    "        @inbounds x= momentNeg.x\n",
    "        @inbounds y= momentNeg.y\n",
    "        @inbounds z= momentNeg.z\n",
    "        x=convert(Float64,x)\n",
    "        y=convert(Float64,y)\n",
    "        z=convert(Float64,z)\n",
    "        \n",
    "        @inbounds E_intMoment2[i]=Vector3(x,y,z)\n",
    "        \n",
    "        #x=E_pos2[i].x*10000000000\n",
    "        #y=E_pos2[i].y*10000000000\n",
    "        #z=E_pos2[i].z*10000000000\n",
    "        #@cuprintln(\"pos2 x $x, y $y, z $z \")\n",
    "        ##x=E_intMoment2[i].x*10000000000\n",
    "        #y=E_intMoment2[i].y*10000000000\n",
    "        #z=E_intMoment2[i].z*10000000000\n",
    "        #@cuprintln(\"E_intMoment2 x $x, y $y, z $z \")\n",
    "\n",
    "        \n",
    "        \n",
    "    end\n",
    "    return\n",
    "end\n",
    "\n",
    "function run_updateEdges!(E_source,E_target,E_area,E_density,E_stiffness,\n",
    "        E_stress,E_axis,E_currentRestLength,E_pos2,E_angle1v,E_angle2v,\n",
    "        E_angle1,E_angle2,E_intForce1,E_intMoment1,E_intForce2,E_intMoment2,\n",
    "        E_damp,N_currPosition,N_orient)\n",
    "    N=length(E_source)\n",
    "    numblocks = ceil(Int, N/256)\n",
    "    CuArrays.@sync begin\n",
    "        @cuda threads=256 blocks=numblocks updateEdges!(E_source,E_target,E_area,E_density,\n",
    "            E_stiffness,E_stress,E_axis,E_currentRestLength,E_pos2,E_angle1v,\n",
    "            E_angle2v,E_angle1,E_angle2,E_intForce1,E_intMoment1,E_intForce2,\n",
    "            E_intMoment2,E_damp,N_currPosition,N_orient)\n",
    "    end\n",
    "end"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "run_updateNodes! (generic function with 1 method)"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "function updateNodes!(dt,currentTimeStep,N_position, N_restrained,N_displacement,N_angle,N_currPosition,N_linMom,N_angMom,N_intForce,N_intMoment,N_force,N_moment,N_orient,N_edgeID,N_edgeFirst,E_intForce1,E_intMoment1,E_intForce2,E_intMoment2)\n",
    "\n",
    "    index = (blockIdx().x - 1) * blockDim().x + threadIdx().x\n",
    "    stride = blockDim().x * gridDim().x\n",
    "    ## @cuprintln(\"thread $index, block $stride\")\n",
    "    N,M=size(N_edgeID)\n",
    "    for i = index:stride:N\n",
    "        @inbounds if N_restrained[i]\n",
    "            return\n",
    "        else\n",
    "            for j in 1:M\n",
    "                temp=N_edgeID[i,j]\n",
    "                @inbounds if (N_edgeID[i,j]!=-1)\n",
    "                    #@cuprintln(\"i $i, j $j, N_edgeID[i,j] $temp\")\n",
    "                    @inbounds N_intForce[i]=ifelse(N_edgeFirst[i,j], N_intForce[i]+E_intForce1[N_edgeID[i,j]], N_intForce[i]+E_intForce2[N_edgeID[i,j]] )\n",
    "                    @inbounds N_intMoment[i]=ifelse(N_edgeFirst[i,j], N_intMoment[i]+E_intMoment1[N_edgeID[i,j]], N_intMoment[i]+E_intMoment2[N_edgeID[i,j]] )\n",
    "                end\n",
    "            end\n",
    "            @inbounds curForce = force(N_intForce[i],N_orient[i],N_force[i],true,currentTimeStep)\n",
    "            \n",
    "            #@inbounds N_force[i]=Vector3(0,0,0) ##????\n",
    "            \n",
    "            @inbounds N_intForce[i]=Vector3(0,0,0)\n",
    "        \n",
    "            #x=curForce.x\n",
    "            #y=curForce.y\n",
    "            #z=curForce.z\n",
    "            #@cuprintln(\"curForce x $x, y $y, z $z \")\n",
    "            \n",
    "            #x=N_linMom[i].x*10000000000\n",
    "            #y=N_linMom[i].y*10000000000\n",
    "            #z=N_linMom[i].z*10000000000\n",
    "            #@cuprintln(\"N_linMom[i] x $x, y $y, z $z \")\n",
    "            \n",
    "            \n",
    "            @inbounds N_linMom[i]=N_linMom[i]+curForce*Vector3(dt,dt,dt) #todo make sure right\n",
    "            massInverse=8e-6 # todo ?? later change //8e-6\n",
    "            mass=1\n",
    "            massInverse=1.0/mass #\n",
    "            @inbounds translate=N_linMom[i]*Vector3((dt*massInverse),(dt*massInverse),(dt*massInverse)) # ??massInverse\n",
    "            \n",
    "            #x=translate.x*10000000000\n",
    "            #y=translate.y*10000000000\n",
    "            #z=translate.z*10000000000\n",
    "            #@cuprintln(\"translate x $x, y $y, z $z \")\n",
    "            \n",
    "            @inbounds N_currPosition[i]=N_currPosition[i]+translate\n",
    "            @inbounds N_displacement[i]=N_displacement[i]+translate\n",
    "            \n",
    "            \n",
    "            \n",
    "            # Rotation\n",
    "            @inbounds curMoment = moment(N_intMoment[i],N_orient[i],N_moment[i]) \n",
    "            \n",
    "            \n",
    "            \n",
    "            @inbounds N_intMoment[i]=Vector3(0,0,0) # do i really need it?\n",
    "            \n",
    "            @inbounds N_angMom[i]=N_angMom[i]+curMoment*Vector3(dt,dt,dt)\n",
    "            \n",
    "            \n",
    "            \n",
    "            \n",
    "            momentInertiaInverse=1.92e-6 # todo ?? later change 1/Inertia (1/(kg*m^2))\n",
    "            \n",
    "            \n",
    "            @inbounds temp=FromRotationVector(N_angMom[i]*Vector3((dt*momentInertiaInverse),(dt*momentInertiaInverse),(dt*momentInertiaInverse)))\n",
    "            \n",
    "            \n",
    "            #x=temp.x*10000000000\n",
    "            #y=temp.y*10000000000\n",
    "            #z=temp.z*10000000000\n",
    "            #@cuprintln(\"temp x $x, y $y, z $z \")\n",
    "            \n",
    "            @inbounds N_orient[i]=multiplyQuaternions(temp,N_orient[i])\n",
    "            \n",
    "            #@inbounds x= N_orient[i].x*temp.x\n",
    "            #@inbounds y= N_orient[i].y*temp.y\n",
    "            #@inbounds z= N_orient[i].z*temp.z\n",
    "            #@inbounds w= N_orient[i].w*temp.w\n",
    "            #x=convert(Float64,x)\n",
    "            #y=convert(Float64,y)\n",
    "            #z=convert(Float64,z)\n",
    "            #w=convert(Float64,w)\n",
    "            \n",
    "            #@inbounds N_orient[i]=Quaternion(x,y,z,w)\n",
    "            \n",
    "            #x=N_orient[i].x*10000000000\n",
    "            #y=N_orient[i].y*10000000000\n",
    "            #z=N_orient[i].z*10000000000\n",
    "            #w=N_orient[i].w\n",
    "            #@cuprintln(\"N_orient x $x, y $y, z $z, w $w \")\n",
    "            \n",
    "            \n",
    "        end\n",
    "    end\n",
    "    return\n",
    "end\n",
    "\n",
    "\n",
    "function run_updateNodes!(dt,currentTimeStep,N_position, N_restrained,N_displacement, N_angle,N_currPosition,N_linMom,N_angMom,N_intForce,N_intMoment,N_force,N_moment,N_orient,N_edgeID,N_edgeFirst,E_intForce1,E_intMoment1,E_intForce2,E_intMoment2)\n",
    "    N=length(N_intForce)\n",
    "    numblocks = ceil(Int, N/256)\n",
    "    CuArrays.@sync begin\n",
    "        @cuda threads=256 blocks=numblocks updateNodes!(dt,currentTimeStep,N_position, N_restrained,N_displacement, N_angle,N_currPosition,N_linMom,N_angMom,N_intForce,N_intMoment,N_force,N_moment,N_orient,N_edgeID,N_edgeFirst,E_intForce1,E_intMoment1,E_intForce2,E_intMoment2)\n",
    "    end\n",
    "end"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "orientLink! (generic function with 1 method)"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "function orientLink!(currentRestLength,pVNeg,pVPos,oVNeg,oVPos,axis)  # updates pos2, angle1, angle2, and smallAngle //Quat3D<double> /*double restLength*/\n",
    "        \n",
    "    pos2 = toAxisXVector3(pVPos-pVNeg,axis) # digit truncation happens here...\n",
    "    angle1 = toAxisXQuat(oVNeg,axis)\n",
    "    angle2 = toAxisXQuat(oVPos,axis)\n",
    "    \n",
    "    #x=pos2.x*10000000000\n",
    "    #y=pos2.y*10000000000\n",
    "    #z=pos2.z*10000000000\n",
    "    #@cuprintln(\"pos2 x $x, y $y, z $z \")\n",
    "    \n",
    "    #x=angle1.x*10000000000\n",
    "    #y=angle1.y*10000000000\n",
    "    #z=angle1.z*10000000000\n",
    "    #@cuprintln(\"angle1 x $x, y $y, z $z \")\n",
    "    #x=oVNeg.x*10000000000\n",
    "    #y=oVNeg.y*10000000000\n",
    "    #z=oVNeg.z*10000000000\n",
    "    #@cuprintln(\"oVNeg x $x, y $y, z $z \")\n",
    "    \n",
    "    \n",
    "    \n",
    "    totalRot = conjugate(angle1) #keep track of the total rotation of this bond (after toAxisX()) # Quat3D<double>\n",
    "    pos2 = RotateVec3D(totalRot,pos2)\n",
    "    \n",
    "    #x=pos2.x*10000000000\n",
    "    #y=pos2.y*10000000000\n",
    "    #z=pos2.z*10000000000\n",
    "    #@cuprintln(\"pos2 2 x $x, y $y, z $z \")\n",
    "    \n",
    "    \n",
    "    #x=totalRot.x*10000000000\n",
    "    #y=totalRot.y*10000000000\n",
    "    #z=totalRot.z*10000000000\n",
    "    #@cuprintln(\"totalRot x $x, y $y, z $z \")\n",
    "    \n",
    "    \n",
    "#     x=pos2.x*10000000000\n",
    "#     y=pos2.y*10000000000\n",
    "#     z=pos2.z*10000000000\n",
    "#     @cuprintln(\"pos2 x $x, y $y, z $z \")\n",
    "    \n",
    "    angle2 = Quaternion(angle2.x*totalRot.x,angle2.y*totalRot.y,angle2.z*totalRot.z,angle2.w*totalRot.w)\n",
    "    angle1 = Quaternion(0.0,0.0,0.0,1.0)#new THREE.Quaternion() #zero for now...\n",
    "\n",
    "    smallAngle=true #todo later remove\n",
    "    \n",
    "    \n",
    "    if (smallAngle)\t #Align so Angle1 is all zeros\n",
    "        #pos2[1] =pos2[1]- currentRestLength #only valid for small angles\n",
    "        pos2=Vector3(pos2.x-currentRestLength,pos2.y,pos2.z)\n",
    "    else  #Large angle. Align so that Pos2.y, Pos2.z are zero.\n",
    "        # FromAngleToPosX(angle1,pos2) #get the angle to align Pos2 with the X axis\n",
    "        # totalRot = angle1.clone().multiply(totalRot)  #update our total rotation to reflect this\n",
    "        # angle2 = angle1.clone().multiply(  angle2) #rotate angle2\n",
    "        # pos2 = new THREE.Vector3(pos2.length() - currentRestLength, 0, 0);\n",
    "    end\n",
    "    \n",
    "    angle1v = ToRotationVector(angle1)\n",
    "    angle2v = ToRotationVector(angle2)\n",
    "    \n",
    "    \n",
    "    \n",
    "    \n",
    "#     pos2,angle1v,angle2v,angle1,angle2,\n",
    "    return pos2,angle1v,angle2v,angle1,angle2,totalRot\n",
    "end"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "toAxisOriginalQuat (generic function with 1 method)"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "function toAxisXVector3(pV::Vector3,axis::Vector3) #TODO CHANGE\n",
    "\n",
    "    xaxis=Vector3(1.0,0.0,0.0)\n",
    "\n",
    "    vector=normalizeVector3(axis)\n",
    "    q=setFromUnitVectors(vector,xaxis)\n",
    "    \n",
    "    \n",
    " \n",
    "#     rot=setFromRotationMatrix(quatToMatrix( q  ))\n",
    "    \n",
    "    \n",
    "#     v= applyQuaternion1( pV ,setQuaternionFromEuler(rot) )\n",
    "    v=applyQuaternion1( pV ,q )\n",
    "    \n",
    "    #d=15\n",
    "    #vx=round(v.x, digits=d)\n",
    "    #vy=round(v.y, digits=d)\n",
    "    #vz=round(v.z, digits=d)\n",
    "    \n",
    "    \n",
    "    return Vector3(v.x,v.y,v.z)\n",
    "end\n",
    "\n",
    "function toAxisOriginalVector3(pV::Vector3,axis::Vector3)\n",
    "    \n",
    "    xaxis=Vector3(1.0,0.0,0.0)\n",
    "\n",
    "    vector=normalizeVector3(axis)\n",
    "\n",
    "    q=setFromUnitVectors(xaxis,vector)\n",
    "    \n",
    "\n",
    "#     rot=setFromRotationMatrix(quatToMatrix( q  ))\n",
    "\n",
    "#     v= applyQuaternion1( pV ,setQuaternionFromEuler(rot) )\n",
    "    v=applyQuaternion1( pV ,q )\n",
    "    \n",
    "    #d=15\n",
    "    #vx=round(v.x, digits=d)\n",
    "    #vy=round(v.y, digits=d)\n",
    "    #vz=round(v.z, digits=d)\n",
    "    \n",
    "    \n",
    "    return Vector3(v.x,v.y,v.z)\n",
    "end\n",
    "\n",
    "function  toAxisXQuat(pQ::Quaternion,axis::Vector3)\n",
    "    \n",
    "    xaxis=Vector3(1.0,0.0,0.0)\n",
    "\n",
    "    vector=normalizeVector3(axis)\n",
    "\n",
    "\n",
    "    q=setFromUnitVectors(vector,xaxis)\n",
    "        \n",
    "    #d=17\n",
    "    #qw=round(q[1], digits=d)\n",
    "    #qx=round(q[2], digits=d)\n",
    "    #qy=round(q[3], digits=d)\n",
    "    #qz=round(q[4], digits=d)\n",
    "    #\n",
    "\n",
    "#     rot=setFromRotationMatrix(quatToMatrix( q  ))\n",
    "    \n",
    "    pV=Vector3(pQ.x,pQ.y,pQ.z)\n",
    "    \n",
    "#     v=applyQuaternion1( pV ,setQuaternionFromEuler(rot) )\n",
    "    v=applyQuaternion1( pV ,q )\n",
    "    \n",
    "    #d=15\n",
    "    #vx=round(v.x, digits=d)\n",
    "    #vy=round(v.y, digits=d)\n",
    "    #vz=round(v.z, digits=d)\n",
    "    \n",
    "    return Quaternion(v.x,v.y,v.z,1.0)\n",
    "    \n",
    "    # return [1.0 v[1] v[2] v[3]]\n",
    "end\n",
    "\n",
    "function toAxisOriginalQuat(pQ::Vector3,axis::Vector3)\n",
    "    xaxis=Vector3(1.0,0.0,0.0)\n",
    "\n",
    "    vector=normalizeVector3(axis)\n",
    "    \n",
    "    q=setFromUnitVectors(xaxis,vector)\n",
    "    \n",
    "\n",
    "#     rot=setFromRotationMatrix(quatToMatrix( q  ))\n",
    "    \n",
    "    pV=Vector3(pQ.x,pQ.y,pQ.z)\n",
    "#     v=applyQuaternion1( pV ,setQuaternionFromEuler(rot) )\n",
    "    v=applyQuaternion1( pV ,q )\n",
    "    \n",
    "    #d=15\n",
    "    #vx=round(v.x, digits=d)\n",
    "    #vy=round(v.y, digits=d)\n",
    "    #vz=round(v.z, digits=d)\n",
    "    \n",
    "    return Quaternion(v.x,v.y,v.z,1.0)\n",
    "    \n",
    "end"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "applyQuaternion1 (generic function with 1 method)"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "function setFromUnitVectors(vFrom::Vector3, vTo::Vector3)\n",
    "    # assumes direction vectors vFrom and vTo are normalized\n",
    "    EPS = 0.000000001;\n",
    "    r= dotVector3(vFrom,vTo)+1.0\n",
    "    # r =  dot(vFrom,vTo)+1\n",
    "\n",
    "    if r < EPS\n",
    "        r = 0;\n",
    "        if abs( vFrom.x ) > abs( vFrom.z ) \n",
    "            qx = - vFrom.y\n",
    "            qy = vFrom.x\n",
    "            qz = 0.0\n",
    "            qw = r\n",
    "        else \n",
    "            qx = 0.0\n",
    "            qy = -(vFrom.z)\n",
    "            qz = vFrom.y\n",
    "            qw = r\n",
    "        end\n",
    "   else \n",
    "        # crossVectors( vFrom, vTo ); // inlined to avoid cyclic dependency on Vector3\n",
    "        qx = vFrom.y * vTo.z - vFrom.z * vTo.y\n",
    "        qy = vFrom.z * vTo.x - vFrom.x * vTo.z\n",
    "        qz = vFrom.x * vTo.y - vFrom.y * vTo.x\n",
    "        qw = r\n",
    "\n",
    "    end\n",
    "    qx= (qx==-0.0) ? 0.0 : qx\n",
    "    qy= (qy==-0.0) ? 0.0 : qy\n",
    "    qz= (qz==-0.0) ? 0.0 : qz\n",
    "    qw= (qw==-0.0) ? 0.0 : qw\n",
    "        \n",
    "    \n",
    "    mx=qx*qx\n",
    "    my=qy*qy\n",
    "    mz=qz*qz\n",
    "    mw=qw*qw\n",
    "    mm=mx+my\n",
    "    mm=mm+mz\n",
    "    mm=mm+mw\n",
    "    mm=convert(Float64,mm)#??????????????????? todo check later\n",
    "    \n",
    "    l=CUDAnative.sqrt(mm)\n",
    "    \n",
    "    #l = sqrt((qx * qx) + (qy * qy) + (qz * qz)+ (qw * qw))\n",
    "    if l === 0 \n",
    "        qx = 0.0\n",
    "        qy = 0.0\n",
    "        qz = 0.0\n",
    "        qw = 1.0\n",
    "    else \n",
    "        l = 1.0 / l\n",
    "        qx = qx * l\n",
    "        qy = qy * l\n",
    "        qz = qz * l\n",
    "        qw = qw * l\n",
    "    end\n",
    "    \n",
    "    \n",
    "\n",
    "    # return qx,qy,qz,qw\n",
    "    return Quaternion(qx,qy,qz,qw)\n",
    "    \n",
    "    # return normalizeQ(Quat(qw,qx,qy,qz))\n",
    "    # return Quat(nn[1], nn[2], nn[3], nn[4])\n",
    "\n",
    "end\n",
    "\n",
    "function quatToMatrix( quaternion::Quaternion)\n",
    "\n",
    "    #te = RotationMatrix()\n",
    "    \n",
    "    x = quaternion.x\n",
    "    y = quaternion.y\n",
    "    z = quaternion.z\n",
    "    w = quaternion.w\n",
    "    \n",
    "    x2 = x + x\n",
    "    y2 = y + y\n",
    "    z2 = z + z\n",
    "    xx = x * x2\n",
    "    xy = x * y2\n",
    "    xz = x * z2\n",
    "    yy = y * y2\n",
    "    yz = y * z2\n",
    "    zz = z * z2\n",
    "    wx = w * x2\n",
    "    wy = w * y2\n",
    "    wz = w * z2\n",
    "\n",
    "    sx = 1.0\n",
    "    sy = 1.0\n",
    "    sz = 1.0\n",
    "\n",
    "    te1 = ( 1.0 - ( yy + zz ) ) * sx\n",
    "    te2 = ( xy + wz ) * sx\n",
    "    te3 = ( xz - wy ) * sx\n",
    "    te4 = 0.0\n",
    "\n",
    "    te5 = ( xy - wz ) * sy\n",
    "    te6 = ( 1.0 - ( xx + zz ) ) * sy\n",
    "    te7 = ( yz + wx ) * sy\n",
    "    te8 = 0.0\n",
    "\n",
    "    te9 = ( xz + wy ) * sz\n",
    "    te10 = ( yz - wx ) * sz\n",
    "    te11 = ( 1.0 - ( xx + yy ) ) * sz\n",
    "    te12 = 0.0\n",
    "\n",
    "    te13 = 0.0 #position.x;\n",
    "    te14 = 0.0 #position.y;\n",
    "    te15 = 0.0 #position.z;\n",
    "    te16 = 1.0\n",
    "    \n",
    "        \n",
    "    te= RotationMatrix(te1,te2,te3,te4,te5,te6,te7,te8,te9,te10,te11,te12,te13,te14,te15,te16)\n",
    "\n",
    "    return te\n",
    "\n",
    "end\n",
    "\n",
    "function  setFromRotationMatrix(m::RotationMatrix)\n",
    "    #te = m\n",
    "    #m11 = (te[ 1 ]== -0.0) ? 0.0 : te[ 1 ]\n",
    "    #m12 = (te[ 5 ]== -0.0) ? 0.0 : te[ 5 ]\n",
    "    #m13 = (te[ 9 ]== -0.0) ? 0.0 : te[ 9 ]\n",
    "    #m21 = (te[ 2 ]== -0.0) ? 0.0 : te[ 2 ]\n",
    "    #m22 = (te[ 6 ]== -0.0) ? 0.0 : te[ 6 ]\n",
    "    #m23 = (te[ 10]== -0.0) ? 0.0 : te[ 10]\n",
    "    #m31 = (te[ 3 ]== -0.0) ? 0.0 : te[ 3 ]\n",
    "    #m32 = (te[ 7 ]== -0.0) ? 0.0 : te[ 7 ]\n",
    "    #m33 = (te[ 11]== -0.0) ? 0.0 : te[ 11]\n",
    "\n",
    "    m11 = convert(Float64,m.te1 )\n",
    "    m12 = convert(Float64,m.te5 )\n",
    "    m13 = convert(Float64,m.te9 )\n",
    "    m21 = convert(Float64,m.te2 )\n",
    "    m22 = convert(Float64,m.te6 )\n",
    "    m23 = convert(Float64,m.te10)\n",
    "    m31 = convert(Float64,m.te3 )\n",
    "    m32 = convert(Float64,m.te7 )\n",
    "    m33 = convert(Float64,m.te11)\n",
    "    \n",
    "\n",
    "    y = CUDAnative.asin( clamp( m13, -1.0, 1.0 ) ) ##check if has to be changed to cuda\n",
    "\n",
    "    if ( abs( m13 ) < 0.9999999999 ) \n",
    "        \n",
    "        x = CUDAnative.atan2( - m23, m33 )\n",
    "        z = CUDAnative.atan2( - m12, m11 )#-m12, m11\n",
    "        # if(m23==0.0)\n",
    "        #     x = atan( m23, m33 )\n",
    "        # end\n",
    "        # if(m12==0.0)\n",
    "        #     z = atan( m12, m11 )\n",
    "        # end\n",
    "\n",
    "    else\n",
    "\n",
    "        x = CUDAnative.atan2( m32, m22 )\n",
    "        z = 0.0;\n",
    "\n",
    "    end\n",
    "    \n",
    "    \n",
    "    return Vector3(x,y,z)\n",
    "    \n",
    "end\n",
    "\n",
    "function setQuaternionFromEuler(euler::Vector3)\n",
    "    x=euler.x\n",
    "    y=euler.y\n",
    "    z=euler.z\n",
    "    \n",
    "    \n",
    "    c1 = CUDAnative.cos( x / 2.0 )\n",
    "    c2 = CUDAnative.cos( y / 2.0 )\n",
    "    c3 = CUDAnative.cos( z / 2.0 )\n",
    "\n",
    "    s1 = CUDAnative.sin( x / 2.0 )\n",
    "    s2 = CUDAnative.sin( y / 2.0 )\n",
    "    s3 = CUDAnative.sin( z / 2.0 )\n",
    "    \n",
    "   \n",
    "    x = s1 * c2 * c3 + c1 * s2 * s3\n",
    "    y = c1 * s2 * c3 - s1 * c2 * s3\n",
    "    z = c1 * c2 * s3 + s1 * s2 * c3\n",
    "    w = c1 * c2 * c3 - s1 * s2 * s3\n",
    "        \n",
    "    return Quaternion(x,y,z,w)\n",
    "end\n",
    "\n",
    "function applyQuaternion1(e::Vector3,q2::Quaternion)\n",
    "    x = e.x\n",
    "    y = e.y\n",
    "    z = e.z\n",
    "\n",
    "    qx = q2.x\n",
    "    qy = q2.y\n",
    "    qz = q2.z\n",
    "    qw = q2.w\n",
    "\n",
    "    # calculate quat * vector\n",
    "\n",
    "    ix = qw * x + qy * z - qz * y\n",
    "    iy = qw * y + qz * x - qx * z\n",
    "    iz = qw * z + qx * y - qy * x\n",
    "    iw = - qx * x - qy * y - qz * z\n",
    "\n",
    "    # calculate result * inverse quat\n",
    "\n",
    "    xx = ix * qw + iw * - qx + iy * - qz - iz * - qy\n",
    "    yy = iy * qw + iw * - qy + iz * - qx - ix * - qz\n",
    "    zz = iz * qw + iw * - qz + ix * - qy - iy * - qx\n",
    "    \n",
    "    d=15\n",
    "\n",
    "    return Vector3(xx,yy,zz)\n",
    "end\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "multiplyQuaternions (generic function with 1 method)"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "function conjugate(q::Quaternion)\n",
    "    x= (-q.x==-0) ? 0.0 : -q.x\n",
    "    y= (-q.y==-0) ? 0.0 : -q.y\n",
    "    z= (-q.z==-0) ? 0.0 : -q.z\n",
    "    w=q.w\n",
    "    x=convert(Float64,x)\n",
    "    y=convert(Float64,y)\n",
    "    z=convert(Float64,z)\n",
    "    w=convert(Float64,w)\n",
    "    return Quaternion(x,y,z,w)\n",
    "end\n",
    "\n",
    "function RotateVec3D(a::Quaternion, f::Vector3)   \n",
    "    fx= (f.x==-0) ? 0 : f.x\n",
    "    fy= (f.y==-0) ? 0 : f.y\n",
    "    fz= (f.z==-0) ? 0 : f.z\n",
    "    # fx= f.x\n",
    "    # fy= f.y\n",
    "    # fz= f.z\n",
    "    tw = fx*a.x + fy*a.y + fz*a.z\n",
    "    tx = fx*a.w - fy*a.z + fz*a.y\n",
    "    ty = fx*a.z + fy*a.w - fz*a.x\n",
    "    tz = -fx*a.y + fy*a.x + fz*a.w\n",
    "\n",
    "    return Vector3((a.w*tx+a.x*tw+a.y*tz-a.z*ty),(a.w*ty-a.x*tz+a.y*tw+a.z*tx),(a.w*tz+a.x*ty-a.y*tx+a.z*tw))\n",
    "end\n",
    "#!< Returns a vector representing the specified vector \"f\" rotated by this quaternion. @param[in] f The vector to transform.\n",
    "\n",
    "function RotateVec3DInv(a::Quaternion, f::Vector3)  \n",
    "    fx=f.x\n",
    "    fy=f.y\n",
    "    fz=f.z\n",
    "    tw = a.x*fx + a.y*fy + a.z*fz\n",
    "    tx = a.w*fx - a.y*fz + a.z*fy\n",
    "    ty = a.w*fy + a.x*fz - a.z*fx\n",
    "    tz = a.w*fz - a.x*fy + a.y*fx\n",
    "    return Vector3((tw*a.x + tx*a.w + ty*a.z - tz*a.y),(tw*a.y - tx*a.z + ty*a.w + tz*a.x),(tw*a.z + tx*a.y - ty*a.x + tz*a.w))\n",
    "end\n",
    "#!< Returns a vector representing the specified vector \"f\" rotated by the inverse of this quaternion. This is the opposite of RotateVec3D. @param[in] f The vector to transform.\n",
    "\n",
    "function ToRotationVector(a::Quaternion)  \n",
    "    if (a.w >= 1.0 || a.w <= -1.0) \n",
    "        return Vector3(0.0,0.0,0.0)\n",
    "    end\n",
    "    squareLength = 1.0-a.w*a.w; # because x*x + y*y + z*z + w*w = 1.0, but more susceptible to w noise (when \n",
    "    SLTHRESH_ACOS2SQRT= 2.4e-3; # SquareLength threshhold for when we can use square root optimization for acos. From SquareLength = 1-w*w. (calculate according to 1.0-W_THRESH_ACOS2SQRT*W_THRESH_ACOS2SQRT\n",
    "\n",
    "    if (squareLength < SLTHRESH_ACOS2SQRT) # ???????\n",
    "        x=a.x*(2.0*CUDAnative.sqrt((2-2*a.w)/squareLength))\n",
    "        y=a.y*(2.0*CUDAnative.sqrt((2-2*a.w)/squareLength))\n",
    "        z=a.z*(2.0*CUDAnative.sqrt((2-2*a.w)/squareLength))\n",
    "        x=convert(Float64,x)\n",
    "        y=convert(Float64,y)\n",
    "        z=convert(Float64,z)\n",
    " \n",
    "        return Vector3(x,y,z) ; # acos(w) = sqrt(2*(1-x)) for w close to 1. for w=0.001, error is 1.317e-6\n",
    "    else \n",
    "        x=a.x*(2.0*CUDAnative.acos(a.w)/CUDAnative.sqrt(squareLength))\n",
    "        y=a.y*(2.0*CUDAnative.acos(a.w)/CUDAnative.sqrt(squareLength))\n",
    "        z=a.z*(2.0*CUDAnative.acos(a.w)/CUDAnative.sqrt(squareLength))\n",
    "        x=convert(Float64,x)\n",
    "        y=convert(Float64,y)\n",
    "        z=convert(Float64,z)\n",
    "\n",
    "        return Vector3(x,y,z)\n",
    "    end                                    \n",
    "end \n",
    "# !< Returns a rotation vector representing this quaternion rotation. Adapted from http://www.euclideanspace.com/maths/geometry/rotations/conversions/quaternionToAngle/\n",
    "\n",
    "function FromRotationVector(VecIn::Vector3)\n",
    "    theta=VecIn*Vector3(0.5,0.5,0.5)\n",
    "    ntheta=CUDAnative.sqrt((theta.x * theta.x) + (theta.y * theta.y) + (theta.z * theta.z))\n",
    "    thetaMag2=ntheta*ntheta\n",
    "    \n",
    "    DBL_EPSILONx24 =5.328e-15\n",
    "    if thetaMag2*thetaMag2 < DBL_EPSILONx24\n",
    "        qw=1.0 - 0.5*thetaMag2\n",
    "\t\ts=1.0 - thetaMag2 / 6.0\n",
    "    else\n",
    "        thetaMag = CUDAnative.sqrt(thetaMag2)\n",
    "\t\tqw=CUDAnative.cos(thetaMag)\n",
    "\t\ts=CUDAnative.sin(thetaMag) / thetaMag\n",
    "    end\n",
    "    qx=theta.x*s\n",
    "    qy=theta.y*s\n",
    "    qz=theta.z*s\n",
    "    \n",
    "    qx=convert(Float64,qx)\n",
    "    qy=convert(Float64,qy)\n",
    "    qz=convert(Float64,qz)\n",
    "    qw=convert(Float64,qw)\n",
    "    \n",
    "    return Quaternion(qx,qy,qz,qw)\n",
    "end\n",
    "\n",
    "function multiplyQuaternions(q::Quaternion,f::Quaternion)\n",
    "    x=q.x\n",
    "    y=q.y\n",
    "    z=q.z\n",
    "    w=q.w\n",
    "    x1=w*f.x + x*f.w + y*f.z - z*f.y \n",
    "    y1=w*f.y - x*f.z + y*f.w + z*f.x\n",
    "    z1=w*f.z + x*f.y - y*f.x + z*f.w\n",
    "    w1=w*f.w - x*f.x - y*f.y - z*f.z\n",
    "#     x1=convert(Float64,x1)\n",
    "#     y1=convert(Float64,y1)\n",
    "#     z1=convert(Float64,z1)\n",
    "#     w1=convert(Float64,w1)\n",
    "\treturn Quaternion(x1,y1,z1,w1 ); #!< overload quaternion multiplication.\n",
    "end\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "axialStrain (generic function with 1 method)"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "function updateStrain( axialStrain,E) # ?from where strain\n",
    "    strain = axialStrain # redundant?\n",
    "    currentTransverseStrainSum=0.0 # ??? todo\n",
    "    linear=true\n",
    "    maxStrain=1000000000000000;# ?? todo later change\n",
    "    if linear\n",
    "        if axialStrain > maxStrain\n",
    "            maxStrain = axialStrain # remember this maximum for easy reference\n",
    "        end\n",
    "        return stress(axialStrain,E)\n",
    "    else \n",
    "        if (axialStrain > maxStrain) # if new territory on the stress/strain curve\n",
    "            maxStrain = axialStrain # remember this maximum for easy reference\n",
    "            returnStress = stress(axialStrain,E) # ??currentTransverseStrainSum\n",
    "            if (nu != 0.0) \n",
    "                strainOffset = maxStrain-stress(axialStrain,E)/(_eHat*(1.0-nu)) # precalculate strain offset for when we back off\n",
    "            else \n",
    "                strainOffset = maxStrain-returnStress/E # precalculate strain offset for when we back off\n",
    "            end\n",
    "        else  # backed off a non-linear material, therefore in linear region.\n",
    "            relativeStrain = axialStrain-strainOffset #  treat the material as linear with a strain offset according to the maximum plastic deformation\n",
    "            if (nu != 0.0) \n",
    "                returnStress = stress(relativeStrain,E)\n",
    "            else \n",
    "                returnStress = E*relativeStrain\n",
    "            end\n",
    "        end\n",
    "        return returnStress\n",
    "    end\n",
    "end\n",
    "\n",
    "function stress( strain , E ) #end,transverseStrainSum, forceLinear){\n",
    "    #  reference: http://www.colorado.edu/engineering/CAS/courses.d/Structures.d/IAST.Lect05.d/IAST.Lect05.pdf page 10\n",
    "    #  if (isFailed(strain)) return 0.0f; //if a failure point is set and exceeded, we've broken!\n",
    "    #   var E =setup.edges[0].stiffness; //todo change later to material ??\n",
    "    #   var E=1000000;//todo change later to material ??\n",
    "    #   var scaleFactor=1;\n",
    "    return E*strain;\n",
    "\n",
    "    #  #   if (strain <= strainData[1] || linear || forceLinear){ //for compression/first segment and linear materials (forced or otherwise), simple calculation\n",
    "\n",
    "        #   if (nu==0.0) return E*strain;\n",
    "        #   else return _eHat*((1-nu)*strain + nu*transverseStrainSum); \n",
    "        #  else return eHat()*((1-nu)*strain + nu*transverseStrainSum); \n",
    "    #  #  }\n",
    "\n",
    "      #//the non-linear feature with non-zero poissons ratio is currently experimental\n",
    "      #int DataCount = modelDataPoints();\n",
    "      #for (int i=2; i<DataCount; i++){ //go through each segment in the material model (skipping the first segment because it has already been handled.\n",
    "      #  if (strain <= strainData[i] || i==DataCount-1){ //if in the segment ending with this point (or if this is the last point extrapolate out) \n",
    "      #      float Perc = (strain-strainData[i-1])/(strainData[i]-strainData[i-1]);\n",
    "      #      float basicStress = stressData[i-1] + Perc*(stressData[i]-stressData[i-1]);\n",
    "      #      if (nu==0.0f) return basicStress;\n",
    "      #      else { //accounting for volumetric effects\n",
    "      #          float modulus = (stressData[i]-stressData[i-1])/(strainData[i]-strainData[i-1]);\n",
    "      #          float modulusHat = modulus/((1-2*nu)*(1+nu));\n",
    "      #          float effectiveStrain = basicStress/modulus; //this is the strain at which a simple linear stress strain line would hit this point at the definied modulus\n",
    "      #          float effectiveTransverseStrainSum = transverseStrainSum*(effectiveStrain/strain);\n",
    "      #          return modulusHat*((1-nu)*effectiveStrain + nu*effectiveTransverseStrainSum);\n",
    "      #      }\n",
    "      #  }\n",
    "      #}\n",
    "\n",
    "    #  assert(false); //should never reach this point\n",
    "    #  return 0.0f;\n",
    "end \n",
    "\n",
    "function axialStrain( positiveEnd,strain)\n",
    "\t#strainRatio = pVPos->material()->E/pVNeg->material()->E;\n",
    "\tstrainRatio=1.0;\n",
    "\treturn positiveEnd ? 2.0 *strain*strainRatio/(1.0+strainRatio) : 2.0*strain/(1.0+strainRatio)\n",
    "end"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "moment (generic function with 1 method)"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "function force(N_intForce,N_orient,N_force,static,currentTimeStep) \n",
    "    # forces from internal bonds\n",
    "    totalForce=Vector3(0,0,0)\n",
    "    # new THREE.Vector3(node.force.x,node.force.y,node.force.z);\n",
    "    #  todo \n",
    "\n",
    "\n",
    "    totalForce=totalForce+N_intForce\n",
    "\n",
    "    #  for (int i=0; i<6; i++){ \n",
    "    #  \tif (links[i]) totalForce += links[i]->force(isNegative((linkDirection)i)); # total force in LCS\n",
    "    #  }\n",
    "    totalForce = RotateVec3D(N_orient,totalForce); # from local to global coordinates\n",
    "\n",
    "\n",
    "    # assert(!(totalForce.x != totalForce.x) || !(totalForce.y != totalForce.y) || !(totalForce.z != totalForce.z)); //assert non QNAN\n",
    "\n",
    "    # other forces\n",
    "    if(static)\n",
    "        totalForce=totalForce+N_force\n",
    "    #  }else if(currentTimeStep<50){\n",
    "    #  \ttotalForce.add(new THREE.Vector3(node.force.x,node.force.y,node.force.z));\n",
    "    else\n",
    "        #  var ex=0.1;\n",
    "        #  if(node.force.y!=0){\n",
    "        #  \tvar f=400*Math.sin(currentTimeStep*ex);\n",
    "        #  \ttotalForce.add(new THREE.Vector3(0,f,0));\n",
    "\n",
    "        #  }\n",
    "        #x=N_position[node][3]\n",
    "        #t=currentTimeStep\n",
    "        #wave=getForce(x,t)\n",
    "        #totalForce=totalForce+[0 wave 0]\n",
    "    end\n",
    "\n",
    "\n",
    "    #  if (externalExists()) totalForce += external()->force(); //external forces\n",
    "    #  totalForce -= velocity()*mat->globalDampingTranslateC(); //global damping f-cv\n",
    "    #  totalForce.z += mat->gravityForce(); //gravity, according to f=mg\n",
    "\n",
    "    #  if (isCollisionsEnabled()){\n",
    "    #  \tfor (std::vector<CVX_Collision*>::iterator it=colWatch->begin(); it!=colWatch->end(); it++){\n",
    "    #  \t\ttotalForce -= (*it)->contactForce(this);\n",
    "    #  \t}\n",
    "    #  }\n",
    "    # todo make internal forces 0 again\n",
    "    # N_intForce[node]=[0 0 0] # do i really need it?\n",
    "\n",
    "    #  node.force.x=0;\n",
    "    #  node.force.y=0;\n",
    "    #  node.force.z=0;\n",
    "\n",
    "\n",
    "    return totalForce\n",
    "end\n",
    "\n",
    "\n",
    "function moment(intMoment,orient,moment) \n",
    "    #moments from internal bonds\n",
    "    totalMoment=Vector3(0,0,0)\n",
    "    # for (int i=0; i<6; i++){ \n",
    "    # \tif (links[i]) totalMoment += links[i]->moment(isNegative((linkDirection)i)); //total force in LCS\n",
    "    # }\n",
    "\n",
    "    totalMoment=totalMoment+intMoment\n",
    "    \n",
    "    \n",
    "\n",
    "    totalMoment = RotateVec3D(orient,totalMoment);\n",
    "    \n",
    "    \n",
    "\n",
    "    totalMoment=totalMoment+moment\n",
    "\n",
    "\n",
    "    #other moments\n",
    "    # if (externalExists()) totalMoment += external()->moment(); //external moments\n",
    "    # totalMoment -= angularVelocity()*mat->globalDampingRotateC(); //global damping\n",
    "\n",
    "    return totalMoment\n",
    "end"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "updateDataAndSave! (generic function with 1 method)"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "function updateDataAndSave!(metavoxel,setup,fileName)\n",
    "    nodes      = setup[\"nodes\"]\n",
    "    edges      = setup[\"edges\"]\n",
    "    \n",
    "    setup[\"animation\"][\"showDisplacement\"]=false\n",
    "    voxCount=size(nodes)[1]\n",
    "    linkCount=size(edges)[1]\n",
    "    \n",
    "    N_displacement=Array(metavoxel[\"N_displacementGPU\"])\n",
    "    N_angle=Array(metavoxel[\"N_angleGPU\"])\n",
    "    E_stress=Array(metavoxel[\"E_stressGPU\"])\n",
    "    \n",
    "    setup[\"viz\"][\"maxStress\"]=maximum(E_stress)\n",
    "    setup[\"viz\"][\"minStress\"]=minimum(E_stress) \n",
    "\n",
    "\n",
    "    i=1\n",
    "\tfor edge in edges\n",
    "        edge[\"stress\"]=E_stress[i]\n",
    "        i=i+1\n",
    "\n",
    "    end\n",
    "    \n",
    " \n",
    "    i=1          \n",
    "\tfor node in nodes\n",
    "        node[\"displacement\"][\"x\"]=N_displacement[i].x*100\n",
    "        node[\"displacement\"][\"y\"]=N_displacement[i].y*100\n",
    "        node[\"displacement\"][\"z\"]=N_displacement[i].z*100\n",
    "        \n",
    "        node[\"angle\"][\"x\"]=N_angle[i].x\n",
    "        node[\"angle\"][\"y\"]=N_angle[i].y\n",
    "        node[\"angle\"][\"z\"]=N_angle[i].z\n",
    "        i=i+1\n",
    "\n",
    "    end\n",
    "    \n",
    "    # pass data as a json string (how it shall be displayed in a file)\n",
    "    stringdata = JSON.json(setup)\n",
    "\n",
    "    # write the file with the stringdata variable information\n",
    "    open(fileName, \"w\") do f\n",
    "            write(f, stringdata)\n",
    "         end\n",
    "    \n",
    "end"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "runMetavoxelGPU! (generic function with 1 method)"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "function runMetavoxelGPU!(setup,numTimeSteps,latticeSize,displacements,returnEvery,save)\n",
    "    function initialize!(setup)\n",
    "        nodes      = setup[\"nodes\"]\n",
    "        edges      = setup[\"edges\"]\n",
    "\n",
    "        i=1\n",
    "        # pre-calculate current position\n",
    "        for node in nodes\n",
    "            # element=parse(Int,node[\"id\"][2:end])\n",
    "            N_position[i]=Vector3(node[\"position\"][\"x\"]/100.0,node[\"position\"][\"y\"]/100.0,node[\"position\"][\"z\"]/100.0)\n",
    "            N_restrained[i]=node[\"restrained_degrees_of_freedom\"][1] ## todo later consider other degrees of freedom\n",
    "            N_displacement[i]=Vector3(node[\"displacement\"][\"x\"],node[\"displacement\"][\"y\"],node[\"displacement\"][\"z\"])\n",
    "            N_angle[i]=Vector3(node[\"angle\"][\"x\"],node[\"angle\"][\"y\"],node[\"angle\"][\"z\"])\n",
    "            N_force[i]=Vector3(node[\"force\"][\"x\"],node[\"force\"][\"y\"]/1,node[\"force\"][\"z\"])\n",
    "            N_currPosition[i]=Vector3(node[\"position\"][\"x\"]/100.0,node[\"position\"][\"y\"]/100.0,node[\"position\"][\"z\"]/100.0)\n",
    "\n",
    "            # for dynamic simulations\n",
    "            # append!(N_posTimeSteps,[[]])\n",
    "            # append!(N_angTimeSteps,[[]])\n",
    "\n",
    "            i=i+1\n",
    "        end \n",
    "\n",
    "        i=1\n",
    "        # pre-calculate the axis\n",
    "        for edge in edges\n",
    "            # element=parse(Int,edge[\"id\"][2:end])\n",
    "\n",
    "            # find the nodes that the lements connects\n",
    "            fromNode = nodes[edge[\"source\"]+1]\n",
    "            toNode = nodes[edge[\"target\"]+1]\n",
    "\n",
    "\n",
    "            node1 = [fromNode[\"position\"][\"x\"]/100.0 fromNode[\"position\"][\"y\"]/100.0 fromNode[\"position\"][\"z\"]/100.0]\n",
    "            node2 = [toNode[\"position\"][\"x\"]/100.0 toNode[\"position\"][\"y\"]/100.0 toNode[\"position\"][\"z\"]/100.0]\n",
    "\n",
    "            length=norm(node2-node1)\n",
    "            axis=normalize(collect(Iterators.flatten(node2-node1)))\n",
    "\n",
    "            E_source[i]=edge[\"source\"]+1\n",
    "            E_target[i]=edge[\"target\"]+1\n",
    "            E_area[i]=edge[\"area\"]\n",
    "            E_density[i]=edge[\"density\"]\n",
    "            E_stiffness[i]=edge[\"stiffness\"]\n",
    "            E_axis[i]=Vector3(axis[1],axis[2],axis[3])\n",
    "            E_currentRestLength[i]=length #?????? todo change\n",
    "#             E_currentRestLength[i]=75/sqrt(2)\n",
    "            \n",
    "\n",
    "            N_edgeID[E_source[i],N_currEdge[E_source[i]]]=i\n",
    "            N_edgeFirst[E_source[i],N_currEdge[E_source[i]]]=true\n",
    "            N_currEdge[E_source[i]]+=1\n",
    "\n",
    "            N_edgeID[E_target[i],N_currEdge[E_target[i]]]=i\n",
    "            N_edgeFirst[E_target[i],N_currEdge[E_target[i]]]=false\n",
    "            N_currEdge[E_target[i]]+=1\n",
    "\n",
    "\n",
    "            # for dynamic simulations\n",
    "            # append!(E_stressTimeSteps,[[]])\n",
    "\n",
    "            i=i+1\n",
    "        end \n",
    "    end\n",
    "    function simulateParallel!(metavoxel,numTimeSteps,dt,returnEvery)\n",
    "        # initialize(setup)\n",
    "\n",
    "        for i in 1:numTimeSteps\n",
    "            #println(\"Timestep:\",i)\n",
    "            doTimeStep!(metavoxel,dt,i)\n",
    "            if(mod(i,returnEvery)==0)\n",
    "                append!(displacements,[Array(metavoxel[\"N_displacementGPU\"])])\n",
    "            end\n",
    "        end\n",
    "    end\n",
    "    \n",
    "    ########\n",
    "    voxCount=0\n",
    "    linkCount=0\n",
    "    nodes      = setup[\"nodes\"]\n",
    "    edges      = setup[\"edges\"]\n",
    "    voxCount=size(nodes)[1]\n",
    "    linkCount=size(edges)[1]\n",
    "    strain =0 #todooo moveeee\n",
    "    maxNumEdges=10\n",
    "\n",
    "    ########\n",
    "    voxCount=0\n",
    "    linkCount=0\n",
    "    nodes      = setup[\"nodes\"]\n",
    "    edges      = setup[\"edges\"]\n",
    "    voxCount=size(nodes)[1]\n",
    "    linkCount=size(edges)[1]\n",
    "    strain =0 #todooo moveeee\n",
    "\n",
    "    ############# nodes\n",
    "    N_position=fill(Vector3(),voxCount)\n",
    "    N_restrained=zeros(Bool, voxCount)\n",
    "    N_displacement=fill(Vector3(),voxCount)\n",
    "    N_angle=fill(Vector3(),voxCount)\n",
    "    N_currPosition=fill(Vector3(),voxCount)\n",
    "    N_linMom=fill(Vector3(),voxCount)\n",
    "    N_angMom=fill(Vector3(),voxCount)\n",
    "    N_intForce=fill(Vector3(),voxCount)\n",
    "    N_intMoment=fill(Vector3(),voxCount)\n",
    "    N_moment=fill(Vector3(),voxCount)\n",
    "    # N_posTimeSteps=[]\n",
    "    # N_angTimeSteps=[]\n",
    "    N_force=fill(Vector3(),voxCount)\n",
    "    N_orient=fill(Quaternion(),voxCount)\n",
    "    N_edgeID=fill(-1,(voxCount,maxNumEdges))\n",
    "    N_edgeFirst=fill(true,(voxCount,maxNumEdges))\n",
    "    N_currEdge=fill(1,voxCount)\n",
    "\n",
    "    ############# edges\n",
    "    E_source=fill(0,linkCount)\n",
    "    E_target=fill(0,linkCount)\n",
    "    E_area=fill(0.0f0,linkCount)\n",
    "    E_density=fill(0.0f0,linkCount)\n",
    "    E_stiffness=fill(0.0f0,linkCount)\n",
    "    E_stress=fill(0.0f0,linkCount)\n",
    "    E_axis=fill(Vector3(1.0,0.0,0.0),linkCount)\n",
    "    E_currentRestLength=fill(0.0f0,linkCount)\n",
    "    E_pos2=fill(Vector3(),linkCount)\n",
    "    E_angle1v=fill(Vector3(),linkCount)\n",
    "    E_angle2v=fill(Vector3(),linkCount)\n",
    "    E_angle1=fill(Quaternion(),linkCount)\n",
    "    E_angle2=fill(Quaternion(),linkCount)\n",
    "\n",
    "    E_intForce1=fill(Vector3(),linkCount)\n",
    "    E_intMoment1=fill(Vector3(),linkCount) \n",
    "\n",
    "    E_intForce2=fill(Vector3(),linkCount)\n",
    "    E_intMoment2=fill(Vector3(),linkCount)\n",
    "    E_damp=fill(false,linkCount)\n",
    "\n",
    "    E_currentTransverseStrainSum=fill(0.0f0,linkCount)# TODO remove ot incorporate\n",
    "    # E_stressTimeSteps=[]\n",
    "\n",
    "\n",
    "    #################################################################\n",
    "    initialize!(setup)\n",
    "    #################################################################\n",
    "\n",
    "    ########################## turn to cuda arrays\n",
    "    ############# nodes\n",
    "    N_positionGPU=    CuArray(N_position)      \n",
    "    N_restrainedGPU=  CuArray(N_restrained)  \n",
    "    N_displacementGPU=CuArray(N_displacement)   \n",
    "    N_angleGPU=       CuArray(N_angle)       \n",
    "    N_currPositionGPU=CuArray(N_currPosition)    \n",
    "    N_linMomGPU=      CuArray(N_linMom)        \n",
    "    N_angMomGPU=      CuArray(N_angMom)        \n",
    "    N_intForceGPU=    CuArray(N_intForce)     \n",
    "    N_intMomentGPU=   CuArray(N_intMoment)        \n",
    "    N_momentGPU=      CuArray(N_moment)         \n",
    "    N_forceGPU=       CuArray(N_force)           \n",
    "    N_orientGPU=      CuArray(N_orient)       \n",
    "    N_edgeIDGPU=      CuArray(N_edgeID)         \n",
    "    N_edgeFirstGPU=   CuArray(N_edgeFirst)         \n",
    "\n",
    "\n",
    "    ############# edges\n",
    "    E_sourceGPU=                    CuArray(E_source)   \n",
    "    E_targetGPU=                    CuArray(E_target)\n",
    "    E_areaGPU=                      CuArray(E_area)                             \n",
    "    E_densityGPU=                   CuArray(E_density)\n",
    "    E_stiffnessGPU=                 CuArray(E_stiffness)\n",
    "    E_stressGPU=                    CuArray(E_stress)\n",
    "    E_axisGPU=                      CuArray(E_axis)          \n",
    "    E_currentRestLengthGPU=         CuArray(E_currentRestLength)\n",
    "    E_pos2GPU=                      CuArray(E_pos2)\n",
    "    E_angle1vGPU=                   CuArray(E_angle1v)\n",
    "    E_angle2vGPU=                   CuArray(E_angle2v)\n",
    "    E_angle1GPU=                    CuArray(E_angle1)\n",
    "    E_angle2GPU=                    CuArray(E_angle2)\n",
    "    E_currentTransverseStrainSumGPU=CuArray(E_currentTransverseStrainSum)\n",
    "    E_intForce1GPU=                 CuArray(E_intForce1) \n",
    "    E_intMoment1GPU=                CuArray(E_intMoment1)  \n",
    "    E_intForce2GPU=                 CuArray(E_intForce2) \n",
    "    E_intMoment2GPU=                CuArray(E_intMoment2)\n",
    "    E_dampGPU=                      CuArray(E_damp) \n",
    "    # E_stressTimeSteps=[]\n",
    "\n",
    "\n",
    "    #########################################\n",
    "    metavoxel = Dict(\n",
    "        \"N_positionGPU\" => N_positionGPU,    \n",
    "        \"N_restrainedGPU\" => N_restrainedGPU,  \n",
    "        \"N_displacementGPU\" => N_displacementGPU,\n",
    "        \"N_angleGPU\" => N_angleGPU,       \n",
    "        \"N_currPositionGPU\" => N_currPositionGPU,\n",
    "        \"N_linMomGPU\" => N_linMomGPU,      \n",
    "        \"N_angMomGPU\" => N_angMomGPU,      \n",
    "        \"N_intForceGPU\" => N_intForceGPU,    \n",
    "        \"N_intMomentGPU\" => N_intMomentGPU,   \n",
    "        \"N_momentGPU\" => N_momentGPU,      \n",
    "        \"N_forceGPU\" => N_forceGPU,       \n",
    "        \"N_orientGPU\" => N_orientGPU,      \n",
    "        \"N_edgeIDGPU\" => N_edgeIDGPU,      \n",
    "        \"N_edgeFirstGPU\" => N_edgeFirstGPU,\n",
    "        \"E_sourceGPU\" =>E_sourceGPU,                    \n",
    "        \"E_targetGPU\" =>E_targetGPU,                    \n",
    "        \"E_areaGPU\" =>E_areaGPU,                      \n",
    "        \"E_densityGPU\" =>E_densityGPU,                   \n",
    "        \"E_stiffnessGPU\" =>E_stiffnessGPU,                 \n",
    "        \"E_stressGPU\" =>E_stressGPU,                    \n",
    "        \"E_axisGPU\" =>E_axisGPU,                      \n",
    "        \"E_currentRestLengthGPU\" =>E_currentRestLengthGPU,         \n",
    "        \"E_pos2GPU\" =>E_pos2GPU,                      \n",
    "        \"E_angle1vGPU\" =>E_angle1vGPU,                   \n",
    "        \"E_angle2vGPU\" =>E_angle2vGPU,                   \n",
    "        \"E_angle1GPU\" =>E_angle1GPU,                    \n",
    "        \"E_angle2GPU\" =>E_angle2GPU,                    \n",
    "        \"E_currentTransverseStrainSumGPU\" =>E_currentTransverseStrainSumGPU,\n",
    "        \"E_intForce1GPU\" =>E_intForce1GPU,                 \n",
    "        \"E_intMoment1GPU\" =>E_intMoment1GPU,                \n",
    "        \"E_intForce2GPU\" =>E_intForce2GPU,                 \n",
    "        \"E_intMoment2GPU\" =>E_intMoment2GPU,                \n",
    "        \"E_dampGPU\" =>E_dampGPU                      \n",
    "    )\n",
    "\n",
    "    #########################################\n",
    "    \n",
    "\n",
    "    dt=0.0251646\n",
    "    E = 2000e9  # MPa\n",
    "    s=2.38/100.0\n",
    "    mass=1    \n",
    "    \n",
    "    \n",
    "    \n",
    "    MaxFreq2=E*s/mass\n",
    "    dt= 1/(6.283185*sqrt(MaxFreq2))\n",
    "#     dt=0.0001646\n",
    "    println(\"dt: $dt\")\n",
    "    \n",
    "    append!(displacements,[Array(metavoxel[\"N_displacementGPU\"])])\n",
    "    \n",
    "    t=@timed doTimeStep!(metavoxel,dt,0)\n",
    "    append!(displacements,[Array(metavoxel[\"N_displacementGPU\"])])\n",
    "    time=t[2]\n",
    "    println(\"first timestep took $time seconds\")\n",
    "    t=@timed simulateParallel!(metavoxel,numTimeSteps-1,dt,returnEvery)\n",
    "    time=t[2]\n",
    "    \n",
    "    if save\n",
    "        updateDataAndSave!(metavoxel,setup,\"../json/trialJuliaParallelGPU.json\")\n",
    "    end\n",
    "    println(\"ran latticeSize $latticeSize with $voxCount voxels and $linkCount edges for $numTimeSteps time steps took $time seconds\")\n",
    "    return\n",
    "end"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "fea (generic function with 1 method)"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "function fea(setup)\n",
    "    #######################################################\n",
    "    function points(element, properties)\n",
    "        elements = properties[\"elements\"]\n",
    "        nodes = properties[\"nodes\"]\n",
    "        degrees_of_freedom = properties[\"degrees_of_freedom\"]\n",
    "\n",
    "        # find the nodes that the lements connects\n",
    "        fromNode = elements[element][1]\n",
    "        toNode = elements[element][2]\n",
    "\n",
    "        # the coordinates for each node\n",
    "        fromPoint = nodes[fromNode]\n",
    "        toPoint = nodes[toNode]\n",
    "\n",
    "        # find the degrees of freedom for each node\n",
    "        dofs = degrees_of_freedom[fromNode]\n",
    "        dofs=vcat(dofs,degrees_of_freedom[toNode])\n",
    "\n",
    "        return fromPoint, toPoint, dofs\n",
    "    end\n",
    "\n",
    "    function direction_cosine(vec1, vec2)\n",
    "        return dot(vec1,vec2) / (norm(vec1) * norm(vec2))\n",
    "    end\n",
    "\n",
    "    function rotation_matrix(element_vector, x_axis, y_axis,z_axis)\n",
    "        # find the direction cosines\n",
    "        x_proj = direction_cosine(element_vector, x_axis)\n",
    "        y_proj = direction_cosine(element_vector, y_axis)\n",
    "        z_proj = direction_cosine(element_vector, z_axis);\n",
    "        return [[x_proj y_proj z_proj 0 0 0];[0 0 0 x_proj y_proj z_proj]]\n",
    "    end\n",
    "\n",
    "    function rotation_matrix(element_vector, x_axis, y_axis,z_axis)\n",
    "        # find the direction cosines\n",
    "        L=norm(element_vector)\n",
    "        l = (element_vector[1])/L\n",
    "        m = (element_vector[2])/L\n",
    "        n = (element_vector[3])/L\n",
    "        D = ( l^2+ m^2+n^2)^0.5\n",
    "\n",
    "        transMatrix=[[l m  n  0  0  0  0  0  0  0  0  0];[-m/D l/D  0  0  0  0  0  0  0  0  0  0];[ -l*n/D  -m*n/D  D  0  0  0  0  0  0  0  0  0];[ 0  0  0       l       m  n  0  0  0  0  0  0];[ 0  0  0    -m/D     l/D  0  0  0  0  0  0  0];[ 0  0  0  -l*n/D  -m*n/D  D  0  0  0  0  0  0];[ 0  0  0  0  0  0       l       m  n  0  0  0];[ 0  0  0  0  0  0    -m/D     l/D  0  0  0  0];[ 0  0  0  0  0  0  -l*n/D  -m*n/D  D  0  0  0];[ 0  0  0  0  0  0  0  0  0       l       m  n];[ 0  0  0  0  0  0  0  0  0    -m/D     l/D  0];[ 0  0  0  0  0  0  0  0  0  -l*n/D  -m*n/D  D]]\n",
    "\n",
    "        return transMatrix\n",
    "    end\n",
    "    \n",
    "    #######################################################\n",
    "    function get_matrices(setup)\n",
    "\n",
    "        nodes      = setup[\"nodes\"]\n",
    "        edges      = setup[\"edges\"]\n",
    "        ndofs      = length(nodes)*6\n",
    "\n",
    "        x_axis     = [1 0 0]\n",
    "        y_axis     = [0 1 0]\n",
    "        z_axis     = [0 0 1]\n",
    "\n",
    "        M = zeros((ndofs,ndofs))\n",
    "        K = zeros((ndofs,ndofs))\n",
    "        \n",
    "        \n",
    "        for edge in edges\n",
    "            #degrees_of_freedom = properties[\"degrees_of_freedom\"]\n",
    "\n",
    "            element=parse(Int,edge[\"id\"][2:end])\n",
    "\n",
    "            # find the nodes that the lements connects\n",
    "            fromNode = nodes[edge[\"source\"]+1]\n",
    "            toNode = nodes[edge[\"target\"]+1]\n",
    "            \n",
    "\n",
    "            # the coordinates for each node\n",
    "            fromPoint = [fromNode[\"position\"][\"x\"]/100.0 fromNode[\"position\"][\"y\"]/100.0 fromNode[\"position\"][\"z\"]/100.0]\n",
    "            toPoint = [toNode[\"position\"][\"x\"]/100.0 toNode[\"position\"][\"y\"]/100.0 toNode[\"position\"][\"z\"]/100.0]\n",
    "\n",
    "            # find the degrees of freedom for each node\n",
    "            dofs = convert(Array{Int}, fromNode[\"degrees_of_freedom\"])\n",
    "            dofs=vcat(dofs,convert(Array{Int}, toNode[\"degrees_of_freedom\"]))\n",
    "\n",
    "            element_vector=toPoint-fromPoint\n",
    "\n",
    "            # find element mass and stifness matrices\n",
    "            length   = norm(element_vector)\n",
    "            rho      = edge[\"density\"]\n",
    "            area     = edge[\"area\"]\n",
    "            E        = edge[\"stiffness\"]# youngs modulus\n",
    "\n",
    "            A = edge[\"area\"]\n",
    "            G=1.0#todo shear_modulus\n",
    "            ixx = 1.0#todo section ixx\n",
    "            iyy = 1.0#todo section.iyy#\n",
    "            l0=length\n",
    "            j=1.0;#todo check\n",
    "            l02 = l0 * l0\n",
    "            l03 = l0 * l0 * l0\n",
    "            \n",
    "            ################################\n",
    "            mass=1\n",
    "            nu=0.35\n",
    "            W = 75\n",
    "            L = W/sqrt(2)\n",
    "            L=length\n",
    "            n_min = 1\n",
    "            n_max = 7\n",
    "            # Cross Section inputs, must be floats\n",
    "            E = 2000e9  # MPa\n",
    "            G = E * 1 / 3  # MPa\n",
    "            h = 2.38/100.0  # mm\n",
    "            b = 2.38/100.0  # mm\n",
    "            rho = 7.85e-9 / 3  # kg/mm^3\n",
    "            S = h * b\n",
    "            Sy = (S * (6 + 12 * nu + 6 * nu^2)/ (7 + 12 * nu + 4 * nu^2))\n",
    "            # For solid rectangular cross section (width=b, depth=d & ( b < d )):\n",
    "            Q = 1 / 3 - 0.2244 / (min(h / b, b / h) + 0.1607)\n",
    "            J = Q * min(h * b^3, b * h^3)\n",
    "            \n",
    "            \n",
    "            ##if voxels\n",
    "            #nu=0\n",
    "            #L=l\n",
    "            #a1 = E*L # EA/L : Units of N/m\n",
    "            #a2 = E * L*L*L / (12.0*(1+nu)) # GJ/L : Units of N-m\n",
    "            #b1 = E*L # 12EI/L^3 : Units of N/m\n",
    "            #b2 = E*L*L/2.0 # 6EI/L^2 : Units of N (or N-m/m: torque related to linear distance)\n",
    "            #b3 = E*L*L*L/6.0 # 2EI/L : Units of N-m\n",
    "            \n",
    "            I= b*h^3/12\n",
    "#             J=b*h*(b*b+h*h)/12\n",
    "            a1=E*b*h/L\n",
    "            a2=G*J/L\n",
    "            b1=12*E*I/(L^3)\n",
    "            b2=6*E*I/(L^2)\n",
    "            b3=2*E*I/(L)\n",
    "            \n",
    "            # Cm = rho * area * length /6.0\n",
    "            # Ck= E * area / length \n",
    "\n",
    "            # m = [[2 1];[1 2]]\n",
    "            # k = [[1 -1];[-1 1]]\n",
    "            \n",
    "\n",
    "            k = [[E*A/l0  0  0  0  0  0  -E*A/l0  0  0  0  0  0];[0  12*E*ixx/l03  0  0  0  6*E*ixx/l02  0  -12*E*ixx/l03  0  0  0  6*E*ixx/l02];[0  0  12*E*iyy/l03  0  -6*E*iyy/l02  0  0  0  -12*E*iyy/l03  0  -6*E*iyy/l02  0];[0  0  0  G*j/l0  0  0  0  0  0  -G*j/l0  0  0];[0  0  -6*E*iyy/l02  0  4*E*iyy/l0  0  0  0  6*E*iyy/l02  0  2*E*iyy/l0  0];[0  6*E*ixx/l02  0  0  0  4*E*ixx/l0  0  -6*E*ixx/l02  0  0  0  2*E*ixx/l0];[-E*A/l0  0  0  0  0  0  E*A/l0  0  0  0  0  0];[0  -12*E*ixx/l03  0  0  0  -6*E*ixx/l02  0  12*E*ixx/l03  0  0  0  -6*E*ixx/l02];[0  0  -12*E*iyy/l03  0  6*E*iyy/l02  0  0  0  12*E*iyy/l03  0  6*E*iyy/l02  0];[0  0  0  -G*j/l0  0  0  0  0  0  G*j/l0  0  0];[0  0  -6*E*iyy/l02  0  2*E*iyy/l0  0  0  0  6*E*iyy/l02  0  4*E*iyy/l0  0];[0  6*E*ixx/l02  0  0  0  2*E*ixx/l0  0  -6*E*ixx/l02  0  0  0  4*E*ixx/l0]]\n",
    "            k= [[ a1  0  0  0   0   0  -a1  0   0   0   0   0  ];\n",
    "                [  0 b1  0  0   0   b2  0  -b1  0   0   0   b2 ];\n",
    "                [  0  0  b1 0  -b2  0   0   0  -b1  0  -b2  0  ];\n",
    "                [  0  0  0  a2  0   0   0   0   0  -a2  0   0  ];\n",
    "                [  0  0  0  0  2b3  0   0   0   b2  0   b3  0  ];\n",
    "                [  0  0  0  0   0  2b3  0  -b2  0   0   0   b3 ];\n",
    "                [  0  0  0  0   0   0   a1  0   0   0   0   0  ];\n",
    "                [  0  0  0  0   0   0   0   b1  0   0   0  -b2 ];\n",
    "                [  0  0  0  0   0   0   0   0   b1  0   b2  0  ];\n",
    "                [  0  0  0  0   0   0   0   0   0   a2  0   0  ];\n",
    "                [  0  0  0  0   0   0   0   0   0    0 2b3  0  ];\n",
    "                [  0  0  0  0   0   0   0   0   0    0  0  2b3 ]]\n",
    "            # find rotated mass and stifness matrices\n",
    "            tau = rotation_matrix(element_vector, x_axis,y_axis,z_axis)\n",
    "\n",
    "            # m_r=transpose(tau)*m*tau\n",
    "            k_r=transpose(tau)*k*tau\n",
    "\n",
    "            # change from element to global coordinate\n",
    "            index= dofs.+1\n",
    "\n",
    "            B=zeros((12,ndofs))\n",
    "            for i in 1:12\n",
    "                  B[i,index[i]]=1.0\n",
    "            end\n",
    "\n",
    "\n",
    "            # M_rG= transpose(B)*m_r*B\n",
    "            K_rG= transpose(B)*k_r*B\n",
    "\n",
    "            # M += Cm .* M_rG\n",
    "            # K += Ck .* K_rG\n",
    "            K +=  K_rG\n",
    "\n",
    "        end\n",
    "        \n",
    "        \n",
    "        # construct the force vector\n",
    "        F=zeros(ndofs)\n",
    "        remove_indices=[];\n",
    "        for node in nodes\n",
    "            #insert!(F,i, value);\n",
    "            #F=vcat(F,value)\n",
    "            \n",
    "            \n",
    "            i=parse(Int,node[\"id\"][2:end])\n",
    "            f=node[\"force\"]\n",
    "            \n",
    "            # println(f)\n",
    "            F[(i)*6+1]=f[\"x\"]/1.0\n",
    "            F[(i)*6+2]=f[\"y\"]/1.0\n",
    "            F[(i)*6+3]=f[\"z\"]/1.0\n",
    "            F[(i)*6+4]=0\n",
    "            F[(i)*6+5]=0\n",
    "            F[(i)*6+6]=0\n",
    "            Load+=f[\"y\"]/1.0\n",
    "            if (F[(i)*6+2]!=0)\n",
    "                append!(topNodesIndices,i)\n",
    "            end\n",
    "            \n",
    "            dofs = convert(Array{Int}, node[\"degrees_of_freedom\"]).+1\n",
    "            restrained_dofs=node[\"restrained_degrees_of_freedom\"]\n",
    "            for (index, value) in enumerate(dofs)\n",
    "                if restrained_dofs[index]\n",
    "                    append!( remove_indices, value)\n",
    "                end\n",
    "            end\n",
    "            \n",
    "        end\n",
    "\n",
    "        #println(remove_indices)\n",
    "        #print(K)\n",
    "        #print(F)\n",
    "        \n",
    "\n",
    "        #M = M[setdiff(1:end, remove_indices), :]\n",
    "        K = K[setdiff(1:end, remove_indices), :]\n",
    "\n",
    "        #M = M[:,setdiff(1:end, remove_indices)]\n",
    "        K = K[:,setdiff(1:end, remove_indices)]\n",
    "\n",
    "        F = F[setdiff(1:end, remove_indices)]\n",
    "        U=zeros(ndofs)\n",
    "        \n",
    "        return M,K,F,U,remove_indices\n",
    "    end\n",
    "\n",
    "    \n",
    "    function updateDisplacement(setup, X)\n",
    "        nodes= setup[\"nodes\"]\n",
    "        i=0\n",
    "        for node in nodes\n",
    "            \n",
    "#             if !node[\"restrained_degrees_of_freedom\"][2]\n",
    "                #i=parse(Int,node[\"id\"][2:end])\n",
    "                node[\"displacement\"][\"x\"]=X[(i)*6+1]/15\n",
    "                node[\"displacement\"][\"y\"]=X[(i)*6+2]/15\n",
    "                node[\"displacement\"][\"z\"]=X[(i)*6+3]/15\n",
    "                node[\"angle\"][\"x\"]=X[(i)*6+4]\n",
    "                node[\"angle\"][\"y\"]=X[(i)*6+5]\n",
    "                node[\"angle\"][\"z\"]=X[(i)*6+6]\n",
    "                append!(displacementFEA,[Vector3(X[(i)*6+1],X[(i)*6+2],X[(i)*6+3])])\n",
    "                i=i+1\n",
    "#             else\n",
    "#                 append!(displacementFEA,[Vector3(0,0,0)])\n",
    "#             end\n",
    "        end\n",
    "    end\n",
    "    \n",
    "    #######################################################\n",
    "\n",
    "    function get_stresses(setup)\n",
    "        nodes      = setup[\"nodes\"]\n",
    "        edges      = setup[\"edges\"]\n",
    "        ndofs      = length(nodes)*6\n",
    "\n",
    "        x_axis     = [1 0 0]\n",
    "        y_axis     = [0 1 0]\n",
    "        z_axis     = [0 0 1]\n",
    "\n",
    "        # find the stresses in each member\n",
    "        stresses=zeros(length(edges))\n",
    "        max11=-10e6\n",
    "        min11=10e6\n",
    "        for edge in edges\n",
    "            #degrees_of_freedom = properties[\"degrees_of_freedom\"]\n",
    "\n",
    "            element=parse(Int,edge[\"id\"][2:end])\n",
    "\n",
    "            # find the nodes that the lements connects\n",
    "            fromNode = nodes[edge[\"source\"]+1]\n",
    "            toNode = nodes[edge[\"target\"]+1]\n",
    "\n",
    "            # the coordinates for each node\n",
    "            fromPoint = [fromNode[\"position\"][\"x\"]/100.0 fromNode[\"position\"][\"y\"]/100.0 fromNode[\"position\"][\"z\"]/100.0]\n",
    "            toPoint = [toNode[\"position\"][\"x\"]/100.0 toNode[\"position\"][\"y\"]/100.0 toNode[\"position\"][\"z\"]/100.0]\n",
    "\n",
    "            # find the degrees of freedom for each node\n",
    "            dofs = convert(Array{Int}, fromNode[\"degrees_of_freedom\"])\n",
    "            dofs=vcat(dofs,convert(Array{Int}, toNode[\"degrees_of_freedom\"]))\n",
    "\n",
    "            element_vector=toPoint-fromPoint\n",
    "\n",
    "\n",
    "            # find rotated mass and stifness matrices\n",
Amira Abdel-Rahman's avatar
Amira Abdel-Rahman committed
2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 2982 2983 2984 2985 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055 3056 3057 3058 3059 3060 3061 3062 3063 3064 3065 3066 3067 3068 3069 3070 3071 3072 3073 3074 3075 3076 3077 3078 3079 3080 3081 3082 3083 3084 3085 3086 3087 3088 3089 3090 3091 3092 3093 3094 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 3136 3137 3138 3139 3140 3141 3142 3143 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3154 3155 3156 3157 3158 3159 3160 3161 3162 3163 3164 3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 3192 3193 3194 3195 3196 3197 3198 3199 3200 3201 3202 3203 3204 3205 3206 3207 3208 3209 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 3220 3221 3222 3223 3224 3225 3226 3227 3228 3229 3230 3231 3232 3233 3234 3235 3236 3237 3238 3239 3240 3241 3242 3243 3244 3245 3246 3247 3248 3249 3250 3251 3252 3253 3254 3255 3256 3257 3258 3259 3260 3261 3262 3263 3264 3265 3266 3267 3268 3269 3270 3271 3272 3273 3274 3275 3276 3277 3278 3279 3280 3281 3282 3283 3284 3285 3286 3287 3288 3289 3290 3291 3292 3293 3294 3295 3296 3297 3298 3299 3300 3301 3302 3303 3304 3305 3306 3307 3308 3309 3310 3311 3312 3313 3314 3315 3316 3317 3318 3319 3320 3321 3322 3323 3324 3325 3326 3327 3328 3329 3330 3331 3332 3333 3334 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 3350 3351 3352 3353 3354 3355 3356 3357 3358 3359 3360 3361 3362 3363 3364 3365 3366 3367 3368 3369 3370 3371 3372 3373 3374 3375 3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 3400 3401 3402 3403 3404 3405 3406 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 3419 3420 3421 3422 3423 3424 3425 3426 3427 3428 3429 3430 3431 3432 3433 3434 3435 3436 3437 3438 3439 3440 3441 3442 3443 3444 3445 3446 3447 3448 3449 3450 3451 3452 3453 3454 3455 3456 3457 3458 3459 3460 3461 3462 3463 3464 3465 3466 3467 3468 3469 3470 3471 3472 3473 3474 3475 3476 3477 3478 3479 3480 3481 3482 3483 3484 3485 3486 3487 3488 3489 3490 3491 3492 3493 3494 3495 3496 3497 3498 3499 3500 3501 3502 3503 3504 3505 3506 3507 3508 3509 3510 3511 3512 3513 3514 3515 3516 3517 3518 3519 3520 3521 3522 3523 3524 3525 3526 3527 3528 3529 3530 3531 3532 3533 3534 3535 3536 3537 3538 3539 3540 3541 3542 3543 3544 3545 3546 3547 3548 3549 3550 3551 3552 3553 3554 3555 3556 3557 3558 3559 3560 3561 3562 3563 3564 3565 3566 3567 3568 3569 3570 3571 3572 3573 3574 3575 3576 3577 3578 3579 3580 3581 3582 3583 3584 3585 3586 3587 3588 3589 3590 3591 3592 3593 3594 3595 3596 3597 3598 3599 3600 3601 3602 3603 3604 3605 3606 3607 3608 3609 3610 3611 3612 3613 3614 3615 3616 3617 3618 3619 3620 3621 3622 3623 3624 3625 3626 3627 3628 3629 3630 3631 3632 3633 3634 3635 3636 3637 3638 3639 3640 3641 3642 3643 3644 3645 3646 3647 3648 3649 3650 3651 3652 3653 3654 3655 3656 3657 3658 3659 3660 3661 3662 3663 3664 3665 3666 3667 3668 3669 3670 3671 3672 3673 3674 3675 3676 3677 3678 3679 3680 3681 3682 3683 3684 3685 3686 3687 3688 3689 3690 3691 3692 3693 3694 3695 3696 3697 3698 3699 3700 3701 3702 3703 3704 3705 3706 3707 3708 3709 3710 3711 3712 3713 3714 3715 3716 3717 3718 3719 3720 3721 3722 3723 3724 3725 3726 3727 3728 3729 3730 3731 3732 3733 3734 3735 3736 3737 3738 3739 3740 3741 3742 3743 3744 3745 3746 3747 3748 3749 3750 3751 3752 3753 3754 3755 3756 3757 3758 3759 3760 3761 3762 3763 3764 3765 3766 3767 3768 3769 3770 3771 3772 3773 3774 3775 3776 3777 3778 3779 3780 3781 3782 3783 3784 3785 3786 3787 3788 3789 3790 3791 3792 3793 3794 3795 3796 3797 3798 3799 3800 3801 3802 3803 3804 3805 3806 3807 3808 3809 3810 3811 3812 3813 3814 3815 3816 3817 3818 3819 3820 3821 3822 3823 3824 3825 3826 3827 3828 3829 3830 3831 3832 3833 3834 3835 3836 3837 3838 3839 3840 3841 3842 3843 3844 3845 3846 3847 3848 3849 3850 3851 3852 3853 3854 3855 3856 3857 3858 3859 3860 3861 3862 3863 3864 3865 3866 3867 3868 3869 3870 3871 3872 3873 3874 3875 3876 3877 3878 3879 3880 3881 3882 3883 3884 3885 3886 3887 3888 3889 3890 3891 3892 3893 3894 3895 3896 3897 3898 3899 3900 3901 3902 3903 3904 3905 3906 3907 3908 3909 3910 3911 3912 3913 3914 3915 3916 3917 3918 3919 3920 3921 3922 3923 3924 3925 3926 3927 3928 3929 3930 3931 3932 3933 3934 3935 3936 3937 3938 3939 3940 3941 3942 3943 3944 3945 3946 3947 3948 3949 3950 3951 3952 3953 3954 3955 3956 3957 3958 3959 3960 3961 3962 3963 3964 3965 3966 3967 3968 3969 3970 3971 3972 3973 3974 3975 3976 3977 3978 3979 3980 3981 3982 3983 3984 3985 3986 3987 3988 3989 3990 3991 3992 3993 3994 3995 3996 3997 3998 3999 4000 4001 4002 4003 4004 4005 4006 4007 4008 4009 4010 4011 4012 4013 4014 4015 4016 4017 4018 4019 4020 4021 4022 4023 4024 4025 4026 4027 4028 4029 4030 4031 4032 4033 4034 4035 4036 4037 4038 4039 4040 4041 4042 4043 4044 4045 4046 4047 4048 4049 4050 4051 4052 4053 4054 4055 4056 4057 4058 4059 4060 4061 4062 4063 4064 4065 4066 4067 4068 4069 4070 4071 4072 4073 4074 4075 4076 4077 4078 4079 4080 4081 4082 4083 4084 4085 4086 4087 4088 4089 4090 4091 4092 4093 4094 4095 4096 4097 4098 4099 4100 4101 4102 4103 4104 4105 4106 4107 4108 4109 4110 4111 4112 4113 4114 4115 4116 4117 4118 4119 4120 4121 4122 4123 4124 4125 4126 4127 4128 4129 4130 4131 4132 4133 4134 4135 4136 4137 4138 4139 4140 4141 4142 4143 4144 4145 4146 4147 4148 4149 4150 4151 4152 4153 4154 4155 4156 4157 4158 4159 4160 4161 4162 4163 4164 4165 4166 4167 4168 4169 4170 4171 4172 4173 4174 4175 4176 4177 4178 4179 4180 4181 4182 4183 4184 4185 4186 4187 4188 4189 4190 4191 4192 4193 4194 4195 4196 4197 4198 4199 4200
    "            tau = rotation_matrix(element_vector, x_axis,y_axis,z_axis)\n",
    "\n",
    "            # i1=parse(Int,fromNode[\"id\"][2:end])\n",
    "            # i2=parse(Int,toNode[\"id\"][2:end])\n",
    "\n",
    "            # global_displacements=[X[(i1)*6+1] X[(i1)*6+2] X[(i1)*6+3] X[(i1)*6+4] X[(i1)*6+5] X[(i1)*6+6] X[(i2)*6+1] X[(i2)*6+2] X[(i2)*6+3] X[(i2)*6+4] X[(i2)*6+5] X[(i2)*6+6]] # todo change\n",
    "            global_displacements=[fromNode[\"displacement\"][\"x\"] fromNode[\"displacement\"][\"y\"] fromNode[\"displacement\"][\"z\"] fromNode[\"angle\"][\"x\"] fromNode[\"angle\"][\"y\"] fromNode[\"angle\"][\"z\"] toNode[\"displacement\"][\"x\"] toNode[\"displacement\"][\"y\"] toNode[\"displacement\"][\"z\"] toNode[\"angle\"][\"x\"] toNode[\"angle\"][\"y\"] toNode[\"angle\"][\"z\"]] # todo change\n",
    "\n",
    "            # nodal displacement\n",
    "\n",
    "            q=tau*transpose(global_displacements)\n",
    "            # println(q)\n",
    "            # calculate the strain and stresses\n",
    "            strain =(q[7]-q[1])/norm(element_vector)\n",
    "            E = edge[\"stiffness\"]# youngs modulus\n",
    "            stress=E.*strain\n",
    "            edge[\"stress\"]=stress\n",
    "            if stress>max11\n",
    "                max11=stress\n",
    "            end\n",
    "            if stress<min11\n",
    "                min11=stress\n",
    "            end\n",
    "            # println(element)\n",
    "            # println(stress)\n",
    "        end\n",
    "\n",
    "\n",
    "\n",
    "        setup[\"viz\"][\"minStress\"]=min11\n",
    "        setup[\"viz\"][\"maxStress\"]=max11\n",
    "        return stresses\n",
    "    end\n",
    "    \n",
    "    function initialize(setup)\n",
    "        nodes      = setup[\"nodes\"]\n",
    "        ndofs      = length(nodes)*6\n",
    "        \n",
    "        i=0\n",
    "        for node in nodes\n",
    "            dg=[]\n",
    "            for ii in 0:5\n",
    "                append!(dg,i+ii) \n",
    "            end\n",
    "            i+=6\n",
    "            node[\"degrees_of_freedom\"]=dg\n",
    "        end\n",
    "    end\n",
    "\n",
    "    #######################################################\n",
    "    function solveFea(setup)\n",
    "        // # determine the global matrices\n",
    "        initialize(setup)\n",
    "        M,K,F,U,ind=get_matrices(setup)\n",
    "        \n",
    "        #println(M)\n",
    "        #println(K)\n",
    "        #println(F)\n",
    "\n",
    "        #evals=eigvals(K,M)\n",
    "        #evecs=eigvecs(K,M)\n",
    "        #frequencies=sqrt.(evals)\n",
    "        X=inv(K)*F\n",
    "        U[setdiff(1:end, ind)]=X\n",
    "\n",
    "        updateDisplacement(setup, U)\n",
    "\n",
    "        # determine the stresses in each element\n",
    "        stresses=get_stresses(setup)\n",
    "    end\n",
    "    #######################################################\n",
    "    displacementFEA=[]\n",
    "    Load=0\n",
    "    topNodesIndices=[]\n",
    "    solveFea(setup)\n",
    "    return displacementFEA,Load,topNodesIndices\n",
    "end"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "recommendedTimeStep (generic function with 1 method)"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "function recommendedTimeStep()\n",
    "    \n",
    "    \n",
    "#     #find the largest natural frequency (sqrt(k/m)) that anything in the simulation will experience, then multiply by 2*pi and invert to get the optimally largest timestep that should retain stability\n",
    "#     MaxFreq2 = 0.0; #maximum frequency in the simulation in rad/sec\n",
    "    \n",
    "#     for e in 1:length(edges) #for each edge\n",
    "#         CVX_Link* pL = (*it);\n",
    "#         #axial\n",
    "#         m1 = mass(),  m2 = mass()\n",
    "#         thisMaxFreq2 = axialStiffness()/(m1<m2?m1:m2)\n",
    "#         if (thisMaxFreq2 > MaxFreq2) \n",
    "#             MaxFreq2 = thisMaxFreq2;\n",
    "#         end\n",
    "\n",
    "#         #rotational will always be less than or equal\n",
    "#     end\n",
    "        \n",
    "\n",
    "#     if (MaxFreq2 <= 0.0) #didn't find anything (i.e no links) check for individual voxelss\n",
    "#         for n in 1:length(nodes) #for each node\n",
    "#             thisMaxFreq2 = youngsModulus*nomSize/mass;\n",
    "#             #thisMaxFreq2 = (*it)->mat->youngsModulus()*(*it)->mat->nomSize/(*it)->mat->mass();\n",
    "#             if (thisMaxFreq2 > MaxFreq2) \n",
    "#                     MaxFreq2 = thisMaxFreq2;\n",
    "#             end\n",
    "#         end\n",
    "#     end\n",
    "\n",
    "#     if (MaxFreq2 <= 0.0) \n",
    "#         return 0.0\n",
    "#     else \n",
    "#         return 1.0/(6.283185*sqrt(MaxFreq2)) #the optimal timestep is to advance one radian of the highest natural frequency\n",
    "#     end\n",
    "    MaxFreq2=E*size/mass\n",
    "    return 1/(6.283185*sqrt(MaxFreq2))\n",
    "end"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "getSetup (generic function with 1 method)"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "function getSetup(latticeSize)\n",
    "    setup = Dict()\n",
    "    name=string(\"../json/setupTestUni$latticeSize\",\".json\")\n",
    "#     open(\"../json/setupValid2.json\", \"r\") do f\n",
    "#     open(\"../json/setupTest.json\", \"r\") do f\n",
    "    # open(\"../json/trialJulia.json\", \"r\") do f\n",
    "#     open(\"../json/setupTestUni4.json\", \"r\") do f\n",
    "    # open(\"../json/setupChiral.json\", \"r\") do f\n",
    "#     open(\"../json/setupTestCubeUni10.json\", \"r\") do f\n",
    "    open(name, \"r\") do f\n",
    "#         global setup\n",
    "        dicttxt = String(read(f))  # file information to string\n",
    "        setup=JSON.parse(dicttxt)  # parse and transform data\n",
    "    end\n",
    "\n",
    "    setup=setup[\"setup\"]\n",
    "    return setup\n",
    "end"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "4-element Array{Any,1}:\n",
       " 4\n",
       " 7\n",
       " 8\n",
       " 9"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "latticeSize=1\n",
    "setup=getSetup(latticeSize)\n",
    "displacementFEA,Load,topNodesIndices=fea(setup)\n",
    "topNodesIndices"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "5-element Array{Float64,1}:\n",
       " 0.0\n",
       " 0.0\n",
       " 0.0\n",
       " 0.0\n",
       " 0.0"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "DDisplacements=[[],[],[],[],[]]\n",
    "DDisplacementsFEA=[[],[],[],[],[]]\n",
    "EsFEA=[0.0,0,0,0,0]\n",
    "Es=[0.0,0,0,0,0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [],
   "source": [
    "latticeSize=5\n",
    "setup=getSetup(latticeSize)\n",
    "displacementFEA,Load,topNodesIndices=fea(setup);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "dt: 7.294855212986817e-7\n",
      "first timestep took 0.0006283 seconds\n",
      "ran latticeSize 5 with 540 voxels and 1800 edges for 2000 time steps took 0.8313075 seconds\n",
      "EsFEA:[4.516432560172212, 7.389712166701619, 9.998185539814536, 12.509610413282042, 14.980612218071958]\n",
      "Es:[-1.7207658256817755, -1.7187653726043761, -1.8909709475438676, -2.125645742684135, -2.322015017271702]\n",
      "FEA displacement= -8.696319301969073e-10,converged displacement= 3.0929663544073403e-9\n"
     ]
    },
    {
     "data": {
      "image/svg+xml": [
       "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n",
       "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"600\" height=\"400\" viewBox=\"0 0 2400 1600\">\n",
       "<defs>\n",
       "  <clipPath id=\"clip0800\">\n",
       "    <rect x=\"0\" y=\"0\" width=\"2400\" height=\"1600\"/>\n",
       "  </clipPath>\n",
       "</defs>\n",
       "<path clip-path=\"url(#clip0800)\" d=\"\n",
       "M0 1600 L2400 1600 L2400 0 L0 0  Z\n",
       "  \" fill=\"#ffffff\" fill-rule=\"evenodd\" fill-opacity=\"1\"/>\n",
       "<defs>\n",
       "  <clipPath id=\"clip0801\">\n",
       "    <rect x=\"480\" y=\"0\" width=\"1681\" height=\"1600\"/>\n",
       "  </clipPath>\n",
       "</defs>\n",
       "<path clip-path=\"url(#clip0800)\" d=\"\n",
       "M407.037 1425.62 L2352.76 1425.62 L2352.76 121.675 L407.037 121.675  Z\n",
       "  \" fill=\"#ffffff\" fill-rule=\"evenodd\" fill-opacity=\"1\"/>\n",
       "<defs>\n",
       "  <clipPath id=\"clip0802\">\n",
       "    <rect x=\"407\" y=\"121\" width=\"1947\" height=\"1305\"/>\n",
       "  </clipPath>\n",
       "</defs>\n",
       "<polyline clip-path=\"url(#clip0802)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  461.187,1425.62 461.187,121.675 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip0802)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  920.083,1425.62 920.083,121.675 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip0802)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  1378.98,1425.62 1378.98,121.675 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip0802)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  1837.87,1425.62 1837.87,121.675 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip0802)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  2296.77,1425.62 2296.77,121.675 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip0802)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  407.037,1415.51 2352.76,1415.51 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip0802)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  407.037,1209.98 2352.76,1209.98 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip0802)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  407.037,1004.45 2352.76,1004.45 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip0802)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  407.037,798.913 2352.76,798.913 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip0802)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  407.037,593.381 2352.76,593.381 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip0802)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  407.037,387.849 2352.76,387.849 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip0802)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  407.037,182.317 2352.76,182.317 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip0800)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  407.037,1425.62 2352.76,1425.62 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip0800)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  407.037,1425.62 407.037,121.675 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip0800)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  461.187,1425.62 461.187,1409.97 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip0800)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  920.083,1425.62 920.083,1409.97 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip0800)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  1378.98,1425.62 1378.98,1409.97 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip0800)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  1837.87,1425.62 1837.87,1409.97 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip0800)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  2296.77,1425.62 2296.77,1409.97 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip0800)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  407.037,1415.51 430.386,1415.51 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip0800)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  407.037,1209.98 430.386,1209.98 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip0800)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  407.037,1004.45 430.386,1004.45 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip0800)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  407.037,798.913 430.386,798.913 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip0800)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  407.037,593.381 430.386,593.381 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip0800)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  407.037,387.849 430.386,387.849 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip0800)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  407.037,182.317 430.386,182.317 \n",
       "  \"/>\n",
       "<g clip-path=\"url(#clip0800)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:middle;\" transform=\"rotate(0, 461.187, 1479.62)\" x=\"461.187\" y=\"1479.62\">0</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip0800)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:middle;\" transform=\"rotate(0, 920.083, 1479.62)\" x=\"920.083\" y=\"1479.62\">500</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip0800)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:middle;\" transform=\"rotate(0, 1378.98, 1479.62)\" x=\"1378.98\" y=\"1479.62\">1000</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip0800)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:middle;\" transform=\"rotate(0, 1837.87, 1479.62)\" x=\"1837.87\" y=\"1479.62\">1500</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip0800)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:middle;\" transform=\"rotate(0, 2296.77, 1479.62)\" x=\"2296.77\" y=\"1479.62\">2000</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip0800)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:start;\" transform=\"rotate(0, 201.946, 1439.24)\" x=\"201.946\" y=\"1439.24\">-</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip0800)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:start;\" transform=\"rotate(0, 230.056, 1439.24)\" x=\"230.056\" y=\"1439.24\">1×10</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip0800)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:38px; text-anchor:start;\" transform=\"rotate(0, 338.454, 1411.83)\" x=\"338.454\" y=\"1411.83\">-</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip0800)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:38px; text-anchor:start;\" transform=\"rotate(0, 361.293, 1411.83)\" x=\"361.293\" y=\"1411.83\">7</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip0800)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:end;\" transform=\"rotate(0, 383.037, 1227.48)\" x=\"383.037\" y=\"1227.48\">0</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip0800)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:start;\" transform=\"rotate(0, 230.056, 1028.17)\" x=\"230.056\" y=\"1028.17\">1×10</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip0800)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:38px; text-anchor:start;\" transform=\"rotate(0, 338.454, 1000.76)\" x=\"338.454\" y=\"1000.76\">-</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip0800)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:38px; text-anchor:start;\" transform=\"rotate(0, 361.293, 1000.76)\" x=\"361.293\" y=\"1000.76\">7</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip0800)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:start;\" transform=\"rotate(0, 230.056, 822.641)\" x=\"230.056\" y=\"822.641\">2×10</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip0800)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:38px; text-anchor:start;\" transform=\"rotate(0, 338.454, 795.231)\" x=\"338.454\" y=\"795.231\">-</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip0800)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:38px; text-anchor:start;\" transform=\"rotate(0, 361.293, 795.231)\" x=\"361.293\" y=\"795.231\">7</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip0800)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:start;\" transform=\"rotate(0, 230.056, 617.109)\" x=\"230.056\" y=\"617.109\">3×10</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip0800)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:38px; text-anchor:start;\" transform=\"rotate(0, 338.454, 589.699)\" x=\"338.454\" y=\"589.699\">-</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip0800)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:38px; text-anchor:start;\" transform=\"rotate(0, 361.293, 589.699)\" x=\"361.293\" y=\"589.699\">7</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip0800)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:start;\" transform=\"rotate(0, 230.056, 411.577)\" x=\"230.056\" y=\"411.577\">4×10</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip0800)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:38px; text-anchor:start;\" transform=\"rotate(0, 338.454, 384.167)\" x=\"338.454\" y=\"384.167\">-</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip0800)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:38px; text-anchor:start;\" transform=\"rotate(0, 361.293, 384.167)\" x=\"361.293\" y=\"384.167\">7</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip0800)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:start;\" transform=\"rotate(0, 230.056, 206.045)\" x=\"230.056\" y=\"206.045\">5×10</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip0800)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:38px; text-anchor:start;\" transform=\"rotate(0, 338.454, 178.634)\" x=\"338.454\" y=\"178.634\">-</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip0800)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:38px; text-anchor:start;\" transform=\"rotate(0, 361.293, 178.634)\" x=\"361.293\" y=\"178.634\">7</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip0800)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:84px; text-anchor:middle;\" transform=\"rotate(0, 1379.9, 73.2)\" x=\"1379.9\" y=\"73.2\">5 Voxel Convergence Study</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip0800)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:66px; text-anchor:middle;\" transform=\"rotate(0, 1379.9, 1559.48)\" x=\"1379.9\" y=\"1559.48\">timestep</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip0800)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:66px; text-anchor:middle;\" transform=\"rotate(-90, 89.2861, 773.647)\" x=\"89.2861\" y=\"773.647\">displacement</text>\n",
       "</g>\n",
       "<polyline clip-path=\"url(#clip0802)\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  462.105,1209.98 463.023,1206.46 463.941,1200.48 464.858,1192.66 465.776,1183.43 466.694,1173.09 467.612,1161.87 468.529,1149.96 469.447,1137.5 470.365,1124.62 \n",
       "  471.283,1111.41 472.201,1097.95 473.118,1084.3 474.036,1070.52 474.954,1056.65 475.872,1042.73 476.79,1028.78 477.707,1014.84 478.625,1000.92 479.543,987.061 \n",
       "  480.461,973.266 481.379,959.559 482.296,945.958 483.214,932.481 484.132,919.147 485.05,905.972 485.968,892.976 486.885,880.175 487.803,867.589 488.721,855.233 \n",
       "  489.639,843.125 490.556,831.282 491.474,819.717 492.392,808.444 493.31,797.476 494.228,786.823 495.145,776.493 496.063,766.492 496.981,756.824 497.899,747.491 \n",
       "  498.817,738.491 499.734,729.822 500.652,721.477 501.57,713.447 502.488,705.721 503.406,698.287 504.323,691.128 505.241,684.226 506.159,677.562 507.077,671.115 \n",
       "  507.995,664.861 508.912,658.777 509.83,652.838 510.748,647.016 511.666,641.286 512.583,635.62 513.501,629.992 514.419,624.375 515.337,618.743 516.255,613.07 \n",
       "  517.172,607.331 518.09,601.502 519.008,595.562 519.926,589.488 520.844,583.263 521.761,576.868 522.679,570.287 523.597,563.508 524.515,556.518 525.433,549.308 \n",
       "  526.35,541.871 527.268,534.201 528.186,526.297 529.104,518.157 530.022,509.783 530.939,501.179 531.857,492.351 532.775,483.307 533.693,474.057 534.61,464.612 \n",
       "  535.528,454.987 536.446,445.196 537.364,435.256 538.282,425.187 539.199,415.006 540.117,404.735 541.035,394.396 541.953,384.01 542.871,373.602 543.788,363.196 \n",
       "  544.706,352.814 545.624,342.483 546.542,332.226 547.46,322.069 548.377,312.036 549.295,302.152 550.213,292.441 551.131,282.925 552.049,273.629 552.966,264.575 \n",
       "  553.884,255.784 554.802,247.276 555.72,239.073 556.637,231.191 557.555,223.65 558.473,216.465 559.391,209.652 560.309,203.225 561.226,197.196 562.144,191.578 \n",
       "  563.062,186.381 563.98,181.612 564.898,177.281 565.815,173.393 566.733,169.954 567.651,166.966 568.569,164.433 569.487,162.355 570.404,160.733 571.322,159.564 \n",
       "  572.24,158.848 573.158,158.579 574.076,158.754 574.993,159.367 575.911,160.412 576.829,161.88 577.747,163.764 578.664,166.055 579.582,168.742 580.5,171.816 \n",
       "  581.418,175.265 582.336,179.078 583.253,183.241 584.171,187.744 585.089,192.573 586.007,197.714 586.925,203.154 587.842,208.879 588.76,214.876 589.678,221.131 \n",
       "  590.596,227.628 591.514,234.356 592.431,241.298 593.349,248.442 594.267,255.774 595.185,263.279 596.103,270.946 597.02,278.759 597.938,286.707 598.856,294.777 \n",
       "  599.774,302.956 600.691,311.233 601.609,319.595 602.527,328.032 603.445,336.533 604.363,345.086 605.28,353.682 606.198,362.311 607.116,370.965 608.034,379.633 \n",
       "  608.952,388.307 609.869,396.981 610.787,405.645 611.705,414.293 612.623,422.917 613.541,431.513 614.458,440.072 615.376,448.591 616.294,457.064 617.212,465.485 \n",
       "  618.13,473.85 619.047,482.155 619.965,490.397 620.883,498.571 621.801,506.674 622.718,514.704 623.636,522.656 624.554,530.53 625.472,538.323 626.39,546.032 \n",
       "  627.307,553.655 628.225,561.192 629.143,568.64 630.061,575.998 630.979,583.264 631.896,590.438 632.814,597.519 633.732,604.505 634.65,611.396 635.568,618.191 \n",
       "  636.485,624.889 637.403,631.489 638.321,637.991 639.239,644.395 640.157,650.699 641.074,656.903 641.992,663.006 642.91,669.008 643.828,674.908 644.745,680.705 \n",
       "  645.663,686.399 646.581,691.989 647.499,697.475 648.417,702.855 649.334,708.129 650.252,713.295 651.17,718.354 652.088,723.304 653.006,728.144 653.923,732.874 \n",
       "  654.841,737.491 655.759,741.996 656.677,746.387 657.595,750.662 658.512,754.822 659.43,758.863 660.348,762.786 661.266,766.589 662.184,770.271 663.101,773.83 \n",
       "  664.019,777.266 664.937,780.576 665.855,783.76 666.772,786.816 667.69,789.743 668.608,792.54 669.526,795.205 670.444,797.737 671.361,800.135 672.279,802.398 \n",
       "  673.197,804.525 674.115,806.514 675.033,808.364 675.95,810.075 676.868,811.645 677.786,813.073 678.704,814.359 679.622,815.502 680.539,816.5 681.457,817.354 \n",
       "  682.375,818.063 683.293,818.626 684.211,819.043 685.128,819.313 686.046,819.436 686.964,819.412 687.882,819.242 688.799,818.924 689.717,818.459 690.635,817.848 \n",
       "  691.553,817.09 692.471,816.186 693.388,815.137 694.306,813.943 695.224,812.605 696.142,811.124 697.06,809.501 697.977,807.736 698.895,805.832 699.813,803.788 \n",
       "  700.731,801.607 701.649,799.291 702.566,796.84 703.484,794.257 704.402,791.543 705.32,788.7 706.238,785.731 707.155,782.636 708.073,779.42 708.991,776.083 \n",
       "  709.909,772.629 710.826,769.059 711.744,765.377 712.662,761.586 713.58,757.687 714.498,753.684 715.415,749.58 716.333,745.377 717.251,741.08 718.169,736.691 \n",
       "  719.087,732.213 720.004,727.65 720.922,723.005 721.84,718.282 722.758,713.484 723.676,708.614 724.593,703.677 725.511,698.675 726.429,693.614 727.347,688.496 \n",
       "  728.265,683.325 729.182,678.105 730.1,672.84 731.018,667.533 731.936,662.19 732.853,656.813 733.771,651.406 734.689,645.974 735.607,640.52 736.525,635.049 \n",
       "  737.442,629.564 738.36,624.069 739.278,618.568 740.196,613.065 741.114,607.564 742.031,602.069 742.949,596.584 743.867,591.113 744.785,585.658 745.703,580.225 \n",
       "  746.62,574.817 747.538,569.437 748.456,564.089 749.374,558.777 750.292,553.505 751.209,548.275 752.127,543.092 753.045,537.958 753.963,532.877 754.88,527.853 \n",
       "  755.798,522.888 756.716,517.986 757.634,513.149 758.552,508.381 759.469,503.685 760.387,499.063 761.305,494.518 762.223,490.054 763.141,485.671 764.058,481.374 \n",
       "  764.976,477.164 765.894,473.044 766.812,469.016 767.73,465.082 768.647,461.245 769.565,457.506 770.483,453.867 771.401,450.33 772.319,446.897 773.236,443.57 \n",
       "  774.154,440.35 775.072,437.238 775.99,434.235 776.907,431.344 777.825,428.566 778.743,425.9 779.661,423.349 780.579,420.913 781.496,418.594 782.414,416.391 \n",
       "  783.332,414.305 784.25,412.338 785.168,410.489 786.085,408.759 787.003,407.148 787.921,405.656 788.839,404.284 789.757,403.031 790.674,401.898 791.592,400.883 \n",
       "  792.51,399.988 793.428,399.212 794.346,398.554 795.263,398.014 796.181,397.591 797.099,397.286 798.017,397.096 798.934,397.022 799.852,397.062 800.77,397.216 \n",
       "  801.688,397.483 802.606,397.862 803.523,398.351 804.441,398.95 805.359,399.657 806.277,400.471 807.195,401.391 808.112,402.415 809.03,403.543 809.948,404.771 \n",
       "  810.866,406.1 811.784,407.527 812.701,409.051 813.619,410.67 814.537,412.383 815.455,414.187 816.373,416.081 817.29,418.062 818.208,420.13 819.126,422.282 \n",
       "  820.044,424.516 820.962,426.831 821.879,429.223 822.797,431.692 823.715,434.235 824.633,436.85 825.55,439.534 826.468,442.286 827.386,445.104 828.304,447.985 \n",
       "  829.222,450.927 830.139,453.928 831.057,456.985 831.975,460.096 832.893,463.26 833.811,466.473 834.728,469.733 835.646,473.038 836.564,476.386 837.482,479.774 \n",
       "  838.4,483.2 839.317,486.662 840.235,490.156 841.153,493.682 842.071,497.235 842.989,500.815 843.906,504.418 844.824,508.043 845.742,511.686 846.66,515.346 \n",
       "  847.577,519.02 848.495,522.706 849.413,526.401 850.331,530.103 851.249,533.81 852.166,537.519 853.084,541.229 854.002,544.936 854.92,548.638 855.838,552.334 \n",
       "  856.755,556.021 857.673,559.696 858.591,563.358 859.509,567.005 860.427,570.633 861.344,574.241 862.262,577.828 863.18,581.39 864.098,584.925 865.016,588.433 \n",
       "  865.933,591.909 866.851,595.354 867.769,598.764 868.687,602.138 869.604,605.473 870.522,608.769 871.44,612.022 872.358,615.232 873.276,618.397 874.193,621.514 \n",
       "  875.111,624.582 876.029,627.6 876.947,630.566 877.865,633.477 878.782,636.334 879.7,639.134 880.618,641.875 881.536,644.557 882.454,647.178 883.371,649.736 \n",
       "  884.289,652.231 885.207,654.661 886.125,657.025 887.043,659.322 887.96,661.551 888.878,663.711 889.796,665.8 890.714,667.818 891.631,669.764 892.549,671.637 \n",
       "  893.467,673.436 894.385,675.161 895.303,676.81 896.22,678.384 897.138,679.881 898.056,681.302 898.974,682.645 899.892,683.91 900.809,685.097 901.727,686.205 \n",
       "  902.645,687.235 903.563,688.185 904.481,689.056 905.398,689.848 906.316,690.561 907.234,691.193 908.152,691.747 909.07,692.221 909.987,692.616 910.905,692.932 \n",
       "  911.823,693.169 912.741,693.328 913.658,693.408 914.576,693.411 915.494,693.336 916.412,693.184 917.33,692.956 918.247,692.653 919.165,692.274 920.083,691.821 \n",
       "  921.001,691.293 921.919,690.693 922.836,690.021 923.754,689.277 924.672,688.463 925.59,687.579 926.508,686.627 927.425,685.607 928.343,684.521 929.261,683.369 \n",
       "  930.179,682.152 931.097,680.873 932.014,679.532 932.932,678.129 933.85,676.668 934.768,675.148 935.685,673.571 936.603,671.939 937.521,670.252 938.439,668.513 \n",
       "  939.357,666.722 940.274,664.882 941.192,662.993 942.11,661.057 943.028,659.076 943.946,657.052 944.863,654.984 945.781,652.877 946.699,650.73 947.617,648.546 \n",
       "  948.535,646.326 949.452,644.072 950.37,641.785 951.288,639.468 952.206,637.122 953.124,634.748 954.041,632.348 954.959,629.925 955.877,627.479 956.795,625.013 \n",
       "  957.712,622.527 958.63,620.025 959.548,617.507 960.466,614.976 961.384,612.432 962.301,609.878 963.219,607.316 964.137,604.747 965.055,602.173 965.973,599.595 \n",
       "  966.89,597.015 967.808,594.436 968.726,591.858 969.644,589.283 970.562,586.713 971.479,584.15 972.397,581.595 973.315,579.05 974.233,576.515 975.151,573.994 \n",
       "  976.068,571.487 976.986,568.997 977.904,566.523 978.822,564.069 979.739,561.635 980.657,559.223 981.575,556.834 982.493,554.47 983.411,552.132 984.328,549.821 \n",
       "  985.246,547.539 986.164,545.287 987.082,543.067 988,540.879 988.917,538.724 989.835,536.605 990.753,534.522 991.671,532.475 992.589,530.468 993.506,528.499 \n",
       "  994.424,526.571 995.342,524.684 996.26,522.839 997.178,521.038 998.095,519.281 999.013,517.569 999.931,515.902 1000.85,514.283 1001.77,512.71 1002.68,511.186 \n",
       "  1003.6,509.71 1004.52,508.284 1005.44,506.908 1006.36,505.583 1007.27,504.308 1008.19,503.086 1009.11,501.915 1010.03,500.797 1010.94,499.732 1011.86,498.72 \n",
       "  1012.78,497.762 1013.7,496.858 1014.62,496.008 1015.53,495.213 1016.45,494.472 1017.37,493.786 1018.29,493.154 1019.2,492.578 1020.12,492.056 1021.04,491.59 \n",
       "  1021.96,491.178 1022.88,490.821 1023.79,490.519 1024.71,490.272 1025.63,490.079 1026.55,489.94 1027.46,489.855 1028.38,489.824 1029.3,489.846 1030.22,489.922 \n",
       "  1031.14,490.05 1032.05,490.23 1032.97,490.463 1033.89,490.747 1034.81,491.081 1035.72,491.467 1036.64,491.902 1037.56,492.386 1038.48,492.919 1039.4,493.5 \n",
       "  1040.31,494.129 1041.23,494.804 1042.15,495.525 1043.07,496.292 1043.98,497.103 1044.9,497.957 1045.82,498.855 1046.74,499.795 1047.66,500.776 1048.57,501.797 \n",
       "  1049.49,502.858 1050.41,503.957 1051.33,505.094 1052.25,506.268 1053.16,507.478 1054.08,508.722 1055,510 1055.92,511.31 1056.83,512.652 1057.75,514.025 \n",
       "  1058.67,515.428 1059.59,516.859 1060.51,518.317 1061.42,519.802 1062.34,521.311 1063.26,522.845 1064.18,524.402 1065.09,525.981 1066.01,527.581 1066.93,529.2 \n",
       "  1067.85,530.837 1068.77,532.492 1069.68,534.162 1070.6,535.848 1071.52,537.547 1072.44,539.259 1073.35,540.983 1074.27,542.716 1075.19,544.459 1076.11,546.21 \n",
       "  1077.03,547.967 1077.94,549.73 1078.86,551.497 1079.78,553.268 1080.7,555.041 1081.61,556.814 1082.53,558.588 1083.45,560.36 1084.37,562.13 1085.29,563.896 \n",
       "  1086.2,565.657 1087.12,567.413 1088.04,569.162 1088.96,570.902 1089.87,572.634 1090.79,574.356 1091.71,576.067 1092.63,577.765 1093.55,579.45 1094.46,581.121 \n",
       "  1095.38,582.777 1096.3,584.417 1097.22,586.04 1098.13,587.645 1099.05,589.23 1099.97,590.796 1100.89,592.342 1101.81,593.865 1102.72,595.366 1103.64,596.844 \n",
       "  1104.56,598.298 1105.48,599.727 1106.39,601.13 1107.31,602.507 1108.23,603.856 1109.15,605.178 1110.07,606.471 1110.98,607.736 1111.9,608.97 1112.82,610.174 \n",
       "  1113.74,611.347 1114.65,612.488 1115.57,613.597 1116.49,614.673 1117.41,615.717 1118.33,616.726 1119.24,617.702 1120.16,618.643 1121.08,619.549 1122,620.42 \n",
       "  1122.91,621.255 1123.83,622.055 1124.75,622.818 1125.67,623.544 1126.59,624.234 1127.5,624.887 1128.42,625.502 1129.34,626.08 1130.26,626.621 1131.18,627.124 \n",
       "  1132.09,627.589 1133.01,628.017 1133.93,628.406 1134.85,628.758 1135.76,629.071 1136.68,629.347 1137.6,629.585 1138.52,629.786 1139.44,629.948 1140.35,630.073 \n",
       "  1141.27,630.161 1142.19,630.211 1143.11,630.225 1144.02,630.201 1144.94,630.141 1145.86,630.045 1146.78,629.912 1147.7,629.744 1148.61,629.541 1149.53,629.302 \n",
       "  1150.45,629.028 1151.37,628.72 1152.28,628.379 1153.2,628.003 1154.12,627.595 1155.04,627.154 1155.96,626.68 1156.87,626.175 1157.79,625.639 1158.71,625.073 \n",
       "  1159.63,624.476 1160.54,623.85 1161.46,623.194 1162.38,622.511 1163.3,621.8 1164.22,621.061 1165.13,620.296 1166.05,619.506 1166.97,618.69 1167.89,617.849 \n",
       "  1168.8,616.985 1169.72,616.098 1170.64,615.188 1171.56,614.257 1172.48,613.304 1173.39,612.332 1174.31,611.34 1175.23,610.329 1176.15,609.3 1177.06,608.254 \n",
       "  1177.98,607.192 1178.9,606.113 1179.82,605.021 1180.74,603.914 1181.65,602.793 1182.57,601.66 1183.49,600.516 1184.41,599.361 1185.32,598.195 1186.24,597.021 \n",
       "  1187.16,595.837 1188.08,594.647 1189,593.449 1189.91,592.245 1190.83,591.037 1191.75,589.823 1192.67,588.606 1193.58,587.387 1194.5,586.165 1195.42,584.942 \n",
       "  1196.34,583.719 1197.26,582.496 1198.17,581.274 1199.09,580.054 1200.01,578.837 1200.93,577.623 1201.85,576.414 1202.76,575.209 1203.68,574.01 1204.6,572.818 \n",
       "  1205.52,571.632 1206.43,570.455 1207.35,569.286 1208.27,568.127 1209.19,566.977 1210.11,565.839 1211.02,564.711 1211.94,563.595 1212.86,562.493 1213.78,561.403 \n",
       "  1214.69,560.327 1215.61,559.266 1216.53,558.22 1217.45,557.189 1218.37,556.175 1219.28,555.177 1220.2,554.197 1221.12,553.235 1222.04,552.291 1222.95,551.366 \n",
       "  1223.87,550.46 1224.79,549.574 1225.71,548.708 1226.63,547.863 1227.54,547.039 1228.46,546.236 1229.38,545.456 1230.3,544.698 1231.21,543.962 1232.13,543.249 \n",
       "  1233.05,542.56 1233.97,541.894 1234.89,541.252 1235.8,540.634 1236.72,540.04 1237.64,539.471 1238.56,538.927 1239.47,538.408 1240.39,537.914 1241.31,537.446 \n",
       "  1242.23,537.003 1243.15,536.586 1244.06,536.194 1244.98,535.829 1245.9,535.489 1246.82,535.176 1247.73,534.888 1248.65,534.627 1249.57,534.391 1250.49,534.182 \n",
       "  1251.41,533.999 1252.32,533.842 1253.24,533.711 1254.16,533.606 1255.08,533.527 1255.99,533.473 1256.91,533.445 1257.83,533.443 1258.75,533.466 1259.67,533.514 \n",
       "  1260.58,533.587 1261.5,533.685 1262.42,533.807 1263.34,533.954 1264.25,534.125 1265.17,534.32 1266.09,534.538 1267.01,534.78 1267.93,535.045 1268.84,535.332 \n",
       "  1269.76,535.642 1270.68,535.974 1271.6,536.327 1272.52,536.702 1273.43,537.098 1274.35,537.515 1275.27,537.952 1276.19,538.409 1277.1,538.885 1278.02,539.38 \n",
       "  1278.94,539.893 1279.86,540.425 1280.78,540.975 1281.69,541.541 1282.61,542.125 1283.53,542.725 1284.45,543.34 1285.36,543.971 1286.28,544.617 1287.2,545.277 \n",
       "  1288.12,545.951 1289.04,546.638 1289.95,547.338 1290.87,548.05 1291.79,548.774 1292.71,549.509 1293.62,550.254 1294.54,551.01 1295.46,551.775 1296.38,552.55 \n",
       "  1297.3,553.333 1298.21,554.123 1299.13,554.921 1300.05,555.726 1300.97,556.538 1301.88,557.354 1302.8,558.176 1303.72,559.003 1304.64,559.834 1305.56,560.668 \n",
       "  1306.47,561.504 1307.39,562.344 1308.31,563.185 1309.23,564.027 1310.14,564.87 1311.06,565.713 1311.98,566.556 1312.9,567.398 1313.82,568.239 1314.73,569.077 \n",
       "  1315.65,569.913 1316.57,570.746 1317.49,571.575 1318.4,572.4 1319.32,573.221 1320.24,574.037 1321.16,574.847 1322.08,575.651 1322.99,576.448 1323.91,577.239 \n",
       "  1324.83,578.022 1325.75,578.797 1326.66,579.564 1327.58,580.322 1328.5,581.071 1329.42,581.81 1330.34,582.539 1331.25,583.257 1332.17,583.965 1333.09,584.661 \n",
       "  1334.01,585.345 1334.92,586.018 1335.84,586.678 1336.76,587.326 1337.68,587.96 1338.6,588.581 1339.51,589.188 1340.43,589.781 1341.35,590.36 1342.27,590.924 \n",
       "  1343.18,591.474 1344.1,592.008 1345.02,592.527 1345.94,593.03 1346.86,593.517 1347.77,593.988 1348.69,594.443 1349.61,594.881 1350.53,595.303 1351.45,595.708 \n",
       "  1352.36,596.096 1353.28,596.466 1354.2,596.82 1355.12,597.156 1356.03,597.474 1356.95,597.775 1357.87,598.058 1358.79,598.323 1359.71,598.57 1360.62,598.8 \n",
       "  1361.54,599.011 1362.46,599.205 1363.38,599.38 1364.29,599.538 1365.21,599.677 1366.13,599.799 1367.05,599.903 1367.97,599.988 1368.88,600.056 1369.8,600.106 \n",
       "  1370.72,600.138 1371.64,600.153 1372.55,600.15 1373.47,600.13 1374.39,600.092 1375.31,600.037 1376.23,599.966 1377.14,599.877 1378.06,599.771 1378.98,599.649 \n",
       "  1379.9,599.511 1380.81,599.356 1381.73,599.185 1382.65,598.998 1383.57,598.796 1384.49,598.579 1385.4,598.346 1386.32,598.098 1387.24,597.836 1388.16,597.559 \n",
       "  1389.07,597.268 1389.99,596.964 1390.91,596.645 1391.83,596.314 1392.75,595.969 1393.66,595.612 1394.58,595.242 1395.5,594.86 1396.42,594.466 1397.33,594.061 \n",
       "  1398.25,593.645 1399.17,593.217 1400.09,592.78 1401.01,592.332 1401.92,591.875 1402.84,591.408 1403.76,590.932 1404.68,590.447 1405.59,589.954 1406.51,589.453 \n",
       "  1407.43,588.944 1408.35,588.428 1409.27,587.906 1410.18,587.376 1411.1,586.841 1412.02,586.3 1412.94,585.753 1413.85,585.202 1414.77,584.646 1415.69,584.086 \n",
       "  1416.61,583.522 1417.53,582.954 1418.44,582.384 1419.36,581.811 1420.28,581.235 1421.2,580.658 1422.12,580.079 1423.03,579.499 1423.95,578.918 1424.87,578.337 \n",
       "  1425.79,577.756 1426.7,577.175 1427.62,576.595 1428.54,576.016 1429.46,575.438 1430.38,574.862 1431.29,574.289 1432.21,573.718 1433.13,573.15 1434.05,572.585 \n",
       "  1434.96,572.024 1435.88,571.466 1436.8,570.913 1437.72,570.365 1438.64,569.821 1439.55,569.283 1440.47,568.75 1441.39,568.223 1442.31,567.702 1443.22,567.188 \n",
       "  1444.14,566.68 1445.06,566.18 1445.98,565.686 1446.9,565.201 1447.81,564.723 1448.73,564.253 1449.65,563.792 1450.57,563.339 1451.48,562.895 1452.4,562.46 \n",
       "  1453.32,562.034 1454.24,561.618 1455.16,561.212 1456.07,560.816 1456.99,560.429 1457.91,560.053 1458.83,559.688 1459.74,559.333 1460.66,558.989 1461.58,558.656 \n",
       "  1462.5,558.334 1463.42,558.024 1464.33,557.725 1465.25,557.437 1466.17,557.161 1467.09,556.897 1468,556.644 1468.92,556.404 1469.84,556.176 1470.76,555.959 \n",
       "  1471.68,555.755 1472.59,555.563 1473.51,555.384 1474.43,555.216 1475.35,555.061 1476.26,554.919 1477.18,554.789 1478.1,554.671 1479.02,554.566 1479.94,554.473 \n",
       "  1480.85,554.392 1481.77,554.324 1482.69,554.268 1483.61,554.225 1484.52,554.193 1485.44,554.174 1486.36,554.167 1487.28,554.172 1488.2,554.189 1489.11,554.219 \n",
       "  1490.03,554.259 1490.95,554.312 1491.87,554.376 1492.79,554.452 1493.7,554.539 1494.62,554.638 1495.54,554.747 1496.46,554.868 1497.37,554.999 1498.29,555.141 \n",
       "  1499.21,555.294 1500.13,555.457 1501.05,555.63 1501.96,555.814 1502.88,556.007 1503.8,556.21 1504.72,556.423 1505.63,556.645 1506.55,556.876 1507.47,557.115 \n",
       "  1508.39,557.364 1509.31,557.621 1510.22,557.887 1511.14,558.16 1512.06,558.441 1512.98,558.73 1513.89,559.027 1514.81,559.33 1515.73,559.641 1516.65,559.958 \n",
       "  1517.57,560.281 1518.48,560.611 1519.4,560.947 1520.32,561.288 1521.24,561.635 1522.15,561.987 1523.07,562.343 1523.99,562.705 1524.91,563.071 1525.83,563.441 \n",
       "  1526.74,563.815 1527.66,564.193 1528.58,564.574 1529.5,564.958 1530.41,565.345 1531.33,565.734 1532.25,566.126 1533.17,566.52 1534.09,566.915 1535,567.312 \n",
       "  1535.92,567.71 1536.84,568.11 1537.76,568.51 1538.67,568.91 1539.59,569.311 1540.51,569.711 1541.43,570.112 1542.35,570.511 1543.26,570.91 1544.18,571.308 \n",
       "  1545.1,571.705 1546.02,572.1 1546.93,572.493 1547.85,572.884 1548.77,573.272 1549.69,573.659 1550.61,574.042 1551.52,574.423 1552.44,574.8 1553.36,575.174 \n",
       "  1554.28,575.544 1555.19,575.91 1556.11,576.272 1557.03,576.63 1557.95,576.983 1558.87,577.332 1559.78,577.676 1560.7,578.015 1561.62,578.348 1562.54,578.676 \n",
       "  1563.46,578.998 1564.37,579.315 1565.29,579.625 1566.21,579.93 1567.13,580.228 1568.04,580.52 1568.96,580.805 1569.88,581.083 1570.8,581.354 1571.72,581.619 \n",
       "  1572.63,581.876 1573.55,582.126 1574.47,582.369 1575.39,582.604 1576.3,582.832 1577.22,583.051 1578.14,583.263 1579.06,583.468 1579.98,583.664 1580.89,583.852 \n",
       "  1581.81,584.032 1582.73,584.204 1583.65,584.367 1584.56,584.523 1585.48,584.67 1586.4,584.808 1587.32,584.938 1588.24,585.06 1589.15,585.173 1590.07,585.277 \n",
       "  1590.99,585.374 1591.91,585.461 1592.82,585.54 1593.74,585.61 1594.66,585.672 1595.58,585.726 1596.5,585.77 1597.41,585.807 1598.33,585.834 1599.25,585.854 \n",
       "  1600.17,585.865 1601.08,585.867 1602,585.862 1602.92,585.848 1603.84,585.826 1604.76,585.795 1605.67,585.757 1606.59,585.711 1607.51,585.656 1608.43,585.594 \n",
       "  1609.34,585.524 1610.26,585.447 1611.18,585.362 1612.1,585.269 1613.02,585.169 1613.93,585.062 1614.85,584.948 1615.77,584.827 1616.69,584.698 1617.6,584.563 \n",
       "  1618.52,584.422 1619.44,584.274 1620.36,584.119 1621.28,583.958 1622.19,583.791 1623.11,583.618 1624.03,583.44 1624.95,583.255 1625.86,583.065 1626.78,582.87 \n",
       "  1627.7,582.669 1628.62,582.464 1629.54,582.253 1630.45,582.038 1631.37,581.819 1632.29,581.594 1633.21,581.366 1634.12,581.134 1635.04,580.897 1635.96,580.657 \n",
       "  1636.88,580.414 1637.8,580.167 1638.71,579.917 1639.63,579.664 1640.55,579.408 1641.47,579.15 1642.39,578.889 1643.3,578.626 1644.22,578.36 1645.14,578.093 \n",
       "  1646.06,577.824 1646.97,577.554 1647.89,577.282 1648.81,577.009 1649.73,576.735 1650.65,576.461 1651.56,576.185 1652.48,575.909 1653.4,575.633 1654.32,575.357 \n",
       "  1655.23,575.081 1656.15,574.805 1657.07,574.53 1657.99,574.255 1658.91,573.981 1659.82,573.708 1660.74,573.436 1661.66,573.165 1662.58,572.896 1663.49,572.629 \n",
       "  1664.41,572.363 1665.33,572.099 1666.25,571.838 1667.17,571.578 1668.08,571.321 1669,571.067 1669.92,570.815 1670.84,570.566 1671.75,570.32 1672.67,570.077 \n",
       "  1673.59,569.838 1674.51,569.602 1675.43,569.369 1676.34,569.14 1677.26,568.915 1678.18,568.694 1679.1,568.477 1680.01,568.264 1680.93,568.055 1681.85,567.851 \n",
       "  1682.77,567.651 1683.69,567.456 1684.6,567.265 1685.52,567.079 1686.44,566.898 1687.36,566.722 1688.27,566.551 1689.19,566.385 1690.11,566.225 1691.03,566.069 \n",
       "  1691.95,565.919 1692.86,565.774 1693.78,565.635 1694.7,565.501 1695.62,565.373 1696.53,565.25 1697.45,565.133 1698.37,565.022 1699.29,564.917 1700.21,564.817 \n",
       "  1701.12,564.723 1702.04,564.635 1702.96,564.552 1703.88,564.476 1704.79,564.405 1705.71,564.341 1706.63,564.282 1707.55,564.229 1708.47,564.182 1709.38,564.141 \n",
       "  1710.3,564.106 1711.22,564.077 1712.14,564.053 1713.06,564.035 1713.97,564.024 1714.89,564.017 1715.81,564.017 1716.73,564.023 1717.64,564.034 1718.56,564.05 \n",
       "  1719.48,564.073 1720.4,564.101 1721.32,564.134 1722.23,564.173 1723.15,564.217 1724.07,564.267 1724.99,564.321 1725.9,564.381 1726.82,564.447 1727.74,564.517 \n",
       "  1728.66,564.592 1729.58,564.672 1730.49,564.757 1731.41,564.846 1732.33,564.941 1733.25,565.04 1734.16,565.143 1735.08,565.251 1736,565.362 1736.92,565.479 \n",
       "  1737.84,565.599 1738.75,565.723 1739.67,565.851 1740.59,565.983 1741.51,566.119 1742.42,566.258 1743.34,566.401 1744.26,566.546 1745.18,566.696 1746.1,566.848 \n",
       "  1747.01,567.003 1747.93,567.161 1748.85,567.322 1749.77,567.486 1750.68,567.652 1751.6,567.82 1752.52,567.991 1753.44,568.164 1754.36,568.339 1755.27,568.516 \n",
       "  1756.19,568.694 1757.11,568.875 1758.03,569.056 1758.94,569.24 1759.86,569.424 1760.78,569.61 1761.7,569.796 1762.62,569.984 1763.53,570.172 1764.45,570.361 \n",
       "  1765.37,570.551 1766.29,570.741 1767.2,570.931 1768.12,571.121 1769.04,571.312 1769.96,571.502 1770.88,571.692 1771.79,571.882 1772.71,572.071 1773.63,572.26 \n",
       "  1774.55,572.448 1775.46,572.635 1776.38,572.821 1777.3,573.007 1778.22,573.191 1779.14,573.374 1780.05,573.555 1780.97,573.735 1781.89,573.913 1782.81,574.09 \n",
       "  1783.73,574.265 1784.64,574.438 1785.56,574.609 1786.48,574.778 1787.4,574.945 1788.31,575.109 1789.23,575.272 1790.15,575.431 1791.07,575.588 1791.99,575.743 \n",
       "  1792.9,575.894 1793.82,576.043 1794.74,576.189 1795.66,576.333 1796.57,576.473 1797.49,576.61 1798.41,576.743 1799.33,576.874 1800.25,577.001 1801.16,577.125 \n",
       "  1802.08,577.246 1803,577.363 1803.92,577.476 1804.83,577.586 1805.75,577.692 1806.67,577.795 1807.59,577.893 1808.51,577.988 1809.42,578.08 1810.34,578.167 \n",
       "  1811.26,578.251 1812.18,578.33 1813.09,578.406 1814.01,578.478 1814.93,578.545 1815.85,578.609 1816.77,578.669 1817.68,578.724 1818.6,578.776 1819.52,578.824 \n",
       "  1820.44,578.867 1821.35,578.907 1822.27,578.942 1823.19,578.973 1824.11,579.001 1825.03,579.024 1825.94,579.043 1826.86,579.058 1827.78,579.069 1828.7,579.077 \n",
       "  1829.61,579.08 1830.53,579.079 1831.45,579.074 1832.37,579.065 1833.29,579.053 1834.2,579.037 1835.12,579.016 1836.04,578.992 1836.96,578.965 1837.87,578.933 \n",
       "  1838.79,578.898 1839.71,578.859 1840.63,578.817 1841.55,578.771 1842.46,578.722 1843.38,578.669 1844.3,578.613 1845.22,578.554 1846.13,578.491 1847.05,578.426 \n",
       "  1847.97,578.357 1848.89,578.285 1849.81,578.21 1850.72,578.132 1851.64,578.051 1852.56,577.967 1853.48,577.881 1854.39,577.792 1855.31,577.7 1856.23,577.606 \n",
       "  1857.15,577.51 1858.07,577.411 1858.98,577.31 1859.9,577.206 1860.82,577.101 1861.74,576.993 1862.66,576.884 1863.57,576.772 1864.49,576.659 1865.41,576.544 \n",
       "  1866.33,576.428 1867.24,576.31 1868.16,576.19 1869.08,576.069 1870,575.947 1870.92,575.823 1871.83,575.699 1872.75,575.573 1873.67,575.447 1874.59,575.319 \n",
       "  1875.5,575.191 1876.42,575.062 1877.34,574.933 1878.26,574.803 1879.18,574.673 1880.09,574.542 1881.01,574.411 1881.93,574.28 1882.85,574.149 1883.76,574.017 \n",
       "  1884.68,573.886 1885.6,573.755 1886.52,573.625 1887.44,573.494 1888.35,573.364 1889.27,573.235 1890.19,573.106 1891.11,572.978 1892.02,572.85 1892.94,572.724 \n",
       "  1893.86,572.598 1894.78,572.473 1895.7,572.349 1896.61,572.226 1897.53,572.105 1898.45,571.985 1899.37,571.866 1900.28,571.748 1901.2,571.632 1902.12,571.518 \n",
       "  1903.04,571.405 1903.96,571.293 1904.87,571.184 1905.79,571.076 1906.71,570.97 1907.63,570.866 1908.54,570.764 1909.46,570.664 1910.38,570.566 1911.3,570.47 \n",
       "  1912.22,570.376 1913.13,570.284 1914.05,570.195 1914.97,570.108 1915.89,570.023 1916.8,569.94 1917.72,569.86 1918.64,569.783 1919.56,569.708 1920.48,569.635 \n",
       "  1921.39,569.565 1922.31,569.498 1923.23,569.433 1924.15,569.371 1925.06,569.311 1925.98,569.254 1926.9,569.2 1927.82,569.149 1928.74,569.1 1929.65,569.054 \n",
       "  1930.57,569.011 1931.49,568.97 1932.41,568.933 1933.33,568.898 1934.24,568.866 1935.16,568.837 1936.08,568.81 1937,568.786 1937.91,568.766 1938.83,568.747 \n",
       "  1939.75,568.732 1940.67,568.72 1941.59,568.71 1942.5,568.703 1943.42,568.699 1944.34,568.697 1945.26,568.699 1946.17,568.703 1947.09,568.709 1948.01,568.719 \n",
       "  1948.93,568.731 1949.85,568.745 1950.76,568.763 1951.68,568.782 1952.6,568.805 1953.52,568.829 1954.43,568.857 1955.35,568.887 1956.27,568.919 1957.19,568.953 \n",
       "  1958.11,568.99 1959.02,569.03 1959.94,569.071 1960.86,569.115 1961.78,569.161 1962.69,569.209 1963.61,569.259 1964.53,569.311 1965.45,569.366 1966.37,569.422 \n",
       "  1967.28,569.48 1968.2,569.54 1969.12,569.602 1970.04,569.665 1970.95,569.731 1971.87,569.798 1972.79,569.866 1973.71,569.936 1974.63,570.008 1975.54,570.081 \n",
       "  1976.46,570.156 1977.38,570.231 1978.3,570.309 1979.21,570.387 1980.13,570.466 1981.05,570.547 1981.97,570.629 1982.89,570.711 1983.8,570.795 1984.72,570.879 \n",
       "  1985.64,570.965 1986.56,571.051 1987.47,571.138 1988.39,571.225 1989.31,571.313 1990.23,571.401 1991.15,571.49 1992.06,571.58 1992.98,571.669 1993.9,571.759 \n",
       "  1994.82,571.849 1995.73,571.94 1996.65,572.03 1997.57,572.121 1998.49,572.211 1999.41,572.301 2000.32,572.392 2001.24,572.482 2002.16,572.572 2003.08,572.661 \n",
       "  2004,572.75 2004.91,572.839 2005.83,572.927 2006.75,573.015 2007.67,573.102 2008.58,573.189 2009.5,573.275 2010.42,573.36 2011.34,573.444 2012.26,573.528 \n",
       "  2013.17,573.61 2014.09,573.692 2015.01,573.773 2015.93,573.853 2016.84,573.931 2017.76,574.009 2018.68,574.085 2019.6,574.16 2020.52,574.234 2021.43,574.307 \n",
       "  2022.35,574.379 2023.27,574.449 2024.19,574.517 2025.1,574.585 2026.02,574.65 2026.94,574.715 2027.86,574.777 2028.78,574.839 2029.69,574.898 2030.61,574.956 \n",
       "  2031.53,575.013 2032.45,575.067 2033.36,575.12 2034.28,575.172 2035.2,575.221 2036.12,575.269 2037.04,575.315 2037.95,575.359 2038.87,575.402 2039.79,575.442 \n",
       "  2040.71,575.481 2041.62,575.518 2042.54,575.553 2043.46,575.586 2044.38,575.617 2045.3,575.647 2046.21,575.674 2047.13,575.699 2048.05,575.723 2048.97,575.745 \n",
       "  2049.88,575.764 2050.8,575.782 2051.72,575.798 2052.64,575.812 2053.56,575.824 2054.47,575.834 2055.39,575.842 2056.31,575.848 2057.23,575.852 2058.14,575.855 \n",
       "  2059.06,575.855 2059.98,575.854 2060.9,575.851 2061.82,575.846 2062.73,575.839 2063.65,575.83 2064.57,575.819 2065.49,575.807 2066.4,575.793 2067.32,575.777 \n",
       "  2068.24,575.76 2069.16,575.74 2070.08,575.719 2070.99,575.697 2071.91,575.672 2072.83,575.647 2073.75,575.619 2074.67,575.59 2075.58,575.56 2076.5,575.528 \n",
       "  2077.42,575.494 2078.34,575.459 2079.25,575.423 2080.17,575.385 2081.09,575.346 2082.01,575.305 2082.93,575.264 2083.84,575.221 2084.76,575.177 2085.68,575.131 \n",
       "  2086.6,575.085 2087.51,575.037 2088.43,574.989 2089.35,574.939 2090.27,574.888 2091.19,574.837 2092.1,574.784 2093.02,574.731 2093.94,574.677 2094.86,574.622 \n",
       "  2095.77,574.566 2096.69,574.51 2097.61,574.452 2098.53,574.395 2099.45,574.336 2100.36,574.277 2101.28,574.218 2102.2,574.158 2103.12,574.098 2104.03,574.037 \n",
       "  2104.95,573.976 2105.87,573.914 2106.79,573.853 2107.71,573.791 2108.62,573.729 2109.54,573.667 2110.46,573.605 2111.38,573.542 2112.29,573.48 2113.21,573.417 \n",
       "  2114.13,573.355 2115.05,573.293 2115.97,573.231 2116.88,573.169 2117.8,573.108 2118.72,573.046 2119.64,572.985 2120.55,572.924 2121.47,572.864 2122.39,572.804 \n",
       "  2123.31,572.744 2124.23,572.685 2125.14,572.627 2126.06,572.569 2126.98,572.511 2127.9,572.455 2128.81,572.398 2129.73,572.343 2130.65,572.288 2131.57,572.234 \n",
       "  2132.49,572.181 2133.4,572.128 2134.32,572.077 2135.24,572.026 2136.16,571.976 2137.07,571.927 2137.99,571.879 2138.91,571.832 2139.83,571.786 2140.75,571.741 \n",
       "  2141.66,571.697 2142.58,571.654 2143.5,571.612 2144.42,571.571 2145.33,571.531 2146.25,571.493 2147.17,571.455 2148.09,571.419 2149.01,571.384 2149.92,571.35 \n",
       "  2150.84,571.318 2151.76,571.286 2152.68,571.256 2153.6,571.227 2154.51,571.2 2155.43,571.173 2156.35,571.148 2157.27,571.124 2158.18,571.102 2159.1,571.081 \n",
       "  2160.02,571.061 2160.94,571.042 2161.86,571.025 2162.77,571.009 2163.69,570.995 2164.61,570.982 2165.53,570.97 2166.44,570.959 2167.36,570.95 2168.28,570.942 \n",
       "  2169.2,570.936 2170.12,570.93 2171.03,570.926 2171.95,570.924 2172.87,570.922 2173.79,570.922 2174.7,570.924 2175.62,570.926 2176.54,570.93 2177.46,570.935 \n",
       "  2178.38,570.942 2179.29,570.949 2180.21,570.958 2181.13,570.968 2182.05,570.979 2182.96,570.992 2183.88,571.005 2184.8,571.02 2185.72,571.036 2186.64,571.053 \n",
       "  2187.55,571.071 2188.47,571.09 2189.39,571.111 2190.31,571.132 2191.22,571.154 2192.14,571.178 2193.06,571.202 2193.98,571.227 2194.9,571.254 2195.81,571.281 \n",
       "  2196.73,571.309 2197.65,571.338 2198.57,571.368 2199.48,571.398 2200.4,571.43 2201.32,571.462 2202.24,571.495 2203.16,571.529 2204.07,571.563 2204.99,571.598 \n",
       "  2205.91,571.634 2206.83,571.67 2207.74,571.707 2208.66,571.745 2209.58,571.783 2210.5,571.821 2211.42,571.861 2212.33,571.9 2213.25,571.94 2214.17,571.98 \n",
       "  2215.09,572.021 2216,572.062 2216.92,572.104 2217.84,572.145 2218.76,572.187 2219.68,572.229 2220.59,572.272 2221.51,572.314 2222.43,572.357 2223.35,572.4 \n",
       "  2224.27,572.443 2225.18,572.486 2226.1,572.528 2227.02,572.571 2227.94,572.614 2228.85,572.657 2229.77,572.7 2230.69,572.743 2231.61,572.786 2232.53,572.828 \n",
       "  2233.44,572.87 2234.36,572.912 2235.28,572.954 2236.2,572.996 2237.11,573.037 2238.03,573.078 2238.95,573.119 2239.87,573.159 2240.79,573.199 2241.7,573.238 \n",
       "  2242.62,573.277 2243.54,573.316 2244.46,573.354 2245.37,573.392 2246.29,573.429 2247.21,573.465 2248.13,573.501 2249.05,573.537 2249.96,573.572 2250.88,573.606 \n",
       "  2251.8,573.64 2252.72,573.672 2253.63,573.705 2254.55,573.736 2255.47,573.767 2256.39,573.797 2257.31,573.827 2258.22,573.856 2259.14,573.884 2260.06,573.911 \n",
       "  2260.98,573.937 2261.89,573.963 2262.81,573.987 2263.73,574.011 2264.65,574.035 2265.57,574.057 2266.48,574.078 2267.4,574.099 2268.32,574.118 2269.24,574.137 \n",
       "  2270.15,574.155 2271.07,574.172 2271.99,574.188 2272.91,574.204 2273.83,574.218 2274.74,574.232 2275.66,574.244 2276.58,574.256 2277.5,574.266 2278.41,574.276 \n",
       "  2279.33,574.285 2280.25,574.293 2281.17,574.3 2282.09,574.306 2283,574.311 2283.92,574.316 2284.84,574.319 2285.76,574.322 2286.67,574.323 2287.59,574.324 \n",
       "  2288.51,574.324 2289.43,574.323 2290.35,574.321 2291.26,574.318 2292.18,574.314 2293.1,574.309 2294.02,574.304 2294.94,574.298 2295.85,574.29 2296.77,574.283 \n",
       "  2297.69,574.274 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip0802)\" style=\"stroke:#e26f46; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  462.105,1388.71 463.023,1388.71 463.941,1388.71 464.858,1388.71 465.776,1388.71 466.694,1388.71 467.612,1388.71 468.529,1388.71 469.447,1388.71 470.365,1388.71 \n",
       "  471.283,1388.71 472.201,1388.71 473.118,1388.71 474.036,1388.71 474.954,1388.71 475.872,1388.71 476.79,1388.71 477.707,1388.71 478.625,1388.71 479.543,1388.71 \n",
       "  480.461,1388.71 481.379,1388.71 482.296,1388.71 483.214,1388.71 484.132,1388.71 485.05,1388.71 485.968,1388.71 486.885,1388.71 487.803,1388.71 488.721,1388.71 \n",
       "  489.639,1388.71 490.556,1388.71 491.474,1388.71 492.392,1388.71 493.31,1388.71 494.228,1388.71 495.145,1388.71 496.063,1388.71 496.981,1388.71 497.899,1388.71 \n",
       "  498.817,1388.71 499.734,1388.71 500.652,1388.71 501.57,1388.71 502.488,1388.71 503.406,1388.71 504.323,1388.71 505.241,1388.71 506.159,1388.71 507.077,1388.71 \n",
       "  507.995,1388.71 508.912,1388.71 509.83,1388.71 510.748,1388.71 511.666,1388.71 512.583,1388.71 513.501,1388.71 514.419,1388.71 515.337,1388.71 516.255,1388.71 \n",
       "  517.172,1388.71 518.09,1388.71 519.008,1388.71 519.926,1388.71 520.844,1388.71 521.761,1388.71 522.679,1388.71 523.597,1388.71 524.515,1388.71 525.433,1388.71 \n",
       "  526.35,1388.71 527.268,1388.71 528.186,1388.71 529.104,1388.71 530.022,1388.71 530.939,1388.71 531.857,1388.71 532.775,1388.71 533.693,1388.71 534.61,1388.71 \n",
       "  535.528,1388.71 536.446,1388.71 537.364,1388.71 538.282,1388.71 539.199,1388.71 540.117,1388.71 541.035,1388.71 541.953,1388.71 542.871,1388.71 543.788,1388.71 \n",
       "  544.706,1388.71 545.624,1388.71 546.542,1388.71 547.46,1388.71 548.377,1388.71 549.295,1388.71 550.213,1388.71 551.131,1388.71 552.049,1388.71 552.966,1388.71 \n",
       "  553.884,1388.71 554.802,1388.71 555.72,1388.71 556.637,1388.71 557.555,1388.71 558.473,1388.71 559.391,1388.71 560.309,1388.71 561.226,1388.71 562.144,1388.71 \n",
       "  563.062,1388.71 563.98,1388.71 564.898,1388.71 565.815,1388.71 566.733,1388.71 567.651,1388.71 568.569,1388.71 569.487,1388.71 570.404,1388.71 571.322,1388.71 \n",
       "  572.24,1388.71 573.158,1388.71 574.076,1388.71 574.993,1388.71 575.911,1388.71 576.829,1388.71 577.747,1388.71 578.664,1388.71 579.582,1388.71 580.5,1388.71 \n",
       "  581.418,1388.71 582.336,1388.71 583.253,1388.71 584.171,1388.71 585.089,1388.71 586.007,1388.71 586.925,1388.71 587.842,1388.71 588.76,1388.71 589.678,1388.71 \n",
       "  590.596,1388.71 591.514,1388.71 592.431,1388.71 593.349,1388.71 594.267,1388.71 595.185,1388.71 596.103,1388.71 597.02,1388.71 597.938,1388.71 598.856,1388.71 \n",
       "  599.774,1388.71 600.691,1388.71 601.609,1388.71 602.527,1388.71 603.445,1388.71 604.363,1388.71 605.28,1388.71 606.198,1388.71 607.116,1388.71 608.034,1388.71 \n",
       "  608.952,1388.71 609.869,1388.71 610.787,1388.71 611.705,1388.71 612.623,1388.71 613.541,1388.71 614.458,1388.71 615.376,1388.71 616.294,1388.71 617.212,1388.71 \n",
       "  618.13,1388.71 619.047,1388.71 619.965,1388.71 620.883,1388.71 621.801,1388.71 622.718,1388.71 623.636,1388.71 624.554,1388.71 625.472,1388.71 626.39,1388.71 \n",
       "  627.307,1388.71 628.225,1388.71 629.143,1388.71 630.061,1388.71 630.979,1388.71 631.896,1388.71 632.814,1388.71 633.732,1388.71 634.65,1388.71 635.568,1388.71 \n",
       "  636.485,1388.71 637.403,1388.71 638.321,1388.71 639.239,1388.71 640.157,1388.71 641.074,1388.71 641.992,1388.71 642.91,1388.71 643.828,1388.71 644.745,1388.71 \n",
       "  645.663,1388.71 646.581,1388.71 647.499,1388.71 648.417,1388.71 649.334,1388.71 650.252,1388.71 651.17,1388.71 652.088,1388.71 653.006,1388.71 653.923,1388.71 \n",
       "  654.841,1388.71 655.759,1388.71 656.677,1388.71 657.595,1388.71 658.512,1388.71 659.43,1388.71 660.348,1388.71 661.266,1388.71 662.184,1388.71 663.101,1388.71 \n",
       "  664.019,1388.71 664.937,1388.71 665.855,1388.71 666.772,1388.71 667.69,1388.71 668.608,1388.71 669.526,1388.71 670.444,1388.71 671.361,1388.71 672.279,1388.71 \n",
       "  673.197,1388.71 674.115,1388.71 675.033,1388.71 675.95,1388.71 676.868,1388.71 677.786,1388.71 678.704,1388.71 679.622,1388.71 680.539,1388.71 681.457,1388.71 \n",
       "  682.375,1388.71 683.293,1388.71 684.211,1388.71 685.128,1388.71 686.046,1388.71 686.964,1388.71 687.882,1388.71 688.799,1388.71 689.717,1388.71 690.635,1388.71 \n",
       "  691.553,1388.71 692.471,1388.71 693.388,1388.71 694.306,1388.71 695.224,1388.71 696.142,1388.71 697.06,1388.71 697.977,1388.71 698.895,1388.71 699.813,1388.71 \n",
       "  700.731,1388.71 701.649,1388.71 702.566,1388.71 703.484,1388.71 704.402,1388.71 705.32,1388.71 706.238,1388.71 707.155,1388.71 708.073,1388.71 708.991,1388.71 \n",
       "  709.909,1388.71 710.826,1388.71 711.744,1388.71 712.662,1388.71 713.58,1388.71 714.498,1388.71 715.415,1388.71 716.333,1388.71 717.251,1388.71 718.169,1388.71 \n",
       "  719.087,1388.71 720.004,1388.71 720.922,1388.71 721.84,1388.71 722.758,1388.71 723.676,1388.71 724.593,1388.71 725.511,1388.71 726.429,1388.71 727.347,1388.71 \n",
       "  728.265,1388.71 729.182,1388.71 730.1,1388.71 731.018,1388.71 731.936,1388.71 732.853,1388.71 733.771,1388.71 734.689,1388.71 735.607,1388.71 736.525,1388.71 \n",
       "  737.442,1388.71 738.36,1388.71 739.278,1388.71 740.196,1388.71 741.114,1388.71 742.031,1388.71 742.949,1388.71 743.867,1388.71 744.785,1388.71 745.703,1388.71 \n",
       "  746.62,1388.71 747.538,1388.71 748.456,1388.71 749.374,1388.71 750.292,1388.71 751.209,1388.71 752.127,1388.71 753.045,1388.71 753.963,1388.71 754.88,1388.71 \n",
       "  755.798,1388.71 756.716,1388.71 757.634,1388.71 758.552,1388.71 759.469,1388.71 760.387,1388.71 761.305,1388.71 762.223,1388.71 763.141,1388.71 764.058,1388.71 \n",
       "  764.976,1388.71 765.894,1388.71 766.812,1388.71 767.73,1388.71 768.647,1388.71 769.565,1388.71 770.483,1388.71 771.401,1388.71 772.319,1388.71 773.236,1388.71 \n",
       "  774.154,1388.71 775.072,1388.71 775.99,1388.71 776.907,1388.71 777.825,1388.71 778.743,1388.71 779.661,1388.71 780.579,1388.71 781.496,1388.71 782.414,1388.71 \n",
       "  783.332,1388.71 784.25,1388.71 785.168,1388.71 786.085,1388.71 787.003,1388.71 787.921,1388.71 788.839,1388.71 789.757,1388.71 790.674,1388.71 791.592,1388.71 \n",
       "  792.51,1388.71 793.428,1388.71 794.346,1388.71 795.263,1388.71 796.181,1388.71 797.099,1388.71 798.017,1388.71 798.934,1388.71 799.852,1388.71 800.77,1388.71 \n",
       "  801.688,1388.71 802.606,1388.71 803.523,1388.71 804.441,1388.71 805.359,1388.71 806.277,1388.71 807.195,1388.71 808.112,1388.71 809.03,1388.71 809.948,1388.71 \n",
       "  810.866,1388.71 811.784,1388.71 812.701,1388.71 813.619,1388.71 814.537,1388.71 815.455,1388.71 816.373,1388.71 817.29,1388.71 818.208,1388.71 819.126,1388.71 \n",
       "  820.044,1388.71 820.962,1388.71 821.879,1388.71 822.797,1388.71 823.715,1388.71 824.633,1388.71 825.55,1388.71 826.468,1388.71 827.386,1388.71 828.304,1388.71 \n",
       "  829.222,1388.71 830.139,1388.71 831.057,1388.71 831.975,1388.71 832.893,1388.71 833.811,1388.71 834.728,1388.71 835.646,1388.71 836.564,1388.71 837.482,1388.71 \n",
       "  838.4,1388.71 839.317,1388.71 840.235,1388.71 841.153,1388.71 842.071,1388.71 842.989,1388.71 843.906,1388.71 844.824,1388.71 845.742,1388.71 846.66,1388.71 \n",
       "  847.577,1388.71 848.495,1388.71 849.413,1388.71 850.331,1388.71 851.249,1388.71 852.166,1388.71 853.084,1388.71 854.002,1388.71 854.92,1388.71 855.838,1388.71 \n",
       "  856.755,1388.71 857.673,1388.71 858.591,1388.71 859.509,1388.71 860.427,1388.71 861.344,1388.71 862.262,1388.71 863.18,1388.71 864.098,1388.71 865.016,1388.71 \n",
       "  865.933,1388.71 866.851,1388.71 867.769,1388.71 868.687,1388.71 869.604,1388.71 870.522,1388.71 871.44,1388.71 872.358,1388.71 873.276,1388.71 874.193,1388.71 \n",
       "  875.111,1388.71 876.029,1388.71 876.947,1388.71 877.865,1388.71 878.782,1388.71 879.7,1388.71 880.618,1388.71 881.536,1388.71 882.454,1388.71 883.371,1388.71 \n",
       "  884.289,1388.71 885.207,1388.71 886.125,1388.71 887.043,1388.71 887.96,1388.71 888.878,1388.71 889.796,1388.71 890.714,1388.71 891.631,1388.71 892.549,1388.71 \n",
       "  893.467,1388.71 894.385,1388.71 895.303,1388.71 896.22,1388.71 897.138,1388.71 898.056,1388.71 898.974,1388.71 899.892,1388.71 900.809,1388.71 901.727,1388.71 \n",
       "  902.645,1388.71 903.563,1388.71 904.481,1388.71 905.398,1388.71 906.316,1388.71 907.234,1388.71 908.152,1388.71 909.07,1388.71 909.987,1388.71 910.905,1388.71 \n",
       "  911.823,1388.71 912.741,1388.71 913.658,1388.71 914.576,1388.71 915.494,1388.71 916.412,1388.71 917.33,1388.71 918.247,1388.71 919.165,1388.71 920.083,1388.71 \n",
       "  921.001,1388.71 921.919,1388.71 922.836,1388.71 923.754,1388.71 924.672,1388.71 925.59,1388.71 926.508,1388.71 927.425,1388.71 928.343,1388.71 929.261,1388.71 \n",
       "  930.179,1388.71 931.097,1388.71 932.014,1388.71 932.932,1388.71 933.85,1388.71 934.768,1388.71 935.685,1388.71 936.603,1388.71 937.521,1388.71 938.439,1388.71 \n",
       "  939.357,1388.71 940.274,1388.71 941.192,1388.71 942.11,1388.71 943.028,1388.71 943.946,1388.71 944.863,1388.71 945.781,1388.71 946.699,1388.71 947.617,1388.71 \n",
       "  948.535,1388.71 949.452,1388.71 950.37,1388.71 951.288,1388.71 952.206,1388.71 953.124,1388.71 954.041,1388.71 954.959,1388.71 955.877,1388.71 956.795,1388.71 \n",
       "  957.712,1388.71 958.63,1388.71 959.548,1388.71 960.466,1388.71 961.384,1388.71 962.301,1388.71 963.219,1388.71 964.137,1388.71 965.055,1388.71 965.973,1388.71 \n",
       "  966.89,1388.71 967.808,1388.71 968.726,1388.71 969.644,1388.71 970.562,1388.71 971.479,1388.71 972.397,1388.71 973.315,1388.71 974.233,1388.71 975.151,1388.71 \n",
       "  976.068,1388.71 976.986,1388.71 977.904,1388.71 978.822,1388.71 979.739,1388.71 980.657,1388.71 981.575,1388.71 982.493,1388.71 983.411,1388.71 984.328,1388.71 \n",
       "  985.246,1388.71 986.164,1388.71 987.082,1388.71 988,1388.71 988.917,1388.71 989.835,1388.71 990.753,1388.71 991.671,1388.71 992.589,1388.71 993.506,1388.71 \n",
       "  994.424,1388.71 995.342,1388.71 996.26,1388.71 997.178,1388.71 998.095,1388.71 999.013,1388.71 999.931,1388.71 1000.85,1388.71 1001.77,1388.71 1002.68,1388.71 \n",
       "  1003.6,1388.71 1004.52,1388.71 1005.44,1388.71 1006.36,1388.71 1007.27,1388.71 1008.19,1388.71 1009.11,1388.71 1010.03,1388.71 1010.94,1388.71 1011.86,1388.71 \n",
       "  1012.78,1388.71 1013.7,1388.71 1014.62,1388.71 1015.53,1388.71 1016.45,1388.71 1017.37,1388.71 1018.29,1388.71 1019.2,1388.71 1020.12,1388.71 1021.04,1388.71 \n",
       "  1021.96,1388.71 1022.88,1388.71 1023.79,1388.71 1024.71,1388.71 1025.63,1388.71 1026.55,1388.71 1027.46,1388.71 1028.38,1388.71 1029.3,1388.71 1030.22,1388.71 \n",
       "  1031.14,1388.71 1032.05,1388.71 1032.97,1388.71 1033.89,1388.71 1034.81,1388.71 1035.72,1388.71 1036.64,1388.71 1037.56,1388.71 1038.48,1388.71 1039.4,1388.71 \n",
       "  1040.31,1388.71 1041.23,1388.71 1042.15,1388.71 1043.07,1388.71 1043.98,1388.71 1044.9,1388.71 1045.82,1388.71 1046.74,1388.71 1047.66,1388.71 1048.57,1388.71 \n",
       "  1049.49,1388.71 1050.41,1388.71 1051.33,1388.71 1052.25,1388.71 1053.16,1388.71 1054.08,1388.71 1055,1388.71 1055.92,1388.71 1056.83,1388.71 1057.75,1388.71 \n",
       "  1058.67,1388.71 1059.59,1388.71 1060.51,1388.71 1061.42,1388.71 1062.34,1388.71 1063.26,1388.71 1064.18,1388.71 1065.09,1388.71 1066.01,1388.71 1066.93,1388.71 \n",
       "  1067.85,1388.71 1068.77,1388.71 1069.68,1388.71 1070.6,1388.71 1071.52,1388.71 1072.44,1388.71 1073.35,1388.71 1074.27,1388.71 1075.19,1388.71 1076.11,1388.71 \n",
       "  1077.03,1388.71 1077.94,1388.71 1078.86,1388.71 1079.78,1388.71 1080.7,1388.71 1081.61,1388.71 1082.53,1388.71 1083.45,1388.71 1084.37,1388.71 1085.29,1388.71 \n",
       "  1086.2,1388.71 1087.12,1388.71 1088.04,1388.71 1088.96,1388.71 1089.87,1388.71 1090.79,1388.71 1091.71,1388.71 1092.63,1388.71 1093.55,1388.71 1094.46,1388.71 \n",
       "  1095.38,1388.71 1096.3,1388.71 1097.22,1388.71 1098.13,1388.71 1099.05,1388.71 1099.97,1388.71 1100.89,1388.71 1101.81,1388.71 1102.72,1388.71 1103.64,1388.71 \n",
       "  1104.56,1388.71 1105.48,1388.71 1106.39,1388.71 1107.31,1388.71 1108.23,1388.71 1109.15,1388.71 1110.07,1388.71 1110.98,1388.71 1111.9,1388.71 1112.82,1388.71 \n",
       "  1113.74,1388.71 1114.65,1388.71 1115.57,1388.71 1116.49,1388.71 1117.41,1388.71 1118.33,1388.71 1119.24,1388.71 1120.16,1388.71 1121.08,1388.71 1122,1388.71 \n",
       "  1122.91,1388.71 1123.83,1388.71 1124.75,1388.71 1125.67,1388.71 1126.59,1388.71 1127.5,1388.71 1128.42,1388.71 1129.34,1388.71 1130.26,1388.71 1131.18,1388.71 \n",
       "  1132.09,1388.71 1133.01,1388.71 1133.93,1388.71 1134.85,1388.71 1135.76,1388.71 1136.68,1388.71 1137.6,1388.71 1138.52,1388.71 1139.44,1388.71 1140.35,1388.71 \n",
       "  1141.27,1388.71 1142.19,1388.71 1143.11,1388.71 1144.02,1388.71 1144.94,1388.71 1145.86,1388.71 1146.78,1388.71 1147.7,1388.71 1148.61,1388.71 1149.53,1388.71 \n",
       "  1150.45,1388.71 1151.37,1388.71 1152.28,1388.71 1153.2,1388.71 1154.12,1388.71 1155.04,1388.71 1155.96,1388.71 1156.87,1388.71 1157.79,1388.71 1158.71,1388.71 \n",
       "  1159.63,1388.71 1160.54,1388.71 1161.46,1388.71 1162.38,1388.71 1163.3,1388.71 1164.22,1388.71 1165.13,1388.71 1166.05,1388.71 1166.97,1388.71 1167.89,1388.71 \n",
       "  1168.8,1388.71 1169.72,1388.71 1170.64,1388.71 1171.56,1388.71 1172.48,1388.71 1173.39,1388.71 1174.31,1388.71 1175.23,1388.71 1176.15,1388.71 1177.06,1388.71 \n",
       "  1177.98,1388.71 1178.9,1388.71 1179.82,1388.71 1180.74,1388.71 1181.65,1388.71 1182.57,1388.71 1183.49,1388.71 1184.41,1388.71 1185.32,1388.71 1186.24,1388.71 \n",
       "  1187.16,1388.71 1188.08,1388.71 1189,1388.71 1189.91,1388.71 1190.83,1388.71 1191.75,1388.71 1192.67,1388.71 1193.58,1388.71 1194.5,1388.71 1195.42,1388.71 \n",
       "  1196.34,1388.71 1197.26,1388.71 1198.17,1388.71 1199.09,1388.71 1200.01,1388.71 1200.93,1388.71 1201.85,1388.71 1202.76,1388.71 1203.68,1388.71 1204.6,1388.71 \n",
       "  1205.52,1388.71 1206.43,1388.71 1207.35,1388.71 1208.27,1388.71 1209.19,1388.71 1210.11,1388.71 1211.02,1388.71 1211.94,1388.71 1212.86,1388.71 1213.78,1388.71 \n",
       "  1214.69,1388.71 1215.61,1388.71 1216.53,1388.71 1217.45,1388.71 1218.37,1388.71 1219.28,1388.71 1220.2,1388.71 1221.12,1388.71 1222.04,1388.71 1222.95,1388.71 \n",
       "  1223.87,1388.71 1224.79,1388.71 1225.71,1388.71 1226.63,1388.71 1227.54,1388.71 1228.46,1388.71 1229.38,1388.71 1230.3,1388.71 1231.21,1388.71 1232.13,1388.71 \n",
       "  1233.05,1388.71 1233.97,1388.71 1234.89,1388.71 1235.8,1388.71 1236.72,1388.71 1237.64,1388.71 1238.56,1388.71 1239.47,1388.71 1240.39,1388.71 1241.31,1388.71 \n",
       "  1242.23,1388.71 1243.15,1388.71 1244.06,1388.71 1244.98,1388.71 1245.9,1388.71 1246.82,1388.71 1247.73,1388.71 1248.65,1388.71 1249.57,1388.71 1250.49,1388.71 \n",
       "  1251.41,1388.71 1252.32,1388.71 1253.24,1388.71 1254.16,1388.71 1255.08,1388.71 1255.99,1388.71 1256.91,1388.71 1257.83,1388.71 1258.75,1388.71 1259.67,1388.71 \n",
       "  1260.58,1388.71 1261.5,1388.71 1262.42,1388.71 1263.34,1388.71 1264.25,1388.71 1265.17,1388.71 1266.09,1388.71 1267.01,1388.71 1267.93,1388.71 1268.84,1388.71 \n",
       "  1269.76,1388.71 1270.68,1388.71 1271.6,1388.71 1272.52,1388.71 1273.43,1388.71 1274.35,1388.71 1275.27,1388.71 1276.19,1388.71 1277.1,1388.71 1278.02,1388.71 \n",
       "  1278.94,1388.71 1279.86,1388.71 1280.78,1388.71 1281.69,1388.71 1282.61,1388.71 1283.53,1388.71 1284.45,1388.71 1285.36,1388.71 1286.28,1388.71 1287.2,1388.71 \n",
       "  1288.12,1388.71 1289.04,1388.71 1289.95,1388.71 1290.87,1388.71 1291.79,1388.71 1292.71,1388.71 1293.62,1388.71 1294.54,1388.71 1295.46,1388.71 1296.38,1388.71 \n",
       "  1297.3,1388.71 1298.21,1388.71 1299.13,1388.71 1300.05,1388.71 1300.97,1388.71 1301.88,1388.71 1302.8,1388.71 1303.72,1388.71 1304.64,1388.71 1305.56,1388.71 \n",
       "  1306.47,1388.71 1307.39,1388.71 1308.31,1388.71 1309.23,1388.71 1310.14,1388.71 1311.06,1388.71 1311.98,1388.71 1312.9,1388.71 1313.82,1388.71 1314.73,1388.71 \n",
       "  1315.65,1388.71 1316.57,1388.71 1317.49,1388.71 1318.4,1388.71 1319.32,1388.71 1320.24,1388.71 1321.16,1388.71 1322.08,1388.71 1322.99,1388.71 1323.91,1388.71 \n",
       "  1324.83,1388.71 1325.75,1388.71 1326.66,1388.71 1327.58,1388.71 1328.5,1388.71 1329.42,1388.71 1330.34,1388.71 1331.25,1388.71 1332.17,1388.71 1333.09,1388.71 \n",
       "  1334.01,1388.71 1334.92,1388.71 1335.84,1388.71 1336.76,1388.71 1337.68,1388.71 1338.6,1388.71 1339.51,1388.71 1340.43,1388.71 1341.35,1388.71 1342.27,1388.71 \n",
       "  1343.18,1388.71 1344.1,1388.71 1345.02,1388.71 1345.94,1388.71 1346.86,1388.71 1347.77,1388.71 1348.69,1388.71 1349.61,1388.71 1350.53,1388.71 1351.45,1388.71 \n",
       "  1352.36,1388.71 1353.28,1388.71 1354.2,1388.71 1355.12,1388.71 1356.03,1388.71 1356.95,1388.71 1357.87,1388.71 1358.79,1388.71 1359.71,1388.71 1360.62,1388.71 \n",
       "  1361.54,1388.71 1362.46,1388.71 1363.38,1388.71 1364.29,1388.71 1365.21,1388.71 1366.13,1388.71 1367.05,1388.71 1367.97,1388.71 1368.88,1388.71 1369.8,1388.71 \n",
       "  1370.72,1388.71 1371.64,1388.71 1372.55,1388.71 1373.47,1388.71 1374.39,1388.71 1375.31,1388.71 1376.23,1388.71 1377.14,1388.71 1378.06,1388.71 1378.98,1388.71 \n",
       "  1379.9,1388.71 1380.81,1388.71 1381.73,1388.71 1382.65,1388.71 1383.57,1388.71 1384.49,1388.71 1385.4,1388.71 1386.32,1388.71 1387.24,1388.71 1388.16,1388.71 \n",
       "  1389.07,1388.71 1389.99,1388.71 1390.91,1388.71 1391.83,1388.71 1392.75,1388.71 1393.66,1388.71 1394.58,1388.71 1395.5,1388.71 1396.42,1388.71 1397.33,1388.71 \n",
       "  1398.25,1388.71 1399.17,1388.71 1400.09,1388.71 1401.01,1388.71 1401.92,1388.71 1402.84,1388.71 1403.76,1388.71 1404.68,1388.71 1405.59,1388.71 1406.51,1388.71 \n",
       "  1407.43,1388.71 1408.35,1388.71 1409.27,1388.71 1410.18,1388.71 1411.1,1388.71 1412.02,1388.71 1412.94,1388.71 1413.85,1388.71 1414.77,1388.71 1415.69,1388.71 \n",
       "  1416.61,1388.71 1417.53,1388.71 1418.44,1388.71 1419.36,1388.71 1420.28,1388.71 1421.2,1388.71 1422.12,1388.71 1423.03,1388.71 1423.95,1388.71 1424.87,1388.71 \n",
       "  1425.79,1388.71 1426.7,1388.71 1427.62,1388.71 1428.54,1388.71 1429.46,1388.71 1430.38,1388.71 1431.29,1388.71 1432.21,1388.71 1433.13,1388.71 1434.05,1388.71 \n",
       "  1434.96,1388.71 1435.88,1388.71 1436.8,1388.71 1437.72,1388.71 1438.64,1388.71 1439.55,1388.71 1440.47,1388.71 1441.39,1388.71 1442.31,1388.71 1443.22,1388.71 \n",
       "  1444.14,1388.71 1445.06,1388.71 1445.98,1388.71 1446.9,1388.71 1447.81,1388.71 1448.73,1388.71 1449.65,1388.71 1450.57,1388.71 1451.48,1388.71 1452.4,1388.71 \n",
       "  1453.32,1388.71 1454.24,1388.71 1455.16,1388.71 1456.07,1388.71 1456.99,1388.71 1457.91,1388.71 1458.83,1388.71 1459.74,1388.71 1460.66,1388.71 1461.58,1388.71 \n",
       "  1462.5,1388.71 1463.42,1388.71 1464.33,1388.71 1465.25,1388.71 1466.17,1388.71 1467.09,1388.71 1468,1388.71 1468.92,1388.71 1469.84,1388.71 1470.76,1388.71 \n",
       "  1471.68,1388.71 1472.59,1388.71 1473.51,1388.71 1474.43,1388.71 1475.35,1388.71 1476.26,1388.71 1477.18,1388.71 1478.1,1388.71 1479.02,1388.71 1479.94,1388.71 \n",
       "  1480.85,1388.71 1481.77,1388.71 1482.69,1388.71 1483.61,1388.71 1484.52,1388.71 1485.44,1388.71 1486.36,1388.71 1487.28,1388.71 1488.2,1388.71 1489.11,1388.71 \n",
       "  1490.03,1388.71 1490.95,1388.71 1491.87,1388.71 1492.79,1388.71 1493.7,1388.71 1494.62,1388.71 1495.54,1388.71 1496.46,1388.71 1497.37,1388.71 1498.29,1388.71 \n",
       "  1499.21,1388.71 1500.13,1388.71 1501.05,1388.71 1501.96,1388.71 1502.88,1388.71 1503.8,1388.71 1504.72,1388.71 1505.63,1388.71 1506.55,1388.71 1507.47,1388.71 \n",
       "  1508.39,1388.71 1509.31,1388.71 1510.22,1388.71 1511.14,1388.71 1512.06,1388.71 1512.98,1388.71 1513.89,1388.71 1514.81,1388.71 1515.73,1388.71 1516.65,1388.71 \n",
       "  1517.57,1388.71 1518.48,1388.71 1519.4,1388.71 1520.32,1388.71 1521.24,1388.71 1522.15,1388.71 1523.07,1388.71 1523.99,1388.71 1524.91,1388.71 1525.83,1388.71 \n",
       "  1526.74,1388.71 1527.66,1388.71 1528.58,1388.71 1529.5,1388.71 1530.41,1388.71 1531.33,1388.71 1532.25,1388.71 1533.17,1388.71 1534.09,1388.71 1535,1388.71 \n",
       "  1535.92,1388.71 1536.84,1388.71 1537.76,1388.71 1538.67,1388.71 1539.59,1388.71 1540.51,1388.71 1541.43,1388.71 1542.35,1388.71 1543.26,1388.71 1544.18,1388.71 \n",
       "  1545.1,1388.71 1546.02,1388.71 1546.93,1388.71 1547.85,1388.71 1548.77,1388.71 1549.69,1388.71 1550.61,1388.71 1551.52,1388.71 1552.44,1388.71 1553.36,1388.71 \n",
       "  1554.28,1388.71 1555.19,1388.71 1556.11,1388.71 1557.03,1388.71 1557.95,1388.71 1558.87,1388.71 1559.78,1388.71 1560.7,1388.71 1561.62,1388.71 1562.54,1388.71 \n",
       "  1563.46,1388.71 1564.37,1388.71 1565.29,1388.71 1566.21,1388.71 1567.13,1388.71 1568.04,1388.71 1568.96,1388.71 1569.88,1388.71 1570.8,1388.71 1571.72,1388.71 \n",
       "  1572.63,1388.71 1573.55,1388.71 1574.47,1388.71 1575.39,1388.71 1576.3,1388.71 1577.22,1388.71 1578.14,1388.71 1579.06,1388.71 1579.98,1388.71 1580.89,1388.71 \n",
       "  1581.81,1388.71 1582.73,1388.71 1583.65,1388.71 1584.56,1388.71 1585.48,1388.71 1586.4,1388.71 1587.32,1388.71 1588.24,1388.71 1589.15,1388.71 1590.07,1388.71 \n",
       "  1590.99,1388.71 1591.91,1388.71 1592.82,1388.71 1593.74,1388.71 1594.66,1388.71 1595.58,1388.71 1596.5,1388.71 1597.41,1388.71 1598.33,1388.71 1599.25,1388.71 \n",
       "  1600.17,1388.71 1601.08,1388.71 1602,1388.71 1602.92,1388.71 1603.84,1388.71 1604.76,1388.71 1605.67,1388.71 1606.59,1388.71 1607.51,1388.71 1608.43,1388.71 \n",
       "  1609.34,1388.71 1610.26,1388.71 1611.18,1388.71 1612.1,1388.71 1613.02,1388.71 1613.93,1388.71 1614.85,1388.71 1615.77,1388.71 1616.69,1388.71 1617.6,1388.71 \n",
       "  1618.52,1388.71 1619.44,1388.71 1620.36,1388.71 1621.28,1388.71 1622.19,1388.71 1623.11,1388.71 1624.03,1388.71 1624.95,1388.71 1625.86,1388.71 1626.78,1388.71 \n",
       "  1627.7,1388.71 1628.62,1388.71 1629.54,1388.71 1630.45,1388.71 1631.37,1388.71 1632.29,1388.71 1633.21,1388.71 1634.12,1388.71 1635.04,1388.71 1635.96,1388.71 \n",
       "  1636.88,1388.71 1637.8,1388.71 1638.71,1388.71 1639.63,1388.71 1640.55,1388.71 1641.47,1388.71 1642.39,1388.71 1643.3,1388.71 1644.22,1388.71 1645.14,1388.71 \n",
       "  1646.06,1388.71 1646.97,1388.71 1647.89,1388.71 1648.81,1388.71 1649.73,1388.71 1650.65,1388.71 1651.56,1388.71 1652.48,1388.71 1653.4,1388.71 1654.32,1388.71 \n",
       "  1655.23,1388.71 1656.15,1388.71 1657.07,1388.71 1657.99,1388.71 1658.91,1388.71 1659.82,1388.71 1660.74,1388.71 1661.66,1388.71 1662.58,1388.71 1663.49,1388.71 \n",
       "  1664.41,1388.71 1665.33,1388.71 1666.25,1388.71 1667.17,1388.71 1668.08,1388.71 1669,1388.71 1669.92,1388.71 1670.84,1388.71 1671.75,1388.71 1672.67,1388.71 \n",
       "  1673.59,1388.71 1674.51,1388.71 1675.43,1388.71 1676.34,1388.71 1677.26,1388.71 1678.18,1388.71 1679.1,1388.71 1680.01,1388.71 1680.93,1388.71 1681.85,1388.71 \n",
       "  1682.77,1388.71 1683.69,1388.71 1684.6,1388.71 1685.52,1388.71 1686.44,1388.71 1687.36,1388.71 1688.27,1388.71 1689.19,1388.71 1690.11,1388.71 1691.03,1388.71 \n",
       "  1691.95,1388.71 1692.86,1388.71 1693.78,1388.71 1694.7,1388.71 1695.62,1388.71 1696.53,1388.71 1697.45,1388.71 1698.37,1388.71 1699.29,1388.71 1700.21,1388.71 \n",
       "  1701.12,1388.71 1702.04,1388.71 1702.96,1388.71 1703.88,1388.71 1704.79,1388.71 1705.71,1388.71 1706.63,1388.71 1707.55,1388.71 1708.47,1388.71 1709.38,1388.71 \n",
       "  1710.3,1388.71 1711.22,1388.71 1712.14,1388.71 1713.06,1388.71 1713.97,1388.71 1714.89,1388.71 1715.81,1388.71 1716.73,1388.71 1717.64,1388.71 1718.56,1388.71 \n",
       "  1719.48,1388.71 1720.4,1388.71 1721.32,1388.71 1722.23,1388.71 1723.15,1388.71 1724.07,1388.71 1724.99,1388.71 1725.9,1388.71 1726.82,1388.71 1727.74,1388.71 \n",
       "  1728.66,1388.71 1729.58,1388.71 1730.49,1388.71 1731.41,1388.71 1732.33,1388.71 1733.25,1388.71 1734.16,1388.71 1735.08,1388.71 1736,1388.71 1736.92,1388.71 \n",
       "  1737.84,1388.71 1738.75,1388.71 1739.67,1388.71 1740.59,1388.71 1741.51,1388.71 1742.42,1388.71 1743.34,1388.71 1744.26,1388.71 1745.18,1388.71 1746.1,1388.71 \n",
       "  1747.01,1388.71 1747.93,1388.71 1748.85,1388.71 1749.77,1388.71 1750.68,1388.71 1751.6,1388.71 1752.52,1388.71 1753.44,1388.71 1754.36,1388.71 1755.27,1388.71 \n",
       "  1756.19,1388.71 1757.11,1388.71 1758.03,1388.71 1758.94,1388.71 1759.86,1388.71 1760.78,1388.71 1761.7,1388.71 1762.62,1388.71 1763.53,1388.71 1764.45,1388.71 \n",
       "  1765.37,1388.71 1766.29,1388.71 1767.2,1388.71 1768.12,1388.71 1769.04,1388.71 1769.96,1388.71 1770.88,1388.71 1771.79,1388.71 1772.71,1388.71 1773.63,1388.71 \n",
       "  1774.55,1388.71 1775.46,1388.71 1776.38,1388.71 1777.3,1388.71 1778.22,1388.71 1779.14,1388.71 1780.05,1388.71 1780.97,1388.71 1781.89,1388.71 1782.81,1388.71 \n",
       "  1783.73,1388.71 1784.64,1388.71 1785.56,1388.71 1786.48,1388.71 1787.4,1388.71 1788.31,1388.71 1789.23,1388.71 1790.15,1388.71 1791.07,1388.71 1791.99,1388.71 \n",
       "  1792.9,1388.71 1793.82,1388.71 1794.74,1388.71 1795.66,1388.71 1796.57,1388.71 1797.49,1388.71 1798.41,1388.71 1799.33,1388.71 1800.25,1388.71 1801.16,1388.71 \n",
       "  1802.08,1388.71 1803,1388.71 1803.92,1388.71 1804.83,1388.71 1805.75,1388.71 1806.67,1388.71 1807.59,1388.71 1808.51,1388.71 1809.42,1388.71 1810.34,1388.71 \n",
       "  1811.26,1388.71 1812.18,1388.71 1813.09,1388.71 1814.01,1388.71 1814.93,1388.71 1815.85,1388.71 1816.77,1388.71 1817.68,1388.71 1818.6,1388.71 1819.52,1388.71 \n",
       "  1820.44,1388.71 1821.35,1388.71 1822.27,1388.71 1823.19,1388.71 1824.11,1388.71 1825.03,1388.71 1825.94,1388.71 1826.86,1388.71 1827.78,1388.71 1828.7,1388.71 \n",
       "  1829.61,1388.71 1830.53,1388.71 1831.45,1388.71 1832.37,1388.71 1833.29,1388.71 1834.2,1388.71 1835.12,1388.71 1836.04,1388.71 1836.96,1388.71 1837.87,1388.71 \n",
       "  1838.79,1388.71 1839.71,1388.71 1840.63,1388.71 1841.55,1388.71 1842.46,1388.71 1843.38,1388.71 1844.3,1388.71 1845.22,1388.71 1846.13,1388.71 1847.05,1388.71 \n",
       "  1847.97,1388.71 1848.89,1388.71 1849.81,1388.71 1850.72,1388.71 1851.64,1388.71 1852.56,1388.71 1853.48,1388.71 1854.39,1388.71 1855.31,1388.71 1856.23,1388.71 \n",
       "  1857.15,1388.71 1858.07,1388.71 1858.98,1388.71 1859.9,1388.71 1860.82,1388.71 1861.74,1388.71 1862.66,1388.71 1863.57,1388.71 1864.49,1388.71 1865.41,1388.71 \n",
       "  1866.33,1388.71 1867.24,1388.71 1868.16,1388.71 1869.08,1388.71 1870,1388.71 1870.92,1388.71 1871.83,1388.71 1872.75,1388.71 1873.67,1388.71 1874.59,1388.71 \n",
       "  1875.5,1388.71 1876.42,1388.71 1877.34,1388.71 1878.26,1388.71 1879.18,1388.71 1880.09,1388.71 1881.01,1388.71 1881.93,1388.71 1882.85,1388.71 1883.76,1388.71 \n",
       "  1884.68,1388.71 1885.6,1388.71 1886.52,1388.71 1887.44,1388.71 1888.35,1388.71 1889.27,1388.71 1890.19,1388.71 1891.11,1388.71 1892.02,1388.71 1892.94,1388.71 \n",
       "  1893.86,1388.71 1894.78,1388.71 1895.7,1388.71 1896.61,1388.71 1897.53,1388.71 1898.45,1388.71 1899.37,1388.71 1900.28,1388.71 1901.2,1388.71 1902.12,1388.71 \n",
       "  1903.04,1388.71 1903.96,1388.71 1904.87,1388.71 1905.79,1388.71 1906.71,1388.71 1907.63,1388.71 1908.54,1388.71 1909.46,1388.71 1910.38,1388.71 1911.3,1388.71 \n",
       "  1912.22,1388.71 1913.13,1388.71 1914.05,1388.71 1914.97,1388.71 1915.89,1388.71 1916.8,1388.71 1917.72,1388.71 1918.64,1388.71 1919.56,1388.71 1920.48,1388.71 \n",
       "  1921.39,1388.71 1922.31,1388.71 1923.23,1388.71 1924.15,1388.71 1925.06,1388.71 1925.98,1388.71 1926.9,1388.71 1927.82,1388.71 1928.74,1388.71 1929.65,1388.71 \n",
       "  1930.57,1388.71 1931.49,1388.71 1932.41,1388.71 1933.33,1388.71 1934.24,1388.71 1935.16,1388.71 1936.08,1388.71 1937,1388.71 1937.91,1388.71 1938.83,1388.71 \n",
       "  1939.75,1388.71 1940.67,1388.71 1941.59,1388.71 1942.5,1388.71 1943.42,1388.71 1944.34,1388.71 1945.26,1388.71 1946.17,1388.71 1947.09,1388.71 1948.01,1388.71 \n",
       "  1948.93,1388.71 1949.85,1388.71 1950.76,1388.71 1951.68,1388.71 1952.6,1388.71 1953.52,1388.71 1954.43,1388.71 1955.35,1388.71 1956.27,1388.71 1957.19,1388.71 \n",
       "  1958.11,1388.71 1959.02,1388.71 1959.94,1388.71 1960.86,1388.71 1961.78,1388.71 1962.69,1388.71 1963.61,1388.71 1964.53,1388.71 1965.45,1388.71 1966.37,1388.71 \n",
       "  1967.28,1388.71 1968.2,1388.71 1969.12,1388.71 1970.04,1388.71 1970.95,1388.71 1971.87,1388.71 1972.79,1388.71 1973.71,1388.71 1974.63,1388.71 1975.54,1388.71 \n",
       "  1976.46,1388.71 1977.38,1388.71 1978.3,1388.71 1979.21,1388.71 1980.13,1388.71 1981.05,1388.71 1981.97,1388.71 1982.89,1388.71 1983.8,1388.71 1984.72,1388.71 \n",
       "  1985.64,1388.71 1986.56,1388.71 1987.47,1388.71 1988.39,1388.71 1989.31,1388.71 1990.23,1388.71 1991.15,1388.71 1992.06,1388.71 1992.98,1388.71 1993.9,1388.71 \n",
       "  1994.82,1388.71 1995.73,1388.71 1996.65,1388.71 1997.57,1388.71 1998.49,1388.71 1999.41,1388.71 2000.32,1388.71 2001.24,1388.71 2002.16,1388.71 2003.08,1388.71 \n",
       "  2004,1388.71 2004.91,1388.71 2005.83,1388.71 2006.75,1388.71 2007.67,1388.71 2008.58,1388.71 2009.5,1388.71 2010.42,1388.71 2011.34,1388.71 2012.26,1388.71 \n",
       "  2013.17,1388.71 2014.09,1388.71 2015.01,1388.71 2015.93,1388.71 2016.84,1388.71 2017.76,1388.71 2018.68,1388.71 2019.6,1388.71 2020.52,1388.71 2021.43,1388.71 \n",
       "  2022.35,1388.71 2023.27,1388.71 2024.19,1388.71 2025.1,1388.71 2026.02,1388.71 2026.94,1388.71 2027.86,1388.71 2028.78,1388.71 2029.69,1388.71 2030.61,1388.71 \n",
       "  2031.53,1388.71 2032.45,1388.71 2033.36,1388.71 2034.28,1388.71 2035.2,1388.71 2036.12,1388.71 2037.04,1388.71 2037.95,1388.71 2038.87,1388.71 2039.79,1388.71 \n",
       "  2040.71,1388.71 2041.62,1388.71 2042.54,1388.71 2043.46,1388.71 2044.38,1388.71 2045.3,1388.71 2046.21,1388.71 2047.13,1388.71 2048.05,1388.71 2048.97,1388.71 \n",
       "  2049.88,1388.71 2050.8,1388.71 2051.72,1388.71 2052.64,1388.71 2053.56,1388.71 2054.47,1388.71 2055.39,1388.71 2056.31,1388.71 2057.23,1388.71 2058.14,1388.71 \n",
       "  2059.06,1388.71 2059.98,1388.71 2060.9,1388.71 2061.82,1388.71 2062.73,1388.71 2063.65,1388.71 2064.57,1388.71 2065.49,1388.71 2066.4,1388.71 2067.32,1388.71 \n",
       "  2068.24,1388.71 2069.16,1388.71 2070.08,1388.71 2070.99,1388.71 2071.91,1388.71 2072.83,1388.71 2073.75,1388.71 2074.67,1388.71 2075.58,1388.71 2076.5,1388.71 \n",
       "  2077.42,1388.71 2078.34,1388.71 2079.25,1388.71 2080.17,1388.71 2081.09,1388.71 2082.01,1388.71 2082.93,1388.71 2083.84,1388.71 2084.76,1388.71 2085.68,1388.71 \n",
       "  2086.6,1388.71 2087.51,1388.71 2088.43,1388.71 2089.35,1388.71 2090.27,1388.71 2091.19,1388.71 2092.1,1388.71 2093.02,1388.71 2093.94,1388.71 2094.86,1388.71 \n",
       "  2095.77,1388.71 2096.69,1388.71 2097.61,1388.71 2098.53,1388.71 2099.45,1388.71 2100.36,1388.71 2101.28,1388.71 2102.2,1388.71 2103.12,1388.71 2104.03,1388.71 \n",
       "  2104.95,1388.71 2105.87,1388.71 2106.79,1388.71 2107.71,1388.71 2108.62,1388.71 2109.54,1388.71 2110.46,1388.71 2111.38,1388.71 2112.29,1388.71 2113.21,1388.71 \n",
       "  2114.13,1388.71 2115.05,1388.71 2115.97,1388.71 2116.88,1388.71 2117.8,1388.71 2118.72,1388.71 2119.64,1388.71 2120.55,1388.71 2121.47,1388.71 2122.39,1388.71 \n",
       "  2123.31,1388.71 2124.23,1388.71 2125.14,1388.71 2126.06,1388.71 2126.98,1388.71 2127.9,1388.71 2128.81,1388.71 2129.73,1388.71 2130.65,1388.71 2131.57,1388.71 \n",
       "  2132.49,1388.71 2133.4,1388.71 2134.32,1388.71 2135.24,1388.71 2136.16,1388.71 2137.07,1388.71 2137.99,1388.71 2138.91,1388.71 2139.83,1388.71 2140.75,1388.71 \n",
       "  2141.66,1388.71 2142.58,1388.71 2143.5,1388.71 2144.42,1388.71 2145.33,1388.71 2146.25,1388.71 2147.17,1388.71 2148.09,1388.71 2149.01,1388.71 2149.92,1388.71 \n",
       "  2150.84,1388.71 2151.76,1388.71 2152.68,1388.71 2153.6,1388.71 2154.51,1388.71 2155.43,1388.71 2156.35,1388.71 2157.27,1388.71 2158.18,1388.71 2159.1,1388.71 \n",
       "  2160.02,1388.71 2160.94,1388.71 2161.86,1388.71 2162.77,1388.71 2163.69,1388.71 2164.61,1388.71 2165.53,1388.71 2166.44,1388.71 2167.36,1388.71 2168.28,1388.71 \n",
       "  2169.2,1388.71 2170.12,1388.71 2171.03,1388.71 2171.95,1388.71 2172.87,1388.71 2173.79,1388.71 2174.7,1388.71 2175.62,1388.71 2176.54,1388.71 2177.46,1388.71 \n",
       "  2178.38,1388.71 2179.29,1388.71 2180.21,1388.71 2181.13,1388.71 2182.05,1388.71 2182.96,1388.71 2183.88,1388.71 2184.8,1388.71 2185.72,1388.71 2186.64,1388.71 \n",
       "  2187.55,1388.71 2188.47,1388.71 2189.39,1388.71 2190.31,1388.71 2191.22,1388.71 2192.14,1388.71 2193.06,1388.71 2193.98,1388.71 2194.9,1388.71 2195.81,1388.71 \n",
       "  2196.73,1388.71 2197.65,1388.71 2198.57,1388.71 2199.48,1388.71 2200.4,1388.71 2201.32,1388.71 2202.24,1388.71 2203.16,1388.71 2204.07,1388.71 2204.99,1388.71 \n",
       "  2205.91,1388.71 2206.83,1388.71 2207.74,1388.71 2208.66,1388.71 2209.58,1388.71 2210.5,1388.71 2211.42,1388.71 2212.33,1388.71 2213.25,1388.71 2214.17,1388.71 \n",
       "  2215.09,1388.71 2216,1388.71 2216.92,1388.71 2217.84,1388.71 2218.76,1388.71 2219.68,1388.71 2220.59,1388.71 2221.51,1388.71 2222.43,1388.71 2223.35,1388.71 \n",
       "  2224.27,1388.71 2225.18,1388.71 2226.1,1388.71 2227.02,1388.71 2227.94,1388.71 2228.85,1388.71 2229.77,1388.71 2230.69,1388.71 2231.61,1388.71 2232.53,1388.71 \n",
       "  2233.44,1388.71 2234.36,1388.71 2235.28,1388.71 2236.2,1388.71 2237.11,1388.71 2238.03,1388.71 2238.95,1388.71 2239.87,1388.71 2240.79,1388.71 2241.7,1388.71 \n",
       "  2242.62,1388.71 2243.54,1388.71 2244.46,1388.71 2245.37,1388.71 2246.29,1388.71 2247.21,1388.71 2248.13,1388.71 2249.05,1388.71 2249.96,1388.71 2250.88,1388.71 \n",
       "  2251.8,1388.71 2252.72,1388.71 2253.63,1388.71 2254.55,1388.71 2255.47,1388.71 2256.39,1388.71 2257.31,1388.71 2258.22,1388.71 2259.14,1388.71 2260.06,1388.71 \n",
       "  2260.98,1388.71 2261.89,1388.71 2262.81,1388.71 2263.73,1388.71 2264.65,1388.71 2265.57,1388.71 2266.48,1388.71 2267.4,1388.71 2268.32,1388.71 2269.24,1388.71 \n",
       "  2270.15,1388.71 2271.07,1388.71 2271.99,1388.71 2272.91,1388.71 2273.83,1388.71 2274.74,1388.71 2275.66,1388.71 2276.58,1388.71 2277.5,1388.71 2278.41,1388.71 \n",
       "  2279.33,1388.71 2280.25,1388.71 2281.17,1388.71 2282.09,1388.71 2283,1388.71 2283.92,1388.71 2284.84,1388.71 2285.76,1388.71 2286.67,1388.71 2287.59,1388.71 \n",
       "  2288.51,1388.71 2289.43,1388.71 2290.35,1388.71 2291.26,1388.71 2292.18,1388.71 2293.1,1388.71 2294.02,1388.71 2294.94,1388.71 2295.85,1388.71 2296.77,1388.71 \n",
       "  2297.69,1388.71 \n",
       "  \"/>\n",
       "<path clip-path=\"url(#clip0800)\" d=\"\n",
       "M1853.56 386.635 L2280.76 386.635 L2280.76 205.195 L1853.56 205.195  Z\n",
       "  \" fill=\"#ffffff\" fill-rule=\"evenodd\" fill-opacity=\"1\"/>\n",
       "<polyline clip-path=\"url(#clip0800)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  1853.56,386.635 2280.76,386.635 2280.76,205.195 1853.56,205.195 1853.56,386.635 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip0800)\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  1877.56,265.675 2021.56,265.675 \n",
       "  \"/>\n",
       "<g clip-path=\"url(#clip0800)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:start;\" transform=\"rotate(0, 2045.56, 283.175)\" x=\"2045.56\" y=\"283.175\">Dynamic</text>\n",
       "</g>\n",
       "<polyline clip-path=\"url(#clip0800)\" style=\"stroke:#e26f46; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  1877.56,326.155 2021.56,326.155 \n",
       "  \"/>\n",
       "<g clip-path=\"url(#clip0800)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:start;\" transform=\"rotate(0, 2045.56, 343.655)\" x=\"2045.56\" y=\"343.655\">FEA</text>\n",
       "</g>\n",
       "</svg>\n"
      ]
     },
     "execution_count": 48,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\n",
    "latticeSize=5\n",
    "setup=getSetup(latticeSize)\n",
    "numTimeSteps=2000\n",
    "displacements=[]\n",
    "save=true\n",
    "returnEvery=1\n",
    "runMetavoxelGPU!(setup,numTimeSteps,latticeSize,displacements,returnEvery,true)\n",
    "\n",
    "numTimeStepsRecorded=length(displacements)\n",
    "d=[]\n",
    "dFEA=[]\n",
    "j=length(displacements[end])\n",
    "step=1\n",
    "for i in 1:step:numTimeStepsRecorded\n",
    "    append!(d,displacements[i][j].y)\n",
    "    append!(dFEA,displacementFEA[j].y)\n",
    "end\n",
    "\n",
    "DDisplacements[latticeSize]=d*100\n",
    "DDisplacementsFEA[latticeSize]=dFEA*100\n",
    "\n",
    "E1=getYoungsModulus(latticeSize,5,displacementFEA,Load,topNodesIndices)/1000\n",
    "E2=getYoungsModulus(latticeSize,5,displacements[end],Load,topNodesIndices)/1000\n",
    "\n",
    "EsFEA[latticeSize]=E1\n",
    "Es[latticeSize]=E2\n",
    "\n",
    "print(\"EsFEA:\" )\n",
    "println(EsFEA)\n",
    "print(\"Es:\" )\n",
    "println(Es)\n",
    "\n",
    "println(\"FEA displacement= $(displacementFEA[j].y),converged displacement= $(displacements[numTimeStepsRecorded][j].y)\")\n",
    "plot(1:step:numTimeStepsRecorded,d*100,label=\"Dynamic\",xlabel=\"timestep\",ylabel=\"displacement\",title=\"$latticeSize Voxel Convergence Study\")\n",
    "plot!(1:step:numTimeStepsRecorded,dFEA*100,label=\"FEA\")\n",
    "# savefig(\"5_voxel_convergence\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n",
       "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"600\" height=\"400\" viewBox=\"0 0 2400 1600\">\n",
       "<defs>\n",
       "  <clipPath id=\"clip5200\">\n",
       "    <rect x=\"0\" y=\"0\" width=\"2400\" height=\"1600\"/>\n",
       "  </clipPath>\n",
       "</defs>\n",
       "<path clip-path=\"url(#clip5200)\" d=\"\n",
       "M0 1600 L2400 1600 L2400 0 L0 0  Z\n",
       "  \" fill=\"#ffffff\" fill-rule=\"evenodd\" fill-opacity=\"1\"/>\n",
       "<defs>\n",
       "  <clipPath id=\"clip5201\">\n",
       "    <rect x=\"480\" y=\"0\" width=\"1681\" height=\"1600\"/>\n",
       "  </clipPath>\n",
       "</defs>\n",
       "<path clip-path=\"url(#clip5200)\" d=\"\n",
       "M425.473 1425.62 L2352.76 1425.62 L2352.76 121.675 L425.473 121.675  Z\n",
       "  \" fill=\"#ffffff\" fill-rule=\"evenodd\" fill-opacity=\"1\"/>\n",
       "<defs>\n",
       "  <clipPath id=\"clip5202\">\n",
       "    <rect x=\"425\" y=\"121\" width=\"1928\" height=\"1305\"/>\n",
       "  </clipPath>\n",
       "</defs>\n",
       "<polyline clip-path=\"url(#clip5202)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  727.954,1425.62 727.954,121.675 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip5202)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  1141.18,1425.62 1141.18,121.675 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip5202)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  1554.4,1425.62 1554.4,121.675 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip5202)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  1967.63,1425.62 1967.63,121.675 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip5202)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  425.473,1331.67 2352.76,1331.67 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip5202)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  425.473,1008.86 2352.76,1008.86 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip5202)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  425.473,686.058 2352.76,686.058 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip5202)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  425.473,363.254 2352.76,363.254 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip5200)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  425.473,1425.62 2352.76,1425.62 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip5200)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  425.473,1425.62 425.473,121.675 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip5200)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  727.954,1425.62 727.954,1409.97 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip5200)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  1141.18,1425.62 1141.18,1409.97 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip5200)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  1554.4,1425.62 1554.4,1409.97 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip5200)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  1967.63,1425.62 1967.63,1409.97 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip5200)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  425.473,1331.67 448.6,1331.67 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip5200)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  425.473,1008.86 448.6,1008.86 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip5200)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  425.473,686.058 448.6,686.058 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip5200)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  425.473,363.254 448.6,363.254 \n",
       "  \"/>\n",
       "<g clip-path=\"url(#clip5200)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:middle;\" transform=\"rotate(0, 727.954, 1479.62)\" x=\"727.954\" y=\"1479.62\">2.5</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip5200)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:middle;\" transform=\"rotate(0, 1141.18, 1479.62)\" x=\"1141.18\" y=\"1479.62\">5.0</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip5200)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:middle;\" transform=\"rotate(0, 1554.4, 1479.62)\" x=\"1554.4\" y=\"1479.62\">7.5</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip5200)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:middle;\" transform=\"rotate(0, 1967.63, 1479.62)\" x=\"1967.63\" y=\"1479.62\">10.0</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip5200)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:start;\" transform=\"rotate(0, 198.637, 1355.4)\" x=\"198.637\" y=\"1355.4\">-</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip5200)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:start;\" transform=\"rotate(0, 226.747, 1355.4)\" x=\"226.747\" y=\"1355.4\">5×10</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip5200)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:38px; text-anchor:start;\" transform=\"rotate(0, 335.144, 1327.98)\" x=\"335.144\" y=\"1327.98\">-</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip5200)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:38px; text-anchor:start;\" transform=\"rotate(0, 357.984, 1327.98)\" x=\"357.984\" y=\"1327.98\">10</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip5200)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:end;\" transform=\"rotate(0, 401.473, 1026.36)\" x=\"401.473\" y=\"1026.36\">0</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip5200)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:start;\" transform=\"rotate(0, 226.747, 709.786)\" x=\"226.747\" y=\"709.786\">5×10</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip5200)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:38px; text-anchor:start;\" transform=\"rotate(0, 335.144, 682.376)\" x=\"335.144\" y=\"682.376\">-</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip5200)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:38px; text-anchor:start;\" transform=\"rotate(0, 357.984, 682.376)\" x=\"357.984\" y=\"682.376\">10</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip5200)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:start;\" transform=\"rotate(0, 248.492, 386.981)\" x=\"248.492\" y=\"386.981\">1×10</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip5200)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:38px; text-anchor:start;\" transform=\"rotate(0, 356.889, 359.571)\" x=\"356.889\" y=\"359.571\">-</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip5200)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:38px; text-anchor:start;\" transform=\"rotate(0, 379.728, 359.571)\" x=\"379.728\" y=\"359.571\">9</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip5200)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:84px; text-anchor:middle;\" transform=\"rotate(0, 1389.11, 73.2)\" x=\"1389.11\" y=\"73.2\">Node Displacement</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip5200)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:66px; text-anchor:middle;\" transform=\"rotate(0, 1389.11, 1559.48)\" x=\"1389.11\" y=\"1559.48\">Node ID</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip5200)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:66px; text-anchor:middle;\" transform=\"rotate(-90, 89.2861, 773.647)\" x=\"89.2861\" y=\"773.647\">displacement</text>\n",
       "</g>\n",
       "<circle clip-path=\"url(#clip5202)\" cx=\"480.018\" cy=\"1008.86\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip5202)\" cx=\"645.309\" cy=\"1008.86\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip5202)\" cx=\"810.599\" cy=\"1008.86\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip5202)\" cx=\"975.889\" cy=\"1008.86\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip5202)\" cx=\"1141.18\" cy=\"158.579\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip5202)\" cx=\"1306.47\" cy=\"583.723\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip5202)\" cx=\"1471.76\" cy=\"583.723\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip5202)\" cx=\"1637.05\" cy=\"158.579\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip5202)\" cx=\"1802.34\" cy=\"158.579\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip5202)\" cx=\"1967.63\" cy=\"158.579\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip5202)\" cx=\"2132.92\" cy=\"583.723\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip5202)\" cx=\"2298.21\" cy=\"583.723\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip5202)\" cx=\"480.018\" cy=\"1008.86\" r=\"14\" fill=\"#e26f46\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip5202)\" cx=\"645.309\" cy=\"1008.86\" r=\"14\" fill=\"#e26f46\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip5202)\" cx=\"810.599\" cy=\"1008.86\" r=\"14\" fill=\"#e26f46\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip5202)\" cx=\"975.889\" cy=\"1008.86\" r=\"14\" fill=\"#e26f46\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip5202)\" cx=\"1141.18\" cy=\"1388.71\" r=\"14\" fill=\"#e26f46\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip5202)\" cx=\"1306.47\" cy=\"1100.91\" r=\"14\" fill=\"#e26f46\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip5202)\" cx=\"1471.76\" cy=\"1095.21\" r=\"14\" fill=\"#e26f46\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip5202)\" cx=\"1637.05\" cy=\"1388.71\" r=\"14\" fill=\"#e26f46\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip5202)\" cx=\"1802.34\" cy=\"1351.29\" r=\"14\" fill=\"#e26f46\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip5202)\" cx=\"1967.63\" cy=\"1351.29\" r=\"14\" fill=\"#e26f46\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip5202)\" cx=\"2132.92\" cy=\"1095.21\" r=\"14\" fill=\"#e26f46\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip5202)\" cx=\"2298.21\" cy=\"1100.91\" r=\"14\" fill=\"#e26f46\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<path clip-path=\"url(#clip5200)\" d=\"\n",
       "M1853.56 386.635 L2280.76 386.635 L2280.76 205.195 L1853.56 205.195  Z\n",
       "  \" fill=\"#ffffff\" fill-rule=\"evenodd\" fill-opacity=\"1\"/>\n",
       "<polyline clip-path=\"url(#clip5200)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  1853.56,386.635 2280.76,386.635 2280.76,205.195 1853.56,205.195 1853.56,386.635 \n",
       "  \"/>\n",
       "<circle clip-path=\"url(#clip5200)\" cx=\"1961.56\" cy=\"265.675\" r=\"21\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<g clip-path=\"url(#clip5200)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:start;\" transform=\"rotate(0, 2045.56, 283.175)\" x=\"2045.56\" y=\"283.175\">Dyanmic</text>\n",
       "</g>\n",
       "<circle clip-path=\"url(#clip5200)\" cx=\"1961.56\" cy=\"326.155\" r=\"21\" fill=\"#e26f46\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<g clip-path=\"url(#clip5200)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:start;\" transform=\"rotate(0, 2045.56, 343.655)\" x=\"2045.56\" y=\"343.655\">FEA</text>\n",
       "</g>\n",
       "</svg>\n"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "n=[]\n",
    "nFEA=[]\n",
    "j=length(displacements[end])\n",
    "for i in 1:j\n",
    "    append!(n,displacements[end][i].y)\n",
    "    append!(nFEA,displacementFEA[i].y)\n",
    "end\n",
    "scatter(1:j,n,label=\"Dyanmic\",xlabel=\"Node ID\",ylabel=\"displacement\",title=\"Node Displacement\")\n",
    "scatter!(1:j,nFEA,label=\"FEA\")\n",
    "# savefig(\"node_displacement_one_voxel\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "ename": "UndefVarError",
     "evalue": "UndefVarError: E1 not defined",
     "output_type": "error",
     "traceback": [
      "UndefVarError: E1 not defined",
      "",
      "Stacktrace:",
      " [1] top-level scope at In[28]:15"
     ]
    }
   ],
   "source": [
    "function getYoungsModulus(latticeSize,voxelSize,disp,Load,topNodesIndices)\n",
    "    F=-Load\n",
    "    l0=voxelSize*sqrt(2)/100.0*latticeSize\n",
    "    A=(voxelSize*sqrt(2)/100.0)^2*latticeSize^2\n",
    "\n",
    "    δl1=-mean( x.y for x in disp[topNodesIndices])\n",
    "\n",
    "    stresses=F/A\n",
    "    strain=δl1/l0\n",
    "\n",
    "    E=stresses/strain *1e-9\n",
    "\n",
    "    return E\n",
    "end\n",
    "\n",
    "# F=-Load\n",
    "# l0=5*sqrt(2)/100.0*latticeSize\n",
    "# A=(5*sqrt(2)/100.0)^2*latticeSize^2\n",
    "\n",
    "# δl1=-mean( x.y for x in displacementFEA[topNodesIndices])\n",
    "# δl2=-mean( x.y for x in displacements[end][topNodesIndices])\n",
    "\n",
    "# stresses=F/A\n",
    "# strain1=δl1/l0\n",
    "# strain2=δl2/l0\n",
    "\n",
    "# # DDisplacements[latticeSize]=[displacements[end][end].y]\n",
    "# # DDisplacementsFEA[latticeSize]=[displacementFEA[end].y]\n",
    "\n",
    "# E1=getYoungsModulus(latticeSize,5,displacementFEA,Load,topNodesIndices)/1000\n",
    "# E2=getYoungsModulus(latticeSize,5,displacements[end],Load,topNodesIndices)/1000\n",
    "# EsFEA[latticeSize]=E1\n",
    "# Es[latticeSize]=E2\n",
    "\n",
    "println(\"E FEA= $E1,E dynamic= $E2\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Es1=[0.060884503402759034, 0.028613329550419765,0.04290673059936012,0.05720947849175027,0.07151182744350526 ]\n",
    "# Es2=[4.476556777767441   ,2.4245859780625727, 2.450108731865717,2.4714994633266203,2.464207835015529]\n",
    "\n",
    "# EsFEA=[9.777375254441967, 4.997590597979953, 7.496951555575914,9.995905987397883,12.494879504999625 ] #FEA\n",
    "# Es=[4.476556777767441   ,2.4245859780625727, 2.450108731865717,2.4714994633266203,2.464207835015529] #DYNAMIC"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n",
       "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"600\" height=\"400\" viewBox=\"0 0 2400 1600\">\n",
       "<defs>\n",
       "  <clipPath id=\"clip3400\">\n",
       "    <rect x=\"0\" y=\"0\" width=\"2400\" height=\"1600\"/>\n",
       "  </clipPath>\n",
       "</defs>\n",
       "<path clip-path=\"url(#clip3400)\" d=\"\n",
       "M0 1600 L2400 1600 L2400 0 L0 0  Z\n",
       "  \" fill=\"#ffffff\" fill-rule=\"evenodd\" fill-opacity=\"1\"/>\n",
       "<defs>\n",
       "  <clipPath id=\"clip3401\">\n",
       "    <rect x=\"480\" y=\"0\" width=\"1681\" height=\"1600\"/>\n",
       "  </clipPath>\n",
       "</defs>\n",
       "<path clip-path=\"url(#clip3400)\" d=\"\n",
       "M242.516 1425.62 L2352.76 1425.62 L2352.76 121.675 L242.516 121.675  Z\n",
       "  \" fill=\"#ffffff\" fill-rule=\"evenodd\" fill-opacity=\"1\"/>\n",
       "<defs>\n",
       "  <clipPath id=\"clip3402\">\n",
       "    <rect x=\"242\" y=\"121\" width=\"2111\" height=\"1305\"/>\n",
       "  </clipPath>\n",
       "</defs>\n",
       "<polyline clip-path=\"url(#clip3402)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  302.24,1425.62 302.24,121.675 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip3402)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  799.938,1425.62 799.938,121.675 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip3402)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  1297.64,1425.62 1297.64,121.675 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip3402)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  1795.33,1425.62 1795.33,121.675 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip3402)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  2293.03,1425.62 2293.03,121.675 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip3402)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  242.516,1388.71 2352.76,1388.71 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip3402)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  242.516,1081.18 2352.76,1081.18 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip3402)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  242.516,773.647 2352.76,773.647 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip3402)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  242.516,466.113 2352.76,466.113 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip3402)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  242.516,158.579 2352.76,158.579 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip3400)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  242.516,1425.62 2352.76,1425.62 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip3400)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  242.516,1425.62 242.516,121.675 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip3400)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  302.24,1425.62 302.24,1409.97 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip3400)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  799.938,1425.62 799.938,1409.97 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip3400)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  1297.64,1425.62 1297.64,1409.97 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip3400)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  1795.33,1425.62 1795.33,1409.97 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip3400)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  2293.03,1425.62 2293.03,1409.97 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip3400)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  242.516,1388.71 267.839,1388.71 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip3400)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  242.516,1081.18 267.839,1081.18 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip3400)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  242.516,773.647 267.839,773.647 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip3400)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  242.516,466.113 267.839,466.113 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip3400)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  242.516,158.579 267.839,158.579 \n",
       "  \"/>\n",
       "<g clip-path=\"url(#clip3400)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:middle;\" transform=\"rotate(0, 302.24, 1479.62)\" x=\"302.24\" y=\"1479.62\">1</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip3400)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:middle;\" transform=\"rotate(0, 799.938, 1479.62)\" x=\"799.938\" y=\"1479.62\">2</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip3400)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:middle;\" transform=\"rotate(0, 1297.64, 1479.62)\" x=\"1297.64\" y=\"1479.62\">3</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip3400)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:middle;\" transform=\"rotate(0, 1795.33, 1479.62)\" x=\"1795.33\" y=\"1479.62\">4</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip3400)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:middle;\" transform=\"rotate(0, 2293.03, 1479.62)\" x=\"2293.03\" y=\"1479.62\">5</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip3400)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:end;\" transform=\"rotate(0, 218.516, 1406.21)\" x=\"218.516\" y=\"1406.21\">0.00</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip3400)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:end;\" transform=\"rotate(0, 218.516, 1098.68)\" x=\"218.516\" y=\"1098.68\">0.25</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip3400)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:end;\" transform=\"rotate(0, 218.516, 791.147)\" x=\"218.516\" y=\"791.147\">0.50</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip3400)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:end;\" transform=\"rotate(0, 218.516, 483.613)\" x=\"218.516\" y=\"483.613\">0.75</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip3400)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:end;\" transform=\"rotate(0, 218.516, 176.079)\" x=\"218.516\" y=\"176.079\">1.00</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip3400)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:84px; text-anchor:middle;\" transform=\"rotate(0, 1297.64, 73.2)\" x=\"1297.64\" y=\"73.2\">Young&apos;s Modulus</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip3400)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:66px; text-anchor:middle;\" transform=\"rotate(0, 1297.64, 1559.48)\" x=\"1297.64\" y=\"1559.48\">lattice size</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip3400)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:66px; text-anchor:middle;\" transform=\"rotate(-90, 89.2861, 773.647)\" x=\"89.2861\" y=\"773.647\">E</text>\n",
       "</g>\n",
       "<polyline clip-path=\"url(#clip3402)\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  302.24,1388.71 799.938,1388.71 1297.64,1388.71 1795.33,1388.71 2293.03,1388.71 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip3402)\" style=\"stroke:#e26f46; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  302.24,1388.71 799.938,1388.71 1297.64,1388.71 1795.33,1388.71 2293.03,1388.71 \n",
       "  \"/>\n",
       "<circle clip-path=\"url(#clip3402)\" cx=\"302.24\" cy=\"1388.71\" r=\"14\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"none\"/>\n",
       "<circle clip-path=\"url(#clip3402)\" cx=\"799.938\" cy=\"1388.71\" r=\"14\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"none\"/>\n",
       "<circle clip-path=\"url(#clip3402)\" cx=\"1297.64\" cy=\"1388.71\" r=\"14\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"none\"/>\n",
       "<circle clip-path=\"url(#clip3402)\" cx=\"1795.33\" cy=\"1388.71\" r=\"14\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"none\"/>\n",
       "<circle clip-path=\"url(#clip3402)\" cx=\"2293.03\" cy=\"1388.71\" r=\"14\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"none\"/>\n",
       "<circle clip-path=\"url(#clip3402)\" cx=\"302.24\" cy=\"1388.71\" r=\"14\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"none\"/>\n",
       "<circle clip-path=\"url(#clip3402)\" cx=\"799.938\" cy=\"1388.71\" r=\"14\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"none\"/>\n",
       "<circle clip-path=\"url(#clip3402)\" cx=\"1297.64\" cy=\"1388.71\" r=\"14\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"none\"/>\n",
       "<circle clip-path=\"url(#clip3402)\" cx=\"1795.33\" cy=\"1388.71\" r=\"14\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"none\"/>\n",
       "<circle clip-path=\"url(#clip3402)\" cx=\"2293.03\" cy=\"1388.71\" r=\"14\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"none\"/>\n",
       "<path clip-path=\"url(#clip3400)\" d=\"\n",
       "M1853.56 386.635 L2280.76 386.635 L2280.76 205.195 L1853.56 205.195  Z\n",
       "  \" fill=\"#ffffff\" fill-rule=\"evenodd\" fill-opacity=\"1\"/>\n",
       "<polyline clip-path=\"url(#clip3400)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  1853.56,386.635 2280.76,386.635 2280.76,205.195 1853.56,205.195 1853.56,386.635 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip3400)\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  1877.56,265.675 2021.56,265.675 \n",
       "  \"/>\n",
       "<g clip-path=\"url(#clip3400)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:start;\" transform=\"rotate(0, 2045.56, 283.175)\" x=\"2045.56\" y=\"283.175\">Dyanmic</text>\n",
       "</g>\n",
       "<polyline clip-path=\"url(#clip3400)\" style=\"stroke:#e26f46; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  1877.56,326.155 2021.56,326.155 \n",
       "  \"/>\n",
       "<g clip-path=\"url(#clip3400)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:start;\" transform=\"rotate(0, 2045.56, 343.655)\" x=\"2045.56\" y=\"343.655\">FEA</text>\n",
       "</g>\n",
       "</svg>\n"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "plot(1:5,Es,label=\"Dyanmic\",xlabel=\"lattice size\",ylabel=\"E\",title=\"Young's Modulus\")\n",
    "plot!(1:5,EsFEA,label=\"FEA\")\n",
    "scatter!(1:5,Es,color=\"black\",label=\"\")\n",
    "scatter!(1:5,EsFEA,color=\"black\",label=\"\")\n",
    "# savefig(\"youngs_modulus\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 885,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n",
       "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"600\" height=\"400\" viewBox=\"0 0 2400 1600\">\n",
       "<defs>\n",
       "  <clipPath id=\"clip7600\">\n",
       "    <rect x=\"0\" y=\"0\" width=\"2400\" height=\"1600\"/>\n",
       "  </clipPath>\n",
       "</defs>\n",
       "<path clip-path=\"url(#clip7600)\" d=\"\n",
       "M0 1600 L2400 1600 L2400 0 L0 0  Z\n",
       "  \" fill=\"#ffffff\" fill-rule=\"evenodd\" fill-opacity=\"1\"/>\n",
       "<defs>\n",
       "  <clipPath id=\"clip7601\">\n",
       "    <rect x=\"480\" y=\"0\" width=\"1681\" height=\"1600\"/>\n",
       "  </clipPath>\n",
       "</defs>\n",
       "<path clip-path=\"url(#clip7600)\" d=\"\n",
       "M456.182 1425.62 L2352.76 1425.62 L2352.76 121.675 L456.182 121.675  Z\n",
       "  \" fill=\"#ffffff\" fill-rule=\"evenodd\" fill-opacity=\"1\"/>\n",
       "<defs>\n",
       "  <clipPath id=\"clip7602\">\n",
       "    <rect x=\"456\" y=\"121\" width=\"1898\" height=\"1305\"/>\n",
       "  </clipPath>\n",
       "</defs>\n",
       "<polyline clip-path=\"url(#clip7602)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  508.964,1425.62 508.964,121.675 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip7602)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  956.269,1425.62 956.269,121.675 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip7602)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  1403.57,1425.62 1403.57,121.675 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip7602)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  1850.88,1425.62 1850.88,121.675 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip7602)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  2298.18,1425.62 2298.18,121.675 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip7602)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  456.182,1303.92 2352.76,1303.92 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip7602)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  456.182,922.138 2352.76,922.138 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip7602)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  456.182,540.359 2352.76,540.359 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip7602)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  456.182,158.579 2352.76,158.579 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip7600)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  456.182,1425.62 2352.76,1425.62 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip7600)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  456.182,1425.62 456.182,121.675 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip7600)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  508.964,1425.62 508.964,1409.97 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip7600)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  956.269,1425.62 956.269,1409.97 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip7600)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  1403.57,1425.62 1403.57,1409.97 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip7600)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  1850.88,1425.62 1850.88,1409.97 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip7600)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  2298.18,1425.62 2298.18,1409.97 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip7600)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  456.182,1303.92 478.941,1303.92 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip7600)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  456.182,922.138 478.941,922.138 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip7600)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  456.182,540.359 478.941,540.359 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip7600)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  456.182,158.579 478.941,158.579 \n",
       "  \"/>\n",
       "<g clip-path=\"url(#clip7600)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:middle;\" transform=\"rotate(0, 508.964, 1479.62)\" x=\"508.964\" y=\"1479.62\">0</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip7600)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:middle;\" transform=\"rotate(0, 956.269, 1479.62)\" x=\"956.269\" y=\"1479.62\">500</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip7600)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:middle;\" transform=\"rotate(0, 1403.57, 1479.62)\" x=\"1403.57\" y=\"1479.62\">1000</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip7600)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:middle;\" transform=\"rotate(0, 1850.88, 1479.62)\" x=\"1850.88\" y=\"1479.62\">1500</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip7600)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:middle;\" transform=\"rotate(0, 2298.18, 1479.62)\" x=\"2298.18\" y=\"1479.62\">2000</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip7600)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:start;\" transform=\"rotate(0, 210.947, 1327.65)\" x=\"210.947\" y=\"1327.65\">-</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip7600)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:start;\" transform=\"rotate(0, 239.057, 1327.65)\" x=\"239.057\" y=\"1327.65\">1.5×10</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip7600)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:38px; text-anchor:start;\" transform=\"rotate(0, 387.598, 1300.23)\" x=\"387.598\" y=\"1300.23\">-</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip7600)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:38px; text-anchor:start;\" transform=\"rotate(0, 410.438, 1300.23)\" x=\"410.438\" y=\"1300.23\">6</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip7600)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:start;\" transform=\"rotate(0, 210.947, 945.866)\" x=\"210.947\" y=\"945.866\">-</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip7600)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:start;\" transform=\"rotate(0, 239.057, 945.866)\" x=\"239.057\" y=\"945.866\">1.0×10</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip7600)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:38px; text-anchor:start;\" transform=\"rotate(0, 387.598, 918.455)\" x=\"387.598\" y=\"918.455\">-</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip7600)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:38px; text-anchor:start;\" transform=\"rotate(0, 410.438, 918.455)\" x=\"410.438\" y=\"918.455\">6</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip7600)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:start;\" transform=\"rotate(0, 210.947, 564.086)\" x=\"210.947\" y=\"564.086\">-</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip7600)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:start;\" transform=\"rotate(0, 239.057, 564.086)\" x=\"239.057\" y=\"564.086\">5.0×10</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip7600)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:38px; text-anchor:start;\" transform=\"rotate(0, 387.598, 536.676)\" x=\"387.598\" y=\"536.676\">-</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip7600)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:38px; text-anchor:start;\" transform=\"rotate(0, 410.438, 536.676)\" x=\"410.438\" y=\"536.676\">7</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip7600)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:end;\" transform=\"rotate(0, 432.182, 176.079)\" x=\"432.182\" y=\"176.079\">0</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip7600)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:84px; text-anchor:middle;\" transform=\"rotate(0, 1404.47, 73.2)\" x=\"1404.47\" y=\"73.2\">Dynamic Model Convergence</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip7600)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:66px; text-anchor:middle;\" transform=\"rotate(0, 1404.47, 1559.48)\" x=\"1404.47\" y=\"1559.48\">timestep</text>\n",
       "</g>\n",
       "<g clip-path=\"url(#clip7600)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:66px; text-anchor:middle;\" transform=\"rotate(-90, 89.2861, 773.647)\" x=\"89.2861\" y=\"773.647\">displacement</text>\n",
       "</g>\n",
       "<polyline clip-path=\"url(#clip7602)\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  509.859,158.579 510.753,158.579 511.648,158.837 512.542,159.488 513.437,160.595 514.332,162.182 515.226,164.245 516.121,166.763 517.015,169.706 517.91,173.033 \n",
       "  518.805,176.698 519.699,180.654 520.594,184.849 521.488,189.232 522.383,193.753 523.278,198.363 524.172,203.014 525.067,207.663 525.962,212.267 526.856,216.79 \n",
       "  527.751,221.196 528.645,225.455 529.54,229.54 530.435,233.429 531.329,237.101 532.224,240.542 533.118,243.739 534.013,246.682 534.908,249.367 535.802,251.79 \n",
       "  536.697,253.951 537.591,255.852 538.486,257.497 539.381,258.893 540.275,260.047 541.17,260.97 542.065,261.671 542.959,262.164 543.854,262.46 544.748,262.574 \n",
       "  545.643,262.519 546.538,262.31 547.432,261.96 548.327,261.486 549.221,260.9 550.116,260.217 551.011,259.451 551.905,258.616 552.8,257.724 553.694,256.788 \n",
       "  554.589,255.82 555.484,254.829 556.378,253.828 557.273,252.824 558.168,251.828 559.062,250.846 559.957,249.887 560.851,248.956 561.746,248.059 562.641,247.202 \n",
       "  563.535,246.387 564.43,245.618 565.324,244.899 566.219,244.231 567.114,243.616 568.008,243.054 568.903,242.547 569.797,242.093 570.692,241.692 571.587,241.343 \n",
       "  572.481,241.045 573.376,240.797 574.271,240.595 575.165,240.438 576.06,240.324 576.954,240.25 577.849,240.213 578.744,240.211 579.638,240.24 580.533,240.298 \n",
       "  581.427,240.382 582.322,240.488 583.217,240.615 584.111,240.759 585.006,240.918 585.9,241.089 586.795,241.269 587.69,241.456 588.584,241.649 589.479,241.845 \n",
       "  590.373,242.041 591.268,242.237 592.163,242.43 593.057,242.62 593.952,242.804 594.847,242.982 595.741,243.153 596.636,243.316 597.53,243.47 598.425,243.614 \n",
       "  599.32,243.748 600.214,243.872 601.109,243.986 602.003,244.089 602.898,244.182 603.793,244.264 604.687,244.336 605.582,244.397 606.476,244.449 607.371,244.492 \n",
       "  608.266,244.526 609.16,244.551 610.055,244.568 610.95,244.578 611.844,244.58 612.739,244.577 613.633,244.567 614.528,244.552 615.423,244.533 616.317,244.509 \n",
       "  617.212,244.482 618.106,244.452 619.001,244.419 619.896,244.384 620.79,244.348 621.685,244.311 622.579,244.272 623.474,244.234 624.369,244.195 625.263,244.157 \n",
       "  626.158,244.12 627.053,244.083 627.947,244.048 628.842,244.014 629.736,243.981 630.631,243.951 631.526,243.922 632.42,243.895 633.315,243.87 634.209,243.847 \n",
       "  635.104,243.826 635.999,243.807 636.893,243.79 637.788,243.775 638.682,243.762 639.577,243.752 640.472,243.743 641.366,243.735 642.261,243.73 643.156,243.726 \n",
       "  644.05,243.724 644.945,243.723 645.839,243.723 646.734,243.724 647.629,243.727 648.523,243.731 649.418,243.735 650.312,243.74 651.207,243.746 652.102,243.752 \n",
       "  652.996,243.759 653.891,243.766 654.785,243.773 655.68,243.78 656.575,243.788 657.469,243.796 658.364,243.803 659.258,243.81 660.153,243.818 661.048,243.825 \n",
       "  661.942,243.832 662.837,243.838 663.732,243.844 664.626,243.85 665.521,243.855 666.415,243.86 667.31,243.865 668.205,243.869 669.099,243.873 669.994,243.877 \n",
       "  670.888,243.88 671.783,243.882 672.678,243.885 673.572,243.886 674.467,243.888 675.361,243.889 676.256,243.89 677.151,243.891 678.045,243.891 678.94,243.891 \n",
       "  679.835,243.891 680.729,243.89 681.624,243.89 682.518,243.889 683.413,243.888 684.308,243.887 685.202,243.886 686.097,243.884 686.991,243.883 687.886,243.882 \n",
       "  688.781,243.88 689.675,243.879 690.57,243.877 691.464,243.876 692.359,243.874 693.254,243.873 694.148,243.871 695.043,243.87 695.938,243.869 696.832,243.867 \n",
       "  697.727,243.866 698.621,243.865 699.516,243.864 700.411,243.863 701.305,243.862 702.2,243.862 703.094,243.861 703.989,243.86 704.884,243.86 705.778,243.859 \n",
       "  706.673,243.859 707.567,243.859 708.462,243.858 709.357,243.858 710.251,243.858 711.146,243.858 712.041,243.858 712.935,243.858 713.83,243.858 714.724,243.858 \n",
       "  715.619,243.858 716.514,243.858 717.408,243.859 718.303,243.859 719.197,243.859 720.092,243.859 720.987,243.86 721.881,243.86 722.776,243.86 723.67,243.86 \n",
       "  724.565,243.861 725.46,243.861 726.354,243.861 727.249,243.862 728.143,243.862 729.038,243.862 729.933,243.862 730.827,243.863 731.722,243.863 732.617,243.863 \n",
       "  733.511,243.863 734.406,243.863 735.3,243.864 736.195,243.864 737.09,243.864 737.984,243.864 738.879,243.864 739.773,243.864 740.668,243.864 741.563,243.864 \n",
       "  742.457,243.864 743.352,243.864 744.246,243.864 745.141,243.864 746.036,243.864 746.93,243.864 747.825,243.864 748.72,243.864 749.614,243.864 750.509,243.864 \n",
       "  751.403,243.864 752.298,243.864 753.193,243.864 754.087,243.864 754.982,243.864 755.876,243.864 756.771,243.864 757.666,243.864 758.56,243.864 759.455,243.864 \n",
       "  760.349,243.864 761.244,243.864 762.139,243.864 763.033,243.863 763.928,243.863 764.823,243.863 765.717,243.863 766.612,243.863 767.506,243.863 768.401,243.863 \n",
       "  769.296,243.863 770.19,243.863 771.085,243.863 771.979,243.863 772.874,243.863 773.769,243.863 774.663,243.863 775.558,243.863 776.452,243.863 777.347,243.863 \n",
       "  778.242,243.863 779.136,243.863 780.031,243.863 780.926,243.863 781.82,243.863 782.715,243.863 783.609,243.863 784.504,243.863 785.399,243.863 786.293,243.863 \n",
       "  787.188,243.863 788.082,243.863 788.977,243.863 789.872,243.863 790.766,243.863 791.661,243.863 792.555,243.863 793.45,243.863 794.345,243.863 795.239,243.863 \n",
       "  796.134,243.863 797.028,243.863 797.923,243.863 798.818,243.863 799.712,243.863 800.607,243.863 801.502,243.863 802.396,243.863 803.291,243.863 804.185,243.863 \n",
       "  805.08,243.863 805.975,243.863 806.869,243.863 807.764,243.863 808.658,243.863 809.553,243.863 810.448,243.863 811.342,243.863 812.237,243.863 813.131,243.863 \n",
       "  814.026,243.863 814.921,243.863 815.815,243.863 816.71,243.863 817.605,243.863 818.499,243.863 819.394,243.863 820.288,243.863 821.183,243.863 822.078,243.863 \n",
       "  822.972,243.863 823.867,243.863 824.761,243.863 825.656,243.863 826.551,243.863 827.445,243.863 828.34,243.863 829.234,243.863 830.129,243.863 831.024,243.863 \n",
       "  831.918,243.863 832.813,243.863 833.708,243.863 834.602,243.863 835.497,243.863 836.391,243.863 837.286,243.863 838.181,243.863 839.075,243.863 839.97,243.863 \n",
       "  840.864,243.863 841.759,243.863 842.654,243.863 843.548,243.863 844.443,243.863 845.337,243.863 846.232,243.863 847.127,243.863 848.021,243.863 848.916,243.863 \n",
       "  849.81,243.863 850.705,243.863 851.6,243.863 852.494,243.863 853.389,243.863 854.284,243.863 855.178,243.863 856.073,243.863 856.967,243.863 857.862,243.863 \n",
       "  858.757,243.863 859.651,243.863 860.546,243.863 861.44,243.863 862.335,243.863 863.23,243.863 864.124,243.863 865.019,243.863 865.913,243.863 866.808,243.863 \n",
       "  867.703,243.863 868.597,243.863 869.492,243.863 870.387,243.863 871.281,243.863 872.176,243.863 873.07,243.863 873.965,243.863 874.86,243.863 875.754,243.863 \n",
       "  876.649,243.863 877.543,243.863 878.438,243.863 879.333,243.863 880.227,243.863 881.122,243.863 882.016,243.863 882.911,243.863 883.806,243.863 884.7,243.863 \n",
       "  885.595,243.863 886.49,243.863 887.384,243.863 888.279,243.863 889.173,243.863 890.068,243.863 890.963,243.863 891.857,243.863 892.752,243.863 893.646,243.863 \n",
       "  894.541,243.863 895.436,243.863 896.33,243.863 897.225,243.863 898.119,243.863 899.014,243.863 899.909,243.863 900.803,243.863 901.698,243.863 902.593,243.863 \n",
       "  903.487,243.863 904.382,243.863 905.276,243.863 906.171,243.863 907.066,243.863 907.96,243.863 908.855,243.863 909.749,243.863 910.644,243.863 911.539,243.863 \n",
       "  912.433,243.863 913.328,243.863 914.222,243.863 915.117,243.863 916.012,243.863 916.906,243.863 917.801,243.863 918.695,243.863 919.59,243.863 920.485,243.863 \n",
       "  921.379,243.863 922.274,243.863 923.169,243.863 924.063,243.863 924.958,243.863 925.852,243.863 926.747,243.863 927.642,243.863 928.536,243.863 929.431,243.863 \n",
       "  930.325,243.863 931.22,243.863 932.115,243.863 933.009,243.863 933.904,243.863 934.798,243.863 935.693,243.863 936.588,243.863 937.482,243.863 938.377,243.863 \n",
       "  939.272,243.863 940.166,243.863 941.061,243.863 941.955,243.863 942.85,243.863 943.745,243.863 944.639,243.863 945.534,243.863 946.428,243.863 947.323,243.863 \n",
       "  948.218,243.863 949.112,243.863 950.007,243.863 950.901,243.863 951.796,243.863 952.691,243.863 953.585,243.863 954.48,243.863 955.375,243.863 956.269,243.863 \n",
       "  957.164,243.863 958.058,243.863 958.953,243.863 959.848,243.863 960.742,243.863 961.637,243.863 962.531,243.863 963.426,243.863 964.321,243.863 965.215,243.863 \n",
       "  966.11,243.863 967.004,243.863 967.899,243.863 968.794,243.863 969.688,243.863 970.583,243.863 971.478,243.863 972.372,243.863 973.267,243.863 974.161,243.863 \n",
       "  975.056,243.863 975.951,243.863 976.845,243.863 977.74,243.863 978.634,243.863 979.529,243.863 980.424,243.863 981.318,243.863 982.213,243.863 983.107,243.863 \n",
       "  984.002,243.863 984.897,243.863 985.791,243.863 986.686,243.863 987.58,243.863 988.475,243.863 989.37,243.863 990.264,243.863 991.159,243.863 992.054,243.863 \n",
       "  992.948,243.863 993.843,243.863 994.737,243.863 995.632,243.863 996.527,243.863 997.421,243.863 998.316,243.863 999.21,243.863 1000.11,243.863 1001,243.863 \n",
       "  1001.89,243.863 1002.79,243.863 1003.68,243.863 1004.58,243.863 1005.47,243.863 1006.37,243.863 1007.26,243.863 1008.16,243.863 1009.05,243.863 1009.95,243.863 \n",
       "  1010.84,243.863 1011.73,243.863 1012.63,243.863 1013.52,243.863 1014.42,243.863 1015.31,243.863 1016.21,243.863 1017.1,243.863 1018,243.863 1018.89,243.863 \n",
       "  1019.79,243.863 1020.68,243.863 1021.58,243.863 1022.47,243.863 1023.36,243.863 1024.26,243.863 1025.15,243.863 1026.05,243.863 1026.94,243.863 1027.84,243.863 \n",
       "  1028.73,243.863 1029.63,243.863 1030.52,243.863 1031.42,243.863 1032.31,243.863 1033.21,243.863 1034.1,243.863 1034.99,243.863 1035.89,243.863 1036.78,243.863 \n",
       "  1037.68,243.863 1038.57,243.863 1039.47,243.863 1040.36,243.863 1041.26,243.863 1042.15,243.863 1043.05,243.863 1043.94,243.863 1044.84,243.863 1045.73,243.863 \n",
       "  1046.62,243.863 1047.52,243.863 1048.41,243.863 1049.31,243.863 1050.2,243.863 1051.1,243.863 1051.99,243.863 1052.89,243.863 1053.78,243.863 1054.68,243.863 \n",
       "  1055.57,243.863 1056.47,243.863 1057.36,243.863 1058.25,243.863 1059.15,243.863 1060.04,243.863 1060.94,243.863 1061.83,243.863 1062.73,243.863 1063.62,243.863 \n",
       "  1064.52,243.863 1065.41,243.863 1066.31,243.863 1067.2,243.863 1068.1,243.863 1068.99,243.863 1069.88,243.863 1070.78,243.863 1071.67,243.863 1072.57,243.863 \n",
       "  1073.46,243.863 1074.36,243.863 1075.25,243.863 1076.15,243.863 1077.04,243.863 1077.94,243.863 1078.83,243.863 1079.73,243.863 1080.62,243.863 1081.51,243.863 \n",
       "  1082.41,243.863 1083.3,243.863 1084.2,243.863 1085.09,243.863 1085.99,243.863 1086.88,243.863 1087.78,243.863 1088.67,243.863 1089.57,243.863 1090.46,243.863 \n",
       "  1091.36,243.863 1092.25,243.863 1093.14,243.863 1094.04,243.863 1094.93,243.863 1095.83,243.863 1096.72,243.863 1097.62,243.863 1098.51,243.863 1099.41,243.863 \n",
       "  1100.3,243.863 1101.2,243.863 1102.09,243.863 1102.99,243.863 1103.88,243.863 1104.77,243.863 1105.67,243.863 1106.56,243.863 1107.46,243.863 1108.35,243.863 \n",
       "  1109.25,243.863 1110.14,243.863 1111.04,243.863 1111.93,243.863 1112.83,243.863 1113.72,243.863 1114.62,243.863 1115.51,243.863 1116.4,243.863 1117.3,243.863 \n",
       "  1118.19,243.863 1119.09,243.863 1119.98,243.863 1120.88,243.863 1121.77,243.863 1122.67,243.863 1123.56,243.863 1124.46,243.863 1125.35,243.863 1126.25,243.863 \n",
       "  1127.14,243.863 1128.03,243.863 1128.93,243.863 1129.82,243.863 1130.72,243.863 1131.61,243.863 1132.51,243.863 1133.4,243.863 1134.3,243.863 1135.19,243.863 \n",
       "  1136.09,243.863 1136.98,243.863 1137.88,243.863 1138.77,243.863 1139.66,243.863 1140.56,243.863 1141.45,243.863 1142.35,243.863 1143.24,243.863 1144.14,243.863 \n",
       "  1145.03,243.863 1145.93,243.863 1146.82,243.863 1147.72,243.863 1148.61,243.863 1149.5,243.863 1150.4,243.863 1151.29,243.863 1152.19,243.863 1153.08,243.863 \n",
       "  1153.98,243.863 1154.87,243.863 1155.77,243.863 1156.66,243.863 1157.56,243.863 1158.45,243.863 1159.35,243.863 1160.24,243.863 1161.13,243.863 1162.03,243.863 \n",
       "  1162.92,243.863 1163.82,243.863 1164.71,243.863 1165.61,243.863 1166.5,243.863 1167.4,243.863 1168.29,243.863 1169.19,243.863 1170.08,243.863 1170.98,243.863 \n",
       "  1171.87,243.863 1172.76,243.863 1173.66,243.863 1174.55,243.863 1175.45,243.863 1176.34,243.863 1177.24,243.863 1178.13,243.863 1179.03,243.863 1179.92,243.863 \n",
       "  1180.82,243.863 1181.71,243.863 1182.61,243.863 1183.5,243.863 1184.39,243.863 1185.29,243.863 1186.18,243.863 1187.08,243.863 1187.97,243.863 1188.87,243.863 \n",
       "  1189.76,243.863 1190.66,243.863 1191.55,243.863 1192.45,243.863 1193.34,243.863 1194.24,243.863 1195.13,243.863 1196.02,243.863 1196.92,243.863 1197.81,243.863 \n",
       "  1198.71,243.863 1199.6,243.863 1200.5,243.863 1201.39,243.863 1202.29,243.863 1203.18,243.863 1204.08,243.863 1204.97,243.863 1205.87,243.863 1206.76,243.863 \n",
       "  1207.65,243.863 1208.55,243.863 1209.44,243.863 1210.34,243.863 1211.23,243.863 1212.13,243.863 1213.02,243.863 1213.92,243.863 1214.81,243.863 1215.71,243.863 \n",
       "  1216.6,243.863 1217.5,243.863 1218.39,243.863 1219.28,243.863 1220.18,243.863 1221.07,243.863 1221.97,243.863 1222.86,243.863 1223.76,243.863 1224.65,243.863 \n",
       "  1225.55,243.863 1226.44,243.863 1227.34,243.863 1228.23,243.863 1229.13,243.863 1230.02,243.863 1230.91,243.863 1231.81,243.863 1232.7,243.863 1233.6,243.863 \n",
       "  1234.49,243.863 1235.39,243.863 1236.28,243.863 1237.18,243.863 1238.07,243.863 1238.97,243.863 1239.86,243.863 1240.76,243.863 1241.65,243.863 1242.54,243.863 \n",
       "  1243.44,243.863 1244.33,243.863 1245.23,243.863 1246.12,243.863 1247.02,243.863 1247.91,243.863 1248.81,243.863 1249.7,243.863 1250.6,243.863 1251.49,243.863 \n",
       "  1252.39,243.863 1253.28,243.863 1254.17,243.863 1255.07,243.863 1255.96,243.863 1256.86,243.863 1257.75,243.863 1258.65,243.863 1259.54,243.863 1260.44,243.863 \n",
       "  1261.33,243.863 1262.23,243.863 1263.12,243.863 1264.02,243.863 1264.91,243.863 1265.8,243.863 1266.7,243.863 1267.59,243.863 1268.49,243.863 1269.38,243.863 \n",
       "  1270.28,243.863 1271.17,243.863 1272.07,243.863 1272.96,243.863 1273.86,243.863 1274.75,243.863 1275.65,243.863 1276.54,243.863 1277.43,243.863 1278.33,243.863 \n",
       "  1279.22,243.863 1280.12,243.863 1281.01,243.863 1281.91,243.863 1282.8,243.863 1283.7,243.863 1284.59,243.863 1285.49,243.863 1286.38,243.863 1287.27,243.863 \n",
       "  1288.17,243.863 1289.06,243.863 1289.96,243.863 1290.85,243.863 1291.75,243.863 1292.64,243.863 1293.54,243.863 1294.43,243.863 1295.33,243.863 1296.22,243.863 \n",
       "  1297.12,243.863 1298.01,243.863 1298.9,243.863 1299.8,243.863 1300.69,243.863 1301.59,243.863 1302.48,243.863 1303.38,243.863 1304.27,243.863 1305.17,243.863 \n",
       "  1306.06,243.863 1306.96,243.863 1307.85,243.863 1308.75,243.863 1309.64,243.863 1310.53,243.863 1311.43,243.863 1312.32,243.863 1313.22,243.863 1314.11,243.863 \n",
       "  1315.01,243.863 1315.9,243.863 1316.8,243.863 1317.69,243.863 1318.59,243.863 1319.48,243.863 1320.38,243.863 1321.27,243.863 1322.16,243.863 1323.06,243.863 \n",
       "  1323.95,243.863 1324.85,243.863 1325.74,243.863 1326.64,243.863 1327.53,243.863 1328.43,243.863 1329.32,243.863 1330.22,243.863 1331.11,243.863 1332.01,243.863 \n",
       "  1332.9,243.863 1333.79,243.863 1334.69,243.863 1335.58,243.863 1336.48,243.863 1337.37,243.863 1338.27,243.863 1339.16,243.863 1340.06,243.863 1340.95,243.863 \n",
       "  1341.85,243.863 1342.74,243.863 1343.64,243.863 1344.53,243.863 1345.42,243.863 1346.32,243.863 1347.21,243.863 1348.11,243.863 1349,243.863 1349.9,243.863 \n",
       "  1350.79,243.863 1351.69,243.863 1352.58,243.863 1353.48,243.863 1354.37,243.863 1355.27,243.863 1356.16,243.863 1357.05,243.863 1357.95,243.863 1358.84,243.863 \n",
       "  1359.74,243.863 1360.63,243.863 1361.53,243.863 1362.42,243.863 1363.32,243.863 1364.21,243.863 1365.11,243.863 1366,243.863 1366.9,243.863 1367.79,243.863 \n",
       "  1368.68,243.863 1369.58,243.863 1370.47,243.863 1371.37,243.863 1372.26,243.863 1373.16,243.863 1374.05,243.863 1374.95,243.863 1375.84,243.863 1376.74,243.863 \n",
       "  1377.63,243.863 1378.53,243.863 1379.42,243.863 1380.31,243.863 1381.21,243.863 1382.1,243.863 1383,243.863 1383.89,243.863 1384.79,243.863 1385.68,243.863 \n",
       "  1386.58,243.863 1387.47,243.863 1388.37,243.863 1389.26,243.863 1390.16,243.863 1391.05,243.863 1391.94,243.863 1392.84,243.863 1393.73,243.863 1394.63,243.863 \n",
       "  1395.52,243.863 1396.42,243.863 1397.31,243.863 1398.21,243.863 1399.1,243.863 1400,243.863 1400.89,243.863 1401.79,243.863 1402.68,243.863 1403.57,243.863 \n",
       "  1404.47,243.863 1405.36,243.863 1406.26,243.863 1407.15,243.863 1408.05,243.863 1408.94,243.863 1409.84,243.863 1410.73,243.863 1411.63,243.863 1412.52,243.863 \n",
       "  1413.42,243.863 1414.31,243.863 1415.2,243.863 1416.1,243.863 1416.99,243.863 1417.89,243.863 1418.78,243.863 1419.68,243.863 1420.57,243.863 1421.47,243.863 \n",
       "  1422.36,243.863 1423.26,243.863 1424.15,243.863 1425.04,243.863 1425.94,243.863 1426.83,243.863 1427.73,243.863 1428.62,243.863 1429.52,243.863 1430.41,243.863 \n",
       "  1431.31,243.863 1432.2,243.863 1433.1,243.863 1433.99,243.863 1434.89,243.863 1435.78,243.863 1436.67,243.863 1437.57,243.863 1438.46,243.863 1439.36,243.863 \n",
       "  1440.25,243.863 1441.15,243.863 1442.04,243.863 1442.94,243.863 1443.83,243.863 1444.73,243.863 1445.62,243.863 1446.52,243.863 1447.41,243.863 1448.3,243.863 \n",
       "  1449.2,243.863 1450.09,243.863 1450.99,243.863 1451.88,243.863 1452.78,243.863 1453.67,243.863 1454.57,243.863 1455.46,243.863 1456.36,243.863 1457.25,243.863 \n",
       "  1458.15,243.863 1459.04,243.863 1459.93,243.863 1460.83,243.863 1461.72,243.863 1462.62,243.863 1463.51,243.863 1464.41,243.863 1465.3,243.863 1466.2,243.863 \n",
       "  1467.09,243.863 1467.99,243.863 1468.88,243.863 1469.78,243.863 1470.67,243.863 1471.56,243.863 1472.46,243.863 1473.35,243.863 1474.25,243.863 1475.14,243.863 \n",
       "  1476.04,243.863 1476.93,243.863 1477.83,243.863 1478.72,243.863 1479.62,243.863 1480.51,243.863 1481.41,243.863 1482.3,243.863 1483.19,243.863 1484.09,243.863 \n",
       "  1484.98,243.863 1485.88,243.863 1486.77,243.863 1487.67,243.863 1488.56,243.863 1489.46,243.863 1490.35,243.863 1491.25,243.863 1492.14,243.863 1493.04,243.863 \n",
       "  1493.93,243.863 1494.82,243.863 1495.72,243.863 1496.61,243.863 1497.51,243.863 1498.4,243.863 1499.3,243.863 1500.19,243.863 1501.09,243.863 1501.98,243.863 \n",
       "  1502.88,243.863 1503.77,243.863 1504.67,243.863 1505.56,243.863 1506.45,243.863 1507.35,243.863 1508.24,243.863 1509.14,243.863 1510.03,243.863 1510.93,243.863 \n",
       "  1511.82,243.863 1512.72,243.863 1513.61,243.863 1514.51,243.863 1515.4,243.863 1516.3,243.863 1517.19,243.863 1518.08,243.863 1518.98,243.863 1519.87,243.863 \n",
       "  1520.77,243.863 1521.66,243.863 1522.56,243.863 1523.45,243.863 1524.35,243.863 1525.24,243.863 1526.14,243.863 1527.03,243.863 1527.93,243.863 1528.82,243.863 \n",
       "  1529.71,243.863 1530.61,243.863 1531.5,243.863 1532.4,243.863 1533.29,243.863 1534.19,243.863 1535.08,243.863 1535.98,243.863 1536.87,243.863 1537.77,243.863 \n",
       "  1538.66,243.863 1539.56,243.863 1540.45,243.863 1541.34,243.863 1542.24,243.863 1543.13,243.863 1544.03,243.863 1544.92,243.863 1545.82,243.863 1546.71,243.863 \n",
       "  1547.61,243.863 1548.5,243.863 1549.4,243.863 1550.29,243.863 1551.19,243.863 1552.08,243.863 1552.97,243.863 1553.87,243.863 1554.76,243.863 1555.66,243.863 \n",
       "  1556.55,243.863 1557.45,243.863 1558.34,243.863 1559.24,243.863 1560.13,243.863 1561.03,243.863 1561.92,243.863 1562.81,243.863 1563.71,243.863 1564.6,243.863 \n",
       "  1565.5,243.863 1566.39,243.863 1567.29,243.863 1568.18,243.863 1569.08,243.863 1569.97,243.863 1570.87,243.863 1571.76,243.863 1572.66,243.863 1573.55,243.863 \n",
       "  1574.44,243.863 1575.34,243.863 1576.23,243.863 1577.13,243.863 1578.02,243.863 1578.92,243.863 1579.81,243.863 1580.71,243.863 1581.6,243.863 1582.5,243.863 \n",
       "  1583.39,243.863 1584.29,243.863 1585.18,243.863 1586.07,243.863 1586.97,243.863 1587.86,243.863 1588.76,243.863 1589.65,243.863 1590.55,243.863 1591.44,243.863 \n",
       "  1592.34,243.863 1593.23,243.863 1594.13,243.863 1595.02,243.863 1595.92,243.863 1596.81,243.863 1597.7,243.863 1598.6,243.863 1599.49,243.863 1600.39,243.863 \n",
       "  1601.28,243.863 1602.18,243.863 1603.07,243.863 1603.97,243.863 1604.86,243.863 1605.76,243.863 1606.65,243.863 1607.55,243.863 1608.44,243.863 1609.33,243.863 \n",
       "  1610.23,243.863 1611.12,243.863 1612.02,243.863 1612.91,243.863 1613.81,243.863 1614.7,243.863 1615.6,243.863 1616.49,243.863 1617.39,243.863 1618.28,243.863 \n",
       "  1619.18,243.863 1620.07,243.863 1620.96,243.863 1621.86,243.863 1622.75,243.863 1623.65,243.863 1624.54,243.863 1625.44,243.863 1626.33,243.863 1627.23,243.863 \n",
       "  1628.12,243.863 1629.02,243.863 1629.91,243.863 1630.81,243.863 1631.7,243.863 1632.59,243.863 1633.49,243.863 1634.38,243.863 1635.28,243.863 1636.17,243.863 \n",
       "  1637.07,243.863 1637.96,243.863 1638.86,243.863 1639.75,243.863 1640.65,243.863 1641.54,243.863 1642.44,243.863 1643.33,243.863 1644.22,243.863 1645.12,243.863 \n",
       "  1646.01,243.863 1646.91,243.863 1647.8,243.863 1648.7,243.863 1649.59,243.863 1650.49,243.863 1651.38,243.863 1652.28,243.863 1653.17,243.863 1654.07,243.863 \n",
       "  1654.96,243.863 1655.85,243.863 1656.75,243.863 1657.64,243.863 1658.54,243.863 1659.43,243.863 1660.33,243.863 1661.22,243.863 1662.12,243.863 1663.01,243.863 \n",
       "  1663.91,243.863 1664.8,243.863 1665.7,243.863 1666.59,243.863 1667.48,243.863 1668.38,243.863 1669.27,243.863 1670.17,243.863 1671.06,243.863 1671.96,243.863 \n",
       "  1672.85,243.863 1673.75,243.863 1674.64,243.863 1675.54,243.863 1676.43,243.863 1677.33,243.863 1678.22,243.863 1679.11,243.863 1680.01,243.863 1680.9,243.863 \n",
       "  1681.8,243.863 1682.69,243.863 1683.59,243.863 1684.48,243.863 1685.38,243.863 1686.27,243.863 1687.17,243.863 1688.06,243.863 1688.96,243.863 1689.85,243.863 \n",
       "  1690.74,243.863 1691.64,243.863 1692.53,243.863 1693.43,243.863 1694.32,243.863 1695.22,243.863 1696.11,243.863 1697.01,243.863 1697.9,243.863 1698.8,243.863 \n",
       "  1699.69,243.863 1700.58,243.863 1701.48,243.863 1702.37,243.863 1703.27,243.863 1704.16,243.863 1705.06,243.863 1705.95,243.863 1706.85,243.863 1707.74,243.863 \n",
       "  1708.64,243.863 1709.53,243.863 1710.43,243.863 1711.32,243.863 1712.21,243.863 1713.11,243.863 1714,243.863 1714.9,243.863 1715.79,243.863 1716.69,243.863 \n",
       "  1717.58,243.863 1718.48,243.863 1719.37,243.863 1720.27,243.863 1721.16,243.863 1722.06,243.863 1722.95,243.863 1723.84,243.863 1724.74,243.863 1725.63,243.863 \n",
       "  1726.53,243.863 1727.42,243.863 1728.32,243.863 1729.21,243.863 1730.11,243.863 1731,243.863 1731.9,243.863 1732.79,243.863 1733.69,243.863 1734.58,243.863 \n",
       "  1735.47,243.863 1736.37,243.863 1737.26,243.863 1738.16,243.863 1739.05,243.863 1739.95,243.863 1740.84,243.863 1741.74,243.863 1742.63,243.863 1743.53,243.863 \n",
       "  1744.42,243.863 1745.32,243.863 1746.21,243.863 1747.1,243.863 1748,243.863 1748.89,243.863 1749.79,243.863 1750.68,243.863 1751.58,243.863 1752.47,243.863 \n",
       "  1753.37,243.863 1754.26,243.863 1755.16,243.863 1756.05,243.863 1756.95,243.863 1757.84,243.863 1758.73,243.863 1759.63,243.863 1760.52,243.863 1761.42,243.863 \n",
       "  1762.31,243.863 1763.21,243.863 1764.1,243.863 1765,243.863 1765.89,243.863 1766.79,243.863 1767.68,243.863 1768.58,243.863 1769.47,243.863 1770.36,243.863 \n",
       "  1771.26,243.863 1772.15,243.863 1773.05,243.863 1773.94,243.863 1774.84,243.863 1775.73,243.863 1776.63,243.863 1777.52,243.863 1778.42,243.863 1779.31,243.863 \n",
       "  1780.21,243.863 1781.1,243.863 1781.99,243.863 1782.89,243.863 1783.78,243.863 1784.68,243.863 1785.57,243.863 1786.47,243.863 1787.36,243.863 1788.26,243.863 \n",
       "  1789.15,243.863 1790.05,243.863 1790.94,243.863 1791.84,243.863 1792.73,243.863 1793.62,243.863 1794.52,243.863 1795.41,243.863 1796.31,243.863 1797.2,243.863 \n",
       "  1798.1,243.863 1798.99,243.863 1799.89,243.863 1800.78,243.863 1801.68,243.863 1802.57,243.863 1803.47,243.863 1804.36,243.863 1805.25,243.863 1806.15,243.863 \n",
       "  1807.04,243.863 1807.94,243.863 1808.83,243.863 1809.73,243.863 1810.62,243.863 1811.52,243.863 1812.41,243.863 1813.31,243.863 1814.2,243.863 1815.1,243.863 \n",
       "  1815.99,243.863 1816.88,243.863 1817.78,243.863 1818.67,243.863 1819.57,243.863 1820.46,243.863 1821.36,243.863 1822.25,243.863 1823.15,243.863 1824.04,243.863 \n",
       "  1824.94,243.863 1825.83,243.863 1826.73,243.863 1827.62,243.863 1828.51,243.863 1829.41,243.863 1830.3,243.863 1831.2,243.863 1832.09,243.863 1832.99,243.863 \n",
       "  1833.88,243.863 1834.78,243.863 1835.67,243.863 1836.57,243.863 1837.46,243.863 1838.35,243.863 1839.25,243.863 1840.14,243.863 1841.04,243.863 1841.93,243.863 \n",
       "  1842.83,243.863 1843.72,243.863 1844.62,243.863 1845.51,243.863 1846.41,243.863 1847.3,243.863 1848.2,243.863 1849.09,243.863 1849.98,243.863 1850.88,243.863 \n",
       "  1851.77,243.863 1852.67,243.863 1853.56,243.863 1854.46,243.863 1855.35,243.863 1856.25,243.863 1857.14,243.863 1858.04,243.863 1858.93,243.863 1859.83,243.863 \n",
       "  1860.72,243.863 1861.61,243.863 1862.51,243.863 1863.4,243.863 1864.3,243.863 1865.19,243.863 1866.09,243.863 1866.98,243.863 1867.88,243.863 1868.77,243.863 \n",
       "  1869.67,243.863 1870.56,243.863 1871.46,243.863 1872.35,243.863 1873.24,243.863 1874.14,243.863 1875.03,243.863 1875.93,243.863 1876.82,243.863 1877.72,243.863 \n",
       "  1878.61,243.863 1879.51,243.863 1880.4,243.863 1881.3,243.863 1882.19,243.863 1883.09,243.863 1883.98,243.863 1884.87,243.863 1885.77,243.863 1886.66,243.863 \n",
       "  1887.56,243.863 1888.45,243.863 1889.35,243.863 1890.24,243.863 1891.14,243.863 1892.03,243.863 1892.93,243.863 1893.82,243.863 1894.72,243.863 1895.61,243.863 \n",
       "  1896.5,243.863 1897.4,243.863 1898.29,243.863 1899.19,243.863 1900.08,243.863 1900.98,243.863 1901.87,243.863 1902.77,243.863 1903.66,243.863 1904.56,243.863 \n",
       "  1905.45,243.863 1906.35,243.863 1907.24,243.863 1908.13,243.863 1909.03,243.863 1909.92,243.863 1910.82,243.863 1911.71,243.863 1912.61,243.863 1913.5,243.863 \n",
       "  1914.4,243.863 1915.29,243.863 1916.19,243.863 1917.08,243.863 1917.98,243.863 1918.87,243.863 1919.76,243.863 1920.66,243.863 1921.55,243.863 1922.45,243.863 \n",
       "  1923.34,243.863 1924.24,243.863 1925.13,243.863 1926.03,243.863 1926.92,243.863 1927.82,243.863 1928.71,243.863 1929.61,243.863 1930.5,243.863 1931.39,243.863 \n",
       "  1932.29,243.863 1933.18,243.863 1934.08,243.863 1934.97,243.863 1935.87,243.863 1936.76,243.863 1937.66,243.863 1938.55,243.863 1939.45,243.863 1940.34,243.863 \n",
       "  1941.24,243.863 1942.13,243.863 1943.02,243.863 1943.92,243.863 1944.81,243.863 1945.71,243.863 1946.6,243.863 1947.5,243.863 1948.39,243.863 1949.29,243.863 \n",
       "  1950.18,243.863 1951.08,243.863 1951.97,243.863 1952.87,243.863 1953.76,243.863 1954.65,243.863 1955.55,243.863 1956.44,243.863 1957.34,243.863 1958.23,243.863 \n",
       "  1959.13,243.863 1960.02,243.863 1960.92,243.863 1961.81,243.863 1962.71,243.863 1963.6,243.863 1964.5,243.863 1965.39,243.863 1966.28,243.863 1967.18,243.863 \n",
       "  1968.07,243.863 1968.97,243.863 1969.86,243.863 1970.76,243.863 1971.65,243.863 1972.55,243.863 1973.44,243.863 1974.34,243.863 1975.23,243.863 1976.12,243.863 \n",
       "  1977.02,243.863 1977.91,243.863 1978.81,243.864 1979.7,243.864 1980.6,243.864 1981.49,243.864 1982.39,243.864 1983.28,243.864 1984.18,243.864 1985.07,243.864 \n",
       "  1985.97,243.864 1986.86,243.864 1987.75,243.864 1988.65,243.864 1989.54,243.864 1990.44,243.864 1991.33,243.864 1992.23,243.864 1993.12,243.864 1994.02,243.864 \n",
       "  1994.91,243.864 1995.81,243.864 1996.7,243.864 1997.6,243.864 1998.49,243.864 1999.38,243.864 2000.28,243.864 2001.17,243.864 2002.07,243.864 2002.96,243.864 \n",
       "  2003.86,243.864 2004.75,243.864 2005.65,243.864 2006.54,243.864 2007.44,243.864 2008.33,243.864 2009.23,243.864 2010.12,243.864 2011.01,243.864 2011.91,243.864 \n",
       "  2012.8,243.864 2013.7,243.864 2014.59,243.864 2015.49,243.864 2016.38,243.864 2017.28,243.864 2018.17,243.864 2019.07,243.864 2019.96,243.864 2020.86,243.864 \n",
       "  2021.75,243.864 2022.64,243.864 2023.54,243.864 2024.43,243.864 2025.33,243.864 2026.22,243.864 2027.12,243.864 2028.01,243.864 2028.91,243.864 2029.8,243.864 \n",
       "  2030.7,243.864 2031.59,243.864 2032.49,243.864 2033.38,243.864 2034.27,243.864 2035.17,243.864 2036.06,243.864 2036.96,243.864 2037.85,243.864 2038.75,243.864 \n",
       "  2039.64,243.864 2040.54,243.864 2041.43,243.864 2042.33,243.864 2043.22,243.864 2044.12,243.864 2045.01,243.864 2045.9,243.864 2046.8,243.864 2047.69,243.864 \n",
       "  2048.59,243.864 2049.48,243.864 2050.38,243.864 2051.27,243.864 2052.17,243.864 2053.06,243.864 2053.96,243.864 2054.85,243.864 2055.75,243.864 2056.64,243.864 \n",
       "  2057.53,243.864 2058.43,243.864 2059.32,243.864 2060.22,243.864 2061.11,243.864 2062.01,243.864 2062.9,243.864 2063.8,243.864 2064.69,243.864 2065.59,243.864 \n",
       "  2066.48,243.864 2067.38,243.864 2068.27,243.864 2069.16,243.864 2070.06,243.864 2070.95,243.864 2071.85,243.864 2072.74,243.864 2073.64,243.864 2074.53,243.864 \n",
       "  2075.43,243.864 2076.32,243.864 2077.22,243.864 2078.11,243.864 2079.01,243.864 2079.9,243.864 2080.79,243.864 2081.69,243.864 2082.58,243.864 2083.48,243.864 \n",
       "  2084.37,243.864 2085.27,243.864 2086.16,243.864 2087.06,243.864 2087.95,243.864 2088.85,243.864 2089.74,243.864 2090.64,243.864 2091.53,243.864 2092.42,243.864 \n",
       "  2093.32,243.864 2094.21,243.864 2095.11,243.864 2096,243.864 2096.9,243.864 2097.79,243.864 2098.69,243.864 2099.58,243.864 2100.48,243.864 2101.37,243.864 \n",
       "  2102.27,243.864 2103.16,243.864 2104.05,243.864 2104.95,243.864 2105.84,243.864 2106.74,243.864 2107.63,243.864 2108.53,243.864 2109.42,243.864 2110.32,243.864 \n",
       "  2111.21,243.864 2112.11,243.864 2113,243.864 2113.89,243.864 2114.79,243.864 2115.68,243.864 2116.58,243.864 2117.47,243.864 2118.37,243.864 2119.26,243.864 \n",
       "  2120.16,243.864 2121.05,243.864 2121.95,243.864 2122.84,243.864 2123.74,243.864 2124.63,243.864 2125.52,243.864 2126.42,243.864 2127.31,243.864 2128.21,243.864 \n",
       "  2129.1,243.864 2130,243.864 2130.89,243.864 2131.79,243.864 2132.68,243.864 2133.58,243.864 2134.47,243.864 2135.37,243.864 2136.26,243.864 2137.15,243.864 \n",
       "  2138.05,243.864 2138.94,243.864 2139.84,243.864 2140.73,243.864 2141.63,243.864 2142.52,243.864 2143.42,243.864 2144.31,243.864 2145.21,243.864 2146.1,243.864 \n",
       "  2147,243.864 2147.89,243.864 2148.78,243.864 2149.68,243.864 2150.57,243.864 2151.47,243.864 2152.36,243.864 2153.26,243.864 2154.15,243.864 2155.05,243.864 \n",
       "  2155.94,243.864 2156.84,243.864 2157.73,243.864 2158.63,243.864 2159.52,243.864 2160.41,243.864 2161.31,243.864 2162.2,243.864 2163.1,243.864 2163.99,243.864 \n",
       "  2164.89,243.864 2165.78,243.864 2166.68,243.864 2167.57,243.864 2168.47,243.864 2169.36,243.864 2170.26,243.864 2171.15,243.864 2172.04,243.864 2172.94,243.864 \n",
       "  2173.83,243.864 2174.73,243.864 2175.62,243.864 2176.52,243.864 2177.41,243.864 2178.31,243.864 2179.2,243.864 2180.1,243.864 2180.99,243.864 2181.89,243.864 \n",
       "  2182.78,243.864 2183.67,243.864 2184.57,243.864 2185.46,243.864 2186.36,243.864 2187.25,243.864 2188.15,243.864 2189.04,243.864 2189.94,243.864 2190.83,243.864 \n",
       "  2191.73,243.864 2192.62,243.864 2193.52,243.864 2194.41,243.864 2195.3,243.864 2196.2,243.864 2197.09,243.864 2197.99,243.864 2198.88,243.864 2199.78,243.864 \n",
       "  2200.67,243.864 2201.57,243.864 2202.46,243.864 2203.36,243.864 2204.25,243.864 2205.15,243.864 2206.04,243.864 2206.93,243.864 2207.83,243.864 2208.72,243.864 \n",
       "  2209.62,243.864 2210.51,243.864 2211.41,243.864 2212.3,243.864 2213.2,243.864 2214.09,243.864 2214.99,243.864 2215.88,243.864 2216.78,243.864 2217.67,243.864 \n",
       "  2218.56,243.864 2219.46,243.864 2220.35,243.864 2221.25,243.864 2222.14,243.864 2223.04,243.864 2223.93,243.864 2224.83,243.864 2225.72,243.864 2226.62,243.864 \n",
       "  2227.51,243.864 2228.41,243.864 2229.3,243.864 2230.19,243.864 2231.09,243.864 2231.98,243.864 2232.88,243.864 2233.77,243.864 2234.67,243.864 2235.56,243.864 \n",
       "  2236.46,243.864 2237.35,243.864 2238.25,243.864 2239.14,243.864 2240.04,243.864 2240.93,243.864 2241.82,243.864 2242.72,243.864 2243.61,243.864 2244.51,243.864 \n",
       "  2245.4,243.864 2246.3,243.864 2247.19,243.864 2248.09,243.864 2248.98,243.864 2249.88,243.864 2250.77,243.864 2251.66,243.864 2252.56,243.864 2253.45,243.864 \n",
       "  2254.35,243.864 2255.24,243.864 2256.14,243.864 2257.03,243.864 2257.93,243.864 2258.82,243.864 2259.72,243.864 2260.61,243.864 2261.51,243.864 2262.4,243.864 \n",
       "  2263.29,243.864 2264.19,243.864 2265.08,243.864 2265.98,243.864 2266.87,243.864 2267.77,243.864 2268.66,243.864 2269.56,243.864 2270.45,243.864 2271.35,243.864 \n",
       "  2272.24,243.864 2273.14,243.864 2274.03,243.864 2274.92,243.864 2275.82,243.864 2276.71,243.864 2277.61,243.864 2278.5,243.864 2279.4,243.864 2280.29,243.864 \n",
       "  2281.19,243.864 2282.08,243.864 2282.98,243.864 2283.87,243.864 2284.77,243.864 2285.66,243.864 2286.55,243.864 2287.45,243.864 2288.34,243.864 2289.24,243.864 \n",
       "  2290.13,243.864 2291.03,243.864 2291.92,243.864 2292.82,243.864 2293.71,243.864 2294.61,243.864 2295.5,243.864 2296.4,243.864 2297.29,243.864 2298.18,243.864 \n",
       "  2299.08,243.864 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip7602)\" style=\"stroke:#e26f46; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  509.859,158.579 510.753,159.641 511.648,161.584 512.542,164.321 513.437,167.795 514.332,171.97 515.226,176.815 516.121,182.305 517.015,188.415 517.91,195.122 \n",
       "  518.805,202.399 519.699,210.219 520.594,218.554 521.488,227.372 522.383,236.639 523.278,246.322 524.172,256.383 525.067,266.787 525.962,277.493 526.856,288.463 \n",
       "  527.751,299.658 528.645,311.038 529.54,322.563 530.435,334.194 531.329,345.893 532.224,357.622 533.118,369.344 534.013,381.024 534.908,392.626 535.802,404.119 \n",
       "  536.697,415.47 537.591,426.649 538.486,437.628 539.381,448.378 540.275,458.875 541.17,469.096 542.065,479.016 542.959,488.617 543.854,497.879 544.748,506.785 \n",
       "  545.643,515.319 546.538,523.467 547.432,531.216 548.327,538.556 549.221,545.477 550.116,551.972 551.011,558.033 551.905,563.656 552.8,568.836 553.694,573.573 \n",
       "  554.589,577.865 555.484,581.712 556.378,585.116 557.273,588.08 558.168,590.608 559.062,592.705 559.957,594.378 560.851,595.633 561.746,596.48 562.641,596.927 \n",
       "  563.535,596.985 564.43,596.664 565.324,595.977 566.219,594.937 567.114,593.556 568.008,591.848 568.903,589.828 569.797,587.512 570.692,584.913 571.587,582.05 \n",
       "  572.481,578.937 573.376,575.591 574.271,572.03 575.165,568.27 576.06,564.328 576.954,560.222 577.849,555.968 578.744,551.584 579.638,547.088 580.533,542.496 \n",
       "  581.427,537.824 582.322,533.09 583.217,528.31 584.111,523.5 585.006,518.675 585.9,513.851 586.795,509.042 587.69,504.264 588.584,499.528 589.479,494.85 \n",
       "  590.373,490.242 591.268,485.715 592.163,481.282 593.057,476.953 593.952,472.74 594.847,468.65 595.741,464.695 596.636,460.881 597.53,457.216 598.425,453.708 \n",
       "  599.32,450.363 600.214,447.186 601.109,444.183 602.003,441.357 602.898,438.712 603.793,436.252 604.687,433.977 605.582,431.891 606.476,429.994 607.371,428.286 \n",
       "  608.266,426.766 609.16,425.436 610.055,424.292 610.95,423.333 611.844,422.557 612.739,421.96 613.633,421.54 614.528,421.292 615.423,421.212 616.317,421.296 \n",
       "  617.212,421.539 618.106,421.934 619.001,422.477 619.896,423.162 620.79,423.982 621.685,424.931 622.579,426.002 623.474,427.188 624.369,428.483 625.263,429.878 \n",
       "  626.158,431.368 627.053,432.944 627.947,434.599 628.842,436.326 629.736,438.118 630.631,439.966 631.526,441.864 632.42,443.804 633.315,445.779 634.209,447.782 \n",
       "  635.104,449.807 635.999,451.845 636.893,453.891 637.788,455.937 638.682,457.978 639.577,460.008 640.472,462.02 641.366,464.009 642.261,465.969 643.156,467.896 \n",
       "  644.05,469.783 644.945,471.627 645.839,473.423 646.734,475.168 647.629,476.856 648.523,478.485 649.418,480.051 650.312,481.551 651.207,482.983 652.102,484.343 \n",
       "  652.996,485.631 653.891,486.844 654.785,487.981 655.68,489.04 656.575,490.02 657.469,490.92 658.364,491.741 659.258,492.482 660.153,493.142 661.048,493.723 \n",
       "  661.942,494.225 662.837,494.648 663.732,494.994 664.626,495.263 665.521,495.458 666.415,495.579 667.31,495.628 668.205,495.608 669.099,495.521 669.994,495.368 \n",
       "  670.888,495.152 671.783,494.876 672.678,494.541 673.572,494.152 674.467,493.711 675.361,493.22 676.256,492.682 677.151,492.101 678.045,491.48 678.94,490.821 \n",
       "  679.835,490.129 680.729,489.405 681.624,488.653 682.518,487.876 683.413,487.078 684.308,486.261 685.202,485.428 686.097,484.583 686.991,483.729 687.886,482.867 \n",
       "  688.781,482.002 689.675,481.136 690.57,480.272 691.464,479.412 692.359,478.559 693.254,477.715 694.148,476.882 695.043,476.064 695.938,475.261 696.832,474.476 \n",
       "  697.727,473.711 698.621,472.968 699.516,472.248 700.411,471.553 701.305,470.884 702.2,470.242 703.094,469.63 703.989,469.047 704.884,468.495 705.778,467.974 \n",
       "  706.673,467.485 707.567,467.03 708.462,466.607 709.357,466.218 710.251,465.863 711.146,465.542 712.041,465.254 712.935,465 713.83,464.78 714.724,464.594 \n",
       "  715.619,464.44 716.514,464.318 717.408,464.229 718.303,464.17 719.197,464.142 720.092,464.144 720.987,464.174 721.881,464.233 722.776,464.318 723.67,464.429 \n",
       "  724.565,464.565 725.46,464.724 726.354,464.906 727.249,465.109 728.143,465.332 729.038,465.573 729.933,465.832 730.827,466.107 731.722,466.397 732.617,466.701 \n",
       "  733.511,467.016 734.406,467.343 735.3,467.678 736.195,468.022 737.09,468.373 737.984,468.73 738.879,469.09 739.773,469.454 740.668,469.82 741.563,470.187 \n",
       "  742.457,470.553 743.352,470.917 744.246,471.279 745.141,471.637 746.036,471.991 746.93,472.338 747.825,472.68 748.72,473.014 749.614,473.339 750.509,473.656 \n",
       "  751.403,473.963 752.298,474.26 753.193,474.545 754.087,474.82 754.982,475.082 755.876,475.331 756.771,475.568 757.666,475.792 758.56,476.001 759.455,476.198 \n",
       "  760.349,476.38 761.244,476.548 762.139,476.701 763.033,476.841 763.928,476.966 764.823,477.076 765.717,477.173 766.612,477.255 767.506,477.323 768.401,477.378 \n",
       "  769.296,477.419 770.19,477.447 771.085,477.462 771.979,477.464 772.874,477.454 773.769,477.432 774.663,477.398 775.558,477.354 776.452,477.299 777.347,477.234 \n",
       "  778.242,477.159 779.136,477.075 780.031,476.983 780.926,476.882 781.82,476.774 782.715,476.659 783.609,476.538 784.504,476.411 785.399,476.279 786.293,476.142 \n",
       "  787.188,476 788.082,475.856 788.977,475.708 789.872,475.557 790.766,475.405 791.661,475.251 792.555,475.097 793.45,474.942 794.345,474.787 795.239,474.632 \n",
       "  796.134,474.479 797.028,474.327 797.923,474.177 798.818,474.029 799.712,473.884 800.607,473.742 801.502,473.603 802.396,473.468 803.291,473.337 804.185,473.211 \n",
       "  805.08,473.089 805.975,472.972 806.869,472.86 807.764,472.753 808.658,472.651 809.553,472.555 810.448,472.465 811.342,472.381 812.237,472.302 813.131,472.23 \n",
       "  814.026,472.163 814.921,472.103 815.815,472.049 816.71,472.001 817.605,471.958 818.499,471.922 819.394,471.892 820.288,471.867 821.183,471.849 822.078,471.836 \n",
       "  822.972,471.828 823.867,471.826 824.761,471.829 825.656,471.837 826.551,471.85 827.445,471.868 828.34,471.89 829.234,471.917 830.129,471.947 831.024,471.982 \n",
       "  831.918,472.02 832.813,472.062 833.708,472.107 834.602,472.155 835.497,472.206 836.391,472.259 837.286,472.314 838.181,472.372 839.075,472.431 839.97,472.492 \n",
       "  840.864,472.555 841.759,472.618 842.654,472.682 843.548,472.747 844.443,472.812 845.337,472.878 846.232,472.944 847.127,473.009 848.021,473.074 848.916,473.139 \n",
       "  849.81,473.202 850.705,473.265 851.6,473.327 852.494,473.387 853.389,473.446 854.284,473.504 855.178,473.559 856.073,473.613 856.967,473.666 857.862,473.716 \n",
       "  858.757,473.764 859.651,473.809 860.546,473.853 861.44,473.894 862.335,473.933 863.23,473.969 864.124,474.003 865.019,474.034 865.913,474.063 866.808,474.089 \n",
       "  867.703,474.112 868.597,474.133 869.492,474.152 870.387,474.168 871.281,474.181 872.176,474.192 873.07,474.201 873.965,474.207 874.86,474.21 875.754,474.212 \n",
       "  876.649,474.211 877.543,474.208 878.438,474.203 879.333,474.196 880.227,474.187 881.122,474.176 882.016,474.164 882.911,474.149 883.806,474.133 884.7,474.116 \n",
       "  885.595,474.097 886.49,474.077 887.384,474.056 888.279,474.034 889.173,474.011 890.068,473.987 890.963,473.962 891.857,473.936 892.752,473.91 893.646,473.883 \n",
       "  894.541,473.856 895.436,473.828 896.33,473.801 897.225,473.773 898.119,473.745 899.014,473.718 899.909,473.69 900.803,473.663 901.698,473.636 902.593,473.609 \n",
       "  903.487,473.583 904.382,473.557 905.276,473.532 906.171,473.507 907.066,473.484 907.96,473.461 908.855,473.438 909.749,473.417 910.644,473.397 911.539,473.377 \n",
       "  912.433,473.358 913.328,473.341 914.222,473.324 915.117,473.308 916.012,473.294 916.906,473.28 917.801,473.268 918.695,473.257 919.59,473.247 920.485,473.237 \n",
       "  921.379,473.229 922.274,473.222 923.169,473.216 924.063,473.212 924.958,473.208 925.852,473.205 926.747,473.203 927.642,473.202 928.536,473.202 929.431,473.203 \n",
       "  930.325,473.205 931.22,473.208 932.115,473.212 933.009,473.216 933.904,473.221 934.798,473.227 935.693,473.234 936.588,473.241 937.482,473.249 938.377,473.257 \n",
       "  939.272,473.266 940.166,473.275 941.061,473.285 941.955,473.295 942.85,473.306 943.745,473.316 944.639,473.327 945.534,473.339 946.428,473.35 947.323,473.362 \n",
       "  948.218,473.373 949.112,473.385 950.007,473.397 950.901,473.409 951.796,473.42 952.691,473.432 953.585,473.443 954.48,473.455 955.375,473.466 956.269,473.477 \n",
       "  957.164,473.487 958.058,473.498 958.953,473.508 959.848,473.518 960.742,473.527 961.637,473.536 962.531,473.545 963.426,473.554 964.321,473.562 965.215,473.569 \n",
       "  966.11,473.576 967.004,473.583 967.899,473.589 968.794,473.595 969.688,473.6 970.583,473.605 971.478,473.61 972.372,473.614 973.267,473.617 974.161,473.62 \n",
       "  975.056,473.623 975.951,473.625 976.845,473.627 977.74,473.628 978.634,473.629 979.529,473.629 980.424,473.629 981.318,473.629 982.213,473.628 983.107,473.627 \n",
       "  984.002,473.626 984.897,473.624 985.791,473.622 986.686,473.619 987.58,473.617 988.475,473.614 989.37,473.611 990.264,473.607 991.159,473.603 992.054,473.599 \n",
       "  992.948,473.595 993.843,473.591 994.737,473.587 995.632,473.582 996.527,473.578 997.421,473.573 998.316,473.568 999.21,473.563 1000.11,473.558 1001,473.553 \n",
       "  1001.89,473.548 1002.79,473.543 1003.68,473.538 1004.58,473.533 1005.47,473.529 1006.37,473.524 1007.26,473.519 1008.16,473.514 1009.05,473.51 1009.95,473.505 \n",
       "  1010.84,473.501 1011.73,473.497 1012.63,473.493 1013.52,473.489 1014.42,473.485 1015.31,473.482 1016.21,473.478 1017.1,473.475 1018,473.472 1018.89,473.469 \n",
       "  1019.79,473.466 1020.68,473.464 1021.58,473.461 1022.47,473.459 1023.36,473.457 1024.26,473.456 1025.15,473.454 1026.05,473.453 1026.94,473.452 1027.84,473.451 \n",
       "  1028.73,473.45 1029.63,473.449 1030.52,473.449 1031.42,473.449 1032.31,473.449 1033.21,473.449 1034.1,473.449 1034.99,473.449 1035.89,473.45 1036.78,473.451 \n",
       "  1037.68,473.452 1038.57,473.453 1039.47,473.454 1040.36,473.455 1041.26,473.456 1042.15,473.458 1043.05,473.459 1043.94,473.461 1044.84,473.463 1045.73,473.464 \n",
       "  1046.62,473.466 1047.52,473.468 1048.41,473.47 1049.31,473.472 1050.2,473.474 1051.1,473.476 1051.99,473.478 1052.89,473.48 1053.78,473.483 1054.68,473.485 \n",
       "  1055.57,473.487 1056.47,473.489 1057.36,473.491 1058.25,473.493 1059.15,473.495 1060.04,473.497 1060.94,473.499 1061.83,473.501 1062.73,473.503 1063.62,473.504 \n",
       "  1064.52,473.506 1065.41,473.508 1066.31,473.509 1067.2,473.511 1068.1,473.512 1068.99,473.514 1069.88,473.515 1070.78,473.516 1071.67,473.517 1072.57,473.519 \n",
       "  1073.46,473.52 1074.36,473.52 1075.25,473.521 1076.15,473.522 1077.04,473.523 1077.94,473.523 1078.83,473.524 1079.73,473.524 1080.62,473.525 1081.51,473.525 \n",
       "  1082.41,473.525 1083.3,473.525 1084.2,473.525 1085.09,473.525 1085.99,473.525 1086.88,473.525 1087.78,473.525 1088.67,473.524 1089.57,473.524 1090.46,473.524 \n",
       "  1091.36,473.523 1092.25,473.523 1093.14,473.522 1094.04,473.521 1094.93,473.521 1095.83,473.52 1096.72,473.519 1097.62,473.519 1098.51,473.518 1099.41,473.517 \n",
       "  1100.3,473.516 1101.2,473.515 1102.09,473.515 1102.99,473.514 1103.88,473.513 1104.77,473.512 1105.67,473.511 1106.56,473.51 1107.46,473.509 1108.35,473.508 \n",
       "  1109.25,473.508 1110.14,473.507 1111.04,473.506 1111.93,473.505 1112.83,473.504 1113.72,473.503 1114.62,473.503 1115.51,473.502 1116.4,473.501 1117.3,473.5 \n",
       "  1118.19,473.5 1119.09,473.499 1119.98,473.498 1120.88,473.498 1121.77,473.497 1122.67,473.497 1123.56,473.496 1124.46,473.496 1125.35,473.495 1126.25,473.495 \n",
       "  1127.14,473.495 1128.03,473.494 1128.93,473.494 1129.82,473.494 1130.72,473.493 1131.61,473.493 1132.51,473.493 1133.4,473.493 1134.3,473.493 1135.19,473.493 \n",
       "  1136.09,473.493 1136.98,473.493 1137.88,473.493 1138.77,473.493 1139.66,473.493 1140.56,473.493 1141.45,473.493 1142.35,473.493 1143.24,473.494 1144.14,473.494 \n",
       "  1145.03,473.494 1145.93,473.494 1146.82,473.495 1147.72,473.495 1148.61,473.495 1149.5,473.496 1150.4,473.496 1151.29,473.496 1152.19,473.497 1153.08,473.497 \n",
       "  1153.98,473.497 1154.87,473.498 1155.77,473.498 1156.66,473.498 1157.56,473.499 1158.45,473.499 1159.35,473.499 1160.24,473.5 1161.13,473.5 1162.03,473.501 \n",
       "  1162.92,473.501 1163.82,473.501 1164.71,473.502 1165.61,473.502 1166.5,473.502 1167.4,473.503 1168.29,473.503 1169.19,473.503 1170.08,473.504 1170.98,473.504 \n",
       "  1171.87,473.504 1172.76,473.504 1173.66,473.505 1174.55,473.505 1175.45,473.505 1176.34,473.505 1177.24,473.505 1178.13,473.506 1179.03,473.506 1179.92,473.506 \n",
       "  1180.82,473.506 1181.71,473.506 1182.61,473.506 1183.5,473.506 1184.39,473.506 1185.29,473.506 1186.18,473.506 1187.08,473.507 1187.97,473.507 1188.87,473.507 \n",
       "  1189.76,473.507 1190.66,473.506 1191.55,473.506 1192.45,473.506 1193.34,473.506 1194.24,473.506 1195.13,473.506 1196.02,473.506 1196.92,473.506 1197.81,473.506 \n",
       "  1198.71,473.506 1199.6,473.506 1200.5,473.506 1201.39,473.505 1202.29,473.505 1203.18,473.505 1204.08,473.505 1204.97,473.505 1205.87,473.505 1206.76,473.505 \n",
       "  1207.65,473.504 1208.55,473.504 1209.44,473.504 1210.34,473.504 1211.23,473.504 1212.13,473.504 1213.02,473.503 1213.92,473.503 1214.81,473.503 1215.71,473.503 \n",
       "  1216.6,473.503 1217.5,473.503 1218.39,473.503 1219.28,473.502 1220.18,473.502 1221.07,473.502 1221.97,473.502 1222.86,473.502 1223.76,473.502 1224.65,473.502 \n",
       "  1225.55,473.502 1226.44,473.501 1227.34,473.501 1228.23,473.501 1229.13,473.501 1230.02,473.501 1230.91,473.501 1231.81,473.501 1232.7,473.501 1233.6,473.501 \n",
       "  1234.49,473.501 1235.39,473.501 1236.28,473.501 1237.18,473.501 1238.07,473.501 1238.97,473.501 1239.86,473.501 1240.76,473.501 1241.65,473.501 1242.54,473.501 \n",
       "  1243.44,473.501 1244.33,473.501 1245.23,473.501 1246.12,473.501 1247.02,473.501 1247.91,473.501 1248.81,473.501 1249.7,473.501 1250.6,473.501 1251.49,473.501 \n",
       "  1252.39,473.501 1253.28,473.501 1254.17,473.501 1255.07,473.501 1255.96,473.501 1256.86,473.501 1257.75,473.502 1258.65,473.502 1259.54,473.502 1260.44,473.502 \n",
       "  1261.33,473.502 1262.23,473.502 1263.12,473.502 1264.02,473.502 1264.91,473.502 1265.8,473.502 1266.7,473.502 1267.59,473.502 1268.49,473.502 1269.38,473.502 \n",
       "  1270.28,473.502 1271.17,473.502 1272.07,473.503 1272.96,473.503 1273.86,473.503 1274.75,473.503 1275.65,473.503 1276.54,473.503 1277.43,473.503 1278.33,473.503 \n",
       "  1279.22,473.503 1280.12,473.503 1281.01,473.503 1281.91,473.503 1282.8,473.503 1283.7,473.503 1284.59,473.503 1285.49,473.503 1286.38,473.503 1287.27,473.503 \n",
       "  1288.17,473.503 1289.06,473.503 1289.96,473.503 1290.85,473.503 1291.75,473.503 1292.64,473.503 1293.54,473.503 1294.43,473.503 1295.33,473.503 1296.22,473.503 \n",
       "  1297.12,473.503 1298.01,473.503 1298.9,473.503 1299.8,473.503 1300.69,473.503 1301.59,473.503 1302.48,473.503 1303.38,473.503 1304.27,473.503 1305.17,473.503 \n",
       "  1306.06,473.503 1306.96,473.503 1307.85,473.503 1308.75,473.503 1309.64,473.503 1310.53,473.503 1311.43,473.503 1312.32,473.503 1313.22,473.503 1314.11,473.503 \n",
       "  1315.01,473.503 1315.9,473.503 1316.8,473.503 1317.69,473.503 1318.59,473.503 1319.48,473.503 1320.38,473.503 1321.27,473.503 1322.16,473.503 1323.06,473.502 \n",
       "  1323.95,473.502 1324.85,473.502 1325.74,473.502 1326.64,473.502 1327.53,473.502 1328.43,473.502 1329.32,473.502 1330.22,473.502 1331.11,473.502 1332.01,473.502 \n",
       "  1332.9,473.502 1333.79,473.502 1334.69,473.502 1335.58,473.502 1336.48,473.502 1337.37,473.502 1338.27,473.502 1339.16,473.502 1340.06,473.502 1340.95,473.502 \n",
       "  1341.85,473.502 1342.74,473.502 1343.64,473.502 1344.53,473.502 1345.42,473.502 1346.32,473.502 1347.21,473.502 1348.11,473.502 1349,473.502 1349.9,473.502 \n",
       "  1350.79,473.502 1351.69,473.502 1352.58,473.502 1353.48,473.502 1354.37,473.502 1355.27,473.502 1356.16,473.502 1357.05,473.502 1357.95,473.502 1358.84,473.502 \n",
       "  1359.74,473.502 1360.63,473.502 1361.53,473.502 1362.42,473.502 1363.32,473.502 1364.21,473.502 1365.11,473.502 1366,473.502 1366.9,473.502 1367.79,473.502 \n",
       "  1368.68,473.502 1369.58,473.502 1370.47,473.502 1371.37,473.502 1372.26,473.502 1373.16,473.502 1374.05,473.502 1374.95,473.502 1375.84,473.503 1376.74,473.503 \n",
       "  1377.63,473.503 1378.53,473.503 1379.42,473.503 1380.31,473.503 1381.21,473.503 1382.1,473.503 1383,473.503 1383.89,473.503 1384.79,473.503 1385.68,473.503 \n",
       "  1386.58,473.503 1387.47,473.503 1388.37,473.503 1389.26,473.503 1390.16,473.503 1391.05,473.503 1391.94,473.503 1392.84,473.503 1393.73,473.503 1394.63,473.503 \n",
       "  1395.52,473.503 1396.42,473.503 1397.31,473.503 1398.21,473.503 1399.1,473.503 1400,473.503 1400.89,473.503 1401.79,473.503 1402.68,473.503 1403.57,473.503 \n",
       "  1404.47,473.503 1405.36,473.503 1406.26,473.503 1407.15,473.503 1408.05,473.503 1408.94,473.503 1409.84,473.503 1410.73,473.503 1411.63,473.503 1412.52,473.503 \n",
       "  1413.42,473.503 1414.31,473.503 1415.2,473.503 1416.1,473.503 1416.99,473.503 1417.89,473.503 1418.78,473.503 1419.68,473.503 1420.57,473.503 1421.47,473.503 \n",
       "  1422.36,473.503 1423.26,473.503 1424.15,473.503 1425.04,473.503 1425.94,473.503 1426.83,473.503 1427.73,473.503 1428.62,473.503 1429.52,473.503 1430.41,473.503 \n",
       "  1431.31,473.502 1432.2,473.502 1433.1,473.502 1433.99,473.502 1434.89,473.502 1435.78,473.502 1436.67,473.502 1437.57,473.502 1438.46,473.502 1439.36,473.502 \n",
       "  1440.25,473.502 1441.15,473.502 1442.04,473.502 1442.94,473.502 1443.83,473.502 1444.73,473.502 1445.62,473.502 1446.52,473.502 1447.41,473.502 1448.3,473.502 \n",
       "  1449.2,473.502 1450.09,473.502 1450.99,473.502 1451.88,473.502 1452.78,473.502 1453.67,473.502 1454.57,473.502 1455.46,473.502 1456.36,473.502 1457.25,473.502 \n",
       "  1458.15,473.502 1459.04,473.502 1459.93,473.502 1460.83,473.502 1461.72,473.502 1462.62,473.502 1463.51,473.502 1464.41,473.502 1465.3,473.502 1466.2,473.502 \n",
       "  1467.09,473.502 1467.99,473.502 1468.88,473.503 1469.78,473.503 1470.67,473.503 1471.56,473.503 1472.46,473.503 1473.35,473.503 1474.25,473.503 1475.14,473.503 \n",
       "  1476.04,473.503 1476.93,473.503 1477.83,473.503 1478.72,473.503 1479.62,473.503 1480.51,473.503 1481.41,473.503 1482.3,473.503 1483.19,473.503 1484.09,473.503 \n",
       "  1484.98,473.503 1485.88,473.503 1486.77,473.503 1487.67,473.503 1488.56,473.503 1489.46,473.503 1490.35,473.503 1491.25,473.503 1492.14,473.503 1493.04,473.503 \n",
       "  1493.93,473.503 1494.82,473.503 1495.72,473.503 1496.61,473.503 1497.51,473.503 1498.4,473.503 1499.3,473.503 1500.19,473.503 1501.09,473.503 1501.98,473.503 \n",
       "  1502.88,473.503 1503.77,473.503 1504.67,473.503 1505.56,473.503 1506.45,473.503 1507.35,473.503 1508.24,473.503 1509.14,473.503 1510.03,473.503 1510.93,473.503 \n",
       "  1511.82,473.503 1512.72,473.503 1513.61,473.503 1514.51,473.503 1515.4,473.503 1516.3,473.503 1517.19,473.503 1518.08,473.503 1518.98,473.503 1519.87,473.503 \n",
       "  1520.77,473.503 1521.66,473.503 1522.56,473.503 1523.45,473.503 1524.35,473.503 1525.24,473.503 1526.14,473.503 1527.03,473.503 1527.93,473.503 1528.82,473.503 \n",
       "  1529.71,473.503 1530.61,473.503 1531.5,473.503 1532.4,473.503 1533.29,473.503 1534.19,473.503 1535.08,473.503 1535.98,473.503 1536.87,473.503 1537.77,473.503 \n",
       "  1538.66,473.503 1539.56,473.503 1540.45,473.503 1541.34,473.503 1542.24,473.503 1543.13,473.503 1544.03,473.503 1544.92,473.503 1545.82,473.503 1546.71,473.503 \n",
       "  1547.61,473.503 1548.5,473.503 1549.4,473.503 1550.29,473.503 1551.19,473.503 1552.08,473.503 1552.97,473.503 1553.87,473.503 1554.76,473.503 1555.66,473.503 \n",
       "  1556.55,473.503 1557.45,473.503 1558.34,473.503 1559.24,473.503 1560.13,473.503 1561.03,473.503 1561.92,473.503 1562.81,473.503 1563.71,473.503 1564.6,473.503 \n",
       "  1565.5,473.503 1566.39,473.503 1567.29,473.503 1568.18,473.503 1569.08,473.503 1569.97,473.503 1570.87,473.503 1571.76,473.503 1572.66,473.503 1573.55,473.503 \n",
       "  1574.44,473.503 1575.34,473.503 1576.23,473.503 1577.13,473.503 1578.02,473.503 1578.92,473.503 1579.81,473.503 1580.71,473.503 1581.6,473.503 1582.5,473.503 \n",
       "  1583.39,473.503 1584.29,473.503 1585.18,473.503 1586.07,473.503 1586.97,473.503 1587.86,473.503 1588.76,473.503 1589.65,473.503 1590.55,473.503 1591.44,473.503 \n",
       "  1592.34,473.503 1593.23,473.503 1594.13,473.503 1595.02,473.503 1595.92,473.503 1596.81,473.503 1597.7,473.503 1598.6,473.503 1599.49,473.503 1600.39,473.503 \n",
       "  1601.28,473.503 1602.18,473.503 1603.07,473.503 1603.97,473.503 1604.86,473.503 1605.76,473.503 1606.65,473.503 1607.55,473.503 1608.44,473.503 1609.33,473.503 \n",
       "  1610.23,473.503 1611.12,473.503 1612.02,473.503 1612.91,473.503 1613.81,473.503 1614.7,473.503 1615.6,473.503 1616.49,473.503 1617.39,473.503 1618.28,473.503 \n",
       "  1619.18,473.503 1620.07,473.503 1620.96,473.503 1621.86,473.503 1622.75,473.503 1623.65,473.503 1624.54,473.503 1625.44,473.503 1626.33,473.503 1627.23,473.503 \n",
       "  1628.12,473.503 1629.02,473.503 1629.91,473.503 1630.81,473.503 1631.7,473.503 1632.59,473.503 1633.49,473.503 1634.38,473.503 1635.28,473.503 1636.17,473.503 \n",
       "  1637.07,473.503 1637.96,473.503 1638.86,473.503 1639.75,473.503 1640.65,473.503 1641.54,473.503 1642.44,473.503 1643.33,473.503 1644.22,473.503 1645.12,473.503 \n",
       "  1646.01,473.503 1646.91,473.503 1647.8,473.503 1648.7,473.503 1649.59,473.503 1650.49,473.503 1651.38,473.503 1652.28,473.503 1653.17,473.503 1654.07,473.503 \n",
       "  1654.96,473.503 1655.85,473.503 1656.75,473.503 1657.64,473.503 1658.54,473.503 1659.43,473.503 1660.33,473.503 1661.22,473.503 1662.12,473.503 1663.01,473.503 \n",
       "  1663.91,473.503 1664.8,473.503 1665.7,473.503 1666.59,473.503 1667.48,473.503 1668.38,473.503 1669.27,473.503 1670.17,473.503 1671.06,473.503 1671.96,473.503 \n",
       "  1672.85,473.503 1673.75,473.503 1674.64,473.503 1675.54,473.503 1676.43,473.503 1677.33,473.503 1678.22,473.503 1679.11,473.503 1680.01,473.503 1680.9,473.503 \n",
       "  1681.8,473.503 1682.69,473.503 1683.59,473.503 1684.48,473.503 1685.38,473.503 1686.27,473.503 1687.17,473.503 1688.06,473.503 1688.96,473.503 1689.85,473.503 \n",
       "  1690.74,473.503 1691.64,473.503 1692.53,473.503 1693.43,473.503 1694.32,473.503 1695.22,473.503 1696.11,473.503 1697.01,473.503 1697.9,473.503 1698.8,473.503 \n",
       "  1699.69,473.503 1700.58,473.503 1701.48,473.503 1702.37,473.503 1703.27,473.503 1704.16,473.503 1705.06,473.503 1705.95,473.503 1706.85,473.503 1707.74,473.503 \n",
       "  1708.64,473.503 1709.53,473.503 1710.43,473.503 1711.32,473.503 1712.21,473.503 1713.11,473.503 1714,473.503 1714.9,473.503 1715.79,473.503 1716.69,473.503 \n",
       "  1717.58,473.503 1718.48,473.503 1719.37,473.503 1720.27,473.503 1721.16,473.503 1722.06,473.503 1722.95,473.503 1723.84,473.503 1724.74,473.503 1725.63,473.503 \n",
       "  1726.53,473.503 1727.42,473.503 1728.32,473.503 1729.21,473.503 1730.11,473.503 1731,473.503 1731.9,473.503 1732.79,473.503 1733.69,473.503 1734.58,473.503 \n",
       "  1735.47,473.503 1736.37,473.503 1737.26,473.503 1738.16,473.503 1739.05,473.503 1739.95,473.503 1740.84,473.503 1741.74,473.503 1742.63,473.503 1743.53,473.503 \n",
       "  1744.42,473.503 1745.32,473.503 1746.21,473.503 1747.1,473.503 1748,473.503 1748.89,473.503 1749.79,473.503 1750.68,473.503 1751.58,473.503 1752.47,473.503 \n",
       "  1753.37,473.503 1754.26,473.503 1755.16,473.503 1756.05,473.503 1756.95,473.503 1757.84,473.503 1758.73,473.503 1759.63,473.503 1760.52,473.503 1761.42,473.503 \n",
       "  1762.31,473.503 1763.21,473.503 1764.1,473.503 1765,473.503 1765.89,473.503 1766.79,473.503 1767.68,473.503 1768.58,473.503 1769.47,473.503 1770.36,473.503 \n",
       "  1771.26,473.503 1772.15,473.503 1773.05,473.503 1773.94,473.503 1774.84,473.503 1775.73,473.503 1776.63,473.503 1777.52,473.503 1778.42,473.503 1779.31,473.503 \n",
       "  1780.21,473.503 1781.1,473.503 1781.99,473.503 1782.89,473.503 1783.78,473.503 1784.68,473.503 1785.57,473.503 1786.47,473.503 1787.36,473.503 1788.26,473.503 \n",
       "  1789.15,473.503 1790.05,473.503 1790.94,473.503 1791.84,473.503 1792.73,473.503 1793.62,473.503 1794.52,473.503 1795.41,473.503 1796.31,473.503 1797.2,473.503 \n",
       "  1798.1,473.503 1798.99,473.503 1799.89,473.503 1800.78,473.503 1801.68,473.503 1802.57,473.503 1803.47,473.503 1804.36,473.503 1805.25,473.503 1806.15,473.503 \n",
       "  1807.04,473.503 1807.94,473.503 1808.83,473.503 1809.73,473.503 1810.62,473.503 1811.52,473.503 1812.41,473.503 1813.31,473.503 1814.2,473.503 1815.1,473.503 \n",
       "  1815.99,473.503 1816.88,473.503 1817.78,473.503 1818.67,473.503 1819.57,473.503 1820.46,473.503 1821.36,473.503 1822.25,473.503 1823.15,473.503 1824.04,473.503 \n",
       "  1824.94,473.503 1825.83,473.503 1826.73,473.503 1827.62,473.503 1828.51,473.503 1829.41,473.503 1830.3,473.503 1831.2,473.503 1832.09,473.503 1832.99,473.503 \n",
       "  1833.88,473.503 1834.78,473.503 1835.67,473.503 1836.57,473.503 1837.46,473.503 1838.35,473.503 1839.25,473.503 1840.14,473.503 1841.04,473.503 1841.93,473.503 \n",
       "  1842.83,473.503 1843.72,473.503 1844.62,473.503 1845.51,473.503 1846.41,473.503 1847.3,473.503 1848.2,473.503 1849.09,473.503 1849.98,473.503 1850.88,473.503 \n",
       "  1851.77,473.503 1852.67,473.503 1853.56,473.503 1854.46,473.503 1855.35,473.503 1856.25,473.503 1857.14,473.503 1858.04,473.503 1858.93,473.503 1859.83,473.503 \n",
       "  1860.72,473.503 1861.61,473.503 1862.51,473.503 1863.4,473.503 1864.3,473.503 1865.19,473.503 1866.09,473.503 1866.98,473.503 1867.88,473.503 1868.77,473.503 \n",
       "  1869.67,473.503 1870.56,473.503 1871.46,473.503 1872.35,473.503 1873.24,473.503 1874.14,473.503 1875.03,473.503 1875.93,473.503 1876.82,473.503 1877.72,473.503 \n",
       "  1878.61,473.503 1879.51,473.503 1880.4,473.503 1881.3,473.503 1882.19,473.503 1883.09,473.503 1883.98,473.503 1884.87,473.503 1885.77,473.503 1886.66,473.503 \n",
       "  1887.56,473.503 1888.45,473.503 1889.35,473.503 1890.24,473.503 1891.14,473.503 1892.03,473.503 1892.93,473.503 1893.82,473.503 1894.72,473.503 1895.61,473.503 \n",
       "  1896.5,473.503 1897.4,473.503 1898.29,473.503 1899.19,473.503 1900.08,473.503 1900.98,473.503 1901.87,473.503 1902.77,473.503 1903.66,473.503 1904.56,473.503 \n",
       "  1905.45,473.503 1906.35,473.503 1907.24,473.503 1908.13,473.503 1909.03,473.503 1909.92,473.503 1910.82,473.503 1911.71,473.503 1912.61,473.503 1913.5,473.503 \n",
       "  1914.4,473.503 1915.29,473.503 1916.19,473.503 1917.08,473.503 1917.98,473.503 1918.87,473.503 1919.76,473.503 1920.66,473.503 1921.55,473.503 1922.45,473.503 \n",
       "  1923.34,473.503 1924.24,473.503 1925.13,473.503 1926.03,473.503 1926.92,473.503 1927.82,473.503 1928.71,473.503 1929.61,473.503 1930.5,473.503 1931.39,473.503 \n",
       "  1932.29,473.503 1933.18,473.503 1934.08,473.503 1934.97,473.503 1935.87,473.503 1936.76,473.503 1937.66,473.503 1938.55,473.503 1939.45,473.503 1940.34,473.503 \n",
       "  1941.24,473.503 1942.13,473.503 1943.02,473.503 1943.92,473.503 1944.81,473.503 1945.71,473.503 1946.6,473.503 1947.5,473.503 1948.39,473.503 1949.29,473.503 \n",
       "  1950.18,473.503 1951.08,473.503 1951.97,473.503 1952.87,473.503 1953.76,473.503 1954.65,473.503 1955.55,473.503 1956.44,473.503 1957.34,473.503 1958.23,473.503 \n",
       "  1959.13,473.503 1960.02,473.503 1960.92,473.503 1961.81,473.503 1962.71,473.503 1963.6,473.503 1964.5,473.503 1965.39,473.503 1966.28,473.503 1967.18,473.503 \n",
       "  1968.07,473.503 1968.97,473.503 1969.86,473.503 1970.76,473.503 1971.65,473.503 1972.55,473.503 1973.44,473.503 1974.34,473.503 1975.23,473.503 1976.12,473.503 \n",
       "  1977.02,473.503 1977.91,473.503 1978.81,473.503 1979.7,473.503 1980.6,473.503 1981.49,473.503 1982.39,473.503 1983.28,473.503 1984.18,473.503 1985.07,473.503 \n",
       "  1985.97,473.503 1986.86,473.503 1987.75,473.503 1988.65,473.503 1989.54,473.503 1990.44,473.503 1991.33,473.503 1992.23,473.503 1993.12,473.503 1994.02,473.503 \n",
       "  1994.91,473.503 1995.81,473.503 1996.7,473.503 1997.6,473.503 1998.49,473.503 1999.38,473.503 2000.28,473.503 2001.17,473.503 2002.07,473.503 2002.96,473.503 \n",
       "  2003.86,473.503 2004.75,473.503 2005.65,473.503 2006.54,473.503 2007.44,473.503 2008.33,473.503 2009.23,473.503 2010.12,473.503 2011.01,473.503 2011.91,473.503 \n",
       "  2012.8,473.503 2013.7,473.503 2014.59,473.503 2015.49,473.503 2016.38,473.503 2017.28,473.503 2018.17,473.503 2019.07,473.503 2019.96,473.503 2020.86,473.503 \n",
       "  2021.75,473.503 2022.64,473.503 2023.54,473.503 2024.43,473.503 2025.33,473.503 2026.22,473.503 2027.12,473.503 2028.01,473.503 2028.91,473.503 2029.8,473.503 \n",
       "  2030.7,473.503 2031.59,473.503 2032.49,473.503 2033.38,473.503 2034.27,473.503 2035.17,473.503 2036.06,473.503 2036.96,473.503 2037.85,473.503 2038.75,473.503 \n",
       "  2039.64,473.503 2040.54,473.503 2041.43,473.503 2042.33,473.503 2043.22,473.503 2044.12,473.503 2045.01,473.503 2045.9,473.503 2046.8,473.503 2047.69,473.503 \n",
       "  2048.59,473.503 2049.48,473.503 2050.38,473.503 2051.27,473.503 2052.17,473.503 2053.06,473.503 2053.96,473.503 2054.85,473.503 2055.75,473.503 2056.64,473.503 \n",
       "  2057.53,473.503 2058.43,473.503 2059.32,473.503 2060.22,473.503 2061.11,473.503 2062.01,473.503 2062.9,473.503 2063.8,473.503 2064.69,473.503 2065.59,473.503 \n",
       "  2066.48,473.503 2067.38,473.503 2068.27,473.503 2069.16,473.503 2070.06,473.503 2070.95,473.503 2071.85,473.503 2072.74,473.503 2073.64,473.503 2074.53,473.503 \n",
       "  2075.43,473.503 2076.32,473.503 2077.22,473.503 2078.11,473.503 2079.01,473.503 2079.9,473.503 2080.79,473.503 2081.69,473.503 2082.58,473.503 2083.48,473.503 \n",
       "  2084.37,473.503 2085.27,473.503 2086.16,473.503 2087.06,473.503 2087.95,473.503 2088.85,473.503 2089.74,473.503 2090.64,473.503 2091.53,473.503 2092.42,473.503 \n",
       "  2093.32,473.503 2094.21,473.503 2095.11,473.503 2096,473.503 2096.9,473.503 2097.79,473.503 2098.69,473.503 2099.58,473.503 2100.48,473.503 2101.37,473.503 \n",
       "  2102.27,473.503 2103.16,473.503 2104.05,473.503 2104.95,473.503 2105.84,473.503 2106.74,473.503 2107.63,473.503 2108.53,473.503 2109.42,473.503 2110.32,473.503 \n",
       "  2111.21,473.503 2112.11,473.503 2113,473.503 2113.89,473.503 2114.79,473.503 2115.68,473.503 2116.58,473.503 2117.47,473.503 2118.37,473.503 2119.26,473.503 \n",
       "  2120.16,473.503 2121.05,473.503 2121.95,473.503 2122.84,473.503 2123.74,473.503 2124.63,473.503 2125.52,473.503 2126.42,473.503 2127.31,473.503 2128.21,473.503 \n",
       "  2129.1,473.503 2130,473.503 2130.89,473.503 2131.79,473.503 2132.68,473.503 2133.58,473.503 2134.47,473.503 2135.37,473.503 2136.26,473.503 2137.15,473.503 \n",
       "  2138.05,473.503 2138.94,473.503 2139.84,473.503 2140.73,473.503 2141.63,473.503 2142.52,473.503 2143.42,473.503 2144.31,473.503 2145.21,473.503 2146.1,473.503 \n",
       "  2147,473.503 2147.89,473.503 2148.78,473.503 2149.68,473.503 2150.57,473.503 2151.47,473.503 2152.36,473.503 2153.26,473.503 2154.15,473.503 2155.05,473.503 \n",
       "  2155.94,473.503 2156.84,473.503 2157.73,473.503 2158.63,473.503 2159.52,473.503 2160.41,473.503 2161.31,473.503 2162.2,473.503 2163.1,473.503 2163.99,473.503 \n",
       "  2164.89,473.503 2165.78,473.503 2166.68,473.503 2167.57,473.503 2168.47,473.503 2169.36,473.503 2170.26,473.503 2171.15,473.503 2172.04,473.503 2172.94,473.503 \n",
       "  2173.83,473.503 2174.73,473.503 2175.62,473.503 2176.52,473.503 2177.41,473.503 2178.31,473.503 2179.2,473.503 2180.1,473.503 2180.99,473.503 2181.89,473.503 \n",
       "  2182.78,473.503 2183.67,473.503 2184.57,473.503 2185.46,473.503 2186.36,473.503 2187.25,473.503 2188.15,473.503 2189.04,473.503 2189.94,473.503 2190.83,473.503 \n",
       "  2191.73,473.503 2192.62,473.503 2193.52,473.503 2194.41,473.503 2195.3,473.503 2196.2,473.503 2197.09,473.503 2197.99,473.503 2198.88,473.503 2199.78,473.503 \n",
       "  2200.67,473.503 2201.57,473.503 2202.46,473.503 2203.36,473.503 2204.25,473.503 2205.15,473.503 2206.04,473.503 2206.93,473.503 2207.83,473.503 2208.72,473.503 \n",
       "  2209.62,473.503 2210.51,473.503 2211.41,473.503 2212.3,473.503 2213.2,473.503 2214.09,473.503 2214.99,473.503 2215.88,473.503 2216.78,473.503 2217.67,473.503 \n",
       "  2218.56,473.503 2219.46,473.503 2220.35,473.503 2221.25,473.503 2222.14,473.503 2223.04,473.503 2223.93,473.503 2224.83,473.503 2225.72,473.503 2226.62,473.503 \n",
       "  2227.51,473.503 2228.41,473.503 2229.3,473.503 2230.19,473.503 2231.09,473.503 2231.98,473.503 2232.88,473.503 2233.77,473.503 2234.67,473.503 2235.56,473.503 \n",
       "  2236.46,473.503 2237.35,473.503 2238.25,473.503 2239.14,473.503 2240.04,473.503 2240.93,473.503 2241.82,473.503 2242.72,473.503 2243.61,473.503 2244.51,473.503 \n",
       "  2245.4,473.503 2246.3,473.503 2247.19,473.503 2248.09,473.503 2248.98,473.503 2249.88,473.503 2250.77,473.503 2251.66,473.503 2252.56,473.503 2253.45,473.503 \n",
       "  2254.35,473.503 2255.24,473.503 2256.14,473.503 2257.03,473.503 2257.93,473.503 2258.82,473.503 2259.72,473.503 2260.61,473.503 2261.51,473.503 2262.4,473.503 \n",
       "  2263.29,473.503 2264.19,473.503 2265.08,473.503 2265.98,473.503 2266.87,473.503 2267.77,473.503 2268.66,473.503 2269.56,473.503 2270.45,473.503 2271.35,473.503 \n",
       "  2272.24,473.503 2273.14,473.503 2274.03,473.503 2274.92,473.503 2275.82,473.503 2276.71,473.503 2277.61,473.503 2278.5,473.503 2279.4,473.503 2280.29,473.503 \n",
       "  2281.19,473.503 2282.08,473.503 2282.98,473.503 2283.87,473.503 2284.77,473.503 2285.66,473.503 2286.55,473.503 2287.45,473.503 2288.34,473.503 2289.24,473.503 \n",
       "  2290.13,473.503 2291.03,473.503 2291.92,473.503 2292.82,473.503 2293.71,473.503 2294.61,473.503 2295.5,473.503 2296.4,473.503 2297.29,473.503 2298.18,473.503 \n",
       "  2299.08,473.503 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip7602)\" style=\"stroke:#3da44d; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  509.859,158.579 510.753,159.641 511.648,161.584 512.542,164.321 513.437,167.786 514.332,171.926 515.226,176.695 516.121,182.053 517.015,187.966 517.91,194.405 \n",
       "  518.805,201.344 519.699,208.761 520.594,216.639 521.488,224.96 522.383,233.71 523.278,242.873 524.172,252.436 525.067,262.385 525.962,272.705 526.856,283.38 \n",
       "  527.751,294.395 528.645,305.733 529.54,317.376 530.435,329.303 531.329,341.496 532.224,353.933 533.118,366.592 534.013,379.45 534.908,392.484 535.802,405.671 \n",
       "  536.697,418.985 537.591,432.404 538.486,445.901 539.381,459.454 540.275,473.037 541.17,486.627 542.065,500.201 542.959,513.735 543.854,527.207 544.748,540.596 \n",
       "  545.643,553.88 546.538,567.039 547.432,580.055 548.327,592.907 549.221,605.58 550.116,618.055 551.011,630.318 551.905,642.352 552.8,654.145 553.694,665.683 \n",
       "  554.589,676.953 555.484,687.943 556.378,698.644 557.273,709.045 558.168,719.137 559.062,728.912 559.957,738.361 560.851,747.477 561.746,756.254 562.641,764.687 \n",
       "  563.535,772.769 564.43,780.496 565.324,787.864 566.219,794.869 567.114,801.508 568.008,807.778 568.903,813.676 569.797,819.201 570.692,824.352 571.587,829.127 \n",
       "  572.481,833.526 573.376,837.549 574.271,841.195 575.165,844.466 576.06,847.363 576.954,849.886 577.849,852.038 578.744,853.821 579.638,855.237 580.533,856.29 \n",
       "  581.427,856.982 582.322,857.319 583.217,857.302 584.111,856.938 585.006,856.232 585.9,855.187 586.795,853.811 587.69,852.109 588.584,850.088 589.479,847.755 \n",
       "  590.373,845.116 591.268,842.179 592.163,838.954 593.057,835.446 593.952,831.666 594.847,827.622 595.741,823.324 596.636,818.78 597.53,814.002 598.425,808.998 \n",
       "  599.32,803.78 600.214,798.357 601.109,792.742 602.003,786.944 602.898,780.976 603.793,774.848 604.687,768.572 605.582,762.159 606.476,755.622 607.371,748.973 \n",
       "  608.266,742.222 609.16,735.383 610.055,728.466 610.95,721.485 611.844,714.451 612.739,707.375 613.633,700.27 614.528,693.148 615.423,686.019 616.317,678.896 \n",
       "  617.212,671.79 618.106,664.712 619.001,657.672 619.896,650.683 620.79,643.754 621.685,636.895 622.579,630.117 623.474,623.43 624.369,616.842 625.263,610.364 \n",
       "  626.158,604.004 627.053,597.77 627.947,591.672 628.842,585.716 629.736,579.911 630.631,574.264 631.526,568.781 632.42,563.469 633.315,558.334 634.209,553.382 \n",
       "  635.104,548.618 635.999,544.047 636.893,539.673 637.788,535.501 638.682,531.535 639.577,527.777 640.472,524.231 641.366,520.9 642.261,517.785 643.156,514.888 \n",
       "  644.05,512.211 644.945,509.754 645.839,507.519 646.734,505.505 647.629,503.713 648.523,502.141 649.418,500.79 650.312,499.658 651.207,498.744 652.102,498.045 \n",
       "  652.996,497.56 653.891,497.286 654.785,497.221 655.68,497.36 656.575,497.702 657.469,498.243 658.364,498.978 659.258,499.903 660.153,501.015 661.048,502.308 \n",
       "  661.942,503.778 662.837,505.419 663.732,507.227 664.626,509.197 665.521,511.322 666.415,513.597 667.31,516.016 668.205,518.572 669.099,521.261 669.994,524.076 \n",
       "  670.888,527.01 671.783,530.056 672.678,533.21 673.572,536.463 674.467,539.809 675.361,543.241 676.256,546.754 677.151,550.339 678.045,553.991 678.94,557.702 \n",
       "  679.835,561.466 680.729,565.276 681.624,569.126 682.518,573.008 683.413,576.916 684.308,580.844 685.202,584.785 686.097,588.733 686.991,592.681 687.886,596.624 \n",
       "  688.781,600.554 689.675,604.467 690.57,608.355 691.464,612.214 692.359,616.038 693.254,619.822 694.148,623.559 695.043,627.245 695.938,630.874 696.832,634.443 \n",
       "  697.727,637.945 698.621,641.377 699.516,644.735 700.411,648.013 701.305,651.209 702.2,654.318 703.094,657.337 703.989,660.261 704.884,663.089 705.778,665.817 \n",
       "  706.673,668.442 707.567,670.962 708.462,673.374 709.357,675.676 710.251,677.866 711.146,679.942 712.041,681.903 712.935,683.747 713.83,685.473 714.724,687.08 \n",
       "  715.619,688.567 716.514,689.934 717.408,691.181 718.303,692.306 719.197,693.311 720.092,694.195 720.987,694.958 721.881,695.602 722.776,696.127 723.67,696.534 \n",
       "  724.565,696.824 725.46,696.998 726.354,697.058 727.249,697.005 728.143,696.842 729.038,696.569 729.933,696.189 730.827,695.705 731.722,695.117 732.617,694.43 \n",
       "  733.511,693.645 734.406,692.766 735.3,691.794 736.195,690.733 737.09,689.585 737.984,688.355 738.879,687.045 739.773,685.657 740.668,684.197 741.563,682.666 \n",
       "  742.457,681.069 743.352,679.408 744.246,677.688 745.141,675.912 746.036,674.084 746.93,672.207 747.825,670.285 748.72,668.322 749.614,666.321 750.509,664.286 \n",
       "  751.403,662.221 752.298,660.129 753.193,658.015 754.087,655.882 754.982,653.733 755.876,651.572 756.771,649.403 757.666,647.229 758.56,645.054 759.455,642.881 \n",
       "  760.349,640.713 761.244,638.555 762.139,636.409 763.033,634.278 763.928,632.166 764.823,630.075 765.717,628.009 766.612,625.971 767.506,623.963 768.401,621.988 \n",
       "  769.296,620.048 770.19,618.147 771.085,616.286 771.979,614.469 772.874,612.696 773.769,610.971 774.663,609.295 775.558,607.671 776.452,606.099 777.347,604.583 \n",
       "  778.242,603.122 779.136,601.72 780.031,600.377 780.926,599.094 781.82,597.872 782.715,596.714 783.609,595.619 784.504,594.588 785.399,593.622 786.293,592.721 \n",
       "  787.188,591.887 788.082,591.119 788.977,590.417 789.872,589.782 790.766,589.214 791.661,588.713 792.555,588.277 793.45,587.908 794.345,587.605 795.239,587.367 \n",
       "  796.134,587.194 797.028,587.084 797.923,587.038 798.818,587.054 799.712,587.132 800.607,587.27 801.502,587.467 802.396,587.722 803.291,588.034 804.185,588.402 \n",
       "  805.08,588.823 805.975,589.298 806.869,589.823 807.764,590.398 808.658,591.021 809.553,591.69 810.448,592.403 811.342,593.159 812.237,593.956 813.131,594.792 \n",
       "  814.026,595.665 814.921,596.573 815.815,597.515 816.71,598.488 817.605,599.49 818.499,600.519 819.394,601.573 820.288,602.651 821.183,603.749 822.078,604.867 \n",
       "  822.972,606.002 823.867,607.152 824.761,608.315 825.656,609.489 826.551,610.671 827.445,611.861 828.34,613.056 829.234,614.253 830.129,615.452 831.024,616.65 \n",
       "  831.918,617.845 832.813,619.036 833.708,620.22 834.602,621.396 835.497,622.562 836.391,623.717 837.286,624.858 838.181,625.985 839.075,627.095 839.97,628.187 \n",
       "  840.864,629.26 841.759,630.313 842.654,631.343 843.548,632.349 844.443,633.331 845.337,634.287 846.232,635.217 847.127,636.118 848.021,636.99 848.916,637.832 \n",
       "  849.81,638.643 850.705,639.423 851.6,640.17 852.494,640.884 853.389,641.564 854.284,642.21 855.178,642.821 856.073,643.396 856.967,643.936 857.862,644.44 \n",
       "  858.757,644.908 859.651,645.339 860.546,645.733 861.44,646.091 862.335,646.411 863.23,646.696 864.124,646.943 865.019,647.154 865.913,647.329 866.808,647.468 \n",
       "  867.703,647.571 868.597,647.638 869.492,647.671 870.387,647.669 871.281,647.634 872.176,647.565 873.07,647.463 873.965,647.329 874.86,647.164 875.754,646.968 \n",
       "  876.649,646.741 877.543,646.486 878.438,646.203 879.333,645.892 880.227,645.554 881.122,645.191 882.016,644.802 882.911,644.391 883.806,643.956 884.7,643.5 \n",
       "  885.595,643.023 886.49,642.527 887.384,642.012 888.279,641.479 889.173,640.93 890.068,640.366 890.963,639.788 891.857,639.197 892.752,638.594 893.646,637.98 \n",
       "  894.541,637.357 895.436,636.725 896.33,636.085 897.225,635.439 898.119,634.789 899.014,634.134 899.909,633.476 900.803,632.816 901.698,632.156 902.593,631.495 \n",
       "  903.487,630.836 904.382,630.18 905.276,629.526 906.171,628.877 907.066,628.233 907.96,627.595 908.855,626.965 909.749,626.342 910.644,625.728 911.539,625.124 \n",
       "  912.433,624.531 913.328,623.948 914.222,623.378 915.117,622.82 916.012,622.276 916.906,621.746 917.801,621.231 918.695,620.731 919.59,620.247 920.485,619.779 \n",
       "  921.379,619.329 922.274,618.895 923.169,618.48 924.063,618.082 924.958,617.704 925.852,617.344 926.747,617.003 927.642,616.682 928.536,616.38 929.431,616.098 \n",
       "  930.325,615.836 931.22,615.595 932.115,615.373 933.009,615.172 933.904,614.99 934.798,614.83 935.693,614.689 936.588,614.568 937.482,614.468 938.377,614.387 \n",
       "  939.272,614.326 940.166,614.285 941.061,614.263 941.955,614.26 942.85,614.275 943.745,614.31 944.639,614.362 945.534,614.432 946.428,614.52 947.323,614.624 \n",
       "  948.218,614.745 949.112,614.883 950.007,615.036 950.901,615.204 951.796,615.387 952.691,615.584 953.585,615.795 954.48,616.019 955.375,616.256 956.269,616.505 \n",
       "  957.164,616.766 958.058,617.037 958.953,617.319 959.848,617.61 960.742,617.911 961.637,618.22 962.531,618.537 963.426,618.861 964.321,619.192 965.215,619.529 \n",
       "  966.11,619.872 967.004,620.219 967.899,620.571 968.794,620.926 969.688,621.284 970.583,621.644 971.478,622.007 972.372,622.37 973.267,622.734 974.161,623.098 \n",
       "  975.056,623.461 975.951,623.824 976.845,624.184 977.74,624.542 978.634,624.898 979.529,625.25 980.424,625.598 981.318,625.943 982.213,626.282 983.107,626.616 \n",
       "  984.002,626.944 984.897,627.267 985.791,627.582 986.686,627.891 987.58,628.193 988.475,628.486 989.37,628.772 990.264,629.049 991.159,629.318 992.054,629.578 \n",
       "  992.948,629.828 993.843,630.069 994.737,630.3 995.632,630.521 996.527,630.732 997.421,630.932 998.316,631.122 999.21,631.302 1000.11,631.47 1001,631.628 \n",
       "  1001.89,631.775 1002.79,631.91 1003.68,632.035 1004.58,632.148 1005.47,632.25 1006.37,632.341 1007.26,632.421 1008.16,632.49 1009.05,632.547 1009.95,632.594 \n",
       "  1010.84,632.63 1011.73,632.655 1012.63,632.67 1013.52,632.673 1014.42,632.667 1015.31,632.65 1016.21,632.624 1017.1,632.587 1018,632.541 1018.89,632.485 \n",
       "  1019.79,632.42 1020.68,632.346 1021.58,632.264 1022.47,632.173 1023.36,632.074 1024.26,631.967 1025.15,631.852 1026.05,631.73 1026.94,631.601 1027.84,631.465 \n",
       "  1028.73,631.323 1029.63,631.175 1030.52,631.021 1031.42,630.861 1032.31,630.696 1033.21,630.527 1034.1,630.353 1034.99,630.175 1035.89,629.994 1036.78,629.809 \n",
       "  1037.68,629.62 1038.57,629.43 1039.47,629.236 1040.36,629.041 1041.26,628.844 1042.15,628.646 1043.05,628.446 1043.94,628.246 1044.84,628.045 1045.73,627.845 \n",
       "  1046.62,627.644 1047.52,627.445 1048.41,627.246 1049.31,627.048 1050.2,626.852 1051.1,626.657 1051.99,626.465 1052.89,626.275 1053.78,626.087 1054.68,625.902 \n",
       "  1055.57,625.721 1056.47,625.542 1057.36,625.368 1058.25,625.197 1059.15,625.03 1060.04,624.867 1060.94,624.709 1061.83,624.555 1062.73,624.406 1063.62,624.262 \n",
       "  1064.52,624.122 1065.41,623.989 1066.31,623.86 1067.2,623.737 1068.1,623.62 1068.99,623.508 1069.88,623.402 1070.78,623.302 1071.67,623.208 1072.57,623.12 \n",
       "  1073.46,623.038 1074.36,622.962 1075.25,622.892 1076.15,622.828 1077.04,622.77 1077.94,622.719 1078.83,622.674 1079.73,622.634 1080.62,622.601 1081.51,622.574 \n",
       "  1082.41,622.553 1083.3,622.538 1084.2,622.529 1085.09,622.526 1085.99,622.528 1086.88,622.536 1087.78,622.55 1088.67,622.569 1089.57,622.593 1090.46,622.622 \n",
       "  1091.36,622.657 1092.25,622.697 1093.14,622.741 1094.04,622.79 1094.93,622.844 1095.83,622.902 1096.72,622.965 1097.62,623.031 1098.51,623.101 1099.41,623.175 \n",
       "  1100.3,623.253 1101.2,623.334 1102.09,623.418 1102.99,623.506 1103.88,623.596 1104.77,623.689 1105.67,623.784 1106.56,623.881 1107.46,623.981 1108.35,624.083 \n",
       "  1109.25,624.186 1110.14,624.291 1111.04,624.397 1111.93,624.505 1112.83,624.613 1113.72,624.722 1114.62,624.832 1115.51,624.942 1116.4,625.053 1117.3,625.163 \n",
       "  1118.19,625.274 1119.09,625.384 1119.98,625.494 1120.88,625.603 1121.77,625.711 1122.67,625.818 1123.56,625.925 1124.46,626.03 1125.35,626.133 1126.25,626.236 \n",
       "  1127.14,626.336 1128.03,626.435 1128.93,626.532 1129.82,626.626 1130.72,626.719 1131.61,626.809 1132.51,626.897 1133.4,626.982 1134.3,627.065 1135.19,627.145 \n",
       "  1136.09,627.222 1136.98,627.296 1137.88,627.368 1138.77,627.436 1139.66,627.502 1140.56,627.564 1141.45,627.623 1142.35,627.679 1143.24,627.731 1144.14,627.781 \n",
       "  1145.03,627.827 1145.93,627.869 1146.82,627.908 1147.72,627.944 1148.61,627.977 1149.5,628.006 1150.4,628.031 1151.29,628.054 1152.19,628.073 1153.08,628.088 \n",
Amira Abdel-Rahman's avatar
Amira Abdel-Rahman committed
4201 4202 4203 4204 4205 4206 4207 4208 4209 4210 4211 4212 4213 4214 4215 4216 4217 4218 4219 4220 4221 4222 4223 4224 4225 4226 4227 4228 4229 4230 4231 4232 4233 4234 4235 4236 4237 4238 4239 4240 4241 4242 4243 4244 4245 4246 4247 4248 4249 4250 4251 4252 4253 4254 4255 4256 4257 4258 4259 4260 4261 4262 4263 4264 4265 4266 4267 4268 4269 4270 4271 4272 4273 4274 4275 4276 4277 4278 4279 4280 4281 4282 4283 4284 4285 4286 4287 4288 4289 4290 4291 4292 4293 4294 4295 4296 4297 4298 4299 4300 4301 4302 4303 4304 4305 4306 4307 4308 4309 4310 4311 4312 4313 4314 4315 4316 4317 4318 4319 4320 4321 4322 4323 4324 4325 4326 4327 4328 4329 4330 4331 4332 4333 4334 4335 4336 4337 4338 4339 4340 4341 4342 4343 4344 4345 4346 4347 4348 4349 4350 4351 4352 4353 4354 4355 4356 4357 4358 4359 4360 4361 4362 4363 4364 4365 4366 4367 4368 4369 4370 4371 4372 4373 4374 4375 4376 4377 4378 4379 4380 4381 4382 4383 4384 4385 4386 4387 4388 4389 4390 4391 4392 4393 4394 4395 4396 4397 4398 4399 4400 4401 4402 4403 4404 4405 4406 4407 4408 4409 4410 4411 4412 4413 4414 4415 4416 4417 4418 4419 4420 4421 4422 4423 4424 4425 4426 4427 4428 4429 4430 4431 4432 4433 4434 4435 4436 4437 4438 4439 4440 4441 4442 4443 4444 4445 4446 4447 4448 4449 4450 4451 4452 4453 4454 4455 4456 4457 4458 4459 4460 4461 4462 4463 4464 4465 4466 4467 4468 4469 4470 4471 4472 4473 4474 4475 4476 4477 4478 4479 4480 4481 4482 4483 4484 4485 4486 4487 4488 4489 4490 4491 4492 4493 4494 4495 4496 4497 4498 4499 4500 4501 4502 4503 4504 4505 4506 4507 4508 4509 4510 4511 4512 4513 4514 4515 4516 4517 4518 4519 4520 4521 4522 4523 4524 4525 4526 4527 4528 4529 4530 4531 4532 4533 4534 4535 4536 4537 4538 4539 4540 4541 4542 4543 4544 4545 4546 4547 4548 4549 4550 4551 4552 4553 4554 4555 4556 4557 4558 4559 4560 4561 4562 4563 4564 4565 4566 4567 4568 4569 4570 4571 4572 4573 4574 4575 4576 4577 4578 4579 4580 4581 4582 4583 4584 4585 4586 4587 4588 4589 4590 4591 4592 4593 4594 4595 4596 4597 4598 4599 4600 4601 4602 4603 4604 4605 4606 4607 4608 4609 4610 4611 4612 4613 4614 4615 4616 4617 4618 4619 4620 4621 4622 4623 4624 4625 4626 4627 4628 4629 4630 4631 4632 4633 4634 4635 4636 4637 4638 4639 4640 4641 4642 4643 4644 4645 4646 4647 4648 4649 4650 4651 4652 4653 4654 4655 4656 4657 4658 4659 4660 4661 4662 4663 4664 4665 4666 4667 4668 4669 4670 4671 4672 4673 4674 4675 4676 4677 4678 4679 4680 4681 4682 4683 4684 4685 4686 4687 4688 4689 4690 4691 4692 4693 4694 4695 4696 4697 4698 4699 4700 4701 4702 4703 4704 4705 4706 4707 4708 4709 4710 4711 4712 4713 4714 4715 4716 4717 4718 4719 4720 4721 4722 4723 4724 4725 4726 4727 4728 4729 4730 4731 4732 4733 4734 4735 4736 4737 4738 4739 4740 4741 4742 4743 4744 4745 4746 4747 4748 4749 4750 4751 4752 4753 4754 4755 4756 4757 4758 4759 4760 4761 4762 4763 4764 4765 4766 4767 4768 4769 4770 4771 4772 4773 4774 4775 4776 4777 4778 4779 4780 4781 4782 4783 4784 4785 4786 4787 4788 4789 4790 4791 4792 4793 4794 4795 4796 4797 4798 4799 4800 4801 4802 4803 4804 4805 4806 4807 4808 4809 4810 4811 4812 4813 4814 4815 4816 4817 4818
       "  1153.98,628.101 1154.87,628.11 1155.77,628.115 1156.66,628.118 1157.56,628.117 1158.45,628.113 1159.35,628.107 1160.24,628.097 1161.13,628.084 1162.03,628.068 \n",
       "  1162.92,628.05 1163.82,628.028 1164.71,628.004 1165.61,627.978 1166.5,627.949 1167.4,627.917 1168.29,627.883 1169.19,627.847 1170.08,627.809 1170.98,627.769 \n",
       "  1171.87,627.726 1172.76,627.682 1173.66,627.636 1174.55,627.588 1175.45,627.539 1176.34,627.488 1177.24,627.436 1178.13,627.382 1179.03,627.328 1179.92,627.272 \n",
       "  1180.82,627.215 1181.71,627.157 1182.61,627.099 1183.5,627.04 1184.39,626.98 1185.29,626.92 1186.18,626.86 1187.08,626.799 1187.97,626.738 1188.87,626.677 \n",
       "  1189.76,626.616 1190.66,626.556 1191.55,626.495 1192.45,626.435 1193.34,626.375 1194.24,626.316 1195.13,626.257 1196.02,626.199 1196.92,626.142 1197.81,626.085 \n",
       "  1198.71,626.03 1199.6,625.975 1200.5,625.922 1201.39,625.869 1202.29,625.818 1203.18,625.768 1204.08,625.719 1204.97,625.672 1205.87,625.626 1206.76,625.582 \n",
       "  1207.65,625.539 1208.55,625.497 1209.44,625.458 1210.34,625.42 1211.23,625.383 1212.13,625.349 1213.02,625.316 1213.92,625.285 1214.81,625.255 1215.71,625.228 \n",
       "  1216.6,625.202 1217.5,625.178 1218.39,625.156 1219.28,625.136 1220.18,625.118 1221.07,625.101 1221.97,625.087 1222.86,625.074 1223.76,625.063 1224.65,625.054 \n",
       "  1225.55,625.047 1226.44,625.042 1227.34,625.038 1228.23,625.036 1229.13,625.036 1230.02,625.038 1230.91,625.041 1231.81,625.047 1232.7,625.053 1233.6,625.062 \n",
       "  1234.49,625.071 1235.39,625.083 1236.28,625.096 1237.18,625.11 1238.07,625.126 1238.97,625.143 1239.86,625.161 1240.76,625.181 1241.65,625.202 1242.54,625.224 \n",
       "  1243.44,625.247 1244.33,625.271 1245.23,625.296 1246.12,625.322 1247.02,625.349 1247.91,625.377 1248.81,625.406 1249.7,625.435 1250.6,625.465 1251.49,625.496 \n",
       "  1252.39,625.527 1253.28,625.559 1254.17,625.591 1255.07,625.623 1255.96,625.656 1256.86,625.689 1257.75,625.722 1258.65,625.756 1259.54,625.789 1260.44,625.823 \n",
       "  1261.33,625.857 1262.23,625.89 1263.12,625.923 1264.02,625.957 1264.91,625.99 1265.8,626.022 1266.7,626.055 1267.59,626.087 1268.49,626.119 1269.38,626.15 \n",
       "  1270.28,626.181 1271.17,626.211 1272.07,626.24 1272.96,626.269 1273.86,626.298 1274.75,626.325 1275.65,626.352 1276.54,626.379 1277.43,626.404 1278.33,626.429 \n",
       "  1279.22,626.453 1280.12,626.476 1281.01,626.498 1281.91,626.519 1282.8,626.539 1283.7,626.558 1284.59,626.577 1285.49,626.594 1286.38,626.61 1287.27,626.626 \n",
       "  1288.17,626.64 1289.06,626.654 1289.96,626.666 1290.85,626.677 1291.75,626.688 1292.64,626.697 1293.54,626.705 1294.43,626.712 1295.33,626.718 1296.22,626.724 \n",
       "  1297.12,626.728 1298.01,626.731 1298.9,626.733 1299.8,626.734 1300.69,626.734 1301.59,626.734 1302.48,626.732 1303.38,626.729 1304.27,626.726 1305.17,626.722 \n",
       "  1306.06,626.716 1306.96,626.71 1307.85,626.703 1308.75,626.696 1309.64,626.687 1310.53,626.678 1311.43,626.668 1312.32,626.657 1313.22,626.646 1314.11,626.634 \n",
       "  1315.01,626.621 1315.9,626.608 1316.8,626.594 1317.69,626.58 1318.59,626.565 1319.48,626.55 1320.38,626.534 1321.27,626.518 1322.16,626.502 1323.06,626.485 \n",
       "  1323.95,626.468 1324.85,626.45 1325.74,626.433 1326.64,626.415 1327.53,626.397 1328.43,626.379 1329.32,626.36 1330.22,626.342 1331.11,626.323 1332.01,626.305 \n",
       "  1332.9,626.286 1333.79,626.268 1334.69,626.249 1335.58,626.231 1336.48,626.213 1337.37,626.195 1338.27,626.177 1339.16,626.159 1340.06,626.142 1340.95,626.124 \n",
       "  1341.85,626.107 1342.74,626.091 1343.64,626.074 1344.53,626.058 1345.42,626.043 1346.32,626.027 1347.21,626.012 1348.11,625.998 1349,625.984 1349.9,625.97 \n",
       "  1350.79,625.957 1351.69,625.944 1352.58,625.932 1353.48,625.92 1354.37,625.909 1355.27,625.898 1356.16,625.888 1357.05,625.878 1357.95,625.869 1358.84,625.86 \n",
       "  1359.74,625.852 1360.63,625.845 1361.53,625.838 1362.42,625.831 1363.32,625.826 1364.21,625.82 1365.11,625.816 1366,625.812 1366.9,625.808 1367.79,625.805 \n",
       "  1368.68,625.803 1369.58,625.801 1370.47,625.8 1371.37,625.799 1372.26,625.799 1373.16,625.799 1374.05,625.8 1374.95,625.801 1375.84,625.803 1376.74,625.805 \n",
       "  1377.63,625.808 1378.53,625.811 1379.42,625.815 1380.31,625.819 1381.21,625.824 1382.1,625.829 1383,625.834 1383.89,625.84 1384.79,625.846 1385.68,625.853 \n",
       "  1386.58,625.86 1387.47,625.867 1388.37,625.874 1389.26,625.882 1390.16,625.89 1391.05,625.899 1391.94,625.907 1392.84,625.916 1393.73,625.925 1394.63,625.934 \n",
       "  1395.52,625.944 1396.42,625.953 1397.31,625.963 1398.21,625.973 1399.1,625.983 1400,625.993 1400.89,626.003 1401.79,626.013 1402.68,626.023 1403.57,626.033 \n",
       "  1404.47,626.044 1405.36,626.054 1406.26,626.064 1407.15,626.074 1408.05,626.084 1408.94,626.094 1409.84,626.104 1410.73,626.114 1411.63,626.123 1412.52,626.133 \n",
       "  1413.42,626.142 1414.31,626.152 1415.2,626.161 1416.1,626.169 1416.99,626.178 1417.89,626.187 1418.78,626.195 1419.68,626.203 1420.57,626.211 1421.47,626.218 \n",
       "  1422.36,626.226 1423.26,626.233 1424.15,626.24 1425.04,626.246 1425.94,626.253 1426.83,626.259 1427.73,626.264 1428.62,626.27 1429.52,626.275 1430.41,626.28 \n",
       "  1431.31,626.284 1432.2,626.288 1433.1,626.292 1433.99,626.296 1434.89,626.299 1435.78,626.302 1436.67,626.304 1437.57,626.307 1438.46,626.309 1439.36,626.311 \n",
       "  1440.25,626.312 1441.15,626.313 1442.04,626.314 1442.94,626.314 1443.83,626.314 1444.73,626.314 1445.62,626.314 1446.52,626.313 1447.41,626.312 1448.3,626.311 \n",
       "  1449.2,626.31 1450.09,626.308 1450.99,626.306 1451.88,626.304 1452.78,626.301 1453.67,626.298 1454.57,626.295 1455.46,626.292 1456.36,626.289 1457.25,626.285 \n",
       "  1458.15,626.282 1459.04,626.278 1459.93,626.274 1460.83,626.269 1461.72,626.265 1462.62,626.26 1463.51,626.256 1464.41,626.251 1465.3,626.246 1466.2,626.241 \n",
       "  1467.09,626.236 1467.99,626.23 1468.88,626.225 1469.78,626.22 1470.67,626.214 1471.56,626.209 1472.46,626.203 1473.35,626.198 1474.25,626.192 1475.14,626.186 \n",
       "  1476.04,626.181 1476.93,626.175 1477.83,626.17 1478.72,626.164 1479.62,626.158 1480.51,626.153 1481.41,626.147 1482.3,626.142 1483.19,626.137 1484.09,626.131 \n",
       "  1484.98,626.126 1485.88,626.121 1486.77,626.116 1487.67,626.111 1488.56,626.106 1489.46,626.102 1490.35,626.097 1491.25,626.093 1492.14,626.088 1493.04,626.084 \n",
       "  1493.93,626.08 1494.82,626.076 1495.72,626.072 1496.61,626.069 1497.51,626.065 1498.4,626.062 1499.3,626.059 1500.19,626.056 1501.09,626.053 1501.98,626.05 \n",
       "  1502.88,626.048 1503.77,626.045 1504.67,626.043 1505.56,626.041 1506.45,626.039 1507.35,626.038 1508.24,626.036 1509.14,626.035 1510.03,626.034 1510.93,626.033 \n",
       "  1511.82,626.032 1512.72,626.031 1513.61,626.031 1514.51,626.03 1515.4,626.03 1516.3,626.03 1517.19,626.03 1518.08,626.031 1518.98,626.031 1519.87,626.032 \n",
       "  1520.77,626.033 1521.66,626.034 1522.56,626.035 1523.45,626.036 1524.35,626.037 1525.24,626.039 1526.14,626.04 1527.03,626.042 1527.93,626.044 1528.82,626.046 \n",
       "  1529.71,626.048 1530.61,626.05 1531.5,626.052 1532.4,626.055 1533.29,626.057 1534.19,626.06 1535.08,626.062 1535.98,626.065 1536.87,626.068 1537.77,626.07 \n",
       "  1538.66,626.073 1539.56,626.076 1540.45,626.079 1541.34,626.082 1542.24,626.085 1543.13,626.088 1544.03,626.091 1544.92,626.094 1545.82,626.097 1546.71,626.1 \n",
       "  1547.61,626.103 1548.5,626.106 1549.4,626.11 1550.29,626.113 1551.19,626.116 1552.08,626.119 1552.97,626.122 1553.87,626.125 1554.76,626.128 1555.66,626.131 \n",
       "  1556.55,626.133 1557.45,626.136 1558.34,626.139 1559.24,626.142 1560.13,626.144 1561.03,626.147 1561.92,626.15 1562.81,626.152 1563.71,626.155 1564.6,626.157 \n",
       "  1565.5,626.159 1566.39,626.161 1567.29,626.163 1568.18,626.165 1569.08,626.167 1569.97,626.169 1570.87,626.171 1571.76,626.173 1572.66,626.174 1573.55,626.176 \n",
       "  1574.44,626.177 1575.34,626.178 1576.23,626.18 1577.13,626.181 1578.02,626.182 1578.92,626.183 1579.81,626.184 1580.71,626.184 1581.6,626.185 1582.5,626.186 \n",
       "  1583.39,626.186 1584.29,626.186 1585.18,626.187 1586.07,626.187 1586.97,626.187 1587.86,626.187 1588.76,626.187 1589.65,626.187 1590.55,626.186 1591.44,626.186 \n",
       "  1592.34,626.186 1593.23,626.185 1594.13,626.185 1595.02,626.184 1595.92,626.183 1596.81,626.182 1597.7,626.182 1598.6,626.181 1599.49,626.18 1600.39,626.179 \n",
       "  1601.28,626.177 1602.18,626.176 1603.07,626.175 1603.97,626.174 1604.86,626.173 1605.76,626.171 1606.65,626.17 1607.55,626.168 1608.44,626.167 1609.33,626.165 \n",
       "  1610.23,626.164 1611.12,626.162 1612.02,626.161 1612.91,626.159 1613.81,626.157 1614.7,626.156 1615.6,626.154 1616.49,626.152 1617.39,626.151 1618.28,626.149 \n",
       "  1619.18,626.147 1620.07,626.145 1620.96,626.144 1621.86,626.142 1622.75,626.14 1623.65,626.139 1624.54,626.137 1625.44,626.135 1626.33,626.134 1627.23,626.132 \n",
       "  1628.12,626.13 1629.02,626.129 1629.91,626.127 1630.81,626.126 1631.7,626.124 1632.59,626.123 1633.49,626.122 1634.38,626.12 1635.28,626.119 1636.17,626.118 \n",
       "  1637.07,626.116 1637.96,626.115 1638.86,626.114 1639.75,626.113 1640.65,626.112 1641.54,626.111 1642.44,626.11 1643.33,626.109 1644.22,626.108 1645.12,626.107 \n",
       "  1646.01,626.106 1646.91,626.106 1647.8,626.105 1648.7,626.104 1649.59,626.104 1650.49,626.103 1651.38,626.103 1652.28,626.102 1653.17,626.102 1654.07,626.102 \n",
       "  1654.96,626.101 1655.85,626.101 1656.75,626.101 1657.64,626.101 1658.54,626.101 1659.43,626.101 1660.33,626.101 1661.22,626.101 1662.12,626.101 1663.01,626.101 \n",
       "  1663.91,626.101 1664.8,626.102 1665.7,626.102 1666.59,626.102 1667.48,626.103 1668.38,626.103 1669.27,626.104 1670.17,626.104 1671.06,626.105 1671.96,626.105 \n",
       "  1672.85,626.106 1673.75,626.106 1674.64,626.107 1675.54,626.108 1676.43,626.109 1677.33,626.109 1678.22,626.11 1679.11,626.111 1680.01,626.112 1680.9,626.113 \n",
       "  1681.8,626.113 1682.69,626.114 1683.59,626.115 1684.48,626.116 1685.38,626.117 1686.27,626.118 1687.17,626.119 1688.06,626.12 1688.96,626.121 1689.85,626.122 \n",
       "  1690.74,626.123 1691.64,626.123 1692.53,626.124 1693.43,626.125 1694.32,626.126 1695.22,626.127 1696.11,626.128 1697.01,626.129 1697.9,626.13 1698.8,626.131 \n",
       "  1699.69,626.132 1700.58,626.133 1701.48,626.133 1702.37,626.134 1703.27,626.135 1704.16,626.136 1705.06,626.137 1705.95,626.137 1706.85,626.138 1707.74,626.139 \n",
       "  1708.64,626.14 1709.53,626.14 1710.43,626.141 1711.32,626.142 1712.21,626.142 1713.11,626.143 1714,626.143 1714.9,626.144 1715.79,626.144 1716.69,626.145 \n",
       "  1717.58,626.145 1718.48,626.146 1719.37,626.146 1720.27,626.146 1721.16,626.147 1722.06,626.147 1722.95,626.147 1723.84,626.147 1724.74,626.148 1725.63,626.148 \n",
       "  1726.53,626.148 1727.42,626.148 1728.32,626.148 1729.21,626.148 1730.11,626.148 1731,626.148 1731.9,626.148 1732.79,626.148 1733.69,626.148 1734.58,626.148 \n",
       "  1735.47,626.148 1736.37,626.148 1737.26,626.148 1738.16,626.148 1739.05,626.147 1739.95,626.147 1740.84,626.147 1741.74,626.147 1742.63,626.146 1743.53,626.146 \n",
       "  1744.42,626.146 1745.32,626.145 1746.21,626.145 1747.1,626.145 1748,626.144 1748.89,626.144 1749.79,626.143 1750.68,626.143 1751.58,626.142 1752.47,626.142 \n",
       "  1753.37,626.141 1754.26,626.141 1755.16,626.141 1756.05,626.14 1756.95,626.14 1757.84,626.139 1758.73,626.139 1759.63,626.138 1760.52,626.137 1761.42,626.137 \n",
       "  1762.31,626.136 1763.21,626.136 1764.1,626.135 1765,626.135 1765.89,626.134 1766.79,626.134 1767.68,626.133 1768.58,626.133 1769.47,626.132 1770.36,626.132 \n",
       "  1771.26,626.131 1772.15,626.131 1773.05,626.13 1773.94,626.13 1774.84,626.13 1775.73,626.129 1776.63,626.129 1777.52,626.128 1778.42,626.128 1779.31,626.127 \n",
       "  1780.21,626.127 1781.1,626.127 1781.99,626.126 1782.89,626.126 1783.78,626.126 1784.68,626.125 1785.57,626.125 1786.47,626.125 1787.36,626.124 1788.26,626.124 \n",
       "  1789.15,626.124 1790.05,626.124 1790.94,626.124 1791.84,626.123 1792.73,626.123 1793.62,626.123 1794.52,626.123 1795.41,626.123 1796.31,626.123 1797.2,626.122 \n",
       "  1798.1,626.122 1798.99,626.122 1799.89,626.122 1800.78,626.122 1801.68,626.122 1802.57,626.122 1803.47,626.122 1804.36,626.122 1805.25,626.122 1806.15,626.122 \n",
       "  1807.04,626.122 1807.94,626.122 1808.83,626.123 1809.73,626.123 1810.62,626.123 1811.52,626.123 1812.41,626.123 1813.31,626.123 1814.2,626.123 1815.1,626.123 \n",
       "  1815.99,626.124 1816.88,626.124 1817.78,626.124 1818.67,626.124 1819.57,626.124 1820.46,626.125 1821.36,626.125 1822.25,626.125 1823.15,626.125 1824.04,626.126 \n",
       "  1824.94,626.126 1825.83,626.126 1826.73,626.126 1827.62,626.127 1828.51,626.127 1829.41,626.127 1830.3,626.128 1831.2,626.128 1832.09,626.128 1832.99,626.128 \n",
       "  1833.88,626.129 1834.78,626.129 1835.67,626.129 1836.57,626.13 1837.46,626.13 1838.35,626.13 1839.25,626.13 1840.14,626.131 1841.04,626.131 1841.93,626.131 \n",
       "  1842.83,626.132 1843.72,626.132 1844.62,626.132 1845.51,626.132 1846.41,626.133 1847.3,626.133 1848.2,626.133 1849.09,626.133 1849.98,626.133 1850.88,626.134 \n",
       "  1851.77,626.134 1852.67,626.134 1853.56,626.134 1854.46,626.135 1855.35,626.135 1856.25,626.135 1857.14,626.135 1858.04,626.135 1858.93,626.135 1859.83,626.136 \n",
       "  1860.72,626.136 1861.61,626.136 1862.51,626.136 1863.4,626.136 1864.3,626.136 1865.19,626.136 1866.09,626.136 1866.98,626.136 1867.88,626.136 1868.77,626.137 \n",
       "  1869.67,626.137 1870.56,626.137 1871.46,626.137 1872.35,626.137 1873.24,626.137 1874.14,626.137 1875.03,626.137 1875.93,626.137 1876.82,626.137 1877.72,626.137 \n",
       "  1878.61,626.137 1879.51,626.137 1880.4,626.137 1881.3,626.136 1882.19,626.136 1883.09,626.136 1883.98,626.136 1884.87,626.136 1885.77,626.136 1886.66,626.136 \n",
       "  1887.56,626.136 1888.45,626.136 1889.35,626.136 1890.24,626.136 1891.14,626.135 1892.03,626.135 1892.93,626.135 1893.82,626.135 1894.72,626.135 1895.61,626.135 \n",
       "  1896.5,626.135 1897.4,626.135 1898.29,626.134 1899.19,626.134 1900.08,626.134 1900.98,626.134 1901.87,626.134 1902.77,626.134 1903.66,626.133 1904.56,626.133 \n",
       "  1905.45,626.133 1906.35,626.133 1907.24,626.133 1908.13,626.133 1909.03,626.133 1909.92,626.132 1910.82,626.132 1911.71,626.132 1912.61,626.132 1913.5,626.132 \n",
       "  1914.4,626.132 1915.29,626.131 1916.19,626.131 1917.08,626.131 1917.98,626.131 1918.87,626.131 1919.76,626.131 1920.66,626.131 1921.55,626.131 1922.45,626.13 \n",
       "  1923.34,626.13 1924.24,626.13 1925.13,626.13 1926.03,626.13 1926.92,626.13 1927.82,626.13 1928.71,626.13 1929.61,626.13 1930.5,626.13 1931.39,626.129 \n",
       "  1932.29,626.129 1933.18,626.129 1934.08,626.129 1934.97,626.129 1935.87,626.129 1936.76,626.129 1937.66,626.129 1938.55,626.129 1939.45,626.129 1940.34,626.129 \n",
       "  1941.24,626.129 1942.13,626.129 1943.02,626.129 1943.92,626.129 1944.81,626.129 1945.71,626.129 1946.6,626.129 1947.5,626.129 1948.39,626.129 1949.29,626.129 \n",
       "  1950.18,626.129 1951.08,626.129 1951.97,626.129 1952.87,626.129 1953.76,626.129 1954.65,626.129 1955.55,626.129 1956.44,626.129 1957.34,626.129 1958.23,626.129 \n",
       "  1959.13,626.129 1960.02,626.129 1960.92,626.129 1961.81,626.129 1962.71,626.129 1963.6,626.13 1964.5,626.13 1965.39,626.13 1966.28,626.13 1967.18,626.13 \n",
       "  1968.07,626.13 1968.97,626.13 1969.86,626.13 1970.76,626.13 1971.65,626.13 1972.55,626.13 1973.44,626.13 1974.34,626.131 1975.23,626.131 1976.12,626.131 \n",
       "  1977.02,626.131 1977.91,626.131 1978.81,626.131 1979.7,626.131 1980.6,626.131 1981.49,626.131 1982.39,626.131 1983.28,626.131 1984.18,626.131 1985.07,626.132 \n",
       "  1985.97,626.132 1986.86,626.132 1987.75,626.132 1988.65,626.132 1989.54,626.132 1990.44,626.132 1991.33,626.132 1992.23,626.132 1993.12,626.132 1994.02,626.132 \n",
       "  1994.91,626.132 1995.81,626.132 1996.7,626.133 1997.6,626.133 1998.49,626.133 1999.38,626.133 2000.28,626.133 2001.17,626.133 2002.07,626.133 2002.96,626.133 \n",
       "  2003.86,626.133 2004.75,626.133 2005.65,626.133 2006.54,626.133 2007.44,626.133 2008.33,626.133 2009.23,626.133 2010.12,626.133 2011.01,626.133 2011.91,626.133 \n",
       "  2012.8,626.133 2013.7,626.133 2014.59,626.133 2015.49,626.133 2016.38,626.133 2017.28,626.133 2018.17,626.133 2019.07,626.133 2019.96,626.133 2020.86,626.133 \n",
       "  2021.75,626.133 2022.64,626.133 2023.54,626.133 2024.43,626.133 2025.33,626.133 2026.22,626.133 2027.12,626.133 2028.01,626.133 2028.91,626.133 2029.8,626.133 \n",
       "  2030.7,626.133 2031.59,626.133 2032.49,626.133 2033.38,626.133 2034.27,626.133 2035.17,626.133 2036.06,626.133 2036.96,626.133 2037.85,626.133 2038.75,626.133 \n",
       "  2039.64,626.133 2040.54,626.133 2041.43,626.133 2042.33,626.133 2043.22,626.133 2044.12,626.132 2045.01,626.132 2045.9,626.132 2046.8,626.132 2047.69,626.132 \n",
       "  2048.59,626.132 2049.48,626.132 2050.38,626.132 2051.27,626.132 2052.17,626.132 2053.06,626.132 2053.96,626.132 2054.85,626.132 2055.75,626.132 2056.64,626.132 \n",
       "  2057.53,626.132 2058.43,626.132 2059.32,626.132 2060.22,626.132 2061.11,626.132 2062.01,626.132 2062.9,626.132 2063.8,626.131 2064.69,626.131 2065.59,626.131 \n",
       "  2066.48,626.131 2067.38,626.131 2068.27,626.131 2069.16,626.131 2070.06,626.131 2070.95,626.131 2071.85,626.131 2072.74,626.131 2073.64,626.131 2074.53,626.131 \n",
       "  2075.43,626.131 2076.32,626.131 2077.22,626.131 2078.11,626.131 2079.01,626.131 2079.9,626.131 2080.79,626.131 2081.69,626.131 2082.58,626.131 2083.48,626.131 \n",
       "  2084.37,626.131 2085.27,626.131 2086.16,626.131 2087.06,626.131 2087.95,626.131 2088.85,626.131 2089.74,626.131 2090.64,626.131 2091.53,626.131 2092.42,626.131 \n",
       "  2093.32,626.131 2094.21,626.131 2095.11,626.131 2096,626.131 2096.9,626.131 2097.79,626.131 2098.69,626.131 2099.58,626.131 2100.48,626.131 2101.37,626.131 \n",
       "  2102.27,626.131 2103.16,626.131 2104.05,626.131 2104.95,626.131 2105.84,626.131 2106.74,626.131 2107.63,626.131 2108.53,626.131 2109.42,626.131 2110.32,626.131 \n",
       "  2111.21,626.131 2112.11,626.131 2113,626.131 2113.89,626.131 2114.79,626.131 2115.68,626.131 2116.58,626.131 2117.47,626.131 2118.37,626.131 2119.26,626.131 \n",
       "  2120.16,626.132 2121.05,626.132 2121.95,626.132 2122.84,626.132 2123.74,626.132 2124.63,626.132 2125.52,626.132 2126.42,626.132 2127.31,626.132 2128.21,626.132 \n",
       "  2129.1,626.132 2130,626.132 2130.89,626.132 2131.79,626.132 2132.68,626.132 2133.58,626.132 2134.47,626.132 2135.37,626.132 2136.26,626.132 2137.15,626.132 \n",
       "  2138.05,626.132 2138.94,626.132 2139.84,626.132 2140.73,626.132 2141.63,626.132 2142.52,626.132 2143.42,626.132 2144.31,626.132 2145.21,626.132 2146.1,626.132 \n",
       "  2147,626.132 2147.89,626.132 2148.78,626.132 2149.68,626.132 2150.57,626.132 2151.47,626.132 2152.36,626.132 2153.26,626.132 2154.15,626.132 2155.05,626.132 \n",
       "  2155.94,626.132 2156.84,626.132 2157.73,626.132 2158.63,626.132 2159.52,626.132 2160.41,626.132 2161.31,626.132 2162.2,626.132 2163.1,626.132 2163.99,626.132 \n",
       "  2164.89,626.132 2165.78,626.132 2166.68,626.132 2167.57,626.132 2168.47,626.132 2169.36,626.132 2170.26,626.132 2171.15,626.132 2172.04,626.132 2172.94,626.132 \n",
       "  2173.83,626.132 2174.73,626.132 2175.62,626.132 2176.52,626.132 2177.41,626.132 2178.31,626.132 2179.2,626.132 2180.1,626.132 2180.99,626.132 2181.89,626.132 \n",
       "  2182.78,626.132 2183.67,626.132 2184.57,626.132 2185.46,626.132 2186.36,626.132 2187.25,626.132 2188.15,626.132 2189.04,626.132 2189.94,626.132 2190.83,626.132 \n",
       "  2191.73,626.132 2192.62,626.132 2193.52,626.132 2194.41,626.132 2195.3,626.132 2196.2,626.132 2197.09,626.132 2197.99,626.132 2198.88,626.132 2199.78,626.132 \n",
       "  2200.67,626.132 2201.57,626.132 2202.46,626.132 2203.36,626.132 2204.25,626.132 2205.15,626.132 2206.04,626.132 2206.93,626.132 2207.83,626.132 2208.72,626.132 \n",
       "  2209.62,626.132 2210.51,626.132 2211.41,626.132 2212.3,626.132 2213.2,626.132 2214.09,626.132 2214.99,626.132 2215.88,626.132 2216.78,626.132 2217.67,626.132 \n",
       "  2218.56,626.132 2219.46,626.132 2220.35,626.132 2221.25,626.132 2222.14,626.132 2223.04,626.132 2223.93,626.132 2224.83,626.132 2225.72,626.132 2226.62,626.132 \n",
       "  2227.51,626.132 2228.41,626.132 2229.3,626.132 2230.19,626.132 2231.09,626.132 2231.98,626.132 2232.88,626.132 2233.77,626.132 2234.67,626.132 2235.56,626.132 \n",
       "  2236.46,626.132 2237.35,626.132 2238.25,626.132 2239.14,626.132 2240.04,626.132 2240.93,626.132 2241.82,626.132 2242.72,626.132 2243.61,626.132 2244.51,626.132 \n",
       "  2245.4,626.132 2246.3,626.132 2247.19,626.132 2248.09,626.132 2248.98,626.132 2249.88,626.132 2250.77,626.132 2251.66,626.132 2252.56,626.132 2253.45,626.132 \n",
       "  2254.35,626.132 2255.24,626.132 2256.14,626.132 2257.03,626.132 2257.93,626.132 2258.82,626.132 2259.72,626.132 2260.61,626.132 2261.51,626.132 2262.4,626.132 \n",
       "  2263.29,626.132 2264.19,626.132 2265.08,626.132 2265.98,626.132 2266.87,626.132 2267.77,626.132 2268.66,626.132 2269.56,626.132 2270.45,626.132 2271.35,626.132 \n",
       "  2272.24,626.132 2273.14,626.132 2274.03,626.132 2274.92,626.132 2275.82,626.132 2276.71,626.132 2277.61,626.132 2278.5,626.132 2279.4,626.132 2280.29,626.132 \n",
       "  2281.19,626.132 2282.08,626.132 2282.98,626.132 2283.87,626.132 2284.77,626.132 2285.66,626.132 2286.55,626.132 2287.45,626.132 2288.34,626.132 2289.24,626.132 \n",
       "  2290.13,626.132 2291.03,626.132 2291.92,626.132 2292.82,626.132 2293.71,626.132 2294.61,626.132 2295.5,626.132 2296.4,626.132 2297.29,626.132 2298.18,626.132 \n",
       "  2299.08,626.132 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip7602)\" style=\"stroke:#c271d2; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  509.859,158.579 510.753,159.641 511.648,161.584 512.542,164.321 513.437,167.786 514.332,171.926 515.226,176.694 516.121,182.047 517.015,187.947 517.91,194.358 \n",
       "  518.805,201.246 519.699,208.582 520.594,216.34 521.488,224.495 522.383,233.027 523.278,241.915 524.172,251.144 525.067,260.699 525.962,270.568 526.856,280.74 \n",
       "  527.751,291.206 528.645,301.957 529.54,312.984 530.435,324.282 531.329,335.844 532.224,347.661 533.118,359.729 534.013,372.039 534.908,384.583 535.802,397.354 \n",
       "  536.697,410.343 537.591,423.539 538.486,436.933 539.381,450.513 540.275,464.267 541.17,478.181 542.065,492.244 542.959,506.439 543.854,520.753 544.748,535.17 \n",
       "  545.643,549.674 546.538,564.248 547.432,578.876 548.327,593.541 549.221,608.226 550.116,622.915 551.011,637.589 551.905,652.233 552.8,666.83 553.694,681.364 \n",
       "  554.589,695.817 555.484,710.176 556.378,724.425 557.273,738.549 558.168,752.534 559.062,766.368 559.957,780.036 560.851,793.528 561.746,806.83 562.641,819.934 \n",
       "  563.535,832.827 564.43,845.501 565.324,857.947 566.219,870.157 567.114,882.122 568.008,893.836 568.903,905.292 569.797,916.484 570.692,927.407 571.587,938.057 \n",
       "  572.481,948.427 573.376,958.515 574.271,968.318 575.165,977.831 576.06,987.052 576.954,995.979 577.849,1004.61 578.744,1012.94 579.638,1020.97 580.533,1028.7 \n",
       "  581.427,1036.13 582.322,1043.25 583.217,1050.07 584.111,1056.59 585.006,1062.79 585.9,1068.7 586.795,1074.29 587.69,1079.58 588.584,1084.56 589.479,1089.23 \n",
       "  590.373,1093.6 591.268,1097.65 592.163,1101.41 593.057,1104.85 593.952,1107.99 594.847,1110.82 595.741,1113.34 596.636,1115.56 597.53,1117.48 598.425,1119.08 \n",
       "  599.32,1120.39 600.214,1121.39 601.109,1122.09 602.003,1122.49 602.898,1122.6 603.793,1122.4 604.687,1121.9 605.582,1121.12 606.476,1120.03 607.371,1118.66 \n",
       "  608.266,1117 609.16,1115.05 610.055,1112.82 610.95,1110.31 611.844,1107.53 612.739,1104.46 613.633,1101.13 614.528,1097.53 615.423,1093.67 616.317,1089.55 \n",
       "  617.212,1085.17 618.106,1080.55 619.001,1075.68 619.896,1070.58 620.79,1065.24 621.685,1059.67 622.579,1053.88 623.474,1047.88 624.369,1041.66 625.263,1035.25 \n",
       "  626.158,1028.64 627.053,1021.84 627.947,1014.86 628.842,1007.71 629.736,1000.4 630.631,992.922 631.526,985.298 632.42,977.533 633.315,969.635 634.209,961.612 \n",
       "  635.104,953.473 635.999,945.227 636.893,936.883 637.788,928.45 638.682,919.936 639.577,911.35 640.472,902.703 641.366,894.002 642.261,885.257 643.156,876.477 \n",
       "  644.05,867.671 644.945,858.848 645.839,850.018 646.734,841.19 647.629,832.372 648.523,823.573 649.418,814.803 650.312,806.069 651.207,797.381 652.102,788.748 \n",
       "  652.996,780.177 653.891,771.677 654.785,763.256 655.68,754.922 656.575,746.683 657.469,738.547 658.364,730.521 659.258,722.611 660.153,714.827 661.048,707.173 \n",
       "  661.942,699.658 662.837,692.287 663.732,685.067 664.626,678.004 665.521,671.103 666.415,664.37 667.31,657.81 668.205,651.43 669.099,645.232 669.994,639.222 \n",
       "  670.888,633.405 671.783,627.784 672.678,622.363 673.572,617.146 674.467,612.136 675.361,607.336 676.256,602.75 677.151,598.378 678.045,594.225 678.94,590.292 \n",
       "  679.835,586.58 680.729,583.091 681.624,579.827 682.518,576.789 683.413,573.976 684.308,571.391 685.202,569.034 686.097,566.903 686.991,565 687.886,563.324 \n",
       "  688.781,561.874 689.675,560.649 690.57,559.649 691.464,558.872 692.359,558.317 693.254,557.982 694.148,557.865 695.043,557.964 695.938,558.277 696.832,558.802 \n",
       "  697.727,559.535 698.621,560.475 699.516,561.618 700.411,562.961 701.305,564.501 702.2,566.234 703.094,568.156 703.989,570.265 704.884,572.556 705.778,575.025 \n",
       "  706.673,577.668 707.567,580.481 708.462,583.46 709.357,586.599 710.251,589.895 711.146,593.343 712.041,596.938 712.935,600.674 713.83,604.549 714.724,608.555 \n",
       "  715.619,612.688 716.514,616.943 717.408,621.316 718.303,625.799 719.197,630.389 720.092,635.079 720.987,639.865 721.881,644.741 722.776,649.702 723.67,654.741 \n",
       "  724.565,659.854 725.46,665.035 726.354,670.279 727.249,675.579 728.143,680.931 729.038,686.329 729.933,691.767 730.827,697.24 731.722,702.742 732.617,708.268 \n",
       "  733.511,713.813 734.406,719.37 735.3,724.936 736.195,730.503 737.09,736.068 737.984,741.625 738.879,747.169 739.773,752.694 740.668,758.196 741.563,763.67 \n",
       "  742.457,769.11 743.352,774.512 744.246,779.871 745.141,785.183 746.036,790.443 746.93,795.646 747.825,800.788 748.72,805.865 749.614,810.873 750.509,815.806 \n",
       "  751.403,820.662 752.298,825.437 753.193,830.126 754.087,834.726 754.982,839.234 755.876,843.646 756.771,847.958 757.666,852.168 758.56,856.272 759.455,860.268 \n",
       "  760.349,864.152 761.244,867.922 762.139,871.575 763.033,875.109 763.928,878.522 764.823,881.811 765.717,884.975 766.612,888.01 767.506,890.917 768.401,893.692 \n",
       "  769.296,896.335 770.19,898.845 771.085,901.219 771.979,903.457 772.874,905.557 773.769,907.52 774.663,909.345 775.558,911.03 776.452,912.575 777.347,913.981 \n",
       "  778.242,915.247 779.136,916.373 780.031,917.36 780.926,918.206 781.82,918.914 782.715,919.483 783.609,919.915 784.504,920.209 785.399,920.367 786.293,920.389 \n",
       "  787.188,920.278 788.082,920.034 788.977,919.659 789.872,919.154 790.766,918.52 791.661,917.76 792.555,916.875 793.45,915.868 794.345,914.74 795.239,913.493 \n",
       "  796.134,912.13 797.028,910.653 797.923,909.064 798.818,907.366 799.712,905.561 800.607,903.653 801.502,901.643 802.396,899.535 803.291,897.332 804.185,895.036 \n",
       "  805.08,892.651 805.975,890.179 806.869,887.624 807.764,884.989 808.658,882.277 809.553,879.491 810.448,876.635 811.342,873.712 812.237,870.725 813.131,867.679 \n",
       "  814.026,864.576 814.921,861.419 815.815,858.213 816.71,854.961 817.605,851.666 818.499,848.332 819.394,844.962 820.288,841.561 821.183,838.131 822.078,834.676 \n",
       "  822.972,831.2 823.867,827.705 824.761,824.197 825.656,820.678 826.551,817.151 827.445,813.62 828.34,810.089 829.234,806.561 830.129,803.039 831.024,799.526 \n",
       "  831.918,796.027 832.813,792.543 833.708,789.079 834.602,785.637 835.497,782.221 836.391,778.833 837.286,775.477 838.181,772.156 839.075,768.872 839.97,765.628 \n",
       "  840.864,762.427 841.759,759.272 842.654,756.165 843.548,753.108 844.443,750.106 845.337,747.158 846.232,744.269 847.127,741.44 848.021,738.674 848.916,735.972 \n",
       "  849.81,733.336 850.705,730.769 851.6,728.273 852.494,725.848 853.389,723.497 854.284,721.222 855.178,719.023 856.073,716.903 856.967,714.862 857.862,712.902 \n",
       "  858.757,711.024 859.651,709.229 860.546,707.518 861.44,705.892 862.335,704.352 863.23,702.898 864.124,701.532 865.019,700.252 865.913,699.061 866.808,697.958 \n",
       "  867.703,696.944 868.597,696.019 869.492,695.182 870.387,694.435 871.281,693.776 872.176,693.206 873.07,692.724 873.965,692.33 874.86,692.024 875.754,691.806 \n",
       "  876.649,691.673 877.543,691.627 878.438,691.666 879.333,691.79 880.227,691.997 881.122,692.286 882.016,692.657 882.911,693.109 883.806,693.64 884.7,694.25 \n",
       "  885.595,694.936 886.49,695.697 887.384,696.533 888.279,697.442 889.173,698.421 890.068,699.471 890.963,700.588 891.857,701.771 892.752,703.019 893.646,704.33 \n",
       "  894.541,705.702 895.436,707.133 896.33,708.621 897.225,710.164 898.119,711.761 899.014,713.409 899.909,715.107 900.803,716.851 901.698,718.641 902.593,720.474 \n",
       "  903.487,722.348 904.382,724.26 905.276,726.209 906.171,728.193 907.066,730.208 907.96,732.254 908.855,734.327 909.749,736.426 910.644,738.548 911.539,740.692 \n",
       "  912.433,742.854 913.328,745.032 914.222,747.225 915.117,749.431 916.012,751.646 916.906,753.868 917.801,756.097 918.695,758.328 919.59,760.561 920.485,762.793 \n",
       "  921.379,765.022 922.274,767.245 923.169,769.462 924.063,771.668 924.958,773.864 925.852,776.046 926.747,778.213 927.642,780.363 928.536,782.493 929.431,784.603 \n",
       "  930.325,786.69 931.22,788.752 932.115,790.787 933.009,792.795 933.904,794.772 934.798,796.719 935.693,798.632 936.588,800.511 937.482,802.354 938.377,804.159 \n",
       "  939.272,805.926 940.166,807.652 941.061,809.337 941.955,810.979 942.85,812.577 943.745,814.13 944.639,815.637 945.534,817.097 946.428,818.509 947.323,819.871 \n",
       "  948.218,821.184 949.112,822.446 950.007,823.656 950.901,824.815 951.796,825.92 952.691,826.972 953.585,827.97 954.48,828.913 955.375,829.802 956.269,830.636 \n",
       "  957.164,831.413 958.058,832.136 958.953,832.802 959.848,833.412 960.742,833.966 961.637,834.463 962.531,834.905 963.426,835.29 964.321,835.62 965.215,835.893 \n",
       "  966.11,836.111 967.004,836.274 967.899,836.381 968.794,836.435 969.688,836.434 970.583,836.379 971.478,836.271 972.372,836.111 973.267,835.898 974.161,835.635 \n",
       "  975.056,835.321 975.951,834.957 976.845,834.544 977.74,834.083 978.634,833.575 979.529,833.02 980.424,832.42 981.318,831.775 982.213,831.087 983.107,830.356 \n",
       "  984.002,829.584 984.897,828.772 985.791,827.92 986.686,827.031 987.58,826.105 988.475,825.143 989.37,824.147 990.264,823.118 991.159,822.058 992.054,820.966 \n",
       "  992.948,819.846 993.843,818.698 994.737,817.523 995.632,816.323 996.527,815.1 997.421,813.854 998.316,812.587 999.21,811.3 1000.11,809.995 1001,808.674 \n",
       "  1001.89,807.337 1002.79,805.986 1003.68,804.623 1004.58,803.249 1005.47,801.865 1006.37,800.472 1007.26,799.073 1008.16,797.668 1009.05,796.259 1009.95,794.848 \n",
       "  1010.84,793.435 1011.73,792.022 1012.63,790.611 1013.52,789.202 1014.42,787.797 1015.31,786.398 1016.21,785.005 1017.1,783.62 1018,782.245 1018.89,780.879 \n",
       "  1019.79,779.526 1020.68,778.185 1021.58,776.858 1022.47,775.546 1023.36,774.251 1024.26,772.973 1025.15,771.713 1026.05,770.473 1026.94,769.253 1027.84,768.055 \n",
       "  1028.73,766.879 1029.63,765.726 1030.52,764.598 1031.42,763.494 1032.31,762.417 1033.21,761.366 1034.1,760.343 1034.99,759.348 1035.89,758.382 1036.78,757.445 \n",
       "  1037.68,756.539 1038.57,755.663 1039.47,754.819 1040.36,754.007 1041.26,753.227 1042.15,752.48 1043.05,751.766 1043.94,751.086 1044.84,750.44 1045.73,749.828 \n",
       "  1046.62,749.251 1047.52,748.709 1048.41,748.202 1049.31,747.73 1050.2,747.293 1051.1,746.892 1051.99,746.527 1052.89,746.197 1053.78,745.902 1054.68,745.643 \n",
       "  1055.57,745.42 1056.47,745.232 1057.36,745.079 1058.25,744.961 1059.15,744.878 1060.04,744.83 1060.94,744.816 1061.83,744.836 1062.73,744.89 1063.62,744.978 \n",
       "  1064.52,745.098 1065.41,745.251 1066.31,745.436 1067.2,745.653 1068.1,745.901 1068.99,746.18 1069.88,746.489 1070.78,746.828 1071.67,747.195 1072.57,747.591 \n",
       "  1073.46,748.015 1074.36,748.466 1075.25,748.943 1076.15,749.447 1077.04,749.975 1077.94,750.527 1078.83,751.103 1079.73,751.702 1080.62,752.323 1081.51,752.966 \n",
       "  1082.41,753.628 1083.3,754.311 1084.2,755.012 1085.09,755.731 1085.99,756.467 1086.88,757.219 1087.78,757.987 1088.67,758.77 1089.57,759.566 1090.46,760.375 \n",
       "  1091.36,761.195 1092.25,762.027 1093.14,762.869 1094.04,763.72 1094.93,764.579 1095.83,765.446 1096.72,766.319 1097.62,767.198 1098.51,768.082 1099.41,768.969 \n",
       "  1100.3,769.859 1101.2,770.752 1102.09,771.646 1102.99,772.54 1103.88,773.433 1104.77,774.325 1105.67,775.215 1106.56,776.102 1107.46,776.985 1108.35,777.864 \n",
       "  1109.25,778.737 1110.14,779.604 1111.04,780.463 1111.93,781.315 1112.83,782.159 1113.72,782.993 1114.62,783.817 1115.51,784.63 1116.4,785.432 1117.3,786.223 \n",
       "  1118.19,787 1119.09,787.764 1119.98,788.514 1120.88,789.25 1121.77,789.971 1122.67,790.676 1123.56,791.365 1124.46,792.037 1125.35,792.692 1126.25,793.329 \n",
       "  1127.14,793.948 1128.03,794.549 1128.93,795.13 1129.82,795.693 1130.72,796.236 1131.61,796.758 1132.51,797.26 1133.4,797.742 1134.3,798.203 1135.19,798.642 \n",
       "  1136.09,799.06 1136.98,799.457 1137.88,799.831 1138.77,800.184 1139.66,800.514 1140.56,800.822 1141.45,801.108 1142.35,801.372 1143.24,801.613 1144.14,801.831 \n",
       "  1145.03,802.027 1145.93,802.2 1146.82,802.351 1147.72,802.48 1148.61,802.586 1149.5,802.67 1150.4,802.732 1151.29,802.772 1152.19,802.79 1153.08,802.786 \n",
       "  1153.98,802.761 1154.87,802.715 1155.77,802.648 1156.66,802.56 1157.56,802.451 1158.45,802.323 1159.35,802.174 1160.24,802.006 1161.13,801.819 1162.03,801.612 \n",
       "  1162.92,801.388 1163.82,801.145 1164.71,800.884 1165.61,800.606 1166.5,800.311 1167.4,799.999 1168.29,799.672 1169.19,799.329 1170.08,798.971 1170.98,798.598 \n",
       "  1171.87,798.211 1172.76,797.81 1173.66,797.396 1174.55,796.97 1175.45,796.531 1176.34,796.081 1177.24,795.62 1178.13,795.148 1179.03,794.666 1179.92,794.175 \n",
       "  1180.82,793.675 1181.71,793.166 1182.61,792.65 1183.5,792.127 1184.39,791.597 1185.29,791.061 1186.18,790.519 1187.08,789.973 1187.97,789.422 1188.87,788.867 \n",
       "  1189.76,788.309 1190.66,787.749 1191.55,787.186 1192.45,786.622 1193.34,786.057 1194.24,785.491 1195.13,784.926 1196.02,784.361 1196.92,783.797 1197.81,783.235 \n",
       "  1198.71,782.675 1199.6,782.118 1200.5,781.564 1201.39,781.014 1202.29,780.468 1203.18,779.926 1204.08,779.39 1204.97,778.86 1205.87,778.336 1206.76,777.818 \n",
       "  1207.65,777.308 1208.55,776.804 1209.44,776.309 1210.34,775.822 1211.23,775.343 1212.13,774.874 1213.02,774.414 1213.92,773.963 1214.81,773.523 1215.71,773.093 \n",
       "  1216.6,772.674 1217.5,772.266 1218.39,771.869 1219.28,771.484 1220.18,771.111 1221.07,770.75 1221.97,770.401 1222.86,770.065 1223.76,769.742 1224.65,769.431 \n",
       "  1225.55,769.134 1226.44,768.85 1227.34,768.58 1228.23,768.323 1229.13,768.08 1230.02,767.851 1230.91,767.636 1231.81,767.435 1232.7,767.248 1233.6,767.076 \n",
       "  1234.49,766.917 1235.39,766.773 1236.28,766.643 1237.18,766.527 1238.07,766.425 1238.97,766.338 1239.86,766.265 1240.76,766.205 1241.65,766.16 1242.54,766.129 \n",
       "  1243.44,766.112 1244.33,766.108 1245.23,766.118 1246.12,766.142 1247.02,766.179 1247.91,766.229 1248.81,766.292 1249.7,766.368 1250.6,766.457 1251.49,766.558 \n",
       "  1252.39,766.671 1253.28,766.797 1254.17,766.934 1255.07,767.083 1255.96,767.243 1256.86,767.414 1257.75,767.596 1258.65,767.789 1259.54,767.992 1260.44,768.205 \n",
       "  1261.33,768.427 1262.23,768.659 1263.12,768.9 1264.02,769.15 1264.91,769.409 1265.8,769.675 1266.7,769.949 1267.59,770.231 1268.49,770.52 1269.38,770.816 \n",
       "  1270.28,771.118 1271.17,771.426 1272.07,771.74 1272.96,772.06 1273.86,772.384 1274.75,772.713 1275.65,773.047 1276.54,773.385 1277.43,773.726 1278.33,774.07 \n",
       "  1279.22,774.418 1280.12,774.768 1281.01,775.12 1281.91,775.474 1282.8,775.829 1283.7,776.186 1284.59,776.543 1285.49,776.901 1286.38,777.259 1287.27,777.617 \n",
       "  1288.17,777.974 1289.06,778.33 1289.96,778.685 1290.85,779.038 1291.75,779.39 1292.64,779.739 1293.54,780.086 1294.43,780.429 1295.33,780.77 1296.22,781.107 \n",
       "  1297.12,781.441 1298.01,781.77 1298.9,782.095 1299.8,782.415 1300.69,782.731 1301.59,783.042 1302.48,783.347 1303.38,783.646 1304.27,783.94 1305.17,784.227 \n",
       "  1306.06,784.509 1306.96,784.784 1307.85,785.052 1308.75,785.313 1309.64,785.567 1310.53,785.814 1311.43,786.053 1312.32,786.285 1313.22,786.509 1314.11,786.725 \n",
       "  1315.01,786.933 1315.9,787.133 1316.8,787.325 1317.69,787.508 1318.59,787.683 1319.48,787.849 1320.38,788.006 1321.27,788.155 1322.16,788.295 1323.06,788.426 \n",
       "  1323.95,788.548 1324.85,788.661 1325.74,788.765 1326.64,788.86 1327.53,788.947 1328.43,789.024 1329.32,789.092 1330.22,789.151 1331.11,789.201 1332.01,789.242 \n",
       "  1332.9,789.275 1333.79,789.298 1334.69,789.313 1335.58,789.319 1336.48,789.316 1337.37,789.305 1338.27,789.285 1339.16,789.257 1340.06,789.221 1340.95,789.176 \n",
       "  1341.85,789.123 1342.74,789.063 1343.64,788.994 1344.53,788.918 1345.42,788.835 1346.32,788.744 1347.21,788.645 1348.11,788.54 1349,788.428 1349.9,788.308 \n",
       "  1350.79,788.183 1351.69,788.051 1352.58,787.913 1353.48,787.768 1354.37,787.618 1355.27,787.462 1356.16,787.301 1357.05,787.135 1357.95,786.963 1358.84,786.787 \n",
       "  1359.74,786.606 1360.63,786.421 1361.53,786.231 1362.42,786.038 1363.32,785.841 1364.21,785.64 1365.11,785.436 1366,785.229 1366.9,785.019 1367.79,784.806 \n",
       "  1368.68,784.591 1369.58,784.374 1370.47,784.155 1371.37,783.935 1372.26,783.712 1373.16,783.489 1374.05,783.264 1374.95,783.039 1375.84,782.813 1376.74,782.587 \n",
       "  1377.63,782.36 1378.53,782.134 1379.42,781.907 1380.31,781.682 1381.21,781.457 1382.1,781.233 1383,781.01 1383.89,780.788 1384.79,780.568 1385.68,780.35 \n",
       "  1386.58,780.134 1387.47,779.919 1388.37,779.707 1389.26,779.498 1390.16,779.291 1391.05,779.087 1391.94,778.886 1392.84,778.688 1393.73,778.494 1394.63,778.303 \n",
       "  1395.52,778.115 1396.42,777.931 1397.31,777.752 1398.21,777.576 1399.1,777.405 1400,777.237 1400.89,777.075 1401.79,776.917 1402.68,776.763 1403.57,776.614 \n",
       "  1404.47,776.47 1405.36,776.332 1406.26,776.198 1407.15,776.069 1408.05,775.946 1408.94,775.827 1409.84,775.714 1410.73,775.607 1411.63,775.505 1412.52,775.409 \n",
       "  1413.42,775.318 1414.31,775.232 1415.2,775.153 1416.1,775.079 1416.99,775.01 1417.89,774.948 1418.78,774.891 1419.68,774.84 1420.57,774.794 1421.47,774.754 \n",
       "  1422.36,774.72 1423.26,774.691 1424.15,774.669 1425.04,774.651 1425.94,774.64 1426.83,774.633 1427.73,774.633 1428.62,774.638 1429.52,774.648 1430.41,774.663 \n",
       "  1431.31,774.684 1432.2,774.71 1433.1,774.741 1433.99,774.778 1434.89,774.819 1435.78,774.865 1436.67,774.916 1437.57,774.971 1438.46,775.032 1439.36,775.097 \n",
       "  1440.25,775.166 1441.15,775.239 1442.04,775.317 1442.94,775.399 1443.83,775.485 1444.73,775.574 1445.62,775.668 1446.52,775.765 1447.41,775.865 1448.3,775.969 \n",
       "  1449.2,776.076 1450.09,776.187 1450.99,776.3 1451.88,776.416 1452.78,776.535 1453.67,776.656 1454.57,776.78 1455.46,776.906 1456.36,777.034 1457.25,777.164 \n",
       "  1458.15,777.296 1459.04,777.43 1459.93,777.566 1460.83,777.702 1461.72,777.84 1462.62,777.98 1463.51,778.12 1464.41,778.261 1465.3,778.403 1466.2,778.545 \n",
       "  1467.09,778.688 1467.99,778.831 1468.88,778.975 1469.78,779.118 1470.67,779.261 1471.56,779.404 1472.46,779.546 1473.35,779.689 1474.25,779.83 1475.14,779.97 \n",
       "  1476.04,780.11 1476.93,780.249 1477.83,780.386 1478.72,780.522 1479.62,780.657 1480.51,780.79 1481.41,780.922 1482.3,781.052 1483.19,781.18 1484.09,781.306 \n",
       "  1484.98,781.43 1485.88,781.552 1486.77,781.671 1487.67,781.789 1488.56,781.903 1489.46,782.016 1490.35,782.125 1491.25,782.232 1492.14,782.336 1493.04,782.438 \n",
       "  1493.93,782.536 1494.82,782.632 1495.72,782.724 1496.61,782.813 1497.51,782.899 1498.4,782.982 1499.3,783.062 1500.19,783.138 1501.09,783.211 1501.98,783.28 \n",
       "  1502.88,783.346 1503.77,783.409 1504.67,783.468 1505.56,783.523 1506.45,783.575 1507.35,783.624 1508.24,783.668 1509.14,783.709 1510.03,783.747 1510.93,783.781 \n",
       "  1511.82,783.811 1512.72,783.838 1513.61,783.861 1514.51,783.881 1515.4,783.897 1516.3,783.909 1517.19,783.918 1518.08,783.924 1518.98,783.925 1519.87,783.924 \n",
       "  1520.77,783.919 1521.66,783.911 1522.56,783.899 1523.45,783.884 1524.35,783.865 1525.24,783.844 1526.14,783.819 1527.03,783.791 1527.93,783.76 1528.82,783.726 \n",
       "  1529.71,783.69 1530.61,783.65 1531.5,783.607 1532.4,783.562 1533.29,783.514 1534.19,783.463 1535.08,783.41 1535.98,783.354 1536.87,783.296 1537.77,783.236 \n",
       "  1538.66,783.173 1539.56,783.108 1540.45,783.041 1541.34,782.972 1542.24,782.901 1543.13,782.829 1544.03,782.754 1544.92,782.678 1545.82,782.6 1546.71,782.521 \n",
       "  1547.61,782.441 1548.5,782.359 1549.4,782.276 1550.29,782.192 1551.19,782.106 1552.08,782.02 1552.97,781.933 1553.87,781.845 1554.76,781.757 1555.66,781.668 \n",
       "  1556.55,781.578 1557.45,781.488 1558.34,781.398 1559.24,781.308 1560.13,781.217 1561.03,781.126 1561.92,781.036 1562.81,780.945 1563.71,780.855 1564.6,780.765 \n",
       "  1565.5,780.675 1566.39,780.586 1567.29,780.497 1568.18,780.409 1569.08,780.322 1569.97,780.236 1570.87,780.15 1571.76,780.065 1572.66,779.981 1573.55,779.899 \n",
       "  1574.44,779.817 1575.34,779.737 1576.23,779.658 1577.13,779.58 1578.02,779.504 1578.92,779.429 1579.81,779.356 1580.71,779.284 1581.6,779.214 1582.5,779.146 \n",
       "  1583.39,779.079 1584.29,779.014 1585.18,778.951 1586.07,778.89 1586.97,778.831 1587.86,778.773 1588.76,778.718 1589.65,778.665 1590.55,778.613 1591.44,778.564 \n",
       "  1592.34,778.517 1593.23,778.472 1594.13,778.43 1595.02,778.389 1595.92,778.351 1596.81,778.315 1597.7,778.281 1598.6,778.249 1599.49,778.22 1600.39,778.193 \n",
       "  1601.28,778.168 1602.18,778.146 1603.07,778.126 1603.97,778.108 1604.86,778.092 1605.76,778.079 1606.65,778.068 1607.55,778.059 1608.44,778.052 1609.33,778.048 \n",
       "  1610.23,778.046 1611.12,778.046 1612.02,778.048 1612.91,778.053 1613.81,778.059 1614.7,778.068 1615.6,778.078 1616.49,778.091 1617.39,778.106 1618.28,778.123 \n",
       "  1619.18,778.141 1620.07,778.162 1620.96,778.185 1621.86,778.209 1622.75,778.235 1623.65,778.263 1624.54,778.293 1625.44,778.324 1626.33,778.357 1627.23,778.392 \n",
       "  1628.12,778.428 1629.02,778.466 1629.91,778.505 1630.81,778.545 1631.7,778.587 1632.59,778.63 1633.49,778.674 1634.38,778.72 1635.28,778.766 1636.17,778.814 \n",
       "  1637.07,778.863 1637.96,778.913 1638.86,778.963 1639.75,779.015 1640.65,779.067 1641.54,779.12 1642.44,779.174 1643.33,779.228 1644.22,779.283 1645.12,779.338 \n",
       "  1646.01,779.394 1646.91,779.45 1647.8,779.507 1648.7,779.563 1649.59,779.62 1650.49,779.678 1651.38,779.735 1652.28,779.792 1653.17,779.85 1654.07,779.907 \n",
       "  1654.96,779.964 1655.85,780.021 1656.75,780.078 1657.64,780.135 1658.54,780.191 1659.43,780.247 1660.33,780.302 1661.22,780.357 1662.12,780.412 1663.01,780.465 \n",
       "  1663.91,780.519 1664.8,780.571 1665.7,780.623 1666.59,780.674 1667.48,780.725 1668.38,780.774 1669.27,780.823 1670.17,780.871 1671.06,780.917 1671.96,780.963 \n",
       "  1672.85,781.008 1673.75,781.052 1674.64,781.094 1675.54,781.136 1676.43,781.176 1677.33,781.216 1678.22,781.254 1679.11,781.29 1680.01,781.326 1680.9,781.36 \n",
       "  1681.8,781.393 1682.69,781.425 1683.59,781.455 1684.48,781.484 1685.38,781.512 1686.27,781.538 1687.17,781.563 1688.06,781.586 1688.96,781.608 1689.85,781.629 \n",
       "  1690.74,781.648 1691.64,781.666 1692.53,781.682 1693.43,781.697 1694.32,781.71 1695.22,781.722 1696.11,781.733 1697.01,781.742 1697.9,781.749 1698.8,781.756 \n",
       "  1699.69,781.76 1700.58,781.764 1701.48,781.766 1702.37,781.766 1703.27,781.765 1704.16,781.763 1705.06,781.76 1705.95,781.755 1706.85,781.749 1707.74,781.741 \n",
       "  1708.64,781.732 1709.53,781.722 1710.43,781.711 1711.32,781.698 1712.21,781.684 1713.11,781.67 1714,781.653 1714.9,781.636 1715.79,781.618 1716.69,781.599 \n",
       "  1717.58,781.578 1718.48,781.557 1719.37,781.534 1720.27,781.511 1721.16,781.486 1722.06,781.461 1722.95,781.435 1723.84,781.408 1724.74,781.381 1725.63,781.352 \n",
       "  1726.53,781.323 1727.42,781.293 1728.32,781.262 1729.21,781.231 1730.11,781.199 1731,781.167 1731.9,781.134 1732.79,781.101 1733.69,781.067 1734.58,781.033 \n",
       "  1735.47,780.998 1736.37,780.964 1737.26,780.928 1738.16,780.893 1739.05,780.857 1739.95,780.821 1740.84,780.785 1741.74,780.749 1742.63,780.713 1743.53,780.677 \n",
       "  1744.42,780.64 1745.32,780.604 1746.21,780.568 1747.1,780.532 1748,780.496 1748.89,780.46 1749.79,780.424 1750.68,780.389 1751.58,780.353 1752.47,780.319 \n",
       "  1753.37,780.284 1754.26,780.25 1755.16,780.216 1756.05,780.182 1756.95,780.149 1757.84,780.117 1758.73,780.085 1759.63,780.053 1760.52,780.022 1761.42,779.992 \n",
       "  1762.31,779.962 1763.21,779.933 1764.1,779.904 1765,779.876 1765.89,779.849 1766.79,779.822 1767.68,779.796 1768.58,779.771 1769.47,779.747 1770.36,779.723 \n",
       "  1771.26,779.7 1772.15,779.678 1773.05,779.657 1773.94,779.637 1774.84,779.617 1775.73,779.598 1776.63,779.581 1777.52,779.564 1778.42,779.547 1779.31,779.532 \n",
       "  1780.21,779.518 1781.1,779.505 1781.99,779.492 1782.89,779.48 1783.78,779.47 1784.68,779.46 1785.57,779.451 1786.47,779.443 1787.36,779.436 1788.26,779.43 \n",
       "  1789.15,779.425 1790.05,779.421 1790.94,779.417 1791.84,779.415 1792.73,779.413 1793.62,779.412 1794.52,779.412 1795.41,779.413 1796.31,779.415 1797.2,779.418 \n",
       "  1798.1,779.422 1798.99,779.426 1799.89,779.431 1800.78,779.437 1801.68,779.444 1802.57,779.452 1803.47,779.46 1804.36,779.469 1805.25,779.479 1806.15,779.49 \n",
       "  1807.04,779.501 1807.94,779.513 1808.83,779.526 1809.73,779.539 1810.62,779.553 1811.52,779.567 1812.41,779.583 1813.31,779.598 1814.2,779.615 1815.1,779.631 \n",
       "  1815.99,779.649 1816.88,779.667 1817.78,779.685 1818.67,779.704 1819.57,779.723 1820.46,779.742 1821.36,779.762 1822.25,779.783 1823.15,779.803 1824.04,779.824 \n",
       "  1824.94,779.845 1825.83,779.867 1826.73,779.889 1827.62,779.911 1828.51,779.933 1829.41,779.955 1830.3,779.978 1831.2,780 1832.09,780.023 1832.99,780.046 \n",
       "  1833.88,780.069 1834.78,780.092 1835.67,780.115 1836.57,780.138 1837.46,780.161 1838.35,780.184 1839.25,780.207 1840.14,780.229 1841.04,780.252 1841.93,780.274 \n",
       "  1842.83,780.297 1843.72,780.319 1844.62,780.341 1845.51,780.363 1846.41,780.384 1847.3,780.405 1848.2,780.426 1849.09,780.447 1849.98,780.468 1850.88,780.488 \n",
       "  1851.77,780.508 1852.67,780.527 1853.56,780.546 1854.46,780.565 1855.35,780.583 1856.25,780.601 1857.14,780.618 1858.04,780.635 1858.93,780.652 1859.83,780.668 \n",
       "  1860.72,780.684 1861.61,780.699 1862.51,780.713 1863.4,780.728 1864.3,780.741 1865.19,780.754 1866.09,780.767 1866.98,780.779 1867.88,780.791 1868.77,780.802 \n",
       "  1869.67,780.812 1870.56,780.822 1871.46,780.831 1872.35,780.84 1873.24,780.848 1874.14,780.856 1875.03,780.863 1875.93,780.869 1876.82,780.875 1877.72,780.88 \n",
       "  1878.61,780.885 1879.51,780.889 1880.4,780.893 1881.3,780.896 1882.19,780.898 1883.09,780.9 1883.98,780.901 1884.87,780.902 1885.77,780.902 1886.66,780.901 \n",
       "  1887.56,780.901 1888.45,780.899 1889.35,780.897 1890.24,780.894 1891.14,780.891 1892.03,780.888 1892.93,780.884 1893.82,780.879 1894.72,780.874 1895.61,780.868 \n",
       "  1896.5,780.862 1897.4,780.856 1898.29,780.849 1899.19,780.841 1900.08,780.834 1900.98,780.825 1901.87,780.817 1902.77,780.808 1903.66,780.798 1904.56,780.788 \n",
       "  1905.45,780.778 1906.35,780.768 1907.24,780.757 1908.13,780.746 1909.03,780.734 1909.92,780.723 1910.82,780.711 1911.71,780.698 1912.61,780.686 1913.5,780.673 \n",
       "  1914.4,780.66 1915.29,780.647 1916.19,780.634 1917.08,780.62 1917.98,780.606 1918.87,780.593 1919.76,780.579 1920.66,780.564 1921.55,780.55 1922.45,780.536 \n",
       "  1923.34,780.522 1924.24,780.507 1925.13,780.493 1926.03,780.478 1926.92,780.464 1927.82,780.449 1928.71,780.435 1929.61,780.42 1930.5,780.406 1931.39,780.391 \n",
       "  1932.29,780.377 1933.18,780.363 1934.08,780.348 1934.97,780.334 1935.87,780.32 1936.76,780.307 1937.66,780.293 1938.55,780.279 1939.45,780.266 1940.34,780.253 \n",
       "  1941.24,780.24 1942.13,780.227 1943.02,780.214 1943.92,780.202 1944.81,780.19 1945.71,780.178 1946.6,780.166 1947.5,780.155 1948.39,780.144 1949.29,780.133 \n",
       "  1950.18,780.122 1951.08,780.112 1951.97,780.102 1952.87,780.092 1953.76,780.083 1954.65,780.074 1955.55,780.065 1956.44,780.056 1957.34,780.048 1958.23,780.04 \n",
       "  1959.13,780.033 1960.02,780.026 1960.92,780.019 1961.81,780.013 1962.71,780.007 1963.6,780.001 1964.5,779.996 1965.39,779.991 1966.28,779.986 1967.18,779.982 \n",
       "  1968.07,779.978 1968.97,779.975 1969.86,779.972 1970.76,779.969 1971.65,779.966 1972.55,779.964 1973.44,779.963 1974.34,779.961 1975.23,779.96 1976.12,779.96 \n",
       "  1977.02,779.96 1977.91,779.96 1978.81,779.96 1979.7,779.961 1980.6,779.962 1981.49,779.964 1982.39,779.965 1983.28,779.968 1984.18,779.97 1985.07,779.973 \n",
       "  1985.97,779.976 1986.86,779.979 1987.75,779.983 1988.65,779.987 1989.54,779.991 1990.44,779.996 1991.33,780.001 1992.23,780.006 1993.12,780.011 1994.02,780.017 \n",
       "  1994.91,780.023 1995.81,780.029 1996.7,780.035 1997.6,780.042 1998.49,780.048 1999.38,780.055 2000.28,780.062 2001.17,780.07 2002.07,780.077 2002.96,780.085 \n",
       "  2003.86,780.093 2004.75,780.101 2005.65,780.109 2006.54,780.117 2007.44,780.126 2008.33,780.134 2009.23,780.143 2010.12,780.152 2011.01,780.16 2011.91,780.169 \n",
       "  2012.8,780.178 2013.7,780.187 2014.59,780.196 2015.49,780.206 2016.38,780.215 2017.28,780.224 2018.17,780.233 2019.07,780.242 2019.96,780.251 2020.86,780.261 \n",
       "  2021.75,780.27 2022.64,780.279 2023.54,780.288 2024.43,780.297 2025.33,780.306 2026.22,780.315 2027.12,780.324 2028.01,780.333 2028.91,780.341 2029.8,780.35 \n",
       "  2030.7,780.358 2031.59,780.367 2032.49,780.375 2033.38,780.383 2034.27,780.391 2035.17,780.399 2036.06,780.407 2036.96,780.415 2037.85,780.422 2038.75,780.429 \n",
       "  2039.64,780.437 2040.54,780.444 2041.43,780.45 2042.33,780.457 2043.22,780.463 2044.12,780.47 2045.01,780.476 2045.9,780.481 2046.8,780.487 2047.69,780.493 \n",
       "  2048.59,780.498 2049.48,780.503 2050.38,780.508 2051.27,780.512 2052.17,780.517 2053.06,780.521 2053.96,780.525 2054.85,780.528 2055.75,780.532 2056.64,780.535 \n",
       "  2057.53,780.538 2058.43,780.541 2059.32,780.543 2060.22,780.546 2061.11,780.548 2062.01,780.55 2062.9,780.551 2063.8,780.553 2064.69,780.554 2065.59,780.555 \n",
       "  2066.48,780.555 2067.38,780.556 2068.27,780.556 2069.16,780.556 2070.06,780.556 2070.95,780.555 2071.85,780.555 2072.74,780.554 2073.64,780.553 2074.53,780.552 \n",
       "  2075.43,780.55 2076.32,780.549 2077.22,780.547 2078.11,780.545 2079.01,780.542 2079.9,780.54 2080.79,780.537 2081.69,780.534 2082.58,780.531 2083.48,780.528 \n",
       "  2084.37,780.525 2085.27,780.521 2086.16,780.518 2087.06,780.514 2087.95,780.51 2088.85,780.506 2089.74,780.502 2090.64,780.497 2091.53,780.493 2092.42,780.488 \n",
       "  2093.32,780.484 2094.21,780.479 2095.11,780.474 2096,780.469 2096.9,780.464 2097.79,780.459 2098.69,780.453 2099.58,780.448 2100.48,780.442 2101.37,780.437 \n",
       "  2102.27,780.431 2103.16,780.426 2104.05,780.42 2104.95,780.414 2105.84,780.409 2106.74,780.403 2107.63,780.397 2108.53,780.391 2109.42,780.386 2110.32,780.38 \n",
       "  2111.21,780.374 2112.11,780.368 2113,780.362 2113.89,780.357 2114.79,780.351 2115.68,780.345 2116.58,780.339 2117.47,780.334 2118.37,780.328 2119.26,780.323 \n",
       "  2120.16,780.317 2121.05,780.312 2121.95,780.306 2122.84,780.301 2123.74,780.295 2124.63,780.29 2125.52,780.285 2126.42,780.28 2127.31,780.275 2128.21,780.27 \n",
       "  2129.1,780.266 2130,780.261 2130.89,780.256 2131.79,780.252 2132.68,780.248 2133.58,780.243 2134.47,780.239 2135.37,780.235 2136.26,780.231 2137.15,780.228 \n",
       "  2138.05,780.224 2138.94,780.221 2139.84,780.217 2140.73,780.214 2141.63,780.211 2142.52,780.208 2143.42,780.205 2144.31,780.202 2145.21,780.2 2146.1,780.197 \n",
       "  2147,780.195 2147.89,780.193 2148.78,780.191 2149.68,780.189 2150.57,780.188 2151.47,780.186 2152.36,780.185 2153.26,780.184 2154.15,780.182 2155.05,780.181 \n",
       "  2155.94,780.181 2156.84,780.18 2157.73,780.18 2158.63,780.179 2159.52,780.179 2160.41,780.179 2161.31,780.179 2162.2,780.179 2163.1,780.18 2163.99,780.18 \n",
       "  2164.89,780.181 2165.78,780.181 2166.68,780.182 2167.57,780.183 2168.47,780.184 2169.36,780.186 2170.26,780.187 2171.15,780.189 2172.04,780.19 2172.94,780.192 \n",
       "  2173.83,780.194 2174.73,780.196 2175.62,780.198 2176.52,780.2 2177.41,780.202 2178.31,780.205 2179.2,780.207 2180.1,780.21 2180.99,780.212 2181.89,780.215 \n",
       "  2182.78,780.218 2183.67,780.221 2184.57,780.224 2185.46,780.227 2186.36,780.23 2187.25,780.233 2188.15,780.236 2189.04,780.239 2189.94,780.243 2190.83,780.246 \n",
       "  2191.73,780.249 2192.62,780.253 2193.52,780.256 2194.41,780.26 2195.3,780.263 2196.2,780.267 2197.09,780.271 2197.99,780.274 2198.88,780.278 2199.78,780.282 \n",
       "  2200.67,780.285 2201.57,780.289 2202.46,780.293 2203.36,780.296 2204.25,780.3 2205.15,780.304 2206.04,780.307 2206.93,780.311 2207.83,780.315 2208.72,780.318 \n",
       "  2209.62,780.322 2210.51,780.325 2211.41,780.329 2212.3,780.332 2213.2,780.336 2214.09,780.339 2214.99,780.343 2215.88,780.346 2216.78,780.349 2217.67,780.352 \n",
       "  2218.56,780.355 2219.46,780.359 2220.35,780.362 2221.25,780.365 2222.14,780.368 2223.04,780.37 2223.93,780.373 2224.83,780.376 2225.72,780.378 2226.62,780.381 \n",
       "  2227.51,780.384 2228.41,780.386 2229.3,780.388 2230.19,780.391 2231.09,780.393 2231.98,780.395 2232.88,780.397 2233.77,780.399 2234.67,780.4 2235.56,780.402 \n",
       "  2236.46,780.404 2237.35,780.405 2238.25,780.407 2239.14,780.408 2240.04,780.41 2240.93,780.411 2241.82,780.412 2242.72,780.413 2243.61,780.414 2244.51,780.415 \n",
       "  2245.4,780.415 2246.3,780.416 2247.19,780.416 2248.09,780.417 2248.98,780.417 2249.88,780.418 2250.77,780.418 2251.66,780.418 2252.56,780.418 2253.45,780.418 \n",
       "  2254.35,780.418 2255.24,780.417 2256.14,780.417 2257.03,780.417 2257.93,780.416 2258.82,780.415 2259.72,780.415 2260.61,780.414 2261.51,780.413 2262.4,780.412 \n",
       "  2263.29,780.411 2264.19,780.41 2265.08,780.409 2265.98,780.408 2266.87,780.407 2267.77,780.405 2268.66,780.404 2269.56,780.402 2270.45,780.401 2271.35,780.399 \n",
       "  2272.24,780.398 2273.14,780.396 2274.03,780.394 2274.92,780.392 2275.82,780.39 2276.71,780.389 2277.61,780.387 2278.5,780.385 2279.4,780.383 2280.29,780.381 \n",
       "  2281.19,780.379 2282.08,780.376 2282.98,780.374 2283.87,780.372 2284.77,780.37 2285.66,780.368 2286.55,780.365 2287.45,780.363 2288.34,780.361 2289.24,780.359 \n",
       "  2290.13,780.356 2291.03,780.354 2291.92,780.352 2292.82,780.349 2293.71,780.347 2294.61,780.345 2295.5,780.342 2296.4,780.34 2297.29,780.338 2298.18,780.335 \n",
       "  2299.08,780.333 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip7602)\" style=\"stroke:#ac8d18; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  509.859,158.579 510.753,159.641 511.648,161.584 512.542,164.321 513.437,167.786 514.332,171.926 515.226,176.694 516.121,182.047 517.015,187.947 517.91,194.357 \n",
       "  518.805,201.243 519.699,208.575 520.594,216.323 521.488,224.459 522.383,232.96 523.278,241.802 524.172,250.963 525.067,260.423 525.962,270.166 526.856,280.175 \n",
       "  527.751,290.435 528.645,300.934 529.54,311.662 530.435,322.608 531.329,333.766 532.224,345.127 533.118,356.686 534.013,368.439 534.908,380.382 535.802,392.512 \n",
       "  536.697,404.826 537.591,417.322 538.486,429.998 539.381,442.853 540.275,455.884 541.17,469.09 542.065,482.467 542.959,496.014 543.854,509.726 544.748,523.601 \n",
       "  545.643,537.633 546.538,551.818 547.432,566.149 548.327,580.62 549.221,595.224 550.116,609.953 551.011,624.797 551.905,639.748 552.8,654.795 553.694,669.928 \n",
       "  554.589,685.135 555.484,700.405 556.378,715.726 557.273,731.085 558.168,746.468 559.062,761.864 559.957,777.259 560.851,792.639 561.746,807.992 562.641,823.303 \n",
       "  563.535,838.56 564.43,853.749 565.324,868.857 566.219,883.873 567.114,898.783 568.008,913.576 568.903,928.24 569.797,942.763 570.692,957.136 571.587,971.348 \n",
       "  572.481,985.389 573.376,999.251 574.271,1012.92 575.165,1026.4 576.06,1039.67 576.954,1052.73 577.849,1065.58 578.744,1078.2 579.638,1090.59 580.533,1102.74 \n",
       "  581.427,1114.66 582.322,1126.34 583.217,1137.77 584.111,1148.95 585.006,1159.89 585.9,1170.56 586.795,1180.99 587.69,1191.15 588.584,1201.06 589.479,1210.71 \n",
       "  590.373,1220.1 591.268,1229.23 592.163,1238.11 593.057,1246.72 593.952,1255.07 594.847,1263.16 595.741,1271 596.636,1278.57 597.53,1285.89 598.425,1292.96 \n",
       "  599.32,1299.76 600.214,1306.31 601.109,1312.61 602.003,1318.65 602.898,1324.44 603.793,1329.98 604.687,1335.27 605.582,1340.3 606.476,1345.09 607.371,1349.62 \n",
       "  608.266,1353.91 609.16,1357.94 610.055,1361.73 610.95,1365.27 611.844,1368.56 612.739,1371.6 613.633,1374.4 614.528,1376.94 615.423,1379.24 616.317,1381.29 \n",
       "  617.212,1383.09 618.106,1384.64 619.001,1385.94 619.896,1387 620.79,1387.8 621.685,1388.36 622.579,1388.66 623.474,1388.71 624.369,1388.52 625.263,1388.07 \n",
       "  626.158,1387.37 627.053,1386.43 627.947,1385.23 628.842,1383.78 629.736,1382.08 630.631,1380.13 631.526,1377.94 632.42,1375.49 633.315,1372.8 634.209,1369.86 \n",
       "  635.104,1366.67 635.999,1363.24 636.893,1359.56 637.788,1355.65 638.682,1351.49 639.577,1347.1 640.472,1342.47 641.366,1337.61 642.261,1332.51 643.156,1327.19 \n",
       "  644.05,1321.64 644.945,1315.87 645.839,1309.88 646.734,1303.68 647.629,1297.26 648.523,1290.64 649.418,1283.81 650.312,1276.79 651.207,1269.57 652.102,1262.16 \n",
       "  652.996,1254.56 653.891,1246.78 654.785,1238.83 655.68,1230.71 656.575,1222.43 657.469,1213.99 658.364,1205.4 659.258,1196.66 660.153,1187.79 661.048,1178.78 \n",
       "  661.942,1169.65 662.837,1160.39 663.732,1151.03 664.626,1141.55 665.521,1131.98 666.415,1122.32 667.31,1112.57 668.205,1102.75 669.099,1092.86 669.994,1082.9 \n",
       "  670.888,1072.89 671.783,1062.83 672.678,1052.73 673.572,1042.6 674.467,1032.44 675.361,1022.27 676.256,1012.09 677.151,1001.9 678.045,991.717 678.94,981.548 \n",
       "  679.835,971.398 680.729,961.275 681.624,951.186 682.518,941.139 683.413,931.14 684.308,921.197 685.202,911.316 686.097,901.505 686.991,891.77 687.886,882.118 \n",
       "  688.781,872.556 689.675,863.089 690.57,853.724 691.464,844.468 692.359,835.327 693.254,826.305 694.148,817.41 695.043,808.647 695.938,800.02 696.832,791.537 \n",
       "  697.727,783.201 698.621,775.017 699.516,766.991 700.411,759.127 701.305,751.43 702.2,743.904 703.094,736.554 703.989,729.382 704.884,722.393 705.778,715.591 \n",
       "  706.673,708.979 707.567,702.561 708.462,696.339 709.357,690.316 710.251,684.496 711.146,678.88 712.041,673.471 712.935,668.272 713.83,663.284 714.724,658.509 \n",
       "  715.619,653.949 716.514,649.606 717.408,645.48 718.303,641.574 719.197,637.887 720.092,634.422 720.987,631.177 721.881,628.155 722.776,625.355 723.67,622.777 \n",
       "  724.565,620.422 725.46,618.29 726.354,616.379 727.249,614.691 728.143,613.223 729.038,611.976 729.933,610.948 730.827,610.139 731.722,609.547 732.617,609.171 \n",
       "  733.511,609.01 734.406,609.062 735.3,609.325 736.195,609.798 737.09,610.479 737.984,611.366 738.879,612.456 739.773,613.747 740.668,615.238 741.563,616.925 \n",
       "  742.457,618.805 743.352,620.877 744.246,623.138 745.141,625.584 746.036,628.213 746.93,631.022 747.825,634.006 748.72,637.165 749.614,640.493 750.509,643.988 \n",
       "  751.403,647.646 752.298,651.464 753.193,655.438 754.087,659.564 754.982,663.84 755.876,668.26 756.771,672.821 757.666,677.52 758.56,682.353 759.455,687.314 \n",
       "  760.349,692.401 761.244,697.61 762.139,702.936 763.033,708.375 763.928,713.923 764.823,719.576 765.717,725.329 766.612,731.179 767.506,737.121 768.401,743.15 \n",
       "  769.296,749.263 770.19,755.455 771.085,761.721 771.979,768.058 772.874,774.461 773.769,780.925 774.663,787.447 775.558,794.021 776.452,800.643 777.347,807.309 \n",
       "  778.242,814.015 779.136,820.756 780.031,827.527 780.926,834.325 781.82,841.145 782.715,847.983 783.609,854.834 784.504,861.693 785.399,868.558 786.293,875.423 \n",
       "  787.188,882.284 788.082,889.137 788.977,895.977 789.872,902.802 790.766,909.605 791.661,916.385 792.555,923.135 793.45,929.853 794.345,936.534 795.239,943.174 \n",
       "  796.134,949.77 797.028,956.318 797.923,962.813 798.818,969.253 799.712,975.633 800.607,981.95 801.502,988.2 802.396,994.38 803.291,1000.49 804.185,1006.51 \n",
       "  805.08,1012.46 805.975,1018.33 806.869,1024.11 807.764,1029.79 808.658,1035.39 809.553,1040.89 810.448,1046.29 811.342,1051.59 812.237,1056.78 813.131,1061.87 \n",
       "  814.026,1066.84 814.921,1071.71 815.815,1076.45 816.71,1081.09 817.605,1085.6 818.499,1089.99 819.394,1094.26 820.288,1098.4 821.183,1102.41 822.078,1106.29 \n",
       "  822.972,1110.05 823.867,1113.66 824.761,1117.15 825.656,1120.5 826.551,1123.71 827.445,1126.78 828.34,1129.71 829.234,1132.51 830.129,1135.15 831.024,1137.66 \n",
       "  831.918,1140.02 832.813,1142.24 833.708,1144.31 834.602,1146.24 835.497,1148.02 836.391,1149.66 837.286,1151.15 838.181,1152.49 839.075,1153.68 839.97,1154.73 \n",
       "  840.864,1155.63 841.759,1156.38 842.654,1156.99 843.548,1157.45 844.443,1157.77 845.337,1157.94 846.232,1157.97 847.127,1157.86 848.021,1157.6 848.916,1157.2 \n",
       "  849.81,1156.66 850.705,1155.98 851.6,1155.17 852.494,1154.21 853.389,1153.13 854.284,1151.9 855.178,1150.55 856.073,1149.06 856.967,1147.45 857.862,1145.71 \n",
       "  858.757,1143.84 859.651,1141.85 860.546,1139.74 861.44,1137.51 862.335,1135.16 863.23,1132.7 864.124,1130.12 865.019,1127.43 865.913,1124.64 866.808,1121.74 \n",
       "  867.703,1118.73 868.597,1115.63 869.492,1112.42 870.387,1109.13 871.281,1105.73 872.176,1102.25 873.07,1098.68 873.965,1095.03 874.86,1091.3 875.754,1087.48 \n",
       "  876.649,1083.59 877.543,1079.63 878.438,1075.6 879.333,1071.5 880.227,1067.34 881.122,1063.11 882.016,1058.83 882.911,1054.5 883.806,1050.11 884.7,1045.68 \n",
       "  885.595,1041.2 886.49,1036.68 887.384,1032.12 888.279,1027.52 889.173,1022.89 890.068,1018.24 890.963,1013.55 891.857,1008.85 892.752,1004.12 893.646,999.381 \n",
       "  894.541,994.626 895.436,989.861 896.33,985.089 897.225,980.314 898.119,975.538 899.014,970.764 899.909,965.996 900.803,961.236 901.698,956.488 902.593,951.755 \n",
       "  903.487,947.039 904.382,942.344 905.276,937.672 906.171,933.026 907.066,928.409 907.96,923.825 908.855,919.275 909.749,914.762 910.644,910.29 911.539,905.86 \n",
       "  912.433,901.475 913.328,897.139 914.222,892.853 915.117,888.619 916.012,884.441 916.906,880.321 917.801,876.26 918.695,872.262 919.59,868.328 920.485,864.46 \n",
       "  921.379,860.661 922.274,856.933 923.169,853.277 924.063,849.696 924.958,846.191 925.852,842.764 926.747,839.417 927.642,836.151 928.536,832.968 929.431,829.871 \n",
       "  930.325,826.859 931.22,823.935 932.115,821.099 933.009,818.354 933.904,815.7 934.798,813.139 935.693,810.671 936.588,808.298 937.482,806.02 938.377,803.838 \n",
       "  939.272,801.754 940.166,799.768 941.061,797.881 941.955,796.093 942.85,794.404 943.745,792.816 944.639,791.329 945.534,789.942 946.428,788.657 947.323,787.474 \n",
       "  948.218,786.392 949.112,785.412 950.007,784.533 950.901,783.756 951.796,783.081 952.691,782.507 953.585,782.035 954.48,781.663 955.375,781.391 956.269,781.22 \n",
       "  957.164,781.148 958.058,781.175 958.953,781.301 959.848,781.524 960.742,781.844 961.637,782.261 962.531,782.773 963.426,783.379 964.321,784.078 965.215,784.87 \n",
       "  966.11,785.754 967.004,786.728 967.899,787.791 968.794,788.942 969.688,790.179 970.583,791.502 971.478,792.909 972.372,794.398 973.267,795.969 974.161,797.619 \n",
       "  975.056,799.348 975.951,801.153 976.845,803.033 977.74,804.986 978.634,807.011 979.529,809.105 980.424,811.268 981.318,813.497 982.213,815.791 983.107,818.148 \n",
       "  984.002,820.565 984.897,823.041 985.791,825.574 986.686,828.162 987.58,830.803 988.475,833.495 989.37,836.236 990.264,839.024 991.159,841.857 992.054,844.733 \n",
       "  992.948,847.65 993.843,850.605 994.737,853.596 995.632,856.622 996.527,859.681 997.421,862.769 998.316,865.885 999.21,869.027 1000.11,872.193 1001,875.38 \n",
       "  1001.89,878.586 1002.79,881.809 1003.68,885.048 1004.58,888.299 1005.47,891.561 1006.37,894.831 1007.26,898.108 1008.16,901.388 1009.05,904.671 1009.95,907.954 \n",
       "  1010.84,911.235 1011.73,914.511 1012.63,917.781 1013.52,921.043 1014.42,924.294 1015.31,927.533 1016.21,930.758 1017.1,933.966 1018,937.156 1018.89,940.326 \n",
       "  1019.79,943.473 1020.68,946.596 1021.58,949.693 1022.47,952.763 1023.36,955.803 1024.26,958.811 1025.15,961.787 1026.05,964.727 1026.94,967.631 1027.84,970.497 \n",
       "  1028.73,973.324 1029.63,976.109 1030.52,978.851 1031.42,981.548 1032.31,984.2 1033.21,986.805 1034.1,989.361 1034.99,991.867 1035.89,994.321 1036.78,996.723 \n",
       "  1037.68,999.071 1038.57,1001.36 1039.47,1003.6 1040.36,1005.78 1041.26,1007.9 1042.15,1009.96 1043.05,1011.97 1043.94,1013.91 1044.84,1015.78 1045.73,1017.6 \n",
       "  1046.62,1019.35 1047.52,1021.04 1048.41,1022.66 1049.31,1024.22 1050.2,1025.71 1051.1,1027.13 1051.99,1028.48 1052.89,1029.77 1053.78,1030.99 1054.68,1032.14 \n",
       "  1055.57,1033.22 1056.47,1034.23 1057.36,1035.17 1058.25,1036.05 1059.15,1036.85 1060.04,1037.58 1060.94,1038.24 1061.83,1038.83 1062.73,1039.35 1063.62,1039.8 \n",
       "  1064.52,1040.19 1065.41,1040.5 1066.31,1040.74 1067.2,1040.91 1068.1,1041.02 1068.99,1041.05 1069.88,1041.02 1070.78,1040.92 1071.67,1040.75 1072.57,1040.51 \n",
       "  1073.46,1040.21 1074.36,1039.84 1075.25,1039.41 1076.15,1038.92 1077.04,1038.35 1077.94,1037.73 1078.83,1037.05 1079.73,1036.3 1080.62,1035.49 1081.51,1034.62 \n",
       "  1082.41,1033.7 1083.3,1032.71 1084.2,1031.67 1085.09,1030.58 1085.99,1029.43 1086.88,1028.22 1087.78,1026.96 1088.67,1025.65 1089.57,1024.3 1090.46,1022.89 \n",
       "  1091.36,1021.43 1092.25,1019.93 1093.14,1018.38 1094.04,1016.78 1094.93,1015.15 1095.83,1013.47 1096.72,1011.75 1097.62,1009.99 1098.51,1008.2 1099.41,1006.37 \n",
       "  1100.3,1004.5 1101.2,1002.6 1102.09,1000.67 1102.99,998.709 1103.88,996.718 1104.77,994.699 1105.67,992.653 1106.56,990.583 1107.46,988.489 1108.35,986.374 \n",
       "  1109.25,984.238 1110.14,982.084 1111.04,979.911 1111.93,977.724 1112.83,975.521 1113.72,973.306 1114.62,971.08 1115.51,968.843 1116.4,966.598 1117.3,964.347 \n",
       "  1118.19,962.089 1119.09,959.828 1119.98,957.565 1120.88,955.3 1121.77,953.036 1122.67,950.774 1123.56,948.515 1124.46,946.261 1125.35,944.013 1126.25,941.773 \n",
       "  1127.14,939.541 1128.03,937.32 1128.93,935.111 1129.82,932.915 1130.72,930.733 1131.61,928.567 1132.51,926.418 1133.4,924.288 1134.3,922.177 1135.19,920.086 \n",
       "  1136.09,918.018 1136.98,915.973 1137.88,913.952 1138.77,911.957 1139.66,909.988 1140.56,908.047 1141.45,906.135 1142.35,904.253 1143.24,902.402 1144.14,900.582 \n",
       "  1145.03,898.796 1145.93,897.043 1146.82,895.325 1147.72,893.643 1148.61,891.998 1149.5,890.389 1150.4,888.819 1151.29,887.288 1152.19,885.796 1153.08,884.345 \n",
       "  1153.98,882.935 1154.87,881.567 1155.77,880.241 1156.66,878.959 1157.56,877.719 1158.45,876.524 1159.35,875.374 1160.24,874.268 1161.13,873.208 1162.03,872.194 \n",
       "  1162.92,871.227 1163.82,870.305 1164.71,869.431 1165.61,868.604 1166.5,867.825 1167.4,867.093 1168.29,866.409 1169.19,865.774 1170.08,865.186 1170.98,864.647 \n",
       "  1171.87,864.156 1172.76,863.713 1173.66,863.318 1174.55,862.972 1175.45,862.675 1176.34,862.425 1177.24,862.223 1178.13,862.069 1179.03,861.963 1179.92,861.904 \n",
       "  1180.82,861.893 1181.71,861.928 1182.61,862.01 1183.5,862.139 1184.39,862.313 1185.29,862.533 1186.18,862.798 1187.08,863.108 1187.97,863.462 1188.87,863.859 \n",
       "  1189.76,864.3 1190.66,864.784 1191.55,865.31 1192.45,865.877 1193.34,866.486 1194.24,867.134 1195.13,867.823 1196.02,868.55 1196.92,869.316 1197.81,870.119 \n",
       "  1198.71,870.959 1199.6,871.835 1200.5,872.746 1201.39,873.692 1202.29,874.671 1203.18,875.683 1204.08,876.728 1204.97,877.803 1205.87,878.909 1206.76,880.044 \n",
       "  1207.65,881.208 1208.55,882.399 1209.44,883.617 1210.34,884.86 1211.23,886.129 1212.13,887.421 1213.02,888.736 1213.92,890.072 1214.81,891.43 1215.71,892.807 \n",
       "  1216.6,894.204 1217.5,895.618 1218.39,897.049 1219.28,898.496 1220.18,899.957 1221.07,901.433 1221.97,902.921 1222.86,904.421 1223.76,905.931 1224.65,907.452 \n",
       "  1225.55,908.98 1226.44,910.517 1227.34,912.06 1228.23,913.608 1229.13,915.161 1230.02,916.718 1230.91,918.277 1231.81,919.837 1232.7,921.398 1233.6,922.958 \n",
       "  1234.49,924.517 1235.39,926.073 1236.28,927.626 1237.18,929.174 1238.07,930.717 1238.97,932.253 1239.86,933.782 1240.76,935.302 1241.65,936.814 1242.54,938.315 \n",
       "  1243.44,939.805 1244.33,941.283 1245.23,942.748 1246.12,944.2 1247.02,945.637 1247.91,947.059 1248.81,948.465 1249.7,949.853 1250.6,951.224 1251.49,952.576 \n",
       "  1252.39,953.909 1253.28,955.222 1254.17,956.514 1255.07,957.784 1255.96,959.033 1256.86,960.258 1257.75,961.46 1258.65,962.638 1259.54,963.791 1260.44,964.919 \n",
       "  1261.33,966.021 1262.23,967.097 1263.12,968.145 1264.02,969.166 1264.91,970.16 1265.8,971.124 1266.7,972.06 1267.59,972.966 1268.49,973.843 1269.38,974.689 \n",
       "  1270.28,975.505 1271.17,976.29 1272.07,977.045 1272.96,977.767 1273.86,978.458 1274.75,979.117 1275.65,979.743 1276.54,980.338 1277.43,980.899 1278.33,981.428 \n",
       "  1279.22,981.924 1280.12,982.387 1281.01,982.817 1281.91,983.213 1282.8,983.576 1283.7,983.906 1284.59,984.203 1285.49,984.466 1286.38,984.696 1287.27,984.893 \n",
       "  1288.17,985.056 1289.06,985.187 1289.96,985.284 1290.85,985.349 1291.75,985.381 1292.64,985.38 1293.54,985.348 1294.43,985.283 1295.33,985.186 1296.22,985.058 \n",
       "  1297.12,984.898 1298.01,984.707 1298.9,984.486 1299.8,984.234 1300.69,983.952 1301.59,983.64 1302.48,983.299 1303.38,982.929 1304.27,982.53 1305.17,982.104 \n",
       "  1306.06,981.649 1306.96,981.168 1307.85,980.659 1308.75,980.125 1309.64,979.565 1310.53,978.979 1311.43,978.369 1312.32,977.734 1313.22,977.076 1314.11,976.395 \n",
       "  1315.01,975.691 1315.9,974.966 1316.8,974.219 1317.69,973.451 1318.59,972.663 1319.48,971.856 1320.38,971.03 1321.27,970.186 1322.16,969.324 1323.06,968.446 \n",
       "  1323.95,967.551 1324.85,966.64 1325.74,965.715 1326.64,964.775 1327.53,963.822 1328.43,962.857 1329.32,961.879 1330.22,960.889 1331.11,959.889 1332.01,958.879 \n",
       "  1332.9,957.859 1333.79,956.831 1334.69,955.796 1335.58,954.752 1336.48,953.703 1337.37,952.648 1338.27,951.587 1339.16,950.523 1340.06,949.454 1340.95,948.383 \n",
       "  1341.85,947.309 1342.74,946.235 1343.64,945.159 1344.53,944.083 1345.42,943.007 1346.32,941.933 1347.21,940.861 1348.11,939.792 1349,938.725 1349.9,937.663 \n",
       "  1350.79,936.606 1351.69,935.553 1352.58,934.507 1353.48,933.467 1354.37,932.434 1355.27,931.409 1356.16,930.392 1357.05,929.384 1357.95,928.386 1358.84,927.398 \n",
       "  1359.74,926.421 1360.63,925.455 1361.53,924.501 1362.42,923.56 1363.32,922.631 1364.21,921.716 1365.11,920.815 1366,919.928 1366.9,919.056 1367.79,918.2 \n",
       "  1368.68,917.359 1369.58,916.535 1370.47,915.727 1371.37,914.937 1372.26,914.164 1373.16,913.409 1374.05,912.673 1374.95,911.955 1375.84,911.256 1376.74,910.577 \n",
       "  1377.63,909.917 1378.53,909.277 1379.42,908.658 1380.31,908.059 1381.21,907.481 1382.1,906.924 1383,906.388 1383.89,905.874 1384.79,905.382 1385.68,904.911 \n",
       "  1386.58,904.463 1387.47,904.037 1388.37,903.633 1389.26,903.252 1390.16,902.893 1391.05,902.557 1391.94,902.244 1392.84,901.954 1393.73,901.687 1394.63,901.442 \n",
       "  1395.52,901.221 1396.42,901.022 1397.31,900.847 1398.21,900.694 1399.1,900.565 1400,900.458 1400.89,900.374 1401.79,900.312 1402.68,900.274 1403.57,900.258 \n",
       "  1404.47,900.264 1405.36,900.292 1406.26,900.343 1407.15,900.415 1408.05,900.509 1408.94,900.625 1409.84,900.762 1410.73,900.92 1411.63,901.099 1412.52,901.299 \n",
       "  1413.42,901.519 1414.31,901.759 1415.2,902.02 1416.1,902.299 1416.99,902.598 1417.89,902.917 1418.78,903.253 1419.68,903.608 1420.57,903.982 1421.47,904.372 \n",
       "  1422.36,904.78 1423.26,905.205 1424.15,905.647 1425.04,906.105 1425.94,906.579 1426.83,907.068 1427.73,907.572 1428.62,908.09 1429.52,908.623 1430.41,909.17 \n",
       "  1431.31,909.729 1432.2,910.302 1433.1,910.887 1433.99,911.484 1434.89,912.093 1435.78,912.713 1436.67,913.343 1437.57,913.983 1438.46,914.633 1439.36,915.293 \n",
       "  1440.25,915.961 1441.15,916.637 1442.04,917.321 1442.94,918.012 1443.83,918.71 1444.73,919.414 1445.62,920.125 1446.52,920.84 1447.41,921.56 1448.3,922.285 \n",
       "  1449.2,923.013 1450.09,923.745 1450.99,924.48 1451.88,925.217 1452.78,925.955 1453.67,926.696 1454.57,927.437 1455.46,928.179 1456.36,928.92 1457.25,929.661 \n",
       "  1458.15,930.401 1459.04,931.14 1459.93,931.877 1460.83,932.611 1461.72,933.342 1462.62,934.071 1463.51,934.795 1464.41,935.515 1465.3,936.231 1466.2,936.942 \n",
       "  1467.09,937.647 1467.99,938.346 1468.88,939.039 1469.78,939.725 1470.67,940.404 1471.56,941.076 1472.46,941.739 1473.35,942.395 1474.25,943.042 1475.14,943.679 \n",
       "  1476.04,944.308 1476.93,944.927 1477.83,945.535 1478.72,946.133 1479.62,946.721 1480.51,947.298 1481.41,947.863 1482.3,948.416 1483.19,948.958 1484.09,949.488 \n",
       "  1484.98,950.005 1485.88,950.509 1486.77,951.001 1487.67,951.479 1488.56,951.944 1489.46,952.395 1490.35,952.832 1491.25,953.255 1492.14,953.665 1493.04,954.059 \n",
       "  1493.93,954.439 1494.82,954.805 1495.72,955.155 1496.61,955.491 1497.51,955.811 1498.4,956.116 1499.3,956.406 1500.19,956.68 1501.09,956.939 1501.98,957.182 \n",
       "  1502.88,957.41 1503.77,957.621 1504.67,957.817 1505.56,957.997 1506.45,958.162 1507.35,958.31 1508.24,958.443 1509.14,958.56 1510.03,958.661 1510.93,958.746 \n",
       "  1511.82,958.816 1512.72,958.869 1513.61,958.908 1514.51,958.93 1515.4,958.937 1516.3,958.929 1517.19,958.906 1518.08,958.867 1518.98,958.813 1519.87,958.744 \n",
       "  1520.77,958.661 1521.66,958.562 1522.56,958.45 1523.45,958.322 1524.35,958.181 1525.24,958.026 1526.14,957.856 1527.03,957.673 1527.93,957.477 1528.82,957.267 \n",
       "  1529.71,957.045 1530.61,956.809 1531.5,956.561 1532.4,956.301 1533.29,956.028 1534.19,955.744 1535.08,955.448 1535.98,955.141 1536.87,954.822 1537.77,954.493 \n",
       "  1538.66,954.153 1539.56,953.803 1540.45,953.443 1541.34,953.073 1542.24,952.694 1543.13,952.306 1544.03,951.909 1544.92,951.503 1545.82,951.09 1546.71,950.668 \n",
       "  1547.61,950.239 1548.5,949.803 1549.4,949.359 1550.29,948.91 1551.19,948.454 1552.08,947.992 1552.97,947.524 1553.87,947.051 1554.76,946.573 1555.66,946.091 \n",
       "  1556.55,945.605 1557.45,945.114 1558.34,944.62 1559.24,944.123 1560.13,943.623 1561.03,943.12 1561.92,942.615 1562.81,942.108 1563.71,941.6 1564.6,941.09 \n",
       "  1565.5,940.58 1566.39,940.069 1567.29,939.557 1568.18,939.046 1569.08,938.535 1569.97,938.026 1570.87,937.517 1571.76,937.009 1572.66,936.504 1573.55,936 \n",
       "  1574.44,935.499 1575.34,935 1576.23,934.504 1577.13,934.012 1578.02,933.523 1578.92,933.038 1579.81,932.557 1580.71,932.081 1581.6,931.609 1582.5,931.142 \n",
       "  1583.39,930.68 1584.29,930.224 1585.18,929.774 1586.07,929.33 1586.97,928.892 1587.86,928.461 1588.76,928.036 1589.65,927.618 1590.55,927.208 1591.44,926.805 \n",
       "  1592.34,926.409 1593.23,926.022 1594.13,925.642 1595.02,925.271 1595.92,924.908 1596.81,924.554 1597.7,924.209 1598.6,923.872 1599.49,923.545 1600.39,923.227 \n",
       "  1601.28,922.918 1602.18,922.619 1603.07,922.33 1603.97,922.051 1604.86,921.781 1605.76,921.522 1606.65,921.273 1607.55,921.034 1608.44,920.805 1609.33,920.587 \n",
       "  1610.23,920.38 1611.12,920.183 1612.02,919.996 1612.91,919.821 1613.81,919.656 1614.7,919.502 1615.6,919.359 1616.49,919.227 1617.39,919.105 1618.28,918.995 \n",
       "  1619.18,918.895 1620.07,918.807 1620.96,918.729 1621.86,918.662 1622.75,918.606 1623.65,918.561 1624.54,918.527 1625.44,918.503 1626.33,918.491 1627.23,918.488 \n",
       "  1628.12,918.497 1629.02,918.516 1629.91,918.545 1630.81,918.585 1631.7,918.635 1632.59,918.695 1633.49,918.766 1634.38,918.846 1635.28,918.936 1636.17,919.036 \n",
       "  1637.07,919.146 1637.96,919.265 1638.86,919.394 1639.75,919.531 1640.65,919.678 1641.54,919.834 1642.44,919.999 1643.33,920.172 1644.22,920.354 1645.12,920.544 \n",
       "  1646.01,920.742 1646.91,920.948 1647.8,921.162 1648.7,921.383 1649.59,921.612 1650.49,921.848 1651.38,922.091 1652.28,922.341 1653.17,922.598 1654.07,922.861 \n",
       "  1654.96,923.13 1655.85,923.405 1656.75,923.686 1657.64,923.973 1658.54,924.265 1659.43,924.562 1660.33,924.864 1661.22,925.171 1662.12,925.482 1663.01,925.797 \n",
       "  1663.91,926.117 1664.8,926.44 1665.7,926.767 1666.59,927.097 1667.48,927.43 1668.38,927.767 1669.27,928.105 1670.17,928.446 1671.06,928.79 1671.96,929.135 \n",
       "  1672.85,929.482 1673.75,929.83 1674.64,930.18 1675.54,930.531 1676.43,930.882 1677.33,931.234 1678.22,931.587 1679.11,931.939 1680.01,932.291 1680.9,932.643 \n",
       "  1681.8,932.995 1682.69,933.345 1683.59,933.695 1684.48,934.043 1685.38,934.39 1686.27,934.735 1687.17,935.078 1688.06,935.419 1688.96,935.758 1689.85,936.094 \n",
       "  1690.74,936.428 1691.64,936.759 1692.53,937.086 1693.43,937.411 1694.32,937.731 1695.22,938.049 1696.11,938.362 1697.01,938.671 1697.9,938.976 1698.8,939.277 \n",
       "  1699.69,939.573 1700.58,939.865 1701.48,940.151 1702.37,940.433 1703.27,940.71 1704.16,940.981 1705.06,941.246 1705.95,941.507 1706.85,941.761 1707.74,942.009 \n",
       "  1708.64,942.252 1709.53,942.489 1710.43,942.719 1711.32,942.943 1712.21,943.16 1713.11,943.371 1714,943.576 1714.9,943.773 1715.79,943.964 1716.69,944.148 \n",
       "  1717.58,944.325 1718.48,944.495 1719.37,944.658 1720.27,944.813 1721.16,944.962 1722.06,945.103 1722.95,945.237 1723.84,945.363 1724.74,945.482 1725.63,945.594 \n",
       "  1726.53,945.698 1727.42,945.795 1728.32,945.884 1729.21,945.966 1730.11,946.04 1731,946.107 1731.9,946.166 1732.79,946.217 1733.69,946.262 1734.58,946.298 \n",
       "  1735.47,946.327 1736.37,946.349 1737.26,946.363 1738.16,946.37 1739.05,946.37 1739.95,946.362 1740.84,946.347 1741.74,946.325 1742.63,946.296 1743.53,946.259 \n",
       "  1744.42,946.216 1745.32,946.166 1746.21,946.108 1747.1,946.045 1748,945.974 1748.89,945.897 1749.79,945.813 1750.68,945.723 1751.58,945.626 1752.47,945.523 \n",
       "  1753.37,945.414 1754.26,945.299 1755.16,945.178 1756.05,945.051 1756.95,944.919 1757.84,944.781 1758.73,944.637 1759.63,944.489 1760.52,944.335 1761.42,944.176 \n",
       "  1762.31,944.012 1763.21,943.843 1764.1,943.669 1765,943.491 1765.89,943.309 1766.79,943.122 1767.68,942.931 1768.58,942.737 1769.47,942.538 1770.36,942.336 \n",
       "  1771.26,942.13 1772.15,941.921 1773.05,941.709 1773.94,941.494 1774.84,941.275 1775.73,941.054 1776.63,940.831 1777.52,940.605 1778.42,940.377 1779.31,940.147 \n",
       "  1780.21,939.914 1781.1,939.681 1781.99,939.445 1782.89,939.208 1783.78,938.97 1784.68,938.73 1785.57,938.49 1786.47,938.248 1787.36,938.007 1788.26,937.764 \n",
       "  1789.15,937.522 1790.05,937.279 1790.94,937.036 1791.84,936.793 1792.73,936.55 1793.62,936.308 1794.52,936.067 1795.41,935.826 1796.31,935.586 1797.2,935.348 \n",
       "  1798.1,935.11 1798.99,934.874 1799.89,934.639 1800.78,934.406 1801.68,934.175 1802.57,933.945 1803.47,933.718 1804.36,933.493 1805.25,933.27 1806.15,933.049 \n",
       "  1807.04,932.831 1807.94,932.616 1808.83,932.403 1809.73,932.194 1810.62,931.987 1811.52,931.784 1812.41,931.584 1813.31,931.387 1814.2,931.194 1815.1,931.004 \n",
       "  1815.99,930.818 1816.88,930.636 1817.78,930.458 1818.67,930.284 1819.57,930.113 1820.46,929.947 1821.36,929.785 1822.25,929.628 1823.15,929.475 1824.04,929.326 \n",
       "  1824.94,929.182 1825.83,929.042 1826.73,928.907 1827.62,928.777 1828.51,928.651 1829.41,928.53 1830.3,928.414 1831.2,928.303 1832.09,928.197 1832.99,928.096 \n",
       "  1833.88,928 1834.78,927.909 1835.67,927.824 1836.57,927.743 1837.46,927.667 1838.35,927.597 1839.25,927.531 1840.14,927.471 1841.04,927.416 1841.93,927.367 \n",
       "  1842.83,927.322 1843.72,927.283 1844.62,927.248 1845.51,927.219 1846.41,927.195 1847.3,927.177 1848.2,927.163 1849.09,927.155 1849.98,927.151 1850.88,927.153 \n",
       "  1851.77,927.159 1852.67,927.171 1853.56,927.187 1854.46,927.209 1855.35,927.235 1856.25,927.266 1857.14,927.302 1858.04,927.343 1858.93,927.388 1859.83,927.438 \n",
       "  1860.72,927.493 1861.61,927.552 1862.51,927.615 1863.4,927.683 1864.3,927.755 1865.19,927.831 1866.09,927.911 1866.98,927.996 1867.88,928.084 1868.77,928.176 \n",
       "  1869.67,928.272 1870.56,928.372 1871.46,928.476 1872.35,928.583 1873.24,928.694 1874.14,928.807 1875.03,928.925 1875.93,929.045 1876.82,929.169 1877.72,929.295 \n",
       "  1878.61,929.425 1879.51,929.557 1880.4,929.692 1881.3,929.829 1882.19,929.969 1883.09,930.112 1883.98,930.256 1884.87,930.403 1885.77,930.552 1886.66,930.703 \n",
       "  1887.56,930.856 1888.45,931.01 1889.35,931.166 1890.24,931.324 1891.14,931.483 1892.03,931.644 1892.93,931.805 1893.82,931.968 1894.72,932.131 1895.61,932.296 \n",
       "  1896.5,932.461 1897.4,932.627 1898.29,932.794 1899.19,932.96 1900.08,933.128 1900.98,933.295 1901.87,933.462 1902.77,933.63 1903.66,933.797 1904.56,933.964 \n",
       "  1905.45,934.131 1906.35,934.297 1907.24,934.463 1908.13,934.628 1909.03,934.793 1909.92,934.956 1910.82,935.119 1911.71,935.28 1912.61,935.441 1913.5,935.6 \n",
       "  1914.4,935.758 1915.29,935.914 1916.19,936.069 1917.08,936.222 1917.98,936.374 1918.87,936.523 1919.76,936.671 1920.66,936.817 1921.55,936.961 1922.45,937.103 \n",
       "  1923.34,937.242 1924.24,937.38 1925.13,937.515 1926.03,937.647 1926.92,937.777 1927.82,937.905 1928.71,938.03 1929.61,938.152 1930.5,938.271 1931.39,938.388 \n",
       "  1932.29,938.502 1933.18,938.613 1934.08,938.721 1934.97,938.825 1935.87,938.927 1936.76,939.026 1937.66,939.121 1938.55,939.213 1939.45,939.302 1940.34,939.388 \n",
       "  1941.24,939.47 1942.13,939.549 1943.02,939.625 1943.92,939.697 1944.81,939.766 1945.71,939.831 1946.6,939.893 1947.5,939.951 1948.39,940.006 1949.29,940.057 \n",
       "  1950.18,940.105 1951.08,940.149 1951.97,940.189 1952.87,940.226 1953.76,940.26 1954.65,940.29 1955.55,940.316 1956.44,940.338 1957.34,940.358 1958.23,940.373 \n",
       "  1959.13,940.385 1960.02,940.394 1960.92,940.399 1961.81,940.4 1962.71,940.398 1963.6,940.393 1964.5,940.384 1965.39,940.371 1966.28,940.356 1967.18,940.337 \n",
       "  1968.07,940.314 1968.97,940.289 1969.86,940.26 1970.76,940.228 1971.65,940.193 1972.55,940.154 1973.44,940.113 1974.34,940.068 1975.23,940.021 1976.12,939.971 \n",
       "  1977.02,939.917 1977.91,939.861 1978.81,939.802 1979.7,939.741 1980.6,939.676 1981.49,939.609 1982.39,939.54 1983.28,939.468 1984.18,939.393 1985.07,939.317 \n",
       "  1985.97,939.238 1986.86,939.156 1987.75,939.073 1988.65,938.987 1989.54,938.899 1990.44,938.809 1991.33,938.718 1992.23,938.624 1993.12,938.529 1994.02,938.432 \n",
       "  1994.91,938.333 1995.81,938.233 1996.7,938.132 1997.6,938.029 1998.49,937.924 1999.38,937.819 2000.28,937.712 2001.17,937.604 2002.07,937.495 2002.96,937.385 \n",
       "  2003.86,937.274 2004.75,937.163 2005.65,937.051 2006.54,936.938 2007.44,936.824 2008.33,936.71 2009.23,936.596 2010.12,936.481 2011.01,936.366 2011.91,936.25 \n",
       "  2012.8,936.135 2013.7,936.02 2014.59,935.904 2015.49,935.789 2016.38,935.674 2017.28,935.559 2018.17,935.444 2019.07,935.33 2019.96,935.217 2020.86,935.103 \n",
       "  2021.75,934.991 2022.64,934.879 2023.54,934.768 2024.43,934.657 2025.33,934.548 2026.22,934.439 2027.12,934.332 2028.01,934.225 2028.91,934.12 2029.8,934.016 \n",
       "  2030.7,933.913 2031.59,933.811 2032.49,933.711 2033.38,933.612 2034.27,933.515 2035.17,933.419 2036.06,933.325 2036.96,933.232 2037.85,933.141 2038.75,933.052 \n",
       "  2039.64,932.965 2040.54,932.879 2041.43,932.796 2042.33,932.714 2043.22,932.634 2044.12,932.556 2045.01,932.48 2045.9,932.406 2046.8,932.335 2047.69,932.265 \n",
       "  2048.59,932.198 2049.48,932.132 2050.38,932.069 2051.27,932.009 2052.17,931.95 2053.06,931.894 2053.96,931.84 2054.85,931.789 2055.75,931.74 2056.64,931.693 \n",
       "  2057.53,931.648 2058.43,931.606 2059.32,931.567 2060.22,931.53 2061.11,931.495 2062.01,931.463 2062.9,931.433 2063.8,931.406 2064.69,931.381 2065.59,931.359 \n",
       "  2066.48,931.339 2067.38,931.321 2068.27,931.306 2069.16,931.294 2070.06,931.284 2070.95,931.276 2071.85,931.271 2072.74,931.268 2073.64,931.268 2074.53,931.27 \n",
       "  2075.43,931.274 2076.32,931.281 2077.22,931.29 2078.11,931.301 2079.01,931.315 2079.9,931.331 2080.79,931.349 2081.69,931.37 2082.58,931.392 2083.48,931.417 \n",
       "  2084.37,931.444 2085.27,931.473 2086.16,931.505 2087.06,931.538 2087.95,931.573 2088.85,931.61 2089.74,931.65 2090.64,931.691 2091.53,931.734 2092.42,931.778 \n",
       "  2093.32,931.825 2094.21,931.873 2095.11,931.924 2096,931.975 2096.9,932.029 2097.79,932.084 2098.69,932.14 2099.58,932.198 2100.48,932.258 2101.37,932.318 \n",
       "  2102.27,932.381 2103.16,932.444 2104.05,932.509 2104.95,932.575 2105.84,932.642 2106.74,932.71 2107.63,932.779 2108.53,932.85 2109.42,932.921 2110.32,932.993 \n",
       "  2111.21,933.066 2112.11,933.14 2113,933.215 2113.89,933.29 2114.79,933.366 2115.68,933.442 2116.58,933.519 2117.47,933.597 2118.37,933.675 2119.26,933.753 \n",
       "  2120.16,933.832 2121.05,933.911 2121.95,933.99 2122.84,934.069 2123.74,934.149 2124.63,934.229 2125.52,934.308 2126.42,934.388 2127.31,934.467 2128.21,934.546 \n",
       "  2129.1,934.626 2130,934.704 2130.89,934.783 2131.79,934.861 2132.68,934.939 2133.58,935.017 2134.47,935.094 2135.37,935.17 2136.26,935.246 2137.15,935.321 \n",
       "  2138.05,935.396 2138.94,935.47 2139.84,935.543 2140.73,935.616 2141.63,935.687 2142.52,935.758 2143.42,935.828 2144.31,935.897 2145.21,935.964 2146.1,936.031 \n",
       "  2147,936.097 2147.89,936.162 2148.78,936.225 2149.68,936.288 2150.57,936.349 2151.47,936.409 2152.36,936.467 2153.26,936.525 2154.15,936.581 2155.05,936.636 \n",
       "  2155.94,936.689 2156.84,936.741 2157.73,936.791 2158.63,936.84 2159.52,936.888 2160.41,936.934 2161.31,936.979 2162.2,937.022 2163.1,937.063 2163.99,937.103 \n",
       "  2164.89,937.141 2165.78,937.178 2166.68,937.213 2167.57,937.246 2168.47,937.278 2169.36,937.308 2170.26,937.337 2171.15,937.364 2172.04,937.389 2172.94,937.412 \n",
       "  2173.83,937.434 2174.73,937.454 2175.62,937.473 2176.52,937.489 2177.41,937.504 2178.31,937.517 2179.2,937.529 2180.1,937.539 2180.99,937.547 2181.89,937.554 \n",
       "  2182.78,937.558 2183.67,937.562 2184.57,937.563 2185.46,937.563 2186.36,937.561 2187.25,937.558 2188.15,937.553 2189.04,937.546 2189.94,937.538 2190.83,937.528 \n",
       "  2191.73,937.516 2192.62,937.503 2193.52,937.489 2194.41,937.473 2195.3,937.455 2196.2,937.436 2197.09,937.416 2197.99,937.394 2198.88,937.371 2199.78,937.346 \n",
       "  2200.67,937.32 2201.57,937.293 2202.46,937.264 2203.36,937.234 2204.25,937.203 2205.15,937.171 2206.04,937.137 2206.93,937.102 2207.83,937.066 2208.72,937.029 \n",
       "  2209.62,936.991 2210.51,936.952 2211.41,936.911 2212.3,936.87 2213.2,936.828 2214.09,936.785 2214.99,936.741 2215.88,936.696 2216.78,936.65 2217.67,936.604 \n",
       "  2218.56,936.557 2219.46,936.509 2220.35,936.46 2221.25,936.411 2222.14,936.361 2223.04,936.31 2223.93,936.259 2224.83,936.208 2225.72,936.156 2226.62,936.103 \n",
       "  2227.51,936.051 2228.41,935.997 2229.3,935.944 2230.19,935.89 2231.09,935.836 2231.98,935.782 2232.88,935.727 2233.77,935.673 2234.67,935.618 2235.56,935.563 \n",
       "  2236.46,935.508 2237.35,935.453 2238.25,935.399 2239.14,935.344 2240.04,935.289 2240.93,935.235 2241.82,935.18 2242.72,935.126 2243.61,935.072 2244.51,935.019 \n",
       "  2245.4,934.965 2246.3,934.912 2247.19,934.86 2248.09,934.808 2248.98,934.756 2249.88,934.704 2250.77,934.654 2251.66,934.603 2252.56,934.554 2253.45,934.504 \n",
       "  2254.35,934.456 2255.24,934.408 2256.14,934.361 2257.03,934.314 2257.93,934.268 2258.82,934.223 2259.72,934.179 2260.61,934.135 2261.51,934.092 2262.4,934.05 \n",
       "  2263.29,934.009 2264.19,933.969 2265.08,933.93 2265.98,933.891 2266.87,933.854 2267.77,933.817 2268.66,933.782 2269.56,933.747 2270.45,933.714 2271.35,933.681 \n",
       "  2272.24,933.65 2273.14,933.619 2274.03,933.59 2274.92,933.561 2275.82,933.534 2276.71,933.508 2277.61,933.483 2278.5,933.459 2279.4,933.437 2280.29,933.415 \n",
       "  2281.19,933.394 2282.08,933.375 2282.98,933.357 2283.87,933.34 2284.77,933.324 2285.66,933.309 2286.55,933.296 2287.45,933.283 2288.34,933.272 2289.24,933.262 \n",
       "  2290.13,933.253 2291.03,933.246 2291.92,933.239 2292.82,933.234 2293.71,933.23 2294.61,933.227 2295.5,933.225 2296.4,933.224 2297.29,933.224 2298.18,933.226 \n",
       "  2299.08,933.229 \n",
       "  \"/>\n",
       "<path clip-path=\"url(#clip7600)\" d=\"\n",
       "M1746.47 568.075 L2280.76 568.075 L2280.76 205.195 L1746.47 205.195  Z\n",
       "  \" fill=\"#ffffff\" fill-rule=\"evenodd\" fill-opacity=\"1\"/>\n",
       "<polyline clip-path=\"url(#clip7600)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  1746.47,568.075 2280.76,568.075 2280.76,205.195 1746.47,205.195 1746.47,568.075 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip7600)\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  1770.47,265.675 1914.47,265.675 \n",
       "  \"/>\n",
       "<g clip-path=\"url(#clip7600)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:start;\" transform=\"rotate(0, 1938.47, 283.175)\" x=\"1938.47\" y=\"283.175\">Lattice size: 1</text>\n",
       "</g>\n",
       "<polyline clip-path=\"url(#clip7600)\" style=\"stroke:#e26f46; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  1770.47,326.155 1914.47,326.155 \n",
       "  \"/>\n",
       "<g clip-path=\"url(#clip7600)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:start;\" transform=\"rotate(0, 1938.47, 343.655)\" x=\"1938.47\" y=\"343.655\">Lattice size: 2</text>\n",
       "</g>\n",
       "<polyline clip-path=\"url(#clip7600)\" style=\"stroke:#3da44d; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  1770.47,386.635 1914.47,386.635 \n",
       "  \"/>\n",
       "<g clip-path=\"url(#clip7600)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:start;\" transform=\"rotate(0, 1938.47, 404.135)\" x=\"1938.47\" y=\"404.135\">Lattice size: 3</text>\n",
       "</g>\n",
       "<polyline clip-path=\"url(#clip7600)\" style=\"stroke:#c271d2; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  1770.47,447.115 1914.47,447.115 \n",
       "  \"/>\n",
       "<g clip-path=\"url(#clip7600)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:start;\" transform=\"rotate(0, 1938.47, 464.615)\" x=\"1938.47\" y=\"464.615\">Lattice size: 4</text>\n",
       "</g>\n",
       "<polyline clip-path=\"url(#clip7600)\" style=\"stroke:#ac8d18; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  1770.47,507.595 1914.47,507.595 \n",
       "  \"/>\n",
       "<g clip-path=\"url(#clip7600)\">\n",
       "<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:start;\" transform=\"rotate(0, 1938.47, 525.095)\" x=\"1938.47\" y=\"525.095\">Lattice size: 5</text>\n",
       "</g>\n",
       "</svg>\n"
      ]
     },
     "execution_count": 885,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "plot()\n",
    "for i in 1:5\n",
    "    plot!(1:step:numTimeStepsRecorded,DDisplacements[i],label=\"Lattice size: $i\",xlabel=\"timestep\",ylabel=\"displacement\",title=\"Dynamic Model Convergence\")\n",
    "\n",
    "end\n",
    "plot!()\n",
    "# savefig(\"dynamic_convergence\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "@webio": {
   "lastCommId": null,
   "lastKernelId": null
  },
  "kernelspec": {
   "display_name": "Julia 1.2.0",
   "language": "julia",
   "name": "julia-1.2"
  },
  "language_info": {
   "file_extension": ".jl",
   "mimetype": "application/julia",
   "name": "julia",
   "version": "1.2.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}