Skip to content

Instantly share code, notes, and snippets.

@lion137
Last active November 29, 2016 14:36
Show Gist options
  • Select an option

  • Save lion137/a7b5662c564abab20d6d81af6d659d5c to your computer and use it in GitHub Desktop.

Select an option

Save lion137/a7b5662c564abab20d6d81af6d659d5c to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Jupyter CPU Profilling"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's check the implementation of an AVl Tree (https://bitbucket.org/snippets/lion137/88nLq)"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import AVL_tree as tr"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As a tool I will use python cProfiler; creating and make an instance of a profiler class:"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import cProfile"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import pstats"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"profiler = cProfile.Profile()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Test file now: creating symbole table with milion ints.\n"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Overwriting tree_tests.py\n"
]
}
],
"source": [
"%%writefile tree_tests.py\n",
"import random\n",
"\n",
"def test():\n",
" t1 = tr.BinarySearchTree()\n",
" for _ in range(int(1e6)):\n",
" t1[str(_)] = _\n",
" #for _ in range(int(1e5)):\n",
" #t1.get(random.randint(-10000, 10000))\n",
"\n",
"if __name__ == '__main__':\n",
" test()\n"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# %load test file now\n",
"import random\n",
"\n",
"def test():\n",
" t1 = tr.BinarySearchTree()\n",
" for _ in range(int(1e6)):\n",
" t1[str(_)] = _\n",
" #for _ in range(int(1e5)):\n",
" #t1.get(random.randint(-10000, 10000))\n",
"\n",
"if __name__ == '__main__':\n",
" test()"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"profiler = cProfile.Profile() # make an instance"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"profiler.runcall(test) # profiler's doing the job..."
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" 61854400 function calls (38691689 primitive calls) in 40.765 seconds\n",
"\n",
" Ordered by: standard name\n",
"\n",
" ncalls tottime percall cumtime percall filename:lineno(function)\n",
" 1 1.360 1.360 40.765 40.765 <ipython-input-20-917dc017f4b6>:4(test)\n",
" 1000000 0.797 0.000 0.797 0.000 AVL_tree.py:10(__init__)\n",
" 1000000 0.478 0.000 39.405 0.000 AVL_tree.py:111(__setitem__)\n",
" 1000000 0.722 0.000 38.927 0.000 AVL_tree.py:114(put)\n",
"21140998/999999 18.283 0.000 38.205 0.000 AVL_tree.py:122(_put)\n",
" 898233 2.148 0.000 7.959 0.000 AVL_tree.py:142(rotateLeft)\n",
" 352954 0.831 0.000 1.201 0.000 AVL_tree.py:170(rotateRight)\n",
"4021711/999999 5.019 0.000 16.360 0.000 AVL_tree.py:197(updateBalance)\n",
" 6218045 0.849 0.000 0.849 0.000 AVL_tree.py:21(hasLeftChild)\n",
" 919456 0.755 0.000 9.914 0.000 AVL_tree.py:211(rebalance)\n",
" 14922953 1.915 0.000 1.915 0.000 AVL_tree.py:24(hasRightChild)\n",
" 4353400 1.194 0.000 1.194 0.000 AVL_tree.py:27(isLeftChild)\n",
" 2273086 0.569 0.000 0.569 0.000 AVL_tree.py:30(isRightChild)\n",
" 1251187 0.214 0.000 0.214 0.000 AVL_tree.py:33(isRoot)\n",
" 1 0.000 0.000 0.000 0.000 AVL_tree.py:98(__init__)\n",
" 1251187 0.366 0.000 0.366 0.000 {built-in method builtins.max}\n",
" 1251187 5.266 0.000 5.266 0.000 {built-in method builtins.min}\n",
" 1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects}\n",
"\n",
"\n"
]
}
],
"source": [
"profiler.print_stats() # and printing stats"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" There is lots calls to updatebalance, also, built in min consumes 4.915."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can, also, make nice visualization via snakeviz (pip install snakeviz) "
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"profiler2 = cProfile.Profile()"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"profiler2.runcall(test)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"stats = pstats.Stats('tree_tests.stats') # stats in file for later"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Snakeviz is starting in new tab and it's look like (in real is interactive):"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"snakeviz web server started on 127.0.0.1:8080; enter Ctrl-C to exit\n",
"http://127.0.0.1:8080/snakeviz/%2Fhome%2Flion%2Fprojects%2Fpython%2Fnotebooks%2Fblog_and_notes%2Fprofiling%2Ftree_tests.stats\n",
"^C\n",
"Bye!\n",
"\n"
]
}
],
"source": [
"! snakeviz tree_tests.stats"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from IPython.display import HTML, display"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<!DOCTYPE html>\n",
"<html><head>\n",
"<meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\">\n",
"<meta charset=\"utf-8\" .=\"\">\n",
"<title>tree_tests</title>\n",
"<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n",
"<link href=\"tree_tests_files/snakeviz.css\" rel=\"stylesheet\">\n",
"<!-- DataTables CSS -->\n",
"<link href=\"tree_tests_files/jquery.css\" rel=\"stylesheet\">\n",
"<link rel=\"stylesheet\" type=\"text/css\" href=\"tree_tests_files/socialwidgets.css\"></head>\n",
"<body>\n",
"<h1 id=\"snakeviz-text\">SnakeViz</h1>\n",
"<!-- reset button -->\n",
"<button id=\"resetbutton\" disabled=\"True\">Reset</button>\n",
"<!-- style select -->\n",
"<label id=\"sv-style-label\">Style:\n",
"<select name=\"sv-style\" id=\"sv-style-select\">\n",
"<option value=\"sunburst\" selected=\"selected\">Sunburst</option>\n",
"<option value=\"icicle\">Icicle</option>\n",
"</select>\n",
"</label>\n",
"<!-- depth select -->\n",
"<label id=\"sv-depth-label\">Depth:\n",
"<select name=\"sv-depth\" id=\"sv-depth-select\">\n",
"\n",
"<option value=\"3\">3</option>\n",
"\n",
"<option value=\"5\" selected=\"selected\">5</option>\n",
"\n",
"<option value=\"10\">10</option>\n",
"\n",
"<option value=\"15\">15</option>\n",
"\n",
"<option value=\"20\">20</option>\n",
"\n",
"</select>\n",
"</label>\n",
"<!-- cutoff select -->\n",
"<label id=\"sv-cutoff-label\">Cutoff:\n",
"<select name=\"sv-cutoff\" id=\"sv-cutoff-select\">\n",
"<option value=\"0.001\" selected=\"selected\">1 ⁄ 1000</option>\n",
"<option value=\"0.01\">1 ⁄ 100</option>\n",
"<option value=\"0\">None</option>\n",
"</select>\n",
"</label>\n",
"<!-- information div -->\n",
"<div id=\"sv-info-div\" class=\"sunburst\" style=\"height: 463.8px; width: 411.714px; display: none;\"><div class=\"sv-info-label\">Name:</div>\n",
"<div class=\"sv-info-item\">acquire</div>\n",
"<div class=\"sv-info-label\">Cumulative Time:</div>\n",
"<div class=\"sv-info-item\">0.0000310 s (0.53 %)</div>\n",
"<div class=\"sv-info-label\">File:</div>\n",
"<div class=\"sv-info-item\">&lt;frozen importlib._bootstrap&gt;</div>\n",
"<div class=\"sv-info-label\">Line:</div>\n",
"<div class=\"sv-info-item\">94</div>\n",
"<div class=\"sv-info-label\">Directory:</div>\n",
"<div class=\"sv-info-item\"></div></div>\n",
"<!-- call stack -->\n",
"<div id=\"sv-call-stack\">\n",
"<div id=\"working-spinner\" class=\"spinner\" style=\"display: none;\">\n",
"<div class=\"bounce1\"></div>\n",
"<div class=\"bounce2\"></div>\n",
"<div class=\"bounce3\"></div>\n",
"</div>\n",
"<div style=\"display: inline-block;\">\n",
"<button id=\"sv-call-stack-btn\">Call Stack</button>\n",
"</div>\n",
"<div id=\"sv-call-stack-list\"><div><span>0.&nbsp;</span><span>~:0(&lt;built-in method builtins.exec&gt;)</span></div></div>\n",
"</div>\n",
"<!-- Error message -->\n",
"<div id=\"sv-error-div\" class=\"sv-error-msg\">\n",
"<p>\n",
"An error occurred processing your profile.\n",
"You can try a lower depth, a larger cutoff,\n",
"or try profiling a smaller portion of your code.\n",
"If you continue to have problems you can\n",
"<a href=\"https://github.com/jiffyclub/snakeviz/issues\">\n",
"contact us on GitHub</a>.\n",
"</p>\n",
"<div id=\"sv-error-close-div\" class=\"sv-error-close\">Close</div>\n",
"</div>\n",
"<!-- vis -->\n",
"<div style=\"text-align: center;\">\n",
"<div id=\"chart\" style=\"margin-left: auto; margin-right: auto;\"><svg width=\"618.4000000000001\" height=\"618.4000000000001\"><g id=\"container\" transform=\"translate(309.20000000000005,309.20000000000005)\"><circle r=\"309.20000000000005\" style=\"opacity: 0;\"></circle><path id=\"path-0\" d=\"M0,51.533333333333346A51.533333333333346,51.533333333333346 0 1,1 0,-51.533333333333346A51.533333333333346,51.533333333333346 0 1,1 0,51.533333333333346Z\" fill-rule=\"evenodd\" style=\"fill: rgb(49, 130, 189); stroke: rgb(255, 255, 255);\"></path><path id=\"path-1\" d=\"M41.83879514251229,94.19263771017708A103.06666666666669,103.06666666666669 0 0,1 -96.65260602024229,-35.79122137163815L-48.326303010121144,-17.895610685819076A51.533333333333346,51.533333333333346 0 0,0 20.919397571256145,47.09631885508854Z\" fill-rule=\"evenodd\" style=\"fill: rgb(107, 174, 214); stroke: rgb(255, 255, 255);\"></path><path id=\"path-2\" d=\"M-153.58258993077342,-17.70728861672214A154.60000000000002,154.60000000000002 0 0,1 -150.43613211503674,-35.638885424031095L-100.29075474335784,-23.759256949354068A103.06666666666669,103.06666666666669 0 0,0 -102.3883932871823,-11.804859077814761Z\" fill-rule=\"evenodd\" style=\"fill: rgb(158, 202, 225); stroke: rgb(255, 255, 255);\"></path><path id=\"path-3\" d=\"M-204.7767865743646,-23.609718155629523A206.13333333333338,206.13333333333338 0 0,1 -200.67003126380004,-47.14328863896372L-150.50252344785002,-35.35746647922278A154.60000000000002,154.60000000000002 0 0,0 -153.58258993077342,-17.70728861672214Z\" fill-rule=\"evenodd\" style=\"fill: rgb(198, 219, 239); stroke: rgb(255, 255, 255);\"></path><path id=\"path-4\" d=\"M-251.53537463160436,-55.87545453998174A257.6666666666667,257.6666666666667 0 0,1 -251.11033012287,-57.75563363598711L-200.88826409829605,-46.204506908789696A206.13333333333338,206.13333333333338 0 0,0 -201.22829970528352,-44.7003636319854Z\" fill-rule=\"evenodd\" style=\"fill: rgb(230, 85, 13); stroke: rgb(255, 255, 255);\"></path><path id=\"path-5\" d=\"M-255.9709832179557,-29.512147694536896A257.6666666666667,257.6666666666667 0 0,1 -252.0468809821357,-53.52084545565631L-201.6375047857086,-42.81667636452505A206.13333333333338,206.13333333333338 0 0,0 -204.7767865743646,-23.609718155629523Z\" fill-rule=\"evenodd\" style=\"fill: rgb(253, 141, 60); stroke: rgb(255, 255, 255);\"></path><path id=\"path-6\" d=\"M-252.0468809821357,-53.52084545565631A257.6666666666667,257.6666666666667 0 0,1 -251.53537463160436,-55.87545453998174L-201.22829970528352,-44.7003636319854A206.13333333333338,206.13333333333338 0 0,0 -201.6375047857086,-42.81667636452505Z\" fill-rule=\"evenodd\" style=\"fill: rgb(198, 219, 239); stroke: rgb(255, 255, 255);\"></path><path id=\"path-7\" d=\"M-150.43613211503674,-35.638885424031095A154.60000000000002,154.60000000000002 0 0,1 -148.03512060467975,-44.573120460182395L-98.69008040311984,-29.7154136401216A103.06666666666669,103.06666666666669 0 0,0 -100.29075474335784,-23.759256949354068Z\" fill-rule=\"evenodd\" style=\"fill: rgb(253, 174, 107); stroke: rgb(255, 255, 255);\"></path><path id=\"path-8\" d=\"M-198.1146879458162,-56.934361603894274A206.13333333333338,206.13333333333338 0 0,1 -197.57361912615028,-58.78448891081756L-148.1802143446127,-44.088366683113165A154.60000000000002,154.60000000000002 0 0,0 -148.58601595936216,-42.7007712029207Z\" fill-rule=\"evenodd\" style=\"fill: rgb(253, 208, 162); stroke: rgb(255, 255, 255);\"></path><path id=\"path-9\" d=\"M-200.58150948671567,-47.518513898708136A206.13333333333338,206.13333333333338 0 0,1 -198.1146879458162,-56.934361603894274L-148.58601595936216,-42.7007712029207A154.60000000000002,154.60000000000002 0 0,0 -150.43613211503674,-35.638885424031095Z\" fill-rule=\"evenodd\" style=\"fill: rgb(253, 174, 107); stroke: rgb(255, 255, 255);\"></path><path id=\"path-10\" d=\"M62.75819271376843,141.2889565652656A154.60000000000002,154.60000000000002 0 0,1 -153.58258993077342,-17.70728861672214L-102.3883932871823,-11.804859077814761A103.06666666666669,103.06666666666669 0 0,0 41.83879514251229,94.19263771017708Z\" fill-rule=\"evenodd\" style=\"fill: rgb(49, 163, 84); stroke: rgb(255, 255, 255);\"></path><path id=\"path-11\" d=\"M-205.17768290415694,-19.825981670332357A206.13333333333338,206.13333333333338 0 0,1 -204.8754991511529,-22.737215279736308L-153.65662436336467,-17.052911459802228A154.60000000000002,154.60000000000002 0 0,0 -153.8832621781177,-14.869486252749267Z\" fill-rule=\"evenodd\" style=\"fill: rgb(116, 196, 118); stroke: rgb(255, 255, 255);\"></path><path id=\"path-12\" d=\"M-256.47210363019616,-24.782477087915446A257.6666666666667,257.6666666666667 0 0,1 -256.1838675869662,-27.60320813410842L-204.94709406957296,-22.082566507286742A206.13333333333338,206.13333333333338 0 0,0 -205.17768290415694,-19.825981670332357Z\" fill-rule=\"evenodd\" style=\"fill: rgb(161, 217, 155); stroke: rgb(255, 255, 255);\"></path><path id=\"path-13\" d=\"M-307.7665243562354,-29.738972505498534A309.20000000000005,309.20000000000005 0 0,1 -307.46736393845373,-32.68730812927979L-256.22280328204477,-27.239423441066492A257.6666666666667,257.6666666666667 0 0,0 -256.47210363019616,-24.782477087915446Z\" fill-rule=\"evenodd\" style=\"fill: rgb(161, 217, 155); stroke: rgb(255, 255, 255);\"></path><path id=\"path-14\" d=\"M83.67759028502458,188.38527542035416A206.13333333333338,206.13333333333338 0 0,1 -205.81991030222397,-11.362906067358344L-154.36493272666797,-8.522179550518757A154.60000000000002,154.60000000000002 0 0,0 62.75819271376843,141.2889565652656Z\" fill-rule=\"evenodd\" style=\"fill: rgb(199, 233, 192); stroke: rgb(255, 255, 255);\"></path><path id=\"path-15\" d=\"M-232.229921664802,111.63052716291837A257.6666666666667,257.6666666666667 0 0,1 -257.29484148978617,-13.837472813232326L-205.83587319182894,-11.069978250585862A206.13333333333338,206.13333333333338 0 0,0 -185.78393733184163,89.30442173033471Z\" fill-rule=\"evenodd\" style=\"fill: rgb(117, 107, 177); stroke: rgb(255, 255, 255);\"></path><path id=\"path-16\" d=\"M-308.9923517043033,-11.329897980305953A309.20000000000005,309.20000000000005 0 0,1 -308.9191099674046,-13.17662691839547L-257.43259163950387,-10.980522431996226A257.6666666666667,257.6666666666667 0 0,0 -257.4936264202528,-9.44158165025496Z\" fill-rule=\"evenodd\" style=\"fill: rgb(158, 154, 200); stroke: rgb(255, 255, 255);\"></path><path id=\"path-17\" d=\"M-278.6759059977624,133.95663259550204A309.20000000000005,309.20000000000005 0 0,1 -309.1749013049916,-3.9395942746356285L-257.64575108749295,-3.2829952288630233A257.6666666666667,257.6666666666667 0 0,0 -232.229921664802,111.63052716291837Z\" fill-rule=\"evenodd\" style=\"fill: rgb(188, 189, 220); stroke: rgb(255, 255, 255);\"></path><path id=\"path-18\" d=\"M-309.1749013049916,-3.9395942746356285A309.20000000000005,309.20000000000005 0 0,1 -308.9923517043033,-11.329897980305953L-257.4936264202528,-9.44158165025496A257.6666666666667,257.6666666666667 0 0,0 -257.64575108749295,-3.2829952288630233Z\" fill-rule=\"evenodd\" style=\"fill: rgb(117, 107, 177); stroke: rgb(255, 255, 255);\"></path><path id=\"path-19\" d=\"M104.5969878562807,235.48159427544266A257.6666666666667,257.6666666666667 0 0,1 -232.229921664802,111.63052716291837L-185.78393733184163,89.30442173033471A206.13333333333338,206.13333333333338 0 0,0 83.67759028502458,188.38527542035416Z\" fill-rule=\"evenodd\" style=\"fill: rgb(218, 218, 235); stroke: rgb(255, 255, 255);\"></path><path id=\"path-20\" d=\"M-276.4968840339537,138.39838553796213A309.20000000000005,309.20000000000005 0 0,1 -277.6871033714197,135.99453158561371L-231.40591947618307,113.32877632134476A257.6666666666667,257.6666666666667 0 0,0 -230.4140700282947,115.33198794830176Z\" fill-rule=\"evenodd\" style=\"fill: rgb(99, 99, 99); stroke: rgb(255, 255, 255);\"></path><path id=\"path-21\" d=\"M-176.76639012232303,253.6893441260841A309.20000000000005,309.20000000000005 0 0,1 -276.4968840339537,138.39838553796213L-230.4140700282947,115.33198794830176A257.6666666666667,257.6666666666667 0 0,0 -147.30532510193586,211.40778677173674Z\" fill-rule=\"evenodd\" style=\"fill: rgb(150, 150, 150); stroke: rgb(255, 255, 255);\"></path><path id=\"path-22\" d=\"M125.51638542753686,282.5779131305312A309.20000000000005,309.20000000000005 0 0,1 -176.76639012232303,253.6893441260841L-147.30532510193586,211.40778677173674A257.6666666666667,257.6666666666667 0 0,0 104.5969878562807,235.48159427544266Z\" fill-rule=\"evenodd\" style=\"fill: rgb(189, 189, 189); stroke: rgb(255, 255, 255);\"></path><path id=\"path-23\" d=\"M-205.81991030222397,-11.362906067358344A206.13333333333338,206.13333333333338 0 0,1 -205.17768290415694,-19.825981670332357L-153.8832621781177,-14.869486252749267A154.60000000000002,154.60000000000002 0 0,0 -154.36493272666797,-8.522179550518757Z\" fill-rule=\"evenodd\" style=\"fill: rgb(217, 217, 217); stroke: rgb(255, 255, 255);\"></path><path id=\"path-24\" d=\"M-256.9140418371066,-19.679588868483858A257.6666666666667,257.6666666666667 0 0,1 -256.68193146693204,-22.505491985653872L-205.34554517354564,-18.0043935885231A206.13333333333338,206.13333333333338 0 0,0 -205.53123346968533,-15.74367109478709Z\" fill-rule=\"evenodd\" style=\"fill: rgb(49, 130, 189); stroke: rgb(255, 255, 255);\"></path><path id=\"path-25\" d=\"M-308.29685020452797,-23.61550664218063A309.20000000000005,309.20000000000005 0 0,1 -308.01831776031844,-27.006590382784648L-256.68193146693204,-22.505491985653872A257.6666666666667,257.6666666666667 0 0,0 -256.9140418371066,-19.679588868483858Z\" fill-rule=\"evenodd\" style=\"fill: rgb(49, 130, 189); stroke: rgb(255, 255, 255);\"></path><path id=\"path-26\" d=\"M-257.2748878777799,-14.203632584197926A257.6666666666667,257.6666666666667 0 0,1 -256.9140418371066,-19.679588868483858L-205.53123346968533,-15.74367109478709A206.13333333333338,206.13333333333338 0 0,0 -205.81991030222397,-11.362906067358344Z\" fill-rule=\"evenodd\" style=\"fill: rgb(107, 174, 214); stroke: rgb(255, 255, 255);\"></path><path id=\"path-27\" d=\"M-308.47938066983,-21.097670524447206A309.20000000000005,309.20000000000005 0 0,1 -308.29685020452797,-23.615506642180357L-256.9140418371066,-19.679588868483627A257.6666666666667,257.6666666666667 0 0,0 -257.0661505581917,-17.581392103706005Z\" fill-rule=\"evenodd\" style=\"fill: rgb(158, 202, 225); stroke: rgb(255, 255, 255);\"></path><path id=\"path-28\" d=\"M-308.72986545333595,-17.044359101037514A309.20000000000005,309.20000000000005 0 0,1 -308.47938066983,-21.097670524447206L-257.0661505581917,-17.581392103706005A257.6666666666667,257.6666666666667 0 0,0 -257.2748878777799,-14.203632584197926Z\" fill-rule=\"evenodd\" style=\"fill: rgb(107, 174, 214); stroke: rgb(255, 255, 255);\"></path><path id=\"path-29\" d=\"M-256.68193146693204,-22.505491985653872A257.6666666666667,257.6666666666667 0 0,1 -256.4808846676679,-24.691433964060362L-205.18470773413435,-19.753147171248294A206.13333333333338,206.13333333333338 0 0,0 -205.34554517354564,-18.0043935885231Z\" fill-rule=\"evenodd\" style=\"fill: rgb(217, 217, 217); stroke: rgb(255, 255, 255);\"></path><path id=\"path-30\" d=\"M-145.76592401702172,-51.51170153920227A154.60000000000002,154.60000000000002 0 0,1 -145.12895194173296,-53.279895911067335L-96.75263462782199,-35.51993060737823A103.06666666666669,103.06666666666669 0 0,0 -97.17728267801449,-34.341134359468185Z\" fill-rule=\"evenodd\" style=\"fill: rgb(198, 219, 239); stroke: rgb(255, 255, 255);\"></path><path id=\"path-31\" d=\"M-194.35456535602898,-68.68226871893637A206.13333333333338,206.13333333333338 0 0,1 -193.70380352140128,-70.49672057942479L-145.27785264105097,-52.872540434568585A154.60000000000002,154.60000000000002 0 0,0 -145.76592401702172,-51.51170153920227Z\" fill-rule=\"evenodd\" style=\"fill: rgb(230, 85, 13); stroke: rgb(255, 255, 255);\"></path><path id=\"path-32\" d=\"M-148.03512060467975,-44.573120460182395A154.60000000000002,154.60000000000002 0 0,1 -145.76592401702172,-51.51170153920227L-97.17728267801449,-34.341134359468185A103.06666666666669,103.06666666666669 0 0,0 -98.69008040311984,-29.7154136401216Z\" fill-rule=\"evenodd\" style=\"fill: rgb(107, 174, 214); stroke: rgb(255, 255, 255);\"></path><path id=\"path-33\" d=\"M-96.65260602024229,-35.79122137163815A103.06666666666669,103.06666666666669 0 0,1 -1.8933039514818083e-14,-103.06666666666669L-9.466519757409041e-15,-51.533333333333346A51.533333333333346,51.533333333333346 0 0,0 -48.326303010121144,-17.895610685819076Z\" fill-rule=\"evenodd\" style=\"fill: rgb(253, 141, 60); stroke: rgb(255, 255, 255);\"></path><path id=\"path-34\" d=\"M-144.9789090303634,-53.686832057457224A154.60000000000002,154.60000000000002 0 0,1 -6.431605184176523,-154.4661595779311L-4.287736789451015,-102.97743971862074A103.06666666666669,103.06666666666669 0 0,0 -96.65260602024229,-35.79122137163815Z\" fill-rule=\"evenodd\" style=\"fill: rgb(49, 163, 84); stroke: rgb(255, 255, 255);\"></path><path id=\"path-35\" d=\"M-10.6976318186965,-205.85556048983165A206.13333333333338,206.13333333333338 0 0,1 -9.065291461879182,-205.9339010503669L-6.798968596409386,-154.45042578777517A154.60000000000002,154.60000000000002 0 0,0 -8.023223864022375,-154.39167036737373Z\" fill-rule=\"evenodd\" style=\"fill: rgb(116, 196, 118); stroke: rgb(255, 255, 255);\"></path><path id=\"path-36\" d=\"M-13.372039773370624,-257.31945061228953A257.6666666666667,257.6666666666667 0 0,1 -11.790776716170647,-257.39675346736703L-9.43262137293652,-205.91740277389366A206.13333333333338,206.13333333333338 0 0,0 -10.6976318186965,-205.85556048983165Z\" fill-rule=\"evenodd\" style=\"fill: rgb(161, 217, 155); stroke: rgb(255, 255, 255);\"></path><path id=\"path-37\" d=\"M-16.04644772804475,-308.78334073474747A309.20000000000005,309.20000000000005 0 0,1 -14.3938043198061,-308.86478983076586L-11.994836933171747,-257.3873248589715A257.6666666666667,257.6666666666667 0 0,0 -13.372039773370624,-257.31945061228953Z\" fill-rule=\"evenodd\" style=\"fill: rgb(161, 217, 155); stroke: rgb(255, 255, 255);\"></path><path id=\"path-38\" d=\"M-193.30521204048458,-71.5824427432763A206.13333333333338,206.13333333333338 0 0,1 -15.427249309947154,-205.55522637442198L-11.570436982460365,-154.16641978081648A154.60000000000002,154.60000000000002 0 0,0 -144.9789090303634,-53.686832057457224Z\" fill-rule=\"evenodd\" style=\"fill: rgb(199, 233, 192); stroke: rgb(255, 255, 255);\"></path><path id=\"path-39\" d=\"M-89.77722107381334,-241.52052022007317A257.6666666666667,257.6666666666667 0 0,1 -19.48822861428517,-256.9286283320496L-15.590582891428138,-205.54290266563973A206.13333333333338,206.13333333333338 0 0,0 -71.82177685905069,-193.21641617605854Z\" fill-rule=\"evenodd\" style=\"fill: rgb(117, 107, 177); stroke: rgb(255, 255, 255);\"></path><path id=\"path-40\" d=\"M-107.73266528857602,-289.8246242640878A309.20000000000005,309.20000000000005 0 0,1 -30.434933656277877,-307.6984803559127L-25.362444713564898,-256.41540029659393A257.6666666666667,257.6666666666667 0 0,0 -89.77722107381334,-241.52052022007317Z\" fill-rule=\"evenodd\" style=\"fill: rgb(188, 189, 220); stroke: rgb(255, 255, 255);\"></path><path id=\"path-41\" d=\"M-30.434933656277877,-307.6984803559127A309.20000000000005,309.20000000000005 0 0,1 -26.32468279328722,-308.0773459309088L-21.93723566107268,-256.7311216090906A257.6666666666667,257.6666666666667 0 0,0 -25.362444713564898,-256.41540029659393Z\" fill-rule=\"evenodd\" style=\"fill: rgb(117, 107, 177); stroke: rgb(255, 255, 255);\"></path><path id=\"path-42\" d=\"M-241.63151505060569,-89.47805342909537A257.6666666666667,257.6666666666667 0 0,1 -89.77722107381334,-241.52052022007317L-71.82177685905069,-193.21641617605854A206.13333333333338,206.13333333333338 0 0,0 -193.30521204048458,-71.5824427432763Z\" fill-rule=\"evenodd\" style=\"fill: rgb(218, 218, 235); stroke: rgb(255, 255, 255);\"></path><path id=\"path-43\" d=\"M-185.38716179514097,-247.45957294382907A309.20000000000005,309.20000000000005 0 0,1 -110.31765227878974,-288.85057658882397L-91.93137689899145,-240.70881382401998A257.6666666666667,257.6666666666667 0 0,0 -154.4893014959508,-206.21631078652422Z\" fill-rule=\"evenodd\" style=\"fill: rgb(150, 150, 150); stroke: rgb(255, 255, 255);\"></path><path id=\"path-44\" d=\"M-289.9578180607268,-107.37366411491445A309.20000000000005,309.20000000000005 0 0,1 -185.38716179514097,-247.45957294382907L-154.4893014959508,-206.21631078652422A257.6666666666667,257.6666666666667 0 0,0 -241.63151505060569,-89.47805342909537Z\" fill-rule=\"evenodd\" style=\"fill: rgb(189, 189, 189); stroke: rgb(255, 255, 255);\"></path><path id=\"path-45\" d=\"M-15.427249309947154,-205.55522637442198A206.13333333333338,206.13333333333338 0 0,1 -10.6976318186965,-205.85556048983165L-8.023223864022375,-154.39167036737373A154.60000000000002,154.60000000000002 0 0,0 -11.570436982460365,-154.16641978081648Z\" fill-rule=\"evenodd\" style=\"fill: rgb(217, 217, 217); stroke: rgb(255, 255, 255);\"></path><path id=\"path-46\" d=\"M-16.22719469223284,-257.1551851772223A257.6666666666667,257.6666666666667 0 0,1 -14.646887014891341,-257.2500336479747L-11.717509611913075,-205.8000269183798A206.13333333333338,206.13333333333338 0 0,0 -12.981755753786272,-205.72414814177787Z\" fill-rule=\"evenodd\" style=\"fill: rgb(49, 130, 189); stroke: rgb(255, 255, 255);\"></path><path id=\"path-47\" d=\"M-19.472633630679407,-308.58622221266677A309.20000000000005,309.20000000000005 0 0,1 -17.57626441786961,-308.7000403775697L-14.646887014891341,-257.2500336479747A257.6666666666667,257.6666666666667 0 0,0 -16.22719469223284,-257.1551851772223Z\" fill-rule=\"evenodd\" style=\"fill: rgb(49, 130, 189); stroke: rgb(255, 255, 255);\"></path><path id=\"path-48\" d=\"M-19.28406163743394,-256.94403296802744A257.6666666666667,257.6666666666667 0 0,1 -16.22719469223284,-257.1551851772223L-12.981755753786272,-205.72414814177787A206.13333333333338,206.13333333333338 0 0,0 -15.427249309947154,-205.55522637442198Z\" fill-rule=\"evenodd\" style=\"fill: rgb(107, 174, 214); stroke: rgb(255, 255, 255);\"></path><path id=\"path-49\" d=\"M-23.14087396492073,-308.33283956163297A309.20000000000005,309.20000000000005 0 0,1 -20.879146188275726,-308.4942483328476L-17.39928849022977,-257.07854027737295A257.6666666666667,257.6666666666667 0 0,0 -19.28406163743394,-256.94403296802744Z\" fill-rule=\"evenodd\" style=\"fill: rgb(107, 174, 214); stroke: rgb(255, 255, 255);\"></path><path id=\"path-50\" d=\"M-1.1565666172631137,-154.59567378701075A154.60000000000002,154.60000000000002 0 0,1 -0.36143011000242625,-154.5995775164848L-0.2409534066682842,-103.06638501098988A103.06666666666669,103.06666666666669 0 0,0 -0.7710444115087426,-103.06378252467384Z\" fill-rule=\"evenodd\" style=\"fill: rgb(253, 174, 107); stroke: rgb(255, 255, 255);\"></path><path id=\"path-51\" d=\"M-3.397172679386885,-154.5626708419159A154.60000000000002,154.60000000000002 0 0,1 -1.1565666172631137,-154.59567378701075L-0.7710444115087426,-103.06378252467384A103.06666666666669,103.06666666666669 0 0,0 -2.2647817862579234,-103.04178056127726Z\" fill-rule=\"evenodd\" style=\"fill: rgb(253, 208, 162); stroke: rgb(255, 255, 255);\"></path><path id=\"path-52\" d=\"M-4.529563572515847,-206.08356112255453A206.13333333333338,206.13333333333338 0 0,1 -2.313106263967549,-206.12035477002925L-1.7348296979756617,-154.59026607752193A154.60000000000002,154.60000000000002 0 0,0 -3.397172679386885,-154.5626708419159Z\" fill-rule=\"evenodd\" style=\"fill: rgb(253, 208, 162); stroke: rgb(255, 255, 255);\"></path><path id=\"path-53\" d=\"M-6.431605184176523,-154.4661595779311A154.60000000000002,154.60000000000002 0 0,1 -3.397172679386885,-154.5626708419159L-2.2647817862579234,-103.04178056127726A103.06666666666669,103.06666666666669 0 0,0 -4.287736789451015,-102.97743971862074Z\" fill-rule=\"evenodd\" style=\"fill: rgb(253, 141, 60); stroke: rgb(255, 255, 255);\"></path><path id=\"path-54\" d=\"M6.311013171606029e-15,-103.06666666666669A103.06666666666669,103.06666666666669 0 0,1 41.83879514251229,94.19263771017708L20.919397571256145,47.09631885508854A51.533333333333346,51.533333333333346 0 0,0 3.1555065858030143e-15,-51.533333333333346Z\" fill-rule=\"evenodd\" style=\"fill: rgb(49, 163, 84); stroke: rgb(255, 255, 255);\"></path><path id=\"path-55\" d=\"M9.466519757409041e-15,-154.60000000000002A154.60000000000002,154.60000000000002 0 0,1 63.61583749544272,140.90488004236556L42.41055833029515,93.93658669491039A103.06666666666669,103.06666666666669 0 0,0 6.311013171606029e-15,-103.06666666666669Z\" fill-rule=\"evenodd\" style=\"fill: rgb(49, 163, 84); stroke: rgb(255, 255, 255);\"></path><path id=\"path-56\" d=\"M89.27657027387623,185.79732266974347A206.13333333333338,206.13333333333338 0 0,1 85.85367164620713,187.40357033945853L64.39025373465535,140.55267775459387A154.60000000000002,154.60000000000002 0 0,0 66.95742770540717,139.3479920023076Z\" fill-rule=\"evenodd\" style=\"fill: rgb(116, 196, 118); stroke: rgb(255, 255, 255);\"></path><path id=\"path-57\" d=\"M111.59571284234526,232.2466533371793A257.6666666666667,257.6666666666667 0 0,1 108.28297934840887,233.80955389920058L86.62638347872712,187.0476431193605A206.13333333333338,206.13333333333338 0 0,0 89.27657027387623,185.79732266974347Z\" fill-rule=\"evenodd\" style=\"fill: rgb(161, 217, 155); stroke: rgb(255, 255, 255);\"></path><path id=\"path-58\" d=\"M133.91485541081434,278.6959840046152A309.20000000000005,309.20000000000005 0 0,1 130.45400716354476,280.33264528943795L108.71167263628729,233.6105377411983A257.6666666666667,257.6666666666667 0 0,0 111.59571284234526,232.2466533371793Z\" fill-rule=\"evenodd\" style=\"fill: rgb(161, 217, 155); stroke: rgb(255, 255, 255);\"></path><path id=\"path-59\" d=\"M1.2622026343212057e-14,-206.13333333333338A206.13333333333338,206.13333333333338 0 0,1 99.02903428201363,180.7877249159436L74.27177571151022,135.5907936869577A154.60000000000002,154.60000000000002 0 0,0 9.466519757409041e-15,-154.60000000000002Z\" fill-rule=\"evenodd\" style=\"fill: rgb(199, 233, 192); stroke: rgb(255, 255, 255);\"></path><path id=\"path-60\" d=\"M235.31729040871218,104.96610855801471A257.6666666666667,257.6666666666667 0 0,1 124.20155839732175,225.7566920443064L99.36124671785741,180.60535363544514A206.13333333333338,206.13333333333338 0 0,0 188.25383232696979,83.97288684641178Z\" fill-rule=\"evenodd\" style=\"fill: rgb(117, 107, 177); stroke: rgb(255, 255, 255);\"></path><path id=\"path-61\" d=\"M152.91133517713183,268.7429321384041A309.20000000000005,309.20000000000005 0 0,1 151.52587303342966,269.52652893816776L126.27156086119138,224.60544078180646A257.6666666666667,257.6666666666667 0 0,0 127.42611264760984,223.95244344867007Z\" fill-rule=\"evenodd\" style=\"fill: rgb(116, 196, 118); stroke: rgb(255, 255, 255);\"></path><path id=\"path-62\" d=\"M154.9819191476656,267.5541902817193A309.20000000000005,309.20000000000005 0 0,1 152.91133517713183,268.7429321384041L127.42611264760984,223.95244344867007A257.6666666666667,257.6666666666667 0 0,0 129.15159928972133,222.96182523476608Z\" fill-rule=\"evenodd\" style=\"fill: rgb(158, 154, 200); stroke: rgb(255, 255, 255);\"></path><path id=\"path-63\" d=\"M282.38074849045466,125.95933026961767A309.20000000000005,309.20000000000005 0 0,1 163.17062080778504,262.6404167396976L135.97551733982087,218.867013949748A257.6666666666667,257.6666666666667 0 0,0 235.31729040871218,104.96610855801471Z\" fill-rule=\"evenodd\" style=\"fill: rgb(188, 189, 220); stroke: rgb(255, 255, 255);\"></path><path id=\"path-64\" d=\"M163.17062080778504,262.6404167396976A309.20000000000005,309.20000000000005 0 0,1 154.9819191476656,267.5541902817193L129.15159928972133,222.96182523476608A257.6666666666667,257.6666666666667 0 0,0 135.97551733982087,218.867013949748Z\" fill-rule=\"evenodd\" style=\"fill: rgb(117, 107, 177); stroke: rgb(255, 255, 255);\"></path><path id=\"path-65\" d=\"M1.5777532929015067e-14,-257.6666666666667A257.6666666666667,257.6666666666667 0 0,1 235.31729040871218,104.96610855801471L188.25383232696979,83.97288684641178A206.13333333333338,206.13333333333338 0 0,0 1.2622026343212057e-14,-206.13333333333338Z\" fill-rule=\"evenodd\" style=\"fill: rgb(218, 218, 235); stroke: rgb(255, 255, 255);\"></path><path id=\"path-66\" d=\"M283.56012984274764,123.28135610693178A309.20000000000005,309.20000000000005 0 0,1 282.91149908969516,124.76266942808424L235.75958257474596,103.9688911900702A257.6666666666667,257.6666666666667 0 0,0 236.3001082022897,102.73446342244314Z\" fill-rule=\"evenodd\" style=\"fill: rgb(161, 217, 155); stroke: rgb(255, 255, 255);\"></path><path id=\"path-67\" d=\"M284.92391314985923,120.09581056544606A309.20000000000005,309.20000000000005 0 0,1 283.56012984274764,123.28135610693178L236.3001082022897,102.73446342244314A257.6666666666667,257.6666666666667 0 0,0 237.43659429154934,100.07984213787171Z\" fill-rule=\"evenodd\" style=\"fill: rgb(99, 99, 99); stroke: rgb(255, 255, 255);\"></path><path id=\"path-68\" d=\"M299.9942106880507,-74.88733907446226A309.20000000000005,309.20000000000005 0 0,1 284.92391314985923,120.09581056544606L237.43659429154934,100.07984213787171A257.6666666666667,257.6666666666667 0 0,0 249.99517557337555,-62.40611589538521Z\" fill-rule=\"evenodd\" style=\"fill: rgb(150, 150, 150); stroke: rgb(255, 255, 255);\"></path><path id=\"path-69\" d=\"M1.8933039514818083e-14,-309.20000000000005A309.20000000000005,309.20000000000005 0 0,1 299.9942106880507,-74.88733907446226L249.99517557337555,-62.40611589538521A257.6666666666667,257.6666666666667 0 0,0 1.5777532929015067e-14,-257.6666666666667Z\" fill-rule=\"evenodd\" style=\"fill: rgb(189, 189, 189); stroke: rgb(255, 255, 255);\"></path><path id=\"path-70\" d=\"M99.02903428201363,180.7877249159436A206.13333333333338,206.13333333333338 0 0,1 89.27657027387623,185.79732266974347L66.95742770540717,139.3479920023076A154.60000000000002,154.60000000000002 0 0,0 74.27177571151022,135.5907936869577Z\" fill-rule=\"evenodd\" style=\"fill: rgb(217, 217, 217); stroke: rgb(255, 255, 255);\"></path><path id=\"path-71\" d=\"M117.52238663784935,229.30460036827645A257.6666666666667,257.6666666666667 0 0,1 114.25087648485638,230.9520476929209L91.40070118788512,184.76163815433674A206.13333333333338,206.13333333333338 0 0,0 94.0179093102795,183.44368029462117Z\" fill-rule=\"evenodd\" style=\"fill: rgb(49, 130, 189); stroke: rgb(255, 255, 255);\"></path><path id=\"path-72\" d=\"M141.02686396541924,275.16552044193173A309.20000000000005,309.20000000000005 0 0,1 137.10105178182766,277.1424572315051L114.25087648485638,230.9520476929209A257.6666666666667,257.6666666666667 0 0,0 117.52238663784935,229.30460036827645Z\" fill-rule=\"evenodd\" style=\"fill: rgb(49, 130, 189); stroke: rgb(255, 255, 255);\"></path><path id=\"path-73\" d=\"M123.78629285251702,225.9846561449295A257.6666666666667,257.6666666666667 0 0,1 117.52238663784935,229.30460036827645L94.0179093102795,183.44368029462117A206.13333333333338,206.13333333333338 0 0,0 99.02903428201363,180.7877249159436Z\" fill-rule=\"evenodd\" style=\"fill: rgb(107, 174, 214); stroke: rgb(255, 255, 255);\"></path><path id=\"path-74\" d=\"M143.92119081908297,273.6628049867522A309.20000000000005,309.20000000000005 0 0,1 141.02686396541924,275.16552044193173L117.52238663784935,229.30460036827645A257.6666666666667,257.6666666666667 0 0,0 119.93432568256912,228.05233748896012Z\" fill-rule=\"evenodd\" style=\"fill: rgb(158, 202, 225); stroke: rgb(255, 255, 255);\"></path><path id=\"path-75\" d=\"M148.54355142302043,271.1815873739154A309.20000000000005,309.20000000000005 0 0,1 143.92119081908297,273.6628049867522L119.93432568256912,228.05233748896012A257.6666666666667,257.6666666666667 0 0,0 123.78629285251702,225.9846561449295Z\" fill-rule=\"evenodd\" style=\"fill: rgb(107, 174, 214); stroke: rgb(255, 255, 255);\"></path><path id=\"path-76\" d=\"M114.25087648485638,230.9520476929209A257.6666666666667,257.6666666666667 0 0,1 111.70220332343021,232.1954540549883L89.36176265874418,185.75636324399068A206.13333333333338,206.13333333333338 0 0,0 91.40070118788512,184.76163815433674Z\" fill-rule=\"evenodd\" style=\"fill: rgb(217, 217, 217); stroke: rgb(255, 255, 255);\"></path></g></svg></div>\n",
"</div>\n",
"<br>\n",
"<!-- stats table -->\n",
"<div id=\"table_div\">\n",
"<div id=\"pstats-table_wrapper\" class=\"dataTables_wrapper no-footer\"><div id=\"pstats-table_filter\" class=\"dataTables_filter\"><label>Search:<input class=\"\" placeholder=\"\" aria-controls=\"pstats-table\" type=\"search\"></label></div><table class=\"display dataTable no-footer\" id=\"pstats-table\" role=\"grid\" aria-describedby=\"pstats-table_info\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\">\n",
"<thead><tr role=\"row\"><th class=\"sorting\" tabindex=\"0\" aria-controls=\"pstats-table\" rowspan=\"1\" colspan=\"1\" style=\"width: 136px;\" aria-label=\"ncalls: activate to sort column ascending\">ncalls</th><th class=\"sorting_desc\" tabindex=\"0\" aria-controls=\"pstats-table\" rowspan=\"1\" colspan=\"1\" style=\"width: 159px;\" aria-sort=\"descending\" aria-label=\"tottime: activate to sort column ascending\">tottime</th><th class=\"sorting\" tabindex=\"0\" aria-controls=\"pstats-table\" rowspan=\"1\" colspan=\"1\" style=\"width: 151px;\" aria-label=\"percall: activate to sort column ascending\">percall</th><th class=\"sorting\" tabindex=\"0\" aria-controls=\"pstats-table\" rowspan=\"1\" colspan=\"1\" style=\"width: 186px;\" aria-label=\"cumtime: activate to sort column ascending\">cumtime</th><th class=\"sorting\" tabindex=\"0\" aria-controls=\"pstats-table\" rowspan=\"1\" colspan=\"1\" style=\"width: 151px;\" aria-label=\"percall: activate to sort column ascending\">percall</th><th class=\"sorting\" tabindex=\"0\" aria-controls=\"pstats-table\" rowspan=\"1\" colspan=\"1\" style=\"width: 483px;\" aria-label=\"filename:lineno(function): activate to sort column ascending\">filename:lineno(function)</th></tr></thead><tbody><tr role=\"row\" class=\"odd\"><td>3</td><td class=\"sorting_1\">0.002335</td><td>0.0007783</td><td>0.002335</td><td>0.0007783</td><td>~:0(&lt;built-in method _imp.create_dynamic&gt;)</td></tr><tr role=\"row\" class=\"even\"><td>26</td><td class=\"sorting_1\">0.00043</td><td>1.654e-05</td><td>0.001418</td><td>5.454e-05</td><td>&lt;frozen importlib._bootstrap_external&gt;:1215(find_spec)</td></tr><tr role=\"row\" class=\"odd\"><td>2</td><td class=\"sorting_1\">0.000246</td><td>0.000123</td><td>0.000246</td><td>0.000123</td><td>~:0(&lt;built-in method marshal.loads&gt;)</td></tr><tr role=\"row\" class=\"even\"><td>33</td><td class=\"sorting_1\">0.000229</td><td>6.939e-06</td><td>0.000229</td><td>6.939e-06</td><td>~:0(&lt;built-in method posix.stat&gt;)</td></tr><tr role=\"row\" class=\"odd\"><td>1</td><td class=\"sorting_1\">0.000202</td><td>0.000202</td><td>0.000202</td><td>0.000202</td><td>~:0(&lt;built-in method posix.urandom&gt;)</td></tr><tr role=\"row\" class=\"even\"><td>126</td><td class=\"sorting_1\">0.000168</td><td>1.333e-06</td><td>0.000467</td><td>3.706e-06</td><td>&lt;frozen importlib._bootstrap_external&gt;:50(_path_join)</td></tr><tr role=\"row\" class=\"odd\"><td>126</td><td class=\"sorting_1\">0.000166</td><td>1.317e-06</td><td>0.000251</td><td>1.992e-06</td><td>&lt;frozen importlib._bootstrap_external&gt;:52(&lt;listcomp&gt;)</td></tr><tr role=\"row\" class=\"even\"><td>122</td><td class=\"sorting_1\">0.000132</td><td>1.082e-06</td><td>0.000132</td><td>1.082e-06</td><td>~:0(&lt;method 'format' of 'str' objects&gt;)</td></tr><tr role=\"row\" class=\"odd\"><td>1</td><td class=\"sorting_1\">0.000101</td><td>0.000101</td><td>0.005012</td><td>0.005012</td><td>random.py:37(&lt;module&gt;)</td></tr><tr role=\"row\" class=\"even\"><td>2</td><td class=\"sorting_1\">0.000101</td><td>5.05e-05</td><td>0.000128</td><td>6.4e-05</td><td>~:0(&lt;built-in method builtins.__build_class__&gt;)</td></tr><tr role=\"row\" class=\"odd\"><td>5</td><td class=\"sorting_1\">9.3e-05</td><td>1.86e-05</td><td>0.001608</td><td>0.0003216</td><td>&lt;frozen importlib._bootstrap_external&gt;:1101(_get_spec)</td></tr><tr role=\"row\" class=\"even\"><td>132</td><td class=\"sorting_1\">8.7e-05</td><td>6.591e-07</td><td>8.7e-05</td><td>6.591e-07</td><td>&lt;frozen importlib._bootstrap_external&gt;:366(_verbose_message)</td></tr><tr role=\"row\" class=\"odd\"><td>256</td><td class=\"sorting_1\">8.5e-05</td><td>3.32e-07</td><td>8.5e-05</td><td>3.32e-07</td><td>~:0(&lt;method 'rstrip' of 'str' objects&gt;)</td></tr><tr role=\"row\" class=\"even\"><td>5</td><td class=\"sorting_1\">8.4e-05</td><td>1.68e-05</td><td>0.001763</td><td>0.0003526</td><td>&lt;frozen importlib._bootstrap&gt;:879(_find_spec)</td></tr><tr role=\"row\" class=\"odd\"><td>2</td><td class=\"sorting_1\">6.4e-05</td><td>3.2e-05</td><td>8.5e-05</td><td>4.25e-05</td><td>&lt;frozen importlib._bootstrap_external&gt;:816(get_data)</td></tr><tr role=\"row\" class=\"even\"><td>5/1</td><td class=\"sorting_1\">5e-05</td><td>5e-05</td><td>0.005413</td><td>0.005413</td><td>&lt;frozen importlib._bootstrap&gt;:659(_load_unlocked)</td></tr><tr role=\"row\" class=\"odd\"><td>5</td><td class=\"sorting_1\">4.9e-05</td><td>9.8e-06</td><td>0.000185</td><td>3.7e-05</td><td>&lt;frozen importlib._bootstrap&gt;:510(_init_module_attrs)</td></tr><tr role=\"row\" class=\"even\"><td>130</td><td class=\"sorting_1\">4.9e-05</td><td>3.769e-07</td><td>4.9e-05</td><td>3.769e-07</td><td>~:0(&lt;method 'join' of 'str' objects&gt;)</td></tr><tr role=\"row\" class=\"odd\"><td>5/1</td><td class=\"sorting_1\">4.7e-05</td><td>4.7e-05</td><td>0.005812</td><td>0.005812</td><td>&lt;frozen importlib._bootstrap&gt;:966(_find_and_load)</td></tr><tr role=\"row\" class=\"even\"><td>1</td><td class=\"sorting_1\">4.2e-05</td><td>4.2e-05</td><td>0.002601</td><td>0.002601</td><td>hashlib.py:53(&lt;module&gt;)</td></tr><tr role=\"row\" class=\"odd\"><td>36</td><td class=\"sorting_1\">4.2e-05</td><td>1.167e-06</td><td>4.2e-05</td><td>1.167e-06</td><td>~:0(&lt;built-in method builtins.getattr&gt;)</td></tr><tr role=\"row\" class=\"even\"><td>44</td><td class=\"sorting_1\">4e-05</td><td>9.091e-07</td><td>4e-05</td><td>9.091e-07</td><td>~:0(&lt;built-in method builtins.hasattr&gt;)</td></tr><tr role=\"row\" class=\"odd\"><td>10</td><td class=\"sorting_1\">3.7e-05</td><td>3.7e-06</td><td>3.7e-05</td><td>3.7e-06</td><td>~:0(&lt;built-in method posix.getcwd&gt;)</td></tr><tr role=\"row\" class=\"even\"><td>5</td><td class=\"sorting_1\">3.7e-05</td><td>7.4e-06</td><td>6e-05</td><td>1.2e-05</td><td>&lt;frozen importlib._bootstrap&gt;:176(_get_module_lock)</td></tr><tr role=\"row\" class=\"odd\"><td>36</td><td class=\"sorting_1\">3.5e-05</td><td>9.722e-07</td><td>7.2e-05</td><td>2e-06</td><td>&lt;frozen importlib._bootstrap_external&gt;:1064(_path_importer_cache)</td></tr><tr role=\"row\" class=\"even\"><td>5</td><td class=\"sorting_1\">3.1e-05</td><td>6.2e-06</td><td>3.1e-05</td><td>6.2e-06</td><td>&lt;frozen importlib._bootstrap&gt;:94(acquire)</td></tr><tr role=\"row\" class=\"odd\"><td>4</td><td class=\"sorting_1\">2.8e-05</td><td>7e-06</td><td>6.3e-05</td><td>1.575e-05</td><td>&lt;frozen importlib._bootstrap_external&gt;:246(cache_from_source)</td></tr><tr role=\"row\" class=\"even\"><td>33</td><td class=\"sorting_1\">2.8e-05</td><td>8.485e-07</td><td>0.000257</td><td>7.788e-06</td><td>&lt;frozen importlib._bootstrap_external&gt;:68(_path_stat)</td></tr><tr role=\"row\" class=\"odd\"><td>5</td><td class=\"sorting_1\">2.7e-05</td><td>5.4e-06</td><td>3.1e-05</td><td>6.2e-06</td><td>&lt;frozen importlib._bootstrap&gt;:119(release)</td></tr><tr role=\"row\" class=\"even\"><td>2</td><td class=\"sorting_1\">2.7e-05</td><td>1.35e-05</td><td>0.000468</td><td>0.000234</td><td>&lt;frozen importlib._bootstrap_external&gt;:729(get_code)</td></tr><tr role=\"row\" class=\"odd\"><td>5</td><td class=\"sorting_1\">2.6e-05</td><td>5.2e-06</td><td>3.4e-05</td><td>6.8e-06</td><td>&lt;frozen importlib._bootstrap_external&gt;:513(spec_from_file_location)</td></tr><tr role=\"row\" class=\"even\"><td>2</td><td class=\"sorting_1\">2.6e-05</td><td>1.3e-05</td><td>3.7e-05</td><td>1.85e-05</td><td>&lt;frozen importlib._bootstrap_external&gt;:419(_validate_bytecode_header)</td></tr><tr role=\"row\" class=\"odd\"><td>3</td><td class=\"sorting_1\">2.4e-05</td><td>8e-06</td><td>0.002375</td><td>0.0007917</td><td>&lt;frozen importlib._bootstrap_external&gt;:903(create_module)</td></tr><tr role=\"row\" class=\"even\"><td>5</td><td class=\"sorting_1\">2.4e-05</td><td>4.8e-06</td><td>4.5e-05</td><td>9e-06</td><td>&lt;frozen importlib._bootstrap&gt;:321(__exit__)</td></tr><tr role=\"row\" class=\"odd\"><td>5</td><td class=\"sorting_1\">2.4e-05</td><td>4.8e-06</td><td>0.000116</td><td>2.32e-05</td><td>&lt;frozen importlib._bootstrap&gt;:163(__enter__)</td></tr><tr role=\"row\" class=\"even\"><td>6</td><td class=\"sorting_1\">2.3e-05</td><td>3.833e-06</td><td>3.1e-05</td><td>5.167e-06</td><td>hashlib.py:98(__get_openssl_constructor)</td></tr><tr role=\"row\" class=\"odd\"><td>5/1</td><td class=\"sorting_1\">2.2e-05</td><td>2.2e-05</td><td>0.005758</td><td>0.005758</td><td>&lt;frozen importlib._bootstrap&gt;:939(_find_and_load_unlocked)</td></tr><tr role=\"row\" class=\"even\"><td>44</td><td class=\"sorting_1\">2.1e-05</td><td>4.773e-07</td><td>2.1e-05</td><td>4.773e-07</td><td>~:0(&lt;method 'rpartition' of 'str' objects&gt;)</td></tr><tr role=\"row\" class=\"odd\"><td>2</td><td class=\"sorting_1\">2.1e-05</td><td>1.05e-05</td><td>2.1e-05</td><td>1.05e-05</td><td>~:0(&lt;method 'read' of '_io.FileIO' objects&gt;)</td></tr><tr role=\"row\" class=\"even\"><td>1</td><td class=\"sorting_1\">2e-05</td><td>2e-05</td><td>2e-05</td><td>2e-05</td><td>random.py:68(Random)</td></tr><tr role=\"row\" class=\"odd\"><td>1</td><td class=\"sorting_1\">2e-05</td><td>2e-05</td><td>0.000248</td><td>0.000248</td><td>random.py:93(seed)</td></tr><tr role=\"row\" class=\"even\"><td>5</td><td class=\"sorting_1\">2e-05</td><td>4e-06</td><td>6.9e-05</td><td>1.38e-05</td><td>&lt;frozen importlib._bootstrap_external&gt;:342(_get_cached)</td></tr><tr role=\"row\" class=\"odd\"><td>5</td><td class=\"sorting_1\">1.9e-05</td><td>3.8e-06</td><td>2.3e-05</td><td>4.6e-06</td><td>&lt;frozen importlib._bootstrap&gt;:74(__init__)</td></tr><tr role=\"row\" class=\"even\"><td>5</td><td class=\"sorting_1\">1.8e-05</td><td>3.6e-06</td><td>0.002584</td><td>0.0005168</td><td>&lt;frozen importlib._bootstrap&gt;:570(module_from_spec)</td></tr><tr role=\"row\" class=\"odd\"><td>8/1</td><td class=\"sorting_1\">1.7e-05</td><td>1.7e-05</td><td>0.005016</td><td>0.005016</td><td>&lt;frozen importlib._bootstrap&gt;:214(_call_with_frames_removed)</td></tr><tr role=\"row\" class=\"even\"><td>5</td><td class=\"sorting_1\">1.6e-05</td><td>3.2e-06</td><td>5.8e-05</td><td>1.16e-05</td><td>&lt;frozen importlib._bootstrap_external&gt;:1210(_get_spec)</td></tr><tr role=\"row\" class=\"odd\"><td>1</td><td class=\"sorting_1\">1.6e-05</td><td>1.6e-05</td><td>1.6e-05</td><td>1.6e-05</td><td>~:0(&lt;function Random.seed at 0x7f2a9c95e158&gt;)</td></tr><tr role=\"row\" class=\"even\"><td>2</td><td class=\"sorting_1\">1.4e-05</td><td>7e-06</td><td>0.000269</td><td>0.0001345</td><td>&lt;frozen importlib._bootstrap_external&gt;:474(_compile_bytecode)</td></tr><tr role=\"row\" class=\"odd\"><td>7</td><td class=\"sorting_1\">1.3e-05</td><td>1.857e-06</td><td>8.2e-05</td><td>1.171e-05</td><td>&lt;frozen importlib._bootstrap&gt;:406(cached)</td></tr><tr role=\"row\" class=\"even\"><td>5</td><td class=\"sorting_1\">1.3e-05</td><td>2.6e-06</td><td>1.3e-05</td><td>2.6e-06</td><td>~:0(&lt;built-in method _imp.is_builtin&gt;)</td></tr><tr role=\"row\" class=\"odd\"><td>2/1</td><td class=\"sorting_1\">1.3e-05</td><td>1.3e-05</td><td>0.005325</td><td>0.005325</td><td>&lt;frozen importlib._bootstrap_external&gt;:659(exec_module)</td></tr><tr role=\"row\" class=\"even\"><td>39</td><td class=\"sorting_1\">1.2e-05</td><td>3.077e-07</td><td>1.2e-05</td><td>3.077e-07</td><td>~:0(&lt;built-in method builtins.isinstance&gt;)</td></tr><tr role=\"row\" class=\"odd\"><td>5</td><td class=\"sorting_1\">1.2e-05</td><td>2.4e-06</td><td>1.2e-05</td><td>2.4e-06</td><td>~:0(&lt;built-in method from_bytes&gt;)</td></tr><tr role=\"row\" class=\"even\"><td>5</td><td class=\"sorting_1\">1.1e-05</td><td>2.2e-06</td><td>0.001619</td><td>0.0003238</td><td>&lt;frozen importlib._bootstrap_external&gt;:1133(find_spec)</td></tr><tr role=\"row\" class=\"odd\"><td>1</td><td class=\"sorting_1\">1.1e-05</td><td>1.1e-05</td><td>1.1e-05</td><td>1.1e-05</td><td>~:0(&lt;method 'union' of 'set' objects&gt;)</td></tr><tr role=\"row\" class=\"even\"><td>5</td><td class=\"sorting_1\">1.1e-05</td><td>2.2e-06</td><td>4.5e-05</td><td>9e-06</td><td>&lt;frozen importlib._bootstrap_external&gt;:78(_path_is_mode_type)</td></tr><tr role=\"row\" class=\"odd\"><td>8</td><td class=\"sorting_1\">1e-05</td><td>1.25e-06</td><td>3e-05</td><td>3.75e-06</td><td>&lt;frozen importlib._bootstrap&gt;:996(_handle_fromlist)</td></tr><tr role=\"row\" class=\"even\"><td>1</td><td class=\"sorting_1\">1e-05</td><td>1e-05</td><td>0.005825</td><td>0.005825</td><td>tree_tests.py:1(&lt;module&gt;)</td></tr><tr role=\"row\" class=\"odd\"><td>15</td><td class=\"sorting_1\">1e-05</td><td>6.667e-07</td><td>1.3e-05</td><td>8.667e-07</td><td>&lt;frozen importlib._bootstrap&gt;:856(__exit__)</td></tr><tr role=\"row\" class=\"even\"><td>4</td><td class=\"sorting_1\">1e-05</td><td>2.5e-06</td><td>1.4e-05</td><td>3.5e-06</td><td>&lt;frozen importlib._bootstrap_external&gt;:56(_path_split)</td></tr><tr role=\"row\" class=\"odd\"><td>8</td><td class=\"sorting_1\">1e-05</td><td>1.25e-06</td><td>1e-05</td><td>1.25e-06</td><td>~:0(&lt;method 'endswith' of 'str' objects&gt;)</td></tr><tr role=\"row\" class=\"even\"><td>15</td><td class=\"sorting_1\">1e-05</td><td>6.667e-07</td><td>1.4e-05</td><td>9.333e-07</td><td>&lt;frozen importlib._bootstrap&gt;:852(__enter__)</td></tr><tr role=\"row\" class=\"odd\"><td>5</td><td class=\"sorting_1\">1e-05</td><td>2e-06</td><td>1.4e-05</td><td>2.8e-06</td><td>&lt;frozen importlib._bootstrap&gt;:419(parent)</td></tr><tr role=\"row\" class=\"even\"><td>5</td><td class=\"sorting_1\">9e-06</td><td>1.8e-06</td><td>4e-05</td><td>8e-06</td><td>&lt;frozen importlib._bootstrap&gt;:170(__exit__)</td></tr><tr role=\"row\" class=\"odd\"><td>20</td><td class=\"sorting_1\">9e-06</td><td>4.5e-07</td><td>9e-06</td><td>4.5e-07</td><td>&lt;frozen importlib._bootstrap&gt;:324(&lt;genexpr&gt;)</td></tr><tr role=\"row\" class=\"even\"><td>3</td><td class=\"sorting_1\">9e-06</td><td>3e-06</td><td>2.1e-05</td><td>7e-06</td><td>&lt;frozen importlib._bootstrap_external&gt;:911(exec_module)</td></tr><tr role=\"row\" class=\"odd\"><td>5</td><td class=\"sorting_1\">8e-06</td><td>1.6e-06</td><td>8e-06</td><td>1.6e-06</td><td>&lt;frozen importlib._bootstrap&gt;:314(__enter__)</td></tr><tr role=\"row\" class=\"even\"><td>5</td><td class=\"sorting_1\">8e-06</td><td>1.6e-06</td><td>5.3e-05</td><td>1.06e-05</td><td>&lt;frozen importlib._bootstrap_external&gt;:87(_path_isfile)</td></tr><tr role=\"row\" class=\"odd\"><td>5</td><td class=\"sorting_1\">8e-06</td><td>1.6e-06</td><td>2.1e-05</td><td>4.2e-06</td><td>&lt;frozen importlib._bootstrap&gt;:716(find_spec)</td></tr><tr role=\"row\" class=\"even\"><td>5</td><td class=\"sorting_1\">8e-06</td><td>1.6e-06</td><td>8e-06</td><td>1.6e-06</td><td>&lt;frozen importlib._bootstrap&gt;:372(__init__)</td></tr><tr role=\"row\" class=\"odd\"><td>5</td><td class=\"sorting_1\">8e-06</td><td>1.6e-06</td><td>8e-06</td><td>1.6e-06</td><td>&lt;frozen importlib._bootstrap&gt;:159(__init__)</td></tr><tr role=\"row\" class=\"even\"><td>5</td><td class=\"sorting_1\">8e-06</td><td>1.6e-06</td><td>1.7e-05</td><td>3.4e-06</td><td>~:0(&lt;built-in method builtins.any&gt;)</td></tr><tr role=\"row\" class=\"odd\"><td>3/1</td><td class=\"sorting_1\">7e-06</td><td>7e-06</td><td>0.005827</td><td>0.005827</td><td>~:0(&lt;built-in method builtins.exec&gt;)</td></tr><tr role=\"row\" class=\"even\"><td>1</td><td class=\"sorting_1\">7e-06</td><td>7e-06</td><td>7e-06</td><td>7e-06</td><td>random.py:639(SystemRandom)</td></tr><tr role=\"row\" class=\"odd\"><td>5</td><td class=\"sorting_1\">7e-06</td><td>1.4e-06</td><td>1.2e-05</td><td>2.4e-06</td><td>&lt;frozen importlib._bootstrap&gt;:789(find_spec)</td></tr><tr role=\"row\" class=\"even\"><td>2</td><td class=\"sorting_1\">6e-06</td><td>3e-06</td><td>1.9e-05</td><td>9.5e-06</td><td>&lt;frozen importlib._bootstrap_external&gt;:826(path_stats)</td></tr><tr role=\"row\" class=\"odd\"><td>5</td><td class=\"sorting_1\">6e-06</td><td>1.2e-06</td><td>6e-06</td><td>1.2e-06</td><td>&lt;frozen importlib._bootstrap&gt;:310(__init__)</td></tr><tr role=\"row\" class=\"even\"><td>4</td><td class=\"sorting_1\">6e-06</td><td>1.5e-06</td><td>1e-05</td><td>2.5e-06</td><td>&lt;frozen importlib._bootstrap_external&gt;:45(_r_long)</td></tr><tr role=\"row\" class=\"odd\"><td>2</td><td class=\"sorting_1\">5e-06</td><td>2.5e-06</td><td>5e-06</td><td>2.5e-06</td><td>&lt;frozen importlib._bootstrap&gt;:35(_new_module)</td></tr><tr role=\"row\" class=\"even\"><td>3</td><td class=\"sorting_1\">5e-06</td><td>1.667e-06</td><td>5e-06</td><td>1.667e-06</td><td>&lt;frozen importlib._bootstrap_external&gt;:892(__init__)</td></tr><tr role=\"row\" class=\"odd\"><td>5</td><td class=\"sorting_1\">5e-06</td><td>1e-06</td><td>5e-06</td><td>1e-06</td><td>~:0(&lt;built-in method _imp.is_frozen&gt;)</td></tr><tr role=\"row\" class=\"even\"><td>26</td><td class=\"sorting_1\">5e-06</td><td>1.923e-07</td><td>5e-06</td><td>1.923e-07</td><td>&lt;frozen importlib._bootstrap_external&gt;:34(_relax_case)</td></tr><tr role=\"row\" class=\"odd\"><td>2</td><td class=\"sorting_1\">5e-06</td><td>2.5e-06</td><td>5e-06</td><td>2.5e-06</td><td>~:0(&lt;built-in method _imp._fix_co_filename&gt;)</td></tr><tr role=\"row\" class=\"even\"><td>2</td><td class=\"sorting_1\">4e-06</td><td>2e-06</td><td>5e-06</td><td>2.5e-06</td><td>&lt;frozen importlib._bootstrap_external&gt;:382(_check_name_wrapper)</td></tr><tr role=\"row\" class=\"odd\"><td>5</td><td class=\"sorting_1\">4e-06</td><td>8e-07</td><td>4e-06</td><td>8e-07</td><td>&lt;frozen importlib._bootstrap&gt;:225(_verbose_message)</td></tr><tr role=\"row\" class=\"even\"><td>3</td><td class=\"sorting_1\">4e-06</td><td>1.333e-06</td><td>4e-06</td><td>1.333e-06</td><td>~:0(&lt;built-in method _imp.exec_dynamic&gt;)</td></tr><tr role=\"row\" class=\"odd\"><td>15</td><td class=\"sorting_1\">4e-06</td><td>2.667e-07</td><td>4e-06</td><td>2.667e-07</td><td>~:0(&lt;built-in method _imp.acquire_lock&gt;)</td></tr><tr role=\"row\" class=\"even\"><td>10</td><td class=\"sorting_1\">4e-06</td><td>4e-07</td><td>4e-06</td><td>4e-07</td><td>~:0(&lt;built-in method _thread.allocate_lock&gt;)</td></tr><tr role=\"row\" class=\"odd\"><td>10</td><td class=\"sorting_1\">4e-06</td><td>4e-07</td><td>4e-06</td><td>4e-07</td><td>~:0(&lt;built-in method _thread.get_ident&gt;)</td></tr><tr role=\"row\" class=\"even\"><td>1</td><td class=\"sorting_1\">4e-06</td><td>4e-06</td><td>0.000252</td><td>0.000252</td><td>random.py:84(__init__)</td></tr><tr role=\"row\" class=\"odd\"><td>5</td><td class=\"sorting_1\">4e-06</td><td>8e-07</td><td>4e-06</td><td>8e-07</td><td>&lt;frozen importlib._bootstrap&gt;:190(cb)</td></tr><tr role=\"row\" class=\"even\"><td>20</td><td class=\"sorting_1\">4e-06</td><td>2e-07</td><td>4e-06</td><td>2e-07</td><td>~:0(&lt;built-in method _imp.release_lock&gt;)</td></tr><tr role=\"row\" class=\"odd\"><td>1</td><td class=\"sorting_1\">3e-06</td><td>3e-06</td><td>3e-06</td><td>3e-06</td><td>tree_tests.py:3(test)</td></tr><tr role=\"row\" class=\"even\"><td>8</td><td class=\"sorting_1\">3e-06</td><td>3.75e-07</td><td>3e-06</td><td>3.75e-07</td><td>~:0(&lt;built-in method builtins.len&gt;)</td></tr><tr role=\"row\" class=\"odd\"><td>2</td><td class=\"sorting_1\">3e-06</td><td>1.5e-06</td><td>3e-06</td><td>1.5e-06</td><td>&lt;frozen importlib._bootstrap_external&gt;:786(__init__)</td></tr><tr role=\"row\" class=\"even\"><td>1</td><td class=\"sorting_1\">3e-06</td><td>3e-06</td><td>3e-06</td><td>3e-06</td><td>~:0(&lt;built-in method math.exp&gt;)</td></tr><tr role=\"row\" class=\"odd\"><td>2</td><td class=\"sorting_1\">2e-06</td><td>1e-06</td><td>2e-06</td><td>1e-06</td><td>~:0(&lt;built-in method math.log&gt;)</td></tr><tr role=\"row\" class=\"even\"><td>1</td><td class=\"sorting_1\">2e-06</td><td>2e-06</td><td>2e-06</td><td>2e-06</td><td>~:0(&lt;built-in method _hashlib.openssl_md5&gt;)</td></tr><tr role=\"row\" class=\"odd\"><td>1</td><td class=\"sorting_1\">1e-06</td><td>1e-06</td><td>1e-06</td><td>1e-06</td><td>~:0(&lt;built-in method _hashlib.openssl_sha256&gt;)</td></tr><tr role=\"row\" class=\"even\"><td>5</td><td class=\"sorting_1\">1e-06</td><td>2e-07</td><td>1e-06</td><td>2e-07</td><td>&lt;frozen importlib._bootstrap&gt;:427(has_location)</td></tr><tr role=\"row\" class=\"odd\"><td>1</td><td class=\"sorting_1\">1e-06</td><td>1e-06</td><td>1e-06</td><td>1e-06</td><td>~:0(&lt;built-in method _hashlib.openssl_sha384&gt;)</td></tr><tr role=\"row\" class=\"even\"><td>1</td><td class=\"sorting_1\">1e-06</td><td>1e-06</td><td>1e-06</td><td>1e-06</td><td>~:0(&lt;built-in method _hashlib.openssl_sha224&gt;)</td></tr><tr role=\"row\" class=\"odd\"><td>2</td><td class=\"sorting_1\">1e-06</td><td>5e-07</td><td>1e-06</td><td>5e-07</td><td>&lt;frozen importlib._bootstrap_external&gt;:811(get_filename)</td></tr><tr role=\"row\" class=\"even\"><td>1</td><td class=\"sorting_1\">1e-06</td><td>1e-06</td><td>1e-06</td><td>1e-06</td><td>~:0(&lt;built-in method math.sqrt&gt;)</td></tr><tr role=\"row\" class=\"odd\"><td>6</td><td class=\"sorting_1\">1e-06</td><td>1.667e-07</td><td>1e-06</td><td>1.667e-07</td><td>~:0(&lt;built-in method builtins.globals&gt;)</td></tr><tr role=\"row\" class=\"even\"><td>2</td><td class=\"sorting_1\">0</td><td>0</td><td>0</td><td>0</td><td>&lt;frozen importlib._bootstrap_external&gt;:656(create_module)</td></tr><tr role=\"row\" class=\"odd\"><td>1</td><td class=\"sorting_1\">0</td><td>0</td><td>0</td><td>0</td><td>~:0(&lt;method 'disable' of '_lsprof.Profiler' objects&gt;)</td></tr><tr role=\"row\" class=\"even\"><td>1</td><td class=\"sorting_1\">0</td><td>0</td><td>0</td><td>0</td><td>~:0(&lt;built-in method _hashlib.openssl_sha512&gt;)</td></tr><tr role=\"row\" class=\"odd\"><td>1</td><td class=\"sorting_1\">0</td><td>0</td><td>0</td><td>0</td><td>~:0(&lt;built-in method _hashlib.openssl_sha1&gt;)</td></tr></tbody></table><div class=\"dataTables_info\" id=\"pstats-table_info\" role=\"status\" aria-live=\"polite\">Showing 1 to 109 of 109 entries</div></div>\n",
"</div>\n",
"<!-- Le javascript\n",
"================================================== -->\n",
"<!-- Placed at the end of the document so the pages load faster -->\n",
"<!-- Vendor JS -->\n",
"<script src=\"tree_tests_files/jquery-1.js\"></script>\n",
"<script src=\"tree_tests_files/d3.js\"></script>\n",
"<script src=\"tree_tests_files/jquery.js\"></script>\n",
"<script src=\"tree_tests_files/lodash.js\"></script>\n",
"<script src=\"tree_tests_files/immutable.js\"></script>\n",
"<!-- SnakeViz JS -->\n",
"<script>\n",
"// Make the stats table\n",
"var table_data = [[['5', 5], '1.1e-05', '2.2e-06', '0.001619', '0.0003238', '&lt;frozen importlib._bootstrap_external&gt;:1133(find_spec)'], [['2', 2], '5e-06', '2.5e-06', '5e-06', '2.5e-06', '&lt;frozen importlib._bootstrap&gt;:35(_new_module)'], [['256', 256], '8.5e-05', '3.32e-07', '8.5e-05', '3.32e-07', '~:0(&lt;method &#39;rstrip&#39; of &#39;str&#39; objects&gt;)'], [['8', 8], '1e-05', '1.25e-06', '3e-05', '3.75e-06', '&lt;frozen importlib._bootstrap&gt;:996(_handle_fromlist)'], [['5', 5], '2.7e-05', '5.4e-06', '3.1e-05', '6.2e-06', '&lt;frozen importlib._bootstrap&gt;:119(release)'], [['1', 1], '1e-06', '1e-06', '1e-06', '1e-06', '~:0(&lt;built-in method _hashlib.openssl_sha256&gt;)'], [['1', 1], '3e-06', '3e-06', '3e-06', '3e-06', 'tree_tests.py:3(test)'], [['2', 2], '2.7e-05', '1.35e-05', '0.000468', '0.000234', '&lt;frozen importlib._bootstrap_external&gt;:729(get_code)'], [['36', 36], '3.5e-05', '9.722e-07', '7.2e-05', '2e-06', '&lt;frozen importlib._bootstrap_external&gt;:1064(_path_importer_cache)'], [['2', 2], '0', '0', '0', '0', '&lt;frozen importlib._bootstrap_external&gt;:656(create_module)'], [['5', 5], '9e-06', '1.8e-06', '4e-05', '8e-06', '&lt;frozen importlib._bootstrap&gt;:170(__exit__)'], [['2', 2], '4e-06', '2e-06', '5e-06', '2.5e-06', '&lt;frozen importlib._bootstrap_external&gt;:382(_check_name_wrapper)'], [['33', 33], '0.000229', '6.939e-06', '0.000229', '6.939e-06', '~:0(&lt;built-in method posix.stat&gt;)'], [['122', 122], '0.000132', '1.082e-06', '0.000132', '1.082e-06', '~:0(&lt;method &#39;format&#39; of &#39;str&#39; objects&gt;)'], [['2', 2], '6e-06', '3e-06', '1.9e-05', '9.5e-06', '&lt;frozen importlib._bootstrap_external&gt;:826(path_stats)'], [['8', 8], '3e-06', '3.75e-07', '3e-06', '3.75e-07', '~:0(&lt;built-in method builtins.len&gt;)'], [['1', 1], '1e-05', '1e-05', '0.005825', '0.005825', 'tree_tests.py:1(&lt;module&gt;)'], [['5', 5], '4e-06', '8e-07', '4e-06', '8e-07', '&lt;frozen importlib._bootstrap&gt;:225(_verbose_message)'], [['3', 3], '2.4e-05', '8e-06', '0.002375', '0.0007917', '&lt;frozen importlib._bootstrap_external&gt;:903(create_module)'], [['3', 3], '4e-06', '1.333e-06', '4e-06', '1.333e-06', '~:0(&lt;built-in method _imp.exec_dynamic&gt;)'], [['6', 6], '2.3e-05', '3.833e-06', '3.1e-05', '5.167e-06', 'hashlib.py:98(__get_openssl_constructor)'], [['5', 5], '1e-06', '2e-07', '1e-06', '2e-07', '&lt;frozen importlib._bootstrap&gt;:427(has_location)'], [['8/1', 8], '1.7e-05', '1.7e-05', '0.005016', '0.005016', '&lt;frozen importlib._bootstrap&gt;:214(_call_with_frames_removed)'], [['3', 3], '0.002335', '0.0007783', '0.002335', '0.0007783', '~:0(&lt;built-in method _imp.create_dynamic&gt;)'], [['5', 5], '9.3e-05', '1.86e-05', '0.001608', '0.0003216', '&lt;frozen importlib._bootstrap_external&gt;:1101(_get_spec)'], [['1', 1], '1e-06', '1e-06', '1e-06', '1e-06', '~:0(&lt;built-in method _hashlib.openssl_sha384&gt;)'], [['2', 2], '6.4e-05', '3.2e-05', '8.5e-05', '4.25e-05', '&lt;frozen importlib._bootstrap_external&gt;:816(get_data)'], [['5', 5], '8e-06', '1.6e-06', '8e-06', '1.6e-06', '&lt;frozen importlib._bootstrap&gt;:314(__enter__)'], [['15', 15], '1e-05', '6.667e-07', '1.3e-05', '8.667e-07', '&lt;frozen importlib._bootstrap&gt;:856(__exit__)'], [['5', 5], '8e-06', '1.6e-06', '5.3e-05', '1.06e-05', '&lt;frozen importlib._bootstrap_external&gt;:87(_path_isfile)'], [['1', 1], '0.000101', '0.000101', '0.005012', '0.005012', 'random.py:37(&lt;module&gt;)'], [['5', 5], '1.8e-05', '3.6e-06', '0.002584', '0.0005168', '&lt;frozen importlib._bootstrap&gt;:570(module_from_spec)'], [['5', 5], '4.9e-05', '9.8e-06', '0.000185', '3.7e-05', '&lt;frozen importlib._bootstrap&gt;:510(_init_module_attrs)'], [['7', 7], '1.3e-05', '1.857e-06', '8.2e-05', '1.171e-05', '&lt;frozen importlib._bootstrap&gt;:406(cached)'], [['1', 1], '4.2e-05', '4.2e-05', '0.002601', '0.002601', 'hashlib.py:53(&lt;module&gt;)'], [['1', 1], '0', '0', '0', '0', '~:0(&lt;method &#39;disable&#39; of &#39;_lsprof.Profiler&#39; objects&gt;)'], [['2', 2], '0.000246', '0.000123', '0.000246', '0.000123', '~:0(&lt;built-in method marshal.loads&gt;)'], [['2', 2], '0.000101', '5.05e-05', '0.000128', '6.4e-05', '~:0(&lt;built-in method builtins.__build_class__&gt;)'], [['5', 5], '1.3e-05', '2.6e-06', '1.3e-05', '2.6e-06', '~:0(&lt;built-in method _imp.is_builtin&gt;)'], [['3', 3], '5e-06', '1.667e-06', '5e-06', '1.667e-06', '&lt;frozen importlib._bootstrap_external&gt;:892(__init__)'], [['3/1', 3], '7e-06', '7e-06', '0.005827', '0.005827', '~:0(&lt;built-in method builtins.exec&gt;)'], [['126', 126], '0.000168', '1.333e-06', '0.000467', '3.706e-06', '&lt;frozen importlib._bootstrap_external&gt;:50(_path_join)'], [['5', 5], '2.4e-05', '4.8e-06', '4.5e-05', '9e-06', '&lt;frozen importlib._bootstrap&gt;:321(__exit__)'], [['5', 5], '8e-06', '1.6e-06', '2.1e-05', '4.2e-06', '&lt;frozen importlib._bootstrap&gt;:716(find_spec)'], [['5', 5], '1.9e-05', '3.8e-06', '2.3e-05', '4.6e-06', '&lt;frozen importlib._bootstrap&gt;:74(__init__)'], [['5', 5], '8e-06', '1.6e-06', '8e-06', '1.6e-06', '&lt;frozen importlib._bootstrap&gt;:372(__init__)'], [['26', 26], '0.00043', '1.654e-05', '0.001418', '5.454e-05', '&lt;frozen importlib._bootstrap_external&gt;:1215(find_spec)'], [['1', 1], '0', '0', '0', '0', '~:0(&lt;built-in method _hashlib.openssl_sha512&gt;)'], [['4', 4], '2.8e-05', '7e-06', '6.3e-05', '1.575e-05', '&lt;frozen importlib._bootstrap_external&gt;:246(cache_from_source)'], [['5', 5], '1.6e-05', '3.2e-06', '5.8e-05', '1.16e-05', '&lt;frozen importlib._bootstrap_external&gt;:1210(_get_spec)'], [['5', 5], '6e-06', '1.2e-06', '6e-06', '1.2e-06', '&lt;frozen importlib._bootstrap&gt;:310(__init__)'], [['1', 1], '7e-06', '7e-06', '7e-06', '7e-06', 'random.py:639(SystemRandom)'], [['2', 2], '2e-06', '1e-06', '2e-06', '1e-06', '~:0(&lt;built-in method math.log&gt;)'], [['1', 1], '1e-06', '1e-06', '1e-06', '1e-06', '~:0(&lt;built-in method _hashlib.openssl_sha224&gt;)'], [['5', 5], '8e-06', '1.6e-06', '8e-06', '1.6e-06', '&lt;frozen importlib._bootstrap&gt;:159(__init__)'], [['44', 44], '2.1e-05', '4.773e-07', '2.1e-05', '4.773e-07', '~:0(&lt;method &#39;rpartition&#39; of &#39;str&#39; objects&gt;)'], [['44', 44], '4e-05', '9.091e-07', '4e-05', '9.091e-07', '~:0(&lt;built-in method builtins.hasattr&gt;)'], [['15', 15], '4e-06', '2.667e-07', '4e-06', '2.667e-07', '~:0(&lt;built-in method _imp.acquire_lock&gt;)'], [['2', 2], '1e-06', '5e-07', '1e-06', '5e-07', '&lt;frozen importlib._bootstrap_external&gt;:811(get_filename)'], [['33', 33], '2.8e-05', '8.485e-07', '0.000257', '7.788e-06', '&lt;frozen importlib._bootstrap_external&gt;:68(_path_stat)'], [['1', 1], '1.6e-05', '1.6e-05', '1.6e-05', '1.6e-05', '~:0(&lt;function Random.seed at 0x7f2a9c95e158&gt;)'], [['10', 10], '3.7e-05', '3.7e-06', '3.7e-05', '3.7e-06', '~:0(&lt;built-in method posix.getcwd&gt;)'], [['5', 5], '2.6e-05', '5.2e-06', '3.4e-05', '6.8e-06', '&lt;frozen importlib._bootstrap_external&gt;:513(spec_from_file_location)'], [['36', 36], '4.2e-05', '1.167e-06', '4.2e-05', '1.167e-06', '~:0(&lt;built-in method builtins.getattr&gt;)'], [['1', 1], '1.1e-05', '1.1e-05', '1.1e-05', '1.1e-05', '~:0(&lt;method &#39;union&#39; of &#39;set&#39; objects&gt;)'], [['4', 4], '1e-05', '2.5e-06', '1.4e-05', '3.5e-06', '&lt;frozen importlib._bootstrap_external&gt;:56(_path_split)'], [['20', 20], '9e-06', '4.5e-07', '9e-06', '4.5e-07', '&lt;frozen importlib._bootstrap&gt;:324(&lt;genexpr&gt;)'], [['5', 5], '1.1e-05', '2.2e-06', '4.5e-05', '9e-06', '&lt;frozen importlib._bootstrap_external&gt;:78(_path_is_mode_type)'], [['1', 1], '2e-05', '2e-05', '2e-05', '2e-05', 'random.py:68(Random)'], [['39', 39], '1.2e-05', '3.077e-07', '1.2e-05', '3.077e-07', '~:0(&lt;built-in method builtins.isinstance&gt;)'], [['8', 8], '1e-05', '1.25e-06', '1e-05', '1.25e-06', '~:0(&lt;method &#39;endswith&#39; of &#39;str&#39; objects&gt;)'], [['5', 5], '8e-06', '1.6e-06', '1.7e-05', '3.4e-06', '~:0(&lt;built-in method builtins.any&gt;)'], [['5', 5], '8.4e-05', '1.68e-05', '0.001763', '0.0003526', '&lt;frozen importlib._bootstrap&gt;:879(_find_spec)'], [['132', 132], '8.7e-05', '6.591e-07', '8.7e-05', '6.591e-07', '&lt;frozen importlib._bootstrap_external&gt;:366(_verbose_message)'], [['1', 1], '0.000202', '0.000202', '0.000202', '0.000202', '~:0(&lt;built-in method posix.urandom&gt;)'], [['5', 5], '5e-06', '1e-06', '5e-06', '1e-06', '~:0(&lt;built-in method _imp.is_frozen&gt;)'], [['5', 5], '3.1e-05', '6.2e-06', '3.1e-05', '6.2e-06', '&lt;frozen importlib._bootstrap&gt;:94(acquire)'], [['10', 10], '4e-06', '4e-07', '4e-06', '4e-07', '~:0(&lt;built-in method _thread.allocate_lock&gt;)'], [['10', 10], '4e-06', '4e-07', '4e-06', '4e-07', '~:0(&lt;built-in method _thread.get_ident&gt;)'], [['26', 26], '5e-06', '1.923e-07', '5e-06', '1.923e-07', '&lt;frozen importlib._bootstrap_external&gt;:34(_relax_case)'], [['1', 1], '4e-06', '4e-06', '0.000252', '0.000252', 'random.py:84(__init__)'], [['1', 1], '0', '0', '0', '0', '~:0(&lt;built-in method _hashlib.openssl_sha1&gt;)'], [['2', 2], '3e-06', '1.5e-06', '3e-06', '1.5e-06', '&lt;frozen importlib._bootstrap_external&gt;:786(__init__)'], [['5', 5], '1.2e-05', '2.4e-06', '1.2e-05', '2.4e-06', '~:0(&lt;built-in method from_bytes&gt;)'], [['5', 5], '4e-06', '8e-07', '4e-06', '8e-07', '&lt;frozen importlib._bootstrap&gt;:190(cb)'], [['5', 5], '3.7e-05', '7.4e-06', '6e-05', '1.2e-05', '&lt;frozen importlib._bootstrap&gt;:176(_get_module_lock)'], [['126', 126], '0.000166', '1.317e-06', '0.000251', '1.992e-06', '&lt;frozen importlib._bootstrap_external&gt;:52(&lt;listcomp&gt;)'], [['5/1', 5], '5e-05', '5e-05', '0.005413', '0.005413', '&lt;frozen importlib._bootstrap&gt;:659(_load_unlocked)'], [['2', 2], '2.6e-05', '1.3e-05', '3.7e-05', '1.85e-05', '&lt;frozen importlib._bootstrap_external&gt;:419(_validate_bytecode_header)'], [['5/1', 5], '2.2e-05', '2.2e-05', '0.005758', '0.005758', '&lt;frozen importlib._bootstrap&gt;:939(_find_and_load_unlocked)'], [['1', 1], '2e-05', '2e-05', '0.000248', '0.000248', 'random.py:93(seed)'], [['2', 2], '1.4e-05', '7e-06', '0.000269', '0.0001345', '&lt;frozen importlib._bootstrap_external&gt;:474(_compile_bytecode)'], [['15', 15], '1e-05', '6.667e-07', '1.4e-05', '9.333e-07', '&lt;frozen importlib._bootstrap&gt;:852(__enter__)'], [['2', 2], '5e-06', '2.5e-06', '5e-06', '2.5e-06', '~:0(&lt;built-in method _imp._fix_co_filename&gt;)'], [['130', 130], '4.9e-05', '3.769e-07', '4.9e-05', '3.769e-07', '~:0(&lt;method &#39;join&#39; of &#39;str&#39; objects&gt;)'], [['1', 1], '1e-06', '1e-06', '1e-06', '1e-06', '~:0(&lt;built-in method math.sqrt&gt;)'], [['1', 1], '3e-06', '3e-06', '3e-06', '3e-06', '~:0(&lt;built-in method math.exp&gt;)'], [['3', 3], '9e-06', '3e-06', '2.1e-05', '7e-06', '&lt;frozen importlib._bootstrap_external&gt;:911(exec_module)'], [['5', 5], '7e-06', '1.4e-06', '1.2e-05', '2.4e-06', '&lt;frozen importlib._bootstrap&gt;:789(find_spec)'], [['6', 6], '1e-06', '1.667e-07', '1e-06', '1.667e-07', '~:0(&lt;built-in method builtins.globals&gt;)'], [['4', 4], '6e-06', '1.5e-06', '1e-05', '2.5e-06', '&lt;frozen importlib._bootstrap_external&gt;:45(_r_long)'], [['5', 5], '2.4e-05', '4.8e-06', '0.000116', '2.32e-05', '&lt;frozen importlib._bootstrap&gt;:163(__enter__)'], [['1', 1], '2e-06', '2e-06', '2e-06', '2e-06', '~:0(&lt;built-in method _hashlib.openssl_md5&gt;)'], [['2/1', 2], '1.3e-05', '1.3e-05', '0.005325', '0.005325', '&lt;frozen importlib._bootstrap_external&gt;:659(exec_module)'], [['5/1', 5], '4.7e-05', '4.7e-05', '0.005812', '0.005812', '&lt;frozen importlib._bootstrap&gt;:966(_find_and_load)'], [['5', 5], '1e-05', '2e-06', '1.4e-05', '2.8e-06', '&lt;frozen importlib._bootstrap&gt;:419(parent)'], [['2', 2], '2.1e-05', '1.05e-05', '2.1e-05', '1.05e-05', '~:0(&lt;method &#39;read&#39; of &#39;_io.FileIO&#39; objects&gt;)'], [['20', 20], '4e-06', '2e-07', '4e-06', '2e-07', '~:0(&lt;built-in method _imp.release_lock&gt;)'], [['5', 5], '2e-05', '4e-06', '6.9e-05', '1.38e-05', '&lt;frozen importlib._bootstrap_external&gt;:342(_get_cached)']];\n",
"$(document).ready(function() {\n",
"$('#pstats-table').dataTable({\n",
"'data': table_data,\n",
"'columns': [\n",
"{'title': 'ncalls', 'type': 'num', 'searchable': 'false',\n",
"'data': {\n",
"'_': function (row) {return row[0][0];},\n",
"'sort': function (row) {return row[0][1]}\n",
"}},\n",
"{'title': 'tottime', 'type': 'num', 'searchable': 'false'},\n",
"{'title': 'percall', 'type': 'num', 'searchable': 'false'},\n",
"{'title': 'cumtime', 'type': 'num', 'searchable': 'false'},\n",
"{'title': 'percall', 'type': 'num', 'searchable': 'false'},\n",
"{'title': 'filename:lineno(function)'}\n",
"],\n",
"'order': [1, 'desc'],\n",
"'paging': false\n",
"});\n",
"});\n",
"</script>\n",
"<!-- Web worker code for generating D3 JSON in a separate thread -->\n",
"<script id=\"hierarchy-worker\" type=\"javascript/worker\">\n",
"// This will all go into a web worker that will be used to generate\n",
"// the visualization JSON while leaving the rest of the app responsive.\n",
"//\n",
"// We put this here instead of in a separate JS file so that the worker\n",
"// can be stopped and restarted without loading the code from the server,\n",
"// and so that the stats data can be embedded in the worker.\n",
"var stats = {'<frozen importlib._bootstrap_external>:1101(_get_spec)': {'stats': [5, 5, 9.3e-05, 0.0016079999999999998], 'callers': {'<frozen importlib._bootstrap_external>:1133(find_spec)': [5, 5, 9.3e-05, 0.0016079999999999998]}, 'children': {'<frozen importlib._bootstrap_external>:1215(find_spec)': [26, 26, 0.00043, 0.001418], '~:0(<built-in method builtins.hasattr>)': [26, 26, 1.6e-05, 1.6e-05], '<frozen importlib._bootstrap_external>:1064(_path_importer_cache)': [36, 36, 3.5e-05, 7.2e-05], '~:0(<built-in method builtins.isinstance>)': [36, 36, 9e-06, 9e-06]}, 'display_name': '<frozen importlib._bootstrap_external>:1101(_get_spec)'}, '<frozen importlib._bootstrap_external>:1064(_path_importer_cache)': {'stats': [36, 36, 3.5e-05, 7.2e-05], 'callers': {'<frozen importlib._bootstrap_external>:1101(_get_spec)': [36, 36, 3.5e-05, 7.2e-05]}, 'children': {'~:0(<built-in method posix.getcwd>)': [10, 10, 3.7e-05, 3.7e-05]}, 'display_name': '<frozen importlib._bootstrap_external>:1064(_path_importer_cache)'}, '~:0(<built-in method builtins.isinstance>)': {'stats': [39, 39, 1.2e-05, 1.2e-05], 'callers': {'<frozen importlib._bootstrap_external>:1101(_get_spec)': [36, 36, 9e-06, 9e-06], '/home/lion/anaconda3/lib/python3.5/random.py:93(seed)': [1, 1, 2e-06, 2e-06], '<frozen importlib._bootstrap_external>:474(_compile_bytecode)': [2, 2, 1e-06, 1e-06]}, 'children': {}, 'display_name': '~:0(<built-in method builtins.isinstance>)'}, 'tree_tests.py:3(test)': {'stats': [1, 1, 3e-06, 3e-06], 'callers': {'tree_tests.py:1(<module>)': [1, 1, 3e-06, 3e-06]}, 'children': {}, 'display_name': 'tree_tests.py:3(test)'}, '~:0(<built-in method builtins.hasattr>)': {'stats': [44, 44, 3.9999999999999996e-05, 3.9999999999999996e-05], 'callers': {'<frozen importlib._bootstrap_external>:1101(_get_spec)': [26, 26, 1.6e-05, 1.6e-05], '<frozen importlib._bootstrap>:659(_load_unlocked)': [5, 5, 3e-06, 3e-06], '<frozen importlib._bootstrap>:570(module_from_spec)': [5, 5, 1e-06, 1e-06], '<frozen importlib._bootstrap>:996(_handle_fromlist)': [8, 8, 1.9999999999999998e-05, 1.9999999999999998e-05]}, 'children': {}, 'display_name': '~:0(<built-in method builtins.hasattr>)'}, \"~:0(<method 'join' of 'str' objects>)\": {'stats': [130, 130, 4.9e-05, 4.9e-05], 'callers': {'<frozen importlib._bootstrap_external>:50(_path_join)': [126, 126, 4.8e-05, 4.8e-05], '<frozen importlib._bootstrap_external>:246(cache_from_source)': [4, 4, 1e-06, 1e-06]}, 'children': {}, 'display_name': \"~:0(<method 'join' of 'str' objects>)\"}, \"~:0(<method 'endswith' of 'str' objects>)\": {'stats': [8, 8, 9.999999999999999e-06, 9.999999999999999e-06], 'callers': {'<frozen importlib._bootstrap_external>:342(_get_cached)': [8, 8, 9.999999999999999e-06, 9.999999999999999e-06]}, 'children': {}, 'display_name': \"~:0(<method 'endswith' of 'str' objects>)\"}, '<frozen importlib._bootstrap_external>:656(create_module)': {'stats': [2, 2, 0.0, 0.0], 'callers': {'<frozen importlib._bootstrap>:570(module_from_spec)': [2, 2, 0.0, 0.0]}, 'children': {}, 'display_name': '<frozen importlib._bootstrap_external>:656(create_module)'}, '<frozen importlib._bootstrap_external>:659(exec_module)': {'stats': [1, 2, 1.3e-05, 0.005325], 'callers': {'<frozen importlib._bootstrap>:659(_load_unlocked)': [2, 1, 1.3e-05, 0.005325]}, 'children': {'<frozen importlib._bootstrap_external>:729(get_code)': [2, 2, 2.7e-05, 0.000468], '<frozen importlib._bootstrap>:214(_call_with_frames_removed)': [2, 1, 2e-06, 0.005016]}, 'display_name': '<frozen importlib._bootstrap_external>:659(exec_module)'}, '<frozen importlib._bootstrap>:74(__init__)': {'stats': [5, 5, 1.8999999999999998e-05, 2.3e-05], 'callers': {'<frozen importlib._bootstrap>:176(_get_module_lock)': [5, 5, 1.8999999999999998e-05, 2.3e-05]}, 'children': {'~:0(<built-in method _thread.allocate_lock>)': [10, 10, 4e-06, 4e-06]}, 'display_name': '<frozen importlib._bootstrap>:74(__init__)'}, '~:0(<built-in method _hashlib.openssl_sha512>)': {'stats': [1, 1, 0.0, 0.0], 'callers': {'/home/lion/anaconda3/lib/python3.5/hashlib.py:98(__get_openssl_constructor)': [1, 1, 0.0, 0.0]}, 'children': {}, 'display_name': '~:0(<built-in method _hashlib.openssl_sha512>)'}, '<frozen importlib._bootstrap>:119(release)': {'stats': [5, 5, 2.7e-05, 3.1e-05], 'callers': {'<frozen importlib._bootstrap>:170(__exit__)': [5, 5, 2.7e-05, 3.1e-05]}, 'children': {'~:0(<built-in method _thread.get_ident>)': [5, 5, 4e-06, 4e-06]}, 'display_name': '<frozen importlib._bootstrap>:119(release)'}, '~:0(<built-in method math.sqrt>)': {'stats': [1, 1, 1e-06, 1e-06], 'callers': {'/home/lion/anaconda3/lib/python3.5/random.py:37(<module>)': [1, 1, 1e-06, 1e-06]}, 'children': {}, 'display_name': '~:0(<built-in method math.sqrt>)'}, '<frozen importlib._bootstrap_external>:892(__init__)': {'stats': [3, 3, 4.9999999999999996e-06, 4.9999999999999996e-06], 'callers': {'<frozen importlib._bootstrap_external>:1210(_get_spec)': [3, 3, 4.9999999999999996e-06, 4.9999999999999996e-06]}, 'children': {}, 'display_name': '<frozen importlib._bootstrap_external>:892(__init__)'}, '/home/lion/anaconda3/lib/python3.5/random.py:93(seed)': {'stats': [1, 1, 1.9999999999999998e-05, 0.000248], 'callers': {'/home/lion/anaconda3/lib/python3.5/random.py:84(__init__)': [1, 1, 1.9999999999999998e-05, 0.000248]}, 'children': {'~:0(<function Random.seed at 0x7f2a9c95e158>)': [1, 1, 1.6e-05, 1.6e-05], '~:0(<built-in method from_bytes>)': [1, 1, 8e-06, 8e-06], '~:0(<built-in method posix.urandom>)': [1, 1, 0.000202, 0.000202], '~:0(<built-in method builtins.isinstance>)': [1, 1, 2e-06, 2e-06]}, 'display_name': 'random.py:93(seed)'}, '<frozen importlib._bootstrap_external>:246(cache_from_source)': {'stats': [4, 4, 2.8e-05, 6.3e-05], 'callers': {'<frozen importlib._bootstrap_external>:342(_get_cached)': [2, 2, 1.9999999999999998e-05, 3.9e-05], '<frozen importlib._bootstrap_external>:729(get_code)': [2, 2, 8e-06, 2.4e-05]}, 'children': {'<frozen importlib._bootstrap_external>:50(_path_join)': [4, 4, 4.9999999999999996e-06, 1.8e-05], \"~:0(<method 'join' of 'str' objects>)\": [4, 4, 1e-06, 1e-06], '<frozen importlib._bootstrap_external>:56(_path_split)': [4, 4, 9.999999999999999e-06, 1.4e-05], \"~:0(<method 'rpartition' of 'str' objects>)\": [4, 4, 2e-06, 2e-06]}, 'display_name': '<frozen importlib._bootstrap_external>:246(cache_from_source)'}, '<frozen importlib._bootstrap_external>:1210(_get_spec)': {'stats': [5, 5, 1.6e-05, 5.8e-05], 'callers': {'<frozen importlib._bootstrap_external>:1215(find_spec)': [5, 5, 1.6e-05, 5.8e-05]}, 'children': {'<frozen importlib._bootstrap_external>:892(__init__)': [3, 3, 4.9999999999999996e-06, 4.9999999999999996e-06], '<frozen importlib._bootstrap_external>:513(spec_from_file_location)': [5, 5, 2.6e-05, 3.4e-05], '<frozen importlib._bootstrap_external>:786(__init__)': [2, 2, 3e-06, 3e-06]}, 'display_name': '<frozen importlib._bootstrap_external>:1210(_get_spec)'}, '<frozen importlib._bootstrap>:856(__exit__)': {'stats': [15, 15, 9.999999999999999e-06, 1.3e-05], 'callers': {'<frozen importlib._bootstrap>:879(_find_spec)': [15, 15, 9.999999999999999e-06, 1.3e-05]}, 'children': {'~:0(<built-in method _imp.release_lock>)': [15, 15, 3e-06, 3e-06]}, 'display_name': '<frozen importlib._bootstrap>:856(__exit__)'}, '~:0(<built-in method _imp.acquire_lock>)': {'stats': [15, 15, 4e-06, 4e-06], 'callers': {'<frozen importlib._bootstrap>:852(__enter__)': [15, 15, 4e-06, 4e-06]}, 'children': {}, 'display_name': '~:0(<built-in method _imp.acquire_lock>)'}, '~:0(<built-in method posix.getcwd>)': {'stats': [10, 10, 3.7e-05, 3.7e-05], 'callers': {'<frozen importlib._bootstrap_external>:1064(_path_importer_cache)': [10, 10, 3.7e-05, 3.7e-05]}, 'children': {}, 'display_name': '~:0(<built-in method posix.getcwd>)'}, '~:0(<built-in method _imp.exec_dynamic>)': {'stats': [3, 3, 4e-06, 4e-06], 'callers': {'<frozen importlib._bootstrap>:214(_call_with_frames_removed)': [3, 3, 4e-06, 4e-06]}, 'children': {}, 'display_name': '~:0(<built-in method _imp.exec_dynamic>)'}, '<frozen importlib._bootstrap>:35(_new_module)': {'stats': [2, 2, 4.9999999999999996e-06, 4.9999999999999996e-06], 'callers': {'<frozen importlib._bootstrap>:570(module_from_spec)': [2, 2, 4.9999999999999996e-06, 4.9999999999999996e-06]}, 'children': {}, 'display_name': '<frozen importlib._bootstrap>:35(_new_module)'}, '~:0(<built-in method math.exp>)': {'stats': [1, 1, 3e-06, 3e-06], 'callers': {'/home/lion/anaconda3/lib/python3.5/random.py:37(<module>)': [1, 1, 3e-06, 3e-06]}, 'children': {}, 'display_name': '~:0(<built-in method math.exp>)'}, '<frozen importlib._bootstrap>:939(_find_and_load_unlocked)': {'stats': [1, 5, 2.2e-05, 0.005758], 'callers': {'<frozen importlib._bootstrap>:966(_find_and_load)': [5, 1, 2.2e-05, 0.005758]}, 'children': {'<frozen importlib._bootstrap>:879(_find_spec)': [5, 5, 8.4e-05, 0.001763], \"~:0(<method 'rpartition' of 'str' objects>)\": [5, 5, 4.9999999999999996e-06, 4.9999999999999996e-06], '<frozen importlib._bootstrap>:659(_load_unlocked)': [5, 1, 4.9999999999999996e-05, 0.005412999999999999]}, 'display_name': '<frozen importlib._bootstrap>:939(_find_and_load_unlocked)'}, '<frozen importlib._bootstrap_external>:786(__init__)': {'stats': [2, 2, 3e-06, 3e-06], 'callers': {'<frozen importlib._bootstrap_external>:1210(_get_spec)': [2, 2, 3e-06, 3e-06]}, 'children': {}, 'display_name': '<frozen importlib._bootstrap_external>:786(__init__)'}, '<frozen importlib._bootstrap>:879(_find_spec)': {'stats': [5, 5, 8.4e-05, 0.001763], 'callers': {'<frozen importlib._bootstrap>:939(_find_and_load_unlocked)': [5, 5, 8.4e-05, 0.001763]}, 'children': {'<frozen importlib._bootstrap>:856(__exit__)': [15, 15, 9.999999999999999e-06, 1.3e-05], '<frozen importlib._bootstrap>:852(__enter__)': [15, 15, 9.999999999999999e-06, 1.4e-05], '<frozen importlib._bootstrap>:789(find_spec)': [5, 5, 7e-06, 1.2e-05], '<frozen importlib._bootstrap>:716(find_spec)': [5, 5, 8e-06, 2.1e-05], '<frozen importlib._bootstrap_external>:1133(find_spec)': [5, 5, 1.1e-05, 0.001619]}, 'display_name': '<frozen importlib._bootstrap>:879(_find_spec)'}, \"~:0(<method 'union' of 'set' objects>)\": {'stats': [1, 1, 1.1e-05, 1.1e-05], 'callers': {'/home/lion/anaconda3/lib/python3.5/hashlib.py:53(<module>)': [1, 1, 1.1e-05, 1.1e-05]}, 'children': {}, 'display_name': \"~:0(<method 'union' of 'set' objects>)\"}, '<frozen importlib._bootstrap>:852(__enter__)': {'stats': [15, 15, 9.999999999999999e-06, 1.4e-05], 'callers': {'<frozen importlib._bootstrap>:879(_find_spec)': [15, 15, 9.999999999999999e-06, 1.4e-05]}, 'children': {'~:0(<built-in method _imp.acquire_lock>)': [15, 15, 4e-06, 4e-06]}, 'display_name': '<frozen importlib._bootstrap>:852(__enter__)'}, '<frozen importlib._bootstrap>:314(__enter__)': {'stats': [5, 5, 8e-06, 8e-06], 'callers': {'<frozen importlib._bootstrap>:659(_load_unlocked)': [5, 5, 8e-06, 8e-06]}, 'children': {}, 'display_name': '<frozen importlib._bootstrap>:314(__enter__)'}, '<frozen importlib._bootstrap>:419(parent)': {'stats': [5, 5, 9.999999999999999e-06, 1.4e-05], 'callers': {'<frozen importlib._bootstrap>:510(_init_module_attrs)': [5, 5, 9.999999999999999e-06, 1.4e-05]}, 'children': {\"~:0(<method 'rpartition' of 'str' objects>)\": [5, 5, 4e-06, 4e-06]}, 'display_name': '<frozen importlib._bootstrap>:419(parent)'}, '<frozen importlib._bootstrap_external>:1133(find_spec)': {'stats': [5, 5, 1.1e-05, 0.001619], 'callers': {'<frozen importlib._bootstrap>:879(_find_spec)': [5, 5, 1.1e-05, 0.001619]}, 'children': {'<frozen importlib._bootstrap_external>:1101(_get_spec)': [5, 5, 9.3e-05, 0.0016079999999999998]}, 'display_name': '<frozen importlib._bootstrap_external>:1133(find_spec)'}, '<frozen importlib._bootstrap>:996(_handle_fromlist)': {'stats': [8, 8, 9.999999999999999e-06, 2.9999999999999997e-05], 'callers': {'/home/lion/anaconda3/lib/python3.5/random.py:37(<module>)': [7, 7, 9e-06, 2.6e-05], '/home/lion/anaconda3/lib/python3.5/hashlib.py:53(<module>)': [1, 1, 1e-06, 4e-06]}, 'children': {'~:0(<built-in method builtins.hasattr>)': [8, 8, 1.9999999999999998e-05, 1.9999999999999998e-05]}, 'display_name': '<frozen importlib._bootstrap>:996(_handle_fromlist)'}, '<frozen importlib._bootstrap_external>:729(get_code)': {'stats': [2, 2, 2.7e-05, 0.000468], 'callers': {'<frozen importlib._bootstrap_external>:659(exec_module)': [2, 2, 2.7e-05, 0.000468]}, 'children': {'<frozen importlib._bootstrap_external>:382(_check_name_wrapper)': [2, 2, 4e-06, 4.9999999999999996e-06], '<frozen importlib._bootstrap_external>:816(get_data)': [2, 2, 6.4e-05, 8.499999999999999e-05], '<frozen importlib._bootstrap_external>:826(path_stats)': [2, 2, 6e-06, 1.8999999999999998e-05], '<frozen importlib._bootstrap_external>:246(cache_from_source)': [2, 2, 8e-06, 2.4e-05], '<frozen importlib._bootstrap_external>:419(_validate_bytecode_header)': [2, 2, 2.6e-05, 3.7e-05], '<frozen importlib._bootstrap_external>:474(_compile_bytecode)': [2, 2, 1.4e-05, 0.000269], '<frozen importlib._bootstrap_external>:366(_verbose_message)': [2, 2, 2e-06, 2e-06]}, 'display_name': '<frozen importlib._bootstrap_external>:729(get_code)'}, '<frozen importlib._bootstrap>:170(__exit__)': {'stats': [5, 5, 9e-06, 3.9999999999999996e-05], 'callers': {'<frozen importlib._bootstrap>:966(_find_and_load)': [5, 5, 9e-06, 3.9999999999999996e-05]}, 'children': {'<frozen importlib._bootstrap>:119(release)': [5, 5, 2.7e-05, 3.1e-05]}, 'display_name': '<frozen importlib._bootstrap>:170(__exit__)'}, '<frozen importlib._bootstrap_external>:911(exec_module)': {'stats': [3, 3, 9e-06, 2.1e-05], 'callers': {'<frozen importlib._bootstrap>:659(_load_unlocked)': [3, 3, 9e-06, 2.1e-05]}, 'children': {'<frozen importlib._bootstrap>:214(_call_with_frames_removed)': [3, 3, 6e-06, 9.999999999999999e-06], '<frozen importlib._bootstrap_external>:366(_verbose_message)': [3, 3, 2e-06, 2e-06]}, 'display_name': '<frozen importlib._bootstrap_external>:911(exec_module)'}, '<frozen importlib._bootstrap>:427(has_location)': {'stats': [5, 5, 1e-06, 1e-06], 'callers': {'<frozen importlib._bootstrap>:510(_init_module_attrs)': [5, 5, 1e-06, 1e-06]}, 'children': {}, 'display_name': '<frozen importlib._bootstrap>:427(has_location)'}, '~:0(<function Random.seed at 0x7f2a9c95e158>)': {'stats': [1, 1, 1.6e-05, 1.6e-05], 'callers': {'/home/lion/anaconda3/lib/python3.5/random.py:93(seed)': [1, 1, 1.6e-05, 1.6e-05]}, 'children': {}, 'display_name': '~:0(<function Random.seed at 0x7f2a9c95e158>)'}, '~:0(<built-in method builtins.len>)': {'stats': [8, 8, 3e-06, 3e-06], 'callers': {'<frozen importlib._bootstrap_external>:419(_validate_bytecode_header)': [4, 4, 1e-06, 1e-06], '<frozen importlib._bootstrap_external>:56(_path_split)': [4, 4, 2e-06, 2e-06]}, 'children': {}, 'display_name': '~:0(<built-in method builtins.len>)'}, '<frozen importlib._bootstrap>:310(__init__)': {'stats': [5, 5, 6e-06, 6e-06], 'callers': {'<frozen importlib._bootstrap>:659(_load_unlocked)': [5, 5, 6e-06, 6e-06]}, 'children': {}, 'display_name': '<frozen importlib._bootstrap>:310(__init__)'}, '~:0(<built-in method builtins.any>)': {'stats': [5, 5, 8e-06, 1.7e-05], 'callers': {'<frozen importlib._bootstrap>:321(__exit__)': [5, 5, 8e-06, 1.7e-05]}, 'children': {'<frozen importlib._bootstrap>:324(<genexpr>)': [20, 20, 9e-06, 9e-06]}, 'display_name': '~:0(<built-in method builtins.any>)'}, '~:0(<built-in method _hashlib.openssl_sha384>)': {'stats': [1, 1, 1e-06, 1e-06], 'callers': {'/home/lion/anaconda3/lib/python3.5/hashlib.py:98(__get_openssl_constructor)': [1, 1, 1e-06, 1e-06]}, 'children': {}, 'display_name': '~:0(<built-in method _hashlib.openssl_sha384>)'}, '<frozen importlib._bootstrap>:159(__init__)': {'stats': [5, 5, 8e-06, 8e-06], 'callers': {'<frozen importlib._bootstrap>:966(_find_and_load)': [5, 5, 8e-06, 8e-06]}, 'children': {}, 'display_name': '<frozen importlib._bootstrap>:159(__init__)'}, '<frozen importlib._bootstrap>:659(_load_unlocked)': {'stats': [1, 5, 4.9999999999999996e-05, 0.005412999999999999], 'callers': {'<frozen importlib._bootstrap>:939(_find_and_load_unlocked)': [5, 1, 4.9999999999999996e-05, 0.005412999999999999]}, 'children': {'<frozen importlib._bootstrap_external>:911(exec_module)': [3, 3, 9e-06, 2.1e-05], '<frozen importlib._bootstrap>:321(__exit__)': [5, 5, 2.4e-05, 4.4999999999999996e-05], '<frozen importlib._bootstrap>:570(module_from_spec)': [5, 5, 1.8e-05, 0.002584], '<frozen importlib._bootstrap>:314(__enter__)': [5, 5, 8e-06, 8e-06], '<frozen importlib._bootstrap_external>:659(exec_module)': [2, 1, 1.3e-05, 0.005325], '<frozen importlib._bootstrap>:310(__init__)': [5, 5, 6e-06, 6e-06], '~:0(<built-in method builtins.hasattr>)': [5, 5, 3e-06, 3e-06]}, 'display_name': '<frozen importlib._bootstrap>:659(_load_unlocked)'}, '<frozen importlib._bootstrap_external>:342(_get_cached)': {'stats': [5, 5, 1.9999999999999998e-05, 6.9e-05], 'callers': {'<frozen importlib._bootstrap>:406(cached)': [5, 5, 1.9999999999999998e-05, 6.9e-05]}, 'children': {\"~:0(<method 'endswith' of 'str' objects>)\": [8, 8, 9.999999999999999e-06, 9.999999999999999e-06], '<frozen importlib._bootstrap_external>:246(cache_from_source)': [2, 2, 1.9999999999999998e-05, 3.9e-05]}, 'display_name': '<frozen importlib._bootstrap_external>:342(_get_cached)'}, '<frozen importlib._bootstrap_external>:474(_compile_bytecode)': {'stats': [2, 2, 1.4e-05, 0.000269], 'callers': {'<frozen importlib._bootstrap_external>:729(get_code)': [2, 2, 1.4e-05, 0.000269]}, 'children': {'<frozen importlib._bootstrap_external>:366(_verbose_message)': [2, 2, 3e-06, 3e-06], '~:0(<built-in method marshal.loads>)': [2, 2, 0.00024599999999999996, 0.00024599999999999996], '~:0(<built-in method _imp._fix_co_filename>)': [2, 2, 4.9999999999999996e-06, 4.9999999999999996e-06], '~:0(<built-in method builtins.isinstance>)': [2, 2, 1e-06, 1e-06]}, 'display_name': '<frozen importlib._bootstrap_external>:474(_compile_bytecode)'}, '<frozen importlib._bootstrap>:406(cached)': {'stats': [7, 7, 1.3e-05, 8.2e-05], 'callers': {'<frozen importlib._bootstrap>:510(_init_module_attrs)': [7, 7, 1.3e-05, 8.2e-05]}, 'children': {'<frozen importlib._bootstrap_external>:342(_get_cached)': [5, 5, 1.9999999999999998e-05, 6.9e-05]}, 'display_name': '<frozen importlib._bootstrap>:406(cached)'}, '<frozen importlib._bootstrap_external>:366(_verbose_message)': {'stats': [132, 132, 8.7e-05, 8.7e-05], 'callers': {'<frozen importlib._bootstrap_external>:729(get_code)': [2, 2, 2e-06, 2e-06], '<frozen importlib._bootstrap_external>:1215(find_spec)': [122, 122, 7.3e-05, 7.3e-05], '<frozen importlib._bootstrap_external>:903(create_module)': [3, 3, 7e-06, 7e-06], '<frozen importlib._bootstrap_external>:474(_compile_bytecode)': [2, 2, 3e-06, 3e-06], '<frozen importlib._bootstrap_external>:911(exec_module)': [3, 3, 2e-06, 2e-06]}, 'children': {}, 'display_name': '<frozen importlib._bootstrap_external>:366(_verbose_message)'}, '<frozen importlib._bootstrap_external>:419(_validate_bytecode_header)': {'stats': [2, 2, 2.6e-05, 3.7e-05], 'callers': {'<frozen importlib._bootstrap_external>:729(get_code)': [2, 2, 2.6e-05, 3.7e-05]}, 'children': {'~:0(<built-in method builtins.len>)': [4, 4, 1e-06, 1e-06], '<frozen importlib._bootstrap_external>:45(_r_long)': [4, 4, 6e-06, 9.999999999999999e-06]}, 'display_name': '<frozen importlib._bootstrap_external>:419(_validate_bytecode_header)'}, '~:0(<built-in method from_bytes>)': {'stats': [5, 5, 1.2e-05, 1.2e-05], 'callers': {'/home/lion/anaconda3/lib/python3.5/random.py:93(seed)': [1, 1, 8e-06, 8e-06], '<frozen importlib._bootstrap_external>:45(_r_long)': [4, 4, 4e-06, 4e-06]}, 'children': {}, 'display_name': '~:0(<built-in method from_bytes>)'}, '~:0(<built-in method math.log>)': {'stats': [2, 2, 2e-06, 2e-06], 'callers': {'/home/lion/anaconda3/lib/python3.5/random.py:37(<module>)': [2, 2, 2e-06, 2e-06]}, 'children': {}, 'display_name': '~:0(<built-in method math.log>)'}, '<frozen importlib._bootstrap_external>:34(_relax_case)': {'stats': [26, 26, 4.9999999999999996e-06, 4.9999999999999996e-06], 'callers': {'<frozen importlib._bootstrap_external>:1215(find_spec)': [26, 26, 4.9999999999999996e-06, 4.9999999999999996e-06]}, 'children': {}, 'display_name': '<frozen importlib._bootstrap_external>:34(_relax_case)'}, '~:0(<built-in method _hashlib.openssl_sha224>)': {'stats': [1, 1, 1e-06, 1e-06], 'callers': {'/home/lion/anaconda3/lib/python3.5/hashlib.py:98(__get_openssl_constructor)': [1, 1, 1e-06, 1e-06]}, 'children': {}, 'display_name': '~:0(<built-in method _hashlib.openssl_sha224>)'}, '/home/lion/anaconda3/lib/python3.5/random.py:37(<module>)': {'stats': [1, 1, 0.000101, 0.005012], 'callers': {'~:0(<built-in method builtins.exec>)': [1, 1, 0.000101, 0.005012]}, 'children': {'/home/lion/anaconda3/lib/python3.5/random.py:84(__init__)': [1, 1, 4e-06, 0.000252], '~:0(<built-in method math.log>)': [2, 2, 2e-06, 2e-06], '~:0(<built-in method builtins.__build_class__>)': [2, 2, 0.000101, 0.000128], '<frozen importlib._bootstrap>:966(_find_and_load)': [3, 3, 2.6e-05, 0.0044989999999999995], '~:0(<built-in method math.exp>)': [1, 1, 3e-06, 3e-06], '<frozen importlib._bootstrap>:996(_handle_fromlist)': [7, 7, 9e-06, 2.6e-05], '~:0(<built-in method math.sqrt>)': [1, 1, 1e-06, 1e-06]}, 'display_name': 'random.py:37(<module>)'}, '~:0(<built-in method _hashlib.openssl_sha256>)': {'stats': [1, 1, 1e-06, 1e-06], 'callers': {'/home/lion/anaconda3/lib/python3.5/hashlib.py:98(__get_openssl_constructor)': [1, 1, 1e-06, 1e-06]}, 'children': {}, 'display_name': '~:0(<built-in method _hashlib.openssl_sha256>)'}, '<frozen importlib._bootstrap_external>:52(<listcomp>)': {'stats': [126, 126, 0.000166, 0.000251], 'callers': {'<frozen importlib._bootstrap_external>:50(_path_join)': [126, 126, 0.000166, 0.000251]}, 'children': {\"~:0(<method 'rstrip' of 'str' objects>)\": [256, 256, 8.499999999999999e-05, 8.499999999999999e-05]}, 'display_name': '<frozen importlib._bootstrap_external>:52(<listcomp>)'}, '<frozen importlib._bootstrap>:570(module_from_spec)': {'stats': [5, 5, 1.8e-05, 0.002584], 'callers': {'<frozen importlib._bootstrap>:659(_load_unlocked)': [5, 5, 1.8e-05, 0.002584]}, 'children': {'<frozen importlib._bootstrap_external>:656(create_module)': [2, 2, 0.0, 0.0], '~:0(<built-in method builtins.hasattr>)': [5, 5, 1e-06, 1e-06], '<frozen importlib._bootstrap>:35(_new_module)': [2, 2, 4.9999999999999996e-06, 4.9999999999999996e-06], '<frozen importlib._bootstrap_external>:903(create_module)': [3, 3, 2.4e-05, 0.002375], '<frozen importlib._bootstrap>:510(_init_module_attrs)': [5, 5, 4.9e-05, 0.000185]}, 'display_name': '<frozen importlib._bootstrap>:570(module_from_spec)'}, '<frozen importlib._bootstrap_external>:78(_path_is_mode_type)': {'stats': [5, 5, 1.1e-05, 4.4999999999999996e-05], 'callers': {'<frozen importlib._bootstrap_external>:87(_path_isfile)': [5, 5, 1.1e-05, 4.4999999999999996e-05]}, 'children': {'<frozen importlib._bootstrap_external>:68(_path_stat)': [5, 5, 4.9999999999999996e-06, 3.4e-05]}, 'display_name': '<frozen importlib._bootstrap_external>:78(_path_is_mode_type)'}, '<frozen importlib._bootstrap_external>:382(_check_name_wrapper)': {'stats': [2, 2, 4e-06, 4.9999999999999996e-06], 'callers': {'<frozen importlib._bootstrap_external>:729(get_code)': [2, 2, 4e-06, 4.9999999999999996e-06]}, 'children': {'<frozen importlib._bootstrap_external>:811(get_filename)': [2, 2, 1e-06, 1e-06]}, 'display_name': '<frozen importlib._bootstrap_external>:382(_check_name_wrapper)'}, '<frozen importlib._bootstrap_external>:816(get_data)': {'stats': [2, 2, 6.4e-05, 8.499999999999999e-05], 'callers': {'<frozen importlib._bootstrap_external>:729(get_code)': [2, 2, 6.4e-05, 8.499999999999999e-05]}, 'children': {\"~:0(<method 'read' of '_io.FileIO' objects>)\": [2, 2, 2.1e-05, 2.1e-05]}, 'display_name': '<frozen importlib._bootstrap_external>:816(get_data)'}, '<frozen importlib._bootstrap_external>:1215(find_spec)': {'stats': [26, 26, 0.00043, 0.001418], 'callers': {'<frozen importlib._bootstrap_external>:1101(_get_spec)': [26, 26, 0.00043, 0.001418]}, 'children': {'<frozen importlib._bootstrap_external>:50(_path_join)': [122, 122, 0.000163, 0.00044899999999999996], '<frozen importlib._bootstrap_external>:34(_relax_case)': [26, 26, 4.9999999999999996e-06, 4.9999999999999996e-06], '<frozen importlib._bootstrap_external>:87(_path_isfile)': [5, 5, 8e-06, 5.3e-05], '<frozen importlib._bootstrap_external>:366(_verbose_message)': [122, 122, 7.3e-05, 7.3e-05], '<frozen importlib._bootstrap_external>:1210(_get_spec)': [5, 5, 1.6e-05, 5.8e-05], \"~:0(<method 'format' of 'str' objects>)\": [122, 122, 0.00013199999999999998, 0.00013199999999999998], \"~:0(<method 'rpartition' of 'str' objects>)\": [26, 26, 8e-06, 8e-06], '<frozen importlib._bootstrap_external>:68(_path_stat)': [26, 26, 2.3e-05, 0.00020999999999999998]}, 'display_name': '<frozen importlib._bootstrap_external>:1215(find_spec)'}, '<frozen importlib._bootstrap_external>:903(create_module)': {'stats': [3, 3, 2.4e-05, 0.002375], 'callers': {'<frozen importlib._bootstrap>:570(module_from_spec)': [3, 3, 2.4e-05, 0.002375]}, 'children': {'<frozen importlib._bootstrap>:214(_call_with_frames_removed)': [3, 3, 9e-06, 0.0023439999999999997], '<frozen importlib._bootstrap_external>:366(_verbose_message)': [3, 3, 7e-06, 7e-06]}, 'display_name': '<frozen importlib._bootstrap_external>:903(create_module)'}, '/home/lion/anaconda3/lib/python3.5/random.py:639(SystemRandom)': {'stats': [1, 1, 7e-06, 7e-06], 'callers': {'~:0(<built-in method builtins.__build_class__>)': [1, 1, 7e-06, 7e-06]}, 'children': {}, 'display_name': 'random.py:639(SystemRandom)'}, '~:0(<built-in method builtins.__build_class__>)': {'stats': [2, 2, 0.000101, 0.000128], 'callers': {'/home/lion/anaconda3/lib/python3.5/random.py:37(<module>)': [2, 2, 0.000101, 0.000128]}, 'children': {'/home/lion/anaconda3/lib/python3.5/random.py:639(SystemRandom)': [1, 1, 7e-06, 7e-06], '/home/lion/anaconda3/lib/python3.5/random.py:68(Random)': [1, 1, 1.9999999999999998e-05, 1.9999999999999998e-05]}, 'display_name': '~:0(<built-in method builtins.__build_class__>)'}, '<frozen importlib._bootstrap_external>:811(get_filename)': {'stats': [2, 2, 1e-06, 1e-06], 'callers': {'<frozen importlib._bootstrap_external>:382(_check_name_wrapper)': [2, 2, 1e-06, 1e-06]}, 'children': {}, 'display_name': '<frozen importlib._bootstrap_external>:811(get_filename)'}, '<frozen importlib._bootstrap_external>:45(_r_long)': {'stats': [4, 4, 6e-06, 9.999999999999999e-06], 'callers': {'<frozen importlib._bootstrap_external>:419(_validate_bytecode_header)': [4, 4, 6e-06, 9.999999999999999e-06]}, 'children': {'~:0(<built-in method from_bytes>)': [4, 4, 4e-06, 4e-06]}, 'display_name': '<frozen importlib._bootstrap_external>:45(_r_long)'}, '<frozen importlib._bootstrap>:966(_find_and_load)': {'stats': [1, 5, 4.7e-05, 0.0058119999999999995], 'callers': {'/home/lion/anaconda3/lib/python3.5/random.py:37(<module>)': [3, 3, 2.6e-05, 0.0044989999999999995], '/home/lion/anaconda3/lib/python3.5/hashlib.py:53(<module>)': [1, 1, 1.1e-05, 0.002512], 'tree_tests.py:1(<module>)': [1, 1, 9.999999999999999e-06, 0.0058119999999999995]}, 'children': {'<frozen importlib._bootstrap>:170(__exit__)': [5, 5, 9e-06, 3.9999999999999996e-05], '<frozen importlib._bootstrap>:939(_find_and_load_unlocked)': [5, 1, 2.2e-05, 0.005758], '<frozen importlib._bootstrap>:190(cb)': [5, 5, 4e-06, 4e-06], '<frozen importlib._bootstrap>:159(__init__)': [5, 5, 8e-06, 8e-06], '<frozen importlib._bootstrap>:163(__enter__)': [5, 5, 2.4e-05, 0.000116]}, 'display_name': '<frozen importlib._bootstrap>:966(_find_and_load)'}, '<frozen importlib._bootstrap>:94(acquire)': {'stats': [5, 5, 3.1e-05, 3.1e-05], 'callers': {'<frozen importlib._bootstrap>:163(__enter__)': [5, 5, 3.1e-05, 3.1e-05]}, 'children': {'~:0(<built-in method _thread.get_ident>)': [5, 5, 0.0, 0.0]}, 'display_name': '<frozen importlib._bootstrap>:94(acquire)'}, '~:0(<built-in method _thread.allocate_lock>)': {'stats': [10, 10, 4e-06, 4e-06], 'callers': {'<frozen importlib._bootstrap>:74(__init__)': [10, 10, 4e-06, 4e-06]}, 'children': {}, 'display_name': '~:0(<built-in method _thread.allocate_lock>)'}, \"~:0(<method 'read' of '_io.FileIO' objects>)\": {'stats': [2, 2, 2.1e-05, 2.1e-05], 'callers': {'<frozen importlib._bootstrap_external>:816(get_data)': [2, 2, 2.1e-05, 2.1e-05]}, 'children': {}, 'display_name': \"~:0(<method 'read' of '_io.FileIO' objects>)\"}, '~:0(<built-in method _imp.release_lock>)': {'stats': [20, 20, 4e-06, 4e-06], 'callers': {'<frozen importlib._bootstrap>:856(__exit__)': [15, 15, 3e-06, 3e-06], '<frozen importlib._bootstrap>:163(__enter__)': [5, 5, 1e-06, 1e-06]}, 'children': {}, 'display_name': '~:0(<built-in method _imp.release_lock>)'}, '<frozen importlib._bootstrap>:225(_verbose_message)': {'stats': [5, 5, 4e-06, 4e-06], 'callers': {'<frozen importlib._bootstrap>:321(__exit__)': [5, 5, 4e-06, 4e-06]}, 'children': {}, 'display_name': '<frozen importlib._bootstrap>:225(_verbose_message)'}, '<frozen importlib._bootstrap>:716(find_spec)': {'stats': [5, 5, 8e-06, 2.1e-05], 'callers': {'<frozen importlib._bootstrap>:879(_find_spec)': [5, 5, 8e-06, 2.1e-05]}, 'children': {'~:0(<built-in method _imp.is_builtin>)': [5, 5, 1.3e-05, 1.3e-05]}, 'display_name': '<frozen importlib._bootstrap>:716(find_spec)'}, '/home/lion/anaconda3/lib/python3.5/random.py:68(Random)': {'stats': [1, 1, 1.9999999999999998e-05, 1.9999999999999998e-05], 'callers': {'~:0(<built-in method builtins.__build_class__>)': [1, 1, 1.9999999999999998e-05, 1.9999999999999998e-05]}, 'children': {}, 'display_name': 'random.py:68(Random)'}, \"~:0(<method 'format' of 'str' objects>)\": {'stats': [122, 122, 0.00013199999999999998, 0.00013199999999999998], 'callers': {'<frozen importlib._bootstrap_external>:1215(find_spec)': [122, 122, 0.00013199999999999998, 0.00013199999999999998]}, 'children': {}, 'display_name': \"~:0(<method 'format' of 'str' objects>)\"}, \"~:0(<method 'rpartition' of 'str' objects>)\": {'stats': [44, 44, 2.1e-05, 2.1e-05], 'callers': {'<frozen importlib._bootstrap_external>:1215(find_spec)': [26, 26, 8e-06, 8e-06], '<frozen importlib._bootstrap_external>:56(_path_split)': [4, 4, 2e-06, 2e-06], '<frozen importlib._bootstrap>:419(parent)': [5, 5, 4e-06, 4e-06], '<frozen importlib._bootstrap_external>:246(cache_from_source)': [4, 4, 2e-06, 2e-06], '<frozen importlib._bootstrap>:939(_find_and_load_unlocked)': [5, 5, 4.9999999999999996e-06, 4.9999999999999996e-06]}, 'children': {}, 'display_name': \"~:0(<method 'rpartition' of 'str' objects>)\"}, '/home/lion/anaconda3/lib/python3.5/hashlib.py:53(<module>)': {'stats': [1, 1, 4.2e-05, 0.002601], 'callers': {'~:0(<built-in method builtins.exec>)': [1, 1, 4.2e-05, 0.002601]}, 'children': {'<frozen importlib._bootstrap>:996(_handle_fromlist)': [1, 1, 1e-06, 4e-06], '<frozen importlib._bootstrap>:966(_find_and_load)': [1, 1, 1.1e-05, 0.002512], \"~:0(<method 'union' of 'set' objects>)\": [1, 1, 1.1e-05, 1.1e-05], '/home/lion/anaconda3/lib/python3.5/hashlib.py:98(__get_openssl_constructor)': [6, 6, 2.3e-05, 3.1e-05], '~:0(<built-in method builtins.globals>)': [6, 6, 1e-06, 1e-06]}, 'display_name': 'hashlib.py:53(<module>)'}, '~:0(<built-in method builtins.exec>)': {'stats': [1, 3, 7e-06, 0.005827], 'callers': {'<frozen importlib._bootstrap>:214(_call_with_frames_removed)': [2, 1, 4.9999999999999996e-06, 0.005013999999999999]}, 'children': {'/home/lion/anaconda3/lib/python3.5/random.py:37(<module>)': [1, 1, 0.000101, 0.005012], '/home/lion/anaconda3/lib/python3.5/hashlib.py:53(<module>)': [1, 1, 4.2e-05, 0.002601], 'tree_tests.py:1(<module>)': [1, 1, 9.999999999999999e-06, 0.0058249999999999994]}, 'display_name': '~:0(<built-in method builtins.exec>)'}, '~:0(<built-in method _imp._fix_co_filename>)': {'stats': [2, 2, 4.9999999999999996e-06, 4.9999999999999996e-06], 'callers': {'<frozen importlib._bootstrap_external>:474(_compile_bytecode)': [2, 2, 4.9999999999999996e-06, 4.9999999999999996e-06]}, 'children': {}, 'display_name': '~:0(<built-in method _imp._fix_co_filename>)'}, '~:0(<built-in method posix.stat>)': {'stats': [33, 33, 0.00022899999999999998, 0.00022899999999999998], 'callers': {'<frozen importlib._bootstrap_external>:68(_path_stat)': [33, 33, 0.00022899999999999998, 0.00022899999999999998]}, 'children': {}, 'display_name': '~:0(<built-in method posix.stat>)'}, '~:0(<built-in method _thread.get_ident>)': {'stats': [10, 10, 4e-06, 4e-06], 'callers': {'<frozen importlib._bootstrap>:94(acquire)': [5, 5, 0.0, 0.0], '<frozen importlib._bootstrap>:119(release)': [5, 5, 4e-06, 4e-06]}, 'children': {}, 'display_name': '~:0(<built-in method _thread.get_ident>)'}, '<frozen importlib._bootstrap>:321(__exit__)': {'stats': [5, 5, 2.4e-05, 4.4999999999999996e-05], 'callers': {'<frozen importlib._bootstrap>:659(_load_unlocked)': [5, 5, 2.4e-05, 4.4999999999999996e-05]}, 'children': {'<frozen importlib._bootstrap>:225(_verbose_message)': [5, 5, 4e-06, 4e-06], '~:0(<built-in method builtins.any>)': [5, 5, 8e-06, 1.7e-05]}, 'display_name': '<frozen importlib._bootstrap>:321(__exit__)'}, '<frozen importlib._bootstrap_external>:87(_path_isfile)': {'stats': [5, 5, 8e-06, 5.3e-05], 'callers': {'<frozen importlib._bootstrap_external>:1215(find_spec)': [5, 5, 8e-06, 5.3e-05]}, 'children': {'<frozen importlib._bootstrap_external>:78(_path_is_mode_type)': [5, 5, 1.1e-05, 4.4999999999999996e-05]}, 'display_name': '<frozen importlib._bootstrap_external>:87(_path_isfile)'}, '<frozen importlib._bootstrap>:789(find_spec)': {'stats': [5, 5, 7e-06, 1.2e-05], 'callers': {'<frozen importlib._bootstrap>:879(_find_spec)': [5, 5, 7e-06, 1.2e-05]}, 'children': {'~:0(<built-in method _imp.is_frozen>)': [5, 5, 4.9999999999999996e-06, 4.9999999999999996e-06]}, 'display_name': '<frozen importlib._bootstrap>:789(find_spec)'}, 'tree_tests.py:1(<module>)': {'stats': [1, 1, 9.999999999999999e-06, 0.0058249999999999994], 'callers': {'~:0(<built-in method builtins.exec>)': [1, 1, 9.999999999999999e-06, 0.0058249999999999994]}, 'children': {'tree_tests.py:3(test)': [1, 1, 3e-06, 3e-06], '<frozen importlib._bootstrap>:966(_find_and_load)': [1, 1, 9.999999999999999e-06, 0.0058119999999999995]}, 'display_name': 'tree_tests.py:1(<module>)'}, '~:0(<built-in method builtins.globals>)': {'stats': [6, 6, 1e-06, 1e-06], 'callers': {'/home/lion/anaconda3/lib/python3.5/hashlib.py:53(<module>)': [6, 6, 1e-06, 1e-06]}, 'children': {}, 'display_name': '~:0(<built-in method builtins.globals>)'}, '<frozen importlib._bootstrap_external>:56(_path_split)': {'stats': [4, 4, 9.999999999999999e-06, 1.4e-05], 'callers': {'<frozen importlib._bootstrap_external>:246(cache_from_source)': [4, 4, 9.999999999999999e-06, 1.4e-05]}, 'children': {'~:0(<built-in method builtins.len>)': [4, 4, 2e-06, 2e-06], \"~:0(<method 'rpartition' of 'str' objects>)\": [4, 4, 2e-06, 2e-06]}, 'display_name': '<frozen importlib._bootstrap_external>:56(_path_split)'}, '<frozen importlib._bootstrap>:190(cb)': {'stats': [5, 5, 4e-06, 4e-06], 'callers': {'<frozen importlib._bootstrap>:966(_find_and_load)': [5, 5, 4e-06, 4e-06]}, 'children': {}, 'display_name': '<frozen importlib._bootstrap>:190(cb)'}, '<frozen importlib._bootstrap_external>:68(_path_stat)': {'stats': [33, 33, 2.8e-05, 0.000257], 'callers': {'<frozen importlib._bootstrap_external>:1215(find_spec)': [26, 26, 2.3e-05, 0.00020999999999999998], '<frozen importlib._bootstrap_external>:78(_path_is_mode_type)': [5, 5, 4.9999999999999996e-06, 3.4e-05], '<frozen importlib._bootstrap_external>:826(path_stats)': [2, 2, 0.0, 1.3e-05]}, 'children': {'~:0(<built-in method posix.stat>)': [33, 33, 0.00022899999999999998, 0.00022899999999999998]}, 'display_name': '<frozen importlib._bootstrap_external>:68(_path_stat)'}, '<frozen importlib._bootstrap>:510(_init_module_attrs)': {'stats': [5, 5, 4.9e-05, 0.000185], 'callers': {'<frozen importlib._bootstrap>:570(module_from_spec)': [5, 5, 4.9e-05, 0.000185]}, 'children': {'<frozen importlib._bootstrap>:406(cached)': [7, 7, 1.3e-05, 8.2e-05], '<frozen importlib._bootstrap>:427(has_location)': [5, 5, 1e-06, 1e-06], '<frozen importlib._bootstrap>:419(parent)': [5, 5, 9.999999999999999e-06, 1.4e-05], '~:0(<built-in method builtins.getattr>)': [30, 30, 3.9e-05, 3.9e-05]}, 'display_name': '<frozen importlib._bootstrap>:510(_init_module_attrs)'}, '~:0(<built-in method _imp.create_dynamic>)': {'stats': [3, 3, 0.002335, 0.002335], 'callers': {'<frozen importlib._bootstrap>:214(_call_with_frames_removed)': [3, 3, 0.002335, 0.002335]}, 'children': {}, 'display_name': '~:0(<built-in method _imp.create_dynamic>)'}, '<frozen importlib._bootstrap_external>:826(path_stats)': {'stats': [2, 2, 6e-06, 1.8999999999999998e-05], 'callers': {'<frozen importlib._bootstrap_external>:729(get_code)': [2, 2, 6e-06, 1.8999999999999998e-05]}, 'children': {'<frozen importlib._bootstrap_external>:68(_path_stat)': [2, 2, 0.0, 1.3e-05]}, 'display_name': '<frozen importlib._bootstrap_external>:826(path_stats)'}, '~:0(<built-in method builtins.getattr>)': {'stats': [36, 36, 4.2e-05, 4.2e-05], 'callers': {'<frozen importlib._bootstrap>:510(_init_module_attrs)': [30, 30, 3.9e-05, 3.9e-05], '/home/lion/anaconda3/lib/python3.5/hashlib.py:98(__get_openssl_constructor)': [6, 6, 3e-06, 3e-06]}, 'children': {}, 'display_name': '~:0(<built-in method builtins.getattr>)'}, '<frozen importlib._bootstrap_external>:50(_path_join)': {'stats': [126, 126, 0.000168, 0.00046699999999999997], 'callers': {'<frozen importlib._bootstrap_external>:1215(find_spec)': [122, 122, 0.000163, 0.00044899999999999996], '<frozen importlib._bootstrap_external>:246(cache_from_source)': [4, 4, 4.9999999999999996e-06, 1.8e-05]}, 'children': {'<frozen importlib._bootstrap_external>:52(<listcomp>)': [126, 126, 0.000166, 0.000251], \"~:0(<method 'join' of 'str' objects>)\": [126, 126, 4.8e-05, 4.8e-05]}, 'display_name': '<frozen importlib._bootstrap_external>:50(_path_join)'}, '<frozen importlib._bootstrap>:214(_call_with_frames_removed)': {'stats': [1, 8, 1.7e-05, 0.005016], 'callers': {'<frozen importlib._bootstrap_external>:911(exec_module)': [3, 3, 6e-06, 9.999999999999999e-06], '<frozen importlib._bootstrap_external>:903(create_module)': [3, 3, 9e-06, 0.0023439999999999997], '<frozen importlib._bootstrap_external>:659(exec_module)': [2, 1, 2e-06, 0.005016]}, 'children': {'~:0(<built-in method _imp.exec_dynamic>)': [3, 3, 4e-06, 4e-06], '~:0(<built-in method builtins.exec>)': [2, 1, 4.9999999999999996e-06, 0.005013999999999999], '~:0(<built-in method _imp.create_dynamic>)': [3, 3, 0.002335, 0.002335]}, 'display_name': '<frozen importlib._bootstrap>:214(_call_with_frames_removed)'}, '~:0(<built-in method _hashlib.openssl_sha1>)': {'stats': [1, 1, 0.0, 0.0], 'callers': {'/home/lion/anaconda3/lib/python3.5/hashlib.py:98(__get_openssl_constructor)': [1, 1, 0.0, 0.0]}, 'children': {}, 'display_name': '~:0(<built-in method _hashlib.openssl_sha1>)'}, \"~:0(<method 'rstrip' of 'str' objects>)\": {'stats': [256, 256, 8.499999999999999e-05, 8.499999999999999e-05], 'callers': {'<frozen importlib._bootstrap_external>:52(<listcomp>)': [256, 256, 8.499999999999999e-05, 8.499999999999999e-05]}, 'children': {}, 'display_name': \"~:0(<method 'rstrip' of 'str' objects>)\"}, '<frozen importlib._bootstrap>:163(__enter__)': {'stats': [5, 5, 2.4e-05, 0.000116], 'callers': {'<frozen importlib._bootstrap>:966(_find_and_load)': [5, 5, 2.4e-05, 0.000116]}, 'children': {'~:0(<built-in method _imp.release_lock>)': [5, 5, 1e-06, 1e-06], '<frozen importlib._bootstrap>:94(acquire)': [5, 5, 3.1e-05, 3.1e-05], '<frozen importlib._bootstrap>:176(_get_module_lock)': [5, 5, 3.7e-05, 5.9999999999999995e-05]}, 'display_name': '<frozen importlib._bootstrap>:163(__enter__)'}, '<frozen importlib._bootstrap>:372(__init__)': {'stats': [5, 5, 8e-06, 8e-06], 'callers': {'<frozen importlib._bootstrap_external>:513(spec_from_file_location)': [5, 5, 8e-06, 8e-06]}, 'children': {}, 'display_name': '<frozen importlib._bootstrap>:372(__init__)'}, '~:0(<built-in method posix.urandom>)': {'stats': [1, 1, 0.000202, 0.000202], 'callers': {'/home/lion/anaconda3/lib/python3.5/random.py:93(seed)': [1, 1, 0.000202, 0.000202]}, 'children': {}, 'display_name': '~:0(<built-in method posix.urandom>)'}, '~:0(<built-in method _imp.is_frozen>)': {'stats': [5, 5, 4.9999999999999996e-06, 4.9999999999999996e-06], 'callers': {'<frozen importlib._bootstrap>:789(find_spec)': [5, 5, 4.9999999999999996e-06, 4.9999999999999996e-06]}, 'children': {}, 'display_name': '~:0(<built-in method _imp.is_frozen>)'}, '~:0(<built-in method marshal.loads>)': {'stats': [2, 2, 0.00024599999999999996, 0.00024599999999999996], 'callers': {'<frozen importlib._bootstrap_external>:474(_compile_bytecode)': [2, 2, 0.00024599999999999996, 0.00024599999999999996]}, 'children': {}, 'display_name': '~:0(<built-in method marshal.loads>)'}, '/home/lion/anaconda3/lib/python3.5/random.py:84(__init__)': {'stats': [1, 1, 4e-06, 0.000252], 'callers': {'/home/lion/anaconda3/lib/python3.5/random.py:37(<module>)': [1, 1, 4e-06, 0.000252]}, 'children': {'/home/lion/anaconda3/lib/python3.5/random.py:93(seed)': [1, 1, 1.9999999999999998e-05, 0.000248]}, 'display_name': 'random.py:84(__init__)'}, '<frozen importlib._bootstrap>:324(<genexpr>)': {'stats': [20, 20, 9e-06, 9e-06], 'callers': {'~:0(<built-in method builtins.any>)': [20, 20, 9e-06, 9e-06]}, 'children': {}, 'display_name': '<frozen importlib._bootstrap>:324(<genexpr>)'}, '<frozen importlib._bootstrap_external>:513(spec_from_file_location)': {'stats': [5, 5, 2.6e-05, 3.4e-05], 'callers': {'<frozen importlib._bootstrap_external>:1210(_get_spec)': [5, 5, 2.6e-05, 3.4e-05]}, 'children': {'<frozen importlib._bootstrap>:372(__init__)': [5, 5, 8e-06, 8e-06]}, 'display_name': '<frozen importlib._bootstrap_external>:513(spec_from_file_location)'}, '~:0(<built-in method _hashlib.openssl_md5>)': {'stats': [1, 1, 2e-06, 2e-06], 'callers': {'/home/lion/anaconda3/lib/python3.5/hashlib.py:98(__get_openssl_constructor)': [1, 1, 2e-06, 2e-06]}, 'children': {}, 'display_name': '~:0(<built-in method _hashlib.openssl_md5>)'}, '/home/lion/anaconda3/lib/python3.5/hashlib.py:98(__get_openssl_constructor)': {'stats': [6, 6, 2.3e-05, 3.1e-05], 'callers': {'/home/lion/anaconda3/lib/python3.5/hashlib.py:53(<module>)': [6, 6, 2.3e-05, 3.1e-05]}, 'children': {'~:0(<built-in method builtins.getattr>)': [6, 6, 3e-06, 3e-06], '~:0(<built-in method _hashlib.openssl_sha256>)': [1, 1, 1e-06, 1e-06], '~:0(<built-in method _hashlib.openssl_md5>)': [1, 1, 2e-06, 2e-06], '~:0(<built-in method _hashlib.openssl_sha224>)': [1, 1, 1e-06, 1e-06], '~:0(<built-in method _hashlib.openssl_sha512>)': [1, 1, 0.0, 0.0], '~:0(<built-in method _hashlib.openssl_sha1>)': [1, 1, 0.0, 0.0], '~:0(<built-in method _hashlib.openssl_sha384>)': [1, 1, 1e-06, 1e-06]}, 'display_name': 'hashlib.py:98(__get_openssl_constructor)'}, '<frozen importlib._bootstrap>:176(_get_module_lock)': {'stats': [5, 5, 3.7e-05, 5.9999999999999995e-05], 'callers': {'<frozen importlib._bootstrap>:163(__enter__)': [5, 5, 3.7e-05, 5.9999999999999995e-05]}, 'children': {'<frozen importlib._bootstrap>:74(__init__)': [5, 5, 1.8999999999999998e-05, 2.3e-05]}, 'display_name': '<frozen importlib._bootstrap>:176(_get_module_lock)'}, '~:0(<built-in method _imp.is_builtin>)': {'stats': [5, 5, 1.3e-05, 1.3e-05], 'callers': {'<frozen importlib._bootstrap>:716(find_spec)': [5, 5, 1.3e-05, 1.3e-05]}, 'children': {}, 'display_name': '~:0(<built-in method _imp.is_builtin>)'}};\n",
"var sv_base_size = 1000;\n",
"function sv_build_hierarchy(\n",
"root_name, depth, cutoff, node_size, parent_name, call_stack) {\n",
"// We track the call stack to avoid displaying recursive calls.\n",
"if (call_stack == null) {\n",
"var call_stack = Immutable.Set([root_name]);\n",
"} else {\n",
"var call_stack = call_stack.add(root_name);\n",
"}\n",
"var data = {};\n",
"data['name'] = root_name;\n",
"data['display_name'] = stats[root_name]['display_name'];\n",
"data['size'] = node_size;\n",
"data['cumulative'] = stats[root_name]['stats'][3];\n",
"if (parent_name == null) {\n",
"// This should only happen once: for the root node.\n",
"data['parent_name'] = root_name;\n",
"var parent_time = data['cumulative'];\n",
"} else {\n",
"data['parent_name'] = parent_name;\n",
"// the amount of time spent in root_name when it was called by parent_time\n",
"var parent_time = stats[root_name]['callers'][parent_name][3];\n",
"}\n",
"if (depth !== 0 && _.size(stats[root_name]['children']) !== 0) {\n",
"// figure out the child sizes\n",
"// we do this here because it needs to be correct before\n",
"// heading further into the call stack\n",
"var child_sizes = {};\n",
"var size_of_children = 0;\n",
"for (var child_name in stats[root_name]['children']) {\n",
"// the amount of time spent in a child when it was called by root_name\n",
"var child_time = stats[child_name]['callers'][root_name][3];\n",
"child_sizes[child_name] = child_time / parent_time * node_size;\n",
"size_of_children += child_sizes[child_name];\n",
"}\n",
"// if the children add up to be larger than the parent\n",
"// then normalize them to the parent size\n",
"if (size_of_children > node_size) {\n",
"for (var child_name in stats[root_name]['children']) {\n",
"child_sizes[child_name] *= (node_size / size_of_children);\n",
"}\n",
"}\n",
"data['children'] = [];\n",
"for (var child_name in stats[root_name]['children']) {\n",
"// Make sure we're not recursing into a function\n",
"// that's already on the stack.\n",
"if (call_stack.contains(child_name)) {\n",
"continue;\n",
"}\n",
"// If this child is so small that it's less than some cutoff\n",
"// size of its parent we'll add this child but go no deeper.\n",
"var child_time = stats[child_name]['callers'][root_name][3];\n",
"var new_depth = depth - 1;\n",
"if (child_time / parent_time < cutoff) {\n",
"new_depth = 0;\n",
"}\n",
"data['children'].push(\n",
"sv_build_hierarchy(\n",
"child_name, new_depth, cutoff, child_sizes[child_name],\n",
"root_name, call_stack));\n",
"}\n",
"if (size_of_children < node_size) {\n",
"// make a child representing the internal time of this function\n",
"var time_in_children = _.reduce(\n",
"stats[root_name]['children'],\n",
"function (sum, child) {\n",
"return sum + child[3];\n",
"},\n",
"0\n",
");\n",
"data['children'].push({\n",
"name: root_name,\n",
"display_name: data['display_name'],\n",
"parent_name: data['parent_name'],\n",
"cumulative: stats[root_name]['stats'][3],\n",
"size: Math.max(\n",
"0, (parent_time - time_in_children) / parent_time * node_size)\n",
"});\n",
"}\n",
"}\n",
"return data;\n",
"}\n",
"self.onmessage = function (event) {\n",
"// Try loading JS from CDN in case snakeviz server is off\n",
"try {\n",
"importScripts(\n",
"\"https://cdnjs.cloudflare.com/ajax/libs/immutable/3.3.0/immutable.min.js\",\n",
"\"https://cdnjs.cloudflare.com/ajax/libs/lodash.js/2.4.1/lodash.compat.min.js\");\n",
"}\n",
"// If the user is offline try loading from the SnakeViz server\n",
"catch (e) {\n",
"try {\n",
"importScripts(\n",
"event.data['url'] + \"/static/vendor/immutable.min.js\",\n",
"event.data['url'] + \"/static/vendor/lodash.compat.min.js\");\n",
"}\n",
"catch (e) {\n",
"throw 'Could not load JS libraries in worker.';\n",
"}\n",
"}\n",
"var depth = event.data['depth'];\n",
"var cutoff = event.data['cutoff'];\n",
"var root_name = event.data['name'];\n",
"var parent_name = event.data['parent_name'];\n",
"self.postMessage(JSON.stringify(\n",
"sv_build_hierarchy(\n",
"root_name, depth, cutoff, sv_base_size, parent_name)));\n",
"};\n",
"</script>\n",
"<!-- Load SnakeViz JS Files -->\n",
"<script src=\"tree_tests_files/snakeviz.js\"></script>\n",
"<script src=\"tree_tests_files/drawsvg.js\"></script>\n",
"<!-- Do initial setup stuff -->\n",
"<script>\n",
"// Initialize data\n",
"$(document).ready(_.defer(function () {\n",
"var profile_data = {'<frozen importlib._bootstrap_external>:1101(_get_spec)': {'stats': [5, 5, 9.3e-05, 0.0016079999999999998], 'callers': {'<frozen importlib._bootstrap_external>:1133(find_spec)': [5, 5, 9.3e-05, 0.0016079999999999998]}, 'children': {'<frozen importlib._bootstrap_external>:1215(find_spec)': [26, 26, 0.00043, 0.001418], '~:0(<built-in method builtins.hasattr>)': [26, 26, 1.6e-05, 1.6e-05], '<frozen importlib._bootstrap_external>:1064(_path_importer_cache)': [36, 36, 3.5e-05, 7.2e-05], '~:0(<built-in method builtins.isinstance>)': [36, 36, 9e-06, 9e-06]}, 'display_name': '<frozen importlib._bootstrap_external>:1101(_get_spec)'}, '<frozen importlib._bootstrap_external>:1064(_path_importer_cache)': {'stats': [36, 36, 3.5e-05, 7.2e-05], 'callers': {'<frozen importlib._bootstrap_external>:1101(_get_spec)': [36, 36, 3.5e-05, 7.2e-05]}, 'children': {'~:0(<built-in method posix.getcwd>)': [10, 10, 3.7e-05, 3.7e-05]}, 'display_name': '<frozen importlib._bootstrap_external>:1064(_path_importer_cache)'}, '~:0(<built-in method builtins.isinstance>)': {'stats': [39, 39, 1.2e-05, 1.2e-05], 'callers': {'<frozen importlib._bootstrap_external>:1101(_get_spec)': [36, 36, 9e-06, 9e-06], '/home/lion/anaconda3/lib/python3.5/random.py:93(seed)': [1, 1, 2e-06, 2e-06], '<frozen importlib._bootstrap_external>:474(_compile_bytecode)': [2, 2, 1e-06, 1e-06]}, 'children': {}, 'display_name': '~:0(<built-in method builtins.isinstance>)'}, 'tree_tests.py:3(test)': {'stats': [1, 1, 3e-06, 3e-06], 'callers': {'tree_tests.py:1(<module>)': [1, 1, 3e-06, 3e-06]}, 'children': {}, 'display_name': 'tree_tests.py:3(test)'}, '~:0(<built-in method builtins.hasattr>)': {'stats': [44, 44, 3.9999999999999996e-05, 3.9999999999999996e-05], 'callers': {'<frozen importlib._bootstrap_external>:1101(_get_spec)': [26, 26, 1.6e-05, 1.6e-05], '<frozen importlib._bootstrap>:659(_load_unlocked)': [5, 5, 3e-06, 3e-06], '<frozen importlib._bootstrap>:570(module_from_spec)': [5, 5, 1e-06, 1e-06], '<frozen importlib._bootstrap>:996(_handle_fromlist)': [8, 8, 1.9999999999999998e-05, 1.9999999999999998e-05]}, 'children': {}, 'display_name': '~:0(<built-in method builtins.hasattr>)'}, \"~:0(<method 'join' of 'str' objects>)\": {'stats': [130, 130, 4.9e-05, 4.9e-05], 'callers': {'<frozen importlib._bootstrap_external>:50(_path_join)': [126, 126, 4.8e-05, 4.8e-05], '<frozen importlib._bootstrap_external>:246(cache_from_source)': [4, 4, 1e-06, 1e-06]}, 'children': {}, 'display_name': \"~:0(<method 'join' of 'str' objects>)\"}, \"~:0(<method 'endswith' of 'str' objects>)\": {'stats': [8, 8, 9.999999999999999e-06, 9.999999999999999e-06], 'callers': {'<frozen importlib._bootstrap_external>:342(_get_cached)': [8, 8, 9.999999999999999e-06, 9.999999999999999e-06]}, 'children': {}, 'display_name': \"~:0(<method 'endswith' of 'str' objects>)\"}, '<frozen importlib._bootstrap_external>:656(create_module)': {'stats': [2, 2, 0.0, 0.0], 'callers': {'<frozen importlib._bootstrap>:570(module_from_spec)': [2, 2, 0.0, 0.0]}, 'children': {}, 'display_name': '<frozen importlib._bootstrap_external>:656(create_module)'}, '<frozen importlib._bootstrap_external>:659(exec_module)': {'stats': [1, 2, 1.3e-05, 0.005325], 'callers': {'<frozen importlib._bootstrap>:659(_load_unlocked)': [2, 1, 1.3e-05, 0.005325]}, 'children': {'<frozen importlib._bootstrap_external>:729(get_code)': [2, 2, 2.7e-05, 0.000468], '<frozen importlib._bootstrap>:214(_call_with_frames_removed)': [2, 1, 2e-06, 0.005016]}, 'display_name': '<frozen importlib._bootstrap_external>:659(exec_module)'}, '<frozen importlib._bootstrap>:74(__init__)': {'stats': [5, 5, 1.8999999999999998e-05, 2.3e-05], 'callers': {'<frozen importlib._bootstrap>:176(_get_module_lock)': [5, 5, 1.8999999999999998e-05, 2.3e-05]}, 'children': {'~:0(<built-in method _thread.allocate_lock>)': [10, 10, 4e-06, 4e-06]}, 'display_name': '<frozen importlib._bootstrap>:74(__init__)'}, '~:0(<built-in method _hashlib.openssl_sha512>)': {'stats': [1, 1, 0.0, 0.0], 'callers': {'/home/lion/anaconda3/lib/python3.5/hashlib.py:98(__get_openssl_constructor)': [1, 1, 0.0, 0.0]}, 'children': {}, 'display_name': '~:0(<built-in method _hashlib.openssl_sha512>)'}, '<frozen importlib._bootstrap>:119(release)': {'stats': [5, 5, 2.7e-05, 3.1e-05], 'callers': {'<frozen importlib._bootstrap>:170(__exit__)': [5, 5, 2.7e-05, 3.1e-05]}, 'children': {'~:0(<built-in method _thread.get_ident>)': [5, 5, 4e-06, 4e-06]}, 'display_name': '<frozen importlib._bootstrap>:119(release)'}, '~:0(<built-in method math.sqrt>)': {'stats': [1, 1, 1e-06, 1e-06], 'callers': {'/home/lion/anaconda3/lib/python3.5/random.py:37(<module>)': [1, 1, 1e-06, 1e-06]}, 'children': {}, 'display_name': '~:0(<built-in method math.sqrt>)'}, '<frozen importlib._bootstrap_external>:892(__init__)': {'stats': [3, 3, 4.9999999999999996e-06, 4.9999999999999996e-06], 'callers': {'<frozen importlib._bootstrap_external>:1210(_get_spec)': [3, 3, 4.9999999999999996e-06, 4.9999999999999996e-06]}, 'children': {}, 'display_name': '<frozen importlib._bootstrap_external>:892(__init__)'}, '/home/lion/anaconda3/lib/python3.5/random.py:93(seed)': {'stats': [1, 1, 1.9999999999999998e-05, 0.000248], 'callers': {'/home/lion/anaconda3/lib/python3.5/random.py:84(__init__)': [1, 1, 1.9999999999999998e-05, 0.000248]}, 'children': {'~:0(<function Random.seed at 0x7f2a9c95e158>)': [1, 1, 1.6e-05, 1.6e-05], '~:0(<built-in method from_bytes>)': [1, 1, 8e-06, 8e-06], '~:0(<built-in method posix.urandom>)': [1, 1, 0.000202, 0.000202], '~:0(<built-in method builtins.isinstance>)': [1, 1, 2e-06, 2e-06]}, 'display_name': 'random.py:93(seed)'}, '<frozen importlib._bootstrap_external>:246(cache_from_source)': {'stats': [4, 4, 2.8e-05, 6.3e-05], 'callers': {'<frozen importlib._bootstrap_external>:342(_get_cached)': [2, 2, 1.9999999999999998e-05, 3.9e-05], '<frozen importlib._bootstrap_external>:729(get_code)': [2, 2, 8e-06, 2.4e-05]}, 'children': {'<frozen importlib._bootstrap_external>:50(_path_join)': [4, 4, 4.9999999999999996e-06, 1.8e-05], \"~:0(<method 'join' of 'str' objects>)\": [4, 4, 1e-06, 1e-06], '<frozen importlib._bootstrap_external>:56(_path_split)': [4, 4, 9.999999999999999e-06, 1.4e-05], \"~:0(<method 'rpartition' of 'str' objects>)\": [4, 4, 2e-06, 2e-06]}, 'display_name': '<frozen importlib._bootstrap_external>:246(cache_from_source)'}, '<frozen importlib._bootstrap_external>:1210(_get_spec)': {'stats': [5, 5, 1.6e-05, 5.8e-05], 'callers': {'<frozen importlib._bootstrap_external>:1215(find_spec)': [5, 5, 1.6e-05, 5.8e-05]}, 'children': {'<frozen importlib._bootstrap_external>:892(__init__)': [3, 3, 4.9999999999999996e-06, 4.9999999999999996e-06], '<frozen importlib._bootstrap_external>:513(spec_from_file_location)': [5, 5, 2.6e-05, 3.4e-05], '<frozen importlib._bootstrap_external>:786(__init__)': [2, 2, 3e-06, 3e-06]}, 'display_name': '<frozen importlib._bootstrap_external>:1210(_get_spec)'}, '<frozen importlib._bootstrap>:856(__exit__)': {'stats': [15, 15, 9.999999999999999e-06, 1.3e-05], 'callers': {'<frozen importlib._bootstrap>:879(_find_spec)': [15, 15, 9.999999999999999e-06, 1.3e-05]}, 'children': {'~:0(<built-in method _imp.release_lock>)': [15, 15, 3e-06, 3e-06]}, 'display_name': '<frozen importlib._bootstrap>:856(__exit__)'}, '~:0(<built-in method _imp.acquire_lock>)': {'stats': [15, 15, 4e-06, 4e-06], 'callers': {'<frozen importlib._bootstrap>:852(__enter__)': [15, 15, 4e-06, 4e-06]}, 'children': {}, 'display_name': '~:0(<built-in method _imp.acquire_lock>)'}, '~:0(<built-in method posix.getcwd>)': {'stats': [10, 10, 3.7e-05, 3.7e-05], 'callers': {'<frozen importlib._bootstrap_external>:1064(_path_importer_cache)': [10, 10, 3.7e-05, 3.7e-05]}, 'children': {}, 'display_name': '~:0(<built-in method posix.getcwd>)'}, '~:0(<built-in method _imp.exec_dynamic>)': {'stats': [3, 3, 4e-06, 4e-06], 'callers': {'<frozen importlib._bootstrap>:214(_call_with_frames_removed)': [3, 3, 4e-06, 4e-06]}, 'children': {}, 'display_name': '~:0(<built-in method _imp.exec_dynamic>)'}, '<frozen importlib._bootstrap>:35(_new_module)': {'stats': [2, 2, 4.9999999999999996e-06, 4.9999999999999996e-06], 'callers': {'<frozen importlib._bootstrap>:570(module_from_spec)': [2, 2, 4.9999999999999996e-06, 4.9999999999999996e-06]}, 'children': {}, 'display_name': '<frozen importlib._bootstrap>:35(_new_module)'}, '~:0(<built-in method math.exp>)': {'stats': [1, 1, 3e-06, 3e-06], 'callers': {'/home/lion/anaconda3/lib/python3.5/random.py:37(<module>)': [1, 1, 3e-06, 3e-06]}, 'children': {}, 'display_name': '~:0(<built-in method math.exp>)'}, '<frozen importlib._bootstrap>:939(_find_and_load_unlocked)': {'stats': [1, 5, 2.2e-05, 0.005758], 'callers': {'<frozen importlib._bootstrap>:966(_find_and_load)': [5, 1, 2.2e-05, 0.005758]}, 'children': {'<frozen importlib._bootstrap>:879(_find_spec)': [5, 5, 8.4e-05, 0.001763], \"~:0(<method 'rpartition' of 'str' objects>)\": [5, 5, 4.9999999999999996e-06, 4.9999999999999996e-06], '<frozen importlib._bootstrap>:659(_load_unlocked)': [5, 1, 4.9999999999999996e-05, 0.005412999999999999]}, 'display_name': '<frozen importlib._bootstrap>:939(_find_and_load_unlocked)'}, '<frozen importlib._bootstrap_external>:786(__init__)': {'stats': [2, 2, 3e-06, 3e-06], 'callers': {'<frozen importlib._bootstrap_external>:1210(_get_spec)': [2, 2, 3e-06, 3e-06]}, 'children': {}, 'display_name': '<frozen importlib._bootstrap_external>:786(__init__)'}, '<frozen importlib._bootstrap>:879(_find_spec)': {'stats': [5, 5, 8.4e-05, 0.001763], 'callers': {'<frozen importlib._bootstrap>:939(_find_and_load_unlocked)': [5, 5, 8.4e-05, 0.001763]}, 'children': {'<frozen importlib._bootstrap>:856(__exit__)': [15, 15, 9.999999999999999e-06, 1.3e-05], '<frozen importlib._bootstrap>:852(__enter__)': [15, 15, 9.999999999999999e-06, 1.4e-05], '<frozen importlib._bootstrap>:789(find_spec)': [5, 5, 7e-06, 1.2e-05], '<frozen importlib._bootstrap>:716(find_spec)': [5, 5, 8e-06, 2.1e-05], '<frozen importlib._bootstrap_external>:1133(find_spec)': [5, 5, 1.1e-05, 0.001619]}, 'display_name': '<frozen importlib._bootstrap>:879(_find_spec)'}, \"~:0(<method 'union' of 'set' objects>)\": {'stats': [1, 1, 1.1e-05, 1.1e-05], 'callers': {'/home/lion/anaconda3/lib/python3.5/hashlib.py:53(<module>)': [1, 1, 1.1e-05, 1.1e-05]}, 'children': {}, 'display_name': \"~:0(<method 'union' of 'set' objects>)\"}, '<frozen importlib._bootstrap>:852(__enter__)': {'stats': [15, 15, 9.999999999999999e-06, 1.4e-05], 'callers': {'<frozen importlib._bootstrap>:879(_find_spec)': [15, 15, 9.999999999999999e-06, 1.4e-05]}, 'children': {'~:0(<built-in method _imp.acquire_lock>)': [15, 15, 4e-06, 4e-06]}, 'display_name': '<frozen importlib._bootstrap>:852(__enter__)'}, '<frozen importlib._bootstrap>:314(__enter__)': {'stats': [5, 5, 8e-06, 8e-06], 'callers': {'<frozen importlib._bootstrap>:659(_load_unlocked)': [5, 5, 8e-06, 8e-06]}, 'children': {}, 'display_name': '<frozen importlib._bootstrap>:314(__enter__)'}, '<frozen importlib._bootstrap>:419(parent)': {'stats': [5, 5, 9.999999999999999e-06, 1.4e-05], 'callers': {'<frozen importlib._bootstrap>:510(_init_module_attrs)': [5, 5, 9.999999999999999e-06, 1.4e-05]}, 'children': {\"~:0(<method 'rpartition' of 'str' objects>)\": [5, 5, 4e-06, 4e-06]}, 'display_name': '<frozen importlib._bootstrap>:419(parent)'}, '<frozen importlib._bootstrap_external>:1133(find_spec)': {'stats': [5, 5, 1.1e-05, 0.001619], 'callers': {'<frozen importlib._bootstrap>:879(_find_spec)': [5, 5, 1.1e-05, 0.001619]}, 'children': {'<frozen importlib._bootstrap_external>:1101(_get_spec)': [5, 5, 9.3e-05, 0.0016079999999999998]}, 'display_name': '<frozen importlib._bootstrap_external>:1133(find_spec)'}, '<frozen importlib._bootstrap>:996(_handle_fromlist)': {'stats': [8, 8, 9.999999999999999e-06, 2.9999999999999997e-05], 'callers': {'/home/lion/anaconda3/lib/python3.5/random.py:37(<module>)': [7, 7, 9e-06, 2.6e-05], '/home/lion/anaconda3/lib/python3.5/hashlib.py:53(<module>)': [1, 1, 1e-06, 4e-06]}, 'children': {'~:0(<built-in method builtins.hasattr>)': [8, 8, 1.9999999999999998e-05, 1.9999999999999998e-05]}, 'display_name': '<frozen importlib._bootstrap>:996(_handle_fromlist)'}, '<frozen importlib._bootstrap_external>:729(get_code)': {'stats': [2, 2, 2.7e-05, 0.000468], 'callers': {'<frozen importlib._bootstrap_external>:659(exec_module)': [2, 2, 2.7e-05, 0.000468]}, 'children': {'<frozen importlib._bootstrap_external>:382(_check_name_wrapper)': [2, 2, 4e-06, 4.9999999999999996e-06], '<frozen importlib._bootstrap_external>:816(get_data)': [2, 2, 6.4e-05, 8.499999999999999e-05], '<frozen importlib._bootstrap_external>:826(path_stats)': [2, 2, 6e-06, 1.8999999999999998e-05], '<frozen importlib._bootstrap_external>:246(cache_from_source)': [2, 2, 8e-06, 2.4e-05], '<frozen importlib._bootstrap_external>:419(_validate_bytecode_header)': [2, 2, 2.6e-05, 3.7e-05], '<frozen importlib._bootstrap_external>:474(_compile_bytecode)': [2, 2, 1.4e-05, 0.000269], '<frozen importlib._bootstrap_external>:366(_verbose_message)': [2, 2, 2e-06, 2e-06]}, 'display_name': '<frozen importlib._bootstrap_external>:729(get_code)'}, '<frozen importlib._bootstrap>:170(__exit__)': {'stats': [5, 5, 9e-06, 3.9999999999999996e-05], 'callers': {'<frozen importlib._bootstrap>:966(_find_and_load)': [5, 5, 9e-06, 3.9999999999999996e-05]}, 'children': {'<frozen importlib._bootstrap>:119(release)': [5, 5, 2.7e-05, 3.1e-05]}, 'display_name': '<frozen importlib._bootstrap>:170(__exit__)'}, '<frozen importlib._bootstrap_external>:911(exec_module)': {'stats': [3, 3, 9e-06, 2.1e-05], 'callers': {'<frozen importlib._bootstrap>:659(_load_unlocked)': [3, 3, 9e-06, 2.1e-05]}, 'children': {'<frozen importlib._bootstrap>:214(_call_with_frames_removed)': [3, 3, 6e-06, 9.999999999999999e-06], '<frozen importlib._bootstrap_external>:366(_verbose_message)': [3, 3, 2e-06, 2e-06]}, 'display_name': '<frozen importlib._bootstrap_external>:911(exec_module)'}, '<frozen importlib._bootstrap>:427(has_location)': {'stats': [5, 5, 1e-06, 1e-06], 'callers': {'<frozen importlib._bootstrap>:510(_init_module_attrs)': [5, 5, 1e-06, 1e-06]}, 'children': {}, 'display_name': '<frozen importlib._bootstrap>:427(has_location)'}, '~:0(<function Random.seed at 0x7f2a9c95e158>)': {'stats': [1, 1, 1.6e-05, 1.6e-05], 'callers': {'/home/lion/anaconda3/lib/python3.5/random.py:93(seed)': [1, 1, 1.6e-05, 1.6e-05]}, 'children': {}, 'display_name': '~:0(<function Random.seed at 0x7f2a9c95e158>)'}, '~:0(<built-in method builtins.len>)': {'stats': [8, 8, 3e-06, 3e-06], 'callers': {'<frozen importlib._bootstrap_external>:419(_validate_bytecode_header)': [4, 4, 1e-06, 1e-06], '<frozen importlib._bootstrap_external>:56(_path_split)': [4, 4, 2e-06, 2e-06]}, 'children': {}, 'display_name': '~:0(<built-in method builtins.len>)'}, '<frozen importlib._bootstrap>:310(__init__)': {'stats': [5, 5, 6e-06, 6e-06], 'callers': {'<frozen importlib._bootstrap>:659(_load_unlocked)': [5, 5, 6e-06, 6e-06]}, 'children': {}, 'display_name': '<frozen importlib._bootstrap>:310(__init__)'}, '~:0(<built-in method builtins.any>)': {'stats': [5, 5, 8e-06, 1.7e-05], 'callers': {'<frozen importlib._bootstrap>:321(__exit__)': [5, 5, 8e-06, 1.7e-05]}, 'children': {'<frozen importlib._bootstrap>:324(<genexpr>)': [20, 20, 9e-06, 9e-06]}, 'display_name': '~:0(<built-in method builtins.any>)'}, '~:0(<built-in method _hashlib.openssl_sha384>)': {'stats': [1, 1, 1e-06, 1e-06], 'callers': {'/home/lion/anaconda3/lib/python3.5/hashlib.py:98(__get_openssl_constructor)': [1, 1, 1e-06, 1e-06]}, 'children': {}, 'display_name': '~:0(<built-in method _hashlib.openssl_sha384>)'}, '<frozen importlib._bootstrap>:159(__init__)': {'stats': [5, 5, 8e-06, 8e-06], 'callers': {'<frozen importlib._bootstrap>:966(_find_and_load)': [5, 5, 8e-06, 8e-06]}, 'children': {}, 'display_name': '<frozen importlib._bootstrap>:159(__init__)'}, '<frozen importlib._bootstrap>:659(_load_unlocked)': {'stats': [1, 5, 4.9999999999999996e-05, 0.005412999999999999], 'callers': {'<frozen importlib._bootstrap>:939(_find_and_load_unlocked)': [5, 1, 4.9999999999999996e-05, 0.005412999999999999]}, 'children': {'<frozen importlib._bootstrap_external>:911(exec_module)': [3, 3, 9e-06, 2.1e-05], '<frozen importlib._bootstrap>:321(__exit__)': [5, 5, 2.4e-05, 4.4999999999999996e-05], '<frozen importlib._bootstrap>:570(module_from_spec)': [5, 5, 1.8e-05, 0.002584], '<frozen importlib._bootstrap>:314(__enter__)': [5, 5, 8e-06, 8e-06], '<frozen importlib._bootstrap_external>:659(exec_module)': [2, 1, 1.3e-05, 0.005325], '<frozen importlib._bootstrap>:310(__init__)': [5, 5, 6e-06, 6e-06], '~:0(<built-in method builtins.hasattr>)': [5, 5, 3e-06, 3e-06]}, 'display_name': '<frozen importlib._bootstrap>:659(_load_unlocked)'}, '<frozen importlib._bootstrap_external>:342(_get_cached)': {'stats': [5, 5, 1.9999999999999998e-05, 6.9e-05], 'callers': {'<frozen importlib._bootstrap>:406(cached)': [5, 5, 1.9999999999999998e-05, 6.9e-05]}, 'children': {\"~:0(<method 'endswith' of 'str' objects>)\": [8, 8, 9.999999999999999e-06, 9.999999999999999e-06], '<frozen importlib._bootstrap_external>:246(cache_from_source)': [2, 2, 1.9999999999999998e-05, 3.9e-05]}, 'display_name': '<frozen importlib._bootstrap_external>:342(_get_cached)'}, '<frozen importlib._bootstrap_external>:474(_compile_bytecode)': {'stats': [2, 2, 1.4e-05, 0.000269], 'callers': {'<frozen importlib._bootstrap_external>:729(get_code)': [2, 2, 1.4e-05, 0.000269]}, 'children': {'<frozen importlib._bootstrap_external>:366(_verbose_message)': [2, 2, 3e-06, 3e-06], '~:0(<built-in method marshal.loads>)': [2, 2, 0.00024599999999999996, 0.00024599999999999996], '~:0(<built-in method _imp._fix_co_filename>)': [2, 2, 4.9999999999999996e-06, 4.9999999999999996e-06], '~:0(<built-in method builtins.isinstance>)': [2, 2, 1e-06, 1e-06]}, 'display_name': '<frozen importlib._bootstrap_external>:474(_compile_bytecode)'}, '<frozen importlib._bootstrap>:406(cached)': {'stats': [7, 7, 1.3e-05, 8.2e-05], 'callers': {'<frozen importlib._bootstrap>:510(_init_module_attrs)': [7, 7, 1.3e-05, 8.2e-05]}, 'children': {'<frozen importlib._bootstrap_external>:342(_get_cached)': [5, 5, 1.9999999999999998e-05, 6.9e-05]}, 'display_name': '<frozen importlib._bootstrap>:406(cached)'}, '<frozen importlib._bootstrap_external>:366(_verbose_message)': {'stats': [132, 132, 8.7e-05, 8.7e-05], 'callers': {'<frozen importlib._bootstrap_external>:729(get_code)': [2, 2, 2e-06, 2e-06], '<frozen importlib._bootstrap_external>:1215(find_spec)': [122, 122, 7.3e-05, 7.3e-05], '<frozen importlib._bootstrap_external>:903(create_module)': [3, 3, 7e-06, 7e-06], '<frozen importlib._bootstrap_external>:474(_compile_bytecode)': [2, 2, 3e-06, 3e-06], '<frozen importlib._bootstrap_external>:911(exec_module)': [3, 3, 2e-06, 2e-06]}, 'children': {}, 'display_name': '<frozen importlib._bootstrap_external>:366(_verbose_message)'}, '<frozen importlib._bootstrap_external>:419(_validate_bytecode_header)': {'stats': [2, 2, 2.6e-05, 3.7e-05], 'callers': {'<frozen importlib._bootstrap_external>:729(get_code)': [2, 2, 2.6e-05, 3.7e-05]}, 'children': {'~:0(<built-in method builtins.len>)': [4, 4, 1e-06, 1e-06], '<frozen importlib._bootstrap_external>:45(_r_long)': [4, 4, 6e-06, 9.999999999999999e-06]}, 'display_name': '<frozen importlib._bootstrap_external>:419(_validate_bytecode_header)'}, '~:0(<built-in method from_bytes>)': {'stats': [5, 5, 1.2e-05, 1.2e-05], 'callers': {'/home/lion/anaconda3/lib/python3.5/random.py:93(seed)': [1, 1, 8e-06, 8e-06], '<frozen importlib._bootstrap_external>:45(_r_long)': [4, 4, 4e-06, 4e-06]}, 'children': {}, 'display_name': '~:0(<built-in method from_bytes>)'}, '~:0(<built-in method math.log>)': {'stats': [2, 2, 2e-06, 2e-06], 'callers': {'/home/lion/anaconda3/lib/python3.5/random.py:37(<module>)': [2, 2, 2e-06, 2e-06]}, 'children': {}, 'display_name': '~:0(<built-in method math.log>)'}, '<frozen importlib._bootstrap_external>:34(_relax_case)': {'stats': [26, 26, 4.9999999999999996e-06, 4.9999999999999996e-06], 'callers': {'<frozen importlib._bootstrap_external>:1215(find_spec)': [26, 26, 4.9999999999999996e-06, 4.9999999999999996e-06]}, 'children': {}, 'display_name': '<frozen importlib._bootstrap_external>:34(_relax_case)'}, '~:0(<built-in method _hashlib.openssl_sha224>)': {'stats': [1, 1, 1e-06, 1e-06], 'callers': {'/home/lion/anaconda3/lib/python3.5/hashlib.py:98(__get_openssl_constructor)': [1, 1, 1e-06, 1e-06]}, 'children': {}, 'display_name': '~:0(<built-in method _hashlib.openssl_sha224>)'}, '/home/lion/anaconda3/lib/python3.5/random.py:37(<module>)': {'stats': [1, 1, 0.000101, 0.005012], 'callers': {'~:0(<built-in method builtins.exec>)': [1, 1, 0.000101, 0.005012]}, 'children': {'/home/lion/anaconda3/lib/python3.5/random.py:84(__init__)': [1, 1, 4e-06, 0.000252], '~:0(<built-in method math.log>)': [2, 2, 2e-06, 2e-06], '~:0(<built-in method builtins.__build_class__>)': [2, 2, 0.000101, 0.000128], '<frozen importlib._bootstrap>:966(_find_and_load)': [3, 3, 2.6e-05, 0.0044989999999999995], '~:0(<built-in method math.exp>)': [1, 1, 3e-06, 3e-06], '<frozen importlib._bootstrap>:996(_handle_fromlist)': [7, 7, 9e-06, 2.6e-05], '~:0(<built-in method math.sqrt>)': [1, 1, 1e-06, 1e-06]}, 'display_name': 'random.py:37(<module>)'}, '~:0(<built-in method _hashlib.openssl_sha256>)': {'stats': [1, 1, 1e-06, 1e-06], 'callers': {'/home/lion/anaconda3/lib/python3.5/hashlib.py:98(__get_openssl_constructor)': [1, 1, 1e-06, 1e-06]}, 'children': {}, 'display_name': '~:0(<built-in method _hashlib.openssl_sha256>)'}, '<frozen importlib._bootstrap_external>:52(<listcomp>)': {'stats': [126, 126, 0.000166, 0.000251], 'callers': {'<frozen importlib._bootstrap_external>:50(_path_join)': [126, 126, 0.000166, 0.000251]}, 'children': {\"~:0(<method 'rstrip' of 'str' objects>)\": [256, 256, 8.499999999999999e-05, 8.499999999999999e-05]}, 'display_name': '<frozen importlib._bootstrap_external>:52(<listcomp>)'}, '<frozen importlib._bootstrap>:570(module_from_spec)': {'stats': [5, 5, 1.8e-05, 0.002584], 'callers': {'<frozen importlib._bootstrap>:659(_load_unlocked)': [5, 5, 1.8e-05, 0.002584]}, 'children': {'<frozen importlib._bootstrap_external>:656(create_module)': [2, 2, 0.0, 0.0], '~:0(<built-in method builtins.hasattr>)': [5, 5, 1e-06, 1e-06], '<frozen importlib._bootstrap>:35(_new_module)': [2, 2, 4.9999999999999996e-06, 4.9999999999999996e-06], '<frozen importlib._bootstrap_external>:903(create_module)': [3, 3, 2.4e-05, 0.002375], '<frozen importlib._bootstrap>:510(_init_module_attrs)': [5, 5, 4.9e-05, 0.000185]}, 'display_name': '<frozen importlib._bootstrap>:570(module_from_spec)'}, '<frozen importlib._bootstrap_external>:78(_path_is_mode_type)': {'stats': [5, 5, 1.1e-05, 4.4999999999999996e-05], 'callers': {'<frozen importlib._bootstrap_external>:87(_path_isfile)': [5, 5, 1.1e-05, 4.4999999999999996e-05]}, 'children': {'<frozen importlib._bootstrap_external>:68(_path_stat)': [5, 5, 4.9999999999999996e-06, 3.4e-05]}, 'display_name': '<frozen importlib._bootstrap_external>:78(_path_is_mode_type)'}, '<frozen importlib._bootstrap_external>:382(_check_name_wrapper)': {'stats': [2, 2, 4e-06, 4.9999999999999996e-06], 'callers': {'<frozen importlib._bootstrap_external>:729(get_code)': [2, 2, 4e-06, 4.9999999999999996e-06]}, 'children': {'<frozen importlib._bootstrap_external>:811(get_filename)': [2, 2, 1e-06, 1e-06]}, 'display_name': '<frozen importlib._bootstrap_external>:382(_check_name_wrapper)'}, '<frozen importlib._bootstrap_external>:816(get_data)': {'stats': [2, 2, 6.4e-05, 8.499999999999999e-05], 'callers': {'<frozen importlib._bootstrap_external>:729(get_code)': [2, 2, 6.4e-05, 8.499999999999999e-05]}, 'children': {\"~:0(<method 'read' of '_io.FileIO' objects>)\": [2, 2, 2.1e-05, 2.1e-05]}, 'display_name': '<frozen importlib._bootstrap_external>:816(get_data)'}, '<frozen importlib._bootstrap_external>:1215(find_spec)': {'stats': [26, 26, 0.00043, 0.001418], 'callers': {'<frozen importlib._bootstrap_external>:1101(_get_spec)': [26, 26, 0.00043, 0.001418]}, 'children': {'<frozen importlib._bootstrap_external>:50(_path_join)': [122, 122, 0.000163, 0.00044899999999999996], '<frozen importlib._bootstrap_external>:34(_relax_case)': [26, 26, 4.9999999999999996e-06, 4.9999999999999996e-06], '<frozen importlib._bootstrap_external>:87(_path_isfile)': [5, 5, 8e-06, 5.3e-05], '<frozen importlib._bootstrap_external>:366(_verbose_message)': [122, 122, 7.3e-05, 7.3e-05], '<frozen importlib._bootstrap_external>:1210(_get_spec)': [5, 5, 1.6e-05, 5.8e-05], \"~:0(<method 'format' of 'str' objects>)\": [122, 122, 0.00013199999999999998, 0.00013199999999999998], \"~:0(<method 'rpartition' of 'str' objects>)\": [26, 26, 8e-06, 8e-06], '<frozen importlib._bootstrap_external>:68(_path_stat)': [26, 26, 2.3e-05, 0.00020999999999999998]}, 'display_name': '<frozen importlib._bootstrap_external>:1215(find_spec)'}, '<frozen importlib._bootstrap_external>:903(create_module)': {'stats': [3, 3, 2.4e-05, 0.002375], 'callers': {'<frozen importlib._bootstrap>:570(module_from_spec)': [3, 3, 2.4e-05, 0.002375]}, 'children': {'<frozen importlib._bootstrap>:214(_call_with_frames_removed)': [3, 3, 9e-06, 0.0023439999999999997], '<frozen importlib._bootstrap_external>:366(_verbose_message)': [3, 3, 7e-06, 7e-06]}, 'display_name': '<frozen importlib._bootstrap_external>:903(create_module)'}, '/home/lion/anaconda3/lib/python3.5/random.py:639(SystemRandom)': {'stats': [1, 1, 7e-06, 7e-06], 'callers': {'~:0(<built-in method builtins.__build_class__>)': [1, 1, 7e-06, 7e-06]}, 'children': {}, 'display_name': 'random.py:639(SystemRandom)'}, '~:0(<built-in method builtins.__build_class__>)': {'stats': [2, 2, 0.000101, 0.000128], 'callers': {'/home/lion/anaconda3/lib/python3.5/random.py:37(<module>)': [2, 2, 0.000101, 0.000128]}, 'children': {'/home/lion/anaconda3/lib/python3.5/random.py:639(SystemRandom)': [1, 1, 7e-06, 7e-06], '/home/lion/anaconda3/lib/python3.5/random.py:68(Random)': [1, 1, 1.9999999999999998e-05, 1.9999999999999998e-05]}, 'display_name': '~:0(<built-in method builtins.__build_class__>)'}, '<frozen importlib._bootstrap_external>:811(get_filename)': {'stats': [2, 2, 1e-06, 1e-06], 'callers': {'<frozen importlib._bootstrap_external>:382(_check_name_wrapper)': [2, 2, 1e-06, 1e-06]}, 'children': {}, 'display_name': '<frozen importlib._bootstrap_external>:811(get_filename)'}, '<frozen importlib._bootstrap_external>:45(_r_long)': {'stats': [4, 4, 6e-06, 9.999999999999999e-06], 'callers': {'<frozen importlib._bootstrap_external>:419(_validate_bytecode_header)': [4, 4, 6e-06, 9.999999999999999e-06]}, 'children': {'~:0(<built-in method from_bytes>)': [4, 4, 4e-06, 4e-06]}, 'display_name': '<frozen importlib._bootstrap_external>:45(_r_long)'}, '<frozen importlib._bootstrap>:966(_find_and_load)': {'stats': [1, 5, 4.7e-05, 0.0058119999999999995], 'callers': {'/home/lion/anaconda3/lib/python3.5/random.py:37(<module>)': [3, 3, 2.6e-05, 0.0044989999999999995], '/home/lion/anaconda3/lib/python3.5/hashlib.py:53(<module>)': [1, 1, 1.1e-05, 0.002512], 'tree_tests.py:1(<module>)': [1, 1, 9.999999999999999e-06, 0.0058119999999999995]}, 'children': {'<frozen importlib._bootstrap>:170(__exit__)': [5, 5, 9e-06, 3.9999999999999996e-05], '<frozen importlib._bootstrap>:939(_find_and_load_unlocked)': [5, 1, 2.2e-05, 0.005758], '<frozen importlib._bootstrap>:190(cb)': [5, 5, 4e-06, 4e-06], '<frozen importlib._bootstrap>:159(__init__)': [5, 5, 8e-06, 8e-06], '<frozen importlib._bootstrap>:163(__enter__)': [5, 5, 2.4e-05, 0.000116]}, 'display_name': '<frozen importlib._bootstrap>:966(_find_and_load)'}, '<frozen importlib._bootstrap>:94(acquire)': {'stats': [5, 5, 3.1e-05, 3.1e-05], 'callers': {'<frozen importlib._bootstrap>:163(__enter__)': [5, 5, 3.1e-05, 3.1e-05]}, 'children': {'~:0(<built-in method _thread.get_ident>)': [5, 5, 0.0, 0.0]}, 'display_name': '<frozen importlib._bootstrap>:94(acquire)'}, '~:0(<built-in method _thread.allocate_lock>)': {'stats': [10, 10, 4e-06, 4e-06], 'callers': {'<frozen importlib._bootstrap>:74(__init__)': [10, 10, 4e-06, 4e-06]}, 'children': {}, 'display_name': '~:0(<built-in method _thread.allocate_lock>)'}, \"~:0(<method 'read' of '_io.FileIO' objects>)\": {'stats': [2, 2, 2.1e-05, 2.1e-05], 'callers': {'<frozen importlib._bootstrap_external>:816(get_data)': [2, 2, 2.1e-05, 2.1e-05]}, 'children': {}, 'display_name': \"~:0(<method 'read' of '_io.FileIO' objects>)\"}, '~:0(<built-in method _imp.release_lock>)': {'stats': [20, 20, 4e-06, 4e-06], 'callers': {'<frozen importlib._bootstrap>:856(__exit__)': [15, 15, 3e-06, 3e-06], '<frozen importlib._bootstrap>:163(__enter__)': [5, 5, 1e-06, 1e-06]}, 'children': {}, 'display_name': '~:0(<built-in method _imp.release_lock>)'}, '<frozen importlib._bootstrap>:225(_verbose_message)': {'stats': [5, 5, 4e-06, 4e-06], 'callers': {'<frozen importlib._bootstrap>:321(__exit__)': [5, 5, 4e-06, 4e-06]}, 'children': {}, 'display_name': '<frozen importlib._bootstrap>:225(_verbose_message)'}, '<frozen importlib._bootstrap>:716(find_spec)': {'stats': [5, 5, 8e-06, 2.1e-05], 'callers': {'<frozen importlib._bootstrap>:879(_find_spec)': [5, 5, 8e-06, 2.1e-05]}, 'children': {'~:0(<built-in method _imp.is_builtin>)': [5, 5, 1.3e-05, 1.3e-05]}, 'display_name': '<frozen importlib._bootstrap>:716(find_spec)'}, '/home/lion/anaconda3/lib/python3.5/random.py:68(Random)': {'stats': [1, 1, 1.9999999999999998e-05, 1.9999999999999998e-05], 'callers': {'~:0(<built-in method builtins.__build_class__>)': [1, 1, 1.9999999999999998e-05, 1.9999999999999998e-05]}, 'children': {}, 'display_name': 'random.py:68(Random)'}, \"~:0(<method 'format' of 'str' objects>)\": {'stats': [122, 122, 0.00013199999999999998, 0.00013199999999999998], 'callers': {'<frozen importlib._bootstrap_external>:1215(find_spec)': [122, 122, 0.00013199999999999998, 0.00013199999999999998]}, 'children': {}, 'display_name': \"~:0(<method 'format' of 'str' objects>)\"}, \"~:0(<method 'rpartition' of 'str' objects>)\": {'stats': [44, 44, 2.1e-05, 2.1e-05], 'callers': {'<frozen importlib._bootstrap_external>:1215(find_spec)': [26, 26, 8e-06, 8e-06], '<frozen importlib._bootstrap_external>:56(_path_split)': [4, 4, 2e-06, 2e-06], '<frozen importlib._bootstrap>:419(parent)': [5, 5, 4e-06, 4e-06], '<frozen importlib._bootstrap_external>:246(cache_from_source)': [4, 4, 2e-06, 2e-06], '<frozen importlib._bootstrap>:939(_find_and_load_unlocked)': [5, 5, 4.9999999999999996e-06, 4.9999999999999996e-06]}, 'children': {}, 'display_name': \"~:0(<method 'rpartition' of 'str' objects>)\"}, '/home/lion/anaconda3/lib/python3.5/hashlib.py:53(<module>)': {'stats': [1, 1, 4.2e-05, 0.002601], 'callers': {'~:0(<built-in method builtins.exec>)': [1, 1, 4.2e-05, 0.002601]}, 'children': {'<frozen importlib._bootstrap>:996(_handle_fromlist)': [1, 1, 1e-06, 4e-06], '<frozen importlib._bootstrap>:966(_find_and_load)': [1, 1, 1.1e-05, 0.002512], \"~:0(<method 'union' of 'set' objects>)\": [1, 1, 1.1e-05, 1.1e-05], '/home/lion/anaconda3/lib/python3.5/hashlib.py:98(__get_openssl_constructor)': [6, 6, 2.3e-05, 3.1e-05], '~:0(<built-in method builtins.globals>)': [6, 6, 1e-06, 1e-06]}, 'display_name': 'hashlib.py:53(<module>)'}, '~:0(<built-in method builtins.exec>)': {'stats': [1, 3, 7e-06, 0.005827], 'callers': {'<frozen importlib._bootstrap>:214(_call_with_frames_removed)': [2, 1, 4.9999999999999996e-06, 0.005013999999999999]}, 'children': {'/home/lion/anaconda3/lib/python3.5/random.py:37(<module>)': [1, 1, 0.000101, 0.005012], '/home/lion/anaconda3/lib/python3.5/hashlib.py:53(<module>)': [1, 1, 4.2e-05, 0.002601], 'tree_tests.py:1(<module>)': [1, 1, 9.999999999999999e-06, 0.0058249999999999994]}, 'display_name': '~:0(<built-in method builtins.exec>)'}, '~:0(<built-in method _imp._fix_co_filename>)': {'stats': [2, 2, 4.9999999999999996e-06, 4.9999999999999996e-06], 'callers': {'<frozen importlib._bootstrap_external>:474(_compile_bytecode)': [2, 2, 4.9999999999999996e-06, 4.9999999999999996e-06]}, 'children': {}, 'display_name': '~:0(<built-in method _imp._fix_co_filename>)'}, '~:0(<built-in method posix.stat>)': {'stats': [33, 33, 0.00022899999999999998, 0.00022899999999999998], 'callers': {'<frozen importlib._bootstrap_external>:68(_path_stat)': [33, 33, 0.00022899999999999998, 0.00022899999999999998]}, 'children': {}, 'display_name': '~:0(<built-in method posix.stat>)'}, '~:0(<built-in method _thread.get_ident>)': {'stats': [10, 10, 4e-06, 4e-06], 'callers': {'<frozen importlib._bootstrap>:94(acquire)': [5, 5, 0.0, 0.0], '<frozen importlib._bootstrap>:119(release)': [5, 5, 4e-06, 4e-06]}, 'children': {}, 'display_name': '~:0(<built-in method _thread.get_ident>)'}, '<frozen importlib._bootstrap>:321(__exit__)': {'stats': [5, 5, 2.4e-05, 4.4999999999999996e-05], 'callers': {'<frozen importlib._bootstrap>:659(_load_unlocked)': [5, 5, 2.4e-05, 4.4999999999999996e-05]}, 'children': {'<frozen importlib._bootstrap>:225(_verbose_message)': [5, 5, 4e-06, 4e-06], '~:0(<built-in method builtins.any>)': [5, 5, 8e-06, 1.7e-05]}, 'display_name': '<frozen importlib._bootstrap>:321(__exit__)'}, '<frozen importlib._bootstrap_external>:87(_path_isfile)': {'stats': [5, 5, 8e-06, 5.3e-05], 'callers': {'<frozen importlib._bootstrap_external>:1215(find_spec)': [5, 5, 8e-06, 5.3e-05]}, 'children': {'<frozen importlib._bootstrap_external>:78(_path_is_mode_type)': [5, 5, 1.1e-05, 4.4999999999999996e-05]}, 'display_name': '<frozen importlib._bootstrap_external>:87(_path_isfile)'}, '<frozen importlib._bootstrap>:789(find_spec)': {'stats': [5, 5, 7e-06, 1.2e-05], 'callers': {'<frozen importlib._bootstrap>:879(_find_spec)': [5, 5, 7e-06, 1.2e-05]}, 'children': {'~:0(<built-in method _imp.is_frozen>)': [5, 5, 4.9999999999999996e-06, 4.9999999999999996e-06]}, 'display_name': '<frozen importlib._bootstrap>:789(find_spec)'}, 'tree_tests.py:1(<module>)': {'stats': [1, 1, 9.999999999999999e-06, 0.0058249999999999994], 'callers': {'~:0(<built-in method builtins.exec>)': [1, 1, 9.999999999999999e-06, 0.0058249999999999994]}, 'children': {'tree_tests.py:3(test)': [1, 1, 3e-06, 3e-06], '<frozen importlib._bootstrap>:966(_find_and_load)': [1, 1, 9.999999999999999e-06, 0.0058119999999999995]}, 'display_name': 'tree_tests.py:1(<module>)'}, '~:0(<built-in method builtins.globals>)': {'stats': [6, 6, 1e-06, 1e-06], 'callers': {'/home/lion/anaconda3/lib/python3.5/hashlib.py:53(<module>)': [6, 6, 1e-06, 1e-06]}, 'children': {}, 'display_name': '~:0(<built-in method builtins.globals>)'}, '<frozen importlib._bootstrap_external>:56(_path_split)': {'stats': [4, 4, 9.999999999999999e-06, 1.4e-05], 'callers': {'<frozen importlib._bootstrap_external>:246(cache_from_source)': [4, 4, 9.999999999999999e-06, 1.4e-05]}, 'children': {'~:0(<built-in method builtins.len>)': [4, 4, 2e-06, 2e-06], \"~:0(<method 'rpartition' of 'str' objects>)\": [4, 4, 2e-06, 2e-06]}, 'display_name': '<frozen importlib._bootstrap_external>:56(_path_split)'}, '<frozen importlib._bootstrap>:190(cb)': {'stats': [5, 5, 4e-06, 4e-06], 'callers': {'<frozen importlib._bootstrap>:966(_find_and_load)': [5, 5, 4e-06, 4e-06]}, 'children': {}, 'display_name': '<frozen importlib._bootstrap>:190(cb)'}, '<frozen importlib._bootstrap_external>:68(_path_stat)': {'stats': [33, 33, 2.8e-05, 0.000257], 'callers': {'<frozen importlib._bootstrap_external>:1215(find_spec)': [26, 26, 2.3e-05, 0.00020999999999999998], '<frozen importlib._bootstrap_external>:78(_path_is_mode_type)': [5, 5, 4.9999999999999996e-06, 3.4e-05], '<frozen importlib._bootstrap_external>:826(path_stats)': [2, 2, 0.0, 1.3e-05]}, 'children': {'~:0(<built-in method posix.stat>)': [33, 33, 0.00022899999999999998, 0.00022899999999999998]}, 'display_name': '<frozen importlib._bootstrap_external>:68(_path_stat)'}, '<frozen importlib._bootstrap>:510(_init_module_attrs)': {'stats': [5, 5, 4.9e-05, 0.000185], 'callers': {'<frozen importlib._bootstrap>:570(module_from_spec)': [5, 5, 4.9e-05, 0.000185]}, 'children': {'<frozen importlib._bootstrap>:406(cached)': [7, 7, 1.3e-05, 8.2e-05], '<frozen importlib._bootstrap>:427(has_location)': [5, 5, 1e-06, 1e-06], '<frozen importlib._bootstrap>:419(parent)': [5, 5, 9.999999999999999e-06, 1.4e-05], '~:0(<built-in method builtins.getattr>)': [30, 30, 3.9e-05, 3.9e-05]}, 'display_name': '<frozen importlib._bootstrap>:510(_init_module_attrs)'}, '~:0(<built-in method _imp.create_dynamic>)': {'stats': [3, 3, 0.002335, 0.002335], 'callers': {'<frozen importlib._bootstrap>:214(_call_with_frames_removed)': [3, 3, 0.002335, 0.002335]}, 'children': {}, 'display_name': '~:0(<built-in method _imp.create_dynamic>)'}, '<frozen importlib._bootstrap_external>:826(path_stats)': {'stats': [2, 2, 6e-06, 1.8999999999999998e-05], 'callers': {'<frozen importlib._bootstrap_external>:729(get_code)': [2, 2, 6e-06, 1.8999999999999998e-05]}, 'children': {'<frozen importlib._bootstrap_external>:68(_path_stat)': [2, 2, 0.0, 1.3e-05]}, 'display_name': '<frozen importlib._bootstrap_external>:826(path_stats)'}, '~:0(<built-in method builtins.getattr>)': {'stats': [36, 36, 4.2e-05, 4.2e-05], 'callers': {'<frozen importlib._bootstrap>:510(_init_module_attrs)': [30, 30, 3.9e-05, 3.9e-05], '/home/lion/anaconda3/lib/python3.5/hashlib.py:98(__get_openssl_constructor)': [6, 6, 3e-06, 3e-06]}, 'children': {}, 'display_name': '~:0(<built-in method builtins.getattr>)'}, '<frozen importlib._bootstrap_external>:50(_path_join)': {'stats': [126, 126, 0.000168, 0.00046699999999999997], 'callers': {'<frozen importlib._bootstrap_external>:1215(find_spec)': [122, 122, 0.000163, 0.00044899999999999996], '<frozen importlib._bootstrap_external>:246(cache_from_source)': [4, 4, 4.9999999999999996e-06, 1.8e-05]}, 'children': {'<frozen importlib._bootstrap_external>:52(<listcomp>)': [126, 126, 0.000166, 0.000251], \"~:0(<method 'join' of 'str' objects>)\": [126, 126, 4.8e-05, 4.8e-05]}, 'display_name': '<frozen importlib._bootstrap_external>:50(_path_join)'}, '<frozen importlib._bootstrap>:214(_call_with_frames_removed)': {'stats': [1, 8, 1.7e-05, 0.005016], 'callers': {'<frozen importlib._bootstrap_external>:911(exec_module)': [3, 3, 6e-06, 9.999999999999999e-06], '<frozen importlib._bootstrap_external>:903(create_module)': [3, 3, 9e-06, 0.0023439999999999997], '<frozen importlib._bootstrap_external>:659(exec_module)': [2, 1, 2e-06, 0.005016]}, 'children': {'~:0(<built-in method _imp.exec_dynamic>)': [3, 3, 4e-06, 4e-06], '~:0(<built-in method builtins.exec>)': [2, 1, 4.9999999999999996e-06, 0.005013999999999999], '~:0(<built-in method _imp.create_dynamic>)': [3, 3, 0.002335, 0.002335]}, 'display_name': '<frozen importlib._bootstrap>:214(_call_with_frames_removed)'}, '~:0(<built-in method _hashlib.openssl_sha1>)': {'stats': [1, 1, 0.0, 0.0], 'callers': {'/home/lion/anaconda3/lib/python3.5/hashlib.py:98(__get_openssl_constructor)': [1, 1, 0.0, 0.0]}, 'children': {}, 'display_name': '~:0(<built-in method _hashlib.openssl_sha1>)'}, \"~:0(<method 'rstrip' of 'str' objects>)\": {'stats': [256, 256, 8.499999999999999e-05, 8.499999999999999e-05], 'callers': {'<frozen importlib._bootstrap_external>:52(<listcomp>)': [256, 256, 8.499999999999999e-05, 8.499999999999999e-05]}, 'children': {}, 'display_name': \"~:0(<method 'rstrip' of 'str' objects>)\"}, '<frozen importlib._bootstrap>:163(__enter__)': {'stats': [5, 5, 2.4e-05, 0.000116], 'callers': {'<frozen importlib._bootstrap>:966(_find_and_load)': [5, 5, 2.4e-05, 0.000116]}, 'children': {'~:0(<built-in method _imp.release_lock>)': [5, 5, 1e-06, 1e-06], '<frozen importlib._bootstrap>:94(acquire)': [5, 5, 3.1e-05, 3.1e-05], '<frozen importlib._bootstrap>:176(_get_module_lock)': [5, 5, 3.7e-05, 5.9999999999999995e-05]}, 'display_name': '<frozen importlib._bootstrap>:163(__enter__)'}, '<frozen importlib._bootstrap>:372(__init__)': {'stats': [5, 5, 8e-06, 8e-06], 'callers': {'<frozen importlib._bootstrap_external>:513(spec_from_file_location)': [5, 5, 8e-06, 8e-06]}, 'children': {}, 'display_name': '<frozen importlib._bootstrap>:372(__init__)'}, '~:0(<built-in method posix.urandom>)': {'stats': [1, 1, 0.000202, 0.000202], 'callers': {'/home/lion/anaconda3/lib/python3.5/random.py:93(seed)': [1, 1, 0.000202, 0.000202]}, 'children': {}, 'display_name': '~:0(<built-in method posix.urandom>)'}, '~:0(<built-in method _imp.is_frozen>)': {'stats': [5, 5, 4.9999999999999996e-06, 4.9999999999999996e-06], 'callers': {'<frozen importlib._bootstrap>:789(find_spec)': [5, 5, 4.9999999999999996e-06, 4.9999999999999996e-06]}, 'children': {}, 'display_name': '~:0(<built-in method _imp.is_frozen>)'}, '~:0(<built-in method marshal.loads>)': {'stats': [2, 2, 0.00024599999999999996, 0.00024599999999999996], 'callers': {'<frozen importlib._bootstrap_external>:474(_compile_bytecode)': [2, 2, 0.00024599999999999996, 0.00024599999999999996]}, 'children': {}, 'display_name': '~:0(<built-in method marshal.loads>)'}, '/home/lion/anaconda3/lib/python3.5/random.py:84(__init__)': {'stats': [1, 1, 4e-06, 0.000252], 'callers': {'/home/lion/anaconda3/lib/python3.5/random.py:37(<module>)': [1, 1, 4e-06, 0.000252]}, 'children': {'/home/lion/anaconda3/lib/python3.5/random.py:93(seed)': [1, 1, 1.9999999999999998e-05, 0.000248]}, 'display_name': 'random.py:84(__init__)'}, '<frozen importlib._bootstrap>:324(<genexpr>)': {'stats': [20, 20, 9e-06, 9e-06], 'callers': {'~:0(<built-in method builtins.any>)': [20, 20, 9e-06, 9e-06]}, 'children': {}, 'display_name': '<frozen importlib._bootstrap>:324(<genexpr>)'}, '<frozen importlib._bootstrap_external>:513(spec_from_file_location)': {'stats': [5, 5, 2.6e-05, 3.4e-05], 'callers': {'<frozen importlib._bootstrap_external>:1210(_get_spec)': [5, 5, 2.6e-05, 3.4e-05]}, 'children': {'<frozen importlib._bootstrap>:372(__init__)': [5, 5, 8e-06, 8e-06]}, 'display_name': '<frozen importlib._bootstrap_external>:513(spec_from_file_location)'}, '~:0(<built-in method _hashlib.openssl_md5>)': {'stats': [1, 1, 2e-06, 2e-06], 'callers': {'/home/lion/anaconda3/lib/python3.5/hashlib.py:98(__get_openssl_constructor)': [1, 1, 2e-06, 2e-06]}, 'children': {}, 'display_name': '~:0(<built-in method _hashlib.openssl_md5>)'}, '/home/lion/anaconda3/lib/python3.5/hashlib.py:98(__get_openssl_constructor)': {'stats': [6, 6, 2.3e-05, 3.1e-05], 'callers': {'/home/lion/anaconda3/lib/python3.5/hashlib.py:53(<module>)': [6, 6, 2.3e-05, 3.1e-05]}, 'children': {'~:0(<built-in method builtins.getattr>)': [6, 6, 3e-06, 3e-06], '~:0(<built-in method _hashlib.openssl_sha256>)': [1, 1, 1e-06, 1e-06], '~:0(<built-in method _hashlib.openssl_md5>)': [1, 1, 2e-06, 2e-06], '~:0(<built-in method _hashlib.openssl_sha224>)': [1, 1, 1e-06, 1e-06], '~:0(<built-in method _hashlib.openssl_sha512>)': [1, 1, 0.0, 0.0], '~:0(<built-in method _hashlib.openssl_sha1>)': [1, 1, 0.0, 0.0], '~:0(<built-in method _hashlib.openssl_sha384>)': [1, 1, 1e-06, 1e-06]}, 'display_name': 'hashlib.py:98(__get_openssl_constructor)'}, '<frozen importlib._bootstrap>:176(_get_module_lock)': {'stats': [5, 5, 3.7e-05, 5.9999999999999995e-05], 'callers': {'<frozen importlib._bootstrap>:163(__enter__)': [5, 5, 3.7e-05, 5.9999999999999995e-05]}, 'children': {'<frozen importlib._bootstrap>:74(__init__)': [5, 5, 1.8999999999999998e-05, 2.3e-05]}, 'display_name': '<frozen importlib._bootstrap>:176(_get_module_lock)'}, '~:0(<built-in method _imp.is_builtin>)': {'stats': [5, 5, 1.3e-05, 1.3e-05], 'callers': {'<frozen importlib._bootstrap>:716(find_spec)': [5, 5, 1.3e-05, 1.3e-05]}, 'children': {}, 'display_name': '~:0(<built-in method _imp.is_builtin>)'}};\n",
"sv_json_cache = {};\n",
"sv_worker = sv_make_worker();\n",
"sv_root_func_name = sv_find_root(profile_data);\n",
"sv_call_stack = [sv_root_func_name];\n",
"sv_total_time = profile_data[sv_root_func_name]['stats'][3];\n",
"}));\n",
"// Initialize the call stack button\n",
"$(document).ready(_.defer(function () {\n",
"sv_update_call_stack_list();\n",
"sv_call_stack_btn_for_show();\n",
"}));\n",
"// Draw the visualization\n",
"$(document).ready(_.defer(function () {\n",
"sv_draw_vis(sv_root_func_name);\n",
"}));\n",
"</script>\n",
"\n",
"\n",
"</body></html>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"display(HTML('/home/lion/projects/python/notebooks/blog_and_notes/profiling/tree_tests.html'))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now, I'll try to replace calls to min and max with local functions.\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"import AVL as tr # import local copy, to not mess with the file in the path"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# %load tree_tests.py\n",
"import random\n",
"\n",
"def test():\n",
" t1 = tr.BinarySearchTree()\n",
" for _ in range(int(1e6)):\n",
" t1[str(_)] = _\n",
" #for _ in range(int(1e5)):\n",
" #t1.get(random.randint(-10000, 10000))\n",
"\n",
"if __name__ == '__main__':\n",
" test()"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"profiler = cProfile.Profile()"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"profiler.runcall(test)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" 61854400 function calls (38691689 primitive calls) in 38.852 seconds\n",
"\n",
" Ordered by: standard name\n",
"\n",
" ncalls tottime percall cumtime percall filename:lineno(function)\n",
" 1 1.338 1.338 38.852 38.852 <ipython-input-10-2f1ccca03190>:4(test)\n",
" 1 0.000 0.000 0.000 0.000 AVL.py:102(__init__)\n",
" 1000000 0.479 0.000 37.514 0.000 AVL.py:115(__setitem__)\n",
" 1000000 0.717 0.000 37.035 0.000 AVL.py:118(put)\n",
"21140998/999999 19.022 0.000 36.318 0.000 AVL.py:126(_put)\n",
" 1000000 3.849 0.000 3.849 0.000 AVL.py:14(__init__)\n",
" 898233 2.082 0.000 2.743 0.000 AVL.py:146(rotateLeft)\n",
" 352954 0.802 0.000 1.053 0.000 AVL.py:174(rotateRight)\n",
"4021711/999999 4.924 0.000 10.783 0.000 AVL.py:201(updateBalance)\n",
" 919456 0.713 0.000 4.508 0.000 AVL.py:215(rebalance)\n",
" 6218045 0.825 0.000 0.825 0.000 AVL.py:25(hasLeftChild)\n",
" 14922953 1.838 0.000 1.838 0.000 AVL.py:28(hasRightChild)\n",
" 4353400 1.122 0.000 1.122 0.000 AVL.py:31(isLeftChild)\n",
" 2273086 0.540 0.000 0.540 0.000 AVL.py:34(isRightChild)\n",
" 1251187 0.189 0.000 0.189 0.000 AVL.py:37(isRoot)\n",
" 1251187 0.217 0.000 0.217 0.000 AVL.py:5(my_min)\n",
" 1251187 0.194 0.000 0.194 0.000 AVL.py:9(my_max)\n",
" 1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects}\n",
"\n",
"\n"
]
}
],
"source": [
"profiler.print_stats()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As is seen, in general is not a big deal, but calls to my_max and my_min take now 0.411 secs, before was: 5.632 - so there is an improvement. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"There is also line by line profilling, another method of visualization called pycallgraph and more. You can check here: http://blog.thehumangeo.com/2015/07/28/profiling-in-python/ and also there is great video from pycon here:\n",
"https://www.youtube.com/watch?v=JDSGVvMwNM8 . "
]
}
],
"metadata": {
"anaconda-cloud": {},
"kernelspec": {
"display_name": "Python [default]",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.5.2"
}
},
"nbformat": 4,
"nbformat_minor": 1
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment