Merge remote-tracking branch 'upstream/master' into scenarios-a407

This commit is contained in:
Anmol Sethi 2023-01-27 10:44:25 -08:00
commit 2d36513e2c
No known key found for this signature in database
GPG key ID: 25BC68888A99A8BA
499 changed files with 5356 additions and 303 deletions

View file

@ -1,8 +1,13 @@
#### Features 🚀 #### Features 🚀
- `double-border` keyword implemented. [#565](https://github.com/terrastruct/d2/pull/565)
- The [Dockerfile](./docs/INSTALL.md#docker) now supports rendering PNGs [#594](https://github.com/terrastruct/d2/issues/594) - The [Dockerfile](./docs/INSTALL.md#docker) now supports rendering PNGs [#594](https://github.com/terrastruct/d2/issues/594)
- There was a minor breaking change as part of this where the default working directory of the Dockerfile is now `/home/debian/src` instead of `/root/src` to allow UID remapping with [`fixuid`](https://github.com/boxboat/fixuid). - There was a minor breaking change as part of this where the default working directory of the Dockerfile is now `/home/debian/src` instead of `/root/src` to allow UID remapping with [`fixuid`](https://github.com/boxboat/fixuid).
- `d2 fmt` accepts multiple files to be formatted [#718](https://github.com/terrastruct/d2/issues/718)
#### Improvements 🧹 #### Improvements 🧹
#### Bugfixes ⛑️ #### Bugfixes ⛑️
- Fixes groups overlapping in sequence diagrams when they end in a self loop. [#728](https://github.com/terrastruct/d2/pull/728)

View file

@ -13,7 +13,7 @@
.Nm d2 .Nm d2
.Ar layout Op Ar name .Ar layout Op Ar name
.Nm d2 .Nm d2
.Ar fmt Ar file.d2 .Ar fmt Ar file.d2 ...
.Sh DESCRIPTION .Sh DESCRIPTION
.Nm .Nm
compiles and renders compiles and renders
@ -83,10 +83,8 @@ Print version information and exit.
Lists available layout engine options with short help. Lists available layout engine options with short help.
.It Ar layout Op Ar name .It Ar layout Op Ar name
Display long help for a particular layout engine, including its configuration options. Display long help for a particular layout engine, including its configuration options.
.It Ar fmt Ar file.d2 .It Ar fmt Ar file.d2 ...
Format Format all passed files.
.Ar file.d2
.Ns .
.El .El
.Sh SEE ALSO .Sh SEE ALSO
.Xr d2plugin-tala 1 .Xr d2plugin-tala 1

View file

@ -343,6 +343,8 @@ func compileStyleFieldInit(attrs *d2graph.Attributes, f *d2ir.Field) {
attrs.Width = &d2graph.Scalar{MapKey: f.LastPrimaryKey()} attrs.Width = &d2graph.Scalar{MapKey: f.LastPrimaryKey()}
case "height": case "height":
attrs.Height = &d2graph.Scalar{MapKey: f.LastPrimaryKey()} attrs.Height = &d2graph.Scalar{MapKey: f.LastPrimaryKey()}
case "double-border":
attrs.Style.DoubleBorder = &d2graph.Scalar{MapKey: f.LastPrimaryKey()}
} }
} }
@ -567,6 +569,11 @@ func (c *compiler) validateKey(obj *d2graph.Object, f *d2ir.Field) {
c.errorf(obj.Attributes.Style.ThreeDee.MapKey, `key "3d" can only be applied to squares and rectangles`) c.errorf(obj.Attributes.Style.ThreeDee.MapKey, `key "3d" can only be applied to squares and rectangles`)
} }
} }
if obj.Attributes.Style.DoubleBorder != nil {
if obj.Attributes.Shape.Value != "" && obj.Attributes.Shape.Value != d2target.ShapeSquare && obj.Attributes.Shape.Value != d2target.ShapeRectangle && obj.Attributes.Shape.Value != d2target.ShapeCircle && obj.Attributes.Shape.Value != d2target.ShapeOval {
c.errorf(obj.Attributes.Style.DoubleBorder.MapKey, `key "double-border" can only be applied to squares, rectangles, circles, ovals`)
}
}
case "shape": case "shape":
if obj.Attributes.Shape.Value == d2target.ShapeImage && obj.Attributes.Icon == nil { if obj.Attributes.Shape.Value == d2target.ShapeImage && obj.Attributes.Icon == nil {
c.errorf(f.LastPrimaryKey(), `image shape must include an "icon" field`) c.errorf(f.LastPrimaryKey(), `image shape must include an "icon" field`)

View file

@ -95,6 +95,9 @@ func applyStyles(shape *d2target.Shape, obj *d2graph.Object) {
if obj.Attributes.Style.Font != nil { if obj.Attributes.Style.Font != nil {
shape.FontFamily = obj.Attributes.Style.Font.Value shape.FontFamily = obj.Attributes.Style.Font.Value
} }
if obj.Attributes.Style.DoubleBorder != nil {
shape.DoubleBorder, _ = strconv.ParseBool(obj.Attributes.Style.DoubleBorder.Value)
}
} }
func toShape(obj *d2graph.Object, theme *d2themes.Theme) d2target.Shape { func toShape(obj *d2graph.Object, theme *d2themes.Theme) d2target.Shape {

View file

@ -150,6 +150,7 @@ type Style struct {
Italic *Scalar `json:"italic,omitempty"` Italic *Scalar `json:"italic,omitempty"`
Underline *Scalar `json:"underline,omitempty"` Underline *Scalar `json:"underline,omitempty"`
Filled *Scalar `json:"filled,omitempty"` Filled *Scalar `json:"filled,omitempty"`
DoubleBorder *Scalar `json:"doubleBorder,omitempty"`
} }
func (s *Style) Apply(key, value string) error { func (s *Style) Apply(key, value string) error {
@ -303,6 +304,15 @@ func (s *Style) Apply(key, value string) error {
return errors.New(`expected "filled" to be true or false`) return errors.New(`expected "filled" to be true or false`)
} }
s.Filled.Value = value s.Filled.Value = value
case "double-border":
if s.DoubleBorder == nil {
break
}
_, err := strconv.ParseBool(value)
if err != nil {
return errors.New(`expected "double-border" to be true or false`)
}
s.DoubleBorder.Value = value
default: default:
return fmt.Errorf("unknown style key: %s", key) return fmt.Errorf("unknown style key: %s", key)
} }
@ -1343,6 +1353,7 @@ var StyleKeywords = map[string]struct{}{
// Only for shapes // Only for shapes
"shadow": {}, "shadow": {},
"multiple": {}, "multiple": {},
"double-border": {},
// Only for squares // Only for squares
"3d": {}, "3d": {},

View file

@ -97,3 +97,12 @@ func (e *Edge) ContainedBy(obj *Object) bool {
} }
return false return false
} }
func (e *Edge) GetGroup() *Object {
for _, ref := range e.References {
if ref.ScopeObj.IsSequenceDiagramGroup() {
return ref.ScopeObj
}
}
return nil
}

View file

@ -445,6 +445,8 @@ func (sd *sequenceDiagram) placeSpans() {
// routeMessages routes horizontal edges (messages) from Src to Dst lifeline (actor/span center) // routeMessages routes horizontal edges (messages) from Src to Dst lifeline (actor/span center)
// in another step, routes are adjusted to spans borders when necessary // in another step, routes are adjusted to spans borders when necessary
func (sd *sequenceDiagram) routeMessages() error { func (sd *sequenceDiagram) routeMessages() error {
var prevIsLoop bool
var prevGroup *d2graph.Object
messageOffset := sd.maxActorHeight + sd.yStep messageOffset := sd.maxActorHeight + sd.yStep
for _, message := range sd.messages { for _, message := range sd.messages {
message.ZIndex = MESSAGE_Z_INDEX message.ZIndex = MESSAGE_Z_INDEX
@ -454,6 +456,14 @@ func (sd *sequenceDiagram) routeMessages() error {
noteOffset += note.Height + sd.yStep noteOffset += note.Height + sd.yStep
} }
} }
// we need extra space if the previous message is a loop in a different group
group := message.GetGroup()
if prevIsLoop && prevGroup != group {
messageOffset += MIN_MESSAGE_DISTANCE
}
prevGroup = group
startY := messageOffset + noteOffset startY := messageOffset + noteOffset
var startX, endX float64 var startX, endX float64
@ -490,11 +500,13 @@ func (sd *sequenceDiagram) routeMessages() error {
geo.NewPoint(midX, endY), geo.NewPoint(midX, endY),
geo.NewPoint(endX, endY), geo.NewPoint(endX, endY),
} }
prevIsLoop = true
} else { } else {
message.Route = []*geo.Point{ message.Route = []*geo.Point{
geo.NewPoint(startX, startY), geo.NewPoint(startX, startY),
geo.NewPoint(endX, startY), geo.NewPoint(endX, startY),
} }
prevIsLoop = false
} }
messageOffset += sd.yStep messageOffset += sd.yStep

View file

