Add picture of higherordercpu and fix layout
authorChristiaan Baaij <baaijcpr@wlan228123.mobiel.utwente.nl>
Thu, 4 Mar 2010 14:16:03 +0000 (15:16 +0100)
committerChristiaan Baaij <baaijcpr@wlan228123.mobiel.utwente.nl>
Thu, 4 Mar 2010 14:16:03 +0000 (15:16 +0100)
cλash.lhs
highordcpu.svg [new file with mode: 0644]

index cee9045..924f0b5 100644 (file)
@@ -603,6 +603,7 @@ circuit~\cite{reductioncircuit} for floating point numbers.
     \centerline{\includegraphics{mac.svg}}
     \caption{Combinatorial Multiply-Accumulate}
     \label{img:mac-comb}
+    \vspace{-1.5em}
     \end{figure}
     
     The use of a composite result value is demonstrated in the next example, 
@@ -620,6 +621,7 @@ circuit~\cite{reductioncircuit} for floating point numbers.
     \centerline{\includegraphics{mac-nocurry.svg}}
     \caption{Combinatorial Multiply-Accumulate (composite output)}
     \label{img:mac-comb-composite}
+    \vspace{-1.5em}
     \end{figure}
 
   \subsection{Choice}
@@ -673,6 +675,7 @@ circuit~\cite{reductioncircuit} for floating point numbers.
     \centerline{\includegraphics{choice-case.svg}}
     \caption{Choice - sumif}
     \label{img:choice}
+    \vspace{-1.5em}
     \end{figure}
 
     A user-friendly and also very powerful form of choice that is not found in 
@@ -1041,6 +1044,7 @@ circuit~\cite{reductioncircuit} for floating point numbers.
     \centerline{\includegraphics{mac-state.svg}}
     \caption{Stateful Multiply-Accumulate}
     \label{img:mac-state}
+    \vspace{-1.5em}
     \end{figure}
     
     Note that the \hs{macS} function returns bot the new state and the value
@@ -1096,6 +1100,7 @@ the type-checker. These parts together form the front-end of the prototype compi
 \centerline{\includegraphics{compilerpipeline.svg}}
 \caption{\CLaSHtiny\ compiler pipeline}
 \label{img:compilerpipeline}
