d2/e2etests/testdata/stable/code_snippet/dagre/sketch.exp.svg
2024-12-14 13:58:50 -07:00

320 lines
No EOL
61 KiB
XML

<<<<<<< HEAD
<<<<<<< HEAD
<?xml version="1.0" encoding="utf-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" d2Version="v0.6.8-HEAD" preserveAspectRatio="xMinYMin meet" viewBox="0 0 757 537"><svg id="d2-svg" class="d2-3528049809" width="757" height="537" viewBox="-1 -1 757 537"><rect x="-1.000000" y="-1.000000" width="757.000000" height="537.000000" rx="0.000000" fill="#FFFFFF" class=" fill-N7" stroke-width="0" /><style type="text/css"><![CDATA[
.d2-3528049809 .text-bold {
font-family: "d2-3528049809-font-bold";
||||||| parent of 33280fed5 (fixed e2e tests)
<?xml version="1.0" encoding="utf-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" d2Version="v0.6.6-HEAD" preserveAspectRatio="xMinYMin meet" viewBox="0 0 757 537"><svg id="d2-svg" class="d2-3528049809" width="757" height="537" viewBox="-1 -1 757 537"><rect x="-1.000000" y="-1.000000" width="757.000000" height="537.000000" rx="0.000000" class=" fill-N7" stroke-width="0" /><style type="text/css"><![CDATA[
.d2-3528049809 .text-bold {
font-family: "d2-3528049809-font-bold";
=======
<?xml version="1.0" encoding="utf-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" d2Version="v0.6.5-HEAD" preserveAspectRatio="xMinYMin meet" viewBox="0 0 757 537"><svg id="d2-svg" class="d2-4018680361" width="757" height="537" viewBox="-1 -1 757 537"><rect x="-1.000000" y="-1.000000" width="757.000000" height="537.000000" rx="0.000000" class=" fill-N7" stroke-width="0" /><style type="text/css"><![CDATA[
||||||| parent of cb2f2823c (Fix changes)
<?xml version="1.0" encoding="utf-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" d2Version="v0.6.5-HEAD" preserveAspectRatio="xMinYMin meet" viewBox="0 0 757 537"><svg id="d2-svg" class="d2-4018680361" width="757" height="537" viewBox="-1 -1 757 537"><rect x="-1.000000" y="-1.000000" width="757.000000" height="537.000000" rx="0.000000" class=" fill-N7" stroke-width="0" /><style type="text/css"><![CDATA[
=======
<?xml version="1.0" encoding="utf-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" d2Version="v0.6.6-HEAD" preserveAspectRatio="xMinYMin meet" viewBox="0 0 757 537"><svg id="d2-svg" class="d2-4018680361" width="757" height="537" viewBox="-1 -1 757 537"><rect x="-1.000000" y="-1.000000" width="757.000000" height="537.000000" rx="0.000000" class=" fill-N7" stroke-width="0" /><style type="text/css"><![CDATA[
>>>>>>> cb2f2823c (Fix changes)
.d2-4018680361 .text-bold {
font-family: "d2-4018680361-font-bold";
>>>>>>> 33280fed5 (fixed e2e tests)
}
@font-face {
font-family: d2-4018680361-font-bold;
src: url("data:application/font-woff;base64,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");
}
.d2-4018680361 .text-mono {
font-family: "d2-4018680361-font-mono";
}
@font-face {
font-family: d2-4018680361-font-mono;
src: url("data:application/font-woff;base64,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");
}
.d2-4018680361 .text-mono-bold {
font-family: "d2-4018680361-font-mono-bold";
}
@font-face {
font-family: d2-4018680361-font-mono-bold;
src: url("data:application/font-woff;base64,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");
}
.d2-4018680361 .text-mono-italic {
font-family: "d2-4018680361-font-mono-italic";
}
@font-face {
font-family: d2-4018680361-font-mono-italic;
src: url("data:application/font-woff;base64,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");
}]]></style><style type="text/css"><![CDATA[.shape {
shape-rendering: geometricPrecision;
stroke-linejoin: round;
}
.connection {
stroke-linecap: round;
stroke-linejoin: round;
}
.blend {
mix-blend-mode: multiply;
opacity: 0.5;
}
<<<<<<< HEAD
.d2-3528049809 .fill-N1{fill:#0A0F25;}
.d2-3528049809 .fill-N2{fill:#676C7E;}
.d2-3528049809 .fill-N3{fill:#9499AB;}
.d2-3528049809 .fill-N4{fill:#CFD2DD;}
.d2-3528049809 .fill-N5{fill:#DEE1EB;}
.d2-3528049809 .fill-N6{fill:#EEF1F8;}
.d2-3528049809 .fill-N7{fill:#FFFFFF;}
.d2-3528049809 .fill-B1{fill:#0D32B2;}
.d2-3528049809 .fill-B2{fill:#0D32B2;}
.d2-3528049809 .fill-B3{fill:#E3E9FD;}
.d2-3528049809 .fill-B4{fill:#E3E9FD;}
.d2-3528049809 .fill-B5{fill:#EDF0FD;}
.d2-3528049809 .fill-B6{fill:#F7F8FE;}
.d2-3528049809 .fill-AA2{fill:#4A6FF3;}
.d2-3528049809 .fill-AA4{fill:#EDF0FD;}
.d2-3528049809 .fill-AA5{fill:#F7F8FE;}
.d2-3528049809 .fill-AB4{fill:#EDF0FD;}
.d2-3528049809 .fill-AB5{fill:#F7F8FE;}
.d2-3528049809 .stroke-N1{stroke:#0A0F25;}
.d2-3528049809 .stroke-N2{stroke:#676C7E;}
.d2-3528049809 .stroke-N3{stroke:#9499AB;}
.d2-3528049809 .stroke-N4{stroke:#CFD2DD;}
.d2-3528049809 .stroke-N5{stroke:#DEE1EB;}
.d2-3528049809 .stroke-N6{stroke:#EEF1F8;}
.d2-3528049809 .stroke-N7{stroke:#FFFFFF;}
.d2-3528049809 .stroke-B1{stroke:#0D32B2;}
.d2-3528049809 .stroke-B2{stroke:#0D32B2;}
.d2-3528049809 .stroke-B3{stroke:#E3E9FD;}
.d2-3528049809 .stroke-B4{stroke:#E3E9FD;}
.d2-3528049809 .stroke-B5{stroke:#EDF0FD;}
.d2-3528049809 .stroke-B6{stroke:#F7F8FE;}
.d2-3528049809 .stroke-AA2{stroke:#4A6FF3;}
.d2-3528049809 .stroke-AA4{stroke:#EDF0FD;}
.d2-3528049809 .stroke-AA5{stroke:#F7F8FE;}
.d2-3528049809 .stroke-AB4{stroke:#EDF0FD;}
.d2-3528049809 .stroke-AB5{stroke:#F7F8FE;}
.d2-3528049809 .background-color-N1{background-color:#0A0F25;}
.d2-3528049809 .background-color-N2{background-color:#676C7E;}
.d2-3528049809 .background-color-N3{background-color:#9499AB;}
.d2-3528049809 .background-color-N4{background-color:#CFD2DD;}
.d2-3528049809 .background-color-N5{background-color:#DEE1EB;}
.d2-3528049809 .background-color-N6{background-color:#EEF1F8;}
.d2-3528049809 .background-color-N7{background-color:#FFFFFF;}
.d2-3528049809 .background-color-B1{background-color:#0D32B2;}
.d2-3528049809 .background-color-B2{background-color:#0D32B2;}
.d2-3528049809 .background-color-B3{background-color:#E3E9FD;}
.d2-3528049809 .background-color-B4{background-color:#E3E9FD;}
.d2-3528049809 .background-color-B5{background-color:#EDF0FD;}
.d2-3528049809 .background-color-B6{background-color:#F7F8FE;}
.d2-3528049809 .background-color-AA2{background-color:#4A6FF3;}
.d2-3528049809 .background-color-AA4{background-color:#EDF0FD;}
.d2-3528049809 .background-color-AA5{background-color:#F7F8FE;}
.d2-3528049809 .background-color-AB4{background-color:#EDF0FD;}
.d2-3528049809 .background-color-AB5{background-color:#F7F8FE;}
.d2-3528049809 .color-N1{color:#0A0F25;}
.d2-3528049809 .color-N2{color:#676C7E;}
.d2-3528049809 .color-N3{color:#9499AB;}
.d2-3528049809 .color-N4{color:#CFD2DD;}
.d2-3528049809 .color-N5{color:#DEE1EB;}
.d2-3528049809 .color-N6{color:#EEF1F8;}
.d2-3528049809 .color-N7{color:#FFFFFF;}
.d2-3528049809 .color-B1{color:#0D32B2;}
.d2-3528049809 .color-B2{color:#0D32B2;}
.d2-3528049809 .color-B3{color:#E3E9FD;}
.d2-3528049809 .color-B4{color:#E3E9FD;}
.d2-3528049809 .color-B5{color:#EDF0FD;}
.d2-3528049809 .color-B6{color:#F7F8FE;}
.d2-3528049809 .color-AA2{color:#4A6FF3;}
.d2-3528049809 .color-AA4{color:#EDF0FD;}
.d2-3528049809 .color-AA5{color:#F7F8FE;}
.d2-3528049809 .color-AB4{color:#EDF0FD;}
.d2-3528049809 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]></style><g id="hey"><g class="shape" ></g><g transform="translate(0.000000 166.000000)" class="light-code"><rect width="755.000000" height="203.000000" stroke="#0A0F25" class="shape stroke-N1" style="fill:#ffffff;stroke-width:2;" /><g transform="translate(8.000000 8.000000)"><text class="text-mono" x="0" y="1.000000em"><tspan fill="#999988" class="text-mono-italic">//&#160;RegisterHash&#160;registers&#160;a&#160;function&#160;that&#160;returns&#160;a&#160;new&#160;instance&#160;of&#160;the&#160;given
||||||| parent of 33280fed5 (fixed e2e tests)
.d2-3528049809 .fill-N1{fill:#0A0F25;}
.d2-3528049809 .fill-N2{fill:#676C7E;}
.d2-3528049809 .fill-N3{fill:#9499AB;}
.d2-3528049809 .fill-N4{fill:#CFD2DD;}
.d2-3528049809 .fill-N5{fill:#DEE1EB;}
.d2-3528049809 .fill-N6{fill:#EEF1F8;}
.d2-3528049809 .fill-N7{fill:#FFFFFF;}
.d2-3528049809 .fill-B1{fill:#0D32B2;}
.d2-3528049809 .fill-B2{fill:#0D32B2;}
.d2-3528049809 .fill-B3{fill:#E3E9FD;}
.d2-3528049809 .fill-B4{fill:#E3E9FD;}
.d2-3528049809 .fill-B5{fill:#EDF0FD;}
.d2-3528049809 .fill-B6{fill:#F7F8FE;}
.d2-3528049809 .fill-AA2{fill:#4A6FF3;}
.d2-3528049809 .fill-AA4{fill:#EDF0FD;}
.d2-3528049809 .fill-AA5{fill:#F7F8FE;}
.d2-3528049809 .fill-AB4{fill:#EDF0FD;}
.d2-3528049809 .fill-AB5{fill:#F7F8FE;}
.d2-3528049809 .stroke-N1{stroke:#0A0F25;}
.d2-3528049809 .stroke-N2{stroke:#676C7E;}
.d2-3528049809 .stroke-N3{stroke:#9499AB;}
.d2-3528049809 .stroke-N4{stroke:#CFD2DD;}
.d2-3528049809 .stroke-N5{stroke:#DEE1EB;}
.d2-3528049809 .stroke-N6{stroke:#EEF1F8;}
.d2-3528049809 .stroke-N7{stroke:#FFFFFF;}
.d2-3528049809 .stroke-B1{stroke:#0D32B2;}
.d2-3528049809 .stroke-B2{stroke:#0D32B2;}
.d2-3528049809 .stroke-B3{stroke:#E3E9FD;}
.d2-3528049809 .stroke-B4{stroke:#E3E9FD;}
.d2-3528049809 .stroke-B5{stroke:#EDF0FD;}
.d2-3528049809 .stroke-B6{stroke:#F7F8FE;}
.d2-3528049809 .stroke-AA2{stroke:#4A6FF3;}
.d2-3528049809 .stroke-AA4{stroke:#EDF0FD;}
.d2-3528049809 .stroke-AA5{stroke:#F7F8FE;}
.d2-3528049809 .stroke-AB4{stroke:#EDF0FD;}
.d2-3528049809 .stroke-AB5{stroke:#F7F8FE;}
.d2-3528049809 .background-color-N1{background-color:#0A0F25;}
.d2-3528049809 .background-color-N2{background-color:#676C7E;}
.d2-3528049809 .background-color-N3{background-color:#9499AB;}
.d2-3528049809 .background-color-N4{background-color:#CFD2DD;}
.d2-3528049809 .background-color-N5{background-color:#DEE1EB;}
.d2-3528049809 .background-color-N6{background-color:#EEF1F8;}
.d2-3528049809 .background-color-N7{background-color:#FFFFFF;}
.d2-3528049809 .background-color-B1{background-color:#0D32B2;}
.d2-3528049809 .background-color-B2{background-color:#0D32B2;}
.d2-3528049809 .background-color-B3{background-color:#E3E9FD;}
.d2-3528049809 .background-color-B4{background-color:#E3E9FD;}
.d2-3528049809 .background-color-B5{background-color:#EDF0FD;}
.d2-3528049809 .background-color-B6{background-color:#F7F8FE;}
.d2-3528049809 .background-color-AA2{background-color:#4A6FF3;}
.d2-3528049809 .background-color-AA4{background-color:#EDF0FD;}
.d2-3528049809 .background-color-AA5{background-color:#F7F8FE;}
.d2-3528049809 .background-color-AB4{background-color:#EDF0FD;}
.d2-3528049809 .background-color-AB5{background-color:#F7F8FE;}
.d2-3528049809 .color-N1{color:#0A0F25;}
.d2-3528049809 .color-N2{color:#676C7E;}
.d2-3528049809 .color-N3{color:#9499AB;}
.d2-3528049809 .color-N4{color:#CFD2DD;}
.d2-3528049809 .color-N5{color:#DEE1EB;}
.d2-3528049809 .color-N6{color:#EEF1F8;}
.d2-3528049809 .color-N7{color:#FFFFFF;}
.d2-3528049809 .color-B1{color:#0D32B2;}
.d2-3528049809 .color-B2{color:#0D32B2;}
.d2-3528049809 .color-B3{color:#E3E9FD;}
.d2-3528049809 .color-B4{color:#E3E9FD;}
.d2-3528049809 .color-B5{color:#EDF0FD;}
.d2-3528049809 .color-B6{color:#F7F8FE;}
.d2-3528049809 .color-AA2{color:#4A6FF3;}
.d2-3528049809 .color-AA4{color:#EDF0FD;}
.d2-3528049809 .color-AA5{color:#F7F8FE;}
.d2-3528049809 .color-AB4{color:#EDF0FD;}
.d2-3528049809 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]></style><g id="hey"><g class="shape" ></g><g transform="translate(0.000000 166.000000)" class="light-code"><rect width="755.000000" height="203.000000" class="shape stroke-N1" style="fill:#ffffff;stroke-width:2;" /><g transform="translate(8.000000 8.000000)"><text class="text-mono" x="0" y="1.000000em"><tspan fill="#999988" class="text-mono-italic">//&#160;RegisterHash&#160;registers&#160;a&#160;function&#160;that&#160;returns&#160;a&#160;new&#160;instance&#160;of&#160;the&#160;given
=======
.d2-4018680361 .fill-N1{fill:#0A0F25;}
.d2-4018680361 .fill-N2{fill:#676C7E;}
.d2-4018680361 .fill-N3{fill:#9499AB;}
.d2-4018680361 .fill-N4{fill:#CFD2DD;}
.d2-4018680361 .fill-N5{fill:#DEE1EB;}
.d2-4018680361 .fill-N6{fill:#EEF1F8;}
.d2-4018680361 .fill-N7{fill:#FFFFFF;}
.d2-4018680361 .fill-B1{fill:#0D32B2;}
.d2-4018680361 .fill-B2{fill:#0D32B2;}
.d2-4018680361 .fill-B3{fill:#E3E9FD;}
.d2-4018680361 .fill-B4{fill:#E3E9FD;}
.d2-4018680361 .fill-B5{fill:#EDF0FD;}
.d2-4018680361 .fill-B6{fill:#F7F8FE;}
.d2-4018680361 .fill-AA2{fill:#4A6FF3;}
.d2-4018680361 .fill-AA4{fill:#EDF0FD;}
.d2-4018680361 .fill-AA5{fill:#F7F8FE;}
.d2-4018680361 .fill-AB4{fill:#EDF0FD;}
.d2-4018680361 .fill-AB5{fill:#F7F8FE;}
.d2-4018680361 .stroke-N1{stroke:#0A0F25;}
.d2-4018680361 .stroke-N2{stroke:#676C7E;}
.d2-4018680361 .stroke-N3{stroke:#9499AB;}
.d2-4018680361 .stroke-N4{stroke:#CFD2DD;}
.d2-4018680361 .stroke-N5{stroke:#DEE1EB;}
.d2-4018680361 .stroke-N6{stroke:#EEF1F8;}
.d2-4018680361 .stroke-N7{stroke:#FFFFFF;}
.d2-4018680361 .stroke-B1{stroke:#0D32B2;}
.d2-4018680361 .stroke-B2{stroke:#0D32B2;}
.d2-4018680361 .stroke-B3{stroke:#E3E9FD;}
.d2-4018680361 .stroke-B4{stroke:#E3E9FD;}
.d2-4018680361 .stroke-B5{stroke:#EDF0FD;}
.d2-4018680361 .stroke-B6{stroke:#F7F8FE;}
.d2-4018680361 .stroke-AA2{stroke:#4A6FF3;}
.d2-4018680361 .stroke-AA4{stroke:#EDF0FD;}
.d2-4018680361 .stroke-AA5{stroke:#F7F8FE;}
.d2-4018680361 .stroke-AB4{stroke:#EDF0FD;}
.d2-4018680361 .stroke-AB5{stroke:#F7F8FE;}
.d2-4018680361 .background-color-N1{background-color:#0A0F25;}
.d2-4018680361 .background-color-N2{background-color:#676C7E;}
.d2-4018680361 .background-color-N3{background-color:#9499AB;}
.d2-4018680361 .background-color-N4{background-color:#CFD2DD;}
.d2-4018680361 .background-color-N5{background-color:#DEE1EB;}
.d2-4018680361 .background-color-N6{background-color:#EEF1F8;}
.d2-4018680361 .background-color-N7{background-color:#FFFFFF;}
.d2-4018680361 .background-color-B1{background-color:#0D32B2;}
.d2-4018680361 .background-color-B2{background-color:#0D32B2;}
.d2-4018680361 .background-color-B3{background-color:#E3E9FD;}
.d2-4018680361 .background-color-B4{background-color:#E3E9FD;}
.d2-4018680361 .background-color-B5{background-color:#EDF0FD;}
.d2-4018680361 .background-color-B6{background-color:#F7F8FE;}
.d2-4018680361 .background-color-AA2{background-color:#4A6FF3;}
.d2-4018680361 .background-color-AA4{background-color:#EDF0FD;}
.d2-4018680361 .background-color-AA5{background-color:#F7F8FE;}
.d2-4018680361 .background-color-AB4{background-color:#EDF0FD;}
.d2-4018680361 .background-color-AB5{background-color:#F7F8FE;}
.d2-4018680361 .color-N1{color:#0A0F25;}
.d2-4018680361 .color-N2{color:#676C7E;}
.d2-4018680361 .color-N3{color:#9499AB;}
.d2-4018680361 .color-N4{color:#CFD2DD;}
.d2-4018680361 .color-N5{color:#DEE1EB;}
.d2-4018680361 .color-N6{color:#EEF1F8;}
.d2-4018680361 .color-N7{color:#FFFFFF;}
.d2-4018680361 .color-B1{color:#0D32B2;}
.d2-4018680361 .color-B2{color:#0D32B2;}
.d2-4018680361 .color-B3{color:#E3E9FD;}
.d2-4018680361 .color-B4{color:#E3E9FD;}
.d2-4018680361 .color-B5{color:#EDF0FD;}
.d2-4018680361 .color-B6{color:#F7F8FE;}
.d2-4018680361 .color-AA2{color:#4A6FF3;}
.d2-4018680361 .color-AA4{color:#EDF0FD;}
.d2-4018680361 .color-AA5{color:#F7F8FE;}
.d2-4018680361 .color-AB4{color:#EDF0FD;}
.d2-4018680361 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]></style><g id="hey"><g class="shape" ></g><g transform="translate(0.000000 166.000000)" class="light-code"><rect width="755.000000" height="203.000000" class="shape stroke-N1" style="fill:#ffffff;stroke-width:2;" /><g transform="translate(8.000000 8.000000)"><text class="text-mono" x="0" y="1.000000em"><tspan fill="#999988" class="text-mono-italic">//&#160;RegisterHash&#160;registers&#160;a&#160;function&#160;that&#160;returns&#160;a&#160;new&#160;instance&#160;of&#160;the&#160;given
>>>>>>> 33280fed5 (fixed e2e tests)
</tspan></text><text class="text-mono" x="0" y="2.300000em"><tspan fill="#999988" class="text-mono-italic"></tspan><tspan fill="#999988" class="text-mono-italic">//&#160;hash&#160;function.&#160;This&#160;is&#160;intended&#160;to&#160;be&#160;called&#160;from&#160;the&#160;init&#160;function&#160;in
</tspan></text><text class="text-mono" x="0" y="3.600000em"><tspan fill="#999988" class="text-mono-italic"></tspan><tspan fill="#999988" class="text-mono-italic">//&#160;packages&#160;that&#160;implement&#160;hash&#160;functions.
</tspan></text><text class="text-mono" x="0" y="4.900000em"><tspan fill="#999988" class="text-mono-italic"></tspan><tspan fill="#000000" class="text-mono-bold">func</tspan>&#160;<tspan fill="#990000" class="text-mono-bold">RegisterHash</tspan>(h&#160;Hash,&#160;f&#160;<tspan fill="#000000" class="text-mono-bold">func</tspan>()&#160;hash.Hash)&#160;{
</text><text class="text-mono" x="0" y="6.200000em">&#160;&#160;&#160;&#160;<tspan fill="#000000" class="text-mono-bold">if</tspan>&#160;h&#160;<tspan fill="#000000" class="text-mono-bold">&gt;=</tspan>&#160;maxHash&#160;{
</text><text class="text-mono" x="0" y="7.500000em">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<tspan fill="#0086b3">panic</tspan>(<tspan fill="#dd1144">&quot;crypto:&#160;RegisterHash&#160;of&#160;unknown&#160;hash&#160;function&quot;</tspan>)
</text><text class="text-mono" x="0" y="8.800000em">&#160;&#160;&#160;&#160;}
</text><text class="text-mono" x="0" y="10.100000em">&#160;&#160;&#160;&#160;hashes[h]&#160;=&#160;f
<<<<<<< HEAD
</text><text class="text-mono" x="0" y="11.400000em">}</text></g></g><g transform="translate(0.000000 166.000000)" class="dark-code"><rect width="755.000000" height="203.000000" stroke="#0A0F25" class="shape stroke-N1" style="fill:#1e1e2e;stroke-width:2;" /><g transform="translate(8.000000 8.000000)"><text class="text-mono" x="0" y="1.000000em"><tspan fill="#6c7086" class="text-mono-italic">//&#160;RegisterHash&#160;registers&#160;a&#160;function&#160;that&#160;returns&#160;a&#160;new&#160;instance&#160;of&#160;the&#160;given
</tspan></text><text class="text-mono" x="0" y="2.300000em"><tspan fill="#6c7086" class="text-mono-italic"></tspan><tspan fill="#6c7086" class="text-mono-italic">//&#160;hash&#160;function.&#160;This&#160;is&#160;intended&#160;to&#160;be&#160;called&#160;from&#160;the&#160;init&#160;function&#160;in
</tspan></text><text class="text-mono" x="0" y="3.600000em"><tspan fill="#6c7086" class="text-mono-italic"></tspan><tspan fill="#6c7086" class="text-mono-italic">//&#160;packages&#160;that&#160;implement&#160;hash&#160;functions.
</tspan></text><text class="text-mono" x="0" y="4.900000em"><tspan fill="#6c7086" class="text-mono-italic"></tspan><tspan fill="#f38ba8">func</tspan><tspan fill="#cdd6f4">&#160;</tspan><tspan fill="#89b4fa">RegisterHash</tspan><tspan fill="#cdd6f4">(</tspan><tspan fill="#cdd6f4">h</tspan><tspan fill="#cdd6f4">&#160;</tspan><tspan fill="#cdd6f4">Hash</tspan><tspan fill="#cdd6f4">,</tspan><tspan fill="#cdd6f4">&#160;</tspan><tspan fill="#cdd6f4">f</tspan><tspan fill="#cdd6f4">&#160;</tspan><tspan fill="#f38ba8">func</tspan><tspan fill="#cdd6f4">(</tspan><tspan fill="#cdd6f4">)</tspan><tspan fill="#cdd6f4">&#160;</tspan><tspan fill="#cdd6f4">hash</tspan><tspan fill="#cdd6f4">.</tspan><tspan fill="#cdd6f4">Hash</tspan><tspan fill="#cdd6f4">)</tspan><tspan fill="#cdd6f4">&#160;</tspan><tspan fill="#cdd6f4">{</tspan><tspan fill="#cdd6f4">
</tspan></text><text class="text-mono" x="0" y="6.200000em"><tspan fill="#cdd6f4"></tspan><tspan fill="#cdd6f4">&#160;&#160;&#160;&#160;</tspan><tspan fill="#cba6f7">if</tspan><tspan fill="#cdd6f4">&#160;</tspan><tspan fill="#cdd6f4">h</tspan><tspan fill="#cdd6f4">&#160;</tspan><tspan fill="#89dceb" class="text-mono-bold">&gt;=</tspan><tspan fill="#cdd6f4">&#160;</tspan><tspan fill="#cdd6f4">maxHash</tspan><tspan fill="#cdd6f4">&#160;</tspan><tspan fill="#cdd6f4">{</tspan><tspan fill="#cdd6f4">
</tspan></text><text class="text-mono" x="0" y="7.500000em"><tspan fill="#cdd6f4"></tspan><tspan fill="#cdd6f4">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</tspan><tspan fill="#89dceb">panic</tspan><tspan fill="#cdd6f4">(</tspan><tspan fill="#a6e3a1">&quot;crypto:&#160;RegisterHash&#160;of&#160;unknown&#160;hash&#160;function&quot;</tspan><tspan fill="#cdd6f4">)</tspan><tspan fill="#cdd6f4">
</tspan></text><text class="text-mono" x="0" y="8.800000em"><tspan fill="#cdd6f4"></tspan><tspan fill="#cdd6f4">&#160;&#160;&#160;&#160;</tspan><tspan fill="#cdd6f4">}</tspan><tspan fill="#cdd6f4">
</tspan></text><text class="text-mono" x="0" y="10.100000em"><tspan fill="#cdd6f4"></tspan><tspan fill="#cdd6f4">&#160;&#160;&#160;&#160;</tspan><tspan fill="#cdd6f4">hashes</tspan><tspan fill="#cdd6f4">[</tspan><tspan fill="#cdd6f4">h</tspan><tspan fill="#cdd6f4">]</tspan><tspan fill="#cdd6f4">&#160;</tspan><tspan fill="#cdd6f4">=</tspan><tspan fill="#cdd6f4">&#160;</tspan><tspan fill="#cdd6f4">f</tspan><tspan fill="#cdd6f4">
</tspan></text><text class="text-mono" x="0" y="11.400000em"><tspan fill="#cdd6f4"></tspan><tspan fill="#cdd6f4">}</tspan></text></g></g></g><g id="x"><g class="shape" ><rect x="351.000000" y="0.000000" width="53.000000" height="66.000000" stroke="#0D32B2" fill="#F7F8FE" class=" stroke-B1 fill-B6" style="stroke-width:2;" /></g><text x="377.500000" y="38.500000" fill="#0A0F25" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">x</text></g><g id="y"><g class="shape" ><rect x="351.000000" y="469.000000" width="54.000000" height="66.000000" stroke="#0D32B2" fill="#F7F8FE" class=" stroke-B1 fill-B6" style="stroke-width:2;" /></g><text x="378.000000" y="507.500000" fill="#0A0F25" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">y</text></g><g id="(x -&gt; hey)[0]"><marker id="mk-3488378134" markerWidth="10.000000" markerHeight="12.000000" refX="7.000000" refY="6.000000" viewBox="0.000000 0.000000 10.000000 12.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" fill="#0D32B2" class="connection fill-B1" stroke-width="2" /> </marker><path d="M 377.500000 68.000000 C 377.500000 106.000000 377.500000 126.000000 377.500000 162.000000" stroke="#0D32B2" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-3488378134)" mask="url(#d2-3528049809)" /></g><g id="(hey -&gt; y)[0]"><path d="M 377.500000 371.000000 C 377.500000 409.000000 377.500000 429.000000 377.500000 465.000000" stroke="#0D32B2" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-3488378134)" mask="url(#d2-3528049809)" /></g><mask id="d2-3528049809" maskUnits="userSpaceOnUse" x="-1" y="-1" width="757" height="537">
||||||| parent of 33280fed5 (fixed e2e tests)
</text><text class="text-mono" x="0" y="11.400000em">}</text></g></g><g transform="translate(0.000000 166.000000)" class="dark-code"><rect width="755.000000" height="203.000000" class="shape stroke-N1" style="fill:#1e1e2e;stroke-width:2;" /><g transform="translate(8.000000 8.000000)"><text class="text-mono" x="0" y="1.000000em"><tspan fill="#585b70" class="text-mono-italic">//&#160;RegisterHash&#160;registers&#160;a&#160;function&#160;that&#160;returns&#160;a&#160;new&#160;instance&#160;of&#160;the&#160;given
</tspan></text><text class="text-mono" x="0" y="2.300000em"><tspan fill="#585b70" class="text-mono-italic"></tspan><tspan fill="#585b70" class="text-mono-italic">//&#160;hash&#160;function.&#160;This&#160;is&#160;intended&#160;to&#160;be&#160;called&#160;from&#160;the&#160;init&#160;function&#160;in
</tspan></text><text class="text-mono" x="0" y="3.600000em"><tspan fill="#585b70" class="text-mono-italic"></tspan><tspan fill="#585b70" class="text-mono-italic">//&#160;packages&#160;that&#160;implement&#160;hash&#160;functions.
</tspan></text><text class="text-mono" x="0" y="4.900000em"><tspan fill="#585b70" class="text-mono-italic"></tspan><tspan fill="#cba6f7">func</tspan><tspan fill="#fab387">&#160;</tspan><tspan fill="#89dceb">RegisterHash</tspan><tspan fill="#cdd6f4">(</tspan><tspan fill="#fab387">h</tspan><tspan fill="#fab387">&#160;</tspan><tspan fill="#fab387">Hash</tspan><tspan fill="#cdd6f4">,</tspan><tspan fill="#fab387">&#160;</tspan><tspan fill="#fab387">f</tspan><tspan fill="#fab387">&#160;</tspan><tspan fill="#cba6f7">func</tspan><tspan fill="#cdd6f4">(</tspan><tspan fill="#cdd6f4">)</tspan><tspan fill="#fab387">&#160;</tspan><tspan fill="#fab387">hash</tspan><tspan fill="#cdd6f4">.</tspan><tspan fill="#fab387">Hash</tspan><tspan fill="#cdd6f4">)</tspan><tspan fill="#fab387">&#160;</tspan><tspan fill="#cdd6f4">{</tspan><tspan fill="#fab387">
</tspan></text><text class="text-mono" x="0" y="6.200000em"><tspan fill="#fab387"></tspan><tspan fill="#fab387">&#160;&#160;&#160;&#160;</tspan><tspan fill="#cba6f7">if</tspan><tspan fill="#fab387">&#160;</tspan><tspan fill="#fab387">h</tspan><tspan fill="#fab387">&#160;</tspan><tspan fill="#89dceb">&gt;=</tspan><tspan fill="#fab387">&#160;</tspan><tspan fill="#fab387">maxHash</tspan><tspan fill="#fab387">&#160;</tspan><tspan fill="#cdd6f4">{</tspan><tspan fill="#fab387">
</tspan></text><text class="text-mono" x="0" y="7.500000em"><tspan fill="#fab387"></tspan><tspan fill="#fab387">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</tspan><tspan fill="#fab387" class="text-mono-italic">panic</tspan><tspan fill="#cdd6f4">(</tspan><tspan fill="#a6e3a1">&quot;crypto:&#160;RegisterHash&#160;of&#160;unknown&#160;hash&#160;function&quot;</tspan><tspan fill="#cdd6f4">)</tspan><tspan fill="#fab387">
</tspan></text><text class="text-mono" x="0" y="8.800000em"><tspan fill="#fab387"></tspan><tspan fill="#fab387">&#160;&#160;&#160;&#160;</tspan><tspan fill="#cdd6f4">}</tspan><tspan fill="#fab387">
</tspan></text><text class="text-mono" x="0" y="10.100000em"><tspan fill="#fab387"></tspan><tspan fill="#fab387">&#160;&#160;&#160;&#160;</tspan><tspan fill="#fab387">hashes</tspan><tspan fill="#cdd6f4">[</tspan><tspan fill="#fab387">h</tspan><tspan fill="#cdd6f4">]</tspan><tspan fill="#fab387">&#160;</tspan><tspan fill="#cdd6f4">=</tspan><tspan fill="#fab387">&#160;</tspan><tspan fill="#fab387">f</tspan><tspan fill="#fab387">
</tspan></text><text class="text-mono" x="0" y="11.400000em"><tspan fill="#fab387"></tspan><tspan fill="#cdd6f4">}</tspan></text></g></g></g><g id="x"><g class="shape" ><rect x="351.000000" y="0.000000" width="53.000000" height="66.000000" class=" stroke-B1 fill-B6" style="stroke-width:2;" /></g><text x="377.500000" y="38.500000" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">x</text></g><g id="y"><g class="shape" ><rect x="351.000000" y="469.000000" width="54.000000" height="66.000000" class=" stroke-B1 fill-B6" style="stroke-width:2;" /></g><text x="378.000000" y="507.500000" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">y</text></g><g id="(x -&gt; hey)[0]"><marker id="mk-3488378134" markerWidth="10.000000" markerHeight="12.000000" refX="7.000000" refY="6.000000" viewBox="0.000000 0.000000 10.000000 12.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" class="connection fill-B1" stroke-width="2" /> </marker><path d="M 377.500000 68.000000 C 377.500000 106.000000 377.500000 126.000000 377.500000 162.000000" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-3488378134)" mask="url(#d2-3528049809)" /></g><g id="(hey -&gt; y)[0]"><path d="M 377.500000 371.000000 C 377.500000 409.000000 377.500000 429.000000 377.500000 465.000000" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-3488378134)" mask="url(#d2-3528049809)" /></g><mask id="d2-3528049809" maskUnits="userSpaceOnUse" x="-1" y="-1" width="757" height="537">
=======
</text><text class="text-mono" x="0" y="11.400000em">}</text></g></g><g transform="translate(0.000000 166.000000)" class="dark-code"><rect width="755.000000" height="203.000000" class="shape stroke-N1" style="fill:#1e1e2e;stroke-width:2;" /><g transform="translate(8.000000 8.000000)"><text class="text-mono" x="0" y="1.000000em"><tspan fill="#585b70" class="text-mono-italic">//&#160;RegisterHash&#160;registers&#160;a&#160;function&#160;that&#160;returns&#160;a&#160;new&#160;instance&#160;of&#160;the&#160;given
</tspan></text><text class="text-mono" x="0" y="2.300000em"><tspan fill="#585b70" class="text-mono-italic"></tspan><tspan fill="#585b70" class="text-mono-italic">//&#160;hash&#160;function.&#160;This&#160;is&#160;intended&#160;to&#160;be&#160;called&#160;from&#160;the&#160;init&#160;function&#160;in
</tspan></text><text class="text-mono" x="0" y="3.600000em"><tspan fill="#585b70" class="text-mono-italic"></tspan><tspan fill="#585b70" class="text-mono-italic">//&#160;packages&#160;that&#160;implement&#160;hash&#160;functions.
</tspan></text><text class="text-mono" x="0" y="4.900000em"><tspan fill="#585b70" class="text-mono-italic"></tspan><tspan fill="#cba6f7">func</tspan><tspan fill="#fab387">&#160;</tspan><tspan fill="#89dceb">RegisterHash</tspan><tspan fill="#cdd6f4">(</tspan><tspan fill="#fab387">h</tspan><tspan fill="#fab387">&#160;</tspan><tspan fill="#fab387">Hash</tspan><tspan fill="#cdd6f4">,</tspan><tspan fill="#fab387">&#160;</tspan><tspan fill="#fab387">f</tspan><tspan fill="#fab387">&#160;</tspan><tspan fill="#cba6f7">func</tspan><tspan fill="#cdd6f4">(</tspan><tspan fill="#cdd6f4">)</tspan><tspan fill="#fab387">&#160;</tspan><tspan fill="#fab387">hash</tspan><tspan fill="#cdd6f4">.</tspan><tspan fill="#fab387">Hash</tspan><tspan fill="#cdd6f4">)</tspan><tspan fill="#fab387">&#160;</tspan><tspan fill="#cdd6f4">{</tspan><tspan fill="#fab387">
</tspan></text><text class="text-mono" x="0" y="6.200000em"><tspan fill="#fab387"></tspan><tspan fill="#fab387">&#160;&#160;&#160;&#160;</tspan><tspan fill="#cba6f7">if</tspan><tspan fill="#fab387">&#160;</tspan><tspan fill="#fab387">h</tspan><tspan fill="#fab387">&#160;</tspan><tspan fill="#89dceb">&gt;=</tspan><tspan fill="#fab387">&#160;</tspan><tspan fill="#fab387">maxHash</tspan><tspan fill="#fab387">&#160;</tspan><tspan fill="#cdd6f4">{</tspan><tspan fill="#fab387">
</tspan></text><text class="text-mono" x="0" y="7.500000em"><tspan fill="#fab387"></tspan><tspan fill="#fab387">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</tspan><tspan fill="#fab387" class="text-mono-italic">panic</tspan><tspan fill="#cdd6f4">(</tspan><tspan fill="#a6e3a1">&quot;crypto:&#160;RegisterHash&#160;of&#160;unknown&#160;hash&#160;function&quot;</tspan><tspan fill="#cdd6f4">)</tspan><tspan fill="#fab387">
</tspan></text><text class="text-mono" x="0" y="8.800000em"><tspan fill="#fab387"></tspan><tspan fill="#fab387">&#160;&#160;&#160;&#160;</tspan><tspan fill="#cdd6f4">}</tspan><tspan fill="#fab387">
</tspan></text><text class="text-mono" x="0" y="10.100000em"><tspan fill="#fab387"></tspan><tspan fill="#fab387">&#160;&#160;&#160;&#160;</tspan><tspan fill="#fab387">hashes</tspan><tspan fill="#cdd6f4">[</tspan><tspan fill="#fab387">h</tspan><tspan fill="#cdd6f4">]</tspan><tspan fill="#fab387">&#160;</tspan><tspan fill="#cdd6f4">=</tspan><tspan fill="#fab387">&#160;</tspan><tspan fill="#fab387">f</tspan><tspan fill="#fab387">
</tspan></text><text class="text-mono" x="0" y="11.400000em"><tspan fill="#fab387"></tspan><tspan fill="#cdd6f4">}</tspan></text></g></g></g><g id="x"><g class="shape" ><rect x="351.000000" y="0.000000" width="53.000000" height="66.000000" class=" stroke-B1 fill-B6" style="stroke-width:2;" /></g><text x="377.500000" y="38.500000" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">x</text></g><g id="y"><g class="shape" ><rect x="351.000000" y="469.000000" width="54.000000" height="66.000000" class=" stroke-B1 fill-B6" style="stroke-width:2;" /></g><text x="378.000000" y="507.500000" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">y</text></g><g id="(x -&gt; hey)[0]"><marker id="mk-3488378134" markerWidth="10.000000" markerHeight="12.000000" refX="7.000000" refY="6.000000" viewBox="0.000000 0.000000 10.000000 12.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" class="connection fill-B1" stroke-width="2" /> </marker><path d="M 377.500000 68.000000 C 377.500000 106.000000 377.500000 126.000000 377.500000 162.000000" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-3488378134)" mask="url(#d2-4018680361)" /></g><g id="(hey -&gt; y)[0]"><path d="M 377.500000 371.000000 C 377.500000 409.000000 377.500000 429.000000 377.500000 465.000000" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-3488378134)" mask="url(#d2-4018680361)" /></g><mask id="d2-4018680361" maskUnits="userSpaceOnUse" x="-1" y="-1" width="757" height="537">
>>>>>>> 33280fed5 (fixed e2e tests)
<rect x="-1" y="-1" width="757" height="537" fill="white"></rect>
<rect x="0.000000" y="166.000000" width="739" height="187" fill="rgba(0,0,0,0.75)"></rect>
<rect x="373.500000" y="22.500000" width="8" height="21" fill="rgba(0,0,0,0.75)"></rect>
<rect x="373.500000" y="491.500000" width="9" height="21" fill="rgba(0,0,0,0.75)"></rect>
</mask></svg></svg>