diff options
| author | bt <bt@rctt.net> | 2026-03-10 22:50:53 +0100 |
|---|---|---|
| committer | bt <bt@rctt.net> | 2026-03-10 22:53:32 +0100 |
| commit | 7cdd5c04d5e966b3c90a3d86720e0823b4f7ee2c (patch) | |
| tree | 2da446610bed492542c1c3fe31145fcc1ca82081 | |
| parent | 69192d956aa2b6b3dbf87bac0e265e718b49dd70 (diff) | |
| download | solec-7cdd5c04d5e966b3c90a3d86720e0823b4f7ee2c.tar.gz solec-7cdd5c04d5e966b3c90a3d86720e0823b4f7ee2c.zip | |
Update spec
| -rw-r--r-- | PROTOCOL.md | 74 | ||||
| -rw-r--r-- | README.md | 12 | ||||
| -rwxr-xr-x | build_spec.sh | 2 | ||||
| -rw-r--r-- | solec.ksy | 54 | ||||
| -rw-r--r-- | solec.lua | 111 | ||||
| -rw-r--r-- | solec.svg | 699 |
6 files changed, 544 insertions, 408 deletions
diff --git a/PROTOCOL.md b/PROTOCOL.md index 895d1df..886161c 100644 --- a/PROTOCOL.md +++ b/PROTOCOL.md @@ -2,48 +2,41 @@ # SOLEC protocol specification +## Data format + * Payload can contain multiple numeric types or binary data in a single frame * Numeric types are big endian -* Numeric types names are same as in [Go](https://go.dev/ref/spec#Numeric_types) * See [test payload](#Test) for an example of complex data structure -## Frame +### Frame structure | Type | Description | |----------|----------------| | `uint8` | Payload type | | `uint16` | Payload length | -| `[]any` | Payload | - +| `any` | Payload | -## Data types -### Numeric types +### Special types -* `uint8` -* `uint16` -* `uint32` -* `uint64` +#### Strings and binary -### `binary` +Strings and binary data are prefixed wtith 2 bytes denoting their length. +Strings are UTF-8 encoded. -| Type | Description | -|--------|----------------| -| uint16 | Data length | -| binary | Data | +#### Timestamps -### `string` +Timestamps are stored as `uint64` in [Unix format](https://en.wikipedia.org/wiki/Unix_time). +Timezone is always set to UTC. -UTF-8 encoded string encapsulated in `bianry` type. +### Payloads -### `time` +All payload types are described in following files: -[Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) stored in `uint16`. -Timezone is always UTC. +* [Kaitai Struct](https://git.sr.ht/~rctt/solec/blob/main/solec.ksy) +* [SVG graph](https://git.sr.ht/~rctt/solec/blob/main/solec.svg) -# Payloads - -## Payload prefixes +### Payload types | Type | Name | |------|--------------| @@ -53,39 +46,4 @@ Timezone is always UTC. | 0x04 | Message | | 0xFF | Test | -## Payload types - -### Handshake - -| Type | Name | Description | -|--------|---------------------|----------------------------------------------------------| -| uint8 | ProtocolVersionMajor | Bumped if changes are incompatible with previous version | -| uint8 | PrococolVersionMinor | Bumber if changes are backwards compatible | - - -### Ping - -Can be send by client or server. Receiver shoudl reply with `Pong`. - -### Pong - -Reply to `ping`. - -| Type | Name | Description | -|--------|------|-------------------------| -| uint64 | Time | Set just before sending | - -### Test - -Used for testing purposes. Can change at any time. -| Type | Name | Description | -|--------|-------|-------------| -| uint8 | Num1 | | -| time | Time1 | | -| string | Str1 | | -| uint16 | Num2 | | -| binary | Bin1 | | -| uint32 | Num3 | | -| string | Str2 | | -| uint64 | Num4 | | @@ -1,11 +1,13 @@ -# solecd +# solec -## Running +* [Protocol spec](https://git.sr.ht/~rctt/solec/tree/main/item/PROTOCOL.md) + +## Running the daemon You'll need Go toolchain. Get it [here](https://go.dev/dl/) ``` -git clone https://git.sr.ht/~rctt/solecd +git clone https://git.sr.ht/~rctt/solec cd solecd go run cmd/daemon/main.go ``` @@ -23,6 +25,7 @@ it into Wireshark plugins directory. - Protocol - Design handshake process - Design basic messaging + - Maybe put payload type and length into same bytes? - Server - Put server stuff into a package @@ -31,6 +34,3 @@ it into Wireshark plugins directory. - Network library - Handle partial TCP packets - Better error handling - -- Tools - - Generate Wireshark dissector from spec
\ No newline at end of file diff --git a/build_spec.sh b/build_spec.sh index ae78b81..dfebbd2 100755 --- a/build_spec.sh +++ b/build_spec.sh @@ -13,7 +13,7 @@ rm solec.dot ~/bin/kaitai-struct-compiler-ws/bin/kaitai-struct-compiler -t wireshark --read-pos solec.ksy ${SED} -i -e '5s/.*/package.path = "kaitai_struct_lua_runtime\/?.lua" .. package.path/' solec.lua -${SED} -i -e 's/, self.payload_type//' solec.lua +${SED} -i -e 's/, self.type_payload//' solec.lua cat <<EOT >> solec.lua local tcp_port = DissectorTable.get("tcp.port") @@ -3,32 +3,39 @@ meta: file-extension: hex endian: be -enums: - type: - 0x01: handshake - 0x02: ping - 0x03: pong - 0x04: message - 0xFF: test +doc: | + SOLEC protocol uses big endian encoding. Frames uses type-length-value format. + +doc-ref: https://git.sr.ht/~rctt/solec/blob/main/solec.svg seq: - - id: payload_type + - id: type_payload type: u1 enum: type - - id: payload_length + - id: len_payload type: u2 - id: payload + size: len_payload type: - switch-on: payload_type + switch-on: type_payload cases: 'type::handshake': handshake 'type::ping': ping 'type::pong': pong -# 'type::message': message + 'type::message': message 'type::test': test +enums: + type: + 0x01: handshake + 0x02: ping + 0x03: pong + 0x04: message + 0xFF: test + types: string: + doc: UTF-8 encoded string. seq: - id: len_payload type: u2 @@ -38,6 +45,7 @@ types: encoding: UTF-8 binary: + doc: Binary data of unspecifed type. seq: - id: len_payload type: u2 @@ -45,19 +53,41 @@ types: size: len_payload handshake: + doc: | + Handshake is sent by the client during connection initialization. + If protocol_ver_major is different than version used by the server + connection will be aborted. seq: - id: proto_ver_major type: u1 - id: proto_ver_minor type: u1 - ping: {} + ping: + doc: Ping does not contain any payload. pong: seq: - id: timestamp + doc: | + Timestamp is set just before sending the pong message. It can be used + to meassure packet's travel time between server and client. type: u8 + message: + doc: | + Source and target fields are addresses in user@server format. + seq: + - id: source + type: string + - id: target + type: string + - id: timestamp + doc: Set just before sending the message. + type: u8 + - id: content + type: string + test: doc: Test payload, used for parsers testing seq: @@ -9,10 +9,10 @@ require("kaitaistruct") local proto = Proto('solec', 'Solec') proto.fields = {} local enum = require("enum") -local Solec_payload_type = ProtoField.new('payload_type', 'Solec.payload_type', ftypes.BYTES) -table.insert(proto.fields, Solec_payload_type) -local Solec_payload_length = ProtoField.new('payload_length', 'Solec.payload_length', ftypes.UINT32) -table.insert(proto.fields, Solec_payload_length) +local Solec_type_payload = ProtoField.new('type_payload', 'Solec.type_payload', ftypes.BYTES) +table.insert(proto.fields, Solec_type_payload) +local Solec_len_payload = ProtoField.new('len_payload', 'Solec.len_payload', ftypes.UINT32) +table.insert(proto.fields, Solec_len_payload) local Solec_Test_num1 = ProtoField.new('num1', 'Solec.Test.num1', ftypes.UINT8) table.insert(proto.fields, Solec_Test_num1) local Solec_Test_time1 = ProtoField.new('time1', 'Solec.Test.time1', ftypes.UINT32) @@ -36,6 +36,8 @@ local Solec_Handshake_proto_ver_major = ProtoField.new('proto_ver_major', 'Solec table.insert(proto.fields, Solec_Handshake_proto_ver_major) local Solec_Handshake_proto_ver_minor = ProtoField.new('proto_ver_minor', 'Solec.Handshake.proto_ver_minor', ftypes.UINT8) table.insert(proto.fields, Solec_Handshake_proto_ver_minor) +local Solec_Message_timestamp = ProtoField.new('timestamp', 'Solec.Message.timestamp', ftypes.UINT32) +table.insert(proto.fields, Solec_Message_timestamp) local Solec_Pong_timestamp = ProtoField.new('timestamp', 'Solec.Pong.timestamp', ftypes.UINT32) table.insert(proto.fields, Solec_Pong_timestamp) @@ -46,6 +48,9 @@ function proto.dissector(tvb, pinfo, root) local obj = Solec(io, tree) end +-- +-- SOLEC protocol uses big endian encoding. Frames uses type-length-value format. +-- See also: Source (https://git.sr.ht/~rctt/solec/blob/main/solec.svg) Solec = class.class(KaitaiStruct) Solec.Type = enum.Enum { @@ -66,29 +71,45 @@ end function Solec:_read() local _offset = self._io:pos() - self.payload_type = Solec.Type(self._io:read_u1()) - self._tree:add(Solec_payload_type, self._io._io.tvb(_offset, self._io:pos() - _offset)) + self.type_payload = Solec.Type(self._io:read_u1()) + self._tree:add(Solec_type_payload, self._io._io.tvb(_offset, self._io:pos() - _offset)) local _offset = self._io:pos() - self.payload_length = self._io:read_u2be() - self._tree:add(Solec_payload_length, self._io._io.tvb(_offset, self._io:pos() - _offset), self.payload_length) + self.len_payload = self._io:read_u2be() + self._tree:add(Solec_len_payload, self._io._io.tvb(_offset, self._io:pos() - _offset), self.len_payload) local _offset = self._io:pos() - local _on = self.payload_type - if _on == Solec.Type.handshake then - local _tree = self._tree:add(self._io._io.tvb(_offset, 0), 'payload') - self.payload = Solec.Handshake(self._io, _tree, self, self._root) - _tree:set_len(self._io:pos() - _offset) + local _on = self.type_payload + if _on == Solec.Type.message then + self._raw_payload = self._io:read_bytes(self.len_payload) + local _tvb = self._io._io.tvb(_offset, self._io:pos() - _offset) + local _io = KaitaiStream(TVBStream(_tvb)) + local _tree = self._tree:add(_tvb, 'payload') + self.payload = Solec.Message(_io, _tree, self, self._root) elseif _on == Solec.Type.ping then - local _tree = self._tree:add(self._io._io.tvb(_offset, 0), 'payload') - self.payload = Solec.Ping(self._io, _tree, self, self._root) - _tree:set_len(self._io:pos() - _offset) + self._raw_payload = self._io:read_bytes(self.len_payload) + local _tvb = self._io._io.tvb(_offset, self._io:pos() - _offset) + local _io = KaitaiStream(TVBStream(_tvb)) + local _tree = self._tree:add(_tvb, 'payload') + self.payload = Solec.Ping(_io, _tree, self, self._root) elseif _on == Solec.Type.pong then - local _tree = self._tree:add(self._io._io.tvb(_offset, 0), 'payload') - self.payload = Solec.Pong(self._io, _tree, self, self._root) - _tree:set_len(self._io:pos() - _offset) + self._raw_payload = self._io:read_bytes(self.len_payload) + local _tvb = self._io._io.tvb(_offset, self._io:pos() - _offset) + local _io = KaitaiStream(TVBStream(_tvb)) + local _tree = self._tree:add(_tvb, 'payload') + self.payload = Solec.Pong(_io, _tree, self, self._root) elseif _on == Solec.Type.test then - local _tree = self._tree:add(self._io._io.tvb(_offset, 0), 'payload') - self.payload = Solec.Test(self._io, _tree, self, self._root) - _tree:set_len(self._io:pos() - _offset) + self._raw_payload = self._io:read_bytes(self.len_payload) + local _tvb = self._io._io.tvb(_offset, self._io:pos() - _offset) + local _io = KaitaiStream(TVBStream(_tvb)) + local _tree = self._tree:add(_tvb, 'payload') + self.payload = Solec.Test(_io, _tree, self, self._root) + elseif _on == Solec.Type.handshake then + self._raw_payload = self._io:read_bytes(self.len_payload) + local _tvb = self._io._io.tvb(_offset, self._io:pos() - _offset) + local _io = KaitaiStream(TVBStream(_tvb)) + local _tree = self._tree:add(_tvb, 'payload') + self.payload = Solec.Handshake(_io, _tree, self, self._root) + else + self.payload = self._io:read_bytes(self.len_payload) end end @@ -136,6 +157,8 @@ function Solec.Test:_read() end +-- +-- Binary data of unspecifed type. Solec.Binary = class.class(KaitaiStruct) function Solec.Binary:_init(io, tree, parent, root) @@ -156,6 +179,8 @@ function Solec.Binary:_read() end +-- +-- UTF-8 encoded string. Solec.String = class.class(KaitaiStruct) function Solec.String:_init(io, tree, parent, root) @@ -176,6 +201,8 @@ function Solec.String:_read() end +-- +-- Ping does not contain any payload. Solec.Ping = class.class(KaitaiStruct) function Solec.Ping:_init(io, tree, parent, root) @@ -190,6 +217,10 @@ function Solec.Ping:_read() end +-- +-- Handshake is sent by the client during connection initialization. +-- If protocol_ver_major is different than version used by the server +-- connection will be aborted. Solec.Handshake = class.class(KaitaiStruct) function Solec.Handshake:_init(io, tree, parent, root) @@ -210,6 +241,39 @@ function Solec.Handshake:_read() end +-- +-- Source and target fields are addresses in user@server format. +Solec.Message = class.class(KaitaiStruct) + +function Solec.Message:_init(io, tree, parent, root) + KaitaiStruct._init(self, io) + self._parent = parent + self._root = root or self + self._tree = tree + self:_read() +end + +function Solec.Message:_read() + local _offset = self._io:pos() + local _tree = self._tree:add(self._io._io.tvb(_offset, 0), 'source') + self.source = Solec.String(self._io, _tree, self, self._root) + _tree:set_len(self._io:pos() - _offset) + local _offset = self._io:pos() + local _tree = self._tree:add(self._io._io.tvb(_offset, 0), 'target') + self.target = Solec.String(self._io, _tree, self, self._root) + _tree:set_len(self._io:pos() - _offset) + local _offset = self._io:pos() + self.timestamp = self._io:read_u8be() + self._tree:add(Solec_Message_timestamp, self._io._io.tvb(_offset, self._io:pos() - _offset), self.timestamp) + local _offset = self._io:pos() + local _tree = self._tree:add(self._io._io.tvb(_offset, 0), 'content') + self.content = Solec.String(self._io, _tree, self, self._root) + _tree:set_len(self._io:pos() - _offset) +end + +-- +-- Set just before sending the message. + Solec.Pong = class.class(KaitaiStruct) function Solec.Pong:_init(io, tree, parent, root) @@ -226,6 +290,9 @@ function Solec.Pong:_read() self._tree:add(Solec_Pong_timestamp, self._io._io.tvb(_offset, self._io:pos() - _offset), self.timestamp) end +-- +-- Timestamp is set just before sending the pong message. It can be used +-- to meassure packet's travel time between server and client. local tcp_port = DissectorTable.get("tcp.port") tcp_port:add(9999, proto) @@ -4,391 +4,472 @@ <!-- Generated by graphviz version 14.1.3 (20260303.0454) --> <!-- Pages: 1 --> -<svg width="1064pt" height="627pt" - viewBox="0.00 0.00 1064.00 627.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> -<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 623)"> -<polygon fill="white" stroke="none" points="-4,4 -4,-623 1059.75,-623 1059.75,4 -4,4"/> +<svg width="1053pt" height="796pt" + viewBox="0.00 0.00 1053.00 796.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 792)"> +<polygon fill="white" stroke="none" points="-4,4 -4,-792 1049.25,-792 1049.25,4 -4,4"/> <g id="clust1" class="cluster"> <title>cluster__solec</title> -<polygon fill="none" stroke="black" stroke-dasharray="1,5" points="8,-8 8,-611 1047.75,-611 1047.75,-8 8,-8"/> -<text xml:space="preserve" text-anchor="middle" x="527.88" y="-593.7" font-family="Times,serif" font-size="14.00">Solec</text> +<polygon fill="none" stroke="black" stroke-dasharray="1,5" points="8,-8 8,-780 1037.25,-780 1037.25,-8 8,-8"/> +<text xml:space="preserve" text-anchor="middle" x="522.62" y="-762.7" font-family="Times,serif" font-size="14.00">Solec</text> </g> <g id="clust2" class="cluster"> <title>cluster__binary</title> -<polygon fill="none" stroke="black" stroke-dasharray="1,5" points="790.25,-16 790.25,-150 1023.25,-150 1023.25,-16 790.25,-16"/> -<text xml:space="preserve" text-anchor="middle" x="906.75" y="-132.7" font-family="Times,serif" font-size="14.00">Solec::Binary</text> +<polygon fill="none" stroke="black" stroke-dasharray="1,5" points="779.75,-61 779.75,-195 1012.75,-195 1012.75,-61 779.75,-61"/> +<text xml:space="preserve" text-anchor="middle" x="896.25" y="-177.7" font-family="Times,serif" font-size="14.00">Solec::Binary</text> </g> <g id="clust3" class="cluster"> <title>cluster__handshake</title> -<polygon fill="none" stroke="black" stroke-dasharray="1,5" points="542.5,-462 542.5,-578 753.75,-578 753.75,-462 542.5,-462"/> -<text xml:space="preserve" text-anchor="middle" x="648.12" y="-560.7" font-family="Times,serif" font-size="14.00">Solec::Handshake</text> +<polygon fill="none" stroke="black" stroke-dasharray="1,5" points="532,-631 532,-747 743.25,-747 743.25,-631 532,-631"/> +<text xml:space="preserve" text-anchor="middle" x="637.62" y="-729.7" font-family="Times,serif" font-size="14.00">Solec::Handshake</text> </g> <g id="clust4" class="cluster"> -<title>cluster__ping</title> -<polygon fill="none" stroke="black" stroke-dasharray="1,5" points="583.38,-377 583.38,-454 712.88,-454 712.88,-377 583.38,-377"/> -<text xml:space="preserve" text-anchor="middle" x="648.12" y="-436.7" font-family="Times,serif" font-size="14.00">Solec::Ping</text> +<title>cluster__message</title> +<polygon fill="none" stroke="black" stroke-dasharray="1,5" points="544.38,-462 544.38,-623 730.88,-623 730.88,-462 544.38,-462"/> +<text xml:space="preserve" text-anchor="middle" x="637.62" y="-605.7" font-family="Times,serif" font-size="14.00">Solec::Message</text> </g> <g id="clust5" class="cluster"> -<title>cluster__pong</title> -<polygon fill="none" stroke="black" stroke-dasharray="1,5" points="558.25,-275 558.25,-369 738,-369 738,-275 558.25,-275"/> -<text xml:space="preserve" text-anchor="middle" x="648.12" y="-351.7" font-family="Times,serif" font-size="14.00">Solec::Pong</text> +<title>cluster__ping</title> +<polygon fill="none" stroke="black" stroke-dasharray="1,5" points="572.88,-377 572.88,-454 702.38,-454 702.38,-377 572.88,-377"/> +<text xml:space="preserve" text-anchor="middle" x="637.62" y="-436.7" font-family="Times,serif" font-size="14.00">Solec::Ping</text> </g> <g id="clust6" class="cluster"> -<title>cluster__string</title> -<polygon fill="none" stroke="black" stroke-dasharray="1,5" points="773.75,-158 773.75,-292 1039.75,-292 1039.75,-158 773.75,-158"/> -<text xml:space="preserve" text-anchor="middle" x="906.75" y="-274.7" font-family="Times,serif" font-size="14.00">Solec::String</text> +<title>cluster__pong</title> +<polygon fill="none" stroke="black" stroke-dasharray="1,5" points="547.75,-275 547.75,-369 727.5,-369 727.5,-275 547.75,-275"/> +<text xml:space="preserve" text-anchor="middle" x="637.62" y="-351.7" font-family="Times,serif" font-size="14.00">Solec::Pong</text> </g> <g id="clust7" class="cluster"> +<title>cluster__string</title> +<polygon fill="none" stroke="black" stroke-dasharray="1,5" points="763.25,-439 763.25,-573 1029.25,-573 1029.25,-439 763.25,-439"/> +<text xml:space="preserve" text-anchor="middle" x="896.25" y="-555.7" font-family="Times,serif" font-size="14.00">Solec::String</text> +</g> +<g id="clust8" class="cluster"> <title>cluster__test</title> -<polygon fill="none" stroke="black" stroke-dasharray="1,5" points="566.12,-16 566.12,-267 730.12,-267 730.12,-16 566.12,-16"/> -<text xml:space="preserve" text-anchor="middle" x="648.12" y="-249.7" font-family="Times,serif" font-size="14.00">Solec::Test</text> +<polygon fill="none" stroke="black" stroke-dasharray="1,5" points="555.62,-16 555.62,-267 719.62,-267 719.62,-16 555.62,-16"/> +<text xml:space="preserve" text-anchor="middle" x="637.62" y="-249.7" font-family="Times,serif" font-size="14.00">Solec::Test</text> </g> <!-- solec__seq --> <g id="node1" class="node"> <title>solec__seq</title> -<polygon fill="#e0ffe0" stroke="none" points="24,-422.5 24,-445 48.75,-445 48.75,-422.5 24,-422.5"/> -<polygon fill="none" stroke="black" points="24,-422.5 24,-445 48.75,-445 48.75,-422.5 24,-422.5"/> -<text xml:space="preserve" text-anchor="start" x="27" y="-429.25" font-family="Times,serif" font-size="14.00">pos</text> -<polygon fill="#e0ffe0" stroke="none" points="48.75,-422.5 48.75,-445 75.75,-445 75.75,-422.5 48.75,-422.5"/> -<polygon fill="none" stroke="black" points="48.75,-422.5 48.75,-445 75.75,-445 75.75,-422.5 48.75,-422.5"/> -<text xml:space="preserve" text-anchor="start" x="51.75" y="-429.25" font-family="Times,serif" font-size="14.00">size</text> -<polygon fill="#e0ffe0" stroke="none" points="75.75,-422.5 75.75,-445 202.5,-445 202.5,-422.5 75.75,-422.5"/> -<polygon fill="none" stroke="black" points="75.75,-422.5 75.75,-445 202.5,-445 202.5,-422.5 75.75,-422.5"/> -<text xml:space="preserve" text-anchor="start" x="127.5" y="-429.25" font-family="Times,serif" font-size="14.00">type</text> -<polygon fill="#e0ffe0" stroke="none" points="202.5,-422.5 202.5,-445 291.75,-445 291.75,-422.5 202.5,-422.5"/> -<polygon fill="none" stroke="black" points="202.5,-422.5 202.5,-445 291.75,-445 291.75,-422.5 202.5,-422.5"/> -<text xml:space="preserve" text-anchor="start" x="241.88" y="-429.25" font-family="Times,serif" font-size="14.00">id</text> -<polygon fill="none" stroke="black" points="24,-400 24,-422.5 48.75,-422.5 48.75,-400 24,-400"/> -<text xml:space="preserve" text-anchor="start" x="33" y="-406.75" font-family="Times,serif" font-size="14.00">0</text> -<polygon fill="none" stroke="black" points="48.75,-400 48.75,-422.5 75.75,-422.5 75.75,-400 48.75,-400"/> -<text xml:space="preserve" text-anchor="start" x="58.88" y="-406.75" font-family="Times,serif" font-size="14.00">1</text> -<polygon fill="none" stroke="black" points="75.75,-400 75.75,-422.5 202.5,-422.5 202.5,-400 75.75,-400"/> -<text xml:space="preserve" text-anchor="start" x="111.38" y="-406.75" font-family="Times,serif" font-size="14.00">u1→Type</text> -<polygon fill="none" stroke="black" points="202.5,-400 202.5,-422.5 291.75,-422.5 291.75,-400 202.5,-400"/> -<text xml:space="preserve" text-anchor="start" x="210.75" y="-406.75" font-family="Times,serif" font-size="14.00">payload_type</text> -<polygon fill="none" stroke="black" points="24,-377.5 24,-400 48.75,-400 48.75,-377.5 24,-377.5"/> -<text xml:space="preserve" text-anchor="start" x="33" y="-384.25" font-family="Times,serif" font-size="14.00">1</text> -<polygon fill="none" stroke="black" points="48.75,-377.5 48.75,-400 75.75,-400 75.75,-377.5 48.75,-377.5"/> -<text xml:space="preserve" text-anchor="start" x="58.88" y="-384.25" font-family="Times,serif" font-size="14.00">2</text> -<polygon fill="none" stroke="black" points="75.75,-377.5 75.75,-400 202.5,-400 202.5,-377.5 75.75,-377.5"/> -<text xml:space="preserve" text-anchor="start" x="126" y="-384.25" font-family="Times,serif" font-size="14.00">u2be</text> -<polygon fill="none" stroke="black" points="202.5,-377.5 202.5,-400 291.75,-400 291.75,-377.5 202.5,-377.5"/> -<text xml:space="preserve" text-anchor="start" x="205.5" y="-384.25" font-family="Times,serif" font-size="14.00">payload_length</text> -<polygon fill="none" stroke="black" points="24,-355 24,-377.5 48.75,-377.5 48.75,-355 24,-355"/> -<text xml:space="preserve" text-anchor="start" x="33" y="-361.75" font-family="Times,serif" font-size="14.00">3</text> -<polygon fill="none" stroke="black" points="48.75,-355 48.75,-377.5 75.75,-377.5 75.75,-355 48.75,-355"/> -<text xml:space="preserve" text-anchor="start" x="56.62" y="-361.75" font-family="Times,serif" font-size="14.00">...</text> -<polygon fill="none" stroke="black" points="75.75,-355 75.75,-377.5 202.5,-377.5 202.5,-355 75.75,-355"/> -<text xml:space="preserve" text-anchor="start" x="78.75" y="-361.75" font-family="Times,serif" font-size="14.00">switch (payload_type)</text> -<polygon fill="none" stroke="black" points="202.5,-355 202.5,-377.5 291.75,-377.5 291.75,-355 202.5,-355"/> -<text xml:space="preserve" text-anchor="start" x="225.75" y="-361.75" font-family="Times,serif" font-size="14.00">payload</text> +<polygon fill="#e0ffe0" stroke="none" points="24,-469.5 24,-492 48.75,-492 48.75,-469.5 24,-469.5"/> +<polygon fill="none" stroke="black" points="24,-469.5 24,-492 48.75,-492 48.75,-469.5 24,-469.5"/> +<text xml:space="preserve" text-anchor="start" x="27" y="-476.25" font-family="Times,serif" font-size="14.00">pos</text> +<polygon fill="#e0ffe0" stroke="none" points="48.75,-469.5 48.75,-492 75.75,-492 75.75,-469.5 48.75,-469.5"/> +<polygon fill="none" stroke="black" points="48.75,-469.5 48.75,-492 75.75,-492 75.75,-469.5 48.75,-469.5"/> +<text xml:space="preserve" text-anchor="start" x="51.75" y="-476.25" font-family="Times,serif" font-size="14.00">size</text> +<polygon fill="#e0ffe0" stroke="none" points="75.75,-469.5 75.75,-492 202.5,-492 202.5,-469.5 75.75,-469.5"/> +<polygon fill="none" stroke="black" points="75.75,-469.5 75.75,-492 202.5,-492 202.5,-469.5 75.75,-469.5"/> +<text xml:space="preserve" text-anchor="start" x="127.5" y="-476.25" font-family="Times,serif" font-size="14.00">type</text> +<polygon fill="#e0ffe0" stroke="none" points="202.5,-469.5 202.5,-492 281.25,-492 281.25,-469.5 202.5,-469.5"/> +<polygon fill="none" stroke="black" points="202.5,-469.5 202.5,-492 281.25,-492 281.25,-469.5 202.5,-469.5"/> +<text xml:space="preserve" text-anchor="start" x="236.62" y="-476.25" font-family="Times,serif" font-size="14.00">id</text> +<polygon fill="none" stroke="black" points="24,-447 24,-469.5 48.75,-469.5 48.75,-447 24,-447"/> +<text xml:space="preserve" text-anchor="start" x="33" y="-453.75" font-family="Times,serif" font-size="14.00">0</text> +<polygon fill="none" stroke="black" points="48.75,-447 48.75,-469.5 75.75,-469.5 75.75,-447 48.75,-447"/> +<text xml:space="preserve" text-anchor="start" x="58.88" y="-453.75" font-family="Times,serif" font-size="14.00">1</text> +<polygon fill="none" stroke="black" points="75.75,-447 75.75,-469.5 202.5,-469.5 202.5,-447 75.75,-447"/> +<text xml:space="preserve" text-anchor="start" x="111.38" y="-453.75" font-family="Times,serif" font-size="14.00">u1→Type</text> +<polygon fill="none" stroke="black" points="202.5,-447 202.5,-469.5 281.25,-469.5 281.25,-447 202.5,-447"/> +<text xml:space="preserve" text-anchor="start" x="205.5" y="-453.75" font-family="Times,serif" font-size="14.00">type_payload</text> +<polygon fill="none" stroke="black" points="24,-424.5 24,-447 48.75,-447 48.75,-424.5 24,-424.5"/> +<text xml:space="preserve" text-anchor="start" x="33" y="-431.25" font-family="Times,serif" font-size="14.00">1</text> +<polygon fill="none" stroke="black" points="48.75,-424.5 48.75,-447 75.75,-447 75.75,-424.5 48.75,-424.5"/> +<text xml:space="preserve" text-anchor="start" x="58.88" y="-431.25" font-family="Times,serif" font-size="14.00">2</text> +<polygon fill="none" stroke="black" points="75.75,-424.5 75.75,-447 202.5,-447 202.5,-424.5 75.75,-424.5"/> +<text xml:space="preserve" text-anchor="start" x="126" y="-431.25" font-family="Times,serif" font-size="14.00">u2be</text> +<polygon fill="none" stroke="black" points="202.5,-424.5 202.5,-447 281.25,-447 281.25,-424.5 202.5,-424.5"/> +<text xml:space="preserve" text-anchor="start" x="208.88" y="-431.25" font-family="Times,serif" font-size="14.00">len_payload</text> +<polygon fill="none" stroke="black" points="24,-402 24,-424.5 48.75,-424.5 48.75,-402 24,-402"/> +<text xml:space="preserve" text-anchor="start" x="33" y="-408.75" font-family="Times,serif" font-size="14.00">3</text> +<polygon fill="none" stroke="black" points="48.75,-402 48.75,-424.5 75.75,-424.5 75.75,-402 48.75,-402"/> +<text xml:space="preserve" text-anchor="start" x="56.62" y="-408.75" font-family="Times,serif" font-size="14.00">...</text> +<polygon fill="none" stroke="black" points="75.75,-402 75.75,-424.5 202.5,-424.5 202.5,-402 75.75,-402"/> +<text xml:space="preserve" text-anchor="start" x="78.75" y="-408.75" font-family="Times,serif" font-size="14.00">switch (type_payload)</text> +<polygon fill="none" stroke="black" points="202.5,-402 202.5,-424.5 281.25,-424.5 281.25,-402 202.5,-402"/> +<text xml:space="preserve" text-anchor="start" x="220.5" y="-408.75" font-family="Times,serif" font-size="14.00">payload</text> </g> <!-- solec__seq->solec__seq --> -<g id="edge6" class="edge"> -<title>solec__seq:payload_type_type->solec__seq:payload_type</title> -<path fill="none" stroke="#404040" d="M220.7,-422.36C181.94,-443.21 190.75,-467 247.12,-467 301.01,-467 311.43,-416 278.41,-384.55"/> -<polygon fill="#404040" stroke="#404040" points="280.77,-381.95 270.81,-378.35 276.35,-387.38 280.77,-381.95"/> +<g id="edge7" class="edge"> +<title>solec__seq:type_payload_type->solec__seq:payload_type</title> +<path fill="none" stroke="#404040" d="M215.97,-469.36C177.97,-490.21 186.61,-514 241.88,-514 294.7,-514 304.92,-463 272.55,-431.55"/> +<polygon fill="#404040" stroke="#404040" points="275.03,-429.06 265.1,-425.36 270.56,-434.44 275.03,-429.06"/> </g> <!-- solec__seq_payload_switch --> <g id="node2" class="node"> <title>solec__seq_payload_switch</title> -<polygon fill="#f0f2e4" stroke="none" points="343.75,-400.75 343.75,-423.25 440.5,-423.25 440.5,-400.75 343.75,-400.75"/> -<polygon fill="none" stroke="black" points="343.75,-400.75 343.75,-423.25 440.5,-423.25 440.5,-400.75 343.75,-400.75"/> -<text xml:space="preserve" text-anchor="start" x="380.5" y="-407.5" font-family="Times,serif" font-size="14.00">case</text> -<polygon fill="#f0f2e4" stroke="none" points="440.5,-400.75 440.5,-423.25 506.5,-423.25 506.5,-400.75 440.5,-400.75"/> -<polygon fill="none" stroke="black" points="440.5,-400.75 440.5,-423.25 506.5,-423.25 506.5,-400.75 440.5,-400.75"/> -<text xml:space="preserve" text-anchor="start" x="461.88" y="-407.5" font-family="Times,serif" font-size="14.00">type</text> -<polygon fill="none" stroke="black" points="343.75,-378.25 343.75,-400.75 440.5,-400.75 440.5,-378.25 343.75,-378.25"/> -<text xml:space="preserve" text-anchor="start" x="346.75" y="-385" font-family="Times,serif" font-size="14.00">:type_handshake</text> -<polygon fill="none" stroke="black" points="440.5,-378.25 440.5,-400.75 506.5,-400.75 506.5,-378.25 440.5,-378.25"/> -<text xml:space="preserve" text-anchor="start" x="443.5" y="-385" font-family="Times,serif" font-size="14.00">Handshake</text> -<polygon fill="none" stroke="black" points="343.75,-355.75 343.75,-378.25 440.5,-378.25 440.5,-355.75 343.75,-355.75"/> -<text xml:space="preserve" text-anchor="start" x="363.25" y="-362.5" font-family="Times,serif" font-size="14.00">:type_ping</text> -<polygon fill="none" stroke="black" points="440.5,-355.75 440.5,-378.25 506.5,-378.25 506.5,-355.75 440.5,-355.75"/> -<text xml:space="preserve" text-anchor="start" x="461.12" y="-362.5" font-family="Times,serif" font-size="14.00">Ping</text> -<polygon fill="none" stroke="black" points="343.75,-333.25 343.75,-355.75 440.5,-355.75 440.5,-333.25 343.75,-333.25"/> -<text xml:space="preserve" text-anchor="start" x="361.75" y="-340" font-family="Times,serif" font-size="14.00">:type_pong</text> -<polygon fill="none" stroke="black" points="440.5,-333.25 440.5,-355.75 506.5,-355.75 506.5,-333.25 440.5,-333.25"/> -<text xml:space="preserve" text-anchor="start" x="459.62" y="-340" font-family="Times,serif" font-size="14.00">Pong</text> -<polygon fill="none" stroke="black" points="343.75,-310.75 343.75,-333.25 440.5,-333.25 440.5,-310.75 343.75,-310.75"/> -<text xml:space="preserve" text-anchor="start" x="365.88" y="-317.5" font-family="Times,serif" font-size="14.00">:type_test</text> -<polygon fill="none" stroke="black" points="440.5,-310.75 440.5,-333.25 506.5,-333.25 506.5,-310.75 440.5,-310.75"/> -<text xml:space="preserve" text-anchor="start" x="461.88" y="-317.5" font-family="Times,serif" font-size="14.00">Test</text> +<polygon fill="#f0f2e4" stroke="none" points="333.25,-459 333.25,-481.5 430,-481.5 430,-459 333.25,-459"/> +<polygon fill="none" stroke="black" points="333.25,-459 333.25,-481.5 430,-481.5 430,-459 333.25,-459"/> +<text xml:space="preserve" text-anchor="start" x="370" y="-465.75" font-family="Times,serif" font-size="14.00">case</text> +<polygon fill="#f0f2e4" stroke="none" points="430,-459 430,-481.5 496,-481.5 496,-459 430,-459"/> +<polygon fill="none" stroke="black" points="430,-459 430,-481.5 496,-481.5 496,-459 430,-459"/> +<text xml:space="preserve" text-anchor="start" x="451.38" y="-465.75" font-family="Times,serif" font-size="14.00">type</text> +<polygon fill="none" stroke="black" points="333.25,-436.5 333.25,-459 430,-459 430,-436.5 333.25,-436.5"/> +<text xml:space="preserve" text-anchor="start" x="336.25" y="-443.25" font-family="Times,serif" font-size="14.00">:type_handshake</text> +<polygon fill="none" stroke="black" points="430,-436.5 430,-459 496,-459 496,-436.5 430,-436.5"/> +<text xml:space="preserve" text-anchor="start" x="433" y="-443.25" font-family="Times,serif" font-size="14.00">Handshake</text> +<polygon fill="none" stroke="black" points="333.25,-414 333.25,-436.5 430,-436.5 430,-414 333.25,-414"/> +<text xml:space="preserve" text-anchor="start" x="341.5" y="-420.75" font-family="Times,serif" font-size="14.00">:type_message</text> +<polygon fill="none" stroke="black" points="430,-414 430,-436.5 496,-436.5 496,-414 430,-414"/> +<text xml:space="preserve" text-anchor="start" x="439" y="-420.75" font-family="Times,serif" font-size="14.00">Message</text> +<polygon fill="none" stroke="black" points="333.25,-391.5 333.25,-414 430,-414 430,-391.5 333.25,-391.5"/> +<text xml:space="preserve" text-anchor="start" x="352.75" y="-398.25" font-family="Times,serif" font-size="14.00">:type_ping</text> +<polygon fill="none" stroke="black" points="430,-391.5 430,-414 496,-414 496,-391.5 430,-391.5"/> +<text xml:space="preserve" text-anchor="start" x="450.62" y="-398.25" font-family="Times,serif" font-size="14.00">Ping</text> +<polygon fill="none" stroke="black" points="333.25,-369 333.25,-391.5 430,-391.5 430,-369 333.25,-369"/> +<text xml:space="preserve" text-anchor="start" x="351.25" y="-375.75" font-family="Times,serif" font-size="14.00">:type_pong</text> +<polygon fill="none" stroke="black" points="430,-369 430,-391.5 496,-391.5 496,-369 430,-369"/> +<text xml:space="preserve" text-anchor="start" x="449.12" y="-375.75" font-family="Times,serif" font-size="14.00">Pong</text> +<polygon fill="none" stroke="black" points="333.25,-346.5 333.25,-369 430,-369 430,-346.5 333.25,-346.5"/> +<text xml:space="preserve" text-anchor="start" x="355.38" y="-353.25" font-family="Times,serif" font-size="14.00">:type_test</text> +<polygon fill="none" stroke="black" points="430,-346.5 430,-369 496,-369 496,-346.5 430,-346.5"/> +<text xml:space="preserve" text-anchor="start" x="451.38" y="-353.25" font-family="Times,serif" font-size="14.00">Test</text> </g> <!-- solec__seq->solec__seq_payload_switch --> <g id="edge1" class="edge"> <title>solec__seq:payload_type->solec__seq_payload_switch</title> -<path fill="none" stroke="black" stroke-width="2" d="M292.75,-366.25C303.08,-366.25 313.86,-366.27 324.61,-366.31"/> -<polygon fill="black" stroke="black" stroke-width="2" points="322.75,-369.8 332.76,-366.35 322.78,-362.8 322.75,-369.8"/> +<path fill="none" stroke="black" stroke-width="2" d="M282.25,-413.25C292.58,-413.25 303.36,-413.27 314.11,-413.31"/> +<polygon fill="black" stroke="black" stroke-width="2" points="312.25,-416.8 322.26,-413.35 312.28,-409.8 312.25,-416.8"/> </g> <!-- handshake__seq --> <g id="node4" class="node"> <title>handshake__seq</title> -<polygon fill="#e0ffe0" stroke="none" points="558.5,-519.25 558.5,-541.75 583.25,-541.75 583.25,-519.25 558.5,-519.25"/> -<polygon fill="none" stroke="black" points="558.5,-519.25 558.5,-541.75 583.25,-541.75 583.25,-519.25 558.5,-519.25"/> -<text xml:space="preserve" text-anchor="start" x="561.5" y="-526" font-family="Times,serif" font-size="14.00">pos</text> -<polygon fill="#e0ffe0" stroke="none" points="583.25,-519.25 583.25,-541.75 610.25,-541.75 610.25,-519.25 583.25,-519.25"/> -<polygon fill="none" stroke="black" points="583.25,-519.25 583.25,-541.75 610.25,-541.75 610.25,-519.25 583.25,-519.25"/> -<text xml:space="preserve" text-anchor="start" x="586.25" y="-526" font-family="Times,serif" font-size="14.00">size</text> -<polygon fill="#e0ffe0" stroke="none" points="610.25,-519.25 610.25,-541.75 639.5,-541.75 639.5,-519.25 610.25,-519.25"/> -<polygon fill="none" stroke="black" points="610.25,-519.25 610.25,-541.75 639.5,-541.75 639.5,-519.25 610.25,-519.25"/> -<text xml:space="preserve" text-anchor="start" x="613.25" y="-526" font-family="Times,serif" font-size="14.00">type</text> -<polygon fill="#e0ffe0" stroke="none" points="639.5,-519.25 639.5,-541.75 737.75,-541.75 737.75,-519.25 639.5,-519.25"/> -<polygon fill="none" stroke="black" points="639.5,-519.25 639.5,-541.75 737.75,-541.75 737.75,-519.25 639.5,-519.25"/> -<text xml:space="preserve" text-anchor="start" x="683.38" y="-526" font-family="Times,serif" font-size="14.00">id</text> -<polygon fill="none" stroke="black" points="558.5,-496.75 558.5,-519.25 583.25,-519.25 583.25,-496.75 558.5,-496.75"/> -<text xml:space="preserve" text-anchor="start" x="567.5" y="-503.5" font-family="Times,serif" font-size="14.00">0</text> -<polygon fill="none" stroke="black" points="583.25,-496.75 583.25,-519.25 610.25,-519.25 610.25,-496.75 583.25,-496.75"/> -<text xml:space="preserve" text-anchor="start" x="593.38" y="-503.5" font-family="Times,serif" font-size="14.00">1</text> -<polygon fill="none" stroke="black" points="610.25,-496.75 610.25,-519.25 639.5,-519.25 639.5,-496.75 610.25,-496.75"/> -<text xml:space="preserve" text-anchor="start" x="618.12" y="-503.5" font-family="Times,serif" font-size="14.00">u1</text> -<polygon fill="none" stroke="black" points="639.5,-496.75 639.5,-519.25 737.75,-519.25 737.75,-496.75 639.5,-496.75"/> -<text xml:space="preserve" text-anchor="start" x="642.88" y="-503.5" font-family="Times,serif" font-size="14.00">proto_ver_major</text> -<polygon fill="none" stroke="black" points="558.5,-474.25 558.5,-496.75 583.25,-496.75 583.25,-474.25 558.5,-474.25"/> -<text xml:space="preserve" text-anchor="start" x="567.5" y="-481" font-family="Times,serif" font-size="14.00">1</text> -<polygon fill="none" stroke="black" points="583.25,-474.25 583.25,-496.75 610.25,-496.75 610.25,-474.25 583.25,-474.25"/> -<text xml:space="preserve" text-anchor="start" x="593.38" y="-481" font-family="Times,serif" font-size="14.00">1</text> -<polygon fill="none" stroke="black" points="610.25,-474.25 610.25,-496.75 639.5,-496.75 639.5,-474.25 610.25,-474.25"/> -<text xml:space="preserve" text-anchor="start" x="618.12" y="-481" font-family="Times,serif" font-size="14.00">u1</text> -<polygon fill="none" stroke="black" points="639.5,-474.25 639.5,-496.75 737.75,-496.75 737.75,-474.25 639.5,-474.25"/> -<text xml:space="preserve" text-anchor="start" x="642.5" y="-481" font-family="Times,serif" font-size="14.00">proto_ver_minor</text> +<polygon fill="#e0ffe0" stroke="none" points="548,-688.25 548,-710.75 572.75,-710.75 572.75,-688.25 548,-688.25"/> +<polygon fill="none" stroke="black" points="548,-688.25 548,-710.75 572.75,-710.75 572.75,-688.25 548,-688.25"/> +<text xml:space="preserve" text-anchor="start" x="551" y="-695" font-family="Times,serif" font-size="14.00">pos</text> +<polygon fill="#e0ffe0" stroke="none" points="572.75,-688.25 572.75,-710.75 599.75,-710.75 599.75,-688.25 572.75,-688.25"/> +<polygon fill="none" stroke="black" points="572.75,-688.25 572.75,-710.75 599.75,-710.75 599.75,-688.25 572.75,-688.25"/> +<text xml:space="preserve" text-anchor="start" x="575.75" y="-695" font-family="Times,serif" font-size="14.00">size</text> +<polygon fill="#e0ffe0" stroke="none" points="599.75,-688.25 599.75,-710.75 629,-710.75 629,-688.25 599.75,-688.25"/> +<polygon fill="none" stroke="black" points="599.75,-688.25 599.75,-710.75 629,-710.75 629,-688.25 599.75,-688.25"/> +<text xml:space="preserve" text-anchor="start" x="602.75" y="-695" font-family="Times,serif" font-size="14.00">type</text> +<polygon fill="#e0ffe0" stroke="none" points="629,-688.25 629,-710.75 727.25,-710.75 727.25,-688.25 629,-688.25"/> +<polygon fill="none" stroke="black" points="629,-688.25 629,-710.75 727.25,-710.75 727.25,-688.25 629,-688.25"/> +<text xml:space="preserve" text-anchor="start" x="672.88" y="-695" font-family="Times,serif" font-size="14.00">id</text> +<polygon fill="none" stroke="black" points="548,-665.75 548,-688.25 572.75,-688.25 572.75,-665.75 548,-665.75"/> +<text xml:space="preserve" text-anchor="start" x="557" y="-672.5" font-family="Times,serif" font-size="14.00">0</text> +<polygon fill="none" stroke="black" points="572.75,-665.75 572.75,-688.25 599.75,-688.25 599.75,-665.75 572.75,-665.75"/> +<text xml:space="preserve" text-anchor="start" x="582.88" y="-672.5" font-family="Times,serif" font-size="14.00">1</text> +<polygon fill="none" stroke="black" points="599.75,-665.75 599.75,-688.25 629,-688.25 629,-665.75 599.75,-665.75"/> +<text xml:space="preserve" text-anchor="start" x="607.62" y="-672.5" font-family="Times,serif" font-size="14.00">u1</text> +<polygon fill="none" stroke="black" points="629,-665.75 629,-688.25 727.25,-688.25 727.25,-665.75 629,-665.75"/> +<text xml:space="preserve" text-anchor="start" x="632.38" y="-672.5" font-family="Times,serif" font-size="14.00">proto_ver_major</text> +<polygon fill="none" stroke="black" points="548,-643.25 548,-665.75 572.75,-665.75 572.75,-643.25 548,-643.25"/> +<text xml:space="preserve" text-anchor="start" x="557" y="-650" font-family="Times,serif" font-size="14.00">1</text> +<polygon fill="none" stroke="black" points="572.75,-643.25 572.75,-665.75 599.75,-665.75 599.75,-643.25 572.75,-643.25"/> +<text xml:space="preserve" text-anchor="start" x="582.88" y="-650" font-family="Times,serif" font-size="14.00">1</text> +<polygon fill="none" stroke="black" points="599.75,-643.25 599.75,-665.75 629,-665.75 629,-643.25 599.75,-643.25"/> +<text xml:space="preserve" text-anchor="start" x="607.62" y="-650" font-family="Times,serif" font-size="14.00">u1</text> +<polygon fill="none" stroke="black" points="629,-643.25 629,-665.75 727.25,-665.75 727.25,-643.25 629,-643.25"/> +<text xml:space="preserve" text-anchor="start" x="632" y="-650" font-family="Times,serif" font-size="14.00">proto_ver_minor</text> </g> <!-- solec__seq_payload_switch->handshake__seq --> <g id="edge2" class="edge"> <title>solec__seq_payload_switch:case0->handshake__seq</title> -<path fill="none" stroke="black" stroke-width="2" d="M507.5,-389.5C541.69,-389.5 518.01,-434.15 542.5,-458 544.35,-459.8 546.27,-461.54 548.26,-463.23"/> -<polygon fill="black" stroke="black" stroke-width="2" points="544.91,-465.06 554.95,-468.43 549.21,-459.53 544.91,-465.06"/> +<path fill="none" stroke="black" stroke-width="2" d="M497,-447.75C578.17,-447.75 482.3,-562.82 532,-627 533.19,-628.53 534.43,-630.02 535.73,-631.46"/> +<polygon fill="black" stroke="black" stroke-width="2" points="531.94,-632.65 541.53,-637.15 536.84,-627.65 531.94,-632.65"/> </g> -<!-- ping__seq --> +<!-- message__seq --> <g id="node5" class="node"> +<title>message__seq</title> +<polygon fill="#e0ffe0" stroke="none" points="560.38,-563.75 560.38,-586.25 585.12,-586.25 585.12,-563.75 560.38,-563.75"/> +<polygon fill="none" stroke="black" points="560.38,-563.75 560.38,-586.25 585.12,-586.25 585.12,-563.75 560.38,-563.75"/> +<text xml:space="preserve" text-anchor="start" x="563.38" y="-570.5" font-family="Times,serif" font-size="14.00">pos</text> +<polygon fill="#e0ffe0" stroke="none" points="585.12,-563.75 585.12,-586.25 612.12,-586.25 612.12,-563.75 585.12,-563.75"/> +<polygon fill="none" stroke="black" points="585.12,-563.75 585.12,-586.25 612.12,-586.25 612.12,-563.75 585.12,-563.75"/> +<text xml:space="preserve" text-anchor="start" x="588.12" y="-570.5" font-family="Times,serif" font-size="14.00">size</text> +<polygon fill="#e0ffe0" stroke="none" points="612.12,-563.75 612.12,-586.25 651.12,-586.25 651.12,-563.75 612.12,-563.75"/> +<polygon fill="none" stroke="black" points="612.12,-563.75 612.12,-586.25 651.12,-586.25 651.12,-563.75 612.12,-563.75"/> +<text xml:space="preserve" text-anchor="start" x="620" y="-570.5" font-family="Times,serif" font-size="14.00">type</text> +<polygon fill="#e0ffe0" stroke="none" points="651.12,-563.75 651.12,-586.25 714.88,-586.25 714.88,-563.75 651.12,-563.75"/> +<polygon fill="none" stroke="black" points="651.12,-563.75 651.12,-586.25 714.88,-586.25 714.88,-563.75 651.12,-563.75"/> +<text xml:space="preserve" text-anchor="start" x="677.75" y="-570.5" font-family="Times,serif" font-size="14.00">id</text> +<polygon fill="none" stroke="black" points="560.38,-541.25 560.38,-563.75 585.12,-563.75 585.12,-541.25 560.38,-541.25"/> +<text xml:space="preserve" text-anchor="start" x="569.38" y="-548" font-family="Times,serif" font-size="14.00">0</text> +<polygon fill="none" stroke="black" points="585.12,-541.25 585.12,-563.75 612.12,-563.75 612.12,-541.25 585.12,-541.25"/> +<text xml:space="preserve" text-anchor="start" x="593" y="-548" font-family="Times,serif" font-size="14.00">...</text> +<polygon fill="none" stroke="black" points="612.12,-541.25 612.12,-563.75 651.12,-563.75 651.12,-541.25 612.12,-541.25"/> +<text xml:space="preserve" text-anchor="start" x="615.12" y="-548" font-family="Times,serif" font-size="14.00">String</text> +<polygon fill="none" stroke="black" points="651.12,-541.25 651.12,-563.75 714.88,-563.75 714.88,-541.25 651.12,-541.25"/> +<text xml:space="preserve" text-anchor="start" x="665.38" y="-548" font-family="Times,serif" font-size="14.00">source</text> +<polygon fill="none" stroke="black" points="560.38,-518.75 560.38,-541.25 585.12,-541.25 585.12,-518.75 560.38,-518.75"/> +<text xml:space="preserve" text-anchor="start" x="567.12" y="-525.5" font-family="Times,serif" font-size="14.00">...</text> +<polygon fill="none" stroke="black" points="585.12,-518.75 585.12,-541.25 612.12,-541.25 612.12,-518.75 585.12,-518.75"/> +<text xml:space="preserve" text-anchor="start" x="593" y="-525.5" font-family="Times,serif" font-size="14.00">...</text> +<polygon fill="none" stroke="black" points="612.12,-518.75 612.12,-541.25 651.12,-541.25 651.12,-518.75 612.12,-518.75"/> +<text xml:space="preserve" text-anchor="start" x="615.12" y="-525.5" font-family="Times,serif" font-size="14.00">String</text> +<polygon fill="none" stroke="black" points="651.12,-518.75 651.12,-541.25 714.88,-541.25 714.88,-518.75 651.12,-518.75"/> +<text xml:space="preserve" text-anchor="start" x="667.62" y="-525.5" font-family="Times,serif" font-size="14.00">target</text> +<polygon fill="none" stroke="black" points="560.38,-496.25 560.38,-518.75 585.12,-518.75 585.12,-496.25 560.38,-496.25"/> +<text xml:space="preserve" text-anchor="start" x="567.12" y="-503" font-family="Times,serif" font-size="14.00">...</text> +<polygon fill="none" stroke="black" points="585.12,-496.25 585.12,-518.75 612.12,-518.75 612.12,-496.25 585.12,-496.25"/> +<text xml:space="preserve" text-anchor="start" x="595.25" y="-503" font-family="Times,serif" font-size="14.00">8</text> +<polygon fill="none" stroke="black" points="612.12,-496.25 612.12,-518.75 651.12,-518.75 651.12,-496.25 612.12,-496.25"/> +<text xml:space="preserve" text-anchor="start" x="618.5" y="-503" font-family="Times,serif" font-size="14.00">u8be</text> +<polygon fill="none" stroke="black" points="651.12,-496.25 651.12,-518.75 714.88,-518.75 714.88,-496.25 651.12,-496.25"/> +<text xml:space="preserve" text-anchor="start" x="654.12" y="-503" font-family="Times,serif" font-size="14.00">timestamp</text> +<polygon fill="none" stroke="black" points="560.38,-473.75 560.38,-496.25 585.12,-496.25 585.12,-473.75 560.38,-473.75"/> +<text xml:space="preserve" text-anchor="start" x="567.12" y="-480.5" font-family="Times,serif" font-size="14.00">...</text> +<polygon fill="none" stroke="black" points="585.12,-473.75 585.12,-496.25 612.12,-496.25 612.12,-473.75 585.12,-473.75"/> +<text xml:space="preserve" text-anchor="start" x="593" y="-480.5" font-family="Times,serif" font-size="14.00">...</text> +<polygon fill="none" stroke="black" points="612.12,-473.75 612.12,-496.25 651.12,-496.25 651.12,-473.75 612.12,-473.75"/> +<text xml:space="preserve" text-anchor="start" x="615.12" y="-480.5" font-family="Times,serif" font-size="14.00">String</text> +<polygon fill="none" stroke="black" points="651.12,-473.75 651.12,-496.25 714.88,-496.25 714.88,-473.75 651.12,-473.75"/> +<text xml:space="preserve" text-anchor="start" x="663.12" y="-480.5" font-family="Times,serif" font-size="14.00">content</text> +</g> +<!-- solec__seq_payload_switch->message__seq --> +<g id="edge3" class="edge"> +<title>solec__seq_payload_switch:case1->message__seq</title> +<path fill="none" stroke="black" stroke-width="2" d="M497,-425.25C518.3,-425.25 515.4,-444.65 532,-458 535.67,-460.95 539.46,-463.92 543.32,-466.87"/> +<polygon fill="black" stroke="black" stroke-width="2" points="539.92,-468.69 550.01,-471.9 544.12,-463.09 539.92,-468.69"/> +</g> +<!-- ping__seq --> +<g id="node6" class="node"> <title>ping__seq</title> -<polygon fill="#e0ffe0" stroke="none" points="599.38,-391.75 599.38,-414.25 624.12,-414.25 624.12,-391.75 599.38,-391.75"/> -<polygon fill="none" stroke="black" points="599.38,-391.75 599.38,-414.25 624.12,-414.25 624.12,-391.75 599.38,-391.75"/> -<text xml:space="preserve" text-anchor="start" x="602.38" y="-398.5" font-family="Times,serif" font-size="14.00">pos</text> -<polygon fill="#e0ffe0" stroke="none" points="624.12,-391.75 624.12,-414.25 651.12,-414.25 651.12,-391.75 624.12,-391.75"/> -<polygon fill="none" stroke="black" points="624.12,-391.75 624.12,-414.25 651.12,-414.25 651.12,-391.75 624.12,-391.75"/> -<text xml:space="preserve" text-anchor="start" x="627.12" y="-398.5" font-family="Times,serif" font-size="14.00">size</text> -<polygon fill="#e0ffe0" stroke="none" points="651.12,-391.75 651.12,-414.25 680.38,-414.25 680.38,-391.75 651.12,-391.75"/> -<polygon fill="none" stroke="black" points="651.12,-391.75 651.12,-414.25 680.38,-414.25 680.38,-391.75 651.12,-391.75"/> -<text xml:space="preserve" text-anchor="start" x="654.12" y="-398.5" font-family="Times,serif" font-size="14.00">type</text> -<polygon fill="#e0ffe0" stroke="none" points="680.38,-391.75 680.38,-414.25 696.88,-414.25 696.88,-391.75 680.38,-391.75"/> -<polygon fill="none" stroke="black" points="680.38,-391.75 680.38,-414.25 696.88,-414.25 696.88,-391.75 680.38,-391.75"/> -<text xml:space="preserve" text-anchor="start" x="683.38" y="-398.5" font-family="Times,serif" font-size="14.00">id</text> +<polygon fill="#e0ffe0" stroke="none" points="588.88,-391.75 588.88,-414.25 613.62,-414.25 613.62,-391.75 588.88,-391.75"/> +<polygon fill="none" stroke="black" points="588.88,-391.75 588.88,-414.25 613.62,-414.25 613.62,-391.75 588.88,-391.75"/> +<text xml:space="preserve" text-anchor="start" x="591.88" y="-398.5" font-family="Times,serif" font-size="14.00">pos</text> +<polygon fill="#e0ffe0" stroke="none" points="613.62,-391.75 613.62,-414.25 640.62,-414.25 640.62,-391.75 613.62,-391.75"/> +<polygon fill="none" stroke="black" points="613.62,-391.75 613.62,-414.25 640.62,-414.25 640.62,-391.75 613.62,-391.75"/> +<text xml:space="preserve" text-anchor="start" x="616.62" y="-398.5" font-family="Times,serif" font-size="14.00">size</text> +<polygon fill="#e0ffe0" stroke="none" points="640.62,-391.75 640.62,-414.25 669.88,-414.25 669.88,-391.75 640.62,-391.75"/> +<polygon fill="none" stroke="black" points="640.62,-391.75 640.62,-414.25 669.88,-414.25 669.88,-391.75 640.62,-391.75"/> +<text xml:space="preserve" text-anchor="start" x="643.62" y="-398.5" font-family="Times,serif" font-size="14.00">type</text> +<polygon fill="#e0ffe0" stroke="none" points="669.88,-391.75 669.88,-414.25 686.38,-414.25 686.38,-391.75 669.88,-391.75"/> +<polygon fill="none" stroke="black" points="669.88,-391.75 669.88,-414.25 686.38,-414.25 686.38,-391.75 669.88,-391.75"/> +<text xml:space="preserve" text-anchor="start" x="672.88" y="-398.5" font-family="Times,serif" font-size="14.00">id</text> </g> <!-- solec__seq_payload_switch->ping__seq --> -<g id="edge3" class="edge"> -<title>solec__seq_payload_switch:case1->ping__seq</title> -<path fill="none" stroke="black" stroke-width="2" d="M507.5,-367C515.32,-367 548.73,-375.57 580.91,-384.34"/> -<polygon fill="black" stroke="black" stroke-width="2" points="578.25,-387.24 588.82,-386.51 580.1,-380.49 578.25,-387.24"/> +<g id="edge4" class="edge"> +<title>solec__seq_payload_switch:case2->ping__seq</title> +<path fill="none" stroke="black" stroke-width="2" d="M497,-402.75C520.64,-402.75 546.53,-402.79 569.53,-402.83"/> +<polygon fill="black" stroke="black" stroke-width="2" points="567.88,-406.33 577.88,-402.85 567.89,-399.33 567.88,-406.33"/> </g> <!-- pong__seq --> -<g id="node6" class="node"> +<g id="node7" class="node"> <title>pong__seq</title> -<polygon fill="#e0ffe0" stroke="none" points="574.25,-310 574.25,-332.5 599,-332.5 599,-310 574.25,-310"/> -<polygon fill="none" stroke="black" points="574.25,-310 574.25,-332.5 599,-332.5 599,-310 574.25,-310"/> -<text xml:space="preserve" text-anchor="start" x="577.25" y="-316.75" font-family="Times,serif" font-size="14.00">pos</text> -<polygon fill="#e0ffe0" stroke="none" points="599,-310 599,-332.5 626,-332.5 626,-310 599,-310"/> -<polygon fill="none" stroke="black" points="599,-310 599,-332.5 626,-332.5 626,-310 599,-310"/> -<text xml:space="preserve" text-anchor="start" x="602" y="-316.75" font-family="Times,serif" font-size="14.00">size</text> -<polygon fill="#e0ffe0" stroke="none" points="626,-310 626,-332.5 658.25,-332.5 658.25,-310 626,-310"/> -<polygon fill="none" stroke="black" points="626,-310 626,-332.5 658.25,-332.5 658.25,-310 626,-310"/> -<text xml:space="preserve" text-anchor="start" x="630.5" y="-316.75" font-family="Times,serif" font-size="14.00">type</text> -<polygon fill="#e0ffe0" stroke="none" points="658.25,-310 658.25,-332.5 722,-332.5 722,-310 658.25,-310"/> -<polygon fill="none" stroke="black" points="658.25,-310 658.25,-332.5 722,-332.5 722,-310 658.25,-310"/> -<text xml:space="preserve" text-anchor="start" x="684.88" y="-316.75" font-family="Times,serif" font-size="14.00">id</text> -<polygon fill="none" stroke="black" points="574.25,-287.5 574.25,-310 599,-310 599,-287.5 574.25,-287.5"/> -<text xml:space="preserve" text-anchor="start" x="583.25" y="-294.25" font-family="Times,serif" font-size="14.00">0</text> -<polygon fill="none" stroke="black" points="599,-287.5 599,-310 626,-310 626,-287.5 599,-287.5"/> -<text xml:space="preserve" text-anchor="start" x="609.12" y="-294.25" font-family="Times,serif" font-size="14.00">8</text> -<polygon fill="none" stroke="black" points="626,-287.5 626,-310 658.25,-310 658.25,-287.5 626,-287.5"/> -<text xml:space="preserve" text-anchor="start" x="629" y="-294.25" font-family="Times,serif" font-size="14.00">u8be</text> -<polygon fill="none" stroke="black" points="658.25,-287.5 658.25,-310 722,-310 722,-287.5 658.25,-287.5"/> -<text xml:space="preserve" text-anchor="start" x="661.25" y="-294.25" font-family="Times,serif" font-size="14.00">timestamp</text> +<polygon fill="#e0ffe0" stroke="none" points="563.75,-310 563.75,-332.5 588.5,-332.5 588.5,-310 563.75,-310"/> +<polygon fill="none" stroke="black" points="563.75,-310 563.75,-332.5 588.5,-332.5 588.5,-310 563.75,-310"/> +<text xml:space="preserve" text-anchor="start" x="566.75" y="-316.75" font-family="Times,serif" font-size="14.00">pos</text> +<polygon fill="#e0ffe0" stroke="none" points="588.5,-310 588.5,-332.5 615.5,-332.5 615.5,-310 588.5,-310"/> +<polygon fill="none" stroke="black" points="588.5,-310 588.5,-332.5 615.5,-332.5 615.5,-310 588.5,-310"/> +<text xml:space="preserve" text-anchor="start" x="591.5" y="-316.75" font-family="Times,serif" font-size="14.00">size</text> +<polygon fill="#e0ffe0" stroke="none" points="615.5,-310 615.5,-332.5 647.75,-332.5 647.75,-310 615.5,-310"/> +<polygon fill="none" stroke="black" points="615.5,-310 615.5,-332.5 647.75,-332.5 647.75,-310 615.5,-310"/> +<text xml:space="preserve" text-anchor="start" x="620" y="-316.75" font-family="Times,serif" font-size="14.00">type</text> +<polygon fill="#e0ffe0" stroke="none" points="647.75,-310 647.75,-332.5 711.5,-332.5 711.5,-310 647.75,-310"/> +<polygon fill="none" stroke="black" points="647.75,-310 647.75,-332.5 711.5,-332.5 711.5,-310 647.75,-310"/> +<text xml:space="preserve" text-anchor="start" x="674.38" y="-316.75" font-family="Times,serif" font-size="14.00">id</text> +<polygon fill="none" stroke="black" points="563.75,-287.5 563.75,-310 588.5,-310 588.5,-287.5 563.75,-287.5"/> +<text xml:space="preserve" text-anchor="start" x="572.75" y="-294.25" font-family="Times,serif" font-size="14.00">0</text> +<polygon fill="none" stroke="black" points="588.5,-287.5 588.5,-310 615.5,-310 615.5,-287.5 588.5,-287.5"/> +<text xml:space="preserve" text-anchor="start" x="598.62" y="-294.25" font-family="Times,serif" font-size="14.00">8</text> +<polygon fill="none" stroke="black" points="615.5,-287.5 615.5,-310 647.75,-310 647.75,-287.5 615.5,-287.5"/> +<text xml:space="preserve" text-anchor="start" x="618.5" y="-294.25" font-family="Times,serif" font-size="14.00">u8be</text> +<polygon fill="none" stroke="black" points="647.75,-287.5 647.75,-310 711.5,-310 711.5,-287.5 647.75,-287.5"/> +<text xml:space="preserve" text-anchor="start" x="650.75" y="-294.25" font-family="Times,serif" font-size="14.00">timestamp</text> </g> <!-- solec__seq_payload_switch->pong__seq --> -<g id="edge4" class="edge"> -<title>solec__seq_payload_switch:case2->pong__seq</title> -<path fill="none" stroke="black" stroke-width="2" d="M507.5,-344.5C523.73,-344.5 540.72,-342.28 557.04,-338.96"/> -<polygon fill="black" stroke="black" stroke-width="2" points="556.24,-342.72 565.25,-337.15 554.73,-335.88 556.24,-342.72"/> +<g id="edge5" class="edge"> +<title>solec__seq_payload_switch:case3->pong__seq</title> +<path fill="none" stroke="black" stroke-width="2" d="M497,-380.25C515.38,-380.25 553.42,-360.57 585.15,-342.05"/> +<polygon fill="black" stroke="black" stroke-width="2" points="585.34,-346 592.16,-337.9 581.77,-339.98 585.34,-346"/> </g> <!-- test__seq --> -<g id="node8" class="node"> +<g id="node9" class="node"> <title>test__seq</title> -<polygon fill="#e0ffe0" stroke="none" points="582.12,-207.75 582.12,-230.25 606.88,-230.25 606.88,-207.75 582.12,-207.75"/> -<polygon fill="none" stroke="black" points="582.12,-207.75 582.12,-230.25 606.88,-230.25 606.88,-207.75 582.12,-207.75"/> -<text xml:space="preserve" text-anchor="start" x="585.12" y="-214.5" font-family="Times,serif" font-size="14.00">pos</text> -<polygon fill="#e0ffe0" stroke="none" points="606.88,-207.75 606.88,-230.25 633.88,-230.25 633.88,-207.75 606.88,-207.75"/> -<polygon fill="none" stroke="black" points="606.88,-207.75 606.88,-230.25 633.88,-230.25 633.88,-207.75 606.88,-207.75"/> -<text xml:space="preserve" text-anchor="start" x="609.88" y="-214.5" font-family="Times,serif" font-size="14.00">size</text> -<polygon fill="#e0ffe0" stroke="none" points="633.88,-207.75 633.88,-230.25 676.62,-230.25 676.62,-207.75 633.88,-207.75"/> -<polygon fill="none" stroke="black" points="633.88,-207.75 633.88,-230.25 676.62,-230.25 676.62,-207.75 633.88,-207.75"/> -<text xml:space="preserve" text-anchor="start" x="643.62" y="-214.5" font-family="Times,serif" font-size="14.00">type</text> -<polygon fill="#e0ffe0" stroke="none" points="676.62,-207.75 676.62,-230.25 714.12,-230.25 714.12,-207.75 676.62,-207.75"/> -<polygon fill="none" stroke="black" points="676.62,-207.75 676.62,-230.25 714.12,-230.25 714.12,-207.75 676.62,-207.75"/> -<text xml:space="preserve" text-anchor="start" x="690.12" y="-214.5" font-family="Times,serif" font-size="14.00">id</text> -<polygon fill="none" stroke="black" points="582.12,-185.25 582.12,-207.75 606.88,-207.75 606.88,-185.25 582.12,-185.25"/> -<text xml:space="preserve" text-anchor="start" x="591.12" y="-192" font-family="Times,serif" font-size="14.00">0</text> -<polygon fill="none" stroke="black" points="606.88,-185.25 606.88,-207.75 633.88,-207.75 633.88,-185.25 606.88,-185.25"/> -<text xml:space="preserve" text-anchor="start" x="617" y="-192" font-family="Times,serif" font-size="14.00">1</text> -<polygon fill="none" stroke="black" points="633.88,-185.25 633.88,-207.75 676.62,-207.75 676.62,-185.25 633.88,-185.25"/> -<text xml:space="preserve" text-anchor="start" x="648.5" y="-192" font-family="Times,serif" font-size="14.00">u1</text> -<polygon fill="none" stroke="black" points="676.62,-185.25 676.62,-207.75 714.12,-207.75 714.12,-185.25 676.62,-185.25"/> -<text xml:space="preserve" text-anchor="start" x="679.62" y="-192" font-family="Times,serif" font-size="14.00">num1</text> -<polygon fill="none" stroke="black" points="582.12,-162.75 582.12,-185.25 606.88,-185.25 606.88,-162.75 582.12,-162.75"/> -<text xml:space="preserve" text-anchor="start" x="591.12" y="-169.5" font-family="Times,serif" font-size="14.00">1</text> -<polygon fill="none" stroke="black" points="606.88,-162.75 606.88,-185.25 633.88,-185.25 633.88,-162.75 606.88,-162.75"/> -<text xml:space="preserve" text-anchor="start" x="617" y="-169.5" font-family="Times,serif" font-size="14.00">8</text> -<polygon fill="none" stroke="black" points="633.88,-162.75 633.88,-185.25 676.62,-185.25 676.62,-162.75 633.88,-162.75"/> -<text xml:space="preserve" text-anchor="start" x="642.12" y="-169.5" font-family="Times,serif" font-size="14.00">u8be</text> -<polygon fill="none" stroke="black" points="676.62,-162.75 676.62,-185.25 714.12,-185.25 714.12,-162.75 676.62,-162.75"/> -<text xml:space="preserve" text-anchor="start" x="679.62" y="-169.5" font-family="Times,serif" font-size="14.00">time1</text> -<polygon fill="none" stroke="black" points="582.12,-140.25 582.12,-162.75 606.88,-162.75 606.88,-140.25 582.12,-140.25"/> -<text xml:space="preserve" text-anchor="start" x="591.12" y="-147" font-family="Times,serif" font-size="14.00">9</text> -<polygon fill="none" stroke="black" points="606.88,-140.25 606.88,-162.75 633.88,-162.75 633.88,-140.25 606.88,-140.25"/> -<text xml:space="preserve" text-anchor="start" x="614.75" y="-147" font-family="Times,serif" font-size="14.00">...</text> -<polygon fill="none" stroke="black" points="633.88,-140.25 633.88,-162.75 676.62,-162.75 676.62,-140.25 633.88,-140.25"/> -<text xml:space="preserve" text-anchor="start" x="638.75" y="-147" font-family="Times,serif" font-size="14.00">String</text> -<polygon fill="none" stroke="black" points="676.62,-140.25 676.62,-162.75 714.12,-162.75 714.12,-140.25 676.62,-140.25"/> -<text xml:space="preserve" text-anchor="start" x="685.25" y="-147" font-family="Times,serif" font-size="14.00">str1</text> -<polygon fill="none" stroke="black" points="582.12,-117.75 582.12,-140.25 606.88,-140.25 606.88,-117.75 582.12,-117.75"/> -<text xml:space="preserve" text-anchor="start" x="588.88" y="-124.5" font-family="Times,serif" font-size="14.00">...</text> -<polygon fill="none" stroke="black" points="606.88,-117.75 606.88,-140.25 633.88,-140.25 633.88,-117.75 606.88,-117.75"/> -<text xml:space="preserve" text-anchor="start" x="617" y="-124.5" font-family="Times,serif" font-size="14.00">2</text> -<polygon fill="none" stroke="black" points="633.88,-117.75 633.88,-140.25 676.62,-140.25 676.62,-117.75 633.88,-117.75"/> -<text xml:space="preserve" text-anchor="start" x="642.12" y="-124.5" font-family="Times,serif" font-size="14.00">u2be</text> -<polygon fill="none" stroke="black" points="676.62,-117.75 676.62,-140.25 714.12,-140.25 714.12,-117.75 676.62,-117.75"/> -<text xml:space="preserve" text-anchor="start" x="679.62" y="-124.5" font-family="Times,serif" font-size="14.00">num2</text> -<polygon fill="none" stroke="black" points="582.12,-95.25 582.12,-117.75 606.88,-117.75 606.88,-95.25 582.12,-95.25"/> -<text xml:space="preserve" text-anchor="start" x="588.88" y="-102" font-family="Times,serif" font-size="14.00">...</text> -<polygon fill="none" stroke="black" points="606.88,-95.25 606.88,-117.75 633.88,-117.75 633.88,-95.25 606.88,-95.25"/> -<text xml:space="preserve" text-anchor="start" x="614.75" y="-102" font-family="Times,serif" font-size="14.00">...</text> -<polygon fill="none" stroke="black" points="633.88,-95.25 633.88,-117.75 676.62,-117.75 676.62,-95.25 633.88,-95.25"/> -<text xml:space="preserve" text-anchor="start" x="636.88" y="-102" font-family="Times,serif" font-size="14.00">Binary</text> -<polygon fill="none" stroke="black" points="676.62,-95.25 676.62,-117.75 714.12,-117.75 714.12,-95.25 676.62,-95.25"/> -<text xml:space="preserve" text-anchor="start" x="683.38" y="-102" font-family="Times,serif" font-size="14.00">bin1</text> -<polygon fill="none" stroke="black" points="582.12,-72.75 582.12,-95.25 606.88,-95.25 606.88,-72.75 582.12,-72.75"/> -<text xml:space="preserve" text-anchor="start" x="588.88" y="-79.5" font-family="Times,serif" font-size="14.00">...</text> -<polygon fill="none" stroke="black" points="606.88,-72.75 606.88,-95.25 633.88,-95.25 633.88,-72.75 606.88,-72.75"/> -<text xml:space="preserve" text-anchor="start" x="617" y="-79.5" font-family="Times,serif" font-size="14.00">4</text> -<polygon fill="none" stroke="black" points="633.88,-72.75 633.88,-95.25 676.62,-95.25 676.62,-72.75 633.88,-72.75"/> -<text xml:space="preserve" text-anchor="start" x="642.12" y="-79.5" font-family="Times,serif" font-size="14.00">u4be</text> -<polygon fill="none" stroke="black" points="676.62,-72.75 676.62,-95.25 714.12,-95.25 714.12,-72.75 676.62,-72.75"/> -<text xml:space="preserve" text-anchor="start" x="679.62" y="-79.5" font-family="Times,serif" font-size="14.00">num3</text> -<polygon fill="none" stroke="black" points="582.12,-50.25 582.12,-72.75 606.88,-72.75 606.88,-50.25 582.12,-50.25"/> -<text xml:space="preserve" text-anchor="start" x="588.88" y="-57" font-family="Times,serif" font-size="14.00">...</text> -<polygon fill="none" stroke="black" points="606.88,-50.25 606.88,-72.75 633.88,-72.75 633.88,-50.25 606.88,-50.25"/> -<text xml:space="preserve" text-anchor="start" x="614.75" y="-57" font-family="Times,serif" font-size="14.00">...</text> -<polygon fill="none" stroke="black" points="633.88,-50.25 633.88,-72.75 676.62,-72.75 676.62,-50.25 633.88,-50.25"/> -<text xml:space="preserve" text-anchor="start" x="638.75" y="-57" font-family="Times,serif" font-size="14.00">String</text> -<polygon fill="none" stroke="black" points="676.62,-50.25 676.62,-72.75 714.12,-72.75 714.12,-50.25 676.62,-50.25"/> -<text xml:space="preserve" text-anchor="start" x="685.25" y="-57" font-family="Times,serif" font-size="14.00">str2</text> -<polygon fill="none" stroke="black" points="582.12,-27.75 582.12,-50.25 606.88,-50.25 606.88,-27.75 582.12,-27.75"/> -<text xml:space="preserve" text-anchor="start" x="588.88" y="-34.5" font-family="Times,serif" font-size="14.00">...</text> -<polygon fill="none" stroke="black" points="606.88,-27.75 606.88,-50.25 633.88,-50.25 633.88,-27.75 606.88,-27.75"/> -<text xml:space="preserve" text-anchor="start" x="617" y="-34.5" font-family="Times,serif" font-size="14.00">8</text> -<polygon fill="none" stroke="black" points="633.88,-27.75 633.88,-50.25 676.62,-50.25 676.62,-27.75 633.88,-27.75"/> -<text xml:space="preserve" text-anchor="start" x="642.12" y="-34.5" font-family="Times,serif" font-size="14.00">u8be</text> -<polygon fill="none" stroke="black" points="676.62,-27.75 676.62,-50.25 714.12,-50.25 714.12,-27.75 676.62,-27.75"/> -<text xml:space="preserve" text-anchor="start" x="679.62" y="-34.5" font-family="Times,serif" font-size="14.00">num4</text> +<polygon fill="#e0ffe0" stroke="none" points="571.62,-207.75 571.62,-230.25 596.38,-230.25 596.38,-207.75 571.62,-207.75"/> +<polygon fill="none" stroke="black" points="571.62,-207.75 571.62,-230.25 596.38,-230.25 596.38,-207.75 571.62,-207.75"/> +<text xml:space="preserve" text-anchor="start" x="574.62" y="-214.5" font-family="Times,serif" font-size="14.00">pos</text> +<polygon fill="#e0ffe0" stroke="none" points="596.38,-207.75 596.38,-230.25 623.38,-230.25 623.38,-207.75 596.38,-207.75"/> +<polygon fill="none" stroke="black" points="596.38,-207.75 596.38,-230.25 623.38,-230.25 623.38,-207.75 596.38,-207.75"/> +<text xml:space="preserve" text-anchor="start" x="599.38" y="-214.5" font-family="Times,serif" font-size="14.00">size</text> +<polygon fill="#e0ffe0" stroke="none" points="623.38,-207.75 623.38,-230.25 666.12,-230.25 666.12,-207.75 623.38,-207.75"/> +<polygon fill="none" stroke="black" points="623.38,-207.75 623.38,-230.25 666.12,-230.25 666.12,-207.75 623.38,-207.75"/> +<text xml:space="preserve" text-anchor="start" x="633.12" y="-214.5" font-family="Times,serif" font-size="14.00">type</text> +<polygon fill="#e0ffe0" stroke="none" points="666.12,-207.75 666.12,-230.25 703.62,-230.25 703.62,-207.75 666.12,-207.75"/> +<polygon fill="none" stroke="black" points="666.12,-207.75 666.12,-230.25 703.62,-230.25 703.62,-207.75 666.12,-207.75"/> +<text xml:space="preserve" text-anchor="start" x="679.62" y="-214.5" font-family="Times,serif" font-size="14.00">id</text> +<polygon fill="none" stroke="black" points="571.62,-185.25 571.62,-207.75 596.38,-207.75 596.38,-185.25 571.62,-185.25"/> +<text xml:space="preserve" text-anchor="start" x="580.62" y="-192" font-family="Times,serif" font-size="14.00">0</text> +<polygon fill="none" stroke="black" points="596.38,-185.25 596.38,-207.75 623.38,-207.75 623.38,-185.25 596.38,-185.25"/> +<text xml:space="preserve" text-anchor="start" x="606.5" y="-192" font-family="Times,serif" font-size="14.00">1</text> +<polygon fill="none" stroke="black" points="623.38,-185.25 623.38,-207.75 666.12,-207.75 666.12,-185.25 623.38,-185.25"/> +<text xml:space="preserve" text-anchor="start" x="638" y="-192" font-family="Times,serif" font-size="14.00">u1</text> +<polygon fill="none" stroke="black" points="666.12,-185.25 666.12,-207.75 703.62,-207.75 703.62,-185.25 666.12,-185.25"/> +<text xml:space="preserve" text-anchor="start" x="669.12" y="-192" font-family="Times,serif" font-size="14.00">num1</text> +<polygon fill="none" stroke="black" points="571.62,-162.75 571.62,-185.25 596.38,-185.25 596.38,-162.75 571.62,-162.75"/> +<text xml:space="preserve" text-anchor="start" x="580.62" y="-169.5" font-family="Times,serif" font-size="14.00">1</text> +<polygon fill="none" stroke="black" points="596.38,-162.75 596.38,-185.25 623.38,-185.25 623.38,-162.75 596.38,-162.75"/> +<text xml:space="preserve" text-anchor="start" x="606.5" y="-169.5" font-family="Times,serif" font-size="14.00">8</text> +<polygon fill="none" stroke="black" points="623.38,-162.75 623.38,-185.25 666.12,-185.25 666.12,-162.75 623.38,-162.75"/> +<text xml:space="preserve" text-anchor="start" x="631.62" y="-169.5" font-family="Times,serif" font-size="14.00">u8be</text> +<polygon fill="none" stroke="black" points="666.12,-162.75 666.12,-185.25 703.62,-185.25 703.62,-162.75 666.12,-162.75"/> +<text xml:space="preserve" text-anchor="start" x="669.12" y="-169.5" font-family="Times,serif" font-size="14.00">time1</text> +<polygon fill="none" stroke="black" points="571.62,-140.25 571.62,-162.75 596.38,-162.75 596.38,-140.25 571.62,-140.25"/> +<text xml:space="preserve" text-anchor="start" x="580.62" y="-147" font-family="Times,serif" font-size="14.00">9</text> +<polygon fill="none" stroke="black" points="596.38,-140.25 596.38,-162.75 623.38,-162.75 623.38,-140.25 596.38,-140.25"/> +<text xml:space="preserve" text-anchor="start" x="604.25" y="-147" font-family="Times,serif" font-size="14.00">...</text> +<polygon fill="none" stroke="black" points="623.38,-140.25 623.38,-162.75 666.12,-162.75 666.12,-140.25 623.38,-140.25"/> +<text xml:space="preserve" text-anchor="start" x="628.25" y="-147" font-family="Times,serif" font-size="14.00">String</text> +<polygon fill="none" stroke="black" points="666.12,-140.25 666.12,-162.75 703.62,-162.75 703.62,-140.25 666.12,-140.25"/> +<text xml:space="preserve" text-anchor="start" x="674.75" y="-147" font-family="Times,serif" font-size="14.00">str1</text> +<polygon fill="none" stroke="black" points="571.62,-117.75 571.62,-140.25 596.38,-140.25 596.38,-117.75 571.62,-117.75"/> +<text xml:space="preserve" text-anchor="start" x="578.38" y="-124.5" font-family="Times,serif" font-size="14.00">...</text> +<polygon fill="none" stroke="black" points="596.38,-117.75 596.38,-140.25 623.38,-140.25 623.38,-117.75 596.38,-117.75"/> +<text xml:space="preserve" text-anchor="start" x="606.5" y="-124.5" font-family="Times,serif" font-size="14.00">2</text> +<polygon fill="none" stroke="black" points="623.38,-117.75 623.38,-140.25 666.12,-140.25 666.12,-117.75 623.38,-117.75"/> +<text xml:space="preserve" text-anchor="start" x="631.62" y="-124.5" font-family="Times,serif" font-size="14.00">u2be</text> +<polygon fill="none" stroke="black" points="666.12,-117.75 666.12,-140.25 703.62,-140.25 703.62,-117.75 666.12,-117.75"/> +<text xml:space="preserve" text-anchor="start" x="669.12" y="-124.5" font-family="Times,serif" font-size="14.00">num2</text> +<polygon fill="none" stroke="black" points="571.62,-95.25 571.62,-117.75 596.38,-117.75 596.38,-95.25 571.62,-95.25"/> +<text xml:space="preserve" text-anchor="start" x="578.38" y="-102" font-family="Times,serif" font-size="14.00">...</text> +<polygon fill="none" stroke="black" points="596.38,-95.25 596.38,-117.75 623.38,-117.75 623.38,-95.25 596.38,-95.25"/> +<text xml:space="preserve" text-anchor="start" x="604.25" y="-102" font-family="Times,serif" font-size="14.00">...</text> +<polygon fill="none" stroke="black" points="623.38,-95.25 623.38,-117.75 666.12,-117.75 666.12,-95.25 623.38,-95.25"/> +<text xml:space="preserve" text-anchor="start" x="626.38" y="-102" font-family="Times,serif" font-size="14.00">Binary</text> +<polygon fill="none" stroke="black" points="666.12,-95.25 666.12,-117.75 703.62,-117.75 703.62,-95.25 666.12,-95.25"/> +<text xml:space="preserve" text-anchor="start" x="672.88" y="-102" font-family="Times,serif" font-size="14.00">bin1</text> +<polygon fill="none" stroke="black" points="571.62,-72.75 571.62,-95.25 596.38,-95.25 596.38,-72.75 571.62,-72.75"/> +<text xml:space="preserve" text-anchor="start" x="578.38" y="-79.5" font-family="Times,serif" font-size="14.00">...</text> +<polygon fill="none" stroke="black" points="596.38,-72.75 596.38,-95.25 623.38,-95.25 623.38,-72.75 596.38,-72.75"/> +<text xml:space="preserve" text-anchor="start" x="606.5" y="-79.5" font-family="Times,serif" font-size="14.00">4</text> +<polygon fill="none" stroke="black" points="623.38,-72.75 623.38,-95.25 666.12,-95.25 666.12,-72.75 623.38,-72.75"/> +<text xml:space="preserve" text-anchor="start" x="631.62" y="-79.5" font-family="Times,serif" font-size="14.00">u4be</text> +<polygon fill="none" stroke="black" points="666.12,-72.75 666.12,-95.25 703.62,-95.25 703.62,-72.75 666.12,-72.75"/> +<text xml:space="preserve" text-anchor="start" x="669.12" y="-79.5" font-family="Times,serif" font-size="14.00">num3</text> +<polygon fill="none" stroke="black" points="571.62,-50.25 571.62,-72.75 596.38,-72.75 596.38,-50.25 571.62,-50.25"/> +<text xml:space="preserve" text-anchor="start" x="578.38" y="-57" font-family="Times,serif" font-size="14.00">...</text> +<polygon fill="none" stroke="black" points="596.38,-50.25 596.38,-72.75 623.38,-72.75 623.38,-50.25 596.38,-50.25"/> +<text xml:space="preserve" text-anchor="start" x="604.25" y="-57" font-family="Times,serif" font-size="14.00">...</text> +<polygon fill="none" stroke="black" points="623.38,-50.25 623.38,-72.75 666.12,-72.75 666.12,-50.25 623.38,-50.25"/> +<text xml:space="preserve" text-anchor="start" x="628.25" y="-57" font-family="Times,serif" font-size="14.00">String</text> +<polygon fill="none" stroke="black" points="666.12,-50.25 666.12,-72.75 703.62,-72.75 703.62,-50.25 666.12,-50.25"/> +<text xml:space="preserve" text-anchor="start" x="674.75" y="-57" font-family="Times,serif" font-size="14.00">str2</text> +<polygon fill="none" stroke="black" points="571.62,-27.75 571.62,-50.25 596.38,-50.25 596.38,-27.75 571.62,-27.75"/> +<text xml:space="preserve" text-anchor="start" x="578.38" y="-34.5" font-family="Times,serif" font-size="14.00">...</text> +<polygon fill="none" stroke="black" points="596.38,-27.75 596.38,-50.25 623.38,-50.25 623.38,-27.75 596.38,-27.75"/> +<text xml:space="preserve" text-anchor="start" x="606.5" y="-34.5" font-family="Times,serif" font-size="14.00">8</text> +<polygon fill="none" stroke="black" points="623.38,-27.75 623.38,-50.25 666.12,-50.25 666.12,-27.75 623.38,-27.75"/> +<text xml:space="preserve" text-anchor="start" x="631.62" y="-34.5" font-family="Times,serif" font-size="14.00">u8be</text> +<polygon fill="none" stroke="black" points="666.12,-27.75 666.12,-50.25 703.62,-50.25 703.62,-27.75 666.12,-27.75"/> +<text xml:space="preserve" text-anchor="start" x="669.12" y="-34.5" font-family="Times,serif" font-size="14.00">num4</text> </g> <!-- solec__seq_payload_switch->test__seq --> -<g id="edge5" class="edge"> -<title>solec__seq_payload_switch:case3->test__seq</title> -<path fill="none" stroke="black" stroke-width="2" d="M507.5,-322C534.99,-322 526.57,-293.4 542.5,-271 550.63,-259.57 559.21,-247.68 567.8,-235.86"/> -<polygon fill="black" stroke="black" stroke-width="2" points="569.53,-239.44 572.59,-229.29 563.87,-235.31 569.53,-239.44"/> +<g id="edge6" class="edge"> +<title>solec__seq_payload_switch:case4->test__seq</title> +<path fill="none" stroke="black" stroke-width="2" d="M497,-357.75C538.58,-357.75 511.73,-307.3 532,-271 539.58,-257.42 548.27,-243.64 557.33,-230.28"/> +<polygon fill="black" stroke="black" stroke-width="2" points="559.15,-233.81 561.94,-223.59 553.38,-229.84 559.15,-233.81"/> </g> <!-- binary__seq --> <g id="node3" class="node"> <title>binary__seq</title> -<polygon fill="#e0ffe0" stroke="none" points="806.25,-73.25 806.25,-95.75 831,-95.75 831,-73.25 806.25,-73.25"/> -<polygon fill="none" stroke="black" points="806.25,-73.25 806.25,-95.75 831,-95.75 831,-73.25 806.25,-73.25"/> -<text xml:space="preserve" text-anchor="start" x="809.25" y="-80" font-family="Times,serif" font-size="14.00">pos</text> -<polygon fill="#e0ffe0" stroke="none" points="831,-73.25 831,-95.75 903,-95.75 903,-73.25 831,-73.25"/> -<polygon fill="none" stroke="black" points="831,-73.25 831,-95.75 903,-95.75 903,-73.25 831,-73.25"/> -<text xml:space="preserve" text-anchor="start" x="856.5" y="-80" font-family="Times,serif" font-size="14.00">size</text> -<polygon fill="#e0ffe0" stroke="none" points="903,-73.25 903,-95.75 935.25,-95.75 935.25,-73.25 903,-73.25"/> -<polygon fill="none" stroke="black" points="903,-73.25 903,-95.75 935.25,-95.75 935.25,-73.25 903,-73.25"/> -<text xml:space="preserve" text-anchor="start" x="907.5" y="-80" font-family="Times,serif" font-size="14.00">type</text> -<polygon fill="#e0ffe0" stroke="none" points="935.25,-73.25 935.25,-95.75 1007.25,-95.75 1007.25,-73.25 935.25,-73.25"/> -<polygon fill="none" stroke="black" points="935.25,-73.25 935.25,-95.75 1007.25,-95.75 1007.25,-73.25 935.25,-73.25"/> -<text xml:space="preserve" text-anchor="start" x="966" y="-80" font-family="Times,serif" font-size="14.00">id</text> -<polygon fill="none" stroke="black" points="806.25,-50.75 806.25,-73.25 831,-73.25 831,-50.75 806.25,-50.75"/> -<text xml:space="preserve" text-anchor="start" x="815.25" y="-57.5" font-family="Times,serif" font-size="14.00">0</text> -<polygon fill="none" stroke="black" points="831,-50.75 831,-73.25 903,-73.25 903,-50.75 831,-50.75"/> -<text xml:space="preserve" text-anchor="start" x="863.62" y="-57.5" font-family="Times,serif" font-size="14.00">2</text> -<polygon fill="none" stroke="black" points="903,-50.75 903,-73.25 935.25,-73.25 935.25,-50.75 903,-50.75"/> -<text xml:space="preserve" text-anchor="start" x="906" y="-57.5" font-family="Times,serif" font-size="14.00">u2be</text> -<polygon fill="none" stroke="black" points="935.25,-50.75 935.25,-73.25 1007.25,-73.25 1007.25,-50.75 935.25,-50.75"/> -<text xml:space="preserve" text-anchor="start" x="938.25" y="-57.5" font-family="Times,serif" font-size="14.00">len_payload</text> -<polygon fill="none" stroke="black" points="806.25,-28.25 806.25,-50.75 831,-50.75 831,-28.25 806.25,-28.25"/> -<text xml:space="preserve" text-anchor="start" x="815.25" y="-35" font-family="Times,serif" font-size="14.00">2</text> -<polygon fill="none" stroke="black" points="831,-28.25 831,-50.75 903,-50.75 903,-28.25 831,-28.25"/> -<text xml:space="preserve" text-anchor="start" x="834" y="-35" font-family="Times,serif" font-size="14.00">len_payload</text> -<polygon fill="none" stroke="black" points="903,-28.25 903,-50.75 935.25,-50.75 935.25,-28.25 903,-28.25"/> -<polygon fill="none" stroke="black" points="935.25,-28.25 935.25,-50.75 1007.25,-50.75 1007.25,-28.25 935.25,-28.25"/> -<text xml:space="preserve" text-anchor="start" x="949.88" y="-35" font-family="Times,serif" font-size="14.00">payload</text> +<polygon fill="#e0ffe0" stroke="none" points="795.75,-118.25 795.75,-140.75 820.5,-140.75 820.5,-118.25 795.75,-118.25"/> +<polygon fill="none" stroke="black" points="795.75,-118.25 795.75,-140.75 820.5,-140.75 820.5,-118.25 795.75,-118.25"/> +<text xml:space="preserve" text-anchor="start" x="798.75" y="-125" font-family="Times,serif" font-size="14.00">pos</text> +<polygon fill="#e0ffe0" stroke="none" points="820.5,-118.25 820.5,-140.75 892.5,-140.75 892.5,-118.25 820.5,-118.25"/> +<polygon fill="none" stroke="black" points="820.5,-118.25 820.5,-140.75 892.5,-140.75 892.5,-118.25 820.5,-118.25"/> +<text xml:space="preserve" text-anchor="start" x="846" y="-125" font-family="Times,serif" font-size="14.00">size</text> +<polygon fill="#e0ffe0" stroke="none" points="892.5,-118.25 892.5,-140.75 924.75,-140.75 924.75,-118.25 892.5,-118.25"/> +<polygon fill="none" stroke="black" points="892.5,-118.25 892.5,-140.75 924.75,-140.75 924.75,-118.25 892.5,-118.25"/> +<text xml:space="preserve" text-anchor="start" x="897" y="-125" font-family="Times,serif" font-size="14.00">type</text> +<polygon fill="#e0ffe0" stroke="none" points="924.75,-118.25 924.75,-140.75 996.75,-140.75 996.75,-118.25 924.75,-118.25"/> +<polygon fill="none" stroke="black" points="924.75,-118.25 924.75,-140.75 996.75,-140.75 996.75,-118.25 924.75,-118.25"/> +<text xml:space="preserve" text-anchor="start" x="955.5" y="-125" font-family="Times,serif" font-size="14.00">id</text> +<polygon fill="none" stroke="black" points="795.75,-95.75 795.75,-118.25 820.5,-118.25 820.5,-95.75 795.75,-95.75"/> +<text xml:space="preserve" text-anchor="start" x="804.75" y="-102.5" font-family="Times,serif" font-size="14.00">0</text> +<polygon fill="none" stroke="black" points="820.5,-95.75 820.5,-118.25 892.5,-118.25 892.5,-95.75 820.5,-95.75"/> +<text xml:space="preserve" text-anchor="start" x="853.12" y="-102.5" font-family="Times,serif" font-size="14.00">2</text> +<polygon fill="none" stroke="black" points="892.5,-95.75 892.5,-118.25 924.75,-118.25 924.75,-95.75 892.5,-95.75"/> +<text xml:space="preserve" text-anchor="start" x="895.5" y="-102.5" font-family="Times,serif" font-size="14.00">u2be</text> +<polygon fill="none" stroke="black" points="924.75,-95.75 924.75,-118.25 996.75,-118.25 996.75,-95.75 924.75,-95.75"/> +<text xml:space="preserve" text-anchor="start" x="927.75" y="-102.5" font-family="Times,serif" font-size="14.00">len_payload</text> +<polygon fill="none" stroke="black" points="795.75,-73.25 795.75,-95.75 820.5,-95.75 820.5,-73.25 795.75,-73.25"/> +<text xml:space="preserve" text-anchor="start" x="804.75" y="-80" font-family="Times,serif" font-size="14.00">2</text> +<polygon fill="none" stroke="black" points="820.5,-73.25 820.5,-95.75 892.5,-95.75 892.5,-73.25 820.5,-73.25"/> +<text xml:space="preserve" text-anchor="start" x="823.5" y="-80" font-family="Times,serif" font-size="14.00">len_payload</text> +<polygon fill="none" stroke="black" points="892.5,-73.25 892.5,-95.75 924.75,-95.75 924.75,-73.25 892.5,-73.25"/> +<polygon fill="none" stroke="black" points="924.75,-73.25 924.75,-95.75 996.75,-95.75 996.75,-73.25 924.75,-73.25"/> +<text xml:space="preserve" text-anchor="start" x="939.38" y="-80" font-family="Times,serif" font-size="14.00">payload</text> </g> <!-- binary__seq->binary__seq --> -<g id="edge7" class="edge"> +<g id="edge8" class="edge"> <title>binary__seq:len_payload_type->binary__seq:payload_size</title> -<path fill="none" stroke="#404040" d="M999.07,-73.22C1032.3,-92.5 1015.38,-117.75 919.12,-117.75 829.24,-117.75 808.54,-82.4 833.26,-57.64"/> -<polygon fill="#404040" stroke="#404040" points="835.13,-60.63 840.7,-51.62 830.73,-55.19 835.13,-60.63"/> +<path fill="none" stroke="#404040" d="M988.57,-118.22C1021.8,-137.5 1004.88,-162.75 908.62,-162.75 818.74,-162.75 798.04,-127.4 822.76,-102.64"/> +<polygon fill="#404040" stroke="#404040" points="824.63,-105.63 830.2,-96.62 820.23,-100.19 824.63,-105.63"/> </g> <!-- string__seq --> -<g id="node7" class="node"> +<g id="node8" class="node"> <title>string__seq</title> -<polygon fill="#e0ffe0" stroke="none" points="789.75,-215.25 789.75,-237.75 814.5,-237.75 814.5,-215.25 789.75,-215.25"/> -<polygon fill="none" stroke="black" points="789.75,-215.25 789.75,-237.75 814.5,-237.75 814.5,-215.25 789.75,-215.25"/> -<text xml:space="preserve" text-anchor="start" x="792.75" y="-222" font-family="Times,serif" font-size="14.00">pos</text> -<polygon fill="#e0ffe0" stroke="none" points="814.5,-215.25 814.5,-237.75 886.5,-237.75 886.5,-215.25 814.5,-215.25"/> -<polygon fill="none" stroke="black" points="814.5,-215.25 814.5,-237.75 886.5,-237.75 886.5,-215.25 814.5,-215.25"/> -<text xml:space="preserve" text-anchor="start" x="840" y="-222" font-family="Times,serif" font-size="14.00">size</text> -<polygon fill="#e0ffe0" stroke="none" points="886.5,-215.25 886.5,-237.75 951.75,-237.75 951.75,-215.25 886.5,-215.25"/> -<polygon fill="none" stroke="black" points="886.5,-215.25 886.5,-237.75 951.75,-237.75 951.75,-215.25 886.5,-215.25"/> -<text xml:space="preserve" text-anchor="start" x="907.5" y="-222" font-family="Times,serif" font-size="14.00">type</text> -<polygon fill="#e0ffe0" stroke="none" points="951.75,-215.25 951.75,-237.75 1023.75,-237.75 1023.75,-215.25 951.75,-215.25"/> -<polygon fill="none" stroke="black" points="951.75,-215.25 951.75,-237.75 1023.75,-237.75 1023.75,-215.25 951.75,-215.25"/> -<text xml:space="preserve" text-anchor="start" x="982.5" y="-222" font-family="Times,serif" font-size="14.00">id</text> -<polygon fill="none" stroke="black" points="789.75,-192.75 789.75,-215.25 814.5,-215.25 814.5,-192.75 789.75,-192.75"/> -<text xml:space="preserve" text-anchor="start" x="798.75" y="-199.5" font-family="Times,serif" font-size="14.00">0</text> -<polygon fill="none" stroke="black" points="814.5,-192.75 814.5,-215.25 886.5,-215.25 886.5,-192.75 814.5,-192.75"/> -<text xml:space="preserve" text-anchor="start" x="847.12" y="-199.5" font-family="Times,serif" font-size="14.00">2</text> -<polygon fill="none" stroke="black" points="886.5,-192.75 886.5,-215.25 951.75,-215.25 951.75,-192.75 886.5,-192.75"/> -<text xml:space="preserve" text-anchor="start" x="906" y="-199.5" font-family="Times,serif" font-size="14.00">u2be</text> -<polygon fill="none" stroke="black" points="951.75,-192.75 951.75,-215.25 1023.75,-215.25 1023.75,-192.75 951.75,-192.75"/> -<text xml:space="preserve" text-anchor="start" x="954.75" y="-199.5" font-family="Times,serif" font-size="14.00">len_payload</text> -<polygon fill="none" stroke="black" points="789.75,-170.25 789.75,-192.75 814.5,-192.75 814.5,-170.25 789.75,-170.25"/> -<text xml:space="preserve" text-anchor="start" x="798.75" y="-177" font-family="Times,serif" font-size="14.00">2</text> -<polygon fill="none" stroke="black" points="814.5,-170.25 814.5,-192.75 886.5,-192.75 886.5,-170.25 814.5,-170.25"/> -<text xml:space="preserve" text-anchor="start" x="817.5" y="-177" font-family="Times,serif" font-size="14.00">len_payload</text> -<polygon fill="none" stroke="black" points="886.5,-170.25 886.5,-192.75 951.75,-192.75 951.75,-170.25 886.5,-170.25"/> -<text xml:space="preserve" text-anchor="start" x="889.5" y="-177" font-family="Times,serif" font-size="14.00">str(UTF-8)</text> -<polygon fill="none" stroke="black" points="951.75,-170.25 951.75,-192.75 1023.75,-192.75 1023.75,-170.25 951.75,-170.25"/> -<text xml:space="preserve" text-anchor="start" x="966.38" y="-177" font-family="Times,serif" font-size="14.00">payload</text> +<polygon fill="#e0ffe0" stroke="none" points="779.25,-496.25 779.25,-518.75 804,-518.75 804,-496.25 779.25,-496.25"/> +<polygon fill="none" stroke="black" points="779.25,-496.25 779.25,-518.75 804,-518.75 804,-496.25 779.25,-496.25"/> +<text xml:space="preserve" text-anchor="start" x="782.25" y="-503" font-family="Times,serif" font-size="14.00">pos</text> +<polygon fill="#e0ffe0" stroke="none" points="804,-496.25 804,-518.75 876,-518.75 876,-496.25 804,-496.25"/> +<polygon fill="none" stroke="black" points="804,-496.25 804,-518.75 876,-518.75 876,-496.25 804,-496.25"/> +<text xml:space="preserve" text-anchor="start" x="829.5" y="-503" font-family="Times,serif" font-size="14.00">size</text> +<polygon fill="#e0ffe0" stroke="none" points="876,-496.25 876,-518.75 941.25,-518.75 941.25,-496.25 876,-496.25"/> +<polygon fill="none" stroke="black" points="876,-496.25 876,-518.75 941.25,-518.75 941.25,-496.25 876,-496.25"/> +<text xml:space="preserve" text-anchor="start" x="897" y="-503" font-family="Times,serif" font-size="14.00">type</text> +<polygon fill="#e0ffe0" stroke="none" points="941.25,-496.25 941.25,-518.75 1013.25,-518.75 1013.25,-496.25 941.25,-496.25"/> +<polygon fill="none" stroke="black" points="941.25,-496.25 941.25,-518.75 1013.25,-518.75 1013.25,-496.25 941.25,-496.25"/> +<text xml:space="preserve" text-anchor="start" x="972" y="-503" font-family="Times,serif" font-size="14.00">id</text> +<polygon fill="none" stroke="black" points="779.25,-473.75 779.25,-496.25 804,-496.25 804,-473.75 779.25,-473.75"/> +<text xml:space="preserve" text-anchor="start" x="788.25" y="-480.5" font-family="Times,serif" font-size="14.00">0</text> +<polygon fill="none" stroke="black" points="804,-473.75 804,-496.25 876,-496.25 876,-473.75 804,-473.75"/> +<text xml:space="preserve" text-anchor="start" x="836.62" y="-480.5" font-family="Times,serif" font-size="14.00">2</text> +<polygon fill="none" stroke="black" points="876,-473.75 876,-496.25 941.25,-496.25 941.25,-473.75 876,-473.75"/> +<text xml:space="preserve" text-anchor="start" x="895.5" y="-480.5" font-family="Times,serif" font-size="14.00">u2be</text> +<polygon fill="none" stroke="black" points="941.25,-473.75 941.25,-496.25 1013.25,-496.25 1013.25,-473.75 941.25,-473.75"/> +<text xml:space="preserve" text-anchor="start" x="944.25" y="-480.5" font-family="Times,serif" font-size="14.00">len_payload</text> +<polygon fill="none" stroke="black" points="779.25,-451.25 779.25,-473.75 804,-473.75 804,-451.25 779.25,-451.25"/> +<text xml:space="preserve" text-anchor="start" x="788.25" y="-458" font-family="Times,serif" font-size="14.00">2</text> +<polygon fill="none" stroke="black" points="804,-451.25 804,-473.75 876,-473.75 876,-451.25 804,-451.25"/> +<text xml:space="preserve" text-anchor="start" x="807" y="-458" font-family="Times,serif" font-size="14.00">len_payload</text> +<polygon fill="none" stroke="black" points="876,-451.25 876,-473.75 941.25,-473.75 941.25,-451.25 876,-451.25"/> +<text xml:space="preserve" text-anchor="start" x="879" y="-458" font-family="Times,serif" font-size="14.00">str(UTF-8)</text> +<polygon fill="none" stroke="black" points="941.25,-451.25 941.25,-473.75 1013.25,-473.75 1013.25,-451.25 941.25,-451.25"/> +<text xml:space="preserve" text-anchor="start" x="955.88" y="-458" font-family="Times,serif" font-size="14.00">payload</text> +</g> +<!-- message__seq->string__seq --> +<g id="edge9" class="edge"> +<title>message__seq:source_type->string__seq</title> +<path fill="none" stroke="black" stroke-width="2" d="M715.88,-552.5C751.15,-552.5 787.97,-540.92 819.01,-527.36"/> +<polygon fill="black" stroke="black" stroke-width="2" points="818.88,-531.26 826.54,-523.95 815.99,-524.88 818.88,-531.26"/> +</g> +<!-- message__seq->string__seq --> +<g id="edge10" class="edge"> +<title>message__seq:target_type->string__seq</title> +<path fill="none" stroke="black" stroke-width="2" d="M715.88,-530C733.21,-530 751.21,-528 768.82,-524.84"/> +<polygon fill="black" stroke="black" stroke-width="2" points="767.91,-528.58 777.06,-523.25 766.57,-521.71 767.91,-528.58"/> +</g> +<!-- message__seq->string__seq --> +<g id="edge11" class="edge"> +<title>message__seq:content_type->string__seq</title> +<path fill="none" stroke="black" stroke-width="2" d="M715.88,-485C730.14,-485 745.05,-485 759.91,-485"/> +<polygon fill="black" stroke="black" stroke-width="2" points="758.23,-488.5 768.23,-485 758.23,-481.5 758.23,-488.5"/> </g> <!-- string__seq->string__seq --> -<g id="edge8" class="edge"> +<g id="edge12" class="edge"> <title>string__seq:len_payload_type->string__seq:payload_size</title> -<path fill="none" stroke="#404040" d="M1015.48,-215.22C1048.29,-234.5 1028.98,-259.75 919.12,-259.75 816.98,-259.75 793.12,-224.7 816.65,-199.96"/> -<polygon fill="#404040" stroke="#404040" points="818.82,-202.71 824.28,-193.63 814.35,-197.33 818.82,-202.71"/> +<path fill="none" stroke="#404040" d="M1004.98,-496.22C1037.79,-515.5 1018.48,-540.75 908.62,-540.75 806.48,-540.75 782.62,-505.7 806.15,-480.96"/> +<polygon fill="#404040" stroke="#404040" points="808.32,-483.71 813.78,-474.63 803.85,-478.33 808.32,-483.71"/> </g> <!-- test__seq->binary__seq --> -<g id="edge10" class="edge"> +<g id="edge14" class="edge"> <title>test__seq:bin1_type->binary__seq</title> -<path fill="none" stroke="black" stroke-width="2" d="M715.12,-106.5C738.74,-106.5 763.58,-103.22 787.25,-98.44"/> -<polygon fill="black" stroke="black" stroke-width="2" points="786.38,-102.21 795.43,-96.7 784.92,-95.36 786.38,-102.21"/> +<path fill="none" stroke="black" stroke-width="2" d="M704.62,-106.5C727.91,-106.5 752.79,-106.54 776.64,-106.59"/> +<polygon fill="black" stroke="black" stroke-width="2" points="774.85,-110.09 784.85,-106.61 774.86,-103.09 774.85,-110.09"/> </g> <!-- test__seq->string__seq --> -<g id="edge9" class="edge"> +<g id="edge13" class="edge"> <title>test__seq:str1_type->string__seq</title> -<path fill="none" stroke="black" stroke-width="2" d="M715.12,-151.5C742.13,-151.5 770.53,-156.46 796.93,-163.32"/> -<polygon fill="black" stroke="black" stroke-width="2" points="794.23,-166.22 804.8,-165.47 796.07,-159.46 794.23,-166.22"/> +<path fill="none" stroke="black" stroke-width="2" d="M704.62,-151.5C737.13,-151.5 830.71,-344.97 873.47,-437.2"/> +<polygon fill="black" stroke="black" stroke-width="2" points="869.54,-437.03 876.91,-444.64 875.89,-434.1 869.54,-437.03"/> </g> <!-- test__seq->string__seq --> -<g id="edge11" class="edge"> +<g id="edge15" class="edge"> <title>test__seq:str2_type->string__seq</title> -<path fill="none" stroke="black" stroke-width="2" d="M715.12,-61.5C763.8,-61.5 736.03,-123.24 773.75,-154 776.42,-156.18 779.19,-158.26 782.05,-160.26"/> -<polygon fill="black" stroke="black" stroke-width="2" points="778.61,-162.2 788.9,-164.72 782.43,-156.34 778.61,-162.2"/> +<path fill="none" stroke="black" stroke-width="2" d="M704.62,-61.5C771.06,-61.5 736.3,-138.28 763.25,-199 800.74,-283.46 846.25,-381.04 872.86,-437.61"/> +<polygon fill="black" stroke="black" stroke-width="2" points="868.89,-437.39 876.31,-444.94 875.22,-434.4 868.89,-437.39"/> </g> </g> </svg> |