@ -284,6 +284,11 @@ func _set(g *d2graph.Graph, key string, tag, value *string) error {
attrs.Style.Multiple.MapKey.SetScalar(mk.Value.ScalarBox()) attrs.Style.Multiple.MapKey.SetScalar(mk.Value.ScalarBox())
return nil return nil
} }
case "double-border":
if attrs.Style.DoubleBorder != nil {
attrs.Style.DoubleBorder.MapKey.SetScalar(mk.Value.ScalarBox())
return nil
}
case "font": case "font":
if attrs.Style.Font != nil { if attrs.Style.Font != nil {
attrs.Style.Font.MapKey.SetScalar(mk.Value.ScalarBox()) attrs.Style.Font.MapKey.SetScalar(mk.Value.ScalarBox())

View file

@ -91,6 +91,47 @@ func Rect(r *Runner, shape d2target.Shape) (string, error) {
return output, nil return output, nil
} }
func DoubleRect(r *Runner, shape d2target.Shape) (string, error) {
jsBigRect := fmt.Sprintf(`node = rc.rectangle(0, 0, %d, %d, {
fill: "%s",
stroke: "%s",
strokeWidth: %d,
%s
});`, shape.Width, shape.Height, shape.Fill, shape.Stroke, shape.StrokeWidth, baseRoughProps)
pathsBigRect, err := computeRoughPathData(r, jsBigRect)
if err != nil {
return "", err
}
jsSmallRect := fmt.Sprintf(`node = rc.rectangle(0, 0, %d, %d, {
fill: "%s",
stroke: "%s",
strokeWidth: %d,
%s
});`, shape.Width-d2target.INNER_BORDER_OFFSET*2, shape.Height-d2target.INNER_BORDER_OFFSET*2, shape.Fill, shape.Stroke, shape.StrokeWidth, baseRoughProps)
pathsSmallRect, err := computeRoughPathData(r, jsSmallRect)
if err != nil {
return "", err
}
output := ""
for _, p := range pathsBigRect {
output += fmt.Sprintf(
`<path class="shape" transform="translate(%d %d)" d="%s" style="%s" />`,
shape.Pos.X, shape.Pos.Y, p, shape.CSSStyle(),
)
}
for _, p := range pathsSmallRect {
output += fmt.Sprintf(
`<path class="shape" transform="translate(%d %d)" d="%s" style="%s" />`,
shape.Pos.X+d2target.INNER_BORDER_OFFSET, shape.Pos.Y+d2target.INNER_BORDER_OFFSET, p, shape.CSSStyle(),
)
}
output += fmt.Sprintf(
`<rect class="sketch-overlay" transform="translate(%d %d)" width="%d" height="%d" />`,
shape.Pos.X, shape.Pos.Y, shape.Width, shape.Height,
)
return output, nil
}
func Oval(r *Runner, shape d2target.Shape) (string, error) { func Oval(r *Runner, shape d2target.Shape) (string, error) {
js := fmt.Sprintf(`node = rc.ellipse(%d, %d, %d, %d, { js := fmt.Sprintf(`node = rc.ellipse(%d, %d, %d, %d, {
fill: "%s", fill: "%s",
@ -116,6 +157,47 @@ func Oval(r *Runner, shape d2target.Shape) (string, error) {
return output, nil return output, nil
} }
func DoubleOval(r *Runner, shape d2target.Shape) (string, error) {
jsBigCircle := fmt.Sprintf(`node = rc.ellipse(%d, %d, %d, %d, {
fill: "%s",
stroke: "%s",
strokeWidth: %d,
%s
});`, shape.Width/2, shape.Height/2, shape.Width, shape.Height, shape.Fill, shape.Stroke, shape.StrokeWidth, baseRoughProps)
jsSmallCircle := fmt.Sprintf(`node = rc.ellipse(%d, %d, %d, %d, {
fill: "%s",
stroke: "%s",
strokeWidth: %d,
%s
});`, shape.Width/2, shape.Height/2, shape.Width-d2target.INNER_BORDER_OFFSET*2, shape.Height-d2target.INNER_BORDER_OFFSET*2, shape.Fill, shape.Stroke, shape.StrokeWidth, baseRoughProps)
pathsBigCircle, err := computeRoughPathData(r, jsBigCircle)
if err != nil {
return "", err
}
pathsSmallCircle, err := computeRoughPathData(r, jsSmallCircle)
if err != nil {
return "", err
}
output := ""
for _, p := range pathsBigCircle {
output += fmt.Sprintf(
`<path class="shape" transform="translate(%d %d)" d="%s" style="%s" />`,
shape.Pos.X, shape.Pos.Y, p, shape.CSSStyle(),
)
}
for _, p := range pathsSmallCircle {
output += fmt.Sprintf(
`<path class="shape" transform="translate(%d %d)" d="%s" style="%s" />`,
shape.Pos.X, shape.Pos.Y, p, shape.CSSStyle(),
)
}
output += fmt.Sprintf(
`<ellipse class="sketch-overlay" transform="translate(%d %d)" rx="%d" ry="%d" />`,
shape.Pos.X+shape.Width/2, shape.Pos.Y+shape.Height/2, shape.Width/2, shape.Height/2,
)
return output, nil
}
// TODO need to personalize this per shape like we do in Terrastruct app // TODO need to personalize this per shape like we do in Terrastruct app
func Paths(r *Runner, shape d2target.Shape, paths []string) (string, error) { func Paths(r *Runner, shape d2target.Shape, paths []string) (string, error) {
output := "" output := ""

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 271 KiB

After

Width:  |  Height:  |  Size: 271 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 253 KiB

After

Width:  |  Height:  |  Size: 253 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 304 KiB

After

Width:  |  Height:  |  Size: 304 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 196 KiB

After

Width:  |  Height:  |  Size: 196 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 248 KiB

After

Width:  |  Height:  |  Size: 248 KiB

View file

@ -63,7 +63,7 @@ width="626" height="572" viewBox="-102 -102 626 572"><style type="text/css">
<text class="text-mono" x="30.000000" y="304.000000" style="text-anchor:start;font-size:20px;fill:#0A0F25">getJobs()</text> <text class="text-mono" x="30.000000" y="304.000000" style="text-anchor:start;font-size:20px;fill:#0A0F25">getJobs()</text>
<text class="text-mono" x="402.000000" y="304.000000" style="text-anchor:end;font-size:20px;fill:#4A6FF3;">Job[]</text><text class="text-mono" x="10.000000" y="350.000000" style="text-anchor:start;font-size:20px;fill:#0D32B2">+</text> <text class="text-mono" x="402.000000" y="304.000000" style="text-anchor:end;font-size:20px;fill:#4A6FF3;">Job[]</text><text class="text-mono" x="10.000000" y="350.000000" style="text-anchor:start;font-size:20px;fill:#0D32B2">+</text>
<text class="text-mono" x="30.000000" y="350.000000" style="text-anchor:start;font-size:20px;fill:#0A0F25">setTimeout(seconds int)</text> <text class="text-mono" x="30.000000" y="350.000000" style="text-anchor:start;font-size:20px;fill:#0A0F25">setTimeout(seconds int)</text>
<text class="text-mono" x="402.000000" y="350.000000" style="text-anchor:end;font-size:20px;fill:#4A6FF3;">void</text></g></g><mask id="2215085970" maskUnits="userSpaceOnUse" x="-100" y="-100" width="626" height="572"> <text class="text-mono" x="402.000000" y="350.000000" style="text-anchor:end;font-size:20px;fill:#4A6FF3;">void</text></g></g><mask id="2999640763" maskUnits="userSpaceOnUse" x="-100" y="-100" width="626" height="572">
<rect x="-100" y="-100" width="626" height="572" fill="white"></rect> <rect x="-100" y="-100" width="626" height="572" fill="white"></rect>
</mask><style type="text/css"><![CDATA[ </mask><style type="text/css"><![CDATA[

Before

Width:  |  Height:  |  Size: 196 KiB

After

Width:  |  Height:  |  Size: 196 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 246 KiB

After

Width:  |  Height:  |  Size: 246 KiB

View file

@ -811,7 +811,7 @@ width="788" height="595" viewBox="-100 -102 788 595"><style type="text/css">
</defs><g id="x" style='opacity:0.400000'><g class="shape" ><path class="shape" transform="translate(132 0)" d="M-1.600310 -0.578379 L115.045551 1.811030 L114.253697 124.234072 L0.925556 127.532483" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /><path class="shape" transform="translate(132 0)" d="M0.857263 0.963884 C22.480758 0.701114, 45.040901 -2.192221, 113.206405 0.392335 M-0.648665 0.264598 C25.673568 -0.170612, 50.554623 -0.740285, 113.419625 0.752815 M115.536704 -1.749433 C113.935365 28.635548, 114.626901 53.169790, 115.390547 125.130645 M114.297677 -0.799274 C115.035312 32.957747, 114.058843 67.663042, 114.406876 126.352243 M115.052801 125.786559 C90.443766 128.062482, 63.143081 127.518957, 1.836456 125.596476 M113.056573 125.856267 C71.058092 126.524785, 29.087853 126.253321, 0.938949 126.041844 M-0.720604 125.718532 C-0.568084 88.333645, -2.300517 53.904048, 0.591800 -1.206080 M0.217956 126.998223 C-2.326115 79.511511, -1.820061 33.430410, 0.440740 0.988030" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /><rect class="sketch-overlay" transform="translate(132 0)" width="114" height="126" /></g><text class="text-bold" x="189.000000" y="66.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">x</text></g><g id="y" style='opacity:0.400000'><g class="shape" ></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="306.000000" y="51.000000" width="9" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:transparent;color:#0A0F25;"><p>y</p> </defs><g id="x" style='opacity:0.400000'><g class="shape" ><path class="shape" transform="translate(132 0)" d="M-1.600310 -0.578379 L115.045551 1.811030 L114.253697 124.234072 L0.925556 127.532483" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /><path class="shape" transform="translate(132 0)" d="M0.857263 0.963884 C22.480758 0.701114, 45.040901 -2.192221, 113.206405 0.392335 M-0.648665 0.264598 C25.673568 -0.170612, 50.554623 -0.740285, 113.419625 0.752815 M115.536704 -1.749433 C113.935365 28.635548, 114.626901 53.169790, 115.390547 125.130645 M114.297677 -0.799274 C115.035312 32.957747, 114.058843 67.663042, 114.406876 126.352243 M115.052801 125.786559 C90.443766 128.062482, 63.143081 127.518957, 1.836456 125.596476 M113.056573 125.856267 C71.058092 126.524785, 29.087853 126.253321, 0.938949 126.041844 M-0.720604 125.718532 C-0.568084 88.333645, -2.300517 53.904048, 0.591800 -1.206080 M0.217956 126.998223 C-2.326115 79.511511, -1.820061 33.430410, 0.440740 0.988030" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /><rect class="sketch-overlay" transform="translate(132 0)" width="114" height="126" /></g><text class="text-bold" x="189.000000" y="66.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">x</text></g><g id="y" style='opacity:0.400000'><g class="shape" ></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="306.000000" y="51.000000" width="9" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:transparent;color:#0A0F25;"><p>y</p>
</div></foreignObject></g></g><g id="a"><g class="shape" ><path class="shape" transform="translate(132 265)" d="M-1.600310 -0.578379 L115.045551 1.811030 L114.253697 124.234072 L0.925556 127.532483" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /><path class="shape" transform="translate(132 265)" d="M0.857263 0.963884 C22.480758 0.701114, 45.040901 -2.192221, 113.206405 0.392335 M-0.648665 0.264598 C25.673568 -0.170612, 50.554623 -0.740285, 113.419625 0.752815 M115.536704 -1.749433 C113.935365 28.635548, 114.626901 53.169790, 115.390547 125.130645 M114.297677 -0.799274 C115.035312 32.957747, 114.058843 67.663042, 114.406876 126.352243 M115.052801 125.786559 C90.443766 128.062482, 63.143081 127.518957, 1.836456 125.596476 M113.056573 125.856267 C71.058092 126.524785, 29.087853 126.253321, 0.938949 126.041844 M-0.720604 125.718532 C-0.568084 88.333645, -2.300517 53.904048, 0.591800 -1.206080 M0.217956 126.998223 C-2.326115 79.511511, -1.820061 33.430410, 0.440740 0.988030" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /><rect class="sketch-overlay" transform="translate(132 265)" width="114" height="126" /></g><text class="text-bold" x="189.000000" y="331.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">a</text></g><g id="users" style='opacity:0.400000'><g class="shape" ><path class="shape" transform="translate(375 27)" d="M-1.600310 -0.578379 L212.045551 1.811030 L211.253697 70.234072 L0.925556 73.532483" style="fill:#FFFFFF;stroke:#0A0F25;stroke-width:2;" /><path class="shape" transform="translate(375 27)" d="M0.755797 0.849798 C41.919041 0.271510, 83.908070 -2.279368, 210.300335 0.345898 M-0.571888 0.233280 C47.092687 -0.888816, 93.486665 -1.391062, 210.488319 0.663711 M212.536704 -1.749433 C211.434025 16.890424, 212.125561 29.679541, 212.390547 71.130645 M211.297677 -0.799274 C211.695335 18.464376, 210.718866 38.676301, 211.406876 72.352243 M211.928191 71.811822 C166.401573 75.510374, 118.501892 75.031181, 1.619092 71.644237 M210.168238 71.873280 C131.604972 72.658440, 53.066606 72.419106, 0.827814 72.036891 M-0.720604 71.718532 C0.215708 49.821348, -1.516724 30.879454, 0.591800 -1.206080 M0.217956 72.998223 C-1.661676 45.154890, -1.155622 18.717167, 0.440740 0.988030" style="fill:#FFFFFF;stroke:#0A0F25;stroke-width:2;" /><path class="class_header" transform="translate(375 27)" d="M-1.600310 -0.578379 L212.045551 1.811030 L211.253697 34.234072 L0.925556 37.532483" style="fill:#0A0F25" /><path class="class_header" transform="translate(375 27)" d="M0.755797 0.849798 C41.919041 0.271510, 83.908070 -2.279368, 210.300335 0.345898 M-0.571888 0.233280 C47.092687 -0.888816, 93.486665 -1.391062, 210.488319 0.663711 M212.536704 -1.749433 C211.766465 9.060341, 212.458000 14.019375, 212.390547 35.130645 M211.297677 -0.799274 C211.468683 8.802129, 210.492215 19.351806, 211.406876 36.352243 M211.928191 35.811822 C166.401573 39.510374, 118.501892 39.031181, 1.619092 35.644237 M210.168238 35.873280 C131.604972 36.658440, 53.066606 36.419106, 0.827814 36.036891 M-0.720604 35.718532 C0.738237 24.146483, -0.994195 15.529725, 0.591800 -1.206080 M0.217956 36.998223 C-1.218717 22.250475, -0.712663 8.908338, 0.440740 0.988030" style="fill:#0A0F25" /><text class="text" x="395.000000" y="54.000000" style="text-anchor:start;font-size:24px;fill:#FFFFFF">users</text><text class="text" x="385.000000" y="86.000000" style="text-anchor:start;font-size:20px;fill:#0D32B2">last_login</text> </div></foreignObject></g></g><g id="a"><g class="shape" ><path class="shape" transform="translate(132 265)" d="M-1.600310 -0.578379 L115.045551 1.811030 L114.253697 124.234072 L0.925556 127.532483" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /><path class="shape" transform="translate(132 265)" d="M0.857263 0.963884 C22.480758 0.701114, 45.040901 -2.192221, 113.206405 0.392335 M-0.648665 0.264598 C25.673568 -0.170612, 50.554623 -0.740285, 113.419625 0.752815 M115.536704 -1.749433 C113.935365 28.635548, 114.626901 53.169790, 115.390547 125.130645 M114.297677 -0.799274 C115.035312 32.957747, 114.058843 67.663042, 114.406876 126.352243 M115.052801 125.786559 C90.443766 128.062482, 63.143081 127.518957, 1.836456 125.596476 M113.056573 125.856267 C71.058092 126.524785, 29.087853 126.253321, 0.938949 126.041844 M-0.720604 125.718532 C-0.568084 88.333645, -2.300517 53.904048, 0.591800 -1.206080 M0.217956 126.998223 C-2.326115 79.511511, -1.820061 33.430410, 0.440740 0.988030" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /><rect class="sketch-overlay" transform="translate(132 265)" width="114" height="126" /></g><text class="text-bold" x="189.000000" y="331.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">a</text></g><g id="users" style='opacity:0.400000'><g class="shape" ><path class="shape" transform="translate(375 27)" d="M-1.600310 -0.578379 L212.045551 1.811030 L211.253697 70.234072 L0.925556 73.532483" style="fill:#FFFFFF;stroke:#0A0F25;stroke-width:2;" /><path class="shape" transform="translate(375 27)" d="M0.755797 0.849798 C41.919041 0.271510, 83.908070 -2.279368, 210.300335 0.345898 M-0.571888 0.233280 C47.092687 -0.888816, 93.486665 -1.391062, 210.488319 0.663711 M212.536704 -1.749433 C211.434025 16.890424, 212.125561 29.679541, 212.390547 71.130645 M211.297677 -0.799274 C211.695335 18.464376, 210.718866 38.676301, 211.406876 72.352243 M211.928191 71.811822 C166.401573 75.510374, 118.501892 75.031181, 1.619092 71.644237 M210.168238 71.873280 C131.604972 72.658440, 53.066606 72.419106, 0.827814 72.036891 M-0.720604 71.718532 C0.215708 49.821348, -1.516724 30.879454, 0.591800 -1.206080 M0.217956 72.998223 C-1.661676 45.154890, -1.155622 18.717167, 0.440740 0.988030" style="fill:#FFFFFF;stroke:#0A0F25;stroke-width:2;" /><path class="class_header" transform="translate(375 27)" d="M-1.600310 -0.578379 L212.045551 1.811030 L211.253697 34.234072 L0.925556 37.532483" style="fill:#0A0F25" /><path class="class_header" transform="translate(375 27)" d="M0.755797 0.849798 C41.919041 0.271510, 83.908070 -2.279368, 210.300335 0.345898 M-0.571888 0.233280 C47.092687 -0.888816, 93.486665 -1.391062, 210.488319 0.663711 M212.536704 -1.749433 C211.766465 9.060341, 212.458000 14.019375, 212.390547 35.130645 M211.297677 -0.799274 C211.468683 8.802129, 210.492215 19.351806, 211.406876 36.352243 M211.928191 35.811822 C166.401573 39.510374, 118.501892 39.031181, 1.619092 35.644237 M210.168238 35.873280 C131.604972 36.658440, 53.066606 36.419106, 0.827814 36.036891 M-0.720604 35.718532 C0.738237 24.146483, -0.994195 15.529725, 0.591800 -1.206080 M0.217956 36.998223 C-1.218717 22.250475, -0.712663 8.908338, 0.440740 0.988030" style="fill:#0A0F25" /><text class="text" x="395.000000" y="54.000000" style="text-anchor:start;font-size:24px;fill:#FFFFFF">users</text><text class="text" x="385.000000" y="86.000000" style="text-anchor:start;font-size:20px;fill:#0D32B2">last_login</text>
<text class="text" x="488.000000" y="86.000000" style="text-anchor:start;font-size:20px;fill:#676C7E">datetime</text> <text class="text" x="488.000000" y="86.000000" style="text-anchor:start;font-size:20px;fill:#676C7E">datetime</text>
<text class="text" x="566.000000" y="86.000000" style="text-anchor:end;font-size:20px;fill:#4A6FF3;letter-spacing:2px;"></text><path d="M375.755797 99.849798 C416.919041 99.271510, 458.908070 96.720631, 585.300335 99.345898 M374.428111 99.233280 C422.092687 98.111183, 468.486665 97.608937, 585.488319 99.663711" style="fill:#0A0F25" /><rect class="sketch-overlay" transform="translate(375 27)" width="211" height="72" /></g></g><g id="(x -&gt; a)[0]" style='opacity:0.400000'><marker id="mk-3990223579" 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 class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path class="connection" fill="none" d="M187.000089 126.340129 M187.000089 126.340129 C189.963884 181.280246, 190.163171 208.939876, 189.405312 262.357263 M185.269924 125.546535 C188.429286 182.679289, 187.378336 210.161496, 189.490419 259.533797" style="stroke:#0D32B2;stroke-width:2;" mask="url(#2945736988)"/><path class="connection" d="M-8.527627 -3.097061 L1.749550 0.558791 L-8.562935 4.521533" style="fill:#0D32B2;stroke:none;stroke-width:0;" transform="translate(189.000000 261.500000) rotate(90)"/> <path class="connection" d="M-10.153731 -4.038897 C-7.293657 -2.964754, -5.552453 -3.126871, 0.222305 -0.654474 M-10.160117 -4.253535 C-7.616436 -2.677663, -5.569656 -2.320404, -0.086565 0.272291 M0.578048 -0.807164 C-2.240460 1.133634, -3.845699 1.135504, -9.579367 4.140709 M-0.217907 -0.322328 C-3.660571 0.941126, -7.003142 2.167050, -10.100296 3.840861 M-9.957758 4.629247 C-9.937438 2.794817, -10.508655 0.509238, -9.330834 -3.522818 M-10.354741 4.285014 C-9.712366 0.996453, -9.805329 -1.235319, -9.648840 -4.366524" style="fill:none;stroke:#0D32B2;stroke-width:2;" transform="translate(189.000000 261.500000) rotate(90)"/><text class="text-italic" x="189.000000" y="192.000000" style="text-anchor:middle;font-size:16px;fill:#676C7E"><tspan x="189.000000" dy="0.000000">You don&#39;t have to know how the computer works,</tspan><tspan x="189.000000" dy="19.500000">just how to work the computer.</tspan></text></g><mask id="2945736988" maskUnits="userSpaceOnUse" x="-100" y="-100" width="788" height="595"> <text class="text" x="566.000000" y="86.000000" style="text-anchor:end;font-size:20px;fill:#4A6FF3;letter-spacing:2px;"></text><path d="M375.755797 99.849798 C416.919041 99.271510, 458.908070 96.720631, 585.300335 99.345898 M374.428111 99.233280 C422.092687 98.111183, 468.486665 97.608937, 585.488319 99.663711" style="fill:#0A0F25" /><rect class="sketch-overlay" transform="translate(375 27)" width="211" height="72" /></g></g><g id="(x -&gt; a)[0]" style='opacity:0.400000'><marker id="mk-3990223579" 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 class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path class="connection" fill="none" d="M187.000089 126.340129 M187.000089 126.340129 C189.963884 181.280246, 190.163171 208.939876, 189.405312 262.357263 M185.269924 125.546535 C188.429286 182.679289, 187.378336 210.161496, 189.490419 259.533797" style="stroke:#0D32B2;stroke-width:2;" mask="url(#1691004058)"/><path class="connection" d="M-8.527627 -3.097061 L1.749550 0.558791 L-8.562935 4.521533" style="fill:#0D32B2;stroke:none;stroke-width:0;" transform="translate(189.000000 261.500000) rotate(90)"/> <path class="connection" d="M-10.153731 -4.038897 C-7.293657 -2.964754, -5.552453 -3.126871, 0.222305 -0.654474 M-10.160117 -4.253535 C-7.616436 -2.677663, -5.569656 -2.320404, -0.086565 0.272291 M0.578048 -0.807164 C-2.240460 1.133634, -3.845699 1.135504, -9.579367 4.140709 M-0.217907 -0.322328 C-3.660571 0.941126, -7.003142 2.167050, -10.100296 3.840861 M-9.957758 4.629247 C-9.937438 2.794817, -10.508655 0.509238, -9.330834 -3.522818 M-10.354741 4.285014 C-9.712366 0.996453, -9.805329 -1.235319, -9.648840 -4.366524" style="fill:none;stroke:#0D32B2;stroke-width:2;" transform="translate(189.000000 261.500000) rotate(90)"/><text class="text-italic" x="189.000000" y="192.000000" style="text-anchor:middle;font-size:16px;fill:#676C7E"><tspan x="189.000000" dy="0.000000">You don&#39;t have to know how the computer works,</tspan><tspan x="189.000000" dy="19.500000">just how to work the computer.</tspan></text></g><mask id="1691004058" maskUnits="userSpaceOnUse" x="-100" y="-100" width="788" height="595">
<rect x="-100" y="-100" width="788" height="595" fill="white"></rect> <rect x="-100" y="-100" width="788" height="595" fill="white"></rect>
<rect x="0.000000" y="176.000000" width="378" height="39" fill="black"></rect> <rect x="0.000000" y="176.000000" width="378" height="39" fill="black"></rect>
</mask><style type="text/css"><![CDATA[ </mask><style type="text/css"><![CDATA[

Before

Width:  |  Height:  |  Size: 309 KiB

After

Width:  |  Height:  |  Size: 309 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 84 KiB

After

Width:  |  Height:  |  Size: 84 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 387 KiB

After

Width:  |  Height:  |  Size: 387 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 803 KiB

After

Width:  |  Height:  |  Size: 803 KiB

View file

@ -40,7 +40,7 @@ width="565" height="803" viewBox="-102 -118 565 803"><style type="text/css">
} }
}); });
]]></script><a href="https://d2lang.com" xlink:href="https://d2lang.com"><g id="x"><g class="shape" ><rect x="1" y="0" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="57.500000" y="66.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">x</text><g transform="translate(98 -16)" class="appendix-icon"><circle cx="16" cy="16" r="16" fill="white" stroke="#DEE1EB" /><text class="text-bold" x="16" y="21" style="font-size: 16px;text-anchor:middle;">1</text></g></g></a><a href="https://terrastruct.com" xlink:href="https://terrastruct.com"><g id="y"><g class="shape" ><rect x="0" y="226" width="114" height="126" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="57.000000" y="292.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">y</text><g transform="translate(98 210)" class="appendix-icon"><circle cx="16" cy="16" r="16" fill="white" stroke="#DEE1EB" /><text class="text-bold" x="16" y="21" style="font-size: 16px;text-anchor:middle;">2</text></g><title>Gee, I feel kind of LIGHT in the head now, ]]></script><a href="https://d2lang.com" xlink:href="https://d2lang.com"><g id="x"><g class="shape" ><rect x="1" y="0" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="57.500000" y="66.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">x</text><g transform="translate(98 -16)" class="appendix-icon"><circle cx="16" cy="16" r="16" fill="white" stroke="#DEE1EB" /><text class="text-bold" x="16" y="21" style="font-size: 16px;text-anchor:middle;">1</text></g></g></a><a href="https://terrastruct.com" xlink:href="https://terrastruct.com"><g id="y"><g class="shape" ><rect x="0" y="226" width="114" height="126" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="57.000000" y="292.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">y</text><g transform="translate(98 210)" class="appendix-icon"><circle cx="16" cy="16" r="16" fill="white" stroke="#DEE1EB" /><text class="text-bold" x="16" y="21" style="font-size: 16px;text-anchor:middle;">2</text></g><title>Gee, I feel kind of LIGHT in the head now,
knowing I can't make my satellite dish PAYMENTS!</title><g transform="translate(66 210)" class="appendix-icon"><circle cx="16" cy="16" r="16" fill="white" stroke="#DEE1EB" /><text class="text-bold" x="16" y="21" style="font-size: 16px;text-anchor:middle;">3</text></g></g></a><g id="(x -&gt; y)[0]"><marker id="mk-3990223579" 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 class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 57.000000 128.000000 C 57.000000 166.000000 57.000000 186.000000 57.000000 222.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#3268547025)"/></g><mask id="3268547025" maskUnits="userSpaceOnUse" x="-100" y="-100" width="334" height="572"> knowing I can't make my satellite dish PAYMENTS!</title><g transform="translate(66 210)" class="appendix-icon"><circle cx="16" cy="16" r="16" fill="white" stroke="#DEE1EB" /><text class="text-bold" x="16" y="21" style="font-size: 16px;text-anchor:middle;">3</text></g></g></a><g id="(x -&gt; y)[0]"><marker id="mk-3990223579" 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 class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 57.000000 128.000000 C 57.000000 166.000000 57.000000 186.000000 57.000000 222.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#1205536357)"/></g><mask id="1205536357" maskUnits="userSpaceOnUse" x="-100" y="-100" width="334" height="572">
<rect x="-100" y="-100" width="334" height="572" fill="white"></rect> <rect x="-100" y="-100" width="334" height="572" fill="white"></rect>
</mask><style type="text/css"><![CDATA[ </mask><style type="text/css"><![CDATA[

Before

Width:  |  Height:  |  Size: 651 KiB

After

Width:  |  Height:  |  Size: 651 KiB

View file

@ -40,7 +40,7 @@ width="566" height="751" viewBox="-102 -118 566 751"><style type="text/css">
} }
}); });
]]></script><g id="x"><g class="shape" ><rect x="1" y="0" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="57.500000" y="66.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">x</text><g transform="translate(98 -16)" class="appendix-icon"><circle cx="16" cy="16" r="16" fill="white" stroke="#DEE1EB" /><text class="text-bold" x="16" y="21" style="font-size: 16px;text-anchor:middle;">1</text></g><title>Total abstinence is easier than perfect moderation</title></g><g id="y"><g class="shape" ><rect x="0" y="226" width="114" height="126" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="57.000000" y="292.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">y</text><g transform="translate(98 210)" class="appendix-icon"><circle cx="16" cy="16" r="16" fill="white" stroke="#DEE1EB" /><text class="text-bold" x="16" y="21" style="font-size: 16px;text-anchor:middle;">2</text></g><title>Gee, I feel kind of LIGHT in the head now, ]]></script><g id="x"><g class="shape" ><rect x="1" y="0" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="57.500000" y="66.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">x</text><g transform="translate(98 -16)" class="appendix-icon"><circle cx="16" cy="16" r="16" fill="white" stroke="#DEE1EB" /><text class="text-bold" x="16" y="21" style="font-size: 16px;text-anchor:middle;">1</text></g><title>Total abstinence is easier than perfect moderation</title></g><g id="y"><g class="shape" ><rect x="0" y="226" width="114" height="126" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="57.000000" y="292.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">y</text><g transform="translate(98 210)" class="appendix-icon"><circle cx="16" cy="16" r="16" fill="white" stroke="#DEE1EB" /><text class="text-bold" x="16" y="21" style="font-size: 16px;text-anchor:middle;">2</text></g><title>Gee, I feel kind of LIGHT in the head now,
knowing I can't make my satellite dish PAYMENTS!</title></g><g id="(x -&gt; y)[0]"><marker id="mk-3990223579" 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 class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 57.000000 128.000000 C 57.000000 166.000000 57.000000 186.000000 57.000000 222.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#740410777)"/></g><mask id="740410777" maskUnits="userSpaceOnUse" x="-100" y="-100" width="334" height="572"> knowing I can't make my satellite dish PAYMENTS!</title></g><g id="(x -&gt; y)[0]"><marker id="mk-3990223579" 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 class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 57.000000 128.000000 C 57.000000 166.000000 57.000000 186.000000 57.000000 222.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#2863209817)"/></g><mask id="2863209817" maskUnits="userSpaceOnUse" x="-100" y="-100" width="334" height="572">
<rect x="-100" y="-100" width="334" height="572" fill="white"></rect> <rect x="-100" y="-100" width="334" height="572" fill="white"></rect>
</mask><style type="text/css"><![CDATA[ </mask><style type="text/css"><![CDATA[

Before

Width:  |  Height:  |  Size: 650 KiB

After

Width:  |  Height:  |  Size: 650 KiB

View file

@ -42,6 +42,8 @@ const (
appendixIconRadius = 16 appendixIconRadius = 16
) )
var multipleOffset = geo.NewVector(10, -10)
//go:embed tooltip.svg //go:embed tooltip.svg
var TooltipIcon string var TooltipIcon string
@ -589,6 +591,11 @@ func renderOval(tl *geo.Point, width, height float64, style string) string {
return fmt.Sprintf(`<ellipse class="shape" cx="%f" cy="%f" rx="%f" ry="%f" style="%s" />`, cx, cy, rx, ry, style) return fmt.Sprintf(`<ellipse class="shape" cx="%f" cy="%f" rx="%f" ry="%f" style="%s" />`, cx, cy, rx, ry, style)
} }
func renderDoubleOval(tl *geo.Point, width, height float64, style string) string {
var innerTL *geo.Point = tl.AddVector(geo.NewVector(d2target.INNER_BORDER_OFFSET, d2target.INNER_BORDER_OFFSET))
return renderOval(tl, width, height, style) + renderOval(innerTL, width-10, height-10, style)
}
func defineShadowFilter(writer io.Writer) { func defineShadowFilter(writer io.Writer) {
fmt.Fprint(writer, `<defs> fmt.Fprint(writer, `<defs>
<filter id="shadow-filter" width="200%" height="200%" x="-50%" y="-50%"> <filter id="shadow-filter" width="200%" height="200%" x="-50%" y="-50%">
@ -760,6 +767,20 @@ func drawShape(writer io.Writer, targetShape d2target.Shape, sketchRunner *d2ske
fmt.Fprintf(writer, closingTag) fmt.Fprintf(writer, closingTag)
return labelMask, nil return labelMask, nil
case d2target.ShapeOval: case d2target.ShapeOval:
if targetShape.DoubleBorder {
if targetShape.Multiple {
fmt.Fprint(writer, renderDoubleOval(multipleTL, width, height, style))
}
if sketchRunner != nil {
out, err := d2sketch.DoubleOval(sketchRunner, targetShape)
if err != nil {
return "", err
}
fmt.Fprintf(writer, out)
} else {
fmt.Fprint(writer, renderDoubleOval(tl, width, height, style))
}
} else {
if targetShape.Multiple { if targetShape.Multiple {
fmt.Fprint(writer, renderOval(multipleTL, width, height, style)) fmt.Fprint(writer, renderOval(multipleTL, width, height, style))
} }
@ -772,6 +793,7 @@ func drawShape(writer io.Writer, targetShape d2target.Shape, sketchRunner *d2ske
} else { } else {
fmt.Fprint(writer, renderOval(tl, width, height, style)) fmt.Fprint(writer, renderOval(tl, width, height, style))
} }
}
case d2target.ShapeImage: case d2target.ShapeImage:
fmt.Fprintf(writer, `<image href="%s" x="%d" y="%d" width="%d" height="%d" style="%s" />`, fmt.Fprintf(writer, `<image href="%s" x="%d" y="%d" width="%d" height="%d" style="%s" />`,
@ -783,6 +805,7 @@ func drawShape(writer io.Writer, targetShape d2target.Shape, sketchRunner *d2ske
if targetShape.ThreeDee { if targetShape.ThreeDee {
fmt.Fprint(writer, render3dRect(targetShape)) fmt.Fprint(writer, render3dRect(targetShape))
} else { } else {
if !targetShape.DoubleBorder {
if targetShape.Multiple { if targetShape.Multiple {
fmt.Fprintf(writer, `<rect x="%d" y="%d" width="%d" height="%d" style="%s" />`, fmt.Fprintf(writer, `<rect x="%d" y="%d" width="%d" height="%d" style="%s" />`,
targetShape.Pos.X+10, targetShape.Pos.Y-10, targetShape.Width, targetShape.Height, style) targetShape.Pos.X+10, targetShape.Pos.Y-10, targetShape.Width, targetShape.Height, style)
@ -797,6 +820,26 @@ func drawShape(writer io.Writer, targetShape d2target.Shape, sketchRunner *d2ske
fmt.Fprintf(writer, `<rect x="%d" y="%d" width="%d" height="%d" style="%s" />`, fmt.Fprintf(writer, `<rect x="%d" y="%d" width="%d" height="%d" style="%s" />`,
targetShape.Pos.X, targetShape.Pos.Y, targetShape.Width, targetShape.Height, style) targetShape.Pos.X, targetShape.Pos.Y, targetShape.Width, targetShape.Height, style)
} }
} else {
if targetShape.Multiple {
fmt.Fprintf(writer, `<rect x="%d" y="%d" width="%d" height="%d" style="%s" />`,
targetShape.Pos.X+10, targetShape.Pos.Y-10, targetShape.Width, targetShape.Height, style)
fmt.Fprintf(writer, `<rect x="%d" y="%d" width="%d" height="%d" style="%s" />`,
targetShape.Pos.X+10+d2target.INNER_BORDER_OFFSET, targetShape.Pos.Y-10+d2target.INNER_BORDER_OFFSET, targetShape.Width-2*d2target.INNER_BORDER_OFFSET, targetShape.Height-2*d2target.INNER_BORDER_OFFSET, style)
}
if sketchRunner != nil {
out, err := d2sketch.DoubleRect(sketchRunner, targetShape)
if err != nil {
return "", err
}
fmt.Fprintf(writer, out)
} else {
fmt.Fprintf(writer, `<rect x="%d" y="%d" width="%d" height="%d" style="%s" />`,
targetShape.Pos.X, targetShape.Pos.Y, targetShape.Width, targetShape.Height, style)
fmt.Fprintf(writer, `<rect x="%d" y="%d" width="%d" height="%d" style="%s" />`,
targetShape.Pos.X+d2target.INNER_BORDER_OFFSET, targetShape.Pos.Y+d2target.INNER_BORDER_OFFSET, targetShape.Width-2*d2target.INNER_BORDER_OFFSET, targetShape.Height-2*d2target.INNER_BORDER_OFFSET, style)
}
}
} }
case d2target.ShapeText, d2target.ShapeCode: case d2target.ShapeText, d2target.ShapeCode:
default: default:

View file

@ -24,8 +24,12 @@ const (
THREE_DEE_OFFSET = 15 THREE_DEE_OFFSET = 15
MULTIPLE_OFFSET = 10 MULTIPLE_OFFSET = 10
INNER_BORDER_OFFSET = 5
) )
var BorderOffset = geo.NewVector(5, 5)
type Diagram struct { type Diagram struct {
Name string `json:"name"` Name string `json:"name"`
Type string `json:"type"` Type string `json:"type"`
@ -151,6 +155,7 @@ type Shape struct {
Shadow bool `json:"shadow"` Shadow bool `json:"shadow"`
ThreeDee bool `json:"3d"` ThreeDee bool `json:"3d"`
Multiple bool `json:"multiple"` Multiple bool `json:"multiple"`
DoubleBorder bool `json:"double-border"`
Tooltip string `json:"tooltip"` Tooltip string `json:"tooltip"`
Link string `json:"link"` Link string `json:"link"`

View file

@ -394,6 +394,56 @@ x -> a: {
label: You don't have to know how the computer works,\njust how to work the computer. label: You don't have to know how the computer works,\njust how to work the computer.
style.opacity: 0.4 style.opacity: 0.4
} }
`,
},
{
name: "sequence_diagram_self_edge_group_overlap",
script: `
shape: sequence_diagram
a: A
b: B
c: C
group 1: {
a -> a
}
group 2: {
a -> b
}
group 3: {
a -> a.a
}
group 4: {
a.a -> b
}
group 5: {
b -> b
b -> b
}
group 6: {
b -> a
}
group 7: {
a -> a
}
group 8: {
a -> a
}
a -> a
group 9: {
a -> a
}
a -> a
b -> c
group 10: {
c -> c
}
b -> c
group 11: {
c -> c
}
b -> c
`, `,
}, },
} }

View file

@ -21,6 +21,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,

View file

@ -39,7 +39,7 @@ width="316" height="216" viewBox="-102 -102 316 216"><style type="text/css">
svgEl.setAttribute("height", height * ratio - 16); svgEl.setAttribute("height", height * ratio - 16);
} }
}); });
]]></script><g id="a"><g class="shape" ><rect class="shape" x="0" y="0" width="112" height="12" style="fill:#FFFFFF;stroke:#0A0F25;stroke-width:2;"/><rect class="class_header" x="0.000000" y="0.000000" width="112.000000" height="12.000000" fill="#0A0F25" /><line x1="0.000000" y1="12.000000" x2="112.000000" y2="12.000000" style="stroke-width:1;stroke:#0A0F25" /></g></g><mask id="2115119125" maskUnits="userSpaceOnUse" x="-100" y="-100" width="316" height="216"> ]]></script><g id="a"><g class="shape" ><rect class="shape" x="0" y="0" width="112" height="12" style="fill:#FFFFFF;stroke:#0A0F25;stroke-width:2;"/><rect class="class_header" x="0.000000" y="0.000000" width="112.000000" height="12.000000" fill="#0A0F25" /><line x1="0.000000" y1="12.000000" x2="112.000000" y2="12.000000" style="stroke-width:1;stroke:#0A0F25" /></g></g><mask id="3176154718" maskUnits="userSpaceOnUse" x="-100" y="-100" width="316" height="216">
<rect x="-100" y="-100" width="316" height="216" fill="white"></rect> <rect x="-100" y="-100" width="316" height="216" fill="white"></rect>
</mask><style type="text/css"><![CDATA[]]></style></svg> </mask><style type="text/css"><![CDATA[]]></style></svg>

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View file

