Changeset - a4052905ca7d
[Not reviewed]
tip default
0 0 1
drewp@bigasterisk.com - 8 months ago 2024-06-04 06:01:54
drewp@bigasterisk.com
notes about how rdfdb syncs, or should sync
1 file changed with 782 insertions and 0 deletions:
0 comments (0 inline, 0 general)
doc/graph-sharing.svg
Show inline comments
 
new file 100644
 
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
<!-- Created with Inkscape (http://www.inkscape.org/) -->
 

	
 
<svg
 
   width="297mm"
 
   height="210mm"
 
   viewBox="0 0 297 210"
 
   version="1.1"
 
   id="svg1"
 
   inkscape:version="1.3.2 (091e20e, 2023-11-25)"
 
   sodipodi:docname="graph-sharing.svg"
 
   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
 
   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
 
   xmlns="http://www.w3.org/2000/svg"
 
   xmlns:svg="http://www.w3.org/2000/svg">
 
  <sodipodi:namedview
 
     id="namedview1"
 
     pagecolor="#ffffff"
 
     bordercolor="#666666"
 
     borderopacity="1.0"
 
     inkscape:showpageshadow="2"
 
     inkscape:pageopacity="0.0"
 
     inkscape:pagecheckerboard="0"
 
     inkscape:deskcolor="#d1d1d1"
 
     inkscape:document-units="mm"
 
     inkscape:zoom="1.5732464"
 
     inkscape:cx="493.24761"
 
     inkscape:cy="574.60804"
 
     inkscape:window-width="2772"
 
     inkscape:window-height="1594"
 
     inkscape:window-x="3949"
 
     inkscape:window-y="423"
 
     inkscape:window-maximized="0"
 
     inkscape:current-layer="layer1"
 
     showgrid="true">
 
    <inkscape:grid
 
       id="grid50"
 
       units="cm"
 
       originx="0"
 
       originy="0"
 
       spacingx="5"
 
       spacingy="5"
 
       empcolor="#0000ff"
 
       empopacity="0.25098039"
 
       color="#0000ff"
 
       opacity="0.1254902"
 
       empspacing="5"
 
       dotted="true"
 
       gridanglex="30"
 
       gridanglez="30"
 
       visible="true" />
 
  </sodipodi:namedview>
 
  <defs
 
     id="defs1" />
 
  <g
 
     inkscape:label="Layer 1"
 
     inkscape:groupmode="layer"
 
     id="layer1">
 
    <text
 
       xml:space="preserve"
 
       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16px;line-height:125%;font-family:'Ubuntu Condensed';-inkscape-font-specification:'Ubuntu Condensed, Normal';font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:pre;shape-padding:0;shape-margin:0;inline-size:323.634;display:inline;opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.999999px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
 
       x="59.083897"
 
       y="227.62686"
 
       id="text1"
 
       transform="matrix(0.26458333,0,0,0.26458333,9.9912138,70.64917)"><tspan
 
         x="59.083897"
 
         y="227.62686"
 
         id="tspan5">&lt;graph&gt; element with access to the </tspan><tspan
 
         x="59.083897"
 
         y="247.62687"
 
         id="tspan9">window's <tspan
 
   style="font-weight:bold"
 
   id="tspan7">SyncedGraph</tspan> and a little status </tspan><tspan
 
         x="59.083897"
 
         y="267.62687"
 
         id="tspan10">widget 
 
</tspan></text>
 
    <text
 
       xml:space="preserve"
 
       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16px;line-height:125%;font-family:'Ubuntu Condensed';-inkscape-font-specification:'Ubuntu Condensed, Normal';font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.999999px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
 
       x="50.021576"
 
       y="160.41574"
 
       id="text3"
 
       transform="matrix(0.26458333,0,0,0.26458333,3.4435403,78.808712)"><tspan
 
         sodipodi:role="line"
 
         id="tspan3"
 
         x="50.021576"
 
         y="160.41574">&lt;some-page-or-subpage&gt;</tspan></text>
 
    <text
 
       xml:space="preserve"
 
       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16px;line-height:125%;font-family:'Ubuntu Condensed';-inkscape-font-specification:'Ubuntu Condensed, Normal';font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.999999px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
 
       x="759.15027"
 
       y="180.25575"
 
       id="text4"
 
       transform="matrix(0.26458333,0,0,0.26458333,3.574644,-30.839148)"><tspan
 
         sodipodi:role="line"
 
         id="tspan4"
 
         x="759.15027"
 
         y="180.25575">rdfdb server</tspan></text>
 
    <text
 
       xml:space="preserve"
 
       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16px;line-height:125%;font-family:'Ubuntu Condensed';-inkscape-font-specification:'Ubuntu Condensed, Normal';font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.999999px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
 
       x="760.51025"
 
       y="269.38141"
 
       id="text6"
 
       transform="matrix(0.26458333,0,0,0.26458333,7.6506319,-14.377524)"><tspan
 
         sodipodi:role="line"
 
         id="tspan6"
 
         x="760.51025"
 
         y="269.38141">ws:/syncedGraph2024</tspan></text>
 
    <text
 
       xml:space="preserve"
 
       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16px;line-height:125%;font-family:'Ubuntu Condensed';-inkscape-font-specification:'Ubuntu Condensed, Normal';font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.42857px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
 
       x="602.47052"
 
       y="269.60541"
 
       id="text7"
 
       transform="matrix(0.18520833,0,0,0.18520833,22.875544,58.837377)"><tspan
 
         sodipodi:role="line"
 
         x="602.47052"
 
         y="269.60541"
 
         id="tspan8"
 
         style="stroke-width:1.42857px">← graph changed</tspan><tspan
 
         sodipodi:role="line"
 
         x="602.47052"
 
         y="290.69962"
 
         id="tspan67"
 
         style="stroke-width:1.42857px">- deletes</tspan><tspan
 
         sodipodi:role="line"
 
         x="602.47052"
 
         y="310.69962"
 
         id="tspan68"
 
         style="stroke-width:1.42857px">- adds</tspan><tspan
 
         sodipodi:role="line"
 
         x="602.47052"
 
         y="330.69962"
 
         id="tspan69"
 
         style="stroke-width:1.42857px">- fromVersion (0 for resync)</tspan><tspan
 
         sodipodi:role="line"
 
         x="602.47052"
 
         y="350.69962"
 
         id="tspan70"
 
         style="stroke-width:1.42857px">- toVersion</tspan><tspan
 
         sodipodi:role="line"
 
         x="602.47052"
 
         y="370.69962"
 
         id="tspan71"
 
         style="stroke-width:1.42857px"></tspan><tspan
 
         sodipodi:role="line"
 
         x="602.47052"
 
         y="390.69962"
 
         id="tspan72"
 
         style="stroke-width:1.42857px" /></text>
 
    <text
 
       xml:space="preserve"
 
       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16px;line-height:125%;font-family:'Ubuntu Condensed';-inkscape-font-specification:'Ubuntu Condensed, Normal';font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.999999px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
 
       x="603.27051"
 
       y="236.53676"
 
       id="text14"
 
       transform="matrix(0.26458333,0,0,0.26458333,-36.456562,33.067503)"><tspan
 
         sodipodi:role="line"
 
         id="tspan14"
 
         x="603.27051"
 
         y="236.53676">⇄ 2024 protocol (avro)</tspan></text>
 
    <text
 
       xml:space="preserve"
 
       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16px;line-height:125%;font-family:'Ubuntu Condensed';-inkscape-font-specification:'Ubuntu Condensed, Normal';font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:pre;shape-padding:0;shape-margin:0;inline-size:263.964;display:inline;opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.999999px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
 
       x="152.07195"
 
       y="243.67955"
 
       id="text15"
 
       transform="matrix(0.26458333,0,0,0.26458333,-15.04758,-9.0154512)"><tspan
 
         x="152.07195"
 
         y="243.67955"
 
         id="tspan12"><tspan
 
   style="font-weight:bold"
 
   id="tspan11">graph.patch(p)</tspan>
 
</tspan><tspan
 
         x="152.07195"
 
         y="263.67955"
 
         id="tspan13">immediately patches local side, </tspan><tspan
 
         x="152.07195"
 
         y="283.67955"
 
         id="tspan16">storing the accumulated patch </tspan><tspan
 
         x="152.07195"
 
         y="303.67955"
 
         id="tspan17">from the last known graph version
 
</tspan></text>
 
    <text
 
       xml:space="preserve"
 
       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16px;line-height:125%;font-family:'Ubuntu Condensed';-inkscape-font-specification:'Ubuntu Condensed, Normal';font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.42857px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
 
       x="592.03174"
 
       y="396.8504"
 
       id="text19"
 
       transform="matrix(0.18520833,0,0,0.18520833,24.608261,62.422856)"><tspan
 
         sodipodi:role="line"
 
         id="tspan19"
 
         x="592.03174"
 
         y="396.8504"
 
         style="font-weight:normal;stroke-width:1.42857px">→ graph edit</tspan><tspan
 
         sodipodi:role="line"
 
         x="592.03174"
 
         y="417.94461"
 
         style="font-weight:normal;stroke-width:1.42857px"
 
         id="tspan73">- fromVersion</tspan><tspan
 
         sodipodi:role="line"
 
         x="592.03174"
 
         y="437.94461"
 
         style="font-weight:normal;stroke-width:1.42857px"
 
         id="tspan74">- deletes</tspan><tspan
 
         sodipodi:role="line"
 
         x="592.03174"
 
         y="457.94461"
 
         style="font-weight:normal;stroke-width:1.42857px"
 
         id="tspan75">- adds</tspan></text>
 
    <text
 
       xml:space="preserve"
 
       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16px;line-height:125%;font-family:'Ubuntu Condensed';-inkscape-font-specification:'Ubuntu Condensed, Normal';font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:pre;shape-padding:0;shape-margin:0;inline-size:266.946;display:inline;opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.999999px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
 
       x="152.31226"
 
       y="384.6904"
 
       id="text23"
 
       transform="matrix(0.26458333,0,0,0.26458333,-15.113356,-22.760975)"><tspan
 
         x="152.31226"
 
         y="384.6904"
 
         id="tspan20"><tspan
 
   style="font-weight:bold"
 
   id="tspan18">graph.sync()</tspan>
 
</tspan><tspan
 
         x="152.31226"
 
         y="404.69039"
 
         id="tspan21">&quot;send our diffs, and make our local </tspan><tspan
 
         x="152.31226"
 
         y="424.69039"
 
         id="tspan25">graph match the rdfdb one&quot;
 
</tspan><tspan
 
         x="152.31226"
 
         y="444.69039"
 
         id="tspan26">Called after patch, reconnect, etc.</tspan></text>
 
    <text
 
       xml:space="preserve"
 
       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16px;line-height:125%;font-family:'Ubuntu Condensed';-inkscape-font-specification:'Ubuntu Condensed, Normal';font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:pre;shape-padding:0;shape-margin:0;inline-size:216.94;display:inline;opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.999999px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
 
       x="953.84619"
 
       y="257.4454"
 
       id="text29"
 
       transform="matrix(0.26458333,0,0,0.26458333,-31.334726,-3.6846685)"><tspan
 
         x="953.84619"
 
         y="257.4454"
 
         id="tspan27">stores and syncs with disk:
 
</tspan><tspan
 
         x="953.84619"
 
         y="277.44539"
 
         id="tspan28">- stmts
 
</tspan><tspan
 
         x="953.84619"
 
         y="297.44539"
 
         id="tspan34">- graphVersion
 
</tspan><tspan
 
         x="953.84619"
 
         y="317.44539"
 
         id="tspan35">
 
</tspan><tspan
 
         x="953.84619"
 
         y="337.44539"
 
         id="tspan36">and optionally some recent </tspan><tspan
 
         x="953.84619"
 
         y="357.44539"
 
         id="tspan37">versions that clients might </tspan><tspan
 
         x="953.84619"
 
         y="377.44539"
 
         id="tspan39">refererence in their edits, to </tspan><tspan
 
         x="953.84619"
 
         y="397.44539"
 
         id="tspan42">reduce resyncs</tspan></text>
 
    <text
 
       xml:space="preserve"
 
       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16px;line-height:125%;font-family:'Ubuntu Condensed';-inkscape-font-specification:'Ubuntu Condensed, Normal';font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.999999px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
 
       x="34.287155"
 
       y="101.0934"
 
       id="text38"
 
       transform="matrix(0.26458333,0,0,0.26458333,2.5692145,-9.904692)"><tspan
 
         sodipodi:role="line"
 
         id="tspan38"
 
         x="34.287155"
 
         y="101.0934">browser window</tspan></text>
 
    <text
 
       xml:space="preserve"
 
       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16px;line-height:125%;font-family:'Ubuntu Condensed';-inkscape-font-specification:'Ubuntu Condensed, Normal';font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.999999px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
 
       x="56.231335"
 
       y="124.78235"
 
       id="text39"
 
       transform="matrix(0.26458333,0,0,0.26458333,0.62751132,-8.3208524)"><tspan
 
         sodipodi:role="line"
 
         x="56.231335"
 
         y="124.78235"
 
         id="tspan40">one window-scoped <tspan
 
   style="font-weight:bold"
 
   id="tspan41">SyncedGraph</tspan> object</tspan></text>
 
    <text
 
       xml:space="preserve"
 
       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16px;line-height:125%;font-family:'Ubuntu Condensed';-inkscape-font-specification:'Ubuntu Condensed, Normal';font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.999999px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
 
       x="96.823036"
 
       y="371.12299"
 
       id="text43"
 
       transform="matrix(0.26458333,0,0,0.26458333,-0.13784353,4.690379)"><tspan
 
         sodipodi:role="line"
 
         id="tspan43"
 
         x="96.823036"
 
         y="371.12299"
 
         style="font-weight:bold">graph.onVersionChanged</tspan><tspan
 
         sodipodi:role="line"
 
         x="96.823036"
 
         y="391.12299"
 
         id="tspan44">if we are based on the fromVersion</tspan></text>
 
    <text
 
       xml:space="preserve"
 
       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16px;line-height:125%;font-family:'Ubuntu Condensed';-inkscape-font-specification:'Ubuntu Condensed, Normal';font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:pre;shape-padding:0;shape-margin:0;inline-size:295.932;display:inline;opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.999999px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
 
       x="397.33862"
 
       y="164.25574"
 
       id="text45"
 
       transform="matrix(0.26458333,0,0,0.26458333,-80.046609,-7.2652108)"><tspan
 
         x="397.33862"
 
         y="164.25574"
 
         id="tspan45">Internally, the graph is stored as 
 
</tspan><tspan
 
         x="397.33862"
 
         y="184.25574"
 
         id="tspan47">- a local patch on top of 
 
</tspan><tspan
 
         x="397.33862"
 
         y="204.25574"
 
         id="tspan48">- an rdfdb graph @ graphVersion</tspan></text>
 
    <rect
 
       style="color:#000000;overflow:visible;fill:none;stroke:#69dd65;stroke-width:0.264583;stroke-miterlimit:10;-inkscape-stroke:none"
 
       id="rect48"
 
       width="105"
 
       height="155"
 
       x="10"
 
       y="10" />
 
    <rect
 
       style="color:#000000;overflow:visible;fill:none;stroke:#69dd65;stroke-width:0.264583;stroke-miterlimit:10;-inkscape-stroke:none"
 
       id="rect49"
 
       width="96.380028"
 
       height="94.064072"
 
       x="13.852575"
 
       y="20.427954" />
 
    <rect
 
       style="color:#000000;overflow:visible;fill:none;stroke:#69dd65;stroke-width:0.264583;stroke-miterlimit:10;-inkscape-stroke:none"
 
       id="rect51"
 
       width="90"
 
       height="154.86771"
 
       x="200"
 
       y="10.000004" />
 
    <g
 
       id="g54"
 
       style="opacity:0.52671"
 
       transform="translate(-0.15943759,-4.0259874)">
 
      <text
 
         xml:space="preserve"
 
         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16px;line-height:125%;font-family:'Ubuntu Condensed';-inkscape-font-specification:'Ubuntu Condensed, Normal';font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.999999px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
 
         x="760.51025"
 
         y="269.38141"
 
         id="text22"
 
         transform="matrix(0.26458333,0,0,0.26458333,8.6969751,-41.48589)"><tspan
 
           sodipodi:role="line"
 
           id="tspan22"
 
           x="760.51025"
 
           y="269.38141">ws:/syncedGraph (legacy)</tspan></text>
 
      <text
 
         xml:space="preserve"
 
         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16px;line-height:125%;font-family:'Ubuntu Condensed';-inkscape-font-specification:'Ubuntu Condensed, Normal';font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.26828px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
 
         x="824.49902"
 
         y="132.28346"
 
         id="text51"
 
         transform="matrix(0.20861605,0,0,0.20861605,46.186158,6.7185059)"><tspan
 
           sodipodi:role="line"
 
           id="tspan51"
 
           x="824.49902"
 
           y="132.28346"
 
           style="stroke-width:1.26828px">sends full graph at startup,</tspan><tspan
 
           sodipodi:role="line"
 
           x="824.49902"
 
           y="152.28346"
 
           id="tspan52"
 
           style="stroke-width:1.26828px">accepts patches,</tspan><tspan
 
           sodipodi:role="line"
 
           x="824.49902"
 
           y="172.28346"
 
           id="tspan53"
 
           style="stroke-width:1.26828px">broadcasts them to other clients,</tspan><tspan
 
           sodipodi:role="line"
 
           x="824.49902"
 
           y="192.28346"
 
           id="tspan54"
 
           style="stroke-width:1.26828px">disconnects on detected conflicts</tspan></text>
 
    </g>
 
    <text
 
       xml:space="preserve"
 
       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16px;line-height:125%;font-family:'Ubuntu Condensed';-inkscape-font-specification:'Ubuntu Condensed, Normal';font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.999999px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
 
       x="534.40503"
 
       y="116.42434"
 
       id="text56"
 
       transform="matrix(0.26458333,0,0,0.26458333,-13.265116,-9.2753199)"><tspan
 
         sodipodi:role="line"
 
         id="tspan56"
 
         x="534.40503"
 
         y="116.42434">⇄ patches protocol (JSON)</tspan><tspan
 
         sodipodi:role="line"
 
         x="534.40503"
 
         y="137.51854"
 
         id="tspan57" /></text>
 
    <path
 
       id="rect50"
 
       style="overflow:visible;fill:none;stroke:#69dd65;stroke-width:0.264583;stroke-miterlimit:10"
 
       d="m 13.852575,114.49203 h 96.512315 v 29.77958 H 13.852575 Z" />
 
    <text
 
       xml:space="preserve"
 
       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16px;line-height:125%;font-family:'Ubuntu Condensed';-inkscape-font-specification:'Ubuntu Condensed, Normal';font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.02899px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
 
       x="520.00647"
 
       y="172.40318"
 
       id="text58"
 
       transform="matrix(0.24988407,0,0,0.26458333,-8.1107096,15.663921)"><tspan
 
         sodipodi:role="line"
 
         id="tspan58"
 
         x="520.00647"
 
         y="172.40318"
 
         style="stroke-width:1.02899px">⇄ sub/unsub protocol (db_protocol.ts)</tspan></text>
 
    <text
 
       xml:space="preserve"
 
       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16px;line-height:125%;font-family:'Ubuntu Condensed';-inkscape-font-specification:'Ubuntu Condensed, Normal';font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:pre;shape-padding:0;shape-margin:0;inline-size:322.214;display:inline;opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.42857px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
 
       x="556.1756"
 
       y="142.16052"
 
       id="text59"
 
       transform="matrix(0.18520833,0,0,0.18520833,30.33272,1.7625738)"><tspan
 
         x="556.1756"
 
         y="142.16052"
 
         id="tspan49">← patch
 
</tspan><tspan
 
         x="556.1756"
 
         y="163.25472"
 
         id="tspan50">(1st few patches contain the whole graph)
 
</tspan><tspan
 
         x="556.1756"
 
         y="183.25472"
 
         id="tspan55">
 
</tspan><tspan
 
         x="556.1756"
 
         y="203.25472"
 
         id="tspan60">→ patch
 
</tspan><tspan
 
         x="556.1756"
 
         y="224.34891"
 
         id="tspan61">
 
</tspan><tspan
 
         x="556.1756"
 
         y="244.34891"
 
         id="tspan62">Upon conflict, server disconnects
 
</tspan></text>
 
    <rect
 
       style="color:#000000;overflow:visible;opacity:0.52671;fill:none;stroke:#ad9a36;stroke-width:0.264583;stroke-miterlimit:10;stroke-opacity:1;-inkscape-stroke:none"
 
       id="rect63"
 
       width="74.620178"
 
       height="35.178116"
 
       x="120.24753"
 
       y="15.387728" />
 
    <text
 
       xml:space="preserve"
 
       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16px;line-height:125%;font-family:'Ubuntu Condensed';-inkscape-font-specification:'Ubuntu Condensed, Normal';font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:pre;shape-padding:0;shape-margin:0;inline-size:323.339;display:inline;opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.42857px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
 
       x="526.0542"
 
       y="267.52496"
 
       id="text64"
 
       transform="matrix(0.18520833,0,0,0.18520833,30.885799,17.658265)"><tspan
 
         x="526.0542"
 
         y="267.52496"
 
         id="tspan63">Not implemented
 
</tspan><tspan
 
         x="526.0542"
 
         y="287.52498"
 
         id="tspan66">
 
</tspan><tspan
 
         x="526.0542"
 
         y="307.52498"
 
         id="tspan76">clients sub and unsub from stmt patterns; </tspan><tspan
 
         x="526.0542"
 
         y="327.52498"
 
         id="tspan78">server sends sub events</tspan></text>
 
    <text
 
       xml:space="preserve"
 
       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16px;line-height:125%;font-family:'Ubuntu Condensed';-inkscape-font-specification:'Ubuntu Condensed, Normal';font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.999999px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
 
       x="543.12921"
 
       y="37.295277"
 
       id="text65"
 
       transform="scale(0.26458333)"><tspan
 
         sodipodi:role="line"
 
         id="tspan65"></tspan></text>
 
    <rect
 
       style="color:#000000;overflow:visible;opacity:0.52671;fill:none;stroke:#ad9a36;stroke-width:0.264583;stroke-miterlimit:10;stroke-opacity:1;-inkscape-stroke:none"
 
       id="rect75"
 
       width="74.88475"
 
       height="28.988623"
 
       x="120.11523"
 
       y="55.879093" />
 
    <rect
 
       style="color:#000000;overflow:visible;opacity:0.52671;fill:none;stroke:#ad9a36;stroke-width:0.264583;stroke-miterlimit:10;stroke-opacity:1;-inkscape-stroke:none"
 
       id="rect76"
 
       width="75"
 
       height="70"
 
       x="120.48729"
 
       y="90.605721" />
 
    <rect
 
       style="color:#000000;font-variation-settings:normal;overflow:visible;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#69dd65;stroke-width:0.264583;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
 
       id="rect77"
 
       width="96.6446"
 
       height="18.619644"
 
       x="13.72029"
 
       y="144.53619" />
 
    <text
 
       xml:space="preserve"
 
       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16px;line-height:125%;font-family:'Ubuntu Condensed';-inkscape-font-specification:'Ubuntu Condensed, Normal';font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:pre;shape-padding:0;shape-margin:0;inline-size:296.357;display:inline;opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.999999px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
 
       x="100.49341"
 
       y="581.46527"
 
       id="text77"
 
       transform="scale(0.26458333)"><tspan
 
         x="100.49341"
 
         y="581.46527"
 
         id="tspan79">other &lt;graph&gt; elements share the </tspan><tspan
 
         x="100.49341"
 
         y="601.46529"
 
         id="tspan83">same state</tspan></text>
 
    <path
 
       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
 
       d="m 49.999995,183.36613 219.999995,-0.0266"
 
       id="path77" />
 
    <text
 
       xml:space="preserve"
 
       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16px;line-height:125%;font-family:'Ubuntu Condensed';-inkscape-font-specification:'Ubuntu Condensed, Normal';font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.42857px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
 
       x="188.9763"
 
       y="697.41687"
 
       id="text80"
 
       transform="matrix(0.18520833,0,0,0.18520833,33.359434,43.722709)"><tspan
 
         sodipodi:role="line"
 
         id="tspan80"
 
         x="188.9763"
 
         y="697.41687"
 
         style="stroke-width:1.42857px">edit(from=v1,-stmt1,+stmt2, to=proposedVx)</tspan></text>
 
    <text
 
       xml:space="preserve"
 
       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16px;line-height:125%;font-family:'Ubuntu Condensed';-inkscape-font-specification:'Ubuntu Condensed, Normal';font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.42857px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
 
       x="188.9763"
 
       y="697.41687"
 
       id="text81"
 
       transform="matrix(0.18520833,0,0,0.18520833,50.76848,47.590482)"><tspan
 
         sodipodi:role="line"
 
         id="tspan81"
 
         x="188.9763"
 
         y="697.41687"
 
         style="stroke-width:1.42857px">edit(from=v1,-stmt1,+stmt3)</tspan></text>
 
    <text
 
       xml:space="preserve"
 
       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16px;line-height:125%;font-family:'Ubuntu Condensed';-inkscape-font-specification:'Ubuntu Condensed, Normal';font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.42857px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
 
       x="185.27213"
 
       y="755.90552"
 
       id="text82"
 
       transform="matrix(0.18520833,0,0,0.18520833,8.365853,51.284924)"><tspan
 
         sodipodi:role="line"
 
         id="tspan82"
 
         x="185.27213"
 
         y="755.90552"
 
         style="stroke-width:1.42857px">graphVersion</tspan></text>
 
    <g
 
       id="g93"
 
       transform="translate(0,-11.641668)">
 
      <path
 
         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.264584px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
 
         d="m 52.127485,195.13229 v 1.8072"
 
         id="path82" />
 
      <text
 
         xml:space="preserve"
 
         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16px;line-height:125%;font-family:'Ubuntu Condensed';-inkscape-font-specification:'Ubuntu Condensed, Normal';font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.42857px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
 
         x="185.27213"
 
         y="755.90552"
 
         id="text87"
 
         transform="matrix(0.18520833,0,0,0.18520833,16.303357,60.08585)"><tspan
 
           sodipodi:role="line"
 
           id="tspan87"
 
           x="185.27213"
 
           y="755.90552"
 
           style="stroke-width:1.42857px">v1</tspan></text>
 
    </g>
 
    <g
 
       id="g94"
 
       transform="translate(0,-11.641668)">
 
      <path
 
         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.264584px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
 
         d="m 69.095613,195.13229 v 1.8072"
 
         id="path83" />
 
      <text
 
         xml:space="preserve"
 
         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16px;line-height:125%;font-family:'Ubuntu Condensed';-inkscape-font-specification:'Ubuntu Condensed, Normal';font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.42857px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
 
         x="185.27213"
 
         y="755.90552"
 
         id="text88"
 
         transform="matrix(0.18520833,0,0,0.18520833,33.236701,60.08585)"><tspan
 
           sodipodi:role="line"
 
           id="tspan88"
 
           x="185.27213"
 
           y="755.90552"
 
           style="stroke-width:1.42857px">v2</tspan></text>
 
    </g>
 
    <g
 
       id="g95"
 
       transform="translate(158.23061,-11.641668)">
 
      <path
 
         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.264584px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
 
         d="m 86.063741,195.13229 v 1.8072"
 
         id="path84" />
 
      <text
 
         xml:space="preserve"
 
         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16px;line-height:125%;font-family:'Ubuntu Condensed';-inkscape-font-specification:'Ubuntu Condensed, Normal';font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.42857px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
 
         x="185.27213"
 
         y="755.90552"
 
         id="text89"
 
         transform="matrix(0.18520833,0,0,0.18520833,49.640878,60.08585)"><tspan
 
           sodipodi:role="line"
 
           id="tspan89"
 
           x="185.27213"
 
           y="755.90552"
 
           style="stroke-width:1.42857px">v3</tspan></text>
 
    </g>
 
    <g
 
       id="g96"
 
       transform="translate(158.23061,-11.641668)">
 
      <path
 
         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.264584px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
 
         d="m 103.03187,195.13229 v 1.8072"
 
         id="path85" />
 
      <text
 
         xml:space="preserve"
 
         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16px;line-height:125%;font-family:'Ubuntu Condensed';-inkscape-font-specification:'Ubuntu Condensed, Normal';font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.42857px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
 
         x="185.27213"
 
         y="755.90552"
 
         id="text90"
 
         transform="matrix(0.18520833,0,0,0.18520833,66.574222,60.08585)"><tspan
 
           sodipodi:role="line"
 
           id="tspan90"
 
           x="185.27213"
 
           y="755.90552"
 
           style="stroke-width:1.42857px">v4</tspan></text>
 
    </g>
 
    <text
 
       xml:space="preserve"
 
       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16px;line-height:125%;font-family:'Ubuntu Condensed';-inkscape-font-specification:'Ubuntu Condensed, Normal';font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.42857px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
 
       x="185.27213"
 
       y="755.90552"
 
       id="text91"
 
       transform="matrix(0.18520833,0,0,0.18520833,7.7394858,32.965966)"><tspan
 
         sodipodi:role="line"
 
         id="tspan91"
 
         x="185.27213"
 
         y="755.90552"
 
         style="stroke-width:1.42857px">clientC1</tspan></text>
 
    <text
 
       xml:space="preserve"
 
       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16px;line-height:125%;font-family:'Ubuntu Condensed';-inkscape-font-specification:'Ubuntu Condensed, Normal';font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.42857px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
 
       x="185.27213"
 
       y="755.90552"
 
       id="text92"
 
       transform="matrix(0.18520833,0,0,0.18520833,7.7394858,36.140968)"><tspan
 
         sodipodi:role="line"
 
         id="tspan92"
 
         x="185.27213"
 
         y="755.90552"
 
         style="stroke-width:1.42857px">clientC2</tspan></text>
 
    <text
 
       xml:space="preserve"
 
       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;line-height:125%;font-family:'Ubuntu Condensed';-inkscape-font-specification:'Ubuntu Condensed, Normal';font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:pre;shape-padding:0;shape-margin:0;inline-size:129.92;opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.999999px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
 
       x="324.78027"
 
       y="748.12115"
 
       id="text96"
 
       transform="matrix(0.26458333,0,0,0.26458333,1.5197378,-5.0294909)"><tspan
 
         x="324.78027"
 
         y="748.12115"
 
         id="tspan84">err, C2 needs to be </tspan><tspan
 
         x="324.78027"
 
         y="761.45451"
 
         id="tspan85">brought up to date with </tspan><tspan
 
         x="324.78027"
 
         y="774.78789"
 
         id="tspan86">v2 then it can retry. C2 </tspan><tspan
 
         x="324.78027"
 
         y="788.12126"
 
         id="tspan93">keeps its local patch for </tspan><tspan
 
         x="324.78027"
 
         y="801.45463"
 
         id="tspan94">now</tspan></text>
 
    <text
 
       xml:space="preserve"
 
       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:pre;shape-padding:0;shape-margin:0;inline-size:269.044;opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.999999px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
 
       x="487.1438"
 
       y="713.83099"
 
       id="text100"
 
       transform="matrix(0.26458333,0,0,0.26458333,-8.7679639,-7.4319712)"><tspan
 
         x="487.1438"
 
         y="713.83099"
 
         id="tspan95">changed(..., from=v1, to=v2, aka 'proposedVx')</tspan></text>
 
    <text
 
       xml:space="preserve"
 
       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;line-height:125%;font-family:'Ubuntu Condensed';-inkscape-font-specification:'Ubuntu Condensed, Normal';font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:pre;shape-padding:0;shape-margin:0;inline-size:62.2728;opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.999999px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
 
       x="255.30951"
 
       y="773.11206"
 
       id="text101"
 
       transform="matrix(0.26458333,0,0,0.26458333,0,-11.641668)"><tspan
 
         x="255.30951"
 
         y="773.11206"
 
         id="tspan96">ok</tspan></text>
 
    <text
 
       xml:space="preserve"
 
       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16px;line-height:125%;font-family:'Ubuntu Condensed';-inkscape-font-specification:'Ubuntu Condensed, Normal';font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.42857px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
 
       x="185.27213"
 
       y="755.90552"
 
       id="text102"
 
       transform="matrix(0.18520833,0,0,0.18520833,7.7394858,39.31597)"><tspan
 
         sodipodi:role="line"
 
         id="tspan102"
 
         x="185.27213"
 
         y="755.90552"
 
         style="stroke-width:1.42857px">rdfdb</tspan></text>
 
    <text
 
       xml:space="preserve"
 
       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.175px;line-height:125%;font-family:'Ubuntu Condensed';-inkscape-font-specification:'Ubuntu Condensed, Normal';font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:pre;shape-padding:0;shape-margin:0;inline-size:74.9301;opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
 
       x="122.73514"
 
       y="193.17496"
 
       id="text103"><tspan
 
         x="122.73514"
 
         y="193.17496"
 
         id="tspan97">C1 learns that proposedVx is now v2
 
</tspan><tspan
 
         x="122.73514"
 
         y="197.14371"
 
         id="tspan98">C2 forgot what v1 has, and keeps its local patch.
 
</tspan><tspan
 
         x="122.73514"
 
         y="201.11246"
 
         id="tspan99">Neither C1 (knew v2) nor C2 (forgot v1) cares </tspan><tspan
 
         x="122.73514"
 
         y="205.08121"
 
         id="tspan100">about the contents of this patch! C2 would have, if </tspan><tspan
 
         x="122.73514"
 
         y="209.04996"
 
         id="tspan101">it remembered v1.</tspan></text>
 
    <text
 
       xml:space="preserve"
 
       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:'Ubuntu Condensed';-inkscape-font-specification:'Ubuntu Condensed, Normal';font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.999999px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
 
       x="570.06024"
 
       y="659.49335"
 
       id="text105"
 
       transform="matrix(0.26458333,0,0,0.26458333,47.06786,2.1166667)"><tspan
 
         sodipodi:role="line"
 
         id="tspan105"
 
         x="570.06024"
 
         y="659.49335">sendMe(v0 to v2)</tspan></text>
 
    <text
 
       xml:space="preserve"
 
       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:'Ubuntu Condensed';-inkscape-font-specification:'Ubuntu Condensed, Normal';font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.999999px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
 
       x="737.00787"
 
       y="680.315"
 
       id="text106"
 
       transform="matrix(0.26458333,0,0,0.26458333,31.750014,1.5875)"><tspan
 
         sodipodi:role="line"
 
         id="tspan106"
 
         x="737.00787"
 
         y="680.315">edit(from=v0, to=v2)</tspan></text>
 
    <text
 
       xml:space="preserve"
 
       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.175px;line-height:125%;font-family:'Ubuntu Condensed';-inkscape-font-specification:'Ubuntu Condensed, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;fill:#000000;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
 
       x="230.25616"
 
       y="193.17496"
 
       id="text107"><tspan
 
         sodipodi:role="line"
 
         id="tspan107"
 
         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.175px;font-family:'Ubuntu Condensed';-inkscape-font-specification:'Ubuntu Condensed, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke:none;stroke-width:0.264583px"
 
         x="230.25616"
 
         y="193.17496">this goes to C2 only</tspan></text>
 
  </g>
 
</svg>
0 comments (0 inline, 0 general)