Clash.Meta/docs/allocs.svg
2023-01-30 21:19:46 +08:00

2388 lines
127 KiB
XML

<?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 7.1.0 (20230121.1956)
-->
<!-- Title: unnamed 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 2157)">
<title>unnamed</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-2157 2457.5,-2157 2457.5,4 -4,4"/>
<g id="clust1" class="cluster">
<title>cluster_L</title>
<polygon fill="none" stroke="black" points="51,-1976 51,-2145 543,-2145 543,-1976 51,-1976"/>
</g>
<!-- Type: alloc_space -->
<g id="node1" class="node">
<title>Type: alloc_space</title>
<polygon fill="#f8f8f8" stroke="black" points="534.5,-2137 59.5,-2137 59.5,-1984 534.5,-1984 534.5,-2137"/>
<text text-anchor="start" x="67.5" y="-2120.2" font-family="Times New Roman,serif" font-size="16.00">Type: alloc_space</text>
<text text-anchor="start" x="67.5" y="-2102.2" font-family="Times New Roman,serif" font-size="16.00">Time: Jan 30, 2023 at 9:18pm (CST)</text>
<text text-anchor="start" x="67.5" y="-2084.2" font-family="Times New Roman,serif" font-size="16.00">Showing nodes accounting for 1777.16MB, 96.71% of 1837.65MB total</text>
<text text-anchor="start" x="67.5" y="-2066.2" font-family="Times New Roman,serif" font-size="16.00">Dropped 188 nodes (cum &lt;= 9.19MB)</text>
<text text-anchor="start" x="67.5" y="-2048.2" font-family="Times New Roman,serif" font-size="16.00">Dropped 2 edges (freq &lt;= 1.84MB)</text>
<text text-anchor="start" x="67.5" y="-2030.2" font-family="Times New Roman,serif" font-size="16.00">Showing top 55 nodes out of 117</text>
<text text-anchor="start" x="67.5" y="-1993.2" font-family="Times New Roman,serif" font-size="16.00">See https://git.io/JfYMW for how to read the graph</text>
</g>
<!-- N1 -->
<g id="node1" class="node">
<title>N1</title>
<g id="a_node1"><a xlink:title="github.com/metacubex/quic&#45;go.(*client).dial.func1 (1648.40MB)">
<polygon fill="#edd6d5" stroke="#b20500" points="663,-2087 553,-2087 553,-2034 663,-2034 663,-2087"/>
<text text-anchor="middle" x="608" y="-2076.6" font-family="Times New Roman,serif" font-size="8.00">quic&#45;go</text>
<text text-anchor="middle" x="608" y="-2067.6" font-family="Times New Roman,serif" font-size="8.00">(*client)</text>
<text text-anchor="middle" x="608" y="-2058.6" font-family="Times New Roman,serif" font-size="8.00">dial</text>
<text text-anchor="middle" x="608" y="-2049.6" font-family="Times New Roman,serif" font-size="8.00">func1</text>
<text text-anchor="middle" x="608" y="-2040.6" font-family="Times New Roman,serif" font-size="8.00">0 of 1648.40MB (89.70%)</text>
</a>
</g>
</g>
<!-- N3 -->
<g id="node3" class="node">
<title>N3</title>
<g id="a_node3"><a xlink:title="github.com/metacubex/quic&#45;go.(*connection).run (1648.40MB)">
<polygon fill="#edd6d5" stroke="#b20500" points="663,-1933 553,-1933 553,-1889 663,-1889 663,-1933"/>
<text text-anchor="middle" x="608" y="-1922.6" font-family="Times New Roman,serif" font-size="8.00">quic&#45;go</text>
<text text-anchor="middle" x="608" y="-1913.6" font-family="Times New Roman,serif" font-size="8.00">(*connection)</text>
<text text-anchor="middle" x="608" y="-1904.6" font-family="Times New Roman,serif" font-size="8.00">run</text>
<text text-anchor="middle" x="608" y="-1895.6" font-family="Times New Roman,serif" font-size="8.00">0 of 1648.40MB (89.70%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N3 -->
<g id="edge26" class="edge">
<title>N1&#45;&gt;N3</title>
<g id="a_edge26"><a xlink:title="github.com/metacubex/quic&#45;go.(*client).dial.func1 &#45;&gt; github.com/metacubex/quic&#45;go.(*connection).run (1648.40MB)">
<path fill="none" stroke="#b20500" stroke-width="5" d="M608,-2033.81C608,-2010.38 608,-1975.5 608,-1949.05"/>
<polygon fill="#b20500" stroke="#b20500" stroke-width="5" points="612.38,-1949.34 608,-1939.34 603.63,-1949.34 612.38,-1949.34"/>
</a>
</g>
<g id="a_edge26&#45;label"><a xlink:title="github.com/metacubex/quic&#45;go.(*client).dial.func1 &#45;&gt; github.com/metacubex/quic&#45;go.(*connection).run (1648.40MB)">
<text text-anchor="middle" x="643" y="-1954.8" font-family="Times New Roman,serif" font-size="14.00"> 1648.40MB</text>
</a>
</g>
</g>
<!-- N2 -->
<g id="node2" class="node">
<title>N2</title>
<g id="a_node2"><a xlink:title="github.com/metacubex/quic&#45;go.(*connection).sendPacket (1412.44MB)">
<polygon fill="#edd7d5" stroke="#b20d00" points="663,-1838 553,-1838 553,-1794 663,-1794 663,-1838"/>
<text text-anchor="middle" x="608" y="-1827.6" font-family="Times New Roman,serif" font-size="8.00">quic&#45;go</text>
<text text-anchor="middle" x="608" y="-1818.6" font-family="Times New Roman,serif" font-size="8.00">(*connection)</text>
<text text-anchor="middle" x="608" y="-1809.6" font-family="Times New Roman,serif" font-size="8.00">sendPacket</text>
<text text-anchor="middle" x="608" y="-1800.6" font-family="Times New Roman,serif" font-size="8.00">0 of 1412.44MB (76.86%)</text>
</a>
</g>
</g>
<!-- N4 -->
<g id="node4" class="node">
<title>N4</title>
<g id="a_node4"><a xlink:title="github.com/metacubex/quic&#45;go.(*packetPacker).PackPacket (956.14MB)">
<polygon fill="#edd9d5" stroke="#b21f00" points="681,-1743 535,-1743 535,-1660 681,-1660 681,-1743"/>
<text text-anchor="middle" x="608" y="-1727.8" font-family="Times New Roman,serif" font-size="14.00">quic&#45;go</text>
<text text-anchor="middle" x="608" y="-1712.8" font-family="Times New Roman,serif" font-size="14.00">(*packetPacker)</text>
<text text-anchor="middle" x="608" y="-1697.8" font-family="Times New Roman,serif" font-size="14.00">PackPacket</text>
<text text-anchor="middle" x="608" y="-1682.8" font-family="Times New Roman,serif" font-size="14.00">30MB (1.63%)</text>
<text text-anchor="middle" x="608" y="-1667.8" font-family="Times New Roman,serif" font-size="14.00">of 956.14MB (52.03%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N4 -->
<g id="edge28" class="edge">
<title>N2&#45;&gt;N4</title>
<g id="a_edge28"><a xlink:title="github.com/metacubex/quic&#45;go.(*connection).sendPacket &#45;&gt; github.com/metacubex/quic&#45;go.(*packetPacker).PackPacket (956.14MB)">
<path fill="none" stroke="#b21f00" stroke-width="3" d="M608,-1793.57C608,-1783.29 608,-1770.45 608,-1757.68"/>
<polygon fill="#b21f00" stroke="#b21f00" stroke-width="3" points="611.5,-1757.98 608,-1747.98 604.5,-1757.98 611.5,-1757.98"/>
</a>
</g>
<g id="a_edge28&#45;label"><a xlink:title="github.com/metacubex/quic&#45;go.(*connection).sendPacket &#45;&gt; github.com/metacubex/quic&#45;go.(*packetPacker).PackPacket (956.14MB)">
<text text-anchor="middle" x="639.5" y="-1764.8" font-family="Times New Roman,serif" font-size="14.00"> 956.14MB</text>
</a>
</g>
</g>
<!-- N10 -->
<g id="node10" class="node">
<title>N10</title>
<g id="a_node10"><a xlink:title="github.com/metacubex/quic&#45;go.(*connection).sendPackedPacket (456.30MB)">
<polygon fill="#edddd5" stroke="#b23c00" points="805,-1723.5 699,-1723.5 699,-1679.5 805,-1679.5 805,-1723.5"/>
<text text-anchor="middle" x="752" y="-1713.1" font-family="Times New Roman,serif" font-size="8.00">quic&#45;go</text>
<text text-anchor="middle" x="752" y="-1704.1" font-family="Times New Roman,serif" font-size="8.00">(*connection)</text>
<text text-anchor="middle" x="752" y="-1695.1" font-family="Times New Roman,serif" font-size="8.00">sendPackedPacket</text>
<text text-anchor="middle" x="752" y="-1686.1" font-family="Times New Roman,serif" font-size="8.00">0 of 456.30MB (24.83%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N10 -->
<g id="edge30" class="edge">
<title>N2&#45;&gt;N10</title>
<g id="a_edge30"><a xlink:title="github.com/metacubex/quic&#45;go.(*connection).sendPacket &#45;&gt; github.com/metacubex/quic&#45;go.(*connection).sendPackedPacket (456.30MB)">
<path fill="none" stroke="#b23c00" stroke-width="2" d="M648.31,-1793.6C657.35,-1788.24 666.72,-1782.23 675,-1776 692.04,-1763.19 709.36,-1746.99 723.25,-1733.07"/>
<polygon fill="#b23c00" stroke="#b23c00" stroke-width="2" points="725.65,-1735.62 730.15,-1726.03 720.65,-1730.72 725.65,-1735.62"/>
</a>
</g>
<g id="a_edge30&#45;label"><a xlink:title="github.com/metacubex/quic&#45;go.(*connection).sendPacket &#45;&gt; github.com/metacubex/quic&#45;go.(*connection).sendPackedPacket (456.30MB)">
<text text-anchor="middle" x="725.5" y="-1764.8" font-family="Times New Roman,serif" font-size="14.00"> 456.30MB</text>
</a>
</g>
</g>
<!-- N3&#45;&gt;N2 -->
<g id="edge27" class="edge">
<title>N3&#45;&gt;N2</title>
<g id="a_edge27"><a xlink:title="github.com/metacubex/quic&#45;go.(*connection).run ... github.com/metacubex/quic&#45;go.(*connection).sendPacket (1412.44MB)">
<path fill="none" stroke="#b20d00" stroke-width="4" stroke-dasharray="1,5" d="M608,-1888.9C608,-1878.62 608,-1865.97 608,-1854.15"/>
<polygon fill="#b20d00" stroke="#b20d00" stroke-width="4" points="611.5,-1854.4 608,-1844.4 604.5,-1854.4 611.5,-1854.4"/>
</a>
</g>
<g id="a_edge27&#45;label"><a xlink:title="github.com/metacubex/quic&#45;go.(*connection).run ... github.com/metacubex/quic&#45;go.(*connection).sendPacket (1412.44MB)">
<text text-anchor="middle" x="643" y="-1859.8" font-family="Times New Roman,serif" font-size="14.00"> 1412.44MB</text>
</a>
</g>
</g>
<!-- N36 -->
<g id="node36" class="node">
<title>N36</title>
<g id="a_node36"><a xlink:title="github.com/metacubex/quic&#45;go.(*connection).handleUnpackedShortHeaderPacket (235.46MB)">
<polygon fill="#ede4dd" stroke="#b27440" points="966,-1838 826,-1838 826,-1794 966,-1794 966,-1838"/>
<text text-anchor="middle" x="896" y="-1827.6" font-family="Times New Roman,serif" font-size="8.00">quic&#45;go</text>
<text text-anchor="middle" x="896" y="-1818.6" font-family="Times New Roman,serif" font-size="8.00">(*connection)</text>
<text text-anchor="middle" x="896" y="-1809.6" font-family="Times New Roman,serif" font-size="8.00">handleUnpackedShortHeaderPacket</text>
<text text-anchor="middle" x="896" y="-1800.6" font-family="Times New Roman,serif" font-size="8.00">0 of 235.46MB (12.81%)</text>
</a>
</g>
</g>
<!-- N3&#45;&gt;N36 -->
<g id="edge35" class="edge">
<title>N3&#45;&gt;N36</title>
<g id="a_edge35"><a xlink:title="github.com/metacubex/quic&#45;go.(*connection).run ... github.com/metacubex/quic&#45;go.(*connection).handleUnpackedShortHeaderPacket (235.46MB)">
<path fill="none" stroke="#b27440" stroke-dasharray="1,5" d="M663.19,-1892.18C707.3,-1877.93 769.65,-1857.8 818.73,-1841.95"/>
<polygon fill="#b27440" stroke="#b27440" points="819.74,-1845.3 828.18,-1838.9 817.59,-1838.64 819.74,-1845.3"/>
</a>
</g>
<g id="a_edge35&#45;label"><a xlink:title="github.com/metacubex/quic&#45;go.(*connection).run ... github.com/metacubex/quic&#45;go.(*connection).handleUnpackedShortHeaderPacket (235.46MB)">
<text text-anchor="middle" x="801.5" y="-1859.8" font-family="Times New Roman,serif" font-size="14.00"> 235.46MB</text>
</a>
</g>
</g>
<!-- NN4_0 -->
<g id="NN4_0" class="node">
<title>NN4_0</title>
<g id="a_NN4_0"><a xlink:title="30MB">
<polygon fill="#f8f8f8" stroke="black" points="635,-1605 585,-1605 581,-1601 581,-1569 631,-1569 635,-1573 635,-1605"/>
<polyline fill="none" stroke="black" points="631,-1601 581,-1601"/>
<polyline fill="none" stroke="black" points="631,-1601 631,-1569"/>
<polyline fill="none" stroke="black" points="631,-1601 635,-1605"/>
<text text-anchor="middle" x="608" y="-1585.1" font-family="Times New Roman,serif" font-size="8.00">16B..64B</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;NN4_0 -->
<g id="edge1" class="edge">
<title>N4&#45;&gt;NN4_0</title>
<g id="a_edge1"><a xlink:title="30MB">
<path fill="none" stroke="black" d="M608,-1659.57C608,-1645.23 608,-1629.46 608,-1616.38"/>
<polygon fill="black" stroke="black" points="611.5,-1616.76 608,-1606.76 604.5,-1616.76 611.5,-1616.76"/>
</a>
</g>
<g id="a_edge1&#45;label"><a xlink:title="30MB">
<text text-anchor="middle" x="627.5" y="-1630.8" font-family="Times New Roman,serif" font-size="14.00"> 30MB</text>
</a>
</g>
</g>
<!-- N6 -->
<g id="node6" class="node">
<title>N6</title>
<g id="a_node6"><a xlink:title="github.com/metacubex/quic&#45;go.(*packetPacker).maybeGetShortHeaderPacket (722.12MB)">
<polygon fill="#eddbd5" stroke="#b22b00" points="559,-1464.5 441,-1464.5 441,-1420.5 559,-1420.5 559,-1464.5"/>
<text text-anchor="middle" x="500" y="-1454.1" font-family="Times New Roman,serif" font-size="8.00">quic&#45;go</text>
<text text-anchor="middle" x="500" y="-1445.1" font-family="Times New Roman,serif" font-size="8.00">(*packetPacker)</text>
<text text-anchor="middle" x="500" y="-1436.1" font-family="Times New Roman,serif" font-size="8.00">maybeGetShortHeaderPacket</text>
<text text-anchor="middle" x="500" y="-1427.1" font-family="Times New Roman,serif" font-size="8.00">0 of 722.12MB (39.30%)</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N6 -->
<g id="edge29" class="edge">
<title>N4&#45;&gt;N6</title>
<g id="a_edge29"><a xlink:title="github.com/metacubex/quic&#45;go.(*packetPacker).PackPacket &#45;&gt; github.com/metacubex/quic&#45;go.(*packetPacker).maybeGetShortHeaderPacket (722.12MB)">
<path fill="none" stroke="#b22b00" stroke-width="2" d="M549.19,-1659.72C533.36,-1645.59 518.11,-1628.38 509,-1609 489.27,-1567.05 490.81,-1512.35 494.66,-1477.56"/>
<polygon fill="#b22b00" stroke="#b22b00" stroke-width="2" points="498.11,-1478.21 495.89,-1467.84 491.16,-1477.33 498.11,-1478.21"/>
</a>
</g>
<g id="a_edge29&#45;label"><a xlink:title="github.com/metacubex/quic&#45;go.(*packetPacker).PackPacket &#45;&gt; github.com/metacubex/quic&#45;go.(*packetPacker).maybeGetShortHeaderPacket (722.12MB)">
<text text-anchor="middle" x="540.5" y="-1583.3" font-family="Times New Roman,serif" font-size="14.00"> 722.12MB</text>
</a>
</g>
</g>
<!-- N13 -->
<g id="node13" class="node">
<title>N13</title>
<g id="a_node13"><a xlink:title="github.com/metacubex/quic&#45;go.(*packetPacker).appendPacket (204.01MB)">
<polygon fill="#ede6df" stroke="#b27f4f" points="269,-1499 81,-1499 81,-1386 269,-1386 269,-1499"/>
<text text-anchor="middle" x="175" y="-1479.8" font-family="Times New Roman,serif" font-size="19.00">quic&#45;go</text>
<text text-anchor="middle" x="175" y="-1458.8" font-family="Times New Roman,serif" font-size="19.00">(*packetPacker)</text>
<text text-anchor="middle" x="175" y="-1437.8" font-family="Times New Roman,serif" font-size="19.00">appendPacket</text>
<text text-anchor="middle" x="175" y="-1416.8" font-family="Times New Roman,serif" font-size="19.00">118.51MB (6.45%)</text>
<text text-anchor="middle" x="175" y="-1395.8" font-family="Times New Roman,serif" font-size="19.00">of 204.01MB (11.10%)</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N13 -->
<g id="edge37" class="edge">
<title>N4&#45;&gt;N13</title>
<g id="a_edge37"><a xlink:title="github.com/metacubex/quic&#45;go.(*packetPacker).PackPacket &#45;&gt; github.com/metacubex/quic&#45;go.(*packetPacker).appendPacket (204.01MB)">
<path fill="none" stroke="#b27f4f" d="M534.79,-1664.96C502.29,-1648.64 463.82,-1628.6 430,-1609 374.46,-1576.81 314.12,-1537.84 266.09,-1505.81"/>
<polygon fill="#b27f4f" stroke="#b27f4f" points="268.17,-1502.99 257.91,-1500.34 264.28,-1508.81 268.17,-1502.99"/>
</a>
</g>
<g id="a_edge37&#45;label"><a xlink:title="github.com/metacubex/quic&#45;go.(*packetPacker).PackPacket &#45;&gt; github.com/metacubex/quic&#45;go.(*packetPacker).appendPacket (204.01MB)">
<text text-anchor="middle" x="461.5" y="-1583.3" font-family="Times New Roman,serif" font-size="14.00"> 204.01MB</text>
</a>
</g>
</g>
<!-- N5 -->
<g id="node5" class="node">
<title>N5</title>
<g id="a_node5"><a xlink:title="github.com/metacubex/quic&#45;go.(*packetPacker).composeNextPacket (446.09MB)">
<polygon fill="#edddd5" stroke="#b23d00" points="704.5,-1320 491.5,-1320 491.5,-1197 704.5,-1197 704.5,-1320"/>
<text text-anchor="middle" x="598" y="-1299.2" font-family="Times New Roman,serif" font-size="21.00">quic&#45;go</text>
<text text-anchor="middle" x="598" y="-1276.2" font-family="Times New Roman,serif" font-size="21.00">(*packetPacker)</text>
<text text-anchor="middle" x="598" y="-1253.2" font-family="Times New Roman,serif" font-size="21.00">composeNextPacket</text>
<text text-anchor="middle" x="598" y="-1230.2" font-family="Times New Roman,serif" font-size="21.00">162.51MB (8.84%)</text>
<text text-anchor="middle" x="598" y="-1207.2" font-family="Times New Roman,serif" font-size="21.00">of 446.09MB (24.28%)</text>
</a>
</g>
</g>
<!-- NN5_0 -->
<g id="NN5_0" class="node">
<title>NN5_0</title>
<g id="a_NN5_0"><a xlink:title="93.50MB">
<polygon fill="#f8f8f8" stroke="black" points="625,-1130 575,-1130 571,-1126 571,-1094 621,-1094 625,-1098 625,-1130"/>
<polyline fill="none" stroke="black" points="621,-1126 571,-1126"/>
<polyline fill="none" stroke="black" points="621,-1126 621,-1094"/>
<polyline fill="none" stroke="black" points="621,-1126 625,-1130"/>
<text text-anchor="middle" x="598" y="-1110.1" font-family="Times New Roman,serif" font-size="8.00">48B..64B</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;NN5_0 -->
<g id="edge2" class="edge">
<title>N5&#45;&gt;NN5_0</title>
<g id="a_edge2"><a xlink:title="93.50MB">
<path fill="none" stroke="black" d="M598,-1196.64C598,-1177.46 598,-1157.19 598,-1141.4"/>
<polygon fill="black" stroke="black" points="601.5,-1141.81 598,-1131.81 594.5,-1141.81 601.5,-1141.81"/>
</a>
</g>
<g id="a_edge2&#45;label"><a xlink:title="93.50MB">
<text text-anchor="middle" x="626" y="-1167.8" font-family="Times New Roman,serif" font-size="14.00"> 93.50MB</text>
</a>
</g>
</g>
<!-- NN5_1 -->
<g id="NN5_1" class="node">
<title>NN5_1</title>
<g id="a_NN5_1"><a xlink:title="69MB">
<polygon fill="#f8f8f8" stroke="black" points="704,-1130 654,-1130 650,-1126 650,-1094 700,-1094 704,-1098 704,-1130"/>
<polyline fill="none" stroke="black" points="700,-1126 650,-1126"/>
<polyline fill="none" stroke="black" points="700,-1126 700,-1094"/>
<polyline fill="none" stroke="black" points="700,-1126 704,-1130"/>
<text text-anchor="middle" x="677" y="-1110.1" font-family="Times New Roman,serif" font-size="8.00">16B..32B</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;NN5_1 -->
<g id="edge3" class="edge">
<title>N5&#45;&gt;NN5_1</title>
<g id="a_edge3"><a xlink:title="69MB">
<path fill="none" stroke="black" d="M644.96,-1196.5C648.59,-1190.73 652,-1184.84 655,-1179 661.11,-1167.12 666.05,-1153.18 669.69,-1141.18"/>
<polygon fill="black" stroke="black" points="672.97,-1142.43 672.35,-1131.85 666.24,-1140.5 672.97,-1142.43"/>
</a>
</g>
<g id="a_edge3&#45;label"><a xlink:title="69MB">
<text text-anchor="middle" x="681.5" y="-1167.8" font-family="Times New Roman,serif" font-size="14.00"> 69MB</text>
</a>
</g>
</g>
<!-- N25 -->
<g id="node25" class="node">
<title>N25</title>
<g id="a_node25"><a xlink:title="github.com/metacubex/quic&#45;go.(*framerI).AppendStreamFrames (157.55MB)">
<polygon fill="#ede8e2" stroke="#b28d65" points="709.5,-1002.5 588.5,-1002.5 588.5,-929.5 709.5,-929.5 709.5,-1002.5"/>
<text text-anchor="middle" x="649" y="-988.9" font-family="Times New Roman,serif" font-size="12.00">quic&#45;go</text>
<text text-anchor="middle" x="649" y="-975.9" font-family="Times New Roman,serif" font-size="12.00">(*framerI)</text>
<text text-anchor="middle" x="649" y="-962.9" font-family="Times New Roman,serif" font-size="12.00">AppendStreamFrames</text>
<text text-anchor="middle" x="649" y="-949.9" font-family="Times New Roman,serif" font-size="12.00">15.50MB (0.84%)</text>
<text text-anchor="middle" x="649" y="-936.9" font-family="Times New Roman,serif" font-size="12.00">of 157.55MB (8.57%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N25 -->
<g id="edge40" class="edge">
<title>N5&#45;&gt;N25</title>
<g id="a_edge40"><a xlink:title="github.com/metacubex/quic&#45;go.(*packetPacker).composeNextPacket &#45;&gt; github.com/metacubex/quic&#45;go.(*framerI).AppendStreamFrames (157.55MB)">
<path fill="none" stroke="#b28d65" d="M530.1,-1196.62C517.4,-1181.46 505.94,-1164.27 499,-1146 488.27,-1117.75 485.4,-1104.99 499,-1078 515.91,-1044.46 548.27,-1018.53 578.62,-1000.2"/>
<polygon fill="#b28d65" stroke="#b28d65" points="580.19,-1003.33 587.07,-995.27 576.67,-997.28 580.19,-1003.33"/>
</a>
</g>
<g id="a_edge40&#45;label"><a xlink:title="github.com/metacubex/quic&#45;go.(*packetPacker).composeNextPacket &#45;&gt; github.com/metacubex/quic&#45;go.(*framerI).AppendStreamFrames (157.55MB)">
<text text-anchor="middle" x="530.5" y="-1108.3" font-family="Times New Roman,serif" font-size="14.00"> 157.55MB</text>
</a>
</g>
</g>
<!-- N34 -->
<g id="node34" class="node">
<title>N34</title>
<g id="a_node34"><a xlink:title="github.com/metacubex/quic&#45;go/internal/ackhandler.(*receivedPacketTracker).GetAckFrame (126.04MB)">
<polygon fill="#ede9e5" stroke="#b29775" points="444.5,-988 337.5,-988 337.5,-944 444.5,-944 444.5,-988"/>
<text text-anchor="middle" x="391" y="-977.6" font-family="Times New Roman,serif" font-size="8.00">ackhandler</text>
<text text-anchor="middle" x="391" y="-968.6" font-family="Times New Roman,serif" font-size="8.00">(*receivedPacketTracker)</text>
<text text-anchor="middle" x="391" y="-959.6" font-family="Times New Roman,serif" font-size="8.00">GetAckFrame</text>
<text text-anchor="middle" x="391" y="-950.6" font-family="Times New Roman,serif" font-size="8.00">0 of 126.04MB (6.86%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N34 -->
<g id="edge42" class="edge">
<title>N5&#45;&gt;N34</title>
<g id="a_edge42"><a xlink:title="github.com/metacubex/quic&#45;go.(*packetPacker).composeNextPacket ... github.com/metacubex/quic&#45;go/internal/ackhandler.(*receivedPacketTracker).GetAckFrame (126.04MB)">
<path fill="none" stroke="#b29775" stroke-dasharray="1,5" d="M491.33,-1209.06C465.35,-1192.52 440.14,-1171.59 423,-1146 393.35,-1101.74 388.89,-1038.06 389.29,-999.79"/>
<polygon fill="#b29775" stroke="#b29775" points="392.78,-999.91 389.52,-989.83 385.79,-999.74 392.78,-999.91"/>
</a>
</g>
<g id="a_edge42&#45;label"><a xlink:title="github.com/metacubex/quic&#45;go.(*packetPacker).composeNextPacket ... github.com/metacubex/quic&#45;go/internal/ackhandler.(*receivedPacketTracker).GetAckFrame (126.04MB)">
<text text-anchor="middle" x="454.5" y="-1108.3" font-family="Times New Roman,serif" font-size="14.00"> 126.04MB</text>
</a>
</g>
</g>
<!-- N6&#45;&gt;N5 -->
<g id="edge31" class="edge">
<title>N6&#45;&gt;N5</title>
<g id="a_edge31"><a xlink:title="github.com/metacubex/quic&#45;go.(*packetPacker).maybeGetShortHeaderPacket ... github.com/metacubex/quic&#45;go.(*packetPacker).composeNextPacket (446.09MB)">
<path fill="none" stroke="#b23d00" stroke-width="2" stroke-dasharray="1,5" d="M511.43,-1420.27C523.18,-1398.46 542.11,-1363.29 559.29,-1331.4"/>
<polygon fill="#b23d00" stroke="#b23d00" stroke-width="2" points="562.18,-1333.41 563.84,-1322.95 556.01,-1330.09 562.18,-1333.41"/>
</a>
</g>
<g id="a_edge31&#45;label"><a xlink:title="github.com/metacubex/quic&#45;go.(*packetPacker).maybeGetShortHeaderPacket ... github.com/metacubex/quic&#45;go.(*packetPacker).composeNextPacket (446.09MB)">
<text text-anchor="middle" x="586.5" y="-1349.3" font-family="Times New Roman,serif" font-size="14.00"> 446.09MB</text>
</a>
</g>
</g>
<!-- N8 -->
<g id="node8" class="node">
<title>N8</title>
<g id="a_node8"><a xlink:title="github.com/metacubex/quic&#45;go.(*packetPacker).getShortHeader (276.03MB)">
<polygon fill="#ede3db" stroke="#b2662c" points="436,-1314.5 220,-1314.5 220,-1202.5 436,-1202.5 436,-1314.5"/>
<text text-anchor="middle" x="328" y="-1291.3" font-family="Times New Roman,serif" font-size="24.00">quic&#45;go</text>
<text text-anchor="middle" x="328" y="-1265.3" font-family="Times New Roman,serif" font-size="24.00">(*packetPacker)</text>
<text text-anchor="middle" x="328" y="-1239.3" font-family="Times New Roman,serif" font-size="24.00">getShortHeader</text>
<text text-anchor="middle" x="328" y="-1213.3" font-family="Times New Roman,serif" font-size="24.00">276.03MB (15.02%)</text>
</a>
</g>
</g>
<!-- N6&#45;&gt;N8 -->
<g id="edge33" class="edge">
<title>N6&#45;&gt;N8</title>
<g id="a_edge33"><a xlink:title="github.com/metacubex/quic&#45;go.(*packetPacker).maybeGetShortHeaderPacket &#45;&gt; github.com/metacubex/quic&#45;go.(*packetPacker).getShortHeader (276.03MB)">
<path fill="none" stroke="#b2662c" d="M479.93,-1420.27C457.45,-1396.48 419.96,-1356.8 387.84,-1322.82"/>
<polygon fill="#b2662c" stroke="#b2662c" points="390.68,-1320.73 381.27,-1315.86 385.59,-1325.54 390.68,-1320.73"/>
</a>
</g>
<g id="a_edge33&#45;label"><a xlink:title="github.com/metacubex/quic&#45;go.(*packetPacker).maybeGetShortHeaderPacket &#45;&gt; github.com/metacubex/quic&#45;go.(*packetPacker).getShortHeader (276.03MB)">
<text text-anchor="middle" x="461.5" y="-1349.3" font-family="Times New Roman,serif" font-size="14.00"> 276.03MB</text>
</a>
</g>
</g>
<!-- N7 -->
<g id="node7" class="node">
<title>N7</title>
<g id="a_node7"><a xlink:title="sync.(*Pool).Get (248.65MB)">
<polygon fill="#ede4dd" stroke="#b27039" points="1042,-324 936,-324 936,-280 1042,-280 1042,-324"/>
<text text-anchor="middle" x="989" y="-313.6" font-family="Times New Roman,serif" font-size="8.00">sync</text>
<text text-anchor="middle" x="989" y="-304.6" font-family="Times New Roman,serif" font-size="8.00">(*Pool)</text>
<text text-anchor="middle" x="989" y="-295.6" font-family="Times New Roman,serif" font-size="8.00">Get</text>
<text text-anchor="middle" x="989" y="-286.6" font-family="Times New Roman,serif" font-size="8.00">0 of 248.65MB (13.53%)</text>
</a>
</g>
</g>
<!-- N12 -->
<g id="node12" class="node">
<title>N12</title>
<g id="a_node12"><a xlink:title="github.com/metacubex/quic&#45;go/internal/ackhandler.glob..func1 (160.01MB)">
<polygon fill="#ede8e2" stroke="#b28d64" points="1079,-212 899,-212 899,-87 1079,-87 1079,-212"/>
<text text-anchor="middle" x="989" y="-191.2" font-family="Times New Roman,serif" font-size="21.00">ackhandler</text>
<text text-anchor="middle" x="989" y="-168.2" font-family="Times New Roman,serif" font-size="21.00">glob</text>
<text text-anchor="middle" x="989" y="-120.2" font-family="Times New Roman,serif" font-size="21.00">func1</text>
<text text-anchor="middle" x="989" y="-97.2" font-family="Times New Roman,serif" font-size="21.00">160.01MB (8.71%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N12 -->
<g id="edge39" class="edge">
<title>N7&#45;&gt;N12</title>
<g id="a_edge39"><a xlink:title="sync.(*Pool).Get &#45;&gt; github.com/metacubex/quic&#45;go/internal/ackhandler.glob..func1 (160.01MB)">
<path fill="none" stroke="#b28d64" d="M989,-279.76C989,-264.92 989,-244.17 989,-223.62"/>
<polygon fill="#b28d64" stroke="#b28d64" points="992.5,-223.78 989,-213.78 985.5,-223.78 992.5,-223.78"/>
</a>
</g>
<g id="a_edge39&#45;label"><a xlink:title="sync.(*Pool).Get &#45;&gt; github.com/metacubex/quic&#45;go/internal/ackhandler.glob..func1 (160.01MB)">
<text text-anchor="middle" x="1020.5" y="-233.8" font-family="Times New Roman,serif" font-size="14.00"> 160.01MB</text>
</a>
</g>
</g>
<!-- N19 -->
<g id="node19" class="node">
<title>N19</title>
<g id="a_node19"><a xlink:title="github.com/metacubex/quic&#45;go/internal/wire.init.0.func1 (70.60MB)">
<polygon fill="#edebe8" stroke="#b2a590" points="774.5,-201 635.5,-201 635.5,-98 774.5,-98 774.5,-201"/>
<text text-anchor="middle" x="705" y="-183.4" font-family="Times New Roman,serif" font-size="17.00">wire</text>
<text text-anchor="middle" x="705" y="-164.4" font-family="Times New Roman,serif" font-size="17.00">init</text>
<text text-anchor="middle" x="705" y="-145.4" font-family="Times New Roman,serif" font-size="17.00">0</text>
<text text-anchor="middle" x="705" y="-126.4" font-family="Times New Roman,serif" font-size="17.00">func1</text>
<text text-anchor="middle" x="705" y="-107.4" font-family="Times New Roman,serif" font-size="17.00">70.60MB (3.84%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N19 -->
<g id="edge52" class="edge">
<title>N7&#45;&gt;N19</title>
<g id="a_edge52"><a xlink:title="sync.(*Pool).Get &#45;&gt; github.com/metacubex/quic&#45;go/internal/wire.init.0.func1 (70.60MB)">
<path fill="none" stroke="#b2a590" d="M935.88,-282.96C893.17,-267.3 832.5,-242.38 784,-212 781.85,-210.65 779.68,-209.25 777.51,-207.82"/>
<polygon fill="#b2a590" stroke="#b2a590" points="779.49,-204.93 769.25,-202.19 775.54,-210.72 779.49,-204.93"/>
</a>
</g>
<g id="a_edge52&#45;label"><a xlink:title="sync.(*Pool).Get &#45;&gt; github.com/metacubex/quic&#45;go/internal/wire.init.0.func1 (70.60MB)">
<text text-anchor="middle" x="872" y="-233.8" font-family="Times New Roman,serif" font-size="14.00"> 70.60MB</text>
</a>
</g>
</g>
<!-- N44 -->
<g id="node44" class="node">
<title>N44</title>
<g id="a_node44"><a xlink:title="github.com/metacubex/quic&#45;go/internal/wire.glob..func1 (15MB)">
<polygon fill="#edecec" stroke="#b2b0ab" points="881,-186.5 793,-186.5 793,-112.5 881,-112.5 881,-186.5"/>
<text text-anchor="middle" x="837" y="-172.9" font-family="Times New Roman,serif" font-size="12.00">wire</text>
<text text-anchor="middle" x="837" y="-159.9" font-family="Times New Roman,serif" font-size="12.00">glob</text>
<text text-anchor="middle" x="837" y="-132.9" font-family="Times New Roman,serif" font-size="12.00">func1</text>
<text text-anchor="middle" x="837" y="-119.9" font-family="Times New Roman,serif" font-size="12.00">15MB (0.82%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N44 -->
<g id="edge79" class="edge">
<title>N7&#45;&gt;N44</title>
<g id="a_edge79"><a xlink:title="sync.(*Pool).Get &#45;&gt; github.com/metacubex/quic&#45;go/internal/wire.glob..func1 (15MB)">
<path fill="none" stroke="#b2b0ab" d="M963.37,-279.54C942.89,-262.02 913.77,-236.27 890,-212 884.83,-206.72 879.56,-201.03 874.44,-195.31"/>
<polygon fill="#b2b0ab" stroke="#b2b0ab" points="877.32,-193.28 868.08,-188.09 872.07,-197.91 877.32,-193.28"/>
</a>
</g>
<g id="a_edge79&#45;label"><a xlink:title="sync.(*Pool).Get &#45;&gt; github.com/metacubex/quic&#45;go/internal/wire.glob..func1 (15MB)">
<text text-anchor="middle" x="944.5" y="-233.8" font-family="Times New Roman,serif" font-size="14.00"> 15MB</text>
</a>
</g>
</g>
<!-- NN8_0 -->
<g id="NN8_0" class="node">
<title>NN8_0</title>
<g id="a_NN8_0"><a xlink:title="276.03MB">
<polygon fill="#f8f8f8" stroke="black" points="355,-1130 305,-1130 301,-1126 301,-1094 351,-1094 355,-1098 355,-1130"/>
<polyline fill="none" stroke="black" points="351,-1126 301,-1126"/>
<polyline fill="none" stroke="black" points="351,-1126 351,-1094"/>
<polyline fill="none" stroke="black" points="351,-1126 355,-1130"/>
<text text-anchor="middle" x="328" y="-1110.1" font-family="Times New Roman,serif" font-size="8.00">128B</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;NN8_0 -->
<g id="edge4" class="edge">
<title>N8&#45;&gt;NN8_0</title>
<g id="a_edge4"><a xlink:title="276.03MB">
<path fill="none" stroke="black" d="M328,-1202.05C328,-1181.55 328,-1159.15 328,-1141.94"/>
<polygon fill="black" stroke="black" points="331.5,-1141.94 328,-1131.94 324.5,-1141.94 331.5,-1141.94"/>
</a>
</g>
<g id="a_edge4&#45;label"><a xlink:title="276.03MB">
<text text-anchor="middle" x="359.5" y="-1167.8" font-family="Times New Roman,serif" font-size="14.00"> 276.03MB</text>
</a>
</g>
</g>
<!-- N9 -->
<g id="node9" class="node">
<title>N9</title>
<g id="a_node9"><a xlink:title="github.com/Dreamacro/clash/transport/tuic/congestion.NewConnectionStateOnSentPacket (236.03MB)">
<polygon fill="#ede4dd" stroke="#b2743f" points="923,-1484 577,-1484 577,-1401 923,-1401 923,-1484"/>
<text text-anchor="middle" x="750" y="-1461.6" font-family="Times New Roman,serif" font-size="23.00">congestion</text>
<text text-anchor="middle" x="750" y="-1436.6" font-family="Times New Roman,serif" font-size="23.00">NewConnectionStateOnSentPacket</text>
<text text-anchor="middle" x="750" y="-1411.6" font-family="Times New Roman,serif" font-size="23.00">236.03MB (12.84%)</text>
</a>
</g>
</g>
<!-- NN9_0 -->
<g id="NN9_0" class="node">
<title>NN9_0</title>
<g id="a_NN9_0"><a xlink:title="236.03MB">
<polygon fill="#f8f8f8" stroke="black" points="777,-1276.5 727,-1276.5 723,-1272.5 723,-1240.5 773,-1240.5 777,-1244.5 777,-1276.5"/>
<polyline fill="none" stroke="black" points="773,-1272.5 723,-1272.5"/>
<polyline fill="none" stroke="black" points="773,-1272.5 773,-1240.5"/>
<polyline fill="none" stroke="black" points="773,-1272.5 777,-1276.5"/>
<text text-anchor="middle" x="750" y="-1256.6" font-family="Times New Roman,serif" font-size="8.00">128B</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;NN9_0 -->
<g id="edge5" class="edge">
<title>N9&#45;&gt;NN9_0</title>
<g id="a_edge5"><a xlink:title="236.03MB">
<path fill="none" stroke="black" d="M750,-1400.66C750,-1366.39 750,-1318.33 750,-1288.06"/>
<polygon fill="black" stroke="black" points="753.5,-1288.16 750,-1278.16 746.5,-1288.16 753.5,-1288.16"/>
</a>
</g>
<g id="a_edge5&#45;label"><a xlink:title="236.03MB">
<text text-anchor="middle" x="781.5" y="-1349.3" font-family="Times New Roman,serif" font-size="14.00"> 236.03MB</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N7 -->
<g id="edge38" class="edge">
<title>N10&#45;&gt;N7</title>
<g id="a_edge38"><a xlink:title="github.com/metacubex/quic&#45;go.(*connection).sendPackedPacket ... sync.(*Pool).Get (160.01MB)">
<path fill="none" stroke="#b28d64" stroke-dasharray="1,5" d="M805.48,-1698.03C875.38,-1691.6 989,-1668.73 989,-1588 989,-1588 989,-1588 989,-409 989,-384.39 989,-356.56 989,-335.59"/>
<polygon fill="#b28d64" stroke="#b28d64" points="992.5,-335.63 989,-325.63 985.5,-335.63 992.5,-335.63"/>
</a>
</g>
<g id="a_edge38&#45;label"><a xlink:title="github.com/metacubex/quic&#45;go.(*connection).sendPackedPacket ... sync.(*Pool).Get (160.01MB)">
<text text-anchor="middle" x="1020.5" y="-962.3" font-family="Times New Roman,serif" font-size="14.00"> 160.01MB</text>
</a>
</g>
</g>
<!-- N17 -->
<g id="node17" class="node">
<title>N17</title>
<g id="a_node17"><a xlink:title="github.com/metacubex/quic&#45;go/internal/ackhandler.(*sentPacketHandler).SentPacket (296.29MB)">
<polygon fill="#ede2da" stroke="#b25f22" points="805,-1609 699,-1609 699,-1565 805,-1565 805,-1609"/>
<text text-anchor="middle" x="752" y="-1598.6" font-family="Times New Roman,serif" font-size="8.00">ackhandler</text>
<text text-anchor="middle" x="752" y="-1589.6" font-family="Times New Roman,serif" font-size="8.00">(*sentPacketHandler)</text>
<text text-anchor="middle" x="752" y="-1580.6" font-family="Times New Roman,serif" font-size="8.00">SentPacket</text>
<text text-anchor="middle" x="752" y="-1571.6" font-family="Times New Roman,serif" font-size="8.00">0 of 296.29MB (16.12%)</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N17 -->
<g id="edge32" class="edge">
<title>N10&#45;&gt;N17</title>
<g id="a_edge32"><a xlink:title="github.com/metacubex/quic&#45;go.(*connection).sendPackedPacket &#45;&gt; github.com/metacubex/quic&#45;go/internal/ackhandler.(*sentPacketHandler).SentPacket (296.29MB)">
<path fill="none" stroke="#b25f22" d="M752,-1679.07C752,-1662.58 752,-1639.49 752,-1620.68"/>
<polygon fill="#b25f22" stroke="#b25f22" points="755.5,-1620.86 752,-1610.86 748.5,-1620.86 755.5,-1620.86"/>
</a>
</g>
<g id="a_edge32&#45;label"><a xlink:title="github.com/metacubex/quic&#45;go.(*connection).sendPackedPacket &#45;&gt; github.com/metacubex/quic&#45;go/internal/ackhandler.(*sentPacketHandler).SentPacket (296.29MB)">
<text text-anchor="middle" x="783.5" y="-1630.8" font-family="Times New Roman,serif" font-size="14.00"> 296.29MB</text>
</a>
</g>
</g>
<!-- N11 -->
<g id="node11" class="node">
<title>N11</title>
<g id="a_node11"><a xlink:title="github.com/metacubex/quic&#45;go/internal/utils/linkedlist.(*List[...]).insertValue (120MB)">
<polygon fill="#ede9e5" stroke="#b29878" points="953,-1012 817,-1012 817,-920 953,-920 953,-1012"/>
<text text-anchor="middle" x="885" y="-992.8" font-family="Times New Roman,serif" font-size="19.00">linkedlist</text>
<text text-anchor="middle" x="885" y="-971.8" font-family="Times New Roman,serif" font-size="19.00">(*List[…])</text>
<text text-anchor="middle" x="885" y="-950.8" font-family="Times New Roman,serif" font-size="19.00">insertValue</text>
<text text-anchor="middle" x="885" y="-929.8" font-family="Times New Roman,serif" font-size="19.00">120MB (6.53%)</text>
</a>
</g>
</g>
<!-- NN11_0 -->
<g id="NN11_0" class="node">
<title>NN11_0</title>
<g id="a_NN11_0"><a xlink:title="113.50MB">
<polygon fill="#f8f8f8" stroke="black" points="912,-841 862,-841 858,-837 858,-805 908,-805 912,-809 912,-841"/>
<polyline fill="none" stroke="black" points="908,-837 858,-837"/>
<polyline fill="none" stroke="black" points="908,-837 908,-805"/>
<polyline fill="none" stroke="black" points="908,-837 912,-841"/>
<text text-anchor="middle" x="885" y="-821.1" font-family="Times New Roman,serif" font-size="8.00">32B</text>
</a>
</g>
</g>
<!-- N11&#45;&gt;NN11_0 -->
<g id="edge6" class="edge">
<title>N11&#45;&gt;NN11_0</title>
<g id="a_edge6"><a xlink:title="113.50MB">
<path fill="none" stroke="black" d="M885,-919.61C885,-897.58 885,-871.79 885,-852.55"/>
<polygon fill="black" stroke="black" points="888.5,-852.75 885,-842.75 881.5,-852.75 888.5,-852.75"/>
</a>
</g>
<g id="a_edge6&#45;label"><a xlink:title="113.50MB">
<text text-anchor="middle" x="916.5" y="-890.8" font-family="Times New Roman,serif" font-size="14.00"> 113.50MB</text>
</a>
</g>
</g>
<!-- NN12_0 -->
<g id="NN12_0" class="node">
<title>NN12_0</title>
<g id="a_NN12_0"><a xlink:title="160.01MB">
<polygon fill="#f8f8f8" stroke="black" points="1016,-36 966,-36 962,-32 962,0 1012,0 1016,-4 1016,-36"/>
<polyline fill="none" stroke="black" points="1012,-32 962,-32"/>
<polyline fill="none" stroke="black" points="1012,-32 1012,0"/>
<polyline fill="none" stroke="black" points="1012,-32 1016,-36"/>
<text text-anchor="middle" x="989" y="-16.1" font-family="Times New Roman,serif" font-size="8.00">96B</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;NN12_0 -->
<g id="edge7" class="edge">
<title>N12&#45;&gt;NN12_0</title>
<g id="a_edge7"><a xlink:title="160.01MB">
<path fill="none" stroke="black" d="M989,-86.78C989,-73.05 989,-59.14 989,-47.52"/>
<polygon fill="black" stroke="black" points="992.5,-47.86 989,-37.86 985.5,-47.86 992.5,-47.86"/>
</a>
</g>
<g id="a_edge7&#45;label"><a xlink:title="160.01MB">
<text text-anchor="middle" x="1020.5" y="-57.8" font-family="Times New Roman,serif" font-size="14.00"> 160.01MB</text>
</a>
</g>
</g>
<!-- NN13_0 -->
<g id="NN13_0" class="node">
<title>NN13_0</title>
<g id="a_NN13_0"><a xlink:title="118.51MB">
<polygon fill="#f8f8f8" stroke="black" points="202,-1276.5 152,-1276.5 148,-1272.5 148,-1240.5 198,-1240.5 202,-1244.5 202,-1276.5"/>
<polyline fill="none" stroke="black" points="198,-1272.5 148,-1272.5"/>
<polyline fill="none" stroke="black" points="198,-1272.5 198,-1240.5"/>
<polyline fill="none" stroke="black" points="198,-1272.5 202,-1276.5"/>
<text text-anchor="middle" x="175" y="-1256.6" font-family="Times New Roman,serif" font-size="8.00">64B</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;NN13_0 -->
<g id="edge8" class="edge">
<title>N13&#45;&gt;NN13_0</title>
<g id="a_edge8"><a xlink:title="118.51MB">
<path fill="none" stroke="black" d="M175,-1385.91C175,-1353.6 175,-1314.24 175,-1288.11"/>
<polygon fill="black" stroke="black" points="178.5,-1288.28 175,-1278.28 171.5,-1288.28 178.5,-1288.28"/>
</a>
</g>
<g id="a_edge8&#45;label"><a xlink:title="118.51MB">
<text text-anchor="middle" x="206.5" y="-1349.3" font-family="Times New Roman,serif" font-size="14.00"> 118.51MB</text>
</a>
</g>
</g>
<!-- N18 -->
<g id="node18" class="node">
<title>N18</title>
<g id="a_node18"><a xlink:title="bytes.NewBuffer (85.50MB)">
<polygon fill="#edeae7" stroke="#b2a188" points="143.5,-1144.5 4.5,-1144.5 4.5,-1079.5 143.5,-1079.5 143.5,-1144.5"/>
<text text-anchor="middle" x="74" y="-1126.9" font-family="Times New Roman,serif" font-size="17.00">bytes</text>
<text text-anchor="middle" x="74" y="-1107.9" font-family="Times New Roman,serif" font-size="17.00">NewBuffer</text>
<text text-anchor="middle" x="74" y="-1088.9" font-family="Times New Roman,serif" font-size="17.00">85.50MB (4.65%)</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N18 -->
<g id="edge47" class="edge">
<title>N13&#45;&gt;N18</title>
<g id="a_edge47"><a xlink:title="github.com/metacubex/quic&#45;go.(*packetPacker).appendPacket &#45;&gt; bytes.NewBuffer (85.50MB)">
<path fill="none" stroke="#b2a188" d="M121.47,-1385.53C106.23,-1366.24 91.47,-1343.52 83,-1320 63.61,-1266.17 64.84,-1199.33 68.55,-1156.42"/>
<polygon fill="#b2a188" stroke="#b2a188" points="72.03,-1156.78 69.5,-1146.49 65.07,-1156.11 72.03,-1156.78"/>
</a>
</g>
<g id="a_edge47&#45;label"><a xlink:title="github.com/metacubex/quic&#45;go.(*packetPacker).appendPacket &#45;&gt; bytes.NewBuffer (85.50MB)">
<text text-anchor="middle" x="111" y="-1262.3" font-family="Times New Roman,serif" font-size="14.00"> 85.50MB</text>
<text text-anchor="middle" x="111" y="-1247.3" font-family="Times New Roman,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/metacubex/quic&#45;go/internal/ackhandler.(*receivedPacketHistory).AppendAckRanges (115.54MB)">
<polygon fill="#ede9e5" stroke="#b29a7a" points="494,-869 288,-869 288,-777 494,-777 494,-869"/>
<text text-anchor="middle" x="391" y="-849.8" font-family="Times New Roman,serif" font-size="19.00">ackhandler</text>
<text text-anchor="middle" x="391" y="-828.8" font-family="Times New Roman,serif" font-size="19.00">(*receivedPacketHistory)</text>
<text text-anchor="middle" x="391" y="-807.8" font-family="Times New Roman,serif" font-size="19.00">AppendAckRanges</text>
<text text-anchor="middle" x="391" y="-786.8" font-family="Times New Roman,serif" font-size="19.00">115.54MB (6.29%)</text>
</a>
</g>
</g>
<!-- NN14_0 -->
<g id="NN14_0" class="node">
<title>NN14_0</title>
<g id="a_NN14_0"><a xlink:title="51.53MB">
<polygon fill="#f8f8f8" stroke="black" points="418,-687.5 368,-687.5 364,-683.5 364,-651.5 414,-651.5 418,-655.5 418,-687.5"/>
<polyline fill="none" stroke="black" points="414,-683.5 364,-683.5"/>
<polyline fill="none" stroke="black" points="414,-683.5 414,-651.5"/>
<polyline fill="none" stroke="black" points="414,-683.5 418,-687.5"/>
<text text-anchor="middle" x="391" y="-667.6" font-family="Times New Roman,serif" font-size="8.00">512B</text>
</a>
</g>
</g>
<!-- N14&#45;&gt;NN14_0 -->
<g id="edge9" class="edge">
<title>N14&#45;&gt;NN14_0</title>
<g id="a_edge9"><a xlink:title="51.53MB">
<path fill="none" stroke="black" d="M391,-776.55C391,-751.51 391,-721.19 391,-699.39"/>
<polygon fill="black" stroke="black" points="394.5,-699.46 391,-689.46 387.5,-699.46 394.5,-699.46"/>
</a>
</g>
<g id="a_edge9&#45;label"><a xlink:title="51.53MB">
<text text-anchor="middle" x="419" y="-747.8" font-family="Times New Roman,serif" font-size="14.00"> 51.53MB</text>
</a>
</g>
</g>
<!-- NN14_1 -->
<g id="NN14_1" class="node">
<title>NN14_1</title>
<g id="a_NN14_1"><a xlink:title="29.51MB">
<polygon fill="#f8f8f8" stroke="black" points="497,-687.5 447,-687.5 443,-683.5 443,-651.5 493,-651.5 497,-655.5 497,-687.5"/>
<polyline fill="none" stroke="black" points="493,-683.5 443,-683.5"/>
<polyline fill="none" stroke="black" points="493,-683.5 493,-651.5"/>
<polyline fill="none" stroke="black" points="493,-683.5 497,-687.5"/>
<text text-anchor="middle" x="470" y="-667.6" font-family="Times New Roman,serif" font-size="8.00">256B</text>
</a>
</g>
</g>
<!-- N14&#45;&gt;NN14_1 -->
<g id="edge10" class="edge">
<title>N14&#45;&gt;NN14_1</title>
<g id="a_edge10"><a xlink:title="29.51MB">
<path fill="none" stroke="black" d="M436.42,-776.82C440.76,-771.11 444.74,-765.12 448,-759 457.97,-740.29 463.53,-716.94 466.56,-698.93"/>
<polygon fill="black" stroke="black" points="470,-699.6 468.02,-689.19 463.08,-698.56 470,-699.6"/>
</a>
</g>
<g id="a_edge10&#45;label"><a xlink:title="29.51MB">
<text text-anchor="middle" x="483" y="-747.8" font-family="Times New Roman,serif" font-size="14.00"> 29.51MB</text>
</a>
</g>
</g>
<!-- NN14_2 -->
<g id="NN14_2" class="node">
<title>NN14_2</title>
<g id="a_NN14_2"><a xlink:title="20MB">
<polygon fill="#f8f8f8" stroke="black" points="346,-687.5 296,-687.5 292,-683.5 292,-651.5 342,-651.5 346,-655.5 346,-687.5"/>
<polyline fill="none" stroke="black" points="342,-683.5 292,-683.5"/>
<polyline fill="none" stroke="black" points="342,-683.5 342,-651.5"/>
<polyline fill="none" stroke="black" points="342,-683.5 346,-687.5"/>
<text text-anchor="middle" x="319" y="-667.6" font-family="Times New Roman,serif" font-size="8.00">128B</text>
</a>
</g>
</g>
<!-- N14&#45;&gt;NN14_2 -->
<g id="edge11" class="edge">
<title>N14&#45;&gt;NN14_2</title>
<g id="a_edge11"><a xlink:title="20MB">
<path fill="none" stroke="black" d="M357.96,-776.81C354.35,-770.96 350.93,-764.94 348,-759 338.49,-739.7 331.03,-716.55 326.06,-698.77"/>
<polygon fill="black" stroke="black" points="329.45,-697.91 323.48,-689.15 322.69,-699.72 329.45,-697.91"/>
</a>
</g>
<g id="a_edge11&#45;label"><a xlink:title="20MB">
<text text-anchor="middle" x="367.5" y="-747.8" font-family="Times New Roman,serif" font-size="14.00"> 20MB</text>
</a>
</g>
</g>
<!-- N15 -->
<g id="node15" class="node">
<title>N15</title>
<g id="a_node15"><a xlink:title="github.com/metacubex/quic&#45;go.(*connection).handleFrames (228.96MB)">
<polygon fill="#ede5de" stroke="#b27643" points="1087,-1723.5 981,-1723.5 981,-1679.5 1087,-1679.5 1087,-1723.5"/>
<text text-anchor="middle" x="1034" y="-1713.1" font-family="Times New Roman,serif" font-size="8.00">quic&#45;go</text>
<text text-anchor="middle" x="1034" y="-1704.1" font-family="Times New Roman,serif" font-size="8.00">(*connection)</text>
<text text-anchor="middle" x="1034" y="-1695.1" font-family="Times New Roman,serif" font-size="8.00">handleFrames</text>
<text text-anchor="middle" x="1034" y="-1686.1" font-family="Times New Roman,serif" font-size="8.00">0 of 228.96MB (12.46%)</text>
</a>
</g>
</g>
<!-- N21 -->
<g id="node21" class="node">
<title>N21</title>
<g id="a_node21"><a xlink:title="github.com/metacubex/quic&#45;go/internal/wire.(*frameParser).parseFrame (109.58MB)">
<polygon fill="#edeae6" stroke="#b29b7d" points="1478.5,-1609 1377.5,-1609 1377.5,-1565 1478.5,-1565 1478.5,-1609"/>
<text text-anchor="middle" x="1428" y="-1598.6" font-family="Times New Roman,serif" font-size="8.00">wire</text>
<text text-anchor="middle" x="1428" y="-1589.6" font-family="Times New Roman,serif" font-size="8.00">(*frameParser)</text>
<text text-anchor="middle" x="1428" y="-1580.6" font-family="Times New Roman,serif" font-size="8.00">parseFrame</text>
<text text-anchor="middle" x="1428" y="-1571.6" font-family="Times New Roman,serif" font-size="8.00">0 of 109.58MB (5.96%)</text>
</a>
</g>
</g>
<!-- N15&#45;&gt;N21 -->
<g id="edge45" class="edge">
<title>N15&#45;&gt;N21</title>
<g id="a_edge45"><a xlink:title="github.com/metacubex/quic&#45;go.(*connection).handleFrames ... github.com/metacubex/quic&#45;go/internal/wire.(*frameParser).parseFrame (109.58MB)">
<path fill="none" stroke="#b29b7d" stroke-dasharray="1,5" d="M1087.14,-1685.33C1159.71,-1664.61 1289.56,-1627.53 1366.33,-1605.61"/>
<polygon fill="#b29b7d" stroke="#b29b7d" points="1367.15,-1609.01 1375.81,-1602.9 1365.23,-1602.28 1367.15,-1609.01"/>
</a>
</g>
<g id="a_edge45&#45;label"><a xlink:title="github.com/metacubex/quic&#45;go.(*connection).handleFrames ... github.com/metacubex/quic&#45;go/internal/wire.(*frameParser).parseFrame (109.58MB)">
<text text-anchor="middle" x="1320.5" y="-1630.8" font-family="Times New Roman,serif" font-size="14.00"> 109.58MB</text>
</a>
</g>
</g>
<!-- N23 -->
<g id="node23" class="node">
<title>N23</title>
<g id="a_node23"><a xlink:title="github.com/metacubex/quic&#45;go.(*connection).handleFrame (119.38MB)">
<polygon fill="#ede9e5" stroke="#b29878" points="1118.5,-1609 1017.5,-1609 1017.5,-1565 1118.5,-1565 1118.5,-1609"/>
<text text-anchor="middle" x="1068" y="-1598.6" font-family="Times New Roman,serif" font-size="8.00">quic&#45;go</text>
<text text-anchor="middle" x="1068" y="-1589.6" font-family="Times New Roman,serif" font-size="8.00">(*connection)</text>
<text text-anchor="middle" x="1068" y="-1580.6" font-family="Times New Roman,serif" font-size="8.00">handleFrame</text>
<text text-anchor="middle" x="1068" y="-1571.6" font-family="Times New Roman,serif" font-size="8.00">0 of 119.38MB (6.50%)</text>
</a>
</g>
</g>
<!-- N15&#45;&gt;N23 -->
<g id="edge43" class="edge">
<title>N15&#45;&gt;N23</title>
<g id="a_edge43"><a xlink:title="github.com/metacubex/quic&#45;go.(*connection).handleFrames &#45;&gt; github.com/metacubex/quic&#45;go.(*connection).handleFrame (119.38MB)">
<path fill="none" stroke="#b29878" d="M1040.48,-1679.07C1045.51,-1662.42 1052.57,-1639.05 1058.28,-1620.15"/>
<polygon fill="#b29878" stroke="#b29878" points="1061.57,-1621.38 1061.11,-1610.79 1054.87,-1619.35 1061.57,-1621.38"/>
</a>
</g>
<g id="a_edge43&#45;label"><a xlink:title="github.com/metacubex/quic&#45;go.(*connection).handleFrames &#45;&gt; github.com/metacubex/quic&#45;go.(*connection).handleFrame (119.38MB)">
<text text-anchor="middle" x="1087.5" y="-1630.8" font-family="Times New Roman,serif" font-size="14.00"> 119.38MB</text>
</a>
</g>
</g>
<!-- N16 -->
<g id="node16" class="node">
<title>N16</title>
<g id="a_node16"><a xlink:title="github.com/metacubex/quic&#45;go.(*sendStream).popStreamFrame (142.05MB)">
<polygon fill="#ede8e3" stroke="#b2926d" points="694.5,-726 515.5,-726 515.5,-613 694.5,-613 694.5,-726"/>
<text text-anchor="middle" x="605" y="-706.8" font-family="Times New Roman,serif" font-size="19.00">quic&#45;go</text>
<text text-anchor="middle" x="605" y="-685.8" font-family="Times New Roman,serif" font-size="19.00">(*sendStream)</text>
<text text-anchor="middle" x="605" y="-664.8" font-family="Times New Roman,serif" font-size="19.00">popStreamFrame</text>
<text text-anchor="middle" x="605" y="-643.8" font-family="Times New Roman,serif" font-size="19.00">111.50MB (6.07%)</text>
<text text-anchor="middle" x="605" y="-622.8" font-family="Times New Roman,serif" font-size="19.00">of 142.05MB (7.73%)</text>
</a>
</g>
</g>
<!-- NN16_0 -->
<g id="NN16_0" class="node">
<title>NN16_0</title>
<g id="a_NN16_0"><a xlink:title="57MB">
<polygon fill="#f8f8f8" stroke="black" points="632,-538.5 582,-538.5 578,-534.5 578,-502.5 628,-502.5 632,-506.5 632,-538.5"/>
<polyline fill="none" stroke="black" points="628,-534.5 578,-534.5"/>
<polyline fill="none" stroke="black" points="628,-534.5 628,-502.5"/>
<polyline fill="none" stroke="black" points="628,-534.5 632,-538.5"/>
<text text-anchor="middle" x="605" y="-518.6" font-family="Times New Roman,serif" font-size="8.00">16B</text>
</a>
</g>
</g>
<!-- N16&#45;&gt;NN16_0 -->
<g id="edge12" class="edge">
<title>N16&#45;&gt;NN16_0</title>
<g id="a_edge12"><a xlink:title="57MB">
<path fill="none" stroke="black" d="M605,-612.51C605,-591.15 605,-567.69 605,-549.95"/>
<polygon fill="black" stroke="black" points="608.5,-550.18 605,-540.18 601.5,-550.18 608.5,-550.18"/>
</a>
</g>
<g id="a_edge12&#45;label"><a xlink:title="57MB">
<text text-anchor="middle" x="624.5" y="-583.8" font-family="Times New Roman,serif" font-size="14.00"> 57MB</text>
</a>
</g>
</g>
<!-- NN16_1 -->
<g id="NN16_1" class="node">
<title>NN16_1</title>
<g id="a_NN16_1"><a xlink:title="54.50MB">
<polygon fill="#f8f8f8" stroke="black" points="704,-538.5 654,-538.5 650,-534.5 650,-502.5 700,-502.5 704,-506.5 704,-538.5"/>
<polyline fill="none" stroke="black" points="700,-534.5 650,-534.5"/>
<polyline fill="none" stroke="black" points="700,-534.5 700,-502.5"/>
<polyline fill="none" stroke="black" points="700,-534.5 704,-538.5"/>
<text text-anchor="middle" x="677" y="-518.6" font-family="Times New Roman,serif" font-size="8.00">32B</text>
</a>
</g>
</g>
<!-- N16&#45;&gt;NN16_1 -->
<g id="edge13" class="edge">
<title>N16&#45;&gt;NN16_1</title>
<g id="a_edge13"><a xlink:title="54.50MB">
<path fill="none" stroke="black" d="M638.77,-612.8C642.02,-606.86 645.16,-600.85 648,-595 655.19,-580.2 662.01,-563.14 667.23,-549.18"/>
<polygon fill="black" stroke="black" points="670.37,-550.77 670.52,-540.17 663.8,-548.36 670.37,-550.77"/>
</a>
</g>
<g id="a_edge13&#45;label"><a xlink:title="54.50MB">
<text text-anchor="middle" x="683" y="-583.8" font-family="Times New Roman,serif" font-size="14.00"> 54.50MB</text>
</a>
</g>
</g>
<!-- N29 -->
<g id="node29" class="node">
<title>N29</title>
<g id="a_node29"><a xlink:title="github.com/metacubex/quic&#45;go/internal/wire.GetStreamFrame (70.60MB)">
<polygon fill="#edebe8" stroke="#b2a590" points="960.5,-428 863.5,-428 863.5,-392 960.5,-392 960.5,-428"/>
<text text-anchor="middle" x="912" y="-417.1" font-family="Times New Roman,serif" font-size="8.00">wire</text>
<text text-anchor="middle" x="912" y="-408.1" font-family="Times New Roman,serif" font-size="8.00">GetStreamFrame</text>
<text text-anchor="middle" x="912" y="-399.1" font-family="Times New Roman,serif" font-size="8.00">0 of 70.60MB (3.84%)</text>
</a>
</g>
</g>
<!-- N16&#45;&gt;N29 -->
<g id="edge63" class="edge">
<title>N16&#45;&gt;N29</title>
<g id="a_edge63"><a xlink:title="github.com/metacubex/quic&#45;go.(*sendStream).popStreamFrame ... github.com/metacubex/quic&#45;go/internal/wire.GetStreamFrame (30.54MB)">
<path fill="none" stroke="#b2aea3" stroke-dasharray="1,5" d="M546.59,-612.84C511.48,-572.65 479.51,-518.69 513,-479 555.62,-428.51 750.93,-415.5 851.6,-412.16"/>
<polygon fill="#b2aea3" stroke="#b2aea3" points="851.7,-415.66 861.59,-411.85 851.49,-408.66 851.7,-415.66"/>
</a>
</g>
<g id="a_edge63&#45;label"><a xlink:title="github.com/metacubex/quic&#45;go.(*sendStream).popStreamFrame ... github.com/metacubex/quic&#45;go/internal/wire.GetStreamFrame (30.54MB)">
<text text-anchor="middle" x="541" y="-524.3" font-family="Times New Roman,serif" font-size="14.00"> 30.54MB</text>
<text text-anchor="middle" x="541" y="-509.3" font-family="Times New Roman,serif" font-size="14.00"> (inline)</text>
</a>
</g>
</g>
<!-- N17&#45;&gt;N9 -->
<g id="edge34" class="edge">
<title>N17&#45;&gt;N9</title>
<g id="a_edge34"><a xlink:title="github.com/metacubex/quic&#45;go/internal/ackhandler.(*sentPacketHandler).SentPacket ... github.com/Dreamacro/clash/transport/tuic/congestion.NewConnectionStateOnSentPacket (236.03MB)">
<path fill="none" stroke="#b2743f" stroke-dasharray="1,5" d="M751.7,-1564.67C751.45,-1546.52 751.07,-1519.69 750.74,-1495.88"/>
<polygon fill="#b2743f" stroke="#b2743f" points="754.24,-1495.95 750.6,-1486 747.24,-1496.05 754.24,-1495.95"/>
</a>
</g>
<g id="a_edge34&#45;label"><a xlink:title="github.com/metacubex/quic&#45;go/internal/ackhandler.(*sentPacketHandler).SentPacket ... github.com/Dreamacro/clash/transport/tuic/congestion.NewConnectionStateOnSentPacket (236.03MB)">
<text text-anchor="middle" x="783.5" y="-1535.8" font-family="Times New Roman,serif" font-size="14.00"> 236.03MB</text>
<text text-anchor="middle" x="783.5" y="-1520.8" font-family="Times New Roman,serif" font-size="14.00"> (inline)</text>
</a>
</g>
</g>
<!-- N17&#45;&gt;N11 -->
<g id="edge56" class="edge">
<title>N17&#45;&gt;N11</title>
<g id="a_edge56"><a xlink:title="github.com/metacubex/quic&#45;go/internal/ackhandler.(*sentPacketHandler).SentPacket ... github.com/metacubex/quic&#45;go/internal/utils/linkedlist.(*List[...]).insertValue (57.50MB)">
<path fill="none" stroke="#b2a896" stroke-dasharray="1,5" d="M805.22,-1576.18C847.67,-1565.24 904.42,-1542.96 932,-1499 958.69,-1456.46 936.88,-1435.98 932,-1386 929.1,-1356.24 923.33,-1349.58 919,-1320 903.76,-1215.84 893.71,-1093.35 888.72,-1023.48"/>
<polygon fill="#b2a896" stroke="#b2a896" points="892.23,-1023.55 888.04,-1013.82 885.25,-1024.04 892.23,-1023.55"/>
</a>
</g>
<g id="a_edge56&#45;label"><a xlink:title="github.com/metacubex/quic&#45;go/internal/ackhandler.(*sentPacketHandler).SentPacket ... github.com/metacubex/quic&#45;go/internal/utils/linkedlist.(*List[...]).insertValue (57.50MB)">
<text text-anchor="middle" x="947" y="-1262.3" font-family="Times New Roman,serif" font-size="14.00"> 57.50MB</text>
<text text-anchor="middle" x="947" y="-1247.3" font-family="Times New Roman,serif" font-size="14.00"> (inline)</text>
</a>
</g>
</g>
<!-- NN18_0 -->
<g id="NN18_0" class="node">
<title>NN18_0</title>
<g id="a_NN18_0"><a xlink:title="85.50MB">
<polygon fill="#f8f8f8" stroke="black" points="101,-984 51,-984 47,-980 47,-948 97,-948 101,-952 101,-984"/>
<polyline fill="none" stroke="black" points="97,-980 47,-980"/>
<polyline fill="none" stroke="black" points="97,-980 97,-948"/>
<polyline fill="none" stroke="black" points="97,-980 101,-984"/>
<text text-anchor="middle" x="74" y="-964.1" font-family="Times New Roman,serif" font-size="8.00">48B</text>
</a>
</g>
</g>
<!-- N18&#45;&gt;NN18_0 -->
<g id="edge14" class="edge">
<title>N18&#45;&gt;NN18_0</title>
<g id="a_edge14"><a xlink:title="85.50MB">
<path fill="none" stroke="black" d="M74,-1079.04C74,-1054.09 74,-1019.73 74,-995.66"/>
<polygon fill="black" stroke="black" points="77.5,-995.95 74,-985.95 70.5,-995.96 77.5,-995.95"/>
</a>
</g>
<g id="a_edge14&#45;label"><a xlink:title="85.50MB">
<text text-anchor="middle" x="102" y="-1041.3" font-family="Times New Roman,serif" font-size="14.00"> 85.50MB</text>
</a>
</g>
</g>
<!-- NN19_0 -->
<g id="NN19_0" class="node">
<title>NN19_0</title>
<g id="a_NN19_0"><a xlink:title="70.60MB">
<polygon fill="#f8f8f8" stroke="black" points="732,-36 682,-36 678,-32 678,0 728,0 732,-4 732,-36"/>
<polyline fill="none" stroke="black" points="728,-32 678,-32"/>
<polyline fill="none" stroke="black" points="728,-32 728,0"/>
<polyline fill="none" stroke="black" points="728,-32 732,-36"/>
<text text-anchor="middle" x="705" y="-16.1" font-family="Times New Roman,serif" font-size="8.00">1.50kB</text>
</a>
</g>
</g>
<!-- N19&#45;&gt;NN19_0 -->
<g id="edge15" class="edge">
<title>N19&#45;&gt;NN19_0</title>
<g id="a_edge15"><a xlink:title="70.60MB">
<path fill="none" stroke="black" d="M705,-97.69C705,-80.75 705,-62.47 705,-47.8"/>
<polygon fill="black" stroke="black" points="708.5,-47.95 705,-37.95 701.5,-47.95 708.5,-47.95"/>
</a>
</g>
<g id="a_edge15&#45;label"><a xlink:title="70.60MB">
<text text-anchor="middle" x="733" y="-57.8" font-family="Times New Roman,serif" font-size="14.00"> 70.60MB</text>
</a>
</g>
</g>
<!-- N20 -->
<g id="node20" class="node">
<title>N20</title>
<g id="a_node20"><a xlink:title="github.com/Dreamacro/clash/component/geodata.LoadGeoSiteMatcher (74.20MB)">
<polygon fill="#edebe8" stroke="#b2a48e" points="1857.5,-1605 1760.5,-1605 1760.5,-1569 1857.5,-1569 1857.5,-1605"/>
<text text-anchor="middle" x="1809" y="-1594.1" font-family="Times New Roman,serif" font-size="8.00">geodata</text>
<text text-anchor="middle" x="1809" y="-1585.1" font-family="Times New Roman,serif" font-size="8.00">LoadGeoSiteMatcher</text>
<text text-anchor="middle" x="1809" y="-1576.1" font-family="Times New Roman,serif" font-size="8.00">0 of 74.20MB (4.04%)</text>
</a>
</g>
</g>
<!-- N33 -->
<g id="node33" class="node">
<title>N33</title>
<g id="a_node33"><a xlink:title="github.com/Dreamacro/clash/component/geodata/router.NewMphMatcherGroup (57.15MB)">
<polygon fill="#edebe9" stroke="#b2a896" points="1858,-1460.5 1760,-1460.5 1760,-1424.5 1858,-1424.5 1858,-1460.5"/>
<text text-anchor="middle" x="1809" y="-1449.6" font-family="Times New Roman,serif" font-size="8.00">router</text>
<text text-anchor="middle" x="1809" y="-1440.6" font-family="Times New Roman,serif" font-size="8.00">NewMphMatcherGroup</text>
<text text-anchor="middle" x="1809" y="-1431.6" font-family="Times New Roman,serif" font-size="8.00">0 of 57.15MB (3.11%)</text>
</a>
</g>
</g>
<!-- N20&#45;&gt;N33 -->
<g id="edge57" class="edge">
<title>N20&#45;&gt;N33</title>
<g id="a_edge57"><a xlink:title="github.com/Dreamacro/clash/component/geodata.LoadGeoSiteMatcher &#45;&gt; github.com/Dreamacro/clash/component/geodata/router.NewMphMatcherGroup (57.15MB)">
<path fill="none" stroke="#b2a896" d="M1809,-1568.53C1809,-1544.47 1809,-1500.84 1809,-1472.02"/>
<polygon fill="#b2a896" stroke="#b2a896" points="1812.5,-1472.18 1809,-1462.18 1805.5,-1472.18 1812.5,-1472.18"/>
</a>
</g>
<g id="a_edge57&#45;label"><a xlink:title="github.com/Dreamacro/clash/component/geodata.LoadGeoSiteMatcher &#45;&gt; github.com/Dreamacro/clash/component/geodata/router.NewMphMatcherGroup (57.15MB)">
<text text-anchor="middle" x="1837" y="-1528.3" font-family="Times New Roman,serif" font-size="14.00"> 57.15MB</text>
</a>
</g>
</g>
<!-- N40 -->
<g id="node40" class="node">
<title>N40</title>
<g id="a_node40"><a xlink:title="reflect.New (13MB)">
<polygon fill="#edecec" stroke="#b2b1ac" points="2053,-1466 1965,-1466 1965,-1419 2053,-1419 2053,-1466"/>
<text text-anchor="middle" x="2009" y="-1452.4" font-family="Times New Roman,serif" font-size="12.00">reflect</text>
<text text-anchor="middle" x="2009" y="-1439.4" font-family="Times New Roman,serif" font-size="12.00">New</text>
<text text-anchor="middle" x="2009" y="-1426.4" font-family="Times New Roman,serif" font-size="12.00">13MB (0.71%)</text>
</a>
</g>
</g>
<!-- N20&#45;&gt;N40 -->
<g id="edge80" class="edge">
<title>N20&#45;&gt;N40</title>
<g id="a_edge80"><a xlink:title="github.com/Dreamacro/clash/component/geodata.LoadGeoSiteMatcher ... reflect.New (11.50MB)">
<path fill="none" stroke="#b2b1ac" stroke-dasharray="1,5" d="M1836.41,-1568.68C1846.72,-1562.03 1858.49,-1554.29 1869,-1547 1903.7,-1522.93 1942.22,-1494.31 1970.06,-1473.27"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="1972,-1476.19 1977.86,-1467.36 1967.78,-1470.61 1972,-1476.19"/>
</a>
</g>
<g id="a_edge80&#45;label"><a xlink:title="github.com/Dreamacro/clash/component/geodata.LoadGeoSiteMatcher ... reflect.New (11.50MB)">
<text text-anchor="middle" x="1935" y="-1528.3" font-family="Times New Roman,serif" font-size="14.00"> 11.50MB</text>
</a>
</g>
</g>
<!-- N24 -->
<g id="node24" class="node">
<title>N24</title>
<g id="a_node24"><a xlink:title="github.com/metacubex/quic&#45;go/internal/wire.parseAckFrame (69.52MB)">
<polygon fill="#edebe8" stroke="#b2a590" points="1607.5,-1482.5 1456.5,-1482.5 1456.5,-1402.5 1607.5,-1402.5 1607.5,-1482.5"/>
<text text-anchor="middle" x="1532" y="-1465.7" font-family="Times New Roman,serif" font-size="16.00">wire</text>
<text text-anchor="middle" x="1532" y="-1447.7" font-family="Times New Roman,serif" font-size="16.00">parseAckFrame</text>
<text text-anchor="middle" x="1532" y="-1429.7" font-family="Times New Roman,serif" font-size="16.00">65.02MB (3.54%)</text>
<text text-anchor="middle" x="1532" y="-1411.7" font-family="Times New Roman,serif" font-size="16.00">of 69.52MB (3.78%)</text>
</a>
</g>
</g>
<!-- N21&#45;&gt;N24 -->
<g id="edge53" class="edge">
<title>N21&#45;&gt;N24</title>
<g id="a_edge53"><a xlink:title="github.com/metacubex/quic&#45;go/internal/wire.(*frameParser).parseFrame &#45;&gt; github.com/metacubex/quic&#45;go/internal/wire.parseAckFrame (69.52MB)">
<path fill="none" stroke="#b2a590" d="M1443.57,-1564.67C1457.54,-1545.53 1478.55,-1516.73 1496.59,-1492.01"/>
<polygon fill="#b2a590" stroke="#b2a590" points="1499.38,-1494.13 1502.45,-1483.99 1493.73,-1490 1499.38,-1494.13"/>
</a>
</g>
<g id="a_edge53&#45;label"><a xlink:title="github.com/metacubex/quic&#45;go/internal/wire.(*frameParser).parseFrame &#45;&gt; github.com/metacubex/quic&#45;go/internal/wire.parseAckFrame (69.52MB)">
<text text-anchor="middle" x="1504" y="-1528.3" font-family="Times New Roman,serif" font-size="14.00"> 69.52MB</text>
</a>
</g>
</g>
<!-- N21&#45;&gt;N29 -->
<g id="edge61" class="edge">
<title>N21&#45;&gt;N29</title>
<g id="a_edge61"><a xlink:title="github.com/metacubex/quic&#45;go/internal/wire.(*frameParser).parseFrame ... github.com/metacubex/quic&#45;go/internal/wire.GetStreamFrame (40.06MB)">
<path fill="none" stroke="#b2ac9f" stroke-dasharray="1,5" d="M1428,-1564.75C1428,-1536.91 1428,-1486.55 1428,-1443.5 1428,-1443.5 1428,-1443.5 1428,-1170.5 1428,-1125.97 1374.66,-815.33 1352,-777 1252.56,-608.78 1046.22,-483.01 955.92,-433.76"/>
<polygon fill="#b2ac9f" stroke="#b2ac9f" points="957.8,-430.8 947.34,-429.12 954.48,-436.96 957.8,-430.8"/>
</a>
</g>
<g id="a_edge61&#45;label"><a xlink:title="github.com/metacubex/quic&#45;go/internal/wire.(*frameParser).parseFrame ... github.com/metacubex/quic&#45;go/internal/wire.GetStreamFrame (40.06MB)">
<text text-anchor="middle" x="1433" y="-969.8" font-family="Times New Roman,serif" font-size="14.00"> 40.06MB</text>
<text text-anchor="middle" x="1433" y="-954.8" font-family="Times New Roman,serif" font-size="14.00"> (inline)</text>
</a>
</g>
</g>
<!-- N22 -->
<g id="node22" class="node">
<title>N22</title>
<g id="a_node22"><a xlink:title="github.com/metacubex/quic&#45;go.(*basicConn).ReadPacket (59.01MB)">
<polygon fill="#edebe9" stroke="#b2a895" points="291.5,-562 158.5,-562 158.5,-479 291.5,-479 291.5,-562"/>
<text text-anchor="middle" x="225" y="-546.8" font-family="Times New Roman,serif" font-size="14.00">quic&#45;go</text>
<text text-anchor="middle" x="225" y="-531.8" font-family="Times New Roman,serif" font-size="14.00">(*basicConn)</text>
<text text-anchor="middle" x="225" y="-516.8" font-family="Times New Roman,serif" font-size="14.00">ReadPacket</text>
<text text-anchor="middle" x="225" y="-501.8" font-family="Times New Roman,serif" font-size="14.00">35.50MB (1.93%)</text>
<text text-anchor="middle" x="225" y="-486.8" font-family="Times New Roman,serif" font-size="14.00">of 59.01MB (3.21%)</text>
</a>
</g>
</g>
<!-- N22&#45;&gt;N7 -->
<g id="edge85" class="edge">
<title>N22&#45;&gt;N7</title>
<g id="a_edge85"><a xlink:title="github.com/metacubex/quic&#45;go.(*basicConn).ReadPacket ... sync.(*Pool).Get (2MB)">
<path fill="none" stroke="#b2b2b1" stroke-dasharray="1,5" d="M179.42,-478.74C154.96,-452.03 134.11,-417.47 157,-392 208.09,-335.15 737.54,-311.62 924.25,-305.05"/>
<polygon fill="#b2b2b1" stroke="#b2b2b1" points="924.14,-308.56 934.01,-304.71 923.9,-301.56 924.14,-308.56"/>
</a>
</g>
<g id="a_edge85&#45;label"><a xlink:title="github.com/metacubex/quic&#45;go.(*basicConn).ReadPacket ... sync.(*Pool).Get (2MB)">
<text text-anchor="middle" x="173" y="-406.3" font-family="Times New Roman,serif" font-size="14.00"> 2MB</text>
</a>
</g>
</g>
<!-- NN22_0 -->
<g id="NN22_0" class="node">
<title>NN22_0</title>
<g id="a_NN22_0"><a xlink:title="35.50MB">
<polygon fill="#f8f8f8" stroke="black" points="252,-428 202,-428 198,-424 198,-392 248,-392 252,-396 252,-428"/>
<polyline fill="none" stroke="black" points="248,-424 198,-424"/>
<polyline fill="none" stroke="black" points="248,-424 248,-392"/>
<polyline fill="none" stroke="black" points="248,-424 252,-428"/>
<text text-anchor="middle" x="225" y="-408.1" font-family="Times New Roman,serif" font-size="8.00">96B</text>
</a>
</g>
</g>
<!-- N22&#45;&gt;NN22_0 -->
<g id="edge16" class="edge">
<title>N22&#45;&gt;NN22_0</title>
<g id="a_edge16"><a xlink:title="35.50MB">
<path fill="none" stroke="black" d="M225,-478.79C225,-465.71 225,-451.51 225,-439.5"/>
<polygon fill="black" stroke="black" points="228.5,-439.86 225,-429.86 221.5,-439.86 228.5,-439.86"/>
</a>
</g>
<g id="a_edge16&#45;label"><a xlink:title="35.50MB">
<text text-anchor="middle" x="253" y="-449.8" font-family="Times New Roman,serif" font-size="14.00"> 35.50MB</text>
</a>
</g>
</g>
<!-- N37 -->
<g id="node37" class="node">
<title>N37</title>
<g id="a_node37"><a xlink:title="net.(*UDPConn).ReadFrom (22MB)">
<polygon fill="#edeceb" stroke="#b2afa7" points="112,-341 0,-341 0,-263 112,-263 112,-341"/>
<text text-anchor="middle" x="56" y="-326.6" font-family="Times New Roman,serif" font-size="13.00">net</text>
<text text-anchor="middle" x="56" y="-312.6" font-family="Times New Roman,serif" font-size="13.00">(*UDPConn)</text>
<text text-anchor="middle" x="56" y="-298.6" font-family="Times New Roman,serif" font-size="13.00">ReadFrom</text>
<text text-anchor="middle" x="56" y="-284.6" font-family="Times New Roman,serif" font-size="13.00">18.50MB (1.01%)</text>
<text text-anchor="middle" x="56" y="-270.6" font-family="Times New Roman,serif" font-size="13.00">of 22MB (1.20%)</text>
</a>
</g>
</g>
<!-- N22&#45;&gt;N37 -->
<g id="edge76" class="edge">
<title>N22&#45;&gt;N37</title>
<g id="a_edge76"><a xlink:title="github.com/metacubex/quic&#45;go.(*basicConn).ReadPacket &#45;&gt; net.(*UDPConn).ReadFrom (21.50MB)">
<path fill="none" stroke="#b2afa8" d="M158.29,-496.48C126.3,-481.92 90.55,-459.74 70,-428 55.76,-406 51.79,-377.16 51.6,-352.73"/>
<polygon fill="#b2afa8" stroke="#b2afa8" points="55.09,-353.06 51.74,-343.01 48.09,-352.96 55.09,-353.06"/>
</a>
</g>
<g id="a_edge76&#45;label"><a xlink:title="github.com/metacubex/quic&#45;go.(*basicConn).ReadPacket &#45;&gt; net.(*UDPConn).ReadFrom (21.50MB)">
<text text-anchor="middle" x="98" y="-406.3" font-family="Times New Roman,serif" font-size="14.00"> 21.50MB</text>
</a>
</g>
</g>
<!-- N41 -->
<g id="node41" class="node">
<title>N41</title>
<g id="a_node41"><a xlink:title="github.com/metacubex/quic&#45;go/internal/ackhandler.(*sentPacketHandler).ReceivedAck (90.10MB)">
<polygon fill="#edeae7" stroke="#b2a086" points="1116.5,-1464.5 1019.5,-1464.5 1019.5,-1420.5 1116.5,-1420.5 1116.5,-1464.5"/>
<text text-anchor="middle" x="1068" y="-1454.1" font-family="Times New Roman,serif" font-size="8.00">ackhandler</text>
<text text-anchor="middle" x="1068" y="-1445.1" font-family="Times New Roman,serif" font-size="8.00">(*sentPacketHandler)</text>
<text text-anchor="middle" x="1068" y="-1436.1" font-family="Times New Roman,serif" font-size="8.00">ReceivedAck</text>
<text text-anchor="middle" x="1068" y="-1427.1" font-family="Times New Roman,serif" font-size="8.00">0 of 90.10MB (4.90%)</text>
</a>
</g>
</g>
<!-- N23&#45;&gt;N41 -->
<g id="edge46" class="edge">
<title>N23&#45;&gt;N41</title>
<g id="a_edge46"><a xlink:title="github.com/metacubex/quic&#45;go.(*connection).handleFrame ... github.com/metacubex/quic&#45;go/internal/ackhandler.(*sentPacketHandler).ReceivedAck (90.10MB)">
<path fill="none" stroke="#b2a086" stroke-dasharray="1,5" d="M1068,-1564.67C1068,-1541.27 1068,-1503.43 1068,-1476.26"/>
<polygon fill="#b2a086" stroke="#b2a086" points="1071.5,-1476.49 1068,-1466.49 1064.5,-1476.49 1071.5,-1476.49"/>
</a>
</g>
<g id="a_edge46&#45;label"><a xlink:title="github.com/metacubex/quic&#45;go.(*connection).handleFrame ... github.com/metacubex/quic&#45;go/internal/ackhandler.(*sentPacketHandler).ReceivedAck (90.10MB)">
<text text-anchor="middle" x="1096" y="-1528.3" font-family="Times New Roman,serif" font-size="14.00"> 90.10MB</text>
</a>
</g>
</g>
<!-- N42 -->
<g id="node42" class="node">
<title>N42</title>
<g id="a_node42"><a xlink:title="github.com/metacubex/quic&#45;go.(*receiveStream).handleStreamFrameImpl (29.28MB)">
<polygon fill="#edeceb" stroke="#b2aea4" points="1343.5,-1476.5 1218.5,-1476.5 1218.5,-1408.5 1343.5,-1408.5 1343.5,-1476.5"/>
<text text-anchor="middle" x="1281" y="-1463.7" font-family="Times New Roman,serif" font-size="11.00">quic&#45;go</text>
<text text-anchor="middle" x="1281" y="-1451.7" font-family="Times New Roman,serif" font-size="11.00">(*receiveStream)</text>
<text text-anchor="middle" x="1281" y="-1439.7" font-family="Times New Roman,serif" font-size="11.00">handleStreamFrameImpl</text>
<text text-anchor="middle" x="1281" y="-1427.7" font-family="Times New Roman,serif" font-size="11.00">7MB (0.38%)</text>
<text text-anchor="middle" x="1281" y="-1415.7" font-family="Times New Roman,serif" font-size="11.00">of 29.28MB (1.59%)</text>
</a>
</g>
</g>
<!-- N23&#45;&gt;N42 -->
<g id="edge64" class="edge">
<title>N23&#45;&gt;N42</title>
<g id="a_edge64"><a xlink:title="github.com/metacubex/quic&#45;go.(*connection).handleFrame ... github.com/metacubex/quic&#45;go.(*receiveStream).handleStreamFrameImpl (29.28MB)">
<path fill="none" stroke="#b2aea4" stroke-dasharray="1,5" d="M1101.08,-1564.65C1109.85,-1558.95 1119.3,-1552.77 1128,-1547 1159.46,-1526.14 1194.33,-1502.58 1222.83,-1483.22"/>
<polygon fill="#b2aea4" stroke="#b2aea4" points="1224.68,-1486.19 1230.98,-1477.68 1220.74,-1480.4 1224.68,-1486.19"/>
</a>
</g>
<g id="a_edge64&#45;label"><a xlink:title="github.com/metacubex/quic&#45;go.(*connection).handleFrame ... github.com/metacubex/quic&#45;go.(*receiveStream).handleStreamFrameImpl (29.28MB)">
<text text-anchor="middle" x="1198" y="-1528.3" font-family="Times New Roman,serif" font-size="14.00"> 29.28MB</text>
</a>
</g>
</g>
<!-- N24&#45;&gt;N7 -->
<g id="edge84" class="edge">
<title>N24&#45;&gt;N7</title>
<g id="a_edge84"><a xlink:title="github.com/metacubex/quic&#45;go/internal/wire.parseAckFrame ... sync.(*Pool).Get (4.50MB)">
<path fill="none" stroke="#b2b2b0" stroke-dasharray="1,5" d="M1512.76,-1402.05C1496.9,-1365.87 1477,-1310.33 1477,-1259.5 1477,-1259.5 1477,-1259.5 1477,-409 1477,-323.28 1185.85,-306.74 1053.33,-303.65"/>
<polygon fill="#b2b2b0" stroke="#b2b2b0" points="1053.74,-300.16 1043.67,-303.45 1053.59,-307.16 1053.74,-300.16"/>
</a>
</g>
<g id="a_edge84&#45;label"><a xlink:title="github.com/metacubex/quic&#45;go/internal/wire.parseAckFrame ... sync.(*Pool).Get (4.50MB)">
<text text-anchor="middle" x="1501.5" y="-819.3" font-family="Times New Roman,serif" font-size="14.00"> 4.50MB</text>
</a>
</g>
</g>
<!-- NN24_0 -->
<g id="NN24_0" class="node">
<title>NN24_0</title>
<g id="a_NN24_0"><a xlink:title="32.52MB">
<polygon fill="#f8f8f8" stroke="black" points="1559,-1276.5 1509,-1276.5 1505,-1272.5 1505,-1240.5 1555,-1240.5 1559,-1244.5 1559,-1276.5"/>
<polyline fill="none" stroke="black" points="1555,-1272.5 1505,-1272.5"/>
<polyline fill="none" stroke="black" points="1555,-1272.5 1555,-1240.5"/>
<polyline fill="none" stroke="black" points="1555,-1272.5 1559,-1276.5"/>
<text text-anchor="middle" x="1532" y="-1256.6" font-family="Times New Roman,serif" font-size="8.00">512B</text>
</a>
</g>
</g>
<!-- N24&#45;&gt;NN24_0 -->
<g id="edge17" class="edge">
<title>N24&#45;&gt;NN24_0</title>
<g id="a_edge17"><a xlink:title="32.52MB">
<path fill="none" stroke="black" d="M1532,-1402.01C1532,-1367.68 1532,-1318.76 1532,-1288.09"/>
<polygon fill="black" stroke="black" points="1535.5,-1288.43 1532,-1278.43 1528.5,-1288.43 1535.5,-1288.43"/>
</a>
</g>
<g id="a_edge17&#45;label"><a xlink:title="32.52MB">
<text text-anchor="middle" x="1560" y="-1349.3" font-family="Times New Roman,serif" font-size="14.00"> 32.52MB</text>
</a>
</g>
</g>
<!-- NN24_1 -->
<g id="NN24_1" class="node">
<title>NN24_1</title>
<g id="a_NN24_1"><a xlink:title="18MB">
<polygon fill="#f8f8f8" stroke="black" points="1638,-1276.5 1588,-1276.5 1584,-1272.5 1584,-1240.5 1634,-1240.5 1638,-1244.5 1638,-1276.5"/>
<polyline fill="none" stroke="black" points="1634,-1272.5 1584,-1272.5"/>
<polyline fill="none" stroke="black" points="1634,-1272.5 1634,-1240.5"/>
<polyline fill="none" stroke="black" points="1634,-1272.5 1638,-1276.5"/>
<text text-anchor="middle" x="1611" y="-1256.6" font-family="Times New Roman,serif" font-size="8.00">256B</text>
</a>
</g>
</g>
<!-- N24&#45;&gt;NN24_1 -->
<g id="edge18" class="edge">
<title>N24&#45;&gt;NN24_1</title>
<g id="a_edge18"><a xlink:title="18MB">
<path fill="none" stroke="black" d="M1567.85,-1402.09C1575.84,-1391.61 1583.55,-1379.89 1589,-1368 1600.75,-1342.38 1606.25,-1310.51 1608.82,-1287.96"/>
<polygon fill="black" stroke="black" points="1612.27,-1288.59 1609.78,-1278.29 1605.3,-1287.9 1612.27,-1288.59"/>
</a>
</g>
<g id="a_edge18&#45;label"><a xlink:title="18MB">
<text text-anchor="middle" x="1618.5" y="-1349.3" font-family="Times New Roman,serif" font-size="14.00"> 18MB</text>
</a>
</g>
</g>
<!-- N25&#45;&gt;N16 -->
<g id="edge41" class="edge">
<title>N25&#45;&gt;N16</title>
<g id="a_edge41"><a xlink:title="github.com/metacubex/quic&#45;go.(*framerI).AppendStreamFrames &#45;&gt; github.com/metacubex/quic&#45;go.(*sendStream).popStreamFrame (142.05MB)">
<path fill="none" stroke="#b2926d" d="M597.31,-929.04C578.74,-913.04 559.94,-892.48 550,-869 531.89,-826.22 546.32,-775.75 564.93,-736.41"/>
<polygon fill="#b2926d" stroke="#b2926d" points="568.04,-738.01 569.33,-727.5 561.76,-734.92 568.04,-738.01"/>
</a>
</g>
<g id="a_edge41&#45;label"><a xlink:title="github.com/metacubex/quic&#45;go.(*framerI).AppendStreamFrames &#45;&gt; github.com/metacubex/quic&#45;go.(*sendStream).popStreamFrame (142.05MB)">
<text text-anchor="middle" x="581.5" y="-819.3" font-family="Times New Roman,serif" font-size="14.00"> 142.05MB</text>
</a>
</g>
</g>
<!-- NN25_0 -->
<g id="NN25_0" class="node">
<title>NN25_0</title>
<g id="a_NN25_0"><a xlink:title="15.50MB">
<polygon fill="#f8f8f8" stroke="black" points="676,-841 626,-841 622,-837 622,-805 672,-805 676,-809 676,-841"/>
<polyline fill="none" stroke="black" points="672,-837 622,-837"/>
<polyline fill="none" stroke="black" points="672,-837 672,-805"/>
<polyline fill="none" stroke="black" points="672,-837 676,-841"/>
<text text-anchor="middle" x="649" y="-821.1" font-family="Times New Roman,serif" font-size="8.00">16B</text>
</a>
</g>
</g>
<!-- N25&#45;&gt;NN25_0 -->
<g id="edge19" class="edge">
<title>N25&#45;&gt;NN25_0</title>
<g id="a_edge19"><a xlink:title="15.50MB">
<path fill="none" stroke="black" d="M649,-929.05C649,-905.37 649,-874.78 649,-852.72"/>
<polygon fill="black" stroke="black" points="652.5,-852.96 649,-842.96 645.5,-852.96 652.5,-852.96"/>
</a>
</g>
<g id="a_edge19&#45;label"><a xlink:title="15.50MB">
<text text-anchor="middle" x="677" y="-890.8" font-family="Times New Roman,serif" font-size="14.00"> 15.50MB</text>
</a>
</g>
</g>
<!-- N26 -->
<g id="node26" class="node">
<title>N26</title>
<g id="a_node26"><a xlink:title="runtime.main (79.85MB)">
<polygon fill="#edebe7" stroke="#b2a38b" points="1857.5,-2078.5 1760.5,-2078.5 1760.5,-2042.5 1857.5,-2042.5 1857.5,-2078.5"/>
<text text-anchor="middle" x="1809" y="-2067.6" font-family="Times New Roman,serif" font-size="8.00">runtime</text>
<text text-anchor="middle" x="1809" y="-2058.6" font-family="Times New Roman,serif" font-size="8.00">main</text>
<text text-anchor="middle" x="1809" y="-2049.6" font-family="Times New Roman,serif" font-size="8.00">0 of 79.85MB (4.35%)</text>
</a>
</g>
</g>
<!-- N52 -->
<g id="node52" class="node">
<title>N52</title>
<g id="a_node52"><a xlink:title="main.main (78.85MB)">
<polygon fill="#edebe8" stroke="#b2a38c" points="1857.5,-1929 1760.5,-1929 1760.5,-1893 1857.5,-1893 1857.5,-1929"/>
<text text-anchor="middle" x="1809" y="-1918.1" font-family="Times New Roman,serif" font-size="8.00">main</text>
<text text-anchor="middle" x="1809" y="-1909.1" font-family="Times New Roman,serif" font-size="8.00">main</text>
<text text-anchor="middle" x="1809" y="-1900.1" font-family="Times New Roman,serif" font-size="8.00">0 of 78.85MB (4.29%)</text>
</a>
</g>
</g>
<!-- N26&#45;&gt;N52 -->
<g id="edge49" class="edge">
<title>N26&#45;&gt;N52</title>
<g id="a_edge49"><a xlink:title="runtime.main &#45;&gt; main.main (78.85MB)">
<path fill="none" stroke="#b2a38c" d="M1809,-2042C1809,-2017.05 1809,-1970.95 1809,-1940.89"/>
<polygon fill="#b2a38c" stroke="#b2a38c" points="1812.5,-1940.99 1809,-1930.99 1805.5,-1940.99 1812.5,-1940.99"/>
</a>
</g>
<g id="a_edge49&#45;label"><a xlink:title="runtime.main &#45;&gt; main.main (78.85MB)">
<text text-anchor="middle" x="1837" y="-1954.8" font-family="Times New Roman,serif" font-size="14.00"> 78.85MB</text>
</a>
</g>
</g>
<!-- N27 -->
<g id="node27" class="node">
<title>N27</title>
<g id="a_node27"><a xlink:title="github.com/Dreamacro/clash/component/geodata/strmatcher.(*MphMatcherGroup).Build (37.85MB)">
<polygon fill="#edecea" stroke="#b2aca0" points="1797.5,-1292.5 1656.5,-1292.5 1656.5,-1224.5 1797.5,-1224.5 1797.5,-1292.5"/>
<text text-anchor="middle" x="1727" y="-1277.3" font-family="Times New Roman,serif" font-size="14.00">strmatcher</text>
<text text-anchor="middle" x="1727" y="-1262.3" font-family="Times New Roman,serif" font-size="14.00">(*MphMatcherGroup)</text>
<text text-anchor="middle" x="1727" y="-1247.3" font-family="Times New Roman,serif" font-size="14.00">Build</text>
<text text-anchor="middle" x="1727" y="-1232.3" font-family="Times New Roman,serif" font-size="14.00">37.85MB (2.06%)</text>
</a>
</g>
</g>
<!-- N28 -->
<g id="node28" class="node">
<title>N28</title>
<g id="a_node28"><a xlink:title="github.com/metacubex/quic&#45;go/internal/ackhandler.(*sentPacketHandler).detectLostPackets.func1 (79.59MB)">
<polygon fill="#edebe8" stroke="#b2a38b" points="1114.5,-1285 1017.5,-1285 1017.5,-1232 1114.5,-1232 1114.5,-1285"/>
<text text-anchor="middle" x="1066" y="-1274.6" font-family="Times New Roman,serif" font-size="8.00">ackhandler</text>
<text text-anchor="middle" x="1066" y="-1265.6" font-family="Times New Roman,serif" font-size="8.00">(*sentPacketHandler)</text>
<text text-anchor="middle" x="1066" y="-1256.6" font-family="Times New Roman,serif" font-size="8.00">detectLostPackets</text>
<text text-anchor="middle" x="1066" y="-1247.6" font-family="Times New Roman,serif" font-size="8.00">func1</text>
<text text-anchor="middle" x="1066" y="-1238.6" font-family="Times New Roman,serif" font-size="8.00">0 of 79.59MB (4.33%)</text>
</a>
</g>
</g>
<!-- N35 -->
<g id="node35" class="node">
<title>N35</title>
<g id="a_node35"><a xlink:title="github.com/metacubex/quic&#45;go.(*sendStream).queueRetransmission (23.59MB)">
<polygon fill="#edeceb" stroke="#b2afa7" points="1259,-1144 1133,-1144 1133,-1080 1259,-1080 1259,-1144"/>
<text text-anchor="middle" x="1196" y="-1129.6" font-family="Times New Roman,serif" font-size="13.00">quic&#45;go</text>
<text text-anchor="middle" x="1196" y="-1115.6" font-family="Times New Roman,serif" font-size="13.00">(*sendStream)</text>
<text text-anchor="middle" x="1196" y="-1101.6" font-family="Times New Roman,serif" font-size="13.00">queueRetransmission</text>
<text text-anchor="middle" x="1196" y="-1087.6" font-family="Times New Roman,serif" font-size="13.00">23.59MB (1.28%)</text>
</a>
</g>
</g>
<!-- N28&#45;&gt;N35 -->
<g id="edge71" class="edge">
<title>N28&#45;&gt;N35</title>
<g id="a_edge71"><a xlink:title="github.com/metacubex/quic&#45;go/internal/ackhandler.(*sentPacketHandler).detectLostPackets.func1 ... github.com/metacubex/quic&#45;go.(*sendStream).queueRetransmission (23.59MB)">
<path fill="none" stroke="#b2afa7" stroke-dasharray="1,5" d="M1089.24,-1231.67C1108.99,-1209.71 1137.66,-1177.85 1160.32,-1152.66"/>
<polygon fill="#b2afa7" stroke="#b2afa7" points="1162.65,-1155.3 1166.74,-1145.53 1157.45,-1150.62 1162.65,-1155.3"/>
</a>
</g>
<g id="a_edge71&#45;label"><a xlink:title="github.com/metacubex/quic&#45;go/internal/ackhandler.(*sentPacketHandler).detectLostPackets.func1 ... github.com/metacubex/quic&#45;go.(*sendStream).queueRetransmission (23.59MB)">
<text text-anchor="middle" x="1174" y="-1167.8" font-family="Times New Roman,serif" font-size="14.00"> 23.59MB</text>
</a>
</g>
</g>
<!-- N43 -->
<g id="node43" class="node">
<title>N43</title>
<g id="a_node43"><a xlink:title="github.com/metacubex/quic&#45;go/internal/utils/linkedlist.(*List[...]).InsertAfter (62.50MB)">
<polygon fill="#edebe9" stroke="#b2a794" points="1114.5,-1134 1017.5,-1134 1017.5,-1090 1114.5,-1090 1114.5,-1134"/>
<text text-anchor="middle" x="1066" y="-1123.6" font-family="Times New Roman,serif" font-size="8.00">linkedlist</text>
<text text-anchor="middle" x="1066" y="-1114.6" font-family="Times New Roman,serif" font-size="8.00">(*List[…])</text>
<text text-anchor="middle" x="1066" y="-1105.6" font-family="Times New Roman,serif" font-size="8.00">InsertAfter</text>
<text text-anchor="middle" x="1066" y="-1096.6" font-family="Times New Roman,serif" font-size="8.00">0 of 62.50MB (3.40%)</text>
</a>
</g>
</g>
<!-- N28&#45;&gt;N43 -->
<g id="edge58" class="edge">
<title>N28&#45;&gt;N43</title>
<g id="a_edge58"><a xlink:title="github.com/metacubex/quic&#45;go/internal/ackhandler.(*sentPacketHandler).detectLostPackets.func1 ... github.com/metacubex/quic&#45;go/internal/utils/linkedlist.(*List[...]).InsertAfter (56MB)">
<path fill="none" stroke="#b2a897" stroke-dasharray="1,5" d="M1066,-1231.67C1066,-1207.59 1066,-1171.59 1066,-1145.56"/>
<polygon fill="#b2a897" stroke="#b2a897" points="1069.5,-1145.89 1066,-1135.89 1062.5,-1145.89 1069.5,-1145.89"/>
</a>
</g>
<g id="a_edge58&#45;label"><a xlink:title="github.com/metacubex/quic&#45;go/internal/ackhandler.(*sentPacketHandler).detectLostPackets.func1 ... github.com/metacubex/quic&#45;go/internal/utils/linkedlist.(*List[...]).InsertAfter (56MB)">
<text text-anchor="middle" x="1085.5" y="-1167.8" font-family="Times New Roman,serif" font-size="14.00"> 56MB</text>
</a>
</g>
</g>
<!-- N29&#45;&gt;N7 -->
<g id="edge51" class="edge">
<title>N29&#45;&gt;N7</title>
<g id="a_edge51"><a xlink:title="github.com/metacubex/quic&#45;go/internal/wire.GetStreamFrame &#45;&gt; sync.(*Pool).Get (70.60MB)">
<path fill="none" stroke="#b2a590" d="M911.32,-391.78C911.65,-381.64 913.36,-368.9 919,-359 924.95,-348.55 933.69,-339.3 942.99,-331.48"/>
<polygon fill="#b2a590" stroke="#b2a590" points="945.09,-334.28 950.82,-325.37 940.78,-328.77 945.09,-334.28"/>
</a>
</g>
<g id="a_edge51&#45;label"><a xlink:title="github.com/metacubex/quic&#45;go/internal/wire.GetStreamFrame &#45;&gt; sync.(*Pool).Get (70.60MB)">
<text text-anchor="middle" x="947" y="-362.8" font-family="Times New Roman,serif" font-size="14.00"> 70.60MB</text>
</a>
</g>
</g>
<!-- N30 -->
<g id="node30" class="node">
<title>N30</title>
<g id="a_node30"><a xlink:title="github.com/Dreamacro/clash/rules/common.NewGEOSITE (74.20MB)">
<polygon fill="#edebe8" stroke="#b2a48e" points="1857.5,-1834 1760.5,-1834 1760.5,-1798 1857.5,-1798 1857.5,-1834"/>
<text text-anchor="middle" x="1809" y="-1823.1" font-family="Times New Roman,serif" font-size="8.00">common</text>
<text text-anchor="middle" x="1809" y="-1814.1" font-family="Times New Roman,serif" font-size="8.00">NewGEOSITE</text>
<text text-anchor="middle" x="1809" y="-1805.1" font-family="Times New Roman,serif" font-size="8.00">0 of 74.20MB (4.04%)</text>
</a>
</g>
</g>
<!-- N30&#45;&gt;N20 -->
<g id="edge68" class="edge">
<title>N30&#45;&gt;N20</title>
<g id="a_edge68"><a xlink:title="github.com/Dreamacro/clash/rules/common.NewGEOSITE &#45;&gt; github.com/Dreamacro/clash/component/geodata.LoadGeoSiteMatcher (25.91MB)">
<path fill="none" stroke="#b2aea5" d="M1761.21,-1797.62C1737.04,-1786.11 1709.93,-1768.39 1696,-1743 1678.26,-1710.66 1678.26,-1692.34 1696,-1660 1708.02,-1638.08 1729.87,-1621.87 1751.17,-1610.45"/>
<polygon fill="#b2aea5" stroke="#b2aea5" points="1752.51,-1613.69 1759.86,-1606.06 1749.35,-1607.45 1752.51,-1613.69"/>
</a>
</g>
<g id="a_edge68&#45;label"><a xlink:title="github.com/Dreamacro/clash/rules/common.NewGEOSITE &#45;&gt; github.com/Dreamacro/clash/component/geodata.LoadGeoSiteMatcher (25.91MB)">
<text text-anchor="middle" x="1724" y="-1697.8" font-family="Times New Roman,serif" font-size="14.00"> 25.91MB</text>
</a>
</g>
</g>
<!-- N46 -->
<g id="node46" class="node">
<title>N46</title>
<g id="a_node46"><a xlink:title="github.com/Dreamacro/clash/component/geodata.Verify (51.44MB)">
<polygon fill="#edece9" stroke="#b2a999" points="1857.5,-1719.5 1760.5,-1719.5 1760.5,-1683.5 1857.5,-1683.5 1857.5,-1719.5"/>
<text text-anchor="middle" x="1809" y="-1708.6" font-family="Times New Roman,serif" font-size="8.00">geodata</text>
<text text-anchor="middle" x="1809" y="-1699.6" font-family="Times New Roman,serif" font-size="8.00">Verify</text>
<text text-anchor="middle" x="1809" y="-1690.6" font-family="Times New Roman,serif" font-size="8.00">0 of 51.44MB (2.80%)</text>
</a>
</g>
</g>
<!-- N30&#45;&gt;N46 -->
<g id="edge60" class="edge">
<title>N30&#45;&gt;N46</title>
<g id="a_edge60"><a xlink:title="github.com/Dreamacro/clash/rules/common.NewGEOSITE ... github.com/Dreamacro/clash/component/geodata.Verify (48.29MB)">
<path fill="none" stroke="#b2aa9b" stroke-dasharray="1,5" d="M1809,-1797.91C1809,-1780.24 1809,-1752.32 1809,-1731.24"/>
<polygon fill="#b2aa9b" stroke="#b2aa9b" points="1812.5,-1731.26 1809,-1721.26 1805.5,-1731.26 1812.5,-1731.26"/>
</a>
</g>
<g id="a_edge60&#45;label"><a xlink:title="github.com/Dreamacro/clash/rules/common.NewGEOSITE ... github.com/Dreamacro/clash/component/geodata.Verify (48.29MB)">
<text text-anchor="middle" x="1837" y="-1764.8" font-family="Times New Roman,serif" font-size="14.00"> 48.29MB</text>
</a>
</g>
</g>
<!-- N31 -->
<g id="node31" class="node">
<title>N31</title>
<g id="a_node31"><a xlink:title="github.com/metacubex/quic&#45;go.(*packetHandlerMap).listen (59.01MB)">
<polygon fill="#edebe9" stroke="#b2a895" points="273.5,-691.5 176.5,-691.5 176.5,-647.5 273.5,-647.5 273.5,-691.5"/>
<text text-anchor="middle" x="225" y="-681.1" font-family="Times New Roman,serif" font-size="8.00">quic&#45;go</text>
<text text-anchor="middle" x="225" y="-672.1" font-family="Times New Roman,serif" font-size="8.00">(*packetHandlerMap)</text>
<text text-anchor="middle" x="225" y="-663.1" font-family="Times New Roman,serif" font-size="8.00">listen</text>
<text text-anchor="middle" x="225" y="-654.1" font-family="Times New Roman,serif" font-size="8.00">0 of 59.01MB (3.21%)</text>
</a>
</g>
</g>
<!-- N31&#45;&gt;N22 -->
<g id="edge55" class="edge">
<title>N31&#45;&gt;N22</title>
<g id="a_edge55"><a xlink:title="github.com/metacubex/quic&#45;go.(*packetHandlerMap).listen &#45;&gt; github.com/metacubex/quic&#45;go.(*basicConn).ReadPacket (59.01MB)">
<path fill="none" stroke="#b2a895" d="M225,-647.12C225,-627.93 225,-598.96 225,-573.67"/>
<polygon fill="#b2a895" stroke="#b2a895" points="228.5,-573.88 225,-563.88 221.5,-573.88 228.5,-573.88"/>
</a>
</g>
<g id="a_edge55&#45;label"><a xlink:title="github.com/metacubex/quic&#45;go.(*packetHandlerMap).listen &#45;&gt; github.com/metacubex/quic&#45;go.(*basicConn).ReadPacket (59.01MB)">
<text text-anchor="middle" x="253" y="-583.8" font-family="Times New Roman,serif" font-size="14.00"> 59.01MB</text>
</a>
</g>
</g>
<!-- N32 -->
<g id="node32" class="node">
<title>N32</title>
<g id="a_node32"><a xlink:title="net/http.HandlerFunc.ServeHTTP (26.60MB)">
<polygon fill="#edeceb" stroke="#b2aea5" points="2256.5,-2082.5 2159.5,-2082.5 2159.5,-2038.5 2256.5,-2038.5 2256.5,-2082.5"/>
<text text-anchor="middle" x="2208" y="-2072.1" font-family="Times New Roman,serif" font-size="8.00">http</text>
<text text-anchor="middle" x="2208" y="-2063.1" font-family="Times New Roman,serif" font-size="8.00">HandlerFunc</text>
<text text-anchor="middle" x="2208" y="-2054.1" font-family="Times New Roman,serif" font-size="8.00">ServeHTTP</text>
<text text-anchor="middle" x="2208" y="-2045.1" font-family="Times New Roman,serif" font-size="8.00">0 of 26.60MB (1.45%)</text>
</a>
</g>
</g>
<!-- N47 -->
<g id="node47" class="node">
<title>N47</title>
<g id="a_node47"><a xlink:title="github.com/go&#45;chi/chi/v5.(*Mux).routeHTTP (26.60MB)">
<polygon fill="#edeceb" stroke="#b2aea5" points="2177.5,-1933 2080.5,-1933 2080.5,-1889 2177.5,-1889 2177.5,-1933"/>
<text text-anchor="middle" x="2129" y="-1922.6" font-family="Times New Roman,serif" font-size="8.00">chi</text>
<text text-anchor="middle" x="2129" y="-1913.6" font-family="Times New Roman,serif" font-size="8.00">(*Mux)</text>
<text text-anchor="middle" x="2129" y="-1904.6" font-family="Times New Roman,serif" font-size="8.00">routeHTTP</text>
<text text-anchor="middle" x="2129" y="-1895.6" font-family="Times New Roman,serif" font-size="8.00">0 of 26.60MB (1.45%)</text>
</a>
</g>
</g>
<!-- N32&#45;&gt;N47 -->
<g id="edge67" class="edge">
<title>N32&#45;&gt;N47</title>
<g id="a_edge67"><a xlink:title="net/http.HandlerFunc.ServeHTTP &#45;&gt; github.com/go&#45;chi/chi/v5.(*Mux).routeHTTP (26.10MB)">
<path fill="none" stroke="#b2aea5" d="M2164.43,-2038.05C2137.57,-2022.21 2105.42,-1997.89 2090,-1966 2086.11,-1957.95 2088.13,-1949.83 2092.84,-1942.43"/>
<polygon fill="#b2aea5" stroke="#b2aea5" points="2095.54,-1944.65 2099.06,-1934.66 2090.08,-1940.28 2095.54,-1944.65"/>
</a>
</g>
<g id="a_edge67&#45;label"><a xlink:title="net/http.HandlerFunc.ServeHTTP &#45;&gt; github.com/go&#45;chi/chi/v5.(*Mux).routeHTTP (26.10MB)">
<text text-anchor="middle" x="2118" y="-1954.8" font-family="Times New Roman,serif" font-size="14.00"> 26.10MB</text>
</a>
</g>
</g>
<!-- N48 -->
<g id="node48" class="node">
<title>N48</title>
<g id="a_node48"><a xlink:title="github.com/go&#45;chi/chi/v5.(*Mux).ServeHTTP (26.10MB)">
<polygon fill="#edeceb" stroke="#b2aea5" points="2374.5,-1933 2277.5,-1933 2277.5,-1889 2374.5,-1889 2374.5,-1933"/>
<text text-anchor="middle" x="2326" y="-1922.6" font-family="Times New Roman,serif" font-size="8.00">chi</text>
<text text-anchor="middle" x="2326" y="-1913.6" font-family="Times New Roman,serif" font-size="8.00">(*Mux)</text>
<text text-anchor="middle" x="2326" y="-1904.6" font-family="Times New Roman,serif" font-size="8.00">ServeHTTP</text>
<text text-anchor="middle" x="2326" y="-1895.6" font-family="Times New Roman,serif" font-size="8.00">0 of 26.10MB (1.42%)</text>
</a>
</g>
</g>
<!-- N32&#45;&gt;N48 -->
<g id="edge69" class="edge">
<title>N32&#45;&gt;N48</title>
<g id="a_edge69"><a xlink:title="net/http.HandlerFunc.ServeHTTP ... github.com/go&#45;chi/chi/v5.(*Mux).ServeHTTP (25.59MB)">
<path fill="none" stroke="#b2afa6" stroke-dasharray="1,5" d="M2210.07,-2038.28C2213.42,-2014.44 2222.06,-1975.84 2244,-1951 2250.52,-1943.62 2258.74,-1937.52 2267.45,-1932.51"/>
<polygon fill="#b2afa6" stroke="#b2afa6" points="2268.83,-1935.74 2276.08,-1928.01 2265.59,-1929.53 2268.83,-1935.74"/>
</a>
</g>
<g id="a_edge69&#45;label"><a xlink:title="net/http.HandlerFunc.ServeHTTP ... github.com/go&#45;chi/chi/v5.(*Mux).ServeHTTP (25.59MB)">
<text text-anchor="middle" x="2272" y="-1954.8" font-family="Times New Roman,serif" font-size="14.00"> 25.59MB</text>
</a>
</g>
</g>
<!-- N33&#45;&gt;N27 -->
<g id="edge62" class="edge">
<title>N33&#45;&gt;N27</title>
<g id="a_edge62"><a xlink:title="github.com/Dreamacro/clash/component/geodata/router.NewMphMatcherGroup &#45;&gt; github.com/Dreamacro/clash/component/geodata/strmatcher.(*MphMatcherGroup).Build (37.85MB)">
<path fill="none" stroke="#b2aca0" d="M1801.14,-1424.05C1788.72,-1396.48 1764.17,-1342.01 1746.73,-1303.3"/>
<polygon fill="#b2aca0" stroke="#b2aca0" points="1749.94,-1301.89 1742.64,-1294.21 1743.56,-1304.77 1749.94,-1301.89"/>
</a>
</g>
<g id="a_edge62&#45;label"><a xlink:title="github.com/Dreamacro/clash/component/geodata/router.NewMphMatcherGroup &#45;&gt; github.com/Dreamacro/clash/component/geodata/strmatcher.(*MphMatcherGroup).Build (37.85MB)">
<text text-anchor="middle" x="1803" y="-1349.3" font-family="Times New Roman,serif" font-size="14.00"> 37.85MB</text>
</a>
</g>
</g>
<!-- N38 -->
<g id="node38" class="node">
<title>N38</title>
<g id="a_node38"><a xlink:title="github.com/Dreamacro/clash/component/geodata/strmatcher.(*MphMatcherGroup).AddFullOrDomainPattern (18.80MB)">
<polygon fill="#edeceb" stroke="#b2b0a9" points="1964,-1290.5 1816,-1290.5 1816,-1226.5 1964,-1226.5 1964,-1290.5"/>
<text text-anchor="middle" x="1890" y="-1276.1" font-family="Times New Roman,serif" font-size="13.00">strmatcher</text>
<text text-anchor="middle" x="1890" y="-1262.1" font-family="Times New Roman,serif" font-size="13.00">(*MphMatcherGroup)</text>
<text text-anchor="middle" x="1890" y="-1248.1" font-family="Times New Roman,serif" font-size="13.00">AddFullOrDomainPattern</text>
<text text-anchor="middle" x="1890" y="-1234.1" font-family="Times New Roman,serif" font-size="13.00">18.80MB (1.02%)</text>
</a>
</g>
</g>
<!-- N33&#45;&gt;N38 -->
<g id="edge77" class="edge">
<title>N33&#45;&gt;N38</title>
<g id="a_edge77"><a xlink:title="github.com/Dreamacro/clash/component/geodata/router.NewMphMatcherGroup ... github.com/Dreamacro/clash/component/geodata/strmatcher.(*MphMatcherGroup).AddFullOrDomainPattern (18.80MB)">
<path fill="none" stroke="#b2b0a9" stroke-dasharray="1,5" d="M1816.77,-1424.05C1829.25,-1395.99 1854.14,-1340.07 1871.42,-1301.26"/>
<polygon fill="#b2b0a9" stroke="#b2b0a9" points="1874.59,-1302.74 1875.45,-1292.18 1868.19,-1299.9 1874.59,-1302.74"/>
</a>
</g>
<g id="a_edge77&#45;label"><a xlink:title="github.com/Dreamacro/clash/component/geodata/router.NewMphMatcherGroup ... github.com/Dreamacro/clash/component/geodata/strmatcher.(*MphMatcherGroup).AddFullOrDomainPattern (18.80MB)">
<text text-anchor="middle" x="1882" y="-1356.8" font-family="Times New Roman,serif" font-size="14.00"> 18.80MB</text>
<text text-anchor="middle" x="1882" y="-1341.8" font-family="Times New Roman,serif" font-size="14.00"> (inline)</text>
</a>
</g>
</g>
<!-- N34&#45;&gt;N7 -->
<g id="edge82" class="edge">
<title>N34&#45;&gt;N7</title>
<g id="a_edge82"><a xlink:title="github.com/metacubex/quic&#45;go/internal/ackhandler.(*receivedPacketTracker).GetAckFrame ... sync.(*Pool).Get (10.50MB)">
<path fill="none" stroke="#b2b1ad" stroke-dasharray="1,5" d="M337.22,-956.65C232.2,-938.82 10,-892.94 10,-824 10,-824 10,-824 10,-452.5 10,-361.56 102.09,-372.66 192,-359 461.83,-317.99 787.71,-306.94 924.07,-304.02"/>
<polygon fill="#b2b1ad" stroke="#b2b1ad" points="924.07,-307.52 933.99,-303.82 923.93,-300.52 924.07,-307.52"/>
</a>
</g>
<g id="a_edge82&#45;label"><a xlink:title="github.com/metacubex/quic&#45;go/internal/ackhandler.(*receivedPacketTracker).GetAckFrame ... sync.(*Pool).Get (10.50MB)">
<text text-anchor="middle" x="38" y="-583.8" font-family="Times New Roman,serif" font-size="14.00"> 10.50MB</text>
</a>
</g>
</g>
<!-- N34&#45;&gt;N14 -->
<g id="edge44" class="edge">
<title>N34&#45;&gt;N14</title>
<g id="a_edge44"><a xlink:title="github.com/metacubex/quic&#45;go/internal/ackhandler.(*receivedPacketTracker).GetAckFrame &#45;&gt; github.com/metacubex/quic&#45;go/internal/ackhandler.(*receivedPacketHistory).AppendAckRanges (115.54MB)">
<path fill="none" stroke="#b29a7a" d="M391,-943.59C391,-926.86 391,-902.81 391,-880.66"/>
<polygon fill="#b29a7a" stroke="#b29a7a" points="394.5,-880.81 391,-870.81 387.5,-880.81 394.5,-880.81"/>
</a>
</g>
<g id="a_edge44&#45;label"><a xlink:title="github.com/metacubex/quic&#45;go/internal/ackhandler.(*receivedPacketTracker).GetAckFrame &#45;&gt; github.com/metacubex/quic&#45;go/internal/ackhandler.(*receivedPacketHistory).AppendAckRanges (115.54MB)">
<text text-anchor="middle" x="422.5" y="-890.8" font-family="Times New Roman,serif" font-size="14.00"> 115.54MB</text>
</a>
</g>
</g>
<!-- N36&#45;&gt;N15 -->
<g id="edge36" class="edge">
<title>N36&#45;&gt;N15</title>
<g id="a_edge36"><a xlink:title="github.com/metacubex/quic&#45;go.(*connection).handleUnpackedShortHeaderPacket &#45;&gt; github.com/metacubex/quic&#45;go.(*connection).handleFrames (228.96MB)">
<path fill="none" stroke="#b27643" d="M922.28,-1793.57C944.06,-1775.82 975.19,-1750.45 999.06,-1730.99"/>
<polygon fill="#b27643" stroke="#b27643" points="1001.1,-1733.83 1006.64,-1724.8 996.68,-1728.41 1001.1,-1733.83"/>
</a>
</g>
<g id="a_edge36&#45;label"><a xlink:title="github.com/metacubex/quic&#45;go.(*connection).handleUnpackedShortHeaderPacket &#45;&gt; github.com/metacubex/quic&#45;go.(*connection).handleFrames (228.96MB)">
<text text-anchor="middle" x="991.5" y="-1764.8" font-family="Times New Roman,serif" font-size="14.00"> 228.96MB</text>
</a>
</g>
</g>
<!-- NN37_0 -->
<g id="NN37_0" class="node">
<title>NN37_0</title>
<g id="a_NN37_0"><a xlink:title="18.50MB">
<polygon fill="#f8f8f8" stroke="black" points="83,-167.5 33,-167.5 29,-163.5 29,-131.5 79,-131.5 83,-135.5 83,-167.5"/>
<polyline fill="none" stroke="black" points="79,-163.5 29,-163.5"/>
<polyline fill="none" stroke="black" points="79,-163.5 79,-131.5"/>
<polyline fill="none" stroke="black" points="79,-163.5 83,-167.5"/>
<text text-anchor="middle" x="56" y="-147.6" font-family="Times New Roman,serif" font-size="8.00">48B</text>
</a>
</g>
</g>
<!-- N37&#45;&gt;NN37_0 -->
<g id="edge20" class="edge">
<title>N37&#45;&gt;NN37_0</title>
<g id="a_edge20"><a xlink:title="18.50MB">
<path fill="none" stroke="black" d="M56,-262.63C56,-236.68 56,-202.94 56,-179.28"/>
<polygon fill="black" stroke="black" points="59.5,-179.43 56,-169.43 52.5,-179.43 59.5,-179.43"/>
</a>
</g>
<g id="a_edge20&#45;label"><a xlink:title="18.50MB">
<text text-anchor="middle" x="84" y="-233.8" font-family="Times New Roman,serif" font-size="14.00"> 18.50MB</text>
</a>
</g>
</g>
<!-- N39 -->
<g id="node39" class="node">
<title>N39</title>
<g id="a_node39"><a xlink:title="sync.(*poolChain).pushHead (14.30MB)">
<polygon fill="#edecec" stroke="#b2b0ab" points="1235.5,-1288.5 1132.5,-1288.5 1132.5,-1228.5 1235.5,-1228.5 1235.5,-1288.5"/>
<text text-anchor="middle" x="1184" y="-1274.9" font-family="Times New Roman,serif" font-size="12.00">sync</text>
<text text-anchor="middle" x="1184" y="-1261.9" font-family="Times New Roman,serif" font-size="12.00">(*poolChain)</text>
<text text-anchor="middle" x="1184" y="-1248.9" font-family="Times New Roman,serif" font-size="12.00">pushHead</text>
<text text-anchor="middle" x="1184" y="-1235.9" font-family="Times New Roman,serif" font-size="12.00">14.30MB (0.78%)</text>
</a>
</g>
</g>
<!-- NN40_0 -->
<g id="NN40_0" class="node">
<title>NN40_0</title>
<g id="a_NN40_0"><a xlink:title="11.50MB">
<polygon fill="#f8f8f8" stroke="black" points="2036,-1276.5 1986,-1276.5 1982,-1272.5 1982,-1240.5 2032,-1240.5 2036,-1244.5 2036,-1276.5"/>
<polyline fill="none" stroke="black" points="2032,-1272.5 1982,-1272.5"/>
<polyline fill="none" stroke="black" points="2032,-1272.5 2032,-1240.5"/>
<polyline fill="none" stroke="black" points="2032,-1272.5 2036,-1276.5"/>
<text text-anchor="middle" x="2009" y="-1256.6" font-family="Times New Roman,serif" font-size="8.00">96B</text>
</a>
</g>
</g>
<!-- N40&#45;&gt;NN40_0 -->
<g id="edge21" class="edge">
<title>N40&#45;&gt;NN40_0</title>
<g id="a_edge21"><a xlink:title="11.50MB">
<path fill="none" stroke="black" d="M2009,-1418.82C2009,-1385.69 2009,-1324.08 2009,-1287.95"/>
<polygon fill="black" stroke="black" points="2012.5,-1288.27 2009,-1278.27 2005.5,-1288.27 2012.5,-1288.27"/>
</a>
</g>
<g id="a_edge21&#45;label"><a xlink:title="11.50MB">
<text text-anchor="middle" x="2037" y="-1349.3" font-family="Times New Roman,serif" font-size="14.00"> 11.50MB</text>
</a>
</g>
</g>
<!-- N41&#45;&gt;N28 -->
<g id="edge48" class="edge">
<title>N41&#45;&gt;N28</title>
<g id="a_edge48"><a xlink:title="github.com/metacubex/quic&#45;go/internal/ackhandler.(*sentPacketHandler).ReceivedAck ... github.com/metacubex/quic&#45;go/internal/ackhandler.(*sentPacketHandler).detectLostPackets.func1 (79.59MB)">
<path fill="none" stroke="#b2a38b" stroke-dasharray="1,5" d="M1067.77,-1420.27C1067.43,-1389.98 1066.82,-1333.91 1066.41,-1296.65"/>
<polygon fill="#b2a38b" stroke="#b2a38b" points="1069.91,-1296.75 1066.3,-1286.79 1062.91,-1296.82 1069.91,-1296.75"/>
</a>
</g>
<g id="a_edge48&#45;label"><a xlink:title="github.com/metacubex/quic&#45;go/internal/ackhandler.(*sentPacketHandler).ReceivedAck ... github.com/metacubex/quic&#45;go/internal/ackhandler.(*sentPacketHandler).detectLostPackets.func1 (79.59MB)">
<text text-anchor="middle" x="1095" y="-1349.3" font-family="Times New Roman,serif" font-size="14.00"> 79.59MB</text>
</a>
</g>
</g>
<!-- N41&#45;&gt;N39 -->
<g id="edge83" class="edge">
<title>N41&#45;&gt;N39</title>
<g id="a_edge83"><a xlink:title="github.com/metacubex/quic&#45;go/internal/ackhandler.(*sentPacketHandler).ReceivedAck ... sync.(*poolChain).pushHead (5.51MB)">
<path fill="none" stroke="#b2b2af" stroke-dasharray="1,5" d="M1086.97,-1420.15C1099.15,-1405.91 1114.89,-1386.48 1127,-1368 1141.37,-1346.08 1155.1,-1320.13 1165.49,-1299.11"/>
<polygon fill="#b2b2af" stroke="#b2b2af" points="1168.56,-1300.8 1169.8,-1290.28 1162.27,-1297.73 1168.56,-1300.8"/>
</a>
</g>
<g id="a_edge83&#45;label"><a xlink:title="github.com/metacubex/quic&#45;go/internal/ackhandler.(*sentPacketHandler).ReceivedAck ... sync.(*poolChain).pushHead (5.51MB)">
<text text-anchor="middle" x="1168.5" y="-1349.3" font-family="Times New Roman,serif" font-size="14.00"> 5.51MB</text>
</a>
</g>
</g>
<!-- NN42_0 -->
<g id="NN42_0" class="node">
<title>NN42_0</title>
<g id="a_NN42_0"><a xlink:title="7MB">
<polygon fill="#f8f8f8" stroke="black" points="1308,-1276.5 1258,-1276.5 1254,-1272.5 1254,-1240.5 1304,-1240.5 1308,-1244.5 1308,-1276.5"/>
<polyline fill="none" stroke="black" points="1304,-1272.5 1254,-1272.5"/>
<polyline fill="none" stroke="black" points="1304,-1272.5 1304,-1240.5"/>
<polyline fill="none" stroke="black" points="1304,-1272.5 1308,-1276.5"/>
<text text-anchor="middle" x="1281" y="-1256.6" font-family="Times New Roman,serif" font-size="8.00">16B</text>
</a>
</g>
</g>
<!-- N42&#45;&gt;NN42_0 -->
<g id="edge22" class="edge">
<title>N42&#45;&gt;NN42_0</title>
<g id="a_edge22"><a xlink:title="7MB">
<path fill="none" stroke="black" d="M1281,-1408.12C1281,-1373.72 1281,-1320.67 1281,-1288.13"/>
<polygon fill="black" stroke="black" points="1284.5,-1288.25 1281,-1278.25 1277.5,-1288.25 1284.5,-1288.25"/>
</a>
</g>
<g id="a_edge22&#45;label"><a xlink:title="7MB">
<text text-anchor="middle" x="1297" y="-1349.3" font-family="Times New Roman,serif" font-size="14.00"> 7MB</text>
</a>
</g>
</g>
<!-- N49 -->
<g id="node49" class="node">
<title>N49</title>
<g id="a_node49"><a xlink:title="github.com/metacubex/quic&#45;go.(*frameSorter).push (22.28MB)">
<polygon fill="#edeceb" stroke="#b2afa7" points="1398.5,-1146 1289.5,-1146 1289.5,-1078 1398.5,-1078 1398.5,-1146"/>
<text text-anchor="middle" x="1344" y="-1133.2" font-family="Times New Roman,serif" font-size="11.00">quic&#45;go</text>
<text text-anchor="middle" x="1344" y="-1121.2" font-family="Times New Roman,serif" font-size="11.00">(*frameSorter)</text>
<text text-anchor="middle" x="1344" y="-1109.2" font-family="Times New Roman,serif" font-size="11.00">push</text>
<text text-anchor="middle" x="1344" y="-1097.2" font-family="Times New Roman,serif" font-size="11.00">5.28MB (0.29%)</text>
<text text-anchor="middle" x="1344" y="-1085.2" font-family="Times New Roman,serif" font-size="11.00">of 22.28MB (1.21%)</text>
</a>
</g>
</g>
<!-- N42&#45;&gt;N49 -->
<g id="edge75" class="edge">
<title>N42&#45;&gt;N49</title>
<g id="a_edge75"><a xlink:title="github.com/metacubex/quic&#45;go.(*receiveStream).handleStreamFrameImpl ... github.com/metacubex/quic&#45;go.(*frameSorter).push (22.28MB)">
<path fill="none" stroke="#b2afa7" stroke-dasharray="1,5" d="M1300.43,-1408.09C1306.71,-1395.86 1313.07,-1381.65 1317,-1368 1337.64,-1296.36 1342.83,-1209.34 1343.95,-1157.71"/>
<polygon fill="#b2afa7" stroke="#b2afa7" points="1347.45,-1157.88 1344.12,-1147.82 1340.45,-1157.76 1347.45,-1157.88"/>
</a>
</g>
<g id="a_edge75&#45;label"><a xlink:title="github.com/metacubex/quic&#45;go.(*receiveStream).handleStreamFrameImpl ... github.com/metacubex/quic&#45;go.(*frameSorter).push (22.28MB)">
<text text-anchor="middle" x="1370" y="-1254.8" font-family="Times New Roman,serif" font-size="14.00"> 22.28MB</text>
</a>
</g>
</g>
<!-- N43&#45;&gt;N11 -->
<g id="edge54" class="edge">
<title>N43&#45;&gt;N11</title>
<g id="a_edge54"><a xlink:title="github.com/metacubex/quic&#45;go/internal/utils/linkedlist.(*List[...]).InsertAfter &#45;&gt; github.com/metacubex/quic&#45;go/internal/utils/linkedlist.(*List[...]).insertValue (62.50MB)">
<path fill="none" stroke="#b2a794" d="M1039.29,-1089.75C1016.11,-1071.31 981.57,-1043.83 951.04,-1019.54"/>
<polygon fill="#b2a794" stroke="#b2a794" points="953.32,-1016.88 943.32,-1013.4 948.96,-1022.36 953.32,-1016.88"/>
</a>
</g>
<g id="a_edge54&#45;label"><a xlink:title="github.com/metacubex/quic&#45;go/internal/utils/linkedlist.(*List[...]).InsertAfter &#45;&gt; github.com/metacubex/quic&#45;go/internal/utils/linkedlist.(*List[...]).insertValue (62.50MB)">
<text text-anchor="middle" x="1025" y="-1048.8" font-family="Times New Roman,serif" font-size="14.00"> 62.50MB</text>
<text text-anchor="middle" x="1025" y="-1033.8" font-family="Times New Roman,serif" font-size="14.00"> (inline)</text>
</a>
</g>
</g>
<!-- NN44_0 -->
<g id="NN44_0" class="node">
<title>NN44_0</title>
<g id="a_NN44_0"><a xlink:title="15MB">
<polygon fill="#f8f8f8" stroke="black" points="864,-36 814,-36 810,-32 810,0 860,0 864,-4 864,-36"/>
<polyline fill="none" stroke="black" points="860,-32 810,-32"/>
<polyline fill="none" stroke="black" points="860,-32 860,0"/>
<polyline fill="none" stroke="black" points="860,-32 864,-36"/>
<text text-anchor="middle" x="837" y="-16.1" font-family="Times New Roman,serif" font-size="8.00">64B</text>
</a>
</g>
</g>
<!-- N44&#45;&gt;NN44_0 -->
<g id="edge23" class="edge">
<title>N44&#45;&gt;NN44_0</title>
<g id="a_edge23"><a xlink:title="15MB">
<path fill="none" stroke="black" d="M837,-112.08C837,-91.71 837,-66.67 837,-47.7"/>
<polygon fill="black" stroke="black" points="840.5,-47.73 837,-37.73 833.5,-47.73 840.5,-47.73"/>
</a>
</g>
<g id="a_edge23&#45;label"><a xlink:title="15MB">
<text text-anchor="middle" x="856.5" y="-57.8" font-family="Times New Roman,serif" font-size="14.00"> 15MB</text>
</a>
</g>
</g>
<!-- N45 -->
<g id="node45" class="node">
<title>N45</title>
<g id="a_node45"><a xlink:title="compress/flate.NewWriter (17.16MB)">
<polygon fill="#edecec" stroke="#b2b0aa" points="2186.5,-1472.5 2071.5,-1472.5 2071.5,-1412.5 2186.5,-1412.5 2186.5,-1472.5"/>
<text text-anchor="middle" x="2129" y="-1458.9" font-family="Times New Roman,serif" font-size="12.00">flate</text>
<text text-anchor="middle" x="2129" y="-1445.9" font-family="Times New Roman,serif" font-size="12.00">NewWriter</text>
<text text-anchor="middle" x="2129" y="-1432.9" font-family="Times New Roman,serif" font-size="12.00">10.58MB (0.58%)</text>
<text text-anchor="middle" x="2129" y="-1419.9" font-family="Times New Roman,serif" font-size="12.00">of 17.16MB (0.93%)</text>
</a>
</g>
</g>
<!-- NN45_0 -->
<g id="NN45_0" class="node">
<title>NN45_0</title>
<g id="a_NN45_0"><a xlink:title="10.58MB">
<polygon fill="#f8f8f8" stroke="black" points="2156,-1276.5 2106,-1276.5 2102,-1272.5 2102,-1240.5 2152,-1240.5 2156,-1244.5 2156,-1276.5"/>
<polyline fill="none" stroke="black" points="2152,-1272.5 2102,-1272.5"/>
<polyline fill="none" stroke="black" points="2152,-1272.5 2152,-1240.5"/>
<polyline fill="none" stroke="black" points="2152,-1272.5 2156,-1276.5"/>
<text text-anchor="middle" x="2129" y="-1256.6" font-family="Times New Roman,serif" font-size="8.00">648kB</text>
</a>
</g>
</g>
<!-- N45&#45;&gt;NN45_0 -->
<g id="edge24" class="edge">
<title>N45&#45;&gt;NN45_0</title>
<g id="a_edge24"><a xlink:title="10.58MB">
<path fill="none" stroke="black" d="M2129,-1412.26C2129,-1378.07 2129,-1321.87 2129,-1288"/>
<polygon fill="black" stroke="black" points="2132.5,-1288.13 2129,-1278.13 2125.5,-1288.13 2132.5,-1288.13"/>
</a>
</g>
<g id="a_edge24&#45;label"><a xlink:title="10.58MB">
<text text-anchor="middle" x="2157" y="-1349.3" font-family="Times New Roman,serif" font-size="14.00"> 10.58MB</text>
</a>
</g>
</g>
<!-- N46&#45;&gt;N20 -->
<g id="edge59" class="edge">
<title>N46&#45;&gt;N20</title>
<g id="a_edge59"><a xlink:title="github.com/Dreamacro/clash/component/geodata.Verify &#45;&gt; github.com/Dreamacro/clash/component/geodata.LoadGeoSiteMatcher (48.29MB)">
<path fill="none" stroke="#b2aa9b" d="M1809,-1683.41C1809,-1665.74 1809,-1637.82 1809,-1616.74"/>
<polygon fill="#b2aa9b" stroke="#b2aa9b" points="1812.5,-1616.76 1809,-1606.76 1805.5,-1616.76 1812.5,-1616.76"/>
</a>
</g>
<g id="a_edge59&#45;label"><a xlink:title="github.com/Dreamacro/clash/component/geodata.Verify &#45;&gt; github.com/Dreamacro/clash/component/geodata.LoadGeoSiteMatcher (48.29MB)">
<text text-anchor="middle" x="1837" y="-1630.8" font-family="Times New Roman,serif" font-size="14.00"> 48.29MB</text>
</a>
</g>
</g>
<!-- N47&#45;&gt;N32 -->
<g id="edge65" class="edge">
<title>N47&#45;&gt;N32</title>
<g id="a_edge65"><a xlink:title="github.com/go&#45;chi/chi/v5.(*Mux).routeHTTP ... net/http.HandlerFunc.ServeHTTP (26.60MB)">
<path fill="none" stroke="#b2aea5" stroke-dasharray="1,5" d="M2140.5,-1933.47C2153.85,-1958.39 2175.97,-1999.7 2191.23,-2028.19"/>
<polygon fill="#b2aea5" stroke="#b2aea5" points="2187.99,-2029.56 2195.8,-2036.72 2194.16,-2026.25 2187.99,-2029.56"/>
</a>
</g>
<g id="a_edge65&#45;label"><a xlink:title="github.com/go&#45;chi/chi/v5.(*Mux).routeHTTP ... net/http.HandlerFunc.ServeHTTP (26.60MB)">
<text text-anchor="middle" x="2184" y="-1954.8" font-family="Times New Roman,serif" font-size="14.00"> 26.60MB</text>
</a>
</g>
</g>
<!-- N53 -->
<g id="node53" class="node">
<title>N53</title>
<g id="a_node53"><a xlink:title="runtime/pprof.(*Profile).WriteTo (22.36MB)">
<polygon fill="#edeceb" stroke="#b2afa7" points="2177.5,-1838 2080.5,-1838 2080.5,-1794 2177.5,-1794 2177.5,-1838"/>
<text text-anchor="middle" x="2129" y="-1827.6" font-family="Times New Roman,serif" font-size="8.00">pprof</text>
<text text-anchor="middle" x="2129" y="-1818.6" font-family="Times New Roman,serif" font-size="8.00">(*Profile)</text>
<text text-anchor="middle" x="2129" y="-1809.6" font-family="Times New Roman,serif" font-size="8.00">WriteTo</text>
<text text-anchor="middle" x="2129" y="-1800.6" font-family="Times New Roman,serif" font-size="8.00">0 of 22.36MB (1.22%)</text>
</a>
</g>
</g>
<!-- N47&#45;&gt;N53 -->
<g id="edge72" class="edge">
<title>N47&#45;&gt;N53</title>
<g id="a_edge72"><a xlink:title="github.com/go&#45;chi/chi/v5.(*Mux).routeHTTP ... runtime/pprof.(*Profile).WriteTo (22.36MB)">
<path fill="none" stroke="#b2afa7" stroke-dasharray="1,5" d="M2129,-1888.9C2129,-1877.33 2129,-1862.73 2129,-1849.72"/>
<polygon fill="#b2afa7" stroke="#b2afa7" points="2132.5,-1849.86 2129,-1839.86 2125.5,-1849.86 2132.5,-1849.86"/>
</a>
</g>
<g id="a_edge72&#45;label"><a xlink:title="github.com/go&#45;chi/chi/v5.(*Mux).routeHTTP ... runtime/pprof.(*Profile).WriteTo (22.36MB)">
<text text-anchor="middle" x="2157" y="-1859.8" font-family="Times New Roman,serif" font-size="14.00"> 22.36MB</text>
</a>
</g>
</g>
<!-- N48&#45;&gt;N32 -->
<g id="edge66" class="edge">
<title>N48&#45;&gt;N32</title>
<g id="a_edge66"><a xlink:title="github.com/go&#45;chi/chi/v5.(*Mux).ServeHTTP &#45;&gt; net/http.HandlerFunc.ServeHTTP (26.10MB)">
<path fill="none" stroke="#b2aea5" d="M2319.62,-1933.26C2315.96,-1943.64 2310.73,-1956.01 2304,-1966 2287.54,-1990.43 2263.88,-2013.57 2244.17,-2030.71"/>
<polygon fill="#b2aea5" stroke="#b2aea5" points="2241.93,-2028.02 2236.58,-2037.17 2246.47,-2033.35 2241.93,-2028.02"/>
</a>
</g>
<g id="a_edge66&#45;label"><a xlink:title="github.com/go&#45;chi/chi/v5.(*Mux).ServeHTTP &#45;&gt; net/http.HandlerFunc.ServeHTTP (26.10MB)">
<text text-anchor="middle" x="2339" y="-1954.8" font-family="Times New Roman,serif" font-size="14.00"> 26.10MB</text>
</a>
</g>
</g>
<!-- N51 -->
<g id="node51" class="node">
<title>N51</title>
<g id="a_node51"><a xlink:title="github.com/metacubex/quic&#45;go/internal/utils/tree.insert[...] (11MB)">
<polygon fill="#edecec" stroke="#b2b1ad" points="1357,-989.5 1275,-989.5 1275,-942.5 1357,-942.5 1357,-989.5"/>
<text text-anchor="middle" x="1316" y="-975.9" font-family="Times New Roman,serif" font-size="12.00">tree</text>
<text text-anchor="middle" x="1316" y="-962.9" font-family="Times New Roman,serif" font-size="12.00">insert[…]</text>
<text text-anchor="middle" x="1316" y="-949.9" font-family="Times New Roman,serif" font-size="12.00">11MB (0.6%)</text>
</a>
</g>
</g>
<!-- N49&#45;&gt;N51 -->
<g id="edge81" class="edge">
<title>N49&#45;&gt;N51</title>
<g id="a_edge81"><a xlink:title="github.com/metacubex/quic&#45;go.(*frameSorter).push ... github.com/metacubex/quic&#45;go/internal/utils/tree.insert[...] (11MB)">
<path fill="none" stroke="#b2b1ad" stroke-dasharray="1,5" d="M1337.51,-1077.6C1333.03,-1054.57 1327.1,-1024.06 1322.6,-1000.92"/>
<polygon fill="#b2b1ad" stroke="#b2b1ad" points="1326.09,-1000.53 1320.74,-991.38 1319.21,-1001.87 1326.09,-1000.53"/>
</a>
</g>
<g id="a_edge81&#45;label"><a xlink:title="github.com/metacubex/quic&#45;go.(*frameSorter).push ... github.com/metacubex/quic&#45;go/internal/utils/tree.insert[...] (11MB)">
<text text-anchor="middle" x="1352.5" y="-1041.3" font-family="Times New Roman,serif" font-size="14.00"> 11MB</text>
</a>
</g>
</g>
<!-- N50 -->
<g id="node50" class="node">
<title>N50</title>
<g id="a_node50"><a xlink:title="net/http.(*conn).serve (24.10MB)">
<polygon fill="#edeceb" stroke="#b2afa6" points="2453.5,-2082.5 2356.5,-2082.5 2356.5,-2038.5 2453.5,-2038.5 2453.5,-2082.5"/>
<text text-anchor="middle" x="2405" y="-2072.1" font-family="Times New Roman,serif" font-size="8.00">http</text>
<text text-anchor="middle" x="2405" y="-2063.1" font-family="Times New Roman,serif" font-size="8.00">(*conn)</text>
<text text-anchor="middle" x="2405" y="-2054.1" font-family="Times New Roman,serif" font-size="8.00">serve</text>
<text text-anchor="middle" x="2405" y="-2045.1" font-family="Times New Roman,serif" font-size="8.00">0 of 24.10MB (1.31%)</text>
</a>
</g>
</g>
<!-- N50&#45;&gt;N48 -->
<g id="edge70" class="edge">
<title>N50&#45;&gt;N48</title>
<g id="a_edge70"><a xlink:title="net/http.(*conn).serve ... github.com/go&#45;chi/chi/v5.(*Mux).ServeHTTP (24.10MB)">
<path fill="none" stroke="#b2afa6" stroke-dasharray="1,5" d="M2405.28,-2038.14C2404.6,-2014.87 2400.52,-1977.43 2383,-1951 2380.57,-1947.34 2377.67,-1943.93 2374.48,-1940.77"/>
<polygon fill="#b2afa6" stroke="#b2afa6" points="2377.05,-1938.36 2367.21,-1934.43 2372.45,-1943.64 2377.05,-1938.36"/>
</a>
</g>
<g id="a_edge70&#45;label"><a xlink:title="net/http.(*conn).serve ... github.com/go&#45;chi/chi/v5.(*Mux).ServeHTTP (24.10MB)">
<text text-anchor="middle" x="2418" y="-1954.8" font-family="Times New Roman,serif" font-size="14.00"> 24.10MB</text>
</a>
</g>
</g>
<!-- NN51_0 -->
<g id="NN51_0" class="node">
<title>NN51_0</title>
<g id="a_NN51_0"><a xlink:title="11MB">
<polygon fill="#f8f8f8" stroke="black" points="1343,-841 1293,-841 1289,-837 1289,-805 1339,-805 1343,-809 1343,-841"/>
<polyline fill="none" stroke="black" points="1339,-837 1289,-837"/>
<polyline fill="none" stroke="black" points="1339,-837 1339,-805"/>
<polyline fill="none" stroke="black" points="1339,-837 1343,-841"/>
<text text-anchor="middle" x="1316" y="-821.1" font-family="Times New Roman,serif" font-size="8.00">48B</text>
</a>
</g>
</g>
<!-- N51&#45;&gt;NN51_0 -->
<g id="edge25" class="edge">
<title>N51&#45;&gt;NN51_0</title>
<g id="a_edge25"><a xlink:title="11MB">
<path fill="none" stroke="black" d="M1316,-942.03C1316,-917.65 1316,-879.06 1316,-852.69"/>
<polygon fill="black" stroke="black" points="1319.5,-852.7 1316,-842.7 1312.5,-852.7 1319.5,-852.7"/>
</a>
</g>
<g id="a_edge25&#45;label"><a xlink:title="11MB">
<text text-anchor="middle" x="1335.5" y="-890.8" font-family="Times New Roman,serif" font-size="14.00"> 11MB</text>
</a>
</g>
</g>
<!-- N52&#45;&gt;N30 -->
<g id="edge50" class="edge">
<title>N52&#45;&gt;N30</title>
<g id="a_edge50"><a xlink:title="main.main ... github.com/Dreamacro/clash/rules/common.NewGEOSITE (74.20MB)">
<path fill="none" stroke="#b2a48e" stroke-dasharray="1,5" d="M1809,-1892.51C1809,-1879.39 1809,-1861.14 1809,-1845.87"/>
<polygon fill="#b2a48e" stroke="#b2a48e" points="1812.5,-1845.93 1809,-1835.93 1805.5,-1845.93 1812.5,-1845.93"/>
</a>
</g>
<g id="a_edge50&#45;label"><a xlink:title="main.main ... github.com/Dreamacro/clash/rules/common.NewGEOSITE (74.20MB)">
<text text-anchor="middle" x="1837" y="-1859.8" font-family="Times New Roman,serif" font-size="14.00"> 74.20MB</text>
</a>
</g>
</g>
<!-- N54 -->
<g id="node54" class="node">
<title>N54</title>
<g id="a_node54"><a xlink:title="runtime/pprof.writeHeapInternal (22.36MB)">
<polygon fill="#edeceb" stroke="#b2afa7" points="2177.5,-1719.5 2080.5,-1719.5 2080.5,-1683.5 2177.5,-1683.5 2177.5,-1719.5"/>
<text text-anchor="middle" x="2129" y="-1708.6" font-family="Times New Roman,serif" font-size="8.00">pprof</text>
<text text-anchor="middle" x="2129" y="-1699.6" font-family="Times New Roman,serif" font-size="8.00">writeHeapInternal</text>
<text text-anchor="middle" x="2129" y="-1690.6" font-family="Times New Roman,serif" font-size="8.00">0 of 22.36MB (1.22%)</text>
</a>
</g>
</g>
<!-- N53&#45;&gt;N54 -->
<g id="edge73" class="edge">
<title>N53&#45;&gt;N54</title>
<g id="a_edge73"><a xlink:title="runtime/pprof.(*Profile).WriteTo ... runtime/pprof.writeHeapInternal (22.36MB)">
<path fill="none" stroke="#b2afa7" stroke-dasharray="1,5" d="M2129,-1793.57C2129,-1775.92 2129,-1750.72 2129,-1731.3"/>
<polygon fill="#b2afa7" stroke="#b2afa7" points="2132.5,-1731.31 2129,-1721.31 2125.5,-1731.31 2132.5,-1731.31"/>
</a>
</g>
<g id="a_edge73&#45;label"><a xlink:title="runtime/pprof.(*Profile).WriteTo ... runtime/pprof.writeHeapInternal (22.36MB)">
<text text-anchor="middle" x="2157" y="-1764.8" font-family="Times New Roman,serif" font-size="14.00"> 22.36MB</text>
</a>
</g>
</g>
<!-- N55 -->
<g id="node55" class="node">
<title>N55</title>
<g id="a_node55"><a xlink:title="runtime/pprof.writeHeapProto (22.36MB)">
<polygon fill="#edeceb" stroke="#b2afa7" points="2177.5,-1605 2080.5,-1605 2080.5,-1569 2177.5,-1569 2177.5,-1605"/>
<text text-anchor="middle" x="2129" y="-1594.1" font-family="Times New Roman,serif" font-size="8.00">pprof</text>
<text text-anchor="middle" x="2129" y="-1585.1" font-family="Times New Roman,serif" font-size="8.00">writeHeapProto</text>
<text text-anchor="middle" x="2129" y="-1576.1" font-family="Times New Roman,serif" font-size="8.00">0 of 22.36MB (1.22%)</text>
</a>
</g>
</g>
<!-- N54&#45;&gt;N55 -->
<g id="edge74" class="edge">
<title>N54&#45;&gt;N55</title>
<g id="a_edge74"><a xlink:title="runtime/pprof.writeHeapInternal &#45;&gt; runtime/pprof.writeHeapProto (22.36MB)">
<path fill="none" stroke="#b2afa7" d="M2129,-1683.41C2129,-1665.74 2129,-1637.82 2129,-1616.74"/>
<polygon fill="#b2afa7" stroke="#b2afa7" points="2132.5,-1616.76 2129,-1606.76 2125.5,-1616.76 2132.5,-1616.76"/>
</a>
</g>
<g id="a_edge74&#45;label"><a xlink:title="runtime/pprof.writeHeapInternal &#45;&gt; runtime/pprof.writeHeapProto (22.36MB)">
<text text-anchor="middle" x="2157" y="-1630.8" font-family="Times New Roman,serif" font-size="14.00"> 22.36MB</text>
</a>
</g>
</g>
<!-- N55&#45;&gt;N45 -->
<g id="edge78" class="edge">
<title>N55&#45;&gt;N45</title>
<g id="a_edge78"><a xlink:title="runtime/pprof.writeHeapProto ... compress/flate.NewWriter (16.28MB)">
<path fill="none" stroke="#b2b0aa" stroke-dasharray="1,5" d="M2129,-1568.53C2129,-1547.65 2129,-1512.05 2129,-1484.17"/>
<polygon fill="#b2b0aa" stroke="#b2b0aa" points="2132.5,-1484.27 2129,-1474.27 2125.5,-1484.27 2132.5,-1484.27"/>
</a>
</g>
<g id="a_edge78&#45;label"><a xlink:title="runtime/pprof.writeHeapProto ... compress/flate.NewWriter (16.28MB)">
<text text-anchor="middle" x="2157" y="-1528.3" font-family="Times New Roman,serif" font-size="14.00"> 16.28MB</text>
</a>
</g>
</g>
</g>
</g></svg>