@ -21,6 +21,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,

View file

@ -39,7 +39,7 @@ width="304" height="304" viewBox="-102 -102 304 304"><style type="text/css">
svgEl.setAttribute("height", height * ratio - 16); svgEl.setAttribute("height", height * ratio - 16);
} }
}); });
]]></script><g id="a"><g class="shape" ><rect x="0" y="0" width="100" height="100" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g></g><mask id="677029166" maskUnits="userSpaceOnUse" x="-100" y="-100" width="304" height="304"> ]]></script><g id="a"><g class="shape" ><rect x="0" y="0" width="100" height="100" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g></g><mask id="4175712569" maskUnits="userSpaceOnUse" x="-100" y="-100" width="304" height="304">
<rect x="-100" y="-100" width="304" height="304" fill="white"></rect> <rect x="-100" y="-100" width="304" height="304" fill="white"></rect>
</mask><style type="text/css"><![CDATA[]]></style></svg> </mask><style type="text/css"><![CDATA[]]></style></svg>

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View file

@ -21,6 +21,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,

View file

@ -39,7 +39,7 @@ width="254" height="216" viewBox="-102 -102 254 216"><style type="text/css">
svgEl.setAttribute("height", height * ratio - 16); svgEl.setAttribute("height", height * ratio - 16);
} }
}); });
]]></script><g id="a"><g class="shape" ><rect class="shape" x="0" y="0" width="50" height="12" style="fill:#FFFFFF;stroke:#0A0F25;stroke-width:2;"/><rect class="class_header" x="0.000000" y="0.000000" width="50.000000" height="12.000000" fill="#0A0F25" /></g></g><mask id="2389823220" maskUnits="userSpaceOnUse" x="-100" y="-100" width="254" height="216"> ]]></script><g id="a"><g class="shape" ><rect class="shape" x="0" y="0" width="50" height="12" style="fill:#FFFFFF;stroke:#0A0F25;stroke-width:2;"/><rect class="class_header" x="0.000000" y="0.000000" width="50.000000" height="12.000000" fill="#0A0F25" /></g></g><mask id="1023975809" maskUnits="userSpaceOnUse" x="-100" y="-100" width="254" height="216">
<rect x="-100" y="-100" width="254" height="216" fill="white"></rect> <rect x="-100" y="-100" width="254" height="216" fill="white"></rect>
</mask><style type="text/css"><![CDATA[]]></style></svg> </mask><style type="text/css"><![CDATA[]]></style></svg>

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

View file

@ -21,6 +21,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -60,6 +61,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -99,6 +101,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,

View file

@ -39,7 +39,7 @@ width="680" height="242" viewBox="-102 -102 680 242"><style type="text/css">
svgEl.setAttribute("height", height * ratio - 16); svgEl.setAttribute("height", height * ratio - 16);
} }
}); });
]]></script><g id="hello world"><g class="shape" ></g><g transform="translate(0.000000 0.000000)"><rect class="shape" width="121" height="38" style="stroke: #0A0F25;fill:#ffffff" /><g transform="translate(6 6)"><text class="text-mono" x="0" y="1.000000em" xml:space="preserve">hello&#160;world</text></g></g></g><g id="no trailing"><g class="shape" ></g><g transform="translate(181.000000 0.000000)"><rect class="shape" width="122" height="38" style="stroke: #0A0F25;fill:#ffffff" /><g transform="translate(6 6)"><text class="text-mono" x="0" y="1.000000em" xml:space="preserve">no&#160;trailing</text></g></g></g><g id="no leading"><g class="shape" ></g><g transform="translate(363.000000 0.000000)"><rect class="shape" width="113" height="38" style="stroke: #0A0F25;fill:#ffffff" /><g transform="translate(6 6)"><text class="text-mono" x="0" y="1.000000em" xml:space="preserve">no&#160;leading</text></g></g></g><mask id="2815774816" maskUnits="userSpaceOnUse" x="-100" y="-100" width="680" height="242"> ]]></script><g id="hello world"><g class="shape" ></g><g transform="translate(0.000000 0.000000)"><rect class="shape" width="121" height="38" style="stroke: #0A0F25;fill:#ffffff" /><g transform="translate(6 6)"><text class="text-mono" x="0" y="1.000000em" xml:space="preserve">hello&#160;world</text></g></g></g><g id="no trailing"><g class="shape" ></g><g transform="translate(181.000000 0.000000)"><rect class="shape" width="122" height="38" style="stroke: #0A0F25;fill:#ffffff" /><g transform="translate(6 6)"><text class="text-mono" x="0" y="1.000000em" xml:space="preserve">no&#160;trailing</text></g></g></g><g id="no leading"><g class="shape" ></g><g transform="translate(363.000000 0.000000)"><rect class="shape" width="113" height="38" style="stroke: #0A0F25;fill:#ffffff" /><g transform="translate(6 6)"><text class="text-mono" x="0" y="1.000000em" xml:space="preserve">no&#160;leading</text></g></g></g><mask id="2619622117" maskUnits="userSpaceOnUse" x="-100" y="-100" width="680" height="242">
<rect x="-100" y="-100" width="680" height="242" fill="white"></rect> <rect x="-100" y="-100" width="680" height="242" fill="white"></rect>
</mask><style type="text/css"><![CDATA[ </mask><style type="text/css"><![CDATA[

Before

Width:  |  Height:  |  Size: 183 KiB

After

Width:  |  Height:  |  Size: 183 KiB

View file

@ -21,6 +21,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -60,6 +61,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -99,6 +101,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,

View file

@ -39,7 +39,7 @@ width="600" height="242" viewBox="-90 -90 600 242"><style type="text/css">
svgEl.setAttribute("height", height * ratio - 16); svgEl.setAttribute("height", height * ratio - 16);
} }
}); });
]]></script><g id="hello world"><g class="shape" ></g><g transform="translate(12.000000 12.000000)"><rect class="shape" width="121" height="38" style="stroke: #0A0F25;fill:#ffffff" /><g transform="translate(6 6)"><text class="text-mono" x="0" y="1.000000em" xml:space="preserve">hello&#160;world</text></g></g></g><g id="no trailing"><g class="shape" ></g><g transform="translate(153.000000 12.000000)"><rect class="shape" width="122" height="38" style="stroke: #0A0F25;fill:#ffffff" /><g transform="translate(6 6)"><text class="text-mono" x="0" y="1.000000em" xml:space="preserve">no&#160;trailing</text></g></g></g><g id="no leading"><g class="shape" ></g><g transform="translate(295.000000 12.000000)"><rect class="shape" width="113" height="38" style="stroke: #0A0F25;fill:#ffffff" /><g transform="translate(6 6)"><text class="text-mono" x="0" y="1.000000em" xml:space="preserve">no&#160;leading</text></g></g></g><mask id="1520027167" maskUnits="userSpaceOnUse" x="-100" y="-100" width="600" height="242"> ]]></script><g id="hello world"><g class="shape" ></g><g transform="translate(12.000000 12.000000)"><rect class="shape" width="121" height="38" style="stroke: #0A0F25;fill:#ffffff" /><g transform="translate(6 6)"><text class="text-mono" x="0" y="1.000000em" xml:space="preserve">hello&#160;world</text></g></g></g><g id="no trailing"><g class="shape" ></g><g transform="translate(153.000000 12.000000)"><rect class="shape" width="122" height="38" style="stroke: #0A0F25;fill:#ffffff" /><g transform="translate(6 6)"><text class="text-mono" x="0" y="1.000000em" xml:space="preserve">no&#160;trailing</text></g></g></g><g id="no leading"><g class="shape" ></g><g transform="translate(295.000000 12.000000)"><rect class="shape" width="113" height="38" style="stroke: #0A0F25;fill:#ffffff" /><g transform="translate(6 6)"><text class="text-mono" x="0" y="1.000000em" xml:space="preserve">no&#160;leading</text></g></g></g><mask id="1105663468" maskUnits="userSpaceOnUse" x="-100" y="-100" width="600" height="242">
<rect x="-100" y="-100" width="600" height="242" fill="white"></rect> <rect x="-100" y="-100" width="600" height="242" fill="white"></rect>
</mask><style type="text/css"><![CDATA[ </mask><style type="text/css"><![CDATA[

Before

Width:  |  Height:  |  Size: 183 KiB

After

Width:  |  Height:  |  Size: 183 KiB

View file

@ -21,6 +21,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -61,6 +62,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -101,6 +103,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -141,6 +144,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -181,6 +185,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -221,6 +226,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,

View file

@ -39,7 +39,7 @@ width="775" height="852" viewBox="-102 -102 775 852"><style type="text/css">
svgEl.setAttribute("height", height * ratio - 16); svgEl.setAttribute("height", height * ratio - 16);
} }
}); });
]]></script><g id="a"><g class="shape" ><rect x="0" y="0" width="571" height="648" style="fill:#E3E9FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text" x="285.500000" y="33.000000" style="text-anchor:middle;font-size:28px;fill:#0A0F25">a</text></g><g id="a.b"><g class="shape" ><rect x="64" y="55" width="113" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="120.500000" y="121.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">b</text></g><g id="a.c"><g class="shape" ><rect x="40" y="359" width="478" height="235" style="fill:#EDF0FD;stroke:white;stroke-width:2;" /></g><text class="text" x="279.000000" y="388.000000" style="text-anchor:middle;font-size:24px;fill:#0A0F25">c</text></g><g id="a.1"><g class="shape" ><rect x="237" y="55" width="112" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="293.000000" y="121.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">1</text></g><g id="a.2"><g class="shape" ><rect x="409" y="55" width="113" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="465.500000" y="121.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">2</text></g><g id="a.c.d"><g class="shape" ><rect x="236" y="413" width="114" height="126" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="293.000000" y="479.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">d</text></g><g id="a.(b -&gt; c)[0]"><marker id="mk-1065319532" markerWidth="24.200000" markerHeight="18.000000" refX="20.800000" refY="9.000000" viewBox="0.000000 0.000000 24.200000 18.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon class="connection" fill="white" stroke="red" stroke-width="2" points="0.000000,9.000000 11.000000,2.250000 22.000000,9.000000 11.000000,16.200000" /> </marker><path d="M 120.000000 183.500000 C 120.000000 251.900000 120.000000 287.500000 120.000000 355.500000" class="connection" style="fill:none;stroke:red;stroke-width:2;" marker-end="url(#mk-1065319532)" mask="url(#2483316502)"/><text class="text-italic" x="120.000000" y="252.000000" style="text-anchor:middle;font-size:16px;fill:red"><tspan x="120.000000" dy="0.000000">line 1</tspan><tspan x="120.000000" dy="17.250000">line 2</tspan><tspan x="120.000000" dy="17.250000">line 3</tspan><tspan x="120.000000" dy="17.250000">line 4</tspan></text></g><g id="a.(1 -&gt; c)[0]"><marker id="mk-3990223579" 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 class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 292.500000 183.500000 C 292.500000 251.900000 292.500000 287.500000 292.500000 355.500000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#2483316502)"/></g><g id="a.(2 &lt;-&gt; c)[0]"><marker id="mk-2510427236" 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 class="connection" fill="#0D32B2" stroke-width="2" points="10.000000,0.000000 0.000000,6.000000 10.000000,12.000000" /> </marker><path d="M 465.000000 185.500000 C 465.000000 251.900000 465.000000 287.500000 465.000000 355.500000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-start="url(#mk-2510427236)" marker-end="url(#mk-3990223579)" mask="url(#2483316502)"/></g><mask id="2483316502" maskUnits="userSpaceOnUse" x="-100" y="-100" width="775" height="852"> ]]></script><g id="a"><g class="shape" ><rect x="0" y="0" width="571" height="648" style="fill:#E3E9FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text" x="285.500000" y="33.000000" style="text-anchor:middle;font-size:28px;fill:#0A0F25">a</text></g><g id="a.b"><g class="shape" ><rect x="64" y="55" width="113" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="120.500000" y="121.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">b</text></g><g id="a.c"><g class="shape" ><rect x="40" y="359" width="478" height="235" style="fill:#EDF0FD;stroke:white;stroke-width:2;" /></g><text class="text" x="279.000000" y="388.000000" style="text-anchor:middle;font-size:24px;fill:#0A0F25">c</text></g><g id="a.1"><g class="shape" ><rect x="237" y="55" width="112" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="293.000000" y="121.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">1</text></g><g id="a.2"><g class="shape" ><rect x="409" y="55" width="113" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="465.500000" y="121.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">2</text></g><g id="a.c.d"><g class="shape" ><rect x="236" y="413" width="114" height="126" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="293.000000" y="479.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">d</text></g><g id="a.(b -&gt; c)[0]"><marker id="mk-1065319532" markerWidth="24.200000" markerHeight="18.000000" refX="20.800000" refY="9.000000" viewBox="0.000000 0.000000 24.200000 18.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon class="connection" fill="white" stroke="red" stroke-width="2" points="0.000000,9.000000 11.000000,2.250000 22.000000,9.000000 11.000000,16.200000" /> </marker><path d="M 120.000000 183.500000 C 120.000000 251.900000 120.000000 287.500000 120.000000 355.500000" class="connection" style="fill:none;stroke:red;stroke-width:2;" marker-end="url(#mk-1065319532)" mask="url(#3289905772)"/><text class="text-italic" x="120.000000" y="252.000000" style="text-anchor:middle;font-size:16px;fill:red"><tspan x="120.000000" dy="0.000000">line 1</tspan><tspan x="120.000000" dy="17.250000">line 2</tspan><tspan x="120.000000" dy="17.250000">line 3</tspan><tspan x="120.000000" dy="17.250000">line 4</tspan></text></g><g id="a.(1 -&gt; c)[0]"><marker id="mk-3990223579" 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 class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 292.500000 183.500000 C 292.500000 251.900000 292.500000 287.500000 292.500000 355.500000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#3289905772)"/></g><g id="a.(2 &lt;-&gt; c)[0]"><marker id="mk-2510427236" 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 class="connection" fill="#0D32B2" stroke-width="2" points="10.000000,0.000000 0.000000,6.000000 10.000000,12.000000" /> </marker><path d="M 465.000000 185.500000 C 465.000000 251.900000 465.000000 287.500000 465.000000 355.500000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-start="url(#mk-2510427236)" marker-end="url(#mk-3990223579)" mask="url(#3289905772)"/></g><mask id="3289905772" maskUnits="userSpaceOnUse" x="-100" y="-100" width="775" height="852">
<rect x="-100" y="-100" width="775" height="852" fill="white"></rect> <rect x="-100" y="-100" width="775" height="852" fill="white"></rect>
<rect x="102.000000" y="236.000000" width="36" height="69" fill="black"></rect> <rect x="102.000000" y="236.000000" width="36" height="69" fill="black"></rect>
</mask><style type="text/css"><![CDATA[ </mask><style type="text/css"><![CDATA[

Before

Width:  |  Height:  |  Size: 794 KiB

After

Width:  |  Height:  |  Size: 794 KiB

View file

@ -21,6 +21,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -61,6 +62,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -101,6 +103,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -141,6 +144,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -181,6 +185,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -221,6 +226,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,

View file

@ -39,7 +39,7 @@ width="694" height="1082" viewBox="-90 -90 694 1082"><style type="text/css">
svgEl.setAttribute("height", height * ratio - 16); svgEl.setAttribute("height", height * ratio - 16);
} }
}); });
]]></script><g id="a"><g class="shape" ><rect x="12" y="12" width="490" height="878" style="fill:#E3E9FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text" x="257.000000" y="45.000000" style="text-anchor:middle;font-size:28px;fill:#0A0F25">a</text></g><g id="a.b"><g class="shape" ><rect x="87" y="87" width="113" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="143.500000" y="153.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">b</text></g><g id="a.c"><g class="shape" ><rect x="106" y="539" width="264" height="276" style="fill:#EDF0FD;stroke:white;stroke-width:2;" /></g><text class="text" x="238.000000" y="568.000000" style="text-anchor:middle;font-size:24px;fill:#0A0F25">c</text></g><g id="a.1"><g class="shape" ><rect x="182" y="313" width="112" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="238.000000" y="379.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">1</text></g><g id="a.2"><g class="shape" ><rect x="314" y="313" width="113" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="370.500000" y="379.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">2</text></g><g id="a.c.d"><g class="shape" ><rect x="181" y="614" width="114" height="126" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="238.000000" y="680.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">d</text></g><g id="a.(b -&gt; c)[0]"><marker id="mk-1065319532" markerWidth="24.200000" markerHeight="18.000000" refX="20.800000" refY="9.000000" viewBox="0.000000 0.000000 24.200000 18.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon class="connection" fill="white" stroke="red" stroke-width="2" points="0.000000,9.000000 11.000000,2.250000 22.000000,9.000000 11.000000,16.200000" /> </marker><path d="M 143.500000 215.000000 L 143.500000 479.000000 S 143.500000 489.000000 153.500000 489.000000 L 162.500000 489.000000 S 172.500000 489.000000 172.500000 499.000000 L 172.500000 535.000000" class="connection" style="fill:none;stroke:red;stroke-width:2;" marker-end="url(#mk-1065319532)" mask="url(#1313988328)"/><text class="text-italic" x="144.000000" y="372.000000" style="text-anchor:middle;font-size:16px;fill:red"><tspan x="144.000000" dy="0.000000">line 1</tspan><tspan x="144.000000" dy="17.250000">line 2</tspan><tspan x="144.000000" dy="17.250000">line 3</tspan><tspan x="144.000000" dy="17.250000">line 4</tspan></text></g><g id="a.(1 -&gt; c)[0]"><marker id="mk-3990223579" 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 class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 238.500000 441.000000 L 238.500000 535.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#1313988328)"/></g><g id="a.(2 &lt;-&gt; c)[0]"><marker id="mk-2510427236" 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 class="connection" fill="#0D32B2" stroke-width="2" points="10.000000,0.000000 0.000000,6.000000 10.000000,12.000000" /> </marker><path d="M 371.000000 443.000000 L 371.000000 479.000000 S 371.000000 489.000000 361.000000 489.000000 L 314.500000 489.000000 S 304.500000 489.000000 304.500000 499.000000 L 304.500000 535.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-start="url(#mk-2510427236)" marker-end="url(#mk-3990223579)" mask="url(#1313988328)"/></g><mask id="1313988328" maskUnits="userSpaceOnUse" x="-100" y="-100" width="694" height="1082"> ]]></script><g id="a"><g class="shape" ><rect x="12" y="12" width="490" height="878" style="fill:#E3E9FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text" x="257.000000" y="45.000000" style="text-anchor:middle;font-size:28px;fill:#0A0F25">a</text></g><g id="a.b"><g class="shape" ><rect x="87" y="87" width="113" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="143.500000" y="153.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">b</text></g><g id="a.c"><g class="shape" ><rect x="106" y="539" width="264" height="276" style="fill:#EDF0FD;stroke:white;stroke-width:2;" /></g><text class="text" x="238.000000" y="568.000000" style="text-anchor:middle;font-size:24px;fill:#0A0F25">c</text></g><g id="a.1"><g class="shape" ><rect x="182" y="313" width="112" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="238.000000" y="379.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">1</text></g><g id="a.2"><g class="shape" ><rect x="314" y="313" width="113" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="370.500000" y="379.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">2</text></g><g id="a.c.d"><g class="shape" ><rect x="181" y="614" width="114" height="126" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="238.000000" y="680.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">d</text></g><g id="a.(b -&gt; c)[0]"><marker id="mk-1065319532" markerWidth="24.200000" markerHeight="18.000000" refX="20.800000" refY="9.000000" viewBox="0.000000 0.000000 24.200000 18.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon class="connection" fill="white" stroke="red" stroke-width="2" points="0.000000,9.000000 11.000000,2.250000 22.000000,9.000000 11.000000,16.200000" /> </marker><path d="M 143.500000 215.000000 L 143.500000 479.000000 S 143.500000 489.000000 153.500000 489.000000 L 162.500000 489.000000 S 172.500000 489.000000 172.500000 499.000000 L 172.500000 535.000000" class="connection" style="fill:none;stroke:red;stroke-width:2;" marker-end="url(#mk-1065319532)" mask="url(#3370555384)"/><text class="text-italic" x="144.000000" y="372.000000" style="text-anchor:middle;font-size:16px;fill:red"><tspan x="144.000000" dy="0.000000">line 1</tspan><tspan x="144.000000" dy="17.250000">line 2</tspan><tspan x="144.000000" dy="17.250000">line 3</tspan><tspan x="144.000000" dy="17.250000">line 4</tspan></text></g><g id="a.(1 -&gt; c)[0]"><marker id="mk-3990223579" 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 class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 238.500000 441.000000 L 238.500000 535.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#3370555384)"/></g><g id="a.(2 &lt;-&gt; c)[0]"><marker id="mk-2510427236" 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 class="connection" fill="#0D32B2" stroke-width="2" points="10.000000,0.000000 0.000000,6.000000 10.000000,12.000000" /> </marker><path d="M 371.000000 443.000000 L 371.000000 479.000000 S 371.000000 489.000000 361.000000 489.000000 L 314.500000 489.000000 S 304.500000 489.000000 304.500000 499.000000 L 304.500000 535.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-start="url(#mk-2510427236)" marker-end="url(#mk-3990223579)" mask="url(#3370555384)"/></g><mask id="3370555384" maskUnits="userSpaceOnUse" x="-100" y="-100" width="694" height="1082">
<rect x="-100" y="-100" width="694" height="1082" fill="white"></rect> <rect x="-100" y="-100" width="694" height="1082" fill="white"></rect>
<rect x="126.000000" y="356.000000" width="36" height="69" fill="black"></rect> <rect x="126.000000" y="356.000000" width="36" height="69" fill="black"></rect>
</mask><style type="text/css"><![CDATA[ </mask><style type="text/css"><![CDATA[

Before

Width:  |  Height:  |  Size: 794 KiB

After

Width:  |  Height:  |  Size: 794 KiB

View file

@ -21,6 +21,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -61,6 +62,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -101,6 +103,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -141,6 +144,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -181,6 +185,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -221,6 +226,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,

View file

@ -39,7 +39,7 @@ width="2832" height="441" viewBox="-102 -102 2832 441"><style type="text/css">
svgEl.setAttribute("height", height * ratio - 16); svgEl.setAttribute("height", height * ratio - 16);
} }
}); });
]]></script><g id="build_workflow"><g class="shape" ><rect x="0" y="0" width="2628" height="237" style="fill:#E3E9FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text" x="1314.000000" y="33.000000" style="text-anchor:middle;font-size:28px;fill:#0A0F25">lambda-build.yaml</text></g><g id="build_workflow.push"><g class="shape" ><rect x="105" y="50" width="330" height="137" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="270.000000" y="125.000000" style="text-anchor:middle;font-size:25px;fill:#0A0F25">Push to main branch</text></g><g id="build_workflow.GHA"><g class="shape" ><rect x="698" y="50" width="269" height="137" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="832.500000" y="125.000000" style="text-anchor:middle;font-size:25px;fill:#0A0F25">GitHub Actions</text></g><g id="build_workflow.S3"><g class="shape" ><rect x="1314" y="50" width="131" height="137" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="1379.500000" y="125.000000" style="text-anchor:middle;font-size:25px;fill:#0A0F25">S3</text></g><g id="build_workflow.Terraform"><g class="shape" ><rect x="1773" y="50" width="218" height="137" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="1882.000000" y="125.000000" style="text-anchor:middle;font-size:25px;fill:#0A0F25">Terraform</text></g><g id="build_workflow.AWS"><g class="shape" ><rect x="2369" y="50" width="155" height="137" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="2446.500000" y="125.000000" style="text-anchor:middle;font-size:25px;fill:#0A0F25">AWS</text></g><g id="build_workflow.(push -&gt; GHA)[0]"><marker id="mk-3990223579" 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 class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 437.500000 118.500000 C 539.900000 118.500000 592.300000 118.500000 693.500000 118.500000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#1822398317)"/><text class="text-italic" x="567.000000" y="124.000000" style="text-anchor:middle;font-size:16px;fill:#676C7E">Triggers</text></g><g id="build_workflow.(GHA -&gt; S3)[0]"><path d="M 968.500000 118.500000 C 1105.300000 118.500000 1174.700000 118.500000 1309.500000 118.500000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#1822398317)"/><text class="text-italic" x="1140.000000" y="124.000000" style="text-anchor:middle;font-size:16px;fill:#676C7E">Builds zip &amp; pushes it</text></g><g id="build_workflow.(S3 &lt;-&gt; Terraform)[0]"><marker id="mk-2510427236" 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 class="connection" fill="#0D32B2" stroke-width="2" points="10.000000,0.000000 0.000000,6.000000 10.000000,12.000000" /> </marker><path d="M 1449.500000 118.500000 C 1575.900000 118.500000 1641.300000 118.500000 1768.500000 118.500000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-start="url(#mk-2510427236)" marker-end="url(#mk-3990223579)" mask="url(#1822398317)"/><text class="text-italic" x="1609.500000" y="124.000000" style="text-anchor:middle;font-size:16px;fill:#676C7E">Pulls zip to deploy</text></g><g id="build_workflow.(Terraform -&gt; AWS)[0]"><path d="M 1993.500000 118.500000 C 2141.900000 118.500000 2217.300000 118.500000 2364.500000 118.500000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#1822398317)"/><text class="text-italic" x="2180.500000" y="124.000000" style="text-anchor:middle;font-size:16px;fill:#676C7E">Changes the live lambdas</text></g><mask id="1822398317" maskUnits="userSpaceOnUse" x="-100" y="-100" width="2832" height="441"> ]]></script><g id="build_workflow"><g class="shape" ><rect x="0" y="0" width="2628" height="237" style="fill:#E3E9FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text" x="1314.000000" y="33.000000" style="text-anchor:middle;font-size:28px;fill:#0A0F25">lambda-build.yaml</text></g><g id="build_workflow.push"><g class="shape" ><rect x="105" y="50" width="330" height="137" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="270.000000" y="125.000000" style="text-anchor:middle;font-size:25px;fill:#0A0F25">Push to main branch</text></g><g id="build_workflow.GHA"><g class="shape" ><rect x="698" y="50" width="269" height="137" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="832.500000" y="125.000000" style="text-anchor:middle;font-size:25px;fill:#0A0F25">GitHub Actions</text></g><g id="build_workflow.S3"><g class="shape" ><rect x="1314" y="50" width="131" height="137" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="1379.500000" y="125.000000" style="text-anchor:middle;font-size:25px;fill:#0A0F25">S3</text></g><g id="build_workflow.Terraform"><g class="shape" ><rect x="1773" y="50" width="218" height="137" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="1882.000000" y="125.000000" style="text-anchor:middle;font-size:25px;fill:#0A0F25">Terraform</text></g><g id="build_workflow.AWS"><g class="shape" ><rect x="2369" y="50" width="155" height="137" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="2446.500000" y="125.000000" style="text-anchor:middle;font-size:25px;fill:#0A0F25">AWS</text></g><g id="build_workflow.(push -&gt; GHA)[0]"><marker id="mk-3990223579" 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 class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 437.500000 118.500000 C 539.900000 118.500000 592.300000 118.500000 693.500000 118.500000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#3697729349)"/><text class="text-italic" x="567.000000" y="124.000000" style="text-anchor:middle;font-size:16px;fill:#676C7E">Triggers</text></g><g id="build_workflow.(GHA -&gt; S3)[0]"><path d="M 968.500000 118.500000 C 1105.300000 118.500000 1174.700000 118.500000 1309.500000 118.500000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#3697729349)"/><text class="text-italic" x="1140.000000" y="124.000000" style="text-anchor:middle;font-size:16px;fill:#676C7E">Builds zip &amp; pushes it</text></g><g id="build_workflow.(S3 &lt;-&gt; Terraform)[0]"><marker id="mk-2510427236" 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 class="connection" fill="#0D32B2" stroke-width="2" points="10.000000,0.000000 0.000000,6.000000 10.000000,12.000000" /> </marker><path d="M 1449.500000 118.500000 C 1575.900000 118.500000 1641.300000 118.500000 1768.500000 118.500000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-start="url(#mk-2510427236)" marker-end="url(#mk-3990223579)" mask="url(#3697729349)"/><text class="text-italic" x="1609.500000" y="124.000000" style="text-anchor:middle;font-size:16px;fill:#676C7E">Pulls zip to deploy</text></g><g id="build_workflow.(Terraform -&gt; AWS)[0]"><path d="M 1993.500000 118.500000 C 2141.900000 118.500000 2217.300000 118.500000 2364.500000 118.500000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#3697729349)"/><text class="text-italic" x="2180.500000" y="124.000000" style="text-anchor:middle;font-size:16px;fill:#676C7E">Changes the live lambdas</text></g><mask id="3697729349" maskUnits="userSpaceOnUse" x="-100" y="-100" width="2832" height="441">
<rect x="-100" y="-100" width="2832" height="441" fill="white"></rect> <rect x="-100" y="-100" width="2832" height="441" fill="white"></rect>
<rect x="540.000000" y="108.000000" width="54" height="21" fill="black"></rect> <rect x="540.000000" y="108.000000" width="54" height="21" fill="black"></rect>
<rect x="1071.000000" y="108.000000" width="138" height="21" fill="black"></rect> <rect x="1071.000000" y="108.000000" width="138" height="21" fill="black"></rect>

