Skip to content

Instantly share code, notes, and snippets.

@jpeach
Created June 19, 2021 04:36
Show Gist options
  • Save jpeach/f5f092980ba81d7780973eeadfdf4427 to your computer and use it in GitHub Desktop.
Save jpeach/f5f092980ba81d7780973eeadfdf4427 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: llama Pages: 1 -->
<svg width="100%" height="100%" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<script type="text/ecmascript"><![CDATA[
/**
* SVGPan library 1.2.2
* ======================
*
* Given an unique existing element with id "viewport" (or when missing, the
* first g-element), including the library into any SVG adds the following
* capabilities:
*
* - Mouse panning
* - Mouse zooming (using the wheel)
* - Object dragging
*
* You can configure the behaviour of the pan/zoom/drag with the variables
* listed in the CONFIGURATION section of this file.
*
* Known issues:
*
* - Zooming (while panning) on Safari has still some issues
*
* Releases:
*
* 1.2.2, Tue Aug 30 17:21:56 CEST 2011, Andrea Leofreddi
* - Fixed viewBox on root tag (#7)
* - Improved zoom speed (#2)
*
* 1.2.1, Mon Jul 4 00:33:18 CEST 2011, Andrea Leofreddi
* - Fixed a regression with mouse wheel (now working on Firefox 5)
* - Working with viewBox attribute (#4)
* - Added "use strict;" and fixed resulting warnings (#5)
* - Added configuration variables, dragging is disabled by default (#3)
*
* 1.2, Sat Mar 20 08:42:50 GMT 2010, Zeng Xiaohui
* Fixed a bug with browser mouse handler interaction
*
* 1.1, Wed Feb 3 17:39:33 GMT 2010, Zeng Xiaohui
* Updated the zoom code to support the mouse wheel on Safari/Chrome
*
* 1.0, Andrea Leofreddi
* First release
*
* This code is licensed under the following BSD license:
*
* Copyright 2009-2017 Andrea Leofreddi <a.leofreddi@vleo.net>. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification, are
* permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of the copyright holder nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY COPYRIGHT HOLDERS AND CONTRIBUTORS ''AS IS'' AND ANY EXPRESS
* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
* AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* The views and conclusions contained in the software and documentation are those of the
* authors and should not be interpreted as representing official policies, either expressed
* or implied, of Andrea Leofreddi.
*/
"use strict";
/// CONFIGURATION
/// ====>
var enablePan = 1; // 1 or 0: enable or disable panning (default enabled)
var enableZoom = 1; // 1 or 0: enable or disable zooming (default enabled)
var enableDrag = 0; // 1 or 0: enable or disable dragging (default disabled)
var zoomScale = 0.2; // Zoom sensitivity
/// <====
/// END OF CONFIGURATION
var root = document.documentElement;
var state = 'none', svgRoot = null, stateTarget, stateOrigin, stateTf;
setupHandlers(root);
/**
* Register handlers
*/
function setupHandlers(root){
setAttributes(root, {
"onmouseup" : "handleMouseUp(evt)",
"onmousedown" : "handleMouseDown(evt)",
"onmousemove" : "handleMouseMove(evt)",
//"onmouseout" : "handleMouseUp(evt)", // Decomment this to stop the pan functionality when dragging out of the SVG element
});
if(navigator.userAgent.toLowerCase().indexOf('webkit') >= 0)
window.addEventListener('mousewheel', handleMouseWheel, false); // Chrome/Safari
else
window.addEventListener('DOMMouseScroll', handleMouseWheel, false); // Others
}
/**
* Retrieves the root element for SVG manipulation. The element is then cached into the svgRoot global variable.
*/
function getRoot(root) {
if(svgRoot == null) {
var r = root.getElementById("viewport") ? root.getElementById("viewport") : root.documentElement, t = r;
while(t != root) {
if(t.getAttribute("viewBox")) {
setCTM(r, t.getCTM());
t.removeAttribute("viewBox");
}
t = t.parentNode;
}
svgRoot = r;
}
return svgRoot;
}
/**
* Instance an SVGPoint object with given event coordinates.
*/
function getEventPoint(evt) {
var p = root.createSVGPoint();
p.x = evt.clientX;
p.y = evt.clientY;
return p;
}
/**
* Sets the current transform matrix of an element.
*/
function setCTM(element, matrix) {
var s = "matrix(" + matrix.a + "," + matrix.b + "," + matrix.c + "," + matrix.d + "," + matrix.e + "," + matrix.f + ")";
element.setAttribute("transform", s);
}
/**
* Dumps a matrix to a string (useful for debug).
*/
function dumpMatrix(matrix) {
var s = "[ " + matrix.a + ", " + matrix.c + ", " + matrix.e + "\n " + matrix.b + ", " + matrix.d + ", " + matrix.f + "\n 0, 0, 1 ]";
return s;
}
/**
* Sets attributes of an element.
*/
function setAttributes(element, attributes){
for (var i in attributes)
element.setAttributeNS(null, i, attributes[i]);
}
/**
* Handle mouse wheel event.
*/
function handleMouseWheel(evt) {
if(!enableZoom)
return;
if(evt.preventDefault)
evt.preventDefault();
evt.returnValue = false;
var svgDoc = evt.target.ownerDocument;
var delta;
if(evt.wheelDelta)
delta = evt.wheelDelta / 360; // Chrome/Safari
else
delta = evt.detail / -9; // Mozilla
var z = Math.pow(1 + zoomScale, delta);
var g = getRoot(svgDoc);
var p = getEventPoint(evt);
p = p.matrixTransform(g.getCTM().inverse());
// Compute new scale matrix in current mouse position
var k = root.createSVGMatrix().translate(p.x, p.y).scale(z).translate(-p.x, -p.y);
setCTM(g, g.getCTM().multiply(k));
if(typeof(stateTf) == "undefined")
stateTf = g.getCTM().inverse();
stateTf = stateTf.multiply(k.inverse());
}
/**
* Handle mouse move event.
*/
function handleMouseMove(evt) {
if(evt.preventDefault)
evt.preventDefault();
evt.returnValue = false;
var svgDoc = evt.target.ownerDocument;
var g = getRoot(svgDoc);
if(state == 'pan' && enablePan) {
// Pan mode
var p = getEventPoint(evt).matrixTransform(stateTf);
setCTM(g, stateTf.inverse().translate(p.x - stateOrigin.x, p.y - stateOrigin.y));
} else if(state == 'drag' && enableDrag) {
// Drag mode
var p = getEventPoint(evt).matrixTransform(g.getCTM().inverse());
setCTM(stateTarget, root.createSVGMatrix().translate(p.x - stateOrigin.x, p.y - stateOrigin.y).multiply(g.getCTM().inverse()).multiply(stateTarget.getCTM()));
stateOrigin = p;
}
}
/**
* Handle click event.
*/
function handleMouseDown(evt) {
if(evt.preventDefault)
evt.preventDefault();
evt.returnValue = false;
var svgDoc = evt.target.ownerDocument;
var g = getRoot(svgDoc);
if(
evt.target.tagName == "svg"
|| !enableDrag // Pan anyway when drag is disabled and the user clicked on an element
) {
// Pan mode
state = 'pan';
stateTf = g.getCTM().inverse();
stateOrigin = getEventPoint(evt).matrixTransform(stateTf);
} else {
// Drag mode
state = 'drag';
stateTarget = evt.target;
stateTf = g.getCTM().inverse();
stateOrigin = getEventPoint(evt).matrixTransform(stateTf);
}
}
/**
* Handle mouse button release event.
*/
function handleMouseUp(evt) {
if(evt.preventDefault)
evt.preventDefault();
evt.returnValue = false;
var svgDoc = evt.target.ownerDocument;
if(state == 'pan' || state == 'drag') {
// Quit pan mode
state = '';
}
}
]]></script><g id="viewport" transform="scale(0.5,0.5) translate(0,0)"><g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1451)">
<title>llama</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-1451 1823,-1451 1823,4 -4,4"/>
<g id="clust1" class="cluster">
<title>cluster_L</title>
<polygon fill="none" stroke="black" points="8,-1288 8,-1439 492,-1439 492,-1288 8,-1288"/>
</g>
<!-- File: llama -->
<g id="node1" class="node">
<title>File: llama</title>
<g id="a_node1"><a xlink:title="llama">
<polygon fill="#f8f8f8" stroke="black" points="483.5,-1431 16.5,-1431 16.5,-1296 483.5,-1296 483.5,-1431"/>
<text text-anchor="start" x="24.5" y="-1414.2" font-family="Times,serif" font-size="16.00">File: llama</text>
<text text-anchor="start" x="24.5" y="-1396.2" font-family="Times,serif" font-size="16.00">Type: inuse_space</text>
<text text-anchor="start" x="24.5" y="-1378.2" font-family="Times,serif" font-size="16.00">Time: Jun 19, 2021 at 2:35pm (AEST)</text>
<text text-anchor="start" x="24.5" y="-1360.2" font-family="Times,serif" font-size="16.00">Showing nodes accounting for 184.71MB, 97.83% of 188.80MB total</text>
<text text-anchor="start" x="24.5" y="-1342.2" font-family="Times,serif" font-size="16.00">Dropped 34 nodes (cum &lt;= 0.94MB)</text>
<text text-anchor="start" x="24.5" y="-1305.2" font-family="Times,serif" font-size="16.00">See https://git.io/JfYMW for how to read the graph</text>
</a>
</g>
</g>
<!-- N1 -->
<g id="node1" class="node">
<title>N1</title>
<g id="a_node1"><a xlink:title="github.com/nelhage/llama/files.List.Upload.func2 (179.58MB)">
<polygon fill="#edd5d5" stroke="#b20200" points="598.5,-1390 501.5,-1390 501.5,-1337 598.5,-1337 598.5,-1390"/>
<text text-anchor="middle" x="550" y="-1379.6" font-family="Times,serif" font-size="8.00">files</text>
<text text-anchor="middle" x="550" y="-1370.6" font-family="Times,serif" font-size="8.00">List</text>
<text text-anchor="middle" x="550" y="-1361.6" font-family="Times,serif" font-size="8.00">Upload</text>
<text text-anchor="middle" x="550" y="-1352.6" font-family="Times,serif" font-size="8.00">func2</text>
<text text-anchor="middle" x="550" y="-1343.6" font-family="Times,serif" font-size="8.00">0 of 179.58MB (95.12%)</text>
</a>
</g>
</g>
<!-- N3 -->
<g id="node3" class="node">
<title>N3</title>
<g id="a_node3"><a xlink:title="github.com/nelhage/llama/files.uploadWorker (179.58MB)">
<polygon fill="#edd5d5" stroke="#b20200" points="598.5,-1236.5 501.5,-1236.5 501.5,-1200.5 598.5,-1200.5 598.5,-1236.5"/>
<text text-anchor="middle" x="550" y="-1225.6" font-family="Times,serif" font-size="8.00">files</text>
<text text-anchor="middle" x="550" y="-1216.6" font-family="Times,serif" font-size="8.00">uploadWorker</text>
<text text-anchor="middle" x="550" y="-1207.6" font-family="Times,serif" font-size="8.00">0 of 179.58MB (95.12%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N3 -->
<g id="edge12" class="edge">
<title>N1&#45;&gt;N3</title>
<g id="a_edge12"><a xlink:title="github.com/nelhage/llama/files.List.Upload.func2 &#45;&gt; github.com/nelhage/llama/files.uploadWorker (179.58MB)">
<path fill="none" stroke="#b20200" stroke-width="5" d="M550,-1336.93C550,-1311.63 550,-1273.01 550,-1247.04"/>
<polygon fill="#b20200" stroke="#b20200" stroke-width="5" points="554.38,-1246.76 550,-1236.76 545.63,-1246.76 554.38,-1246.76"/>
</a>
</g>
<g id="a_edge12&#45;label"><a xlink:title="github.com/nelhage/llama/files.List.Upload.func2 &#45;&gt; github.com/nelhage/llama/files.uploadWorker (179.58MB)">
<text text-anchor="middle" x="582" y="-1266.8" font-family="Times,serif" font-size="14.00"> 179.58MB</text>
</a>
</g>
</g>
<!-- N2 -->
<g id="node2" class="node">
<title>N2</title>
<g id="a_node2"><a xlink:title="github.com/klauspost/compress/zstd.(*fastBase).resetBase (131.60MB)">
<polygon fill="#edd7d5" stroke="#b21200" points="562,-462 320,-462 320,-324 562,-324 562,-462"/>
<text text-anchor="middle" x="441" y="-438.8" font-family="Times,serif" font-size="24.00">zstd</text>
<text text-anchor="middle" x="441" y="-412.8" font-family="Times,serif" font-size="24.00">(*fastBase)</text>
<text text-anchor="middle" x="441" y="-386.8" font-family="Times,serif" font-size="24.00">resetBase</text>
<text text-anchor="middle" x="441" y="-360.8" font-family="Times,serif" font-size="24.00">128MB (67.80%)</text>
<text text-anchor="middle" x="441" y="-334.8" font-family="Times,serif" font-size="24.00">of 131.60MB (69.70%)</text>
</a>
</g>
</g>
<!-- NN2_0 -->
<g id="NN2_0" class="node">
<title>NN2_0</title>
<g id="a_NN2_0"><a xlink:title="128MB">
<polygon fill="#f8f8f8" stroke="black" points="468,-244 418,-244 414,-240 414,-208 464,-208 468,-212 468,-244"/>
<polyline fill="none" stroke="black" points="464,-240 414,-240 "/>
<polyline fill="none" stroke="black" points="464,-240 464,-208 "/>
<polyline fill="none" stroke="black" points="464,-240 468,-244 "/>
<text text-anchor="middle" x="441" y="-224.1" font-family="Times,serif" font-size="8.00">16MB</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;NN2_0 -->
<g id="edge1" class="edge">
<title>N2&#45;&gt;NN2_0</title>
<g id="a_edge1"><a xlink:title="128MB">
<path fill="none" stroke="black" d="M441,-323.94C441,-299.48 441,-273.28 441,-254.29"/>
<polygon fill="black" stroke="black" points="444.5,-254.28 441,-244.28 437.5,-254.28 444.5,-254.28"/>
</a>
</g>
<g id="a_edge1&#45;label"><a xlink:title="128MB">
<text text-anchor="middle" x="464" y="-287.3" font-family="Times,serif" font-size="14.00"> 128MB</text>
</a>
</g>
</g>
<!-- N7 -->
<g id="node7" class="node">
<title>N7</title>
<g id="a_node7"><a xlink:title="github.com/klauspost/compress/zstd.(*blockEnc).init (3.60MB)">
<polygon fill="#edecea" stroke="#b2ada1" points="549.5,-143 458.5,-143 458.5,-87 549.5,-87 549.5,-143"/>
<text text-anchor="middle" x="504" y="-130.2" font-family="Times,serif" font-size="11.00">zstd</text>
<text text-anchor="middle" x="504" y="-118.2" font-family="Times,serif" font-size="11.00">(*blockEnc)</text>
<text text-anchor="middle" x="504" y="-106.2" font-family="Times,serif" font-size="11.00">init</text>
<text text-anchor="middle" x="504" y="-94.2" font-family="Times,serif" font-size="11.00">3.60MB (1.91%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N7 -->
<g id="edge26" class="edge">
<title>N2&#45;&gt;N7</title>
<g id="a_edge26"><a xlink:title="github.com/klauspost/compress/zstd.(*fastBase).resetBase &#45;&gt; github.com/klauspost/compress/zstd.(*blockEnc).init (3.60MB)">
<path fill="none" stroke="#b2ada1" d="M483.37,-323.73C485.93,-317.87 488.2,-311.92 490,-306 505.6,-254.81 507.07,-192.44 506.04,-153.46"/>
<polygon fill="#b2ada1" stroke="#b2ada1" points="509.53,-152.99 505.7,-143.11 502.53,-153.23 509.53,-152.99"/>
</a>
</g>
<g id="a_edge26&#45;label"><a xlink:title="github.com/klauspost/compress/zstd.(*fastBase).resetBase &#45;&gt; github.com/klauspost/compress/zstd.(*blockEnc).init (3.60MB)">
<text text-anchor="middle" x="531" y="-222.3" font-family="Times,serif" font-size="14.00"> 3.60MB</text>
</a>
</g>
</g>
<!-- N40 -->
<g id="node40" class="node">
<title>N40</title>
<g id="a_node40"><a xlink:title="github.com/nelhage/llama/files.uploadWorker.func1 (31.66MB)">
<polygon fill="#ede1d9" stroke="#b25a1c" points="811.5,-1135 718.5,-1135 718.5,-1091 811.5,-1091 811.5,-1135"/>
<text text-anchor="middle" x="765" y="-1124.6" font-family="Times,serif" font-size="8.00">files</text>
<text text-anchor="middle" x="765" y="-1115.6" font-family="Times,serif" font-size="8.00">uploadWorker</text>
<text text-anchor="middle" x="765" y="-1106.6" font-family="Times,serif" font-size="8.00">func1</text>
<text text-anchor="middle" x="765" y="-1097.6" font-family="Times,serif" font-size="8.00">0 of 31.66MB (16.77%)</text>
</a>
</g>
</g>
<!-- N3&#45;&gt;N40 -->
<g id="edge19" class="edge">
<title>N3&#45;&gt;N40</title>
<g id="a_edge19"><a xlink:title="github.com/nelhage/llama/files.uploadWorker &#45;&gt; github.com/nelhage/llama/files.uploadWorker.func1 (31.66MB)">
<path fill="none" stroke="#b25a1c" d="M585.5,-1200.41C619.95,-1183.82 672.66,-1158.45 712.06,-1139.48"/>
<polygon fill="#b25a1c" stroke="#b25a1c" points="713.77,-1142.55 721.26,-1135.05 710.74,-1136.24 713.77,-1142.55"/>
</a>
</g>
<g id="a_edge19&#45;label"><a xlink:title="github.com/nelhage/llama/files.uploadWorker &#45;&gt; github.com/nelhage/llama/files.uploadWorker.func1 (31.66MB)">
<text text-anchor="middle" x="699.5" y="-1162.8" font-family="Times,serif" font-size="14.00"> 31.66MB</text>
</a>
</g>
</g>
<!-- N41 -->
<g id="node41" class="node">
<title>N41</title>
<g id="a_node41"><a xlink:title="github.com/nelhage/llama/protocol/files.NewBlob (147.93MB)">
<polygon fill="#edd7d5" stroke="#b20c00" points="598.5,-1131 501.5,-1131 501.5,-1095 598.5,-1095 598.5,-1131"/>
<text text-anchor="middle" x="550" y="-1120.1" font-family="Times,serif" font-size="8.00">files</text>
<text text-anchor="middle" x="550" y="-1111.1" font-family="Times,serif" font-size="8.00">NewBlob</text>
<text text-anchor="middle" x="550" y="-1102.1" font-family="Times,serif" font-size="8.00">0 of 147.93MB (78.35%)</text>
</a>
</g>
</g>
<!-- N3&#45;&gt;N41 -->
<g id="edge13" class="edge">
<title>N3&#45;&gt;N41</title>
<g id="a_edge13"><a xlink:title="github.com/nelhage/llama/files.uploadWorker &#45;&gt; github.com/nelhage/llama/protocol/files.NewBlob (147.93MB)">
<path fill="none" stroke="#b20c00" stroke-width="4" d="M550,-1200.41C550,-1184.3 550,-1159.91 550,-1141.14"/>
<polygon fill="#b20c00" stroke="#b20c00" stroke-width="4" points="553.5,-1141.12 550,-1131.12 546.5,-1141.12 553.5,-1141.12"/>
</a>
</g>
<g id="a_edge13&#45;label"><a xlink:title="github.com/nelhage/llama/files.uploadWorker &#45;&gt; github.com/nelhage/llama/protocol/files.NewBlob (147.93MB)">
<text text-anchor="middle" x="582" y="-1162.8" font-family="Times,serif" font-size="14.00"> 147.93MB</text>
</a>
</g>
</g>
<!-- N4 -->
<g id="node4" class="node">
<title>N4</title>
<g id="a_node4"><a xlink:title="github.com/klauspost/compress/zstd.(*Encoder).EncodeAll (147.41MB)">
<polygon fill="#edd7d5" stroke="#b20c00" points="614,-909 486,-909 486,-836 614,-836 614,-909"/>
<text text-anchor="middle" x="550" y="-895.4" font-family="Times,serif" font-size="12.00">zstd</text>
<text text-anchor="middle" x="550" y="-882.4" font-family="Times,serif" font-size="12.00">(*Encoder)</text>
<text text-anchor="middle" x="550" y="-869.4" font-family="Times,serif" font-size="12.00">EncodeAll</text>
<text text-anchor="middle" x="550" y="-856.4" font-family="Times,serif" font-size="12.00">5.14MB (2.72%)</text>
<text text-anchor="middle" x="550" y="-843.4" font-family="Times,serif" font-size="12.00">of 147.41MB (78.08%)</text>
</a>
</g>
</g>
<!-- NN4_0 -->
<g id="NN4_0" class="node">
<title>NN4_0</title>
<g id="a_NN4_0"><a xlink:title="2.85MB">
<polygon fill="#f8f8f8" stroke="black" points="833,-781 771,-781 767,-777 767,-745 829,-745 833,-749 833,-781"/>
<polyline fill="none" stroke="black" points="829,-777 767,-777 "/>
<polyline fill="none" stroke="black" points="829,-777 829,-745 "/>
<polyline fill="none" stroke="black" points="829,-777 833,-781 "/>
<text text-anchor="middle" x="800" y="-761.1" font-family="Times,serif" font-size="8.00">2.84MB..16MB</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;NN4_0 -->
<g id="edge2" class="edge">
<title>N4&#45;&gt;NN4_0</title>
<g id="a_edge2"><a xlink:title="2.85MB">
<path fill="none" stroke="black" d="M614.05,-854.34C644.66,-845.17 681.42,-832.73 713,-818 731.76,-809.25 751.45,-797.29 767.35,-786.85"/>
<polygon fill="black" stroke="black" points="769.39,-789.7 775.76,-781.23 765.5,-783.88 769.39,-789.7"/>
</a>
</g>
<g id="a_edge2&#45;label"><a xlink:title="2.85MB">
<text text-anchor="middle" x="765" y="-806.8" font-family="Times,serif" font-size="14.00"> 2.85MB</text>
</a>
</g>
</g>
<!-- NN4_1 -->
<g id="NN4_1" class="node">
<title>NN4_1</title>
<g id="a_NN4_1"><a xlink:title="2.29MB">
<polygon fill="#f8f8f8" stroke="black" points="577,-781 527,-781 523,-777 523,-745 573,-745 577,-749 577,-781"/>
<polyline fill="none" stroke="black" points="573,-777 523,-777 "/>
<polyline fill="none" stroke="black" points="573,-777 573,-745 "/>
<polyline fill="none" stroke="black" points="573,-777 577,-781 "/>
<text text-anchor="middle" x="550" y="-761.1" font-family="Times,serif" font-size="8.00">2.27MB</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;NN4_1 -->
<g id="edge3" class="edge">
<title>N4&#45;&gt;NN4_1</title>
<g id="a_edge3"><a xlink:title="2.29MB">
<path fill="none" stroke="black" d="M550,-835.7C550,-821.25 550,-804.83 550,-791.36"/>
<polygon fill="black" stroke="black" points="553.5,-791.28 550,-781.28 546.5,-791.28 553.5,-791.28"/>
</a>
</g>
<g id="a_edge3&#45;label"><a xlink:title="2.29MB">
<text text-anchor="middle" x="575" y="-806.8" font-family="Times,serif" font-size="14.00"> 2.29MB</text>
</a>
</g>
</g>
<!-- N12 -->
<g id="node12" class="node">
<title>N12</title>
<g id="a_node12"><a xlink:title="sync.(*Once).Do (10.08MB)">
<polygon fill="#edeae6" stroke="#b29e82" points="743.5,-671 654.5,-671 654.5,-627 743.5,-627 743.5,-671"/>
<text text-anchor="middle" x="699" y="-660.6" font-family="Times,serif" font-size="8.00">sync</text>
<text text-anchor="middle" x="699" y="-651.6" font-family="Times,serif" font-size="8.00">(*Once)</text>
<text text-anchor="middle" x="699" y="-642.6" font-family="Times,serif" font-size="8.00">Do</text>
<text text-anchor="middle" x="699" y="-633.6" font-family="Times,serif" font-size="8.00">0 of 10.08MB (5.34%)</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N12 -->
<g id="edge23" class="edge">
<title>N4&#45;&gt;N12</title>
<g id="a_edge23"><a xlink:title="github.com/klauspost/compress/zstd.(*Encoder).EncodeAll &#45;&gt; sync.(*Once).Do (9.58MB)">
<path fill="none" stroke="#b29f85" d="M612.14,-835.84C631.24,-822.15 650.71,-804.95 664,-785 684.92,-753.59 693.34,-710.39 696.73,-681.39"/>
<polygon fill="#b29f85" stroke="#b29f85" points="700.21,-681.71 697.76,-671.4 693.25,-680.99 700.21,-681.71"/>
</a>
</g>
<g id="a_edge23&#45;label"><a xlink:title="github.com/klauspost/compress/zstd.(*Encoder).EncodeAll &#45;&gt; sync.(*Once).Do (9.58MB)">
<text text-anchor="middle" x="710" y="-766.8" font-family="Times,serif" font-size="14.00"> 9.58MB</text>
<text text-anchor="middle" x="710" y="-751.8" font-family="Times,serif" font-size="14.00"> (inline)</text>
</a>
</g>
</g>
<!-- N14 -->
<g id="node14" class="node">
<title>N14</title>
<g id="a_node14"><a xlink:title="github.com/klauspost/compress/zstd.(*doubleFastEncoder).Encode (1.10MB)">
<polygon fill="#ededec" stroke="#b2b1ad" points="636.5,-675 529.5,-675 529.5,-623 636.5,-623 636.5,-675"/>
<text text-anchor="middle" x="583" y="-663" font-family="Times,serif" font-size="10.00">zstd</text>
<text text-anchor="middle" x="583" y="-652" font-family="Times,serif" font-size="10.00">(*doubleFastEncoder)</text>
<text text-anchor="middle" x="583" y="-641" font-family="Times,serif" font-size="10.00">Encode</text>
<text text-anchor="middle" x="583" y="-630" font-family="Times,serif" font-size="10.00">1.10MB (0.58%)</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N14 -->
<g id="edge34" class="edge">
<title>N4&#45;&gt;N14</title>
<g id="a_edge34"><a xlink:title="github.com/klauspost/compress/zstd.(*Encoder).EncodeAll &#45;&gt; github.com/klauspost/compress/zstd.(*doubleFastEncoder).Encode (1.10MB)">
<path fill="none" stroke="#b2b1ad" d="M590.58,-835.84C594.81,-830.31 598.47,-824.31 601,-818 618.41,-774.5 607.09,-719.88 596.11,-684.95"/>
<polygon fill="#b2b1ad" stroke="#b2b1ad" points="599.35,-683.61 592.9,-675.21 592.7,-685.8 599.35,-683.61"/>
</a>
</g>
<g id="a_edge34&#45;label"><a xlink:title="github.com/klauspost/compress/zstd.(*Encoder).EncodeAll &#45;&gt; github.com/klauspost/compress/zstd.(*doubleFastEncoder).Encode (1.10MB)">
<text text-anchor="middle" x="635" y="-759.3" font-family="Times,serif" font-size="14.00"> 1.10MB</text>
</a>
</g>
</g>
<!-- N37 -->
<g id="node37" class="node">
<title>N37</title>
<g id="a_node37"><a xlink:title="github.com/klauspost/compress/zstd.(*doubleFastEncoder).Reset (131.60MB)">
<polygon fill="#edd7d5" stroke="#b21200" points="489.5,-671 392.5,-671 392.5,-627 489.5,-627 489.5,-671"/>
<text text-anchor="middle" x="441" y="-660.6" font-family="Times,serif" font-size="8.00">zstd</text>
<text text-anchor="middle" x="441" y="-651.6" font-family="Times,serif" font-size="8.00">(*doubleFastEncoder)</text>
<text text-anchor="middle" x="441" y="-642.6" font-family="Times,serif" font-size="8.00">Reset</text>
<text text-anchor="middle" x="441" y="-633.6" font-family="Times,serif" font-size="8.00">0 of 131.60MB (69.70%)</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N37 -->
<g id="edge16" class="edge">
<title>N4&#45;&gt;N37</title>
<g id="a_edge16"><a xlink:title="github.com/klauspost/compress/zstd.(*Encoder).EncodeAll &#45;&gt; github.com/klauspost/compress/zstd.(*doubleFastEncoder).Reset (131.60MB)">
<path fill="none" stroke="#b21200" stroke-width="4" d="M493.68,-835.91C476.69,-822.18 459.93,-804.93 450,-785 433.84,-752.56 433.89,-710.19 436.48,-681.63"/>
<polygon fill="#b21200" stroke="#b21200" stroke-width="4" points="439.99,-681.73 437.57,-671.42 433.03,-680.99 439.99,-681.73"/>
</a>
</g>
<g id="a_edge16&#45;label"><a xlink:title="github.com/klauspost/compress/zstd.(*Encoder).EncodeAll &#45;&gt; github.com/klauspost/compress/zstd.(*doubleFastEncoder).Reset (131.60MB)">
<text text-anchor="middle" x="482" y="-759.3" font-family="Times,serif" font-size="14.00"> 131.60MB</text>
</a>
</g>
</g>
<!-- N5 -->
<g id="node5" class="node">
<title>N5</title>
<g id="a_node5"><a xlink:title="os.ReadFile (31.66MB)">
<polygon fill="#ede1d9" stroke="#b25a1c" points="949.5,-903.5 806.5,-903.5 806.5,-841.5 949.5,-841.5 949.5,-903.5"/>
<text text-anchor="middle" x="878" y="-886.7" font-family="Times,serif" font-size="16.00">os</text>
<text text-anchor="middle" x="878" y="-868.7" font-family="Times,serif" font-size="16.00">ReadFile</text>
<text text-anchor="middle" x="878" y="-850.7" font-family="Times,serif" font-size="16.00">31.66MB (16.77%)</text>
</a>
</g>
</g>
<!-- NN5_0 -->
<g id="NN5_0" class="node">
<title>NN5_0</title>
<g id="a_NN5_0"><a xlink:title="31.66MB">
<polygon fill="#f8f8f8" stroke="black" points="905,-781 855,-781 851,-777 851,-745 901,-745 905,-749 905,-781"/>
<polyline fill="none" stroke="black" points="901,-777 851,-777 "/>
<polyline fill="none" stroke="black" points="901,-777 901,-745 "/>
<polyline fill="none" stroke="black" points="901,-777 905,-781 "/>
<text text-anchor="middle" x="878" y="-761.1" font-family="Times,serif" font-size="8.00">31.66MB</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;NN5_0 -->
<g id="edge4" class="edge">
<title>N5&#45;&gt;NN5_0</title>
<g id="a_edge4"><a xlink:title="31.66MB">
<path fill="none" stroke="black" d="M878,-841.27C878,-825.68 878,-806.8 878,-791.6"/>
<polygon fill="black" stroke="black" points="881.5,-791.29 878,-781.29 874.5,-791.29 881.5,-791.29"/>
</a>
</g>
<g id="a_edge4&#45;label"><a xlink:title="31.66MB">
<text text-anchor="middle" x="906.5" y="-806.8" font-family="Times,serif" font-size="14.00"> 31.66MB</text>
</a>
</g>
</g>
<!-- N6 -->
<g id="node6" class="node">
<title>N6</title>
<g id="a_node6"><a xlink:title="github.com/klauspost/compress/zstd.encoderOptions.encoder (9.58MB)">
<polygon fill="#edeae7" stroke="#b29f85" points="752,-258 646,-258 646,-194 752,-194 752,-258"/>
<text text-anchor="middle" x="699" y="-243.6" font-family="Times,serif" font-size="13.00">zstd</text>
<text text-anchor="middle" x="699" y="-229.6" font-family="Times,serif" font-size="13.00">encoderOptions</text>
<text text-anchor="middle" x="699" y="-215.6" font-family="Times,serif" font-size="13.00">encoder</text>
<text text-anchor="middle" x="699" y="-201.6" font-family="Times,serif" font-size="13.00">9.58MB (5.07%)</text>
</a>
</g>
</g>
<!-- NN6_0 -->
<g id="NN6_0" class="node">
<title>NN6_0</title>
<g id="a_NN6_0"><a xlink:title="9.58MB">
<polygon fill="#f8f8f8" stroke="black" points="726,-133 676,-133 672,-129 672,-97 722,-97 726,-101 726,-133"/>
<polyline fill="none" stroke="black" points="722,-129 672,-129 "/>
<polyline fill="none" stroke="black" points="722,-129 722,-97 "/>
<polyline fill="none" stroke="black" points="722,-129 726,-133 "/>
<text text-anchor="middle" x="699" y="-113.1" font-family="Times,serif" font-size="8.00">1.26MB</text>
</a>
</g>
</g>
<!-- N6&#45;&gt;NN6_0 -->
<g id="edge5" class="edge">
<title>N6&#45;&gt;NN6_0</title>
<g id="a_edge5"><a xlink:title="9.58MB">
<path fill="none" stroke="black" d="M699,-193.76C699,-177.87 699,-158.72 699,-143.41"/>
<polygon fill="black" stroke="black" points="702.5,-143.03 699,-133.03 695.5,-143.03 702.5,-143.03"/>
</a>
</g>
<g id="a_edge5&#45;label"><a xlink:title="9.58MB">
<text text-anchor="middle" x="724" y="-164.8" font-family="Times,serif" font-size="14.00"> 9.58MB</text>
</a>
</g>
</g>
<!-- NN7_0 -->
<g id="NN7_0" class="node">
<title>NN7_0</title>
<g id="a_NN7_0"><a xlink:title="1.91MB">
<polygon fill="#f8f8f8" stroke="black" points="495,-36 445,-36 441,-32 441,0 491,0 495,-4 495,-36"/>
<polyline fill="none" stroke="black" points="491,-32 441,-32 "/>
<polyline fill="none" stroke="black" points="491,-32 491,0 "/>
<polyline fill="none" stroke="black" points="491,-32 495,-36 "/>
<text text-anchor="middle" x="468" y="-16.1" font-family="Times,serif" font-size="8.00">256kB</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;NN7_0 -->
<g id="edge6" class="edge">
<title>N7&#45;&gt;NN7_0</title>
<g id="a_edge6"><a xlink:title="1.91MB">
<path fill="none" stroke="black" d="M478.38,-86.61C474.56,-81.13 471.18,-75.16 469,-69 466.48,-61.88 465.55,-53.82 465.43,-46.29"/>
<polygon fill="black" stroke="black" points="468.94,-46.24 465.72,-36.14 461.94,-46.04 468.94,-46.24"/>
</a>
</g>
<g id="a_edge6&#45;label"><a xlink:title="1.91MB">
<text text-anchor="middle" x="494" y="-57.8" font-family="Times,serif" font-size="14.00"> 1.91MB</text>
</a>
</g>
</g>
<!-- NN7_1 -->
<g id="NN7_1" class="node">
<title>NN7_1</title>
<g id="a_NN7_1"><a xlink:title="1.70MB">
<polygon fill="#f8f8f8" stroke="black" points="568,-36 518,-36 514,-32 514,0 564,0 568,-4 568,-36"/>
<polyline fill="none" stroke="black" points="564,-32 514,-32 "/>
<polyline fill="none" stroke="black" points="564,-32 564,0 "/>
<polyline fill="none" stroke="black" points="564,-32 568,-36 "/>
<text text-anchor="middle" x="541" y="-16.1" font-family="Times,serif" font-size="8.00">128kB</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;NN7_1 -->
<g id="edge7" class="edge">
<title>N7&#45;&gt;NN7_1</title>
<g id="a_edge7"><a xlink:title="1.70MB">
<path fill="none" stroke="black" d="M514.6,-86.78C519.62,-73.88 525.6,-58.54 530.6,-45.71"/>
<polygon fill="black" stroke="black" points="533.99,-46.65 534.36,-36.06 527.46,-44.11 533.99,-46.65"/>
</a>
</g>
<g id="a_edge7&#45;label"><a xlink:title="1.70MB">
<text text-anchor="middle" x="552" y="-57.8" font-family="Times,serif" font-size="14.00"> 1.70MB</text>
</a>
</g>
</g>
<!-- N8 -->
<g id="node8" class="node">
<title>N8</title>
<g id="a_node8"><a xlink:title="net/http.(*http2ClientConn).frameScratchBuffer (2.37MB)">
<polygon fill="#edeceb" stroke="#b2afa7" points="1178,-1141 1072,-1141 1072,-1085 1178,-1085 1178,-1141"/>
<text text-anchor="middle" x="1125" y="-1128.2" font-family="Times,serif" font-size="11.00">http</text>
<text text-anchor="middle" x="1125" y="-1116.2" font-family="Times,serif" font-size="11.00">(*http2ClientConn)</text>
<text text-anchor="middle" x="1125" y="-1104.2" font-family="Times,serif" font-size="11.00">frameScratchBuffer</text>
<text text-anchor="middle" x="1125" y="-1092.2" font-family="Times,serif" font-size="11.00">2.37MB (1.26%)</text>
</a>
</g>
</g>
<!-- NN8_0 -->
<g id="NN8_0" class="node">
<title>NN8_0</title>
<g id="a_NN8_0"><a xlink:title="2.37MB">
<polygon fill="#f8f8f8" stroke="black" points="1152,-1015 1102,-1015 1098,-1011 1098,-979 1148,-979 1152,-983 1152,-1015"/>
<polyline fill="none" stroke="black" points="1148,-1011 1098,-1011 "/>
<polyline fill="none" stroke="black" points="1148,-1011 1148,-979 "/>
<polyline fill="none" stroke="black" points="1148,-1011 1152,-1015 "/>
<text text-anchor="middle" x="1125" y="-995.1" font-family="Times,serif" font-size="8.00">512kB</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;NN8_0 -->
<g id="edge8" class="edge">
<title>N8&#45;&gt;NN8_0</title>
<g id="a_edge8"><a xlink:title="2.37MB">
<path fill="none" stroke="black" d="M1125,-1084.98C1125,-1067.01 1125,-1043.49 1125,-1025.43"/>
<polygon fill="black" stroke="black" points="1128.5,-1025.26 1125,-1015.26 1121.5,-1025.26 1128.5,-1025.26"/>
</a>
</g>
<g id="a_edge8&#45;label"><a xlink:title="2.37MB">
<text text-anchor="middle" x="1150" y="-1048.3" font-family="Times,serif" font-size="14.00"> 2.37MB</text>
</a>
</g>
</g>
<!-- N9 -->
<g id="node9" class="node">
<title>N9</title>
<g id="a_node9"><a xlink:title="io.ReadAll (2.25MB)">
<polygon fill="#edeceb" stroke="#b2afa7" points="1363.5,-785 1272.5,-785 1272.5,-741 1363.5,-741 1363.5,-785"/>
<text text-anchor="middle" x="1318" y="-772.2" font-family="Times,serif" font-size="11.00">io</text>
<text text-anchor="middle" x="1318" y="-760.2" font-family="Times,serif" font-size="11.00">ReadAll</text>
<text text-anchor="middle" x="1318" y="-748.2" font-family="Times,serif" font-size="11.00">2.25MB (1.19%)</text>
</a>
</g>
</g>
<!-- NN9_0 -->
<g id="NN9_0" class="node">
<title>NN9_0</title>
<g id="a_NN9_0"><a xlink:title="1.54MB">
<polygon fill="#f8f8f8" stroke="black" points="1345,-667 1295,-667 1291,-663 1291,-631 1341,-631 1345,-635 1345,-667"/>
<polyline fill="none" stroke="black" points="1341,-663 1291,-663 "/>
<polyline fill="none" stroke="black" points="1341,-663 1341,-631 "/>
<polyline fill="none" stroke="black" points="1341,-663 1345,-667 "/>
<text text-anchor="middle" x="1318" y="-647.1" font-family="Times,serif" font-size="8.00">480kB</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;NN9_0 -->
<g id="edge9" class="edge">
<title>N9&#45;&gt;NN9_0</title>
<g id="a_edge9"><a xlink:title="1.54MB">
<path fill="none" stroke="black" d="M1318,-740.93C1318,-722.97 1318,-697.02 1318,-677.43"/>
<polygon fill="black" stroke="black" points="1321.5,-677.3 1318,-667.3 1314.5,-677.3 1321.5,-677.3"/>
</a>
</g>
<g id="a_edge9&#45;label"><a xlink:title="1.54MB">
<text text-anchor="middle" x="1343" y="-704.3" font-family="Times,serif" font-size="14.00"> 1.54MB</text>
</a>
</g>
</g>
<!-- N10 -->
<g id="node10" class="node">
<title>N10</title>
<g id="a_node10"><a xlink:title="golang.org/x/sync/errgroup.(*Group).Go.func1 (3.32MB)">
<polygon fill="#edeceb" stroke="#b2ada2" points="1361,-1390 1275,-1390 1275,-1337 1361,-1337 1361,-1390"/>
<text text-anchor="middle" x="1318" y="-1379.6" font-family="Times,serif" font-size="8.00">errgroup</text>
<text text-anchor="middle" x="1318" y="-1370.6" font-family="Times,serif" font-size="8.00">(*Group)</text>
<text text-anchor="middle" x="1318" y="-1361.6" font-family="Times,serif" font-size="8.00">Go</text>
<text text-anchor="middle" x="1318" y="-1352.6" font-family="Times,serif" font-size="8.00">func1</text>
<text text-anchor="middle" x="1318" y="-1343.6" font-family="Times,serif" font-size="8.00">0 of 3.32MB (1.76%)</text>
</a>
</g>
</g>
<!-- N42 -->
<g id="node42" class="node">
<title>N42</title>
<g id="a_node42"><a xlink:title="github.com/nelhage/llama/store/s3store.(*Store).GetObjects.func2 (3.32MB)">
<polygon fill="#edeceb" stroke="#b2ada2" points="1361,-1245 1275,-1245 1275,-1192 1361,-1192 1361,-1245"/>
<text text-anchor="middle" x="1318" y="-1234.6" font-family="Times,serif" font-size="8.00">s3store</text>
<text text-anchor="middle" x="1318" y="-1225.6" font-family="Times,serif" font-size="8.00">(*Store)</text>
<text text-anchor="middle" x="1318" y="-1216.6" font-family="Times,serif" font-size="8.00">GetObjects</text>
<text text-anchor="middle" x="1318" y="-1207.6" font-family="Times,serif" font-size="8.00">func2</text>
<text text-anchor="middle" x="1318" y="-1198.6" font-family="Times,serif" font-size="8.00">0 of 3.32MB (1.76%)</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N42 -->
<g id="edge28" class="edge">
<title>N10&#45;&gt;N42</title>
<g id="a_edge28"><a xlink:title="golang.org/x/sync/errgroup.(*Group).Go.func1 &#45;&gt; github.com/nelhage/llama/store/s3store.(*Store).GetObjects.func2 (3.32MB)">
<path fill="none" stroke="#b2ada2" d="M1318,-1336.93C1318,-1314.3 1318,-1281.01 1318,-1255.66"/>
<polygon fill="#b2ada2" stroke="#b2ada2" points="1321.5,-1255.33 1318,-1245.33 1314.5,-1255.33 1321.5,-1255.33"/>
</a>
</g>
<g id="a_edge28&#45;label"><a xlink:title="golang.org/x/sync/errgroup.(*Group).Go.func1 &#45;&gt; github.com/nelhage/llama/store/s3store.(*Store).GetObjects.func2 (3.32MB)">
<text text-anchor="middle" x="1343" y="-1266.8" font-family="Times,serif" font-size="14.00"> 3.32MB</text>
</a>
</g>
</g>
<!-- N11 -->
<g id="node11" class="node">
<title>N11</title>
<g id="a_node11"><a xlink:title="github.com/nelhage/llama/store/s3store.(*Store).getOne (3.32MB)">
<polygon fill="#edeceb" stroke="#b2ada2" points="1361,-1135 1275,-1135 1275,-1091 1361,-1091 1361,-1135"/>
<text text-anchor="middle" x="1318" y="-1124.6" font-family="Times,serif" font-size="8.00">s3store</text>
<text text-anchor="middle" x="1318" y="-1115.6" font-family="Times,serif" font-size="8.00">(*Store)</text>
<text text-anchor="middle" x="1318" y="-1106.6" font-family="Times,serif" font-size="8.00">getOne</text>
<text text-anchor="middle" x="1318" y="-1097.6" font-family="Times,serif" font-size="8.00">0 of 3.32MB (1.76%)</text>
</a>
</g>
</g>
<!-- N44 -->
<g id="node44" class="node">
<title>N44</title>
<g id="a_node44"><a xlink:title="github.com/nelhage/llama/store/s3store.(*Store).decompress (1.07MB)">
<polygon fill="#ededec" stroke="#b2b1ad" points="1256,-1019 1170,-1019 1170,-975 1256,-975 1256,-1019"/>
<text text-anchor="middle" x="1213" y="-1008.6" font-family="Times,serif" font-size="8.00">s3store</text>
<text text-anchor="middle" x="1213" y="-999.6" font-family="Times,serif" font-size="8.00">(*Store)</text>
<text text-anchor="middle" x="1213" y="-990.6" font-family="Times,serif" font-size="8.00">decompress</text>
<text text-anchor="middle" x="1213" y="-981.6" font-family="Times,serif" font-size="8.00">0 of 1.07MB (0.57%)</text>
</a>
</g>
</g>
<!-- N11&#45;&gt;N44 -->
<g id="edge37" class="edge">
<title>N11&#45;&gt;N44</title>
<g id="a_edge37"><a xlink:title="github.com/nelhage/llama/store/s3store.(*Store).getOne &#45;&gt; github.com/nelhage/llama/store/s3store.(*Store).decompress (1.07MB)">
<path fill="none" stroke="#b2b1ad" d="M1290.23,-1091C1281.44,-1083.8 1271.96,-1075.43 1264,-1067 1252.62,-1054.94 1241.5,-1040.32 1232.55,-1027.65"/>
<polygon fill="#b2b1ad" stroke="#b2b1ad" points="1235.31,-1025.48 1226.74,-1019.24 1229.55,-1029.46 1235.31,-1025.48"/>
</a>
</g>
<g id="a_edge37&#45;label"><a xlink:title="github.com/nelhage/llama/store/s3store.(*Store).getOne &#45;&gt; github.com/nelhage/llama/store/s3store.(*Store).decompress (1.07MB)">
<text text-anchor="middle" x="1289" y="-1048.3" font-family="Times,serif" font-size="14.00"> 1.07MB</text>
</a>
</g>
</g>
<!-- N45 -->
<g id="node45" class="node">
<title>N45</title>
<g id="a_node45"><a xlink:title="github.com/nelhage/llama/store/s3store.(*Store).getFromS3 (2.25MB)">
<polygon fill="#edeceb" stroke="#b2afa7" points="1361,-1019 1275,-1019 1275,-975 1361,-975 1361,-1019"/>
<text text-anchor="middle" x="1318" y="-1008.6" font-family="Times,serif" font-size="8.00">s3store</text>
<text text-anchor="middle" x="1318" y="-999.6" font-family="Times,serif" font-size="8.00">(*Store)</text>
<text text-anchor="middle" x="1318" y="-990.6" font-family="Times,serif" font-size="8.00">getFromS3</text>
<text text-anchor="middle" x="1318" y="-981.6" font-family="Times,serif" font-size="8.00">0 of 2.25MB (1.19%)</text>
</a>
</g>
</g>
<!-- N11&#45;&gt;N45 -->
<g id="edge32" class="edge">
<title>N11&#45;&gt;N45</title>
<g id="a_edge32"><a xlink:title="github.com/nelhage/llama/store/s3store.(*Store).getOne &#45;&gt; github.com/nelhage/llama/store/s3store.(*Store).getFromS3 (2.25MB)">
<path fill="none" stroke="#b2afa7" d="M1318,-1090.82C1318,-1073.55 1318,-1048.89 1318,-1029.33"/>
<polygon fill="#b2afa7" stroke="#b2afa7" points="1321.5,-1029.06 1318,-1019.06 1314.5,-1029.06 1321.5,-1029.06"/>
</a>
</g>
<g id="a_edge32&#45;label"><a xlink:title="github.com/nelhage/llama/store/s3store.(*Store).getOne &#45;&gt; github.com/nelhage/llama/store/s3store.(*Store).getFromS3 (2.25MB)">
<text text-anchor="middle" x="1343" y="-1048.3" font-family="Times,serif" font-size="14.00"> 2.25MB</text>
</a>
</g>
</g>
<!-- N60 -->
<g id="node60" class="node">
<title>N60</title>
<g id="a_node60"><a xlink:title="sync.(*Once).doSlow (10.08MB)">
<polygon fill="#edeae6" stroke="#b29e82" points="743.5,-557 654.5,-557 654.5,-513 743.5,-513 743.5,-557"/>
<text text-anchor="middle" x="699" y="-546.6" font-family="Times,serif" font-size="8.00">sync</text>
<text text-anchor="middle" x="699" y="-537.6" font-family="Times,serif" font-size="8.00">(*Once)</text>
<text text-anchor="middle" x="699" y="-528.6" font-family="Times,serif" font-size="8.00">doSlow</text>
<text text-anchor="middle" x="699" y="-519.6" font-family="Times,serif" font-size="8.00">0 of 10.08MB (5.34%)</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N60 -->
<g id="edge22" class="edge">
<title>N12&#45;&gt;N60</title>
<g id="a_edge22"><a xlink:title="sync.(*Once).Do &#45;&gt; sync.(*Once).doSlow (10.08MB)">
<path fill="none" stroke="#b29e82" d="M699,-626.93C699,-610.15 699,-586.38 699,-567.36"/>
<polygon fill="#b29e82" stroke="#b29e82" points="702.5,-567.35 699,-557.35 695.5,-567.35 702.5,-567.35"/>
</a>
</g>
<g id="a_edge22&#45;label"><a xlink:title="sync.(*Once).Do &#45;&gt; sync.(*Once).doSlow (10.08MB)">
<text text-anchor="middle" x="727.5" y="-586.3" font-family="Times,serif" font-size="14.00"> 10.08MB</text>
</a>
</g>
</g>
<!-- N13 -->
<g id="node13" class="node">
<title>N13</title>
<g id="a_node13"><a xlink:title="net/http.(*http2Transport).getBodyWriterState.func1 (2.37MB)">
<polygon fill="#edeceb" stroke="#b2afa7" points="1168,-1390 1082,-1390 1082,-1337 1168,-1337 1168,-1390"/>
<text text-anchor="middle" x="1125" y="-1379.6" font-family="Times,serif" font-size="8.00">http</text>
<text text-anchor="middle" x="1125" y="-1370.6" font-family="Times,serif" font-size="8.00">(*http2Transport)</text>
<text text-anchor="middle" x="1125" y="-1361.6" font-family="Times,serif" font-size="8.00">getBodyWriterState</text>
<text text-anchor="middle" x="1125" y="-1352.6" font-family="Times,serif" font-size="8.00">func1</text>
<text text-anchor="middle" x="1125" y="-1343.6" font-family="Times,serif" font-size="8.00">0 of 2.37MB (1.26%)</text>
</a>
</g>
</g>
<!-- N49 -->
<g id="node49" class="node">
<title>N49</title>
<g id="a_node49"><a xlink:title="net/http.(*http2clientStream).writeRequestBody (2.37MB)">
<polygon fill="#edeceb" stroke="#b2afa7" points="1168,-1240.5 1082,-1240.5 1082,-1196.5 1168,-1196.5 1168,-1240.5"/>
<text text-anchor="middle" x="1125" y="-1230.1" font-family="Times,serif" font-size="8.00">http</text>
<text text-anchor="middle" x="1125" y="-1221.1" font-family="Times,serif" font-size="8.00">(*http2clientStream)</text>
<text text-anchor="middle" x="1125" y="-1212.1" font-family="Times,serif" font-size="8.00">writeRequestBody</text>
<text text-anchor="middle" x="1125" y="-1203.1" font-family="Times,serif" font-size="8.00">0 of 2.37MB (1.26%)</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N49 -->
<g id="edge29" class="edge">
<title>N13&#45;&gt;N49</title>
<g id="a_edge29"><a xlink:title="net/http.(*http2Transport).getBodyWriterState.func1 &#45;&gt; net/http.(*http2clientStream).writeRequestBody (2.37MB)">
<path fill="none" stroke="#b2afa7" d="M1125,-1336.93C1125,-1312.79 1125,-1276.52 1125,-1250.68"/>
<polygon fill="#b2afa7" stroke="#b2afa7" points="1128.5,-1250.66 1125,-1240.66 1121.5,-1250.66 1128.5,-1250.66"/>
</a>
</g>
<g id="a_edge29&#45;label"><a xlink:title="net/http.(*http2Transport).getBodyWriterState.func1 &#45;&gt; net/http.(*http2clientStream).writeRequestBody (2.37MB)">
<text text-anchor="middle" x="1150" y="-1266.8" font-family="Times,serif" font-size="14.00"> 2.37MB</text>
</a>
</g>
</g>
<!-- NN14_0 -->
<g id="NN14_0" class="node">
<title>NN14_0</title>
<g id="a_NN14_0"><a xlink:title="1.10MB">
<polygon fill="#f8f8f8" stroke="black" points="610,-553 560,-553 556,-549 556,-517 606,-517 610,-521 610,-553"/>
<polyline fill="none" stroke="black" points="606,-549 556,-549 "/>
<polyline fill="none" stroke="black" points="606,-549 606,-517 "/>
<polyline fill="none" stroke="black" points="606,-549 610,-553 "/>
<text text-anchor="middle" x="583" y="-533.1" font-family="Times,serif" font-size="8.00">96kB</text>
</a>
</g>
</g>
<!-- N14&#45;&gt;NN14_0 -->
<g id="edge10" class="edge">
<title>N14&#45;&gt;NN14_0</title>
<g id="a_edge10"><a xlink:title="1.10MB">
<path fill="none" stroke="black" d="M583,-622.87C583,-605.16 583,-581.46 583,-563.29"/>
<polygon fill="black" stroke="black" points="586.5,-563.06 583,-553.06 579.5,-563.06 586.5,-563.06"/>
</a>
</g>
<g id="a_edge10&#45;label"><a xlink:title="1.10MB">
<text text-anchor="middle" x="608" y="-586.3" font-family="Times,serif" font-size="14.00"> 1.10MB</text>
</a>
</g>
</g>
<!-- N15 -->
<g id="node15" class="node">
<title>N15</title>
<g id="a_node15"><a xlink:title="crypto/aes.sliceForAppend (1.02MB)">
<polygon fill="#ededec" stroke="#b2b1ad" points="1469.5,-555.5 1384.5,-555.5 1384.5,-514.5 1469.5,-514.5 1469.5,-555.5"/>
<text text-anchor="middle" x="1427" y="-543.5" font-family="Times,serif" font-size="10.00">aes</text>
<text text-anchor="middle" x="1427" y="-532.5" font-family="Times,serif" font-size="10.00">sliceForAppend</text>
<text text-anchor="middle" x="1427" y="-521.5" font-family="Times,serif" font-size="10.00">1.02MB (0.54%)</text>
</a>
</g>
</g>
<!-- NN15_0 -->
<g id="NN15_0" class="node">
<title>NN15_0</title>
<g id="a_NN15_0"><a xlink:title="1.02MB">
<polygon fill="#f8f8f8" stroke="black" points="1454,-411 1404,-411 1400,-407 1400,-375 1450,-375 1454,-379 1454,-411"/>
<polyline fill="none" stroke="black" points="1450,-407 1400,-407 "/>
<polyline fill="none" stroke="black" points="1450,-407 1450,-375 "/>
<polyline fill="none" stroke="black" points="1450,-407 1454,-411 "/>
<text text-anchor="middle" x="1427" y="-391.1" font-family="Times,serif" font-size="8.00">18kB</text>
</a>
</g>
</g>
<!-- N15&#45;&gt;NN15_0 -->
<g id="edge11" class="edge">
<title>N15&#45;&gt;NN15_0</title>
<g id="a_edge11"><a xlink:title="1.02MB">
<path fill="none" stroke="black" d="M1427,-514.24C1427,-489.88 1427,-448.38 1427,-421.08"/>
<polygon fill="black" stroke="black" points="1430.5,-421.03 1427,-411.03 1423.5,-421.03 1430.5,-421.03"/>
</a>
</g>
<g id="a_edge11&#45;label"><a xlink:title="1.02MB">
<text text-anchor="middle" x="1452" y="-483.8" font-family="Times,serif" font-size="14.00"> 1.02MB</text>
</a>
</g>
</g>
<!-- N16 -->
<g id="node16" class="node">
<title>N16</title>
<g id="a_node16"><a xlink:title="net/http.(*conn).serve (1.50MB)">
<polygon fill="#edecec" stroke="#b2b0ab" points="1819,-1385.5 1737,-1385.5 1737,-1341.5 1819,-1341.5 1819,-1385.5"/>
<text text-anchor="middle" x="1778" y="-1375.1" font-family="Times,serif" font-size="8.00">http</text>
<text text-anchor="middle" x="1778" y="-1366.1" font-family="Times,serif" font-size="8.00">(*conn)</text>
<text text-anchor="middle" x="1778" y="-1357.1" font-family="Times,serif" font-size="8.00">serve</text>
<text text-anchor="middle" x="1778" y="-1348.1" font-family="Times,serif" font-size="8.00">0 of 1.50MB (0.8%)</text>
</a>
</g>
</g>
<!-- N54 -->
<g id="node54" class="node">
<title>N54</title>
<g id="a_node54"><a xlink:title="net/http.serverHandler.ServeHTTP (1MB)">
<polygon fill="#ededec" stroke="#b2b1ad" points="1816,-1240.5 1740,-1240.5 1740,-1196.5 1816,-1196.5 1816,-1240.5"/>
<text text-anchor="middle" x="1778" y="-1230.1" font-family="Times,serif" font-size="8.00">http</text>
<text text-anchor="middle" x="1778" y="-1221.1" font-family="Times,serif" font-size="8.00">serverHandler</text>
<text text-anchor="middle" x="1778" y="-1212.1" font-family="Times,serif" font-size="8.00">ServeHTTP</text>
<text text-anchor="middle" x="1778" y="-1203.1" font-family="Times,serif" font-size="8.00">0 of 1MB (0.53%)</text>
</a>
</g>
</g>
<!-- N16&#45;&gt;N54 -->
<g id="edge59" class="edge">
<title>N16&#45;&gt;N54</title>
<g id="a_edge59"><a xlink:title="net/http.(*conn).serve &#45;&gt; net/http.serverHandler.ServeHTTP (1MB)">
<path fill="none" stroke="#b2b1ad" d="M1778,-1341.4C1778,-1317.53 1778,-1278.42 1778,-1250.95"/>
<polygon fill="#b2b1ad" stroke="#b2b1ad" points="1781.5,-1250.69 1778,-1240.69 1774.5,-1250.69 1781.5,-1250.69"/>
</a>
</g>
<g id="a_edge59&#45;label"><a xlink:title="net/http.(*conn).serve &#45;&gt; net/http.serverHandler.ServeHTTP (1MB)">
<text text-anchor="middle" x="1794.5" y="-1266.8" font-family="Times,serif" font-size="14.00"> 1MB</text>
</a>
</g>
</g>
<!-- N17 -->
<g id="node17" class="node">
<title>N17</title>
<g id="a_node17"><a xlink:title="github.com/klauspost/compress/zstd.(*frameDec).runDecoder (1.07MB)">
<polygon fill="#ededec" stroke="#b2b1ad" points="1254,-785 1168,-785 1168,-741 1254,-741 1254,-785"/>
<text text-anchor="middle" x="1211" y="-774.6" font-family="Times,serif" font-size="8.00">zstd</text>
<text text-anchor="middle" x="1211" y="-765.6" font-family="Times,serif" font-size="8.00">(*frameDec)</text>
<text text-anchor="middle" x="1211" y="-756.6" font-family="Times,serif" font-size="8.00">runDecoder</text>
<text text-anchor="middle" x="1211" y="-747.6" font-family="Times,serif" font-size="8.00">0 of 1.07MB (0.57%)</text>
</a>
</g>
</g>
<!-- N18 -->
<g id="node18" class="node">
<title>N18</title>
<g id="a_node18"><a xlink:title="io.Copy (1.02MB)">
<polygon fill="#ededec" stroke="#b2b1ad" points="1615,-890.5 1529,-890.5 1529,-854.5 1615,-854.5 1615,-890.5"/>
<text text-anchor="middle" x="1572" y="-879.6" font-family="Times,serif" font-size="8.00">io</text>
<text text-anchor="middle" x="1572" y="-870.6" font-family="Times,serif" font-size="8.00">Copy</text>
<text text-anchor="middle" x="1572" y="-861.6" font-family="Times,serif" font-size="8.00">0 of 1.02MB (0.54%)</text>
</a>
</g>
</g>
<!-- N19 -->
<g id="node19" class="node">
<title>N19</title>
<g id="a_node19"><a xlink:title="io.copyBuffer (1.02MB)">
<polygon fill="#ededec" stroke="#b2b1ad" points="1543,-1236.5 1457,-1236.5 1457,-1200.5 1543,-1200.5 1543,-1236.5"/>
<text text-anchor="middle" x="1500" y="-1225.6" font-family="Times,serif" font-size="8.00">io</text>
<text text-anchor="middle" x="1500" y="-1216.6" font-family="Times,serif" font-size="8.00">copyBuffer</text>
<text text-anchor="middle" x="1500" y="-1207.6" font-family="Times,serif" font-size="8.00">0 of 1.02MB (0.54%)</text>
</a>
</g>
</g>
<!-- N18&#45;&gt;N19 -->
<g id="edge44" class="edge">
<title>N18&#45;&gt;N19</title>
<g id="a_edge44"><a xlink:title="io.Copy &#45;&gt; io.copyBuffer (1.02MB)">
<path fill="none" stroke="#b2b1ad" d="M1560.58,-890.6C1548.2,-910.1 1529.02,-943.39 1520,-975 1498.43,-1050.62 1497.65,-1144.49 1498.84,-1190.08"/>
<polygon fill="#b2b1ad" stroke="#b2b1ad" points="1495.35,-1190.45 1499.16,-1200.34 1502.34,-1190.23 1495.35,-1190.45"/>
</a>
</g>
<g id="a_edge44&#45;label"><a xlink:title="io.Copy &#45;&gt; io.copyBuffer (1.02MB)">
<text text-anchor="middle" x="1531" y="-1048.3" font-family="Times,serif" font-size="14.00"> 1.02MB</text>
</a>
</g>
</g>
<!-- N23 -->
<g id="node23" class="node">
<title>N23</title>
<g id="a_node23"><a xlink:title="bufio.(*Writer).ReadFrom (1.02MB)">
<polygon fill="#ededec" stroke="#b2b1ad" points="1615,-1135 1529,-1135 1529,-1091 1615,-1091 1615,-1135"/>
<text text-anchor="middle" x="1572" y="-1124.6" font-family="Times,serif" font-size="8.00">bufio</text>
<text text-anchor="middle" x="1572" y="-1115.6" font-family="Times,serif" font-size="8.00">(*Writer)</text>
<text text-anchor="middle" x="1572" y="-1106.6" font-family="Times,serif" font-size="8.00">ReadFrom</text>
<text text-anchor="middle" x="1572" y="-1097.6" font-family="Times,serif" font-size="8.00">0 of 1.02MB (0.54%)</text>
</a>
</g>
</g>
<!-- N19&#45;&gt;N23 -->
<g id="edge45" class="edge">
<title>N19&#45;&gt;N23</title>
<g id="a_edge45"><a xlink:title="io.copyBuffer &#45;&gt; bufio.(*Writer).ReadFrom (1.02MB)">
<path fill="none" stroke="#b2b1ad" d="M1511.89,-1200.41C1522.65,-1184.94 1538.72,-1161.84 1551.54,-1143.41"/>
<polygon fill="#b2b1ad" stroke="#b2b1ad" points="1554.52,-1145.26 1557.35,-1135.05 1548.77,-1141.26 1554.52,-1145.26"/>
</a>
</g>
<g id="a_edge45&#45;label"><a xlink:title="io.copyBuffer &#45;&gt; bufio.(*Writer).ReadFrom (1.02MB)">
<text text-anchor="middle" x="1565" y="-1162.8" font-family="Times,serif" font-size="14.00"> 1.02MB</text>
</a>
</g>
</g>
<!-- N26 -->
<g id="node26" class="node">
<title>N26</title>
<g id="a_node26"><a xlink:title="crypto/tls.(*Conn).Write (1.02MB)">
<polygon fill="#ededec" stroke="#b2b1ad" points="1471,-1135 1385,-1135 1385,-1091 1471,-1091 1471,-1135"/>
<text text-anchor="middle" x="1428" y="-1124.6" font-family="Times,serif" font-size="8.00">tls</text>
<text text-anchor="middle" x="1428" y="-1115.6" font-family="Times,serif" font-size="8.00">(*Conn)</text>
<text text-anchor="middle" x="1428" y="-1106.6" font-family="Times,serif" font-size="8.00">Write</text>
<text text-anchor="middle" x="1428" y="-1097.6" font-family="Times,serif" font-size="8.00">0 of 1.02MB (0.54%)</text>
</a>
</g>
</g>
<!-- N19&#45;&gt;N26 -->
<g id="edge46" class="edge">
<title>N19&#45;&gt;N26</title>
<g id="a_edge46"><a xlink:title="io.copyBuffer &#45;&gt; crypto/tls.(*Conn).Write (1.02MB)">
<path fill="none" stroke="#b2b1ad" d="M1463.86,-1200.41C1453.25,-1193.65 1442.71,-1184.86 1436,-1174 1430.77,-1165.53 1428.31,-1155.11 1427.3,-1145.35"/>
<polygon fill="#b2b1ad" stroke="#b2b1ad" points="1430.78,-1144.91 1426.69,-1135.13 1423.79,-1145.32 1430.78,-1144.91"/>
</a>
</g>
<g id="a_edge46&#45;label"><a xlink:title="io.copyBuffer &#45;&gt; crypto/tls.(*Conn).Write (1.02MB)">
<text text-anchor="middle" x="1461" y="-1162.8" font-family="Times,serif" font-size="14.00"> 1.02MB</text>
</a>
</g>
</g>
<!-- N20 -->
<g id="node20" class="node">
<title>N20</title>
<g id="a_node20"><a xlink:title="net/http.(*persistConn).writeLoop (1.02MB)">
<polygon fill="#ededec" stroke="#b2b1ad" points="1719,-1385.5 1633,-1385.5 1633,-1341.5 1719,-1341.5 1719,-1385.5"/>
<text text-anchor="middle" x="1676" y="-1375.1" font-family="Times,serif" font-size="8.00">http</text>
<text text-anchor="middle" x="1676" y="-1366.1" font-family="Times,serif" font-size="8.00">(*persistConn)</text>
<text text-anchor="middle" x="1676" y="-1357.1" font-family="Times,serif" font-size="8.00">writeLoop</text>
<text text-anchor="middle" x="1676" y="-1348.1" font-family="Times,serif" font-size="8.00">0 of 1.02MB (0.54%)</text>
</a>
</g>
</g>
<!-- N48 -->
<g id="node48" class="node">
<title>N48</title>
<g id="a_node48"><a xlink:title="net/http.(*Request).write (1.02MB)">
<polygon fill="#ededec" stroke="#b2b1ad" points="1719,-1240.5 1633,-1240.5 1633,-1196.5 1719,-1196.5 1719,-1240.5"/>
<text text-anchor="middle" x="1676" y="-1230.1" font-family="Times,serif" font-size="8.00">http</text>
<text text-anchor="middle" x="1676" y="-1221.1" font-family="Times,serif" font-size="8.00">(*Request)</text>
<text text-anchor="middle" x="1676" y="-1212.1" font-family="Times,serif" font-size="8.00">write</text>
<text text-anchor="middle" x="1676" y="-1203.1" font-family="Times,serif" font-size="8.00">0 of 1.02MB (0.54%)</text>
</a>
</g>
</g>
<!-- N20&#45;&gt;N48 -->
<g id="edge48" class="edge">
<title>N20&#45;&gt;N48</title>
<g id="a_edge48"><a xlink:title="net/http.(*persistConn).writeLoop &#45;&gt; net/http.(*Request).write (1.02MB)">
<path fill="none" stroke="#b2b1ad" d="M1676,-1341.4C1676,-1317.53 1676,-1278.42 1676,-1250.95"/>
<polygon fill="#b2b1ad" stroke="#b2b1ad" points="1679.5,-1250.69 1676,-1240.69 1672.5,-1250.69 1679.5,-1250.69"/>
</a>
</g>
<g id="a_edge48&#45;label"><a xlink:title="net/http.(*persistConn).writeLoop &#45;&gt; net/http.(*Request).write (1.02MB)">
<text text-anchor="middle" x="1701" y="-1266.8" font-family="Times,serif" font-size="14.00"> 1.02MB</text>
</a>
</g>
</g>
<!-- N21 -->
<g id="node21" class="node">
<title>N21</title>
<g id="a_node21"><a xlink:title="net/http.(*persistConn).addTLS.func2 (1MB)">
<polygon fill="#ededec" stroke="#b2b1ad" points="1054,-1390 978,-1390 978,-1337 1054,-1337 1054,-1390"/>
<text text-anchor="middle" x="1016" y="-1379.6" font-family="Times,serif" font-size="8.00">http</text>
<text text-anchor="middle" x="1016" y="-1370.6" font-family="Times,serif" font-size="8.00">(*persistConn)</text>
<text text-anchor="middle" x="1016" y="-1361.6" font-family="Times,serif" font-size="8.00">addTLS</text>
<text text-anchor="middle" x="1016" y="-1352.6" font-family="Times,serif" font-size="8.00">func2</text>
<text text-anchor="middle" x="1016" y="-1343.6" font-family="Times,serif" font-size="8.00">0 of 1MB (0.53%)</text>
</a>
</g>
</g>
<!-- N25 -->
<g id="node25" class="node">
<title>N25</title>
<g id="a_node25"><a xlink:title="crypto/tls.(*Conn).Handshake (1MB)">
<polygon fill="#ededec" stroke="#b2b1ad" points="1054,-1240.5 978,-1240.5 978,-1196.5 1054,-1196.5 1054,-1240.5"/>
<text text-anchor="middle" x="1016" y="-1230.1" font-family="Times,serif" font-size="8.00">tls</text>
<text text-anchor="middle" x="1016" y="-1221.1" font-family="Times,serif" font-size="8.00">(*Conn)</text>
<text text-anchor="middle" x="1016" y="-1212.1" font-family="Times,serif" font-size="8.00">Handshake</text>
<text text-anchor="middle" x="1016" y="-1203.1" font-family="Times,serif" font-size="8.00">0 of 1MB (0.53%)</text>
</a>
</g>
</g>
<!-- N21&#45;&gt;N25 -->
<g id="edge56" class="edge">
<title>N21&#45;&gt;N25</title>
<g id="a_edge56"><a xlink:title="net/http.(*persistConn).addTLS.func2 &#45;&gt; crypto/tls.(*Conn).Handshake (1MB)">
<path fill="none" stroke="#b2b1ad" d="M1016,-1336.93C1016,-1312.79 1016,-1276.52 1016,-1250.68"/>
<polygon fill="#b2b1ad" stroke="#b2b1ad" points="1019.5,-1250.66 1016,-1240.66 1012.5,-1250.66 1019.5,-1250.66"/>
</a>
</g>
<g id="a_edge56&#45;label"><a xlink:title="net/http.(*persistConn).addTLS.func2 &#45;&gt; crypto/tls.(*Conn).Handshake (1MB)">
<text text-anchor="middle" x="1032.5" y="-1266.8" font-family="Times,serif" font-size="14.00"> 1MB</text>
</a>
</g>
</g>
<!-- N22 -->
<g id="node22" class="node">
<title>N22</title>
<g id="a_node22"><a xlink:title="encoding/gob.(*Decoder).DecodeValue (1MB)">
<polygon fill="#ededec" stroke="#b2b1ad" points="1816,-137 1740,-137 1740,-93 1816,-93 1816,-137"/>
<text text-anchor="middle" x="1778" y="-126.6" font-family="Times,serif" font-size="8.00">gob</text>
<text text-anchor="middle" x="1778" y="-117.6" font-family="Times,serif" font-size="8.00">(*Decoder)</text>
<text text-anchor="middle" x="1778" y="-108.6" font-family="Times,serif" font-size="8.00">DecodeValue</text>
<text text-anchor="middle" x="1778" y="-99.6" font-family="Times,serif" font-size="8.00">0 of 1MB (0.53%)</text>
</a>
</g>
</g>
<!-- N53 -->
<g id="node53" class="node">
<title>N53</title>
<g id="a_node53"><a xlink:title="net/http.persistConnWriter.ReadFrom (1.02MB)">
<polygon fill="#ededec" stroke="#b2b1ad" points="1615,-1019 1529,-1019 1529,-975 1615,-975 1615,-1019"/>
<text text-anchor="middle" x="1572" y="-1008.6" font-family="Times,serif" font-size="8.00">http</text>
<text text-anchor="middle" x="1572" y="-999.6" font-family="Times,serif" font-size="8.00">persistConnWriter</text>
<text text-anchor="middle" x="1572" y="-990.6" font-family="Times,serif" font-size="8.00">ReadFrom</text>
<text text-anchor="middle" x="1572" y="-981.6" font-family="Times,serif" font-size="8.00">0 of 1.02MB (0.54%)</text>
</a>
</g>
</g>
<!-- N23&#45;&gt;N53 -->
<g id="edge38" class="edge">
<title>N23&#45;&gt;N53</title>
<g id="a_edge38"><a xlink:title="bufio.(*Writer).ReadFrom &#45;&gt; net/http.persistConnWriter.ReadFrom (1.02MB)">
<path fill="none" stroke="#b2b1ad" d="M1572,-1090.82C1572,-1073.55 1572,-1048.89 1572,-1029.33"/>
<polygon fill="#b2b1ad" stroke="#b2b1ad" points="1575.5,-1029.06 1572,-1019.06 1568.5,-1029.06 1575.5,-1029.06"/>
</a>
</g>
<g id="a_edge38&#45;label"><a xlink:title="bufio.(*Writer).ReadFrom &#45;&gt; net/http.persistConnWriter.ReadFrom (1.02MB)">
<text text-anchor="middle" x="1597" y="-1048.3" font-family="Times,serif" font-size="14.00"> 1.02MB</text>
</a>
</g>
</g>
<!-- N24 -->
<g id="node24" class="node">
<title>N24</title>
<g id="a_node24"><a xlink:title="crypto/aes.(*gcmAsm).Seal (1.02MB)">
<polygon fill="#ededec" stroke="#b2b1ad" points="1470,-671 1384,-671 1384,-627 1470,-627 1470,-671"/>
<text text-anchor="middle" x="1427" y="-660.6" font-family="Times,serif" font-size="8.00">aes</text>
<text text-anchor="middle" x="1427" y="-651.6" font-family="Times,serif" font-size="8.00">(*gcmAsm)</text>
<text text-anchor="middle" x="1427" y="-642.6" font-family="Times,serif" font-size="8.00">Seal</text>
<text text-anchor="middle" x="1427" y="-633.6" font-family="Times,serif" font-size="8.00">0 of 1.02MB (0.54%)</text>
</a>
</g>
</g>
<!-- N24&#45;&gt;N15 -->
<g id="edge39" class="edge">
<title>N24&#45;&gt;N15</title>
<g id="a_edge39"><a xlink:title="crypto/aes.(*gcmAsm).Seal &#45;&gt; crypto/aes.sliceForAppend (1.02MB)">
<path fill="none" stroke="#b2b1ad" d="M1427,-626.93C1427,-609.72 1427,-585.17 1427,-565.91"/>
<polygon fill="#b2b1ad" stroke="#b2b1ad" points="1430.5,-565.84 1427,-555.84 1423.5,-565.84 1430.5,-565.84"/>
</a>
</g>
<g id="a_edge39&#45;label"><a xlink:title="crypto/aes.(*gcmAsm).Seal &#45;&gt; crypto/aes.sliceForAppend (1.02MB)">
<text text-anchor="middle" x="1452" y="-593.8" font-family="Times,serif" font-size="14.00"> 1.02MB</text>
<text text-anchor="middle" x="1452" y="-578.8" font-family="Times,serif" font-size="14.00"> (inline)</text>
</a>
</g>
</g>
<!-- N27 -->
<g id="node27" class="node">
<title>N27</title>
<g id="a_node27"><a xlink:title="crypto/tls.(*Conn).clientHandshake (1MB)">
<polygon fill="#ededec" stroke="#b2b1ad" points="1054,-1135 978,-1135 978,-1091 1054,-1091 1054,-1135"/>
<text text-anchor="middle" x="1016" y="-1124.6" font-family="Times,serif" font-size="8.00">tls</text>
<text text-anchor="middle" x="1016" y="-1115.6" font-family="Times,serif" font-size="8.00">(*Conn)</text>
<text text-anchor="middle" x="1016" y="-1106.6" font-family="Times,serif" font-size="8.00">clientHandshake</text>
<text text-anchor="middle" x="1016" y="-1097.6" font-family="Times,serif" font-size="8.00">0 of 1MB (0.53%)</text>
</a>
</g>
</g>
<!-- N25&#45;&gt;N27 -->
<g id="edge52" class="edge">
<title>N25&#45;&gt;N27</title>
<g id="a_edge52"><a xlink:title="crypto/tls.(*Conn).Handshake &#45;&gt; crypto/tls.(*Conn).clientHandshake (1MB)">
<path fill="none" stroke="#b2b1ad" d="M1016,-1196.31C1016,-1181.65 1016,-1161.91 1016,-1145.44"/>
<polygon fill="#b2b1ad" stroke="#b2b1ad" points="1019.5,-1145.17 1016,-1135.17 1012.5,-1145.17 1019.5,-1145.17"/>
</a>
</g>
<g id="a_edge52&#45;label"><a xlink:title="crypto/tls.(*Conn).Handshake &#45;&gt; crypto/tls.(*Conn).clientHandshake (1MB)">
<text text-anchor="middle" x="1032.5" y="-1162.8" font-family="Times,serif" font-size="14.00"> 1MB</text>
</a>
</g>
</g>
<!-- N29 -->
<g id="node29" class="node">
<title>N29</title>
<g id="a_node29"><a xlink:title="crypto/tls.(*Conn).writeRecordLocked (1.02MB)">
<polygon fill="#ededec" stroke="#b2b1ad" points="1470,-1019 1384,-1019 1384,-975 1470,-975 1470,-1019"/>
<text text-anchor="middle" x="1427" y="-1008.6" font-family="Times,serif" font-size="8.00">tls</text>
<text text-anchor="middle" x="1427" y="-999.6" font-family="Times,serif" font-size="8.00">(*Conn)</text>
<text text-anchor="middle" x="1427" y="-990.6" font-family="Times,serif" font-size="8.00">writeRecordLocked</text>
<text text-anchor="middle" x="1427" y="-981.6" font-family="Times,serif" font-size="8.00">0 of 1.02MB (0.54%)</text>
</a>
</g>
</g>
<!-- N26&#45;&gt;N29 -->
<g id="edge40" class="edge">
<title>N26&#45;&gt;N29</title>
<g id="a_edge40"><a xlink:title="crypto/tls.(*Conn).Write &#45;&gt; crypto/tls.(*Conn).writeRecordLocked (1.02MB)">
<path fill="none" stroke="#b2b1ad" d="M1427.81,-1090.82C1427.66,-1073.55 1427.45,-1048.89 1427.27,-1029.33"/>
<polygon fill="#b2b1ad" stroke="#b2b1ad" points="1430.77,-1029.03 1427.18,-1019.06 1423.77,-1029.09 1430.77,-1029.03"/>
</a>
</g>
<g id="a_edge40&#45;label"><a xlink:title="crypto/tls.(*Conn).Write &#45;&gt; crypto/tls.(*Conn).writeRecordLocked (1.02MB)">
<text text-anchor="middle" x="1452" y="-1048.3" font-family="Times,serif" font-size="14.00"> 1.02MB</text>
</a>
</g>
</g>
<!-- N31 -->
<g id="node31" class="node">
<title>N31</title>
<g id="a_node31"><a xlink:title="crypto/tls.(*clientHandshakeState).handshake (1MB)">
<polygon fill="#ededec" stroke="#b2b1ad" points="1064,-1019 968,-1019 968,-975 1064,-975 1064,-1019"/>
<text text-anchor="middle" x="1016" y="-1008.6" font-family="Times,serif" font-size="8.00">tls</text>
<text text-anchor="middle" x="1016" y="-999.6" font-family="Times,serif" font-size="8.00">(*clientHandshakeState)</text>
<text text-anchor="middle" x="1016" y="-990.6" font-family="Times,serif" font-size="8.00">handshake</text>
<text text-anchor="middle" x="1016" y="-981.6" font-family="Times,serif" font-size="8.00">0 of 1MB (0.53%)</text>
</a>
</g>
</g>
<!-- N27&#45;&gt;N31 -->
<g id="edge53" class="edge">
<title>N27&#45;&gt;N31</title>
<g id="a_edge53"><a xlink:title="crypto/tls.(*Conn).clientHandshake &#45;&gt; crypto/tls.(*clientHandshakeState).handshake (1MB)">
<path fill="none" stroke="#b2b1ad" d="M1016,-1090.82C1016,-1073.55 1016,-1048.89 1016,-1029.33"/>
<polygon fill="#b2b1ad" stroke="#b2b1ad" points="1019.5,-1029.06 1016,-1019.06 1012.5,-1029.06 1019.5,-1029.06"/>
</a>
</g>
<g id="a_edge53&#45;label"><a xlink:title="crypto/tls.(*Conn).clientHandshake &#45;&gt; crypto/tls.(*clientHandshakeState).handshake (1MB)">
<text text-anchor="middle" x="1032.5" y="-1048.3" font-family="Times,serif" font-size="14.00"> 1MB</text>
</a>
</g>
</g>
<!-- N28 -->
<g id="node28" class="node">
<title>N28</title>
<g id="a_node28"><a xlink:title="crypto/tls.(*Conn).verifyServerCertificate (1MB)">
<polygon fill="#ededec" stroke="#b2b1ad" points="1039.5,-785 946.5,-785 946.5,-741 1039.5,-741 1039.5,-785"/>
<text text-anchor="middle" x="993" y="-774.6" font-family="Times,serif" font-size="8.00">tls</text>
<text text-anchor="middle" x="993" y="-765.6" font-family="Times,serif" font-size="8.00">(*Conn)</text>
<text text-anchor="middle" x="993" y="-756.6" font-family="Times,serif" font-size="8.00">verifyServerCertificate</text>
<text text-anchor="middle" x="993" y="-747.6" font-family="Times,serif" font-size="8.00">0 of 1MB (0.53%)</text>
</a>
</g>
</g>
<!-- N28&#45;&gt;N12 -->
<g id="edge67" class="edge">
<title>N28&#45;&gt;N12</title>
<g id="a_edge67"><a xlink:title="crypto/tls.(*Conn).verifyServerCertificate ... sync.(*Once).Do (0.50MB)">
<path fill="none" stroke="#b2b2b0" stroke-dasharray="1,5" d="M946.41,-744.25C894.02,-724.29 809.04,-691.92 753.58,-670.79"/>
<polygon fill="#b2b2b0" stroke="#b2b2b0" points="754.51,-667.4 743.92,-667.11 752.02,-673.94 754.51,-667.4"/>
</a>
</g>
<g id="a_edge67&#45;label"><a xlink:title="crypto/tls.(*Conn).verifyServerCertificate ... sync.(*Once).Do (0.50MB)">
<text text-anchor="middle" x="914" y="-711.8" font-family="Times,serif" font-size="14.00"> 0.50MB</text>
<text text-anchor="middle" x="914" y="-696.8" font-family="Times,serif" font-size="14.00"> (inline)</text>
</a>
</g>
</g>
<!-- N32 -->
<g id="node32" class="node">
<title>N32</title>
<g id="a_node32"><a xlink:title="crypto/tls.(*halfConn).encrypt (1.02MB)">
<polygon fill="#ededec" stroke="#b2b1ad" points="1470,-894.5 1384,-894.5 1384,-850.5 1470,-850.5 1470,-894.5"/>
<text text-anchor="middle" x="1427" y="-884.1" font-family="Times,serif" font-size="8.00">tls</text>
<text text-anchor="middle" x="1427" y="-875.1" font-family="Times,serif" font-size="8.00">(*halfConn)</text>
<text text-anchor="middle" x="1427" y="-866.1" font-family="Times,serif" font-size="8.00">encrypt</text>
<text text-anchor="middle" x="1427" y="-857.1" font-family="Times,serif" font-size="8.00">0 of 1.02MB (0.54%)</text>
</a>
</g>
</g>
<!-- N29&#45;&gt;N32 -->
<g id="edge41" class="edge">
<title>N29&#45;&gt;N32</title>
<g id="a_edge41"><a xlink:title="crypto/tls.(*Conn).writeRecordLocked &#45;&gt; crypto/tls.(*halfConn).encrypt (1.02MB)">
<path fill="none" stroke="#b2b1ad" d="M1427,-974.94C1427,-955.66 1427,-926.86 1427,-904.87"/>
<polygon fill="#b2b1ad" stroke="#b2b1ad" points="1430.5,-904.69 1427,-894.69 1423.5,-904.69 1430.5,-904.69"/>
</a>
</g>
<g id="a_edge41&#45;label"><a xlink:title="crypto/tls.(*Conn).writeRecordLocked &#45;&gt; crypto/tls.(*halfConn).encrypt (1.02MB)">
<text text-anchor="middle" x="1452" y="-938.3" font-family="Times,serif" font-size="14.00"> 1.02MB</text>
</a>
</g>
</g>
<!-- N30 -->
<g id="node30" class="node">
<title>N30</title>
<g id="a_node30"><a xlink:title="crypto/tls.(*clientHandshakeState).doFullHandshake (1MB)">
<polygon fill="#ededec" stroke="#b2b1ad" points="1064,-894.5 968,-894.5 968,-850.5 1064,-850.5 1064,-894.5"/>
<text text-anchor="middle" x="1016" y="-884.1" font-family="Times,serif" font-size="8.00">tls</text>
<text text-anchor="middle" x="1016" y="-875.1" font-family="Times,serif" font-size="8.00">(*clientHandshakeState)</text>
<text text-anchor="middle" x="1016" y="-866.1" font-family="Times,serif" font-size="8.00">doFullHandshake</text>
<text text-anchor="middle" x="1016" y="-857.1" font-family="Times,serif" font-size="8.00">0 of 1MB (0.53%)</text>
</a>
</g>
</g>
<!-- N30&#45;&gt;N28 -->
<g id="edge54" class="edge">
<title>N30&#45;&gt;N28</title>
<g id="a_edge54"><a xlink:title="crypto/tls.(*clientHandshakeState).doFullHandshake &#45;&gt; crypto/tls.(*Conn).verifyServerCertificate (1MB)">
<path fill="none" stroke="#b2b1ad" d="M1011.46,-850.26C1008.09,-834.51 1003.44,-812.78 999.65,-795.08"/>
<polygon fill="#b2b1ad" stroke="#b2b1ad" points="1003.05,-794.24 997.53,-785.19 996.2,-795.71 1003.05,-794.24"/>
</a>
</g>
<g id="a_edge54&#45;label"><a xlink:title="crypto/tls.(*clientHandshakeState).doFullHandshake &#45;&gt; crypto/tls.(*Conn).verifyServerCertificate (1MB)">
<text text-anchor="middle" x="1020.5" y="-806.8" font-family="Times,serif" font-size="14.00"> 1MB</text>
</a>
</g>
</g>
<!-- N31&#45;&gt;N30 -->
<g id="edge55" class="edge">
<title>N31&#45;&gt;N30</title>
<g id="a_edge55"><a xlink:title="crypto/tls.(*clientHandshakeState).handshake &#45;&gt; crypto/tls.(*clientHandshakeState).doFullHandshake (1MB)">
<path fill="none" stroke="#b2b1ad" d="M1016,-974.94C1016,-955.66 1016,-926.86 1016,-904.87"/>
<polygon fill="#b2b1ad" stroke="#b2b1ad" points="1019.5,-904.69 1016,-894.69 1012.5,-904.69 1019.5,-904.69"/>
</a>
</g>
<g id="a_edge55&#45;label"><a xlink:title="crypto/tls.(*clientHandshakeState).handshake &#45;&gt; crypto/tls.(*clientHandshakeState).doFullHandshake (1MB)">
<text text-anchor="middle" x="1032.5" y="-938.3" font-family="Times,serif" font-size="14.00"> 1MB</text>
</a>
</g>
</g>
<!-- N33 -->
<g id="node33" class="node">
<title>N33</title>
<g id="a_node33"><a xlink:title="crypto/tls.(*prefixNonceAEAD).Seal (1.02MB)">
<polygon fill="#ededec" stroke="#b2b1ad" points="1472,-785 1382,-785 1382,-741 1472,-741 1472,-785"/>
<text text-anchor="middle" x="1427" y="-774.6" font-family="Times,serif" font-size="8.00">tls</text>
<text text-anchor="middle" x="1427" y="-765.6" font-family="Times,serif" font-size="8.00">(*prefixNonceAEAD)</text>
<text text-anchor="middle" x="1427" y="-756.6" font-family="Times,serif" font-size="8.00">Seal</text>
<text text-anchor="middle" x="1427" y="-747.6" font-family="Times,serif" font-size="8.00">0 of 1.02MB (0.54%)</text>
</a>
</g>
</g>
<!-- N32&#45;&gt;N33 -->
<g id="edge42" class="edge">
<title>N32&#45;&gt;N33</title>
<g id="a_edge42"><a xlink:title="crypto/tls.(*halfConn).encrypt &#45;&gt; crypto/tls.(*prefixNonceAEAD).Seal (1.02MB)">
<path fill="none" stroke="#b2b1ad" d="M1427,-850.26C1427,-834.65 1427,-813.19 1427,-795.58"/>
<polygon fill="#b2b1ad" stroke="#b2b1ad" points="1430.5,-795.19 1427,-785.19 1423.5,-795.19 1430.5,-795.19"/>
</a>
</g>
<g id="a_edge42&#45;label"><a xlink:title="crypto/tls.(*halfConn).encrypt &#45;&gt; crypto/tls.(*prefixNonceAEAD).Seal (1.02MB)">
<text text-anchor="middle" x="1452" y="-806.8" font-family="Times,serif" font-size="14.00"> 1.02MB</text>
</a>
</g>
</g>
<!-- N33&#45;&gt;N24 -->
<g id="edge43" class="edge">
<title>N33&#45;&gt;N24</title>
<g id="a_edge43"><a xlink:title="crypto/tls.(*prefixNonceAEAD).Seal &#45;&gt; crypto/aes.(*gcmAsm).Seal (1.02MB)">
<path fill="none" stroke="#b2b1ad" d="M1427,-740.93C1427,-724.15 1427,-700.38 1427,-681.36"/>
<polygon fill="#b2b1ad" stroke="#b2b1ad" points="1430.5,-681.35 1427,-671.35 1423.5,-681.35 1430.5,-681.35"/>
</a>
</g>
<g id="a_edge43&#45;label"><a xlink:title="crypto/tls.(*prefixNonceAEAD).Seal &#45;&gt; crypto/aes.(*gcmAsm).Seal (1.02MB)">
<text text-anchor="middle" x="1452" y="-704.3" font-family="Times,serif" font-size="14.00"> 1.02MB</text>
</a>
</g>
</g>
<!-- N34 -->
<g id="node34" class="node">
<title>N34</title>
<g id="a_node34"><a xlink:title="encoding/gob.(*Decoder).Decode (1MB)">
<polygon fill="#ededec" stroke="#b2b1ad" points="1816,-248 1740,-248 1740,-204 1816,-204 1816,-248"/>
<text text-anchor="middle" x="1778" y="-237.6" font-family="Times,serif" font-size="8.00">gob</text>
<text text-anchor="middle" x="1778" y="-228.6" font-family="Times,serif" font-size="8.00">(*Decoder)</text>
<text text-anchor="middle" x="1778" y="-219.6" font-family="Times,serif" font-size="8.00">Decode</text>
<text text-anchor="middle" x="1778" y="-210.6" font-family="Times,serif" font-size="8.00">0 of 1MB (0.53%)</text>
</a>
</g>
</g>
<!-- N34&#45;&gt;N22 -->
<g id="edge57" class="edge">
<title>N34&#45;&gt;N22</title>
<g id="a_edge57"><a xlink:title="encoding/gob.(*Decoder).Decode &#45;&gt; encoding/gob.(*Decoder).DecodeValue (1MB)">
<path fill="none" stroke="#b2b1ad" d="M1778,-203.98C1778,-187.95 1778,-165.61 1778,-147.45"/>
<polygon fill="#b2b1ad" stroke="#b2b1ad" points="1781.5,-147.32 1778,-137.32 1774.5,-147.32 1781.5,-147.32"/>
</a>
</g>
<g id="a_edge57&#45;label"><a xlink:title="encoding/gob.(*Decoder).Decode &#45;&gt; encoding/gob.(*Decoder).DecodeValue (1MB)">
<text text-anchor="middle" x="1794.5" y="-164.8" font-family="Times,serif" font-size="14.00"> 1MB</text>
</a>
</g>
</g>
<!-- N35 -->
<g id="node35" class="node">
<title>N35</title>
<g id="a_node35"><a xlink:title="github.com/klauspost/compress/zstd.(*Decoder).DecodeAll (1.07MB)">
<polygon fill="#ededec" stroke="#b2b1ad" points="1256,-894.5 1170,-894.5 1170,-850.5 1256,-850.5 1256,-894.5"/>
<text text-anchor="middle" x="1213" y="-884.1" font-family="Times,serif" font-size="8.00">zstd</text>
<text text-anchor="middle" x="1213" y="-875.1" font-family="Times,serif" font-size="8.00">(*Decoder)</text>
<text text-anchor="middle" x="1213" y="-866.1" font-family="Times,serif" font-size="8.00">DecodeAll</text>
<text text-anchor="middle" x="1213" y="-857.1" font-family="Times,serif" font-size="8.00">0 of 1.07MB (0.57%)</text>
</a>
</g>
</g>
<!-- N35&#45;&gt;N17 -->
<g id="edge35" class="edge">
<title>N35&#45;&gt;N17</title>
<g id="a_edge35"><a xlink:title="github.com/klauspost/compress/zstd.(*Decoder).DecodeAll &#45;&gt; github.com/klauspost/compress/zstd.(*frameDec).runDecoder (1.07MB)">
<path fill="none" stroke="#b2b1ad" d="M1212.6,-850.26C1212.31,-834.65 1211.92,-813.19 1211.59,-795.58"/>
<polygon fill="#b2b1ad" stroke="#b2b1ad" points="1215.08,-795.13 1211.39,-785.19 1208.08,-795.26 1215.08,-795.13"/>
</a>
</g>
<g id="a_edge35&#45;label"><a xlink:title="github.com/klauspost/compress/zstd.(*Decoder).DecodeAll &#45;&gt; github.com/klauspost/compress/zstd.(*frameDec).runDecoder (1.07MB)">
<text text-anchor="middle" x="1237" y="-806.8" font-family="Times,serif" font-size="14.00"> 1.07MB</text>
</a>
</g>
</g>
<!-- N36 -->
<g id="node36" class="node">
<title>N36</title>
<g id="a_node36"><a xlink:title="github.com/klauspost/compress/zstd.(*Encoder).initialize (9.58MB)">
<polygon fill="#edeae7" stroke="#b29f85" points="742,-415 656,-415 656,-371 742,-371 742,-415"/>
<text text-anchor="middle" x="699" y="-404.6" font-family="Times,serif" font-size="8.00">zstd</text>
<text text-anchor="middle" x="699" y="-395.6" font-family="Times,serif" font-size="8.00">(*Encoder)</text>
<text text-anchor="middle" x="699" y="-386.6" font-family="Times,serif" font-size="8.00">initialize</text>
<text text-anchor="middle" x="699" y="-377.6" font-family="Times,serif" font-size="8.00">0 of 9.58MB (5.07%)</text>
</a>
</g>
</g>
<!-- N36&#45;&gt;N6 -->
<g id="edge24" class="edge">
<title>N36&#45;&gt;N6</title>
<g id="a_edge24"><a xlink:title="github.com/klauspost/compress/zstd.(*Encoder).initialize &#45;&gt; github.com/klauspost/compress/zstd.encoderOptions.encoder (9.58MB)">
<path fill="none" stroke="#b29f85" d="M699,-370.77C699,-345.01 699,-300.99 699,-268.43"/>
<polygon fill="#b29f85" stroke="#b29f85" points="702.5,-268.3 699,-258.3 695.5,-268.3 702.5,-268.3"/>
</a>
</g>
<g id="a_edge24&#45;label"><a xlink:title="github.com/klauspost/compress/zstd.(*Encoder).initialize &#45;&gt; github.com/klauspost/compress/zstd.encoderOptions.encoder (9.58MB)">
<text text-anchor="middle" x="724" y="-294.8" font-family="Times,serif" font-size="14.00"> 9.58MB</text>
<text text-anchor="middle" x="724" y="-279.8" font-family="Times,serif" font-size="14.00"> (inline)</text>
</a>
</g>
</g>
<!-- N38 -->
<g id="node38" class="node">
<title>N38</title>
<g id="a_node38"><a xlink:title="github.com/klauspost/compress/zstd.(*fastEncoder).Reset (131.60MB)">
<polygon fill="#edd7d5" stroke="#b21200" points="489.5,-557 392.5,-557 392.5,-513 489.5,-513 489.5,-557"/>
<text text-anchor="middle" x="441" y="-546.6" font-family="Times,serif" font-size="8.00">zstd</text>
<text text-anchor="middle" x="441" y="-537.6" font-family="Times,serif" font-size="8.00">(*fastEncoder)</text>
<text text-anchor="middle" x="441" y="-528.6" font-family="Times,serif" font-size="8.00">Reset</text>
<text text-anchor="middle" x="441" y="-519.6" font-family="Times,serif" font-size="8.00">0 of 131.60MB (69.70%)</text>
</a>
</g>
</g>
<!-- N37&#45;&gt;N38 -->
<g id="edge17" class="edge">
<title>N37&#45;&gt;N38</title>
<g id="a_edge17"><a xlink:title="github.com/klauspost/compress/zstd.(*doubleFastEncoder).Reset &#45;&gt; github.com/klauspost/compress/zstd.(*fastEncoder).Reset (131.60MB)">
<path fill="none" stroke="#b21200" stroke-width="4" d="M441,-626.93C441,-610.15 441,-586.38 441,-567.36"/>
<polygon fill="#b21200" stroke="#b21200" stroke-width="4" points="444.5,-567.35 441,-557.35 437.5,-567.35 444.5,-567.35"/>
</a>
</g>
<g id="a_edge17&#45;label"><a xlink:title="github.com/klauspost/compress/zstd.(*doubleFastEncoder).Reset &#45;&gt; github.com/klauspost/compress/zstd.(*fastEncoder).Reset (131.60MB)">
<text text-anchor="middle" x="473" y="-586.3" font-family="Times,serif" font-size="14.00"> 131.60MB</text>
</a>
</g>
</g>
<!-- N38&#45;&gt;N2 -->
<g id="edge18" class="edge">
<title>N38&#45;&gt;N2</title>
<g id="a_edge18"><a xlink:title="github.com/klauspost/compress/zstd.(*fastEncoder).Reset &#45;&gt; github.com/klauspost/compress/zstd.(*fastBase).resetBase (131.60MB)">
<path fill="none" stroke="#b21200" stroke-width="4" d="M441,-512.74C441,-501.67 441,-487.39 441,-472.58"/>
<polygon fill="#b21200" stroke="#b21200" stroke-width="4" points="444.5,-472.28 441,-462.28 437.5,-472.28 444.5,-472.28"/>
</a>
</g>
<g id="a_edge18&#45;label"><a xlink:title="github.com/klauspost/compress/zstd.(*fastEncoder).Reset &#45;&gt; github.com/klauspost/compress/zstd.(*fastBase).resetBase (131.60MB)">
<text text-anchor="middle" x="473" y="-483.8" font-family="Times,serif" font-size="14.00"> 131.60MB</text>
</a>
</g>
</g>
<!-- N39 -->
<g id="node39" class="node">
<title>N39</title>
<g id="a_node39"><a xlink:title="github.com/nelhage/llama/daemon/server.Start.func2 (1MB)">
<polygon fill="#ededec" stroke="#b2b1ad" points="1816,-1019 1740,-1019 1740,-975 1816,-975 1816,-1019"/>
<text text-anchor="middle" x="1778" y="-1008.6" font-family="Times,serif" font-size="8.00">server</text>
<text text-anchor="middle" x="1778" y="-999.6" font-family="Times,serif" font-size="8.00">Start</text>
<text text-anchor="middle" x="1778" y="-990.6" font-family="Times,serif" font-size="8.00">func2</text>
<text text-anchor="middle" x="1778" y="-981.6" font-family="Times,serif" font-size="8.00">0 of 1MB (0.53%)</text>
</a>
</g>
</g>
<!-- N57 -->
<g id="node57" class="node">
<title>N57</title>
<g id="a_node57"><a xlink:title="net/rpc.(*Server).ServeHTTP (1MB)">
<polygon fill="#ededec" stroke="#b2b1ad" points="1816,-894.5 1740,-894.5 1740,-850.5 1816,-850.5 1816,-894.5"/>
<text text-anchor="middle" x="1778" y="-884.1" font-family="Times,serif" font-size="8.00">rpc</text>
<text text-anchor="middle" x="1778" y="-875.1" font-family="Times,serif" font-size="8.00">(*Server)</text>
<text text-anchor="middle" x="1778" y="-866.1" font-family="Times,serif" font-size="8.00">ServeHTTP</text>
<text text-anchor="middle" x="1778" y="-857.1" font-family="Times,serif" font-size="8.00">0 of 1MB (0.53%)</text>
</a>
</g>
</g>
<!-- N39&#45;&gt;N57 -->
<g id="edge58" class="edge">
<title>N39&#45;&gt;N57</title>
<g id="a_edge58"><a xlink:title="github.com/nelhage/llama/daemon/server.Start.func2 &#45;&gt; net/rpc.(*Server).ServeHTTP (1MB)">
<path fill="none" stroke="#b2b1ad" d="M1778,-974.94C1778,-955.66 1778,-926.86 1778,-904.87"/>
<polygon fill="#b2b1ad" stroke="#b2b1ad" points="1781.5,-904.69 1778,-894.69 1774.5,-904.69 1781.5,-904.69"/>
</a>
</g>
<g id="a_edge58&#45;label"><a xlink:title="github.com/nelhage/llama/daemon/server.Start.func2 &#45;&gt; net/rpc.(*Server).ServeHTTP (1MB)">
<text text-anchor="middle" x="1794.5" y="-938.3" font-family="Times,serif" font-size="14.00"> 1MB</text>
</a>
</g>
</g>
<!-- N47 -->
<g id="node47" class="node">
<title>N47</title>
<g id="a_node47"><a xlink:title="io/ioutil.ReadFile (31.66MB)">
<polygon fill="#ede1d9" stroke="#b25a1c" points="886.5,-1015 793.5,-1015 793.5,-979 886.5,-979 886.5,-1015"/>
<text text-anchor="middle" x="840" y="-1004.1" font-family="Times,serif" font-size="8.00">ioutil</text>
<text text-anchor="middle" x="840" y="-995.1" font-family="Times,serif" font-size="8.00">ReadFile</text>
<text text-anchor="middle" x="840" y="-986.1" font-family="Times,serif" font-size="8.00">0 of 31.66MB (16.77%)</text>
</a>
</g>
</g>
<!-- N40&#45;&gt;N47 -->
<g id="edge20" class="edge">
<title>N40&#45;&gt;N47</title>
<g id="a_edge20"><a xlink:title="github.com/nelhage/llama/files.uploadWorker.func1 &#45;&gt; io/ioutil.ReadFile (31.66MB)">
<path fill="none" stroke="#b25a1c" d="M778.93,-1090.82C791.4,-1071.87 809.73,-1044.02 823.05,-1023.77"/>
<polygon fill="#b25a1c" stroke="#b25a1c" points="826.02,-1025.61 828.6,-1015.33 820.18,-1021.76 826.02,-1025.61"/>
</a>
</g>
<g id="a_edge20&#45;label"><a xlink:title="github.com/nelhage/llama/files.uploadWorker.func1 &#45;&gt; io/ioutil.ReadFile (31.66MB)">
<text text-anchor="middle" x="841.5" y="-1055.8" font-family="Times,serif" font-size="14.00"> 31.66MB</text>
<text text-anchor="middle" x="841.5" y="-1040.8" font-family="Times,serif" font-size="14.00"> (inline)</text>
</a>
</g>
</g>
<!-- N43 -->
<g id="node43" class="node">
<title>N43</title>
<g id="a_node43"><a xlink:title="github.com/nelhage/llama/store/s3store.(*Store).Store (147.93MB)">
<polygon fill="#edd7d5" stroke="#b20c00" points="598.5,-1019 501.5,-1019 501.5,-975 598.5,-975 598.5,-1019"/>
<text text-anchor="middle" x="550" y="-1008.6" font-family="Times,serif" font-size="8.00">s3store</text>
<text text-anchor="middle" x="550" y="-999.6" font-family="Times,serif" font-size="8.00">(*Store)</text>
<text text-anchor="middle" x="550" y="-990.6" font-family="Times,serif" font-size="8.00">Store</text>
<text text-anchor="middle" x="550" y="-981.6" font-family="Times,serif" font-size="8.00">0 of 147.93MB (78.35%)</text>
</a>
</g>
</g>
<!-- N41&#45;&gt;N43 -->
<g id="edge14" class="edge">
<title>N41&#45;&gt;N43</title>
<g id="a_edge14"><a xlink:title="github.com/nelhage/llama/protocol/files.NewBlob &#45;&gt; github.com/nelhage/llama/store/s3store.(*Store).Store (147.93MB)">
<path fill="none" stroke="#b20c00" stroke-width="4" d="M550,-1094.69C550,-1077.42 550,-1050.51 550,-1029.46"/>
<polygon fill="#b20c00" stroke="#b20c00" stroke-width="4" points="553.5,-1029.37 550,-1019.37 546.5,-1029.37 553.5,-1029.37"/>
</a>
</g>
<g id="a_edge14&#45;label"><a xlink:title="github.com/nelhage/llama/protocol/files.NewBlob &#45;&gt; github.com/nelhage/llama/store/s3store.(*Store).Store (147.93MB)">
<text text-anchor="middle" x="582" y="-1048.3" font-family="Times,serif" font-size="14.00"> 147.93MB</text>
</a>
</g>
</g>
<!-- N42&#45;&gt;N11 -->
<g id="edge27" class="edge">
<title>N42&#45;&gt;N11</title>
<g id="a_edge27"><a xlink:title="github.com/nelhage/llama/store/s3store.(*Store).GetObjects.func2 &#45;&gt; github.com/nelhage/llama/store/s3store.(*Store).getOne (3.32MB)">
<path fill="none" stroke="#b2ada2" d="M1318,-1191.92C1318,-1177.85 1318,-1160.28 1318,-1145.39"/>
<polygon fill="#b2ada2" stroke="#b2ada2" points="1321.5,-1145.11 1318,-1135.11 1314.5,-1145.11 1321.5,-1145.11"/>
</a>
</g>
<g id="a_edge27&#45;label"><a xlink:title="github.com/nelhage/llama/store/s3store.(*Store).GetObjects.func2 &#45;&gt; github.com/nelhage/llama/store/s3store.(*Store).getOne (3.32MB)">
<text text-anchor="middle" x="1343" y="-1162.8" font-family="Times,serif" font-size="14.00"> 3.32MB</text>
</a>
</g>
</g>
<!-- N43&#45;&gt;N4 -->
<g id="edge15" class="edge">
<title>N43&#45;&gt;N4</title>
<g id="a_edge15"><a xlink:title="github.com/nelhage/llama/store/s3store.(*Store).Store &#45;&gt; github.com/klauspost/compress/zstd.(*Encoder).EncodeAll (147.41MB)">
<path fill="none" stroke="#b20c00" stroke-width="4" d="M550,-974.94C550,-959.63 550,-938.33 550,-919.19"/>
<polygon fill="#b20c00" stroke="#b20c00" stroke-width="4" points="553.5,-919.13 550,-909.13 546.5,-919.13 553.5,-919.13"/>
</a>
</g>
<g id="a_edge15&#45;label"><a xlink:title="github.com/nelhage/llama/store/s3store.(*Store).Store &#45;&gt; github.com/klauspost/compress/zstd.(*Encoder).EncodeAll (147.41MB)">
<text text-anchor="middle" x="582" y="-938.3" font-family="Times,serif" font-size="14.00"> 147.41MB</text>
</a>
</g>
</g>
<!-- N44&#45;&gt;N35 -->
<g id="edge36" class="edge">
<title>N44&#45;&gt;N35</title>
<g id="a_edge36"><a xlink:title="github.com/nelhage/llama/store/s3store.(*Store).decompress &#45;&gt; github.com/klauspost/compress/zstd.(*Decoder).DecodeAll (1.07MB)">
<path fill="none" stroke="#b2b1ad" d="M1213,-974.94C1213,-955.66 1213,-926.86 1213,-904.87"/>
<polygon fill="#b2b1ad" stroke="#b2b1ad" points="1216.5,-904.69 1213,-894.69 1209.5,-904.69 1216.5,-904.69"/>
</a>
</g>
<g id="a_edge36&#45;label"><a xlink:title="github.com/nelhage/llama/store/s3store.(*Store).decompress &#45;&gt; github.com/klauspost/compress/zstd.(*Decoder).DecodeAll (1.07MB)">
<text text-anchor="middle" x="1238" y="-938.3" font-family="Times,serif" font-size="14.00"> 1.07MB</text>
</a>
</g>
</g>
<!-- N46 -->
<g id="node46" class="node">
<title>N46</title>
<g id="a_node46"><a xlink:title="io/ioutil.ReadAll (2.25MB)">
<polygon fill="#edeceb" stroke="#b2afa7" points="1361,-890.5 1275,-890.5 1275,-854.5 1361,-854.5 1361,-890.5"/>
<text text-anchor="middle" x="1318" y="-879.6" font-family="Times,serif" font-size="8.00">ioutil</text>
<text text-anchor="middle" x="1318" y="-870.6" font-family="Times,serif" font-size="8.00">ReadAll</text>
<text text-anchor="middle" x="1318" y="-861.6" font-family="Times,serif" font-size="8.00">0 of 2.25MB (1.19%)</text>
</a>
</g>
</g>
<!-- N45&#45;&gt;N46 -->
<g id="edge31" class="edge">
<title>N45&#45;&gt;N46</title>
<g id="a_edge31"><a xlink:title="github.com/nelhage/llama/store/s3store.(*Store).getFromS3 &#45;&gt; io/ioutil.ReadAll (2.25MB)">
<path fill="none" stroke="#b2afa7" d="M1318,-974.94C1318,-954.48 1318,-923.31 1318,-900.93"/>
<polygon fill="#b2afa7" stroke="#b2afa7" points="1321.5,-900.73 1318,-890.73 1314.5,-900.73 1321.5,-900.73"/>
</a>
</g>
<g id="a_edge31&#45;label"><a xlink:title="github.com/nelhage/llama/store/s3store.(*Store).getFromS3 &#45;&gt; io/ioutil.ReadAll (2.25MB)">
<text text-anchor="middle" x="1343" y="-945.8" font-family="Times,serif" font-size="14.00"> 2.25MB</text>
<text text-anchor="middle" x="1343" y="-930.8" font-family="Times,serif" font-size="14.00"> (inline)</text>
</a>
</g>
</g>
<!-- N46&#45;&gt;N9 -->
<g id="edge33" class="edge">
<title>N46&#45;&gt;N9</title>
<g id="a_edge33"><a xlink:title="io/ioutil.ReadAll &#45;&gt; io.ReadAll (2.25MB)">
<path fill="none" stroke="#b2afa7" d="M1318,-854.23C1318,-838.4 1318,-814.59 1318,-795.4"/>
<polygon fill="#b2afa7" stroke="#b2afa7" points="1321.5,-795.3 1318,-785.3 1314.5,-795.3 1321.5,-795.3"/>
</a>
</g>
<g id="a_edge33&#45;label"><a xlink:title="io/ioutil.ReadAll &#45;&gt; io.ReadAll (2.25MB)">
<text text-anchor="middle" x="1343" y="-806.8" font-family="Times,serif" font-size="14.00"> 2.25MB</text>
</a>
</g>
</g>
<!-- N47&#45;&gt;N5 -->
<g id="edge21" class="edge">
<title>N47&#45;&gt;N5</title>
<g id="a_edge21"><a xlink:title="io/ioutil.ReadFile &#45;&gt; os.ReadFile (31.66MB)">
<path fill="none" stroke="#b25a1c" d="M845.28,-978.97C850.52,-962.09 858.73,-935.63 865.61,-913.43"/>
<polygon fill="#b25a1c" stroke="#b25a1c" points="869.05,-914.17 868.67,-903.58 862.36,-912.1 869.05,-914.17"/>
</a>
</g>
<g id="a_edge21&#45;label"><a xlink:title="io/ioutil.ReadFile &#45;&gt; os.ReadFile (31.66MB)">
<text text-anchor="middle" x="889.5" y="-938.3" font-family="Times,serif" font-size="14.00"> 31.66MB</text>
</a>
</g>
</g>
<!-- N51 -->
<g id="node51" class="node">
<title>N51</title>
<g id="a_node51"><a xlink:title="net/http.(*transferWriter).writeBody (1.02MB)">
<polygon fill="#ededec" stroke="#b2b1ad" points="1719,-1135 1633,-1135 1633,-1091 1719,-1091 1719,-1135"/>
<text text-anchor="middle" x="1676" y="-1124.6" font-family="Times,serif" font-size="8.00">http</text>
<text text-anchor="middle" x="1676" y="-1115.6" font-family="Times,serif" font-size="8.00">(*transferWriter)</text>
<text text-anchor="middle" x="1676" y="-1106.6" font-family="Times,serif" font-size="8.00">writeBody</text>
<text text-anchor="middle" x="1676" y="-1097.6" font-family="Times,serif" font-size="8.00">0 of 1.02MB (0.54%)</text>
</a>
</g>
</g>
<!-- N48&#45;&gt;N51 -->
<g id="edge47" class="edge">
<title>N48&#45;&gt;N51</title>
<g id="a_edge47"><a xlink:title="net/http.(*Request).write &#45;&gt; net/http.(*transferWriter).writeBody (1.02MB)">
<path fill="none" stroke="#b2b1ad" d="M1676,-1196.31C1676,-1181.65 1676,-1161.91 1676,-1145.44"/>
<polygon fill="#b2b1ad" stroke="#b2b1ad" points="1679.5,-1145.17 1676,-1135.17 1672.5,-1145.17 1679.5,-1145.17"/>
</a>
</g>
<g id="a_edge47&#45;label"><a xlink:title="net/http.(*Request).write &#45;&gt; net/http.(*transferWriter).writeBody (1.02MB)">
<text text-anchor="middle" x="1701" y="-1162.8" font-family="Times,serif" font-size="14.00"> 1.02MB</text>
</a>
</g>
</g>
<!-- N49&#45;&gt;N8 -->
<g id="edge30" class="edge">
<title>N49&#45;&gt;N8</title>
<g id="a_edge30"><a xlink:title="net/http.(*http2clientStream).writeRequestBody &#45;&gt; net/http.(*http2ClientConn).frameScratchBuffer (2.37MB)">
<path fill="none" stroke="#b2afa7" d="M1125,-1196.31C1125,-1183.33 1125,-1166.37 1125,-1151.21"/>
<polygon fill="#b2afa7" stroke="#b2afa7" points="1128.5,-1151.08 1125,-1141.08 1121.5,-1151.08 1128.5,-1151.08"/>
</a>
</g>
<g id="a_edge30&#45;label"><a xlink:title="net/http.(*http2clientStream).writeRequestBody &#45;&gt; net/http.(*http2ClientConn).frameScratchBuffer (2.37MB)">
<text text-anchor="middle" x="1150" y="-1162.8" font-family="Times,serif" font-size="14.00"> 2.37MB</text>
</a>
</g>
</g>
<!-- N50 -->
<g id="node50" class="node">
<title>N50</title>
<g id="a_node50"><a xlink:title="net/http.(*transferWriter).doBodyCopy (1.02MB)">
<polygon fill="#ededec" stroke="#b2b1ad" points="1719,-1019 1633,-1019 1633,-975 1719,-975 1719,-1019"/>
<text text-anchor="middle" x="1676" y="-1008.6" font-family="Times,serif" font-size="8.00">http</text>
<text text-anchor="middle" x="1676" y="-999.6" font-family="Times,serif" font-size="8.00">(*transferWriter)</text>
<text text-anchor="middle" x="1676" y="-990.6" font-family="Times,serif" font-size="8.00">doBodyCopy</text>
<text text-anchor="middle" x="1676" y="-981.6" font-family="Times,serif" font-size="8.00">0 of 1.02MB (0.54%)</text>
</a>
</g>
</g>
<!-- N50&#45;&gt;N18 -->
<g id="edge49" class="edge">
<title>N50&#45;&gt;N18</title>
<g id="a_edge49"><a xlink:title="net/http.(*transferWriter).doBodyCopy &#45;&gt; io.Copy (1.02MB)">
<path fill="none" stroke="#b2b1ad" d="M1661.97,-974.8C1652.39,-960.8 1639.09,-942.28 1626,-927 1617.41,-916.98 1607.29,-906.62 1598.15,-897.72"/>
<polygon fill="#b2b1ad" stroke="#b2b1ad" points="1600.4,-895.03 1590.76,-890.63 1595.55,-900.08 1600.4,-895.03"/>
</a>
</g>
<g id="a_edge49&#45;label"><a xlink:title="net/http.(*transferWriter).doBodyCopy &#45;&gt; io.Copy (1.02MB)">
<text text-anchor="middle" x="1674" y="-945.8" font-family="Times,serif" font-size="14.00"> 1.02MB</text>
<text text-anchor="middle" x="1674" y="-930.8" font-family="Times,serif" font-size="14.00"> (inline)</text>
</a>
</g>
</g>
<!-- N51&#45;&gt;N50 -->
<g id="edge50" class="edge">
<title>N51&#45;&gt;N50</title>
<g id="a_edge50"><a xlink:title="net/http.(*transferWriter).writeBody &#45;&gt; net/http.(*transferWriter).doBodyCopy (1.02MB)">
<path fill="none" stroke="#b2b1ad" d="M1676,-1090.82C1676,-1073.55 1676,-1048.89 1676,-1029.33"/>
<polygon fill="#b2b1ad" stroke="#b2b1ad" points="1679.5,-1029.06 1676,-1019.06 1672.5,-1029.06 1679.5,-1029.06"/>
</a>
</g>
<g id="a_edge50&#45;label"><a xlink:title="net/http.(*transferWriter).writeBody &#45;&gt; net/http.(*transferWriter).doBodyCopy (1.02MB)">
<text text-anchor="middle" x="1701" y="-1048.3" font-family="Times,serif" font-size="14.00"> 1.02MB</text>
</a>
</g>
</g>
<!-- N52 -->
<g id="node52" class="node">
<title>N52</title>
<g id="a_node52"><a xlink:title="net/http.HandlerFunc.ServeHTTP (1MB)">
<polygon fill="#ededec" stroke="#b2b1ad" points="1816,-1135 1740,-1135 1740,-1091 1816,-1091 1816,-1135"/>
<text text-anchor="middle" x="1778" y="-1124.6" font-family="Times,serif" font-size="8.00">http</text>
<text text-anchor="middle" x="1778" y="-1115.6" font-family="Times,serif" font-size="8.00">HandlerFunc</text>
<text text-anchor="middle" x="1778" y="-1106.6" font-family="Times,serif" font-size="8.00">ServeHTTP</text>
<text text-anchor="middle" x="1778" y="-1097.6" font-family="Times,serif" font-size="8.00">0 of 1MB (0.53%)</text>
</a>
</g>
</g>
<!-- N52&#45;&gt;N39 -->
<g id="edge60" class="edge">
<title>N52&#45;&gt;N39</title>
<g id="a_edge60"><a xlink:title="net/http.HandlerFunc.ServeHTTP &#45;&gt; github.com/nelhage/llama/daemon/server.Start.func2 (1MB)">
<path fill="none" stroke="#b2b1ad" d="M1778,-1090.82C1778,-1073.55 1778,-1048.89 1778,-1029.33"/>
<polygon fill="#b2b1ad" stroke="#b2b1ad" points="1781.5,-1029.06 1778,-1019.06 1774.5,-1029.06 1781.5,-1029.06"/>
</a>
</g>
<g id="a_edge60&#45;label"><a xlink:title="net/http.HandlerFunc.ServeHTTP &#45;&gt; github.com/nelhage/llama/daemon/server.Start.func2 (1MB)">
<text text-anchor="middle" x="1794.5" y="-1048.3" font-family="Times,serif" font-size="14.00"> 1MB</text>
</a>
</g>
</g>
<!-- N53&#45;&gt;N18 -->
<g id="edge51" class="edge">
<title>N53&#45;&gt;N18</title>
<g id="a_edge51"><a xlink:title="net/http.persistConnWriter.ReadFrom &#45;&gt; io.Copy (1.02MB)">
<path fill="none" stroke="#b2b1ad" d="M1572,-974.94C1572,-954.48 1572,-923.31 1572,-900.93"/>
<polygon fill="#b2b1ad" stroke="#b2b1ad" points="1575.5,-900.73 1572,-890.73 1568.5,-900.73 1575.5,-900.73"/>
</a>
</g>
<g id="a_edge51&#45;label"><a xlink:title="net/http.persistConnWriter.ReadFrom &#45;&gt; io.Copy (1.02MB)">
<text text-anchor="middle" x="1597" y="-945.8" font-family="Times,serif" font-size="14.00"> 1.02MB</text>
<text text-anchor="middle" x="1597" y="-930.8" font-family="Times,serif" font-size="14.00"> (inline)</text>
</a>
</g>
</g>
<!-- N54&#45;&gt;N52 -->
<g id="edge61" class="edge">
<title>N54&#45;&gt;N52</title>
<g id="a_edge61"><a xlink:title="net/http.serverHandler.ServeHTTP &#45;&gt; net/http.HandlerFunc.ServeHTTP (1MB)">
<path fill="none" stroke="#b2b1ad" d="M1778,-1196.31C1778,-1181.65 1778,-1161.91 1778,-1145.44"/>
<polygon fill="#b2b1ad" stroke="#b2b1ad" points="1781.5,-1145.17 1778,-1135.17 1774.5,-1145.17 1781.5,-1145.17"/>
</a>
</g>
<g id="a_edge61&#45;label"><a xlink:title="net/http.serverHandler.ServeHTTP &#45;&gt; net/http.HandlerFunc.ServeHTTP (1MB)">
<text text-anchor="middle" x="1794.5" y="-1162.8" font-family="Times,serif" font-size="14.00"> 1MB</text>
</a>
</g>
</g>
<!-- N55 -->
<g id="node55" class="node">
<title>N55</title>
<g id="a_node55"><a xlink:title="net/rpc.(*Server).ServeCodec (1MB)">
<polygon fill="#ededec" stroke="#b2b1ad" points="1816,-671 1740,-671 1740,-627 1816,-627 1816,-671"/>
<text text-anchor="middle" x="1778" y="-660.6" font-family="Times,serif" font-size="8.00">rpc</text>
<text text-anchor="middle" x="1778" y="-651.6" font-family="Times,serif" font-size="8.00">(*Server)</text>
<text text-anchor="middle" x="1778" y="-642.6" font-family="Times,serif" font-size="8.00">ServeCodec</text>
<text text-anchor="middle" x="1778" y="-633.6" font-family="Times,serif" font-size="8.00">0 of 1MB (0.53%)</text>
</a>
</g>
</g>
<!-- N58 -->
<g id="node58" class="node">
<title>N58</title>
<g id="a_node58"><a xlink:title="net/rpc.(*Server).readRequest (1MB)">
<polygon fill="#ededec" stroke="#b2b1ad" points="1816,-557 1740,-557 1740,-513 1816,-513 1816,-557"/>
<text text-anchor="middle" x="1778" y="-546.6" font-family="Times,serif" font-size="8.00">rpc</text>
<text text-anchor="middle" x="1778" y="-537.6" font-family="Times,serif" font-size="8.00">(*Server)</text>
<text text-anchor="middle" x="1778" y="-528.6" font-family="Times,serif" font-size="8.00">readRequest</text>
<text text-anchor="middle" x="1778" y="-519.6" font-family="Times,serif" font-size="8.00">0 of 1MB (0.53%)</text>
</a>
</g>
</g>
<!-- N55&#45;&gt;N58 -->
<g id="edge62" class="edge">
<title>N55&#45;&gt;N58</title>
<g id="a_edge62"><a xlink:title="net/rpc.(*Server).ServeCodec &#45;&gt; net/rpc.(*Server).readRequest (1MB)">
<path fill="none" stroke="#b2b1ad" d="M1778,-626.93C1778,-610.15 1778,-586.38 1778,-567.36"/>
<polygon fill="#b2b1ad" stroke="#b2b1ad" points="1781.5,-567.35 1778,-557.35 1774.5,-567.35 1781.5,-567.35"/>
</a>
</g>
<g id="a_edge62&#45;label"><a xlink:title="net/rpc.(*Server).ServeCodec &#45;&gt; net/rpc.(*Server).readRequest (1MB)">
<text text-anchor="middle" x="1794.5" y="-586.3" font-family="Times,serif" font-size="14.00"> 1MB</text>
</a>
</g>
</g>
<!-- N56 -->
<g id="node56" class="node">
<title>N56</title>
<g id="a_node56"><a xlink:title="net/rpc.(*Server).ServeConn (1MB)">
<polygon fill="#ededec" stroke="#b2b1ad" points="1816,-785 1740,-785 1740,-741 1816,-741 1816,-785"/>
<text text-anchor="middle" x="1778" y="-774.6" font-family="Times,serif" font-size="8.00">rpc</text>
<text text-anchor="middle" x="1778" y="-765.6" font-family="Times,serif" font-size="8.00">(*Server)</text>
<text text-anchor="middle" x="1778" y="-756.6" font-family="Times,serif" font-size="8.00">ServeConn</text>
<text text-anchor="middle" x="1778" y="-747.6" font-family="Times,serif" font-size="8.00">0 of 1MB (0.53%)</text>
</a>
</g>
</g>
<!-- N56&#45;&gt;N55 -->
<g id="edge63" class="edge">
<title>N56&#45;&gt;N55</title>
<g id="a_edge63"><a xlink:title="net/rpc.(*Server).ServeConn &#45;&gt; net/rpc.(*Server).ServeCodec (1MB)">
<path fill="none" stroke="#b2b1ad" d="M1778,-740.93C1778,-724.15 1778,-700.38 1778,-681.36"/>
<polygon fill="#b2b1ad" stroke="#b2b1ad" points="1781.5,-681.35 1778,-671.35 1774.5,-681.35 1781.5,-681.35"/>
</a>
</g>
<g id="a_edge63&#45;label"><a xlink:title="net/rpc.(*Server).ServeConn &#45;&gt; net/rpc.(*Server).ServeCodec (1MB)">
<text text-anchor="middle" x="1794.5" y="-704.3" font-family="Times,serif" font-size="14.00"> 1MB</text>
</a>
</g>
</g>
<!-- N57&#45;&gt;N56 -->
<g id="edge64" class="edge">
<title>N57&#45;&gt;N56</title>
<g id="a_edge64"><a xlink:title="net/rpc.(*Server).ServeHTTP &#45;&gt; net/rpc.(*Server).ServeConn (1MB)">
<path fill="none" stroke="#b2b1ad" d="M1778,-850.26C1778,-834.65 1778,-813.19 1778,-795.58"/>
<polygon fill="#b2b1ad" stroke="#b2b1ad" points="1781.5,-795.19 1778,-785.19 1774.5,-795.19 1781.5,-795.19"/>
</a>
</g>
<g id="a_edge64&#45;label"><a xlink:title="net/rpc.(*Server).ServeHTTP &#45;&gt; net/rpc.(*Server).ServeConn (1MB)">
<text text-anchor="middle" x="1794.5" y="-806.8" font-family="Times,serif" font-size="14.00"> 1MB</text>
</a>
</g>
</g>
<!-- N59 -->
<g id="node59" class="node">
<title>N59</title>
<g id="a_node59"><a xlink:title="net/rpc.(*gobServerCodec).ReadRequestBody (1MB)">
<polygon fill="#ededec" stroke="#b2b1ad" points="1818,-415 1738,-415 1738,-371 1818,-371 1818,-415"/>
<text text-anchor="middle" x="1778" y="-404.6" font-family="Times,serif" font-size="8.00">rpc</text>
<text text-anchor="middle" x="1778" y="-395.6" font-family="Times,serif" font-size="8.00">(*gobServerCodec)</text>
<text text-anchor="middle" x="1778" y="-386.6" font-family="Times,serif" font-size="8.00">ReadRequestBody</text>
<text text-anchor="middle" x="1778" y="-377.6" font-family="Times,serif" font-size="8.00">0 of 1MB (0.53%)</text>
</a>
</g>
</g>
<!-- N58&#45;&gt;N59 -->
<g id="edge65" class="edge">
<title>N58&#45;&gt;N59</title>
<g id="a_edge65"><a xlink:title="net/rpc.(*Server).readRequest &#45;&gt; net/rpc.(*gobServerCodec).ReadRequestBody (1MB)">
<path fill="none" stroke="#b2b1ad" d="M1778,-512.74C1778,-489.48 1778,-451.96 1778,-425.33"/>
<polygon fill="#b2b1ad" stroke="#b2b1ad" points="1781.5,-425 1778,-415 1774.5,-425 1781.5,-425"/>
</a>
</g>
<g id="a_edge65&#45;label"><a xlink:title="net/rpc.(*Server).readRequest &#45;&gt; net/rpc.(*gobServerCodec).ReadRequestBody (1MB)">
<text text-anchor="middle" x="1794.5" y="-483.8" font-family="Times,serif" font-size="14.00"> 1MB</text>
</a>
</g>
</g>
<!-- N59&#45;&gt;N34 -->
<g id="edge66" class="edge">
<title>N59&#45;&gt;N34</title>
<g id="a_edge66"><a xlink:title="net/rpc.(*gobServerCodec).ReadRequestBody &#45;&gt; encoding/gob.(*Decoder).Decode (1MB)">
<path fill="none" stroke="#b2b1ad" d="M1778,-370.77C1778,-342.18 1778,-291.1 1778,-258.16"/>
<polygon fill="#b2b1ad" stroke="#b2b1ad" points="1781.5,-258.15 1778,-248.15 1774.5,-258.15 1781.5,-258.15"/>
</a>
</g>
<g id="a_edge66&#45;label"><a xlink:title="net/rpc.(*gobServerCodec).ReadRequestBody &#45;&gt; encoding/gob.(*Decoder).Decode (1MB)">
<text text-anchor="middle" x="1794.5" y="-287.3" font-family="Times,serif" font-size="14.00"> 1MB</text>
</a>
</g>
</g>
<!-- N60&#45;&gt;N36 -->
<g id="edge25" class="edge">
<title>N60&#45;&gt;N36</title>
<g id="a_edge25"><a xlink:title="sync.(*Once).doSlow &#45;&gt; github.com/klauspost/compress/zstd.(*Encoder).initialize (9.58MB)">
<path fill="none" stroke="#b29f85" d="M699,-512.74C699,-489.48 699,-451.96 699,-425.33"/>
<polygon fill="#b29f85" stroke="#b29f85" points="702.5,-425 699,-415 695.5,-425 702.5,-425"/>
</a>
</g>
<g id="a_edge25&#45;label"><a xlink:title="sync.(*Once).doSlow &#45;&gt; github.com/klauspost/compress/zstd.(*Encoder).initialize (9.58MB)">
<text text-anchor="middle" x="724" y="-483.8" font-family="Times,serif" font-size="14.00"> 9.58MB</text>
</a>
</g>
</g>
</g>
</g></svg>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment