* [dpdk-dev] [PATCH] doc: ip_pipeline app user guide
@ 2015-08-06 13:48 Cristian Dumitrescu
2015-08-06 13:55 ` Singh, Jasvinder
` (4 more replies)
0 siblings, 5 replies; 10+ messages in thread
From: Cristian Dumitrescu @ 2015-08-06 13:48 UTC (permalink / raw)
To: dev
Added more extensive documentation for ip_pipeline application.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
---
doc/guides/index.rst | 1 +
doc/guides/ip_pipeline_ug/img/ip_pipelines_1.svg | 718 +++++++++++++
doc/guides/ip_pipeline_ug/img/ip_pipelines_2.svg | 997 +++++++++++++++++
doc/guides/ip_pipeline_ug/img/ip_pipelines_3.svg | 826 ++++++++++++++
doc/guides/ip_pipeline_ug/index.rst | 38 +
doc/guides/ip_pipeline_ug/ip_pipeline_app.rst | 1129 ++++++++++++++++++++
doc/guides/sample_app_ug/index.rst | 1 -
.../sample_app_ug/internet_proto_ip_pipeline.rst | 135 ---
8 files changed, 3709 insertions(+), 136 deletions(-)
create mode 100644 doc/guides/ip_pipeline_ug/img/ip_pipelines_1.svg
create mode 100644 doc/guides/ip_pipeline_ug/img/ip_pipelines_2.svg
create mode 100644 doc/guides/ip_pipeline_ug/img/ip_pipelines_3.svg
create mode 100644 doc/guides/ip_pipeline_ug/index.rst
create mode 100644 doc/guides/ip_pipeline_ug/ip_pipeline_app.rst
delete mode 100644 doc/guides/sample_app_ug/internet_proto_ip_pipeline.rst
diff --git a/doc/guides/index.rst b/doc/guides/index.rst
index 0a89efd..dccd21a 100644
--- a/doc/guides/index.rst
+++ b/doc/guides/index.rst
@@ -44,5 +44,6 @@ Contents:
nics/index
sample_app_ug/index
testpmd_app_ug/index
+ ip_pipeline_ug/index
rel_notes/index
guidelines/index
diff --git a/doc/guides/ip_pipeline_ug/img/ip_pipelines_1.svg b/doc/guides/ip_pipeline_ug/img/ip_pipelines_1.svg
new file mode 100644
index 0000000..1c9842f
--- /dev/null
+++ b/doc/guides/ip_pipeline_ug/img/ip_pipelines_1.svg
@@ -0,0 +1,718 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="638.18219"
+ height="273.16391"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.4 r9939"
+ sodipodi:docname="ipPipelines_1_update.svg">
+ <defs
+ id="defs4">
+ <marker
+ inkscape:stockid="Arrow1Mend"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow1Mend"
+ style="overflow:visible;">
+ <path
+ id="path3887"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;"
+ transform="scale(0.4) rotate(180) translate(10,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lstart"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow1Lstart"
+ style="overflow:visible">
+ <path
+ id="path3878"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt"
+ transform="scale(0.8) translate(12.5,0)" />
+ </marker>
+ <clipPath
+ id="clipEmfPath1"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect2990"
+ height="213.83858"
+ width="585"
+ y="0"
+ x="0" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath2"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect2993"
+ height="71.379494"
+ width="66.300003"
+ y="118.0161"
+ x="132.75" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath3"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect2996"
+ height="72.879066"
+ width="66.300003"
+ y="19.794313"
+ x="132.3" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath4"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect2999"
+ height="75.428337"
+ width="65.699997"
+ y="56.983631"
+ x="31.200001" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath5"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect3002"
+ height="157.60474"
+ width="168"
+ y="16.795176"
+ x="331.95001" />
+ </clipPath>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="3.959798"
+ inkscape:cx="287.6677"
+ inkscape:cy="153.39982"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:window-width="1200"
+ inkscape:window-height="1857"
+ inkscape:window-x="-8"
+ inkscape:window-y="-8"
+ inkscape:window-maximized="1"
+ fit-margin-top="0"
+ fit-margin-left="0"
+ fit-margin-right="0"
+ fit-margin-bottom="0" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-82.82706,-337.43917)">
+ <text
+ xml:space="preserve"
+ x="797.93707"
+ y="551.73584"
+ style="font-size:17.86045074px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Calibri"
+ id="text3006"
+ transform="scale(0.90359163,1.1066946)"> </text>
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath1)"
+ d="m 132.375,113.1425 0,80.97674 66.9,0 0,-80.97674 -66.9,0 z"
+ id="path3008"
+ transform="matrix(1.1694604,0,0,1.4323235,83.010165,320.85569)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01213346;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.03640038,0.01213346;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 237.46665,598.89724 0,-3.43659 0.70167,0 0,3.43659 z m 0,-6.01403 0,-3.43658 0.70167,0 0,3.43658 z m 0,-6.01404 0,-3.43658 0.70167,0 0,3.43658 z m 0,-6.01402 0,-3.43659 0.70167,0 0,3.43659 z m 0,-6.01403 0,-3.4366 0.70167,0 0,3.4366 z m 0,-6.01404 0,-3.43659 0.70167,0 0,3.43659 z m 0,-6.01402 0,-3.43659 0.70167,0 0,3.43659 z m 0,-6.01404 0,-3.43659 0.70167,0 0,3.43659 z m 0,-6.01403 0,-3.43659 0.70167,0 0,3.43659 z m 0,-6.01402 0,-3.43659 0.70167,0 0,3.43659 z m 0,-6.01404 0,-3.43659 0.70167,0 0,3.43659 z m 0,-6.01403 0,-3.43659 0.70167,0 0,3.43659 z m 0,-6.01404 0,-3.43659 0.70167,0 0,3.43659 z m 0,-6.01403 0,-3.43658 0.70167,0 0,3.43658 z m 0,-6.01402 0,-3.43659 0.70167,0 0,3.43659 z m 0,-6.01404 0,-3.43659 0.70167,0 0,3.43659 z m 0,-6.01403 0,-3.43658 0.70167,0 0,3.43658 z m 0,-6.01404 0,-3.43658 0.70167,0 0,3.43658 z m 0,-6.01402 0,-3.43659 0.70167,0 0,3.43659 z m 0,-6.01403 0,-1.7183 c 0,-0.22821 0.16445,-0.42957 0.35084,-0.42957 l 1.40335,0 0,0.85914 -1.40335,0 0.35083,-0.42957 0,1.7183 z m 3.85922,-2.14787 2.8067,0 0,0.85914 -2.8067,0 z m 4.91173,0 2.80671,0 0,0.85914 -2.80671,0 z m 4.91173,0 2.80671,0 0,0.85914 -2.80671,0 z m 4.91174,0 2.8067,0 0,0.85914 -2.8067,0 z m 4.91173,0 2.80671,0 0,0.85914 -2.80671,0 z m 4.91174,0 2.8067,0 0,0.85914 -2.8067,0 z m 4.91173,0 2.8067,0 0,0.85914 -2.8067,0 z m 4.91173,0 2.80671,0 0,0.85914 -2.80671,0 z m 4.91174,0 2.8067,0 0,0.85914 -2.8067,0 z m 4.91173,0 2.8067,0 0,0.85914 -2.8067,0 z m 4.91173,0 2.80671,0 0,0.85914 -2.80671,0 z m 4.91174,0 2.8067,0 0,0.85914 -2.8067,0 z m 4.91173,0 2.80671,0 0,0.85914 -2.80671,0 z m 4.91173,0 2.80671,0 0,0.85914 -2.80671,0 z m 4.91174,0 2.8067,0 0,0.85914 -2.8067,0 z m 4.91173,0 1.05252,0 c 0.19734,0 0.35083,0.20136 0.35083,0.42957 l 0,2.14787 -0.70167,0 0,-2.14787 0.35084,0.42957 -1.05252,0 z m 1.40335,5.15488 0,3.43659 -0.70167,0 0,-3.43659 z m 0,6.01404 0,3.43659 -0.70167,0 0,-3.43659 z m 0,6.01402 0,3.43659 -0.70167,0 0,-3.43659 z m 0,6.01404 0,3.43659 -0.70167,0 0,-3.43659 z m 0,6.01403 0,3.43659 -0.70167,!
0 0,-3.4
3659 z m 0,6.01403 0,3.43658 -0.70167,0 0,-3.43658 z m 0,6.01403 0,3.43659 -0.70167,0 0,-3.43659 z m 0,6.01403 0,3.43659 -0.70167,0 0,-3.43659 z m 0,6.01404 0,3.43659 -0.70167,0 0,-3.43659 z m 0,6.01403 0,3.43658 -0.70167,0 0,-3.43658 z m 0,6.01402 0,3.43659 -0.70167,0 0,-3.43659 z m 0,6.01404 0,3.43659 -0.70167,0 0,-3.43659 z m 0,6.01403 0,3.43659 -0.70167,0 0,-3.43659 z m 0,6.01402 0,3.43661 -0.70167,0 0,-3.43661 z m 0,6.01404 0,3.43659 -0.70167,0 0,-3.43659 z m 0,6.01403 0,3.43659 -0.70167,0 0,-3.43659 z m 0,6.01404 0,3.43659 -0.70167,0 0,-3.43659 z m 0,6.01402 0,3.43659 -0.70167,0 0,-3.43659 z m 0,6.01403 0,3.00702 c 0,0.24163 -0.15349,0.42958 -0.35083,0.42958 l -0.35084,0 0,-0.85915 0.35084,0 -0.35084,0.42957 0,-3.00702 z m -2.8067,3.4366 -2.80671,0 0,-0.85915 2.80671,0 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 z m -4.91174,0 -2.8067,0 0,-0.85915 2.8067,0 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 z m -4.91174,0 -2.8067,0 0,-0.85915 2.8067,0 z m -4.91173,0 -2.8067,0 0,-0.85915 2.8067,0 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 z m -4.91174,0 -2.8067,0 0,-0.85915 2.8067,0 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 z m -4.91174,0 -2.8067,0 0,-0.85915 2.8067,0 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 z m -4.91174,0 -2.8067,0 0,-0.85915 2.8067,0 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 z m -4.91174,0 -2.10502,0 0,-0.85915 2.10502,0 z"
+ id="path3010" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath2)"
+ d="m 131.925,14.920714 0,82.626267 66.9,0 0,-82.626267 -66.9,0 z"
+ id="path3012"
+ transform="matrix(1.1694604,0,0,1.4323235,83.010165,320.85569)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01213346;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.04853384,0.01213346;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 236.94039,460.57452 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01404 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01404 0,-3.43658 0.70168,0 0,3.43658 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 z m 1.92961,-4.51052 2.8067,0 0,0.85914 -2.8067,0 z m 4.91173,0 2.80671,0 0,0.85914 -2.80671,0 z m 4.91174,0 2.8067,0 0,0.85914 -2.8067,0 z m 4.91173,0 2.80671,0 0,0.85914 -2.80671,0 z m 4.91173,0 2.80671,0 0,0.85914 -2.80671,0 z m 4.91174,0 2.8067,0 0,0.85914 -2.8067,0 z m 4.91173,0 2.80671,0 0,0.85914 -2.80671,0 z m 4.91174,0 2.8067,0 0,0.85914 -2.8067,0 z m 4.91173,0 2.8067,0 0,0.85914 -2.8067,0 z m 4.91173,0 2.80671,0 0,0.85914 -2.80671,0 z m 4.91174,0 2.8067,0 0,0.85914 -2.8067,0 z m 4.91173,0 2.80671,0 0,0.85914 -2.80671,0 z m 4.91173,0 2.80671,0 0,0.85914 -2.80671,0 z m 4.91174,0 2.8067,0 0,0.85914 -2.8067,0 z m 4.91173,0 2.80671,0 0,0.85914 -2.80671,0 z m 4.91174,0 2.8067,0 0,0.85914 -2.8067,0 z m 3.33296,2.79222 0,3.43659 -0.70168,0 0,-3.43659 z m 0,6.01404 0,3.43658 -0.70168,0 0,-3.43658 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 z m 0,6.01403 0,!
3.43659
-0.70168,0 0,-3.43659 z m 0,6.01404 0,3.43659 -0.70168,0 0,-3.43659 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 z m 0,6.01404 0,3.43658 -0.70168,0 0,-3.43658 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 z m 0,6.01403 0,1.71829 c 0,0.24164 -0.15349,0.42958 -0.35084,0.42958 l -1.40335,0 0,-0.85915 1.40335,0 -0.35084,0.42957 0,-1.71829 z m -3.85922,2.14787 -2.80671,0 0,-0.85915 2.80671,0 z m -4.91174,0 -2.8067,0 0,-0.85915 2.8067,0 z m -4.91173,0 -2.8067,0 0,-0.85915 2.8067,0 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 z m -4.91174,0 -2.8067,0 0,-0.85915 2.8067,0 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 z m -4.91174,0 -2.8067,0 0,-0.85915 2.8067,0 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 z m -4.91174,0 -2.8067,0 0,-0.85915 2.8067,0 z m -4.91173,0 -2.8067,0 0,-0.85915 2.8067,0 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 z m -4.91174,0 -2.8067,0 0,-0.85915 2.8067,0 z m -4.91173,0 -2.8067,0 0,-0.85915 2.8067,0 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 z m -4.91174,0 -1.05251,0 0,-0.85915 1.05251,0 z"
+ id="path3014" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath3)"
+ d="m 30.825,52.110032 0,85.025578 66.3,0 0,-85.025578 -66.3,0 z"
+ id="path3016"
+ transform="matrix(1.1694604,0,0,1.4323235,83.010165,320.85569)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01213346;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.03640038,0.01213346;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 118.70794,517.27825 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01403 0,-3.4366 0.70168,0 0,3.4366 z m 0,-6.01404 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01402 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01404 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01403 0,-3.4366 0.70168,0 0,3.4366 z m 0,-6.01404 0,-3.43658 0.70168,0 0,3.43658 z m 0,-6.01402 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01404 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01404 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01403 0,-3.43658 0.70168,0 0,3.43658 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01403 0,-1.50351 c 0,-0.22821 0.16446,-0.42957 0.35084,-0.42957 l 1.57877,0 0,0.85915 -1.57877,0 0.35084,-0.42958 0,1.50351 z m 4.03464,-1.93308 2.80671,0 0,0.85915 -2.80671,0 z m 4.91174,0 2.8067,0 0,0.85915 -2.8067,0 z m 4.91173,0 2.8067,0 0,0.85915 -2.8067,0 z m 4.91173,0 2.80671,0 0,0.85915 -2.80671,0 z m 4.91174,0 2.8067,0 0,0.85915 -2.8067,0 z m 4.91173,0 2.80671,0 0,0.85915 -2.80671,0 z m 4.91173,0 2.80671,0 0,0.85915 -2.80671,0 z m 4.91174,0 2.8067,0 0,0.85915 -2.8067,0 z m 4.91173,0 2.80671,0 0,0.85915 -2.80671,0 z m 4.91174,0 2.8067,0 0,0.85915 -2.8067,0 z m 4.91173,0 2.8067,0 0,0.85915 -2.8067,0 z m 4.91173,0 2.80671,0 0,0.85915 -2.80671,0 z m 4.91174,0 2.8067,0 0,0.85915 -2.8067,0 z m 4.91173,0 2.8067,0 0,0.85915 -2.8067,0 z m 4.91173,0 2.80671,0 0,0.85915 -2.80671,0 z m 4.91174,0 0.17542,0 c 0.19734,0 0.35083,0.20136 0.35083,0.42957 l 0,3.22181 -0.70167,0 0,-3.22181 0.35084,0.42958 -0.17542,0 z m 0.52625,6.22882 0,3.43659 -0.70167,0 0,-3.43659 z m 0,6.01403 0,3.43659 -0.70167,0 0,-3.43659 z m 0,6.01403 0,3.43659 -0.70167,0 0,-3.43659 z m 0,6.01403 0,3.43659 -0.70167,!
0 0,-3.4
3659 z m 0,6.01403 0,3.43659 -0.70167,0 0,-3.43659 z m 0,6.01403 0,3.43659 -0.70167,0 0,-3.43659 z m 0,6.01404 0,3.43658 -0.70167,0 0,-3.43658 z m 0,6.01403 0,3.43659 -0.70167,0 0,-3.43659 z m 0,6.01403 0,3.43659 -0.70167,0 0,-3.43659 z m 0,6.01403 0,3.43659 -0.70167,0 0,-3.43659 z m 0,6.01403 0,3.43659 -0.70167,0 0,-3.43659 z m 0,6.01403 0,3.43659 -0.70167,0 0,-3.43659 z m 0,6.01404 0,3.43659 -0.70167,0 0,-3.43659 z m 0,6.01402 0,3.43659 -0.70167,0 0,-3.43659 z m 0,6.01403 0,3.4366 -0.70167,0 0,-3.4366 z m 0,6.01404 0,3.43659 -0.70167,0 0,-3.43659 z m 0,6.01402 0,3.43659 -0.70167,0 0,-3.43659 z m 0,6.01404 0,3.43659 -0.70167,0 0,-3.43659 z m 0,6.01403 0,3.43659 -0.70167,0 0,-3.43659 z m 0,6.01403 0,1.7183 c 0,0.24163 -0.15349,0.42957 -0.35083,0.42957 l -1.40336,0 0,-0.85914 1.40336,0 -0.35084,0.42957 0,-1.7183 z m -3.85921,2.14787 -2.80671,0 0,-0.85914 2.80671,0 z m -4.91174,0 -2.8067,0 0,-0.85914 2.8067,0 z m -4.91173,0 -2.80671,0 0,-0.85914 2.80671,0 z m -4.91174,0 -2.8067,0 0,-0.85914 2.8067,0 z m -4.91173,0 -2.8067,0 0,-0.85914 2.8067,0 z m -4.91173,0 -2.80671,0 0,-0.85914 2.80671,0 z m -4.91174,0 -2.8067,0 0,-0.85914 2.8067,0 z m -4.91173,0 -2.80671,0 0,-0.85914 2.80671,0 z m -4.91173,0 -2.80671,0 0,-0.85914 2.80671,0 z m -4.91174,0 -2.8067,0 0,-0.85914 2.8067,0 z m -4.91173,0 -2.80671,0 0,-0.85914 2.80671,0 z m -4.91174,0 -2.8067,0 0,-0.85914 2.8067,0 z m -4.91173,0 -2.8067,0 0,-0.85914 2.8067,0 z m -4.91173,0 -2.80671,0 0,-0.85914 2.80671,0 z m -4.91174,0 -2.8067,0 0,-0.85914 2.8067,0 z m -4.91173,0 -0.35084,0 0,-0.85914 0.35084,0 z"
+ id="path3018" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ clip-path="url(#clipEmfPath4)"
+ d="m 15.225,83.001159 3.253125,0 c 0.35625,0 0.646875,0.299914 0.646875,0.656061 l 0,16.73894 -3.9,0 z"
+ id="path3020"
+ transform="matrix(1.1694604,0,0,1.4323235,83.010165,320.85569)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 105.3761,439.52541 3.8044,0 c 0.41662,0 0.75649,0.42958 0.75649,0.9397 l 0,24.19036 -4.56089,0 z"
+ id="path3022" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 109.93699,439.7402 3.66187,0 c 0.40566,0 0.72361,0.40273 0.72361,0.89942 l 0,24.01585 -4.38548,0 z"
+ id="path3024" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 130.46102,435.44446 0,75.17539 60.695,0 0,-75.17539 -60.695,0 z"
+ id="path3026" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.77654135px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 130.46102,435.44446 60.695,0 0,75.17539 -60.695,0 z"
+ id="path3028" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 100.8152,483.12714 3.8044,0 c 0.41662,0 0.7565,0.42957 0.7565,0.93969 l 0,23.97558 -4.5609,0 z"
+ id="path3030" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 105.3761,482.91235 3.8044,0 c 0.41662,0 0.75649,0.42957 0.75649,0.93969 l 0,24.19037 -4.56089,0 z"
+ id="path3032" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 109.93699,483.12714 3.66187,0 c 0.40566,0 0.72361,0.40273 0.72361,0.89942 l 0,24.01585 -4.38548,0 z"
+ id="path3034" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 216.06552,512.55294 3.66187,0 c 0.40566,0 0.72361,0.40273 0.72361,0.89941 l 0,24.23065 -4.38548,0 z"
+ id="path3036" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 220.451,512.55294 3.80439,0 c 0.41662,0 0.7565,0.42957 0.7565,0.93969 l 0,23.97558 -4.56089,0 z"
+ id="path3038" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 225.01189,512.55294 3.8044,0 c 0.41662,0 0.7565,0.42957 0.7565,0.93969 l 0,24.19037 -4.5609,0 z"
+ id="path3040" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 248.86889,377.88159 0,75.17539 60.51957,0 0,-75.17539 -60.51957,0 z"
+ id="path3042" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.77654135px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 248.86889,377.88159 60.51957,0 0,75.17539 -60.51957,0 z"
+ id="path3044" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 249.57056,488.06724 0,75.17539 60.695,0 0,-75.17539 -60.695,0 z"
+ id="path3046" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.77654135px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 249.57056,488.06724 60.695,0 0,75.17539 -60.695,0 z"
+ id="path3048" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 216.06552,404.30037 3.66187,0 c 0.40566,0 0.72361,0.40273 0.72361,0.89942 l 0,24.01586 -4.38548,0 z"
+ id="path3050" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 220.451,404.30037 3.80439,0 c 0.41662,0 0.7565,0.42958 0.7565,0.9397 l 0,23.97558 -4.56089,0 z"
+ id="path3052" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 225.01189,404.30037 3.8044,0 c 0.41662,0 0.7565,0.42958 0.7565,0.9397 l 0,23.97558 -4.5609,0 z"
+ id="path3054" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01213346;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:0.01213346,0.01213346;stroke-miterlimit:4;stroke-dashoffset:0;marker-mid:none"
+ d="m 114.36632,451.31184 9.51649,0.57724 -0.0768,1.78542 -9.51648,-0.57724 0.0768,-1.78542 z m 9.48359,1.47666 -2.70803,-5.54418 8.54072,5.89321 -8.97926,4.8327 3.14657,-5.18173 z"
+ id="path3056" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01213346;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:0.01213346,0.01213346;stroke-miterlimit:4;stroke-dashoffset:0;marker-mid:none"
+ d="m 115.24342,495.34314 9.51648,0.56382 -0.0768,1.78541 -9.51648,-0.56381 0.0768,-1.78542 z m 9.48359,1.46324 -2.70803,-5.54418 8.54071,5.89321 -8.9683,4.8327 3.13562,-5.18173 z"
+ id="path3058" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01213346;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:0.01213346,0.01213346;stroke-miterlimit:4;stroke-dashoffset:0;marker-mid:none"
+ d="m 191.15602,445.78108 12.2574,0 0,-28.37871 -0.73457,0.89942 5.66823,0 0,-1.78542 -6.40279,0 0,28.36529 0.73456,-0.886 -11.52283,0 0,1.78542 z m 17.19106,-28.37871 -2.91634,5.36967 8.77095,-5.36967 -8.77095,-5.36967 2.91634,5.36967 z"
+ id="path3060" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01213346;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:0.01213346,0.01213346;stroke-miterlimit:4;stroke-dashoffset:0;marker-mid:none"
+ d="m 192.03311,499.85366 11.87367,0 0,23.8145 -0.73456,-0.89943 5.2845,0 0,1.78542 -6.01906,0 0,-23.81448 0.73456,0.89941 -11.13911,0 0,-1.78542 z m 16.42361,23.8145 -2.91634,-5.36968 8.77095,5.36968 -8.77095,5.36966 2.91634,-5.36966 z"
+ id="path3062" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01213346;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:0.01213346,0.01213346;stroke-miterlimit:4;stroke-dashoffset:0;marker-mid:none"
+ d="m 82.96631,451.31184 9.516484,0.57724 -0.07675,1.78542 -9.516484,-0.57724 0.07675,-1.78542 z m 9.483593,1.47666 -2.708032,-5.54418 8.540716,5.89321 -8.979263,4.8327 3.146579,-5.18173 z"
+ id="path3064" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01213346;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:0.01213346,0.01213346;stroke-miterlimit:4;stroke-dashoffset:0;marker-mid:none"
+ d="m 83.667986,494.48399 9.516484,0.57724 -0.07675,1.78542 -9.516484,-0.57724 0.07675,-1.78542 z m 9.483593,1.47666 -2.708031,-5.54418 8.540715,5.89321 -8.979263,4.83271 3.146579,-5.18174 z"
+ id="path3066" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01213346px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 230.28542,414.58329 12.57536,0.0268 0,1.78542 -12.58631,-0.0268 0.0105,-1.78542 z m 12.57536,0.92627 -2.91634,-5.38309 8.75999,5.39651 -8.77096,5.34283 2.92731,-5.35625 z"
+ id="path3068" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01213346;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:0.01213346,0.01213346;stroke-miterlimit:4;stroke-dashoffset:0;marker-mid:none"
+ d="m 229.59472,524.12458 14.12123,0.36245 -0.0329,1.78542 -14.12123,-0.36246 0.0329,-1.78541 z m 14.0993,1.24844 -2.82863,-5.43678 8.67228,5.58446 -8.85866,5.15487 3.01501,-5.30255 z"
+ id="path3070" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01213346;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:0.01213346,0.01213346;stroke-miterlimit:4;stroke-dashoffset:0;marker-mid:none"
+ d="m 310.27652,412.865 12.57535,0.0268 0,1.78541 -12.58631,-0.0269 0.0105,-1.78542 z m 12.57535,0.92627 -2.91634,-5.3831 8.75999,5.39652 -8.77096,5.34282 2.92731,-5.35624 z"
+ id="path3072" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01213346;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:0.01213346,0.01213346;stroke-miterlimit:4;stroke-dashoffset:0;marker-mid:none"
+ d="m 310.97819,524.55415 12.57536,0.0268 0,1.78542 -12.58632,-0.0268 0.0105,-1.78542 z m 12.57536,0.92627 -2.91634,-5.3831 8.75998,5.39652 -8.77095,5.34282 2.92731,-5.35624 z"
+ id="path3074" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 329.38623,401.50814 3.8044,0 c 0.41662,0 0.7565,0.42958 0.7565,0.9397 l 0,24.19036 -4.5609,0 z"
+ id="path3076" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 333.94713,401.50814 3.8044,0 c 0.41662,0 0.7565,0.42958 0.7565,0.9397 l 0,23.97558 -4.5609,0 z"
+ id="path3078" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 338.50803,401.50814 3.8044,0 c 0.41661,0 0.75649,0.42958 0.75649,0.9397 l 0,24.19036 -4.56089,0 z"
+ id="path3080" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 330.78959,512.55294 3.66187,0 c 0.40566,0 0.7236,0.40273 0.7236,0.89941 l 0,24.23065 -4.38547,0 z"
+ id="path3082" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 335.17506,512.55294 3.8044,0 c 0.41663,0 0.7565,0.42957 0.7565,0.93969 l 0,24.19037 -4.5609,0 z"
+ id="path3084" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 339.73596,512.55294 3.80439,0 c 0.41664,0 0.7565,0.42957 0.7565,0.93969 l 0,24.19037 -4.56089,0 z"
+ id="path3086" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.012;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:0.012,0.012;stroke-miterlimit:4;stroke-dashoffset:0;marker-mid:none"
+ d="m 343.95699,412.865 12.57534,0.0268 0,1.78541 -12.58631,-0.0269 0.0105,-1.78542 z m 12.57534,0.92627 -2.91634,-5.3831 8.75999,5.39652 -8.77096,5.34282 2.92731,-5.35624 z"
+ id="path3088" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01213346;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:0.01213346,0.01213346;stroke-miterlimit:4;stroke-dashoffset:0;marker-mid:none"
+ d="m 344.30781,524.76894 12.57536,0.0268 0,1.78542 -12.58632,-0.0268 0.0105,-1.7854 z m 12.57536,0.92627 -2.91634,-5.3831 8.75998,5.39652 -8.77095,5.34283 2.92731,-5.35625 z"
+ id="path3090" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.02426692;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.09706768,0.02426692;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 470.42316,577.41856 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01404 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01403 0,-3.43658 0.70168,0 0,3.43658 -0.70168,0 z m 0,-6.01402 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01404 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01403 0,-3.43658 0.70168,0 0,3.43658 -0.70168,0 z m 0,-6.01402 0,-3.4366 0.70168,0 0,3.4366 -0.70168,0 z m 0,-6.01404 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01404 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01402 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01403 0,-3.4366 0.70168,0 0,3.4366 -0.70168,0 z m 0,-6.01404 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01402 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01404 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01403 0,-3.4366 0.70168,0 0,3.4366 -0.70168,0 z m 0,-6.01404 0,-3.43658 0.70168,0 0,3.43658 -0.70168,0 z m 0,-6.01402 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01404 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01404 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01403 0,-3.43658 0.70168,0 0,3.43658 -0.70168,0 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01403 0,-3.43659 0.7016!
8,0 0,3.
43659 -0.70168,0 z m 0,-6.01404 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 1.22793,-5.36967 2.80671,0 0,0.85915 -2.80671,0 0,-0.85915 z m 4.91174,0 2.8067,0 0,0.85915 -2.8067,0 0,-0.85915 z m 4.91173,0 2.8067,0 0,0.85915 -2.8067,0 0,-0.85915 z m 4.91173,0 2.80671,0 0,0.85915 -2.80671,0 0,-0.85915 z m 4.91174,0 2.8067,0 0,0.85915 -2.8067,0 0,-0.85915 z m 4.91173,0 2.80671,0 0,0.85915 -2.80671,0 0,-0.85915 z m 4.91173,0 2.80671,0 0,0.85915 -2.80671,0 0,-0.85915 z m 4.91174,0 2.8067,0 0,0.85915 -2.8067,0 0,-0.85915 z m 4.91173,0 2.80671,0 0,0.85915 -2.80671,0 0,-0.85915 z m 4.91174,0 2.8067,0 0,0.85915 -2.8067,0 0,-0.85915 z m 4.91173,0 2.8067,0 0,0.85915 -2.8067,0 0,-0.85915 z m 4.91173,0 2.80671,0 0,0.85915 -2.80671,0 0,-0.85915 z m 4.91174,0 2.8067,0 0,0.85915 -2.8067,0 0,-0.85915 z m 4.91173,0 2.80671,0 0,0.85915 -2.80671,0 0,-0.85915 z m 4.91173,0 2.80671,0 0,0.85915 -2.80671,0 0,-0.85915 z m 4.91174,0 2.8067,0 0,0.85915 -2.8067,0 0,-0.85915 z m 4.91173,0 2.80671,0 0,0.85915 -2.80671,0 0,-0.85915 z m 4.91173,0 2.80671,0 0,0.85915 -2.80671,0 0,-0.85915 z m 4.91174,0 2.8067,0 0,0.85915 -2.8067,0 0,-0.85915 z m 4.91173,0 2.80671,0 0,0.85915 -2.80671,0 0,-0.85915 z m 4.91174,0 2.8067,0 0,0.85915 -2.8067,0 0,-0.85915 z m 4.91173,0 2.8067,0 0,0.85915 -2.8067,0 0,-0.85915 z m 4.91173,0 2.80671,0 0,0.85915 -2.80671,0 0,-0.85915 z m 4.91174,0 2.8067,0 0,0.85915 -2.8067,0 0,-0.85915 z m 4.91173,0 2.80671,0 0,0.85915 -2.80671,0 0,-0.85915 z m 4.91173,0 2.80671,0 0,0.85915 -2.80671,0 0,-0.85915 z m 4.91174,0 2.8067,0 0,0.85915 -2.8067,0 0,-0.85915 z m 4.91173,0 2.80671,0 0,0.85915 -2.80671,0 0,-0.85915 z m 4.91174,0 2.8067,0 0,0.85915 -2.8067,0 0,-0.85915 z m 4.91173,0 2.8067,0 0,0.85915 -2.8067,0 0,-0.85915 z m 4.91173,0 2.80671,0 0,0.85915 -2.80671,0 0,-0.85915 z m 4.91174,0 2.8067,0 0,0.85915 -2.8067,0 0,-0.85915 z m 4.91173,0 2.80671,0 0,0!
.85915 -
2.80671,0 0,-0.85915 z m 4.91173,0 2.80671,0 0,0.85915 -2.80671,0 0,-0.85915 z m 4.91174,0 2.8067,0 0,0.85915 -2.8067,0 0,-0.85915 z m 4.91173,0 2.80671,0 0,0.85915 -2.80671,0 0,-0.85915 z m 4.91173,0 2.80671,0 0,0.85915 -2.80671,0 0,-0.85915 z m 4.91174,0 2.8067,0 0,0.85915 -2.8067,0 0,-0.85915 z m 4.91173,0 2.80671,0 0,0.85915 -2.80671,0 0,-0.85915 z m 4.91174,0 2.8067,0 0,0.85915 -2.8067,0 0,-0.85915 z m 5.08715,0.64436 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01404 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01404 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01404 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01402 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01404 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01404 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01402 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z !
m 0,6.01
404 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01403 0,3.43658 -0.70168,0 0,-3.43658 0.70168,0 z m 0,6.01402 0,3.4366 -0.70168,0 0,-3.4366 0.70168,0 z m 0,6.01404 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01403 0,3.43658 -0.70168,0 0,-3.43658 0.70168,0 z m 0,6.01404 0,3.43658 -0.70168,0 0,-3.43658 0.70168,0 z m 0,6.01402 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01403 0,3.4366 -0.70168,0 0,-3.4366 0.70168,0 z m 0,6.01404 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01402 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01404 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m -1.40335,5.15488 -2.80671,0 0,-0.85915 2.80671,0 0,0.85915 z m -4.91174,0 -2.8067,0 0,-0.85915 2.8067,0 0,0.85915 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 0,0.85915 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 0,0.85915 z m -4.91174,0 -2.8067,0 0,-0.85915 2.8067,0 0,0.85915 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 0,0.85915 z m -4.91174,0 -2.8067,0 0,-0.85915 2.8067,0 0,0.85915 z m -4.91173,0 -2.8067,0 0,-0.85915 2.8067,0 0,0.85915 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 0,0.85915 z m -4.91174,0 -2.8067,0 0,-0.85915 2.8067,0 0,0.85915 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 0,0.85915 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 0,0.85915 z m -4.91174,0 -2.8067,0 0,-0.85915 2.8067,0 0,0.85915 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 0,0.85915 z m -4.91174,0 -2.8067,0 0,-0.85915 2.8067,0 0,0.85915 z m -4.91173,0 -2.8067,0 0,-0.85915 2.8067,0 0,0.85915 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 0,0.85915 z m -4.91174,0 -2.8067,0 0,-0.85915 2.8067,0 0,0.85915 z m -4.91173,0 -2.8067,0 0,-0.85915 2.8067,0 0,0.85915 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 0,0.85915 z m -4.91174,0 -2.8067,0 0,-0.85915 2.8067,0 0,0.85915 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 0,0.85915 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 0,0.85915 z m -4.91174,0 -2.8067,0 0,-0.85915 2.8067,0 0,0.85915 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 0,0.85915 z m -4.91174,0 -2.8067,0 0,-0.!
85915 2.
8067,0 0,0.85915 z m -4.91173,0 -2.8067,0 0,-0.85915 2.8067,0 0,0.85915 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 0,0.85915 z m -4.91174,0 -2.8067,0 0,-0.85915 2.8067,0 0,0.85915 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 0,0.85915 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 0,0.85915 z m -4.91174,0 -2.8067,0 0,-0.85915 2.8067,0 0,0.85915 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 0,0.85915 z m -4.91174,0 -2.8067,0 0,-0.85915 2.8067,0 0,0.85915 z m -4.91173,0 -2.8067,0 0,-0.85915 2.8067,0 0,0.85915 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 0,0.85915 z m -4.91174,0 -2.8067,0 0,-0.85915 2.8067,0 0,0.85915 z m -4.91173,0 -2.8067,0 0,-0.85915 2.8067,0 0,0.85915 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 0,0.85915 z m -4.91174,0 -2.8067,0 0,-0.85915 2.8067,0 0,0.85915 z"
+ id="path3094" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ clip-path="url(#clipEmfPath5)"
+ d="m 315.975,85.250513 3.2625,0 c 0.35625,0 0.6375,0.299914 0.6375,0.656061 l 0,16.738946 -3.9,0 z"
+ id="path3096"
+ transform="matrix(1.1694604,0,0,1.4323235,83.010165,320.85569)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 457.09131,442.74722 3.81537,0 c 0.41662,0 0.74553,0.42957 0.74553,0.93969 l 0,24.19037 -4.5609,0 z"
+ id="path3098" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 461.65221,442.962 3.66187,0 c 0.41662,0 0.7236,0.40273 0.7236,0.91285 l 0,24.00243 -4.38547,0 z"
+ id="path3100" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 482.17624,438.66627 0,75.17539 60.69499,0 0,-75.17539 -60.69499,0 z"
+ id="path3102" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.77654135px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 482.17624,438.66627 60.69499,0 0,75.17539 -60.69499,0 z"
+ id="path3104" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 452.53041,486.34894 3.81537,0 c 0.41662,0 0.74553,0.42958 0.74553,0.93969 l 0,23.97559 -4.5609,0 z"
+ id="path3106" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 457.09131,486.13415 3.81537,0 c 0.41662,0 0.74553,0.42958 0.74553,0.9397 l 0,24.19037 -4.5609,0 z"
+ id="path3108" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 461.65221,486.34894 3.66187,0 c 0.41662,0 0.7236,0.40273 0.7236,0.91285 l 0,24.00243 -4.38547,0 z"
+ id="path3110" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 567.78074,515.77474 3.66187,0 c 0.41662,0 0.7236,0.40272 0.7236,0.91285 l 0,24.21721 -4.38547,0 z"
+ id="path3112" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 572.16621,515.77474 3.81537,0 c 0.41662,0 0.74553,0.42957 0.74553,0.93969 l 0,23.97557 -4.5609,0 z"
+ id="path3114" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 576.72711,515.77474 3.81536,0 c 0.41662,0 0.74553,0.42957 0.74553,0.93969 l 0,24.19037 -4.56089,0 z"
+ id="path3116" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 600.5841,381.1034 0,75.17539 60.51958,0 0,-75.17539 -60.51958,0 z"
+ id="path3118" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.77654135px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 600.5841,381.1034 60.51958,0 0,75.17539 -60.51958,0 z"
+ id="path3120" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 601.28578,491.28904 0,75.1754 60.69499,0 0,-75.1754 -60.69499,0 z"
+ id="path3122" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.77654135px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 601.28578,491.28904 60.69499,0 0,75.1754 -60.69499,0 z"
+ id="path3124" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 567.78074,407.52218 3.66187,0 c 0.41662,0 0.7236,0.40272 0.7236,0.91284 l 0,24.00243 -4.38547,0 z"
+ id="path3126" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 572.16621,407.52218 3.81537,0 c 0.41662,0 0.74553,0.42957 0.74553,0.93969 l 0,23.97558 -4.5609,0 z"
+ id="path3128" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 576.72711,407.52218 3.81536,0 c 0.41662,0 0.74553,0.42957 0.74553,0.93969 l 0,23.97558 -4.56089,0 z"
+ id="path3130" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.02426692;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:0.02426692,0.02426692;stroke-miterlimit:4;stroke-dashoffset:0;marker-mid:none"
+ d="m 466.08154,454.53364 9.51648,0.59067 -0.0657,1.77199 -9.51649,-0.56382 0.0657,-1.79884 z m 9.49455,1.47666 -2.71899,-5.53076 8.55168,5.87979 -8.99023,4.83271 3.15754,-5.18174 z"
+ id="path3132" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.02426692;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:0.02426692,0.02426692;stroke-miterlimit:4;stroke-dashoffset:0;marker-mid:none"
+ d="m 466.95863,498.56494 9.51649,0.56382 -0.0657,1.79884 -9.51648,-0.56382 0.0657,-1.79884 z m 9.47263,1.47667 -2.69707,-5.55762 8.55168,5.90665 -8.9683,4.8327 3.11369,-5.18173 z"
+ id="path3134" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.02426692;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:0.02426692,0.02426692;stroke-miterlimit:4;stroke-dashoffset:0;marker-mid:none"
+ d="m 542.87123,449.00288 12.25741,0 0,-28.37871 -0.72361,0.91285 5.65727,0 0,-1.79884 -6.4028,0 0,28.37871 0.74553,-0.886 -11.5338,0 0,1.77199 z m 17.19107,-28.37871 -2.91634,5.36967 8.77095,-5.36967 -8.77095,-5.36967 2.91634,5.36967 z"
+ id="path3136" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.02426692;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:0.02426692,0.02426692;stroke-miterlimit:4;stroke-dashoffset:0;marker-mid:none"
+ d="m 543.74833,503.07547 11.88464,0 0,23.81448 -0.74553,-0.88599 5.2845,0 0,1.77199 -6.00811,0 0,-23.81449 0.72361,0.91285 -11.13911,0 0,-1.79884 z m 16.42361,23.81448 -2.91635,-5.36966 8.77096,5.36966 -8.77096,5.36967 2.91635,-5.36967 z"
+ id="path3138" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.02426692;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:0.02426692,0.02426692;stroke-miterlimit:4;stroke-dashoffset:0;marker-mid:none"
+ d="m 434.68153,454.53364 9.51648,0.59067 -0.0658,1.77199 -9.51649,-0.56382 0.0657,-1.79884 z m 9.49455,1.47666 -2.71899,-5.53076 8.55168,5.87979 -8.99023,4.83271 3.15754,-5.18174 z"
+ id="path3140" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.02426692;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:0.02426692,0.02426692;stroke-miterlimit:4;stroke-dashoffset:0;marker-mid:none"
+ d="m 435.3832,497.70579 9.51649,0.59068 -0.0657,1.77198 -9.51648,-0.56382 0.0657,-1.79884 z m 9.49456,1.47667 -2.719,-5.53076 8.55168,5.87979 -8.99022,4.8327 3.15754,-5.18173 z"
+ id="path3142" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.02426692;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:0.02426692,0.02426692;stroke-miterlimit:4;stroke-dashoffset:0;marker-mid:none"
+ d="m 582.01161,417.8051 12.56439,0.0268 0,1.79884 -12.58632,-0.0269 0.022,-1.79884 z m 12.56439,0.93969 -2.91634,-5.39652 8.77095,5.39652 -8.77095,5.34282 2.91634,-5.34282 z"
+ id="path3144" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.02426692;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:0.02426692,0.02426692;stroke-miterlimit:4;stroke-dashoffset:0;marker-mid:none"
+ d="m 581.30993,527.34638 14.12124,0.37587 -0.022,1.772 -14.12123,-0.34903 0.022,-1.79884 z m 14.09931,1.26188 -2.82863,-5.45022 8.68324,5.58445 -8.85866,5.15489 3.00405,-5.28912 z"
+ id="path3146" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.02426692;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:0.02426692,0.02426692;stroke-miterlimit:4;stroke-dashoffset:0;marker-mid:none"
+ d="m 662.0027,416.0868 12.56439,0.0269 0,1.79884 -12.58632,-0.0269 0.022,-1.79884 z m 12.56439,0.93969 -2.91634,-5.39652 8.77095,5.39652 -8.77095,5.34282 2.91634,-5.34282 z"
+ id="path3148" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.02426692;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:0.02426692,0.02426692;stroke-miterlimit:4;stroke-dashoffset:0;marker-mid:none"
+ d="m 662.70438,527.77595 12.56439,0.0268 0,1.79884 -12.58632,-0.0268 0.022,-1.79884 z m 12.56439,0.9397 -2.91635,-5.39652 8.77096,5.39652 -8.77096,5.34281 2.91635,-5.34281 z"
+ id="path3150" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 681.10145,404.72995 3.81536,0 c 0.41662,0 0.74554,0.42957 0.74554,0.93969 l 0,24.19037 -4.5609,0 z"
+ id="path3152" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 685.66235,404.72995 3.81536,0 c 0.41662,0 0.74553,0.42957 0.74553,0.93969 l 0,23.97558 -4.56089,0 z"
+ id="path3154" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 690.22324,404.72995 3.81537,0 c 0.41662,0 0.74553,0.42957 0.74553,0.93969 l 0,24.19037 -4.5609,0 z"
+ id="path3156" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 682.5048,515.77474 3.66188,0 c 0.41662,0 0.7236,0.40272 0.7236,0.91285 l 0,24.21721 -4.38548,0 z"
+ id="path3158" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 686.89028,515.77474 3.81536,0 c 0.41662,0 0.74553,0.42957 0.74553,0.93969 l 0,24.19037 -4.56089,0 z"
+ id="path3160" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 691.45117,515.77474 3.81537,0 c 0.41662,0 0.74553,0.42957 0.74553,0.93969 l 0,24.19037 -4.5609,0 z"
+ id="path3162" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.02426692px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 695.68316,416.0868 12.56439,0.0269 0,1.79884 -12.58632,-0.0269 0.0219,-1.79884 z m 12.56439,0.93969 -2.91634,-5.39652 8.77095,5.39652 -8.77095,5.34282 2.91634,-5.34282 z"
+ id="path3164" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.02426692px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 696.034,527.99074 12.56439,0.0269 0,1.79882 -12.58632,-0.0268 0.022,-1.79884 z m 12.56439,0.93969 -2.91634,-5.39652 8.77095,5.39652 -8.77095,5.34282 2.91634,-5.34282 z"
+ id="path3166" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 374.1181,472.44149 42.53912,0 0,-3.49028 5.70112,6.98057 -5.70112,6.98057 0,-3.49028 -42.53912,0 z"
+ id="path3168" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 374.1181,472.44149 42.53912,0 0,-3.49028 5.70112,6.98057 -5.70112,6.98057 0,-3.49028 -42.53912,0 z"
+ id="path3170" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="blocks"
+ transform="translate(-82.82706,-337.43917)">
+ <rect
+ style="fill:none;stroke:#000000;stroke-width:0;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:0,0;stroke-dashoffset:0;stroke-linejoin:miter"
+ id="rect4431"
+ width="61.07143"
+ height="75.714287"
+ x="247.14285"
+ y="377.00504" />
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="129.47055"
+ y="417.48993"
+ id="text4458-5-6"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4460-7-1"
+ x="129.47055"
+ y="417.48993"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans">CPU Core 1</tspan><tspan
+ sodipodi:role="line"
+ x="129.47055"
+ y="431.23993"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668" /></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="248.86055"
+ y="358.53632"
+ id="text4458-5-6-8-7"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4460-7-1-9-9"
+ x="248.86055"
+ y="358.53632"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans">CPU Core 2</tspan><tspan
+ sodipodi:role="line"
+ x="248.86055"
+ y="372.28632"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-2-5" /></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="249.61816"
+ y="589.6087"
+ id="text4458-5-6-8-4"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="249.61816"
+ y="589.6087"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-2-1">CPU Core 3</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+ x="145.96704"
+ y="472.28207"
+ id="text4731"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4733"
+ x="145.96704"
+ y="472.28207" /></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="154.6613"
+ y="476.98529"
+ id="text4458-5-6-4"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="154.6613"
+ y="476.98529"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-1">P1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="272.26172"
+ y="419.42242"
+ id="text4458-5-6-4-3"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="272.26172"
+ y="419.42242"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-1-8">P2</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="273.77084"
+ y="529.60803"
+ id="text4458-5-6-4-7"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="273.77084"
+ y="529.60803"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-1-4">P3</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="547.64105"
+ y="361.29749"
+ id="text4458-5-6-3"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4460-7-1-1"
+ x="547.64105"
+ y="361.29749"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans">CPU Core 1</tspan><tspan
+ sodipodi:role="line"
+ x="547.64105"
+ y="375.04749"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-9" /></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="506.37653"
+ y="480.20709"
+ id="text4458-5-6-4-8"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="506.37653"
+ y="480.20709"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-1-6">P1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="623.97693"
+ y="422.64423"
+ id="text4458-5-6-4-3-0"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="623.97693"
+ y="422.64423"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-1-8-2">P2</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="624.72607"
+ y="532.76007"
+ id="text4458-5-6-4-7-4"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="624.72607"
+ y="532.76007"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-1-4-8">P3</tspan></text>
+ </g>
+</svg>
diff --git a/doc/guides/ip_pipeline_ug/img/ip_pipelines_2.svg b/doc/guides/ip_pipeline_ug/img/ip_pipelines_2.svg
new file mode 100644
index 0000000..5252b17
--- /dev/null
+++ b/doc/guides/ip_pipeline_ug/img/ip_pipelines_2.svg
@@ -0,0 +1,997 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="520.43439"
+ height="438.61716"
+ id="svg5382"
+ version="1.1"
+ inkscape:version="0.48.4 r9939"
+ sodipodi:docname="ipPipelines_2_update.svg">
+ <defs
+ id="defs5384">
+ <marker
+ inkscape:stockid="Arrow1Lstart"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow1Lstart"
+ style="overflow:visible">
+ <path
+ id="path4018"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt"
+ transform="scale(0.8) translate(12.5,0)" />
+ </marker>
+ <clipPath
+ id="clipEmfPath1"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect5395"
+ height="465.83859"
+ width="585"
+ y="0"
+ x="0" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath2"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect5398"
+ height="0"
+ width="37.650002"
+ y="202.92325"
+ x="120.9" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath3"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect5401"
+ height="186.87537"
+ width="391.64999"
+ y="247.76733"
+ x="49.650002" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath4"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect5404"
+ height="93.137718"
+ width="142.64999"
+ y="280.01309"
+ x="72.150002" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath5"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect5407"
+ height="13.648201"
+ width="45.900002"
+ y="308.50934"
+ x="76.650002" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath6"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect5410"
+ height="13.648201"
+ width="83.400002"
+ y="308.50934"
+ x="126.15" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath7"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect5413"
+ height="90.888016"
+ width="161.39999"
+ y="333.25607"
+ x="257.39999" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath8"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect5416"
+ height="13.648201"
+ width="54.599998"
+ y="364.75192"
+ x="262.64999" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath9"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect5419"
+ height="13.648201"
+ width="90.150002"
+ y="364.75192"
+ x="321.60001" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath10"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect5422"
+ height="133.63239"
+ width="240"
+ y="75.590034"
+ x="240" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath11"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect5425"
+ height="137.3819"
+ width="191.85001"
+ y="20.847252"
+ x="39.75" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath12"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect5428"
+ height="93.137718"
+ width="142.64999"
+ y="54.592804"
+ x="66.449997" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath13"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect5431"
+ height="13.648201"
+ width="45.900002"
+ y="83.08905"
+ x="70.949997" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath14"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect5434"
+ height="13.648201"
+ width="83.400002"
+ y="83.08905"
+ x="120.45" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath15"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect5437"
+ height="90.888016"
+ width="161.39999"
+ y="107.83578"
+ x="298.95001" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath16"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect5440"
+ height="13.648201"
+ width="54.599998"
+ y="139.33163"
+ x="304.20001" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath17"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect5443"
+ height="13.648201"
+ width="90.150002"
+ y="139.33163"
+ x="363.29999" />
+ </clipPath>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="2.8"
+ inkscape:cx="223.36548"
+ inkscape:cy="227.70504"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:window-width="1083"
+ inkscape:window-height="851"
+ inkscape:window-x="40"
+ inkscape:window-y="767"
+ inkscape:window-maximized="0"
+ fit-margin-top="0"
+ fit-margin-left="0"
+ fit-margin-right="0"
+ fit-margin-bottom="0" />
+ <metadata
+ id="metadata5387">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-132.40505,-338.57503)">
+ <text
+ xml:space="preserve"
+ x="652.83942"
+ y="777.1922"
+ style="font-size:13.80000019px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Calibri"
+ id="text5447"> </text>
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath2)"
+ d="m 49.275,242.89298 0,196.4741 392.25,0 0,-196.4741 -392.25,0 z"
+ id="path5449"
+ transform="translate(112.83943,322.9021)" />
+ <rect
+ style="fill:none;stroke:#000000;stroke-width:1.002;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.006,1.002;stroke-dashoffset:0"
+ id="rect4458-1-7"
+ width="393.01892"
+ height="197.3044"
+ x="161.22458"
+ y="565.61206" />
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ id="rect3945-9"
+ width="15.714286"
+ height="18.571428"
+ x="153.47649"
+ y="664.6922" />
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ id="rect3945-4"
+ width="15.714286"
+ height="18.571428"
+ x="547.40503"
+ y="689.6922" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath3)"
+ d="m 71.775,275.13873 0,102.73646 143.25,0 0,-102.73646 -143.25,0 z"
+ id="path5453"
+ transform="translate(112.83943,322.9021)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 184.61443,598.04083 143.25,0 0,102.73646 -143.25,0 z"
+ id="path5455" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath4)"
+ d="m 76.275,303.63497 0,23.24694 46.5,0 0,-23.24694 -46.5,0 z"
+ id="path5457"
+ transform="translate(112.83943,322.9021)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 189.11443,626.53707 46.5,0 0,23.24694 -46.5,0 z"
+ id="path5459" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath5)"
+ d="m 125.775,303.63497 0,23.24694 84,0 0,-23.24694 -84,0 z"
+ id="path5461"
+ transform="translate(112.83943,322.9021)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 238.61443,626.53707 84,0 0,23.24694 -84,0 z"
+ id="path5463" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath6)"
+ d="m 76.275,329.88151 0,41.99447 46.5,0 0,-41.99447 -46.5,0 z"
+ id="path5465"
+ transform="translate(112.83943,322.9021)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 189.11443,652.78361 46.5,0 0,41.99447 -46.5,0 z"
+ id="path5467" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 238.61443,652.78361 0,42.74437 84,0 0,-42.74437 -84,0 z"
+ id="path5469" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 238.61443,652.78361 84,0 0,42.74437 -84,0 z"
+ id="path5471" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 369.86443,651.28381 0,100.48676 162,0 0,-100.48676 -162,0 z"
+ id="path5473" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 369.86443,651.28381 162,0 0,100.48676 -162,0 z"
+ id="path5475" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath7)"
+ d="m 262.275,359.87756 0,23.24694 55.2,0 0,-23.24694 -55.2,0 z"
+ id="path5477"
+ transform="translate(112.83943,322.9021)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 375.11443,682.77966 55.2,0 0,23.24694 -55.2,0 z"
+ id="path5479" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath8)"
+ d="m 321.225,359.87756 0,23.24694 90.9,0 0,-23.24694 -90.9,0 z"
+ id="path5481"
+ transform="translate(112.83943,322.9021)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 434.06443,682.77966 90.9,0 0,23.24694 -90.9,0 z"
+ id="path5483" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath9)"
+ d="m 261.525,386.874 0,36.74516 55.95,0 0,-36.74516 -55.95,0 z"
+ id="path5485"
+ transform="translate(112.83943,322.9021)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 374.36443,709.7761 55.95,0 0,36.74516 -55.95,0 z"
+ id="path5487" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 434.81443,709.7761 0,36.74516 90.15,0 0,-36.74516 -90.15,0 z"
+ id="path5489" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 434.81443,709.7761 90.15,0 0,36.74516 -90.15,0 z"
+ id="path5491" />
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ id="rect3945-0"
+ width="15.714286"
+ height="18.571428"
+ x="152.76219"
+ y="617.90649" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 155.21443,618.13818 3.2625,0 c 0.35625,0 0.6375,0.29996 0.6375,0.65617 l 0,16.74154 -3.9,0 z"
+ id="path5493" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 159.11443,617.9882 3.13125,0 c 0.35625,0 0.61875,0.28121 0.61875,0.63742 l 0,16.91027 -3.75,0 z"
+ id="path5495" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 162.86443,618.13818 3.2625,0 c 0.35625,0 0.6375,0.29996 0.6375,0.65617 l 0,16.74154 -3.9,0 z"
+ id="path5497" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 159.11443,665.23197 3.13125,0 c 0.35625,0 0.61875,0.28122 0.61875,0.63742 l 0,16.91027 -3.75,0 z"
+ id="path5501" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 162.86443,665.38195 3.2625,0 c 0.35625,0 0.6375,0.29996 0.6375,0.65617 l 0,16.74154 -3.9,0 z"
+ id="path5503" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01875;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.05625,0.01875;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 138.13318,627.94314 12.1125,-0.33746 -0.0375,-1.25608 -12.09375,0.33745 0.0188,1.25609 z m 12.09375,-0.95612 -2.4,3.80574 7.3875,-3.95573 -7.59375,-3.52453 2.60625,3.67452 z"
+ id="path5505" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01875;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.05625,0.01875;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 167.53318,627.94314 12.1125,-0.33746 -0.0375,-1.25608 -12.09375,0.33745 0.0187,1.25609 z m 12.09375,-0.95612 -2.4,3.80574 7.3875,-3.95573 -7.59375,-3.52453 2.60625,3.67452 z"
+ id="path5507" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01875;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.05625,0.01875;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 166.78318,674.43701 12.1125,-0.33746 -0.0375,-1.25608 -12.09375,0.33746 0.0187,1.25608 z m 12.09375,-0.95612 -2.4,3.80574 7.3875,-3.95572 -7.59375,-3.52454 2.60625,3.67452 z"
+ id="path5509" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01875;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.05625,0.01875;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 138.13318,674.43701 12.1125,-0.33746 -0.0375,-1.25608 -12.09375,0.33746 0.0188,1.25608 z m 12.09375,-0.95612 -2.4,3.80574 7.3875,-3.95572 -7.59375,-3.52454 2.60625,3.67452 z"
+ id="path5511" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 155.21443,665.38195 3.2625,0 c 0.35625,0 0.6375,0.29996 0.6375,0.65617 l 0,16.74154 -3.9,0 z"
+ id="path5499" />
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ id="rect3945"
+ width="15.714286"
+ height="18.571428"
+ x="547.40509"
+ y="612.90656" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 548.96443,613.33881 3.2625,0 c 0.35625,0 0.6375,0.29996 0.6375,0.65617 l 0,16.89152 -3.9,0 z"
+ id="path5513" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 552.86443,613.33881 3.13125,0 c 0.35625,0 0.61875,0.28122 0.61875,0.63742 l 0,16.76029 -3.75,0 z"
+ id="path5515" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 556.61443,613.33881 3.2625,0 c 0.35625,0 0.6375,0.29996 0.6375,0.65617 l 0,16.89152 -3.9,0 z"
+ id="path5517" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01875;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.01875,0.01875;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 328.76443,621.419 215.04375,0 0,1.25608 -215.04375,0 0,-1.25608 z m 215.04375,0.61867 -2.49375,-3.74951 7.5,3.74951 -7.5,3.7495 2.49375,-3.7495 z"
+ id="path5519" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01875;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.05625,0.01875;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 560.38318,623.14377 12.1125,-0.33745 -0.0375,-1.25609 -12.09375,0.33746 0.0188,1.25608 z m 12.09375,-0.95612 -2.4,3.80575 7.3875,-3.95573 -7.59375,-3.52454 2.60625,3.67452 z"
+ id="path5521" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01875;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.01875,0.01875;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 329.36443,682.16099 20.86875,0 0,29.93981 -0.61875,-0.63742 15.225,0 0,1.25608 -15.8625,0 0,-29.9398 0.6375,0.63742 -20.25,0 0,-1.25609 z m 35.475,29.93981 -2.49375,-3.74951 7.5,3.74951 -7.5,3.7495 2.49375,-3.7495 z"
+ id="path5523" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 548.81443,690.57863 3.2625,0 c 0.35625,0 0.6375,0.29996 0.6375,0.65617 l 0,16.89152 -3.9,0 z"
+ id="path5525" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 552.71443,690.57863 3.2625,0 c 0.35625,0 0.6375,0.29996 0.6375,0.65617 l 0,16.74154 -3.9,0 z"
+ id="path5527" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 556.61443,690.57863 3.13125,0 c 0.35625,0 0.61875,0.28122 0.61875,0.63742 l 0,16.91027 -3.75,0 z"
+ id="path5529" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01875;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.01875,0.01875;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 530.98318,699.18375 12.1125,-0.33746 -0.0375,-1.25608 -12.09375,0.33745 0.0188,1.25609 z m 12.09375,-0.95613 -2.4,3.80575 7.3875,-3.95573 -7.59375,-3.52453 2.60625,3.67451 z"
+ id="path5531" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01875;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.01875,0.01875;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 561.88318,698.73381 12.1125,-0.33746 -0.0375,-1.25608 -12.09375,0.33745 0.0188,1.25609 z m 12.09375,-0.95613 -2.4,3.80575 7.3875,-3.95573 -7.59375,-3.52453 2.60625,3.67451 z"
+ id="path5533" />
+ <rect
+ style="fill:none;stroke:#000000;stroke-width:1.03885794;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.11657381,1.03885794;stroke-dashoffset:0"
+ id="rect4458-1"
+ width="212.04707"
+ height="146.38971"
+ x="384.98563"
+ y="391.8602" />
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ id="rect3945-48"
+ width="15.714286"
+ height="18.571428"
+ x="586.69073"
+ y="463.62076" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath10)"
+ d="m 39.225,15.972894 0,146.980626 192.6,0 0,-146.980626 -192.6,0 z"
+ id="path5539"
+ transform="translate(112.83943,322.9021)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath11)"
+ d="m 66.075,49.718446 0,102.736454 143.25,0 0,-102.736454 -143.25,0 z"
+ id="path5543"
+ transform="translate(112.83943,322.9021)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 178.91443,372.62055 143.25,0 0,102.73645 -143.25,0 z"
+ id="path5545" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath12)"
+ d="m 70.575,78.21469 0,23.24694 46.5,0 0,-23.24694 -46.5,0 z"
+ id="path5547"
+ transform="translate(112.83943,322.9021)" />
+ <rect
+ style="fill:none;stroke:#000000;stroke-width:0.99358916;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.98076741, 0.99358914;stroke-dashoffset:0"
+ id="rect4458"
+ width="193.90961"
+ height="146.43498"
+ x="155.25899"
+ y="342.90326" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 183.41443,401.11679 46.5,0 0,23.24694 -46.5,0 z"
+ id="path5549" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath13)"
+ d="m 120.075,78.21469 0,23.24694 84,0 0,-23.24694 -84,0 z"
+ id="path5551"
+ transform="translate(112.83943,322.9021)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 232.91443,401.11679 84,0 0,23.24694 -84,0 z"
+ id="path5553" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath14)"
+ d="m 70.575,104.46123 0,41.99446 46.5,0 0,-41.99446 -46.5,0 z"
+ id="path5555"
+ transform="translate(112.83943,322.9021)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 183.41443,427.36333 46.5,0 0,41.99446 -46.5,0 z"
+ id="path5557" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 232.91443,427.36333 0,42.74437 84,0 0,-42.74437 -84,0 z"
+ id="path5559" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 232.91443,427.36333 84,0 0,42.74437 -84,0 z"
+ id="path5561" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 408.38397,422.83307 0,100.48675 162,0 0,-100.48675 -162,0 z"
+ id="path5563" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 408.38397,422.83307 162,0 0,100.48675 -162,0 z"
+ id="path5565" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath15)"
+ d="m 303.825,134.45728 0,23.24693 55.2,0 0,-23.24693 -55.2,0 z"
+ id="path5567"
+ transform="translate(109.80897,319.87164)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 413.63397,454.32892 55.2,0 0,23.24693 -55.2,0 z"
+ id="path5569" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath16)"
+ d="m 362.775,134.45728 0,23.24693 90.9,0 0,-23.24693 -90.9,0 z"
+ id="path5571"
+ transform="translate(112.83943,322.9021)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 475.58964,454.32892 90.9,0 0,23.24693 -90.9,0 z"
+ id="path5573" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath17)"
+ d="m 303.075,161.45372 0,36.74515 55.95,0 0,-36.74515 -55.95,0 z"
+ id="path5575"
+ transform="translate(112.83943,322.9021)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 412.88397,481.32536 55.95,0 0,36.74515 -55.95,0 z"
+ id="path5577" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 473.33397,481.32536 0,36.74515 90.15,0 0,-36.74515 -90.15,0 z"
+ id="path5579" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 473.33397,481.32536 90.15,0 0,36.74515 -90.15,0 z"
+ id="path5581" />
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ id="rect3945-45"
+ width="15.714286"
+ height="18.571428"
+ x="147.94077"
+ y="392.37076" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 149.51443,392.7179 3.25312,0 c 0.35625,0 0.64688,0.29996 0.64688,0.65616 l 0,16.74154 -3.9,0 z"
+ id="path5583" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 153.41443,392.56792 3.25312,0 c 0.35625,0 0.64688,0.29996 0.64688,0.65616 l 0,16.89152 -3.9,0 z"
+ id="path5585" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 157.31443,392.7179 3.13125,0 c 0.34687,0 0.61875,0.28121 0.61875,0.62804 l 0,16.76966 -3.75,0 z"
+ id="path5587" />
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ id="rect3945-5"
+ width="15.714286"
+ height="18.571428"
+ x="147.76219"
+ y="439.6922" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 149.51443,439.96167 3.25312,0 c 0.35625,0 0.64688,0.29996 0.64688,0.65616 l 0,16.74155 -3.9,0 z"
+ id="path5589" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 153.41443,439.81169 3.25312,0 c 0.35625,0 0.64688,0.29996 0.64688,0.65616 l 0,16.89153 -3.9,0 z"
+ id="path5591" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 157.31443,439.96167 3.13125,0 c 0.34687,0 0.61875,0.28121 0.61875,0.62804 l 0,16.76967 -3.75,0 z"
+ id="path5593" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.009;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.009,0.009;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 132.43318,402.51348 12.10312,-0.32808 -0.0375,-1.24671 -12.09375,0.32808 0.0281,1.24671 z m 12.08437,-0.95612 -2.39062,3.81512 7.3875,-3.95573 -7.59375,-3.53391 2.59687,3.67452 z"
+ id="path5595" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.009;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.009,0.009;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 161.83318,402.51348 12.10312,-0.32808 -0.0375,-1.24671 -12.09375,0.32808 0.0281,1.24671 z m 12.08437,-0.95612 -2.39062,3.81512 7.3875,-3.95573 -7.59375,-3.53391 2.59687,3.67452 z"
+ id="path5597" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.009375;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.009375,0.009375;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 161.08318,449.00735 12.10312,-0.32808 -0.0375,-1.24671 -12.09375,0.32808 0.0281,1.24671 z m 12.08437,-0.95612 -2.39062,3.81512 7.3875,-3.95573 -7.59375,-3.53391 2.59687,3.67452 z"
+ id="path5599" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.009;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.009,0.009;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 132.43318,449.00735 12.10312,-0.32808 -0.0375,-1.24671 -12.09375,0.32808 0.0281,1.24671 z m 12.08437,-0.95612 -2.39062,3.81512 7.3875,-3.95573 -7.59375,-3.53391 2.59687,3.67452 z"
+ id="path5601" />
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ id="rect3945-2"
+ width="15.714286"
+ height="18.571428"
+ x="341.36935"
+ y="371.26364" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 343.61443,372.17061 3.13125,0 c 0.34687,0 0.61875,0.28121 0.61875,0.62804 l 0,16.76966 -3.75,0 z"
+ id="path5603" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 347.36443,372.17061 3.25312,0 c 0.35625,0 0.64688,0.29996 0.64688,0.65616 l 0,16.74154 -3.9,0 z"
+ id="path5605" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 351.26443,372.17061 3.25312,0 c 0.35625,0 0.64688,0.29996 0.64688,0.65616 l 0,16.74154 -3.9,0 z"
+ id="path5607" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.009375;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.009375,0.009375;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 323.21443,378.75099 13.7625,0 0,1.24671 -13.7625,0 0,-1.24671 z m 13.7625,0.61867 -2.50312,-3.74951 7.5,3.74951 -7.5,3.7495 2.50312,-3.7495 z"
+ id="path5609" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.009375;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:0.009375, 0.009375;stroke-dashoffset:0"
+ d="m 356.53318,380.16643 259.24599,-0.32809 -0.0375,-1.24671 -259.23661,0.32809 0.0281,1.24671 z m 259.22723,-0.95613 -2.39062,3.81512 7.3875,-3.95572 -7.59375,-3.53391 z"
+ id="path5611"
+ sodipodi:nodetypes="ccccccccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 590.51443,465.15835 3.13125,0 c 0.35625,0 0.61875,0.28121 0.61875,0.63741 l 0,16.91027 -3.75,0 z"
+ id="path5613" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 594.26443,465.15835 3.2625,0 c 0.35625,0 0.6375,0.29996 0.6375,0.65616 l 0,16.74154 -3.9,0 z"
+ id="path5615" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 598.16443,465.15835 3.2625,0 c 0.35625,0 0.6375,0.29996 0.6375,0.65616 l 0,16.89152 -3.9,0 z"
+ id="path5617" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01875;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.01875,0.01875;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 572.68318,473.76346 12.1125,-0.33745 -0.0375,-1.25609 -12.09375,0.33746 0.0188,1.25608 z m 12.09375,-0.95612 -2.4,3.80575 7.3875,-3.95573 -7.59375,-3.52454 2.60625,3.67452 z"
+ id="path5619" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01875;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.01875,0.01875;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 603.43318,473.31352 12.1125,-0.33745 -0.0375,-1.25609 -12.09375,0.33746 0.0188,1.25608 z m 12.09375,-0.95612 -2.4,3.80575 7.3875,-3.95573 -7.59375,-3.52454 2.60625,3.67452 z"
+ id="path5621" />
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ id="rect3945-8"
+ width="15.714286"
+ height="18.571428"
+ x="342.40506"
+ y="438.62076" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 343.61443,439.96167 3.13125,0 c 0.34687,0 0.61875,0.28121 0.61875,0.62804 l 0,16.76967 -3.75,0 z"
+ id="path5623" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 347.36443,439.96167 3.25312,0 c 0.35625,0 0.64688,0.29996 0.64688,0.65616 l 0,16.74155 -3.9,0 z"
+ id="path5625" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 351.26443,439.96167 3.25312,0 c 0.35625,0 0.64688,0.29996 0.64688,0.65616 l 0,16.74155 -3.9,0 z"
+ id="path5627" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.009375;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.009375,0.009375;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 323.21443,446.54205 13.7625,0 0,1.24671 -13.7625,0 0,-1.24671 z m 13.7625,0.61867 -2.50312,-3.74951 7.5,3.74951 -7.5,3.74951 2.50312,-3.74951 z"
+ id="path5629" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01777934;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:0.01777934, 0.01777934;stroke-dashoffset:0"
+ d="m 356.50859,445.94165 25.2708,0 0,30.18438 -0.55633,-0.61869 20.19642,0 0,1.23737 -20.7696,0 0,-30.18438 0.57318,0.63744 -24.71447,0 0,-1.25612 z m 44.91089,30.18438 -2.24217,-3.74961 6.74338,3.74961 -6.74338,3.74961 2.24217,-3.74961 z"
+ id="path5631" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 256.12693,502.50342 0,36.37021 2.4375,0 -4.875,4.87436 -4.875,-4.87436 2.4375,0 0,-36.37021 z"
+ id="path5633" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 256.12693,502.50342 0,36.37021 2.4375,0 -4.875,4.87436 -4.875,-4.87436 2.4375,0 0,-36.37021 z"
+ id="path5635" />
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="224.7719"
+ y="353.7381"
+ id="text4458-5-6-8-7"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="224.7719"
+ y="353.7381"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-2-5">Pipeline 1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="233.06458"
+ y="387.51147"
+ id="text4458-5-6-8-7-0"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="233.06458"
+ y="387.51147"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-2-5-6">Table 1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="191.77844"
+ y="416.61282"
+ id="text4458-5-6-8-7-0-1"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="191.77844"
+ y="416.61282"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-2-5-6-3">Route</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="251.78381"
+ y="415.58426"
+ id="text4458-5-6-8-7-0-1-8"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="251.78381"
+ y="415.58426"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-2-5-6-3-9">Next Hop</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="462.5943"
+ y="411.55435"
+ id="text4458-5-6-8-7-3"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="462.5943"
+ y="411.55435"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-2-5-4">Pipeline 2</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="471.90912"
+ y="442.29727"
+ id="text4458-5-6-8-7-0-4"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="471.90912"
+ y="442.29727"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-2-5-6-6">Table 2</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="431.39413"
+ y="468.73193"
+ id="text4458-5-6-8-7-0-4-0"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="431.39413"
+ y="468.73193"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-2-5-6-6-6">Key</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="486.88754"
+ y="469.8894"
+ id="text4458-5-6-8-7-0-4-0-6"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="486.88754"
+ y="469.8894"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-2-5-6-6-6-1">MAC Address</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="334.64691"
+ y="584.99622"
+ id="text4458-5-6-8-7-8"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="334.64691"
+ y="584.99622"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-2-5-49">Pipeline 1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="197.47844"
+ y="642.03308"
+ id="text4458-5-6-8-7-0-1-6"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="197.47844"
+ y="642.03308"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-2-5-6-3-3">Route</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="257.48383"
+ y="641.00452"
+ id="text4458-5-6-8-7-0-1-8-7"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="257.48383"
+ y="641.00452"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-2-5-6-3-9-8">Next Hop</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="392.87457"
+ y="697.18268"
+ id="text4458-5-6-8-7-0-4-0-8"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="392.87457"
+ y="697.18268"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-2-5-6-6-6-2">Key</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="445.36234"
+ y="698.34015"
+ id="text4458-5-6-8-7-0-4-0-6-9"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="445.36234"
+ y="698.34015"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-2-5-6-6-6-1-1">MAC Address</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="238.76457"
+ y="611.66492"
+ id="text4458-5-6-8-7-0-3"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="238.76457"
+ y="611.66492"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-2-5-6-5">Table 1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="432.66986"
+ y="666.95581"
+ id="text4458-5-6-8-7-0-4-9"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="432.66986"
+ y="666.95581"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-2-5-6-6-8">Table 2</tspan></text>
+ </g>
+</svg>
diff --git a/doc/guides/ip_pipeline_ug/img/ip_pipelines_3.svg b/doc/guides/ip_pipeline_ug/img/ip_pipelines_3.svg
new file mode 100644
index 0000000..1cf5413
--- /dev/null
+++ b/doc/guides/ip_pipeline_ug/img/ip_pipelines_3.svg
@@ -0,0 +1,826 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="469.492"
+ height="382.11536"
+ id="svg6126"
+ version="1.1"
+ inkscape:version="0.48.4 r9939"
+ sodipodi:docname="ipPipelines_3_update.svg">
+ <defs
+ id="defs6128">
+ <clipPath
+ id="clipEmfPath1"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect6139"
+ height="406.59448"
+ width="585"
+ y="0"
+ x="0" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath2"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect6142"
+ height="134.38165"
+ width="277.79999"
+ y="247.76617"
+ x="49.650002" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath3"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect6145"
+ height="93.137283"
+ width="230.55"
+ y="280.01178"
+ x="72.150002" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath4"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect6148"
+ height="13.648136"
+ width="45.900002"
+ y="308.50787"
+ x="76.650002" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath5"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect6151"
+ height="13.648136"
+ width="83.400002"
+ y="308.50787"
+ x="126.15" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath6"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect6154"
+ height="137.38124"
+ width="208.2"
+ y="18.147522"
+ x="240.75" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath7"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect6157"
+ height="137.38124"
+ width="190.2"
+ y="18.147522"
+ x="42.75" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath8"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect6160"
+ height="93.137283"
+ width="142.64999"
+ y="54.592545"
+ x="66.449997" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath9"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect6163"
+ height="13.648136"
+ width="45.900002"
+ y="83.088654"
+ x="70.949997" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath10"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect6166"
+ height="13.648136"
+ width="83.400002"
+ y="83.088654"
+ x="120.45" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath11"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect6169"
+ height="90.887589"
+ width="161.39999"
+ y="53.092751"
+ x="265.20001" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath12"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect6172"
+ height="13.648136"
+ width="54.599998"
+ y="84.588448"
+ x="270.45001" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath13"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect6175"
+ height="13.648136"
+ width="90.150002"
+ y="84.588448"
+ x="329.54999" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath14"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect6178"
+ height="13.648136"
+ width="83.400002"
+ y="308.50787"
+ x="213.89999" />
+ </clipPath>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.979899"
+ inkscape:cx="228.24994"
+ inkscape:cy="175.22545"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:window-width="1033"
+ inkscape:window-height="1284"
+ inkscape:window-x="86"
+ inkscape:window-y="249"
+ inkscape:window-maximized="0"
+ fit-margin-top="0"
+ fit-margin-left="0"
+ fit-margin-right="0"
+ fit-margin-bottom="0"
+ showborder="true"
+ borderlayer="false" />
+ <metadata
+ id="metadata6131">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-156.65375,-367.02875)">
+ <text
+ xml:space="preserve"
+ x="626.14575"
+ y="749.1441"
+ style="font-size:13.80000019px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Calibri"
+ id="text6182"> </text>
+ <rect
+ style="fill:none;stroke:#000000;stroke-width:1.1530993;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.45929811, 1.15309937;stroke-dashoffset:0"
+ id="rect3114"
+ width="279.14426"
+ height="142.7157"
+ x="186.01018"
+ y="597.78625" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath2)"
+ d="m 71.775,275.13743 0,102.73597 231.15,0 0,-102.73597 -231.15,0 z"
+ id="path6188"
+ transform="translate(137.14575,354.09808)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 208.92075,629.23551 231.15,0 0,102.73597 -231.15,0 z"
+ id="path6190" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath3)"
+ d="m 76.275,303.63354 0,23.24683 46.5,0 0,-23.24683 -46.5,0 z"
+ id="path6192"
+ transform="translate(137.14575,354.09808)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 213.42075,657.73162 46.5,0 0,23.24683 -46.5,0 z"
+ id="path6194" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath4)"
+ d="m 125.775,303.63354 0,23.24683 84,0 0,-23.24683 -84,0 z"
+ id="path6196"
+ transform="translate(137.14575,354.09808)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 262.92075,657.73162 84,0 0,23.24683 -84,0 z"
+ id="path6198" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath5)"
+ d="m 76.275,329.87996 0,41.99426 46.5,0 0,-41.99426 -46.5,0 z"
+ id="path6200"
+ transform="translate(137.14575,354.09808)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 213.42075,683.97804 46.5,0 0,41.99426 -46.5,0 z"
+ id="path6202" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 262.92075,683.97804 0,42.74416 84,0 0,-42.74416 -84,0 z"
+ id="path6204" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 262.92075,683.97804 84,0 0,42.74416 -84,0 z"
+ id="path6206" />
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ id="rect3920-48"
+ width="16.515228"
+ height="21.21936"
+ x="177.68185"
+ y="647.82019" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 179.52075,649.33277 3.2625,0 c 0.35625,0 0.6375,0.29996 0.6375,0.65616 l 0,16.74146 -3.9,0 z"
+ id="path6208" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 183.42075,649.18279 3.13125,0 c 0.35625,0 0.61875,0.28121 0.61875,0.63741 l 0,16.91019 -3.75,0 z"
+ id="path6210" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 187.17075,649.33277 3.2625,0 c 0.35625,0 0.6375,0.29996 0.6375,0.65616 l 0,16.74146 -3.9,0 z"
+ id="path6212" />
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ id="rect3920-48-8"
+ width="16.515228"
+ height="21.21936"
+ x="176.61043"
+ y="694.24872" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 179.52075,696.57632 3.2625,0 c 0.35625,0 0.6375,0.29996 0.6375,0.65616 l 0,16.74146 -3.9,0 z"
+ id="path6214" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 183.42075,696.42634 3.13125,0 c 0.35625,0 0.61875,0.28121 0.61875,0.63741 l 0,16.91019 -3.75,0 z"
+ id="path6216" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 187.17075,696.57632 3.2625,0 c 0.35625,0 0.6375,0.29996 0.6375,0.65616 l 0,16.74146 -3.9,0 z"
+ id="path6218" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01875;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.01875,0.01875;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 162.4395,659.13768 12.1125,-0.33745 -0.0375,-1.25608 -12.09375,0.33745 0.0188,1.25608 z m 12.09375,-0.95612 -2.4,3.80573 7.3875,-3.95571 -7.59375,-3.52452 2.60625,3.6745 z"
+ id="path6220" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01875;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.01875,0.01875;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 191.8395,659.13768 12.1125,-0.33745 -0.0375,-1.25608 -12.09375,0.33745 0.0187,1.25608 z m 12.09375,-0.95612 -2.4,3.80573 7.3875,-3.95571 -7.59375,-3.52452 2.60625,3.6745 z"
+ id="path6222" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01875;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.01875,0.0375;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 191.0895,705.63133 12.1125,-0.33745 -0.0375,-1.25608 -12.09375,0.33745 0.0187,1.25608 z m 12.09375,-0.95612 -2.4,3.80573 7.3875,-3.95571 -7.59375,-3.52452 2.60625,3.6745 z"
+ id="path6224" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01875;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.01875,0.01875;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 162.4395,705.63133 12.1125,-0.33745 -0.0375,-1.25608 -12.09375,0.33745 0.0188,1.25608 z m 12.09375,-0.95612 -2.4,3.80573 7.3875,-3.95571 -7.59375,-3.52452 2.60625,3.6745 z"
+ id="path6226" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 377.52075,367.37127 0,146.97993 208.8,0 0,-146.97993 -208.8,0 z"
+ id="path6228" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath6)"
+ d="m 42.375,13.273188 0,146.979932 190.8,0 0,-146.979932 -190.8,0 z"
+ id="path6232"
+ transform="translate(137.14575,354.09808)" />
+ <rect
+ style="fill:none;stroke:#000000;stroke-width:1.1530993;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.45929801, 1.15309934;stroke-dashoffset:0"
+ id="rect3114-1"
+ width="191.96552"
+ height="148.42998"
+ x="180.02544"
+ y="368.29129" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath7)"
+ d="m 66.075,49.718211 0,102.735969 143.25,0 0,-102.735969 -143.25,0 z"
+ id="path6236"
+ transform="translate(137.14575,354.09808)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 203.22075,403.81629 143.25,0 0,102.73597 -143.25,0 z"
+ id="path6238" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath8)"
+ d="m 70.575,78.21432 0,23.24683 46.5,0 0,-23.24683 -46.5,0 z"
+ id="path6240"
+ transform="translate(137.14575,354.09808)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 207.72075,432.3124 46.5,0 0,23.24683 -46.5,0 z"
+ id="path6242" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath9)"
+ d="m 120.075,78.21432 0,23.24683 84,0 0,-23.24683 -84,0 z"
+ id="path6244"
+ transform="translate(137.14575,354.09808)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 257.22075,432.3124 84,0 0,23.24683 -84,0 z"
+ id="path6246" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath10)"
+ d="m 70.575,104.46074 0,41.99426 46.5,0 0,-41.99426 -46.5,0 z"
+ id="path6248"
+ transform="translate(137.14575,354.09808)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 207.72075,458.55882 46.5,0 0,41.99426 -46.5,0 z"
+ id="path6250" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 257.22075,458.55882 0,42.74416 84,0 0,-42.74416 -84,0 z"
+ id="path6252" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 257.22075,458.55882 84,0 0,42.74416 -84,0 z"
+ id="path6254" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 401.97075,402.3165 0,100.48628 162,0 0,-100.48628 -162,0 z"
+ id="path6256" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 401.97075,402.3165 162,0 0,100.48628 -162,0 z"
+ id="path6258" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath11)"
+ d="m 270.075,79.714116 0,23.246824 55.2,0 0,-23.246824 -55.2,0 z"
+ id="path6260"
+ transform="translate(137.14575,354.09808)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 407.22075,433.8122 55.2,0 0,23.24682 -55.2,0 z"
+ id="path6262" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath12)"
+ d="m 329.025,79.714116 0,23.246824 90.9,0 0,-23.246824 -90.9,0 z"
+ id="path6264"
+ transform="translate(137.14575,354.09808)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 466.17075,433.8122 90.9,0 0,23.24682 -90.9,0 z"
+ id="path6266" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath13)"
+ d="m 269.325,106.71043 0,36.74498 55.95,0 0,-36.74498 -55.95,0 z"
+ id="path6268"
+ transform="translate(137.14575,354.09808)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 406.47075,460.80851 55.95,0 0,36.74498 -55.95,0 z"
+ id="path6270" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 466.92075,460.80851 0,36.74498 90.15,0 0,-36.74498 -90.15,0 z"
+ id="path6272" />
+ <rect
+ style="fill:none;stroke:#000000;stroke-width:1.1530993;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.45929818, 1.15309941;stroke-dashoffset:0"
+ id="rect3114-1-7"
+ width="208.7556"
+ height="148.37921"
+ x="377.85892"
+ y="367.84274" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 466.92075,460.80851 90.15,0 0,36.74498 -90.15,0 z"
+ id="path6274" />
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ id="rect3920-9"
+ width="16.515228"
+ height="21.21936"
+ x="171.55568"
+ y="422.16541" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 173.82075,423.91355 3.25312,0 c 0.35625,0 0.64688,0.29996 0.64688,0.65616 l 0,16.74146 -3.9,0 z"
+ id="path6276" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 177.72075,423.76357 3.25312,0 c 0.35625,0 0.64688,0.29996 0.64688,0.65616 l 0,16.89144 -3.9,0 z"
+ id="path6278" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 181.62075,423.91355 3.13125,0 c 0.34687,0 0.61875,0.28121 0.61875,0.62804 l 0,16.76958 -3.75,0 z"
+ id="path6280" />
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ id="rect3920-0"
+ width="16.515228"
+ height="21.21936"
+ x="171.50339"
+ y="469.72925" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 173.82075,471.1571 3.25312,0 c 0.35625,0 0.64688,0.29996 0.64688,0.65616 l 0,16.74146 -3.9,0 z"
+ id="path6282" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 177.72075,471.00712 3.25312,0 c 0.35625,0 0.64688,0.29996 0.64688,0.65616 l 0,16.89144 -3.9,0 z"
+ id="path6284" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 181.62075,471.1571 3.13125,0 c 0.34687,0 0.61875,0.28121 0.61875,0.62804 l 0,16.76958 -3.75,0 z"
+ id="path6286" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.009375;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.009375,0.009375;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 156.7395,433.70908 12.10312,-0.32808 -0.0375,-1.2467 -12.09375,0.32808 0.0281,1.24671 z m 12.08437,-0.95611 -2.39062,3.8151 7.3875,-3.95571 -7.59375,-3.53389 2.59687,3.6745 z"
+ id="path6288" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.009375;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.009375,0.009375;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 186.1395,433.70908 12.10312,-0.32808 -0.0375,-1.2467 -12.09375,0.32808 0.0281,1.24671 z m 12.08437,-0.95611 -2.39062,3.8151 7.3875,-3.95571 -7.59375,-3.53389 2.59687,3.6745 z"
+ id="path6290" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.009375;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.009375,0.009375;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 185.3895,480.20274 12.10312,-0.32808 -0.0375,-1.24671 -12.09375,0.32808 0.0281,1.24671 z m 12.08437,-0.95612 -2.39062,3.8151 7.3875,-3.95571 -7.59375,-3.53389 2.59687,3.6745 z"
+ id="path6292" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.009375;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.009375,0.009375;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 156.7395,480.20274 12.10312,-0.32808 -0.0375,-1.24671 -12.09375,0.32808 0.0281,1.24671 z m 12.08437,-0.95612 -2.39062,3.8151 7.3875,-3.95571 -7.59375,-3.53389 2.59687,3.6745 z"
+ id="path6294" />
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ id="rect3920-4"
+ width="16.515228"
+ height="21.21936"
+ x="578.84741"
+ y="448.11557" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 581.07075,450.6099 3.13125,0 c 0.35625,0 0.61875,0.28121 0.61875,0.63741 l 0,16.9102 -3.75,0 z"
+ id="path6296" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 584.82075,450.6099 3.2625,0 c 0.35625,0 0.6375,0.29996 0.6375,0.65616 l 0,16.74147 -3.9,0 z"
+ id="path6298" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 588.72075,450.6099 3.2625,0 c 0.35625,0 0.6375,0.29996 0.6375,0.65616 l 0,16.89145 -3.9,0 z"
+ id="path6300" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01875;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.01875,0.01875;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 563.2395,459.21498 12.1125,-0.33746 -0.0375,-1.25608 -12.09375,0.33746 0.0188,1.25608 z m 12.09375,-0.95612 -2.4,3.80573 7.3875,-3.95571 -7.59375,-3.52452 2.60625,3.6745 z"
+ id="path6302" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01875;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.01875,0.01875;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 593.9895,458.76504 12.1125,-0.33746 -0.0375,-1.25607 -12.09375,0.33745 0.0188,1.25608 z m 12.09375,-0.95612 -2.4,3.80573 7.3875,-3.95571 -7.59375,-3.52452 2.60625,3.6745 z"
+ id="path6304" />
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ id="rect3920"
+ width="16.515228"
+ height="21.21936"
+ x="366.35788"
+ y="448.70401" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 368.67075,450.90986 3.13125,0 c 0.34687,0 0.61875,0.28121 0.61875,0.62804 l 0,16.76959 -3.75,0 z"
+ id="path6306" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 372.42075,450.90986 3.25312,0 c 0.35625,0 0.64688,0.29996 0.64688,0.65616 l 0,16.74147 -3.9,0 z"
+ id="path6308" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 376.32075,450.90986 3.25312,0 c 0.35625,0 0.64688,0.29996 0.64688,0.65616 l 0,16.74147 -3.9,0 z"
+ id="path6310" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.009375;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.009375,0.009375;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 347.52075,457.79017 13.7625,0 0,1.24671 -13.7625,0 0,-1.24671 z m 13.7625,0.61867 -2.50312,-3.74949 7.5,3.74949 -7.5,3.74949 2.50312,-3.74949 z"
+ id="path6312" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.009375;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.009375,0.009375;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 381.27075,457.79017 13.7625,0 0,1.24671 -13.7625,0 0,-1.24671 z m 13.7625,0.61867 -2.50313,-3.74949 7.5,3.74949 -7.5,3.74949 2.50313,-3.74949 z"
+ id="path6314" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 350.67075,657.73162 0,23.24683 84,0 0,-23.24683 -84,0 z"
+ id="path6316" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 350.67075,657.73162 84,0 0,23.24683 -84,0 z"
+ id="path6318" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath14)"
+ d="m 213.675,329.87996 0,42.74416 84,0 0,-42.74416 -84,0 z"
+ id="path6320"
+ transform="translate(137.14575,354.09808)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 350.82075,683.97804 84,0 0,42.74416 -84,0 z"
+ id="path6322" />
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ id="rect3920-48-2"
+ width="16.515228"
+ height="21.21936"
+ x="456.96756"
+ y="669.96301" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 459.57075,671.67972 3.2625,0 c 0.35625,0 0.6375,0.29996 0.6375,0.65616 l 0,16.89144 -3.9,0 z"
+ id="path6324" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 463.47075,671.67972 3.13125,0 c 0.35625,0 0.61875,0.28121 0.61875,0.63741 l 0,16.76021 -3.75,0 z"
+ id="path6326" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 467.22075,671.67972 3.2625,0 c 0.35625,0 0.6375,0.29996 0.6375,0.65616 l 0,16.89144 -3.9,0 z"
+ id="path6328" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01875;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.01875,0.01875;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 440.0895,681.16592 14.475,-0.11248 -0.0188,-1.25608 -14.475,0.11248 0.0188,1.25608 z m 14.45625,-0.73115 -2.45625,3.76824 7.4625,-3.82448 -7.5375,-3.6745 2.53125,3.73074 z"
+ id="path6330" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01875;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.01875,0.0375;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 471.12075,679.4599 13.48125,0 0,1.25608 -13.48125,0 0,-1.25608 z m 13.48125,0.61867 -2.5125,-3.74949 7.5,3.74949 -7.5,3.74949 2.5125,-3.74949 z"
+ id="path6332" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 316.58325,533.69856 0,36.37003 2.4375,0 -4.875,4.87434 -4.875,-4.87434 2.4375,0 0,-36.37003 z"
+ id="path6334" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 316.58325,533.69856 0,36.37003 2.4375,0 -4.875,4.87434 -4.875,-4.87434 2.4375,0 0,-36.37003 z"
+ id="path6336" />
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="251.32822"
+ y="385.15088"
+ id="text4458-5-6-8-7"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="251.32822"
+ y="385.15088"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-2-5">Pipeline 1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="458.32822"
+ y="385.15088"
+ id="text4458-5-6-8-7-4"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="458.32822"
+ y="385.15088"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan6590">Pipeline 2</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="252.12177"
+ y="418.59369"
+ id="text4458-5-6-8-7-7"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="252.12177"
+ y="418.59369"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-2-5-6">Flow Table 1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="452.02521"
+ y="418.59369"
+ id="text4458-5-6-8-7-7-3"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="452.02521"
+ y="418.59369"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-2-5-6-6">Flow Table 2</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="214.38213"
+ y="447.87283"
+ id="text4458-5-6-8-7-7-1"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="214.38213"
+ y="447.87283"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-2-5-6-5">Flow #</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="418.23212"
+ y="449.37262"
+ id="text4458-5-6-8-7-7-1-4"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="418.23212"
+ y="449.37262"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-2-5-6-5-2">Flow #</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="489.28775"
+ y="449.32428"
+ id="text4458-5-6-8-7-7-1-4-0"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="489.28775"
+ y="449.32428"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan6678">Actions 2</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="277.60748"
+ y="447.82449"
+ id="text4458-5-6-8-7-7-1-4-0-7"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="277.60748"
+ y="447.82449"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan6678-3">Actions 1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="302.02823"
+ y="613.45862"
+ id="text4458-5-6-8-7-72"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="302.02823"
+ y="613.45862"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-2-5-60">Pipeline 1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="293.5502"
+ y="644.90143"
+ id="text4458-5-6-8-7-7-16"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="293.5502"
+ y="644.90143"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-2-5-6-57">Flow Table 1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="220.08212"
+ y="673.29205"
+ id="text4458-5-6-8-7-7-1-5"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="220.08212"
+ y="673.29205"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-2-5-6-5-4">Flow #</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="283.30746"
+ y="673.24371"
+ id="text4458-5-6-8-7-7-1-4-0-7-1"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="283.30746"
+ y="673.24371"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan6678-3-2">Actions 1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="370.33774"
+ y="673.24371"
+ id="text4458-5-6-8-7-7-1-4-0-7-1-0"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="370.33774"
+ y="673.24371"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan6678-3-2-0">Actions 2</tspan></text>
+ </g>
+</svg>
diff --git a/doc/guides/ip_pipeline_ug/index.rst b/doc/guides/ip_pipeline_ug/index.rst
new file mode 100644
index 0000000..3e813cc
--- /dev/null
+++ b/doc/guides/ip_pipeline_ug/index.rst
@@ -0,0 +1,38 @@
+.. BSD LICENSE
+ Copyright(c) 2015 Intel Corporation. All rights reserved.
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+ * Neither the name of Intel Corporation nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+Internet Protocol (IP) Pipeline Application User Guide
+======================================================
+
+.. toctree::
+ :maxdepth: 3
+ :numbered:
+
+ ip_pipeline_app
diff --git a/doc/guides/ip_pipeline_ug/ip_pipeline_app.rst b/doc/guides/ip_pipeline_ug/ip_pipeline_app.rst
new file mode 100644
index 0000000..3e37c5e
--- /dev/null
+++ b/doc/guides/ip_pipeline_ug/ip_pipeline_app.rst
@@ -0,0 +1,1129 @@
+Internet Protocol (IP) Pipeline Application
+===========================================
+
+Application overview
+--------------------
+
+The *Internet Protocol (IP) Pipeline* application is intended to be a vehicle for rapid development of packet processing
+applications running on multi-core CPUs.
+
+The application provides a library of reusable functional blocks called pipelines.
+These pipelines can be seen as prefabricated blocks that can be instantiated and inter-connected through packet queues
+to create complete applications (super-pipelines).
+
+Pipelines are created and inter-connected through the application configuration file.
+By using different configuration files, different applications are effectively created, therefore this application
+can be seen as an application generator.
+The configuration of each pipeline can be updated at run-time through the application Command Line Interface (CLI).
+
+Main application components are:
+
+**A Library of reusable pipelines**
+
+ * Each pipeline represents a functional block, e.g. flow classification, firewall, routing, master, etc.
+
+ * Each pipeline type can be instantiated several times in the same application, which each instance configured
+ separately and mapped to a single CPU core.
+ Each CPU core can run one or several pipeline instances, which can be of same or different type.
+
+ * Pipeline instances are inter-connected through packet queues (for packet processing) and message queues
+ (for run-time configuration).
+
+ * Pipelines are implemented using DPDK Packet Framework.
+
+ * More pipeline types can always be built and added to the existing pipeline types.
+
+**The Configuration file**
+
+ * The configuration file defines the application structure.
+ By using different configuration files, different applications are created.
+
+ * All the application resources are created and configured through the application configuration file:
+ pipeline instances, buffer pools, links (i.e. network interfaces), hardware device RX/TX queues,
+ software queues, traffic manager devices, EAL startup arguments, etc.
+
+ * The configuration file syntax is “define by reference”, meaning that resources are defined as they are referenced.
+ First time a resource name is detected, it is registered with default parameters.
+ Optionally, the resource parameters can be further refined through a configuration file section dedicated to
+ that resource.
+
+ * Command Line Interface (CLI)
+
+**Global CLI commands: link configuration, etc.**
+
+ * Common pipeline CLI commands: ping (keep-alive), statistics, etc.
+
+ * Pipeline type specific CLI commands: used to configure instances of specific pipeline type.
+ These commands are registered with the application when the pipeline type is registered.
+ For example, the commands for routing pipeline instances include: route add, route delete, route list, etc.
+
+ * CLI commands can be grouped into scripts that can be invoked at initialization and at runtime.
+
+
+Rapid development
+-----------------
+
+This application enables rapid development through quick connectivity of standard components called pipelines.
+These components are built using DPDK Packet Framework and encapsulate packet processing features at different levels:
+ports, tables, actions, pipelines and complete applications.
+
+Pipeline instances are instantiated, configured and inter-connected through low complexity configuration files loaded
+during application initialization.
+Each pipeline instance is mapped to a single CPU core, with each CPU core able to run one or multiple pipeline
+instances of same or different types. By loading a different configuration file, a different application is
+effectively started.
+
+
+Flexibility
+-----------
+
+Each packet processing application is typically represented as a chain of functional stages which is often called
+the functional pipeline of the application.
+These stages are mapped to CPU cores to create chains of CPU cores (pipeline model), clusters of CPU cores
+(run-to-completion model) or chains of clusters of CPU cores (hybrid model).
+
+This application allows all the above programming models.
+By applying changes to the configuration file, the application provides the flexibility to reshuffle its
+building blocks in different ways until the configuration providing the best performance is identified.
+
+
+.. raw:: latex
+
+ \newpage
+
+
+Move pipelines around
+~~~~~~~~~~~~~~~~~~~~~
+
+The mapping of pipeline instances to CPU cores can be reshuffled through the configuration file.
+One or several pipeline instances can be mapped to the same CPU core.
+
+.. _figure_ip_pipelines_1:
+
+.. figure:: img/ip_pipelines_1.*
+
+ Example of moving pipeline instances across different CPU cores
+
+
+.. raw:: latex
+
+ \newpage
+
+Move tables around
+~~~~~~~~~~~~~~~~~~
+
+There is some degree of flexibility for moving tables from one pipeline instance to another.
+Based on the configuration arguments passed to each pipeline instance in the configuration file, specific tables
+can be enabled or disabled.
+This way, a specific table can be “moved” from pipeline instance A to pipeline instance B by simply disabling its
+associated functionality for pipeline instance A while enabling it for pipeline instance B.
+
+Due to requirement to have simple syntax for the configuration file, moving tables across different pipeline
+instances is not as flexible as the mapping of pipeline instances to CPU cores, or mapping actions to pipeline tables.
+Complete flexibility in moving tables from one pipeline to another could be achieved through a complex pipeline
+description language that would detail the structural elements of the pipeline (ports, tables and actions) and
+their connectivity, resulting in complex syntax for the configuration file, which is not acceptable.
+Good configuration file readability through simple syntax is preferred.
+
+*Example*: the IP routing pipeline can run the routing function only (with ARP function run by a different
+pipeline instance), or it can run both the routing and ARP functions as part of the same pipeline instance.
+
+
+.. _figure_ip_pipelines_2:
+
+.. figure:: img/ip_pipelines_2.*
+
+ Example of moving tables across different pipeline instances
+
+
+.. raw:: latex
+
+ \newpage
+
+Move actions around
+~~~~~~~~~~~~~~~~~~~
+
+When it makes sense, packet processing actions can be moved from one pipeline instance to another.
+Based on the configuration arguments passed to each pipeline instance in the configuration file, specific actions
+can be enabled or disabled.
+This way, a specific action can be "moved" from pipeline instance A to pipeline instance B by simply disabling its
+associated functionality for pipeline instance A while enabling it for pipeline instance B.
+
+*Example*: The flow actions of accounting, traffic metering, application identification, NAT, etc can be run as part
+of the flow classification pipeline instance or split across several flow actions pipeline instances, depending on
+the number of flow instances and their compute requirements.
+
+
+.. _figure_ip_pipelines_3:
+
+.. figure:: img/ip_pipelines_3.*
+
+ Example of moving actions across different tables and pipeline instances
+
+
+Performance
+-----------
+
+Performance of the application is the highest priority requirement.
+Flexibility is not provided at the expense of performance.
+
+The purpose of flexibility is to provide an incremental development methodology that allows monitoring the
+performance evolution:
+
+* Apply incremental changes in the configuration (e.g. mapping on pipeline instances to CPU cores)
+ in order to identify the configuration providing the best performance for a given application;
+
+* Add more processing incrementally (e.g. by enabling more actions for specific pipeline instances) until
+ the application is feature complete while checking the performance impact at each step.
+
+
+Debug capabilities
+------------------
+
+The application provides a significant set of debug capabilities:
+
+* Command Line Interface (CLI) support for statistics polling: pipeline instance ping (keep-alive checks),
+ pipeline instance statistics per input port/output port/table, link statistics, etc;
+
+* Logging: Turn on/off application log messages based on priority level;
+
+Running the application
+=======================
+
+The application startup command line is::
+
+ ip_pipeline [-f CONFIG_FILE] [-s SCRIPT_FILE] -p PORT_MASK [-l LOG_LEVEL]
+
+The application startup arguments are:
+
+``-f CONFIG_FILE``
+
+ * Optional: Yes
+
+ * Default: ``./config/ip_pipeline.cfg``
+
+ * Argument: Path to the configuration file to be loaded by the application.
+ Please refer to the :ref:`ip_pipeline_configuration_file` for details on how to write the configuration file.
+
+``-s SCRIPT_FILE``
+
+ * Optional: Yes
+
+ * Default: Not present
+
+ * Argument: Path to the CLI script file to be run by the master pipeline at application startup.
+ No CLI script file will be run at startup of this argument is not present.
+
+``-p PORT_MASK``
+
+ * Optional: No
+
+ * Default: N/A
+
+ * Argument: Hexadecimal mask of NIC port IDs to be used by the application.
+ First port enabled in this mask will be referenced as LINK0 as part of the application configuration file,
+ next port as LINK1, etc.
+
+``-l LOG_LEVEL``
+
+ * Optional: Yes
+
+ * Default: 1 (High priority)
+
+ * Argument: Log level to determine which application messages are to be printed to standard output.
+ Available log levels are: 0 (None), 1 (High priority), 2 (Low priority).
+ Only application messages whose priority is higher than or equal to the application log level will be printed.
+
+
+Application stages
+==================
+
+
+Configuration
+-------------
+
+During this stage, the application configuration file is parsed and its content is loaded into the application data
+structures.
+In case of any configuration file parse error, an error message is displayed and the application is terminated.
+Please refer to the :ref:`ip_pipeline_configuration_file` for a description of the application configuration file format.
+
+
+Configuration checking
+----------------------
+
+In the absence of any parse errors, the loaded content of application data structures is checked for overall consistency.
+In case of any configuration check error, an error message is displayed and the application is terminated.
+
+
+Initialization
+--------------
+
+During this stage, the application resources are initialized and the handles to access them are saved into the
+application data structures.
+In case of any initialization error, an error message is displayed and the application is terminated.
+
+The typical resources to be initialized are: pipeline instances, buffer pools, links (i.e. network interfaces),
+hardware device RX/TX queues, software queues, traffic management devices, etc.
+
+
+.. _ip_pipeline_runtime:
+
+Run-time
+--------
+
+Each CPU core runs the pipeline instances assigned to it in time sharing mode and in round robin order:
+
+1. *Packet processing task*: The pipeline run-time code is typically a packet *processing* task built on top of
+ DPDK Packet Framework rte_pipeline library, which reads bursts of packets from the pipeline input ports,
+ performs table lookups and executes the identified actions for all tables in the pipeline, with packet
+ eventually written to pipeline output ports or dropped.
+
+2. *Message handling task*: Each CPU core will also periodically execute the *message handling* code of each
+ of the pipelines mapped to it.
+ The pipeline message handling code is processing the messages that are pending in the pipeline input message
+ queues, which are typically sent by the master CPU core for the on-the-fly pipeline configuration: check
+ that pipeline is still alive (ping), add/delete entries in the pipeline tables, get statistics, etc.
+ The frequency of executing the message handling code is usually much smaller than the frequency of executing
+ the packet processing work.
+
+Please refer to the :ref:`ip_pipeline_pipeline_section` for more details about the application pipeline module encapsulation.
+
+.. _ip_pipeline_configuration_file:
+
+Configuration file syntax
+=========================
+
+Syntax overview
+---------------
+
+The syntax of the configuration file is designed to be simple, which favors readability.
+The configuration file is parsed using the DPDK library librte_cfgfile, which supports simple
+`INI file format <http://en.wikipedia.org/wiki/INI_file>`__ for configuration files.
+
+As result, the configuration file is split into several sections, with each section containing one or more entries.
+The scope of each entry is its section, and each entry specifies a variable that is assigned a specific value.
+Any text after the ``;`` character is considered a comment and is therefore ignored.
+
+The following are application specific: number of sections, name of each section, number of entries of each section,
+name of the variables used for each section entry, the value format (e.g. signed/unsigned integer, string, etc)
+and range of each section entry variable.
+
+Generic example of configuration file section:
+
+.. code-block:: ini
+
+ [<section_name>]
+
+ <variable_name_1> = <value_1>
+
+ ...
+
+ <variable_name_N> = <value_N>
+
+
+Application resources present in the configuration file
+-------------------------------------------------------
+
+.. _table_ip_pipelines_resource_name:
+
+.. tabularcolumns:: |p{4cm}|p{6cm}|p{6cm}|
+
+.. table:: Application resource names in the configuration file
+
+ +--------------------------+-----------------------------+-------------------------------------------------+
+ | Resource type | Format | Examples |
+ +==========================+=============================+=================================================+
+ | Pipeline | ``PIPELINE<ID>`` | ``PIPELINE0``, ``PIPELINE1`` |
+ +--------------------------+-----------------------------+-------------------------------------------------+
+ | Mempool | ``MEMPOOL<ID>`` | ``MEMPOOL0``, ``MEMPOOL1`` |
+ +--------------------------+-----------------------------+-------------------------------------------------+
+ | Link (network interface) | ``LINK<ID>`` | ``LINK0``, ``LINK1`` |
+ +--------------------------+-----------------------------+-------------------------------------------------+
+ | Link RX queue | ``RXQ<LINK_ID>.<QUEUE_ID>`` | ``RXQ0.0``, ``RXQ1.5`` |
+ +--------------------------+-----------------------------+-------------------------------------------------+
+ | Link TX queue | ``TXQ<LINK_ID>.<QUEUE_ID>`` | ``TXQ0.0``, ``TXQ1.5`` |
+ +--------------------------+-----------------------------+-------------------------------------------------+
+ | Software queue | ``SWQ<ID>`` | ``SWQ0``, ``SWQ1`` |
+ +--------------------------+-----------------------------+-------------------------------------------------+
+ | Traffic Manager | ``TM<LINK_ID>`` | ``TM0``, ``TM1`` |
+ +--------------------------+-----------------------------+-------------------------------------------------+
+ | Source | ``SOURCE<ID>`` | ``SOURCE0``, ``SOURCE1`` |
+ +--------------------------+-----------------------------+-------------------------------------------------+
+ | Sink | ``SINK<ID>`` | ``SINK0``, ``SINK1`` |
+ +--------------------------+-----------------------------+-------------------------------------------------+
+ | Message queue | ``MSGQ<ID>`` | ``MSGQ0``, ``MSGQ1``, |
+ | | ``MSGQ-REQ-PIPELINE<ID>`` | ``MSGQ-REQ-PIPELINE2``, ``MSGQ-RSP-PIPELINE2,`` |
+ | | ``MSGQ-RSP-PIPELINE<ID>`` | ``MSGQ-REQ-CORE-s0c1``, ``MSGQ-RSP-CORE-s0c1`` |
+ | | ``MSGQ-REQ-CORE-<CORE_ID>`` | |
+ | | ``MSGQ-RSP-CORE-<CORE_ID>`` | |
+ +--------------------------+-----------------------------+-------------------------------------------------+
+
+``LINK`` instances are created implicitly based on the ``PORT_MASK`` application startup argument.
+``LINK0`` is the first port enabled in the ``PORT_MASK``, port 1 is the next one, etc.
+The LINK ID is different than the DPDK PMD-level NIC port ID, which is the actual position in the bitmask mentioned above.
+For example, if bit 5 is the first bit set in the bitmask, then ``LINK0`` is having the PMD ID of 5.
+This mechanism creates a contiguous LINK ID space and isolates the configuration file against changes in the board
+PCIe slots where NICs are plugged in.
+
+``RXQ``, ``TXQ`` and ``TM`` instances have the LINK ID as part of their name.
+For example, ``RXQ2.1``, ``TXQ2.1`` and ``TM2`` are all associated with ``LINK2``.
+
+
+Rules to parse the configuration file
+-------------------------------------
+
+The main rules used to parse the configuration file are:
+
+1. Application resource name determines the type of resource based on the name prefix.
+
+ *Example*: all software queues need to start with ``SWQ`` prefix, so ``SWQ0`` and ``SWQ5`` are valid software
+ queue names.
+
+2. An application resource is defined by creating a configuration file section with its name.
+ The configuration file section allows fine tuning on any of the resource parameters.
+ Some resource parameters are mandatory, in which case it is required to have them specified as part of the
+ section, while some others are optional, in which case they get assigned their default value when not present.
+
+ *Example*: section ``SWQ0`` defines a software queue named SWQ0, whose parameters are detailed as part of this section.
+
+3. An application resource can also be defined by referencing it.
+ Referencing a resource takes place by simply using its name as part of the value assigned to a variable in any
+ configuration file section.
+ In this case, the resource is registered with all its parameters having their default values.
+ Optionally, a section with the resource name can be added to the configuration file to fine tune some or all
+ of the resource parameters.
+
+ *Example*: in section ``PIPELINE3``, variable ``pktq_in`` includes ``SWQ5`` as part of its list, which results
+ in defining a software queue named ``SWQ5``; when there is no ``SWQ5`` section present in the configuration file,
+ ``SWQ5`` gets registered with default parameters.
+
+
+.. _ip_pipeline_pipeline_section:
+
+PIPELINE section
+----------------
+
+.. _table_ip_pipelines_pipeline_section_1:
+
+.. tabularcolumns:: |p{2.5cm}|p{7cm}|p{1.5cm}|p{1.5cm}|p{1.5cm}|
+
+.. table:: Configuration file PIPELINE section (1/2)
+
+ +---------------+-----------------------------------------------------------+---------------+------------------------+----------------+
+ | Section | Description | Optional | Range | Default value |
+ +===============+===========================================================+===============+========================+================+
+ | type | Pipeline type. Defines the functionality to be | NO | See "List | N/A |
+ | | executed. | | of pipeline types" | |
+ +---------------+-----------------------------------------------------------+---------------+------------------------+----------------+
+ | core | CPU core to run the current pipeline. | YES | See "CPU Core | CPU socket 0, |
+ | | | | notation" | core 0, |
+ | | | | | hyper-thread 0 |
+ +---------------+-----------------------------------------------------------+---------------+------------------------+----------------+
+ | pktq_in | Packet queues to serve as input ports for the | YES | List of input | Empty list |
+ | | current pipeline instance. The acceptable packet | | packet queue IDs | |
+ | | queue types are: ``RXQ``, ``SWQ``, ``TM`` and ``SOURCE``. | | | |
+ | | First device in this list is used as pipeline input port | | | |
+ | | 0, second as pipeline input port 1, etc. | | | |
+ +---------------+-----------------------------------------------------------+---------------+------------------------+----------------+
+ | pktq_out | Packet queues to serve as output ports for the | YES | List of output | Empty list |
+ | | current pipeline instance. The acceptable packet | | packet queue IDs. | |
+ | | queue types are: ``TXQ``, ``SWQ``, ``TM`` and ``SINK``. | | | |
+ | | First device in this list is used as pipeline output | | | |
+ | | port 0, second as pipeline output port 1, etc. | | | |
+ +---------------+-----------------------------------------------------------+---------------+------------------------+----------------+
+
+.. _table_ip_pipelines_pipeline_section_2:
+
+.. tabularcolumns:: |p{2.5cm}|p{7cm}|p{1.5cm}|p{1.5cm}|p{1.5cm}|
+
+.. table:: Configuration file PIPELINE section (2/2)
+
+ +---------------+-----------------------------------------------------------+---------------+------------------------+----------------+
+ | Section | Description | Optional | Range | Default value |
+ +===============+===========================================================+===============+========================+================+
+ | msgq_in | Input message queues. These queues contain | YES | List of message | Empty list |
+ | | request messages that need to be handled by the | | queue IDs | |
+ | | current pipeline instance. The type and format of | | | |
+ | | request messages is defined by the pipeline type. | | | |
+ | | For each pipeline instance, there is an input | | | |
+ | | message queue defined implicitly, whose name is: | | | |
+ | | ``MSGQ-REQ-<PIPELINE_ID>``. This message queue | | | |
+ | | should not be mentioned as part of msgq_in list. | | | |
+ +---------------+-----------------------------------------------------------+---------------+------------------------+----------------+
+ | msgq_out | Output message queues. These queues are used by | YES | List of message | Empty list |
+ | | the current pipeline instance to write response | | queue IDs | |
+ | | messages as result of request messages being | | | |
+ | | handled. The type and format of response | | | |
+ | | messages is defined by the pipeline type. | | | |
+ | | For each pipeline instance, there is an output | | | |
+ | | message queue defined implicitly, whose name is: | | | |
+ | | ``MSGQ-RSP-<PIPELINE_ID>``. This message queue | | | |
+ | | should not be mentioned as part of msgq_out list. | | | |
+ +---------------+-----------------------------------------------------------+---------------+------------------------+----------------+
+ | timer_period | Time period, measured in milliseconds, | YES | milliseconds | 1 ms |
+ | | for handling the input message queues. | | | |
+ +---------------+-----------------------------------------------------------+---------------+------------------------+----------------+
+ | <any other> | Arguments to be passed to the current pipeline | Depends on | Depends on | Depends on |
+ | | instance. Format of the arguments, their type, | pipeline type | pipeline type | pipeline type |
+ | | whether each argument is optional or mandatory | | | |
+ | | and its default value (when optional) are defined | | | |
+ | | by the pipeline type. | | | |
+ | | The value of the arguments is applicable to the | | | |
+ | | current pipeline instance only. | | | |
+ +---------------+-----------------------------------------------------------+---------------+------------------------+----------------+
+
+
+.. raw:: latex
+
+ \newpage
+
+
+CPU core notation
+~~~~~~~~~~~~~~~~~
+
+The CPU Core notation is::
+
+ <CPU core> ::= [s|S<CPU socket ID>][c|C]<CPU core ID>[h|H]
+
+For example::
+
+ CPU socket 0, core 0, hyper-thread 0: 0, c0, s0c0
+
+ CPU socket 0, core 0, hyper-thread 1: 0h, c0h, s0c0h
+
+ CPU socket 3, core 9, hyper-thread 1: s3c9h
+
+
+MEMPOOL section
+---------------
+
+.. _table_ip_pipelines_mempool_section:
+
+.. tabularcolumns:: |p{2.5cm}|p{6cm}|p{1.5cm}|p{1.5cm}|p{3cm}|
+
+.. table:: Configuration file MEMPOOL section
+
+ +---------------+-----------------------------------------------+----------+----------+---------------------------+
+ | Section | Description | Optional | Type | Default value |
+ +===============+===============================================+==========+==========+===========================+
+ | buffer_size | Buffer size (in bytes) for the current | YES | uint32_t | 2048 |
+ | | buffer pool. | | | + sizeof(struct rte_mbuf) |
+ | | | | | + HEADROOM |
+ +---------------+-----------------------------------------------+----------+----------+---------------------------+
+ | pool_size | Number of buffers in the current buffer pool. | YES | uint32_t | 32K |
+ +---------------+-----------------------------------------------+----------+----------+---------------------------+
+ | cache_size | Per CPU thread cache size (in number of | YES | uint32_t | 256 |
+ | | buffers) for the current buffer pool. | | | |
+ +---------------+-----------------------------------------------+----------+----------+---------------------------+
+ | cpu | CPU socket ID where to allocate memory for | YES | uint32_t | 0 |
+ | | the current buffer pool. | | | |
+ +---------------+-----------------------------------------------+----------+----------+---------------------------+
+
+
+LINK section
+------------
+
+.. _table_ip_pipelines_link_section:
+
+.. tabularcolumns:: |p{3cm}|p{7cm}|p{1.5cm}|p{1.5cm}|p{2cm}|
+
+.. table:: Configuration file LINK section
+
+ +-----------------+----------------------------------------------+----------+----------+-------------------+
+ | Section entry | Description | Optional | Type | Default value |
+ +=================+==============================================+==========+==========+===================+
+ | arp_q | NIC RX queue where ARP packets should | YES | 0 .. 127 | 0 (default queue) |
+ | | be filtered. | | | |
+ +-----------------+----------------------------------------------+----------+----------+-------------------+
+ | tcp_syn_local_q | NIC RX queue where TCP packets with SYN | YES | 0 .. 127 | 0 (default queue) |
+ | | flag should be filtered. | | | |
+ +-----------------+----------------------------------------------+----------+----------+-------------------+
+ | ip_local_q | NIC RX queue where IP packets with local | YES | 0 .. 127 | 0 (default queue) |
+ | | destination should be filtered. | | | |
+ | | When TCP, UDP and SCTP local queues are | | | |
+ | | defined, they take higher priority than this | | | |
+ | | queue. | | | |
+ +-----------------+----------------------------------------------+----------+----------+-------------------+
+ | tcp_local_q | NIC RX queue where TCP packets with local | YES | 0 .. 127 | 0 (default queue) |
+ | | destination should be filtered. | | | |
+ +-----------------+----------------------------------------------+----------+----------+-------------------+
+ | udp_local_q | NIC RX queue where TCP packets with local | YES | 0 .. 127 | 0 (default queue) |
+ | | destination should be filtered. | | | |
+ +-----------------+----------------------------------------------+----------+----------+-------------------+
+ | sctp_local_q | NIC RX queue where TCP packets with local | YES | 0 .. 127 | 0 (default queue) |
+ | | destination should be filtered. | | | |
+ +-----------------+----------------------------------------------+----------+----------+-------------------+
+ | promisc | Indicates whether current link should be | YES | YES/NO | YES |
+ | | started in promiscuous mode. | | | |
+ +-----------------+----------------------------------------------+----------+----------+-------------------+
+
+
+RXQ section
+-----------
+
+.. _table_ip_pipelines_rxq_section:
+
+.. tabularcolumns:: |p{3cm}|p{7cm}|p{1.5cm}|p{1.5cm}|p{2cm}|
+
+.. table:: Configuration file RXQ section
+
+ +---------------+--------------------------------------------+----------+----------+---------------+
+ | Section | Description | Optional | Type | Default value |
+ +===============+============================================+==========+==========+===============+
+ | mempool | Mempool to use for buffer allocation for | YES | uint32_t | MEMPOOL0 |
+ | | current NIC RX queue. The mempool ID has | | | |
+ | | to be associated with a valid instance | | | |
+ | | defined in the mempool entry of the global | | | |
+ | | section. | | | |
+ +---------------+--------------------------------------------+----------+----------+---------------+
+ | Size | NIC RX queue size (number of descriptors) | YES | uint32_t | 128 |
+ +---------------+--------------------------------------------+----------+----------+---------------+
+ | burst | Read burst size (number of descriptors) | YES | uint32_t | 32 |
+ +---------------+--------------------------------------------+----------+----------+---------------+
+
+
+TXQ section
+-----------
+
+.. _table_ip_pipelines_txq_section:
+
+.. tabularcolumns:: |p{2.5cm}|p{7cm}|p{1.5cm}|p{2cm}|p{1.5cm}|
+
+.. table:: Configuration file TXQ section
+
+ +---------------+----------------------------------------------+----------+------------------+---------------+
+ | Section | Description | Optional | Type | Default value |
+ +===============+==============================================+==========+==================+===============+
+ | size | NIC TX queue size (number of descriptors) | YES | uint32_t | 512 |
+ | | | | power of 2 | |
+ | | | | > 0 | |
+ +---------------+----------------------------------------------+----------+------------------+---------------+
+ | burst | Write burst size (number of descriptors) | YES | uint32_t | 32 |
+ | | | | power of 2 | |
+ | | | | 0 < burst < size | |
+ +---------------+----------------------------------------------+----------+------------------+---------------+
+ | dropless | When dropless is set to NO, packets can be | YES | YES/NO | NO |
+ | | dropped if not enough free slots are | | | |
+ | | currently available in the queue, so the | | | |
+ | | write operation to the queue is non- | | | |
+ | | blocking. | | | |
+ | | When dropless is set to YES, packets cannot | | | |
+ | | be dropped if not enough free slots are | | | |
+ | | currently available in the queue, so the | | | |
+ | | write operation to the queue is blocking, as | | | |
+ | | the write operation is retried until enough | | | |
+ | | free slots become available and all the | | | |
+ | | packets are successfully written to the | | | |
+ | | queue. | | | |
+ +---------------+----------------------------------------------+----------+------------------+---------------+
+ | n_retries | Number of retries. Valid only when dropless | YES | uint32_t | 0 |
+ | | is set to YES. When set to 0, it indicates | | | |
+ | | unlimited number of retries. | | | |
+ +---------------+----------------------------------------------+----------+------------------+---------------+
+
+
+SWQ section
+-----------
+
+.. _table_ip_pipelines_swq_section:
+
+.. tabularcolumns:: |p{2.5cm}|p{7cm}|p{1.5cm}|p{1.5cm}|p{1.5cm}|
+
+.. table:: Configuration file SWQ section
+
+ +---------------+----------------------------------------------+----------+------------------+---------------+
+ | Section | Description | Optional | Type | Default value |
+ +===============+==============================================+==========+==================+===============+
+ | size | Queue size (number of packets) | YES | uint32_t | 256 |
+ | | | | power of 2 | |
+ +---------------+----------------------------------------------+----------+------------------+---------------+
+ | burst_read | Read burst size (number of packets) | YES | uint32_t | 32 |
+ | | | | power of 2 | |
+ | | | | 0 < burst < size | |
+ +---------------+----------------------------------------------+----------+------------------+---------------+
+ | burst_write | Write burst size (number of packets) | YES | uint32_t | 32 |
+ | | | | power of 2 | |
+ | | | | 0 < burst < size | |
+ +---------------+----------------------------------------------+----------+------------------+---------------+
+ | dropless | When dropless is set to NO, packets can be | YES | YES/NO | NO |
+ | | dropped if not enough free slots are | | | |
+ | | currently available in the queue, so the | | | |
+ | | write operation to the queue is non- | | | |
+ | | blocking. | | | |
+ | | When dropless is set to YES, packets cannot | | | |
+ | | be dropped if not enough free slots are | | | |
+ | | currently available in the queue, so the | | | |
+ | | write operation to the queue is blocking, as | | | |
+ | | the write operation is retried until enough | | | |
+ | | free slots become available and all the | | | |
+ | | packets are successfully written to the | | | |
+ | | queue. | | | |
+ +---------------+----------------------------------------------+----------+------------------+---------------+
+ | n_retries | Number of retries. Valid only when dropless | YES | uint32_t | 0 |
+ | | is set to YES. When set to 0, it indicates | | | |
+ | | unlimited number of retries. | | | |
+ +---------------+----------------------------------------------+----------+------------------+---------------+
+ | cpu | CPU socket ID where to allocate memory | YES | uint32_t | 0 |
+ | | for this SWQ. | | | |
+ +---------------+----------------------------------------------+----------+------------------+---------------+
+
+
+TM section
+----------
+
+.. _table_ip_pipelines_tm_section:
+
+.. tabularcolumns:: |p{2.5cm}|p{7cm}|p{1.5cm}|p{1.5cm}|p{1.5cm}|
+
+.. table:: Configuration file TM section
+
+ +---------------+---------------------------------------------+----------+----------+---------------+
+ | Section | Description | Optional | Type | Default value |
+ +===============+=============================================+==========+==========+===============+
+ | Cfg | File name to parse for the TM configuration | YES | string | tm_profile |
+ | | to be applied. The syntax of this file is | | | |
+ | | described in the examples/qos_sched DPDK | | | |
+ | | application documentation. | | | |
+ +---------------+---------------------------------------------+----------+----------+---------------+
+ | burst_read | Read burst size (number of packets) | YES | uint32_t | 64 |
+ +---------------+---------------------------------------------+----------+----------+---------------+
+ | burst_write | Write burst size (number of packets) | YES | uint32_t | 32 |
+ +---------------+---------------------------------------------+----------+----------+---------------+
+
+
+SOURCE section
+--------------
+
+.. _table_ip_pipelines_source_section:
+
+.. tabularcolumns:: |p{2.5cm}|p{7cm}|p{1.5cm}|p{1.5cm}|p{2cm}|
+
+.. table:: Configuration file SOURCE section
+
+ +---------------+---------------------------------------+----------+----------+---------------+
+ | Section | Description | Optional | Type | Default value |
+ +===============+=======================================+==========+==========+===============+
+ | Mempool | Mempool to use for buffer allocation. | YES | uint32_t | MEMPOOL0 |
+ +---------------+---------------------------------------+----------+----------+---------------+
+ | Burst | Read burst size (number of packets) | | uint32_t | 32 |
+ +---------------+---------------------------------------+----------+----------+---------------+
+
+
+SINK section
+------------
+
+Currently, there are no parameters to be passed to a sink device, so
+SINK section is not allowed.
+
+MSGQ section
+------------
+
+.. _table_ip_pipelines_msgq_section:
+
+.. tabularcolumns:: |p{2.5cm}|p{7cm}|p{1.5cm}|p{1.5cm}|p{1.5cm}|
+
+.. table:: Configuration file MSGQ section
+
+ +---------+--------------------------------------------+----------+------------+---------------+
+ | Section | Description | Optional | Type | Default value |
+ +=========+============================================+==========+============+===============+
+ | size | Queue size (number of packets) | YES | uint32_t | 64 |
+ | | | | != 0 | |
+ | | | | power of 2 | |
+ +---------+--------------------------------------------+----------+------------+---------------+
+ | cpu | CPU socket ID where to allocate memory for | YES | uint32_t | 0 |
+ | | the current queue. | | | |
+ +---------+--------------------------------------------+----------+------------+---------------+
+
+
+EAL section
+-----------
+
+The application generates the EAL parameters rather than reading them from the command line.
+
+The CPU core mask parameter is generated based on the core entry of all PIPELINE sections.
+All the other EAL parameters can be set from this section of the application configuration file.
+
+
+Library of pipeline types
+=========================
+
+Pipeline module
+---------------
+
+A pipeline is a self-contained module that implements a packet processing function and is typically implemented on
+top of the DPDK Packet Framework *librte_pipeline* library.
+The application provides a run-time mechanism to register different pipeline types.
+
+Depending on the required configuration, each registered pipeline type (pipeline class) is instantiated one or
+several times, with each pipeline instance (pipeline object) assigned to one of the available CPU cores.
+Each CPU core can run one or more pipeline instances, which might be of same or different types.
+For more information of the CPU core threading model, please refer to the :ref:`ip_pipeline_runtime` section.
+
+
+Pipeline type
+~~~~~~~~~~~~~
+
+Each pipeline type is made up of a back-end and a front-end. The back-end represents the packet processing engine
+of the pipeline, typically implemented using the DPDK Packet Framework libraries, which reads packets from the
+input packet queues, handles them and eventually writes them to the output packet queues or drops them.
+The front-end represents the run-time configuration interface of the pipeline, which is exposed as CLI commands.
+The front-end communicates with the back-end through message queues.
+
+.. _table_ip_pipelines_back_end:
+
+.. tabularcolumns:: |p{1cm}|p{2cm}|p{12cm}|
+
+.. table:: Pipeline back-end
+
+ +------------+------------------+--------------------------------------------------------------------+
+ | Field name | Field type | Description |
+ +============+==================+====================================================================+
+ | f_init | Function pointer | Function to initialize the back-end of the current pipeline |
+ | | | instance. Typical work implemented by this function for the |
+ | | | current pipeline instance: |
+ | | | Memory allocation; |
+ | | | Parse the pipeline type specific arguments; |
+ | | | Initialize the pipeline input ports, output ports and tables, |
+ | | | interconnect input ports to tables; |
+ | | | Set the message handlers. |
+ +------------+------------------+--------------------------------------------------------------------+
+ | f_free | Function pointer | Function to free the resources allocated by the back-end of the |
+ | | | current pipeline instance. |
+ +------------+------------------+--------------------------------------------------------------------+
+ | f_run | Function pointer | Set to NULL for pipelines implemented using the DPDK library |
+ | | | librte_pipeline (typical case), and to non-NULL otherwise. This |
+ | | | mechanism is made available to support quick integration of |
+ | | | legacy code. |
+ | | | This function is expected to provide the packet processing |
+ | | | related code to be called as part of the CPU thread dispatch |
+ | | | loop, so this function is not allowed to contain an infinite loop. |
+ +------------+------------------+--------------------------------------------------------------------+
+ | f_timer | Function pointer | Function to read the pipeline input message queues, handle |
+ | | | the request messages, create response messages and write |
+ | | | the response queues. The format of request and response |
+ | | | messages is defined by each pipeline type, with the exception |
+ | | | of some requests which are mandatory for all pipelines (e.g. |
+ | | | ping, statistics). |
+ +------------+------------------+--------------------------------------------------------------------+
+ | f_track | Function pointer | See section Tracking pipeline output port to physical link |
+ +------------+------------------+--------------------------------------------------------------------+
+
+
+.. _table_ip_pipelines_front_end:
+
+.. tabularcolumns:: |p{1cm}|p{2cm}|p{12cm}|
+
+.. table:: Pipeline front-end
+
+ +------------+-----------------------+-------------------------------------------------------------------+
+ | Field name | Field type | Description |
+ +============+=======================+===================================================================+
+ | f_init | Function pointer | Function to initialize the front-end of the current pipeline |
+ | | | instance. |
+ +------------+-----------------------+-------------------------------------------------------------------+
+ | f_free | Function pointer | Function to free the resources allocated by the front-end of |
+ | | | the current pipeline instance. |
+ +------------+-----------------------+-------------------------------------------------------------------+
+ | cmds | Array of CLI commands | Array of CLI commands to be registered to the application CLI |
+ | | | for the current pipeline type. Even though the CLI is executed |
+ | | | by a different pipeline (typically, this is the master pipeline), |
+ | | | from modularity perspective is more efficient to keep the |
+ | | | message client side (part of the front-end) together with the |
+ | | | message server side (part of the back-end). |
+ +------------+-----------------------+-------------------------------------------------------------------+
+
+
+Tracking pipeline output port to physical link
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Each pipeline instance is a standalone block that does not have visibility into the other pipeline instances or
+the application-level pipeline inter-connectivity.
+In some cases, it is useful for a pipeline instance to get application level information related to pipeline
+connectivity, such as to identify the output link (e.g. physical NIC port) where one of its output ports connected,
+either directly or indirectly by traversing other pipeline instances.
+
+Tracking can be successful or unsuccessful.
+Typically, tracking for a specific pipeline instance is successful when each one of its input ports can be mapped
+to a single output port, meaning that all packets read from the current input port can only go out on a single
+output port.
+Depending on the pipeline type, some exceptions may be allowed: a small portion of the packets, considered exception
+packets, are sent out on an output port that is pre-configured for this purpose.
+
+For pass-through pipeline type, the tracking is always successful.
+For pipeline types as flow classification, firewall or routing, the tracking is only successful when the number of
+output ports for the current pipeline instance is 1.
+
+This feature is used by the IP routing pipeline for adding/removing implicit routes every time a link is brought
+up/down.
+
+
+Table copies
+~~~~~~~~~~~~
+
+Fast table copy: pipeline table used by pipeline for the packet processing task, updated through messages, table
+data structures are optimized for lookup operation.
+
+Slow table copy: used by the configuration layer, typically updated through CLI commands, kept in sync with the fast
+copy (its update triggers the fast copy update).
+Required for executing advanced table queries without impacting the packet processing task, therefore the slow copy
+is typically organized using different criteria than the fast copy.
+
+Examples:
+
+* Flow classification: Search through current set of flows (e.g. list all flows with a specific source IP address);
+
+* Firewall: List rules in descending order of priority;
+
+* Routing table: List routes sorted by prefix depth and their type (local, remote, default);
+
+* ARP: List entries sorted per output interface.
+
+
+Packet meta-data
+~~~~~~~~~~~~~~~~
+
+Packet meta-data field offsets provided as argument to pipeline instances are essentially defining the data structure
+for the packet meta-data used by the current application use-case.
+It is very useful to put it in the configuration file as a comment in order to facilitate the readability of the
+configuration file.
+
+The reason to use field offsets for defining the data structure for the packet meta-data is due to the C language
+limitation of not being able to define data structures at run-time.
+Feature to consider: have the configuration file parser automatically generate and print the data structure defining
+the packet meta-data for the current application use-case.
+
+Packet meta-data typically contains:
+
+1. Pure meta-data: intermediate data per packet that is computed internally, passed between different tables of
+ the same pipeline instance (e.g. lookup key for the ARP table is obtained from the routing table), or between
+ different pipeline instances (e.g. flow ID, traffic metering color, etc);
+
+2. Packet fields: typically, packet header fields that are read directly from the packet, or read from the packet
+ and saved (duplicated) as a working copy at a different location within the packet meta-data (e.g. Diffserv
+ 5-tuple, IP destination address, etc).
+
+Several strategies are used to design the packet meta-data, as described in the next subsections.
+
+
+Store packet meta-data in a different cache line as the packet headers
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+This approach is able to support protocols with variable header length, like MPLS, where the offset of IP header
+from the start of the packet (and, implicitly, the offset of the IP header in the packet buffer) is not fixed.
+Since the pipelines typically require the specification of a fixed offset to the packet fields (e.g. Diffserv
+5-tuple, used by the flow classification pipeline, or the IP destination address, used by the IP routing pipeline),
+the workaround is to have the packet RX pipeline copy these fields at fixed offsets within the packet meta-data.
+
+As this approach duplicates some of the packet fields, it requires accessing more cache lines per packet for filling
+in selected packet meta-data fields (on RX), as well as flushing selected packet meta-data fields into the
+packet (on TX).
+
+Example:
+
+.. code-block:: ini
+
+
+ ; struct app_pkt_metadata {
+ ; uint32_t ip_da;
+ ; uint32_t hash;
+ ; uint32_t flow_id;
+ ; uint32_t color;
+ ; } __attribute__((__packed__));
+ ;
+
+ [PIPELINE1]
+ ; Packet meta-data offsets
+ ip_da_offset = 0; Used by: routing
+ hash_offset = 4; Used by: RX, flow classification
+ flow_id_offset = 8; Used by: flow classification, flow actions
+ color_offset = 12; Used by: flow actions, routing
+
+
+.. raw:: latex
+
+ \newpage
+
+Overlay the packet meta-data in the same cache line with the packet headers
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+This approach is minimizing the number of cache line accessed per packet by storing the packet metadata in the
+same cache line with the packet headers.
+To enable this strategy, either some headroom is reserved for meta-data at the beginning of the packet headers
+cache line (e.g. if 16 bytes are needed for meta-data, then the packet headroom can be set to 128+16 bytes, so
+that NIC writes the first byte of the packet at offset 16 from the start of the first packet cache line),
+or meta-data is reusing the space of some packet headers that are discarded from the packet (e.g. input Ethernet
+header).
+
+Example:
+
+.. code-block:: ini
+
+ ; struct app_pkt_metadata {
+ ; uint8_t headroom[RTE_PKTMBUF_HEADROOM]; /* 128 bytes (default) */
+ ; union {
+ ; struct {
+ ; struct ether_hdr ether; /* 14 bytes */
+ ; struct qinq_hdr qinq; /* 8 bytes */
+ ; };
+ ; struct {
+ ; uint32_t hash;
+ ; uint32_t flow_id;
+ ; uint32_t color;
+ ; };
+ ; };
+ ; struct ipv4_hdr ip; /* 20 bytes */
+ ; } __attribute__((__packed__));
+ ;
+ [PIPELINE2]
+ ; Packet meta-data offsets
+ qinq_offset = 142; Used by: RX, flow classification
+ ip_da_offset = 166; Used by: routing
+ hash_offset = 128; Used by: RX, flow classification
+ flow_id_offset = 132; Used by: flow classification, flow actions
+ color_offset = 136; Used by: flow actions, routing
+
+
+List of pipeline types
+----------------------
+
+.. _table_ip_pipelines_types:
+
+.. tabularcolumns:: |p{3cm}|p{5cm}|p{4cm}|p{4cm}|
+
+.. table:: List of pipeline types provided with the application
+
+ +-----------------------+-----------------------------+-----------------------+------------------------------------------+
+ | Name | Table(s) | Actions | Messages |
+ +=======================+=============================+=======================+==========================================+
+ | Pass-through | Passthrough | 1. Pkt metadata build | 1. Ping |
+ | | | 2. Flow hash | 2. Stats |
+ | Note: depending on | | 3. Pkt checks | |
+ | port type, can be | | 4. Load balancing | |
+ | used for RX, TX, IP | | | |
+ | fragmentation, IP | | | |
+ | reassembly or Traffic | | | |
+ | Management | | | |
+ +-----------------------+-----------------------------+-----------------------+------------------------------------------+
+ | Flow classification | Exact match | 1. Flow ID | 1. Ping |
+ | | | | |
+ | | * Key = byte array | 2. Flow stats | 2. Stats |
+ | | (source: pkt metadata) | 3. Metering | 3. Flow stats |
+ | | * Data = action dependent | 4. Network Address | 4. Action stats |
+ | | | 5. Translation (NAT) | 5. Flow add/ update/ delete |
+ | | | | 6. Default flow add/ update/ delete |
+ | | | | 7. Action update |
+ +-----------------------+-----------------------------+-----------------------+------------------------------------------+
+ | Flow actions | Array | 1. Flow stats | 1. Ping |
+ | | | | |
+ | | * Key = Flow ID | 2. Metering | 2. Stats |
+ | | (source: pkt metadata) | 3. Network Address | 3. Action stats |
+ | | * Data = action dependent | 4. Translation (NAT) | 4. Action update |
+ +-----------------------+-----------------------------+-----------------------+------------------------------------------+
+ | Firewall | ACL | 1. Allow/Drop | 1. Ping |
+ | | | | |
+ | | * Key = n-tuple | | 2. Stats |
+ | | (source: pkt headers) | | 3. Rule add/ update/ delete |
+ | | * Data = none | | 4. Default rule add/ update/ delete |
+ +-----------------------+-----------------------------+-----------------------+------------------------------------------+
+ | IP routing | LPM (IPv4 or IPv6, | 1. TTL decrement and | 1. Ping |
+ | | depending on pipeline type) | 2. IPv4 checksum | 2. Stats |
+ | | | | |
+ | | * Key = IP destination | 3. update | 3. Route add/ update/ delete |
+ | | (source: pkt metadata) | 4. Header | 4. Default route add/ update/ delete |
+ | | * Data = Dependent on | 5. encapsulation | 5. ARP entry add/ update/ delete |
+ | | actions and next hop | 6. (based on next hop | 6. Default ARP entry add/ update/ delete |
+ | | type | 7. type) | |
+ | | | | |
+ | | Hash table (for ARP, only | | |
+ | | | | |
+ | | when ARP is enabled) | | |
+ | | | | |
+ | | * Key = (Port ID, | | |
+ | | next hop IP address) | | |
+ | | (source: pkt meta-data) | | |
+ | | * Data: MAC address | | |
+ +-----------------------+-----------------------------+-----------------------+------------------------------------------+
+
+
+
+Command Line Interface (CLI)
+============================
+
+Global CLI commands
+-------------------
+
+.. _table_ip_pipelines_cli_commands:
+
+.. tabularcolumns:: |p{3cm}|p{6cm}|p{6cm}|
+
+.. table:: Global CLI commands
+
+ +---------+---------------------------------------+--------------------------------------------+
+ | Command | Description | Syntax |
+ +=========+=======================================+============================================+
+ | run | Run CLI commands script file. | run <file> |
+ | | | <file> = path to file with CLI commands to |
+ | | | execute |
+ +---------+---------------------------------------+--------------------------------------------+
+ | quit | Gracefully terminate the application. | quit |
+ +---------+---------------------------------------+--------------------------------------------+
+
+
+CLI commands for link configuration
+-----------------------------------
+
+.. _table_ip_pipelines_runtime_config:
+
+.. tabularcolumns:: |p{3cm}|p{6cm}|p{6cm}|
+
+.. table:: List of run-time configuration commands for link configuration
+
+ +-------------+--------------------+--------------------------------------------+
+ | Command | Description | Syntax |
+ +=============+====================+============================================+
+ | link config | Link configuration | link <link ID> config <IP address> <depth> |
+ +-------------+--------------------+--------------------------------------------+
+ | link up | Link up | link <link ID> up |
+ +-------------+--------------------+--------------------------------------------+
+ | link down | Link down | link <link ID> down |
+ +-------------+--------------------+--------------------------------------------+
+ | link ls | Link list | link ls |
+ +-------------+--------------------+--------------------------------------------+
+
+
+CLI commands common for all pipeline types
+------------------------------------------
+
+.. _table_ip_pipelines_mandatory:
+
+.. tabularcolumns:: |p{3cm}|p{6cm}|p{6cm}|
+
+.. table:: CLI commands mandatory for all pipelines
+
+ +--------------------+------------------------------------------------------+----------------------------------------------+
+ | Command | Description | Syntax |
+ +====================+======================================================+==============================================+
+ | ping | Check whether specific pipeline instance is alive. | p <pipeline ID> ping |
+ | | The master pipeline sends a ping request | |
+ | | message to given pipeline instance and waits for | |
+ | | a response message back. | |
+ | | Timeout message is displayed when the response | |
+ | | message is not received before the timer | |
+ | | expires. | |
+ +--------------------+------------------------------------------------------+----------------------------------------------+
+ | stats | Display statistics for specific pipeline input port, | p <pipeline ID> stats port in <port in ID> |
+ | | output port or table. | p <pipeline ID> stats port out <port out ID> |
+ | | | p <pipeline ID> stats table <table ID> |
+ +--------------------+------------------------------------------------------+----------------------------------------------+
+ | input port enable | Enable given input port for specific pipeline | p <pipeline ID> port in <port ID> enable |
+ | | instance. | |
+ +--------------------+------------------------------------------------------+----------------------------------------------+
+ | input port disable | Disable given input port for specific pipeline | p <pipeline ID> port in <port ID> disable |
+ | | instance. | |
+ +--------------------+------------------------------------------------------+----------------------------------------------+
+
+Pipeline type specific CLI commands
+-----------------------------------
+
+The pipeline specific CLI commands are part of the pipeline type front-end.
diff --git a/doc/guides/sample_app_ug/index.rst b/doc/guides/sample_app_ug/index.rst
index 50dac0f..5777480 100644
--- a/doc/guides/sample_app_ug/index.rst
+++ b/doc/guides/sample_app_ug/index.rst
@@ -67,7 +67,6 @@ Sample Applications User Guide
vmdq_dcb_forwarding
vhost
netmap_compatibility
- internet_proto_ip_pipeline
test_pipeline
dist_app
vm_power_management
diff --git a/doc/guides/sample_app_ug/internet_proto_ip_pipeline.rst b/doc/guides/sample_app_ug/internet_proto_ip_pipeline.rst
deleted file mode 100644
index 257ce3f..0000000
--- a/doc/guides/sample_app_ug/internet_proto_ip_pipeline.rst
+++ /dev/null
@@ -1,135 +0,0 @@
-.. BSD LICENSE
- Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
- * Neither the name of Intel Corporation nor the names of its
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-Internet Protocol (IP) Pipeline Sample Application
-==================================================
-
-The Internet Protocol (IP) Pipeline application illustrates the use of the DPDK Packet Framework tool suite.
-The DPDK pipeline methodology is used to implement functional blocks such as
-packet RX, packet TX, flow classification, firewall,
-routing, IP fragmentation, IP reassembly, etc
-which are then assigned to different CPU cores and connected together to create complex multi-core applications.
-
-Overview
---------
-
-The pipelines for packet RX, packet TX, flow classification, firewall, routing, IP fragmentation, IP reassembly, management, etc
-are instantiated and different CPU cores and connected together through software queues.
-One of the CPU cores can be designated as the management core to run a Command Line Interface (CLI) to add entries to each table
-(e.g. flow table, firewall rule database, routing table, Address Resolution Protocol (ARP) table, and so on),
-bring NIC ports up or down, and so on.
-
-Compiling the Application
--------------------------
-
-#. Go to the examples directory:
-
- .. code-block:: console
-
- export RTE_SDK=/path/to/rte_sdk
- cd ${RTE_SDK}/examples/ip_pipeline
-
-#. Set the target (a default target is used if not specified):
-
- .. code-block:: console
-
- export RTE_TARGET=x86_64-native-linuxapp-gcc
-
-#. Build the application:
-
- .. code-block:: console
-
- make
-
-Running the Sample Code
------------------------
-
-The application execution command line is:
-
-.. code-block:: console
-
- ./ip_pipeline [EAL options] -- -p PORTMASK [-f CONFIG_FILE]
-
-The number of ports in the PORTMASK can be either 2 or 4.
-
-The config file assigns functionality to the CPU core by deciding the pipeline type to run on each CPU core
-(e.g. master, RX, flow classification, firewall, routing, IP fragmentation, IP reassembly, TX) and
-also allows creating complex topologies made up of CPU cores by interconnecting the CPU cores through SW queues.
-
-Once the application is initialized, the CLI is available for populating the application tables,
-bringing NIC ports up or down, and so on.
-
-The flow classification pipeline implements the flow table by using a large (multi-million entry) hash table with a 16-byte key size.
-The lookup key is the IPv4 5-tuple, which is extracted from the input packet by the packet RX pipeline and
-saved in the packet meta-data, has the following format:
-
- [source IP address, destination IP address, L4 protocol, L4 protocol source port, L4 protocol destination port]
-
-The firewall pipeline implements the rule database using an ACL table.
-
-The routing pipeline implements an IP routing table by using an LPM IPv4 table and
-an ARP table by using a hash table with an 8-byte key size.
-The IP routing table lookup provides the output interface ID and the next hop IP address,
-which are stored in the packet meta-data, then used as the lookup key into the ARP table.
-The ARP table lookup provides the destination MAC address to be used for the output packet.
-The action for the default entry of both the IP routing table and the ARP table is packet drop.
-
-The following CLI operations are available:
-
-* Enable/disable NIC ports (RX pipeline)
-
-* Add/delete/list flows (flow classification pipeline)
-
-* Add/delete/list firewall rules (firewall pipeline)
-
-* Add/delete/list routes (routing pipeline)
-
-* Add/delete/list ARP entries (routing pipeline)
-
-In addition, there are two special commands:
-
-* flow add all:
- Populate the flow classification table with 16 million flows
- (by iterating through the last three bytes of the destination IP address).
- These flows are not displayed when using the flow print command.
- When this command is used, the following traffic profile must be used to have flow table lookup hits for all input packets.
- TCP/IPv4 packets with:
-
- * destination IP address = A.B.C.D with A fixed to 0 and B,C,D random
-
- * source IP address fixed to 0
-
- * source TCP port fixed to 0
-
- * destination TCP port fixed to 0
-
-* run cmd_file_path: Read CLI commands from an external file and run them one by one.
-
-The full list of the available CLI commands can be displayed by pressing the TAB key while the application is running.
--
1.9.3
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [dpdk-dev] [PATCH] doc: ip_pipeline app user guide
2015-08-06 13:48 [dpdk-dev] [PATCH] doc: ip_pipeline app user guide Cristian Dumitrescu
@ 2015-08-06 13:55 ` Singh, Jasvinder
2015-08-06 14:38 ` Azarewicz, PiotrX T
` (3 subsequent siblings)
4 siblings, 0 replies; 10+ messages in thread
From: Singh, Jasvinder @ 2015-08-06 13:55 UTC (permalink / raw)
To: Dumitrescu, Cristian, dev
> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Cristian Dumitrescu
> Sent: Thursday, August 6, 2015 2:48 PM
> To: dev@dpdk.org
> Subject: [dpdk-dev] [PATCH] doc: ip_pipeline app user guide
>
> Added more extensive documentation for ip_pipeline application.
>
> Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
> ---
Acked-by: Jasvinder Singh <Jasvinder.singh@intel.com >
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [dpdk-dev] [PATCH] doc: ip_pipeline app user guide
2015-08-06 13:48 [dpdk-dev] [PATCH] doc: ip_pipeline app user guide Cristian Dumitrescu
2015-08-06 13:55 ` Singh, Jasvinder
@ 2015-08-06 14:38 ` Azarewicz, PiotrX T
2015-08-07 15:44 ` Mcnamara, John
` (2 subsequent siblings)
4 siblings, 0 replies; 10+ messages in thread
From: Azarewicz, PiotrX T @ 2015-08-06 14:38 UTC (permalink / raw)
To: Dumitrescu, Cristian, dev
> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Cristian Dumitrescu
> Sent: Thursday, August 6, 2015 3:48 PM
> To: dev@dpdk.org
> Subject: [dpdk-dev] [PATCH] doc: ip_pipeline app user guide
>
> Added more extensive documentation for ip_pipeline application.
>
> Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
> ---
Acked-by: Piotr Azarewicz <piotrx.t.azarewicz@intel.com>
--------------------------------------------------------------
Intel Shannon Limited
Registered in Ireland
Registered Office: Collinstown Industrial Park, Leixlip, County Kildare
Registered Number: 308263
Business address: Dromore House, East Park, Shannon, Co. Clare
This e-mail and any attachments may contain confidential material for the sole use of the intended recipient(s). Any review or distribution by others is strictly prohibited. If you are not the intended recipient, please contact the sender and delete all copies.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [dpdk-dev] [PATCH] doc: ip_pipeline app user guide
2015-08-06 13:48 [dpdk-dev] [PATCH] doc: ip_pipeline app user guide Cristian Dumitrescu
2015-08-06 13:55 ` Singh, Jasvinder
2015-08-06 14:38 ` Azarewicz, PiotrX T
@ 2015-08-07 15:44 ` Mcnamara, John
2015-08-10 21:44 ` Thomas Monjalon
2015-08-11 16:47 ` [dpdk-dev] [PATCH v2] " John McNamara
4 siblings, 0 replies; 10+ messages in thread
From: Mcnamara, John @ 2015-08-07 15:44 UTC (permalink / raw)
To: Dumitrescu, Cristian, dev
> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Cristian Dumitrescu
> Sent: Thursday, August 6, 2015 2:48 PM
> To: dev@dpdk.org
> Subject: [dpdk-dev] [PATCH] doc: ip_pipeline app user guide
>
> Added more extensive documentation for ip_pipeline application.
>
> Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [dpdk-dev] [PATCH] doc: ip_pipeline app user guide
2015-08-06 13:48 [dpdk-dev] [PATCH] doc: ip_pipeline app user guide Cristian Dumitrescu
` (2 preceding siblings ...)
2015-08-07 15:44 ` Mcnamara, John
@ 2015-08-10 21:44 ` Thomas Monjalon
2015-08-11 8:12 ` Mcnamara, John
2015-08-11 16:47 ` [dpdk-dev] [PATCH v2] " John McNamara
4 siblings, 1 reply; 10+ messages in thread
From: Thomas Monjalon @ 2015-08-10 21:44 UTC (permalink / raw)
To: Cristian Dumitrescu; +Cc: dev
2015-08-06 14:48, Cristian Dumitrescu:
> Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
> ---
> doc/guides/index.rst | 1 +
> doc/guides/ip_pipeline_ug/img/ip_pipelines_1.svg | 718 +++++++++++++
> doc/guides/ip_pipeline_ug/img/ip_pipelines_2.svg | 997 +++++++++++++++++
> doc/guides/ip_pipeline_ug/img/ip_pipelines_3.svg | 826 ++++++++++++++
> doc/guides/ip_pipeline_ug/index.rst | 38 +
> doc/guides/ip_pipeline_ug/ip_pipeline_app.rst | 1129 ++++++++++++++++++++
> doc/guides/sample_app_ug/index.rst | 1 -
> .../sample_app_ug/internet_proto_ip_pipeline.rst | 135 ---
The patch is corrupted.
Checkpatch reports:
ERROR:CORRUPTED_PATCH: patch seems to be corrupt (line wrapped?)
Git reports:
fatal: corrupt patch at line 191
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [dpdk-dev] [PATCH] doc: ip_pipeline app user guide
2015-08-10 21:44 ` Thomas Monjalon
@ 2015-08-11 8:12 ` Mcnamara, John
0 siblings, 0 replies; 10+ messages in thread
From: Mcnamara, John @ 2015-08-11 8:12 UTC (permalink / raw)
To: Thomas Monjalon, Dumitrescu, Cristian; +Cc: dev
> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Thomas Monjalon
> Sent: Monday, August 10, 2015 10:45 PM
> To: Dumitrescu, Cristian
> Cc: dev@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH] doc: ip_pipeline app user guide
>
> 2015-08-06 14:48, Cristian Dumitrescu:
> > Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
> ...
>
> The patch is corrupted.
> Checkpatch reports:
> ERROR:CORRUPTED_PATCH: patch seems to be corrupt (line wrapped?) Git
> reports:
> fatal: corrupt patch at line 191
Hi,
I think the problem is that the svg files had lines over 1000 chars that got truncated by git-send-patch or the mailer daemon.
We'll resubmit the patchset.
John
^ permalink raw reply [flat|nested] 10+ messages in thread
* [dpdk-dev] [PATCH v2] doc: ip_pipeline app user guide
2015-08-06 13:48 [dpdk-dev] [PATCH] doc: ip_pipeline app user guide Cristian Dumitrescu
` (3 preceding siblings ...)
2015-08-10 21:44 ` Thomas Monjalon
@ 2015-08-11 16:47 ` John McNamara
2015-08-11 17:23 ` Dumitrescu, Cristian
4 siblings, 1 reply; 10+ messages in thread
From: John McNamara @ 2015-08-11 16:47 UTC (permalink / raw)
To: dev
From: "Dumitrescu, Cristian" <cristian.dumitrescu@intel.com>
Added more extensive documentation for ip_pipeline application.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Acked-by: Jasvinder Singh <Jasvinder.singh@intel.com >
Acked-by: Piotr Azarewicz <piotrx.t.azarewicz@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
---
doc/guides/index.rst | 1 +
doc/guides/ip_pipeline_ug/img/ip_pipelines_1.svg | 738 +++++++++++++
doc/guides/ip_pipeline_ug/img/ip_pipelines_2.svg | 997 +++++++++++++++++
doc/guides/ip_pipeline_ug/img/ip_pipelines_3.svg | 826 ++++++++++++++
doc/guides/ip_pipeline_ug/index.rst | 38 +
doc/guides/ip_pipeline_ug/ip_pipeline_app.rst | 1129 ++++++++++++++++++++
doc/guides/sample_app_ug/index.rst | 1 -
.../sample_app_ug/internet_proto_ip_pipeline.rst | 135 ---
8 files changed, 3729 insertions(+), 136 deletions(-)
create mode 100644 doc/guides/ip_pipeline_ug/img/ip_pipelines_1.svg
create mode 100644 doc/guides/ip_pipeline_ug/img/ip_pipelines_2.svg
create mode 100644 doc/guides/ip_pipeline_ug/img/ip_pipelines_3.svg
create mode 100644 doc/guides/ip_pipeline_ug/index.rst
create mode 100644 doc/guides/ip_pipeline_ug/ip_pipeline_app.rst
delete mode 100644 doc/guides/sample_app_ug/internet_proto_ip_pipeline.rst
diff --git a/doc/guides/index.rst b/doc/guides/index.rst
index 439c7e3..a916856 100644
--- a/doc/guides/index.rst
+++ b/doc/guides/index.rst
@@ -44,6 +44,7 @@ Contents:
nics/index
sample_app_ug/index
testpmd_app_ug/index
+ ip_pipeline_ug/index
faq/index
rel_notes/index
contributing/index
diff --git a/doc/guides/ip_pipeline_ug/img/ip_pipelines_1.svg b/doc/guides/ip_pipeline_ug/img/ip_pipelines_1.svg
new file mode 100644
index 0000000..a114ed8
--- /dev/null
+++ b/doc/guides/ip_pipeline_ug/img/ip_pipelines_1.svg
@@ -0,0 +1,738 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="638.18219"
+ height="273.16391"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.4 r9939"
+ sodipodi:docname="ipPipelines_1_update.svg">
+ <defs
+ id="defs4">
+ <marker
+ inkscape:stockid="Arrow1Mend"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow1Mend"
+ style="overflow:visible;">
+ <path
+ id="path3887"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;"
+ transform="scale(0.4) rotate(180) translate(10,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lstart"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow1Lstart"
+ style="overflow:visible">
+ <path
+ id="path3878"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt"
+ transform="scale(0.8) translate(12.5,0)" />
+ </marker>
+ <clipPath
+ id="clipEmfPath1"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect2990"
+ height="213.83858"
+ width="585"
+ y="0"
+ x="0" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath2"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect2993"
+ height="71.379494"
+ width="66.300003"
+ y="118.0161"
+ x="132.75" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath3"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect2996"
+ height="72.879066"
+ width="66.300003"
+ y="19.794313"
+ x="132.3" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath4"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect2999"
+ height="75.428337"
+ width="65.699997"
+ y="56.983631"
+ x="31.200001" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath5"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect3002"
+ height="157.60474"
+ width="168"
+ y="16.795176"
+ x="331.95001" />
+ </clipPath>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="3.959798"
+ inkscape:cx="287.6677"
+ inkscape:cy="153.39982"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:window-width="1200"
+ inkscape:window-height="1857"
+ inkscape:window-x="-8"
+ inkscape:window-y="-8"
+ inkscape:window-maximized="1"
+ fit-margin-top="0"
+ fit-margin-left="0"
+ fit-margin-right="0"
+ fit-margin-bottom="0" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-82.82706,-337.43917)">
+ <text
+ xml:space="preserve"
+ x="797.93707"
+ y="551.73584"
+ style="font-size:17.86045074px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Calibri"
+ id="text3006"
+ transform="scale(0.90359163,1.1066946)"> </text>
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath1)"
+ d="m 132.375,113.1425 0,80.97674 66.9,0 0,-80.97674 -66.9,0 z"
+ id="path3008"
+ transform="matrix(1.1694604,0,0,1.4323235,83.010165,320.85569)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01213346;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.03640038,0.01213346;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 237.46665,598.89724 0,-3.43659 0.70167,0 0,3.43659 z m 0,-6.01403 0,-3.43658 0.70167,0 0,3.43658 z m 0,-6.01404 0,-3.43658 0.70167,0 0,3.43658 z m 0,-6.01402 0,-3.43659 0.70167,0 0,3.43659 z m 0,-6.01403 0,-3.4366 0.70167,0 0,3.4366 z m 0,-6.01404 0,-3.43659 0.70167,0 0,3.43659 z m 0,-6.01402 0,-3.43659 0.70167,0 0,3.43659 z m 0,-6.01404 0,-3.43659 0.70167,0 0,3.43659 z m 0,-6.01403 0,-3.43659 0.70167,0 0,3.43659 z m 0,-6.01402 0,-3.43659 0.70167,0 0,3.43659 z m 0,-6.01404 0,-3.43659 0.70167,0 0,3.43659 z m 0,-6.01403 0,-3.43659 0.70167,0 0,3.43659 z m 0,-6.01404 0,-3.43659 0.70167,0 0,3.43659 z m 0,-6.01403 0,-3.43658 0.70167,0 0,3.43658 z m 0,-6.01402 0,-3.43659 0.70167,0 0,3.43659 z m 0,-6.01404 0,-3.43659 0.70167,0 0,3.43659 z m 0,-6.01403 0,-3.43658 0.70167,0 0,3.43658 z m 0,-6.01404 0,-3.43658 0.70167,0 0,3.43658 z m 0,-6.01402 0,-3.43659 0.70167,0 0,3.43659 z m 0,-6.01403 0,
+-1.7183 c 0,-0.22821 0.16445,-0.42957 0.35084,-0.42957 l 1.40335,0 0,0.85914 -1.40335,0 0.35083,-0.42957 0,1.7183 z m 3.85922,-2.14787 2.8067,0 0,0.85914 -2.8067,0 z m 4.91173,0 2.80671,0 0,0.85914 -2.80671,0 z m 4.91173,0 2.80671,0 0,0.85914 -2.80671,0 z m 4.91174,0 2.8067,0 0,0.85914 -2.8067,0 z m 4.91173,0 2.80671,0 0,0.85914 -2.80671,0 z m 4.91174,0 2.8067,0 0,0.85914 -2.8067,0 z m 4.91173,0 2.8067,0 0,0.85914 -2.8067,0 z m 4.91173,0 2.80671,0 0,0.85914 -2.80671,0 z m 4.91174,0 2.8067,0 0,0.85914 -2.8067,0 z m 4.91173,0 2.8067,0 0,0.85914 -2.8067,0 z m 4.91173,0 2.80671,0 0,0.85914 -2.80671,0 z m 4.91174,0 2.8067,0 0,0.85914 -2.8067,0 z m 4.91173,0 2.80671,0 0,0.85914 -2.80671,0 z m 4.91173,0 2.80671,0 0,0.85914 -2.80671,0 z m 4.91174,0 2.8067,0 0,0.85914 -2.8067,0 z m 4.91173,0 1.05252,0 c 0.19734,0 0.35083,0.20136 0.35083,
+0.42957 l 0,2.14787 -0.70167,0 0,-2.14787 0.35084,0.42957 -1.05252,0 z m 1.40335,5.15488 0,3.43659 -0.70167,0 0,-3.43659 z m 0,6.01404 0,3.43659 -0.70167,0 0,-3.43659 z m 0,6.01402 0,3.43659 -0.70167,0 0,-3.43659 z m 0,6.01404 0,3.43659 -0.70167,0 0,-3.43659 z m 0,6.01403 0,3.43659 -0.70167,0 0,-3.43659 z m 0,6.01403 0,3.43658 -0.70167,0 0,-3.43658 z m 0,6.01403 0,3.43659 -0.70167,0 0,-3.43659 z m 0,6.01403 0,3.43659 -0.70167,0 0,-3.43659 z m 0,6.01404 0,3.43659 -0.70167,0 0,-3.43659 z m 0,6.01403 0,3.43658 -0.70167,0 0,-3.43658 z m 0,6.01402 0,3.43659 -0.70167,0 0,-3.43659 z m 0,6.01404 0,3.43659 -0.70167,0 0,-3.43659 z m 0,6.01403 0,3.43659 -0.70167,0 0,-3.43659 z m 0,6.01402 0,3.43661 -0.70167,0 0,-3.43661 z m 0,6.01404 0,3.43659 -0.70167,0 0,-3.43659 z m 0,6.01403 0,3.43659 -0.70167,0 0,-3.43659 z m 0,6.01404 0,3.43659 -0.70167,
+0 0,-3.43659 z m 0,6.01402 0,3.43659 -0.70167,0 0,-3.43659 z m 0,6.01403 0,3.00702 c 0,0.24163 -0.15349,0.42958 -0.35083,0.42958 l -0.35084,0 0,-0.85915 0.35084,0 -0.35084,0.42957 0,-3.00702 z m -2.8067,3.4366 -2.80671,0 0,-0.85915 2.80671,0 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 z m -4.91174,0 -2.8067,0 0,-0.85915 2.8067,0 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 z m -4.91174,0 -2.8067,0 0,-0.85915 2.8067,0 z m -4.91173,0 -2.8067,0 0,-0.85915 2.8067,0 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 z m -4.91174,0 -2.8067,0 0,-0.85915 2.8067,0 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 z m -4.91174,0 -2.8067,0 0,-0.85915 2.8067,0 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 z m -4.91174,0 -2.8067,0 0,-0.85915 2.8067,0 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 z m -4.91174,0 -2.10502,0 0,-0.85915 2.10502,0 z"
+ id="path3010" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath2)"
+ d="m 131.925,14.920714 0,82.626267 66.9,0 0,-82.626267 -66.9,0 z"
+ id="path3012"
+ transform="matrix(1.1694604,0,0,1.4323235,83.010165,320.85569)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01213346;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.04853384,0.01213346;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 236.94039,460.57452 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01404 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01404 0,-3.43658 0.70168,0 0,3.43658 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01403 0,-3.43659 0.70168,
+0 0,3.43659 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 z m 1.92961,-4.51052 2.8067,0 0,0.85914 -2.8067,0 z m 4.91173,0 2.80671,0 0,0.85914 -2.80671,0 z m 4.91174,0 2.8067,0 0,0.85914 -2.8067,0 z m 4.91173,0 2.80671,0 0,0.85914 -2.80671,0 z m 4.91173,0 2.80671,0 0,0.85914 -2.80671,0 z m 4.91174,0 2.8067,0 0,0.85914 -2.8067,0 z m 4.91173,0 2.80671,0 0,0.85914 -2.80671,0 z m 4.91174,0 2.8067,0 0,0.85914 -2.8067,0 z m 4.91173,0 2.8067,0 0,0.85914 -2.8067,0 z m 4.91173,0 2.80671,0 0,0.85914 -2.80671,0 z m 4.91174,0 2.8067,0 0,0.85914 -2.8067,0 z m 4.91173,0 2.80671,0 0,0.85914 -2.80671,0 z m 4.91173,0 2.80671,0 0,0.85914 -2.80671,0 z m 4.91174,0 2.8067,0 0,0.85914 -2.8067,0 z m 4.91173,0 2.80671,0 0,0.85914 -2.80671,0 z m 4.91174,0 2.8067,0 0,0.85914 -2.8067,0 z m 3.33296,2.79222 0,
+3.43659 -0.70168,0 0,-3.43659 z m 0,6.01404 0,3.43658 -0.70168,0 0,-3.43658 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 z m 0,6.01404 0,3.43659 -0.70168,0 0,-3.43659 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 z m 0,6.01404 0,3.43658 -0.70168,0 0,-3.43658 z m 0,6.01403 0,3.43659 -0.70168,
+0 0,-3.43659 z m 0,6.01403 0,1.71829 c 0,0.24164 -0.15349,0.42958 -0.35084,0.42958 l -1.40335,0 0,-0.85915 1.40335,0 -0.35084,0.42957 0,-1.71829 z m -3.85922,2.14787 -2.80671,0 0,-0.85915 2.80671,0 z m -4.91174,0 -2.8067,0 0,-0.85915 2.8067,0 z m -4.91173,0 -2.8067,0 0,-0.85915 2.8067,0 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 z m -4.91174,0 -2.8067,0 0,-0.85915 2.8067,0 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 z m -4.91174,0 -2.8067,0 0,-0.85915 2.8067,0 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 z m -4.91174,0 -2.8067,0 0,-0.85915 2.8067,0 z m -4.91173,0 -2.8067,0 0,-0.85915 2.8067,0 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 z m -4.91174,0 -2.8067,0 0,-0.85915 2.8067,0 z m -4.91173,0 -2.8067,0 0,-0.85915 2.8067,0 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 z m -4.91174,0 -1.05251,0 0,-0.85915 1.05251,0 z"
+ id="path3014" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath3)"
+ d="m 30.825,52.110032 0,85.025578 66.3,0 0,-85.025578 -66.3,0 z"
+ id="path3016"
+ transform="matrix(1.1694604,0,0,1.4323235,83.010165,320.85569)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01213346;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.03640038,0.01213346;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 118.70794,517.27825 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01403 0,-3.4366 0.70168,0 0,3.4366 z m 0,-6.01404 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01402 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01404 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01403 0,-3.4366 0.70168,0 0,3.4366 z m 0,-6.01404 0,-3.43658 0.70168,0 0,3.43658 z m 0,-6.01402 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01404 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01404 0,-3.43659 0.70168,
+0 0,3.43659 z m 0,-6.01403 0,-3.43658 0.70168,0 0,3.43658 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 z m 0,-6.01403 0,-1.50351 c 0,-0.22821 0.16446,-0.42957 0.35084,-0.42957 l 1.57877,0 0,0.85915 -1.57877,0 0.35084,-0.42958 0,1.50351 z m 4.03464,-1.93308 2.80671,0 0,0.85915 -2.80671,0 z m 4.91174,0 2.8067,0 0,0.85915 -2.8067,0 z m 4.91173,0 2.8067,0 0,0.85915 -2.8067,0 z m 4.91173,0 2.80671,0 0,0.85915 -2.80671,0 z m 4.91174,0 2.8067,0 0,0.85915 -2.8067,0 z m 4.91173,0 2.80671,0 0,0.85915 -2.80671,0 z m 4.91173,0 2.80671,0 0,0.85915 -2.80671,0 z m 4.91174,0 2.8067,0 0,0.85915 -2.8067,0 z m 4.91173,0 2.80671,0 0,0.85915 -2.80671,0 z m 4.91174,0 2.8067,0 0,0.85915 -2.8067,0 z m 4.91173,0 2.8067,0 0,0.85915 -2.8067,0 z m 4.91173,0 2.80671,0 0,0.85915 -2.80671,0 z m 4.91174,0 2.8067,0 0,0.85915 -2.8067,0 z m 4.91173,0 2.8067,
+0 0,0.85915 -2.8067,0 z m 4.91173,0 2.80671,0 0,0.85915 -2.80671,0 z m 4.91174,0 0.17542,0 c 0.19734,0 0.35083,0.20136 0.35083,0.42957 l 0,3.22181 -0.70167,0 0,-3.22181 0.35084,0.42958 -0.17542,0 z m 0.52625,6.22882 0,3.43659 -0.70167,0 0,-3.43659 z m 0,6.01403 0,3.43659 -0.70167,0 0,-3.43659 z m 0,6.01403 0,3.43659 -0.70167,0 0,-3.43659 z m 0,6.01403 0,3.43659 -0.70167,0 0,-3.43659 z m 0,6.01403 0,3.43659 -0.70167,0 0,-3.43659 z m 0,6.01403 0,3.43659 -0.70167,0 0,-3.43659 z m 0,6.01404 0,3.43658 -0.70167,0 0,-3.43658 z m 0,6.01403 0,3.43659 -0.70167,0 0,-3.43659 z m 0,6.01403 0,3.43659 -0.70167,0 0,-3.43659 z m 0,6.01403 0,3.43659 -0.70167,0 0,-3.43659 z m 0,6.01403 0,3.43659 -0.70167,0 0,-3.43659 z m 0,6.01403 0,3.43659 -0.70167,0 0,-3.43659 z m 0,6.01404 0,3.43659 -0.70167,0 0,-3.43659 z m 0,6.01402 0,3.43659 -0.70167,
+0 0,-3.43659 z m 0,6.01403 0,3.4366 -0.70167,0 0,-3.4366 z m 0,6.01404 0,3.43659 -0.70167,0 0,-3.43659 z m 0,6.01402 0,3.43659 -0.70167,0 0,-3.43659 z m 0,6.01404 0,3.43659 -0.70167,0 0,-3.43659 z m 0,6.01403 0,3.43659 -0.70167,0 0,-3.43659 z m 0,6.01403 0,1.7183 c 0,0.24163 -0.15349,0.42957 -0.35083,0.42957 l -1.40336,0 0,-0.85914 1.40336,0 -0.35084,0.42957 0,-1.7183 z m -3.85921,2.14787 -2.80671,0 0,-0.85914 2.80671,0 z m -4.91174,0 -2.8067,0 0,-0.85914 2.8067,0 z m -4.91173,0 -2.80671,0 0,-0.85914 2.80671,0 z m -4.91174,0 -2.8067,0 0,-0.85914 2.8067,0 z m -4.91173,0 -2.8067,0 0,-0.85914 2.8067,0 z m -4.91173,0 -2.80671,0 0,-0.85914 2.80671,0 z m -4.91174,0 -2.8067,0 0,-0.85914 2.8067,0 z m -4.91173,0 -2.80671,0 0,-0.85914 2.80671,0 z m -4.91173,0 -2.80671,0 0,-0.85914 2.80671,0 z m -4.91174,0 -2.8067,0 0,-0.85914 2.8067,
+0 z m -4.91173,0 -2.80671,0 0,-0.85914 2.80671,0 z m -4.91174,0 -2.8067,0 0,-0.85914 2.8067,0 z m -4.91173,0 -2.8067,0 0,-0.85914 2.8067,0 z m -4.91173,0 -2.80671,0 0,-0.85914 2.80671,0 z m -4.91174,0 -2.8067,0 0,-0.85914 2.8067,0 z m -4.91173,0 -0.35084,0 0,-0.85914 0.35084,0 z"
+ id="path3018" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ clip-path="url(#clipEmfPath4)"
+ d="m 15.225,83.001159 3.253125,0 c 0.35625,0 0.646875,0.299914 0.646875,0.656061 l 0,16.73894 -3.9,0 z"
+ id="path3020"
+ transform="matrix(1.1694604,0,0,1.4323235,83.010165,320.85569)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 105.3761,439.52541 3.8044,0 c 0.41662,0 0.75649,0.42958 0.75649,0.9397 l 0,24.19036 -4.56089,0 z"
+ id="path3022" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 109.93699,439.7402 3.66187,0 c 0.40566,0 0.72361,0.40273 0.72361,0.89942 l 0,24.01585 -4.38548,0 z"
+ id="path3024" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 130.46102,435.44446 0,75.17539 60.695,0 0,-75.17539 -60.695,0 z"
+ id="path3026" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.77654135px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 130.46102,435.44446 60.695,0 0,75.17539 -60.695,0 z"
+ id="path3028" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 100.8152,483.12714 3.8044,0 c 0.41662,0 0.7565,0.42957 0.7565,0.93969 l 0,23.97558 -4.5609,0 z"
+ id="path3030" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 105.3761,482.91235 3.8044,0 c 0.41662,0 0.75649,0.42957 0.75649,0.93969 l 0,24.19037 -4.56089,0 z"
+ id="path3032" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 109.93699,483.12714 3.66187,0 c 0.40566,0 0.72361,0.40273 0.72361,0.89942 l 0,24.01585 -4.38548,0 z"
+ id="path3034" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 216.06552,512.55294 3.66187,0 c 0.40566,0 0.72361,0.40273 0.72361,0.89941 l 0,24.23065 -4.38548,0 z"
+ id="path3036" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 220.451,512.55294 3.80439,0 c 0.41662,0 0.7565,0.42957 0.7565,0.93969 l 0,23.97558 -4.56089,0 z"
+ id="path3038" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 225.01189,512.55294 3.8044,0 c 0.41662,0 0.7565,0.42957 0.7565,0.93969 l 0,24.19037 -4.5609,0 z"
+ id="path3040" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 248.86889,377.88159 0,75.17539 60.51957,0 0,-75.17539 -60.51957,0 z"
+ id="path3042" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.77654135px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 248.86889,377.88159 60.51957,0 0,75.17539 -60.51957,0 z"
+ id="path3044" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 249.57056,488.06724 0,75.17539 60.695,0 0,-75.17539 -60.695,0 z"
+ id="path3046" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.77654135px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 249.57056,488.06724 60.695,0 0,75.17539 -60.695,0 z"
+ id="path3048" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 216.06552,404.30037 3.66187,0 c 0.40566,0 0.72361,0.40273 0.72361,0.89942 l 0,24.01586 -4.38548,0 z"
+ id="path3050" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 220.451,404.30037 3.80439,0 c 0.41662,0 0.7565,0.42958 0.7565,0.9397 l 0,23.97558 -4.56089,0 z"
+ id="path3052" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 225.01189,404.30037 3.8044,0 c 0.41662,0 0.7565,0.42958 0.7565,0.9397 l 0,23.97558 -4.5609,0 z"
+ id="path3054" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01213346;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:0.01213346,0.01213346;stroke-miterlimit:4;stroke-dashoffset:0;marker-mid:none"
+ d="m 114.36632,451.31184 9.51649,0.57724 -0.0768,1.78542 -9.51648,-0.57724 0.0768,-1.78542 z m 9.48359,1.47666 -2.70803,-5.54418 8.54072,5.89321 -8.97926,4.8327 3.14657,-5.18173 z"
+ id="path3056" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01213346;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:0.01213346,0.01213346;stroke-miterlimit:4;stroke-dashoffset:0;marker-mid:none"
+ d="m 115.24342,495.34314 9.51648,0.56382 -0.0768,1.78541 -9.51648,-0.56381 0.0768,-1.78542 z m 9.48359,1.46324 -2.70803,-5.54418 8.54071,5.89321 -8.9683,4.8327 3.13562,-5.18173 z"
+ id="path3058" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01213346;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:0.01213346,0.01213346;stroke-miterlimit:4;stroke-dashoffset:0;marker-mid:none"
+ d="m 191.15602,445.78108 12.2574,0 0,-28.37871 -0.73457,0.89942 5.66823,0 0,-1.78542 -6.40279,0 0,28.36529 0.73456,-0.886 -11.52283,0 0,1.78542 z m 17.19106,-28.37871 -2.91634,5.36967 8.77095,-5.36967 -8.77095,-5.36967 2.91634,5.36967 z"
+ id="path3060" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01213346;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:0.01213346,0.01213346;stroke-miterlimit:4;stroke-dashoffset:0;marker-mid:none"
+ d="m 192.03311,499.85366 11.87367,0 0,23.8145 -0.73456,-0.89943 5.2845,0 0,1.78542 -6.01906,0 0,-23.81448 0.73456,0.89941 -11.13911,0 0,-1.78542 z m 16.42361,23.8145 -2.91634,-5.36968 8.77095,5.36968 -8.77095,5.36966 2.91634,-5.36966 z"
+ id="path3062" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01213346;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:0.01213346,0.01213346;stroke-miterlimit:4;stroke-dashoffset:0;marker-mid:none"
+ d="m 82.96631,451.31184 9.516484,0.57724 -0.07675,1.78542 -9.516484,-0.57724 0.07675,-1.78542 z m 9.483593,1.47666 -2.708032,-5.54418 8.540716,5.89321 -8.979263,4.8327 3.146579,-5.18173 z"
+ id="path3064" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01213346;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:0.01213346,0.01213346;stroke-miterlimit:4;stroke-dashoffset:0;marker-mid:none"
+ d="m 83.667986,494.48399 9.516484,0.57724 -0.07675,1.78542 -9.516484,-0.57724 0.07675,-1.78542 z m 9.483593,1.47666 -2.708031,-5.54418 8.540715,5.89321 -8.979263,4.83271 3.146579,-5.18174 z"
+ id="path3066" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01213346px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 230.28542,414.58329 12.57536,0.0268 0,1.78542 -12.58631,-0.0268 0.0105,-1.78542 z m 12.57536,0.92627 -2.91634,-5.38309 8.75999,5.39651 -8.77096,5.34283 2.92731,-5.35625 z"
+ id="path3068" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01213346;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:0.01213346,0.01213346;stroke-miterlimit:4;stroke-dashoffset:0;marker-mid:none"
+ d="m 229.59472,524.12458 14.12123,0.36245 -0.0329,1.78542 -14.12123,-0.36246 0.0329,-1.78541 z m 14.0993,1.24844 -2.82863,-5.43678 8.67228,5.58446 -8.85866,5.15487 3.01501,-5.30255 z"
+ id="path3070" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01213346;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:0.01213346,0.01213346;stroke-miterlimit:4;stroke-dashoffset:0;marker-mid:none"
+ d="m 310.27652,412.865 12.57535,0.0268 0,1.78541 -12.58631,-0.0269 0.0105,-1.78542 z m 12.57535,0.92627 -2.91634,-5.3831 8.75999,5.39652 -8.77096,5.34282 2.92731,-5.35624 z"
+ id="path3072" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01213346;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:0.01213346,0.01213346;stroke-miterlimit:4;stroke-dashoffset:0;marker-mid:none"
+ d="m 310.97819,524.55415 12.57536,0.0268 0,1.78542 -12.58632,-0.0268 0.0105,-1.78542 z m 12.57536,0.92627 -2.91634,-5.3831 8.75998,5.39652 -8.77095,5.34282 2.92731,-5.35624 z"
+ id="path3074" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 329.38623,401.50814 3.8044,0 c 0.41662,0 0.7565,0.42958 0.7565,0.9397 l 0,24.19036 -4.5609,0 z"
+ id="path3076" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 333.94713,401.50814 3.8044,0 c 0.41662,0 0.7565,0.42958 0.7565,0.9397 l 0,23.97558 -4.5609,0 z"
+ id="path3078" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 338.50803,401.50814 3.8044,0 c 0.41661,0 0.75649,0.42958 0.75649,0.9397 l 0,24.19036 -4.56089,0 z"
+ id="path3080" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 330.78959,512.55294 3.66187,0 c 0.40566,0 0.7236,0.40273 0.7236,0.89941 l 0,24.23065 -4.38547,0 z"
+ id="path3082" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 335.17506,512.55294 3.8044,0 c 0.41663,0 0.7565,0.42957 0.7565,0.93969 l 0,24.19037 -4.5609,0 z"
+ id="path3084" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 339.73596,512.55294 3.80439,0 c 0.41664,0 0.7565,0.42957 0.7565,0.93969 l 0,24.19037 -4.56089,0 z"
+ id="path3086" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.012;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:0.012,0.012;stroke-miterlimit:4;stroke-dashoffset:0;marker-mid:none"
+ d="m 343.95699,412.865 12.57534,0.0268 0,1.78541 -12.58631,-0.0269 0.0105,-1.78542 z m 12.57534,0.92627 -2.91634,-5.3831 8.75999,5.39652 -8.77096,5.34282 2.92731,-5.35624 z"
+ id="path3088" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01213346;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:0.01213346,0.01213346;stroke-miterlimit:4;stroke-dashoffset:0;marker-mid:none"
+ d="m 344.30781,524.76894 12.57536,0.0268 0,1.78542 -12.58632,-0.0268 0.0105,-1.7854 z m 12.57536,0.92627 -2.91634,-5.3831 8.75998,5.39652 -8.77095,5.34283 2.92731,-5.35625 z"
+ id="path3090" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.02426692;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.09706768,0.02426692;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 470.42316,577.41856 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01404 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01403 0,-3.43658 0.70168,0 0,3.43658 -0.70168,0 z m 0,-6.01402 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01404 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01403 0,-3.43658 0.70168,0 0,3.43658 -0.70168,0 z m 0,-6.01402 0,-3.4366 0.70168,0 0,3.4366 -0.70168,0 z m 0,-6.01404 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01404 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01402 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01403 0,-3.4366 0.70168,0 0,3.4366 -0.70168,0 z m 0,-6.01404 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01402 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01404 0,-3.43659 0.70168,
+0 0,3.43659 -0.70168,0 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01403 0,-3.4366 0.70168,0 0,3.4366 -0.70168,0 z m 0,-6.01404 0,-3.43658 0.70168,0 0,3.43658 -0.70168,0 z m 0,-6.01402 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01404 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01404 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01403 0,-3.43658 0.70168,0 0,3.43658 -0.70168,0 z m 0,-6.01403 0,
+-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01404 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 0,-6.01403 0,-3.43659 0.70168,0 0,3.43659 -0.70168,0 z m 1.22793,-5.36967 2.80671,0 0,0.85915 -2.80671,0 0,-0.85915 z m 4.91174,0 2.8067,0 0,0.85915 -2.8067,0 0,-0.85915 z m 4.91173,0 2.8067,0 0,0.85915 -2.8067,0 0,-0.85915 z m 4.91173,0 2.80671,0 0,0.85915 -2.80671,0 0,-0.85915 z m 4.91174,
+0 2.8067,0 0,0.85915 -2.8067,0 0,-0.85915 z m 4.91173,0 2.80671,0 0,0.85915 -2.80671,0 0,-0.85915 z m 4.91173,0 2.80671,0 0,0.85915 -2.80671,0 0,-0.85915 z m 4.91174,0 2.8067,0 0,0.85915 -2.8067,0 0,-0.85915 z m 4.91173,0 2.80671,0 0,0.85915 -2.80671,0 0,-0.85915 z m 4.91174,0 2.8067,0 0,0.85915 -2.8067,0 0,-0.85915 z m 4.91173,0 2.8067,0 0,0.85915 -2.8067,0 0,-0.85915 z m 4.91173,0 2.80671,0 0,0.85915 -2.80671,0 0,-0.85915 z m 4.91174,0 2.8067,0 0,0.85915 -2.8067,0 0,-0.85915 z m 4.91173,0 2.80671,0 0,0.85915 -2.80671,0 0,-0.85915 z m 4.91173,0 2.80671,0 0,0.85915 -2.80671,0 0,-0.85915 z m 4.91174,0 2.8067,0 0,0.85915 -2.8067,0 0,-0.85915 z m 4.91173,0 2.80671,0 0,0.85915 -2.80671,0 0,-0.85915 z m 4.91173,0 2.80671,0 0,0.85915 -2.80671,0 0,-0.85915 z m 4.91174,0 2.8067,0 0,0.85915 -2.8067,0 0,-0.85915 z m 4.91173,0 2.80671,0 0,
+0.85915 -2.80671,0 0,-0.85915 z m 4.91174,0 2.8067,0 0,0.85915 -2.8067,0 0,-0.85915 z m 4.91173,0 2.8067,0 0,0.85915 -2.8067,0 0,-0.85915 z m 4.91173,0 2.80671,0 0,0.85915 -2.80671,0 0,-0.85915 z m 4.91174,0 2.8067,0 0,0.85915 -2.8067,0 0,-0.85915 z m 4.91173,0 2.80671,0 0,0.85915 -2.80671,0 0,-0.85915 z m 4.91173,0 2.80671,0 0,0.85915 -2.80671,0 0,-0.85915 z m 4.91174,0 2.8067,0 0,0.85915 -2.8067,0 0,-0.85915 z m 4.91173,0 2.80671,0 0,0.85915 -2.80671,0 0,-0.85915 z m 4.91174,0 2.8067,0 0,0.85915 -2.8067,0 0,-0.85915 z m 4.91173,0 2.8067,0 0,0.85915 -2.8067,0 0,-0.85915 z m 4.91173,0 2.80671,0 0,0.85915 -2.80671,0 0,-0.85915 z m 4.91174,0 2.8067,0 0,0.85915 -2.8067,0 0,-0.85915 z m 4.91173,0 2.80671,0 0,0.85915 -2.80671,0 0,-0.85915 z m 4.91173,0 2.80671,0 0,0.85915 -2.80671,0 0,-0.85915 z m 4.91174,0 2.8067,0 0,0.85915 -2.8067,
+0 0,-0.85915 z m 4.91173,0 2.80671,0 0,0.85915 -2.80671,0 0,-0.85915 z m 4.91173,0 2.80671,0 0,0.85915 -2.80671,0 0,-0.85915 z m 4.91174,0 2.8067,0 0,0.85915 -2.8067,0 0,-0.85915 z m 4.91173,0 2.80671,0 0,0.85915 -2.80671,0 0,-0.85915 z m 4.91174,0 2.8067,0 0,0.85915 -2.8067,0 0,-0.85915 z m 5.08715,0.64436 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01404 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01403 0,3.43659 -0.70168,0 0,
+-3.43659 0.70168,0 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01404 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01404 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01402 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01404 0,3.43659 -0.70168,
+0 0,-3.43659 0.70168,0 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01404 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01402 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01403 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01404 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01403 0,3.43658 -0.70168,0 0,-3.43658 0.70168,0 z m 0,6.01402 0,3.4366 -0.70168,0 0,-3.4366 0.70168,0 z m 0,6.01404 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01403 0,3.43658 -0.70168,0 0,-3.43658 0.70168,0 z m 0,6.01404 0,3.43658 -0.70168,0 0,-3.43658 0.70168,0 z m 0,6.01402 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01403 0,3.4366 -0.70168,0 0,-3.4366 0.70168,0 z m 0,6.01404 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01402 0,3.43659 -0.70168,0 0,-3.43659 0.70168,0 z m 0,6.01404 0,3.43659 -0.70168,
+0 0,-3.43659 0.70168,0 z m -1.40335,5.15488 -2.80671,0 0,-0.85915 2.80671,0 0,0.85915 z m -4.91174,0 -2.8067,0 0,-0.85915 2.8067,0 0,0.85915 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 0,0.85915 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 0,0.85915 z m -4.91174,0 -2.8067,0 0,-0.85915 2.8067,0 0,0.85915 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 0,0.85915 z m -4.91174,0 -2.8067,0 0,-0.85915 2.8067,0 0,0.85915 z m -4.91173,0 -2.8067,0 0,-0.85915 2.8067,0 0,0.85915 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 0,0.85915 z m -4.91174,0 -2.8067,0 0,-0.85915 2.8067,0 0,0.85915 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 0,0.85915 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 0,0.85915 z m -4.91174,0 -2.8067,0 0,-0.85915 2.8067,0 0,0.85915 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 0,0.85915 z m -4.91174,0 -2.8067,
+0 0,-0.85915 2.8067,0 0,0.85915 z m -4.91173,0 -2.8067,0 0,-0.85915 2.8067,0 0,0.85915 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 0,0.85915 z m -4.91174,0 -2.8067,0 0,-0.85915 2.8067,0 0,0.85915 z m -4.91173,0 -2.8067,0 0,-0.85915 2.8067,0 0,0.85915 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 0,0.85915 z m -4.91174,0 -2.8067,0 0,-0.85915 2.8067,0 0,0.85915 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 0,0.85915 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 0,0.85915 z m -4.91174,0 -2.8067,0 0,-0.85915 2.8067,0 0,0.85915 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 0,0.85915 z m -4.91174,0 -2.8067,0 0,-0.85915 2.8067,0 0,0.85915 z m -4.91173,0 -2.8067,0 0,-0.85915 2.8067,0 0,0.85915 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 0,0.85915 z m -4.91174,0 -2.8067,0 0,-0.85915 2.8067,0 0,0.85915 z m -4.91173,0 -2.80671,
+0 0,-0.85915 2.80671,0 0,0.85915 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 0,0.85915 z m -4.91174,0 -2.8067,0 0,-0.85915 2.8067,0 0,0.85915 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 0,0.85915 z m -4.91174,0 -2.8067,0 0,-0.85915 2.8067,0 0,0.85915 z m -4.91173,0 -2.8067,0 0,-0.85915 2.8067,0 0,0.85915 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 0,0.85915 z m -4.91174,0 -2.8067,0 0,-0.85915 2.8067,0 0,0.85915 z m -4.91173,0 -2.8067,0 0,-0.85915 2.8067,0 0,0.85915 z m -4.91173,0 -2.80671,0 0,-0.85915 2.80671,0 0,0.85915 z m -4.91174,0 -2.8067,0 0,-0.85915 2.8067,0 0,0.85915 z"
+ id="path3094" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ clip-path="url(#clipEmfPath5)"
+ d="m 315.975,85.250513 3.2625,0 c 0.35625,0 0.6375,0.299914 0.6375,0.656061 l 0,16.738946 -3.9,0 z"
+ id="path3096"
+ transform="matrix(1.1694604,0,0,1.4323235,83.010165,320.85569)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 457.09131,442.74722 3.81537,0 c 0.41662,0 0.74553,0.42957 0.74553,0.93969 l 0,24.19037 -4.5609,0 z"
+ id="path3098" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 461.65221,442.962 3.66187,0 c 0.41662,0 0.7236,0.40273 0.7236,0.91285 l 0,24.00243 -4.38547,0 z"
+ id="path3100" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 482.17624,438.66627 0,75.17539 60.69499,0 0,-75.17539 -60.69499,0 z"
+ id="path3102" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.77654135px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 482.17624,438.66627 60.69499,0 0,75.17539 -60.69499,0 z"
+ id="path3104" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 452.53041,486.34894 3.81537,0 c 0.41662,0 0.74553,0.42958 0.74553,0.93969 l 0,23.97559 -4.5609,0 z"
+ id="path3106" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 457.09131,486.13415 3.81537,0 c 0.41662,0 0.74553,0.42958 0.74553,0.9397 l 0,24.19037 -4.5609,0 z"
+ id="path3108" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 461.65221,486.34894 3.66187,0 c 0.41662,0 0.7236,0.40273 0.7236,0.91285 l 0,24.00243 -4.38547,0 z"
+ id="path3110" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 567.78074,515.77474 3.66187,0 c 0.41662,0 0.7236,0.40272 0.7236,0.91285 l 0,24.21721 -4.38547,0 z"
+ id="path3112" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 572.16621,515.77474 3.81537,0 c 0.41662,0 0.74553,0.42957 0.74553,0.93969 l 0,23.97557 -4.5609,0 z"
+ id="path3114" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 576.72711,515.77474 3.81536,0 c 0.41662,0 0.74553,0.42957 0.74553,0.93969 l 0,24.19037 -4.56089,0 z"
+ id="path3116" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 600.5841,381.1034 0,75.17539 60.51958,0 0,-75.17539 -60.51958,0 z"
+ id="path3118" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.77654135px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 600.5841,381.1034 60.51958,0 0,75.17539 -60.51958,0 z"
+ id="path3120" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 601.28578,491.28904 0,75.1754 60.69499,0 0,-75.1754 -60.69499,0 z"
+ id="path3122" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.77654135px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 601.28578,491.28904 60.69499,0 0,75.1754 -60.69499,0 z"
+ id="path3124" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 567.78074,407.52218 3.66187,0 c 0.41662,0 0.7236,0.40272 0.7236,0.91284 l 0,24.00243 -4.38547,0 z"
+ id="path3126" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 572.16621,407.52218 3.81537,0 c 0.41662,0 0.74553,0.42957 0.74553,0.93969 l 0,23.97558 -4.5609,0 z"
+ id="path3128" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 576.72711,407.52218 3.81536,0 c 0.41662,0 0.74553,0.42957 0.74553,0.93969 l 0,23.97558 -4.56089,0 z"
+ id="path3130" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.02426692;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:0.02426692,0.02426692;stroke-miterlimit:4;stroke-dashoffset:0;marker-mid:none"
+ d="m 466.08154,454.53364 9.51648,0.59067 -0.0657,1.77199 -9.51649,-0.56382 0.0657,-1.79884 z m 9.49455,1.47666 -2.71899,-5.53076 8.55168,5.87979 -8.99023,4.83271 3.15754,-5.18174 z"
+ id="path3132" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.02426692;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:0.02426692,0.02426692;stroke-miterlimit:4;stroke-dashoffset:0;marker-mid:none"
+ d="m 466.95863,498.56494 9.51649,0.56382 -0.0657,1.79884 -9.51648,-0.56382 0.0657,-1.79884 z m 9.47263,1.47667 -2.69707,-5.55762 8.55168,5.90665 -8.9683,4.8327 3.11369,-5.18173 z"
+ id="path3134" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.02426692;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:0.02426692,0.02426692;stroke-miterlimit:4;stroke-dashoffset:0;marker-mid:none"
+ d="m 542.87123,449.00288 12.25741,0 0,-28.37871 -0.72361,0.91285 5.65727,0 0,-1.79884 -6.4028,0 0,28.37871 0.74553,-0.886 -11.5338,0 0,1.77199 z m 17.19107,-28.37871 -2.91634,5.36967 8.77095,-5.36967 -8.77095,-5.36967 2.91634,5.36967 z"
+ id="path3136" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.02426692;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:0.02426692,0.02426692;stroke-miterlimit:4;stroke-dashoffset:0;marker-mid:none"
+ d="m 543.74833,503.07547 11.88464,0 0,23.81448 -0.74553,-0.88599 5.2845,0 0,1.77199 -6.00811,0 0,-23.81449 0.72361,0.91285 -11.13911,0 0,-1.79884 z m 16.42361,23.81448 -2.91635,-5.36966 8.77096,5.36966 -8.77096,5.36967 2.91635,-5.36967 z"
+ id="path3138" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.02426692;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:0.02426692,0.02426692;stroke-miterlimit:4;stroke-dashoffset:0;marker-mid:none"
+ d="m 434.68153,454.53364 9.51648,0.59067 -0.0658,1.77199 -9.51649,-0.56382 0.0657,-1.79884 z m 9.49455,1.47666 -2.71899,-5.53076 8.55168,5.87979 -8.99023,4.83271 3.15754,-5.18174 z"
+ id="path3140" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.02426692;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:0.02426692,0.02426692;stroke-miterlimit:4;stroke-dashoffset:0;marker-mid:none"
+ d="m 435.3832,497.70579 9.51649,0.59068 -0.0657,1.77198 -9.51648,-0.56382 0.0657,-1.79884 z m 9.49456,1.47667 -2.719,-5.53076 8.55168,5.87979 -8.99022,4.8327 3.15754,-5.18173 z"
+ id="path3142" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.02426692;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:0.02426692,0.02426692;stroke-miterlimit:4;stroke-dashoffset:0;marker-mid:none"
+ d="m 582.01161,417.8051 12.56439,0.0268 0,1.79884 -12.58632,-0.0269 0.022,-1.79884 z m 12.56439,0.93969 -2.91634,-5.39652 8.77095,5.39652 -8.77095,5.34282 2.91634,-5.34282 z"
+ id="path3144" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.02426692;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:0.02426692,0.02426692;stroke-miterlimit:4;stroke-dashoffset:0;marker-mid:none"
+ d="m 581.30993,527.34638 14.12124,0.37587 -0.022,1.772 -14.12123,-0.34903 0.022,-1.79884 z m 14.09931,1.26188 -2.82863,-5.45022 8.68324,5.58445 -8.85866,5.15489 3.00405,-5.28912 z"
+ id="path3146" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.02426692;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:0.02426692,0.02426692;stroke-miterlimit:4;stroke-dashoffset:0;marker-mid:none"
+ d="m 662.0027,416.0868 12.56439,0.0269 0,1.79884 -12.58632,-0.0269 0.022,-1.79884 z m 12.56439,0.93969 -2.91634,-5.39652 8.77095,5.39652 -8.77095,5.34282 2.91634,-5.34282 z"
+ id="path3148" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.02426692;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:0.02426692,0.02426692;stroke-miterlimit:4;stroke-dashoffset:0;marker-mid:none"
+ d="m 662.70438,527.77595 12.56439,0.0268 0,1.79884 -12.58632,-0.0268 0.022,-1.79884 z m 12.56439,0.9397 -2.91635,-5.39652 8.77096,5.39652 -8.77096,5.34281 2.91635,-5.34281 z"
+ id="path3150" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 681.10145,404.72995 3.81536,0 c 0.41662,0 0.74554,0.42957 0.74554,0.93969 l 0,24.19037 -4.5609,0 z"
+ id="path3152" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 685.66235,404.72995 3.81536,0 c 0.41662,0 0.74553,0.42957 0.74553,0.93969 l 0,23.97558 -4.56089,0 z"
+ id="path3154" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 690.22324,404.72995 3.81537,0 c 0.41662,0 0.74553,0.42957 0.74553,0.93969 l 0,24.19037 -4.5609,0 z"
+ id="path3156" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 682.5048,515.77474 3.66188,0 c 0.41662,0 0.7236,0.40272 0.7236,0.91285 l 0,24.21721 -4.38548,0 z"
+ id="path3158" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 686.89028,515.77474 3.81536,0 c 0.41662,0 0.74553,0.42957 0.74553,0.93969 l 0,24.19037 -4.56089,0 z"
+ id="path3160" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 691.45117,515.77474 3.81537,0 c 0.41662,0 0.74553,0.42957 0.74553,0.93969 l 0,24.19037 -4.5609,0 z"
+ id="path3162" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.02426692px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 695.68316,416.0868 12.56439,0.0269 0,1.79884 -12.58632,-0.0269 0.0219,-1.79884 z m 12.56439,0.93969 -2.91634,-5.39652 8.77095,5.39652 -8.77095,5.34282 2.91634,-5.34282 z"
+ id="path3164" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.02426692px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 696.034,527.99074 12.56439,0.0269 0,1.79882 -12.58632,-0.0268 0.022,-1.79884 z m 12.56439,0.93969 -2.91634,-5.39652 8.77095,5.39652 -8.77095,5.34282 2.91634,-5.34282 z"
+ id="path3166" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 374.1181,472.44149 42.53912,0 0,-3.49028 5.70112,6.98057 -5.70112,6.98057 0,-3.49028 -42.53912,0 z"
+ id="path3168" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.5530827px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 374.1181,472.44149 42.53912,0 0,-3.49028 5.70112,6.98057 -5.70112,6.98057 0,-3.49028 -42.53912,0 z"
+ id="path3170" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="blocks"
+ transform="translate(-82.82706,-337.43917)">
+ <rect
+ style="fill:none;stroke:#000000;stroke-width:0;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:0,0;stroke-dashoffset:0;stroke-linejoin:miter"
+ id="rect4431"
+ width="61.07143"
+ height="75.714287"
+ x="247.14285"
+ y="377.00504" />
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="129.47055"
+ y="417.48993"
+ id="text4458-5-6"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4460-7-1"
+ x="129.47055"
+ y="417.48993"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans">CPU Core 1</tspan><tspan
+ sodipodi:role="line"
+ x="129.47055"
+ y="431.23993"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668" /></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="248.86055"
+ y="358.53632"
+ id="text4458-5-6-8-7"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4460-7-1-9-9"
+ x="248.86055"
+ y="358.53632"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans">CPU Core 2</tspan><tspan
+ sodipodi:role="line"
+ x="248.86055"
+ y="372.28632"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-2-5" /></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="249.61816"
+ y="589.6087"
+ id="text4458-5-6-8-4"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="249.61816"
+ y="589.6087"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-2-1">CPU Core 3</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+ x="145.96704"
+ y="472.28207"
+ id="text4731"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4733"
+ x="145.96704"
+ y="472.28207" /></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="154.6613"
+ y="476.98529"
+ id="text4458-5-6-4"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="154.6613"
+ y="476.98529"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-1">P1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="272.26172"
+ y="419.42242"
+ id="text4458-5-6-4-3"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="272.26172"
+ y="419.42242"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-1-8">P2</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="273.77084"
+ y="529.60803"
+ id="text4458-5-6-4-7"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="273.77084"
+ y="529.60803"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-1-4">P3</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="547.64105"
+ y="361.29749"
+ id="text4458-5-6-3"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4460-7-1-1"
+ x="547.64105"
+ y="361.29749"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans">CPU Core 1</tspan><tspan
+ sodipodi:role="line"
+ x="547.64105"
+ y="375.04749"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-9" /></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="506.37653"
+ y="480.20709"
+ id="text4458-5-6-4-8"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="506.37653"
+ y="480.20709"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-1-6">P1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="623.97693"
+ y="422.64423"
+ id="text4458-5-6-4-3-0"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="623.97693"
+ y="422.64423"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-1-8-2">P2</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="624.72607"
+ y="532.76007"
+ id="text4458-5-6-4-7-4"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="624.72607"
+ y="532.76007"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-1-4-8">P3</tspan></text>
+ </g>
+</svg>
diff --git a/doc/guides/ip_pipeline_ug/img/ip_pipelines_2.svg b/doc/guides/ip_pipeline_ug/img/ip_pipelines_2.svg
new file mode 100644
index 0000000..5252b17
--- /dev/null
+++ b/doc/guides/ip_pipeline_ug/img/ip_pipelines_2.svg
@@ -0,0 +1,997 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="520.43439"
+ height="438.61716"
+ id="svg5382"
+ version="1.1"
+ inkscape:version="0.48.4 r9939"
+ sodipodi:docname="ipPipelines_2_update.svg">
+ <defs
+ id="defs5384">
+ <marker
+ inkscape:stockid="Arrow1Lstart"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow1Lstart"
+ style="overflow:visible">
+ <path
+ id="path4018"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt"
+ transform="scale(0.8) translate(12.5,0)" />
+ </marker>
+ <clipPath
+ id="clipEmfPath1"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect5395"
+ height="465.83859"
+ width="585"
+ y="0"
+ x="0" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath2"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect5398"
+ height="0"
+ width="37.650002"
+ y="202.92325"
+ x="120.9" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath3"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect5401"
+ height="186.87537"
+ width="391.64999"
+ y="247.76733"
+ x="49.650002" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath4"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect5404"
+ height="93.137718"
+ width="142.64999"
+ y="280.01309"
+ x="72.150002" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath5"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect5407"
+ height="13.648201"
+ width="45.900002"
+ y="308.50934"
+ x="76.650002" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath6"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect5410"
+ height="13.648201"
+ width="83.400002"
+ y="308.50934"
+ x="126.15" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath7"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect5413"
+ height="90.888016"
+ width="161.39999"
+ y="333.25607"
+ x="257.39999" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath8"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect5416"
+ height="13.648201"
+ width="54.599998"
+ y="364.75192"
+ x="262.64999" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath9"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect5419"
+ height="13.648201"
+ width="90.150002"
+ y="364.75192"
+ x="321.60001" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath10"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect5422"
+ height="133.63239"
+ width="240"
+ y="75.590034"
+ x="240" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath11"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect5425"
+ height="137.3819"
+ width="191.85001"
+ y="20.847252"
+ x="39.75" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath12"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect5428"
+ height="93.137718"
+ width="142.64999"
+ y="54.592804"
+ x="66.449997" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath13"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect5431"
+ height="13.648201"
+ width="45.900002"
+ y="83.08905"
+ x="70.949997" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath14"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect5434"
+ height="13.648201"
+ width="83.400002"
+ y="83.08905"
+ x="120.45" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath15"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect5437"
+ height="90.888016"
+ width="161.39999"
+ y="107.83578"
+ x="298.95001" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath16"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect5440"
+ height="13.648201"
+ width="54.599998"
+ y="139.33163"
+ x="304.20001" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath17"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect5443"
+ height="13.648201"
+ width="90.150002"
+ y="139.33163"
+ x="363.29999" />
+ </clipPath>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="2.8"
+ inkscape:cx="223.36548"
+ inkscape:cy="227.70504"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:window-width="1083"
+ inkscape:window-height="851"
+ inkscape:window-x="40"
+ inkscape:window-y="767"
+ inkscape:window-maximized="0"
+ fit-margin-top="0"
+ fit-margin-left="0"
+ fit-margin-right="0"
+ fit-margin-bottom="0" />
+ <metadata
+ id="metadata5387">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-132.40505,-338.57503)">
+ <text
+ xml:space="preserve"
+ x="652.83942"
+ y="777.1922"
+ style="font-size:13.80000019px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Calibri"
+ id="text5447"> </text>
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath2)"
+ d="m 49.275,242.89298 0,196.4741 392.25,0 0,-196.4741 -392.25,0 z"
+ id="path5449"
+ transform="translate(112.83943,322.9021)" />
+ <rect
+ style="fill:none;stroke:#000000;stroke-width:1.002;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.006,1.002;stroke-dashoffset:0"
+ id="rect4458-1-7"
+ width="393.01892"
+ height="197.3044"
+ x="161.22458"
+ y="565.61206" />
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ id="rect3945-9"
+ width="15.714286"
+ height="18.571428"
+ x="153.47649"
+ y="664.6922" />
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ id="rect3945-4"
+ width="15.714286"
+ height="18.571428"
+ x="547.40503"
+ y="689.6922" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath3)"
+ d="m 71.775,275.13873 0,102.73646 143.25,0 0,-102.73646 -143.25,0 z"
+ id="path5453"
+ transform="translate(112.83943,322.9021)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 184.61443,598.04083 143.25,0 0,102.73646 -143.25,0 z"
+ id="path5455" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath4)"
+ d="m 76.275,303.63497 0,23.24694 46.5,0 0,-23.24694 -46.5,0 z"
+ id="path5457"
+ transform="translate(112.83943,322.9021)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 189.11443,626.53707 46.5,0 0,23.24694 -46.5,0 z"
+ id="path5459" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath5)"
+ d="m 125.775,303.63497 0,23.24694 84,0 0,-23.24694 -84,0 z"
+ id="path5461"
+ transform="translate(112.83943,322.9021)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 238.61443,626.53707 84,0 0,23.24694 -84,0 z"
+ id="path5463" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath6)"
+ d="m 76.275,329.88151 0,41.99447 46.5,0 0,-41.99447 -46.5,0 z"
+ id="path5465"
+ transform="translate(112.83943,322.9021)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 189.11443,652.78361 46.5,0 0,41.99447 -46.5,0 z"
+ id="path5467" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 238.61443,652.78361 0,42.74437 84,0 0,-42.74437 -84,0 z"
+ id="path5469" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 238.61443,652.78361 84,0 0,42.74437 -84,0 z"
+ id="path5471" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 369.86443,651.28381 0,100.48676 162,0 0,-100.48676 -162,0 z"
+ id="path5473" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 369.86443,651.28381 162,0 0,100.48676 -162,0 z"
+ id="path5475" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath7)"
+ d="m 262.275,359.87756 0,23.24694 55.2,0 0,-23.24694 -55.2,0 z"
+ id="path5477"
+ transform="translate(112.83943,322.9021)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 375.11443,682.77966 55.2,0 0,23.24694 -55.2,0 z"
+ id="path5479" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath8)"
+ d="m 321.225,359.87756 0,23.24694 90.9,0 0,-23.24694 -90.9,0 z"
+ id="path5481"
+ transform="translate(112.83943,322.9021)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 434.06443,682.77966 90.9,0 0,23.24694 -90.9,0 z"
+ id="path5483" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath9)"
+ d="m 261.525,386.874 0,36.74516 55.95,0 0,-36.74516 -55.95,0 z"
+ id="path5485"
+ transform="translate(112.83943,322.9021)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 374.36443,709.7761 55.95,0 0,36.74516 -55.95,0 z"
+ id="path5487" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 434.81443,709.7761 0,36.74516 90.15,0 0,-36.74516 -90.15,0 z"
+ id="path5489" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 434.81443,709.7761 90.15,0 0,36.74516 -90.15,0 z"
+ id="path5491" />
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ id="rect3945-0"
+ width="15.714286"
+ height="18.571428"
+ x="152.76219"
+ y="617.90649" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 155.21443,618.13818 3.2625,0 c 0.35625,0 0.6375,0.29996 0.6375,0.65617 l 0,16.74154 -3.9,0 z"
+ id="path5493" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 159.11443,617.9882 3.13125,0 c 0.35625,0 0.61875,0.28121 0.61875,0.63742 l 0,16.91027 -3.75,0 z"
+ id="path5495" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 162.86443,618.13818 3.2625,0 c 0.35625,0 0.6375,0.29996 0.6375,0.65617 l 0,16.74154 -3.9,0 z"
+ id="path5497" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 159.11443,665.23197 3.13125,0 c 0.35625,0 0.61875,0.28122 0.61875,0.63742 l 0,16.91027 -3.75,0 z"
+ id="path5501" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 162.86443,665.38195 3.2625,0 c 0.35625,0 0.6375,0.29996 0.6375,0.65617 l 0,16.74154 -3.9,0 z"
+ id="path5503" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01875;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.05625,0.01875;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 138.13318,627.94314 12.1125,-0.33746 -0.0375,-1.25608 -12.09375,0.33745 0.0188,1.25609 z m 12.09375,-0.95612 -2.4,3.80574 7.3875,-3.95573 -7.59375,-3.52453 2.60625,3.67452 z"
+ id="path5505" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01875;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.05625,0.01875;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 167.53318,627.94314 12.1125,-0.33746 -0.0375,-1.25608 -12.09375,0.33745 0.0187,1.25609 z m 12.09375,-0.95612 -2.4,3.80574 7.3875,-3.95573 -7.59375,-3.52453 2.60625,3.67452 z"
+ id="path5507" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01875;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.05625,0.01875;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 166.78318,674.43701 12.1125,-0.33746 -0.0375,-1.25608 -12.09375,0.33746 0.0187,1.25608 z m 12.09375,-0.95612 -2.4,3.80574 7.3875,-3.95572 -7.59375,-3.52454 2.60625,3.67452 z"
+ id="path5509" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01875;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.05625,0.01875;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 138.13318,674.43701 12.1125,-0.33746 -0.0375,-1.25608 -12.09375,0.33746 0.0188,1.25608 z m 12.09375,-0.95612 -2.4,3.80574 7.3875,-3.95572 -7.59375,-3.52454 2.60625,3.67452 z"
+ id="path5511" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 155.21443,665.38195 3.2625,0 c 0.35625,0 0.6375,0.29996 0.6375,0.65617 l 0,16.74154 -3.9,0 z"
+ id="path5499" />
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ id="rect3945"
+ width="15.714286"
+ height="18.571428"
+ x="547.40509"
+ y="612.90656" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 548.96443,613.33881 3.2625,0 c 0.35625,0 0.6375,0.29996 0.6375,0.65617 l 0,16.89152 -3.9,0 z"
+ id="path5513" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 552.86443,613.33881 3.13125,0 c 0.35625,0 0.61875,0.28122 0.61875,0.63742 l 0,16.76029 -3.75,0 z"
+ id="path5515" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 556.61443,613.33881 3.2625,0 c 0.35625,0 0.6375,0.29996 0.6375,0.65617 l 0,16.89152 -3.9,0 z"
+ id="path5517" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01875;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.01875,0.01875;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 328.76443,621.419 215.04375,0 0,1.25608 -215.04375,0 0,-1.25608 z m 215.04375,0.61867 -2.49375,-3.74951 7.5,3.74951 -7.5,3.7495 2.49375,-3.7495 z"
+ id="path5519" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01875;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.05625,0.01875;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 560.38318,623.14377 12.1125,-0.33745 -0.0375,-1.25609 -12.09375,0.33746 0.0188,1.25608 z m 12.09375,-0.95612 -2.4,3.80575 7.3875,-3.95573 -7.59375,-3.52454 2.60625,3.67452 z"
+ id="path5521" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01875;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.01875,0.01875;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 329.36443,682.16099 20.86875,0 0,29.93981 -0.61875,-0.63742 15.225,0 0,1.25608 -15.8625,0 0,-29.9398 0.6375,0.63742 -20.25,0 0,-1.25609 z m 35.475,29.93981 -2.49375,-3.74951 7.5,3.74951 -7.5,3.7495 2.49375,-3.7495 z"
+ id="path5523" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 548.81443,690.57863 3.2625,0 c 0.35625,0 0.6375,0.29996 0.6375,0.65617 l 0,16.89152 -3.9,0 z"
+ id="path5525" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 552.71443,690.57863 3.2625,0 c 0.35625,0 0.6375,0.29996 0.6375,0.65617 l 0,16.74154 -3.9,0 z"
+ id="path5527" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 556.61443,690.57863 3.13125,0 c 0.35625,0 0.61875,0.28122 0.61875,0.63742 l 0,16.91027 -3.75,0 z"
+ id="path5529" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01875;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.01875,0.01875;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 530.98318,699.18375 12.1125,-0.33746 -0.0375,-1.25608 -12.09375,0.33745 0.0188,1.25609 z m 12.09375,-0.95613 -2.4,3.80575 7.3875,-3.95573 -7.59375,-3.52453 2.60625,3.67451 z"
+ id="path5531" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01875;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.01875,0.01875;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 561.88318,698.73381 12.1125,-0.33746 -0.0375,-1.25608 -12.09375,0.33745 0.0188,1.25609 z m 12.09375,-0.95613 -2.4,3.80575 7.3875,-3.95573 -7.59375,-3.52453 2.60625,3.67451 z"
+ id="path5533" />
+ <rect
+ style="fill:none;stroke:#000000;stroke-width:1.03885794;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.11657381,1.03885794;stroke-dashoffset:0"
+ id="rect4458-1"
+ width="212.04707"
+ height="146.38971"
+ x="384.98563"
+ y="391.8602" />
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ id="rect3945-48"
+ width="15.714286"
+ height="18.571428"
+ x="586.69073"
+ y="463.62076" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath10)"
+ d="m 39.225,15.972894 0,146.980626 192.6,0 0,-146.980626 -192.6,0 z"
+ id="path5539"
+ transform="translate(112.83943,322.9021)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath11)"
+ d="m 66.075,49.718446 0,102.736454 143.25,0 0,-102.736454 -143.25,0 z"
+ id="path5543"
+ transform="translate(112.83943,322.9021)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 178.91443,372.62055 143.25,0 0,102.73645 -143.25,0 z"
+ id="path5545" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath12)"
+ d="m 70.575,78.21469 0,23.24694 46.5,0 0,-23.24694 -46.5,0 z"
+ id="path5547"
+ transform="translate(112.83943,322.9021)" />
+ <rect
+ style="fill:none;stroke:#000000;stroke-width:0.99358916;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.98076741, 0.99358914;stroke-dashoffset:0"
+ id="rect4458"
+ width="193.90961"
+ height="146.43498"
+ x="155.25899"
+ y="342.90326" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 183.41443,401.11679 46.5,0 0,23.24694 -46.5,0 z"
+ id="path5549" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath13)"
+ d="m 120.075,78.21469 0,23.24694 84,0 0,-23.24694 -84,0 z"
+ id="path5551"
+ transform="translate(112.83943,322.9021)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 232.91443,401.11679 84,0 0,23.24694 -84,0 z"
+ id="path5553" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath14)"
+ d="m 70.575,104.46123 0,41.99446 46.5,0 0,-41.99446 -46.5,0 z"
+ id="path5555"
+ transform="translate(112.83943,322.9021)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 183.41443,427.36333 46.5,0 0,41.99446 -46.5,0 z"
+ id="path5557" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 232.91443,427.36333 0,42.74437 84,0 0,-42.74437 -84,0 z"
+ id="path5559" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 232.91443,427.36333 84,0 0,42.74437 -84,0 z"
+ id="path5561" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 408.38397,422.83307 0,100.48675 162,0 0,-100.48675 -162,0 z"
+ id="path5563" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 408.38397,422.83307 162,0 0,100.48675 -162,0 z"
+ id="path5565" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath15)"
+ d="m 303.825,134.45728 0,23.24693 55.2,0 0,-23.24693 -55.2,0 z"
+ id="path5567"
+ transform="translate(109.80897,319.87164)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 413.63397,454.32892 55.2,0 0,23.24693 -55.2,0 z"
+ id="path5569" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath16)"
+ d="m 362.775,134.45728 0,23.24693 90.9,0 0,-23.24693 -90.9,0 z"
+ id="path5571"
+ transform="translate(112.83943,322.9021)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 475.58964,454.32892 90.9,0 0,23.24693 -90.9,0 z"
+ id="path5573" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath17)"
+ d="m 303.075,161.45372 0,36.74515 55.95,0 0,-36.74515 -55.95,0 z"
+ id="path5575"
+ transform="translate(112.83943,322.9021)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 412.88397,481.32536 55.95,0 0,36.74515 -55.95,0 z"
+ id="path5577" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 473.33397,481.32536 0,36.74515 90.15,0 0,-36.74515 -90.15,0 z"
+ id="path5579" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 473.33397,481.32536 90.15,0 0,36.74515 -90.15,0 z"
+ id="path5581" />
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ id="rect3945-45"
+ width="15.714286"
+ height="18.571428"
+ x="147.94077"
+ y="392.37076" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 149.51443,392.7179 3.25312,0 c 0.35625,0 0.64688,0.29996 0.64688,0.65616 l 0,16.74154 -3.9,0 z"
+ id="path5583" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 153.41443,392.56792 3.25312,0 c 0.35625,0 0.64688,0.29996 0.64688,0.65616 l 0,16.89152 -3.9,0 z"
+ id="path5585" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 157.31443,392.7179 3.13125,0 c 0.34687,0 0.61875,0.28121 0.61875,0.62804 l 0,16.76966 -3.75,0 z"
+ id="path5587" />
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ id="rect3945-5"
+ width="15.714286"
+ height="18.571428"
+ x="147.76219"
+ y="439.6922" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 149.51443,439.96167 3.25312,0 c 0.35625,0 0.64688,0.29996 0.64688,0.65616 l 0,16.74155 -3.9,0 z"
+ id="path5589" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 153.41443,439.81169 3.25312,0 c 0.35625,0 0.64688,0.29996 0.64688,0.65616 l 0,16.89153 -3.9,0 z"
+ id="path5591" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 157.31443,439.96167 3.13125,0 c 0.34687,0 0.61875,0.28121 0.61875,0.62804 l 0,16.76967 -3.75,0 z"
+ id="path5593" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.009;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.009,0.009;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 132.43318,402.51348 12.10312,-0.32808 -0.0375,-1.24671 -12.09375,0.32808 0.0281,1.24671 z m 12.08437,-0.95612 -2.39062,3.81512 7.3875,-3.95573 -7.59375,-3.53391 2.59687,3.67452 z"
+ id="path5595" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.009;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.009,0.009;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 161.83318,402.51348 12.10312,-0.32808 -0.0375,-1.24671 -12.09375,0.32808 0.0281,1.24671 z m 12.08437,-0.95612 -2.39062,3.81512 7.3875,-3.95573 -7.59375,-3.53391 2.59687,3.67452 z"
+ id="path5597" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.009375;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.009375,0.009375;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 161.08318,449.00735 12.10312,-0.32808 -0.0375,-1.24671 -12.09375,0.32808 0.0281,1.24671 z m 12.08437,-0.95612 -2.39062,3.81512 7.3875,-3.95573 -7.59375,-3.53391 2.59687,3.67452 z"
+ id="path5599" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.009;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.009,0.009;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 132.43318,449.00735 12.10312,-0.32808 -0.0375,-1.24671 -12.09375,0.32808 0.0281,1.24671 z m 12.08437,-0.95612 -2.39062,3.81512 7.3875,-3.95573 -7.59375,-3.53391 2.59687,3.67452 z"
+ id="path5601" />
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ id="rect3945-2"
+ width="15.714286"
+ height="18.571428"
+ x="341.36935"
+ y="371.26364" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 343.61443,372.17061 3.13125,0 c 0.34687,0 0.61875,0.28121 0.61875,0.62804 l 0,16.76966 -3.75,0 z"
+ id="path5603" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 347.36443,372.17061 3.25312,0 c 0.35625,0 0.64688,0.29996 0.64688,0.65616 l 0,16.74154 -3.9,0 z"
+ id="path5605" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 351.26443,372.17061 3.25312,0 c 0.35625,0 0.64688,0.29996 0.64688,0.65616 l 0,16.74154 -3.9,0 z"
+ id="path5607" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.009375;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.009375,0.009375;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 323.21443,378.75099 13.7625,0 0,1.24671 -13.7625,0 0,-1.24671 z m 13.7625,0.61867 -2.50312,-3.74951 7.5,3.74951 -7.5,3.7495 2.50312,-3.7495 z"
+ id="path5609" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.009375;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:0.009375, 0.009375;stroke-dashoffset:0"
+ d="m 356.53318,380.16643 259.24599,-0.32809 -0.0375,-1.24671 -259.23661,0.32809 0.0281,1.24671 z m 259.22723,-0.95613 -2.39062,3.81512 7.3875,-3.95572 -7.59375,-3.53391 z"
+ id="path5611"
+ sodipodi:nodetypes="ccccccccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 590.51443,465.15835 3.13125,0 c 0.35625,0 0.61875,0.28121 0.61875,0.63741 l 0,16.91027 -3.75,0 z"
+ id="path5613" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 594.26443,465.15835 3.2625,0 c 0.35625,0 0.6375,0.29996 0.6375,0.65616 l 0,16.74154 -3.9,0 z"
+ id="path5615" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 598.16443,465.15835 3.2625,0 c 0.35625,0 0.6375,0.29996 0.6375,0.65616 l 0,16.89152 -3.9,0 z"
+ id="path5617" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01875;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.01875,0.01875;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 572.68318,473.76346 12.1125,-0.33745 -0.0375,-1.25609 -12.09375,0.33746 0.0188,1.25608 z m 12.09375,-0.95612 -2.4,3.80575 7.3875,-3.95573 -7.59375,-3.52454 2.60625,3.67452 z"
+ id="path5619" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01875;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.01875,0.01875;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 603.43318,473.31352 12.1125,-0.33745 -0.0375,-1.25609 -12.09375,0.33746 0.0188,1.25608 z m 12.09375,-0.95612 -2.4,3.80575 7.3875,-3.95573 -7.59375,-3.52454 2.60625,3.67452 z"
+ id="path5621" />
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ id="rect3945-8"
+ width="15.714286"
+ height="18.571428"
+ x="342.40506"
+ y="438.62076" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 343.61443,439.96167 3.13125,0 c 0.34687,0 0.61875,0.28121 0.61875,0.62804 l 0,16.76967 -3.75,0 z"
+ id="path5623" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 347.36443,439.96167 3.25312,0 c 0.35625,0 0.64688,0.29996 0.64688,0.65616 l 0,16.74155 -3.9,0 z"
+ id="path5625" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 351.26443,439.96167 3.25312,0 c 0.35625,0 0.64688,0.29996 0.64688,0.65616 l 0,16.74155 -3.9,0 z"
+ id="path5627" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.009375;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.009375,0.009375;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 323.21443,446.54205 13.7625,0 0,1.24671 -13.7625,0 0,-1.24671 z m 13.7625,0.61867 -2.50312,-3.74951 7.5,3.74951 -7.5,3.74951 2.50312,-3.74951 z"
+ id="path5629" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01777934;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:0.01777934, 0.01777934;stroke-dashoffset:0"
+ d="m 356.50859,445.94165 25.2708,0 0,30.18438 -0.55633,-0.61869 20.19642,0 0,1.23737 -20.7696,0 0,-30.18438 0.57318,0.63744 -24.71447,0 0,-1.25612 z m 44.91089,30.18438 -2.24217,-3.74961 6.74338,3.74961 -6.74338,3.74961 2.24217,-3.74961 z"
+ id="path5631" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 256.12693,502.50342 0,36.37021 2.4375,0 -4.875,4.87436 -4.875,-4.87436 2.4375,0 0,-36.37021 z"
+ id="path5633" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 256.12693,502.50342 0,36.37021 2.4375,0 -4.875,4.87436 -4.875,-4.87436 2.4375,0 0,-36.37021 z"
+ id="path5635" />
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="224.7719"
+ y="353.7381"
+ id="text4458-5-6-8-7"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="224.7719"
+ y="353.7381"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-2-5">Pipeline 1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="233.06458"
+ y="387.51147"
+ id="text4458-5-6-8-7-0"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="233.06458"
+ y="387.51147"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-2-5-6">Table 1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="191.77844"
+ y="416.61282"
+ id="text4458-5-6-8-7-0-1"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="191.77844"
+ y="416.61282"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-2-5-6-3">Route</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="251.78381"
+ y="415.58426"
+ id="text4458-5-6-8-7-0-1-8"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="251.78381"
+ y="415.58426"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-2-5-6-3-9">Next Hop</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="462.5943"
+ y="411.55435"
+ id="text4458-5-6-8-7-3"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="462.5943"
+ y="411.55435"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-2-5-4">Pipeline 2</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="471.90912"
+ y="442.29727"
+ id="text4458-5-6-8-7-0-4"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="471.90912"
+ y="442.29727"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-2-5-6-6">Table 2</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="431.39413"
+ y="468.73193"
+ id="text4458-5-6-8-7-0-4-0"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="431.39413"
+ y="468.73193"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-2-5-6-6-6">Key</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="486.88754"
+ y="469.8894"
+ id="text4458-5-6-8-7-0-4-0-6"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="486.88754"
+ y="469.8894"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-2-5-6-6-6-1">MAC Address</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="334.64691"
+ y="584.99622"
+ id="text4458-5-6-8-7-8"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="334.64691"
+ y="584.99622"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-2-5-49">Pipeline 1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="197.47844"
+ y="642.03308"
+ id="text4458-5-6-8-7-0-1-6"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="197.47844"
+ y="642.03308"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-2-5-6-3-3">Route</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="257.48383"
+ y="641.00452"
+ id="text4458-5-6-8-7-0-1-8-7"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="257.48383"
+ y="641.00452"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-2-5-6-3-9-8">Next Hop</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="392.87457"
+ y="697.18268"
+ id="text4458-5-6-8-7-0-4-0-8"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="392.87457"
+ y="697.18268"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-2-5-6-6-6-2">Key</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="445.36234"
+ y="698.34015"
+ id="text4458-5-6-8-7-0-4-0-6-9"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="445.36234"
+ y="698.34015"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-2-5-6-6-6-1-1">MAC Address</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="238.76457"
+ y="611.66492"
+ id="text4458-5-6-8-7-0-3"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="238.76457"
+ y="611.66492"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-2-5-6-5">Table 1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="432.66986"
+ y="666.95581"
+ id="text4458-5-6-8-7-0-4-9"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="432.66986"
+ y="666.95581"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-2-5-6-6-8">Table 2</tspan></text>
+ </g>
+</svg>
diff --git a/doc/guides/ip_pipeline_ug/img/ip_pipelines_3.svg b/doc/guides/ip_pipeline_ug/img/ip_pipelines_3.svg
new file mode 100644
index 0000000..1cf5413
--- /dev/null
+++ b/doc/guides/ip_pipeline_ug/img/ip_pipelines_3.svg
@@ -0,0 +1,826 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="469.492"
+ height="382.11536"
+ id="svg6126"
+ version="1.1"
+ inkscape:version="0.48.4 r9939"
+ sodipodi:docname="ipPipelines_3_update.svg">
+ <defs
+ id="defs6128">
+ <clipPath
+ id="clipEmfPath1"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect6139"
+ height="406.59448"
+ width="585"
+ y="0"
+ x="0" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath2"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect6142"
+ height="134.38165"
+ width="277.79999"
+ y="247.76617"
+ x="49.650002" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath3"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect6145"
+ height="93.137283"
+ width="230.55"
+ y="280.01178"
+ x="72.150002" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath4"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect6148"
+ height="13.648136"
+ width="45.900002"
+ y="308.50787"
+ x="76.650002" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath5"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect6151"
+ height="13.648136"
+ width="83.400002"
+ y="308.50787"
+ x="126.15" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath6"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect6154"
+ height="137.38124"
+ width="208.2"
+ y="18.147522"
+ x="240.75" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath7"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect6157"
+ height="137.38124"
+ width="190.2"
+ y="18.147522"
+ x="42.75" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath8"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect6160"
+ height="93.137283"
+ width="142.64999"
+ y="54.592545"
+ x="66.449997" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath9"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect6163"
+ height="13.648136"
+ width="45.900002"
+ y="83.088654"
+ x="70.949997" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath10"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect6166"
+ height="13.648136"
+ width="83.400002"
+ y="83.088654"
+ x="120.45" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath11"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect6169"
+ height="90.887589"
+ width="161.39999"
+ y="53.092751"
+ x="265.20001" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath12"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect6172"
+ height="13.648136"
+ width="54.599998"
+ y="84.588448"
+ x="270.45001" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath13"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect6175"
+ height="13.648136"
+ width="90.150002"
+ y="84.588448"
+ x="329.54999" />
+ </clipPath>
+ <clipPath
+ id="clipEmfPath14"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ id="rect6178"
+ height="13.648136"
+ width="83.400002"
+ y="308.50787"
+ x="213.89999" />
+ </clipPath>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.979899"
+ inkscape:cx="228.24994"
+ inkscape:cy="175.22545"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:window-width="1033"
+ inkscape:window-height="1284"
+ inkscape:window-x="86"
+ inkscape:window-y="249"
+ inkscape:window-maximized="0"
+ fit-margin-top="0"
+ fit-margin-left="0"
+ fit-margin-right="0"
+ fit-margin-bottom="0"
+ showborder="true"
+ borderlayer="false" />
+ <metadata
+ id="metadata6131">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-156.65375,-367.02875)">
+ <text
+ xml:space="preserve"
+ x="626.14575"
+ y="749.1441"
+ style="font-size:13.80000019px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;font-family:Calibri"
+ id="text6182"> </text>
+ <rect
+ style="fill:none;stroke:#000000;stroke-width:1.1530993;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.45929811, 1.15309937;stroke-dashoffset:0"
+ id="rect3114"
+ width="279.14426"
+ height="142.7157"
+ x="186.01018"
+ y="597.78625" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath2)"
+ d="m 71.775,275.13743 0,102.73597 231.15,0 0,-102.73597 -231.15,0 z"
+ id="path6188"
+ transform="translate(137.14575,354.09808)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 208.92075,629.23551 231.15,0 0,102.73597 -231.15,0 z"
+ id="path6190" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath3)"
+ d="m 76.275,303.63354 0,23.24683 46.5,0 0,-23.24683 -46.5,0 z"
+ id="path6192"
+ transform="translate(137.14575,354.09808)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 213.42075,657.73162 46.5,0 0,23.24683 -46.5,0 z"
+ id="path6194" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath4)"
+ d="m 125.775,303.63354 0,23.24683 84,0 0,-23.24683 -84,0 z"
+ id="path6196"
+ transform="translate(137.14575,354.09808)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 262.92075,657.73162 84,0 0,23.24683 -84,0 z"
+ id="path6198" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath5)"
+ d="m 76.275,329.87996 0,41.99426 46.5,0 0,-41.99426 -46.5,0 z"
+ id="path6200"
+ transform="translate(137.14575,354.09808)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 213.42075,683.97804 46.5,0 0,41.99426 -46.5,0 z"
+ id="path6202" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 262.92075,683.97804 0,42.74416 84,0 0,-42.74416 -84,0 z"
+ id="path6204" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 262.92075,683.97804 84,0 0,42.74416 -84,0 z"
+ id="path6206" />
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ id="rect3920-48"
+ width="16.515228"
+ height="21.21936"
+ x="177.68185"
+ y="647.82019" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 179.52075,649.33277 3.2625,0 c 0.35625,0 0.6375,0.29996 0.6375,0.65616 l 0,16.74146 -3.9,0 z"
+ id="path6208" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 183.42075,649.18279 3.13125,0 c 0.35625,0 0.61875,0.28121 0.61875,0.63741 l 0,16.91019 -3.75,0 z"
+ id="path6210" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 187.17075,649.33277 3.2625,0 c 0.35625,0 0.6375,0.29996 0.6375,0.65616 l 0,16.74146 -3.9,0 z"
+ id="path6212" />
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ id="rect3920-48-8"
+ width="16.515228"
+ height="21.21936"
+ x="176.61043"
+ y="694.24872" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 179.52075,696.57632 3.2625,0 c 0.35625,0 0.6375,0.29996 0.6375,0.65616 l 0,16.74146 -3.9,0 z"
+ id="path6214" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 183.42075,696.42634 3.13125,0 c 0.35625,0 0.61875,0.28121 0.61875,0.63741 l 0,16.91019 -3.75,0 z"
+ id="path6216" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 187.17075,696.57632 3.2625,0 c 0.35625,0 0.6375,0.29996 0.6375,0.65616 l 0,16.74146 -3.9,0 z"
+ id="path6218" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01875;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.01875,0.01875;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 162.4395,659.13768 12.1125,-0.33745 -0.0375,-1.25608 -12.09375,0.33745 0.0188,1.25608 z m 12.09375,-0.95612 -2.4,3.80573 7.3875,-3.95571 -7.59375,-3.52452 2.60625,3.6745 z"
+ id="path6220" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01875;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.01875,0.01875;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 191.8395,659.13768 12.1125,-0.33745 -0.0375,-1.25608 -12.09375,0.33745 0.0187,1.25608 z m 12.09375,-0.95612 -2.4,3.80573 7.3875,-3.95571 -7.59375,-3.52452 2.60625,3.6745 z"
+ id="path6222" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01875;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.01875,0.0375;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 191.0895,705.63133 12.1125,-0.33745 -0.0375,-1.25608 -12.09375,0.33745 0.0187,1.25608 z m 12.09375,-0.95612 -2.4,3.80573 7.3875,-3.95571 -7.59375,-3.52452 2.60625,3.6745 z"
+ id="path6224" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01875;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.01875,0.01875;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 162.4395,705.63133 12.1125,-0.33745 -0.0375,-1.25608 -12.09375,0.33745 0.0188,1.25608 z m 12.09375,-0.95612 -2.4,3.80573 7.3875,-3.95571 -7.59375,-3.52452 2.60625,3.6745 z"
+ id="path6226" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 377.52075,367.37127 0,146.97993 208.8,0 0,-146.97993 -208.8,0 z"
+ id="path6228" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath6)"
+ d="m 42.375,13.273188 0,146.979932 190.8,0 0,-146.979932 -190.8,0 z"
+ id="path6232"
+ transform="translate(137.14575,354.09808)" />
+ <rect
+ style="fill:none;stroke:#000000;stroke-width:1.1530993;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.45929801, 1.15309934;stroke-dashoffset:0"
+ id="rect3114-1"
+ width="191.96552"
+ height="148.42998"
+ x="180.02544"
+ y="368.29129" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath7)"
+ d="m 66.075,49.718211 0,102.735969 143.25,0 0,-102.735969 -143.25,0 z"
+ id="path6236"
+ transform="translate(137.14575,354.09808)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 203.22075,403.81629 143.25,0 0,102.73597 -143.25,0 z"
+ id="path6238" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath8)"
+ d="m 70.575,78.21432 0,23.24683 46.5,0 0,-23.24683 -46.5,0 z"
+ id="path6240"
+ transform="translate(137.14575,354.09808)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 207.72075,432.3124 46.5,0 0,23.24683 -46.5,0 z"
+ id="path6242" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath9)"
+ d="m 120.075,78.21432 0,23.24683 84,0 0,-23.24683 -84,0 z"
+ id="path6244"
+ transform="translate(137.14575,354.09808)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 257.22075,432.3124 84,0 0,23.24683 -84,0 z"
+ id="path6246" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath10)"
+ d="m 70.575,104.46074 0,41.99426 46.5,0 0,-41.99426 -46.5,0 z"
+ id="path6248"
+ transform="translate(137.14575,354.09808)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 207.72075,458.55882 46.5,0 0,41.99426 -46.5,0 z"
+ id="path6250" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 257.22075,458.55882 0,42.74416 84,0 0,-42.74416 -84,0 z"
+ id="path6252" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 257.22075,458.55882 84,0 0,42.74416 -84,0 z"
+ id="path6254" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 401.97075,402.3165 0,100.48628 162,0 0,-100.48628 -162,0 z"
+ id="path6256" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 401.97075,402.3165 162,0 0,100.48628 -162,0 z"
+ id="path6258" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath11)"
+ d="m 270.075,79.714116 0,23.246824 55.2,0 0,-23.246824 -55.2,0 z"
+ id="path6260"
+ transform="translate(137.14575,354.09808)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 407.22075,433.8122 55.2,0 0,23.24682 -55.2,0 z"
+ id="path6262" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath12)"
+ d="m 329.025,79.714116 0,23.246824 90.9,0 0,-23.246824 -90.9,0 z"
+ id="path6264"
+ transform="translate(137.14575,354.09808)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 466.17075,433.8122 90.9,0 0,23.24682 -90.9,0 z"
+ id="path6266" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath13)"
+ d="m 269.325,106.71043 0,36.74498 55.95,0 0,-36.74498 -55.95,0 z"
+ id="path6268"
+ transform="translate(137.14575,354.09808)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 406.47075,460.80851 55.95,0 0,36.74498 -55.95,0 z"
+ id="path6270" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 466.92075,460.80851 0,36.74498 90.15,0 0,-36.74498 -90.15,0 z"
+ id="path6272" />
+ <rect
+ style="fill:none;stroke:#000000;stroke-width:1.1530993;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.45929818, 1.15309941;stroke-dashoffset:0"
+ id="rect3114-1-7"
+ width="208.7556"
+ height="148.37921"
+ x="377.85892"
+ y="367.84274" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 466.92075,460.80851 90.15,0 0,36.74498 -90.15,0 z"
+ id="path6274" />
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ id="rect3920-9"
+ width="16.515228"
+ height="21.21936"
+ x="171.55568"
+ y="422.16541" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 173.82075,423.91355 3.25312,0 c 0.35625,0 0.64688,0.29996 0.64688,0.65616 l 0,16.74146 -3.9,0 z"
+ id="path6276" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 177.72075,423.76357 3.25312,0 c 0.35625,0 0.64688,0.29996 0.64688,0.65616 l 0,16.89144 -3.9,0 z"
+ id="path6278" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 181.62075,423.91355 3.13125,0 c 0.34687,0 0.61875,0.28121 0.61875,0.62804 l 0,16.76958 -3.75,0 z"
+ id="path6280" />
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ id="rect3920-0"
+ width="16.515228"
+ height="21.21936"
+ x="171.50339"
+ y="469.72925" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 173.82075,471.1571 3.25312,0 c 0.35625,0 0.64688,0.29996 0.64688,0.65616 l 0,16.74146 -3.9,0 z"
+ id="path6282" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 177.72075,471.00712 3.25312,0 c 0.35625,0 0.64688,0.29996 0.64688,0.65616 l 0,16.89144 -3.9,0 z"
+ id="path6284" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 181.62075,471.1571 3.13125,0 c 0.34687,0 0.61875,0.28121 0.61875,0.62804 l 0,16.76958 -3.75,0 z"
+ id="path6286" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.009375;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.009375,0.009375;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 156.7395,433.70908 12.10312,-0.32808 -0.0375,-1.2467 -12.09375,0.32808 0.0281,1.24671 z m 12.08437,-0.95611 -2.39062,3.8151 7.3875,-3.95571 -7.59375,-3.53389 2.59687,3.6745 z"
+ id="path6288" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.009375;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.009375,0.009375;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 186.1395,433.70908 12.10312,-0.32808 -0.0375,-1.2467 -12.09375,0.32808 0.0281,1.24671 z m 12.08437,-0.95611 -2.39062,3.8151 7.3875,-3.95571 -7.59375,-3.53389 2.59687,3.6745 z"
+ id="path6290" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.009375;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.009375,0.009375;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 185.3895,480.20274 12.10312,-0.32808 -0.0375,-1.24671 -12.09375,0.32808 0.0281,1.24671 z m 12.08437,-0.95612 -2.39062,3.8151 7.3875,-3.95571 -7.59375,-3.53389 2.59687,3.6745 z"
+ id="path6292" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.009375;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.009375,0.009375;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 156.7395,480.20274 12.10312,-0.32808 -0.0375,-1.24671 -12.09375,0.32808 0.0281,1.24671 z m 12.08437,-0.95612 -2.39062,3.8151 7.3875,-3.95571 -7.59375,-3.53389 2.59687,3.6745 z"
+ id="path6294" />
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ id="rect3920-4"
+ width="16.515228"
+ height="21.21936"
+ x="578.84741"
+ y="448.11557" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 581.07075,450.6099 3.13125,0 c 0.35625,0 0.61875,0.28121 0.61875,0.63741 l 0,16.9102 -3.75,0 z"
+ id="path6296" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 584.82075,450.6099 3.2625,0 c 0.35625,0 0.6375,0.29996 0.6375,0.65616 l 0,16.74147 -3.9,0 z"
+ id="path6298" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 588.72075,450.6099 3.2625,0 c 0.35625,0 0.6375,0.29996 0.6375,0.65616 l 0,16.89145 -3.9,0 z"
+ id="path6300" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01875;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.01875,0.01875;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 563.2395,459.21498 12.1125,-0.33746 -0.0375,-1.25608 -12.09375,0.33746 0.0188,1.25608 z m 12.09375,-0.95612 -2.4,3.80573 7.3875,-3.95571 -7.59375,-3.52452 2.60625,3.6745 z"
+ id="path6302" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01875;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.01875,0.01875;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 593.9895,458.76504 12.1125,-0.33746 -0.0375,-1.25607 -12.09375,0.33745 0.0188,1.25608 z m 12.09375,-0.95612 -2.4,3.80573 7.3875,-3.95571 -7.59375,-3.52452 2.60625,3.6745 z"
+ id="path6304" />
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ id="rect3920"
+ width="16.515228"
+ height="21.21936"
+ x="366.35788"
+ y="448.70401" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 368.67075,450.90986 3.13125,0 c 0.34687,0 0.61875,0.28121 0.61875,0.62804 l 0,16.76959 -3.75,0 z"
+ id="path6306" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 372.42075,450.90986 3.25312,0 c 0.35625,0 0.64688,0.29996 0.64688,0.65616 l 0,16.74147 -3.9,0 z"
+ id="path6308" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 376.32075,450.90986 3.25312,0 c 0.35625,0 0.64688,0.29996 0.64688,0.65616 l 0,16.74147 -3.9,0 z"
+ id="path6310" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.009375;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.009375,0.009375;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 347.52075,457.79017 13.7625,0 0,1.24671 -13.7625,0 0,-1.24671 z m 13.7625,0.61867 -2.50312,-3.74949 7.5,3.74949 -7.5,3.74949 2.50312,-3.74949 z"
+ id="path6312" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.009375;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.009375,0.009375;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 381.27075,457.79017 13.7625,0 0,1.24671 -13.7625,0 0,-1.24671 z m 13.7625,0.61867 -2.50313,-3.74949 7.5,3.74949 -7.5,3.74949 2.50313,-3.74949 z"
+ id="path6314" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 350.67075,657.73162 0,23.24683 84,0 0,-23.24683 -84,0 z"
+ id="path6316" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 350.67075,657.73162 84,0 0,23.24683 -84,0 z"
+ id="path6318" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ clip-path="url(#clipEmfPath14)"
+ d="m 213.675,329.87996 0,42.74416 84,0 0,-42.74416 -84,0 z"
+ id="path6320"
+ transform="translate(137.14575,354.09808)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:0.60000002px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none"
+ d="m 350.82075,683.97804 84,0 0,42.74416 -84,0 z"
+ id="path6322" />
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ id="rect3920-48-2"
+ width="16.515228"
+ height="21.21936"
+ x="456.96756"
+ y="669.96301" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 459.57075,671.67972 3.2625,0 c 0.35625,0 0.6375,0.29996 0.6375,0.65616 l 0,16.89144 -3.9,0 z"
+ id="path6324" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 463.47075,671.67972 3.13125,0 c 0.35625,0 0.61875,0.28121 0.61875,0.63741 l 0,16.76021 -3.75,0 z"
+ id="path6326" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 467.22075,671.67972 3.2625,0 c 0.35625,0 0.6375,0.29996 0.6375,0.65616 l 0,16.89144 -3.9,0 z"
+ id="path6328" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01875;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.01875,0.01875;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 440.0895,681.16592 14.475,-0.11248 -0.0188,-1.25608 -14.475,0.11248 0.0188,1.25608 z m 14.45625,-0.73115 -2.45625,3.76824 7.4625,-3.82448 -7.5375,-3.6745 2.53125,3.73074 z"
+ id="path6330" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.01875;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:0.01875,0.0375;stroke-miterlimit:4;stroke-dashoffset:0"
+ d="m 471.12075,679.4599 13.48125,0 0,1.25608 -13.48125,0 0,-1.25608 z m 13.48125,0.61867 -2.5125,-3.74949 7.5,3.74949 -7.5,3.74949 2.5125,-3.74949 z"
+ id="path6332" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 316.58325,533.69856 0,36.37003 2.4375,0 -4.875,4.87434 -4.875,-4.87434 2.4375,0 0,-36.37003 z"
+ id="path6334" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.20000005px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 316.58325,533.69856 0,36.37003 2.4375,0 -4.875,4.87434 -4.875,-4.87434 2.4375,0 0,-36.37003 z"
+ id="path6336" />
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="251.32822"
+ y="385.15088"
+ id="text4458-5-6-8-7"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="251.32822"
+ y="385.15088"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-2-5">Pipeline 1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="458.32822"
+ y="385.15088"
+ id="text4458-5-6-8-7-4"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="458.32822"
+ y="385.15088"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan6590">Pipeline 2</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="252.12177"
+ y="418.59369"
+ id="text4458-5-6-8-7-7"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="252.12177"
+ y="418.59369"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-2-5-6">Flow Table 1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="452.02521"
+ y="418.59369"
+ id="text4458-5-6-8-7-7-3"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="452.02521"
+ y="418.59369"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-2-5-6-6">Flow Table 2</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="214.38213"
+ y="447.87283"
+ id="text4458-5-6-8-7-7-1"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="214.38213"
+ y="447.87283"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-2-5-6-5">Flow #</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="418.23212"
+ y="449.37262"
+ id="text4458-5-6-8-7-7-1-4"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="418.23212"
+ y="449.37262"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-2-5-6-5-2">Flow #</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="489.28775"
+ y="449.32428"
+ id="text4458-5-6-8-7-7-1-4-0"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="489.28775"
+ y="449.32428"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan6678">Actions 2</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="277.60748"
+ y="447.82449"
+ id="text4458-5-6-8-7-7-1-4-0-7"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="277.60748"
+ y="447.82449"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan6678-3">Actions 1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="302.02823"
+ y="613.45862"
+ id="text4458-5-6-8-7-72"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="302.02823"
+ y="613.45862"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-2-5-60">Pipeline 1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="293.5502"
+ y="644.90143"
+ id="text4458-5-6-8-7-7-16"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="293.5502"
+ y="644.90143"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-2-5-6-57">Flow Table 1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="220.08212"
+ y="673.29205"
+ id="text4458-5-6-8-7-7-1-5"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="220.08212"
+ y="673.29205"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan4668-2-5-6-5-4">Flow #</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="283.30746"
+ y="673.24371"
+ id="text4458-5-6-8-7-7-1-4-0-7-1"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="283.30746"
+ y="673.24371"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan6678-3-2">Actions 1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="370.33774"
+ y="673.24371"
+ id="text4458-5-6-8-7-7-1-4-0-7-1-0"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="370.33774"
+ y="673.24371"
+ style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans"
+ id="tspan6678-3-2-0">Actions 2</tspan></text>
+ </g>
+</svg>
diff --git a/doc/guides/ip_pipeline_ug/index.rst b/doc/guides/ip_pipeline_ug/index.rst
new file mode 100644
index 0000000..3e813cc
--- /dev/null
+++ b/doc/guides/ip_pipeline_ug/index.rst
@@ -0,0 +1,38 @@
+.. BSD LICENSE
+ Copyright(c) 2015 Intel Corporation. All rights reserved.
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+ * Neither the name of Intel Corporation nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+Internet Protocol (IP) Pipeline Application User Guide
+======================================================
+
+.. toctree::
+ :maxdepth: 3
+ :numbered:
+
+ ip_pipeline_app
diff --git a/doc/guides/ip_pipeline_ug/ip_pipeline_app.rst b/doc/guides/ip_pipeline_ug/ip_pipeline_app.rst
new file mode 100644
index 0000000..2e0ce22
--- /dev/null
+++ b/doc/guides/ip_pipeline_ug/ip_pipeline_app.rst
@@ -0,0 +1,1129 @@
+Internet Protocol (IP) Pipeline Application
+===========================================
+
+Application overview
+--------------------
+
+The *Internet Protocol (IP) Pipeline* application is intended to be a vehicle for rapid development of packet processing
+applications running on multi-core CPUs.
+
+The application provides a library of reusable functional blocks called pipelines.
+These pipelines can be seen as prefabricated blocks that can be instantiated and inter-connected through packet queues
+to create complete applications (super-pipelines).
+
+Pipelines are created and inter-connected through the application configuration file.
+By using different configuration files, different applications are effectively created, therefore this application
+can be seen as an application generator.
+The configuration of each pipeline can be updated at run-time through the application Command Line Interface (CLI).
+
+Main application components are:
+
+**A Library of reusable pipelines**
+
+ * Each pipeline represents a functional block, e.g. flow classification, firewall, routing, master, etc.
+
+ * Each pipeline type can be instantiated several times in the same application, which each instance configured
+ separately and mapped to a single CPU core.
+ Each CPU core can run one or several pipeline instances, which can be of same or different type.
+
+ * Pipeline instances are inter-connected through packet queues (for packet processing) and message queues
+ (for run-time configuration).
+
+ * Pipelines are implemented using DPDK Packet Framework.
+
+ * More pipeline types can always be built and added to the existing pipeline types.
+
+**The Configuration file**
+
+ * The configuration file defines the application structure.
+ By using different configuration files, different applications are created.
+
+ * All the application resources are created and configured through the application configuration file:
+ pipeline instances, buffer pools, links (i.e. network interfaces), hardware device RX/TX queues,
+ software queues, traffic manager devices, EAL startup arguments, etc.
+
+ * The configuration file syntax is “define by reference”, meaning that resources are defined as they are referenced.
+ First time a resource name is detected, it is registered with default parameters.
+ Optionally, the resource parameters can be further refined through a configuration file section dedicated to
+ that resource.
+
+ * Command Line Interface (CLI)
+
+**Global CLI commands: link configuration, etc.**
+
+ * Common pipeline CLI commands: ping (keep-alive), statistics, etc.
+
+ * Pipeline type specific CLI commands: used to configure instances of specific pipeline type.
+ These commands are registered with the application when the pipeline type is registered.
+ For example, the commands for routing pipeline instances include: route add, route delete, route list, etc.
+
+ * CLI commands can be grouped into scripts that can be invoked at initialization and at runtime.
+
+
+Rapid development
+-----------------
+
+This application enables rapid development through quick connectivity of standard components called pipelines.
+These components are built using DPDK Packet Framework and encapsulate packet processing features at different levels:
+ports, tables, actions, pipelines and complete applications.
+
+Pipeline instances are instantiated, configured and inter-connected through low complexity configuration files loaded
+during application initialization.
+Each pipeline instance is mapped to a single CPU core, with each CPU core able to run one or multiple pipeline
+instances of same or different types. By loading a different configuration file, a different application is
+effectively started.
+
+
+Flexibility
+-----------
+
+Each packet processing application is typically represented as a chain of functional stages which is often called
+the functional pipeline of the application.
+These stages are mapped to CPU cores to create chains of CPU cores (pipeline model), clusters of CPU cores
+(run-to-completion model) or chains of clusters of CPU cores (hybrid model).
+
+This application allows all the above programming models.
+By applying changes to the configuration file, the application provides the flexibility to reshuffle its
+building blocks in different ways until the configuration providing the best performance is identified.
+
+
+.. raw:: latex
+
+ \newpage
+
+
+Move pipelines around
+~~~~~~~~~~~~~~~~~~~~~
+
+The mapping of pipeline instances to CPU cores can be reshuffled through the configuration file.
+One or several pipeline instances can be mapped to the same CPU core.
+
+.. _figure_ip_pipelines_1:
+
+.. figure:: img/ip_pipelines_1.*
+
+ Example of moving pipeline instances across different CPU cores
+
+
+.. raw:: latex
+
+ \newpage
+
+Move tables around
+~~~~~~~~~~~~~~~~~~
+
+There is some degree of flexibility for moving tables from one pipeline instance to another.
+Based on the configuration arguments passed to each pipeline instance in the configuration file, specific tables
+can be enabled or disabled.
+This way, a specific table can be “moved” from pipeline instance A to pipeline instance B by simply disabling its
+associated functionality for pipeline instance A while enabling it for pipeline instance B.
+
+Due to requirement to have simple syntax for the configuration file, moving tables across different pipeline
+instances is not as flexible as the mapping of pipeline instances to CPU cores, or mapping actions to pipeline tables.
+Complete flexibility in moving tables from one pipeline to another could be achieved through a complex pipeline
+description language that would detail the structural elements of the pipeline (ports, tables and actions) and
+their connectivity, resulting in complex syntax for the configuration file, which is not acceptable.
+Good configuration file readability through simple syntax is preferred.
+
+*Example*: the IP routing pipeline can run the routing function only (with ARP function run by a different
+pipeline instance), or it can run both the routing and ARP functions as part of the same pipeline instance.
+
+
+.. _figure_ip_pipelines_2:
+
+.. figure:: img/ip_pipelines_2.*
+
+ Example of moving tables across different pipeline instances
+
+
+.. raw:: latex
+
+ \newpage
+
+Move actions around
+~~~~~~~~~~~~~~~~~~~
+
+When it makes sense, packet processing actions can be moved from one pipeline instance to another.
+Based on the configuration arguments passed to each pipeline instance in the configuration file, specific actions
+can be enabled or disabled.
+This way, a specific action can be "moved" from pipeline instance A to pipeline instance B by simply disabling its
+associated functionality for pipeline instance A while enabling it for pipeline instance B.
+
+*Example*: The flow actions of accounting, traffic metering, application identification, NAT, etc can be run as part
+of the flow classification pipeline instance or split across several flow actions pipeline instances, depending on
+the number of flow instances and their compute requirements.
+
+
+.. _figure_ip_pipelines_3:
+
+.. figure:: img/ip_pipelines_3.*
+
+ Example of moving actions across different tables and pipeline instances
+
+
+Performance
+-----------
+
+Performance of the application is the highest priority requirement.
+Flexibility is not provided at the expense of performance.
+
+The purpose of flexibility is to provide an incremental development methodology that allows monitoring the
+performance evolution:
+
+* Apply incremental changes in the configuration (e.g. mapping on pipeline instances to CPU cores)
+ in order to identify the configuration providing the best performance for a given application;
+
+* Add more processing incrementally (e.g. by enabling more actions for specific pipeline instances) until
+ the application is feature complete while checking the performance impact at each step.
+
+
+Debug capabilities
+------------------
+
+The application provides a significant set of debug capabilities:
+
+* Command Line Interface (CLI) support for statistics polling: pipeline instance ping (keep-alive checks),
+ pipeline instance statistics per input port/output port/table, link statistics, etc;
+
+* Logging: Turn on/off application log messages based on priority level;
+
+Running the application
+=======================
+
+The application startup command line is::
+
+ ip_pipeline [-f CONFIG_FILE] [-s SCRIPT_FILE] -p PORT_MASK [-l LOG_LEVEL]
+
+The application startup arguments are:
+
+``-f CONFIG_FILE``
+
+ * Optional: Yes
+
+ * Default: ``./config/ip_pipeline.cfg``
+
+ * Argument: Path to the configuration file to be loaded by the application.
+ Please refer to the :ref:`ip_pipeline_configuration_file` for details on how to write the configuration file.
+
+``-s SCRIPT_FILE``
+
+ * Optional: Yes
+
+ * Default: Not present
+
+ * Argument: Path to the CLI script file to be run by the master pipeline at application startup.
+ No CLI script file will be run at startup of this argument is not present.
+
+``-p PORT_MASK``
+
+ * Optional: No
+
+ * Default: N/A
+
+ * Argument: Hexadecimal mask of NIC port IDs to be used by the application.
+ First port enabled in this mask will be referenced as LINK0 as part of the application configuration file,
+ next port as LINK1, etc.
+
+``-l LOG_LEVEL``
+
+ * Optional: Yes
+
+ * Default: 1 (High priority)
+
+ * Argument: Log level to determine which application messages are to be printed to standard output.
+ Available log levels are: 0 (None), 1 (High priority), 2 (Low priority).
+ Only application messages whose priority is higher than or equal to the application log level will be printed.
+
+
+Application stages
+==================
+
+
+Configuration
+-------------
+
+During this stage, the application configuration file is parsed and its content is loaded into the application data
+structures.
+In case of any configuration file parse error, an error message is displayed and the application is terminated.
+Please refer to the :ref:`ip_pipeline_configuration_file` for a description of the application configuration file format.
+
+
+Configuration checking
+----------------------
+
+In the absence of any parse errors, the loaded content of application data structures is checked for overall consistency.
+In case of any configuration check error, an error message is displayed and the application is terminated.
+
+
+Initialization
+--------------
+
+During this stage, the application resources are initialized and the handles to access them are saved into the
+application data structures.
+In case of any initialization error, an error message is displayed and the application is terminated.
+
+The typical resources to be initialized are: pipeline instances, buffer pools, links (i.e. network interfaces),
+hardware device RX/TX queues, software queues, traffic management devices, etc.
+
+
+.. _ip_pipeline_runtime:
+
+Run-time
+--------
+
+Each CPU core runs the pipeline instances assigned to it in time sharing mode and in round robin order:
+
+1. *Packet processing task*: The pipeline run-time code is typically a packet *processing* task built on top of
+ DPDK Packet Framework rte_pipeline library, which reads bursts of packets from the pipeline input ports,
+ performs table lookups and executes the identified actions for all tables in the pipeline, with packet
+ eventually written to pipeline output ports or dropped.
+
+2. *Message handling task*: Each CPU core will also periodically execute the *message handling* code of each
+ of the pipelines mapped to it.
+ The pipeline message handling code is processing the messages that are pending in the pipeline input message
+ queues, which are typically sent by the master CPU core for the on-the-fly pipeline configuration: check
+ that pipeline is still alive (ping), add/delete entries in the pipeline tables, get statistics, etc.
+ The frequency of executing the message handling code is usually much smaller than the frequency of executing
+ the packet processing work.
+
+Please refer to the :ref:`ip_pipeline_pipeline_section` for more details about the application pipeline module encapsulation.
+
+.. _ip_pipeline_configuration_file:
+
+Configuration file syntax
+=========================
+
+Syntax overview
+---------------
+
+The syntax of the configuration file is designed to be simple, which favors readability.
+The configuration file is parsed using the DPDK library librte_cfgfile, which supports simple
+`INI file format <http://en.wikipedia.org/wiki/INI_file>`__ for configuration files.
+
+As result, the configuration file is split into several sections, with each section containing one or more entries.
+The scope of each entry is its section, and each entry specifies a variable that is assigned a specific value.
+Any text after the ``;`` character is considered a comment and is therefore ignored.
+
+The following are application specific: number of sections, name of each section, number of entries of each section,
+name of the variables used for each section entry, the value format (e.g. signed/unsigned integer, string, etc)
+and range of each section entry variable.
+
+Generic example of configuration file section:
+
+.. code-block:: ini
+
+ [<section_name>]
+
+ <variable_name_1> = <value_1>
+
+ ...
+
+ <variable_name_N> = <value_N>
+
+
+Application resources present in the configuration file
+-------------------------------------------------------
+
+.. _table_ip_pipelines_resource_name:
+
+.. tabularcolumns:: |p{4cm}|p{6cm}|p{6cm}|
+
+.. table:: Application resource names in the configuration file
+
+ +--------------------------+-----------------------------+-------------------------------------------------+
+ | Resource type | Format | Examples |
+ +==========================+=============================+=================================================+
+ | Pipeline | ``PIPELINE<ID>`` | ``PIPELINE0``, ``PIPELINE1`` |
+ +--------------------------+-----------------------------+-------------------------------------------------+
+ | Mempool | ``MEMPOOL<ID>`` | ``MEMPOOL0``, ``MEMPOOL1`` |
+ +--------------------------+-----------------------------+-------------------------------------------------+
+ | Link (network interface) | ``LINK<ID>`` | ``LINK0``, ``LINK1`` |
+ +--------------------------+-----------------------------+-------------------------------------------------+
+ | Link RX queue | ``RXQ<LINK_ID>.<QUEUE_ID>`` | ``RXQ0.0``, ``RXQ1.5`` |
+ +--------------------------+-----------------------------+-------------------------------------------------+
+ | Link TX queue | ``TXQ<LINK_ID>.<QUEUE_ID>`` | ``TXQ0.0``, ``TXQ1.5`` |
+ +--------------------------+-----------------------------+-------------------------------------------------+
+ | Software queue | ``SWQ<ID>`` | ``SWQ0``, ``SWQ1`` |
+ +--------------------------+-----------------------------+-------------------------------------------------+
+ | Traffic Manager | ``TM<LINK_ID>`` | ``TM0``, ``TM1`` |
+ +--------------------------+-----------------------------+-------------------------------------------------+
+ | Source | ``SOURCE<ID>`` | ``SOURCE0``, ``SOURCE1`` |
+ +--------------------------+-----------------------------+-------------------------------------------------+
+ | Sink | ``SINK<ID>`` | ``SINK0``, ``SINK1`` |
+ +--------------------------+-----------------------------+-------------------------------------------------+
+ | Message queue | ``MSGQ<ID>`` | ``MSGQ0``, ``MSGQ1``, |
+ | | ``MSGQ-REQ-PIPELINE<ID>`` | ``MSGQ-REQ-PIPELINE2``, ``MSGQ-RSP-PIPELINE2,`` |
+ | | ``MSGQ-RSP-PIPELINE<ID>`` | ``MSGQ-REQ-CORE-s0c1``, ``MSGQ-RSP-CORE-s0c1`` |
+ | | ``MSGQ-REQ-CORE-<CORE_ID>`` | |
+ | | ``MSGQ-RSP-CORE-<CORE_ID>`` | |
+ +--------------------------+-----------------------------+-------------------------------------------------+
+
+``LINK`` instances are created implicitly based on the ``PORT_MASK`` application startup argument.
+``LINK0`` is the first port enabled in the ``PORT_MASK``, port 1 is the next one, etc.
+The LINK ID is different than the DPDK PMD-level NIC port ID, which is the actual position in the bitmask mentioned above.
+For example, if bit 5 is the first bit set in the bitmask, then ``LINK0`` is having the PMD ID of 5.
+This mechanism creates a contiguous LINK ID space and isolates the configuration file against changes in the board
+PCIe slots where NICs are plugged in.
+
+``RXQ``, ``TXQ`` and ``TM`` instances have the LINK ID as part of their name.
+For example, ``RXQ2.1``, ``TXQ2.1`` and ``TM2`` are all associated with ``LINK2``.
+
+
+Rules to parse the configuration file
+-------------------------------------
+
+The main rules used to parse the configuration file are:
+
+1. Application resource name determines the type of resource based on the name prefix.
+
+ *Example*: all software queues need to start with ``SWQ`` prefix, so ``SWQ0`` and ``SWQ5`` are valid software
+ queue names.
+
+2. An application resource is defined by creating a configuration file section with its name.
+ The configuration file section allows fine tuning on any of the resource parameters.
+ Some resource parameters are mandatory, in which case it is required to have them specified as part of the
+ section, while some others are optional, in which case they get assigned their default value when not present.
+
+ *Example*: section ``SWQ0`` defines a software queue named SWQ0, whose parameters are detailed as part of this section.
+
+3. An application resource can also be defined by referencing it.
+ Referencing a resource takes place by simply using its name as part of the value assigned to a variable in any
+ configuration file section.
+ In this case, the resource is registered with all its parameters having their default values.
+ Optionally, a section with the resource name can be added to the configuration file to fine tune some or all
+ of the resource parameters.
+
+ *Example*: in section ``PIPELINE3``, variable ``pktq_in`` includes ``SWQ5`` as part of its list, which results
+ in defining a software queue named ``SWQ5``; when there is no ``SWQ5`` section present in the configuration file,
+ ``SWQ5`` gets registered with default parameters.
+
+
+.. _ip_pipeline_pipeline_section:
+
+PIPELINE section
+----------------
+
+.. _table_ip_pipelines_pipeline_section_1:
+
+.. tabularcolumns:: |p{2.5cm}|p{7cm}|p{1.5cm}|p{1.5cm}|p{1.5cm}|
+
+.. table:: Configuration file PIPELINE section (1/2)
+
+ +---------------+-----------------------------------------------------------+---------------+------------------------+----------------+
+ | Section | Description | Optional | Range | Default value |
+ +===============+===========================================================+===============+========================+================+
+ | type | Pipeline type. Defines the functionality to be | NO | See "List | N/A |
+ | | executed. | | of pipeline types" | |
+ +---------------+-----------------------------------------------------------+---------------+------------------------+----------------+
+ | core | CPU core to run the current pipeline. | YES | See "CPU Core | CPU socket 0, |
+ | | | | notation" | core 0, |
+ | | | | | hyper-thread 0 |
+ +---------------+-----------------------------------------------------------+---------------+------------------------+----------------+
+ | pktq_in | Packet queues to serve as input ports for the | YES | List of input | Empty list |
+ | | current pipeline instance. The acceptable packet | | packet queue IDs | |
+ | | queue types are: ``RXQ``, ``SWQ``, ``TM`` and ``SOURCE``. | | | |
+ | | First device in this list is used as pipeline input port | | | |
+ | | 0, second as pipeline input port 1, etc. | | | |
+ +---------------+-----------------------------------------------------------+---------------+------------------------+----------------+
+ | pktq_out | Packet queues to serve as output ports for the | YES | List of output | Empty list |
+ | | current pipeline instance. The acceptable packet | | packet queue IDs. | |
+ | | queue types are: ``TXQ``, ``SWQ``, ``TM`` and ``SINK``. | | | |
+ | | First device in this list is used as pipeline output | | | |
+ | | port 0, second as pipeline output port 1, etc. | | | |
+ +---------------+-----------------------------------------------------------+---------------+------------------------+----------------+
+
+.. _table_ip_pipelines_pipeline_section_2:
+
+.. tabularcolumns:: |p{2.5cm}|p{7cm}|p{1.5cm}|p{1.5cm}|p{1.5cm}|
+
+.. table:: Configuration file PIPELINE section (2/2)
+
+ +---------------+-----------------------------------------------------------+---------------+------------------------+----------------+
+ | Section | Description | Optional | Range | Default value |
+ +===============+===========================================================+===============+========================+================+
+ | msgq_in | Input message queues. These queues contain | YES | List of message | Empty list |
+ | | request messages that need to be handled by the | | queue IDs | |
+ | | current pipeline instance. The type and format of | | | |
+ | | request messages is defined by the pipeline type. | | | |
+ | | For each pipeline instance, there is an input | | | |
+ | | message queue defined implicitly, whose name is: | | | |
+ | | ``MSGQ-REQ-<PIPELINE_ID>``. This message queue | | | |
+ | | should not be mentioned as part of msgq_in list. | | | |
+ +---------------+-----------------------------------------------------------+---------------+------------------------+----------------+
+ | msgq_out | Output message queues. These queues are used by | YES | List of message | Empty list |
+ | | the current pipeline instance to write response | | queue IDs | |
+ | | messages as result of request messages being | | | |
+ | | handled. The type and format of response | | | |
+ | | messages is defined by the pipeline type. | | | |
+ | | For each pipeline instance, there is an output | | | |
+ | | message queue defined implicitly, whose name is: | | | |
+ | | ``MSGQ-RSP-<PIPELINE_ID>``. This message queue | | | |
+ | | should not be mentioned as part of msgq_out list. | | | |
+ +---------------+-----------------------------------------------------------+---------------+------------------------+----------------+
+ | timer_period | Time period, measured in milliseconds, | YES | milliseconds | 1 ms |
+ | | for handling the input message queues. | | | |
+ +---------------+-----------------------------------------------------------+---------------+------------------------+----------------+
+ | <any other> | Arguments to be passed to the current pipeline | Depends on | Depends on | Depends on |
+ | | instance. Format of the arguments, their type, | pipeline type | pipeline type | pipeline type |
+ | | whether each argument is optional or mandatory | | | |
+ | | and its default value (when optional) are defined | | | |
+ | | by the pipeline type. | | | |
+ | | The value of the arguments is applicable to the | | | |
+ | | current pipeline instance only. | | | |
+ +---------------+-----------------------------------------------------------+---------------+------------------------+----------------+
+
+
+.. raw:: latex
+
+ \newpage
+
+
+CPU core notation
+~~~~~~~~~~~~~~~~~
+
+The CPU Core notation is::
+
+ <CPU core> ::= [s|S<CPU socket ID>][c|C]<CPU core ID>[h|H]
+
+For example::
+
+ CPU socket 0, core 0, hyper-thread 0: 0, c0, s0c0
+
+ CPU socket 0, core 0, hyper-thread 1: 0h, c0h, s0c0h
+
+ CPU socket 3, core 9, hyper-thread 1: s3c9h
+
+
+MEMPOOL section
+---------------
+
+.. _table_ip_pipelines_mempool_section:
+
+.. tabularcolumns:: |p{2.5cm}|p{6cm}|p{1.5cm}|p{1.5cm}|p{3cm}|
+
+.. table:: Configuration file MEMPOOL section
+
+ +---------------+-----------------------------------------------+----------+----------+---------------------------+
+ | Section | Description | Optional | Type | Default value |
+ +===============+===============================================+==========+==========+===========================+
+ | buffer_size | Buffer size (in bytes) for the current | YES | uint32_t | 2048 |
+ | | buffer pool. | | | + sizeof(struct rte_mbuf) |
+ | | | | | + HEADROOM |
+ +---------------+-----------------------------------------------+----------+----------+---------------------------+
+ | pool_size | Number of buffers in the current buffer pool. | YES | uint32_t | 32K |
+ +---------------+-----------------------------------------------+----------+----------+---------------------------+
+ | cache_size | Per CPU thread cache size (in number of | YES | uint32_t | 256 |
+ | | buffers) for the current buffer pool. | | | |
+ +---------------+-----------------------------------------------+----------+----------+---------------------------+
+ | cpu | CPU socket ID where to allocate memory for | YES | uint32_t | 0 |
+ | | the current buffer pool. | | | |
+ +---------------+-----------------------------------------------+----------+----------+---------------------------+
+
+
+LINK section
+------------
+
+.. _table_ip_pipelines_link_section:
+
+.. tabularcolumns:: |p{3cm}|p{7cm}|p{1.5cm}|p{1.5cm}|p{2cm}|
+
+.. table:: Configuration file LINK section
+
+ +-----------------+----------------------------------------------+----------+----------+-------------------+
+ | Section entry | Description | Optional | Type | Default value |
+ +=================+==============================================+==========+==========+===================+
+ | arp_q | NIC RX queue where ARP packets should | YES | 0 .. 127 | 0 (default queue) |
+ | | be filtered. | | | |
+ +-----------------+----------------------------------------------+----------+----------+-------------------+
+ | tcp_syn_local_q | NIC RX queue where TCP packets with SYN | YES | 0 .. 127 | 0 (default queue) |
+ | | flag should be filtered. | | | |
+ +-----------------+----------------------------------------------+----------+----------+-------------------+
+ | ip_local_q | NIC RX queue where IP packets with local | YES | 0 .. 127 | 0 (default queue) |
+ | | destination should be filtered. | | | |
+ | | When TCP, UDP and SCTP local queues are | | | |
+ | | defined, they take higher priority than this | | | |
+ | | queue. | | | |
+ +-----------------+----------------------------------------------+----------+----------+-------------------+
+ | tcp_local_q | NIC RX queue where TCP packets with local | YES | 0 .. 127 | 0 (default queue) |
+ | | destination should be filtered. | | | |
+ +-----------------+----------------------------------------------+----------+----------+-------------------+
+ | udp_local_q | NIC RX queue where TCP packets with local | YES | 0 .. 127 | 0 (default queue) |
+ | | destination should be filtered. | | | |
+ +-----------------+----------------------------------------------+----------+----------+-------------------+
+ | sctp_local_q | NIC RX queue where TCP packets with local | YES | 0 .. 127 | 0 (default queue) |
+ | | destination should be filtered. | | | |
+ +-----------------+----------------------------------------------+----------+----------+-------------------+
+ | promisc | Indicates whether current link should be | YES | YES/NO | YES |
+ | | started in promiscuous mode. | | | |
+ +-----------------+----------------------------------------------+----------+----------+-------------------+
+
+
+RXQ section
+-----------
+
+.. _table_ip_pipelines_rxq_section:
+
+.. tabularcolumns:: |p{3cm}|p{7cm}|p{1.5cm}|p{1.5cm}|p{2cm}|
+
+.. table:: Configuration file RXQ section
+
+ +---------------+--------------------------------------------+----------+----------+---------------+
+ | Section | Description | Optional | Type | Default value |
+ +===============+============================================+==========+==========+===============+
+ | mempool | Mempool to use for buffer allocation for | YES | uint32_t | MEMPOOL0 |
+ | | current NIC RX queue. The mempool ID has | | | |
+ | | to be associated with a valid instance | | | |
+ | | defined in the mempool entry of the global | | | |
+ | | section. | | | |
+ +---------------+--------------------------------------------+----------+----------+---------------+
+ | Size | NIC RX queue size (number of descriptors) | YES | uint32_t | 128 |
+ +---------------+--------------------------------------------+----------+----------+---------------+
+ | burst | Read burst size (number of descriptors) | YES | uint32_t | 32 |
+ +---------------+--------------------------------------------+----------+----------+---------------+
+
+
+TXQ section
+-----------
+
+.. _table_ip_pipelines_txq_section:
+
+.. tabularcolumns:: |p{2.5cm}|p{7cm}|p{1.5cm}|p{2cm}|p{1.5cm}|
+
+.. table:: Configuration file TXQ section
+
+ +---------------+----------------------------------------------+----------+------------------+---------------+
+ | Section | Description | Optional | Type | Default value |
+ +===============+==============================================+==========+==================+===============+
+ | size | NIC TX queue size (number of descriptors) | YES | uint32_t | 512 |
+ | | | | power of 2 | |
+ | | | | > 0 | |
+ +---------------+----------------------------------------------+----------+------------------+---------------+
+ | burst | Write burst size (number of descriptors) | YES | uint32_t | 32 |
+ | | | | power of 2 | |
+ | | | | 0 < burst < size | |
+ +---------------+----------------------------------------------+----------+------------------+---------------+
+ | dropless | When dropless is set to NO, packets can be | YES | YES/NO | NO |
+ | | dropped if not enough free slots are | | | |
+ | | currently available in the queue, so the | | | |
+ | | write operation to the queue is non- | | | |
+ | | blocking. | | | |
+ | | When dropless is set to YES, packets cannot | | | |
+ | | be dropped if not enough free slots are | | | |
+ | | currently available in the queue, so the | | | |
+ | | write operation to the queue is blocking, as | | | |
+ | | the write operation is retried until enough | | | |
+ | | free slots become available and all the | | | |
+ | | packets are successfully written to the | | | |
+ | | queue. | | | |
+ +---------------+----------------------------------------------+----------+------------------+---------------+
+ | n_retries | Number of retries. Valid only when dropless | YES | uint32_t | 0 |
+ | | is set to YES. When set to 0, it indicates | | | |
+ | | unlimited number of retries. | | | |
+ +---------------+----------------------------------------------+----------+------------------+---------------+
+
+
+SWQ section
+-----------
+
+.. _table_ip_pipelines_swq_section:
+
+.. tabularcolumns:: |p{2.5cm}|p{7cm}|p{1.5cm}|p{1.5cm}|p{1.5cm}|
+
+.. table:: Configuration file SWQ section
+
+ +---------------+----------------------------------------------+----------+------------------+---------------+
+ | Section | Description | Optional | Type | Default value |
+ +===============+==============================================+==========+==================+===============+
+ | size | Queue size (number of packets) | YES | uint32_t | 256 |
+ | | | | power of 2 | |
+ +---------------+----------------------------------------------+----------+------------------+---------------+
+ | burst_read | Read burst size (number of packets) | YES | uint32_t | 32 |
+ | | | | power of 2 | |
+ | | | | 0 < burst < size | |
+ +---------------+----------------------------------------------+----------+------------------+---------------+
+ | burst_write | Write burst size (number of packets) | YES | uint32_t | 32 |
+ | | | | power of 2 | |
+ | | | | 0 < burst < size | |
+ +---------------+----------------------------------------------+----------+------------------+---------------+
+ | dropless | When dropless is set to NO, packets can be | YES | YES/NO | NO |
+ | | dropped if not enough free slots are | | | |
+ | | currently available in the queue, so the | | | |
+ | | write operation to the queue is non- | | | |
+ | | blocking. | | | |
+ | | When dropless is set to YES, packets cannot | | | |
+ | | be dropped if not enough free slots are | | | |
+ | | currently available in the queue, so the | | | |
+ | | write operation to the queue is blocking, as | | | |
+ | | the write operation is retried until enough | | | |
+ | | free slots become available and all the | | | |
+ | | packets are successfully written to the | | | |
+ | | queue. | | | |
+ +---------------+----------------------------------------------+----------+------------------+---------------+
+ | n_retries | Number of retries. Valid only when dropless | YES | uint32_t | 0 |
+ | | is set to YES. When set to 0, it indicates | | | |
+ | | unlimited number of retries. | | | |
+ +---------------+----------------------------------------------+----------+------------------+---------------+
+ | cpu | CPU socket ID where to allocate memory | YES | uint32_t | 0 |
+ | | for this SWQ. | | | |
+ +---------------+----------------------------------------------+----------+------------------+---------------+
+
+
+TM section
+----------
+
+.. _table_ip_pipelines_tm_section:
+
+.. tabularcolumns:: |p{2.5cm}|p{7cm}|p{1.5cm}|p{1.5cm}|p{1.5cm}|
+
+.. table:: Configuration file TM section
+
+ +---------------+---------------------------------------------+----------+----------+---------------+
+ | Section | Description | Optional | Type | Default value |
+ +===============+=============================================+==========+==========+===============+
+ | Cfg | File name to parse for the TM configuration | YES | string | tm_profile |
+ | | to be applied. The syntax of this file is | | | |
+ | | described in the examples/qos_sched DPDK | | | |
+ | | application documentation. | | | |
+ +---------------+---------------------------------------------+----------+----------+---------------+
+ | burst_read | Read burst size (number of packets) | YES | uint32_t | 64 |
+ +---------------+---------------------------------------------+----------+----------+---------------+
+ | burst_write | Write burst size (number of packets) | YES | uint32_t | 32 |
+ +---------------+---------------------------------------------+----------+----------+---------------+
+
+
+SOURCE section
+--------------
+
+.. _table_ip_pipelines_source_section:
+
+.. tabularcolumns:: |p{2.5cm}|p{7cm}|p{1.5cm}|p{1.5cm}|p{2cm}|
+
+.. table:: Configuration file SOURCE section
+
+ +---------------+---------------------------------------+----------+----------+---------------+
+ | Section | Description | Optional | Type | Default value |
+ +===============+=======================================+==========+==========+===============+
+ | Mempool | Mempool to use for buffer allocation. | YES | uint32_t | MEMPOOL0 |
+ +---------------+---------------------------------------+----------+----------+---------------+
+ | Burst | Read burst size (number of packets) | | uint32_t | 32 |
+ +---------------+---------------------------------------+----------+----------+---------------+
+
+
+SINK section
+------------
+
+Currently, there are no parameters to be passed to a sink device, so
+SINK section is not allowed.
+
+MSGQ section
+------------
+
+.. _table_ip_pipelines_msgq_section:
+
+.. tabularcolumns:: |p{2.5cm}|p{7cm}|p{1.5cm}|p{1.5cm}|p{1.5cm}|
+
+.. table:: Configuration file MSGQ section
+
+ +---------+--------------------------------------------+----------+------------+---------------+
+ | Section | Description | Optional | Type | Default value |
+ +=========+============================================+==========+============+===============+
+ | size | Queue size (number of packets) | YES | uint32_t | 64 |
+ | | | | != 0 | |
+ | | | | power of 2 | |
+ +---------+--------------------------------------------+----------+------------+---------------+
+ | cpu | CPU socket ID where to allocate memory for | YES | uint32_t | 0 |
+ | | the current queue. | | | |
+ +---------+--------------------------------------------+----------+------------+---------------+
+
+
+EAL section
+-----------
+
+The application generates the EAL parameters rather than reading them from the command line.
+
+The CPU core mask parameter is generated based on the core entry of all PIPELINE sections.
+All the other EAL parameters can be set from this section of the application configuration file.
+
+
+Library of pipeline types
+=========================
+
+Pipeline module
+---------------
+
+A pipeline is a self-contained module that implements a packet processing function and is typically implemented on
+top of the DPDK Packet Framework *librte_pipeline* library.
+The application provides a run-time mechanism to register different pipeline types.
+
+Depending on the required configuration, each registered pipeline type (pipeline class) is instantiated one or
+several times, with each pipeline instance (pipeline object) assigned to one of the available CPU cores.
+Each CPU core can run one or more pipeline instances, which might be of same or different types.
+For more information of the CPU core threading model, please refer to the :ref:`ip_pipeline_runtime` section.
+
+
+Pipeline type
+~~~~~~~~~~~~~
+
+Each pipeline type is made up of a back-end and a front-end. The back-end represents the packet processing engine
+of the pipeline, typically implemented using the DPDK Packet Framework libraries, which reads packets from the
+input packet queues, handles them and eventually writes them to the output packet queues or drops them.
+The front-end represents the run-time configuration interface of the pipeline, which is exposed as CLI commands.
+The front-end communicates with the back-end through message queues.
+
+.. _table_ip_pipelines_back_end:
+
+.. tabularcolumns:: |p{1cm}|p{2cm}|p{12cm}|
+
+.. table:: Pipeline back-end
+
+ +------------+------------------+--------------------------------------------------------------------+
+ | Field name | Field type | Description |
+ +============+==================+====================================================================+
+ | f_init | Function pointer | Function to initialize the back-end of the current pipeline |
+ | | | instance. Typical work implemented by this function for the |
+ | | | current pipeline instance: |
+ | | | Memory allocation; |
+ | | | Parse the pipeline type specific arguments; |
+ | | | Initialize the pipeline input ports, output ports and tables, |
+ | | | interconnect input ports to tables; |
+ | | | Set the message handlers. |
+ +------------+------------------+--------------------------------------------------------------------+
+ | f_free | Function pointer | Function to free the resources allocated by the back-end of the |
+ | | | current pipeline instance. |
+ +------------+------------------+--------------------------------------------------------------------+
+ | f_run | Function pointer | Set to NULL for pipelines implemented using the DPDK library |
+ | | | librte_pipeline (typical case), and to non-NULL otherwise. This |
+ | | | mechanism is made available to support quick integration of |
+ | | | legacy code. |
+ | | | This function is expected to provide the packet processing |
+ | | | related code to be called as part of the CPU thread dispatch |
+ | | | loop, so this function is not allowed to contain an infinite loop. |
+ +------------+------------------+--------------------------------------------------------------------+
+ | f_timer | Function pointer | Function to read the pipeline input message queues, handle |
+ | | | the request messages, create response messages and write |
+ | | | the response queues. The format of request and response |
+ | | | messages is defined by each pipeline type, with the exception |
+ | | | of some requests which are mandatory for all pipelines (e.g. |
+ | | | ping, statistics). |
+ +------------+------------------+--------------------------------------------------------------------+
+ | f_track | Function pointer | See section Tracking pipeline output port to physical link |
+ +------------+------------------+--------------------------------------------------------------------+
+
+
+.. _table_ip_pipelines_front_end:
+
+.. tabularcolumns:: |p{1cm}|p{2cm}|p{12cm}|
+
+.. table:: Pipeline front-end
+
+ +------------+-----------------------+-------------------------------------------------------------------+
+ | Field name | Field type | Description |
+ +============+=======================+===================================================================+
+ | f_init | Function pointer | Function to initialize the front-end of the current pipeline |
+ | | | instance. |
+ +------------+-----------------------+-------------------------------------------------------------------+
+ | f_free | Function pointer | Function to free the resources allocated by the front-end of |
+ | | | the current pipeline instance. |
+ +------------+-----------------------+-------------------------------------------------------------------+
+ | cmds | Array of CLI commands | Array of CLI commands to be registered to the application CLI |
+ | | | for the current pipeline type. Even though the CLI is executed |
+ | | | by a different pipeline (typically, this is the master pipeline), |
+ | | | from modularity perspective is more efficient to keep the |
+ | | | message client side (part of the front-end) together with the |
+ | | | message server side (part of the back-end). |
+ +------------+-----------------------+-------------------------------------------------------------------+
+
+
+Tracking pipeline output port to physical link
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Each pipeline instance is a standalone block that does not have visibility into the other pipeline instances or
+the application-level pipeline inter-connectivity.
+In some cases, it is useful for a pipeline instance to get application level information related to pipeline
+connectivity, such as to identify the output link (e.g. physical NIC port) where one of its output ports connected,
+either directly or indirectly by traversing other pipeline instances.
+
+Tracking can be successful or unsuccessful.
+Typically, tracking for a specific pipeline instance is successful when each one of its input ports can be mapped
+to a single output port, meaning that all packets read from the current input port can only go out on a single
+output port.
+Depending on the pipeline type, some exceptions may be allowed: a small portion of the packets, considered exception
+packets, are sent out on an output port that is pre-configured for this purpose.
+
+For pass-through pipeline type, the tracking is always successful.
+For pipeline types as flow classification, firewall or routing, the tracking is only successful when the number of
+output ports for the current pipeline instance is 1.
+
+This feature is used by the IP routing pipeline for adding/removing implicit routes every time a link is brought
+up/down.
+
+
+Table copies
+~~~~~~~~~~~~
+
+Fast table copy: pipeline table used by pipeline for the packet processing task, updated through messages, table
+data structures are optimized for lookup operation.
+
+Slow table copy: used by the configuration layer, typically updated through CLI commands, kept in sync with the fast
+copy (its update triggers the fast copy update).
+Required for executing advanced table queries without impacting the packet processing task, therefore the slow copy
+is typically organized using different criteria than the fast copy.
+
+Examples:
+
+* Flow classification: Search through current set of flows (e.g. list all flows with a specific source IP address);
+
+* Firewall: List rules in descending order of priority;
+
+* Routing table: List routes sorted by prefix depth and their type (local, remote, default);
+
+* ARP: List entries sorted per output interface.
+
+
+Packet meta-data
+~~~~~~~~~~~~~~~~
+
+Packet meta-data field offsets provided as argument to pipeline instances are essentially defining the data structure
+for the packet meta-data used by the current application use-case.
+It is very useful to put it in the configuration file as a comment in order to facilitate the readability of the
+configuration file.
+
+The reason to use field offsets for defining the data structure for the packet meta-data is due to the C language
+limitation of not being able to define data structures at run-time.
+Feature to consider: have the configuration file parser automatically generate and print the data structure defining
+the packet meta-data for the current application use-case.
+
+Packet meta-data typically contains:
+
+1. Pure meta-data: intermediate data per packet that is computed internally, passed between different tables of
+ the same pipeline instance (e.g. lookup key for the ARP table is obtained from the routing table), or between
+ different pipeline instances (e.g. flow ID, traffic metering color, etc);
+
+2. Packet fields: typically, packet header fields that are read directly from the packet, or read from the packet
+ and saved (duplicated) as a working copy at a different location within the packet meta-data (e.g. Diffserv
+ 5-tuple, IP destination address, etc).
+
+Several strategies are used to design the packet meta-data, as described in the next subsections.
+
+
+Store packet meta-data in a different cache line as the packet headers
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+This approach is able to support protocols with variable header length, like MPLS, where the offset of IP header
+from the start of the packet (and, implicitly, the offset of the IP header in the packet buffer) is not fixed.
+Since the pipelines typically require the specification of a fixed offset to the packet fields (e.g. Diffserv
+5-tuple, used by the flow classification pipeline, or the IP destination address, used by the IP routing pipeline),
+the workaround is to have the packet RX pipeline copy these fields at fixed offsets within the packet meta-data.
+
+As this approach duplicates some of the packet fields, it requires accessing more cache lines per packet for filling
+in selected packet meta-data fields (on RX), as well as flushing selected packet meta-data fields into the
+packet (on TX).
+
+Example:
+
+.. code-block:: ini
+
+
+ ; struct app_pkt_metadata {
+ ; uint32_t ip_da;
+ ; uint32_t hash;
+ ; uint32_t flow_id;
+ ; uint32_t color;
+ ; } __attribute__((__packed__));
+ ;
+
+ [PIPELINE1]
+ ; Packet meta-data offsets
+ ip_da_offset = 0; Used by: routing
+ hash_offset = 4; Used by: RX, flow classification
+ flow_id_offset = 8; Used by: flow classification, flow actions
+ color_offset = 12; Used by: flow actions, routing
+
+
+.. raw:: latex
+
+ \newpage
+
+Overlay the packet meta-data in the same cache line with the packet headers
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+This approach is minimizing the number of cache line accessed per packet by storing the packet metadata in the
+same cache line with the packet headers.
+To enable this strategy, either some headroom is reserved for meta-data at the beginning of the packet headers
+cache line (e.g. if 16 bytes are needed for meta-data, then the packet headroom can be set to 128+16 bytes, so
+that NIC writes the first byte of the packet at offset 16 from the start of the first packet cache line),
+or meta-data is reusing the space of some packet headers that are discarded from the packet (e.g. input Ethernet
+header).
+
+Example:
+
+.. code-block:: ini
+
+ ; struct app_pkt_metadata {
+ ; uint8_t headroom[RTE_PKTMBUF_HEADROOM]; /* 128 bytes (default) */
+ ; union {
+ ; struct {
+ ; struct ether_hdr ether; /* 14 bytes */
+ ; struct qinq_hdr qinq; /* 8 bytes */
+ ; };
+ ; struct {
+ ; uint32_t hash;
+ ; uint32_t flow_id;
+ ; uint32_t color;
+ ; };
+ ; };
+ ; struct ipv4_hdr ip; /* 20 bytes */
+ ; } __attribute__((__packed__));
+ ;
+ [PIPELINE2]
+ ; Packet meta-data offsets
+ qinq_offset = 142; Used by: RX, flow classification
+ ip_da_offset = 166; Used by: routing
+ hash_offset = 128; Used by: RX, flow classification
+ flow_id_offset = 132; Used by: flow classification, flow actions
+ color_offset = 136; Used by: flow actions, routing
+
+
+List of pipeline types
+----------------------
+
+.. _table_ip_pipelines_types:
+
+.. tabularcolumns:: |p{3cm}|p{5cm}|p{4cm}|p{4cm}|
+
+.. table:: List of pipeline types provided with the application
+
+ +-----------------------+-----------------------------+-----------------------+------------------------------------------+
+ | Name | Table(s) | Actions | Messages |
+ +=======================+=============================+=======================+==========================================+
+ | Pass-through | Passthrough | 1. Pkt metadata build | 1. Ping |
+ | | | 2. Flow hash | 2. Stats |
+ | Note: depending on | | 3. Pkt checks | |
+ | port type, can be | | 4. Load balancing | |
+ | used for RX, TX, IP | | | |
+ | fragmentation, IP | | | |
+ | reassembly or Traffic | | | |
+ | Management | | | |
+ +-----------------------+-----------------------------+-----------------------+------------------------------------------+
+ | Flow classification | Exact match | 1. Flow ID | 1. Ping |
+ | | | | |
+ | | * Key = byte array | 2. Flow stats | 2. Stats |
+ | | (source: pkt metadata) | 3. Metering | 3. Flow stats |
+ | | * Data = action dependent | 4. Network Address | 4. Action stats |
+ | | | 5. Translation (NAT) | 5. Flow add/ update/ delete |
+ | | | | 6. Default flow add/ update/ delete |
+ | | | | 7. Action update |
+ +-----------------------+-----------------------------+-----------------------+------------------------------------------+
+ | Flow actions | Array | 1. Flow stats | 1. Ping |
+ | | | | |
+ | | * Key = Flow ID | 2. Metering | 2. Stats |
+ | | (source: pkt metadata) | 3. Network Address | 3. Action stats |
+ | | * Data = action dependent | 4. Translation (NAT) | 4. Action update |
+ +-----------------------+-----------------------------+-----------------------+------------------------------------------+
+ | Firewall | ACL | 1. Allow/Drop | 1. Ping |
+ | | | | |
+ | | * Key = n-tuple | | 2. Stats |
+ | | (source: pkt headers) | | 3. Rule add/ update/ delete |
+ | | * Data = none | | 4. Default rule add/ update/ delete |
+ +-----------------------+-----------------------------+-----------------------+------------------------------------------+
+ | IP routing | LPM (IPv4 or IPv6, | 1. TTL decrement and | 1. Ping |
+ | | depending on pipeline type) | 2. IPv4 checksum | 2. Stats |
+ | | | | |
+ | | * Key = IP destination | 3. update | 3. Route add/ update/ delete |
+ | | (source: pkt metadata) | 4. Header | 4. Default route add/ update/ delete |
+ | | * Data = Dependent on | 5. encapsulation | 5. ARP entry add/ update/ delete |
+ | | actions and next hop | 6. (based on next hop | 6. Default ARP entry add/ update/ delete |
+ | | type | 7. type) | |
+ | | | | |
+ | | Hash table (for ARP, only | | |
+ | | | | |
+ | | when ARP is enabled) | | |
+ | | | | |
+ | | * Key = (Port ID, | | |
+ | | next hop IP address) | | |
+ | | (source: pkt meta-data) | | |
+ | | * Data: MAC address | | |
+ +-----------------------+-----------------------------+-----------------------+------------------------------------------+
+
+
+
+Command Line Interface (CLI)
+============================
+
+Global CLI commands
+-------------------
+
+.. _table_ip_pipelines_cli_commands:
+
+.. tabularcolumns:: |p{3cm}|p{6cm}|p{6cm}|
+
+.. table:: Global CLI commands
+
+ +---------+---------------------------------------+--------------------------------------------+
+ | Command | Description | Syntax |
+ +=========+=======================================+============================================+
+ | run | Run CLI commands script file. | run <file> |
+ | | | <file> = path to file with CLI commands to |
+ | | | execute |
+ +---------+---------------------------------------+--------------------------------------------+
+ | quit | Gracefully terminate the application. | quit |
+ +---------+---------------------------------------+--------------------------------------------+
+
+
+CLI commands for link configuration
+-----------------------------------
+
+.. _table_ip_pipelines_runtime_config:
+
+.. tabularcolumns:: |p{3cm}|p{6cm}|p{6cm}|
+
+.. table:: List of run-time configuration commands for link configuration
+
+ +-------------+--------------------+--------------------------------------------+
+ | Command | Description | Syntax |
+ +=============+====================+============================================+
+ | link config | Link configuration | link <link ID> config <IP address> <depth> |
+ +-------------+--------------------+--------------------------------------------+
+ | link up | Link up | link <link ID> up |
+ +-------------+--------------------+--------------------------------------------+
+ | link down | Link down | link <link ID> down |
+ +-------------+--------------------+--------------------------------------------+
+ | link ls | Link list | link ls |
+ +-------------+--------------------+--------------------------------------------+
+
+
+CLI commands common for all pipeline types
+------------------------------------------
+
+.. _table_ip_pipelines_mandatory:
+
+.. tabularcolumns:: |p{3cm}|p{6cm}|p{6cm}|
+
+.. table:: CLI commands mandatory for all pipelines
+
+ +--------------------+------------------------------------------------------+----------------------------------------------+
+ | Command | Description | Syntax |
+ +====================+======================================================+==============================================+
+ | ping | Check whether specific pipeline instance is alive. | p <pipeline ID> ping |
+ | | The master pipeline sends a ping request | |
+ | | message to given pipeline instance and waits for | |
+ | | a response message back. | |
+ | | Timeout message is displayed when the response | |
+ | | message is not received before the timer | |
+ | | expires. | |
+ +--------------------+------------------------------------------------------+----------------------------------------------+
+ | stats | Display statistics for specific pipeline input port, | p <pipeline ID> stats port in <port in ID> |
+ | | output port or table. | p <pipeline ID> stats port out <port out ID> |
+ | | | p <pipeline ID> stats table <table ID> |
+ +--------------------+------------------------------------------------------+----------------------------------------------+
+ | input port enable | Enable given input port for specific pipeline | p <pipeline ID> port in <port ID> enable |
+ | | instance. | |
+ +--------------------+------------------------------------------------------+----------------------------------------------+
+ | input port disable | Disable given input port for specific pipeline | p <pipeline ID> port in <port ID> disable |
+ | | instance. | |
+ +--------------------+------------------------------------------------------+----------------------------------------------+
+
+Pipeline type specific CLI commands
+-----------------------------------
+
+The pipeline specific CLI commands are part of the pipeline type front-end.
diff --git a/doc/guides/sample_app_ug/index.rst b/doc/guides/sample_app_ug/index.rst
index 50dac0f..5777480 100644
--- a/doc/guides/sample_app_ug/index.rst
+++ b/doc/guides/sample_app_ug/index.rst
@@ -67,7 +67,6 @@ Sample Applications User Guide
vmdq_dcb_forwarding
vhost
netmap_compatibility
- internet_proto_ip_pipeline
test_pipeline
dist_app
vm_power_management
diff --git a/doc/guides/sample_app_ug/internet_proto_ip_pipeline.rst b/doc/guides/sample_app_ug/internet_proto_ip_pipeline.rst
deleted file mode 100644
index 257ce3f..0000000
--- a/doc/guides/sample_app_ug/internet_proto_ip_pipeline.rst
+++ /dev/null
@@ -1,135 +0,0 @@
-.. BSD LICENSE
- Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
- * Neither the name of Intel Corporation nor the names of its
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-Internet Protocol (IP) Pipeline Sample Application
-==================================================
-
-The Internet Protocol (IP) Pipeline application illustrates the use of the DPDK Packet Framework tool suite.
-The DPDK pipeline methodology is used to implement functional blocks such as
-packet RX, packet TX, flow classification, firewall,
-routing, IP fragmentation, IP reassembly, etc
-which are then assigned to different CPU cores and connected together to create complex multi-core applications.
-
-Overview
---------
-
-The pipelines for packet RX, packet TX, flow classification, firewall, routing, IP fragmentation, IP reassembly, management, etc
-are instantiated and different CPU cores and connected together through software queues.
-One of the CPU cores can be designated as the management core to run a Command Line Interface (CLI) to add entries to each table
-(e.g. flow table, firewall rule database, routing table, Address Resolution Protocol (ARP) table, and so on),
-bring NIC ports up or down, and so on.
-
-Compiling the Application
--------------------------
-
-#. Go to the examples directory:
-
- .. code-block:: console
-
- export RTE_SDK=/path/to/rte_sdk
- cd ${RTE_SDK}/examples/ip_pipeline
-
-#. Set the target (a default target is used if not specified):
-
- .. code-block:: console
-
- export RTE_TARGET=x86_64-native-linuxapp-gcc
-
-#. Build the application:
-
- .. code-block:: console
-
- make
-
-Running the Sample Code
------------------------
-
-The application execution command line is:
-
-.. code-block:: console
-
- ./ip_pipeline [EAL options] -- -p PORTMASK [-f CONFIG_FILE]
-
-The number of ports in the PORTMASK can be either 2 or 4.
-
-The config file assigns functionality to the CPU core by deciding the pipeline type to run on each CPU core
-(e.g. master, RX, flow classification, firewall, routing, IP fragmentation, IP reassembly, TX) and
-also allows creating complex topologies made up of CPU cores by interconnecting the CPU cores through SW queues.
-
-Once the application is initialized, the CLI is available for populating the application tables,
-bringing NIC ports up or down, and so on.
-
-The flow classification pipeline implements the flow table by using a large (multi-million entry) hash table with a 16-byte key size.
-The lookup key is the IPv4 5-tuple, which is extracted from the input packet by the packet RX pipeline and
-saved in the packet meta-data, has the following format:
-
- [source IP address, destination IP address, L4 protocol, L4 protocol source port, L4 protocol destination port]
-
-The firewall pipeline implements the rule database using an ACL table.
-
-The routing pipeline implements an IP routing table by using an LPM IPv4 table and
-an ARP table by using a hash table with an 8-byte key size.
-The IP routing table lookup provides the output interface ID and the next hop IP address,
-which are stored in the packet meta-data, then used as the lookup key into the ARP table.
-The ARP table lookup provides the destination MAC address to be used for the output packet.
-The action for the default entry of both the IP routing table and the ARP table is packet drop.
-
-The following CLI operations are available:
-
-* Enable/disable NIC ports (RX pipeline)
-
-* Add/delete/list flows (flow classification pipeline)
-
-* Add/delete/list firewall rules (firewall pipeline)
-
-* Add/delete/list routes (routing pipeline)
-
-* Add/delete/list ARP entries (routing pipeline)
-
-In addition, there are two special commands:
-
-* flow add all:
- Populate the flow classification table with 16 million flows
- (by iterating through the last three bytes of the destination IP address).
- These flows are not displayed when using the flow print command.
- When this command is used, the following traffic profile must be used to have flow table lookup hits for all input packets.
- TCP/IPv4 packets with:
-
- * destination IP address = A.B.C.D with A fixed to 0 and B,C,D random
-
- * source IP address fixed to 0
-
- * source TCP port fixed to 0
-
- * destination TCP port fixed to 0
-
-* run cmd_file_path: Read CLI commands from an external file and run them one by one.
-
-The full list of the available CLI commands can be displayed by pressing the TAB key while the application is running.
--
1.8.1.4
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [dpdk-dev] [PATCH v2] doc: ip_pipeline app user guide
2015-08-11 16:47 ` [dpdk-dev] [PATCH v2] " John McNamara
@ 2015-08-11 17:23 ` Dumitrescu, Cristian
2015-08-11 20:37 ` Thomas Monjalon
0 siblings, 1 reply; 10+ messages in thread
From: Dumitrescu, Cristian @ 2015-08-11 17:23 UTC (permalink / raw)
To: Mcnamara, John, dev
> -----Original Message-----
> From: Mcnamara, John
> Sent: Tuesday, August 11, 2015 5:47 PM
> To: dev@dpdk.org
> Cc: Dumitrescu, Cristian
> Subject: [PATCH v2] doc: ip_pipeline app user guide
>
> From: "Dumitrescu, Cristian" <cristian.dumitrescu@intel.com>
>
> Added more extensive documentation for ip_pipeline application.
>
> Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
> Acked-by: Jasvinder Singh <Jasvinder.singh@intel.com >
> Acked-by: Piotr Azarewicz <piotrx.t.azarewicz@intel.com>
> Acked-by: John McNamara <john.mcnamara@intel.com>
> ---
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Thanks, John!
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [dpdk-dev] [PATCH v2] doc: ip_pipeline app user guide
2015-08-11 17:23 ` Dumitrescu, Cristian
@ 2015-08-11 20:37 ` Thomas Monjalon
2015-08-11 20:46 ` Dumitrescu, Cristian
0 siblings, 1 reply; 10+ messages in thread
From: Thomas Monjalon @ 2015-08-11 20:37 UTC (permalink / raw)
To: Dumitrescu, Cristian; +Cc: dev
> > From: "Dumitrescu, Cristian" <cristian.dumitrescu@intel.com>
> >
> > Added more extensive documentation for ip_pipeline application.
> >
> > Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
> > Acked-by: Jasvinder Singh <Jasvinder.singh@intel.com >
> > Acked-by: Piotr Azarewicz <piotrx.t.azarewicz@intel.com>
> > Acked-by: John McNamara <john.mcnamara@intel.com>
> > ---
>
> Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
This patch is moving doc for examples/ip_pipeline/ from
doc/guides/sample_app_ug/ to a standalone doc.
The only app having a standalone doc is testpmd.
So this patch is applied after moving it back to doc/guides/sample_app_ug/.
Thanks
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [dpdk-dev] [PATCH v2] doc: ip_pipeline app user guide
2015-08-11 20:37 ` Thomas Monjalon
@ 2015-08-11 20:46 ` Dumitrescu, Cristian
0 siblings, 0 replies; 10+ messages in thread
From: Dumitrescu, Cristian @ 2015-08-11 20:46 UTC (permalink / raw)
To: Thomas Monjalon; +Cc: dev
> -----Original Message-----
> From: Thomas Monjalon [mailto:thomas.monjalon@6wind.com]
> Sent: Tuesday, August 11, 2015 9:37 PM
> To: Dumitrescu, Cristian
> Cc: dev@dpdk.org; Mcnamara, John
> Subject: Re: [dpdk-dev] [PATCH v2] doc: ip_pipeline app user guide
>
> > > From: "Dumitrescu, Cristian" <cristian.dumitrescu@intel.com>
> > >
> > > Added more extensive documentation for ip_pipeline application.
> > >
> > > Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
> > > Acked-by: Jasvinder Singh <Jasvinder.singh@intel.com >
> > > Acked-by: Piotr Azarewicz <piotrx.t.azarewicz@intel.com>
> > > Acked-by: John McNamara <john.mcnamara@intel.com>
> > > ---
> >
> > Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
>
> This patch is moving doc for examples/ip_pipeline/ from
> doc/guides/sample_app_ug/ to a standalone doc.
> The only app having a standalone doc is testpmd.
>
> So this patch is applied after moving it back to doc/guides/sample_app_ug/.
> Thanks
Hi Thomas,
The intention was to have this as a separate document, since this application is fairly complex at this point and it is essentially used as an application generator and tester for more APIs and setups than available through the other example apps (similar to testpmd).
But if you decide to put it back to the sample apps guide, I am fine with it.
Thanks!
Regards,
Cristian
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2015-08-11 20:46 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-08-06 13:48 [dpdk-dev] [PATCH] doc: ip_pipeline app user guide Cristian Dumitrescu
2015-08-06 13:55 ` Singh, Jasvinder
2015-08-06 14:38 ` Azarewicz, PiotrX T
2015-08-07 15:44 ` Mcnamara, John
2015-08-10 21:44 ` Thomas Monjalon
2015-08-11 8:12 ` Mcnamara, John
2015-08-11 16:47 ` [dpdk-dev] [PATCH v2] " John McNamara
2015-08-11 17:23 ` Dumitrescu, Cristian
2015-08-11 20:37 ` Thomas Monjalon
2015-08-11 20:46 ` Dumitrescu, Cristian
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).