Before

Width:  |  Height:  |  Size: 795 KiB

After

Width:  |  Height:  |  Size: 795 KiB

View file

@ -21,6 +21,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -61,6 +62,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -101,6 +103,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -141,6 +144,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -181,6 +185,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -221,6 +226,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,

View file

@ -39,7 +39,7 @@ width="2737" height="491" viewBox="-90 -90 2737 491"><style type="text/css">
svgEl.setAttribute("height", height * ratio - 16); svgEl.setAttribute("height", height * ratio - 16);
} }
}); });
]]></script><g id="build_workflow"><g class="shape" ><rect x="12" y="12" width="2533" height="287" style="fill:#E3E9FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text" x="1278.500000" y="45.000000" style="text-anchor:middle;font-size:28px;fill:#0A0F25">lambda-build.yaml</text></g><g id="build_workflow.push"><g class="shape" ><rect x="87" y="87" width="330" height="137" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="252.000000" y="162.000000" style="text-anchor:middle;font-size:25px;fill:#0A0F25">Push to main branch</text></g><g id="build_workflow.GHA"><g class="shape" ><rect x="671" y="87" width="269" height="137" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="805.500000" y="162.000000" style="text-anchor:middle;font-size:25px;fill:#0A0F25">GitHub Actions</text></g><g id="build_workflow.S3"><g class="shape" ><rect x="1278" y="87" width="131" height="137" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="1343.500000" y="162.000000" style="text-anchor:middle;font-size:25px;fill:#0A0F25">S3</text></g><g id="build_workflow.Terraform"><g class="shape" ><rect x="1728" y="87" width="218" height="137" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="1837.000000" y="162.000000" style="text-anchor:middle;font-size:25px;fill:#0A0F25">Terraform</text></g><g id="build_workflow.AWS"><g class="shape" ><rect x="2315" y="87" width="155" height="137" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="2392.500000" y="162.000000" style="text-anchor:middle;font-size:25px;fill:#0A0F25">AWS</text></g><g id="build_workflow.(push -&gt; GHA)[0]"><marker id="mk-3990223579" 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 class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 419.000000 155.500000 L 667.000000 155.500000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#2045784583)"/><text class="text-italic" x="544.000000" y="161.000000" style="text-anchor:middle;font-size:16px;fill:#676C7E">Triggers</text></g><g id="build_workflow.(GHA -&gt; S3)[0]"><path d="M 942.000000 155.500000 L 1274.000000 155.500000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#2045784583)"/><text class="text-italic" x="1109.000000" y="161.000000" style="text-anchor:middle;font-size:16px;fill:#676C7E">Builds zip &amp; pushes it</text></g><g id="build_workflow.(S3 &lt;-&gt; Terraform)[0]"><marker id="mk-2510427236" 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 class="connection" fill="#0D32B2" stroke-width="2" points="10.000000,0.000000 0.000000,6.000000 10.000000,12.000000" /> </marker><path d="M 1413.000000 155.500000 L 1724.000000 155.500000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-start="url(#mk-2510427236)" marker-end="url(#mk-3990223579)" mask="url(#2045784583)"/><text class="text-italic" x="1568.500000" y="161.000000" style="text-anchor:middle;font-size:16px;fill:#676C7E">Pulls zip to deploy</text></g><g id="build_workflow.(Terraform -&gt; AWS)[0]"><path d="M 1948.000000 155.500000 L 2311.000000 155.500000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#2045784583)"/><text class="text-italic" x="2130.500000" y="161.000000" style="text-anchor:middle;font-size:16px;fill:#676C7E">Changes the live lambdas</text></g><mask id="2045784583" maskUnits="userSpaceOnUse" x="-100" y="-100" width="2737" height="491"> ]]></script><g id="build_workflow"><g class="shape" ><rect x="12" y="12" width="2533" height="287" style="fill:#E3E9FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text" x="1278.500000" y="45.000000" style="text-anchor:middle;font-size:28px;fill:#0A0F25">lambda-build.yaml</text></g><g id="build_workflow.push"><g class="shape" ><rect x="87" y="87" width="330" height="137" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="252.000000" y="162.000000" style="text-anchor:middle;font-size:25px;fill:#0A0F25">Push to main branch</text></g><g id="build_workflow.GHA"><g class="shape" ><rect x="671" y="87" width="269" height="137" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="805.500000" y="162.000000" style="text-anchor:middle;font-size:25px;fill:#0A0F25">GitHub Actions</text></g><g id="build_workflow.S3"><g class="shape" ><rect x="1278" y="87" width="131" height="137" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="1343.500000" y="162.000000" style="text-anchor:middle;font-size:25px;fill:#0A0F25">S3</text></g><g id="build_workflow.Terraform"><g class="shape" ><rect x="1728" y="87" width="218" height="137" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="1837.000000" y="162.000000" style="text-anchor:middle;font-size:25px;fill:#0A0F25">Terraform</text></g><g id="build_workflow.AWS"><g class="shape" ><rect x="2315" y="87" width="155" height="137" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="2392.500000" y="162.000000" style="text-anchor:middle;font-size:25px;fill:#0A0F25">AWS</text></g><g id="build_workflow.(push -&gt; GHA)[0]"><marker id="mk-3990223579" 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 class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 419.000000 155.500000 L 667.000000 155.500000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#2089705521)"/><text class="text-italic" x="544.000000" y="161.000000" style="text-anchor:middle;font-size:16px;fill:#676C7E">Triggers</text></g><g id="build_workflow.(GHA -&gt; S3)[0]"><path d="M 942.000000 155.500000 L 1274.000000 155.500000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#2089705521)"/><text class="text-italic" x="1109.000000" y="161.000000" style="text-anchor:middle;font-size:16px;fill:#676C7E">Builds zip &amp; pushes it</text></g><g id="build_workflow.(S3 &lt;-&gt; Terraform)[0]"><marker id="mk-2510427236" 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 class="connection" fill="#0D32B2" stroke-width="2" points="10.000000,0.000000 0.000000,6.000000 10.000000,12.000000" /> </marker><path d="M 1413.000000 155.500000 L 1724.000000 155.500000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-start="url(#mk-2510427236)" marker-end="url(#mk-3990223579)" mask="url(#2089705521)"/><text class="text-italic" x="1568.500000" y="161.000000" style="text-anchor:middle;font-size:16px;fill:#676C7E">Pulls zip to deploy</text></g><g id="build_workflow.(Terraform -&gt; AWS)[0]"><path d="M 1948.000000 155.500000 L 2311.000000 155.500000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#2089705521)"/><text class="text-italic" x="2130.500000" y="161.000000" style="text-anchor:middle;font-size:16px;fill:#676C7E">Changes the live lambdas</text></g><mask id="2089705521" maskUnits="userSpaceOnUse" x="-100" y="-100" width="2737" height="491">
<rect x="-100" y="-100" width="2737" height="491" fill="white"></rect> <rect x="-100" y="-100" width="2737" height="491" fill="white"></rect>
<rect x="517.000000" y="145.000000" width="54" height="21" fill="black"></rect> <rect x="517.000000" y="145.000000" width="54" height="21" fill="black"></rect>
<rect x="1040.000000" y="145.000000" width="138" height="21" fill="black"></rect> <rect x="1040.000000" y="145.000000" width="138" height="21" fill="black"></rect>

Before

Width:  |  Height:  |  Size: 795 KiB

After

Width:  |  Height:  |  Size: 795 KiB

View file

@ -21,6 +21,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -61,6 +62,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -101,6 +103,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -141,6 +144,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -181,6 +185,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -221,6 +226,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -261,6 +267,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,

View file

