d2/e2etests/testdata/txtar/c4-theme/elk/sketch.exp.svg
Alexander Wang e9aee89a12
Revert "round"
This reverts commit c22a8e1ef2.
2025-03-13 20:11:35 -06:00

886 lines
No EOL
53 KiB
XML

<?xml version="1.0" encoding="utf-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" data-d2-version="v0.6.9-HEAD" preserveAspectRatio="xMinYMin meet" viewBox="0 0 2346 2071"><svg class="d2-1295531492 d2-svg" width="2346" height="2071" viewBox="11 -11 2346 2071"><rect x="11.000000" y="-11.000000" width="2346.000000" height="2071.000000" rx="0.000000" fill="#FFFFFF" class=" fill-N7" stroke-width="0" /><style type="text/css"><![CDATA[
.d2-1295531492 .text {
font-family: "d2-1295531492-font-regular";
}
@font-face {
font-family: d2-1295531492-font-regular;
src: url("data:application/font-woff;base64,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");
}
@font-face {
font-family: d2-1295531492-font-semibold;
src: url("data:application/font-woff;base64,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");
}
.d2-1295531492 .text-italic {
font-family: "d2-1295531492-font-italic";
}
@font-face {
font-family: d2-1295531492-font-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;
}
.d2-1295531492 .fill-N1{fill:#0f5eaa;}
.d2-1295531492 .fill-N2{fill:#707070;}
.d2-1295531492 .fill-N3{fill:#FFFFFF;}
.d2-1295531492 .fill-N4{fill:#073b6f;}
.d2-1295531492 .fill-N5{fill:#999999;}
.d2-1295531492 .fill-N6{fill:#FFFFFF;}
.d2-1295531492 .fill-N7{fill:#FFFFFF;}
.d2-1295531492 .fill-B1{fill:#073b6f;}
.d2-1295531492 .fill-B2{fill:#08427b;}
.d2-1295531492 .fill-B3{fill:#3c7fc0;}
.d2-1295531492 .fill-B4{fill:#438dd5;}
.d2-1295531492 .fill-B5{fill:#8a8a8a;}
.d2-1295531492 .fill-B6{fill:#999999;}
.d2-1295531492 .fill-AA2{fill:#0f5eaa;}
.d2-1295531492 .fill-AA4{fill:#707070;}
.d2-1295531492 .fill-AA5{fill:#f5f5f5;}
.d2-1295531492 .fill-AB4{fill:#e1e1e1;}
.d2-1295531492 .fill-AB5{fill:#f0f0f0;}
.d2-1295531492 .stroke-N1{stroke:#0f5eaa;}
.d2-1295531492 .stroke-N2{stroke:#707070;}
.d2-1295531492 .stroke-N3{stroke:#FFFFFF;}
.d2-1295531492 .stroke-N4{stroke:#073b6f;}
.d2-1295531492 .stroke-N5{stroke:#999999;}
.d2-1295531492 .stroke-N6{stroke:#FFFFFF;}
.d2-1295531492 .stroke-N7{stroke:#FFFFFF;}
.d2-1295531492 .stroke-B1{stroke:#073b6f;}
.d2-1295531492 .stroke-B2{stroke:#08427b;}
.d2-1295531492 .stroke-B3{stroke:#3c7fc0;}
.d2-1295531492 .stroke-B4{stroke:#438dd5;}
.d2-1295531492 .stroke-B5{stroke:#8a8a8a;}
.d2-1295531492 .stroke-B6{stroke:#999999;}
.d2-1295531492 .stroke-AA2{stroke:#0f5eaa;}
.d2-1295531492 .stroke-AA4{stroke:#707070;}
.d2-1295531492 .stroke-AA5{stroke:#f5f5f5;}
.d2-1295531492 .stroke-AB4{stroke:#e1e1e1;}
.d2-1295531492 .stroke-AB5{stroke:#f0f0f0;}
.d2-1295531492 .background-color-N1{background-color:#0f5eaa;}
.d2-1295531492 .background-color-N2{background-color:#707070;}
.d2-1295531492 .background-color-N3{background-color:#FFFFFF;}
.d2-1295531492 .background-color-N4{background-color:#073b6f;}
.d2-1295531492 .background-color-N5{background-color:#999999;}
.d2-1295531492 .background-color-N6{background-color:#FFFFFF;}
.d2-1295531492 .background-color-N7{background-color:#FFFFFF;}
.d2-1295531492 .background-color-B1{background-color:#073b6f;}
.d2-1295531492 .background-color-B2{background-color:#08427b;}
.d2-1295531492 .background-color-B3{background-color:#3c7fc0;}
.d2-1295531492 .background-color-B4{background-color:#438dd5;}
.d2-1295531492 .background-color-B5{background-color:#8a8a8a;}
.d2-1295531492 .background-color-B6{background-color:#999999;}
.d2-1295531492 .background-color-AA2{background-color:#0f5eaa;}
.d2-1295531492 .background-color-AA4{background-color:#707070;}
.d2-1295531492 .background-color-AA5{background-color:#f5f5f5;}
.d2-1295531492 .background-color-AB4{background-color:#e1e1e1;}
.d2-1295531492 .background-color-AB5{background-color:#f0f0f0;}
.d2-1295531492 .color-N1{color:#0f5eaa;}
.d2-1295531492 .color-N2{color:#707070;}
.d2-1295531492 .color-N3{color:#FFFFFF;}
.d2-1295531492 .color-N4{color:#073b6f;}
.d2-1295531492 .color-N5{color:#999999;}
.d2-1295531492 .color-N6{color:#FFFFFF;}
.d2-1295531492 .color-N7{color:#FFFFFF;}
.d2-1295531492 .color-B1{color:#073b6f;}
.d2-1295531492 .color-B2{color:#08427b;}
.d2-1295531492 .color-B3{color:#3c7fc0;}
.d2-1295531492 .color-B4{color:#438dd5;}
.d2-1295531492 .color-B5{color:#8a8a8a;}
.d2-1295531492 .color-B6{color:#999999;}
.d2-1295531492 .color-AA2{color:#0f5eaa;}
.d2-1295531492 .color-AA4{color:#707070;}
.d2-1295531492 .color-AA5{color:#f5f5f5;}
.d2-1295531492 .color-AB4{color:#e1e1e1;}
.d2-1295531492 .color-AB5{color:#f0f0f0;}.appendix text.text{fill:#0f5eaa}.md{--color-fg-default:#0f5eaa;--color-fg-muted:#707070;--color-fg-subtle:#FFFFFF;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#FFFFFF;--color-border-default:#073b6f;--color-border-muted:#08427b;--color-neutral-muted:#FFFFFF;--color-accent-fg:#08427b;--color-accent-emphasis:#08427b;--color-attention-subtle:#707070;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker-d2-1295531492);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-1295531492);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-dark-d2-1295531492);mix-blend-mode:overlay}.sketch-overlay-B4{fill:url(#streaks-dark-d2-1295531492);mix-blend-mode:overlay}.sketch-overlay-B5{fill:url(#streaks-dark-d2-1295531492);mix-blend-mode:overlay}.sketch-overlay-B6{fill:url(#streaks-normal-d2-1295531492);mix-blend-mode:color-burn}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-1295531492);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-dark-d2-1295531492);mix-blend-mode:overlay}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-1295531492);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-1295531492);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-1295531492);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-dark-d2-1295531492);mix-blend-mode:overlay}.sketch-overlay-N2{fill:url(#streaks-dark-d2-1295531492);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-bright-d2-1295531492);mix-blend-mode:darken}.sketch-overlay-N4{fill:url(#streaks-darker-d2-1295531492);mix-blend-mode:lighten}.sketch-overlay-N5{fill:url(#streaks-normal-d2-1295531492);mix-blend-mode:color-burn}.sketch-overlay-N6{fill:url(#streaks-bright-d2-1295531492);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-1295531492);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]></style><style type="text/css">.d2-1295531492 .md em,
.d2-1295531492 .md dfn {
font-family: "d2-1295531492-font-italic";
}
.d2-1295531492 .md b,
.d2-1295531492 .md strong {
font-family: "d2-1295531492-font-bold";
}
.d2-1295531492 .md code,
.d2-1295531492 .md kbd,
.d2-1295531492 .md pre,
.d2-1295531492 .md samp {
font-family: "d2-1295531492-font-mono";
font-size: 1em;
}
.d2-1295531492 .md {
tab-size: 4;
}
/* variables are provided in d2renderers/d2svg/d2svg.go */
.d2-1295531492 .md {
-ms-text-size-adjust: 100%;
-webkit-text-size-adjust: 100%;
margin: 0;
color: var(--color-fg-default);
background-color: transparent; /* we don't want to define the background color */
font-family: "d2-1295531492-font-regular";
font-size: 16px;
line-height: 1.5;
word-wrap: break-word;
}
.d2-1295531492 .md details,
.d2-1295531492 .md figcaption,
.d2-1295531492 .md figure {
display: block;
}
.d2-1295531492 .md summary {
display: list-item;
}
.d2-1295531492 .md [hidden] {
display: none !important;
}
.d2-1295531492 .md a {
background-color: transparent;
color: var(--color-accent-fg);
text-decoration: none;
}
.d2-1295531492 .md a:active,
.d2-1295531492 .md a:hover {
outline-width: 0;
}
.d2-1295531492 .md abbr[title] {
border-bottom: none;
text-decoration: underline dotted;
}
.d2-1295531492 .md dfn {
font-style: italic;
}
.d2-1295531492 .md h1 {
margin: 0.67em 0;
padding-bottom: 0.3em;
font-size: 2em;
border-bottom: 1px solid var(--color-border-muted);
}
.d2-1295531492 .md mark {
background-color: var(--color-attention-subtle);
color: var(--color-text-primary);
}
.d2-1295531492 .md small {
font-size: 90%;
}
.d2-1295531492 .md sub,
.d2-1295531492 .md sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
.d2-1295531492 .md sub {
bottom: -0.25em;
}
.d2-1295531492 .md sup {
top: -0.5em;
}
.d2-1295531492 .md img {
border-style: none;
max-width: 100%;
box-sizing: content-box;
background-color: var(--color-canvas-default);
}
.d2-1295531492 .md figure {
margin: 1em 40px;
}
.d2-1295531492 .md hr {
box-sizing: content-box;
overflow: hidden;
background: transparent;
border-bottom: 1px solid var(--color-border-muted);
height: 0.25em;
padding: 0;
margin: 24px 0;
background-color: var(--color-border-default);
border: 0;
}
.d2-1295531492 .md input {
font: inherit;
margin: 0;
overflow: visible;
font-family: inherit;
font-size: inherit;
line-height: inherit;
}
.d2-1295531492 .md [type="button"],
.d2-1295531492 .md [type="reset"],
.d2-1295531492 .md [type="submit"] {
-webkit-appearance: button;
}
.d2-1295531492 .md [type="button"]::-moz-focus-inner,
.d2-1295531492 .md [type="reset"]::-moz-focus-inner,
.d2-1295531492 .md [type="submit"]::-moz-focus-inner {
border-style: none;
padding: 0;
}
.d2-1295531492 .md [type="button"]:-moz-focusring,
.d2-1295531492 .md [type="reset"]:-moz-focusring,
.d2-1295531492 .md [type="submit"]:-moz-focusring {
outline: 1px dotted ButtonText;
}
.d2-1295531492 .md [type="checkbox"],
.d2-1295531492 .md [type="radio"] {
box-sizing: border-box;
padding: 0;
}
.d2-1295531492 .md [type="number"]::-webkit-inner-spin-button,
.d2-1295531492 .md [type="number"]::-webkit-outer-spin-button {
height: auto;
}
.d2-1295531492 .md [type="search"] {
-webkit-appearance: textfield;
outline-offset: -2px;
}
.d2-1295531492 .md [type="search"]::-webkit-search-cancel-button,
.d2-1295531492 .md [type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
.d2-1295531492 .md ::-webkit-input-placeholder {
color: inherit;
opacity: 0.54;
}
.d2-1295531492 .md ::-webkit-file-upload-button {
-webkit-appearance: button;
font: inherit;
}
.d2-1295531492 .md a:hover {
text-decoration: underline;
}
.d2-1295531492 .md hr::before {
display: table;
content: "";
}
.d2-1295531492 .md hr::after {
display: table;
clear: both;
content: "";
}
.d2-1295531492 .md table {
border-spacing: 0;
border-collapse: collapse;
display: block;
width: max-content;
max-width: 100%;
overflow: auto;
}
.d2-1295531492 .md td,
.d2-1295531492 .md th {
padding: 0;
}
.d2-1295531492 .md details summary {
cursor: pointer;
}
.d2-1295531492 .md details:not([open]) > *:not(summary) {
display: none !important;
}
.d2-1295531492 .md kbd {
display: inline-block;
padding: 3px 5px;
color: var(--color-fg-default);
vertical-align: middle;
background-color: var(--color-canvas-subtle);
border: solid 1px var(--color-neutral-muted);
border-bottom-color: var(--color-neutral-muted);
border-radius: 6px;
box-shadow: inset 0 -1px 0 var(--color-neutral-muted);
}
.d2-1295531492 .md h1,
.d2-1295531492 .md h2,
.d2-1295531492 .md h3,
.d2-1295531492 .md h4,
.d2-1295531492 .md h5,
.d2-1295531492 .md h6 {
margin-top: 24px;
margin-bottom: 16px;
font-weight: 400;
line-height: 1.25;
font-family: "d2-1295531492-font-semibold";
}
.d2-1295531492 .md h2 {
padding-bottom: 0.3em;
font-size: 1.5em;
border-bottom: 1px solid var(--color-border-muted);
}
.d2-1295531492 .md h3 {
font-size: 1.25em;
}
.d2-1295531492 .md h4 {
font-size: 1em;
}
.d2-1295531492 .md h5 {
font-size: 0.875em;
}
.d2-1295531492 .md h6 {
font-size: 0.85em;
color: var(--color-fg-muted);
}
.d2-1295531492 .md p {
margin-top: 0;
margin-bottom: 10px;
}
.d2-1295531492 .md blockquote {
margin: 0;
padding: 0 1em;
color: var(--color-fg-muted);
border-left: 0.25em solid var(--color-border-default);
}
.d2-1295531492 .md ul,
.d2-1295531492 .md ol {
margin-top: 0;
margin-bottom: 0;
padding-left: 2em;
}
.d2-1295531492 .md ol ol,
.d2-1295531492 .md ul ol {
list-style-type: lower-roman;
}
.d2-1295531492 .md ul ul ol,
.d2-1295531492 .md ul ol ol,
.d2-1295531492 .md ol ul ol,
.d2-1295531492 .md ol ol ol {
list-style-type: lower-alpha;
}
.d2-1295531492 .md dd {
margin-left: 0;
}
.d2-1295531492 .md pre {
margin-top: 0;
margin-bottom: 0;
word-wrap: normal;
}
.d2-1295531492 .md ::placeholder {
color: var(--color-fg-subtle);
opacity: 1;
}
.d2-1295531492 .md input::-webkit-outer-spin-button,
.d2-1295531492 .md input::-webkit-inner-spin-button {
margin: 0;
-webkit-appearance: none;
appearance: none;
}
.d2-1295531492 .md::before {
display: table;
content: "";
}
.d2-1295531492 .md::after {
display: table;
clear: both;
content: "";
}
.d2-1295531492 .md > *:first-child {
margin-top: 0 !important;
}
.d2-1295531492 .md > *:last-child {
margin-bottom: 0 !important;
}
.d2-1295531492 .md a:not([href]) {
color: inherit;
text-decoration: none;
}
.d2-1295531492 .md .absent {
color: var(--color-danger-fg);
}
.d2-1295531492 .md .anchor {
float: left;
padding-right: 4px;
margin-left: -20px;
line-height: 1;
}
.d2-1295531492 .md .anchor:focus {
outline: none;
}
.d2-1295531492 .md p,
.d2-1295531492 .md blockquote,
.d2-1295531492 .md ul,
.d2-1295531492 .md ol,
.d2-1295531492 .md dl,
.d2-1295531492 .md table,
.d2-1295531492 .md pre,
.d2-1295531492 .md details {
margin-top: 0;
margin-bottom: 16px;
}
.d2-1295531492 .md blockquote > :first-child {
margin-top: 0;
}
.d2-1295531492 .md blockquote > :last-child {
margin-bottom: 0;
}
.d2-1295531492 .md sup > a::before {
content: "[";
}
.d2-1295531492 .md sup > a::after {
content: "]";
}
.d2-1295531492 .md h1:hover .anchor,
.d2-1295531492 .md h2:hover .anchor,
.d2-1295531492 .md h3:hover .anchor,
.d2-1295531492 .md h4:hover .anchor,
.d2-1295531492 .md h5:hover .anchor,
.d2-1295531492 .md h6:hover .anchor {
text-decoration: none;
}
.d2-1295531492 .md h1 tt,
.d2-1295531492 .md h1 code,
.d2-1295531492 .md h2 tt,
.d2-1295531492 .md h2 code,
.d2-1295531492 .md h3 tt,
.d2-1295531492 .md h3 code,
.d2-1295531492 .md h4 tt,
.d2-1295531492 .md h4 code,
.d2-1295531492 .md h5 tt,
.d2-1295531492 .md h5 code,
.d2-1295531492 .md h6 tt,
.d2-1295531492 .md h6 code {
padding: 0 0.2em;
font-size: inherit;
}
.d2-1295531492 .md ul.no-list,
.d2-1295531492 .md ol.no-list {
padding: 0;
list-style-type: none;
}
.d2-1295531492 .md ol[type="1"] {
list-style-type: decimal;
}
.d2-1295531492 .md ol[type="a"] {
list-style-type: lower-alpha;
}
.d2-1295531492 .md ol[type="i"] {
list-style-type: lower-roman;
}
.d2-1295531492 .md div > ol:not([type]) {
list-style-type: decimal;
}
.d2-1295531492 .md ul ul,
.d2-1295531492 .md ul ol,
.d2-1295531492 .md ol ol,
.d2-1295531492 .md ol ul {
margin-top: 0;
margin-bottom: 0;
}
.d2-1295531492 .md li > p {
margin-top: 16px;
}
.d2-1295531492 .md li + li {
margin-top: 0.25em;
}
.d2-1295531492 .md dl {
padding: 0;
}
.d2-1295531492 .md dl dt {
padding: 0;
margin-top: 16px;
font-size: 1em;
font-style: italic;
font-family: "d2-1295531492-font-semibold";
}
.d2-1295531492 .md dl dd {
padding: 0 16px;
margin-bottom: 16px;
}
.d2-1295531492 .md table th {
font-family: "d2-1295531492-font-semibold";
}
.d2-1295531492 .md table th,
.d2-1295531492 .md table td {
padding: 6px 13px;
border: 1px solid var(--color-border-default);
}
.d2-1295531492 .md table tr {
background-color: var(--color-canvas-default);
border-top: 1px solid var(--color-border-muted);
}
.d2-1295531492 .md table tr:nth-child(2n) {
background-color: var(--color-canvas-subtle);
}
.d2-1295531492 .md table img {
background-color: transparent;
}
.d2-1295531492 .md img[align="right"] {
padding-left: 20px;
}
.d2-1295531492 .md img[align="left"] {
padding-right: 20px;
}
.d2-1295531492 .md span.frame {
display: block;
overflow: hidden;
}
.d2-1295531492 .md span.frame > span {
display: block;
float: left;
width: auto;
padding: 7px;
margin: 13px 0 0;
overflow: hidden;
border: 1px solid var(--color-border-default);
}
.d2-1295531492 .md span.frame span img {
display: block;
float: left;
}
.d2-1295531492 .md span.frame span span {
display: block;
padding: 5px 0 0;
clear: both;
color: var(--color-fg-default);
}
.d2-1295531492 .md span.align-center {
display: block;
overflow: hidden;
clear: both;
}
.d2-1295531492 .md span.align-center > span {
display: block;
margin: 13px auto 0;
overflow: hidden;
text-align: center;
}
.d2-1295531492 .md span.align-center span img {
margin: 0 auto;
text-align: center;
}
.d2-1295531492 .md span.align-right {
display: block;
overflow: hidden;
clear: both;
}
.d2-1295531492 .md span.align-right > span {
display: block;
margin: 13px 0 0;
overflow: hidden;
text-align: right;
}
.d2-1295531492 .md span.align-right span img {
margin: 0;
text-align: right;
}
.d2-1295531492 .md span.float-left {
display: block;
float: left;
margin-right: 13px;
overflow: hidden;
}
.d2-1295531492 .md span.float-left span {
margin: 13px 0 0;
}
.d2-1295531492 .md span.float-right {
display: block;
float: right;
margin-left: 13px;
overflow: hidden;
}
.d2-1295531492 .md span.float-right > span {
display: block;
margin: 13px auto 0;
overflow: hidden;
text-align: right;
}
.d2-1295531492 .md code,
.d2-1295531492 .md tt {
padding: 0.2em 0.4em;
margin: 0;
font-size: 85%;
background-color: var(--color-neutral-muted);
border-radius: 6px;
}
.d2-1295531492 .md code br,
.d2-1295531492 .md tt br {
display: none;
}
.d2-1295531492 .md del code {
text-decoration: inherit;
}
.d2-1295531492 .md pre code {
font-size: 100%;
}
.d2-1295531492 .md pre > code {
padding: 0;
margin: 0;
word-break: normal;
white-space: pre;
background: transparent;
border: 0;
}
.d2-1295531492 .md .highlight {
margin-bottom: 16px;
}
.d2-1295531492 .md .highlight pre {
margin-bottom: 0;
word-break: normal;
}
.d2-1295531492 .md .highlight pre,
.d2-1295531492 .md pre {
padding: 16px;
overflow: auto;
font-size: 85%;
line-height: 1.45;
background-color: var(--color-canvas-subtle);
border-radius: 6px;
}
.d2-1295531492 .md pre code,
.d2-1295531492 .md pre tt {
display: inline;
max-width: auto;
padding: 0;
margin: 0;
overflow: visible;
line-height: inherit;
word-wrap: normal;
background-color: transparent;
border: 0;
}
.d2-1295531492 .md .csv-data td,
.d2-1295531492 .md .csv-data th {
padding: 5px;
overflow: hidden;
font-size: 12px;
line-height: 1;
text-align: left;
white-space: nowrap;
}
.d2-1295531492 .md .csv-data .blob-num {
padding: 10px 8px 9px;
text-align: right;
background: var(--color-canvas-default);
border: 0;
}
.d2-1295531492 .md .csv-data tr {
border-top: 0;
}
.d2-1295531492 .md .csv-data th {
font-family: "d2-1295531492-font-semibold";
background: var(--color-canvas-subtle);
border-top: 0;
}
.d2-1295531492 .md .footnotes {
font-size: 12px;
color: var(--color-fg-muted);
border-top: 1px solid var(--color-border-default);
}
.d2-1295531492 .md .footnotes ol {
padding-left: 16px;
}
.d2-1295531492 .md .footnotes li {
position: relative;
}
.d2-1295531492 .md .footnotes li:target::before {
position: absolute;
top: -8px;
right: -8px;
bottom: -8px;
left: -24px;
pointer-events: none;
content: "";
border: 2px solid var(--color-accent-emphasis);
border-radius: 6px;
}
.d2-1295531492 .md .footnotes li:target {
color: var(--color-fg-default);
}
.d2-1295531492 .md .task-list-item {
list-style-type: none;
}
.d2-1295531492 .md .task-list-item label {
font-weight: 400;
}
.d2-1295531492 .md .task-list-item.enabled label {
cursor: pointer;
}
.d2-1295531492 .md .task-list-item + .task-list-item {
margin-top: 3px;
}
.d2-1295531492 .md .task-list-item .handle {
display: none;
}
.d2-1295531492 .md .task-list-item-checkbox {
margin: 0 0.2em 0.25em -1.6em;
vertical-align: middle;
}
.d2-1295531492 .md .contains-task-list:dir(rtl) .task-list-item-checkbox {
margin: 0 -1.6em 0.25em 0.2em;
}
</style><g class="Y3VzdG9tZXI="><g class="shape" ><path d="M 704 234 C 704 202 736 177 761 177 H 1061 C 1093 177 1118 209 1118 234 V 349 C 1118 381 1086 406 1061 406 H 761 C 729 406 704 374 704 349 Z" stroke="#073b6f" fill="#08427b" class=" stroke-B1 fill-B2" style="stroke-width:2;" /><path d="M 912 12 C 962 12 1003 53 1003 103 C 1003 154 962 195 912 195 C 861 195 820 154 820 103 C 820 53 861 12 912 12" stroke="#073b6f" fill="#08427b" class=" stroke-B1 fill-B2" style="stroke-width:2;" /></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="732.500000" y="231.670000" width="358" height="119"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:B2;color:#FFFFFF"><h2>Personal Banking Customer</h2>
<p>[person]</p>
<p>A customer of the bank, with personal bank accounts.</p>
</div></foreignObject></g></g><g class="aW50ZXJuZXRfYmFua2luZ19zeXN0ZW0="><g class="shape" ><rect x="12.000000" y="658.000000" width="2218.000000" height="1035.000000" stroke="#0f5eaa" fill="transparent" class=" stroke-AA2" style="stroke-width:2;stroke-dasharray:10.000000,9.865639;" /></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="17.000000" y="1563.000000" width="447" height="125"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="font-size:28px;color:#0f5eaa"><h2>Internet Banking System</h2>
<p>[Software System]</p>
</div></foreignObject></g></g><g class="ZW1haWxfc3lzdGVt"><g class="shape" ><rect x="1746.000000" y="1895.000000" width="360.000000" height="164.000000" stroke="#8a8a8a" fill="#999999" class=" stroke-B5 fill-B6" style="stroke-width:2;" /></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="1768.500000" y="1917.500000" width="315" height="119"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:B6;color:#FFFFFF"><h2>E-mail System</h2>
<p>[Software System]</p>
<p>The internal Microsoft Exchange e-mail system.</p>
</div></foreignObject></g></g><g class="bWFpbmZyYW1l"><g class="shape" ><rect x="781.000000" y="1895.000000" width="629.000000" height="164.000000" stroke="#8a8a8a" fill="#999999" class=" stroke-B5 fill-B6" style="stroke-width:2;" /></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="803.500000" y="1917.500000" width="584" height="119"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:B6;color:#FFFFFF"><h2>Mainframe Banking System</h2>
<p>[Software System]</p>
<p>Stores all of the core banking information about customers, accounts, transactions, etc.</p>
</div></foreignObject></g></g><g class="aW50ZXJuZXRfYmFua2luZ19zeXN0ZW0ud2ViX2FwcA=="><g class="shape" ><rect x="62.000000" y="708.000000" width="550.000000" height="164.000000" stroke="#3c7fc0" fill="#438dd5" class=" stroke-B3 fill-B4" style="stroke-width:2;" /></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="84.500000" y="730.500000" width="505" height="119"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:B4;color:#FFFFFF"><h2>Web Application</h2>
<p>[Container: Java and Spring MVC]</p>
<p>Delivers the static content and the Internet banking single page application.</p>
</div></foreignObject></g></g><g class="aW50ZXJuZXRfYmFua2luZ19zeXN0ZW0uc3Bh"><g class="shape" ><rect x="190.000000" y="1043.000000" width="609.000000" height="164.000000" stroke="#3c7fc0" fill="#438dd5" class=" stroke-B3 fill-B4" style="stroke-width:2;" /></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="212.500000" y="1065.500000" width="564" height="119"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:B4;color:#FFFFFF"><h2>Single-Page Application</h2>
<p>[Container: JavaScript and Angular]</p>
<p>Provides all of the Internet banking functionality to customers via their web browser.</p>
</div></foreignObject></g></g><g class="aW50ZXJuZXRfYmFua2luZ19zeXN0ZW0ubW9iaWxlX2FwcA=="><g class="shape" ><rect x="819.000000" y="1043.000000" width="707.000000" height="164.000000" stroke="#3c7fc0" fill="#438dd5" class=" stroke-B3 fill-B4" style="stroke-width:2;" /></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="841.500000" y="1065.500000" width="662" height="119"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:B4;color:#FFFFFF"><h2>Mobile App</h2>
<p>[Container: Xamarin]</p>
<p>Provides a limited subset of the Internet banking functionality to customers via their mobile device.</p>
</div></foreignObject></g></g><g class="aW50ZXJuZXRfYmFua2luZ19zeXN0ZW0uYXBpX2FwcA=="><g class="shape" ><rect x="942.000000" y="1394.000000" width="461.000000" height="164.000000" stroke="#3c7fc0" fill="#438dd5" class=" stroke-B3 fill-B4" style="stroke-width:2;" /></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="964.500000" y="1416.500000" width="416" height="119"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:B4;color:#FFFFFF"><h2>API Application</h2>
<p>[Container: Java and Spring MVC]</p>
<p>Provides Internet banking functionality via a JSON/HTTPS API.</p>
</div></foreignObject></g></g><g class="aW50ZXJuZXRfYmFua2luZ19zeXN0ZW0uZGF0YWJhc2U="><g class="shape" ><rect x="1546.000000" y="1043.000000" width="634.000000" height="164.000000" stroke="#3c7fc0" fill="#438dd5" class=" stroke-B3 fill-B4" style="stroke-width:2;" /></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="1568.500000" y="1065.500000" width="589" height="119"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:B4;color:#FFFFFF"><h2>Database</h2>
<p>[Container: Oracle Database Schema]</p>
<p>Stores user registration information, hashed authentication credentials, access logs, etc.</p>
</div></foreignObject></g></g><g class="KGN1c3RvbWVyIC0mZ3Q7IGludGVybmV0X2Jhbmtpbmdfc3lzdGVtLndlYl9hcHApWzBd"><marker id="mk-d2-1295531492-1053408873" 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="#707070" class="connection fill-AA4" stroke-width="2" /> </marker><path d="M 787.987500 407.999961 L 787.812499 436.000195 S 787.750000 446.000000 777.750000 446.000000 L 369.250000 446.000000 S 359.250000 446.000000 359.250000 456.000000 L 359.250000 704.000000" stroke="#707070" fill="none" class="connection stroke-AA4" style="stroke-width:2;stroke-dasharray:10.000000,9.865639;" marker-end="url(#mk-d2-1295531492-1053408873)" mask="url(#d2-1295531492)" /><text x="462.500000" y="444.000000" fill="#707070" class="text-italic fill-N2" style="text-anchor:middle;font-size:16px"><tspan x="462.500000" dy="0.000000">Visits bigbank.com/ib using</tspan><tspan x="462.500000" dy="18.500000">[HTTPS]</tspan></text></g><g class="aW50ZXJuZXRfYmFua2luZ19zeXN0ZW0uKHdlYl9hcHAgLSZndDsgc3BhKVswXQ=="><path d="M 393.000000 874.000000 L 393.000000 1039.000000" stroke="#707070" fill="none" class="connection stroke-AA4" style="stroke-width:2;stroke-dasharray:10.000000,9.865639;" marker-end="url(#mk-d2-1295531492-1053408873)" mask="url(#d2-1295531492)" /><text x="393.500000" y="963.000000" fill="#707070" class="text-italic fill-N2" style="text-anchor:middle;font-size:16px">Delivers to the customer&#39;s web browser</text></g><g class="KGN1c3RvbWVyIC0mZ3Q7IGludGVybmV0X2Jhbmtpbmdfc3lzdGVtLnNwYSlbMF0="><path d="M 870.994444 407.999992 L 870.777778 486.000039 S 870.750000 496.000000 860.750000 496.000000 L 662.000000 496.000000 S 652.000000 496.000000 652.000000 506.000000 L 652.000000 1039.000000" stroke="#707070" fill="none" class="connection stroke-AA4" style="stroke-width:2;stroke-dasharray:10.000000,9.865639;" marker-end="url(#mk-d2-1295531492-1053408873)" mask="url(#d2-1295531492)" /><text x="652.000000" y="621.000000" fill="#707070" class="text-italic fill-N2" style="text-anchor:middle;font-size:16px">Views account balances, and makes payments using</text></g><g class="KGN1c3RvbWVyIC0mZ3Q7IGludGVybmV0X2Jhbmtpbmdfc3lzdGVtLm1vYmlsZV9hcHApWzBd"><path d="M 953.999215 408.000000 L 953.751570 1039.000000" stroke="#707070" fill="none" class="connection stroke-AA4" style="stroke-width:2;stroke-dasharray:10.000000,9.865639;" marker-end="url(#mk-d2-1295531492-1053408873)" mask="url(#d2-1295531492)" /><text x="954.000000" y="730.000000" fill="#707070" class="text-italic fill-N2" style="text-anchor:middle;font-size:16px">Views account balances, and makes payments using</text></g><g class="aW50ZXJuZXRfYmFua2luZ19zeXN0ZW0uKHNwYSAtJmd0OyBhcGlfYXBwKVswXQ=="><path d="M 494.500000 1209.000000 L 494.500000 1344.000000 S 494.500000 1354.000000 504.500000 1354.000000 L 1047.250000 1354.000000 S 1057.250000 1354.000000 1057.250000 1364.000000 L 1057.250000 1390.000000" stroke="#707070" fill="none" class="connection stroke-AA4" style="stroke-width:2;stroke-dasharray:10.000000,9.865639;" marker-end="url(#mk-d2-1295531492-1053408873)" mask="url(#d2-1295531492)" /><text x="722.000000" y="1352.000000" fill="#707070" class="text-italic fill-N2" style="text-anchor:middle;font-size:16px"><tspan x="722.000000" dy="0.000000">Makes API calls to</tspan><tspan x="722.000000" dy="18.500000">[JSON/HTTPS]</tspan></text></g><g class="aW50ZXJuZXRfYmFua2luZ19zeXN0ZW0uKG1vYmlsZV9hcHAgLSZndDsgYXBpX2FwcClbMF0="><path d="M 1172.500000 1209.000000 L 1172.500000 1390.000000" stroke="#707070" fill="none" class="connection stroke-AA4" style="stroke-width:2;stroke-dasharray:10.000000,9.865639;" marker-end="url(#mk-d2-1295531492-1053408873)" mask="url(#d2-1295531492)" /><text x="1173.000000" y="1298.000000" fill="#707070" class="text-italic fill-N2" style="text-anchor:middle;font-size:16px"><tspan x="1173.000000" dy="0.000000">Makes API calls to</tspan><tspan x="1173.000000" dy="18.500000">[JSON/HTTPS]</tspan></text></g><g class="KGludGVybmV0X2Jhbmtpbmdfc3lzdGVtLmFwaV9hcHAgLSZndDsgbWFpbmZyYW1lKVswXQ=="><path d="M 1095.666016 1560.000000 L 1095.666016 1891.000000" stroke="#707070" fill="none" class="connection stroke-AA4" style="stroke-width:2;stroke-dasharray:10.000000,9.865639;" marker-end="url(#mk-d2-1295531492-1053408873)" mask="url(#d2-1295531492)" /><text x="1096.000000" y="1724.000000" fill="#707070" class="text-italic fill-N2" style="text-anchor:middle;font-size:16px"><tspan x="1096.000000" dy="0.000000">Makes API calls to</tspan><tspan x="1096.000000" dy="18.500000">[XML/HTTPS]</tspan></text></g><g class="KGN1c3RvbWVyIC0mZ3Q7IGVtYWlsX3N5c3RlbSlbMF0="><path d="M 1036.987500 407.999961 L 1036.812499 436.000195 S 1036.750000 446.000000 1046.750000 446.000000 L 2293.500000 446.000000 S 2303.500000 446.000000 2303.500000 456.000000 L 2303.500000 1845.000000 S 2303.500000 1855.000000 2293.500000 1855.000000 L 1996.833008 1855.000000 S 1986.833008 1855.000000 1986.833008 1865.000000 L 1986.833008 1891.000000" stroke="#707070" fill="none" class="connection stroke-AA4" style="stroke-width:2;stroke-dasharray:10.000000,9.865639;" marker-end="url(#mk-d2-1295531492-1053408873)" mask="url(#d2-1295531492)" /><text x="2303.500000" y="681.000000" fill="#707070" class="text-italic fill-N2" style="text-anchor:middle;font-size:16px">Sends e-mails to</text></g><g class="KGludGVybmV0X2Jhbmtpbmdfc3lzdGVtLmFwaV9hcHAgLSZndDsgZW1haWxfc3lzdGVtKVswXQ=="><path d="M 1249.333008 1560.000000 L 1249.333008 1845.000000 S 1249.333008 1855.000000 1259.333008 1855.000000 L 1856.833008 1855.000000 S 1866.833008 1855.000000 1866.833008 1865.000000 L 1866.833008 1891.000000" stroke="#707070" fill="none" class="connection stroke-AA4" style="stroke-width:2;stroke-dasharray:10.000000,9.865639;" marker-end="url(#mk-d2-1295531492-1053408873)" mask="url(#d2-1295531492)" /><text x="1429.500000" y="1861.000000" fill="#707070" class="text-italic fill-N2" style="text-anchor:middle;font-size:16px">Sends e-mail using</text></g><g class="aW50ZXJuZXRfYmFua2luZ19zeXN0ZW0uKGRhdGFiYXNlICZsdDstJmd0OyBhcGlfYXBwKVswXQ=="><marker id="mk-d2-1295531492-103034670" markerWidth="10.000000" markerHeight="12.000000" refX="3.000000" refY="6.000000" viewBox="0.000000 0.000000 10.000000 12.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon points="10.000000,0.000000 0.000000,6.000000 10.000000,12.000000" fill="#707070" class="connection fill-AA4" stroke-width="2" /> </marker><path d="M 1863.000000 1211.000000 L 1863.000000 1344.000000 S 1863.000000 1354.000000 1853.000000 1354.000000 L 1297.750000 1354.000000 S 1287.750000 1354.000000 1287.750000 1364.000000 L 1287.750000 1390.000000" stroke="#707070" fill="none" class="connection stroke-AA4" style="stroke-width:2;stroke-dasharray:10.000000,9.865639;" marker-start="url(#mk-d2-1295531492-103034670)" marker-end="url(#mk-d2-1295531492-1053408873)" mask="url(#d2-1295531492)" /><text x="1628.500000" y="1352.000000" fill="#707070" class="text-italic fill-N2" style="text-anchor:middle;font-size:16px"><tspan x="1628.500000" dy="0.000000">Reads from and writes to</tspan><tspan x="1628.500000" dy="18.500000">[SQL/TCP]</tspan></text></g><mask id="d2-1295531492" maskUnits="userSpaceOnUse" x="11" y="-11" width="2346" height="2071">
<rect x="11" y="-11" width="2346" height="2071" fill="white"></rect>
<rect x="732.500000" y="231.670000" width="358" height="119" fill="rgba(0,0,0,0.75)"></rect>
<rect x="17.000000" y="1563.000000" width="447" height="125" fill="rgba(0,0,0,0.75)"></rect>
<rect x="1768.500000" y="1917.500000" width="315" height="119" fill="rgba(0,0,0,0.75)"></rect>
<rect x="803.500000" y="1917.500000" width="584" height="119" fill="rgba(0,0,0,0.75)"></rect>
<rect x="84.500000" y="730.500000" width="505" height="119" fill="rgba(0,0,0,0.75)"></rect>
<rect x="212.500000" y="1065.500000" width="564" height="119" fill="rgba(0,0,0,0.75)"></rect>
<rect x="841.500000" y="1065.500000" width="662" height="119" fill="rgba(0,0,0,0.75)"></rect>
<rect x="964.500000" y="1416.500000" width="416" height="119" fill="rgba(0,0,0,0.75)"></rect>
<rect x="1568.500000" y="1065.500000" width="589" height="119" fill="rgba(0,0,0,0.75)"></rect>
<rect x="373.000000" y="428.000000" width="179" height="37" fill="black"></rect>
<rect x="265.000000" y="947.000000" width="257" height="21" fill="black"></rect>
<rect x="482.000000" y="605.000000" width="340" height="21" fill="black"></rect>
<rect x="784.000000" y="714.000000" width="340" height="21" fill="black"></rect>
<rect x="664.000000" y="1336.000000" width="116" height="37" fill="black"></rect>
<rect x="1115.000000" y="1282.000000" width="116" height="37" fill="black"></rect>
<rect x="1038.000000" y="1708.000000" width="116" height="37" fill="black"></rect>
<rect x="2250.000000" y="665.000000" width="107" height="21" fill="black"></rect>
<rect x="1368.000000" y="1845.000000" width="123" height="21" fill="black"></rect>
<rect x="1547.000000" y="1336.000000" width="163" height="37" fill="black"></rect>
</mask></svg></svg>