PedroCailleret 6fe1e794d0 V2 Release
2023-01-26 21:40:17 -03:00

957 lines
66 KiB
XML
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" standalone="no"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="841pt" height="1998pt" viewBox="0.00 0.00 841.22 1998.00">
<g id="graph0" class="graph" transform="translate(4,1994) scale(1)" data-name="G">
<polygon fill="#2e3e56" stroke="none" points="-4,4 -4,-1994 837.22,-1994 837.22,4 -4,4" style=""/>
<g id="clust1" class="cluster" data-name="clusterP2PIX">
<path fill="#445773" stroke="#445773" d="M20,-286C20,-286 813.22,-286 813.22,-286 819.22,-286 825.22,-292 825.22,-298 825.22,-298 825.22,-1833 825.22,-1833 825.22,-1839 819.22,-1845 813.22,-1845 813.22,-1845 20,-1845 20,-1845 14,-1845 8,-1839 8,-1833 8,-1833 8,-298 8,-298 8,-292 14,-286 20,-286" style=""/>
<text text-anchor="middle" x="416.61" y="-1828.4" font-family="Times,serif" font-size="14.00" fill="#f0f0f0" style="">P2PIX</text>
</g>
<g id="clust2" class="cluster" data-name="clusterSafeTransferLib">
<path fill="#3b4b63" stroke="#e8726d" stroke-dasharray="5,2" d="M456.84,-8C456.84,-8 609.27,-8 609.27,-8 615.27,-8 621.27,-14 621.27,-20 621.27,-20 621.27,-181 621.27,-181 621.27,-187 615.27,-193 609.27,-193 609.27,-193 456.84,-193 456.84,-193 450.84,-193 444.84,-187 444.84,-181 444.84,-181 444.84,-20 444.84,-20 444.84,-14 450.84,-8 456.84,-8" style=""/>
<text text-anchor="middle" x="533.05" y="-176.4" font-family="Times,serif" font-size="14.00" fill="#f0f0f0" style="">SafeTransferLib</text>
</g>
<g id="clust3" class="cluster" data-name="clusterDT">
<path fill="#3b4b63" stroke="#e8726d" stroke-dasharray="5,2" d="M278.1,-171C278.1,-171 331.86,-171 331.86,-171 337.86,-171 343.86,-177 343.86,-183 343.86,-183 343.86,-236 343.86,-236 343.86,-242 337.86,-248 331.86,-248 331.86,-248 278.1,-248 278.1,-248 272.1,-248 266.1,-242 266.1,-236 266.1,-236 266.1,-183 266.1,-183 266.1,-177 272.1,-171 278.1,-171" style=""/>
<text text-anchor="middle" x="304.98" y="-231.4" font-family="Times,serif" font-size="14.00" fill="#f0f0f0" style="">DT</text>
</g>
<g id="clust4" class="cluster" data-name="clusterMerkle">
<path fill="#3b4b63" stroke="#e8726d" stroke-dasharray="5,2" d="M502.96,-201C502.96,-201 563.15,-201 563.15,-201 569.15,-201 575.15,-207 575.15,-213 575.15,-213 575.15,-266 575.15,-266 575.15,-272 569.15,-278 563.15,-278 563.15,-278 502.96,-278 502.96,-278 496.96,-278 490.96,-272 490.96,-266 490.96,-266 490.96,-213 490.96,-213 490.96,-207 496.96,-201 502.96,-201" style=""/>
<text text-anchor="middle" x="533.05" y="-261.4" font-family="Times,serif" font-size="14.00" fill="#f0f0f0" style="">Merkle</text>
</g>
<g id="clust5" class="cluster" data-name="cluster_01">
<polygon fill="#2e3e56" stroke="black" points="20.54,-1853 20.54,-1982 339.98,-1982 339.98,-1853 20.54,-1853" style=""/>
<text text-anchor="middle" x="180.26" y="-1965.4" font-family="Times,serif" font-size="14.00" style="">Legend</text>
</g>
<!-- P2PIX.&lt;Constructor&gt; -->
<g id="node1" class="node" pointer-events="visible" data-name="P2PIX.&lt;Constructor&gt;">
<ellipse fill="#ff9797" stroke="brown" stroke-width="3" cx="93.54" cy="-1713" rx="67.55" ry="18" style=""/>
<text text-anchor="middle" x="93.54" y="-1708.8" font-family="Times,serif" font-size="14.00" style="">&lt;Constructor&gt;</text>
</g>
<!-- P2PIX.setReputation -->
<g id="node10" class="node" pointer-events="visible" data-name="P2PIX.setReputation">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="304.98" cy="-1578" rx="64.28" ry="18" style=""/>
<text text-anchor="middle" x="304.98" y="-1573.8" font-family="Times,serif" font-size="14.00" style="">setReputation</text>
</g>
<!-- P2PIX.&lt;Constructor&gt;&#45;&gt;P2PIX.setReputation -->
<g id="edge2" class="edge" data-name="P2PIX.&lt;Constructor&gt;-&gt;P2PIX.setReputation">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M109.19,-1694.04C128.87,-1669.85 166.15,-1628.34 207.08,-1605 216.35,-1599.71 226.71,-1595.41 237.12,-1591.93" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="237.86,-1595.36 246.4,-1589.09 235.81,-1588.67 237.86,-1595.36" style=""/>
</g>
<!-- P2PIX.setDefaultLockBlocks -->
<g id="node11" class="node" pointer-events="visible" data-name="P2PIX.setDefaultLockBlocks">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="304.98" cy="-1740" rx="97.28" ry="18" style=""/>
<text text-anchor="middle" x="304.98" y="-1735.8" font-family="Times,serif" font-size="14.00" style="">setDefaultLockBlocks</text>
</g>
<!-- P2PIX.&lt;Constructor&gt;&#45;&gt;P2PIX.setDefaultLockBlocks -->
<g id="edge1" class="edge" data-name="P2PIX.&lt;Constructor&gt;-&gt;P2PIX.setDefaultLockBlocks">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M156.25,-1720.95C172.93,-1723.11 191.38,-1725.48 209.42,-1727.81" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="208.77,-1731.25 219.13,-1729.06 209.66,-1724.31 208.77,-1731.25" style=""/>
</g>
<!-- P2PIX.setValidSigners -->
<g id="node12" class="node" pointer-events="visible" data-name="P2PIX.setValidSigners">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="304.98" cy="-1686" rx="72.38" ry="18" style=""/>
<text text-anchor="middle" x="304.98" y="-1681.8" font-family="Times,serif" font-size="14.00" style="">setValidSigners</text>
</g>
<!-- P2PIX.&lt;Constructor&gt;&#45;&gt;P2PIX.setValidSigners -->
<g id="edge3" class="edge" data-name="P2PIX.&lt;Constructor&gt;-&gt;P2PIX.setValidSigners">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M156.25,-1705.05C178.03,-1702.24 202.83,-1699.04 225.8,-1696.08" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="226.24,-1699.55 235.71,-1694.8 225.34,-1692.61 226.24,-1699.55" style=""/>
</g>
<!-- P2PIX.tokenSettings -->
<g id="node13" class="node" pointer-events="visible" data-name="P2PIX.tokenSettings">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="304.98" cy="-1794" rx="63.72" ry="18" style=""/>
<text text-anchor="middle" x="304.98" y="-1789.8" font-family="Times,serif" font-size="14.00" style="">tokenSettings</text>
</g>
<!-- P2PIX.&lt;Constructor&gt;&#45;&gt;P2PIX.tokenSettings -->
<g id="edge4" class="edge" data-name="P2PIX.&lt;Constructor&gt;-&gt;P2PIX.tokenSettings">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M126.39,-1730.14C148.57,-1741.61 179.09,-1756.48 207.08,-1767 218.13,-1771.15 230.09,-1774.99 241.72,-1778.4" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="240.66,-1781.73 251.23,-1781.09 242.57,-1775 240.66,-1781.73" style=""/>
</g>
<!-- P2PIX.deposit -->
<g id="node2" class="node" pointer-events="visible" data-name="P2PIX.deposit">
<ellipse fill="#ff9797" stroke="#ff9797" stroke-width="3" cx="93.54" cy="-1315" rx="38.86" ry="18" style=""/>
<text text-anchor="middle" x="93.54" y="-1310.8" font-family="Times,serif" font-size="14.00" style="">deposit</text>
</g>
<!-- P2PIX.setRoot -->
<g id="node8" class="node" pointer-events="visible" data-name="P2PIX.setRoot">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="304.98" cy="-1632" rx="40.59" ry="18" style=""/>
<text text-anchor="middle" x="304.98" y="-1627.8" font-family="Times,serif" font-size="14.00" style="">setRoot</text>
</g>
<!-- P2PIX.deposit&#45;&gt;P2PIX.setRoot -->
<g id="edge11" class="edge" data-name="P2PIX.deposit-&gt;P2PIX.setRoot">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M96.19,-1334.18C101.68,-1385.96 124.04,-1529.75 207.08,-1605 219.23,-1616.01 235.51,-1622.58 251.24,-1626.48" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="250.19,-1629.83 260.7,-1628.45 251.62,-1622.98 250.19,-1629.83" style=""/>
</g>
<!-- P2PIX._castToUint -->
<g id="node19" class="node" pointer-events="visible" data-name="P2PIX._castToUint">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="304.98" cy="-1524" rx="58.55" ry="18" style=""/>
<text text-anchor="middle" x="304.98" y="-1519.8" font-family="Times,serif" font-size="14.00" style="">_castToUint</text>
</g>
<!-- P2PIX.deposit&#45;&gt;P2PIX._castToUint -->
<g id="edge12" class="edge" data-name="P2PIX.deposit-&gt;P2PIX._castToUint">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M100.9,-1333.95C114.36,-1371.09 149.31,-1453.6 207.08,-1497 216.11,-1503.78 226.76,-1508.86 237.64,-1512.67" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="236.46,-1515.96 247.04,-1515.55 238.51,-1509.27 236.46,-1515.96" style=""/>
</g>
<!-- P2PIX._castAddrToKey -->
<g id="node25" class="node" pointer-events="visible" data-name="P2PIX._castAddrToKey">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="533.05" cy="-980" rx="77.58" ry="18" style=""/>
<text text-anchor="middle" x="533.05" y="-975.8" font-family="Times,serif" font-size="14.00" style="">_castAddrToKey</text>
</g>
<!-- P2PIX.deposit&#45;&gt;P2PIX._castAddrToKey -->
<g id="edge6" class="edge" data-name="P2PIX.deposit-&gt;P2PIX._castAddrToKey">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M104.52,-1296.43C121.42,-1266.95 158.6,-1209.94 207.08,-1182 283.68,-1137.87 338.08,-1207.13 402.88,-1147 449.97,-1103.3 394.14,-1053.11 438.88,-1007 443.38,-1002.36 448.63,-998.5 454.29,-995.3" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="455.36,-998.67 462.89,-991.21 452.36,-992.35 455.36,-998.67" style=""/>
</g>
<!-- P2PIX.ERC20 -->
<g id="node27" class="node" pointer-events="visible" data-name="P2PIX.ERC20">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="533.05" cy="-1142" rx="39.45" ry="18" style=""/>
<text text-anchor="middle" x="533.05" y="-1137.8" font-family="Times,serif" font-size="14.00" style="">ERC20</text>
</g>
<!-- P2PIX.deposit&#45;&gt;P2PIX.ERC20 -->
<g id="edge5" class="edge" data-name="P2PIX.deposit-&gt;P2PIX.ERC20">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M107.41,-1296.82C126.17,-1271.88 163.59,-1227.79 207.08,-1207 286.23,-1169.17 317.6,-1202.58 402.88,-1182 419.41,-1178.01 422.7,-1174.26 438.88,-1169 453.74,-1164.17 470.08,-1159.29 484.86,-1155.04" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="485.8,-1158.41 494.47,-1152.3 483.89,-1151.67 485.8,-1158.41" style=""/>
</g>
<!-- P2PIX.EmptyPixTarget -->
<g id="node28" class="node" pointer-events="visible" data-name="P2PIX.EmptyPixTarget">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="304.98" cy="-1234" rx="74.74" ry="18" style=""/>
<text text-anchor="middle" x="304.98" y="-1229.8" font-family="Times,serif" font-size="14.00" style="">EmptyPixTarget</text>
</g>
<!-- P2PIX.deposit&#45;&gt;P2PIX.EmptyPixTarget -->
<g id="edge7" class="edge" data-name="P2PIX.deposit-&gt;P2PIX.EmptyPixTarget">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M120.8,-1300.78C143.25,-1289.01 176.65,-1272.44 207.08,-1261 216.73,-1257.37 227.08,-1253.99 237.29,-1250.92" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="238.09,-1254.33 246.72,-1248.18 236.14,-1247.61 238.09,-1254.33" style=""/>
</g>
<!-- P2PIX.TokenDenied -->
<g id="node29" class="node" pointer-events="visible" data-name="P2PIX.TokenDenied">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="304.98" cy="-1288" rx="63.69" ry="18" style=""/>
<text text-anchor="middle" x="304.98" y="-1283.8" font-family="Times,serif" font-size="14.00" style="">TokenDenied</text>
</g>
<!-- P2PIX.deposit&#45;&gt;P2PIX.TokenDenied -->
<g id="edge8" class="edge" data-name="P2PIX.deposit-&gt;P2PIX.TokenDenied">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M132.47,-1310.11C160.27,-1306.53 198.86,-1301.55 232.39,-1297.23" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="232.49,-1300.75 241.96,-1296 231.59,-1293.8 232.49,-1300.75" style=""/>
</g>
<!-- P2PIX.MaxBalExceeded -->
<g id="node30" class="node" pointer-events="visible" data-name="P2PIX.MaxBalExceeded">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="533.05" cy="-1352" rx="79.85" ry="18" style=""/>
<text text-anchor="middle" x="533.05" y="-1347.8" font-family="Times,serif" font-size="14.00" style="">MaxBalExceeded</text>
</g>
<!-- P2PIX.deposit&#45;&gt;P2PIX.MaxBalExceeded -->
<g id="edge9" class="edge" data-name="P2PIX.deposit-&gt;P2PIX.MaxBalExceeded">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M118.4,-1330.36C140.42,-1343.56 174.54,-1361.6 207.08,-1369 292.04,-1388.33 392.57,-1378.2 459.08,-1367.09" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="459.68,-1370.54 468.93,-1365.38 458.48,-1363.64 459.68,-1370.54" style=""/>
</g>
<!-- P2PIX.setReentrancyGuard -->
<g id="node31" class="node" pointer-events="visible" data-name="P2PIX.setReentrancyGuard">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="304.98" cy="-1342" rx="89.73" ry="18" style=""/>
<text text-anchor="middle" x="304.98" y="-1337.8" font-family="Times,serif" font-size="14.00" style="">setReentrancyGuard</text>
</g>
<!-- P2PIX.deposit&#45;&gt;P2PIX.setReentrancyGuard -->
<g id="edge10" class="edge" data-name="P2PIX.deposit-&gt;P2PIX.setReentrancyGuard">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M132.47,-1319.89C155.37,-1322.84 185.58,-1326.74 214.26,-1330.43" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="213.49,-1333.86 223.86,-1331.67 214.39,-1326.92 213.49,-1333.86" style=""/>
</g>
<!-- P2PIX.address -->
<g id="node32" class="node" pointer-events="visible" data-name="P2PIX.address">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="533.05" cy="-582" rx="40" ry="18" style=""/>
<text text-anchor="middle" x="533.05" y="-577.8" font-family="Times,serif" font-size="14.00" style="">address</text>
</g>
<!-- P2PIX.deposit&#45;&gt;P2PIX.address -->
<g id="edge14" class="edge" data-name="P2PIX.deposit-&gt;P2PIX.address">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M99.36,-1295.76C112.4,-1243.12 148.93,-1092.15 171.08,-965 181.7,-904.07 165.28,-734.59 207.08,-689 267.3,-623.34 325.02,-689.31 402.88,-646 422.93,-634.85 419.2,-620.81 438.88,-609 451.83,-601.22 467.15,-595.58 481.59,-591.53" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="482.21,-594.99 491.03,-589.12 480.47,-588.21 482.21,-594.99" style=""/>
</g>
<!-- P2PIX.clearReentrancyGuard -->
<g id="node33" class="node" pointer-events="visible" data-name="P2PIX.clearReentrancyGuard">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="304.98" cy="-1416" rx="97.79" ry="18" style=""/>
<text text-anchor="middle" x="304.98" y="-1411.8" font-family="Times,serif" font-size="14.00" style="">clearReentrancyGuard</text>
</g>
<!-- P2PIX.deposit&#45;&gt;P2PIX.clearReentrancyGuard -->
<g id="edge15" class="edge" data-name="P2PIX.deposit-&gt;P2PIX.clearReentrancyGuard">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M116.53,-1330.61C138.62,-1345.76 174.03,-1368.66 207.08,-1384 216.34,-1388.29 226.33,-1392.28 236.26,-1395.87" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="234.84,-1399.08 245.43,-1399.06 237.14,-1392.47 234.84,-1399.08" style=""/>
</g>
<!-- P2PIX.DepositAdded -->
<g id="node34" class="node" pointer-events="visible" data-name="P2PIX.DepositAdded">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="304.98" cy="-1470" rx="66.65" ry="18" style=""/>
<text text-anchor="middle" x="304.98" y="-1465.8" font-family="Times,serif" font-size="14.00" style="">DepositAdded</text>
</g>
<!-- P2PIX.deposit&#45;&gt;P2PIX.DepositAdded -->
<g id="edge16" class="edge" data-name="P2PIX.deposit-&gt;P2PIX.DepositAdded">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M105.59,-1333.26C123.42,-1361.17 161.22,-1414.21 207.08,-1443 215.51,-1448.29 224.98,-1452.56 234.61,-1456.01" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="233.37,-1459.28 243.96,-1459.02 235.51,-1452.62 233.37,-1459.28" style=""/>
</g>
<!-- SafeTransferLib.safeTransferFrom -->
<g id="node58" class="node" pointer-events="visible" data-name="SafeTransferLib.safeTransferFrom">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="533.05" cy="-34" rx="80.43" ry="18" style=""/>
<text text-anchor="middle" x="533.05" y="-29.8" font-family="Times,serif" font-size="14.00" style="">safeTransferFrom</text>
</g>
<!-- P2PIX.deposit&#45;&gt;SafeTransferLib.safeTransferFrom -->
<g id="edge13" class="edge" data-name="P2PIX.deposit-&gt;SafeTransferLib.safeTransferFrom">
<path fill="none" stroke="white" stroke-width="2" d="M99.88,-1295.85C114.26,-1243.41 153.83,-1092.91 171.08,-965 181.2,-890.02 156.72,-341.46 207.08,-285 265.82,-219.14 339.88,-313.79 402.88,-252 464.55,-191.51 380.79,-124.94 438.88,-61 442.81,-56.68 447.38,-53.03 452.35,-49.95" style=""/>
<polygon fill="white" stroke="white" stroke-width="2" points="453.79,-53.15 461.09,-45.47 450.59,-46.92 453.79,-53.15" style=""/>
</g>
<!-- P2PIX.setValidState -->
<g id="node3" class="node" pointer-events="visible" data-name="P2PIX.setValidState">
<ellipse fill="#ff9797" stroke="#ff9797" stroke-width="3" cx="304.98" cy="-420" rx="62.56" ry="18" style=""/>
<text text-anchor="middle" x="304.98" y="-415.8" font-family="Times,serif" font-size="14.00" style="">setValidState</text>
</g>
<!-- P2PIX.setValidState&#45;&gt;P2PIX._castAddrToKey -->
<g id="edge17" class="edge" data-name="P2PIX.setValidState-&gt;P2PIX._castAddrToKey">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M366.61,-425.02C380.46,-429.07 393.76,-435.84 402.88,-447 474.2,-534.3 368,-865.34 438.88,-953 442.61,-957.62 447.08,-961.48 452.02,-964.7" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="450.32,-967.76 460.8,-969.36 453.6,-961.57 450.32,-967.76" style=""/>
</g>
<!-- P2PIX.setValidState&#45;&gt;P2PIX.address -->
<g id="edge19" class="edge" data-name="P2PIX.setValidState-&gt;P2PIX.address">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M364.79,-426.71C378.66,-430.74 392.44,-437.07 402.88,-447 439.54,-481.87 402.4,-519.94 438.88,-555 450.07,-565.76 465.29,-572.27 480.17,-576.2" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="479.03,-579.53 489.55,-578.27 480.54,-572.7 479.03,-579.53" style=""/>
</g>
<!-- P2PIX.ValidSet -->
<g id="node35" class="node" pointer-events="visible" data-name="P2PIX.ValidSet">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="533.05" cy="-528" rx="44.66" ry="18" style=""/>
<text text-anchor="middle" x="533.05" y="-523.8" font-family="Times,serif" font-size="14.00" style="">ValidSet</text>
</g>
<!-- P2PIX.setValidState&#45;&gt;P2PIX.ValidSet -->
<g id="edge18" class="edge" data-name="P2PIX.setValidState-&gt;P2PIX.ValidSet">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M362.34,-428.53C376.48,-432.52 391,-438.39 402.88,-447 426.23,-463.93 415.61,-483.95 438.88,-501 449.99,-509.15 463.53,-514.85 476.79,-518.83" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="475.86,-522.2 486.42,-521.37 477.64,-515.43 475.86,-522.2" style=""/>
</g>
<!-- P2PIX.NotInitialized -->
<g id="node36" class="node" pointer-events="visible" data-name="P2PIX.NotInitialized">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="533.05" cy="-474" rx="64.84" ry="18" style=""/>
<text text-anchor="middle" x="533.05" y="-469.8" font-family="Times,serif" font-size="14.00" style="">NotInitialized</text>
</g>
<!-- P2PIX.setValidState&#45;&gt;P2PIX.NotInitialized -->
<g id="edge20" class="edge" data-name="P2PIX.setValidState-&gt;P2PIX.NotInitialized">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M355.59,-431.85C388.96,-439.82 433.23,-450.4 469.08,-458.96" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="467.9,-462.27 478.44,-461.19 469.53,-455.47 467.9,-462.27" style=""/>
</g>
<!-- P2PIX.lock -->
<g id="node4" class="node" pointer-events="visible" data-name="P2PIX.lock">
<ellipse fill="#ff9797" stroke="#ff9797" stroke-width="3" cx="93.54" cy="-938" rx="27.83" ry="18" style=""/>
<text text-anchor="middle" x="93.54" y="-933.8" font-family="Times,serif" font-size="14.00" style="">lock</text>
</g>
<!-- P2PIX.unlockExpired -->
<g id="node6" class="node" pointer-events="visible" data-name="P2PIX.unlockExpired">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="304.98" cy="-790" rx="67.78" ry="18" style=""/>
<text text-anchor="middle" x="304.98" y="-785.8" font-family="Times,serif" font-size="14.00" style="">unlockExpired</text>
</g>
<!-- P2PIX.lock&#45;&gt;P2PIX.unlockExpired -->
<g id="edge21" class="edge" data-name="P2PIX.lock-&gt;P2PIX.unlockExpired">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M106.78,-920.91C125.61,-895.79 164.05,-848.97 207.08,-822 216.95,-815.82 228.14,-810.7 239.32,-806.51" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="240.22,-809.9 248.52,-803.31 237.93,-803.29 240.22,-809.9" style=""/>
</g>
<!-- P2PIX._addLock -->
<g id="node16" class="node" pointer-events="visible" data-name="P2PIX._addLock">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="304.98" cy="-1120" rx="49.8" ry="18" style=""/>
<text text-anchor="middle" x="304.98" y="-1115.8" font-family="Times,serif" font-size="14.00" style="">_addLock</text>
</g>
<!-- P2PIX.lock&#45;&gt;P2PIX._addLock -->
<g id="edge32" class="edge" data-name="P2PIX.lock-&gt;P2PIX._addLock">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M108.23,-954.81C126.06,-984.63 160.52,-1042.65 207.08,-1075 224.64,-1087.2 247.58,-1093.91 266.72,-1099.56" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="265.48,-1102.84 276.07,-1102.38 267.51,-1096.14 265.48,-1102.84" style=""/>
</g>
<!-- P2PIX.lock&#45;&gt;P2PIX._addLock -->
<g id="edge33" class="edge" data-name="P2PIX.lock-&gt;P2PIX._addLock">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M102.78,-956.41C118.34,-989.03 155.19,-1056.95 207.08,-1093 218.17,-1100.7 231.39,-1106.22 244.45,-1110.16" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="243.36,-1113.49 253.93,-1112.7 245.17,-1106.73 243.36,-1113.49" style=""/>
</g>
<!-- P2PIX.lock&#45;&gt;P2PIX._addLock -->
<g id="edge37" class="edge" data-name="P2PIX.lock-&gt;P2PIX._addLock">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M99.12,-957.03C111.86,-994.62 150.55,-1071.72 207.08,-1111 219.84,-1119.86 235.43,-1125.83 250.34,-1129.08" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="249.76,-1132.53 260.2,-1130.74 250.92,-1125.63 249.76,-1132.53" style=""/>
</g>
<!-- P2PIX.merkleVerify -->
<g id="node17" class="node" pointer-events="visible" data-name="P2PIX.merkleVerify">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="304.98" cy="-602" rx="63.1" ry="18" style=""/>
<text text-anchor="middle" x="304.98" y="-597.8" font-family="Times,serif" font-size="14.00" style="">merkleVerify</text>
</g>
<!-- P2PIX.lock&#45;&gt;P2PIX.merkleVerify -->
<g id="edge31" class="edge" data-name="P2PIX.lock-&gt;P2PIX.merkleVerify">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M96.01,-918.9C101.1,-865.89 122.65,-715.48 207.08,-634 215.28,-626.09 225.47,-620.13 236.14,-615.65" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="237.28,-618.96 245.46,-612.23 234.87,-612.39 237.28,-618.96" style=""/>
</g>
<!-- P2PIX._limiter -->
<g id="node18" class="node" pointer-events="visible" data-name="P2PIX._limiter">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="304.98" cy="-1066" rx="41.72" ry="18" style=""/>
<text text-anchor="middle" x="304.98" y="-1061.8" font-family="Times,serif" font-size="14.00" style="">_limiter</text>
</g>
<!-- P2PIX.lock&#45;&gt;P2PIX._limiter -->
<g id="edge35" class="edge" data-name="P2PIX.lock-&gt;P2PIX._limiter">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M109.45,-954.13C129.71,-975.19 167.92,-1011.96 207.08,-1034 221.7,-1042.23 238.76,-1048.75 254.46,-1053.7" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="253.2,-1056.97 263.78,-1056.47 255.19,-1050.26 253.2,-1056.97" style=""/>
</g>
<!-- P2PIX.getBalance -->
<g id="node21" class="node" pointer-events="visible" data-name="P2PIX.getBalance">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="533.05" cy="-690" rx="53.86" ry="18" style=""/>
<text text-anchor="middle" x="533.05" y="-685.8" font-family="Times,serif" font-size="14.00" style="">getBalance</text>
</g>
<!-- P2PIX.lock&#45;&gt;P2PIX.getBalance -->
<g id="edge25" class="edge" data-name="P2PIX.lock-&gt;P2PIX.getBalance">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M96.39,-918.93C102.25,-870.31 125.17,-741.87 207.08,-689 289.97,-635.5 411.25,-655.56 479.8,-673.64" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="478.47,-676.91 489.04,-676.18 480.32,-670.16 478.47,-676.91" style=""/>
</g>
<!-- P2PIX.getValid -->
<g id="node22" class="node" pointer-events="visible" data-name="P2PIX.getValid">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="304.98" cy="-548" rx="44.08" ry="18" style=""/>
<text text-anchor="middle" x="304.98" y="-543.8" font-family="Times,serif" font-size="14.00" style="">getValid</text>
</g>
<!-- P2PIX.lock&#45;&gt;P2PIX.getValid -->
<g id="edge23" class="edge" data-name="P2PIX.lock-&gt;P2PIX.getValid">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M94.47,-918.58C95.36,-858.32 106.52,-672.7 207.08,-575 218.14,-564.26 233.09,-557.71 247.94,-553.75" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="248.35,-557.24 257.35,-551.65 246.83,-550.41 248.35,-557.24" style=""/>
</g>
<!-- P2PIX.lock&#45;&gt;P2PIX._castAddrToKey -->
<g id="edge27" class="edge" data-name="P2PIX.lock-&gt;P2PIX._castAddrToKey">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M114.29,-951.51C135.19,-969.13 170.2,-998.11 207.08,-1010 289.9,-1036.71 316.98,-1023.94 402.88,-1010 419.52,-1007.3 422.77,-1003.01 438.88,-998 443.58,-996.53 448.43,-995.05 453.32,-993.59" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="454.02,-997.03 462.63,-990.86 452.05,-990.31 454.02,-997.03" style=""/>
</g>
<!-- P2PIX.lock&#45;&gt;P2PIX._castAddrToKey -->
<g id="edge34" class="edge" data-name="P2PIX.lock-&gt;P2PIX._castAddrToKey">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M105.62,-955.32C124.37,-977.73 164.47,-1014.26 207.08,-1028 289.9,-1054.71 316.98,-1041.94 402.88,-1028 419.52,-1025.3 422.77,-1021.01 438.88,-1016 454.2,-1011.23 471.03,-1006.27 486.12,-1001.45" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="487.03,-1004.84 495.44,-998.4 484.85,-998.19 487.03,-1004.84" style=""/>
</g>
<!-- P2PIX.lock&#45;&gt;P2PIX.ERC20 -->
<g id="edge22" class="edge" data-name="P2PIX.lock-&gt;P2PIX.ERC20">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M109.86,-922.01C129.99,-902.28 167.45,-869.78 207.08,-857 289.9,-830.29 337.23,-799.88 402.88,-857 490.22,-933 363.09,-1027.48 438.88,-1115 449.21,-1126.94 464.47,-1133.75 479.67,-1137.59" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="478.84,-1141 489.34,-1139.57 480.24,-1134.14 478.84,-1141" style=""/>
</g>
<!-- P2PIX.lock&#45;&gt;P2PIX.address -->
<g id="edge30" class="edge" data-name="P2PIX.lock-&gt;P2PIX.address">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M95.74,-918.93C100.11,-866.86 119.95,-721.66 207.08,-654 276.37,-600.2 319.52,-656.35 402.88,-629 420.27,-623.29 421.98,-616.04 438.88,-609 453.07,-603.09 468.98,-597.96 483.59,-593.81" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="484.37,-597.23 493.09,-591.22 482.52,-590.47 484.37,-597.23" style=""/>
</g>
<!-- P2PIX.InvalidDeposit -->
<g id="node37" class="node" pointer-events="visible" data-name="P2PIX.InvalidDeposit">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="304.98" cy="-884" rx="68.36" ry="18" style=""/>
<text text-anchor="middle" x="304.98" y="-879.8" font-family="Times,serif" font-size="14.00" style="">InvalidDeposit</text>
</g>
<!-- P2PIX.lock&#45;&gt;P2PIX.InvalidDeposit -->
<g id="edge24" class="edge" data-name="P2PIX.lock-&gt;P2PIX.InvalidDeposit">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M120.64,-931.27C150.59,-923.55 200.75,-910.62 241.04,-900.23" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="241.73,-903.67 250.53,-897.78 239.98,-896.89 241.73,-903.67" style=""/>
</g>
<!-- P2PIX.NotEnoughTokens -->
<g id="node38" class="node" pointer-events="visible" data-name="P2PIX.NotEnoughTokens">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="304.98" cy="-938" rx="83.98" ry="18" style=""/>
<text text-anchor="middle" x="304.98" y="-933.8" font-family="Times,serif" font-size="14.00" style="">NotEnoughTokens</text>
</g>
<!-- P2PIX.lock&#45;&gt;P2PIX.NotEnoughTokens -->
<g id="edge26" class="edge" data-name="P2PIX.lock-&gt;P2PIX.NotEnoughTokens">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M122.79,-938C144.67,-938 176.35,-938 207.12,-938" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="206.73,-941.5 216.73,-938 206.73,-934.5 206.73,-941.5" style=""/>
</g>
<!-- P2PIX.NotExpired -->
<g id="node39" class="node" pointer-events="visible" data-name="P2PIX.NotExpired">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="740.22" cy="-1187" rx="56.18" ry="18" style=""/>
<text text-anchor="middle" x="740.22" y="-1182.8" font-family="Times,serif" font-size="14.00" style="">NotExpired</text>
</g>
<!-- P2PIX.lock&#45;&gt;P2PIX.NotExpired -->
<g id="edge28" class="edge" data-name="P2PIX.lock-&gt;P2PIX.NotExpired">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M99.45,-957.04C111.01,-998.03 143.84,-1095.11 207.08,-1147 277.44,-1204.73 333.06,-1148.61 402.88,-1207 429.71,-1229.45 409.01,-1258.78 438.88,-1277 510.34,-1320.61 548.27,-1304.8 627.23,-1277 662.12,-1264.72 694.17,-1236.47 714.96,-1214.87" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="717.37,-1217.41 721.63,-1207.71 712.25,-1212.64 717.37,-1217.41" style=""/>
</g>
<!-- P2PIX.AmountNotAllowed -->
<g id="node40" class="node" pointer-events="visible" data-name="P2PIX.AmountNotAllowed">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="304.98" cy="-992" rx="90.37" ry="18" style=""/>
<text text-anchor="middle" x="304.98" y="-987.8" font-family="Times,serif" font-size="14.00" style="">AmountNotAllowed</text>
</g>
<!-- P2PIX.lock&#45;&gt;P2PIX.AmountNotAllowed -->
<g id="edge36" class="edge" data-name="P2PIX.lock-&gt;P2PIX.AmountNotAllowed">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M120.64,-944.73C148.78,-951.99 194.77,-963.84 233.64,-973.87" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="232.76,-977.25 243.32,-976.36 234.51,-970.47 232.76,-977.25" style=""/>
</g>
<!-- DT.Lock -->
<g id="node61" class="node" pointer-events="visible" data-name="DT.Lock">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="304.98" cy="-197" rx="30.76" ry="18" style=""/>
<text text-anchor="middle" x="304.98" y="-192.8" font-family="Times,serif" font-size="14.00" style="">Lock</text>
</g>
<!-- P2PIX.lock&#45;&gt;DT.Lock -->
<g id="edge29" class="edge" data-name="P2PIX.lock-&gt;DT.Lock">
<path fill="none" stroke="white" stroke-width="2" d="M98.9,-919.02C111.55,-863.46 148.76,-696.27 171.08,-556 181.77,-488.82 169.45,-308.67 207.08,-252 220.44,-231.89 243.8,-218.31 264.24,-209.68" style=""/>
<polygon fill="white" stroke="white" stroke-width="2" points="265.28,-213.03 273.33,-206.15 262.74,-206.51 265.28,-213.03" style=""/>
</g>
<!-- P2PIX.release -->
<g id="node5" class="node" pointer-events="visible" data-name="P2PIX.release">
<ellipse fill="#ff9797" stroke="#ff9797" stroke-width="3" cx="304.98" cy="-716" rx="37.68" ry="18" style=""/>
<text text-anchor="middle" x="304.98" y="-711.8" font-family="Times,serif" font-size="14.00" style="">release</text>
</g>
<!-- P2PIX.release&#45;&gt;P2PIX._castAddrToKey -->
<g id="edge41" class="edge" data-name="P2PIX.release-&gt;P2PIX._castAddrToKey">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M321.74,-698.53C343.46,-690.99 382.25,-697.14 402.88,-721 463.37,-790.98 377.1,-857.15 438.88,-926 454.8,-943.75 481.62,-950.13 502.41,-956.85" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="500.98,-960.05 511.57,-960.16 503.35,-953.47 500.98,-960.05" style=""/>
</g>
<!-- P2PIX.release&#45;&gt;P2PIX._castAddrToKey -->
<g id="edge44" class="edge" data-name="P2PIX.release-&gt;P2PIX._castAddrToKey">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M342.83,-711.2C363.44,-713.72 387.93,-721.71 402.88,-739 463.37,-808.98 377.1,-875.15 438.88,-944 446.07,-952.02 455.49,-957.72 465.57,-961.89" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="464.16,-965.11 474.76,-965.14 466.49,-958.51 464.16,-965.11" style=""/>
</g>
<!-- P2PIX.release&#45;&gt;P2PIX._castAddrToKey -->
<g id="edge45" class="edge" data-name="P2PIX.release-&gt;P2PIX._castAddrToKey">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M338.57,-725.93C359.98,-730.65 386.89,-738.5 402.88,-757 463.37,-826.98 377.1,-893.15 438.88,-962 440.96,-964.33 443.24,-966.46 445.66,-968.41" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="443.55,-971.21 453.84,-973.76 447.39,-965.35 443.55,-971.21" style=""/>
</g>
<!-- P2PIX.release&#45;&gt;P2PIX._castAddrToKey -->
<g id="edge46" class="edge" data-name="P2PIX.release-&gt;P2PIX._castAddrToKey">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M320.66,-733.84C342.15,-744.79 381.91,-750.74 402.88,-775 463.37,-844.98 377.1,-911.15 438.88,-980 454.75,-997.69 481.43,-1004.08 502.18,-1001.73" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="502.82,-1005.18 511.83,-999.61 501.31,-998.34 502.82,-1005.18" style=""/>
</g>
<!-- P2PIX.release&#45;&gt;P2PIX.ERC20 -->
<g id="edge43" class="edge" data-name="P2PIX.release-&gt;P2PIX.ERC20">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M340.76,-723.71C362.25,-730.38 388.41,-742.32 402.88,-763 493.04,-891.85 338.13,-994.25 438.88,-1115 449.08,-1127.22 464.45,-1134.1 479.78,-1137.92" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="479.08,-1141.34 489.57,-1139.86 480.44,-1134.48 479.08,-1141.34" style=""/>
</g>
<!-- P2PIX.AlreadyReleased -->
<g id="node41" class="node" pointer-events="visible" data-name="P2PIX.AlreadyReleased">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="740.22" cy="-880" rx="76.99" ry="18" style=""/>
<text text-anchor="middle" x="740.22" y="-875.8" font-family="Times,serif" font-size="14.00" style="">AlreadyReleased</text>
</g>
<!-- P2PIX.release&#45;&gt;P2PIX.AlreadyReleased -->
<g id="edge38" class="edge" data-name="P2PIX.release-&gt;P2PIX.AlreadyReleased">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M343.91,-716.75C423.52,-718.57 602.73,-724.06 627.23,-737 673.8,-761.59 707.27,-814.95 724.91,-849.08" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="721.75,-850.59 729.34,-857.98 728.02,-847.47 721.75,-850.59" style=""/>
</g>
<!-- P2PIX.LockExpired -->
<g id="node42" class="node" pointer-events="visible" data-name="P2PIX.LockExpired">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="533.05" cy="-926" rx="61.4" ry="18" style=""/>
<text text-anchor="middle" x="533.05" y="-921.8" font-family="Times,serif" font-size="14.00" style="">LockExpired</text>
</g>
<!-- P2PIX.release&#45;&gt;P2PIX.LockExpired -->
<g id="edge39" class="edge" data-name="P2PIX.release-&gt;P2PIX.LockExpired">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M343.4,-719.56C363.69,-723.42 387.66,-731.43 402.88,-748 449.55,-798.81 391.28,-849.06 438.88,-899 445.35,-905.79 453.41,-910.9 462.07,-914.75" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="460.72,-917.98 471.32,-918.19 463.16,-911.42 460.72,-917.98" style=""/>
</g>
<!-- P2PIX.TxAlreadyUsed -->
<g id="node43" class="node" pointer-events="visible" data-name="P2PIX.TxAlreadyUsed">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="533.05" cy="-764" rx="72.93" ry="18" style=""/>
<text text-anchor="middle" x="533.05" y="-759.8" font-family="Times,serif" font-size="14.00" style="">TxAlreadyUsed</text>
</g>
<!-- P2PIX.release&#45;&gt;P2PIX.TxAlreadyUsed -->
<g id="edge40" class="edge" data-name="P2PIX.release-&gt;P2PIX.TxAlreadyUsed">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M340.81,-723.39C373.18,-730.27 422.33,-740.7 462.7,-749.27" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="461.72,-752.64 472.23,-751.3 463.17,-745.8 461.72,-752.64" style=""/>
</g>
<!-- P2PIX.InvalidSigner -->
<g id="node44" class="node" pointer-events="visible" data-name="P2PIX.InvalidSigner">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="533.05" cy="-818" rx="63.71" ry="18" style=""/>
<text text-anchor="middle" x="533.05" y="-813.8" font-family="Times,serif" font-size="14.00" style="">InvalidSigner</text>
</g>
<!-- P2PIX.release&#45;&gt;P2PIX.InvalidSigner -->
<g id="edge42" class="edge" data-name="P2PIX.release-&gt;P2PIX.InvalidSigner">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M341.28,-722.68C360.65,-727.51 384.41,-735.46 402.88,-748 423.5,-762 418,-777.38 438.88,-791 446.92,-796.25 456,-800.49 465.26,-803.93" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="464,-807.2 474.59,-807.04 466.21,-800.56 464,-807.2" style=""/>
</g>
<!-- P2PIX.LockReleased -->
<g id="node45" class="node" pointer-events="visible" data-name="P2PIX.LockReleased">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="533.05" cy="-872" rx="65.97" ry="18" style=""/>
<text text-anchor="middle" x="533.05" y="-867.8" font-family="Times,serif" font-size="14.00" style="">LockReleased</text>
</g>
<!-- P2PIX.release&#45;&gt;P2PIX.LockReleased -->
<g id="edge51" class="edge" data-name="P2PIX.release-&gt;P2PIX.LockReleased">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M343.13,-720.39C363.08,-724.51 386.81,-732.51 402.88,-748 435.98,-779.92 405.19,-813.7 438.88,-845 445.18,-850.85 452.67,-855.45 460.63,-859.05" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="459.13,-862.22 469.72,-862.56 461.65,-855.69 459.13,-862.22" style=""/>
</g>
<!-- SafeTransferLib.safeTransfer -->
<g id="node59" class="node" pointer-events="visible" data-name="SafeTransferLib.safeTransfer">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="533.05" cy="-142" rx="59.08" ry="18" style=""/>
<text text-anchor="middle" x="533.05" y="-137.8" font-family="Times,serif" font-size="14.00" style="">safeTransfer</text>
</g>
<!-- P2PIX.release&#45;&gt;SafeTransferLib.safeTransfer -->
<g id="edge47" class="edge" data-name="P2PIX.release-&gt;SafeTransferLib.safeTransfer">
<path fill="none" stroke="white" stroke-width="2" d="M314.68,-697.38C334.45,-673.12 382.66,-642.7 402.88,-602 445.74,-515.73 387.68,-251.6 438.88,-170 444.83,-160.51 453.07,-152.45 462.21,-146.02" style=""/>
<polygon fill="white" stroke="white" stroke-width="2" points="463.99,-149.03 470.68,-140.82 460.33,-143.07 463.99,-149.03" style=""/>
</g>
<!-- P2PIX.release&#45;&gt;SafeTransferLib.safeTransfer -->
<g id="edge48" class="edge" data-name="P2PIX.release-&gt;SafeTransferLib.safeTransfer">
<path fill="none" stroke="white" stroke-width="2" d="M324.44,-699.32C347.34,-682.44 385.47,-655.03 402.88,-620 445.74,-533.73 387.68,-269.6 438.88,-188 446.52,-175.82 457.93,-166 470.16,-158.47" style=""/>
<polygon fill="white" stroke="white" stroke-width="2" points="471.83,-161.55 478.89,-153.65 468.45,-155.42 471.83,-161.55" style=""/>
</g>
<!-- P2PIX.release&#45;&gt;SafeTransferLib.safeTransfer -->
<g id="edge49" class="edge" data-name="P2PIX.release-&gt;SafeTransferLib.safeTransfer">
<path fill="none" stroke="white" stroke-width="2" d="M336.61,-705.04C359.14,-691.37 388.29,-667.36 402.88,-638 445.74,-551.73 387.68,-287.6 438.88,-206 450.78,-187.03 471.81,-173.79 490.89,-164.16" style=""/>
<polygon fill="white" stroke="white" stroke-width="2" points="492.19,-167.42 499.68,-159.93 489.15,-161.11 492.19,-167.42" style=""/>
</g>
<!-- P2PIX.release&#45;&gt;SafeTransferLib.safeTransfer -->
<g id="edge50" class="edge" data-name="P2PIX.release-&gt;SafeTransferLib.safeTransfer">
<path fill="none" stroke="white" stroke-width="2" d="M343.79,-716.11C365.02,-704.34 389.8,-682.32 402.88,-656 445.74,-569.73 387.68,-305.6 438.88,-224 455.03,-198.26 487.98,-183.08 510.05,-168.59" style=""/>
<polygon fill="white" stroke="white" stroke-width="2" points="511.98,-171.51 518,-162.8 507.86,-165.85 511.98,-171.51" style=""/>
</g>
<!-- P2PIX._notExpired -->
<g id="node15" class="node" pointer-events="visible" data-name="P2PIX._notExpired">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="533.05" cy="-1088" rx="58.55" ry="18" style=""/>
<text text-anchor="middle" x="533.05" y="-1083.8" font-family="Times,serif" font-size="14.00" style="">_notExpired</text>
</g>
<!-- P2PIX.unlockExpired&#45;&gt;P2PIX._notExpired -->
<g id="edge52" class="edge" data-name="P2PIX.unlockExpired-&gt;P2PIX._notExpired">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M366.44,-798.86C380.2,-803.62 393.51,-810.9 402.88,-822 472.13,-904.11 368.12,-980.18 438.88,-1061 445.59,-1068.66 454.32,-1074.21 463.76,-1078.22" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="462.53,-1081.5 473.12,-1081.51 464.85,-1074.89 462.53,-1081.5" style=""/>
</g>
<!-- P2PIX.unlockExpired&#45;&gt;P2PIX._castAddrToKey -->
<g id="edge56" class="edge" data-name="P2PIX.unlockExpired-&gt;P2PIX._castAddrToKey">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M365.3,-799.57C379.16,-804.32 392.81,-811.41 402.88,-822 444.47,-865.77 396.48,-910.01 438.88,-953 443.42,-957.6 448.69,-961.43 454.38,-964.62" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="452.46,-967.58 463,-968.69 455.45,-961.25 452.46,-967.58" style=""/>
</g>
<!-- P2PIX.unlockExpired&#45;&gt;P2PIX.ERC20 -->
<g id="edge53" class="edge" data-name="P2PIX.unlockExpired-&gt;P2PIX.ERC20">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M373.64,-792.53C384.82,-797.06 395.24,-803.69 402.88,-813 486.09,-914.44 353.8,-1006.12 438.88,-1106 450.19,-1119.28 467.6,-1126.24 484.33,-1130.4" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="483.4,-1133.79 493.92,-1132.47 484.88,-1126.94 483.4,-1133.79" style=""/>
</g>
<!-- P2PIX.unlockExpired&#45;&gt;P2PIX.ERC20 -->
<g id="edge55" class="edge" data-name="P2PIX.unlockExpired-&gt;P2PIX.ERC20">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M354.53,-803.49C372.31,-808.5 390.97,-816.48 402.88,-831 486.09,-932.44 353.8,-1024.12 438.88,-1124 449.65,-1136.65 465.95,-1143.56 481.92,-1146.76" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="481.16,-1150.18 491.55,-1148.14 482.15,-1143.25 481.16,-1150.18" style=""/>
</g>
<!-- P2PIX.unlockExpired&#45;&gt;P2PIX.MaxBalExceeded -->
<g id="edge54" class="edge" data-name="P2PIX.unlockExpired-&gt;P2PIX.MaxBalExceeded">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M343.6,-806C364.76,-817.08 389.54,-834 402.88,-857 496.89,-1019.06 350.82,-1111.63 438.88,-1277 449.92,-1297.74 469.41,-1314.8 487.71,-1327.38" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="485.75,-1330.28 496.04,-1332.79 489.56,-1324.41 485.75,-1330.28" style=""/>
</g>
<!-- P2PIX.LockReturned -->
<g id="node46" class="node" pointer-events="visible" data-name="P2PIX.LockReturned">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="533.05" cy="-1034" rx="66.05" ry="18" style=""/>
<text text-anchor="middle" x="533.05" y="-1029.8" font-family="Times,serif" font-size="14.00" style="">LockReturned</text>
</g>
<!-- P2PIX.unlockExpired&#45;&gt;P2PIX.LockReturned -->
<g id="edge57" class="edge" data-name="P2PIX.unlockExpired-&gt;P2PIX.LockReturned">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M366.11,-799.14C379.88,-803.9 393.28,-811.1 402.88,-822 458.24,-884.86 382.37,-945.17 438.88,-1007 444.54,-1013.19 451.52,-1018 459.1,-1021.72" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="457.58,-1024.88 468.16,-1025.43 460.23,-1018.4 457.58,-1024.88" style=""/>
</g>
<!-- P2PIX.withdraw -->
<g id="node7" class="node" pointer-events="visible" data-name="P2PIX.withdraw">
<ellipse fill="#ff9797" stroke="#ff9797" stroke-width="3" cx="93.54" cy="-529" rx="47.52" ry="18" style=""/>
<text text-anchor="middle" x="93.54" y="-524.8" font-family="Times,serif" font-size="14.00" style="">withdraw</text>
</g>
<!-- P2PIX.withdraw&#45;&gt;P2PIX.setValidState -->
<g id="edge60" class="edge" data-name="P2PIX.withdraw-&gt;P2PIX.setValidState">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M133,-517.66C145.94,-512.67 159.92,-505.87 171.08,-497 192.52,-479.97 184.63,-462.67 207.08,-447 215.69,-441 225.59,-436.32 235.7,-432.69" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="236.73,-436.04 245.19,-429.67 234.6,-429.37 236.73,-436.04" style=""/>
</g>
<!-- P2PIX.withdraw&#45;&gt;P2PIX.unlockExpired -->
<g id="edge58" class="edge" data-name="P2PIX.withdraw-&gt;P2PIX.unlockExpired">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M98.6,-548.07C108.85,-591.7 139.94,-699.52 207.08,-758 215.2,-765.07 224.91,-770.58 235.02,-774.88" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="233.56,-778.07 244.15,-778.33 236.03,-771.52 233.56,-778.07" style=""/>
</g>
<!-- P2PIX._decBal -->
<g id="node20" class="node" pointer-events="visible" data-name="P2PIX._decBal">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="533.05" cy="-1196" rx="42.85" ry="18" style=""/>
<text text-anchor="middle" x="533.05" y="-1191.8" font-family="Times,serif" font-size="14.00" style="">_decBal</text>
</g>
<!-- P2PIX.withdraw&#45;&gt;P2PIX._decBal -->
<g id="edge62" class="edge" data-name="P2PIX.withdraw-&gt;P2PIX._decBal">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M95.95,-548.37C100.86,-600.6 121.88,-745.25 207.08,-817 275.02,-874.21 342.85,-791.54 402.88,-857 497.21,-959.88 348.76,-1062.4 438.88,-1169 448.46,-1180.34 462.5,-1187.07 476.78,-1191.02" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="475.82,-1194.39 486.34,-1193.17 477.35,-1187.56 475.82,-1194.39" style=""/>
</g>
<!-- P2PIX.withdraw&#45;&gt;P2PIX.getValid -->
<g id="edge59" class="edge" data-name="P2PIX.withdraw-&gt;P2PIX.getValid">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M141.28,-533.24C172.79,-536.1 214.51,-539.88 247.82,-542.91" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="247.31,-546.37 257.58,-543.79 247.94,-539.4 247.31,-546.37" style=""/>
</g>
<!-- P2PIX.withdraw&#45;&gt;P2PIX._castAddrToKey -->
<g id="edge61" class="edge" data-name="P2PIX.withdraw-&gt;P2PIX._castAddrToKey">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M98.28,-548.17C107.81,-591.3 137.35,-695.88 207.08,-743 243.32,-767.49 370.66,-733.42 402.88,-763 466.19,-821.12 381.05,-889.42 438.88,-953 443.05,-957.59 447.95,-961.41 453.28,-964.6" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="451.51,-967.63 462.02,-968.95 454.62,-961.36 451.51,-967.63" style=""/>
</g>
<!-- P2PIX.withdraw&#45;&gt;P2PIX.address -->
<g id="edge65" class="edge" data-name="P2PIX.withdraw-&gt;P2PIX.address">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M140.42,-523.44C214.42,-515.2 356.54,-502.58 402.88,-521 423.33,-529.13 419.77,-544.08 438.88,-555 451.99,-562.5 467.36,-568.06 481.79,-572.12" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="480.66,-575.44 491.22,-574.55 482.41,-568.66 480.66,-575.44" style=""/>
</g>
<!-- P2PIX.DepositWithdrawn -->
<g id="node47" class="node" pointer-events="visible" data-name="P2PIX.DepositWithdrawn">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="304.98" cy="-474" rx="84.54" ry="18" style=""/>
<text text-anchor="middle" x="304.98" y="-469.8" font-family="Times,serif" font-size="14.00" style="">DepositWithdrawn</text>
</g>
<!-- P2PIX.withdraw&#45;&gt;P2PIX.DepositWithdrawn -->
<g id="edge64" class="edge" data-name="P2PIX.withdraw-&gt;P2PIX.DepositWithdrawn">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M134.43,-518.53C163.05,-511.01 202.33,-500.69 235.88,-491.88" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="236.71,-495.28 245.49,-489.36 234.93,-488.51 236.71,-495.28" style=""/>
</g>
<!-- P2PIX.withdraw&#45;&gt;SafeTransferLib.safeTransfer -->
<g id="edge63" class="edge" data-name="P2PIX.withdraw-&gt;SafeTransferLib.safeTransfer">
<path fill="none" stroke="white" stroke-width="2" d="M136.76,-520.25C149.71,-515.5 162.72,-508.19 171.08,-497 215.24,-437.91 154.1,-218.32 207.08,-167 277.54,-98.76 401.57,-111.47 474.33,-126.79" style=""/>
<polygon fill="white" stroke="white" stroke-width="2" points="473.38,-130.17 483.9,-128.91 474.89,-123.33 473.38,-130.17" style=""/>
</g>
<!-- P2PIX.setRoot&#45;&gt;P2PIX._castAddrToKey -->
<g id="edge66" class="edge" data-name="P2PIX.setRoot-&gt;P2PIX._castAddrToKey">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M346.83,-1631.17C366.85,-1628.48 389.49,-1621.57 402.88,-1605 486.54,-1501.45 355.74,-1110.98 438.88,-1007 442.59,-1002.36 447.04,-998.49 451.97,-995.26" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="453.55,-998.38 460.72,-990.59 450.25,-992.21 453.55,-998.38" style=""/>
</g>
<!-- P2PIX.RootUpdated -->
<g id="node48" class="node" pointer-events="visible" data-name="P2PIX.RootUpdated">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="533.05" cy="-1578" rx="62.56" ry="18" style=""/>
<text text-anchor="middle" x="533.05" y="-1573.8" font-family="Times,serif" font-size="14.00" style="">RootUpdated</text>
</g>
<!-- P2PIX.setRoot&#45;&gt;P2PIX.RootUpdated -->
<g id="edge67" class="edge" data-name="P2PIX.setRoot-&gt;P2PIX.RootUpdated">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M342.55,-1623.26C376.91,-1615.06 429,-1602.61 469.88,-1592.85" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="470.59,-1596.28 479.5,-1590.55 468.97,-1589.47 470.59,-1596.28" style=""/>
</g>
<!-- P2PIX.OnlySeller -->
<g id="node49" class="node" pointer-events="visible" data-name="P2PIX.OnlySeller">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="533.05" cy="-1632" rx="52.75" ry="18" style=""/>
<text text-anchor="middle" x="533.05" y="-1627.8" font-family="Times,serif" font-size="14.00" style="">OnlySeller</text>
</g>
<!-- P2PIX.setRoot&#45;&gt;P2PIX.OnlySeller -->
<g id="edge68" class="edge" data-name="P2PIX.setRoot-&gt;P2PIX.OnlySeller">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M346.92,-1632C380.11,-1632 427.55,-1632 466.09,-1632" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="466.02,-1635.5 476.02,-1632 466.02,-1628.5 466.02,-1635.5" style=""/>
</g>
<!-- P2PIX.withdrawBalance -->
<g id="node9" class="node" pointer-events="visible" data-name="P2PIX.withdrawBalance">
<ellipse fill="#ffbdb9" stroke="#ffbdb9" stroke-width="3" cx="304.98" cy="-312" rx="78.71" ry="18" style=""/>
<text text-anchor="middle" x="304.98" y="-307.8" font-family="Times,serif" font-size="14.00" style="">withdrawBalance</text>
</g>
<!-- P2PIX.withdrawBalance&#45;&gt;P2PIX.address -->
<g id="edge69" class="edge" data-name="P2PIX.withdrawBalance-&gt;P2PIX.address">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M375.62,-320.95C385.92,-325.03 395.52,-330.82 402.88,-339 467.93,-411.39 374.2,-482.28 438.88,-555 449.28,-566.7 464.42,-573.46 479.48,-577.33" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="478.54,-580.71 489.04,-579.33 479.97,-573.86 478.54,-580.71" style=""/>
</g>
<!-- P2PIX.FundsWithdrawn -->
<g id="node50" class="node" pointer-events="visible" data-name="P2PIX.FundsWithdrawn">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="533.05" cy="-312" rx="78.19" ry="18" style=""/>
<text text-anchor="middle" x="533.05" y="-307.8" font-family="Times,serif" font-size="14.00" style="">FundsWithdrawn</text>
</g>
<!-- P2PIX.withdrawBalance&#45;&gt;P2PIX.FundsWithdrawn -->
<g id="edge71" class="edge" data-name="P2PIX.withdrawBalance-&gt;P2PIX.FundsWithdrawn">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M385.05,-312C402.96,-312 422.13,-312 440.52,-312" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="440.38,-315.5 450.38,-312 440.38,-308.5 440.38,-315.5" style=""/>
</g>
<!-- SafeTransferLib.safeTransferETH -->
<g id="node60" class="node" pointer-events="visible" data-name="SafeTransferLib.safeTransferETH">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="533.05" cy="-88" rx="78.12" ry="18" style=""/>
<text text-anchor="middle" x="533.05" y="-83.8" font-family="Times,serif" font-size="14.00" style="">safeTransferETH</text>
</g>
<!-- P2PIX.withdrawBalance&#45;&gt;SafeTransferLib.safeTransferETH -->
<g id="edge70" class="edge" data-name="P2PIX.withdrawBalance-&gt;SafeTransferLib.safeTransferETH">
<path fill="none" stroke="white" stroke-width="2" d="M370.46,-301.05C382.62,-296.34 394.22,-289.61 402.88,-280 453.12,-224.23 387.62,-169.83 438.88,-115 443.11,-110.47 448.05,-106.69 453.41,-103.53" style=""/>
<polygon fill="white" stroke="white" stroke-width="2" points="454.76,-106.76 462.19,-99.21 451.68,-100.48 454.76,-106.76" style=""/>
</g>
<!-- P2PIX.setReputation&#45;&gt;P2PIX.address -->
<g id="edge73" class="edge" data-name="P2PIX.setReputation-&gt;P2PIX.address">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M368.12,-1572.81C381.51,-1568.71 394.22,-1561.96 402.88,-1551 467.81,-1468.81 374.37,-691.52 438.88,-609 448.78,-596.33 464.26,-589.36 479.77,-585.59" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="479.99,-589.11 489.15,-583.78 478.66,-582.24 479.99,-589.11" style=""/>
</g>
<!-- P2PIX.ReputationUpdated -->
<g id="node51" class="node" pointer-events="visible" data-name="P2PIX.ReputationUpdated">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="533.05" cy="-1524" rx="86.26" ry="18" style=""/>
<text text-anchor="middle" x="533.05" y="-1519.8" font-family="Times,serif" font-size="14.00" style="">ReputationUpdated</text>
</g>
<!-- P2PIX.setReputation&#45;&gt;P2PIX.ReputationUpdated -->
<g id="edge72" class="edge" data-name="P2PIX.setReputation-&gt;P2PIX.ReputationUpdated">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M356.43,-1565.95C387.01,-1558.64 426.51,-1549.21 460.31,-1541.14" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="461.09,-1544.55 470.01,-1538.82 459.47,-1537.74 461.09,-1544.55" style=""/>
</g>
<!-- P2PIX.LockBlocksUpdated -->
<g id="node52" class="node" pointer-events="visible" data-name="P2PIX.LockBlocksUpdated">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="533.05" cy="-1740" rx="90.34" ry="18" style=""/>
<text text-anchor="middle" x="533.05" y="-1735.8" font-family="Times,serif" font-size="14.00" style="">LockBlocksUpdated</text>
</g>
<!-- P2PIX.setDefaultLockBlocks&#45;&gt;P2PIX.LockBlocksUpdated -->
<g id="edge74" class="edge" data-name="P2PIX.setDefaultLockBlocks-&gt;P2PIX.LockBlocksUpdated">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M403.5,-1740C411.73,-1740 420.08,-1740 428.36,-1740" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="428.26,-1743.5 438.26,-1740 428.26,-1736.5 428.26,-1743.5" style=""/>
</g>
<!-- P2PIX.setValidSigners&#45;&gt;P2PIX._castAddrToKey -->
<g id="edge75" class="edge" data-name="P2PIX.setValidSigners-&gt;P2PIX._castAddrToKey">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M373.47,-1678.86C384.81,-1674.68 395.33,-1668.39 402.88,-1659 493.79,-1545.9 348.54,-1120.56 438.88,-1007 442.57,-1002.35 447.02,-998.47 451.94,-995.24" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="453.52,-998.36 460.69,-990.56 450.22,-992.19 453.52,-998.36" style=""/>
</g>
<!-- P2PIX.ValidSignersUpdated -->
<g id="node53" class="node" pointer-events="visible" data-name="P2PIX.ValidSignersUpdated">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="533.05" cy="-1686" rx="94.35" ry="18" style=""/>
<text text-anchor="middle" x="533.05" y="-1681.8" font-family="Times,serif" font-size="14.00" style="">ValidSignersUpdated</text>
</g>
<!-- P2PIX.setValidSigners&#45;&gt;P2PIX.ValidSignersUpdated -->
<g id="edge76" class="edge" data-name="P2PIX.setValidSigners-&gt;P2PIX.ValidSignersUpdated">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M378.76,-1686C393.38,-1686 409.03,-1686 424.55,-1686" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="424.5,-1689.5 434.5,-1686 424.5,-1682.5 424.5,-1689.5" style=""/>
</g>
<!-- P2PIX.&lt;Receive Ether&gt; -->
<g id="node14" class="node" pointer-events="visible" data-name="P2PIX.&lt;Receive Ether&gt;">
<ellipse fill="#ffbdb9" stroke="brown" stroke-width="3" cx="93.54" cy="-470" rx="76.21" ry="18" style=""/>
<text text-anchor="middle" x="93.54" y="-465.8" font-family="Times,serif" font-size="14.00" style="">&lt;Receive Ether&gt;</text>
</g>
<!-- P2PIX._notExpired&#45;&gt;P2PIX.NotExpired -->
<g id="edge77" class="edge" data-name="P2PIX._notExpired-&gt;P2PIX.NotExpired">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M581.93,-1099.01C596.78,-1103.18 612.97,-1108.52 627.23,-1115 655.18,-1127.71 684.28,-1146.62 705.81,-1161.87" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="703.72,-1164.67 713.88,-1167.68 707.82,-1159 703.72,-1164.67" style=""/>
</g>
<!-- P2PIX._notExpired&#45;&gt;P2PIX.AlreadyReleased -->
<g id="edge78" class="edge" data-name="P2PIX._notExpired-&gt;P2PIX.AlreadyReleased">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M587,-1079.82C601.06,-1075.82 615.56,-1069.86 627.23,-1061 678.62,-1021.99 712.01,-951.99 728.04,-911.43" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="731.27,-912.79 731.56,-902.19 724.73,-910.29 731.27,-912.79" style=""/>
</g>
<!-- P2PIX._addLock&#45;&gt;P2PIX._decBal -->
<g id="edge79" class="edge" data-name="P2PIX._addLock-&gt;P2PIX._decBal">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M345.5,-1131.85C363.23,-1137.47 384.29,-1144.57 402.88,-1152 419.31,-1158.56 422.33,-1162.74 438.88,-1169 452.63,-1174.2 467.83,-1178.99 481.9,-1183.05" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="480.94,-1186.42 491.51,-1185.75 482.83,-1179.68 480.94,-1186.42" style=""/>
</g>
<!-- P2PIX.LockAdded -->
<g id="node54" class="node" pointer-events="visible" data-name="P2PIX.LockAdded">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="533.05" cy="-1250" rx="56.75" ry="18" style=""/>
<text text-anchor="middle" x="533.05" y="-1245.8" font-family="Times,serif" font-size="14.00" style="">LockAdded</text>
</g>
<!-- P2PIX._addLock&#45;&gt;P2PIX.LockAdded -->
<g id="edge80" class="edge" data-name="P2PIX._addLock-&gt;P2PIX.LockAdded">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M352.13,-1127.47C369.58,-1132.16 388.64,-1139.76 402.88,-1152 429.7,-1175.07 411.63,-1200.43 438.88,-1223 447.17,-1229.87 457.14,-1235 467.43,-1238.82" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="466.1,-1242.06 476.69,-1241.8 468.24,-1235.4 466.1,-1242.06" style=""/>
</g>
<!-- P2PIX.AddressDenied -->
<g id="node55" class="node" pointer-events="visible" data-name="P2PIX.AddressDenied">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="533.05" cy="-636" rx="70.64" ry="18" style=""/>
<text text-anchor="middle" x="533.05" y="-631.8" font-family="Times,serif" font-size="14.00" style="">AddressDenied</text>
</g>
<!-- P2PIX.merkleVerify&#45;&gt;P2PIX.AddressDenied -->
<g id="edge82" class="edge" data-name="P2PIX.merkleVerify-&gt;P2PIX.AddressDenied">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M362.74,-610.54C391.47,-614.86 426.73,-620.16 457.62,-624.81" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="456.7,-628.21 467.11,-626.23 457.74,-621.28 456.7,-628.21" style=""/>
</g>
<!-- Merkle.verify -->
<g id="node62" class="node" pointer-events="visible" data-name="Merkle.verify">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="533.05" cy="-227" rx="34.19" ry="18" style=""/>
<text text-anchor="middle" x="533.05" y="-222.8" font-family="Times,serif" font-size="14.00" style="">verify</text>
</g>
<!-- P2PIX.merkleVerify&#45;&gt;Merkle.verify -->
<g id="edge81" class="edge" data-name="P2PIX.merkleVerify-&gt;Merkle.verify">
<path fill="none" stroke="white" stroke-width="2" d="M366.73,-596.5C380.4,-592.44 393.59,-585.79 402.88,-575 488.46,-475.56 366.99,-391.75 438.88,-282 450.95,-263.57 471.52,-250.48 490.27,-241.71" style=""/>
<polygon fill="white" stroke="white" stroke-width="2" points="491.64,-244.93 499.44,-237.75 488.87,-238.5 491.64,-244.93" style=""/>
</g>
<!-- P2PIX.getPixTarget -->
<g id="node23" class="node" pointer-events="visible" data-name="P2PIX.getPixTarget">
<ellipse fill="#ff9797" stroke="#ff9797" stroke-width="3" cx="93.54" cy="-407" rx="60.83" ry="18" style=""/>
<text text-anchor="middle" x="93.54" y="-402.8" font-family="Times,serif" font-size="14.00" style="">getPixTarget</text>
</g>
<!-- P2PIX.getBalances -->
<g id="node24" class="node" pointer-events="visible" data-name="P2PIX.getBalances">
<ellipse fill="#ffbdb9" stroke="#ffbdb9" stroke-width="3" cx="304.98" cy="-366" rx="57.88" ry="18" style=""/>
<text text-anchor="middle" x="304.98" y="-361.8" font-family="Times,serif" font-size="14.00" style="">getBalances</text>
</g>
<!-- P2PIX.getBalances&#45;&gt;P2PIX.getBalance -->
<g id="edge87" class="edge" data-name="P2PIX.getBalances-&gt;P2PIX.getBalance">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M362.61,-370.44C377.69,-374.36 392.62,-381.21 402.88,-393 482.32,-484.35 359.9,-571.24 438.88,-663 446.3,-671.63 456.3,-677.58 466.99,-681.67" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="465.78,-684.96 476.37,-684.63 467.89,-678.28 465.78,-684.96" style=""/>
</g>
<!-- P2PIX.getBalances&#45;&gt;P2PIX.address -->
<g id="edge83" class="edge" data-name="P2PIX.getBalances-&gt;P2PIX.address">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M363.49,-362.77C378.05,-366.4 392.48,-373.04 402.88,-384 453.63,-437.52 388.4,-492.22 438.88,-546 450.72,-558.62 468.08,-565.46 484.61,-569.71" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="483.51,-573.05 494.04,-571.84 485.05,-566.22 483.51,-573.05" style=""/>
</g>
<!-- P2PIX.getBalances&#45;&gt;P2PIX.address -->
<g id="edge84" class="edge" data-name="P2PIX.getBalances-&gt;P2PIX.address">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M353.18,-377.36C370.98,-381.5 390.02,-388.44 402.88,-402 453.63,-455.52 388.4,-510.22 438.88,-564 449.86,-575.7 465.58,-582.44 480.99,-585.81" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="480.33,-589.25 490.76,-587.4 481.46,-582.34 480.33,-589.25" style=""/>
</g>
<!-- P2PIX.NoTokens -->
<g id="node56" class="node" pointer-events="visible" data-name="P2PIX.NoTokens">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="533.05" cy="-366" rx="51.04" ry="18" style=""/>
<text text-anchor="middle" x="533.05" y="-361.8" font-family="Times,serif" font-size="14.00" style="">NoTokens</text>
</g>
<!-- P2PIX.getBalances&#45;&gt;P2PIX.NoTokens -->
<g id="edge85" class="edge" data-name="P2PIX.getBalances-&gt;P2PIX.NoTokens">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M364.2,-366C395.96,-366 435.34,-366 467.97,-366" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="467.55,-369.5 477.55,-366 467.55,-362.5 467.55,-369.5" style=""/>
</g>
<!-- P2PIX.LengthMismatch -->
<g id="node57" class="node" pointer-events="visible" data-name="P2PIX.LengthMismatch">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="533.05" cy="-420" rx="77.03" ry="18" style=""/>
<text text-anchor="middle" x="533.05" y="-415.8" font-family="Times,serif" font-size="14.00" style="">LengthMismatch</text>
</g>
<!-- P2PIX.getBalances&#45;&gt;P2PIX.LengthMismatch -->
<g id="edge86" class="edge" data-name="P2PIX.getBalances-&gt;P2PIX.LengthMismatch">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M353.1,-377.25C385.16,-384.91 428.1,-395.17 463.89,-403.72" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="462.73,-407.04 473.27,-405.96 464.36,-400.23 462.73,-407.04" style=""/>
</g>
<!-- P2PIX._castKeyToAddr -->
<g id="node26" class="node" pointer-events="visible" data-name="P2PIX._castKeyToAddr">
<ellipse fill="#ff9797" stroke="#ff9797" stroke-width="3" cx="93.54" cy="-335" rx="77.58" ry="18" style=""/>
<text text-anchor="middle" x="93.54" y="-330.8" font-family="Times,serif" font-size="14.00" style="">_castKeyToAddr</text>
</g>
<!-- key -->
<g id="node63" class="node" pointer-events="visible" data-name="key">
<polygon fill="#edad56" stroke="none" stroke-width="3" points="158.54,-1949 28.54,-1949 28.54,-1861 158.54,-1861 158.54,-1949" style=""/>
<text text-anchor="start" x="78.18" y="-1930.4" font-family="Times,serif" font-size="14.00" style="">Internal Call</text>
<text text-anchor="start" x="74.29" y="-1910.4" font-family="Times,serif" font-size="14.00" style="">External Call</text>
<text text-anchor="start" x="51.74" y="-1890.4" font-family="Times,serif" font-size="14.00" style="">Defined Contract</text>
<text text-anchor="start" x="38.14" y="-1870.4" font-family="Times,serif" font-size="14.00" style="">Undefined Contract</text>
</g>
<!-- key2 -->
<g id="node64" class="node" pointer-events="visible" data-name="key2">
<polygon fill="#edad56" stroke="none" stroke-width="3" points="331.98,-1949 277.98,-1949 277.98,-1861 331.98,-1861 331.98,-1949" style=""/>
<text text-anchor="start" x="294.98" y="-1930.4" font-family="Times,serif" font-size="14.00" style="">   </text>
<text text-anchor="start" x="294.98" y="-1910.4" font-family="Times,serif" font-size="14.00" style="">   </text>
<polygon fill="#445773" stroke="none" points="292.98,-1885 292.98,-1905 317.98,-1905 317.98,-1885 292.98,-1885" style=""/>
<text text-anchor="start" x="294.98" y="-1890.4" font-family="Times,serif" font-size="14.00" style="">   </text>
<polygon fill="none" stroke="#e8726d" points="294.98,-1867 294.98,-1883 315.98,-1883 315.98,-1867 294.98,-1867" style=""/>
</g>
<!-- key&#45;&gt;key2 -->
<g id="edge88" class="edge" data-name="key-&gt;key2">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M151.54,-1935C209.45,-1935 227.06,-1935 279.15,-1935" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="278.95,-1938.5 288.95,-1935 278.95,-1931.5 278.95,-1938.5" style=""/>
</g>
<!-- key&#45;&gt;key2 -->
<g id="edge89" class="edge" data-name="key-&gt;key2">
<path fill="none" stroke="white" stroke-width="2" d="M151.54,-1915C209.45,-1915 227.06,-1915 279.15,-1915" style=""/>
<polygon fill="white" stroke="white" stroke-width="2" points="278.95,-1918.5 288.95,-1915 278.95,-1911.5 278.95,-1918.5" style=""/>
</g>
</g>
</svg>