@ -39,7 +39,7 @@ width="1431" height="572" viewBox="-102 -102 1431 572"><style type="text/css">
svgEl.setAttribute("height", height * ratio - 16); svgEl.setAttribute("height", height * ratio - 16);
} }
}); });
]]></script><g id="&#34;ninety\nnine&#34;"><g class="shape" ><rect x="0" y="0" width="151" height="142" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="75.500000" y="66.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25"><tspan x="75.500000" dy="0.000000">ninety</tspan><tspan x="75.500000" dy="21.000000">nine</tspan></text></g><g id="eighty&#xD;eight"><g class="shape" ><rect x="211" y="8" width="151" height="126" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="286.500000" y="74.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">eighty&#xD;eight</text></g><g id="&#34;seventy&#xD;\nseven&#34;"><g class="shape" ><rect x="422" y="0" width="162" height="142" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="503.000000" y="66.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25"><tspan x="503.000000" dy="0.000000">seventy&#xD;</tspan><tspan x="503.000000" dy="21.000000">seven</tspan></text></g><g id="&#34;a\\yode&#34;"><g class="shape" ><rect x="644" y="8" width="154" height="126" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="721.000000" y="74.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">a\yode</text></g><g id="there"><g class="shape" ><rect x="864" y="242" width="143" height="126" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="935.500000" y="308.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">there</text></g><g id="&#39;a\&#34;ode&#39;"><g class="shape" ><rect x="858" y="8" width="154" height="126" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="935.000000" y="74.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">a\&#34;ode</text></g><g id="&#34;a\\node&#34;"><g class="shape" ><rect x="1072" y="8" width="155" height="126" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="1149.500000" y="74.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">a\node</text></g><g id="(&#34;a\\yode&#34; -&gt; there)[0]"><marker id="mk-3990223579" 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 class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 721.000000 136.000000 C 721.000000 180.400000 749.500000 207.049065 859.962840 265.377574" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#128508962)"/></g><g id="(&#39;a\&#34;ode&#39; -&gt; there)[0]"><path d="M 935.000000 136.000000 C 935.000000 180.400000 935.000000 202.000000 935.000000 238.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#128508962)"/></g><g id="(&#34;a\\node&#34; -&gt; there)[0]"><path d="M 1149.500000 136.000000 C 1149.500000 180.400000 1120.900000 207.000000 1010.042356 265.142121" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#128508962)"/></g><mask id="128508962" maskUnits="userSpaceOnUse" x="-100" y="-100" width="1431" height="572"> ]]></script><g id="&#34;ninety\nnine&#34;"><g class="shape" ><rect x="0" y="0" width="151" height="142" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="75.500000" y="66.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25"><tspan x="75.500000" dy="0.000000">ninety</tspan><tspan x="75.500000" dy="21.000000">nine</tspan></text></g><g id="eighty&#xD;eight"><g class="shape" ><rect x="211" y="8" width="151" height="126" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="286.500000" y="74.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">eighty&#xD;eight</text></g><g id="&#34;seventy&#xD;\nseven&#34;"><g class="shape" ><rect x="422" y="0" width="162" height="142" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="503.000000" y="66.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25"><tspan x="503.000000" dy="0.000000">seventy&#xD;</tspan><tspan x="503.000000" dy="21.000000">seven</tspan></text></g><g id="&#34;a\\yode&#34;"><g class="shape" ><rect x="644" y="8" width="154" height="126" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="721.000000" y="74.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">a\yode</text></g><g id="there"><g class="shape" ><rect x="864" y="242" width="143" height="126" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="935.500000" y="308.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">there</text></g><g id="&#39;a\&#34;ode&#39;"><g class="shape" ><rect x="858" y="8" width="154" height="126" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="935.000000" y="74.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">a\&#34;ode</text></g><g id="&#34;a\\node&#34;"><g class="shape" ><rect x="1072" y="8" width="155" height="126" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="1149.500000" y="74.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">a\node</text></g><g id="(&#34;a\\yode&#34; -&gt; there)[0]"><marker id="mk-3990223579" 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 class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 721.000000 136.000000 C 721.000000 180.400000 749.500000 207.049065 859.962840 265.377574" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#2074513119)"/></g><g id="(&#39;a\&#34;ode&#39; -&gt; there)[0]"><path d="M 935.000000 136.000000 C 935.000000 180.400000 935.000000 202.000000 935.000000 238.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#2074513119)"/></g><g id="(&#34;a\\node&#34; -&gt; there)[0]"><path d="M 1149.500000 136.000000 C 1149.500000 180.400000 1120.900000 207.000000 1010.042356 265.142121" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#2074513119)"/></g><mask id="2074513119" maskUnits="userSpaceOnUse" x="-100" y="-100" width="1431" height="572">
<rect x="-100" y="-100" width="1431" height="572" fill="white"></rect> <rect x="-100" y="-100" width="1431" height="572" fill="white"></rect>
</mask><style type="text/css"><![CDATA[ </mask><style type="text/css"><![CDATA[

Before

Width:  |  Height:  |  Size: 327 KiB

After

Width:  |  Height:  |  Size: 327 KiB

View file

@ -21,6 +21,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -61,6 +62,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -101,6 +103,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -141,6 +144,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -181,6 +185,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -221,6 +226,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -261,6 +267,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,

View file

@ -39,7 +39,7 @@ width="1231" height="572" viewBox="-90 -90 1231 572"><style type="text/css">
svgEl.setAttribute("height", height * ratio - 16); svgEl.setAttribute("height", height * ratio - 16);
} }
}); });
]]></script><g id="&#34;ninety\nnine&#34;"><g class="shape" ><rect x="12" y="12" width="151" height="142" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="87.500000" y="78.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25"><tspan x="87.500000" dy="0.000000">ninety</tspan><tspan x="87.500000" dy="21.000000">nine</tspan></text></g><g id="eighty&#xD;eight"><g class="shape" ><rect x="183" y="20" width="151" height="126" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="258.500000" y="86.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">eighty&#xD;eight</text></g><g id="&#34;seventy&#xD;\nseven&#34;"><g class="shape" ><rect x="354" y="12" width="162" height="142" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="435.000000" y="78.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25"><tspan x="435.000000" dy="0.000000">seventy&#xD;</tspan><tspan x="435.000000" dy="21.000000">seven</tspan></text></g><g id="&#34;a\\yode&#34;"><g class="shape" ><rect x="536" y="28" width="154" height="126" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="613.000000" y="94.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">a\yode</text></g><g id="there"><g class="shape" ><rect x="715" y="254" width="143" height="126" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="786.500000" y="320.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">there</text></g><g id="&#39;a\&#34;ode&#39;"><g class="shape" ><rect x="710" y="28" width="154" height="126" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="787.000000" y="94.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">a\&#34;ode</text></g><g id="&#34;a\\node&#34;"><g class="shape" ><rect x="884" y="28" width="155" height="126" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="961.500000" y="94.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">a\node</text></g><g id="(&#34;a\\yode&#34; -&gt; there)[0]"><marker id="mk-3990223579" 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 class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 613.000000 156.000000 L 613.000000 194.000000 S 613.000000 204.000000 623.000000 204.000000 L 741.250000 204.000000 S 751.250000 204.000000 751.250000 214.000000 L 751.250000 250.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#3547835877)"/></g><g id="(&#39;a\&#34;ode&#39; -&gt; there)[0]"><path d="M 787.000000 156.000000 L 787.000000 250.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#3547835877)"/></g><g id="(&#34;a\\node&#34; -&gt; there)[0]"><path d="M 961.500000 156.000000 L 961.500000 194.000000 S 961.500000 204.000000 951.500000 204.000000 L 832.750000 204.000000 S 822.750000 204.000000 822.750000 214.000000 L 822.750000 250.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#3547835877)"/></g><mask id="3547835877" maskUnits="userSpaceOnUse" x="-100" y="-100" width="1231" height="572"> ]]></script><g id="&#34;ninety\nnine&#34;"><g class="shape" ><rect x="12" y="12" width="151" height="142" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="87.500000" y="78.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25"><tspan x="87.500000" dy="0.000000">ninety</tspan><tspan x="87.500000" dy="21.000000">nine</tspan></text></g><g id="eighty&#xD;eight"><g class="shape" ><rect x="183" y="20" width="151" height="126" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="258.500000" y="86.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">eighty&#xD;eight</text></g><g id="&#34;seventy&#xD;\nseven&#34;"><g class="shape" ><rect x="354" y="12" width="162" height="142" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="435.000000" y="78.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25"><tspan x="435.000000" dy="0.000000">seventy&#xD;</tspan><tspan x="435.000000" dy="21.000000">seven</tspan></text></g><g id="&#34;a\\yode&#34;"><g class="shape" ><rect x="536" y="28" width="154" height="126" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="613.000000" y="94.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">a\yode</text></g><g id="there"><g class="shape" ><rect x="715" y="254" width="143" height="126" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="786.500000" y="320.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">there</text></g><g id="&#39;a\&#34;ode&#39;"><g class="shape" ><rect x="710" y="28" width="154" height="126" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="787.000000" y="94.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">a\&#34;ode</text></g><g id="&#34;a\\node&#34;"><g class="shape" ><rect x="884" y="28" width="155" height="126" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="961.500000" y="94.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">a\node</text></g><g id="(&#34;a\\yode&#34; -&gt; there)[0]"><marker id="mk-3990223579" 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 class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 613.000000 156.000000 L 613.000000 194.000000 S 613.000000 204.000000 623.000000 204.000000 L 741.250000 204.000000 S 751.250000 204.000000 751.250000 214.000000 L 751.250000 250.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#498943364)"/></g><g id="(&#39;a\&#34;ode&#39; -&gt; there)[0]"><path d="M 787.000000 156.000000 L 787.000000 250.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#498943364)"/></g><g id="(&#34;a\\node&#34; -&gt; there)[0]"><path d="M 961.500000 156.000000 L 961.500000 194.000000 S 961.500000 204.000000 951.500000 204.000000 L 832.750000 204.000000 S 822.750000 204.000000 822.750000 214.000000 L 822.750000 250.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#498943364)"/></g><mask id="498943364" maskUnits="userSpaceOnUse" x="-100" y="-100" width="1231" height="572">
<rect x="-100" y="-100" width="1231" height="572" fill="white"></rect> <rect x="-100" y="-100" width="1231" height="572" fill="white"></rect>
</mask><style type="text/css"><![CDATA[ </mask><style type="text/css"><![CDATA[

Before

Width:  |  Height:  |  Size: 328 KiB

After

Width:  |  Height:  |  Size: 328 KiB

View file

@ -21,6 +21,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -61,6 +62,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -101,6 +103,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -141,6 +144,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -181,6 +185,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -221,6 +226,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -261,6 +267,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -301,6 +308,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -341,6 +349,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -381,6 +390,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -421,6 +431,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -461,6 +472,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -501,6 +513,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -541,6 +554,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 799 KiB

After

Width:  |  Height:  |  Size: 799 KiB

View file

@ -21,6 +21,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -61,6 +62,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -101,6 +103,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -141,6 +144,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -181,6 +185,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -221,6 +226,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -261,6 +267,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -301,6 +308,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -341,6 +349,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -381,6 +390,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -421,6 +431,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -461,6 +472,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -501,6 +513,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -541,6 +554,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 799 KiB

After

Width:  |  Height:  |  Size: 799 KiB

View file

@ -21,6 +21,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": { "icon": {
@ -71,6 +72,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": { "icon": {

View file

@ -39,7 +39,7 @@ width="492" height="332" viewBox="-102 -102 492 332"><style type="text/css">
svgEl.setAttribute("height", height * ratio - 16); svgEl.setAttribute("height", height * ratio - 16);
} }
}); });
]]></script><g id="img"><g class="shape" ><image href="https://icons.terrastruct.com/infra/019-network.svg" x="0" y="0" width="128" height="128" style="fill:#FFFFFF;stroke:#0D32B2;stroke-width:2;" /></g></g><g id="ico"><g class="shape" ><rect x="188" y="14" width="100" height="100" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><image href="https://icons.terrastruct.com/infra/019-network.svg" x="213.000000" y="39.000000" width="50" height="50" /></g><mask id="3001644987" maskUnits="userSpaceOnUse" x="-100" y="-100" width="492" height="332"> ]]></script><g id="img"><g class="shape" ><image href="https://icons.terrastruct.com/infra/019-network.svg" x="0" y="0" width="128" height="128" style="fill:#FFFFFF;stroke:#0D32B2;stroke-width:2;" /></g></g><g id="ico"><g class="shape" ><rect x="188" y="14" width="100" height="100" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><image href="https://icons.terrastruct.com/infra/019-network.svg" x="213.000000" y="39.000000" width="50" height="50" /></g><mask id="2468208653" maskUnits="userSpaceOnUse" x="-100" y="-100" width="492" height="332">
<rect x="-100" y="-100" width="492" height="332" fill="white"></rect> <rect x="-100" y="-100" width="492" height="332" fill="white"></rect>
</mask><style type="text/css"><![CDATA[]]></style></svg> </mask><style type="text/css"><![CDATA[]]></style></svg>

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

View file

@ -21,6 +21,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": { "icon": {
@ -71,6 +72,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": { "icon": {

View file

@ -39,7 +39,7 @@ width="452" height="332" viewBox="-90 -90 452 332"><style type="text/css">
svgEl.setAttribute("height", height * ratio - 16); svgEl.setAttribute("height", height * ratio - 16);
} }
}); });
]]></script><g id="img"><g class="shape" ><image href="https://icons.terrastruct.com/infra/019-network.svg" x="12" y="12" width="128" height="128" style="fill:#FFFFFF;stroke:#0D32B2;stroke-width:2;" /></g></g><g id="ico"><g class="shape" ><rect x="160" y="26" width="100" height="100" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><image href="https://icons.terrastruct.com/infra/019-network.svg" x="185.000000" y="51.000000" width="50" height="50" /></g><mask id="3580385730" maskUnits="userSpaceOnUse" x="-100" y="-100" width="452" height="332"> ]]></script><g id="img"><g class="shape" ><image href="https://icons.terrastruct.com/infra/019-network.svg" x="12" y="12" width="128" height="128" style="fill:#FFFFFF;stroke:#0D32B2;stroke-width:2;" /></g></g><g id="ico"><g class="shape" ><rect x="160" y="26" width="100" height="100" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><image href="https://icons.terrastruct.com/infra/019-network.svg" x="185.000000" y="51.000000" width="50" height="50" /></g><mask id="882453984" maskUnits="userSpaceOnUse" x="-100" y="-100" width="452" height="332">
<rect x="-100" y="-100" width="452" height="332" fill="white"></rect> <rect x="-100" y="-100" width="452" height="332" fill="white"></rect>
</mask><style type="text/css"><![CDATA[]]></style></svg> </mask><style type="text/css"><![CDATA[]]></style></svg>

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

View file

@ -21,6 +21,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -61,6 +62,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -101,6 +103,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,

View file