+\vspace{-1.5em}
 \end{figure}
 
 The output of the \GHC\ front-end consists of the translation of the original Haskell description in \emph{Core}~\cite{Sulzmann2007}, which is a smaller, typed, functional language. This \emph{Core} language is relatively easy to process compared to the larger Haskell language. A description in \emph{Core} can still contain elements which have no direct translation to hardware, such as polymorphic types and function-valued arguments. Such a description needs to be transformed to a \emph{normal form}, which only contains elements that have a direct translation. The second stage of the compiler, the \emph{normalization} phase, exhaustively applies a set of \emph{meaning-preserving} transformations on the \emph{Core} description until this description is in a \emph{normal form}. This set of transformations includes transformations typically found in reduction systems and lambda calculus~\cite{lambdacalculus}, such as $\beta$-reduction and $\eta$-expansion. It also includes self-defined transformations that are responsible for the reduction of higher-order functions to `regular' first-order functions.
@@ -1181,6 +1186,7 @@ the vectors of the \acro{FIR} code to a length of 4, is depicted in
 \centerline{\includegraphics{4tapfir.svg}}
 \caption{4-taps \acrotiny{FIR} Filter}
 \label{img:4tapfir}
+\vspace{-1.5em}
 \end{figure}
 
 \subsection{Higher-order CPU}
@@ -1190,7 +1196,7 @@ of which three have a fixed function and one can perform some less
 common operations.
 
 The CPU contains a number of data sources, represented by the horizontal
-lines in figure TODO:REF. These data sources offer the previous outputs
+lines in \Cref{img:highordcpu}. These data sources offer the previous outputs
 of each function units, along with the single data input the cpu has and
 two fixed intialization values.
 
@@ -1225,18 +1231,17 @@ the bitwise xor of its operands.
 data Opcode = Shift | Xor | Equal
 
 multiop :: Opcode -> Word -> Word -> Word
-multiop opc a b = case opc of
-  Shift             -> shift a b
-  Xor               -> xor a b 
-  Equal | a == b    -> 1
-        | otherwise -> 0
+multiop Shift   a b                 = shift a b
+multiop Xor     a b                 = xor a b
+multiop Equal   a b   | a == b      = 1
+                      | otherwise   = 0
 \end{code}
 
 The cpu function ties everything together. It applies the \hs{fu}
 function four times, to create a different function unit each time. The
 first application is interesting, because it does not just pass a
 function to \hs{fu}, but a partial application of \hs{multiop}. This
-shows how the first funcition unit effectively gets an extra input,
+shows how the first function unit effectively gets an extra input,
 compared to the others.
 
 The vector \hs{inputs} is the set of data sources, which is passed to
@@ -1264,6 +1269,13 @@ cpu (State s) input addrs opc = (State s', out)
     out       =   head s'
 \end{code}
 
+\begin{figure}
+\centerline{\includegraphics{highordcpu.svg}}
+\caption{CPU with higher-order Function Units}
+\label{img:highordcpu}
+\vspace{-1.5em}
+\end{figure}
+
 Of course, this is still a simple example, but it could form the basis
 of an actual design, in which the same techniques can be reused.
 
diff --git a/highordcpu.svg b/highordcpu.svg
new file mode 100644 (file)
index 0000000..d95d658
--- /dev/null
@@ -0,0 +1,1033 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:ns0="http://www.iki.fi/pav/software/textext/"
+   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="268.49905"
+   height="160.43082"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.47 r22583"
+   sodipodi:docname="highordcpu.svg">
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="2.1964286"
+     inkscape:cx="82.818524"
+     inkscape:cy="113.6145"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:snap-grids="true"
+     inkscape:window-width="1091"
+     inkscape:window-height="778"
+     inkscape:window-x="283"
+     inkscape:window-y="157"
+     inkscape:window-maximized="0"
+     inkscape:snap-center="false"
+     showguides="true"
+     inkscape:guide-bbox="true">
+    <inkscape:grid
+       type="xygrid"
+       id="grid2818"
+       empspacing="5"
+       visible="true"
+       enabled="true"
+       snapvisiblegridlinesonly="true" />
+  </sodipodi:namedview>
+  <defs
+     id="defs4">
+    <marker
+       inkscape:stockid="Arrow1Mstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Mstart"
+       style="overflow:visible">
+      <path
+         id="path6180"
+         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+         transform="matrix(0.4,0,0,0.4,4,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Lend"
+       style="overflow:visible">
+      <path
+         id="path6177"
+         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+         transform="matrix(-0.8,0,0,-0.8,-10,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Mend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Mend"
+       style="overflow:visible">
+      <path
+         id="path3732"
+         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+         transform="matrix(-0.4,0,0,-0.4,-4,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Send"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Send"
+       style="overflow:visible">
+      <path
+         id="path3738"
+         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+         transform="matrix(-0.2,0,0,-0.2,-1.2,0)" />
+    </marker>
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective10" />
+    <inkscape:perspective
+       id="perspective3098"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3128"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <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 />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-347.22,-807.8203)">
+    <rect
+       transform="translate(347.22,820.7037)"
+       y="-5.2674403"
+       x="26"
+       height="152.31485"
+       width="231"
+       id="rect9258"
+       style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none" />
+    <g
+       id="g8209"
+       transform="translate(16.500229,0)">
+      <path
+         id="path3366"
+         d="m 391.065,879.80127 -0.112,-33.19995 168.189,0 -0.022,33.19994"
+         style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow1Mstart);marker-end:url(#Arrow1Mend)"
+         sodipodi:nodetypes="cccc" />
+      <path
+         sodipodi:nodetypes="cccc"
+         style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow1Mstart);marker-end:url(#Arrow1Mend)"
+         d="m 396.565,879.80127 -0.181,-37.19995 168.22,0 -0.061,37.19994"
+         id="path3368" />
+      <path
+         sodipodi:nodetypes="cccc"
+         id="path3370"
+         d="m 402.099,879.80127 0,-41.19995 168.00498,0 -0.061,41.19994"
+         style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow1Mstart);marker-end:url(#Arrow1Mend)" />
+      <path
+         sodipodi:nodetypes="ccccc"
+         style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow1Mstart)"
+         d="m 407.665,879.80127 0.044,-45.19995 174.66677,0 0,106.79994 -12.133,-0.1"
+         id="path3373" />
+    </g>
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Mend)"
+       d="m 384.165,838.60132 -0.096,-8 174.504,0 0,49.19994"
+       id="path3375"
+       sodipodi:nodetypes="cccc" />
+    <path
+       id="path3377"
+       d="m 378.065,833.30126 -0.0206,-6.69994 186.07961,0 0,53.19994"
+       style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Mend)"
+       sodipodi:nodetypes="cccc" />
+    <path
+       id="path3381"
+       d="m 347.96478,822.60132 222.15922,0 0,57.19994"
+       style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Mend)"
+       sodipodi:nodetypes="ccc" />
+    <path
+       sodipodi:nodetypes="ccc"
+       id="path3197"
+       d="m 418.12999,941.60132 12.99001,0 0,-94.7"
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:none" />
+    <rect
+       style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none"
+       id="rect3343"
+       width="40"
+       height="30"
+       x="387.72"
+       y="881.60132" />
+    <g
+       id="g3345"
+       transform="matrix(1,0,0,-1,179.265,1556.175)"
+       xml:space="preserve"
+       stroke-miterlimit="10.433"
+       font-style="normal"
+       font-variant="normal"
+       font-weight="normal"
+       font-stretch="normal"
+       font-size-adjust="none"
+       letter-spacing="normal"
+       word-spacing="normal"
+       ns0:text="$\\mathbf{fu}$\n\n\n\n"
+       ns0:preamble=""
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;fill:none;stroke:#000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0">
+<path
+   style="fill:#000000;stroke-width:0"
+   d="m 224.6,661.66 h -0.75 v -0.47 h 0.75 v -3.49 h -0.69 v -0.47 c 0.35,0.01 0.8,0.03 1.26,0.03 0.37,0 1.01,0 1.37,-0.03 v 0.47 h -0.87 v 3.49 h 1.15 v 0.47 h -1.21 v 1 c 0,1.1 0.76,1.19 1.01,1.19 0.05,0 0.1,0 0.17,-0.02 -0.15,-0.11 -0.23,-0.3 -0.23,-0.49 0,-0.43 0.35,-0.62 0.61,-0.62 0.3,0 0.62,0.21 0.62,0.62 0,0.42 -0.36,0.87 -1.14,0.87 -0.98,0 -2.05,-0.42 -2.05,-1.55 z"
+   id="path3347" />
+<path
+   style="fill:#000000;stroke-width:0"
+   d="m 231.3,657.95 v -0.78 l 1.76,0.06 v 0.47 c -0.62,0 -0.68,0 -0.68,0.39 v 3.63 l -1.83,-0.08 v -0.47 c 0.62,0 0.69,0 0.69,-0.39 v -1.9 c 0,-0.82 -0.51,-1.35 -1.24,-1.35 -0.76,0 -0.79,0.25 -0.79,0.79 v 3.4 l -1.83,-0.08 v -0.47 c 0.62,0 0.69,0 0.69,-0.39 v -2.32 c 0,-1.07 0.81,-1.29 1.79,-1.29 0.26,0 0.98,0 1.44,0.78 z"
+   id="path3349" />
+</g>    <g
+       id="g3351"
+       transform="matrix(1.0476464,0,0,1,-56.24068,254.76497)">
+      <rect
+         style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none"
+         id="rect3353"
+         width="20"
+         height="30"
+         x="65"
+         y="139.43002"
+         transform="translate(367.86,538.7295)" />
+      <path
+         style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         d="m 65,164.43002 5,-5 -5,-5"
+         id="path3355"
+         transform="translate(367.86,538.7295)" />
+    </g>
+    <path
+       sodipodi:nodetypes="cc"
+       id="path3358"
+       d="m 407.72,911.53732 0,19.19"
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)" />
+    <g
+       id="g8349"
+       transform="translate(-22,0)">
+      <g
+         id="g8323">
+        <path
+           style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
+           d="m 413.12,830.60132 0,49.2"
+           id="path4381"
+           sodipodi:nodetypes="cc" />
+        <path
+           transform="matrix(0.31195247,0,0,0.31195247,429.28726,820.4831)"
+           d="m -46.315493,32.435127 c 0,3.026564 -2.453514,5.480078 -5.480077,5.480078 -3.026564,0 -5.480078,-2.453514 -5.480078,-5.480078 0,-3.026563 2.453514,-5.480077 5.480078,-5.480077 3.026563,0 5.480077,2.453514 5.480077,5.480077 z"
+           sodipodi:ry="5.4800777"
+           sodipodi:rx="5.4800777"
+           sodipodi:cy="32.435127"
+           sodipodi:cx="-51.79557"
+           id="path4383"
+           style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none"
+           sodipodi:type="arc" />
+      </g>
+      <g
+         id="g8319">
+        <path
+           sodipodi:nodetypes="cc"
+           id="path4387"
+           d="m 418.62,826.60132 0,53.2"
+           style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)" />
+        <path
+           sodipodi:type="arc"
+           style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none"
+           id="path4389"
+           sodipodi:cx="-51.79557"
+           sodipodi:cy="32.435127"
+           sodipodi:rx="5.4800777"
+           sodipodi:ry="5.4800777"
+           d="m -46.315493,32.435127 c 0,3.026564 -2.453514,5.480078 -5.480077,5.480078 -3.026564,0 -5.480078,-2.453514 -5.480078,-5.480078 0,-3.026563 2.453514,-5.480077 5.480078,-5.480077 3.026563,0 5.480077,2.453514 5.480077,5.480077 z"
+           transform="matrix(0.31195247,0,0,0.31195247,434.78726,816.4831)" />
+      </g>
+      <g
+         id="g8315">
+        <path
+           style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
+           d="m 424.12,822.60132 0,57.2"
+           id="path4393"
+           sodipodi:nodetypes="cc" />
+        <path
+           transform="matrix(0.31195247,0,0,0.31195247,440.28726,812.4831)"
+           d="m -46.315493,32.435127 c 0,3.026564 -2.453514,5.480078 -5.480077,5.480078 -3.026564,0 -5.480078,-2.453514 -5.480078,-5.480078 0,-3.026563 2.453514,-5.480077 5.480078,-5.480077 3.026563,0 5.480077,2.453514 5.480077,5.480077 z"
+           sodipodi:ry="5.4800777"
+           sodipodi:rx="5.4800777"
+           sodipodi:cy="32.435127"
+           sodipodi:cx="-51.79557"
+           id="path4395"
+           style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none"
+           sodipodi:type="arc" />
+      </g>
+    </g>
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
+       d="m 347.72,896.60132 38,0"
+       id="path4422"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
+       d="m 376.72,896.60132 0,25 57.5,0 0,-25 8,0"
+       id="path4796"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:none"
+       d="m 474.12999,941.60132 12.99001,0 0,-98.7"
+       id="path5237"
+       sodipodi:nodetypes="ccc" />
+    <rect
+       y="881.60132"
+       x="443.72"
+       height="30"
+       width="40"
+       id="rect5239"
+       style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none" />
+    <g
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;fill:none;stroke:#000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+       ns0:preamble=""
+       ns0:text="$\\mathbf{fu}$\n\n\n\n"
+       word-spacing="normal"
+       letter-spacing="normal"
+       font-size-adjust="none"
+       font-stretch="normal"
+       font-weight="normal"
+       font-variant="normal"
+       font-style="normal"
+       stroke-miterlimit="10.433"
+       xml:space="preserve"
+       transform="matrix(1,0,0,-1,235.265,1556.175)"
+       id="g5241">
+<path
+   id="path5243"
+   d="m 224.6,661.66 h -0.75 v -0.47 h 0.75 v -3.49 h -0.69 v -0.47 c 0.35,0.01 0.8,0.03 1.26,0.03 0.37,0 1.01,0 1.37,-0.03 v 0.47 h -0.87 v 3.49 h 1.15 v 0.47 h -1.21 v 1 c 0,1.1 0.76,1.19 1.01,1.19 0.05,0 0.1,0 0.17,-0.02 -0.15,-0.11 -0.23,-0.3 -0.23,-0.49 0,-0.43 0.35,-0.62 0.61,-0.62 0.3,0 0.62,0.21 0.62,0.62 0,0.42 -0.36,0.87 -1.14,0.87 -0.98,0 -2.05,-0.42 -2.05,-1.55 z"
+   style="fill:#000000;stroke-width:0" />
+<path
+   id="path5245"
+   d="m 231.3,657.95 v -0.78 l 1.76,0.06 v 0.47 c -0.62,0 -0.68,0 -0.68,0.39 v 3.63 l -1.83,-0.08 v -0.47 c 0.62,0 0.69,0 0.69,-0.39 v -1.9 c 0,-0.82 -0.51,-1.35 -1.24,-1.35 -0.76,0 -0.79,0.25 -0.79,0.79 v 3.4 l -1.83,-0.08 v -0.47 c 0.62,0 0.69,0 0.69,-0.39 v -2.32 c 0,-1.07 0.81,-1.29 1.79,-1.29 0.26,0 0.98,0 1.44,0.78 z"
+   style="fill:#000000;stroke-width:0" />
+</g>    <g
+       transform="matrix(1.0476464,0,0,1,-0.240681,254.76497)"
+       id="g5247">
+      <rect
+         transform="translate(367.86,538.7295)"
+         y="139.43002"
+         x="65"
+         height="30"
+         width="20"
+         id="rect5249"
+         style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none" />
+      <path
+         transform="translate(367.86,538.7295)"
+         id="path5251"
+         d="m 65,164.43002 5,-5 -5,-5"
+         style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+    </g>
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
+       d="m 463.72,911.53732 0,19.19"
+       id="path5253"
+       sodipodi:nodetypes="cc" />
+    <g
+       id="g8263"
+       transform="translate(16.500229,0)">
+      <g
+         id="g5255"
+         transform="translate(283.4,190.70953)">
+        <path
+           sodipodi:nodetypes="cc"
+           transform="translate(388.72,664.8395)"
+           id="path5257"
+           d="m -225,-8.9477081 0,33.1999511"
+           style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)" />
+        <path
+           sodipodi:type="arc"
+           style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none"
+           id="path5259"
+           sodipodi:cx="-51.79557"
+           sodipodi:cy="32.435127"
+           sodipodi:rx="5.4800777"
+           sodipodi:ry="5.4800777"
+           d="m -46.315493,32.435127 c 0,3.026564 -2.453514,5.480078 -5.480077,5.480078 -3.026564,0 -5.480078,-2.453514 -5.480078,-5.480078 0,-3.026563 2.453514,-5.480077 5.480078,-5.480077 3.026563,0 5.480077,2.453514 5.480077,5.480077 z"
+           transform="matrix(0.31195247,0,0,0.31195247,179.88726,645.77357)" />
+      </g>
+      <g
+         id="g8239">
+        <path
+           style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
+           d="m 452.62,842.60132 0,37.2"
+           id="path5261"
+           sodipodi:nodetypes="cc" />
+        <path
+           transform="matrix(0.31195247,0,0,0.31195247,468.78726,832.4831)"
+           d="m -46.315493,32.435127 c 0,3.026564 -2.453514,5.480078 -5.480077,5.480078 -3.026564,0 -5.480078,-2.453514 -5.480078,-5.480078 0,-3.026563 2.453514,-5.480077 5.480078,-5.480077 3.026563,0 5.480077,2.453514 5.480077,5.480077 z"
+           sodipodi:ry="5.4800777"
+           sodipodi:rx="5.4800777"
+           sodipodi:cy="32.435127"
+           sodipodi:cx="-51.79557"
+           id="path5263"
+           style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none"
+           sodipodi:type="arc" />
+      </g>
+      <g
+         id="g8243">
+        <path
+           sodipodi:nodetypes="cc"
+           id="path5265"
+           d="m 458.12,838.60132 0,41.2"
+           style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)" />
+        <path
+           sodipodi:type="arc"
+           style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none"
+           id="path5267"
+           sodipodi:cx="-51.79557"
+           sodipodi:cy="32.435127"
+           sodipodi:rx="5.4800777"
+           sodipodi:ry="5.4800777"
+           d="m -46.315493,32.435127 c 0,3.026564 -2.453514,5.480078 -5.480077,5.480078 -3.026564,0 -5.480078,-2.453514 -5.480078,-5.480078 0,-3.026563 2.453514,-5.480077 5.480078,-5.480077 3.026563,0 5.480077,2.453514 5.480077,5.480077 z"
+           transform="matrix(0.31195247,0,0,0.31195247,474.28726,828.4831)" />
+      </g>
+      <g
+         id="g8247">
+        <path
+           style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
+           d="m 463.62,834.60132 0,45.2"
+           id="path5269"
+           sodipodi:nodetypes="cc" />
+        <path
+           transform="matrix(0.31195247,0,0,0.31195247,479.78726,824.4831)"
+           d="m -46.315493,32.435127 c 0,3.026564 -2.453514,5.480078 -5.480077,5.480078 -3.026564,0 -5.480078,-2.453514 -5.480078,-5.480078 0,-3.026563 2.453514,-5.480077 5.480078,-5.480077 3.026563,0 5.480077,2.453514 5.480077,5.480077 z"
+           sodipodi:ry="5.4800777"
+           sodipodi:rx="5.4800777"
+           sodipodi:cy="32.435127"
+           sodipodi:cx="-51.79557"
+           id="path5271"
+           style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none"
+           sodipodi:type="arc" />
+      </g>
+    </g>
+    <g
+       id="g8338"
+       transform="translate(-22,0)">
+      <g
+         id="g8311">
+        <path
+           sodipodi:nodetypes="cc"
+           id="path5273"
+           d="m 469.12,830.60132 0,49.2"
+           style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)" />
+        <path
+           sodipodi:type="arc"
+           style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none"
+           id="path5275"
+           sodipodi:cx="-51.79557"
+           sodipodi:cy="32.435127"
+           sodipodi:rx="5.4800777"
+           sodipodi:ry="5.4800777"
+           d="m -46.315493,32.435127 c 0,3.026564 -2.453514,5.480078 -5.480077,5.480078 -3.026564,0 -5.480078,-2.453514 -5.480078,-5.480078 0,-3.026563 2.453514,-5.480077 5.480078,-5.480077 3.026563,0 5.480077,2.453514 5.480077,5.480077 z"
+           transform="matrix(0.31195247,0,0,0.31195247,485.28726,820.4831)" />
+      </g>
+      <g
+         id="g8307">
+        <path
+           style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
+           d="m 474.62,826.60132 0,53.2"
+           id="path5277"
+           sodipodi:nodetypes="cc" />
+        <path
+           transform="matrix(0.31195247,0,0,0.31195247,490.78726,816.4831)"
+           d="m -46.315493,32.435127 c 0,3.026564 -2.453514,5.480078 -5.480077,5.480078 -3.026564,0 -5.480078,-2.453514 -5.480078,-5.480078 0,-3.026563 2.453514,-5.480077 5.480078,-5.480077 3.026563,0 5.480077,2.453514 5.480077,5.480077 z"
+           sodipodi:ry="5.4800777"
+           sodipodi:rx="5.4800777"
+           sodipodi:cy="32.435127"
+           sodipodi:cx="-51.79557"
+           id="path5279"
+           style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none"
+           sodipodi:type="arc" />
+      </g>
+      <g
+         id="g8303">
+        <path
+           sodipodi:nodetypes="cc"
+           id="path5281"
+           d="m 480.12,822.60132 0,57.2"
+           style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)" />
+        <path
+           sodipodi:type="arc"
+           style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none"
+           id="path5283"
+           sodipodi:cx="-51.79557"
+           sodipodi:cy="32.435127"
+           sodipodi:rx="5.4800777"
+           sodipodi:ry="5.4800777"
+           d="m -46.315493,32.435127 c 0,3.026564 -2.453514,5.480078 -5.480077,5.480078 -3.026564,0 -5.480078,-2.453514 -5.480078,-5.480078 0,-3.026563 2.453514,-5.480077 5.480078,-5.480077 3.026563,0 5.480077,2.453514 5.480077,5.480077 z"
+           transform="matrix(0.31195247,0,0,0.31195247,496.28726,812.4831)" />
+      </g>
+    </g>
+    <rect
+       style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none"
+       id="rect5289"
+       width="40"
+       height="30"
+       x="555.71997"
+       y="881.60132" />
+    <g
+       id="g5291"
+       transform="matrix(1,0,0,-1,347.265,1556.175)"
+       xml:space="preserve"
+       stroke-miterlimit="10.433"
+       font-style="normal"
+       font-variant="normal"
+       font-weight="normal"
+       font-stretch="normal"
+       font-size-adjust="none"
+       letter-spacing="normal"
+       word-spacing="normal"
+       ns0:text="$\\mathbf{fu}$\n\n\n\n"
+       ns0:preamble=""
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;fill:none;stroke:#000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0">
+<path
+   style="fill:#000000;stroke-width:0"
+   d="m 224.6,661.66 h -0.75 v -0.47 h 0.75 v -3.49 h -0.69 v -0.47 c 0.35,0.01 0.8,0.03 1.26,0.03 0.37,0 1.01,0 1.37,-0.03 v 0.47 h -0.87 v 3.49 h 1.15 v 0.47 h -1.21 v 1 c 0,1.1 0.76,1.19 1.01,1.19 0.05,0 0.1,0 0.17,-0.02 -0.15,-0.11 -0.23,-0.3 -0.23,-0.49 0,-0.43 0.35,-0.62 0.61,-0.62 0.3,0 0.62,0.21 0.62,0.62 0,0.42 -0.36,0.87 -1.14,0.87 -0.98,0 -2.05,-0.42 -2.05,-1.55 z"
+   id="path5293" />
+<path
+   style="fill:#000000;stroke-width:0"
+   d="m 231.3,657.95 v -0.78 l 1.76,0.06 v 0.47 c -0.62,0 -0.68,0 -0.68,0.39 v 3.63 l -1.83,-0.08 v -0.47 c 0.62,0 0.69,0 0.69,-0.39 v -1.9 c 0,-0.82 -0.51,-1.35 -1.24,-1.35 -0.76,0 -0.79,0.25 -0.79,0.79 v 3.4 l -1.83,-0.08 v -0.47 c 0.62,0 0.69,0 0.69,-0.39 v -2.32 c 0,-1.07 0.81,-1.29 1.79,-1.29 0.26,0 0.98,0 1.44,0.78 z"
+   id="path5295" />
+</g>    <g
+       id="g5297"
+       transform="matrix(1.0476464,0,0,1,111.75932,254.76497)">
+      <rect
+         style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none"
+         id="rect5299"
+         width="20"
+         height="30"
+         x="65"
+         y="139.43002"
+         transform="translate(367.86,538.7295)" />
+      <path
+         style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         d="m 65,164.43002 5,-5 -5,-5"
+         id="path5301"
+         transform="translate(367.86,538.7295)" />
+    </g>
+    <path
+       sodipodi:nodetypes="cc"
+       id="path5303"
+       d="m 575.72,911.53732 0,19.19"
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)" />
+    <g
+       id="g8360"
+       transform="translate(16.4,0)">
+      <path
+         style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
+         d="m 575.62,834.60132 0,45.2"
+         id="path5319"
+         sodipodi:nodetypes="cc" />
+      <path
+         sodipodi:type="arc"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none"
+         id="path5333"
+         sodipodi:cx="-51.79557"
+         sodipodi:cy="32.435127"
+         sodipodi:rx="5.4800777"
+         sodipodi:ry="5.4800777"
+         d="m -46.315493,32.435127 c 0,3.026564 -2.453514,5.480078 -5.480077,5.480078 -3.026564,0 -5.480078,-2.453514 -5.480078,-5.480078 0,-3.026563 2.453514,-5.480077 5.480078,-5.480077 3.026563,0 5.480077,2.453514 5.480077,5.480077 z"
+         transform="matrix(0.31195247,0,0,0.31195247,591.83726,824.43354)" />
+    </g>
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:none"
+       d="m 530.12999,941.60132 12.99001,0 0,-102.7"
+       id="path5337"
+       sodipodi:nodetypes="ccc" />
+    <rect
+       y="881.60132"
+       x="499.72"
+       height="30"
+       width="40"
+       id="rect5339"
+       style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none" />
+    <g
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;fill:none;stroke:#000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+       ns0:preamble=""
+       ns0:text="$\\mathbf{fu}$\n\n\n\n"
+       word-spacing="normal"
+       letter-spacing="normal"
+       font-size-adjust="none"
+       font-stretch="normal"
+       font-weight="normal"
+       font-variant="normal"
+       font-style="normal"
+       stroke-miterlimit="10.433"
+       xml:space="preserve"
+       transform="matrix(1,0,0,-1,291.265,1556.175)"
+       id="g5341">
+<path
+   id="path5343"
+   d="m 224.6,661.66 h -0.75 v -0.47 h 0.75 v -3.49 h -0.69 v -0.47 c 0.35,0.01 0.8,0.03 1.26,0.03 0.37,0 1.01,0 1.37,-0.03 v 0.47 h -0.87 v 3.49 h 1.15 v 0.47 h -1.21 v 1 c 0,1.1 0.76,1.19 1.01,1.19 0.05,0 0.1,0 0.17,-0.02 -0.15,-0.11 -0.23,-0.3 -0.23,-0.49 0,-0.43 0.35,-0.62 0.61,-0.62 0.3,0 0.62,0.21 0.62,0.62 0,0.42 -0.36,0.87 -1.14,0.87 -0.98,0 -2.05,-0.42 -2.05,-1.55 z"
+   style="fill:#000000;stroke-width:0" />
+<path
+   id="path5345"
+   d="m 231.3,657.95 v -0.78 l 1.76,0.06 v 0.47 c -0.62,0 -0.68,0 -0.68,0.39 v 3.63 l -1.83,-0.08 v -0.47 c 0.62,0 0.69,0 0.69,-0.39 v -1.9 c 0,-0.82 -0.51,-1.35 -1.24,-1.35 -0.76,0 -0.79,0.25 -0.79,0.79 v 3.4 l -1.83,-0.08 v -0.47 c 0.62,0 0.69,0 0.69,-0.39 v -2.32 c 0,-1.07 0.81,-1.29 1.79,-1.29 0.26,0 0.98,0 1.44,0.78 z"
+   style="fill:#000000;stroke-width:0" />
+</g>    <g
+       transform="matrix(1.0476464,0,0,1,55.75932,254.76497)"
+       id="g5347">
+      <rect
+         transform="translate(367.86,538.7295)"
+         y="139.43002"
+         x="65"
+         height="30"
+         width="20"
+         id="rect5349"
+         style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none" />
+      <path
+         transform="translate(367.86,538.7295)"
+         id="path5351"
+         d="m 65,164.43002 5,-5 -5,-5"
+         style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+    </g>
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
+       d="m 519.72,911.53732 0,19.19"
+       id="path5353"
+       sodipodi:nodetypes="cc" />
+    <g
+       id="g8277"
+       transform="translate(16.500229,0)">
+      <g
+         id="g5355"
+         transform="translate(339.4,190.70953)">
+        <path
+           sodipodi:nodetypes="cc"
+           transform="translate(388.72,664.8395)"
+           id="path5357"
+           d="m -225,-8.9477081 0,33.2000001"
+           style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)" />
+        <path
+           sodipodi:type="arc"
+           style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none"
+           id="path5359"
+           sodipodi:cx="-51.79557"
+           sodipodi:cy="32.435127"
+           sodipodi:rx="5.4800777"
+           sodipodi:ry="5.4800777"
+           d="m -46.315493,32.435127 c 0,3.026564 -2.453514,5.480078 -5.480077,5.480078 -3.026564,0 -5.480078,-2.453514 -5.480078,-5.480078 0,-3.026563 2.453514,-5.480077 5.480078,-5.480077 3.026563,0 5.480077,2.453514 5.480077,5.480077 z"
+           transform="matrix(0.31195247,0,0,0.31195247,179.88726,645.77357)" />
+      </g>
+      <g
+         id="g8251">
+        <path
+           style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
+           d="m 508.62,842.60132 0,37.2"
+           id="path5361"
+           sodipodi:nodetypes="cc" />
+        <path
+           transform="matrix(0.31195247,0,0,0.31195247,524.78726,832.4831)"
+           d="m -46.315493,32.435127 c 0,3.026564 -2.453514,5.480078 -5.480077,5.480078 -3.026564,0 -5.480078,-2.453514 -5.480078,-5.480078 0,-3.026563 2.453514,-5.480077 5.480078,-5.480077 3.026563,0 5.480077,2.453514 5.480077,5.480077 z"
+           sodipodi:ry="5.4800777"
+           sodipodi:rx="5.4800777"
+           sodipodi:cy="32.435127"
+           sodipodi:cx="-51.79557"
+           id="path5363"
+           style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none"
+           sodipodi:type="arc" />
+      </g>
+      <g
+         id="g8255">
+        <path
+           sodipodi:nodetypes="cc"
+           id="path5365"
+           d="m 514.12,838.60132 0,41.2"
+           style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)" />
+        <path
+           sodipodi:type="arc"
+           style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none"
+           id="path5367"
+           sodipodi:cx="-51.79557"
+           sodipodi:cy="32.435127"
+           sodipodi:rx="5.4800777"
+           sodipodi:ry="5.4800777"
+           d="m -46.315493,32.435127 c 0,3.026564 -2.453514,5.480078 -5.480077,5.480078 -3.026564,0 -5.480078,-2.453514 -5.480078,-5.480078 0,-3.026563 2.453514,-5.480077 5.480078,-5.480077 3.026563,0 5.480077,2.453514 5.480077,5.480077 z"
+           transform="matrix(0.31195247,0,0,0.31195247,530.28726,828.4831)" />
+      </g>
+      <g
+         id="g8259">
+        <path
+           style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
+           d="m 519.62,834.60132 0,45.2"
+           id="path5369"
+           sodipodi:nodetypes="cc" />
+        <path
+           transform="matrix(0.31195247,0,0,0.31195247,535.78726,824.4831)"
+           d="m -46.315493,32.435127 c 0,3.026564 -2.453514,5.480078 -5.480077,5.480078 -3.026564,0 -5.480078,-2.453514 -5.480078,-5.480078 0,-3.026563 2.453514,-5.480077 5.480078,-5.480077 3.026563,0 5.480077,2.453514 5.480077,5.480077 z"
+           sodipodi:ry="5.4800777"
+           sodipodi:rx="5.4800777"
+           sodipodi:cy="32.435127"
+           sodipodi:cx="-51.79557"
+           id="path5371"
+           style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none"
+           sodipodi:type="arc" />
+      </g>
+    </g>
+    <g
+       id="g8327"
+       transform="translate(-22,0)">
+      <g
+         id="g8291">
+        <path
+           sodipodi:nodetypes="cc"
+           id="path5373"
+           d="m 525.12,830.60132 0,49.2"
+           style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)" />
+        <path
+           sodipodi:type="arc"
+           style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none"
+           id="path5375"
+           sodipodi:cx="-51.79557"
+           sodipodi:cy="32.435127"
+           sodipodi:rx="5.4800777"
+           sodipodi:ry="5.4800777"
+           d="m -46.315493,32.435127 c 0,3.026564 -2.453514,5.480078 -5.480077,5.480078 -3.026564,0 -5.480078,-2.453514 -5.480078,-5.480078 0,-3.026563 2.453514,-5.480077 5.480078,-5.480077 3.026563,0 5.480077,2.453514 5.480077,5.480077 z"
+           transform="matrix(0.31195247,0,0,0.31195247,541.28726,820.4831)" />
+      </g>
+      <g
+         id="g8295">
+        <path
+           style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
+           d="m 530.62,826.60132 0,53.2"
+           id="path5377"
+           sodipodi:nodetypes="cc" />
+        <path
+           transform="matrix(0.31195247,0,0,0.31195247,546.78726,816.4831)"
+           d="m -46.315493,32.435127 c 0,3.026564 -2.453514,5.480078 -5.480077,5.480078 -3.026564,0 -5.480078,-2.453514 -5.480078,-5.480078 0,-3.026563 2.453514,-5.480077 5.480078,-5.480077 3.026563,0 5.480077,2.453514 5.480077,5.480077 z"
+           sodipodi:ry="5.4800777"
+           sodipodi:rx="5.4800777"
+           sodipodi:cy="32.435127"
+           sodipodi:cx="-51.79557"
+           id="path5379"
+           style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none"
+           sodipodi:type="arc" />
+      </g>
+      <g
+         id="g8299">
+        <path
+           sodipodi:nodetypes="cc"
+           id="path5381"
+           d="m 536.12,822.60132 0,57.19994"
+           style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)" />
+        <path
+           sodipodi:type="arc"
+           style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none"
+           id="path5383"
+           sodipodi:cx="-51.79557"
+           sodipodi:cy="32.435127"
+           sodipodi:rx="5.4800777"
+           sodipodi:ry="5.4800777"
+           d="m -46.315493,32.435127 c 0,3.026564 -2.453514,5.480078 -5.480077,5.480078 -3.026564,0 -5.480078,-2.453514 -5.480078,-5.480078 0,-3.026563 2.453514,-5.480077 5.480078,-5.480077 3.026563,0 5.480077,2.453514 5.480077,5.480077 z"
+           transform="matrix(0.31195247,0,0,0.31195247,552.28726,812.4831)" />
+      </g>
+    </g>
+    <path
+       sodipodi:nodetypes="ccccc"
+       id="path7211"
+       d="m 376.72,896.60132 0,25 57.5,0 0,-25 8,0"
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
+       d="m 434.32,896.60132 0,25 56.2,0 0,-25 7.8,0"
+       id="path7213"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       sodipodi:nodetypes="ccccc"
+       id="path7215"
+       d="m 490.32,896.60132 0,25 56.2,0 0,-25 7.8,0"
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)" />
+    <path
+       sodipodi:type="arc"
+       style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none"
+       id="path7217"
+       sodipodi:cx="-51.79557"
+       sodipodi:cy="32.435127"
+       sodipodi:rx="5.4800777"
+       sodipodi:ry="5.4800777"
+       d="m -46.315493,32.435127 c 0,3.026564 -2.453514,5.480078 -5.480077,5.480078 -3.026564,0 -5.480078,-2.453514 -5.480078,-5.480078 0,-3.026563 2.453514,-5.480077 5.480078,-5.480077 3.026563,0 5.480077,2.453514 5.480077,5.480077 z"
+       transform="matrix(0.31195247,0,0,0.31195247,392.83726,886.23356)" />
+    <path
+       transform="matrix(0.31195247,0,0,0.31195247,450.43726,911.48356)"
+       d="m -46.315493,32.435127 c 0,3.026564 -2.453514,5.480078 -5.480077,5.480078 -3.026564,0 -5.480078,-2.453514 -5.480078,-5.480078 0,-3.026563 2.453514,-5.480077 5.480078,-5.480077 3.026563,0 5.480077,2.453514 5.480077,5.480077 z"
+       sodipodi:ry="5.4800777"
+       sodipodi:rx="5.4800777"
+       sodipodi:cy="32.435127"
+       sodipodi:cx="-51.79557"
+       id="path7219"
+       style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none"
+       sodipodi:type="arc" />
+    <path
+       sodipodi:type="arc"
+       style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none"
+       id="path7221"
+       sodipodi:cx="-51.79557"
+       sodipodi:cy="32.435127"
+       sodipodi:rx="5.4800777"
+       sodipodi:ry="5.4800777"
+       d="m -46.315493,32.435127 c 0,3.026564 -2.453514,5.480078 -5.480077,5.480078 -3.026564,0 -5.480078,-2.453514 -5.480078,-5.480078 0,-3.026563 2.453514,-5.480077 5.480078,-5.480077 3.026563,0 5.480077,2.453514 5.480077,5.480077 z"
+       transform="matrix(0.31195247,0,0,0.31195247,506.43726,911.48356)" />
+    <path
+       sodipodi:nodetypes="cc"
+       id="path7223"
+       d="m 576.46904,917.46097 38,0"
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)" />
+    <path
+       sodipodi:type="arc"
+       style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none"
+       id="path7225"
+       sodipodi:cx="-51.79557"
+       sodipodi:cy="32.435127"
+       sodipodi:rx="5.4800777"
+       sodipodi:ry="5.4800777"
+       d="m -46.315493,32.435127 c 0,3.026564 -2.453514,5.480078 -5.480077,5.480078 -3.026564,0 -5.480078,-2.453514 -5.480078,-5.480078 0,-3.026563 2.453514,-5.480077 5.480078,-5.480077 3.026563,0 5.480077,2.453514 5.480077,5.480077 z"
+       transform="matrix(0.31195247,0,0,0.31195247,591.93726,907.33355)" />
+    <path
+       sodipodi:type="arc"
+       style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none"
+       id="path8203"
+       sodipodi:cx="-51.79557"
+       sodipodi:cy="32.435127"
+       sodipodi:rx="5.4800777"
+       sodipodi:ry="5.4800777"
+       d="m -46.315493,32.435127 c 0,3.026564 -2.453514,5.480078 -5.480077,5.480078 -3.026564,0 -5.480078,-2.453514 -5.480078,-5.480078 0,-3.026563 2.453514,-5.480077 5.480078,-5.480077 3.026563,0 5.480077,2.453514 5.480077,5.480077 z"
+       transform="matrix(0.31195247,0,0,0.31195247,447.28726,836.4831)" />
+    <path
+       transform="matrix(0.31195247,0,0,0.31195247,503.28726,832.4831)"
+       d="m -46.315493,32.435127 c 0,3.026564 -2.453514,5.480078 -5.480077,5.480078 -3.026564,0 -5.480078,-2.453514 -5.480078,-5.480078 0,-3.026563 2.453514,-5.480077 5.480078,-5.480077 3.026563,0 5.480077,2.453514 5.480077,5.480077 z"
+       sodipodi:ry="5.4800777"
+       sodipodi:rx="5.4800777"
+       sodipodi:cy="32.435127"
+       sodipodi:cx="-51.79557"
+       id="path8205"
+       style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none"
+       sodipodi:type="arc" />
+    <path
+       sodipodi:type="arc"
+       style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none"
+       id="path8207"
+       sodipodi:cx="-51.79557"
+       sodipodi:cy="32.435127"
+       sodipodi:rx="5.4800777"
+       sodipodi:ry="5.4800777"
+       d="m -46.315493,32.435127 c 0,3.026564 -2.453514,5.480078 -5.480077,5.480078 -3.026564,0 -5.480078,-2.453514 -5.480078,-5.480078 0,-3.026563 2.453514,-5.480077 5.480078,-5.480077 3.026563,0 5.480077,2.453514 5.480077,5.480077 z"
+       transform="matrix(0.31195247,0,0,0.31195247,559.28726,828.4831)" />
+    <path
+       sodipodi:nodetypes="cc"
+       id="path8366"
+       d="m 347.72,906.50081 38,0"
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)" />
+    <g
+       id="content"
+       transform="matrix(1,0,0,-1,129.17119,1560.3664)"
+       xml:space="preserve"
+       stroke-miterlimit="10.433"
+       font-style="normal"
+       font-variant="normal"
+       font-weight="normal"
+       font-stretch="normal"
+       font-size-adjust="none"
+       letter-spacing="normal"
+       word-spacing="normal"
+       ns0:text="$\\mathit{opc}$\n\n\n"
+       ns0:preamble=""
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;fill:none;stroke:#000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0">
+<path
+   style="fill:#000000;stroke-width:0"
+   d="m 228.5,660 0,0.09 0,0.09 -0.01,0.08 -0.01,0.08 -0.02,0.09 -0.02,0.07 -0.02,0.08 -0.02,0.08 -0.03,0.07 -0.03,0.07 -0.03,0.07 -0.04,0.07 -0.04,0.06 -0.04,0.06 -0.04,0.06 -0.05,0.05 -0.05,0.06 -0.05,0.05 -0.05,0.04 -0.06,0.05 -0.06,0.04 -0.06,0.04 -0.06,0.03 -0.07,0.03 -0.07,0.03 -0.06,0.03 -0.08,0.02 -0.07,0.01 -0.07,0.02 -0.08,0.01 -0.08,0 -0.08,0.01 c -1.24,0 -2.52,-1.42 -2.52,-2.87 0,-1.03 0.63,-1.65 1.45,-1.65 v 0.22 c -0.39,0 -0.75,0.31 -0.75,1.03 0,0.5 0.26,1.6 0.57,2.14 0.37,0.61 0.85,0.91 1.24,0.91 0.49,0 0.77,-0.44 0.77,-1.03 0,-0.43 -0.22,-1.45 -0.54,-2.05 -0.29,-0.55 -0.8,-1 -1.29,-1 h 0 v -0.22 c 1.24,0 2.52,1.42 2.52,2.88 z"
+   id="path8510" />
+<path
+   style="fill:#000000;stroke-width:0"
+   d="m 229.42,655.96 -0.01,-0.03 0,-0.03 -0.01,-0.02 -0.01,-0.03 -0.01,-0.02 -0.01,-0.02 0,-0.02 -0.01,-0.02 -0.01,-0.01 -0.01,-0.02 -0.01,-0.01 -0.01,-0.02 -0.02,-0.01 -0.01,-0.01 -0.01,-0.01 -0.02,-0.01 -0.01,-0.01 -0.02,-0.01 -0.01,0 -0.02,-0.01 -0.02,0 -0.02,-0.01 -0.02,0 -0.03,-0.01 -0.02,0 -0.03,0 -0.03,0 -0.02,-0.01 -0.03,0 -0.04,0 -0.03,0 -0.04,0 c -0.09,0 -0.21,0 -0.21,-0.19 0,-0.07 0.05,-0.12 0.12,-0.12 0.27,0 0.56,0.03 0.84,0.03 0.32,0 0.66,-0.03 0.97,-0.03 0.06,0 0.19,0 0.19,0.19 0,0.12 -0.1,0.12 -0.24,0.12 -0.51,0 -0.51,0.06 -0.51,0.16 0,0.06 0.07,0.32 0.11,0.48 l 0.36,1.45 c 0.07,-0.17 0.32,-0.58 0.83,-0.58 l -0.01,0.22 c -0.57,0 -0.67,0.85 -0.67,0.93 0,0.03 0.01,0.06 0.03,0.14 l 0.47,1.88 c 0.08,0.34 0.69,1.13 1.24,1.13 0.45,0 0.55,-0.57 0.55,-0.89 0,-0.42 -0.27,-1.6 -0.56,-2.24 -0.12,-0.25 -0.55,-0.95 -1.06,-0.95 l 0.01,-0.22 c 1.09,0 2.28,1.48 2.28,2.96 0,1.07 -0.6,1.56 -1.2,1.56 -0.49,0 -0.92,-0.36 -1.2,-0.7 -0.12,0.58 -0.57,0.7 -0.82,0.7 -0.36,0 -0.56,-0.23 -0.72,-0.53 -0.19,-0.4 -0.32,-0.99 -0.32,-1.01 0,-0.1 0.1,-0.1 0.15,-0.1 0.13,0 0.14,0.01 0.19,0.23 0.18,0.7 0.37,1.19 0.68,1.19 0.26,0 0.26,-0.29 0.26,-0.4 0,-0.06 0,-0.22 -0.07,-0.5 z"
+   id="path8512" />
+<path
+   style="fill:#000000;stroke-width:0"
+   d="m 237.44,660.99 -0.02,-0.01 -0.02,0 -0.03,0 -0.02,-0.01 -0.02,0 -0.02,-0.01 -0.02,0 -0.01,-0.01 -0.02,-0.01 -0.02,0 -0.01,-0.01 -0.02,-0.01 -0.02,-0.01 -0.01,0 -0.01,-0.01 -0.02,-0.01 -0.01,-0.01 -0.01,-0.01 -0.01,-0.01 -0.02,-0.01 -0.01,-0.01 -0.01,-0.01 -0.02,-0.02 -0.01,-0.02 -0.02,-0.02 -0.01,-0.02 -0.01,-0.02 -0.02,-0.02 -0.01,-0.02 0,-0.02 -0.01,-0.02 -0.01,-0.02 0,-0.02 -0.01,-0.02 0,-0.01 0,-0.02 0,-0.01 -0.01,-0.01 0,-0.02 0,0 0,-0.01 0,0 0,-0.01 0,0 0,0 c 0,-0.16 0.11,-0.32 0.34,-0.32 0.27,0 0.51,0.22 0.51,0.6 0,0.49 -0.43,0.86 -1.07,0.86 -1.23,0 -2.52,-1.42 -2.52,-2.87 0,-0.99 0.59,-1.65 1.47,-1.65 1.27,0 2.1,1 2.1,1.15 0,0.05 -0.08,0.16 -0.16,0.16 -0.04,0 -0.05,-0.01 -0.13,-0.11 -0.74,-0.94 -1.62,-0.98 -1.79,-0.98 -0.54,0 -0.79,0.45 -0.79,1.03 0,0.53 0.27,1.57 0.53,2.05 0.36,0.65 0.86,1 1.3,1 0.11,0 0.56,-0.02 0.71,-0.43 z"
+   id="path8514" />
+</g>    <g
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;fill:none;stroke:#000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+       ns0:preamble=""
+       ns0:text="$\\mathit{input}$\n\n\n"
+       word-spacing="normal"
+       letter-spacing="normal"
+       font-size-adjust="none"
+       font-stretch="normal"
+       font-weight="normal"
+       font-variant="normal"
+       font-style="normal"
+       stroke-miterlimit="10.433"
+       xml:space="preserve"
+       transform="matrix(1,0,0,-1,125.08119,1476.4737)"
+       id="g8796">
+<path
+   id="path8798"
+   d="m 226.73,658.66 0,0 0,0.01 0,0 0,0 0,0.01 0,0 0,0.01 0,0 0,0 -0.01,0.01 0,0 0,0 0,0.01 0,0 0,0 0,0 -0.01,0.01 0,0 0,0 0,0.01 -0.01,0 0,0.01 -0.01,0 0,0 -0.01,0 0,0.01 -0.01,0 -0.01,0 0,0 -0.01,0 0,0 -0.01,0 -0.01,0.01 0,0 -0.01,0 -0.01,0 -0.02,0 -0.01,0 c -0.13,0 -0.13,-0.02 -0.17,-0.17 -0.08,-0.29 -0.35,-1.25 -0.92,-1.25 -0.09,0 -0.22,0.01 -0.22,0.28 0,0.26 0.13,0.59 0.25,0.96 l 0.64,1.7 c 0.1,0.29 0.12,0.37 0.12,0.56 0,0.55 -0.38,0.8 -0.74,0.8 -0.94,0 -1.28,-1.49 -1.28,-1.54 0,-0.1 0.1,-0.1 0.15,-0.1 0.13,0 0.14,0.02 0.18,0.16 0.09,0.33 0.35,1.26 0.92,1.26 0.11,0 0.22,-0.05 0.22,-0.28 0,-0.24 -0.11,-0.53 -0.18,-0.72 l -0.29,-0.83 c -0.13,-0.32 -0.25,-0.65 -0.37,-0.98 -0.14,-0.38 -0.18,-0.49 -0.18,-0.69 0,-0.39 0.24,-0.8 0.75,-0.8 0.94,0 1.27,1.5 1.27,1.54 z"
+   style="fill:#000000;stroke-width:0" />
+<path
+   id="path8800"
+   d="m 226.68,663.44 0,0.01 0,0.01 0,0.01 0,0.01 0,0.01 -0.01,0.01 0,0.02 0,0.02 -0.01,0.02 -0.01,0.02 0,0.02 -0.01,0.01 -0.01,0.02 -0.01,0.01 -0.01,0.01 -0.01,0.01 -0.01,0.02 -0.01,0.01 -0.02,0.01 -0.01,0.01 -0.01,0 -0.02,0.01 -0.01,0.01 -0.01,0.01 -0.02,0 -0.01,0.01 -0.02,0 -0.01,0.01 -0.02,0 -0.01,0 -0.01,0 -0.02,0.01 -0.01,0 -0.01,0 -0.02,0 c -0.21,0 -0.48,-0.2 -0.48,-0.48 0,-0.25 0.2,-0.33 0.34,-0.33 0.2,0 0.48,0.19 0.48,0.48 z"
+   style="fill:#000000;stroke-width:0" />
+<path
+   id="path8802"
+   d="m 228.78,658.98 0.02,0.08 0.02,0.08 0.02,0.08 0.02,0.08 0.02,0.08 0.02,0.08 0.02,0.08 0.02,0.08 c 0.13,0.51 0.13,0.52 0.3,0.81 0.13,0.24 0.58,0.99 1.34,0.99 0.44,0 0.46,-0.45 0.46,-0.66 0,-0.62 -0.44,-1.8 -0.58,-2.2 -0.13,-0.34 -0.16,-0.43 -0.16,-0.64 0,-0.44 0.28,-0.8 0.76,-0.8 0.92,0 1.26,1.49 1.26,1.54 0,0.1 -0.08,0.1 -0.15,0.1 -0.13,0 -0.13,-0.02 -0.17,-0.17 -0.07,-0.27 -0.34,-1.25 -0.92,-1.25 -0.21,0 -0.22,0.15 -0.22,0.29 0,0.25 0.1,0.51 0.18,0.75 0.2,0.53 0.61,1.64 0.61,2.22 0,0.82 -0.55,1.04 -1.04,1.04 -0.82,0 -1.3,-0.6 -1.43,-0.79 -0.06,0.49 -0.4,0.79 -0.83,0.79 -0.36,0 -0.56,-0.23 -0.72,-0.53 -0.19,-0.4 -0.32,-0.99 -0.32,-1.01 0,-0.1 0.1,-0.1 0.15,-0.1 0.13,0 0.14,0.01 0.19,0.23 0.18,0.7 0.37,1.19 0.68,1.19 0.26,0 0.26,-0.29 0.26,-0.4 0,-0.16 -0.03,-0.35 -0.07,-0.51 l -0.75,-2.99 c -0.02,-0.06 -0.03,-0.11 -0.03,-0.14 0,-0.11 0.08,-0.26 0.28,-0.26 0.12,0 0.29,0.07 0.36,0.26 z"
+   style="fill:#000000;stroke-width:0" />
+<path
+   id="path8804"
+   d="m 232.98,655.96 0,-0.03 -0.01,-0.03 -0.01,-0.02 -0.01,-0.03 0,-0.02 -0.01,-0.02 -0.01,-0.02 -0.01,-0.02 -0.01,-0.01 -0.01,-0.02 -0.01,-0.01 -0.01,-0.02 -0.01,-0.01 -0.02,-0.01 -0.01,-0.01 -0.01,-0.01 -0.02,-0.01 -0.02,-0.01 -0.01,0 -0.02,-0.01 -0.02,0 -0.02,-0.01 -0.02,0 -0.03,-0.01 -0.02,0 -0.03,0 -0.02,0 -0.03,-0.01 -0.03,0 -0.03,0 -0.04,0 -0.03,0 c -0.09,0 -0.21,0 -0.21,-0.19 0,-0.07 0.05,-0.12 0.12,-0.12 0.27,0 0.55,0.03 0.83,0.03 0.32,0 0.66,-0.03 0.97,-0.03 0.06,0 0.19,0 0.19,0.19 0,0.12 -0.1,0.12 -0.24,0.12 -0.51,0 -0.51,0.06 -0.51,0.16 0,0.06 0.07,0.32 0.11,0.48 l 0.36,1.45 c 0.07,-0.17 0.32,-0.58 0.84,-0.58 l -0.01,0.22 c -0.58,0 -0.68,0.85 -0.68,0.93 0,0.03 0.01,0.06 0.03,0.14 l 0.47,1.88 c 0.08,0.34 0.69,1.13 1.24,1.13 0.45,0 0.55,-0.57 0.55,-0.89 0,-0.42 -0.27,-1.6 -0.56,-2.24 -0.12,-0.25 -0.54,-0.95 -1.05,-0.95 l 0.01,-0.22 c 1.08,0 2.27,1.48 2.27,2.96 0,1.07 -0.6,1.56 -1.2,1.56 -0.48,0 -0.91,-0.36 -1.2,-0.7 -0.12,0.58 -0.57,0.7 -0.82,0.7 -0.36,0 -0.56,-0.23 -0.72,-0.53 -0.19,-0.4 -0.32,-0.99 -0.32,-1.01 0,-0.1 0.1,-0.1 0.15,-0.1 0.13,0 0.14,0.01 0.19,0.23 0.18,0.7 0.37,1.19 0.68,1.19 0.26,0 0.26,-0.29 0.26,-0.4 0,-0.06 0,-0.22 -0.07,-0.5 z"
+   style="fill:#000000;stroke-width:0" />
+<path
+   id="path8806"
+   d="m 242.29,661.13 0,0.01 0.01,0.01 0,0.01 0,0.01 0.01,0.01 0,0.01 0,0.01 0,0.01 0,0 0.01,0.01 0,0 0,0.01 0,0 0,0 0,0.01 0,0 0,0 0,0.01 0,0 0,0 0,0.01 0,0 0,0 0,0.01 c 0,0.11 -0.08,0.26 -0.28,0.26 -0.3,0 -0.37,-0.29 -0.39,-0.37 l -0.72,-2.91 c -0.05,-0.18 -0.05,-0.2 -0.14,-0.33 -0.19,-0.28 -0.48,-0.58 -0.92,-0.58 -0.45,0 -0.54,0.44 -0.54,0.77 0,0.61 0.33,1.5 0.58,2.18 0.08,0.21 0.13,0.35 0.13,0.54 0,0.5 -0.33,0.81 -0.76,0.81 -0.92,0 -1.27,-1.48 -1.27,-1.54 0,-0.1 0.1,-0.1 0.15,-0.1 0.13,0 0.14,0.02 0.18,0.16 0.07,0.31 0.34,1.26 0.92,1.26 0.11,0 0.22,-0.03 0.22,-0.29 0,-0.24 -0.1,-0.51 -0.24,-0.9 -0.26,-0.7 -0.52,-1.43 -0.52,-1.95 0,-0.87 0.58,-1.16 1.12,-1.16 0.53,0 0.87,0.3 1.11,0.6 0.17,-0.54 0.6,-0.6 0.79,-0.6 0.37,0 0.58,0.25 0.73,0.56 0.18,0.38 0.3,0.96 0.3,0.98 0,0.1 -0.08,0.1 -0.15,0.1 -0.12,0 -0.13,-0.01 -0.19,-0.23 -0.14,-0.56 -0.33,-1.19 -0.67,-1.19 -0.26,0 -0.26,0.27 -0.26,0.41 0,0.07 0,0.23 0.07,0.51 z"
+   style="fill:#000000;stroke-width:0" />
+<path
+   id="path8808"
+   d="m 245.12,661.22 h 0.84 c 0.17,0 0.28,0 0.28,0.19 0,0.12 -0.09,0.12 -0.25,0.12 h -0.79 l 0.37,1.47 c 0.04,0.14 0.04,0.16 0.04,0.21 0,0.21 -0.17,0.26 -0.27,0.26 -0.25,0 -0.35,-0.21 -0.39,-0.36 l -0.39,-1.58 h -0.85 c -0.17,0 -0.28,0 -0.28,-0.19 0,-0.12 0.09,-0.12 0.25,-0.12 h 0.8 l -0.72,-2.86 c -0.01,-0.04 -0.05,-0.2 -0.05,-0.34 0,-0.5 0.33,-0.9 0.85,-0.9 1.01,0 1.51,1.49 1.51,1.54 0,0.1 -0.08,0.1 -0.14,0.1 -0.13,0 -0.13,-0.01 -0.2,-0.19 -0.18,-0.48 -0.58,-1.23 -1.15,-1.23 -0.27,0 -0.27,0.25 -0.27,0.41 0,0.07 0,0.23 0.07,0.51 z"
+   style="fill:#000000;stroke-width:0" />
+</g>    <g
+       id="g9098"
+       transform="matrix(1,0,0,-1,124.53619,1551.9523)"
+       xml:space="preserve"
+       stroke-miterlimit="10.433"
+       font-style="normal"
+       font-variant="normal"
+       font-weight="normal"
+       font-stretch="normal"
+       font-size-adjust="none"
+       letter-spacing="normal"
+       word-spacing="normal"
+       ns0:text="$\\mathit{addrs}$\n\n\n"
+       ns0:preamble=""
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;fill:none;stroke:#000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0">
+<path
+   style="fill:#000000;stroke-width:0"
+   d="m 226.91,657.82 0.01,-0.04 0.01,-0.05 0.02,-0.04 0.01,-0.04 0.02,-0.04 0.02,-0.04 0.02,-0.03 0.02,-0.03 0.02,-0.04 0.02,-0.03 0.02,-0.03 0.03,-0.03 0.02,-0.02 0.03,-0.03 0.03,-0.02 0.02,-0.02 0.03,-0.02 0.03,-0.02 0.03,-0.02 0.03,-0.02 0.03,-0.01 0.03,-0.01 0.03,-0.02 0.04,-0.01 0.03,-0.01 0.03,0 0.03,-0.01 0.04,-0.01 0.03,0 0.03,0 0.03,-0.01 0.04,0 c 0.36,0 0.57,0.25 0.72,0.56 0.18,0.38 0.3,0.96 0.3,0.98 0,0.1 -0.08,0.1 -0.15,0.1 -0.12,0 -0.13,-0.01 -0.19,-0.23 -0.14,-0.56 -0.32,-1.19 -0.66,-1.19 -0.26,0 -0.26,0.27 -0.26,0.41 0,0.07 0,0.23 0.07,0.51 l 0.67,2.71 c 0.04,0.14 0.04,0.16 0.04,0.21 0,0.21 -0.16,0.26 -0.27,0.26 -0.31,0 -0.38,-0.34 -0.39,-0.39 -0.19,0.43 -0.51,0.59 -0.83,0.59 v -0.22 c 0.44,0 0.69,-0.52 0.69,-0.94 0,-0.02 -0.01,-0.07 -0.03,-0.13 h 0 l -0.47,-1.88 c -0.08,-0.32 -0.7,-1.13 -1.25,-1.13 -0.46,0 -0.54,0.59 -0.54,0.89 0,0.5 0.3,1.66 0.48,2.08 0.25,0.61 0.71,1.11 1.12,1.11 v 0.22 c -1.11,0 -2.28,-1.52 -2.28,-2.97 0,-0.85 0.46,-1.55 1.2,-1.55 0.36,0 0.8,0.21 1.2,0.7 z"
+   id="path9100" />
+<path
+   style="fill:#000000;stroke-width:0"
+   d="m 234.07,663.9 0,0 0.01,0 0,0.01 0,0 0,0 0,0.01 0,0 0,0.01 0,0 0.01,0.01 0,0.01 0,0.01 0,0.01 0.01,0.01 0,0 0,0 0,0.01 0,0 0,0.01 0,0 0,0.01 0,0 0,0 0,0.01 0,0 0,0 0,0 0,0.01 c 0,0.09 -0.06,0.12 -0.14,0.12 -0.03,0 -0.12,-0.01 -0.16,-0.02 l -0.98,-0.08 c -0.12,-0.01 -0.23,-0.02 -0.23,-0.21 0,-0.11 0.1,-0.11 0.24,-0.11 0.48,0 0.5,-0.07 0.5,-0.17 0,-0.03 -0.03,-0.16 -0.03,-0.17 l -0.58,-2.33 c -0.15,0.31 -0.42,0.58 -0.84,0.58 v -0.22 c 0.08,0 0.31,-0.01 0.49,-0.29 0.1,-0.16 0.2,-0.45 0.2,-0.64 0,-0.03 -0.01,-0.07 -0.03,-0.13 l -0.48,-1.91 c -0.08,-0.31 -0.69,-1.11 -1.23,-1.11 -0.47,0 -0.55,0.59 -0.55,0.89 0,0.5 0.31,1.66 0.49,2.08 0.25,0.61 0.7,1.11 1.11,1.11 v 0.22 c -1.1,0 -2.28,-1.52 -2.28,-2.97 0,-0.85 0.46,-1.55 1.21,-1.55 0.35,0 0.79,0.21 1.19,0.7 0.11,-0.49 0.48,-0.7 0.83,-0.7 0.37,0 0.58,0.25 0.73,0.56 0.18,0.38 0.29,0.96 0.29,0.98 0,0.1 -0.08,0.1 -0.14,0.1 -0.12,0 -0.13,-0.01 -0.19,-0.23 -0.14,-0.56 -0.33,-1.19 -0.67,-1.19 -0.26,0 -0.26,0.27 -0.26,0.41 0,0.07 0,0.22 0.06,0.46 z"
+   id="path9102" />
+<path
+   style="fill:#000000;stroke-width:0"
+   d="m 239.17,663.9 0,0 0,0 0,0.01 0,0 0,0 0,0.01 0,0 0.01,0.01 0,0 0,0.01 0,0.01 0,0.01 0.01,0.01 0,0.01 0,0 0,0 0,0.01 0,0 0,0.01 0,0 0,0.01 0.01,0 0,0 0,0.01 0,0 0,0 0,0 0,0.01 c 0,0.09 -0.06,0.12 -0.14,0.12 -0.03,0 -0.13,-0.01 -0.16,-0.02 l -0.99,-0.08 c -0.12,-0.01 -0.23,-0.02 -0.23,-0.21 0,-0.11 0.1,-0.11 0.24,-0.11 0.48,0 0.5,-0.07 0.5,-0.17 0,-0.03 -0.03,-0.16 -0.03,-0.17 l -0.58,-2.33 c -0.15,0.31 -0.42,0.58 -0.83,0.58 v -0.22 c 0.07,0 0.3,-0.01 0.48,-0.29 0.1,-0.16 0.2,-0.45 0.2,-0.64 0,-0.03 -0.01,-0.07 -0.03,-0.13 l -0.48,-1.91 c -0.08,-0.31 -0.68,-1.11 -1.23,-1.11 -0.47,0 -0.55,0.59 -0.55,0.89 0,0.5 0.31,1.66 0.49,2.08 0.25,0.61 0.71,1.11 1.12,1.11 v 0.22 c -1.11,0 -2.29,-1.52 -2.29,-2.97 0,-0.85 0.46,-1.55 1.21,-1.55 0.36,0 0.8,0.21 1.19,0.7 0.11,-0.49 0.48,-0.7 0.83,-0.7 0.37,0 0.58,0.25 0.73,0.56 0.18,0.38 0.3,0.96 0.3,0.98 0,0.1 -0.08,0.1 -0.15,0.1 -0.12,0 -0.13,-0.01 -0.19,-0.23 -0.14,-0.56 -0.33,-1.19 -0.67,-1.19 -0.26,0 -0.26,0.27 -0.26,0.41 0,0.07 0,0.22 0.06,0.46 z"
+   id="path9104" />
+<path
+   style="fill:#000000;stroke-width:0"
+   d="m 241.28,660.1 0,0 0,0.01 0,0 0.01,0.01 0,0.01 0,0.01 0.01,0.01 0,0.02 0.01,0.01 0.01,0.02 0,0.02 0.01,0.01 0.02,0.05 0.02,0.04 0.02,0.05 0.03,0.05 0.02,0.05 0.03,0.06 0.04,0.06 0.03,0.06 0.04,0.06 0.04,0.06 0.04,0.06 0.05,0.06 0.05,0.06 0.05,0.06 0.05,0.05 0.05,0.06 0.06,0.05 0.06,0.05 0.06,0.04 0.07,0.04 0.03,0.02 0.03,0.01 0.04,0.02 0.03,0.01 0.04,0.01 0.04,0.02 0.03,0 0.04,0.01 0.04,0.01 0.04,0 0.04,0.01 0.04,0 c 0.05,0 0.32,0 0.52,-0.14 -0.35,-0.11 -0.38,-0.43 -0.38,-0.48 0,-0.13 0.1,-0.32 0.35,-0.32 0.18,0 0.49,0.14 0.49,0.53 0,0.52 -0.65,0.63 -0.98,0.63 -0.68,0 -1.04,-0.5 -1.2,-0.72 -0.11,0.53 -0.5,0.72 -0.83,0.72 -0.36,0 -0.56,-0.23 -0.71,-0.53 -0.19,-0.4 -0.32,-0.99 -0.32,-1.01 0,-0.1 0.1,-0.1 0.15,-0.1 0.13,0 0.14,0.01 0.19,0.23 0.17,0.7 0.36,1.19 0.67,1.19 0.26,0 0.26,-0.29 0.26,-0.4 0,-0.16 -0.03,-0.35 -0.07,-0.51 l -0.75,-2.99 c -0.01,-0.06 -0.03,-0.11 -0.03,-0.14 0,-0.11 0.08,-0.26 0.28,-0.26 0.3,0 0.37,0.29 0.39,0.37 z"
+   id="path9106" />
+<path
+   style="fill:#000000;stroke-width:0"
+   d="m 245.37,659.2 0.08,-0.02 0.08,-0.02 0.09,-0.02 0.04,-0.01 0.03,-0.02 0.04,-0.01 0.04,-0.01 0.04,-0.02 0.03,-0.01 0.04,-0.02 0.03,-0.01 0.04,-0.02 0.03,-0.02 0.03,-0.02 0.03,-0.02 0.03,-0.02 0.02,-0.03 0.03,-0.02 0.02,-0.03 0.02,-0.03 0.02,-0.03 0.02,-0.04 0.01,-0.03 0.02,-0.04 0.01,-0.04 0.01,-0.04 0,-0.05 0,-0.02 0.01,-0.02 0,-0.03 0,-0.02 c 0,-0.32 -0.27,-1.12 -1.3,-1.12 -0.22,0 -0.8,0.05 -0.95,0.56 0.5,0.05 0.5,0.47 0.5,0.49 0,0.19 -0.13,0.32 -0.33,0.32 -0.23,0 -0.51,-0.17 -0.51,-0.62 0,-0.61 0.57,-0.97 1.28,-0.97 1.5,0 1.87,1.22 1.87,1.68 0,0.86 -0.77,1.04 -1.18,1.13 -0.28,0.06 -0.64,0.14 -0.64,0.57 0,0.24 0.21,0.92 1.01,0.92 0.27,0 0.64,-0.1 0.75,-0.49 -0.32,-0.04 -0.4,-0.31 -0.4,-0.41 0,-0.11 0.06,-0.28 0.3,-0.28 0.16,0 0.42,0.12 0.42,0.55 0,0.46 -0.4,0.85 -1.06,0.85 -1.17,0 -1.58,-0.96 -1.58,-1.48 0,-0.77 0.65,-0.9 0.93,-0.96 z"
+   id="path9108" />
+</g>    <g
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;fill:none;stroke:#000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+       ns0:preamble=""
+       ns0:text="$0$\n\n\n\n"
+       word-spacing="normal"
+       letter-spacing="normal"
+       font-size-adjust="none"
+       font-stretch="normal"
+       font-weight="normal"
+       font-variant="normal"
+       font-style="normal"
+       stroke-miterlimit="10.433"
+       xml:space="preserve"
+       transform="matrix(1,0,0,-1,158.33474,1503.2669)"
+       id="g9419">
+<path
+   style="fill:#000000;stroke-width:0"
+   id="path9421"
+   d="m 228.01,660.42 0,0.15 0,0.15 0,0.15 -0.01,0.15 -0.01,0.15 -0.01,0.14 -0.01,0.15 -0.02,0.15 -0.03,0.15 -0.02,0.14 -0.04,0.15 -0.03,0.14 -0.05,0.14 -0.05,0.14 -0.05,0.14 -0.03,0.07 -0.03,0.07 c -0.46,0.96 -1.28,1.12 -1.7,1.12 -0.6,0 -1.32,-0.26 -1.73,-1.19 -0.32,-0.69 -0.37,-1.46 -0.37,-2.26 0,-0.75 0.04,-1.64 0.45,-2.4 0.43,-0.81 1.16,-1.01 1.64,-1.01 v 0.22 c -0.39,0 -0.97,0.25 -1.15,1.21 -0.11,0.6 -0.11,1.51 -0.11,2.1 0,0.64 0,1.3 0.08,1.83 0.19,1.19 0.93,1.28 1.18,1.28 0.33,0 0.99,-0.18 1.18,-1.17 0.1,-0.56 0.1,-1.31 0.1,-1.94 0,-0.75 0,-1.43 -0.11,-2.06 -0.15,-0.95 -0.72,-1.25 -1.17,-1.25 h 0 v -0.22 c 0.54,0 1.3,0.21 1.74,1.16 0.31,0.69 0.36,1.46 0.36,2.25 z" />
+</g>    <g
+       id="g9731"
+       transform="matrix(1,0,0,-1,152.13,1498.0902)"
+       xml:space="preserve"
+       stroke-miterlimit="10.433"
+       font-style="normal"
+       font-variant="normal"
+       font-weight="normal"
+       font-stretch="normal"
+       font-size-adjust="none"
+       letter-spacing="normal"
+       word-spacing="normal"
+       ns0:text="$1$\n\n\n\n\n"
+       ns0:preamble=""
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;fill:none;stroke:#000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0">
+<path
+   style="fill:#000000;stroke-width:0"
+   d="m 226.36,663.61 0,0.01 0,0.01 0,0.01 0,0.01 0,0.01 0,0.01 0,0.01 0,0.01 0,0.01 0,0.01 0,0 0,0.01 0,0.01 0,0.01 0,0 0,0.01 0,0.01 0,0 -0.01,0.01 0,0.02 0,0.01 0,0.01 -0.01,0 0,0.01 -0.01,0.01 0,0 -0.01,0.01 -0.01,0 0,0.01 -0.01,0 -0.01,0 0,0.01 -0.01,0 0,0 -0.01,0 -0.01,0 0,0 -0.01,0 0,0 -0.01,0 -0.01,0.01 -0.01,0 0,0 -0.01,0 -0.01,0 -0.01,0 -0.01,0 -0.01,0 -0.01,0 -0.01,0 -0.01,0 -0.01,0 c -0.62,-0.64 -1.49,-0.64 -1.81,-0.64 v -0.31 c 0.2,0 0.79,0 1.3,0.26 v -5.16 c 0,-0.36 -0.03,-0.48 -0.92,-0.48 h -0.32 v -0.31 c 0.35,0.03 1.21,0.03 1.61,0.03 0.4,0 1.27,0 1.62,-0.03 v 0.31 h -0.32 c -0.9,0 -0.93,0.11 -0.93,0.48 z"
+   id="path9733" />
+</g>    <g
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;fill:none;stroke:#000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+       ns0:preamble=""
+       ns0:text="$\\mathbf{cpu}$\n\n\n\n\n"
+       word-spacing="normal"
+       letter-spacing="normal"
+       font-size-adjust="none"
+       font-stretch="normal"
+       font-weight="normal"
+       font-variant="normal"
+       font-style="normal"
+       stroke-miterlimit="10.433"
+       xml:space="preserve"
+       transform="matrix(1,0,0,-1,256.305,1469.5703)"
+       id="g10049">
+<path
+   id="path10051"
+   d="m 227.02,661.29 -0.02,-0.02 -0.01,-0.01 -0.02,-0.02 -0.01,-0.01 -0.01,-0.02 -0.02,-0.02 -0.01,-0.01 -0.01,-0.02 -0.01,-0.02 -0.01,-0.01 0,-0.02 -0.01,-0.01 -0.01,-0.02 -0.01,-0.02 0,-0.01 -0.01,-0.02 0,-0.01 -0.01,-0.02 0,-0.01 0,-0.02 -0.01,-0.01 0,-0.02 0,-0.01 0,-0.01 -0.01,-0.02 0,-0.01 0,-0.01 0,-0.01 0,-0.01 0,-0.01 0,-0.01 0,-0.01 c 0,-0.44 0.35,-0.63 0.62,-0.63 0.31,0 0.63,0.21 0.63,0.63 0,0.86 -1.16,0.92 -1.74,0.92 -1.78,0 -2.52,-1.15 -2.52,-2.31 0,-1.32 0.94,-2.27 2.47,-2.27 1.62,0 1.92,1.16 1.92,1.23 0,0.14 -0.15,0.14 -0.24,0.14 -0.18,0 -0.19,-0.02 -0.24,-0.15 -0.26,-0.63 -0.74,-0.82 -1.25,-0.82 -1.38,0 -1.38,1.47 -1.38,1.92 0,0.56 0,1.86 1.28,1.86 0.35,0 0.52,-0.03 0.65,-0.06 z"
+   style="fill:#000000;stroke-width:0" />
+<path
+   id="path10053"
+   d="m 230.72,657.62 0.04,-0.03 0.04,-0.03 0.04,-0.03 0.04,-0.03 0.04,-0.02 0.04,-0.03 0.04,-0.02 0.04,-0.03 0.04,-0.02 0.04,-0.02 0.04,-0.02 0.04,-0.01 0.04,-0.02 0.04,-0.02 0.04,-0.01 0.04,-0.01 0.04,-0.02 0.04,-0.01 0.08,-0.02 0.08,-0.01 0.08,-0.02 0.08,-0.01 0.08,0 0.08,-0.01 0.07,0 -0.11,0.36 c -0.14,0 -0.61,0 -1.05,0.54 -0.11,0.13 -0.11,0.14 -0.11,0.33 v 2.11 c 0,0.19 0.01,0.2 0.15,0.34 0.39,0.41 0.91,0.47 1.13,0.47 0.67,0 1.23,-0.61 1.23,-1.87 0,-1.4 -0.7,-1.92 -1.35,-1.92 l 0.11,-0.36 c 1.5,0 2.51,0.9 2.51,2.28 0,1.33 -0.9,2.27 -2.34,2.27 -0.75,0 -1.27,-0.31 -1.5,-0.49 v 0.49 l -1.77,-0.08 v -0.47 c 0.62,0 0.69,0 0.69,-0.38 v -5.02 h -0.69 v -0.47 c 0.28,0.01 0.88,0.03 1.26,0.03 0.39,0 0.97,-0.02 1.25,-0.03 v 0.47 h -0.68 z"
+   style="fill:#000000;stroke-width:0" />
+<path
+   id="path10055"
+   d="m 239.26,657.95 v -0.78 l 1.76,0.06 v 0.47 c -0.62,0 -0.69,0 -0.69,0.39 v 3.63 l -1.82,-0.08 v -0.47 c 0.62,0 0.69,0 0.69,-0.39 v -1.9 c 0,-0.82 -0.51,-1.35 -1.24,-1.35 -0.77,0 -0.8,0.25 -0.8,0.79 v 3.4 l -1.82,-0.08 v -0.47 c 0.62,0 0.69,0 0.69,-0.39 v -2.32 c 0,-1.07 0.81,-1.29 1.79,-1.29 0.26,0 0.98,0 1.44,0.78 z"
+   style="fill:#000000;stroke-width:0" />
+</g>  </g>
+</svg>