diff options
| -rw-r--r-- | ydb/docs/ru/core/contributor/_assets/major_release_branches.svg | 4 | ||||
| -rw-r--r-- | ydb/docs/ru/core/contributor/manage-releases.md | 76 | ||||
| -rw-r--r-- | ydb/docs/ru/core/devops/manual/upgrade.md | 23 |
3 files changed, 72 insertions, 31 deletions
diff --git a/ydb/docs/ru/core/contributor/_assets/major_release_branches.svg b/ydb/docs/ru/core/contributor/_assets/major_release_branches.svg new file mode 100644 index 00000000000..62d861bfa09 --- /dev/null +++ b/ydb/docs/ru/core/contributor/_assets/major_release_branches.svg @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Do not edit this file with editors other than draw.io --> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1252px" height="450px" viewBox="-0.5 -0.5 1252 450" content="<mxfile host="drawio.yandex-team.ru" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 YaBrowser/24.12.0.0 Safari/537.36" scale="1" border="0" version="24.7.8"> <diagram id="2TM7s7aMvkKlChOhwVnj" name="Page-2"> <mxGraphModel dx="1434" dy="981" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="150" pageHeight="150" background="none" math="0" shadow="0"> <root> <mxCell id="0" /> <mxCell id="1" parent="0" /> <mxCell id="BKlyohRb7cvqR44dBRqB-1" value="" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" edge="1" target="BKlyohRb7cvqR44dBRqB-2"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="130" y="-51" as="sourcePoint" /> <mxPoint x="800" y="-50" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="BKlyohRb7cvqR44dBRqB-2" value="&lt;b&gt;main&amp;nbsp;&lt;/b&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1"> <mxGeometry x="1250" y="-66" width="60" height="30" as="geometry" /> </mxCell> <mxCell id="BKlyohRb7cvqR44dBRqB-3" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="160" y="-10" as="sourcePoint" /> <mxPoint x="160" y="-51" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="BKlyohRb7cvqR44dBRqB-4" value="" style="endArrow=classic;html=1;rounded=0;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="160" y="-10" as="sourcePoint" /> <mxPoint x="700" y="-10" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="BKlyohRb7cvqR44dBRqB-8" value="&lt;b&gt;stable-25-1-1&lt;/b&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1"> <mxGeometry x="466" y="63" width="100" height="30" as="geometry" /> </mxCell> <mxCell id="BKlyohRb7cvqR44dBRqB-54" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="184.02" as="sourcePoint" /> <mxPoint x="184.02" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="BKlyohRb7cvqR44dBRqB-55" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="184.02" as="sourcePoint" /> <mxPoint x="184.02" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="BKlyohRb7cvqR44dBRqB-74" value="" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.basic.x;fillColor=#f8cecc;strokeColor=#b85450;" parent="1" vertex="1"> <mxGeometry x="62" y="194" width="20" height="20" as="geometry" /> </mxCell> <mxCell id="BKlyohRb7cvqR44dBRqB-75" value="branch end of life&amp;nbsp;" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1"> <mxGeometry x="92" y="189" width="150" height="30" as="geometry" /> </mxCell> <mxCell id="BKlyohRb7cvqR44dBRqB-76" value="" style="rhombus;whiteSpace=wrap;html=1;fillColor=#b1ddf0;strokeColor=#10739e;" parent="1" vertex="1"> <mxGeometry x="62" y="224" width="20" height="20" as="geometry" /> </mxCell> <mxCell id="BKlyohRb7cvqR44dBRqB-78" value="&lt;span style=&quot;text-align: center;&quot;&gt;major release acceptance (nemesis, compatibility)&lt;/span&gt;" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1"> <mxGeometry x="92" y="219" width="270" height="30" as="geometry" /> </mxCell> <mxCell id="BKlyohRb7cvqR44dBRqB-80" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;endWidth=4.666666666666667;endSize=2.3233333333333333;width=2;fillColor=#e3c800;strokeColor=#B09500;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="66.70999999999998" y="304" as="sourcePoint" /> <mxPoint x="66.70999999999998" y="284" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="BKlyohRb7cvqR44dBRqB-82" value="&lt;span style=&quot;text-align: center;&quot;&gt;bug fix&lt;/span&gt;" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1"> <mxGeometry x="87" y="279" width="270" height="30" as="geometry" /> </mxCell> <mxCell id="BKlyohRb7cvqR44dBRqB-83" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;endWidth=4.666666666666667;endSize=2.3233333333333333;width=2;fillColor=#e51400;strokeColor=#B20000;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="66.70999999999998" y="329" as="sourcePoint" /> <mxPoint x="66.70999999999998" y="309" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="BKlyohRb7cvqR44dBRqB-84" value="&lt;span style=&quot;text-align: center;&quot;&gt;feature&lt;/span&gt;" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1"> <mxGeometry x="87" y="304" width="270" height="30" as="geometry" /> </mxCell> <mxCell id="D4-yEOCwhY7TvUdENpiH-1" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#fad9d5;strokeColor=#ae4132;" parent="1" vertex="1"> <mxGeometry x="62" y="344" width="10" height="10" as="geometry" /> </mxCell> <mxCell id="D4-yEOCwhY7TvUdENpiH-2" value="&lt;div style=&quot;text-align: center;&quot;&gt;unsuccessful tag&lt;/div&gt;" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1"> <mxGeometry x="87" y="334" width="270" height="30" as="geometry" /> </mxCell> <mxCell id="D4-yEOCwhY7TvUdENpiH-4" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1"> <mxGeometry x="62" y="364" width="10" height="10" as="geometry" /> </mxCell> <mxCell id="D4-yEOCwhY7TvUdENpiH-5" value="&lt;div style=&quot;text-align: center;&quot;&gt;successful tag&lt;/div&gt;" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1"> <mxGeometry x="87" y="354" width="270" height="30" as="geometry" /> </mxCell> <mxCell id="JmJE46NEGLy7hlqQf7Fy-2" value="" style="endArrow=none;html=1;rounded=0;curved=0;startFill=0;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="224" y="-10" as="sourcePoint" /> <mxPoint x="224" y="80" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="JmJE46NEGLy7hlqQf7Fy-8" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;endWidth=4.666666666666667;endSize=2.3233333333333333;width=2;fillColor=#1ba1e2;strokeColor=#006EAF;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="66.70999999999998" y="274" as="sourcePoint" /> <mxPoint x="66.70999999999998" y="254" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="JmJE46NEGLy7hlqQf7Fy-9" value="&lt;span style=&quot;text-align: center;&quot;&gt;bug fix needed ASAP in production (hotfix)&lt;/span&gt;" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1"> <mxGeometry x="87" y="249" width="270" height="30" as="geometry" /> </mxCell> <mxCell id="JmJE46NEGLy7hlqQf7Fy-12" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;endWidth=4.666666666666667;endSize=2.3233333333333333;width=2;fillColor=#1ba1e2;strokeColor=#006EAF;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="186.01999999999998" y="10" as="sourcePoint" /> <mxPoint x="186.01999999999998" y="-10" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="JmJE46NEGLy7hlqQf7Fy-14" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;endWidth=4.666666666666667;endSize=2.3233333333333333;width=2;fillColor=#e3c800;strokeColor=#B09500;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="196.01999999999998" y="10" as="sourcePoint" /> <mxPoint x="196.01999999999998" y="-10" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="JmJE46NEGLy7hlqQf7Fy-15" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;endWidth=4.666666666666667;endSize=2.3233333333333333;width=2;fillColor=#e51400;strokeColor=#B20000;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="205.66" y="10" as="sourcePoint" /> <mxPoint x="205.66" y="-10" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="JmJE46NEGLy7hlqQf7Fy-20" value="&lt;b&gt;stable-25-1&lt;/b&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1"> <mxGeometry x="718" y="-26" width="73" height="30" as="geometry" /> </mxCell> <mxCell id="JmJE46NEGLy7hlqQf7Fy-28" value="" style="rhombus;whiteSpace=wrap;html=1;fillColor=#b1ddf0;strokeColor=#10739e;" parent="1" vertex="1"> <mxGeometry x="240" y="69.25" width="20" height="20" as="geometry" /> </mxCell> <mxCell id="JmJE46NEGLy7hlqQf7Fy-31" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;endWidth=4.666666666666667;endSize=2.3233333333333333;width=2;fillColor=#e3c800;strokeColor=#B09500;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="339" y="100" as="sourcePoint" /> <mxPoint x="339" y="80" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="JmJE46NEGLy7hlqQf7Fy-36" value="" style="endArrow=none;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="JmJE46NEGLy7hlqQf7Fy-39" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="313" y="90" as="sourcePoint" /> <mxPoint x="313.00000000002206" y="80" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="JmJE46NEGLy7hlqQf7Fy-37" value="" style="endArrow=none;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="JmJE46NEGLy7hlqQf7Fy-53" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="313.00000000002206" y="80" as="sourcePoint" /> <mxPoint x="383" y="80" as="targetPoint" /> <Array as="points"> <mxPoint x="343" y="80" /> </Array> </mxGeometry> </mxCell> <mxCell id="JmJE46NEGLy7hlqQf7Fy-40" value="" style="endArrow=none;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="JmJE46NEGLy7hlqQf7Fy-28" target="JmJE46NEGLy7hlqQf7Fy-39" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="293" y="80" as="sourcePoint" /> <mxPoint x="313.00000000002206" y="80" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="JmJE46NEGLy7hlqQf7Fy-39" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#f8cecc;strokeColor=#b85450;" parent="1" vertex="1"> <mxGeometry x="303" y="75" width="10" height="10" as="geometry" /> </mxCell> <mxCell id="JmJE46NEGLy7hlqQf7Fy-46" value="" style="endArrow=none;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" target="JmJE46NEGLy7hlqQf7Fy-45" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="313.00000000002206" y="80" as="sourcePoint" /> <mxPoint x="493.45454545454544" y="80" as="targetPoint" /> <Array as="points" /> </mxGeometry> </mxCell> <mxCell id="JmJE46NEGLy7hlqQf7Fy-45" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1"> <mxGeometry x="355" y="75" width="10" height="10" as="geometry" /> </mxCell> <mxCell id="JmJE46NEGLy7hlqQf7Fy-47" value="" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.basic.x;fillColor=#f8cecc;strokeColor=#b85450;" parent="1" vertex="1"> <mxGeometry x="453" y="68" width="20" height="20" as="geometry" /> </mxCell> <mxCell id="JmJE46NEGLy7hlqQf7Fy-50" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;endWidth=4.666666666666667;endSize=2.3233333333333333;width=2;fillColor=#1ba1e2;strokeColor=#006EAF;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="326" y="100" as="sourcePoint" /> <mxPoint x="326" y="80" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="JmJE46NEGLy7hlqQf7Fy-51" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;endWidth=4.666666666666667;endSize=2.3233333333333333;width=2;fillColor=#1ba1e2;strokeColor=#006EAF;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="374" y="100" as="sourcePoint" /> <mxPoint x="374" y="80" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="JmJE46NEGLy7hlqQf7Fy-53" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1"> <mxGeometry x="414" y="74.25" width="10" height="10" as="geometry" /> </mxCell> <mxCell id="JmJE46NEGLy7hlqQf7Fy-55" value="" style="endArrow=none;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="424" y="79.06" as="sourcePoint" /> <mxPoint x="450" y="79" as="targetPoint" /> <Array as="points" /> </mxGeometry> </mxCell> <mxCell id="JmJE46NEGLy7hlqQf7Fy-61" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="240" as="sourcePoint" /> <mxPoint x="240" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="JmJE46NEGLy7hlqQf7Fy-62" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="240" as="sourcePoint" /> <mxPoint x="240" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="JmJE46NEGLy7hlqQf7Fy-66" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="194.02" y="10" as="sourcePoint" /> <mxPoint x="194.02" y="10" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="JmJE46NEGLy7hlqQf7Fy-67" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="194.02" y="10" as="sourcePoint" /> <mxPoint x="194.02" y="10" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="JmJE46NEGLy7hlqQf7Fy-80" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="184.04000000000002" y="-40.27" as="sourcePoint" /> <mxPoint x="184.04000000000002" y="-40.27" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="JmJE46NEGLy7hlqQf7Fy-81" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="184.04000000000002" y="-40.27" as="sourcePoint" /> <mxPoint x="184.04000000000002" y="-40.27" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="JmJE46NEGLy7hlqQf7Fy-85" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="194.04000000000002" y="-30.270000000000003" as="sourcePoint" /> <mxPoint x="194.04000000000002" y="-30.270000000000003" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="JmJE46NEGLy7hlqQf7Fy-86" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="194.04000000000002" y="-30.270000000000003" as="sourcePoint" /> <mxPoint x="194.04000000000002" y="-30.270000000000003" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="JmJE46NEGLy7hlqQf7Fy-87" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="240" y="-40.27" as="sourcePoint" /> <mxPoint x="240" y="-40.27" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="JmJE46NEGLy7hlqQf7Fy-88" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="240" y="-40.27" as="sourcePoint" /> <mxPoint x="240" y="-40.27" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="JmJE46NEGLy7hlqQf7Fy-92" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="250" y="-30.270000000000003" as="sourcePoint" /> <mxPoint x="250" y="-30.270000000000003" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="JmJE46NEGLy7hlqQf7Fy-93" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="250" y="-30.270000000000003" as="sourcePoint" /> <mxPoint x="250" y="-30.270000000000003" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="JmJE46NEGLy7hlqQf7Fy-94" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="288.09000000000003" y="-40.269999999999996" as="sourcePoint" /> <mxPoint x="288.09000000000003" y="-40.269999999999996" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="JmJE46NEGLy7hlqQf7Fy-95" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="288.09000000000003" y="-40.269999999999996" as="sourcePoint" /> <mxPoint x="288.09000000000003" y="-40.269999999999996" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="JmJE46NEGLy7hlqQf7Fy-99" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="298.09000000000003" y="-30.269999999999996" as="sourcePoint" /> <mxPoint x="298.09000000000003" y="-30.269999999999996" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="JmJE46NEGLy7hlqQf7Fy-100" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="298.09000000000003" y="-30.269999999999996" as="sourcePoint" /> <mxPoint x="298.09000000000003" y="-30.269999999999996" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="JmJE46NEGLy7hlqQf7Fy-101" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="268.13" y="-0.23000000000000043" as="sourcePoint" /> <mxPoint x="268.13" y="-0.23000000000000043" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="JmJE46NEGLy7hlqQf7Fy-102" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="268.13" y="-0.23000000000000043" as="sourcePoint" /> <mxPoint x="268.13" y="-0.23000000000000043" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="JmJE46NEGLy7hlqQf7Fy-103" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;endWidth=4.666666666666667;endSize=2.3233333333333333;width=2;fillColor=#1ba1e2;strokeColor=#006EAF;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="270" y="10" as="sourcePoint" /> <mxPoint x="270.13" y="-10.23" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="JmJE46NEGLy7hlqQf7Fy-104" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;endWidth=4.666666666666667;endSize=2.3233333333333333;width=2;fillColor=#e3c800;strokeColor=#B09500;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="280.13" y="9.77" as="sourcePoint" /> <mxPoint x="280.13" y="-10.23" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="JmJE46NEGLy7hlqQf7Fy-105" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;endWidth=4.666666666666667;endSize=2.3233333333333333;width=2;fillColor=#e51400;strokeColor=#B20000;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="289.77" y="9.77" as="sourcePoint" /> <mxPoint x="289.77" y="-10.23" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="JmJE46NEGLy7hlqQf7Fy-106" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="278.13" y="9.77" as="sourcePoint" /> <mxPoint x="278.13" y="9.77" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="JmJE46NEGLy7hlqQf7Fy-107" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="278.13" y="9.77" as="sourcePoint" /> <mxPoint x="278.13" y="9.77" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="JmJE46NEGLy7hlqQf7Fy-108" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="320.02000000000004" y="-30.000000000000004" as="sourcePoint" /> <mxPoint x="320.02000000000004" y="-30.000000000000004" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="JmJE46NEGLy7hlqQf7Fy-109" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="320.02000000000004" y="-30.000000000000004" as="sourcePoint" /> <mxPoint x="320.02000000000004" y="-30.000000000000004" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="JmJE46NEGLy7hlqQf7Fy-140" value="" style="rhombus;whiteSpace=wrap;html=1;fillColor=#b1ddf0;strokeColor=#10739e;" parent="1" vertex="1"> <mxGeometry x="330" y="30" width="20" height="20" as="geometry" /> </mxCell> <mxCell id="JmJE46NEGLy7hlqQf7Fy-141" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;endWidth=4.666666666666667;endSize=2.3233333333333333;width=2;fillColor=#e3c800;strokeColor=#B09500;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="403" y="60" as="sourcePoint" /> <mxPoint x="403" y="40" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="JmJE46NEGLy7hlqQf7Fy-142" value="" style="endArrow=none;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" target="JmJE46NEGLy7hlqQf7Fy-140" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="313" y="40" as="sourcePoint" /> <mxPoint x="428" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="JmJE46NEGLy7hlqQf7Fy-143" value="" style="endArrow=none;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="JmJE46NEGLy7hlqQf7Fy-146" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="388" y="50" as="sourcePoint" /> <mxPoint x="388.00000000002206" y="40" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="JmJE46NEGLy7hlqQf7Fy-144" value="" style="endArrow=none;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="JmJE46NEGLy7hlqQf7Fy-153" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="388.00000000002206" y="40" as="sourcePoint" /> <mxPoint x="458" y="40" as="targetPoint" /> <Array as="points"> <mxPoint x="418" y="40" /> </Array> </mxGeometry> </mxCell> <mxCell id="JmJE46NEGLy7hlqQf7Fy-145" value="" style="endArrow=none;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="JmJE46NEGLy7hlqQf7Fy-140" target="JmJE46NEGLy7hlqQf7Fy-146" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="368" y="40" as="sourcePoint" /> <mxPoint x="388.00000000002206" y="40" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="JmJE46NEGLy7hlqQf7Fy-146" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#f8cecc;strokeColor=#b85450;" parent="1" vertex="1"> <mxGeometry x="378" y="35" width="10" height="10" as="geometry" /> </mxCell> <mxCell id="JmJE46NEGLy7hlqQf7Fy-147" value="" style="endArrow=none;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" target="JmJE46NEGLy7hlqQf7Fy-148" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="388.00000000002206" y="40" as="sourcePoint" /> <mxPoint x="568.4545454545455" y="40" as="targetPoint" /> <Array as="points" /> </mxGeometry> </mxCell> <mxCell id="JmJE46NEGLy7hlqQf7Fy-148" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1"> <mxGeometry x="423" y="35" width="10" height="10" as="geometry" /> </mxCell> <mxCell id="JmJE46NEGLy7hlqQf7Fy-150" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;endWidth=4.666666666666667;endSize=2.3233333333333333;width=2;fillColor=#1ba1e2;strokeColor=#006EAF;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="373" y="61" as="sourcePoint" /> <mxPoint x="373" y="41" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="JmJE46NEGLy7hlqQf7Fy-152" value="" style="endArrow=none;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="JmJE46NEGLy7hlqQf7Fy-148" target="JmJE46NEGLy7hlqQf7Fy-153" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="433" y="40" as="sourcePoint" /> <mxPoint x="458" y="40" as="targetPoint" /> <Array as="points" /> </mxGeometry> </mxCell> <mxCell id="JmJE46NEGLy7hlqQf7Fy-153" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1"> <mxGeometry x="458" y="35" width="10" height="10" as="geometry" /> </mxCell> <mxCell id="JmJE46NEGLy7hlqQf7Fy-154" value="" style="endArrow=none;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="468" y="39.81" as="sourcePoint" /> <mxPoint x="493" y="40" as="targetPoint" /> <Array as="points" /> </mxGeometry> </mxCell> <mxCell id="JmJE46NEGLy7hlqQf7Fy-155" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="313" y="-10" as="sourcePoint" /> <mxPoint x="313" y="40" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="QXBmiwWFVblay1ct6sO7-2" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;endWidth=4.666666666666667;endSize=2.3233333333333333;width=2;fillColor=#1ba1e2;strokeColor=#006EAF;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="270" y="100" as="sourcePoint" /> <mxPoint x="270" y="80" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="QXBmiwWFVblay1ct6sO7-3" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;endWidth=4.666666666666667;endSize=2.3233333333333333;width=2;fillColor=#e3c800;strokeColor=#B09500;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="284" y="100" as="sourcePoint" /> <mxPoint x="284" y="80" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="QXBmiwWFVblay1ct6sO7-4" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="388" y="-0.2599999999999998" as="sourcePoint" /> <mxPoint x="388" y="-0.2599999999999998" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="QXBmiwWFVblay1ct6sO7-5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="388" y="-0.2599999999999998" as="sourcePoint" /> <mxPoint x="388" y="-0.2599999999999998" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="QXBmiwWFVblay1ct6sO7-6" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;endWidth=4.666666666666667;endSize=2.3233333333333333;width=2;fillColor=#1ba1e2;strokeColor=#006EAF;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="372" y="9.74" as="sourcePoint" /> <mxPoint x="372" y="-10.26" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="QXBmiwWFVblay1ct6sO7-7" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;endWidth=4.666666666666667;endSize=2.3233333333333333;width=2;fillColor=#e3c800;strokeColor=#B09500;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="400" y="9.74" as="sourcePoint" /> <mxPoint x="400" y="-10.26" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="QXBmiwWFVblay1ct6sO7-8" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;endWidth=4.666666666666667;endSize=2.3233333333333333;width=2;fillColor=#e51400;strokeColor=#B20000;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="429.68" y="10" as="sourcePoint" /> <mxPoint x="429.68" y="-10" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="QXBmiwWFVblay1ct6sO7-9" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="398" y="9.74" as="sourcePoint" /> <mxPoint x="398" y="9.74" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="QXBmiwWFVblay1ct6sO7-10" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="398" y="9.74" as="sourcePoint" /> <mxPoint x="398" y="9.74" as="targetPoint" /> </mxGeometry> </mxCell> <UserObject label="&lt;div&gt;&lt;span style=&quot;background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));&quot;&gt;25-1-1-1&lt;/span&gt;&lt;br&gt;&lt;/div&gt;" placeholders="1" name="Variable" id="QXBmiwWFVblay1ct6sO7-34"> <mxCell style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;overflow=hidden;rotation=90;" parent="1" vertex="1"> <mxGeometry x="271" y="106" width="66" height="20" as="geometry" /> </mxCell> </UserObject> <mxCell id="QXBmiwWFVblay1ct6sO7-36" value="&lt;b&gt;stable-25-1-2&lt;/b&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1"> <mxGeometry x="501" y="24" width="100" height="30" as="geometry" /> </mxCell> <mxCell id="QXBmiwWFVblay1ct6sO7-51" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="233.11" y="-40.25" as="sourcePoint" /> <mxPoint x="233.11" y="-40.25" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="QXBmiwWFVblay1ct6sO7-52" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="233.11" y="-40.25" as="sourcePoint" /> <mxPoint x="233.11" y="-40.25" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="QXBmiwWFVblay1ct6sO7-56" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="243.11" y="-30.25" as="sourcePoint" /> <mxPoint x="243.11" y="-30.25" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="QXBmiwWFVblay1ct6sO7-57" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="243.11" y="-30.25" as="sourcePoint" /> <mxPoint x="243.11" y="-30.25" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="QXBmiwWFVblay1ct6sO7-58" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="356.11" y="-40.25" as="sourcePoint" /> <mxPoint x="356.11" y="-40.25" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="QXBmiwWFVblay1ct6sO7-59" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="356.11" y="-40.25" as="sourcePoint" /> <mxPoint x="356.11" y="-40.25" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="QXBmiwWFVblay1ct6sO7-60" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;endWidth=4.666666666666667;endSize=2.3233333333333333;width=2;fillColor=#1ba1e2;strokeColor=#006EAF;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="372" y="-29" as="sourcePoint" /> <mxPoint x="372" y="-49" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="QXBmiwWFVblay1ct6sO7-61" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;endWidth=4.666666666666667;endSize=2.3233333333333333;width=2;fillColor=#e3c800;strokeColor=#B09500;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="400" y="-30.25" as="sourcePoint" /> <mxPoint x="400" y="-50.25" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="QXBmiwWFVblay1ct6sO7-62" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;endWidth=4.666666666666667;endSize=2.3233333333333333;width=2;fillColor=#e51400;strokeColor=#B20000;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="429" y="-30" as="sourcePoint" /> <mxPoint x="429" y="-50" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="QXBmiwWFVblay1ct6sO7-63" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="366.11" y="-30.25" as="sourcePoint" /> <mxPoint x="366.11" y="-30.25" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="QXBmiwWFVblay1ct6sO7-64" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="366.11" y="-30.25" as="sourcePoint" /> <mxPoint x="366.11" y="-30.25" as="targetPoint" /> </mxGeometry> </mxCell> <UserObject label="&lt;div&gt;&lt;span style=&quot;background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));&quot;&gt;25-1-1-2&lt;/span&gt;&lt;/div&gt;" placeholders="1" name="Variable" id="QXBmiwWFVblay1ct6sO7-71"> <mxCell style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;overflow=hidden;rotation=90;" parent="1" vertex="1"> <mxGeometry x="325" y="105.5" width="58" height="20" as="geometry" /> </mxCell> </UserObject> <UserObject label="&lt;div&gt;&lt;span style=&quot;background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));&quot;&gt;25-1-1-3&lt;/span&gt;&lt;/div&gt;" placeholders="1" name="Variable" id="QXBmiwWFVblay1ct6sO7-72"> <mxCell style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;overflow=hidden;rotation=90;" parent="1" vertex="1"> <mxGeometry x="382" y="107.25" width="70" height="20" as="geometry" /> </mxCell> </UserObject> <mxCell id="YbwXu4WiOXPQauN_IFn6-4" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;endWidth=4.666666666666667;endSize=2.3233333333333333;width=2;fillColor=#e3c800;strokeColor=#B09500;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="403" y="100" as="sourcePoint" /> <mxPoint x="403" y="80" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="YbwXu4WiOXPQauN_IFn6-5" value="" style="endArrow=none;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="JmJE46NEGLy7hlqQf7Fy-45" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="353" y="90" as="sourcePoint" /> <mxPoint x="360" y="150" as="targetPoint" /> <Array as="points" /> </mxGeometry> </mxCell> <mxCell id="YbwXu4WiOXPQauN_IFn6-7" value="" style="endArrow=none;html=1;rounded=0;curved=0;strokeColor=default;startFill=0;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="360" y="150" as="sourcePoint" /> <mxPoint x="441" y="149.95" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="YbwXu4WiOXPQauN_IFn6-8" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1"> <mxGeometry x="394" y="146" width="10" height="10" as="geometry" /> </mxCell> <UserObject label="&lt;div&gt;&lt;span style=&quot;background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));&quot;&gt;25-1-1-2-hotfix-1&lt;/span&gt;&lt;/div&gt;" placeholders="1" name="Variable" id="YbwXu4WiOXPQauN_IFn6-9"> <mxCell style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;overflow=hidden;rotation=90;" parent="1" vertex="1"> <mxGeometry x="344" y="197" width="112.5" height="20" as="geometry" /> </mxCell> </UserObject> <mxCell id="YbwXu4WiOXPQauN_IFn6-10" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;endWidth=4.666666666666667;endSize=2.3233333333333333;width=2;fillColor=#1ba1e2;strokeColor=#006EAF;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="374" y="170" as="sourcePoint" /> <mxPoint x="374" y="150" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="YbwXu4WiOXPQauN_IFn6-11" value="&lt;b&gt;stable-25-1-1-2-hotfix&lt;/b&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1"> <mxGeometry x="433.5" y="135" width="141.5" height="30" as="geometry" /> </mxCell> <mxCell id="YbwXu4WiOXPQauN_IFn6-13" value="" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.basic.x;fillColor=#f8cecc;strokeColor=#b85450;" parent="1" vertex="1"> <mxGeometry x="490" y="30" width="20" height="20" as="geometry" /> </mxCell> <mxCell id="ha5FHuvoQI2r-frKpg79-15" value="" style="endArrow=none;html=1;rounded=0;" edge="1" parent="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="640" y="-10" as="sourcePoint" /> <mxPoint x="640" y="80" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="ha5FHuvoQI2r-frKpg79-16" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="640" y="80" as="sourcePoint" /> <mxPoint x="929" y="80" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="ha5FHuvoQI2r-frKpg79-17" value="&lt;b&gt;stable-25-2&lt;/b&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1"> <mxGeometry x="952" y="65" width="73" height="30" as="geometry" /> </mxCell> <mxCell id="ha5FHuvoQI2r-frKpg79-18" value="" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.basic.x;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="1"> <mxGeometry x="700" y="-20" width="20" height="20" as="geometry" /> </mxCell> <mxCell id="ha5FHuvoQI2r-frKpg79-28" value="" style="endArrow=none;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" target="JmJE46NEGLy7hlqQf7Fy-28"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="224" y="80" as="sourcePoint" /> <mxPoint x="234" y="80" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="ha5FHuvoQI2r-frKpg79-46" value="" style="rhombus;whiteSpace=wrap;html=1;fillColor=#b1ddf0;strokeColor=#10739e;" vertex="1" parent="1"> <mxGeometry x="676" y="110" width="20" height="20" as="geometry" /> </mxCell> <mxCell id="ha5FHuvoQI2r-frKpg79-47" value="" style="endArrow=none;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" target="ha5FHuvoQI2r-frKpg79-46"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="659" y="120" as="sourcePoint" /> <mxPoint x="774" y="80" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="ha5FHuvoQI2r-frKpg79-48" value="" style="endArrow=none;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="ha5FHuvoQI2r-frKpg79-51"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="734" y="130" as="sourcePoint" /> <mxPoint x="734.000000000022" y="120" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="ha5FHuvoQI2r-frKpg79-49" value="" style="endArrow=none;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="814" y="120" as="sourcePoint" /> <mxPoint x="804" y="120" as="targetPoint" /> <Array as="points"> <mxPoint x="764" y="120" /> </Array> </mxGeometry> </mxCell> <mxCell id="ha5FHuvoQI2r-frKpg79-50" value="" style="endArrow=none;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="ha5FHuvoQI2r-frKpg79-46" target="ha5FHuvoQI2r-frKpg79-51"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="714" y="120" as="sourcePoint" /> <mxPoint x="734.000000000022" y="120" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="ha5FHuvoQI2r-frKpg79-51" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="1"> <mxGeometry x="724" y="115" width="10" height="10" as="geometry" /> </mxCell> <mxCell id="ha5FHuvoQI2r-frKpg79-52" value="" style="endArrow=none;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" target="ha5FHuvoQI2r-frKpg79-53"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="734.000000000022" y="120" as="sourcePoint" /> <mxPoint x="914.4545454545455" y="120" as="targetPoint" /> <Array as="points" /> </mxGeometry> </mxCell> <mxCell id="ha5FHuvoQI2r-frKpg79-53" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1"> <mxGeometry x="769" y="115" width="10" height="10" as="geometry" /> </mxCell> <mxCell id="ha5FHuvoQI2r-frKpg79-54" value="" style="endArrow=none;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="ha5FHuvoQI2r-frKpg79-53"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="779" y="120" as="sourcePoint" /> <mxPoint x="804" y="120" as="targetPoint" /> <Array as="points" /> </mxGeometry> </mxCell> <mxCell id="ha5FHuvoQI2r-frKpg79-56" value="" style="endArrow=none;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="814" y="119.81" as="sourcePoint" /> <mxPoint x="800" y="120" as="targetPoint" /> <Array as="points" /> </mxGeometry> </mxCell> <mxCell id="ha5FHuvoQI2r-frKpg79-57" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="738" y="106.74000000000001" as="sourcePoint" /> <mxPoint x="738" y="106.74000000000001" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="ha5FHuvoQI2r-frKpg79-58" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="738" y="106.74000000000001" as="sourcePoint" /> <mxPoint x="738" y="106.74000000000001" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="ha5FHuvoQI2r-frKpg79-59" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="748" y="116.74000000000001" as="sourcePoint" /> <mxPoint x="748" y="116.74000000000001" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="ha5FHuvoQI2r-frKpg79-60" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="748" y="116.74000000000001" as="sourcePoint" /> <mxPoint x="748" y="116.74000000000001" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="ha5FHuvoQI2r-frKpg79-61" value="&lt;b&gt;stable-25-2-1&lt;/b&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1"> <mxGeometry x="825" y="104.25" width="100" height="30" as="geometry" /> </mxCell> <mxCell id="ha5FHuvoQI2r-frKpg79-63" value="" style="endArrow=none;html=1;rounded=0;" edge="1" parent="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="659" y="120" as="sourcePoint" /> <mxPoint x="659" y="80" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="ha5FHuvoQI2r-frKpg79-67" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;endWidth=4.666666666666667;endSize=2.3233333333333333;width=2;fillColor=#1ba1e2;strokeColor=#006EAF;" edge="1" parent="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="708" y="100" as="sourcePoint" /> <mxPoint x="708.13" y="79.77" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="ha5FHuvoQI2r-frKpg79-68" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;endWidth=4.666666666666667;endSize=2.3233333333333333;width=2;fillColor=#e3c800;strokeColor=#B09500;" edge="1" parent="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="720.13" y="99.77" as="sourcePoint" /> <mxPoint x="720.13" y="79.77" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="ha5FHuvoQI2r-frKpg79-70" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;endWidth=4.666666666666667;endSize=2.3233333333333333;width=2;fillColor=#1ba1e2;strokeColor=#006EAF;" edge="1" parent="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="701" y="141" as="sourcePoint" /> <mxPoint x="701" y="121" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="ha5FHuvoQI2r-frKpg79-71" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;endWidth=4.666666666666667;endSize=2.3233333333333333;width=2;fillColor=#e3c800;strokeColor=#B09500;" edge="1" parent="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="715" y="141" as="sourcePoint" /> <mxPoint x="715" y="121" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="ha5FHuvoQI2r-frKpg79-73" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;endWidth=4.666666666666667;endSize=2.3233333333333333;width=2;fillColor=#e3c800;strokeColor=#B09500;" edge="1" parent="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="750.13" y="140.76999999999998" as="sourcePoint" /> <mxPoint x="750.13" y="120.77" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="ha5FHuvoQI2r-frKpg79-74" value="" style="endArrow=none;html=1;rounded=0;" edge="1" parent="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="930" y="-10" as="sourcePoint" /> <mxPoint x="930" y="-51" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="ha5FHuvoQI2r-frKpg79-75" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="930" y="-10.24" as="sourcePoint" /> <mxPoint x="1120" y="-10" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="ha5FHuvoQI2r-frKpg79-76" value="" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.basic.x;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="1"> <mxGeometry x="815" y="110" width="20" height="20" as="geometry" /> </mxCell> <mxCell id="ha5FHuvoQI2r-frKpg79-77" value="" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.basic.x;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="1"> <mxGeometry x="932" y="70" width="20" height="20" as="geometry" /> </mxCell> <mxCell id="ha5FHuvoQI2r-frKpg79-78" value="&lt;b&gt;stable-25-3&lt;/b&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1"> <mxGeometry x="1120" y="-25" width="73" height="30" as="geometry" /> </mxCell> <mxCell id="ha5FHuvoQI2r-frKpg79-79" value="" style="endArrow=none;html=1;rounded=0;" edge="1" parent="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="1050" y="30" as="sourcePoint" /> <mxPoint x="1050" y="-11" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="ha5FHuvoQI2r-frKpg79-80" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="1050" y="30.519999999999996" as="sourcePoint" /> <mxPoint x="1240" y="30.759999999999998" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="ha5FHuvoQI2r-frKpg79-81" value="&lt;b&gt;stable-25-4&lt;/b&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1"> <mxGeometry x="1240" y="15" width="73" height="30" as="geometry" /> </mxCell> </root> </mxGraphModel> </diagram> </mxfile> "><defs/><g><g data-cell-id="0"><g data-cell-id="1"><g data-cell-id="BKlyohRb7cvqR44dBRqB-1"><g><path d="M 68 15 L 1181.63 15" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1186.88 15 L 1179.88 18.5 L 1181.63 15 L 1179.88 11.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="BKlyohRb7cvqR44dBRqB-2"><g><rect x="1188" y="0" width="60" height="30" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 15px; margin-left: 1189px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><b>main </b></div></div></div></foreignObject><text x="1218" y="19" fill="rgb(0, 0, 0)" font-family=""Helvetica"" font-size="12px" text-anchor="middle">main </text></switch></g></g></g><g data-cell-id="BKlyohRb7cvqR44dBRqB-3"><g><path d="M 98 56 L 98 15" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/></g></g><g data-cell-id="BKlyohRb7cvqR44dBRqB-4"><g><path d="M 98 56 L 631.63 56" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 636.88 56 L 629.88 59.5 L 631.63 56 L 629.88 52.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="BKlyohRb7cvqR44dBRqB-8"><g><rect x="404" y="129" width="100" height="30" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 144px; margin-left: 405px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><b>stable-25-1-1</b></div></div></div></foreignObject><text x="454" y="148" fill="rgb(0, 0, 0)" font-family=""Helvetica"" font-size="12px" text-anchor="middle">stable-25-1-1</text></switch></g></g></g><g data-cell-id="BKlyohRb7cvqR44dBRqB-54"><g/></g><g data-cell-id="BKlyohRb7cvqR44dBRqB-55"><g/></g><g data-cell-id="BKlyohRb7cvqR44dBRqB-74"><g><path d="M 0 260 L 5.83 260 L 10 265.92 L 14.17 260 L 20 260 L 12.92 270 L 20 280 L 14.17 280 L 10 274.08 L 5.83 280 L 0 280 L 6.67 270 Z" fill="#f8cecc" stroke="#b85450" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="BKlyohRb7cvqR44dBRqB-75"><g><rect x="30" y="255" width="150" height="30" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 148px; height: 1px; padding-top: 270px; margin-left: 32px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">branch end of life </div></div></div></foreignObject><text x="32" y="274" fill="rgb(0, 0, 0)" font-family=""Helvetica"" font-size="12px">branch end of life </text></switch></g></g></g><g data-cell-id="BKlyohRb7cvqR44dBRqB-76"><g><path d="M 10 290 L 20 300 L 10 310 L 0 300 Z" fill="#b1ddf0" stroke="#10739e" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="BKlyohRb7cvqR44dBRqB-78"><g><rect x="30" y="285" width="270" height="30" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 268px; height: 1px; padding-top: 300px; margin-left: 32px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><span style="text-align: center;">major release acceptance (nemesis, compatibility)</span></div></div></div></foreignObject><text x="32" y="304" fill="rgb(0, 0, 0)" font-family=""Helvetica"" font-size="12px">major release acceptance (nemesis, compatibil...</text></switch></g></g></g><g data-cell-id="BKlyohRb7cvqR44dBRqB-80"><g><path d="M 5.71 369.5 L 3.71 369.5 L 3.71 358.47 L 0.88 358.47 L 4.71 350.5 L 8.54 358.47 L 5.71 358.47 Z" fill="#e3c800" stroke="#b09500" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="BKlyohRb7cvqR44dBRqB-82"><g><rect x="25" y="345" width="270" height="30" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 268px; height: 1px; padding-top: 360px; margin-left: 27px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><span style="text-align: center;">bug fix</span></div></div></div></foreignObject><text x="27" y="364" fill="rgb(0, 0, 0)" font-family=""Helvetica"" font-size="12px">bug fix</text></switch></g></g></g><g data-cell-id="BKlyohRb7cvqR44dBRqB-83"><g><path d="M 5.71 394.5 L 3.71 394.5 L 3.71 383.47 L 0.88 383.47 L 4.71 375.5 L 8.54 383.47 L 5.71 383.47 Z" fill="#e51400" stroke="#b20000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="BKlyohRb7cvqR44dBRqB-84"><g><rect x="25" y="370" width="270" height="30" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 268px; height: 1px; padding-top: 385px; margin-left: 27px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><span style="text-align: center;">feature</span></div></div></div></foreignObject><text x="27" y="389" fill="rgb(0, 0, 0)" font-family=""Helvetica"" font-size="12px">feature</text></switch></g></g></g><g data-cell-id="D4-yEOCwhY7TvUdENpiH-1"><g><ellipse cx="5" cy="415" rx="5" ry="5" fill="#fad9d5" stroke="#ae4132" pointer-events="all"/></g></g><g data-cell-id="D4-yEOCwhY7TvUdENpiH-2"><g><rect x="25" y="400" width="270" height="30" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 268px; height: 1px; padding-top: 415px; margin-left: 27px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><div style="text-align: center;">unsuccessful tag</div></div></div></div></foreignObject><text x="27" y="419" fill="rgb(0, 0, 0)" font-family=""Helvetica"" font-size="12px">unsuccessful tag</text></switch></g></g></g><g data-cell-id="D4-yEOCwhY7TvUdENpiH-4"><g><ellipse cx="5" cy="435" rx="5" ry="5" fill="#d5e8d4" stroke="#82b366" pointer-events="all"/></g></g><g data-cell-id="D4-yEOCwhY7TvUdENpiH-5"><g><rect x="25" y="420" width="270" height="30" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 268px; height: 1px; padding-top: 435px; margin-left: 27px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><div style="text-align: center;">successful tag</div></div></div></div></foreignObject><text x="27" y="439" fill="rgb(0, 0, 0)" font-family=""Helvetica"" font-size="12px">successful tag</text></switch></g></g></g><g data-cell-id="JmJE46NEGLy7hlqQf7Fy-2"><g><path d="M 162 56 L 162 146" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/></g></g><g data-cell-id="JmJE46NEGLy7hlqQf7Fy-8"><g><path d="M 5.71 339.5 L 3.71 339.5 L 3.71 328.47 L 0.88 328.47 L 4.71 320.5 L 8.54 328.47 L 5.71 328.47 Z" fill="#1ba1e2" stroke="#006eaf" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="JmJE46NEGLy7hlqQf7Fy-9"><g><rect x="25" y="315" width="270" height="30" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 268px; height: 1px; padding-top: 330px; margin-left: 27px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><span style="text-align: center;">bug fix needed ASAP in production (hotfix)</span></div></div></div></foreignObject><text x="27" y="334" fill="rgb(0, 0, 0)" font-family=""Helvetica"" font-size="12px">bug fix needed ASAP in production (hotfix)</text></switch></g></g></g><g data-cell-id="JmJE46NEGLy7hlqQf7Fy-12"><g><path d="M 125.02 75.5 L 123.02 75.5 L 123.02 64.47 L 120.19 64.47 L 124.02 56.5 L 127.85 64.47 L 125.02 64.47 Z" fill="#1ba1e2" stroke="#006eaf" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="JmJE46NEGLy7hlqQf7Fy-14"><g><path d="M 135.02 75.5 L 133.02 75.5 L 133.02 64.47 L 130.19 64.47 L 134.02 56.5 L 137.85 64.47 L 135.02 64.47 Z" fill="#e3c800" stroke="#b09500" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="JmJE46NEGLy7hlqQf7Fy-15"><g><path d="M 144.66 75.5 L 142.66 75.5 L 142.66 64.47 L 139.83 64.47 L 143.66 56.5 L 147.49 64.47 L 144.66 64.47 Z" fill="#e51400" stroke="#b20000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="JmJE46NEGLy7hlqQf7Fy-20"><g><rect x="656" y="40" width="73" height="30" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 71px; height: 1px; padding-top: 55px; margin-left: 657px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><b>stable-25-1</b></div></div></div></foreignObject><text x="693" y="59" fill="rgb(0, 0, 0)" font-family=""Helvetica"" font-size="12px" text-anchor="middle">stable-25-1</text></switch></g></g></g><g data-cell-id="JmJE46NEGLy7hlqQf7Fy-28"><g><path d="M 188 135.25 L 198 145.25 L 188 155.25 L 178 145.25 Z" fill="#b1ddf0" stroke="#10739e" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="JmJE46NEGLy7hlqQf7Fy-31"><g><path d="M 278 165.5 L 276 165.5 L 276 154.47 L 273.17 154.47 L 277 146.5 L 280.83 154.47 L 278 154.47 Z" fill="#e3c800" stroke="#b09500" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="JmJE46NEGLy7hlqQf7Fy-36"><g/></g><g data-cell-id="JmJE46NEGLy7hlqQf7Fy-37"><g><path d="M 362 145.25 L 281 146 L 321 146" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/></g></g><g data-cell-id="JmJE46NEGLy7hlqQf7Fy-40"><g><path d="M 198 145.25 L 251 146" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/></g></g><g data-cell-id="JmJE46NEGLy7hlqQf7Fy-39"><g><ellipse cx="246" cy="146" rx="5" ry="5" fill="#f8cecc" stroke="#b85450" pointer-events="all"/></g></g><g data-cell-id="JmJE46NEGLy7hlqQf7Fy-46"><g><path d="M 251 146 L 293 146" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/></g></g><g data-cell-id="JmJE46NEGLy7hlqQf7Fy-45"><g><ellipse cx="298" cy="146" rx="5" ry="5" fill="#d5e8d4" stroke="#82b366" pointer-events="all"/></g></g><g data-cell-id="JmJE46NEGLy7hlqQf7Fy-47"><g><path d="M 391 134 L 396.83 134 L 401 139.92 L 405.17 134 L 411 134 L 403.92 144 L 411 154 L 405.17 154 L 401 148.08 L 396.83 154 L 391 154 L 397.67 144 Z" fill="#f8cecc" stroke="#b85450" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="JmJE46NEGLy7hlqQf7Fy-50"><g><path d="M 265 165.5 L 263 165.5 L 263 154.47 L 260.17 154.47 L 264 146.5 L 267.83 154.47 L 265 154.47 Z" fill="#1ba1e2" stroke="#006eaf" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="JmJE46NEGLy7hlqQf7Fy-51"><g><path d="M 313 165.5 L 311 165.5 L 311 154.47 L 308.17 154.47 L 312 146.5 L 315.83 154.47 L 313 154.47 Z" fill="#1ba1e2" stroke="#006eaf" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="JmJE46NEGLy7hlqQf7Fy-53"><g><ellipse cx="357" cy="145.25" rx="5" ry="5" fill="#d5e8d4" stroke="#82b366" pointer-events="all"/></g></g><g data-cell-id="JmJE46NEGLy7hlqQf7Fy-55"><g><path d="M 362 145.06 L 388 145" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/></g></g><g data-cell-id="JmJE46NEGLy7hlqQf7Fy-61"><g/></g><g data-cell-id="JmJE46NEGLy7hlqQf7Fy-62"><g/></g><g data-cell-id="JmJE46NEGLy7hlqQf7Fy-66"><g/></g><g data-cell-id="JmJE46NEGLy7hlqQf7Fy-67"><g/></g><g data-cell-id="JmJE46NEGLy7hlqQf7Fy-80"><g/></g><g data-cell-id="JmJE46NEGLy7hlqQf7Fy-81"><g/></g><g data-cell-id="JmJE46NEGLy7hlqQf7Fy-85"><g/></g><g data-cell-id="JmJE46NEGLy7hlqQf7Fy-86"><g/></g><g data-cell-id="JmJE46NEGLy7hlqQf7Fy-87"><g/></g><g data-cell-id="JmJE46NEGLy7hlqQf7Fy-88"><g/></g><g data-cell-id="JmJE46NEGLy7hlqQf7Fy-92"><g/></g><g data-cell-id="JmJE46NEGLy7hlqQf7Fy-93"><g/></g><g data-cell-id="JmJE46NEGLy7hlqQf7Fy-94"><g/></g><g data-cell-id="JmJE46NEGLy7hlqQf7Fy-95"><g/></g><g data-cell-id="JmJE46NEGLy7hlqQf7Fy-99"><g/></g><g data-cell-id="JmJE46NEGLy7hlqQf7Fy-100"><g/></g><g data-cell-id="JmJE46NEGLy7hlqQf7Fy-101"><g/></g><g data-cell-id="JmJE46NEGLy7hlqQf7Fy-102"><g/></g><g data-cell-id="JmJE46NEGLy7hlqQf7Fy-103"><g><path d="M 209 75.51 L 207 75.49 L 207.08 64.23 L 204.24 64.22 L 208.13 56.27 L 211.91 64.26 L 209.08 64.25 Z" fill="#1ba1e2" stroke="#006eaf" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="JmJE46NEGLy7hlqQf7Fy-104"><g><path d="M 219.13 75.27 L 217.13 75.27 L 217.13 64.24 L 214.3 64.24 L 218.13 56.27 L 221.96 64.24 L 219.13 64.24 Z" fill="#e3c800" stroke="#b09500" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="JmJE46NEGLy7hlqQf7Fy-105"><g><path d="M 228.77 75.27 L 226.77 75.27 L 226.77 64.24 L 223.94 64.24 L 227.77 56.27 L 231.6 64.24 L 228.77 64.24 Z" fill="#e51400" stroke="#b20000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="JmJE46NEGLy7hlqQf7Fy-106"><g/></g><g data-cell-id="JmJE46NEGLy7hlqQf7Fy-107"><g/></g><g data-cell-id="JmJE46NEGLy7hlqQf7Fy-108"><g/></g><g data-cell-id="JmJE46NEGLy7hlqQf7Fy-109"><g/></g><g data-cell-id="JmJE46NEGLy7hlqQf7Fy-140"><g><path d="M 278 96 L 288 106 L 278 116 L 268 106 Z" fill="#b1ddf0" stroke="#10739e" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="JmJE46NEGLy7hlqQf7Fy-141"><g><path d="M 342 125.5 L 340 125.5 L 340 114.47 L 337.17 114.47 L 341 106.5 L 344.83 114.47 L 342 114.47 Z" fill="#e3c800" stroke="#b09500" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="JmJE46NEGLy7hlqQf7Fy-142"><g><path d="M 251 106 L 268 106" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/></g></g><g data-cell-id="JmJE46NEGLy7hlqQf7Fy-143"><g/></g><g data-cell-id="JmJE46NEGLy7hlqQf7Fy-144"><g><path d="M 406 106 L 356 106 L 396 106" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/></g></g><g data-cell-id="JmJE46NEGLy7hlqQf7Fy-145"><g><path d="M 288 106 L 326 106" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/></g></g><g data-cell-id="JmJE46NEGLy7hlqQf7Fy-146"><g><ellipse cx="321" cy="106" rx="5" ry="5" fill="#f8cecc" stroke="#b85450" pointer-events="all"/></g></g><g data-cell-id="JmJE46NEGLy7hlqQf7Fy-147"><g><path d="M 326 106 L 361 106" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/></g></g><g data-cell-id="JmJE46NEGLy7hlqQf7Fy-148"><g><ellipse cx="366" cy="106" rx="5" ry="5" fill="#d5e8d4" stroke="#82b366" pointer-events="all"/></g></g><g data-cell-id="JmJE46NEGLy7hlqQf7Fy-150"><g><path d="M 312 126.5 L 310 126.5 L 310 115.47 L 307.17 115.47 L 311 107.5 L 314.83 115.47 L 312 115.47 Z" fill="#1ba1e2" stroke="#006eaf" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="JmJE46NEGLy7hlqQf7Fy-152"><g><path d="M 371 106 L 396 106" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/></g></g><g data-cell-id="JmJE46NEGLy7hlqQf7Fy-153"><g><ellipse cx="401" cy="106" rx="5" ry="5" fill="#d5e8d4" stroke="#82b366" pointer-events="all"/></g></g><g data-cell-id="JmJE46NEGLy7hlqQf7Fy-154"><g><path d="M 406 105.81 L 431 106" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/></g></g><g data-cell-id="JmJE46NEGLy7hlqQf7Fy-155"><g><path d="M 251 56 L 251 106" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/></g></g><g data-cell-id="QXBmiwWFVblay1ct6sO7-2"><g><path d="M 209 165.5 L 207 165.5 L 207 154.47 L 204.17 154.47 L 208 146.5 L 211.83 154.47 L 209 154.47 Z" fill="#1ba1e2" stroke="#006eaf" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="QXBmiwWFVblay1ct6sO7-3"><g><path d="M 223 165.5 L 221 165.5 L 221 154.47 L 218.17 154.47 L 222 146.5 L 225.83 154.47 L 223 154.47 Z" fill="#e3c800" stroke="#b09500" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="QXBmiwWFVblay1ct6sO7-4"><g/></g><g data-cell-id="QXBmiwWFVblay1ct6sO7-5"><g/></g><g data-cell-id="QXBmiwWFVblay1ct6sO7-6"><g><path d="M 311 75.24 L 309 75.24 L 309 64.21 L 306.17 64.21 L 310 56.24 L 313.83 64.21 L 311 64.21 Z" fill="#1ba1e2" stroke="#006eaf" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="QXBmiwWFVblay1ct6sO7-7"><g><path d="M 339 75.24 L 337 75.24 L 337 64.21 L 334.17 64.21 L 338 56.24 L 341.83 64.21 L 339 64.21 Z" fill="#e3c800" stroke="#b09500" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="QXBmiwWFVblay1ct6sO7-8"><g><path d="M 368.68 75.5 L 366.68 75.5 L 366.68 64.47 L 363.85 64.47 L 367.68 56.5 L 371.51 64.47 L 368.68 64.47 Z" fill="#e51400" stroke="#b20000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="QXBmiwWFVblay1ct6sO7-9"><g/></g><g data-cell-id="QXBmiwWFVblay1ct6sO7-10"><g/></g><g data-cell-id="QXBmiwWFVblay1ct6sO7-34"><g><rect x="209" y="172" width="66" height="20" fill="none" stroke="none" transform="rotate(90,242,182)" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)rotate(90 242 182)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 64px; height: 1px; padding-top: 182px; margin-left: 210px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center; max-height: 16px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><div><span style="background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));">25-1-1-1</span><br /></div></div></div></div></foreignObject><text x="242" y="186" fill="rgb(0, 0, 0)" font-family=""Helvetica"" font-size="12px" text-anchor="middle">25-1-1-1
</text></switch></g></g></g><g data-cell-id="QXBmiwWFVblay1ct6sO7-36"><g><rect x="439" y="90" width="100" height="30" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 105px; margin-left: 440px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><b>stable-25-1-2</b></div></div></div></foreignObject><text x="489" y="109" fill="rgb(0, 0, 0)" font-family=""Helvetica"" font-size="12px" text-anchor="middle">stable-25-1-2</text></switch></g></g></g><g data-cell-id="QXBmiwWFVblay1ct6sO7-51"><g/></g><g data-cell-id="QXBmiwWFVblay1ct6sO7-52"><g/></g><g data-cell-id="QXBmiwWFVblay1ct6sO7-56"><g/></g><g data-cell-id="QXBmiwWFVblay1ct6sO7-57"><g/></g><g data-cell-id="QXBmiwWFVblay1ct6sO7-58"><g/></g><g data-cell-id="QXBmiwWFVblay1ct6sO7-59"><g/></g><g data-cell-id="QXBmiwWFVblay1ct6sO7-60"><g><path d="M 311 36.5 L 309 36.5 L 309 25.47 L 306.17 25.47 L 310 17.5 L 313.83 25.47 L 311 25.47 Z" fill="#1ba1e2" stroke="#006eaf" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="QXBmiwWFVblay1ct6sO7-61"><g><path d="M 339 35.25 L 337 35.25 L 337 24.22 L 334.17 24.22 L 338 16.25 L 341.83 24.22 L 339 24.22 Z" fill="#e3c800" stroke="#b09500" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="QXBmiwWFVblay1ct6sO7-62"><g><path d="M 368 35.5 L 366 35.5 L 366 24.47 L 363.17 24.47 L 367 16.5 L 370.83 24.47 L 368 24.47 Z" fill="#e51400" stroke="#b20000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="QXBmiwWFVblay1ct6sO7-63"><g/></g><g data-cell-id="QXBmiwWFVblay1ct6sO7-64"><g/></g><g data-cell-id="QXBmiwWFVblay1ct6sO7-71"><g><rect x="263" y="171.5" width="58" height="20" fill="none" stroke="none" transform="rotate(90,292,181.5)" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)rotate(90 292 181.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 56px; height: 1px; padding-top: 182px; margin-left: 264px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center; max-height: 16px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><div><span style="background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));">25-1-1-2</span></div></div></div></div></foreignObject><text x="292" y="185" fill="rgb(0, 0, 0)" font-family=""Helvetica"" font-size="12px" text-anchor="middle">25-1-1-2</text></switch></g></g></g><g data-cell-id="QXBmiwWFVblay1ct6sO7-72"><g><rect x="320" y="173.25" width="70" height="20" fill="none" stroke="none" transform="rotate(90,355,183.25)" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)rotate(90 355 183.25)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 183px; margin-left: 321px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center; max-height: 16px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><div><span style="background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));">25-1-1-3</span></div></div></div></div></foreignObject><text x="355" y="187" fill="rgb(0, 0, 0)" font-family=""Helvetica"" font-size="12px" text-anchor="middle">25-1-1-3</text></switch></g></g></g><g data-cell-id="YbwXu4WiOXPQauN_IFn6-4"><g><path d="M 342 165.5 L 340 165.5 L 340 154.47 L 337.17 154.47 L 341 146.5 L 344.83 154.47 L 342 154.47 Z" fill="#e3c800" stroke="#b09500" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="YbwXu4WiOXPQauN_IFn6-5"><g><path d="M 298 151 L 298 216" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/></g></g><g data-cell-id="YbwXu4WiOXPQauN_IFn6-7"><g><path d="M 298 216 L 379 215.95" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/></g></g><g data-cell-id="YbwXu4WiOXPQauN_IFn6-8"><g><ellipse cx="337" cy="217" rx="5" ry="5" fill="#d5e8d4" stroke="#82b366" pointer-events="all"/></g></g><g data-cell-id="YbwXu4WiOXPQauN_IFn6-9"><g><rect x="282" y="263" width="112.5" height="20" fill="none" stroke="none" transform="rotate(90,338.25,273)" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)rotate(90 338.25 273)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 111px; height: 1px; padding-top: 273px; margin-left: 283px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center; max-height: 16px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><div><span style="background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));">25-1-1-2-hotfix-1</span></div></div></div></div></foreignObject><text x="338" y="277" fill="rgb(0, 0, 0)" font-family=""Helvetica"" font-size="12px" text-anchor="middle">25-1-1-2-hotfix-1</text></switch></g></g></g><g data-cell-id="YbwXu4WiOXPQauN_IFn6-10"><g><path d="M 313 235.5 L 311 235.5 L 311 224.47 L 308.17 224.47 L 312 216.5 L 315.83 224.47 L 313 224.47 Z" fill="#1ba1e2" stroke="#006eaf" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="YbwXu4WiOXPQauN_IFn6-11"><g><rect x="371.5" y="201" width="141.5" height="30" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 140px; height: 1px; padding-top: 216px; margin-left: 373px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><b>stable-25-1-1-2-hotfix</b></div></div></div></foreignObject><text x="442" y="220" fill="rgb(0, 0, 0)" font-family=""Helvetica"" font-size="12px" text-anchor="middle">stable-25-1-1-2-hotfix</text></switch></g></g></g><g data-cell-id="YbwXu4WiOXPQauN_IFn6-13"><g><path d="M 428 96 L 433.83 96 L 438 101.92 L 442.17 96 L 448 96 L 440.92 106 L 448 116 L 442.17 116 L 438 110.08 L 433.83 116 L 428 116 L 434.67 106 Z" fill="#f8cecc" stroke="#b85450" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="ha5FHuvoQI2r-frKpg79-15"><g><path d="M 578 56 L 578 146" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/></g></g><g data-cell-id="ha5FHuvoQI2r-frKpg79-16"><g><path d="M 578 146 L 860.63 146" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 865.88 146 L 858.88 149.5 L 860.63 146 L 858.88 142.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="ha5FHuvoQI2r-frKpg79-17"><g><rect x="890" y="131" width="73" height="30" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 71px; height: 1px; padding-top: 146px; margin-left: 891px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><b>stable-25-2</b></div></div></div></foreignObject><text x="927" y="150" fill="rgb(0, 0, 0)" font-family=""Helvetica"" font-size="12px" text-anchor="middle">stable-25-2</text></switch></g></g></g><g data-cell-id="ha5FHuvoQI2r-frKpg79-18"><g><path d="M 638 46 L 643.83 46 L 648 51.92 L 652.17 46 L 658 46 L 650.92 56 L 658 66 L 652.17 66 L 648 60.08 L 643.83 66 L 638 66 L 644.67 56 Z" fill="#f8cecc" stroke="#b85450" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="ha5FHuvoQI2r-frKpg79-28"><g><path d="M 162 146 L 178 145.25" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/></g></g><g data-cell-id="ha5FHuvoQI2r-frKpg79-46"><g><path d="M 624 176 L 634 186 L 624 196 L 614 186 Z" fill="#b1ddf0" stroke="#10739e" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="ha5FHuvoQI2r-frKpg79-47"><g><path d="M 597 186 L 614 186" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/></g></g><g data-cell-id="ha5FHuvoQI2r-frKpg79-48"><g/></g><g data-cell-id="ha5FHuvoQI2r-frKpg79-49"><g><path d="M 752 186 L 702 186 L 742 186" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/></g></g><g data-cell-id="ha5FHuvoQI2r-frKpg79-50"><g><path d="M 634 186 L 672 186" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/></g></g><g data-cell-id="ha5FHuvoQI2r-frKpg79-51"><g><ellipse cx="667" cy="186" rx="5" ry="5" fill="#f8cecc" stroke="#b85450" pointer-events="all"/></g></g><g data-cell-id="ha5FHuvoQI2r-frKpg79-52"><g><path d="M 672 186 L 707 186" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/></g></g><g data-cell-id="ha5FHuvoQI2r-frKpg79-53"><g><ellipse cx="712" cy="186" rx="5" ry="5" fill="#d5e8d4" stroke="#82b366" pointer-events="all"/></g></g><g data-cell-id="ha5FHuvoQI2r-frKpg79-54"><g><path d="M 717 186 L 742 186" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/></g></g><g data-cell-id="ha5FHuvoQI2r-frKpg79-56"><g><path d="M 752 185.81 L 738 186" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/></g></g><g data-cell-id="ha5FHuvoQI2r-frKpg79-57"><g/></g><g data-cell-id="ha5FHuvoQI2r-frKpg79-58"><g/></g><g data-cell-id="ha5FHuvoQI2r-frKpg79-59"><g/></g><g data-cell-id="ha5FHuvoQI2r-frKpg79-60"><g/></g><g data-cell-id="ha5FHuvoQI2r-frKpg79-61"><g><rect x="763" y="170.25" width="100" height="30" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 185px; margin-left: 764px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><b>stable-25-2-1</b></div></div></div></foreignObject><text x="813" y="189" fill="rgb(0, 0, 0)" font-family=""Helvetica"" font-size="12px" text-anchor="middle">stable-25-2-1</text></switch></g></g></g><g data-cell-id="ha5FHuvoQI2r-frKpg79-63"><g><path d="M 597 186 L 597 146" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/></g></g><g data-cell-id="ha5FHuvoQI2r-frKpg79-67"><g><path d="M 647 165.51 L 645 165.49 L 645.08 154.23 L 642.24 154.22 L 646.13 146.27 L 649.91 154.26 L 647.08 154.25 Z" fill="#1ba1e2" stroke="#006eaf" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="ha5FHuvoQI2r-frKpg79-68"><g><path d="M 659.13 165.27 L 657.13 165.27 L 657.13 154.24 L 654.3 154.24 L 658.13 146.27 L 661.96 154.24 L 659.13 154.24 Z" fill="#e3c800" stroke="#b09500" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="ha5FHuvoQI2r-frKpg79-70"><g><path d="M 640 206.5 L 638 206.5 L 638 195.47 L 635.17 195.47 L 639 187.5 L 642.83 195.47 L 640 195.47 Z" fill="#1ba1e2" stroke="#006eaf" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="ha5FHuvoQI2r-frKpg79-71"><g><path d="M 654 206.5 L 652 206.5 L 652 195.47 L 649.17 195.47 L 653 187.5 L 656.83 195.47 L 654 195.47 Z" fill="#e3c800" stroke="#b09500" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="ha5FHuvoQI2r-frKpg79-73"><g><path d="M 689.13 206.27 L 687.13 206.27 L 687.13 195.24 L 684.3 195.24 L 688.13 187.27 L 691.96 195.24 L 689.13 195.24 Z" fill="#e3c800" stroke="#b09500" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="ha5FHuvoQI2r-frKpg79-74"><g><path d="M 868 56 L 868 15" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/></g></g><g data-cell-id="ha5FHuvoQI2r-frKpg79-75"><g><path d="M 868 55.76 L 1051.63 55.99" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1056.88 56 L 1049.88 59.49 L 1051.63 55.99 L 1049.89 52.49 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="ha5FHuvoQI2r-frKpg79-76"><g><path d="M 753 176 L 758.83 176 L 763 181.92 L 767.17 176 L 773 176 L 765.92 186 L 773 196 L 767.17 196 L 763 190.08 L 758.83 196 L 753 196 L 759.67 186 Z" fill="#f8cecc" stroke="#b85450" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="ha5FHuvoQI2r-frKpg79-77"><g><path d="M 870 136 L 875.83 136 L 880 141.92 L 884.17 136 L 890 136 L 882.92 146 L 890 156 L 884.17 156 L 880 150.08 L 875.83 156 L 870 156 L 876.67 146 Z" fill="#f8cecc" stroke="#b85450" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="ha5FHuvoQI2r-frKpg79-78"><g><rect x="1058" y="41" width="73" height="30" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 71px; height: 1px; padding-top: 56px; margin-left: 1059px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><b>stable-25-3</b></div></div></div></foreignObject><text x="1095" y="60" fill="rgb(0, 0, 0)" font-family=""Helvetica"" font-size="12px" text-anchor="middle">stable-25-3</text></switch></g></g></g><g data-cell-id="ha5FHuvoQI2r-frKpg79-79"><g><path d="M 988 96 L 988 55" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/></g></g><g data-cell-id="ha5FHuvoQI2r-frKpg79-80"><g><path d="M 988 96.52 L 1171.63 96.75" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1176.88 96.76 L 1169.88 100.25 L 1171.63 96.75 L 1169.89 93.25 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="ha5FHuvoQI2r-frKpg79-81"><g><rect x="1178" y="81" width="73" height="30" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 71px; height: 1px; padding-top: 96px; margin-left: 1179px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><b>stable-25-4</b></div></div></div></foreignObject><text x="1215" y="100" fill="rgb(0, 0, 0)" font-family=""Helvetica"" font-size="12px" text-anchor="middle">stable-25-4</text></switch></g></g></g></g></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.drawio.com/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg>
\ No newline at end of file diff --git a/ydb/docs/ru/core/contributor/manage-releases.md b/ydb/docs/ru/core/contributor/manage-releases.md index 88e2db6b118..86d609186ee 100644 --- a/ydb/docs/ru/core/contributor/manage-releases.md +++ b/ydb/docs/ru/core/contributor/manage-releases.md @@ -7,45 +7,75 @@ ## Релизный цикл сервера {{ ydb-short-name }} {#server} +Данный документ описывает релизный цикл, начиная с мажорного релиза 25.1. + +{% note info %} + +Раньше версия сервера {{ ydb-short-name }} состояла из 3 чисел (например, v24.3.3), начиная с мажорной версии 25.1, добавлена четвертое число, которое обозначает номер патча (например, v25.1.1.3). Изменилась именование релизных веток и общая схема работы с ними - в мажорную релизную ветку можно мерджить новые фичи по согласованию, релизные теги создаются в минорных ветках, в которые можно мерджить только исправления ошибок. Подробнее про все изменения [тут](#release_branch_scheme). + +{% endnote %} + +Если у вас возникли вопросы по этому документу, обращайтесь к [команде {{ ydb-short-name }}](https://github.com/orgs/ydb-platform/teams/engineering). + ### Номера и расписание релизов {#server-versioning} -Версия сервера {{ ydb-short-name }} состоит из трех чисел, разделенных точкой: +Версия сервера {{ ydb-short-name }} состоит из четырех чисел, разделенных точками: 1. Две последние цифры календарного года релиза -2. Порядковый номер мажорного релиза в этом году -3. Порядковый номер минорного релиза в этом мажорном +2. Порядковый номер мажорного релиза в текущем году +3. Порядковый номер минорного релиза в этом мажорном релизе +4. Порядковый номер патча (релизного тега) в минорном релизе + +Таким образом: -Таким образом, мажорная версия сервера {{ ydb-short-name }} - это комбинация первый двух чисел (например, `23.3`), а полная версия - это комбинация всех трех (например, `23.3.5`). +* Мажорная версия - это комбинация первых двух чисел (например, `25.1`) +* Минорная версия - это комбинация первых трёх чисел (например, `25.1.2`) +* Полная версия - это комбинация всех четырёх чисел (например, `23.1.2.1`). -Расписание релизов сервера {{ ydb-short-name }} обычно включает в себя 4 мажорных релиза ежегодно, поэтому релиз `YY.1` является первым, а `YY.4` - последним в году `YY`. Количество минорных релизов не является постоянным и может варьироваться от одного мажорного релиза к другому. +В течение года обычно выпускается 4 мажорных релиза сервера {{ ydb-short-name }}: `YY.1` – первый, а `YY.4` - последний в году `YY`. Количество минорных релизов и патчей не является постоянным и может варьироваться от одного мажорного релиза к другому. ### Совместимость {#server-compatibility} -{{ ydb-short-name }} поддерживает совместимость между мажорными версиями таким образом, чтобы гарантировать, что кластер может работать, когда на его узлах выполняются две смежные мажорные версии исполняемого файла сервера {{ ydb-short-name }}. Вы можете обратиться к статье [Обновление {{ ydb-short-name }}](../devops/manual/upgrade.md) для информации о процедуре обновления кластера. +Совместимость версий {{ ydb-short-name }} - это гарантии, что кластер сможет работать, даже если на его узлах выполняются две смежные мажорные версии исполняемого файла сервера {{ ydb-short-name }}. Подробнее о процедуре обновления кластера вы можете прочитать в статье [Обновление {{ ydb-short-name }}](../devops/manual/upgrade.md). -Учитывая вышеуказанную цель совместимости, мажорные релизы выпускаются парами, в основном с добавлением в нечетных версиях новой функциональности, отключенной feature-флагами, и включением этой функциональности по-умолчанию в четных. +Для обеспечения такой совместимости мажорные релизы выпускаются парами: -Например, версия `23.1` поставляется с отключенной новой функциональностью, и может быть постепенно развернута на кластере, работающем под управлением `22.4`, без остановки работы кластера. Как только на всех узлах кластера будет запущена `23.1`, его можно будет далее обновить до `23.2`, чтобы использовать новые функциональные возможности. +* В нечетных версиях добавляется новая функциональность, отключенная с помощью feature-флагов. +* В четных версиях эта функциональность включается по умолчанию. + +Например, версия `25.1` поставляется с отключенной новой функциональностью, и может быть постепенно развернута на кластере, работающем под управлением `24.4`, без остановки работы кластера. Как только на всех узлах кластера будет запущена `25.1`, его можно будет далее обновить до `25.2`, чтобы использовать новые функциональные возможности. ### Релизные ветки и теги {#server-branches-tags} -Цикл выпуска для нечетного мажорного релиза начинается с отведения ветки от `main` ветки участником [релизной команды {{ ydb-short-name }}](https://github.com/orgs/ydb-platform/teams/release). Название релизной ветки начинается с префикса `stable-`, за которым следует мажорная версия с точками, замененными на дефис (например, `stable-23-1`). +#### Виды коммитов {#commit_types} -Цикл выпуска четного мажорного релиза начинается с отведения ветки от ветки предыдущего нечетного мажорного релиза. +* **Фича**. К фичам относятся любые добавляющие новую функциональность или улучшающие существующую изменения, не связанные с исправлением ошибок. +* **Исправление ошибки**. Изменение, направленное на устранение конкретной ошибки. +* **Исправление критической ошибки**. Срочное исправление серьезной проблемы, которое требуется немедленно выкатить в продакшн. Без срочного исправления критических ошибок высока вероятность наступления серьезных негативных последствий. -Все выпуски мажорных версий, как четных, так и нечетных, проходят цикл тестирования, в процессе которого создается ряд минорных версий. Каждая минорная версия фиксируется путем назначения тега с полным номером версии на соответствующей релизной ветке. Таким образом, в ветке `stable-24-1` могут быть теги `24.1.1`, `24.1.2` и т.д. Как только минорная версия успешно прошла необходимое тестирование, мы считаем ее стабильной, и регистрируем релиз на GitHub для ее тега, добавляем его на страницы документации [загрузки](../downloads/index.md#ydb-server) and [список изменений](../changelog-server.md), и так далее. Для мажорной версии может быть более одного стабильного релиза. +#### Типы релизных веток {#release_branch_types} -### Тестирование {#server-testing} +* **Мажорная ветка** - ветка, в которой хранится исходный код соответствующей мажорной версии. Именуются `stable-XX-Y` (например, `stable-24-1` или `stable-25-1`). В эту ветку можно мерджить новые фичи и исправления ошибок. + +* **Минорная ветка** - ветка, из которой собираются релизы {{ ydb-short-name }}. Именуется `stable-XX-Y-Z` (например, `stable-25-1-2`). Коммит, из которого собирается релиз помечается соответствующим релизным тегом, который имеет формат `XX.Y.Z.A`. Новая минорная ветка отводится от мажорной ветки после стабилизации предыдущего минорного релиза. В минорную ветку можно мерджить только исправления ошибок. -Тестирование релиза является итеративным. Каждая итерация начинается с назначения тега на коммит в релизной ветке для минорной версии, подлежащей тестированию. Например, тег минорной версии `23.3.5` отмечает 5-ю итерацию тестирования для мажорной версии `23.3`. +* **Хотфиксная ветка** - ветка для срочного исправления критических ошибок в конкретном релизном теге. Именуется `stable-XX-Y-Z-A-hotfix` (где `XX.Y.Z.A` - имя релизного тега), например, `stable-24-1-1-2-hotfix`. Такие ветки отводятся только от релизных тегов при необходимости сделать хотфикс. Из коммита хотфикса создается релизный тег, который именуется `stable-XX-Y-Z-A-hotfix-N` (где `stable-XX-Y-Z-A-hotfix` - имя хотфиксной ветки, N - порядковый номер хотфикса). При необходимости сделать хотфикс поверх ранее сделанного хотфикса, исправление коммитится в ту же хотфиксную ветку и из него создается новый релизный тег. В хотфиксные ветки можно мержить только исправления критических ошибок, которые требуется немедленно выкатить в продакшн. -Тег может считаться либо "кандидатом", либо "стабильным". Изначально первый тег назначается релизной ветке сразу после ее создания, и этот тег считается "кандидатом". +#### Общая схема работы с ветками {#release_branch_scheme} -Во время итерации тестирования код из релизных веток проходит всестороннее тестирование, включая развертывание в [UAT](https://en.wikipedia.org/wiki/Acceptance_testing), prestable, и production средах использующих {{ ydb-short-name }} компания. Для выполнения такого тестирования код {{ ydb-short-name }} из релизного тега на GitHub импортируется в корпоративный контекст пользователя в соответствии с его политиками и стандартами. Затем производится его сборка, развертывание в необходимых средах, и тестирование. + -{% include [corp_release_testing.md](_includes/corp_release_testing.md) %} +Цикл выпуска для нечетного мажорного релиза начинается с отведения от `main` мажорной ветки участником [команды {{ ydb-short-name }}](https://github.com/orgs/ydb-platform/teams/engineering). Название релизной ветки начинается с префикса `stable-`, за которым следует мажорная версия с точками, замененными на дефис (например, `stable-25-1`). + +Цикл выпуска четного мажорного релиза (например, `stable-25-2`) начинается с отведения ветки от ветки предыдущего нечетного мажорного релиза. -Основываясь на перечне выявленных проблем, [релизная команда {{ ydb-short-name }}](https://github.com/orgs/ydb-platform/teams/release) решает, можно ли повысить статус минорного релиза до стабильного, или необходимо запустить новую итерацию тестирования с новым тегом минорного релиза. Фактически, как только во время тестирования обнаруживается критическая проблема, разработчики исправляют ее в `main` и сразу же мержат изменения в релизную ветку. Таким образом, к моменту завершения тестирования, если в релизной ветке есть какие-либо коммиты поверх текущего тега, это означает что последует новый тег и новая итерация тестирования. +От мажорной ветки отводится минорная ветка. Все выпуски минорных версий для нечетных и четных мажорных релизов, проходят цикл тестирования, в ходе которого выпускается ряд патчей. Каждый патч фиксируется назначением релизного тега с полным номером версии. Таким образом, в минорной ветке `stable-25-1-1` могут быть теги `25.1.1.1`, `25.1.1.2` и т.д. Как только тег успешно прошел необходимое тестирование, мы считаем его стабильным, регистрируем релиз на GitHub, добавляем на страницы [загрузки](../downloads/index.md#ydb-server) и в [список изменений](../changelog-server.md). Для мажорной версии может быть более одного стабильного релиза. + +### Тестирование {#server-testing} + +Каждая минорная версия проходит приемочное тестирование — комплексный процесс проверки соответствия требованиям качества. Тестирование включает в себя оценку производительности по стандартам (TPC-C, TPC-H), проверку совместимости между версиями и другие критически важные тесты. Последующее тестирование минорной версии включает выкладку на внутренние кластера и является итеративным. Каждая итерация начинается с назначения релизного тега на коммит минорной ветки. Например, тег 25.1.1.3 отмечает 3-ю итерацию тестирования для минорной ветки 25.1.1. Основываясь на выявленных проблемах, [релизная команда {{ ydb-short-name }}](https://github.com/orgs/ydb-platform/teams/release) решает, можно ли считать тег стабильным, или необходимо запустить новую итерацию тестирования. + +{% include [corp_release_testing.md](_includes/corp_release_testing.md) %} ### Стабильный релиз {#server-stable} @@ -59,15 +89,15 @@ Версия {{ ydb-short-name }} CLI состоит из трех чисел, разделенных точкой: -1. Порядковый номер мажорной версия (в настоящее время "2") -2. Порядковый номер минорной версии для заданной мажорной -3. Номер патча +1. Порядковый номер мажорного релиза (в настоящее время "2") +2. Порядковый номер минорного релиза в этом мажорном релизе +3. Порядковый номер патча (релизного тега) в минорном релизе -Например, `2.8.0` - это 2-я мажорная, 8-я минорная, без патчей. +Например, версия `2.8.0` обозначате вторую мажорную, восьмую минорную версию, без патчей. -Для минорных релизов {{ ydb-short-name }} CLI не существует расписания, новый релиз выходит в тот момент, когда у нас появляется некоторая новая ценная функциональность. Изначально каждый новый минорный релиз имеет `0` в качестве номера патча. Если в этой версии обнаруживаются критические ошибки, или в неё не вошла какая-то незначительная часть запланированной функциональности, мы можем выпустить патч, увеличив только номер патча, как это было для `2.1.1`. +В отличие от сервера {{ ydb-short-name }}, для CLI не существует фиксированного расписания выпуска релизов. Новые минорные версии публикуются по мере готовности значимых улучшений или новой функциональности. При первоначальном выпуске минорной версии номер патча равен 0. -В целом, цикл выпуска для {{ ydb-short-name }} CLI намного проще и короче, чем для сервера, что приводит к более частым выпускам. +Процесс выпуска {{ ydb-short-name }} CLI значительно упрощен по сравнению с сервером {{ ydb-short-name }}, что позволяет выпускать релизы чаще. ### Релизные теги {#cli-tags} diff --git a/ydb/docs/ru/core/devops/manual/upgrade.md b/ydb/docs/ru/core/devops/manual/upgrade.md index be9f3bd5329..b49f35cdf26 100644 --- a/ydb/docs/ru/core/devops/manual/upgrade.md +++ b/ydb/docs/ru/core/devops/manual/upgrade.md @@ -16,12 +16,18 @@ ## Совместимость версий {#version-compatability} +{% note info %} + +Раньше версия сервера {{ ydb-short-name }} состояла из 3 чисел (например, `v24.3.3`), начиная с мажорной версии `25.1`, добавлена четвертое число, которое обозначает номер патча (например, `v25.1.1.3`). Подробнее про изменения в именовании версий [тут](../../contributor/manage-releases.md). + +{% endnote %} + Совместимыми для обновления являются все минорные версии в рамках одной мажорной версии. Мажорные версии совместимы последовательно. Для обновления на следующую мажорную версию предварительно следует обновиться на последний доступный минорный релиз текущей мажорной версии. Например: -* `X.Y.* → X.Y.*` — обновление возможно, все минорные версии в рамках одной мажорной совместимы. -* `X.Y.Z` (последняя доступная в `X.Y.*) → X.Y+1.*` - обновление возможно, мажорные версии последовательны. -* `X.Y.*` → `X.Y+2.*` — обновление невозможно, мажорные версии непоследовательны. -* `X.Y.* → X.Y-2.*` — обновление невозможно, мажорные версии непоследовательны. +* `X.Y.*.* → X.Y.*.*` — обновление возможно, все минорные версии в рамках одной мажорной совместимы. +* `X.Y.Z.*` (последняя доступная `X.Y.*.*`) → `X.Y+1.*.*` - обновление возможно, мажорные версии последовательны. +* `X.Y.*.*` → `X.Y+2.*.*` — обновление невозможно, мажорные версии непоследовательны. +* `X.Y.*.* → X.Y-2.*.*` — обновление невозможно, мажорные версии непоследовательны. {% note warning %} @@ -33,10 +39,11 @@ ### Примеры совместимости версий -* v.22.2.5 -> v.22.2.47 - обновление возможно -* v.22.2.47 -> v.22.3.21 - обновление возможно -* v.22.2.40 -> v.22.3.21 - обновление невозможно, необходимо сначала обновиться до последней минорной версии (v.22.2.47) -* v.22.2.47 -> v.22.4.5 - обновление невозможно, необходимо сначала обновиться до следующей мажорной версии (v.22.3.*). +* `v.25.1.3.2` -> `v.25.1.5.5` - обновление возможно +* `v.25.1.5.5` -> `v.25.2.3.1` - обновление возможно (где `v25.1.5.*` последняя доступная минорная версия в `v.25.1`) +* `v.25.1.4.1` -> `v.25.2.3.1` - обновление невозможно, необходимо сначала обновиться до последней минорной версии (`v.25.1.5.*`) +* `v.25.1.5.5` -> `v.25.3.5.3` - обновление невозможно, необходимо сначала обновиться до следующей мажорной версии (`v.25.2.*.*`). + ## Проверка результата обновления {#upgrade_check} |