@ -39,7 +39,7 @@ width="630" height="430" viewBox="-102 -102 630 430"><style type="text/css">
svgEl.setAttribute("height", height * ratio - 16); svgEl.setAttribute("height", height * ratio - 16);
} }
}); });
]]></script><g id="x"><g class="shape" ><rect x="0" y="0" width="426" height="226" style="fill:#E3E9FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text" x="213.000000" y="33.000000" style="text-anchor:middle;font-size:28px;fill:#0A0F25">x</text></g><g id="x.a"><g class="shape" ><rect x="50" y="50" width="113" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="106.500000" y="116.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">a</text></g><g id="x.b"><g class="shape" ><rect x="263" y="50" width="113" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="319.500000" y="116.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">b</text></g><g id="x.(a -&gt; a)[0]"><marker id="mk-3990223579" 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 class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 164.637464 72.228272 C 189.666667 54.675325 198.000000 50.000000 200.500000 50.000000 C 203.000000 50.000000 206.333333 62.600000 208.833333 81.500000 C 211.333333 100.400000 211.333333 125.600000 208.833333 144.500000 C 206.333333 163.400000 189.666667 171.324675 166.274928 154.920080" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#1595341167)"/></g><mask id="1595341167" maskUnits="userSpaceOnUse" x="-100" y="-100" width="630" height="430"> ]]></script><g id="x"><g class="shape" ><rect x="0" y="0" width="426" height="226" style="fill:#E3E9FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text" x="213.000000" y="33.000000" style="text-anchor:middle;font-size:28px;fill:#0A0F25">x</text></g><g id="x.a"><g class="shape" ><rect x="50" y="50" width="113" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="106.500000" y="116.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">a</text></g><g id="x.b"><g class="shape" ><rect x="263" y="50" width="113" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="319.500000" y="116.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">b</text></g><g id="x.(a -&gt; a)[0]"><marker id="mk-3990223579" 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 class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 164.637464 72.228272 C 189.666667 54.675325 198.000000 50.000000 200.500000 50.000000 C 203.000000 50.000000 206.333333 62.600000 208.833333 81.500000 C 211.333333 100.400000 211.333333 125.600000 208.833333 144.500000 C 206.333333 163.400000 189.666667 171.324675 166.274928 154.920080" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#1725002276)"/></g><mask id="1725002276" maskUnits="userSpaceOnUse" x="-100" y="-100" width="630" height="430">
<rect x="-100" y="-100" width="630" height="430" fill="white"></rect> <rect x="-100" y="-100" width="630" height="430" fill="white"></rect>
</mask><style type="text/css"><![CDATA[ </mask><style type="text/css"><![CDATA[

Before

Width:  |  Height:  |  Size: 649 KiB

After

Width:  |  Height:  |  Size: 649 KiB

View file

@ -21,6 +21,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -61,6 +62,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -101,6 +103,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,

View file

@ -39,7 +39,7 @@ width="650" height="480" viewBox="-90 -90 650 480"><style type="text/css">
svgEl.setAttribute("height", height * ratio - 16); svgEl.setAttribute("height", height * ratio - 16);
} }
}); });
]]></script><g id="x"><g class="shape" ><rect x="12" y="12" width="446" height="276" style="fill:#E3E9FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text" x="235.000000" y="45.000000" style="text-anchor:middle;font-size:28px;fill:#0A0F25">x</text></g><g id="x.a"><g class="shape" ><rect x="137" y="87" width="113" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="193.500000" y="153.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">a</text></g><g id="x.b"><g class="shape" ><rect x="270" y="87" width="113" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="326.500000" y="153.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">b</text></g><g id="x.(a -&gt; a)[0]"><marker id="mk-3990223579" 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 class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 135.000000 129.000000 L 97.000000 129.000000 S 87.000000 129.000000 87.000000 139.000000 L 87.000000 161.000000 S 87.000000 171.000000 97.000000 171.000000 L 133.000000 171.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#4061713380)"/></g><mask id="4061713380" maskUnits="userSpaceOnUse" x="-100" y="-100" width="650" height="480"> ]]></script><g id="x"><g class="shape" ><rect x="12" y="12" width="446" height="276" style="fill:#E3E9FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text" x="235.000000" y="45.000000" style="text-anchor:middle;font-size:28px;fill:#0A0F25">x</text></g><g id="x.a"><g class="shape" ><rect x="137" y="87" width="113" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="193.500000" y="153.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">a</text></g><g id="x.b"><g class="shape" ><rect x="270" y="87" width="113" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="326.500000" y="153.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">b</text></g><g id="x.(a -&gt; a)[0]"><marker id="mk-3990223579" 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 class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 135.000000 129.000000 L 97.000000 129.000000 S 87.000000 129.000000 87.000000 139.000000 L 87.000000 161.000000 S 87.000000 171.000000 97.000000 171.000000 L 133.000000 171.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#1153458095)"/></g><mask id="1153458095" maskUnits="userSpaceOnUse" x="-100" y="-100" width="650" height="480">
<rect x="-100" y="-100" width="650" height="480" fill="white"></rect> <rect x="-100" y="-100" width="650" height="480" fill="white"></rect>
</mask><style type="text/css"><![CDATA[ </mask><style type="text/css"><![CDATA[

Before

Width:  |  Height:  |  Size: 649 KiB

After

Width:  |  Height:  |  Size: 649 KiB

View file

@ -21,6 +21,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -60,6 +61,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -100,6 +102,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -140,6 +143,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -180,6 +184,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -220,6 +225,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -260,6 +266,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -300,6 +307,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -340,6 +348,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -379,6 +388,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -418,6 +428,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -457,6 +468,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,

View file

@ -800,7 +800,7 @@ width="1540" height="554" viewBox="-102 -102 1540 554"><style type="text/css">
</div></foreignObject></g></g><g id="m2_desc"><g class="shape" ></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="452.000000" y="0.000000" width="61" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:transparent;color:#0A0F25;"><p>m2_desc</p> </div></foreignObject></g></g><g id="m2_desc"><g class="shape" ></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="452.000000" y="0.000000" width="61" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:transparent;color:#0A0F25;"><p>m2_desc</p>
</div></foreignObject></g></g><g id="m5_desc"><g class="shape" ></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="1008.000000" y="0.000000" width="61" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:transparent;color:#0A0F25;"><p>m5_desc</p> </div></foreignObject></g></g><g id="m5_desc"><g class="shape" ></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="1008.000000" y="0.000000" width="61" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:transparent;color:#0A0F25;"><p>m5_desc</p>
</div></foreignObject></g></g><g id="m6_desc"><g class="shape" ></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="1193.000000" y="0.000000" width="61" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:transparent;color:#0A0F25;"><p>m6_desc</p> </div></foreignObject></g></g><g id="m6_desc"><g class="shape" ></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="1193.000000" y="0.000000" width="61" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:transparent;color:#0A0F25;"><p>m6_desc</p>
</div></foreignObject></g></g><g id="queue.M0"><g class="shape" ><rect x="50" y="174" width="125" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="112.500000" y="240.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">M0</text></g><g id="queue.M1"><g class="shape" ><rect x="235" y="174" width="125" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="297.500000" y="240.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">M1</text></g><g id="queue.M2"><g class="shape" ><rect x="420" y="174" width="125" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="482.500000" y="240.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">M2</text></g><g id="queue.M3"><g class="shape" ><rect x="605" y="174" width="125" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="667.500000" y="240.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">M3</text></g><g id="queue.M4"><g class="shape" ><rect x="790" y="174" width="126" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="853.000000" y="240.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">M4</text></g><g id="queue.M5"><g class="shape" ><rect x="976" y="174" width="125" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="1038.500000" y="240.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">M5</text></g><g id="queue.M6"><g class="shape" ><rect x="1161" y="174" width="125" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="1223.500000" y="240.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">M6</text></g><g id="(m0_desc -&gt; queue.M0)[0]"><marker id="mk-3990223579" 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 class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 112.500000 26.000000 C 112.500000 64.000000 112.500000 134.000000 112.500000 170.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#2001515349)"/></g><g id="(m2_desc -&gt; queue.M2)[0]"><path d="M 482.500000 26.000000 C 482.500000 64.000000 482.500000 134.000000 482.500000 170.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#2001515349)"/></g><g id="(m5_desc -&gt; queue.M5)[0]"><path d="M 1038.500000 26.000000 C 1038.500000 64.000000 1038.500000 134.000000 1038.500000 170.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#2001515349)"/></g><g id="(m6_desc -&gt; queue.M6)[0]"><path d="M 1223.500000 26.000000 C 1223.500000 64.000000 1223.500000 134.000000 1223.500000 170.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#2001515349)"/></g><mask id="2001515349" maskUnits="userSpaceOnUse" x="-100" y="-100" width="1540" height="554"> </div></foreignObject></g></g><g id="queue.M0"><g class="shape" ><rect x="50" y="174" width="125" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="112.500000" y="240.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">M0</text></g><g id="queue.M1"><g class="shape" ><rect x="235" y="174" width="125" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="297.500000" y="240.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">M1</text></g><g id="queue.M2"><g class="shape" ><rect x="420" y="174" width="125" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="482.500000" y="240.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">M2</text></g><g id="queue.M3"><g class="shape" ><rect x="605" y="174" width="125" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="667.500000" y="240.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">M3</text></g><g id="queue.M4"><g class="shape" ><rect x="790" y="174" width="126" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="853.000000" y="240.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">M4</text></g><g id="queue.M5"><g class="shape" ><rect x="976" y="174" width="125" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="1038.500000" y="240.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">M5</text></g><g id="queue.M6"><g class="shape" ><rect x="1161" y="174" width="125" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="1223.500000" y="240.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">M6</text></g><g id="(m0_desc -&gt; queue.M0)[0]"><marker id="mk-3990223579" 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 class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 112.500000 26.000000 C 112.500000 64.000000 112.500000 134.000000 112.500000 170.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#39511731)"/></g><g id="(m2_desc -&gt; queue.M2)[0]"><path d="M 482.500000 26.000000 C 482.500000 64.000000 482.500000 134.000000 482.500000 170.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#39511731)"/></g><g id="(m5_desc -&gt; queue.M5)[0]"><path d="M 1038.500000 26.000000 C 1038.500000 64.000000 1038.500000 134.000000 1038.500000 170.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#39511731)"/></g><g id="(m6_desc -&gt; queue.M6)[0]"><path d="M 1223.500000 26.000000 C 1223.500000 64.000000 1223.500000 134.000000 1223.500000 170.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#39511731)"/></g><mask id="39511731" maskUnits="userSpaceOnUse" x="-100" y="-100" width="1540" height="554">
<rect x="-100" y="-100" width="1540" height="554" fill="white"></rect> <rect x="-100" y="-100" width="1540" height="554" fill="white"></rect>
</mask><style type="text/css"><![CDATA[ </mask><style type="text/css"><![CDATA[

Before

Width:  |  Height:  |  Size: 664 KiB

After

Width:  |  Height:  |  Size: 664 KiB

View file

@ -21,6 +21,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -60,6 +61,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -100,6 +102,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -140,6 +143,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -180,6 +184,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -220,6 +225,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -260,6 +266,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -300,6 +307,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -340,6 +348,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -379,6 +388,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -418,6 +428,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -457,6 +468,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,

View file

@ -800,7 +800,7 @@ width="1350" height="609" viewBox="-90 -90 1350 609"><style type="text/css">
</div></foreignObject></g></g><g id="m2_desc"><g class="shape" ></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="409.000000" y="12.000000" width="61" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:transparent;color:#0A0F25;"><p>m2_desc</p> </div></foreignObject></g></g><g id="m2_desc"><g class="shape" ></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="409.000000" y="12.000000" width="61" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:transparent;color:#0A0F25;"><p>m2_desc</p>
</div></foreignObject></g></g><g id="m5_desc"><g class="shape" ></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="845.000000" y="12.000000" width="61" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:transparent;color:#0A0F25;"><p>m5_desc</p> </div></foreignObject></g></g><g id="m5_desc"><g class="shape" ></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="845.000000" y="12.000000" width="61" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:transparent;color:#0A0F25;"><p>m5_desc</p>
</div></foreignObject></g></g><g id="m6_desc"><g class="shape" ></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="990.000000" y="12.000000" width="61" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:transparent;color:#0A0F25;"><p>m6_desc</p> </div></foreignObject></g></g><g id="m6_desc"><g class="shape" ></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="990.000000" y="12.000000" width="61" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:transparent;color:#0A0F25;"><p>m6_desc</p>
</div></foreignObject></g></g><g id="queue.M0"><g class="shape" ><rect x="87" y="216" width="125" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="149.500000" y="282.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">M0</text></g><g id="queue.M1"><g class="shape" ><rect x="232" y="216" width="125" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="294.500000" y="282.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">M1</text></g><g id="queue.M2"><g class="shape" ><rect x="377" y="216" width="125" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="439.500000" y="282.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">M2</text></g><g id="queue.M3"><g class="shape" ><rect x="522" y="216" width="125" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="584.500000" y="282.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">M3</text></g><g id="queue.M4"><g class="shape" ><rect x="667" y="216" width="126" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="730.000000" y="282.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">M4</text></g><g id="queue.M5"><g class="shape" ><rect x="813" y="216" width="125" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="875.500000" y="282.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">M5</text></g><g id="queue.M6"><g class="shape" ><rect x="958" y="216" width="125" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="1020.500000" y="282.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">M6</text></g><g id="(m0_desc -&gt; queue.M0)[0]"><marker id="mk-3990223579" 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 class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 149.500000 38.000000 L 149.500000 212.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#4042929953)"/></g><g id="(m2_desc -&gt; queue.M2)[0]"><path d="M 439.500000 38.000000 L 439.500000 212.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#4042929953)"/></g><g id="(m5_desc -&gt; queue.M5)[0]"><path d="M 875.500000 38.000000 L 875.500000 212.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#4042929953)"/></g><g id="(m6_desc -&gt; queue.M6)[0]"><path d="M 1020.500000 38.000000 L 1020.500000 212.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#4042929953)"/></g><mask id="4042929953" maskUnits="userSpaceOnUse" x="-100" y="-100" width="1350" height="609"> </div></foreignObject></g></g><g id="queue.M0"><g class="shape" ><rect x="87" y="216" width="125" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="149.500000" y="282.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">M0</text></g><g id="queue.M1"><g class="shape" ><rect x="232" y="216" width="125" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="294.500000" y="282.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">M1</text></g><g id="queue.M2"><g class="shape" ><rect x="377" y="216" width="125" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="439.500000" y="282.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">M2</text></g><g id="queue.M3"><g class="shape" ><rect x="522" y="216" width="125" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="584.500000" y="282.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">M3</text></g><g id="queue.M4"><g class="shape" ><rect x="667" y="216" width="126" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="730.000000" y="282.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">M4</text></g><g id="queue.M5"><g class="shape" ><rect x="813" y="216" width="125" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="875.500000" y="282.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">M5</text></g><g id="queue.M6"><g class="shape" ><rect x="958" y="216" width="125" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="1020.500000" y="282.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">M6</text></g><g id="(m0_desc -&gt; queue.M0)[0]"><marker id="mk-3990223579" 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 class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 149.500000 38.000000 L 149.500000 212.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#984919963)"/></g><g id="(m2_desc -&gt; queue.M2)[0]"><path d="M 439.500000 38.000000 L 439.500000 212.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#984919963)"/></g><g id="(m5_desc -&gt; queue.M5)[0]"><path d="M 875.500000 38.000000 L 875.500000 212.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#984919963)"/></g><g id="(m6_desc -&gt; queue.M6)[0]"><path d="M 1020.500000 38.000000 L 1020.500000 212.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#984919963)"/></g><mask id="984919963" maskUnits="userSpaceOnUse" x="-100" y="-100" width="1350" height="609">
<rect x="-100" y="-100" width="1350" height="609" fill="white"></rect> <rect x="-100" y="-100" width="1350" height="609" fill="white"></rect>
</mask><style type="text/css"><![CDATA[ </mask><style type="text/css"><![CDATA[

Before

Width:  |  Height:  |  Size: 664 KiB

After

Width:  |  Height:  |  Size: 664 KiB

View file

@ -21,6 +21,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -61,6 +62,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,

View file

@ -39,7 +39,7 @@ width="366" height="552" viewBox="-100 -100 366 552"><style type="text/css">
svgEl.setAttribute("height", height * ratio - 16); svgEl.setAttribute("height", height * ratio - 16);
} }
}); });
]]></script><g id="A"><g class="shape" ><rect x="13" y="0" width="140" height="126" style="fill:#FFFFFF;stroke:#0D32B2;stroke-width:0;" /></g><text class="text-bold" x="83.000000" y="66.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">hello</text></g><g id="B"><g class="shape" ><rect x="0" y="226" width="166" height="126" style="fill:#FFFFFF;stroke:#0D32B2;stroke-width:0;" /></g><text class="text-bold" x="83.000000" y="292.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">goodbye</text></g><g id="(A -&gt; B)[0]"><marker id="mk-3990223579" 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 class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 83.000000 127.000000 C 83.000000 166.000000 83.000000 186.000000 83.000000 223.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#3774985050)"/></g><mask id="3774985050" maskUnits="userSpaceOnUse" x="-100" y="-100" width="366" height="552"> ]]></script><g id="A"><g class="shape" ><rect x="13" y="0" width="140" height="126" style="fill:#FFFFFF;stroke:#0D32B2;stroke-width:0;" /></g><text class="text-bold" x="83.000000" y="66.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">hello</text></g><g id="B"><g class="shape" ><rect x="0" y="226" width="166" height="126" style="fill:#FFFFFF;stroke:#0D32B2;stroke-width:0;" /></g><text class="text-bold" x="83.000000" y="292.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">goodbye</text></g><g id="(A -&gt; B)[0]"><marker id="mk-3990223579" 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 class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 83.000000 127.000000 C 83.000000 166.000000 83.000000 186.000000 83.000000 223.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#3673457740)"/></g><mask id="3673457740" maskUnits="userSpaceOnUse" x="-100" y="-100" width="366" height="552">
<rect x="-100" y="-100" width="366" height="552" fill="white"></rect> <rect x="-100" y="-100" width="366" height="552" fill="white"></rect>
</mask><style type="text/css"><![CDATA[ </mask><style type="text/css"><![CDATA[

Before

Width:  |  Height:  |  Size: 325 KiB

After

Width:  |  Height:  |  Size: 325 KiB

View file

@ -21,6 +21,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -61,6 +62,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,

View file

@ -39,7 +39,7 @@ width="366" height="552" viewBox="-88 -88 366 552"><style type="text/css">
svgEl.setAttribute("height", height * ratio - 16); svgEl.setAttribute("height", height * ratio - 16);
} }
}); });
]]></script><g id="A"><g class="shape" ><rect x="25" y="12" width="140" height="126" style="fill:#FFFFFF;stroke:#0D32B2;stroke-width:0;" /></g><text class="text-bold" x="95.000000" y="78.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">hello</text></g><g id="B"><g class="shape" ><rect x="12" y="238" width="166" height="126" style="fill:#FFFFFF;stroke:#0D32B2;stroke-width:0;" /></g><text class="text-bold" x="95.000000" y="304.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">goodbye</text></g><g id="(A -&gt; B)[0]"><marker id="mk-3990223579" 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 class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 95.000000 139.000000 L 95.000000 235.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#1550694221)"/></g><mask id="1550694221" maskUnits="userSpaceOnUse" x="-100" y="-100" width="366" height="552"> ]]></script><g id="A"><g class="shape" ><rect x="25" y="12" width="140" height="126" style="fill:#FFFFFF;stroke:#0D32B2;stroke-width:0;" /></g><text class="text-bold" x="95.000000" y="78.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">hello</text></g><g id="B"><g class="shape" ><rect x="12" y="238" width="166" height="126" style="fill:#FFFFFF;stroke:#0D32B2;stroke-width:0;" /></g><text class="text-bold" x="95.000000" y="304.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">goodbye</text></g><g id="(A -&gt; B)[0]"><marker id="mk-3990223579" 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 class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 95.000000 139.000000 L 95.000000 235.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#3245083993)"/></g><mask id="3245083993" maskUnits="userSpaceOnUse" x="-100" y="-100" width="366" height="552">
<rect x="-100" y="-100" width="366" height="552" fill="white"></rect> <rect x="-100" y="-100" width="366" height="552" fill="white"></rect>
</mask><style type="text/css"><![CDATA[ </mask><style type="text/css"><![CDATA[

Before

Width:  |  Height:  |  Size: 325 KiB

After

Width:  |  Height:  |  Size: 325 KiB

View file

@ -21,6 +21,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -60,6 +61,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -100,6 +102,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,

View file

@ -797,7 +797,7 @@ width="317" height="680" viewBox="-102 -102 317 680"><style type="text/css">
margin: 0 -1.6em 0.25em 0.2em; margin: 0 -1.6em 0.25em 0.2em;
} }
</style><g id="md"><g class="shape" ></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="45.000000" y="226.000000" width="23" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:transparent;color:#0A0F25;"><p>md</p> </style><g id="md"><g class="shape" ></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="45.000000" y="226.000000" width="23" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:transparent;color:#0A0F25;"><p>md</p>
</div></foreignObject></g></g><g id="a"><g class="shape" ><rect x="0" y="0" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="56.500000" y="66.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">a</text></g><g id="b"><g class="shape" ><rect x="0" y="350" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="56.500000" y="416.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">b</text></g><g id="(a -&gt; md)[0]"><marker id="mk-3990223579" 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 class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 56.500000 128.000000 C 56.500000 166.000000 56.500000 186.000000 56.500000 222.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#1152893937)"/></g><g id="(md -&gt; b)[0]"><path d="M 56.500000 252.000000 C 56.500000 290.000000 56.500000 310.000000 56.500000 346.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#1152893937)"/></g><mask id="1152893937" maskUnits="userSpaceOnUse" x="-100" y="-100" width="317" height="680"> </div></foreignObject></g></g><g id="a"><g class="shape" ><rect x="0" y="0" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="56.500000" y="66.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">a</text></g><g id="b"><g class="shape" ><rect x="0" y="350" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="56.500000" y="416.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">b</text></g><g id="(a -&gt; md)[0]"><marker id="mk-3990223579" 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 class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 56.500000 128.000000 C 56.500000 166.000000 56.500000 186.000000 56.500000 222.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#4043520546)"/></g><g id="(md -&gt; b)[0]"><path d="M 56.500000 252.000000 C 56.500000 290.000000 56.500000 310.000000 56.500000 346.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#4043520546)"/></g><mask id="4043520546" maskUnits="userSpaceOnUse" x="-100" y="-100" width="317" height="680">
<rect x="-100" y="-100" width="317" height="680" fill="white"></rect> <rect x="-100" y="-100" width="317" height="680" fill="white"></rect>
</mask><style type="text/css"><![CDATA[ </mask><style type="text/css"><![CDATA[

Before

Width:  |  Height:  |  Size: 660 KiB

After

Width:  |  Height:  |  Size: 660 KiB

View file

@ -21,6 +21,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -60,6 +61,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -100,6 +102,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,

View file

@ -797,7 +797,7 @@ width="317" height="680" viewBox="-90 -90 317 680"><style type="text/css">
margin: 0 -1.6em 0.25em 0.2em; margin: 0 -1.6em 0.25em 0.2em;
} }
</style><g id="md"><g class="shape" ></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="57.000000" y="238.000000" width="23" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:transparent;color:#0A0F25;"><p>md</p> </style><g id="md"><g class="shape" ></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="57.000000" y="238.000000" width="23" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:transparent;color:#0A0F25;"><p>md</p>
</div></foreignObject></g></g><g id="a"><g class="shape" ><rect x="12" y="12" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="68.500000" y="78.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">a</text></g><g id="b"><g class="shape" ><rect x="12" y="362" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="68.500000" y="428.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">b</text></g><g id="(a -&gt; md)[0]"><marker id="mk-3990223579" 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 class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 68.500000 140.000000 L 68.500000 234.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#677696414)"/></g><g id="(md -&gt; b)[0]"><path d="M 68.500000 264.000000 L 68.500000 358.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#677696414)"/></g><mask id="677696414" maskUnits="userSpaceOnUse" x="-100" y="-100" width="317" height="680"> </div></foreignObject></g></g><g id="a"><g class="shape" ><rect x="12" y="12" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="68.500000" y="78.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">a</text></g><g id="b"><g class="shape" ><rect x="12" y="362" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="68.500000" y="428.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">b</text></g><g id="(a -&gt; md)[0]"><marker id="mk-3990223579" 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 class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 68.500000 140.000000 L 68.500000 234.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#672468969)"/></g><g id="(md -&gt; b)[0]"><path d="M 68.500000 264.000000 L 68.500000 358.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#672468969)"/></g><mask id="672468969" maskUnits="userSpaceOnUse" x="-100" y="-100" width="317" height="680">
<rect x="-100" y="-100" width="317" height="680" fill="white"></rect> <rect x="-100" y="-100" width="317" height="680" fill="white"></rect>
</mask><style type="text/css"><![CDATA[ </mask><style type="text/css"><![CDATA[

Before

Width:  |  Height:  |  Size: 660 KiB

After

Width:  |  Height:  |  Size: 660 KiB

View file

@ -21,6 +21,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,

View file

@ -39,7 +39,7 @@ width="229" height="242" viewBox="-102 -102 229 242"><style type="text/css">
svgEl.setAttribute("height", height * ratio - 16); svgEl.setAttribute("height", height * ratio - 16);
} }
}); });
]]></script><g id="x"><g class="shape" ></g><g transform="translate(0.000000 0.000000)"><rect class="shape" width="25" height="38" style="stroke: #0A0F25;fill:#ffffff" /><g transform="translate(6 6)"><text class="text-mono" x="0" y="1.000000em" xml:space="preserve">x</text></g></g></g><mask id="16689142" maskUnits="userSpaceOnUse" x="-100" y="-100" width="229" height="242"> ]]></script><g id="x"><g class="shape" ></g><g transform="translate(0.000000 0.000000)"><rect class="shape" width="25" height="38" style="stroke: #0A0F25;fill:#ffffff" /><g transform="translate(6 6)"><text class="text-mono" x="0" y="1.000000em" xml:space="preserve">x</text></g></g></g><mask id="1649994071" maskUnits="userSpaceOnUse" x="-100" y="-100" width="229" height="242">
<rect x="-100" y="-100" width="229" height="242" fill="white"></rect> <rect x="-100" y="-100" width="229" height="242" fill="white"></rect>
</mask><style type="text/css"><![CDATA[ </mask><style type="text/css"><![CDATA[

Before

Width:  |  Height:  |  Size: 182 KiB

After

Width:  |  Height:  |  Size: 182 KiB

View file

@ -21,6 +21,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,

View file

@ -39,7 +39,7 @@ width="229" height="242" viewBox="-90 -90 229 242"><style type="text/css">
svgEl.setAttribute("height", height * ratio - 16); svgEl.setAttribute("height", height * ratio - 16);
} }
}); });
]]></script><g id="x"><g class="shape" ></g><g transform="translate(12.000000 12.000000)"><rect class="shape" width="25" height="38" style="stroke: #0A0F25;fill:#ffffff" /><g transform="translate(6 6)"><text class="text-mono" x="0" y="1.000000em" xml:space="preserve">x</text></g></g></g><mask id="3880321134" maskUnits="userSpaceOnUse" x="-100" y="-100" width="229" height="242"> ]]></script><g id="x"><g class="shape" ></g><g transform="translate(12.000000 12.000000)"><rect class="shape" width="25" height="38" style="stroke: #0A0F25;fill:#ffffff" /><g transform="translate(6 6)"><text class="text-mono" x="0" y="1.000000em" xml:space="preserve">x</text></g></g></g><mask id="3070218367" maskUnits="userSpaceOnUse" x="-100" y="-100" width="229" height="242">
<rect x="-100" y="-100" width="229" height="242" fill="white"></rect> <rect x="-100" y="-100" width="229" height="242" fill="white"></rect>
</mask><style type="text/css"><![CDATA[ </mask><style type="text/css"><![CDATA[

Before

Width:  |  Height:  |  Size: 182 KiB

After

Width:  |  Height:  |  Size: 182 KiB

View file

@ -21,6 +21,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -63,6 +64,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -105,6 +107,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,

View file

@ -41,7 +41,7 @@ width="1286" height="548" viewBox="-102 -102 1286 548"><style type="text/css">
}); });
]]></script><g id="class"><g class="shape" ><rect class="shape" x="0" y="0" width="1082" height="36" style="fill:#FFFFFF;stroke:#0A0F25;stroke-width:2;"/><rect class="class_header" x="0.000000" y="0.000000" width="1082.000000" height="36.000000" fill="#0A0F25" /><text class="text-mono" x="541.000000" y="27.000000" style="text-anchor:middle;font-size:24px;fill:#FFFFFF">RefreshAuthorizationPolicyProtocolServerSideTranslatorProtocolBuffer</text><line x1="0.000000" y1="36.000000" x2="1082.000000" y2="36.000000" style="stroke-width:1;stroke:#0A0F25" /></g></g><g id="table"><g class="shape" ><rect class="shape" x="341" y="136" width="401" height="36" style="fill:#FFFFFF;stroke:#0A0F25;stroke-width:2;"/><rect class="class_header" x="341.000000" y="136.000000" width="401.000000" height="36.000000" fill="#0A0F25" /><text class="text" x="361.000000" y="163.000000" style="text-anchor:start;font-size:24px;fill:#FFFFFF">RefreshAuthorizationPolicyCache</text></g></g><g id="table with short col"><g class="shape" ><rect class="shape" x="341" y="272" width="401" height="72" style="fill:#FFFFFF;stroke:#0A0F25;stroke-width:2;"/><rect class="class_header" x="341.000000" y="272.000000" width="401.000000" height="36.000000" fill="#0A0F25" /><text class="text" x="361.000000" y="299.000000" style="text-anchor:start;font-size:24px;fill:#FFFFFF">RefreshAuthorizationPolicyCache</text><text class="text" x="351.000000" y="331.000000" style="text-anchor:start;font-size:20px;fill:#0D32B2">ok</text> ]]></script><g id="class"><g class="shape" ><rect class="shape" x="0" y="0" width="1082" height="36" style="fill:#FFFFFF;stroke:#0A0F25;stroke-width:2;"/><rect class="class_header" x="0.000000" y="0.000000" width="1082.000000" height="36.000000" fill="#0A0F25" /><text class="text-mono" x="541.000000" y="27.000000" style="text-anchor:middle;font-size:24px;fill:#FFFFFF">RefreshAuthorizationPolicyProtocolServerSideTranslatorProtocolBuffer</text><line x1="0.000000" y1="36.000000" x2="1082.000000" y2="36.000000" style="stroke-width:1;stroke:#0A0F25" /></g></g><g id="table"><g class="shape" ><rect class="shape" x="341" y="136" width="401" height="36" style="fill:#FFFFFF;stroke:#0A0F25;stroke-width:2;"/><rect class="class_header" x="341.000000" y="136.000000" width="401.000000" height="36.000000" fill="#0A0F25" /><text class="text" x="361.000000" y="163.000000" style="text-anchor:start;font-size:24px;fill:#FFFFFF">RefreshAuthorizationPolicyCache</text></g></g><g id="table with short col"><g class="shape" ><rect class="shape" x="341" y="272" width="401" height="72" style="fill:#FFFFFF;stroke:#0A0F25;stroke-width:2;"/><rect class="class_header" x="341.000000" y="272.000000" width="401.000000" height="36.000000" fill="#0A0F25" /><text class="text" x="361.000000" y="299.000000" style="text-anchor:start;font-size:24px;fill:#FFFFFF">RefreshAuthorizationPolicyCache</text><text class="text" x="351.000000" y="331.000000" style="text-anchor:start;font-size:20px;fill:#0D32B2">ok</text>
<text class="text" x="392.000000" y="331.000000" style="text-anchor:start;font-size:20px;fill:#676C7E"></text> <text class="text" x="392.000000" y="331.000000" style="text-anchor:start;font-size:20px;fill:#676C7E"></text>
<text class="text" x="722.000000" y="331.000000" style="text-anchor:end;font-size:20px;fill:#4A6FF3;letter-spacing:2px;"></text><line x1="341.000000" y1="344.000000" x2="742.000000" y2="344.000000" style="stroke-width:2;stroke:#0A0F25" /></g></g><g id="(class -&gt; table)[0]"><marker id="mk-3990223579" 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 class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 541.000000 38.000000 C 541.000000 76.000000 541.000000 96.000000 541.000000 132.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#4293455829)"/></g><g id="(table -&gt; table with short col)[0]"><path d="M 541.000000 174.000000 C 541.000000 212.000000 541.000000 232.000000 541.000000 268.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#4293455829)"/></g><mask id="4293455829" maskUnits="userSpaceOnUse" x="-100" y="-100" width="1286" height="548"> <text class="text" x="722.000000" y="331.000000" style="text-anchor:end;font-size:20px;fill:#4A6FF3;letter-spacing:2px;"></text><line x1="341.000000" y1="344.000000" x2="742.000000" y2="344.000000" style="stroke-width:2;stroke:#0A0F25" /></g></g><g id="(class -&gt; table)[0]"><marker id="mk-3990223579" 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 class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 541.000000 38.000000 C 541.000000 76.000000 541.000000 96.000000 541.000000 132.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#1571432776)"/></g><g id="(table -&gt; table with short col)[0]"><path d="M 541.000000 174.000000 C 541.000000 212.000000 541.000000 232.000000 541.000000 268.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#1571432776)"/></g><mask id="1571432776" maskUnits="userSpaceOnUse" x="-100" y="-100" width="1286" height="548">
<rect x="-100" y="-100" width="1286" height="548" fill="white"></rect> <rect x="-100" y="-100" width="1286" height="548" fill="white"></rect>
</mask><style type="text/css"><![CDATA[ </mask><style type="text/css"><![CDATA[

Before

Width:  |  Height:  |  Size: 508 KiB

After

Width:  |  Height:  |  Size: 508 KiB

View file

@ -21,6 +21,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -63,6 +64,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -105,6 +107,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,

View file

@ -41,7 +41,7 @@ width="1286" height="548" viewBox="-90 -90 1286 548"><style type="text/css">
}); });
]]></script><g id="class"><g class="shape" ><rect class="shape" x="12" y="12" width="1082" height="36" style="fill:#FFFFFF;stroke:#0A0F25;stroke-width:2;"/><rect class="class_header" x="12.000000" y="12.000000" width="1082.000000" height="36.000000" fill="#0A0F25" /><text class="text-mono" x="553.000000" y="39.000000" style="text-anchor:middle;font-size:24px;fill:#FFFFFF">RefreshAuthorizationPolicyProtocolServerSideTranslatorProtocolBuffer</text><line x1="12.000000" y1="48.000000" x2="1094.000000" y2="48.000000" style="stroke-width:1;stroke:#0A0F25" /></g></g><g id="table"><g class="shape" ><rect class="shape" x="352" y="148" width="401" height="36" style="fill:#FFFFFF;stroke:#0A0F25;stroke-width:2;"/><rect class="class_header" x="352.000000" y="148.000000" width="401.000000" height="36.000000" fill="#0A0F25" /><text class="text" x="372.000000" y="175.000000" style="text-anchor:start;font-size:24px;fill:#FFFFFF">RefreshAuthorizationPolicyCache</text></g></g><g id="table with short col"><g class="shape" ><rect class="shape" x="352" y="284" width="401" height="72" style="fill:#FFFFFF;stroke:#0A0F25;stroke-width:2;"/><rect class="class_header" x="352.000000" y="284.000000" width="401.000000" height="36.000000" fill="#0A0F25" /><text class="text" x="372.000000" y="311.000000" style="text-anchor:start;font-size:24px;fill:#FFFFFF">RefreshAuthorizationPolicyCache</text><text class="text" x="362.000000" y="343.000000" style="text-anchor:start;font-size:20px;fill:#0D32B2">ok</text> ]]></script><g id="class"><g class="shape" ><rect class="shape" x="12" y="12" width="1082" height="36" style="fill:#FFFFFF;stroke:#0A0F25;stroke-width:2;"/><rect class="class_header" x="12.000000" y="12.000000" width="1082.000000" height="36.000000" fill="#0A0F25" /><text class="text-mono" x="553.000000" y="39.000000" style="text-anchor:middle;font-size:24px;fill:#FFFFFF">RefreshAuthorizationPolicyProtocolServerSideTranslatorProtocolBuffer</text><line x1="12.000000" y1="48.000000" x2="1094.000000" y2="48.000000" style="stroke-width:1;stroke:#0A0F25" /></g></g><g id="table"><g class="shape" ><rect class="shape" x="352" y="148" width="401" height="36" style="fill:#FFFFFF;stroke:#0A0F25;stroke-width:2;"/><rect class="class_header" x="352.000000" y="148.000000" width="401.000000" height="36.000000" fill="#0A0F25" /><text class="text" x="372.000000" y="175.000000" style="text-anchor:start;font-size:24px;fill:#FFFFFF">RefreshAuthorizationPolicyCache</text></g></g><g id="table with short col"><g class="shape" ><rect class="shape" x="352" y="284" width="401" height="72" style="fill:#FFFFFF;stroke:#0A0F25;stroke-width:2;"/><rect class="class_header" x="352.000000" y="284.000000" width="401.000000" height="36.000000" fill="#0A0F25" /><text class="text" x="372.000000" y="311.000000" style="text-anchor:start;font-size:24px;fill:#FFFFFF">RefreshAuthorizationPolicyCache</text><text class="text" x="362.000000" y="343.000000" style="text-anchor:start;font-size:20px;fill:#0D32B2">ok</text>
<text class="text" x="403.000000" y="343.000000" style="text-anchor:start;font-size:20px;fill:#676C7E"></text> <text class="text" x="403.000000" y="343.000000" style="text-anchor:start;font-size:20px;fill:#676C7E"></text>
<text class="text" x="733.000000" y="343.000000" style="text-anchor:end;font-size:20px;fill:#4A6FF3;letter-spacing:2px;"></text><line x1="352.000000" y1="356.000000" x2="753.000000" y2="356.000000" style="stroke-width:2;stroke:#0A0F25" /></g></g><g id="(class -&gt; table)[0]"><marker id="mk-3990223579" 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 class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 553.000000 50.000000 L 553.000000 144.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#2684059959)"/></g><g id="(table -&gt; table with short col)[0]"><path d="M 553.000000 186.000000 L 553.000000 280.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#2684059959)"/></g><mask id="2684059959" maskUnits="userSpaceOnUse" x="-100" y="-100" width="1286" height="548"> <text class="text" x="733.000000" y="343.000000" style="text-anchor:end;font-size:20px;fill:#4A6FF3;letter-spacing:2px;"></text><line x1="352.000000" y1="356.000000" x2="753.000000" y2="356.000000" style="stroke-width:2;stroke:#0A0F25" /></g></g><g id="(class -&gt; table)[0]"><marker id="mk-3990223579" 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 class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 553.000000 50.000000 L 553.000000 144.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#466173678)"/></g><g id="(table -&gt; table with short col)[0]"><path d="M 553.000000 186.000000 L 553.000000 280.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#466173678)"/></g><mask id="466173678" maskUnits="userSpaceOnUse" x="-100" y="-100" width="1286" height="548">
<rect x="-100" y="-100" width="1286" height="548" fill="white"></rect> <rect x="-100" y="-100" width="1286" height="548" fill="white"></rect>
</mask><style type="text/css"><![CDATA[ </mask><style type="text/css"><![CDATA[

Before

Width:  |  Height:  |  Size: 508 KiB

After

Width:  |  Height:  |  Size: 508 KiB

View file

@ -21,6 +21,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -61,6 +62,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -100,6 +102,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,

View file

@ -797,7 +797,7 @@ width="522" height="593" viewBox="-100 -102 522 593"><style type="text/css">
margin: 0 -1.6em 0.25em 0.2em; margin: 0 -1.6em 0.25em 0.2em;
} }
</style><g id="x" style='opacity:0.400000'><g class="shape" ><rect x="105" y="0" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="161.500000" y="66.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">x</text></g><g id="y" style='opacity:0.400000'><g class="shape" ></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="278.000000" y="51.000000" width="8" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:transparent;color:#0A0F25;"><p>y</p> </style><g id="x" style='opacity:0.400000'><g class="shape" ><rect x="105" y="0" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="161.500000" y="66.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">x</text></g><g id="y" style='opacity:0.400000'><g class="shape" ></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="278.000000" y="51.000000" width="8" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:transparent;color:#0A0F25;"><p>y</p>
</div></foreignObject></g></g><g id="a"><g class="shape" ><rect x="105" y="263" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="161.500000" y="329.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">a</text></g><g id="(x -&gt; a)[0]" style='opacity:0.400000'><marker id="mk-3990223579" 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 class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 161.000000 128.000000 C 161.000000 180.800000 161.000000 208.300000 161.000000 259.500000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#4124907963)"/><text class="text-italic" x="161.000000" y="192.000000" style="text-anchor:middle;font-size:16px;fill:#676C7E"><tspan x="161.000000" dy="0.000000">You don&#39;t have to know how the computer works,</tspan><tspan x="161.000000" dy="18.500000">just how to work the computer.</tspan></text></g><mask id="4124907963" maskUnits="userSpaceOnUse" x="-100" y="-100" width="522" height="593"> </div></foreignObject></g></g><g id="a"><g class="shape" ><rect x="105" y="263" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="161.500000" y="329.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">a</text></g><g id="(x -&gt; a)[0]" style='opacity:0.400000'><marker id="mk-3990223579" 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 class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 161.000000 128.000000 C 161.000000 180.800000 161.000000 208.300000 161.000000 259.500000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#93092904)"/><text class="text-italic" x="161.000000" y="192.000000" style="text-anchor:middle;font-size:16px;fill:#676C7E"><tspan x="161.000000" dy="0.000000">You don&#39;t have to know how the computer works,</tspan><tspan x="161.000000" dy="18.500000">just how to work the computer.</tspan></text></g><mask id="93092904" maskUnits="userSpaceOnUse" x="-100" y="-100" width="522" height="593">
<rect x="-100" y="-100" width="522" height="593" fill="white"></rect> <rect x="-100" y="-100" width="522" height="593" fill="white"></rect>
<rect x="0.000000" y="176.000000" width="322" height="37" fill="black"></rect> <rect x="0.000000" y="176.000000" width="322" height="37" fill="black"></rect>
</mask><style type="text/css"><![CDATA[ </mask><style type="text/css"><![CDATA[

Before

Width:  |  Height:  |  Size: 804 KiB

After

Width:  |  Height:  |  Size: 804 KiB

View file

@ -21,6 +21,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -61,6 +62,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -100,6 +102,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,

View file

@ -797,7 +797,7 @@ width="522" height="693" viewBox="-88 -90 522 693"><style type="text/css">
margin: 0 -1.6em 0.25em 0.2em; margin: 0 -1.6em 0.25em 0.2em;
} }
</style><g id="x" style='opacity:0.400000'><g class="shape" ><rect x="116" y="12" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="172.500000" y="78.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">x</text></g><g id="y" style='opacity:0.400000'><g class="shape" ></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="249.000000" y="63.000000" width="8" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:transparent;color:#0A0F25;"><p>y</p> </style><g id="x" style='opacity:0.400000'><g class="shape" ><rect x="116" y="12" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="172.500000" y="78.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">x</text></g><g id="y" style='opacity:0.400000'><g class="shape" ></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="249.000000" y="63.000000" width="8" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:transparent;color:#0A0F25;"><p>y</p>
</div></foreignObject></g></g><g id="a"><g class="shape" ><rect x="116" y="375" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="172.500000" y="441.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">a</text></g><g id="(x -&gt; a)[0]" style='opacity:0.400000'><marker id="mk-3990223579" 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 class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 173.000000 140.000000 L 173.000000 371.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#3325295148)"/><text class="text-italic" x="173.000000" y="254.000000" style="text-anchor:middle;font-size:16px;fill:#676C7E"><tspan x="173.000000" dy="0.000000">You don&#39;t have to know how the computer works,</tspan><tspan x="173.000000" dy="18.500000">just how to work the computer.</tspan></text></g><mask id="3325295148" maskUnits="userSpaceOnUse" x="-100" y="-100" width="522" height="693"> </div></foreignObject></g></g><g id="a"><g class="shape" ><rect x="116" y="375" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="172.500000" y="441.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">a</text></g><g id="(x -&gt; a)[0]" style='opacity:0.400000'><marker id="mk-3990223579" 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 class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 173.000000 140.000000 L 173.000000 371.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#1419689817)"/><text class="text-italic" x="173.000000" y="254.000000" style="text-anchor:middle;font-size:16px;fill:#676C7E"><tspan x="173.000000" dy="0.000000">You don&#39;t have to know how the computer works,</tspan><tspan x="173.000000" dy="18.500000">just how to work the computer.</tspan></text></g><mask id="1419689817" maskUnits="userSpaceOnUse" x="-100" y="-100" width="522" height="693">
<rect x="-100" y="-100" width="522" height="693" fill="white"></rect> <rect x="-100" y="-100" width="522" height="693" fill="white"></rect>
<rect x="12.000000" y="238.000000" width="322" height="37" fill="black"></rect> <rect x="12.000000" y="238.000000" width="322" height="37" fill="black"></rect>
</mask><style type="text/css"><![CDATA[ </mask><style type="text/css"><![CDATA[

Before

Width:  |  Height:  |  Size: 804 KiB

After

Width:  |  Height:  |  Size: 804 KiB

View file

@ -21,6 +21,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -61,6 +62,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -101,6 +103,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -141,6 +144,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -181,6 +185,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -221,6 +226,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -261,6 +267,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -301,6 +308,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -341,6 +349,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -381,6 +390,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,

View file

@ -39,7 +39,7 @@ width="1825" height="777" viewBox="-102 -102 1825 777"><style type="text/css">
svgEl.setAttribute("height", height * ratio - 16); svgEl.setAttribute("height", height * ratio - 16);
} }
}); });
]]></script><g id="k8s"><g class="shape" ><rect x="0" y="0" width="1621" height="226" style="fill:#E3E9FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text" x="810.500000" y="33.000000" style="text-anchor:middle;font-size:28px;fill:#0A0F25">Kubernetes</text></g><g id="osvc"><g class="shape" ><rect x="0" y="347" width="555" height="226" style="fill:#E3E9FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text" x="277.500000" y="380.000000" style="text-anchor:middle;font-size:28px;fill:#0A0F25">opensvc</text></g><g id="k8s.m1"><g class="shape" ><rect x="116" y="50" width="192" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="212.000000" y="116.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">k8s-master1</text></g><g id="k8s.m2"><g class="shape" ><rect x="368" y="50" width="192" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="464.000000" y="116.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">k8s-master2</text></g><g id="k8s.m3"><g class="shape" ><rect x="620" y="50" width="192" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="716.000000" y="116.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">k8s-master3</text></g><g id="k8s.w1"><g class="shape" ><rect x="872" y="50" width="193" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="968.500000" y="116.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">k8s-worker1</text></g><g id="k8s.w2"><g class="shape" ><rect x="1125" y="50" width="193" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="1221.500000" y="116.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">k8s-worker2</text></g><g id="k8s.w3"><g class="shape" ><rect x="1378" y="50" width="193" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="1474.500000" y="116.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">k8s-worker3</text></g><g id="osvc.vm1"><g class="shape" ><rect x="171" y="397" width="136" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="239.000000" y="463.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">VM1</text></g><g id="osvc.vm2"><g class="shape" ><rect x="369" y="397" width="136" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="437.000000" y="463.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">VM2</text></g><g id="(k8s -&gt; osvc)[0]"><marker id="mk-3990223579" 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 class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 99.000000 228.000000 C 99.000000 274.400000 99.000000 298.700000 99.000000 343.500000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#1968163575)"/><text class="text-italic" x="99.500000" y="292.000000" style="text-anchor:middle;font-size:16px;fill:#676C7E">keycloak</text></g><g id="(k8s -&gt; osvc)[1]"><path d="M 201.000000 228.000000 C 201.000000 274.400000 201.000000 298.700000 201.000000 343.500000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#1968163575)"/><text class="text-italic" x="201.500000" y="292.000000" style="text-anchor:middle;font-size:16px;fill:#676C7E">heptapod</text></g><g id="(k8s -&gt; osvc)[2]"><path d="M 297.000000 228.000000 C 297.000000 274.400000 297.000000 298.700000 297.000000 343.500000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#1968163575)"/><text class="text-italic" x="297.500000" y="292.000000" style="text-anchor:middle;font-size:16px;fill:#676C7E">harbor</text></g><g id="(k8s -&gt; osvc)[3]"><path d="M 378.000000 228.000000 C 378.000000 274.400000 378.000000 298.700000 378.000000 343.500000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#1968163575)"/><text class="text-italic" x="378.500000" y="292.000000" style="text-anchor:middle;font-size:16px;fill:#676C7E">vault</text></g><mask id="1968163575" maskUnits="userSpaceOnUse" x="-100" y="-100" width="1825" height="777"> ]]></script><g id="k8s"><g class="shape" ><rect x="0" y="0" width="1621" height="226" style="fill:#E3E9FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text" x="810.500000" y="33.000000" style="text-anchor:middle;font-size:28px;fill:#0A0F25">Kubernetes</text></g><g id="osvc"><g class="shape" ><rect x="0" y="347" width="555" height="226" style="fill:#E3E9FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text" x="277.500000" y="380.000000" style="text-anchor:middle;font-size:28px;fill:#0A0F25">opensvc</text></g><g id="k8s.m1"><g class="shape" ><rect x="116" y="50" width="192" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="212.000000" y="116.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">k8s-master1</text></g><g id="k8s.m2"><g class="shape" ><rect x="368" y="50" width="192" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="464.000000" y="116.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">k8s-master2</text></g><g id="k8s.m3"><g class="shape" ><rect x="620" y="50" width="192" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="716.000000" y="116.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">k8s-master3</text></g><g id="k8s.w1"><g class="shape" ><rect x="872" y="50" width="193" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="968.500000" y="116.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">k8s-worker1</text></g><g id="k8s.w2"><g class="shape" ><rect x="1125" y="50" width="193" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="1221.500000" y="116.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">k8s-worker2</text></g><g id="k8s.w3"><g class="shape" ><rect x="1378" y="50" width="193" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="1474.500000" y="116.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">k8s-worker3</text></g><g id="osvc.vm1"><g class="shape" ><rect x="171" y="397" width="136" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="239.000000" y="463.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">VM1</text></g><g id="osvc.vm2"><g class="shape" ><rect x="369" y="397" width="136" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="437.000000" y="463.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">VM2</text></g><g id="(k8s -&gt; osvc)[0]"><marker id="mk-3990223579" 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 class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 99.000000 228.000000 C 99.000000 274.400000 99.000000 298.700000 99.000000 343.500000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#4136994385)"/><text class="text-italic" x="99.500000" y="292.000000" style="text-anchor:middle;font-size:16px;fill:#676C7E">keycloak</text></g><g id="(k8s -&gt; osvc)[1]"><path d="M 201.000000 228.000000 C 201.000000 274.400000 201.000000 298.700000 201.000000 343.500000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#4136994385)"/><text class="text-italic" x="201.500000" y="292.000000" style="text-anchor:middle;font-size:16px;fill:#676C7E">heptapod</text></g><g id="(k8s -&gt; osvc)[2]"><path d="M 297.000000 228.000000 C 297.000000 274.400000 297.000000 298.700000 297.000000 343.500000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#4136994385)"/><text class="text-italic" x="297.500000" y="292.000000" style="text-anchor:middle;font-size:16px;fill:#676C7E">harbor</text></g><g id="(k8s -&gt; osvc)[3]"><path d="M 378.000000 228.000000 C 378.000000 274.400000 378.000000 298.700000 378.000000 343.500000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#4136994385)"/><text class="text-italic" x="378.500000" y="292.000000" style="text-anchor:middle;font-size:16px;fill:#676C7E">vault</text></g><mask id="4136994385" maskUnits="userSpaceOnUse" x="-100" y="-100" width="1825" height="777">
<rect x="-100" y="-100" width="1825" height="777" fill="white"></rect> <rect x="-100" y="-100" width="1825" height="777" fill="white"></rect>
<rect x="70.000000" y="276.000000" width="59" height="21" fill="black"></rect> <rect x="70.000000" y="276.000000" width="59" height="21" fill="black"></rect>
<rect x="169.000000" y="276.000000" width="65" height="21" fill="black"></rect> <rect x="169.000000" y="276.000000" width="65" height="21" fill="black"></rect>

Before

Width:  |  Height:  |  Size: 795 KiB

After

Width:  |  Height:  |  Size: 795 KiB

View file

@ -21,6 +21,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -61,6 +62,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -101,6 +103,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -141,6 +144,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -181,6 +185,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -221,6 +226,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -261,6 +267,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -301,6 +308,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -341,6 +349,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -381,6 +390,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,

View file

@ -39,7 +39,7 @@ width="1609" height="1027" viewBox="-90 -90 1609 1027"><style type="text/css">
svgEl.setAttribute("height", height * ratio - 16); svgEl.setAttribute("height", height * ratio - 16);
} }
}); });
]]></script><g id="k8s"><g class="shape" ><rect x="12" y="12" width="1405" height="276" style="fill:#E3E9FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text" x="714.500000" y="45.000000" style="text-anchor:middle;font-size:28px;fill:#0A0F25">Kubernetes</text></g><g id="osvc"><g class="shape" ><rect x="397" y="559" width="442" height="276" style="fill:#E3E9FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text" x="618.000000" y="592.000000" style="text-anchor:middle;font-size:28px;fill:#0A0F25">opensvc</text></g><g id="k8s.m1"><g class="shape" ><rect x="87" y="87" width="192" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="183.000000" y="153.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">k8s-master1</text></g><g id="k8s.m2"><g class="shape" ><rect x="299" y="87" width="192" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="395.000000" y="153.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">k8s-master2</text></g><g id="k8s.m3"><g class="shape" ><rect x="511" y="87" width="192" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="607.000000" y="153.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">k8s-master3</text></g><g id="k8s.w1"><g class="shape" ><rect x="723" y="87" width="193" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="819.500000" y="153.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">k8s-worker1</text></g><g id="k8s.w2"><g class="shape" ><rect x="936" y="87" width="193" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="1032.500000" y="153.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">k8s-worker2</text></g><g id="k8s.w3"><g class="shape" ><rect x="1149" y="87" width="193" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="1245.500000" y="153.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">k8s-worker3</text></g><g id="osvc.vm1"><g class="shape" ><rect x="472" y="634" width="136" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="540.000000" y="700.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">VM1</text></g><g id="osvc.vm2"><g class="shape" ><rect x="628" y="634" width="136" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="696.000000" y="700.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">VM2</text></g><g id="(k8s -&gt; osvc)[0]"><marker id="mk-3990223579" 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 class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 293.000000 290.000000 L 293.000000 449.000000 S 293.000000 459.000000 303.000000 459.000000 L 475.600000 459.000000 S 485.600000 459.000000 485.600000 469.000000 L 485.600000 555.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#1339479037)"/><text class="text-italic" x="353.500000" y="465.000000" style="text-anchor:middle;font-size:16px;fill:#676C7E">keycloak</text></g><g id="(k8s -&gt; osvc)[1]"><path d="M 574.000000 290.000000 L 574.000000 555.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#1339479037)"/><text class="text-italic" x="574.500000" y="429.000000" style="text-anchor:middle;font-size:16px;fill:#676C7E">heptapod</text></g><g id="(k8s -&gt; osvc)[2]"><path d="M 855.000000 290.000000 L 855.000000 449.000000 S 855.000000 459.000000 845.000000 459.000000 L 672.400000 459.000000 S 662.400000 459.000000 662.400000 469.000000 L 662.400000 555.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#1339479037)"/><text class="text-italic" x="794.500000" y="465.000000" style="text-anchor:middle;font-size:16px;fill:#676C7E">harbor</text></g><g id="(k8s -&gt; osvc)[3]"><path d="M 1136.000000 290.000000 L 1136.000000 499.000000 S 1136.000000 509.000000 1126.000000 509.000000 L 760.800000 509.000000 S 750.800000 509.000000 750.800000 519.000000 L 750.800000 555.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#1339479037)"/><text class="text-italic" x="1028.500000" y="515.000000" style="text-anchor:middle;font-size:16px;fill:#676C7E">vault</text></g><mask id="1339479037" maskUnits="userSpaceOnUse" x="-100" y="-100" width="1609" height="1027"> ]]></script><g id="k8s"><g class="shape" ><rect x="12" y="12" width="1405" height="276" style="fill:#E3E9FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text" x="714.500000" y="45.000000" style="text-anchor:middle;font-size:28px;fill:#0A0F25">Kubernetes</text></g><g id="osvc"><g class="shape" ><rect x="397" y="559" width="442" height="276" style="fill:#E3E9FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text" x="618.000000" y="592.000000" style="text-anchor:middle;font-size:28px;fill:#0A0F25">opensvc</text></g><g id="k8s.m1"><g class="shape" ><rect x="87" y="87" width="192" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="183.000000" y="153.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">k8s-master1</text></g><g id="k8s.m2"><g class="shape" ><rect x="299" y="87" width="192" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="395.000000" y="153.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">k8s-master2</text></g><g id="k8s.m3"><g class="shape" ><rect x="511" y="87" width="192" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="607.000000" y="153.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">k8s-master3</text></g><g id="k8s.w1"><g class="shape" ><rect x="723" y="87" width="193" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="819.500000" y="153.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">k8s-worker1</text></g><g id="k8s.w2"><g class="shape" ><rect x="936" y="87" width="193" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="1032.500000" y="153.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">k8s-worker2</text></g><g id="k8s.w3"><g class="shape" ><rect x="1149" y="87" width="193" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="1245.500000" y="153.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">k8s-worker3</text></g><g id="osvc.vm1"><g class="shape" ><rect x="472" y="634" width="136" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="540.000000" y="700.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">VM1</text></g><g id="osvc.vm2"><g class="shape" ><rect x="628" y="634" width="136" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text-bold" x="696.000000" y="700.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">VM2</text></g><g id="(k8s -&gt; osvc)[0]"><marker id="mk-3990223579" 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 class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 293.000000 290.000000 L 293.000000 449.000000 S 293.000000 459.000000 303.000000 459.000000 L 475.600000 459.000000 S 485.600000 459.000000 485.600000 469.000000 L 485.600000 555.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#1050316171)"/><text class="text-italic" x="353.500000" y="465.000000" style="text-anchor:middle;font-size:16px;fill:#676C7E">keycloak</text></g><g id="(k8s -&gt; osvc)[1]"><path d="M 574.000000 290.000000 L 574.000000 555.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#1050316171)"/><text class="text-italic" x="574.500000" y="429.000000" style="text-anchor:middle;font-size:16px;fill:#676C7E">heptapod</text></g><g id="(k8s -&gt; osvc)[2]"><path d="M 855.000000 290.000000 L 855.000000 449.000000 S 855.000000 459.000000 845.000000 459.000000 L 672.400000 459.000000 S 662.400000 459.000000 662.400000 469.000000 L 662.400000 555.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#1050316171)"/><text class="text-italic" x="794.500000" y="465.000000" style="text-anchor:middle;font-size:16px;fill:#676C7E">harbor</text></g><g id="(k8s -&gt; osvc)[3]"><path d="M 1136.000000 290.000000 L 1136.000000 499.000000 S 1136.000000 509.000000 1126.000000 509.000000 L 760.800000 509.000000 S 750.800000 509.000000 750.800000 519.000000 L 750.800000 555.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#1050316171)"/><text class="text-italic" x="1028.500000" y="515.000000" style="text-anchor:middle;font-size:16px;fill:#676C7E">vault</text></g><mask id="1050316171" maskUnits="userSpaceOnUse" x="-100" y="-100" width="1609" height="1027">
<rect x="-100" y="-100" width="1609" height="1027" fill="white"></rect> <rect x="-100" y="-100" width="1609" height="1027" fill="white"></rect>
<rect x="324.000000" y="449.000000" width="59" height="21" fill="black"></rect> <rect x="324.000000" y="449.000000" width="59" height="21" fill="black"></rect>
<rect x="542.000000" y="413.000000" width="65" height="21" fill="black"></rect> <rect x="542.000000" y="413.000000" width="65" height="21" fill="black"></rect>

Before

Width:  |  Height:  |  Size: 796 KiB

After

Width:  |  Height:  |  Size: 796 KiB

View file

@ -21,6 +21,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": { "icon": {

View file

@ -39,7 +39,7 @@ width="394" height="356" viewBox="-102 -102 394 356"><style type="text/css">
svgEl.setAttribute("height", height * ratio - 16); svgEl.setAttribute("height", height * ratio - 16);
} }
}); });
]]></script><g id="my network"><g class="shape" ><rect x="0" y="0" width="190" height="152" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><image href="https://icons.terrastruct.com/infra/019-network.svg?fuga=1&amp;hoge" x="63.000000" y="44.000000" width="64" height="64" /><text class="text-bold" x="95.000000" y="21.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">my network</text></g><mask id="2412903389" maskUnits="userSpaceOnUse" x="-100" y="-100" width="394" height="356"> ]]></script><g id="my network"><g class="shape" ><rect x="0" y="0" width="190" height="152" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><image href="https://icons.terrastruct.com/infra/019-network.svg?fuga=1&amp;hoge" x="63.000000" y="44.000000" width="64" height="64" /><text class="text-bold" x="95.000000" y="21.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">my network</text></g><mask id="726057734" maskUnits="userSpaceOnUse" x="-100" y="-100" width="394" height="356">
<rect x="-100" y="-100" width="394" height="356" fill="white"></rect> <rect x="-100" y="-100" width="394" height="356" fill="white"></rect>
</mask><style type="text/css"><![CDATA[ </mask><style type="text/css"><![CDATA[

Before

Width:  |  Height:  |  Size: 324 KiB

After

Width:  |  Height:  |  Size: 324 KiB

View file

@ -21,6 +21,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": { "icon": {

View file

@ -39,7 +39,7 @@ width="394" height="356" viewBox="-90 -90 394 356"><style type="text/css">
svgEl.setAttribute("height", height * ratio - 16); svgEl.setAttribute("height", height * ratio - 16);
} }
}); });
]]></script><g id="my network"><g class="shape" ><rect x="12" y="12" width="190" height="152" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><image href="https://icons.terrastruct.com/infra/019-network.svg?fuga=1&amp;hoge" x="75.000000" y="56.000000" width="64" height="64" /><text class="text-bold" x="107.000000" y="33.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">my network</text></g><mask id="612617733" maskUnits="userSpaceOnUse" x="-100" y="-100" width="394" height="356"> ]]></script><g id="my network"><g class="shape" ><rect x="12" y="12" width="190" height="152" style="fill:#F7F8FE;stroke:#0D32B2;stroke-width:2;" /></g><image href="https://icons.terrastruct.com/infra/019-network.svg?fuga=1&amp;hoge" x="75.000000" y="56.000000" width="64" height="64" /><text class="text-bold" x="107.000000" y="33.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">my network</text></g><mask id="1665874494" maskUnits="userSpaceOnUse" x="-100" y="-100" width="394" height="356">
<rect x="-100" y="-100" width="394" height="356" fill="white"></rect> <rect x="-100" y="-100" width="394" height="356" fill="white"></rect>
</mask><style type="text/css"><![CDATA[ </mask><style type="text/css"><![CDATA[

Before

Width:  |  Height:  |  Size: 324 KiB

After

Width:  |  Height:  |  Size: 324 KiB

View file

@ -21,6 +21,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -61,6 +62,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -101,6 +103,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -141,6 +144,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -181,6 +185,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -221,6 +226,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,

View file

@ -39,7 +39,7 @@ width="648" height="1340" viewBox="-100 -100 648 1340"><style type="text/css">
svgEl.setAttribute("height", height * ratio - 16); svgEl.setAttribute("height", height * ratio - 16);
} }
}); });
]]></script><g id="foo"><g class="shape" ><rect x="0" y="0" width="448" height="520" style="fill:#FFFFFF;stroke:#0D32B2;stroke-width:0;" /></g><text class="text" x="224.000000" y="33.000000" style="text-anchor:middle;font-size:28px;fill:#0A0F25">foo</text></g><g id="foobar"><g class="shape" ><rect x="0" y="620" width="448" height="520" style="fill:#FFFFFF;stroke:#0D32B2;stroke-width:0;" /></g><text class="text" x="224.000000" y="653.000000" style="text-anchor:middle;font-size:28px;fill:#0A0F25">foobar</text></g><g id="foo.a"><g class="shape" ><rect x="24" y="110" width="150" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text" x="99.000000" y="176.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">a</text></g><g id="foo.b"><g class="shape" ><rect x="274" y="110" width="150" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text" x="349.000000" y="176.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">b</text></g><g id="foobar.c"><g class="shape" ><rect x="24" y="730" width="150" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text" x="99.000000" y="796.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">c</text></g><g id="foobar.d"><g class="shape" ><rect x="274" y="730" width="150" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text" x="349.000000" y="796.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">d</text></g><g id="(foo -&gt; foobar)[0]"><marker id="mk-3990223579" 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 class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 224.000000 521.000000 C 224.000000 560.000000 224.000000 580.000000 224.000000 617.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#878454377)"/></g><g id="(foo.a -- )[0]"><path d="M 99.000000 238.000000 L 99.000000 495.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;stroke-dasharray:12.000000,11.838767;" mask="url(#878454377)"/></g><g id="(foo.b -- )[0]"><path d="M 349.000000 238.000000 L 349.000000 495.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;stroke-dasharray:12.000000,11.838767;" mask="url(#878454377)"/></g><g id="(foobar.c -- )[0]"><path d="M 99.000000 858.000000 L 99.000000 1115.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;stroke-dasharray:12.000000,11.838767;" mask="url(#878454377)"/></g><g id="(foobar.d -- )[0]"><path d="M 349.000000 858.000000 L 349.000000 1115.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;stroke-dasharray:12.000000,11.838767;" mask="url(#878454377)"/></g><g id="foo.(a -&gt; b)[0]"><path d="M 101.000000 366.000000 L 345.000000 366.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#878454377)"/></g><g id="foobar.(c -&gt; d)[0]"><path d="M 101.000000 986.000000 L 345.000000 986.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#878454377)"/></g><mask id="878454377" maskUnits="userSpaceOnUse" x="-100" y="-100" width="648" height="1340"> ]]></script><g id="foo"><g class="shape" ><rect x="0" y="0" width="448" height="520" style="fill:#FFFFFF;stroke:#0D32B2;stroke-width:0;" /></g><text class="text" x="224.000000" y="33.000000" style="text-anchor:middle;font-size:28px;fill:#0A0F25">foo</text></g><g id="foobar"><g class="shape" ><rect x="0" y="620" width="448" height="520" style="fill:#FFFFFF;stroke:#0D32B2;stroke-width:0;" /></g><text class="text" x="224.000000" y="653.000000" style="text-anchor:middle;font-size:28px;fill:#0A0F25">foobar</text></g><g id="foo.a"><g class="shape" ><rect x="24" y="110" width="150" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text" x="99.000000" y="176.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">a</text></g><g id="foo.b"><g class="shape" ><rect x="274" y="110" width="150" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text" x="349.000000" y="176.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">b</text></g><g id="foobar.c"><g class="shape" ><rect x="24" y="730" width="150" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text" x="99.000000" y="796.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">c</text></g><g id="foobar.d"><g class="shape" ><rect x="274" y="730" width="150" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text" x="349.000000" y="796.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">d</text></g><g id="(foo -&gt; foobar)[0]"><marker id="mk-3990223579" 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 class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 224.000000 521.000000 C 224.000000 560.000000 224.000000 580.000000 224.000000 617.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#2494592993)"/></g><g id="(foo.a -- )[0]"><path d="M 99.000000 238.000000 L 99.000000 495.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;stroke-dasharray:12.000000,11.838767;" mask="url(#2494592993)"/></g><g id="(foo.b -- )[0]"><path d="M 349.000000 238.000000 L 349.000000 495.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;stroke-dasharray:12.000000,11.838767;" mask="url(#2494592993)"/></g><g id="(foobar.c -- )[0]"><path d="M 99.000000 858.000000 L 99.000000 1115.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;stroke-dasharray:12.000000,11.838767;" mask="url(#2494592993)"/></g><g id="(foobar.d -- )[0]"><path d="M 349.000000 858.000000 L 349.000000 1115.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;stroke-dasharray:12.000000,11.838767;" mask="url(#2494592993)"/></g><g id="foo.(a -&gt; b)[0]"><path d="M 101.000000 366.000000 L 345.000000 366.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#2494592993)"/></g><g id="foobar.(c -&gt; d)[0]"><path d="M 101.000000 986.000000 L 345.000000 986.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#2494592993)"/></g><mask id="2494592993" maskUnits="userSpaceOnUse" x="-100" y="-100" width="648" height="1340">
<rect x="-100" y="-100" width="648" height="1340" fill="white"></rect> <rect x="-100" y="-100" width="648" height="1340" fill="white"></rect>
</mask><style type="text/css"><![CDATA[ </mask><style type="text/css"><![CDATA[

Before

Width:  |  Height:  |  Size: 328 KiB

After

Width:  |  Height:  |  Size: 328 KiB

View file

@ -21,6 +21,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -61,6 +62,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -101,6 +103,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -141,6 +144,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -181,6 +185,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -221,6 +226,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,

View file

@ -39,7 +39,7 @@ width="648" height="1340" viewBox="-88 -88 648 1340"><style type="text/css">
svgEl.setAttribute("height", height * ratio - 16); svgEl.setAttribute("height", height * ratio - 16);
} }
}); });
]]></script><g id="foo"><g class="shape" ><rect x="12" y="12" width="448" height="520" style="fill:#FFFFFF;stroke:#0D32B2;stroke-width:0;" /></g><text class="text" x="236.000000" y="45.000000" style="text-anchor:middle;font-size:28px;fill:#0A0F25">foo</text></g><g id="foobar"><g class="shape" ><rect x="12" y="632" width="448" height="520" style="fill:#FFFFFF;stroke:#0D32B2;stroke-width:0;" /></g><text class="text" x="236.000000" y="665.000000" style="text-anchor:middle;font-size:28px;fill:#0A0F25">foobar</text></g><g id="foo.a"><g class="shape" ><rect x="36" y="122" width="150" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text" x="111.000000" y="188.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">a</text></g><g id="foo.b"><g class="shape" ><rect x="286" y="122" width="150" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text" x="361.000000" y="188.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">b</text></g><g id="foobar.c"><g class="shape" ><rect x="36" y="742" width="150" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text" x="111.000000" y="808.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">c</text></g><g id="foobar.d"><g class="shape" ><rect x="286" y="742" width="150" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text" x="361.000000" y="808.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">d</text></g><g id="(foo -&gt; foobar)[0]"><marker id="mk-3990223579" 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 class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 236.000000 533.000000 L 236.000000 629.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#1834367922)"/></g><g id="(foo.a -- )[0]"><path d="M 111.000000 250.000000 L 111.000000 507.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;stroke-dasharray:12.000000,11.838767;" mask="url(#1834367922)"/></g><g id="(foo.b -- )[0]"><path d="M 361.000000 250.000000 L 361.000000 507.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;stroke-dasharray:12.000000,11.838767;" mask="url(#1834367922)"/></g><g id="(foobar.c -- )[0]"><path d="M 111.000000 870.000000 L 111.000000 1127.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;stroke-dasharray:12.000000,11.838767;" mask="url(#1834367922)"/></g><g id="(foobar.d -- )[0]"><path d="M 361.000000 870.000000 L 361.000000 1127.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;stroke-dasharray:12.000000,11.838767;" mask="url(#1834367922)"/></g><g id="foo.(a -&gt; b)[0]"><path d="M 113.000000 378.000000 L 357.000000 378.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#1834367922)"/></g><g id="foobar.(c -&gt; d)[0]"><path d="M 113.000000 998.000000 L 357.000000 998.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#1834367922)"/></g><mask id="1834367922" maskUnits="userSpaceOnUse" x="-100" y="-100" width="648" height="1340"> ]]></script><g id="foo"><g class="shape" ><rect x="12" y="12" width="448" height="520" style="fill:#FFFFFF;stroke:#0D32B2;stroke-width:0;" /></g><text class="text" x="236.000000" y="45.000000" style="text-anchor:middle;font-size:28px;fill:#0A0F25">foo</text></g><g id="foobar"><g class="shape" ><rect x="12" y="632" width="448" height="520" style="fill:#FFFFFF;stroke:#0D32B2;stroke-width:0;" /></g><text class="text" x="236.000000" y="665.000000" style="text-anchor:middle;font-size:28px;fill:#0A0F25">foobar</text></g><g id="foo.a"><g class="shape" ><rect x="36" y="122" width="150" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text" x="111.000000" y="188.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">a</text></g><g id="foo.b"><g class="shape" ><rect x="286" y="122" width="150" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text" x="361.000000" y="188.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">b</text></g><g id="foobar.c"><g class="shape" ><rect x="36" y="742" width="150" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text" x="111.000000" y="808.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">c</text></g><g id="foobar.d"><g class="shape" ><rect x="286" y="742" width="150" height="126" style="fill:#EDF0FD;stroke:#0D32B2;stroke-width:2;" /></g><text class="text" x="361.000000" y="808.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">d</text></g><g id="(foo -&gt; foobar)[0]"><marker id="mk-3990223579" 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 class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 236.000000 533.000000 L 236.000000 629.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#1614682088)"/></g><g id="(foo.a -- )[0]"><path d="M 111.000000 250.000000 L 111.000000 507.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;stroke-dasharray:12.000000,11.838767;" mask="url(#1614682088)"/></g><g id="(foo.b -- )[0]"><path d="M 361.000000 250.000000 L 361.000000 507.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;stroke-dasharray:12.000000,11.838767;" mask="url(#1614682088)"/></g><g id="(foobar.c -- )[0]"><path d="M 111.000000 870.000000 L 111.000000 1127.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;stroke-dasharray:12.000000,11.838767;" mask="url(#1614682088)"/></g><g id="(foobar.d -- )[0]"><path d="M 361.000000 870.000000 L 361.000000 1127.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;stroke-dasharray:12.000000,11.838767;" mask="url(#1614682088)"/></g><g id="foo.(a -&gt; b)[0]"><path d="M 113.000000 378.000000 L 357.000000 378.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#1614682088)"/></g><g id="foobar.(c -&gt; d)[0]"><path d="M 113.000000 998.000000 L 357.000000 998.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#1614682088)"/></g><mask id="1614682088" maskUnits="userSpaceOnUse" x="-100" y="-100" width="648" height="1340">
<rect x="-100" y="-100" width="648" height="1340" fill="white"></rect> <rect x="-100" y="-100" width="648" height="1340" fill="white"></rect>
</mask><style type="text/css"><![CDATA[ </mask><style type="text/css"><![CDATA[

Before

Width:  |  Height:  |  Size: 328 KiB

After

Width:  |  Height:  |  Size: 328 KiB

View file

@ -21,6 +21,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -61,6 +62,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,

View file

@ -39,7 +39,7 @@ width="604" height="458" viewBox="-78 -28 604 458"><style type="text/css">
svgEl.setAttribute("height", height * ratio - 16); svgEl.setAttribute("height", height * ratio - 16);
} }
}); });
]]></script><g id="a"><g class="shape" ><rect x="24" y="74" width="150" height="126" style="fill:#FFFFFF;stroke:#0D32B2;stroke-width:2;" /></g><text class="text" x="99.000000" y="140.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">A</text></g><g id="b"><g class="shape" ><rect x="274" y="74" width="150" height="126" style="fill:#FFFFFF;stroke:#0D32B2;stroke-width:2;" /></g><text class="text" x="349.000000" y="140.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">B</text></g><g id="(a -- )[0]"><path d="M 99.000000 202.000000 L 99.000000 329.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;stroke-dasharray:12.000000,11.838767;" mask="url(#1755667537)"/></g><g id="(b -- )[0]"><path d="M 349.000000 202.000000 L 349.000000 329.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;stroke-dasharray:12.000000,11.838767;" mask="url(#1755667537)"/></g><mask id="1755667537" maskUnits="userSpaceOnUse" x="-100" y="-100" width="604" height="458"> ]]></script><g id="a"><g class="shape" ><rect x="24" y="74" width="150" height="126" style="fill:#FFFFFF;stroke:#0D32B2;stroke-width:2;" /></g><text class="text" x="99.000000" y="140.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">A</text></g><g id="b"><g class="shape" ><rect x="274" y="74" width="150" height="126" style="fill:#FFFFFF;stroke:#0D32B2;stroke-width:2;" /></g><text class="text" x="349.000000" y="140.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">B</text></g><g id="(a -- )[0]"><path d="M 99.000000 202.000000 L 99.000000 329.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;stroke-dasharray:12.000000,11.838767;" mask="url(#3468106845)"/></g><g id="(b -- )[0]"><path d="M 349.000000 202.000000 L 349.000000 329.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;stroke-dasharray:12.000000,11.838767;" mask="url(#3468106845)"/></g><mask id="3468106845" maskUnits="userSpaceOnUse" x="-100" y="-100" width="604" height="458">
<rect x="-100" y="-100" width="604" height="458" fill="white"></rect> <rect x="-100" y="-100" width="604" height="458" fill="white"></rect>
</mask><style type="text/css"><![CDATA[ </mask><style type="text/css"><![CDATA[

Before

Width:  |  Height:  |  Size: 326 KiB

After

Width:  |  Height:  |  Size: 326 KiB

View file

@ -21,6 +21,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,
@ -61,6 +62,7 @@
"shadow": false, "shadow": false,
"3d": false, "3d": false,
"multiple": false, "multiple": false,
"double-border": false,
"tooltip": "", "tooltip": "",
"link": "", "link": "",
"icon": null, "icon": null,

View file

@ -39,7 +39,7 @@ width="604" height="458" viewBox="-78 -28 604 458"><style type="text/css">
svgEl.setAttribute("height", height * ratio - 16); svgEl.setAttribute("height", height * ratio - 16);
} }
}); });
]]></script><g id="a"><g class="shape" ><rect x="24" y="74" width="150" height="126" style="fill:#FFFFFF;stroke:#0D32B2;stroke-width:2;" /></g><text class="text" x="99.000000" y="140.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">A</text></g><g id="b"><g class="shape" ><rect x="274" y="74" width="150" height="126" style="fill:#FFFFFF;stroke:#0D32B2;stroke-width:2;" /></g><text class="text" x="349.000000" y="140.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">B</text></g><g id="(a -- )[0]"><path d="M 99.000000 202.000000 L 99.000000 329.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;stroke-dasharray:12.000000,11.838767;" mask="url(#1755667537)"/></g><g id="(b -- )[0]"><path d="M 349.000000 202.000000 L 349.000000 329.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;stroke-dasharray:12.000000,11.838767;" mask="url(#1755667537)"/></g><mask id="1755667537" maskUnits="userSpaceOnUse" x="-100" y="-100" width="604" height="458"> ]]></script><g id="a"><g class="shape" ><rect x="24" y="74" width="150" height="126" style="fill:#FFFFFF;stroke:#0D32B2;stroke-width:2;" /></g><text class="text" x="99.000000" y="140.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">A</text></g><g id="b"><g class="shape" ><rect x="274" y="74" width="150" height="126" style="fill:#FFFFFF;stroke:#0D32B2;stroke-width:2;" /></g><text class="text" x="349.000000" y="140.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">B</text></g><g id="(a -- )[0]"><path d="M 99.000000 202.000000 L 99.000000 329.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;stroke-dasharray:12.000000,11.838767;" mask="url(#3468106845)"/></g><g id="(b -- )[0]"><path d="M 349.000000 202.000000 L 349.000000 329.000000" class="connection" style="fill:none;stroke:#0D32B2;stroke-width:2;stroke-dasharray:12.000000,11.838767;" mask="url(#3468106845)"/></g><mask id="3468106845" maskUnits="userSpaceOnUse" x="-100" y="-100" width="604" height="458">
<rect x="-100" y="-100" width="604" height="458" fill="white"></rect> <rect x="-100" y="-100" width="604" height="458" fill="white"></rect>
</mask><style type="text/css"><![CDATA[ </mask><style type="text/css"><![CDATA[

Before

Width:  |  Height:  |  Size: 326 KiB

After

Width:  |  Height:  |  Size: 326 KiB

File diff suppressed because it is too large Load diff

Some files were not shown because too many files have changed in this diff Show more