diff mbox series

[v3,3/4] dev-manual/devtool: add diagrams for the ide-sdk workflow and architecture

Message ID 20261015200726.2391599-4-adrian.freihofer@siemens.com
State New
Headers show
Series dev-manual/devtool: ide-sdk doc rewrite and Mermaid diagrams | expand

Commit Message

AdrianF Oct. 15, 2026, 8:06 p.m. UTC
From: Adrian Freihofer <adrian.freihofer@siemens.com>

Add three diagrams to the devtool ide-sdk section: a typical usage
workflow, the architecture of the SDK/IDE relationship, and a variant
of the architecture for the --nfs=rootfs-dbg mode.

The diagrams are Mermaid (.mmd) flowcharts, kept as the maintainable
source next to the pre-rendered SVGs that the documentation includes,
so building the documentation needs no Mermaid tooling. The command to
regenerate an SVG is documented at the top of each .mmd file. The
Mermaid configuration in each .mmd follows the documentation SVG
policy (GNOME HIG colors, Nimbus Roman 10pt text, rounded boxes, no
shadows).

Colors: blue for the SDK/build environment, purple for devtool-managed
workspace/NFS directories, brown for the target device, orange for
entry-point commands and green for editable/source elements.

The images are scaled with the page width but never beyond their
natural size, which is what the new max-natural-size CSS class is for.
The text then stays at the intended size.

Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com>
---
 documentation/dev-manual/devtool.rst          | 27 +++++-
 .../figures/devtool-ide-sdk-architecture.mmd  | 84 +++++++++++++++++
 .../figures/devtool-ide-sdk-architecture.svg  |  1 +
 .../devtool-ide-sdk-nfs-architecture.mmd      | 89 +++++++++++++++++++
 .../devtool-ide-sdk-nfs-architecture.svg      |  1 +
 .../figures/devtool-ide-sdk-workflow.mmd      | 74 +++++++++++++++
 .../figures/devtool-ide-sdk-workflow.svg      |  1 +
 .../sphinx-static/theme_overrides.css         |  5 ++
 8 files changed, 279 insertions(+), 3 deletions(-)
 create mode 100644 documentation/dev-manual/figures/devtool-ide-sdk-architecture.mmd
 create mode 100644 documentation/dev-manual/figures/devtool-ide-sdk-architecture.svg
 create mode 100644 documentation/dev-manual/figures/devtool-ide-sdk-nfs-architecture.mmd
 create mode 100644 documentation/dev-manual/figures/devtool-ide-sdk-nfs-architecture.svg
 create mode 100644 documentation/dev-manual/figures/devtool-ide-sdk-workflow.mmd
 create mode 100644 documentation/dev-manual/figures/devtool-ide-sdk-workflow.svg
diff mbox series

Patch

diff --git a/documentation/dev-manual/devtool.rst b/documentation/dev-manual/devtool.rst
index e182b427b..ba0435a46 100644
--- a/documentation/dev-manual/devtool.rst
+++ b/documentation/dev-manual/devtool.rst
@@ -480,7 +480,14 @@  directly in the IDE, independently of ``devtool ide-sdk`` and without calling
 configuration that points the IDE directly at the build tool, the
 cross-toolchain and the debugger provided by the SDK. ``devtool ide-sdk``
 only needs to be re-run later on, e.g. if a recipe's dependencies or its
-build configuration change.
+build configuration change:
+
+.. image:: figures/devtool-ide-sdk-workflow.svg
+   :width: 100%
+   :align: center
+   :class: max-natural-size
+
+.. centered:: Typical ``devtool ide-sdk`` use case
 
 Let's now take a closer look at how ``devtool ide-sdk`` and the generated IDE
 configuration make use of a regular ``bitbake`` environment as a SDK to
@@ -541,7 +548,14 @@  The same architecture also allows the IDE to be configured to use further
 tools beyond the build tool, cross-compiler and debugger, e.g.
 ``clang-tidy``: any such tool just needs to be added as a native tool in
 ``recipe-sysroot-native``, in the Yocto reproducible way, for
-``devtool ide-sdk`` to be able to point the IDE at it.
+``devtool ide-sdk`` to be able to point the IDE at it:
+
+.. image:: figures/devtool-ide-sdk-architecture.svg
+   :width: 100%
+   :align: center
+   :class: max-natural-size
+
+.. centered:: Architecture of ``devtool ide-sdk``
 
 To summarize the design described above, for supported build systems
 modified mode brings two key benefits:
@@ -713,7 +727,14 @@  This changes the relationship between the SDK, the target device and the
 debug symbols compared to the architecture described above: instead of a
 separate ``rootfs`` booted by the target and a ``rootfs-dbg`` only
 consulted by the debugger on the host, both the target and the debugger
-now use the same NFS-exported ``rootfs-dbg``.
+now use the same NFS-exported ``rootfs-dbg``:
+
+.. image:: figures/devtool-ide-sdk-nfs-architecture.svg
+   :width: 100%
+   :align: center
+   :class: max-natural-size
+
+.. centered:: Architecture of ``devtool ide-sdk --nfs=rootfs-dbg``
 
 Use ``--nfs-extract-dir=DIR`` to extract below ``DIR/<image-recipe>/``
 instead of the default location in the workspace, for example when the NFS
diff --git a/documentation/dev-manual/figures/devtool-ide-sdk-architecture.mmd b/documentation/dev-manual/figures/devtool-ide-sdk-architecture.mmd
new file mode 100644
index 000000000..2bbff25c4
--- /dev/null
+++ b/documentation/dev-manual/figures/devtool-ide-sdk-architecture.mmd
@@ -0,0 +1,84 @@ 
+---
+config:
+  theme: base
+  look: classic
+  htmlLabels: false
+  fontFamily: '"Nimbus Roman", "Times New Roman", Times, serif'
+  fontSize: 13.33
+  themeVariables:
+    primaryColor: "#99c1f1"
+    primaryBorderColor: "#62a0ea"
+    primaryTextColor: "#000000"
+    lineColor: "#000000"
+    edgeLabelBackground: "#ffffff"
+    clusterBkg: "#f6f5f4"
+    clusterBorder: "#c0bfbc"
+    titleColor: "#000000"
+    fontSize: 13.33px
+  themeCSS: |
+    .cluster-label tspan { font-weight: bold; }
+    rect { rx: 7.5px; ry: 7.5px; }
+  flowchart:
+    htmlLabels: false
+    useMaxWidth: false
+    curve: basis
+    padding: 10
+    nodeSpacing: 23
+    rankSpacing: 37
+    wrappingWidth: 300
+---
+%% Regenerate: npx -y @mermaid-js/mermaid-cli -b transparent -i devtool-ide-sdk-architecture.mmd -o devtool-ide-sdk-architecture.svg
+%%   && sed -i 's/<text /<text xml:space="preserve" /g' devtool-ide-sdk-architecture.svg
+%% (xml:space keeps the spaces between words in rsvg-convert, used for the PDF output)
+flowchart TB
+    idesdk["devtool ide-sdk<br/>(bitbake tinfoil client)"]
+    ideconfig[["IDE configuration<br/>(e.g. build tool preset,<br/>debugger launch config)"]]
+    ide["IDE (e.g. VSCode)"]
+    srcdir[["S = e.g. workspace/sources/&lt;recipe&gt;<br/>(source code, extracted by<br/>devtool modify, edited in the IDE)"]]
+
+    subgraph sdk["SDK (regular bitbake environment)"]
+        subgraph recipe_workdir["Recipe WORKDIR(s)"]
+            native_sysroot[["recipe-sysroot-native<br/>build tool (e.g. CMake)<br/>cross-compiler (e.g. &lt;arch&gt;-gcc)<br/>debugger (e.g. gdb)<br/>more tools..."]]
+            builddir[["B (build directory)<br/>build artifacts)"]]
+            sysroot[["recipe-sysroot<br/>(target headers & libs)"]]
+            destdir[["D = image<br/>(non-stripped, relocated rpath,<br/>managed by pseudo)"]]
+        end
+
+        subgraph image_workdir["Image WORKDIR"]
+            rootfsdbg[["rootfs-dbg<br/>(debug symbols of other<br/>recipes' shared libraries)"]]
+            rootfs[["rootfs<br/>(target root filesystem)"]]
+        end
+    end
+
+    subgraph target["Target device"]
+        appbin["Application binary<br/>(running)"]
+        debugserver["debug-server<br/>(e.g. gdbserver)"]
+    end
+
+    idesdk -->|generates| ideconfig
+    idesdk -->|"generates the SDK (via bitbake)"| sdk
+    ideconfig --> ide
+    ideconfig --> native_sysroot
+    ide -->|"calls directly, no bitbake needed"| native_sysroot
+    ide -->|"edit source"| srcdir
+    native_sysroot -->|"reads source from"| srcdir
+    native_sysroot -->|"builds in"| builddir
+    native_sysroot -.->|"--sysroot"| sysroot
+    builddir -->|install| destdir
+    destdir -->|"deploy (--strip)"| appbin
+    native_sysroot -->|"debug symbols:<br/>unstripped binary"| destdir
+    native_sysroot -->|"debug symbols:<br/>shared libraries"| rootfsdbg
+    native_sysroot -->|"remote debug<br/>protocol"| debugserver
+    debugserver -->|"attach / run"| appbin
+    rootfs -->|"installed on target"| target
+
+    style sdk fill:#f6f5f4,stroke:#3584e4,stroke-width:1px
+    style recipe_workdir fill:#ffffff,stroke:#62a0ea,stroke-width:1px
+    style image_workdir fill:#ffffff,stroke:#57e389,stroke-width:1px
+    style target fill:#f6f5f4,stroke:#b5835a,stroke-width:1px
+
+    classDef orange fill:#ffbe6f,stroke:#ffa348,stroke-width:1px,color:#000000;
+    classDef green fill:#8ff0a4,stroke:#57e389,stroke-width:1px,color:#000000;
+    classDef default fill:#99c1f1,stroke:#62a0ea,stroke-width:1px,color:#000000;
+    class idesdk orange;
+    class srcdir green;
diff --git a/documentation/dev-manual/figures/devtool-ide-sdk-architecture.svg b/documentation/dev-manual/figures/devtool-ide-sdk-architecture.svg
new file mode 100644
index 000000000..44b7bf5fb
--- /dev/null
+++ b/documentation/dev-manual/figures/devtool-ide-sdk-architecture.svg
@@ -0,0 +1 @@ 
+<svg id="my-svg" width="794.109130859375" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="flowchart" height="1602.60791015625" viewBox="4 3.999998092651367 794.109130859375 1602.60791015625" role="graphics-document document" aria-roledescription="flowchart-v2" style="background-color: transparent;"><style>#my-svg{font-family:"Nimbus Roman","Times New Roman",Times,serif;font-size:13.33px;fill:#000000;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#my-svg .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#my-svg .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#my-svg .error-icon{fill:hsl(32.7272727273, 75.8620689655%, 82.2549019608%);}#my-svg .error-text{fill:rgb(10.9224137931, 42.1293103448, 79.5775862068);stroke:rgb(10.9224137931, 42.1293103448, 79.5775862068);}#my-svg .edge-thickness-normal{stroke-width:1px;}#my-svg .edge-thickness-thick{stroke-width:3.5px;}#my-svg .edge-pattern-solid{stroke-dasharray:0;}#my-svg .edge-thickness-invisible{stroke-width:0;fill:none;}#my-svg .edge-pattern-dashed{stroke-dasharray:3;}#my-svg .edge-pattern-dotted{stroke-dasharray:2;}#my-svg .marker{fill:#000000;stroke:#000000;}#my-svg .marker.cross{stroke:#000000;}#my-svg svg{font-family:"Nimbus Roman","Times New Roman",Times,serif;font-size:13.33px;}#my-svg p{margin:0;}#my-svg .label{font-family:"Nimbus Roman","Times New Roman",Times,serif;color:#000000;}#my-svg .cluster-label text{fill:#000000;}#my-svg .cluster-label span{color:#000000;}#my-svg .cluster-label span p{background-color:transparent;}#my-svg .label text,#my-svg span{fill:#000000;color:#000000;}#my-svg .node rect,#my-svg .node circle,#my-svg .node ellipse,#my-svg .node polygon,#my-svg .node path{fill:#99c1f1;stroke:#62a0ea;stroke-width:1px;}#my-svg .rough-node .label text,#my-svg .node .label text,#my-svg .image-shape .label,#my-svg .icon-shape .label{text-anchor:middle;}#my-svg .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#my-svg .rough-node .label,#my-svg .node .label,#my-svg .image-shape .label,#my-svg .icon-shape .label{text-align:center;}#my-svg .node.clickable{cursor:pointer;}#my-svg .root .anchor path{fill:#000000!important;stroke-width:0;stroke:#000000;}#my-svg .arrowheadPath{fill:#0b0b0b;}#my-svg .edgePaths .path{stroke:#000000;stroke-width:1px;}#my-svg .flowchart-link{stroke:#000000;fill:none;}#my-svg .edgeLabel{background-color:#ffffff;text-align:center;}#my-svg .edgeLabel p{background-color:#ffffff;}#my-svg .edgeLabel rect{opacity:0.5;background-color:#ffffff;fill:#ffffff;}#my-svg .labelBkg{background-color:rgba(255, 255, 255, 0.5);}#my-svg .cluster rect{fill:#f6f5f4;stroke:#c0bfbc;stroke-width:1px;}#my-svg .cluster text{fill:#000000;}#my-svg .cluster span{color:#000000;}#my-svg .node .collapsed-indicator{fill:#c0bfbc;stroke:none;opacity:0.6;}#my-svg .node .collapsed-separator{stroke:#c0bfbc;stroke-width:0.75px;}#my-svg div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"Nimbus Roman","Times New Roman",Times,serif;font-size:12px;background:hsl(32.7272727273, 75.8620689655%, 82.2549019608%);border:1px solid hsl(32.7272727273, 35.8620689655%, 72.2549019608%);border-radius:2px;pointer-events:none;z-index:100;}#my-svg .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#000000;}#my-svg rect.text{fill:none;stroke-width:0;}#my-svg .icon-shape,#my-svg .image-shape{background-color:#ffffff;text-align:center;}#my-svg .icon-shape p,#my-svg .image-shape p{background-color:#ffffff;padding:2px;}#my-svg .icon-shape .label rect,#my-svg .image-shape .label rect{opacity:0.5;background-color:#ffffff;fill:#ffffff;}#my-svg .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#my-svg .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#my-svg .node .neo-node{stroke:#62a0ea;}#my-svg [data-look="neo"].node rect,#my-svg [data-look="neo"].cluster rect,#my-svg [data-look="neo"].node polygon{stroke:url(#my-svg-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg [data-look="neo"].swimlane.cluster rect{filter:none;}#my-svg [data-look="neo"].node path{stroke:url(#my-svg-gradient);stroke-width:1px;}#my-svg [data-look="neo"].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg [data-look="neo"].node .neo-line path{stroke:#62a0ea;filter:none;}#my-svg [data-look="neo"].node circle{stroke:url(#my-svg-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg [data-look="neo"].node circle .state-start{fill:#000000;}#my-svg [data-look="neo"].icon-shape .icon{fill:url(#my-svg-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg [data-look="neo"].icon-shape .icon-neo path{stroke:url(#my-svg-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg .cluster-label tspan{font-weight:bold;}#my-svg rect{rx:7.5px;ry:7.5px;}#my-svg :root{--mermaid-font-family:"Nimbus Roman","Times New Roman",Times,serif;}#my-svg .orange rect{fill:rgb(255, 190, 111)!important;stroke:rgb(255, 163, 72)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .orange polygon{fill:rgb(255, 190, 111)!important;stroke:rgb(255, 163, 72)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .orange ellipse{fill:rgb(255, 190, 111)!important;stroke:rgb(255, 163, 72)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .orange circle{fill:rgb(255, 190, 111)!important;stroke:rgb(255, 163, 72)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .orange path{fill:rgb(255, 190, 111)!important;stroke:rgb(255, 163, 72)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .orange tspan{fill:rgb(0, 0, 0)!important;}#my-svg .green rect{fill:rgb(143, 240, 164)!important;stroke:rgb(87, 227, 137)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .green polygon{fill:rgb(143, 240, 164)!important;stroke:rgb(87, 227, 137)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .green ellipse{fill:rgb(143, 240, 164)!important;stroke:rgb(87, 227, 137)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .green circle{fill:rgb(143, 240, 164)!important;stroke:rgb(87, 227, 137)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .green path{fill:rgb(143, 240, 164)!important;stroke:rgb(87, 227, 137)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .green tspan{fill:rgb(0, 0, 0)!important;}#my-svg .default rect{fill:rgb(153, 193, 241)!important;stroke:rgb(98, 160, 234)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .default polygon{fill:rgb(153, 193, 241)!important;stroke:rgb(98, 160, 234)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .default ellipse{fill:rgb(153, 193, 241)!important;stroke:rgb(98, 160, 234)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .default circle{fill:rgb(153, 193, 241)!important;stroke:rgb(98, 160, 234)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .default path{fill:rgb(153, 193, 241)!important;stroke:rgb(98, 160, 234)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .default tspan{fill:rgb(0, 0, 0)!important;}</style><g><marker id="my-svg_flowchart-v2-pointEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-pointStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="4.5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 5 L 10 10 L 10 0 z" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-pointEnd-margin" class="marker flowchart-v2" viewBox="0 0 11.5 14" refX="11.5" refY="7" markerUnits="userSpaceOnUse" markerWidth="10.5" markerHeight="14" orient="auto"><path d="M 0 0 L 11.5 7 L 0 14 z" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-pointStart-margin" class="marker flowchart-v2" viewBox="0 0 11.5 14" refX="1" refY="7" markerUnits="userSpaceOnUse" markerWidth="11.5" markerHeight="14" orient="auto"><polygon points="0,7 11.5,14 11.5,0" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="11" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-1" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleEnd-margin" class="marker flowchart-v2" viewBox="0 0 10 10" refY="5" refX="12.25" markerUnits="userSpaceOnUse" markerWidth="14" markerHeight="14" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleStart-margin" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-2" refY="5" markerUnits="userSpaceOnUse" markerWidth="14" markerHeight="14" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-crossEnd" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="12" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width: 2; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-crossStart" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="-1" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width: 2; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-crossEnd-margin" class="marker cross flowchart-v2" viewBox="0 0 15 15" refX="17.7" refY="7.5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto"><path d="M 1,1 L 14,14 M 1,14 L 14,1" class="arrowMarkerPath" style="stroke-width: 2.5;"/></marker><marker id="my-svg_flowchart-v2-crossStart-margin" class="marker cross flowchart-v2" viewBox="0 0 15 15" refX="-3.5" refY="7.5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto"><path d="M 1,1 L 14,14 M 1,14 L 14,1" class="arrowMarkerPath" style="stroke-width: 2.5; stroke-dasharray: 1, 0;"/></marker><g class="root"><g class="clusters"><g class="cluster" id="my-svg-target" data-look="classic"><rect style="fill:#f6f5f4 !important;stroke:#b5835a !important;stroke-width:1px !important" x="382.18953472319106" y="1337.2819843292236" width="254" height="261.3259963989258"/><g class="cluster-label" transform="translate(471.3668189639137, 1337.2819843292236)"><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Target</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> device</tspan></tspan></text></g></g></g><g class="cluster" id="my-svg-sdk" data-look="classic"><rect style="fill:#f6f5f4 !important;stroke:#3584e4 !important;stroke-width:1px !important" x="181.95500735328318" y="390.9889945983887" width="607.1796875000001" height="804.6299896240234"/><g class="cluster-label" transform="translate(384.09172610328324, 390.9889945983887)"><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">SDK</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> (regular</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> bitbake</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> environment)</tspan></tspan></text></g></g></g><g class="cluster" id="my-svg-image_workdir" data-look="classic"><rect style="fill:#ffffff !important;stroke:#57e389 !important;stroke-width:1px !important" x="230.5304389590309" y="1055.2929878234863" width="400.0228271484375" height="116.32599639892578"/><g class="cluster-label" transform="translate(377.07684093656997, 1055.2929878234863)"><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Image</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> WORKDIR</tspan></tspan></text></g></g></g><g class="cluster" id="my-svg-recipe_workdir" data-look="classic"><rect style="fill:#ffffff !important;stroke:#62a0ea !important;stroke-width:1px !important" x="205.95500735328318" y="441.9889945983887" width="559.1796875000001" height="464.64099884033203"/><g class="cluster-label" transform="translate(423.76360110328324, 441.9889945983887)"><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Recipe</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> WORKDIR(s)</tspan></tspan></text></g></g></g></g><g class="edges edgePaths"><path d="M229.5642224266416,60.66299819946289L229.5642224266416,73.59193038759742Q229.5642224266416,80.66299819946289 222.49315461477613,80.66299819946289L157.7147173218404,80.66299819946289Q150.64364950997492,80.66299819946289 150.64364950997492,87.73406601132837L150.64364950997492,153.6629981994629" id="my-svg-L_idesdk_ideconfig_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_idesdk_ideconfig_0" data-points="W3sieCI6MjI5LjU2NDIyMjQyNjY0MTYsInkiOjYwLjY2Mjk5ODE5OTQ2Mjg5fSx7IngiOjIyOS41NjQyMjI0MjY2NDE2LCJ5Ijo4MC42NjI5OTgxOTk0NjI4OX0seyJ4IjoxNTAuNjQzNjQ5NTA5OTc0OTIsInkiOjgwLjY2Mjk5ODE5OTQ2Mjg5fSx7IngiOjE1MC42NDM2NDk1MDk5NzQ5MiwieSI6MTU3LjY2Mjk5ODE5OTQ2Mjl9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M276.2308890933083,60.66299819946289L276.2308890933083,73.59193038759742Q276.2308890933083,80.66299819946289 283.30195690517377,80.66299819946289L453.7761270414176,80.66299819946289Q460.8471948532831,80.66299819946289 460.8471948532831,87.73406601132837L460.8471948532831,109.16299819946289L460.8471948532831,266.4889945983887L460.8471948532831,331.9889945983887L460.8471948532831,353.9179267865232Q460.8471948532831,360.9889945983887 453.7761270414176,360.9889945983887L378.33232516514863,360.9889945983887Q371.26125735328316,360.9889945983887 371.26125735328316,368.06006241025415L371.26125735328316,386.9889945983887" id="my-svg-L_idesdk_sdk_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_idesdk_sdk_0" data-points="W3sieCI6Mjc2LjIzMDg4OTA5MzMwODMsInkiOjYwLjY2Mjk5ODE5OTQ2Mjg5fSx7IngiOjI3Ni4yMzA4ODkwOTMzMDgzLCJ5Ijo4MC42NjI5OTgxOTk0NjI4OX0seyJ4Ijo0NjAuODQ3MTk0ODUzMjgzMSwieSI6ODAuNjYyOTk4MTk5NDYyODl9LHsieCI6NDYwLjg0NzE5NDg1MzI4MzEsInkiOjEwOS4xNjI5OTgxOTk0NjI4OX0seyJ4Ijo0NjAuODQ3MTk0ODUzMjgzMSwieSI6MjY2LjQ4ODk5NDU5ODM4ODd9LHsieCI6NDYwLjg0NzE5NDg1MzI4MzEsInkiOjMzMS45ODg5OTQ1OTgzODg3fSx7IngiOjQ2MC44NDcxOTQ4NTMyODMxLCJ5IjozNjAuOTg4OTk0NTk4Mzg4N30seyJ4IjozNzEuMjYxMjU3MzUzMjgzMTYsInkiOjM2MC45ODg5OTQ1OTgzODg3fSx7IngiOjM3MS4yNjEyNTczNTMyODMxNiwieSI6MzkwLjk4ODk5NDU5ODM4ODd9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M128.30771200997492,209.98899459838867L128.30771200997492,222.9179267865232Q128.30771200997492,229.98899459838867 121.23664419810945,229.98899459838867L119.26898447853215,229.98899459838867Q112.19791666666667,229.98899459838867 112.19791666666667,237.06006241025415L112.19791666666667,245.98899459838867" id="my-svg-L_ideconfig_ide_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_ideconfig_ide_0" data-points="W3sieCI6MTI4LjMwNzcxMjAwOTk3NDkyLCJ5IjoyMDkuOTg4OTk0NTk4Mzg4Njd9LHsieCI6MTI4LjMwNzcxMjAwOTk3NDkyLCJ5IjoyMjkuOTg4OTk0NTk4Mzg4Njd9LHsieCI6MTEyLjE5NzkxNjY2NjY2NjY3LCJ5IjoyMjkuOTg4OTk0NTk4Mzg4Njd9LHsieCI6MTEyLjE5NzkxNjY2NjY2NjY3LCJ5IjoyNDkuOTg4OTk0NTk4Mzg4Njd9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M172.97958700997492,209.98899459838867L172.97958700997492,222.9179267865232Q172.97958700997492,229.98899459838867 180.0506548218404,229.98899459838867L352.1901895414176,229.98899459838867Q359.2612573532831,229.98899459838867 359.2612573532831,237.06006241025415L359.2612573532831,266.4889945983887L359.2612573532831,331.9889945983887L359.2612573532831,380.9889945983887L359.2612573532831,431.9889945983887L359.2612573532831,477.9889945983887" id="my-svg-L_ideconfig_native_sysroot_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_ideconfig_native_sysroot_0" data-points="W3sieCI6MTcyLjk3OTU4NzAwOTk3NDkyLCJ5IjoyMDkuOTg4OTk0NTk4Mzg4Njd9LHsieCI6MTcyLjk3OTU4NzAwOTk3NDkyLCJ5IjoyMjkuOTg4OTk0NTk4Mzg4Njd9LHsieCI6MzU5LjI2MTI1NzM1MzI4MzEsInkiOjIyOS45ODg5OTQ1OTgzODg2N30seyJ4IjozNTkuMjYxMjU3MzUzMjgzMSwieSI6MjY2LjQ4ODk5NDU5ODM4ODd9LHsieCI6MzU5LjI2MTI1NzM1MzI4MzEsInkiOjMzMS45ODg5OTQ1OTgzODg3fSx7IngiOjM1OS4yNjEyNTczNTMyODMxLCJ5IjozODAuOTg4OTk0NTk4Mzg4N30seyJ4IjozNTkuMjYxMjU3MzUzMjgzMSwieSI6NDMxLjk4ODk5NDU5ODM4ODd9LHsieCI6MzU5LjI2MTI1NzM1MzI4MzEsInkiOjQ4MS45ODg5OTQ1OTgzODg3fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M135.53125,282.9889945983887L135.53125,295.9179267865232Q135.53125,302.9889945983887 142.60231781186548,302.9889945983887L217.6993796920873,302.9889945983887Q224.77044750395277,302.9889945983887 224.77044750395277,310.06006241025415L224.77044750395277,353.9179267865232Q224.77044750395277,360.9889945983887 231.84151531581824,360.9889945983887L292.93706454141767,360.9889945983887Q300.00813235328314,360.9889945983887 300.00813235328314,368.06006241025415L300.00813235328314,380.9889945983887L300.00813235328314,431.9889945983887L300.00813235328314,477.9889945983887" id="my-svg-L_ide_native_sysroot_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_ide_native_sysroot_0" data-points="W3sieCI6MTM1LjUzMTI1LCJ5IjoyODIuOTg4OTk0NTk4Mzg4N30seyJ4IjoxMzUuNTMxMjUsInkiOjMwMi45ODg5OTQ1OTgzODg3fSx7IngiOjIyNC43NzA0NDc1MDM5NTI3NywieSI6MzAyLjk4ODk5NDU5ODM4ODd9LHsieCI6MjI0Ljc3MDQ0NzUwMzk1Mjc3LCJ5IjozNjAuOTg4OTk0NTk4Mzg4N30seyJ4IjozMDAuMDA4MTMyMzUzMjgzMTQsInkiOjM2MC45ODg5OTQ1OTgzODg3fSx7IngiOjMwMC4wMDgxMzIzNTMyODMxNCwieSI6MzgwLjk4ODk5NDU5ODM4ODd9LHsieCI6MzAwLjAwODEzMjM1MzI4MzE0LCJ5Ijo0MzEuOTg4OTk0NTk4Mzg4N30seyJ4IjozMDAuMDA4MTMyMzUzMjgzMTQsInkiOjQ4MS45ODg5OTQ1OTgzODg3fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M88.86458333333334,282.9889945983887L88.86458333333334,295.9179267865232Q88.86458333333334,302.9889945983887 81.79351552146787,302.9889945983887L70.64344162894606,302.9889945983887Q63.57237381708059,302.9889945983887 63.57237381708059,310.06006241025415L63.57237381708059,331.9889945983887L63.57237381708059,1271.4504842758179L63.57237381708059,1300.210916517358Q63.57237381708059,1307.2819843292236 70.64344162894606,1307.2819843292236L81.79351552146787,1307.2819843292236Q88.86458333333334,1307.2819843292236 88.86458333333334,1314.3530521410892L88.86458333333334,1333.2819843292236" id="my-svg-L_ide_srcdir_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_ide_srcdir_0" data-points="W3sieCI6ODguODY0NTgzMzMzMzMzMzQsInkiOjI4Mi45ODg5OTQ1OTgzODg3fSx7IngiOjg4Ljg2NDU4MzMzMzMzMzM0LCJ5IjozMDIuOTg4OTk0NTk4Mzg4N30seyJ4Ijo2My41NzIzNzM4MTcwODA1OSwieSI6MzAyLjk4ODk5NDU5ODM4ODd9LHsieCI6NjMuNTcyMzczODE3MDgwNTksInkiOjMzMS45ODg5OTQ1OTgzODg3fSx7IngiOjYzLjU3MjM3MzgxNzA4MDU5LCJ5IjoxMjcxLjQ1MDQ4NDI3NTgxNzl9LHsieCI6NjMuNTcyMzczODE3MDgwNTksInkiOjEzMDcuMjgxOTg0MzI5MjIzNn0seyJ4Ijo4OC44NjQ1ODMzMzMzMzMzNCwieSI6MTMwNy4yODE5ODQzMjkyMjM2fSx7IngiOjg4Ljg2NDU4MzMzMzMzMzM0LCJ5IjoxMzM3LjI4MTk4NDMyOTIyMzZ9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M266.14920378185457,563.6409950256348L266.14920378185457,586.5699272137692Q266.14920378185457,593.6409950256348 259.0781359699891,593.6409950256348L247.31156623657716,593.6409950256348Q240.2404984247117,593.6409950256348 240.2404984247117,600.7120628375003L240.24049842471163,916.6299934387207L240.24049842471163,939.5589256268552Q240.24049842471163,946.6299934387207 233.16943061284616,946.6299934387207L202.50295766375348,946.6299934387207Q195.431889851888,946.6299934387207 195.431889851888,953.7010612505861L195.43188985188806,1215.618984222412L195.43188985188806,1228.5479164105466Q195.43188985188806,1235.618984222412 188.36082204002258,1235.618984222412L184.7193044044762,1235.618984222412Q177.64823659261071,1235.618984222412 177.64823659261071,1242.6900520342776L177.64823659261071,1300.210916517358Q177.64823659261071,1307.2819843292236 170.57716878074524,1307.2819843292236L162.80023447853216,1307.2819843292236Q155.72916666666669,1307.2819843292236 155.72916666666669,1314.3530521410892L155.72916666666669,1333.2819843292236" id="my-svg-L_native_sysroot_srcdir_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_native_sysroot_srcdir_0" data-points="W3sieCI6MjY2LjE0OTIwMzc4MTg1NDU3LCJ5Ijo1NjMuNjQwOTk1MDI1NjM0OH0seyJ4IjoyNjYuMTQ5MjAzNzgxODU0NTcsInkiOjU5My42NDA5OTUwMjU2MzQ4fSx7IngiOjI0MC4yNDA0OTg0MjQ3MTE3LCJ5Ijo1OTMuNjQwOTk1MDI1NjM0OH0seyJ4IjoyNDAuMjQwNDk4NDI0NzExNjMsInkiOjkxNi42Mjk5OTM0Mzg3MjA3fSx7IngiOjI0MC4yNDA0OTg0MjQ3MTE2MywieSI6OTQ2LjYyOTk5MzQzODcyMDd9LHsieCI6MTk1LjQzMTg4OTg1MTg4OCwieSI6OTQ2LjYyOTk5MzQzODcyMDd9LHsieCI6MTk1LjQzMTg4OTg1MTg4ODA2LCJ5IjoxMjE1LjYxODk4NDIyMjQxMn0seyJ4IjoxOTUuNDMxODg5ODUxODg4MDYsInkiOjEyMzUuNjE4OTg0MjIyNDEyfSx7IngiOjE3Ny42NDgyMzY1OTI2MTA3MSwieSI6MTIzNS42MTg5ODQyMjI0MTJ9LHsieCI6MTc3LjY0ODIzNjU5MjYxMDcxLCJ5IjoxMzA3LjI4MTk4NDMyOTIyMzZ9LHsieCI6MTU1LjcyOTE2NjY2NjY2NjY5LCJ5IjoxMzA3LjI4MTk4NDMyOTIyMzZ9LHsieCI6MTU1LjcyOTE2NjY2NjY2NjY5LCJ5IjoxMzM3LjI4MTk4NDMyOTIyMzZ9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M342.33179306756887,563.6409950256348L342.33179306756887,610.5699272137692Q342.33179306756887,617.6409950256348 349.40286087943434,617.6409950256348L365.56362704141765,617.6409950256348Q372.6346948532831,617.6409950256348 372.6346948532831,624.7120628375003L372.6346948532831,685.6409950256348" id="my-svg-L_native_sysroot_builddir_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_native_sysroot_builddir_0" data-points="W3sieCI6MzQyLjMzMTc5MzA2NzU2ODg3LCJ5Ijo1NjMuNjQwOTk1MDI1NjM0OH0seyJ4IjozNDIuMzMxNzkzMDY3NTY4ODcsInkiOjYxNy42NDA5OTUwMjU2MzQ4fSx7IngiOjM3Mi42MzQ2OTQ4NTMyODMxLCJ5Ijo2MTcuNjQwOTk1MDI1NjM0OH0seyJ4IjozNzIuNjM0Njk0ODUzMjgzMSwieSI6Njg5LjY0MDk5NTAyNTYzNDh9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M367.7259894961403,563.6409950256348L367.7259894961403,598.5699272137692Q367.7259894961403,605.6409950256348 374.7970573080058,605.6409950256348L561.5636270414177,605.6409950256348Q568.6346948532831,605.6409950256348 568.6346948532831,612.7120628375003L568.6346948532831,685.6409950256348" id="my-svg-L_native_sysroot_sysroot_0" class="edge-thickness-normal edge-pattern-dotted edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_native_sysroot_sysroot_0" data-points="W3sieCI6MzY3LjcyNTk4OTQ5NjE0MDMsInkiOjU2My42NDA5OTUwMjU2MzQ4fSx7IngiOjM2Ny43MjU5ODk0OTYxNDAzLCJ5Ijo2MDUuNjQwOTk1MDI1NjM0OH0seyJ4Ijo1NjguNjM0Njk0ODUzMjgzMSwieSI6NjA1LjY0MDk5NTAyNTYzNDh9LHsieCI6NTY4LjYzNDY5NDg1MzI4MzEsInkiOjY4OS42NDA5OTUwMjU2MzQ4fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M372.6346948532831,728.3039786038389L372.6346948532831,728.3039970397949L372.6346948532831,793.2329292279294Q372.6346948532831,800.3039970397949 379.7057626651486,800.3039970397949L522.2000853747511,800.3039970397949Q529.2711531866165,800.3039970397949 529.2711531866165,807.3750648516605L529.2711531866165,826.3039970397949" id="my-svg-L_builddir_destdir_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_builddir_destdir_0" data-points="W3sieCI6MzcyLjYzNDY5NDg1MzI4MzEsInkiOjcyOC4zMDM5Nzg2MDM4Mzg5fSx7IngiOjM3Mi42MzQ2OTQ4NTMyODMxLCJ5Ijo3MjguMzAzOTk3MDM5Nzk0OX0seyJ4IjozNzIuNjM0Njk0ODUzMjgzMSwieSI6ODAwLjMwMzk5NzAzOTc5NDl9LHsieCI6NTI5LjI3MTE1MzE4NjYxNjUsInkiOjgwMC4zMDM5OTcwMzk3OTQ5fSx7IngiOjUyOS4yNzExNTMxODY2MTY1LCJ5Ijo4MzAuMzAzOTk3MDM5Nzk0OX1d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M556.8846948532831,882.6299934387207L556.8846948532831,916.6299934387207L556.8846948532831,939.5589256268552Q556.8846948532831,946.6299934387207 563.9557626651485,946.6299934387207L635.4821982956029,946.6299934387207Q642.5532661074684,946.6299934387207 642.5532661074684,953.7010612505862L642.5532661074685,1215.618984222412L642.5532661074685,1234.9371185302734Q642.5532661074685,1235.618984222412 643.2351317996072,1235.618984222412L643.2351317996072,1235.618984222412Q643.9169974917457,1235.618984222412 643.9169974917457,1236.3008499145508L643.9169974917457,1300.210916517358Q643.9169974917457,1307.2819843292236 636.8459296798803,1307.2819843292236L585.2606025350565,1307.2819843292236Q578.1895347231911,1307.2819843292236 578.1895347231911,1314.3530521410892L578.1895347231911,1327.2819843292236L578.1895347231911,1488.873914716821Q578.1895347231911,1495.9449825286865 571.1184669113256,1495.9449825286865L562.3272692017231,1495.9449825286865Q555.2562013898577,1495.9449825286865 555.2562013898577,1503.016050340552L555.2562013898577,1521.9449825286865" id="my-svg-L_destdir_appbin_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_destdir_appbin_0" data-points="W3sieCI6NTU2Ljg4NDY5NDg1MzI4MzEsInkiOjg4Mi42Mjk5OTM0Mzg3MjA3fSx7IngiOjU1Ni44ODQ2OTQ4NTMyODMxLCJ5Ijo5MTYuNjI5OTkzNDM4NzIwN30seyJ4Ijo1NTYuODg0Njk0ODUzMjgzMSwieSI6OTQ2LjYyOTk5MzQzODcyMDd9LHsieCI6NjQyLjU1MzI2NjEwNzQ2ODQsInkiOjk0Ni42Mjk5OTM0Mzg3MjA3fSx7IngiOjY0Mi41NTMyNjYxMDc0Njg1LCJ5IjoxMjE1LjYxODk4NDIyMjQxMn0seyJ4Ijo2NDIuNTUzMjY2MTA3NDY4NSwieSI6MTIzNS42MTg5ODQyMjI0MTJ9LHsieCI6NjQzLjkxNjk5NzQ5MTc0NTcsInkiOjEyMzUuNjE4OTg0MjIyNDEyfSx7IngiOjY0My45MTY5OTc0OTE3NDU3LCJ5IjoxMzA3LjI4MTk4NDMyOTIyMzZ9LHsieCI6NTc4LjE4OTUzNDcyMzE5MTEsInkiOjEzMDcuMjgxOTg0MzI5MjIzNn0seyJ4Ijo1NzguMTg5NTM0NzIzMTkxMSwieSI6MTMyNy4yODE5ODQzMjkyMjM2fSx7IngiOjU3OC4xODk1MzQ3MjMxOTExLCJ5IjoxNDk1Ljk0NDk4MjUyODY4NjV9LHsieCI6NTU1LjI1NjIwMTM4OTg1NzcsInkiOjE0OTUuOTQ0OTgyNTI4Njg2NX0seyJ4Ijo1NTUuMjU2MjAxMzg5ODU3NywieSI6MTUyNS45NDQ5ODI1Mjg2ODY1fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M393.12018592471173,563.6409950256348L393.12018592471173,586.5699272137692Q393.12018592471173,593.6409950256348 400.1912537365772,593.6409950256348L734.0636270414177,593.6409950256348Q741.1346948532832,593.6409950256348 741.1346948532832,600.7120628375003L741.1346948532832,793.2329292279294Q741.1346948532832,800.3039970397949 734.0636270414177,800.3039970397949L591.5693043318154,800.3039970397949Q584.4982365199498,800.3039970397949 584.4982365199498,807.3750648516605L584.4982365199498,826.3039970397949" id="my-svg-L_native_sysroot_destdir_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_native_sysroot_destdir_0" data-points="W3sieCI6MzkzLjEyMDE4NTkyNDcxMTczLCJ5Ijo1NjMuNjQwOTk1MDI1NjM0OH0seyJ4IjozOTMuMTIwMTg1OTI0NzExNzMsInkiOjU5My42NDA5OTUwMjU2MzQ4fSx7IngiOjc0MS4xMzQ2OTQ4NTMyODMyLCJ5Ijo1OTMuNjQwOTk1MDI1NjM0OH0seyJ4Ijo3NDEuMTM0Njk0ODUzMjgzMiwieSI6ODAwLjMwMzk5NzAzOTc5NDl9LHsieCI6NTg0LjQ5ODIzNjUxOTk0OTgsInkiOjgwMC4zMDM5OTcwMzk3OTQ5fSx7IngiOjU4NC40OTgyMzY1MTk5NDk4LCJ5Ijo4MzAuMzAzOTk3MDM5Nzk0OX1d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M316.93759663899743,563.6409950256348L316.93759663899743,610.5699272137692Q316.93759663899743,617.6409950256348 309.86652882713196,617.6409950256348L293.7057626651486,617.6409950256348Q286.6346948532831,617.6409950256348 286.6346948532831,624.7120628375003L286.6346948532831,916.6299934387207L286.6346948532831,939.5589256268552Q286.6346948532831,946.6299934387207 293.7057626651486,946.6299934387207L325.4707847213842,946.6299934387207Q332.54185253324965,946.6299934387207 332.54185253324965,953.7010612505862L332.54185253324965,1045.2929878234863L332.54185253324965,1091.2929878234863" id="my-svg-L_native_sysroot_rootfsdbg_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_native_sysroot_rootfsdbg_0" data-points="W3sieCI6MzE2LjkzNzU5NjYzODk5NzQzLCJ5Ijo1NjMuNjQwOTk1MDI1NjM0OH0seyJ4IjozMTYuOTM3NTk2NjM4OTk3NDMsInkiOjYxNy42NDA5OTUwMjU2MzQ4fSx7IngiOjI4Ni42MzQ2OTQ4NTMyODMxLCJ5Ijo2MTcuNjQwOTk1MDI1NjM0OH0seyJ4IjoyODYuNjM0Njk0ODUzMjgzMSwieSI6OTE2LjYyOTk5MzQzODcyMDd9LHsieCI6Mjg2LjYzNDY5NDg1MzI4MzEsInkiOjk0Ni42Mjk5OTM0Mzg3MjA3fSx7IngiOjMzMi41NDE4NTI1MzMyNDk2NSwieSI6OTQ2LjYyOTk5MzQzODcyMDd9LHsieCI6MzMyLjU0MTg1MjUzMzI0OTY1LCJ5IjoxMDQ1LjI5Mjk4NzgyMzQ4NjN9LHsieCI6MzMyLjU0MTg1MjUzMzI0OTY1LCJ5IjoxMDk1LjI5Mjk4NzgyMzQ4NjN9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M291.543400210426,563.6409950256348L291.543400210426,598.5699272137692Q291.543400210426,605.6409950256348 284.4723323985605,605.6409950256348L270.5086644508629,605.6409950256348Q263.43759663899743,605.6409950256348 263.43759663899743,612.7120628375003L263.43759663899743,916.6299934387207L263.43759663899743,951.5589256268552Q263.43759663899743,958.6299934387207 256.36652882713196,958.6299934387207L224.60150677089638,958.6299934387207Q217.5304389590309,958.6299934387207 217.5304389590309,965.7010612505862L217.5304389590309,1215.618984222412L217.5304389590309,1228.5479164105466Q217.5304389590309,1235.618984222412 224.60150677089638,1235.618984222412L333.0668894431801,1235.618984222412Q340.1379572550456,1235.618984222412 340.1379572550456,1242.6900520342776L340.1379572550456,1300.210916517358Q340.1379572550456,1307.2819843292236 347.20902506691107,1307.2819843292236L479.1184669113256,1307.2819843292236Q486.18953472319106,1307.2819843292236 486.18953472319106,1314.3530521410892L486.189534723191,1327.2819843292236L486.189534723191,1373.2819843292236" id="my-svg-L_native_sysroot_debugserver_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_native_sysroot_debugserver_0" data-points="W3sieCI6MjkxLjU0MzQwMDIxMDQyNiwieSI6NTYzLjY0MDk5NTAyNTYzNDh9LHsieCI6MjkxLjU0MzQwMDIxMDQyNiwieSI6NjA1LjY0MDk5NTAyNTYzNDh9LHsieCI6MjYzLjQzNzU5NjYzODk5NzQzLCJ5Ijo2MDUuNjQwOTk1MDI1NjM0OH0seyJ4IjoyNjMuNDM3NTk2NjM4OTk3NDMsInkiOjkxNi42Mjk5OTM0Mzg3MjA3fSx7IngiOjI2My40Mzc1OTY2Mzg5OTc0MywieSI6OTU4LjYyOTk5MzQzODcyMDd9LHsieCI6MjE3LjUzMDQzODk1OTAzMDksInkiOjk1OC42Mjk5OTM0Mzg3MjA3fSx7IngiOjIxNy41MzA0Mzg5NTkwMzA5LCJ5IjoxMjE1LjYxODk4NDIyMjQxMn0seyJ4IjoyMTcuNTMwNDM4OTU5MDMwOSwieSI6MTIzNS42MTg5ODQyMjI0MTJ9LHsieCI6MzQwLjEzNzk1NzI1NTA0NTYsInkiOjEyMzUuNjE4OTg0MjIyNDEyfSx7IngiOjM0MC4xMzc5NTcyNTUwNDU2LCJ5IjoxMzA3LjI4MTk4NDMyOTIyMzZ9LHsieCI6NDg2LjE4OTUzNDcyMzE5MTA2LCJ5IjoxMzA3LjI4MTk4NDMyOTIyMzZ9LHsieCI6NDg2LjE4OTUzNDcyMzE5MSwieSI6MTMyNy4yODE5ODQzMjkyMjM2fSx7IngiOjQ4Ni4xODk1MzQ3MjMxOTEsInkiOjEzNzcuMjgxOTg0MzI5MjIzNn1d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M486.18953472319106,1424.9449825286865L486.18953472319106,1488.873914716821Q486.18953472319106,1495.9449825286865 493.26060253505653,1495.9449825286865L502.0518002446589,1495.9449825286865Q509.1228680565244,1495.9449825286865 509.1228680565244,1503.016050340552L509.1228680565244,1521.9449825286865" id="my-svg-L_debugserver_appbin_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_debugserver_appbin_0" data-points="W3sieCI6NDg2LjE4OTUzNDcyMzE5MTA2LCJ5IjoxNDI0Ljk0NDk4MjUyODY4NjV9LHsieCI6NDg2LjE4OTUzNDcyMzE5MTA2LCJ5IjoxNDk1Ljk0NDk4MjUyODY4NjV9LHsieCI6NTA5LjEyMjg2ODA1NjUyNDQsInkiOjE0OTUuOTQ0OTgyNTI4Njg2NX0seyJ4Ijo1MDkuMTIyODY4MDU2NTI0NCwieSI6MTUyNS45NDQ5ODI1Mjg2ODY1fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M533.5532661074664,1147.6189823150635L533.5532661074684,1147.618984222412L533.5532661074684,1181.618984222412L533.5532661074685,1215.618984222412L533.5532661074685,1234.9371185302734Q533.5532661074685,1235.618984222412 532.8714004153298,1235.618984222412L532.8714004153298,1235.618984222412Q532.1895347231911,1235.618984222412 532.1895347231911,1236.3008499145508L532.1895347231911,1333.2819843292236" id="my-svg-L_rootfs_target_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_rootfs_target_0" data-points="W3sieCI6NTMzLjU1MzI2NjEwNzQ2NjQsInkiOjExNDcuNjE4OTgyMzE1MDYzNX0seyJ4Ijo1MzMuNTUzMjY2MTA3NDY4NCwieSI6MTE0Ny42MTg5ODQyMjI0MTJ9LHsieCI6NTMzLjU1MzI2NjEwNzQ2ODQsInkiOjExODEuNjE4OTg0MjIyNDEyfSx7IngiOjUzMy41NTMyNjYxMDc0Njg1LCJ5IjoxMjE1LjYxODk4NDIyMjQxMn0seyJ4Ijo1MzMuNTUzMjY2MTA3NDY4NSwieSI6MTIzNS42MTg5ODQyMjI0MTJ9LHsieCI6NTMyLjE4OTUzNDcyMzE5MTEsInkiOjEyMzUuNjE4OTg0MjIyNDEyfSx7IngiOjUzMi4xODk1MzQ3MjMxOTExLCJ5IjoxMzM3LjI4MTk4NDMyOTIyMzZ9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/></g><g class="edgeLabels"><g class="edgeLabel" transform="translate(150.48739950997492, 109.16299819946289)"><g class="label" data-id="L_idesdk_ideconfig_0" transform="translate(0, -10.829999923706055)"><g><rect class="background" style="" x="-26.84375" y="2.3299999237060547" width="53.6875" height="17"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">generates</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(460.4643823532831, 183.82599639892578)"><g class="label" data-id="L_idesdk_sdk_0" transform="translate(0, -10.329999923706055)"><g><rect class="background" style="" x="-87.1171875" y="1.3299999237060547" width="174.234375" height="18"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">generates</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> the</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> SDK</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> (via</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> bitbake)</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(224.56292034330824, 331.9889945983887)"><g class="label" data-id="L_ide_native_sysroot_0" transform="translate(-0.16747283935546875, -10.329999923706055)"><g><rect class="background" style="" x="-87.125" y="1.3299999237060547" width="174.58494567871094" height="18"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">calls</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> directly,</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> no</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> bitbake</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> needed</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(63.10602707635793, 798.3039894104004)"><g class="label" data-id="L_ide_srcdir_0" transform="translate(-0.03365325927734375, -10.829999923706055)"><g><rect class="background" style="" x="-31" y="2.3299999237060547" width="62.06730651855469" height="17"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">edit</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> source</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(177.52337392171222, 1271.4504842758179)"><g class="label" data-id="L_native_sysroot_srcdir_0" transform="translate(-0.3126373291015625, -10.829999923706055)"><g><rect class="background" style="" x="-49.5625" y="2.3299999237060547" width="99.75027465820312" height="17"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">reads</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> source</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> from</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(372.45017794654484, 656.6409950256348)"><g class="label" data-id="L_native_sysroot_builddir_0" transform="translate(-0.16704559326171875, -10.329999923706055)"><g><rect class="background" style="" x="-25.1484375" y="1.3299999237060547" width="50.63096618652344" height="18"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">builds</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> in</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(568.4995096115839, 656.6409950256348)"><g class="label" data-id="L_native_sysroot_sysroot_0" transform="translate(-0.14606475830078125, -10.829999923706055)"><g><rect class="background" style="" x="-25.21875" y="2.3299999237060547" width="50.72962951660156" height="17"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">--sysroot</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(372.5556543259394, 761.3039970397949)"><g class="label" data-id="L_builddir_destdir_0" transform="translate(-0.13970947265625, -10.329999923706055)"><g><rect class="background" style="" x="-18.28125" y="1.3299999237060547" width="36.8419189453125" height="18"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">install</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(643.7607474917456, 1271.4504842758179)"><g class="label" data-id="L_destdir_appbin_0" transform="translate(0, -10.329999923706055)"><g><rect class="background" style="" x="-42.34375" y="1.3299999237060547" width="84.6875" height="18"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">deploy</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> (--strip)</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(740.8719232468379, 708.9724960327148)"><g class="label" data-id="L_native_sysroot_destdir_0" transform="translate(-0.1669158935546875, -17.661499977111816)"><g><rect class="background" style="" x="-49.0703125" y="1.3299999237060547" width="98.47445678710938" height="32.66300010681152"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">debug</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> symbols:</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">unstripped</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> binary</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(332.28404003324965, 1004.9614906311035)"><g class="label" data-id="L_native_sysroot_rootfsdbg_0" transform="translate(0, -17.661499977111816)"><g><rect class="background" style="" x="-43.7421875" y="1.3299999237060547" width="87.484375" height="32.66300010681152"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">debug</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> symbols:</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">shared</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> libraries</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(339.9662882486979, 1271.4504842758179)"><g class="label" data-id="L_native_sysroot_debugserver_0" transform="translate(-0.16426849365234375, -18.161499977111816)"><g><rect class="background" style="" x="-38.1640625" y="2.3299999237060547" width="76.65666198730469" height="31.663000106811523"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">remote</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> debug</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">protocol</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(485.9728904360817, 1457.4449825286865)"><g class="label" data-id="L_debugserver_appbin_0" transform="translate(-0.166168212890625, -10.829999923706055)"><g><rect class="background" style="" x="-32.1171875" y="2.3299999237060547" width="64.56671142578125" height="17"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">attach</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> /</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> run</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(531.8032661074684, 1271.4504842758179)"><g class="label" data-id="L_rootfs_target_0" transform="translate(-0.14498138427734375, -10.329999923706055)"><g><rect class="background" style="" x="-49.46875" y="1.3299999237060547" width="99.22746276855469" height="18"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">installed</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> on</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> target</tspan></tspan></text></g></g></g></g><g class="nodes"><g class="node default orange" id="my-svg-flowchart-idesdk-0" data-look="classic" transform="translate(252.89755575997492, 36.331499099731445)"><rect class="basic label-container" style="fill:#ffbe6f !important;stroke:#ffa348 !important;stroke-width:1px !important" x="-80" y="-24.33150005340576" width="160" height="48.66300010681152"/><g class="label" style="color:#000000 !important" transform="translate(0, -14.331500053405762)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">devtool</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> ide-sdk</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(bitbake</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> tinfoil</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> client)</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-ideconfig-1" data-look="classic" transform="translate(150.64364950997492, 183.82599639892578)"><polygon points="0,0 138.015625,0 138.015625,-52.32599639892578 0,-52.32599639892578 0,0 -8,0 146.015625,0 146.015625,-52.32599639892578 -8,-52.32599639892578 -8,0" class="label-container" transform="translate(-69.0078125,26.16299819946289)" style="fill:#99c1f1 !important;stroke:#62a0ea !important;stroke-width:1px !important"/><g class="label" style="color:#000000 !important" transform="translate(0, -21.16299819946289)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">IDE</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> configuration</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(e.g.</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> build</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> tool</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> preset,</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">debugger</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> launch</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> config)</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-ide-2" data-look="classic" transform="translate(112.19791666666667, 266.4889945983887)"><rect class="basic label-container" style="fill:#99c1f1 !important;stroke:#62a0ea !important;stroke-width:1px !important" x="-80" y="-16.5" width="160" height="33"/><g class="label" style="color:#000000 !important" transform="translate(0, -6.5)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">IDE</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> (e.g.</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> VSCode)</tspan></tspan></text></g></g></g><g class="node default green" id="my-svg-flowchart-srcdir-3" data-look="classic" transform="translate(122.296875, 1363.9449825286865)"><polygon points="0,0 204.59375,0 204.59375,-53.32599639892578 0,-53.32599639892578 0,0 -8,0 212.59375,0 212.59375,-53.32599639892578 -8,-53.32599639892578 -8,0" class="label-container" transform="translate(-102.296875,26.66299819946289)" style="fill:#8ff0a4 !important;stroke:#57e389 !important;stroke-width:1px !important"/><g class="label" style="color:#000000 !important" transform="translate(0, -21.66299819946289)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">S</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> =</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> e.g.</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> workspace/sources/&lt;recipe&gt;</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(source</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> code,</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> extracted</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> by</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">devtool</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> modify,</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> edited</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> in</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> the</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> IDE)</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-native_sysroot-4" data-look="classic" transform="translate(329.6346948532831, 522.8149948120117)"><polygon points="0,0 183.359375,0 183.359375,-81.6520004272461 0,-81.6520004272461 0,0 -8,0 191.359375,0 191.359375,-81.6520004272461 -8,-81.6520004272461 -8,0" class="label-container" transform="translate(-91.6796875,40.82600021362305)" style="fill:#99c1f1 !important;stroke:#62a0ea !important;stroke-width:1px !important"/><g class="label" style="color:#000000 !important" transform="translate(0, -35.82600021362305)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">recipe-sysroot-native</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">build</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> tool</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> (e.g.</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> CMake)</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">cross-compiler</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> (e.g.</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> &lt;arch&gt;-gcc)</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="3.2em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">debugger</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> (e.g.</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> gdb)</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="4.300000000000001em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">more</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> tools...</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-builddir-5" data-look="classic" transform="translate(372.6346948532831, 708.9724960327148)"><polygon points="0,0 130,0 130,-38.66300010681152 0,-38.66300010681152 0,0 -8,0 138,0 138,-38.66300010681152 -8,-38.66300010681152 -8,0" class="label-container" transform="translate(-65,19.33150005340576)" style="fill:#99c1f1 !important;stroke:#62a0ea !important;stroke-width:1px !important"/><g class="label" style="color:#000000 !important" transform="translate(0, -14.331500053405762)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">B</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> (build</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> directory)</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">build</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> artifacts)</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-sysroot-6" data-look="classic" transform="translate(568.6346948532831, 708.4724960327148)"><polygon points="0,0 130,0 130,-37.66300010681152 0,-37.66300010681152 0,0 -8,0 138,0 138,-37.66300010681152 -8,-37.66300010681152 -8,0" class="label-container" transform="translate(-65,18.83150005340576)" style="fill:#99c1f1 !important;stroke:#62a0ea !important;stroke-width:1px !important"/><g class="label" style="color:#000000 !important" transform="translate(0, -13.831500053405762)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">recipe-sysroot</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(target</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> headers</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> &amp;</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> libs)</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-destdir-7" data-look="classic" transform="translate(556.8846948532832, 856.4669952392578)"><polygon points="0,0 171.28125,0 171.28125,-52.32599639892578 0,-52.32599639892578 0,0 -8,0 179.28125,0 179.28125,-52.32599639892578 -8,-52.32599639892578 -8,0" class="label-container" transform="translate(-85.640625,26.16299819946289)" style="fill:#99c1f1 !important;stroke:#62a0ea !important;stroke-width:1px !important"/><g class="label" style="color:#000000 !important" transform="translate(0, -21.16299819946289)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">D</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> =</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> image</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(non-stripped,</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> relocated</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> rpath,</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">managed</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> by</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> pseudo)</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-rootfsdbg-8" data-look="classic" transform="translate(332.54185253324965, 1121.4559860229492)"><polygon points="0,0 140.0228271484375,0 140.0228271484375,-52.32599639892578 0,-52.32599639892578 0,0 -8,0 148.0228271484375,0 148.0228271484375,-52.32599639892578 -8,-52.32599639892578 -8,0" class="label-container" transform="translate(-70.01141357421875,26.16299819946289)" style="fill:#99c1f1 !important;stroke:#62a0ea !important;stroke-width:1px !important"/><g class="label" style="color:#000000 !important" transform="translate(0, -21.16299819946289)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">rootfs-dbg</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(debug</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> symbols</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> of</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> other</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">recipes'</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> shared</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> libraries)</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-rootfs-9" data-look="classic" transform="translate(533.5532661074684, 1128.787483215332)"><polygon points="0,0 130,0 130,-37.66300010681152 0,-37.66300010681152 0,0 -8,0 138,0 138,-37.66300010681152 -8,-37.66300010681152 -8,0" class="label-container" transform="translate(-65,18.83150005340576)" style="fill:#99c1f1 !important;stroke:#62a0ea !important;stroke-width:1px !important"/><g class="label" style="color:#000000 !important" transform="translate(0, -13.831500053405762)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">rootfs</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(target</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> root</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> filesystem)</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-appbin-10" data-look="classic" transform="translate(532.1895347231911, 1550.276481628418)"><rect class="basic label-container" style="fill:#99c1f1 !important;stroke:#62a0ea !important;stroke-width:1px !important" x="-80" y="-24.33150005340576" width="160" height="48.66300010681152"/><g class="label" style="color:#000000 !important" transform="translate(0, -14.331500053405762)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Application</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> binary</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(running)</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-debugserver-11" data-look="classic" transform="translate(486.18953472319106, 1401.113483428955)"><rect class="basic label-container" style="fill:#99c1f1 !important;stroke:#62a0ea !important;stroke-width:1px !important" x="-80" y="-23.83150005340576" width="160" height="47.66300010681152"/><g class="label" style="color:#000000 !important" transform="translate(0, -13.831500053405762)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">debug-server</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(e.g.</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> gdbserver)</tspan></tspan></text></g></g></g></g></g></g><defs><filter id="my-svg-drop-shadow" height="130%" width="130%"><feDropShadow dx="4" dy="4" stdDeviation="0" flood-opacity="0.06" flood-color="#000000"/></filter></defs><defs><filter id="my-svg-drop-shadow-small" height="150%" width="150%"><feDropShadow dx="2" dy="2" stdDeviation="0" flood-opacity="0.06" flood-color="#000000"/></filter></defs><linearGradient id="my-svg-gradient" gradientUnits="objectBoundingBox" x1="0%" y1="0%" x2="100%" y2="0%"><stop offset="0%" stop-color="#62a0ea" stop-opacity="1"/><stop offset="100%" stop-color="hsl(92.7272727273, 35.8620689655%, 67.2549019608%)" stop-opacity="1"/></linearGradient></svg>
\ No newline at end of file
diff --git a/documentation/dev-manual/figures/devtool-ide-sdk-nfs-architecture.mmd b/documentation/dev-manual/figures/devtool-ide-sdk-nfs-architecture.mmd
new file mode 100644
index 000000000..0ec733a2e
--- /dev/null
+++ b/documentation/dev-manual/figures/devtool-ide-sdk-nfs-architecture.mmd
@@ -0,0 +1,89 @@ 
+---
+config:
+  theme: base
+  look: classic
+  htmlLabels: false
+  fontFamily: '"Nimbus Roman", "Times New Roman", Times, serif'
+  fontSize: 13.33
+  themeVariables:
+    primaryColor: "#99c1f1"
+    primaryBorderColor: "#62a0ea"
+    primaryTextColor: "#000000"
+    lineColor: "#000000"
+    edgeLabelBackground: "#ffffff"
+    clusterBkg: "#f6f5f4"
+    clusterBorder: "#c0bfbc"
+    titleColor: "#000000"
+    fontSize: 13.33px
+  themeCSS: |
+    .cluster-label tspan { font-weight: bold; }
+    rect { rx: 7.5px; ry: 7.5px; }
+  flowchart:
+    htmlLabels: false
+    useMaxWidth: false
+    curve: basis
+    padding: 10
+    nodeSpacing: 23
+    rankSpacing: 37
+    wrappingWidth: 300
+---
+%% Regenerate: npx -y @mermaid-js/mermaid-cli -b transparent -i devtool-ide-sdk-nfs-architecture.mmd -o devtool-ide-sdk-nfs-architecture.svg
+%%   && sed -i 's/<text /<text xml:space="preserve" /g' devtool-ide-sdk-nfs-architecture.svg
+%% (xml:space keeps the spaces between words in rsvg-convert, used for the PDF output)
+flowchart TB
+    idesdk["devtool ide-sdk --nfs=rootfs-dbg<br/>(bitbake tinfoil client)"]
+    ideconfig[["IDE configuration<br/>(e.g. build tool preset,<br/>debugger launch config)"]]
+    ide["IDE (e.g. VSCode)"]
+    srcdir[["S = e.g. workspace/sources/&lt;recipe&gt;<br/>(source code, extracted by<br/>devtool modify, edited in the IDE)"]]
+
+    subgraph sdk["SDK (regular bitbake environment)"]
+        subgraph recipe_workdir["Recipe WORKDIR(s)"]
+            native_sysroot[["recipe-sysroot-native<br/>build tool (e.g. CMake)<br/>cross-compiler (e.g. &lt;arch&gt;-gcc)<br/>debugger (e.g. gdb)"]]
+            builddir[["B (build directory)<br/>build artifacts)"]]
+            sysroot[["recipe-sysroot<br/>(target headers & libs)"]]
+            destdir[["D = image<br/>(non-stripped, relocated rpath,<br/>managed by pseudo)"]]
+        end
+
+        subgraph image_workdir["Image WORKDIR"]
+            rootfsdbg_src[["rootfs-dbg<br/>(stripped binaries + debug symbols<br/>of every recipe, combined by<br/>image-combined-dbg)"]]
+        end
+    end
+
+    subgraph nfs["NFS export"]
+        rootfsdbg[["&lt;workspace&gt;/nfs-exports/&lt;image-recipe&gt;/rootfs-dbg<br/>(copy, kept in sync by devtool<br/>deploy-target; persists across<br/>debug sessions)"]]
+    end
+
+    subgraph target["Target device"]
+        appbin["Application binary<br/>(running)"]
+        debugserver["debug-server<br/>(e.g. gdbserver)"]
+    end
+
+    idesdk -->|generates| ideconfig
+    idesdk -->|"generates the SDK (via bitbake)"| sdk
+    rootfsdbg_src -->|"deployed, extracted<br/>(--nfs=rootfs-dbg)"| rootfsdbg
+    ideconfig --> ide
+    ideconfig --> native_sysroot
+    ide -->|"calls directly, no bitbake needed"| native_sysroot
+    ide -->|"edit source"| srcdir
+    native_sysroot -->|"reads source from"| srcdir
+    native_sysroot -->|"builds in"| builddir
+    native_sysroot -.->|"--sysroot"| sysroot
+    builddir -->|install| destdir
+    destdir -->|"devtool deploy-target<br/>(direct write, no SSH)"| rootfsdbg
+    native_sysroot -->|"debug symbols:<br/>unstripped binary"| destdir
+    native_sysroot -->|"debug symbols:<br/>other recipes'<br/>shared libraries"| rootfsdbg
+    native_sysroot -->|"remote debug<br/>protocol"| debugserver
+    debugserver -->|"attach / run"| appbin
+    target -->|"booted from<br/>(NFS-mounted<br/>root filesystem)"| rootfsdbg
+
+    style sdk fill:#f6f5f4,stroke:#3584e4,stroke-width:1px
+    style recipe_workdir fill:#ffffff,stroke:#62a0ea,stroke-width:1px
+    style image_workdir fill:#ffffff,stroke:#57e389,stroke-width:1px
+    style nfs fill:#f6f5f4,stroke:#c061cb,stroke-width:1px
+    style target fill:#f6f5f4,stroke:#b5835a,stroke-width:1px
+
+    classDef orange fill:#ffbe6f,stroke:#ffa348,stroke-width:1px,color:#000000;
+    classDef green fill:#8ff0a4,stroke:#57e389,stroke-width:1px,color:#000000;
+    classDef default fill:#99c1f1,stroke:#62a0ea,stroke-width:1px,color:#000000;
+    class idesdk orange;
+    class srcdir,rootfsdbg green;
diff --git a/documentation/dev-manual/figures/devtool-ide-sdk-nfs-architecture.svg b/documentation/dev-manual/figures/devtool-ide-sdk-nfs-architecture.svg
new file mode 100644
index 000000000..5d2cb1d30
--- /dev/null
+++ b/documentation/dev-manual/figures/devtool-ide-sdk-nfs-architecture.svg
@@ -0,0 +1 @@ 
+<svg id="my-svg" width="1257.645263671875" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="flowchart" height="1595.27099609375" viewBox="4 3.999998092651367 1257.645263671875 1595.27099609375" role="graphics-document document" aria-roledescription="flowchart-v2" style="background-color: transparent;"><style>#my-svg{font-family:"Nimbus Roman","Times New Roman",Times,serif;font-size:13.33px;fill:#000000;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#my-svg .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#my-svg .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#my-svg .error-icon{fill:hsl(32.7272727273, 75.8620689655%, 82.2549019608%);}#my-svg .error-text{fill:rgb(10.9224137931, 42.1293103448, 79.5775862068);stroke:rgb(10.9224137931, 42.1293103448, 79.5775862068);}#my-svg .edge-thickness-normal{stroke-width:1px;}#my-svg .edge-thickness-thick{stroke-width:3.5px;}#my-svg .edge-pattern-solid{stroke-dasharray:0;}#my-svg .edge-thickness-invisible{stroke-width:0;fill:none;}#my-svg .edge-pattern-dashed{stroke-dasharray:3;}#my-svg .edge-pattern-dotted{stroke-dasharray:2;}#my-svg .marker{fill:#000000;stroke:#000000;}#my-svg .marker.cross{stroke:#000000;}#my-svg svg{font-family:"Nimbus Roman","Times New Roman",Times,serif;font-size:13.33px;}#my-svg p{margin:0;}#my-svg .label{font-family:"Nimbus Roman","Times New Roman",Times,serif;color:#000000;}#my-svg .cluster-label text{fill:#000000;}#my-svg .cluster-label span{color:#000000;}#my-svg .cluster-label span p{background-color:transparent;}#my-svg .label text,#my-svg span{fill:#000000;color:#000000;}#my-svg .node rect,#my-svg .node circle,#my-svg .node ellipse,#my-svg .node polygon,#my-svg .node path{fill:#99c1f1;stroke:#62a0ea;stroke-width:1px;}#my-svg .rough-node .label text,#my-svg .node .label text,#my-svg .image-shape .label,#my-svg .icon-shape .label{text-anchor:middle;}#my-svg .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#my-svg .rough-node .label,#my-svg .node .label,#my-svg .image-shape .label,#my-svg .icon-shape .label{text-align:center;}#my-svg .node.clickable{cursor:pointer;}#my-svg .root .anchor path{fill:#000000!important;stroke-width:0;stroke:#000000;}#my-svg .arrowheadPath{fill:#0b0b0b;}#my-svg .edgePaths .path{stroke:#000000;stroke-width:1px;}#my-svg .flowchart-link{stroke:#000000;fill:none;}#my-svg .edgeLabel{background-color:#ffffff;text-align:center;}#my-svg .edgeLabel p{background-color:#ffffff;}#my-svg .edgeLabel rect{opacity:0.5;background-color:#ffffff;fill:#ffffff;}#my-svg .labelBkg{background-color:rgba(255, 255, 255, 0.5);}#my-svg .cluster rect{fill:#f6f5f4;stroke:#c0bfbc;stroke-width:1px;}#my-svg .cluster text{fill:#000000;}#my-svg .cluster span{color:#000000;}#my-svg .node .collapsed-indicator{fill:#c0bfbc;stroke:none;opacity:0.6;}#my-svg .node .collapsed-separator{stroke:#c0bfbc;stroke-width:0.75px;}#my-svg div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"Nimbus Roman","Times New Roman",Times,serif;font-size:12px;background:hsl(32.7272727273, 75.8620689655%, 82.2549019608%);border:1px solid hsl(32.7272727273, 35.8620689655%, 72.2549019608%);border-radius:2px;pointer-events:none;z-index:100;}#my-svg .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#000000;}#my-svg rect.text{fill:none;stroke-width:0;}#my-svg .icon-shape,#my-svg .image-shape{background-color:#ffffff;text-align:center;}#my-svg .icon-shape p,#my-svg .image-shape p{background-color:#ffffff;padding:2px;}#my-svg .icon-shape .label rect,#my-svg .image-shape .label rect{opacity:0.5;background-color:#ffffff;fill:#ffffff;}#my-svg .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#my-svg .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#my-svg .node .neo-node{stroke:#62a0ea;}#my-svg [data-look="neo"].node rect,#my-svg [data-look="neo"].cluster rect,#my-svg [data-look="neo"].node polygon{stroke:url(#my-svg-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg [data-look="neo"].swimlane.cluster rect{filter:none;}#my-svg [data-look="neo"].node path{stroke:url(#my-svg-gradient);stroke-width:1px;}#my-svg [data-look="neo"].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg [data-look="neo"].node .neo-line path{stroke:#62a0ea;filter:none;}#my-svg [data-look="neo"].node circle{stroke:url(#my-svg-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg [data-look="neo"].node circle .state-start{fill:#000000;}#my-svg [data-look="neo"].icon-shape .icon{fill:url(#my-svg-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg [data-look="neo"].icon-shape .icon-neo path{stroke:url(#my-svg-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg .cluster-label tspan{font-weight:bold;}#my-svg rect{rx:7.5px;ry:7.5px;}#my-svg :root{--mermaid-font-family:"Nimbus Roman","Times New Roman",Times,serif;}#my-svg .orange rect{fill:rgb(255, 190, 111)!important;stroke:rgb(255, 163, 72)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .orange polygon{fill:rgb(255, 190, 111)!important;stroke:rgb(255, 163, 72)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .orange ellipse{fill:rgb(255, 190, 111)!important;stroke:rgb(255, 163, 72)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .orange circle{fill:rgb(255, 190, 111)!important;stroke:rgb(255, 163, 72)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .orange path{fill:rgb(255, 190, 111)!important;stroke:rgb(255, 163, 72)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .orange tspan{fill:rgb(0, 0, 0)!important;}#my-svg .green rect{fill:rgb(143, 240, 164)!important;stroke:rgb(87, 227, 137)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .green polygon{fill:rgb(143, 240, 164)!important;stroke:rgb(87, 227, 137)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .green ellipse{fill:rgb(143, 240, 164)!important;stroke:rgb(87, 227, 137)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .green circle{fill:rgb(143, 240, 164)!important;stroke:rgb(87, 227, 137)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .green path{fill:rgb(143, 240, 164)!important;stroke:rgb(87, 227, 137)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .green tspan{fill:rgb(0, 0, 0)!important;}#my-svg .default rect{fill:rgb(153, 193, 241)!important;stroke:rgb(98, 160, 234)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .default polygon{fill:rgb(153, 193, 241)!important;stroke:rgb(98, 160, 234)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .default ellipse{fill:rgb(153, 193, 241)!important;stroke:rgb(98, 160, 234)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .default circle{fill:rgb(153, 193, 241)!important;stroke:rgb(98, 160, 234)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .default path{fill:rgb(153, 193, 241)!important;stroke:rgb(98, 160, 234)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .default tspan{fill:rgb(0, 0, 0)!important;}</style><g><marker id="my-svg_flowchart-v2-pointEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-pointStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="4.5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 5 L 10 10 L 10 0 z" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-pointEnd-margin" class="marker flowchart-v2" viewBox="0 0 11.5 14" refX="11.5" refY="7" markerUnits="userSpaceOnUse" markerWidth="10.5" markerHeight="14" orient="auto"><path d="M 0 0 L 11.5 7 L 0 14 z" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-pointStart-margin" class="marker flowchart-v2" viewBox="0 0 11.5 14" refX="1" refY="7" markerUnits="userSpaceOnUse" markerWidth="11.5" markerHeight="14" orient="auto"><polygon points="0,7 11.5,14 11.5,0" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="11" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-1" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleEnd-margin" class="marker flowchart-v2" viewBox="0 0 10 10" refY="5" refX="12.25" markerUnits="userSpaceOnUse" markerWidth="14" markerHeight="14" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleStart-margin" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-2" refY="5" markerUnits="userSpaceOnUse" markerWidth="14" markerHeight="14" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-crossEnd" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="12" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width: 2; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-crossStart" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="-1" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width: 2; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-crossEnd-margin" class="marker cross flowchart-v2" viewBox="0 0 15 15" refX="17.7" refY="7.5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto"><path d="M 1,1 L 14,14 M 1,14 L 14,1" class="arrowMarkerPath" style="stroke-width: 2.5;"/></marker><marker id="my-svg_flowchart-v2-crossStart-margin" class="marker cross flowchart-v2" viewBox="0 0 15 15" refX="-3.5" refY="7.5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto"><path d="M 1,1 L 14,14 M 1,14 L 14,1" class="arrowMarkerPath" style="stroke-width: 2.5; stroke-dasharray: 1, 0;"/></marker><g class="root"><g class="clusters"><g class="cluster" id="my-svg-target" data-look="classic"><rect style="fill:#f6f5f4 !important;stroke:#b5835a !important;stroke-width:1px !important" x="412.078125" y="1077.629991531372" width="208" height="225.32599639892578"/><g class="cluster-label" transform="translate(478.25540924072266, 1077.629991531372)"><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Target</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> device</tspan></tspan></text></g></g></g><g class="cluster" id="my-svg-nfs" data-look="classic"><rect style="fill:#f6f5f4 !important;stroke:#c061cb !important;stroke-width:1px !important" x="433.72412109375" y="1459.2819843292236" width="354.9580078125" height="131.98899841308594"/><g class="cluster-label" transform="translate(578.2842483520508, 1459.2819843292236)"><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">NFS</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> export</tspan></tspan></text></g></g></g><g class="cluster" id="my-svg-sdk" data-look="classic"><rect style="fill:#f6f5f4 !important;stroke:#3584e4 !important;stroke-width:1px !important" x="286.2724181402298" y="390.9889945983887" width="967.3728942871094" height="524.9779968261719"/><g class="cluster-label" transform="translate(668.5057402837845, 390.9889945983887)"><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">SDK</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> (regular</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> bitbake</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> environment)</tspan></tspan></text></g></g></g><g class="cluster" id="my-svg-image_workdir" data-look="classic"><rect style="fill:#ffffff !important;stroke:#57e389 !important;stroke-width:1px !important" x="968.4265624273391" y="760.9779930114746" width="261.21875" height="130.98899841308594"/><g class="cluster-label" transform="translate(1045.5709258306595, 760.9779930114746)"><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Image</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> WORKDIR</tspan></tspan></text></g></g></g><g class="cluster" id="my-svg-recipe_workdir" data-look="classic"><rect style="fill:#ffffff !important;stroke:#62a0ea !important;stroke-width:1px !important" x="310.2724181402298" y="441.9889945983887" width="559.1796875" height="449.9779968261719"/><g class="cluster-label" transform="translate(528.0810118902298, 441.9889945983887)"><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Recipe</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> WORKDIR(s)</tspan></tspan></text></g></g></g></g><g class="edges edgePaths"><path d="M335.49623921712237,60.66299819946289L335.49623921712237,73.59193038759742Q335.49623921712237,80.66299819946289 328.4251714052569,80.66299819946289L272.4364323951988,80.66299819946289Q265.3653645833333,80.66299819946289 265.3653645833333,87.73406601132837L265.3653645833333,153.6629981994629" id="my-svg-L_idesdk_ideconfig_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_idesdk_ideconfig_0" data-points="W3sieCI6MzM1LjQ5NjIzOTIxNzEyMjM3LCJ5Ijo2MC42NjI5OTgxOTk0NjI4OX0seyJ4IjozMzUuNDk2MjM5MjE3MTIyMzcsInkiOjgwLjY2Mjk5ODE5OTQ2Mjg5fSx7IngiOjI2NS4zNjUzNjQ1ODMzMzMzLCJ5Ijo4MC42NjI5OTgxOTk0NjI4OX0seyJ4IjoyNjUuMzY1MzY0NTgzMzMzMywieSI6MTU3LjY2Mjk5ODE5OTQ2Mjl9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M399.74230244954424,60.66299819946289L399.74230244954424,73.59193038759742Q399.74230244954424,80.66299819946289 406.8133702614097,80.66299819946289L558.0935378283641,80.66299819946289Q565.1646056402296,80.66299819946289 565.1646056402296,87.73406601132837L565.1646056402296,109.16299819946289L565.1646056402296,266.4889945983887L565.1646056402296,331.9889945983887L565.1646056402296,353.9179267865232Q565.1646056402296,360.9889945983887 558.0935378283641,360.9889945983887L482.6497359520952,360.9889945983887Q475.57866814022975,360.9889945983887 475.57866814022975,368.06006241025415L475.57866814022975,386.9889945983887" id="my-svg-L_idesdk_sdk_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_idesdk_sdk_0" data-points="W3sieCI6Mzk5Ljc0MjMwMjQ0OTU0NDI0LCJ5Ijo2MC42NjI5OTgxOTk0NjI4OX0seyJ4IjozOTkuNzQyMzAyNDQ5NTQ0MjQsInkiOjgwLjY2Mjk5ODE5OTQ2Mjg5fSx7IngiOjU2NS4xNjQ2MDU2NDAyMjk2LCJ5Ijo4MC42NjI5OTgxOTk0NjI4OX0seyJ4Ijo1NjUuMTY0NjA1NjQwMjI5NiwieSI6MTA5LjE2Mjk5ODE5OTQ2Mjg5fSx7IngiOjU2NS4xNjQ2MDU2NDAyMjk2LCJ5IjoyNjYuNDg4OTk0NTk4Mzg4N30seyJ4Ijo1NjUuMTY0NjA1NjQwMjI5NiwieSI6MzMxLjk4ODk5NDU5ODM4ODd9LHsieCI6NTY1LjE2NDYwNTY0MDIyOTYsInkiOjM2MC45ODg5OTQ1OTgzODg3fSx7IngiOjQ3NS41Nzg2NjgxNDAyMjk3NSwieSI6MzYwLjk4ODk5NDU5ODM4ODd9LHsieCI6NDc1LjU3ODY2ODE0MDIyOTc1LCJ5IjozOTAuOTg4OTk0NTk4Mzg4N31d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1099.0359374273391,867.9669914245605L1099.0359374273391,901.9669914245605L1099.0359374273391,935.9669914245605L1099.0359374273391,948.895923612695Q1099.0359374273391,955.9669914245605 1091.9648696154736,955.9669914245605L1046.9411087054202,955.9669914245605Q1039.8700408935547,955.9669914245605 1039.8700408935547,963.0380592364261L1039.8700408935547,1011.7984914779663L1039.8700408935547,1366.1189861297607L1039.8700408935547,1422.210916517358Q1039.8700408935547,1429.2819843292236 1032.7989730816892,1429.2819843292236L703.8815951556155,1429.2819843292236Q696.81052734375,1429.2819843292236 696.81052734375,1436.3530521410892L696.81052734375,1449.2819843292236L696.81052734375,1495.2819843292236" id="my-svg-L_rootfsdbg_src_rootfsdbg_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_rootfsdbg_src_rootfsdbg_0" data-points="W3sieCI6MTA5OS4wMzU5Mzc0MjczMzkxLCJ5Ijo4NjcuOTY2OTkxNDI0NTYwNX0seyJ4IjoxMDk5LjAzNTkzNzQyNzMzOTEsInkiOjkwMS45NjY5OTE0MjQ1NjA1fSx7IngiOjEwOTkuMDM1OTM3NDI3MzM5MSwieSI6OTM1Ljk2Njk5MTQyNDU2MDV9LHsieCI6MTA5OS4wMzU5Mzc0MjczMzkxLCJ5Ijo5NTUuOTY2OTkxNDI0NTYwNX0seyJ4IjoxMDM5Ljg3MDA0MDg5MzU1NDcsInkiOjk1NS45NjY5OTE0MjQ1NjA1fSx7IngiOjEwMzkuODcwMDQwODkzNTU0NywieSI6MTAxMS43OTg0OTE0Nzc5NjYzfSx7IngiOjEwMzkuODcwMDQwODkzNTU0NywieSI6MTM2Ni4xMTg5ODYxMjk3NjA3fSx7IngiOjEwMzkuODcwMDQwODkzNTU0NywieSI6MTQyOS4yODE5ODQzMjkyMjM2fSx7IngiOjY5Ni44MTA1MjczNDM3NSwieSI6MTQyOS4yODE5ODQzMjkyMjM2fSx7IngiOjY5Ni44MTA1MjczNDM3NSwieSI6MTQ0OS4yODE5ODQzMjkyMjM2fSx7IngiOjY5Ni44MTA1MjczNDM3NSwieSI6MTQ5OS4yODE5ODQzMjkyMjM2fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M243.02942708333333,209.98899459838867L243.02942708333333,227.13624906994045Q243.02942708333333,229.98899459838867 240.17668155488514,229.98899459838867L240.17668155488514,229.98899459838867Q237.3239360264369,229.98899459838867 237.3239360264369,232.8417401268369L237.3239360264369,245.98899459838867" id="my-svg-L_ideconfig_ide_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_ideconfig_ide_0" data-points="W3sieCI6MjQzLjAyOTQyNzA4MzMzMzMzLCJ5IjoyMDkuOTg4OTk0NTk4Mzg4Njd9LHsieCI6MjQzLjAyOTQyNzA4MzMzMzMzLCJ5IjoyMjkuOTg4OTk0NTk4Mzg4Njd9LHsieCI6MjM3LjMyMzkzNjAyNjQzNjksInkiOjIyOS45ODg5OTQ1OTgzODg2N30seyJ4IjoyMzcuMzIzOTM2MDI2NDM2OSwieSI6MjQ5Ljk4ODk5NDU5ODM4ODY3fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M287.7013020833333,209.98899459838867L287.7013020833333,222.9179267865232Q287.7013020833333,229.98899459838867 294.7723698951988,229.98899459838867L456.50760032836416,229.98899459838867Q463.57866814022964,229.98899459838867 463.57866814022964,237.06006241025415L463.57866814022964,266.4889945983887L463.57866814022964,331.9889945983887L463.57866814022975,380.9889945983887L463.57866814022975,431.9889945983887L463.57866814022975,477.9889945983887" id="my-svg-L_ideconfig_native_sysroot_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_ideconfig_native_sysroot_0" data-points="W3sieCI6Mjg3LjcwMTMwMjA4MzMzMzMsInkiOjIwOS45ODg5OTQ1OTgzODg2N30seyJ4IjoyODcuNzAxMzAyMDgzMzMzMywieSI6MjI5Ljk4ODk5NDU5ODM4ODY3fSx7IngiOjQ2My41Nzg2NjgxNDAyMjk2NCwieSI6MjI5Ljk4ODk5NDU5ODM4ODY3fSx7IngiOjQ2My41Nzg2NjgxNDAyMjk2NCwieSI6MjY2LjQ4ODk5NDU5ODM4ODd9LHsieCI6NDYzLjU3ODY2ODE0MDIyOTY0LCJ5IjozMzEuOTg4OTk0NTk4Mzg4N30seyJ4Ijo0NjMuNTc4NjY4MTQwMjI5NzUsInkiOjM4MC45ODg5OTQ1OTgzODg3fSx7IngiOjQ2My41Nzg2NjgxNDAyMjk3NSwieSI6NDMxLjk4ODk5NDU5ODM4ODd9LHsieCI6NDYzLjU3ODY2ODE0MDIyOTc1LCJ5Ijo0ODEuOTg4OTk0NTk4Mzg4N31d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M260.6572693597702,282.9889945983887L260.6572693597702,295.9179267865232Q260.6572693597702,302.9889945983887 267.7283371716357,302.9889945983887L332.4210947654457,302.9889945983887Q339.49216257731115,302.9889945983887 339.49216257731115,310.06006241025415L339.49216257731115,353.9179267865232Q339.49216257731115,360.9889945983887 346.5632303891766,360.9889945983887L397.2544753283642,360.9889945983887Q404.3255431402297,360.9889945983887 404.3255431402297,368.06006241025415L404.32554314022974,380.9889945983887L404.3255431402298,431.9889945983887L404.3255431402298,477.9889945983887" id="my-svg-L_ide_native_sysroot_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_ide_native_sysroot_0" data-points="W3sieCI6MjYwLjY1NzI2OTM1OTc3MDIsInkiOjI4Mi45ODg5OTQ1OTgzODg3fSx7IngiOjI2MC42NTcyNjkzNTk3NzAyLCJ5IjozMDIuOTg4OTk0NTk4Mzg4N30seyJ4IjozMzkuNDkyMTYyNTc3MzExMTUsInkiOjMwMi45ODg5OTQ1OTgzODg3fSx7IngiOjMzOS40OTIxNjI1NzczMTExNSwieSI6MzYwLjk4ODk5NDU5ODM4ODd9LHsieCI6NDA0LjMyNTU0MzE0MDIyOTcsInkiOjM2MC45ODg5OTQ1OTgzODg3fSx7IngiOjQwNC4zMjU1NDMxNDAyMjk3NCwieSI6MzgwLjk4ODk5NDU5ODM4ODd9LHsieCI6NDA0LjMyNTU0MzE0MDIyOTgsInkiOjQzMS45ODg5OTQ1OTgzODg3fSx7IngiOjQwNC4zMjU1NDMxNDAyMjk4LCJ5Ijo0ODEuOTg4OTk0NTk4Mzg4N31d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M213.99060269310357,282.9889945983887L213.99060269310357,295.9179267865232Q213.99060269310357,302.9889945983887 206.9195348812381,302.9889945983887L95.93565114519882,302.9889945983887Q88.86458333333334,302.9889945983887 88.86458333333334,310.06006241025415L88.86458333333334,331.9889945983887L88.86458333333334,1011.7984914779663L88.86458333333334,1073.629991531372" id="my-svg-L_ide_srcdir_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_ide_srcdir_0" data-points="W3sieCI6MjEzLjk5MDYwMjY5MzEwMzU3LCJ5IjoyODIuOTg4OTk0NTk4Mzg4N30seyJ4IjoyMTMuOTkwNjAyNjkzMTAzNTcsInkiOjMwMi45ODg5OTQ1OTgzODg3fSx7IngiOjg4Ljg2NDU4MzMzMzMzMzM0LCJ5IjozMDIuOTg4OTk0NTk4Mzg4N30seyJ4Ijo4OC44NjQ1ODMzMzMzMzMzNCwieSI6MzMxLjk4ODk5NDU5ODM4ODd9LHsieCI6ODguODY0NTgzMzMzMzMzMzQsInkiOjEwMTEuNzk4NDkxNDc3OTY2M30seyJ4Ijo4OC44NjQ1ODMzMzMzMzMzNCwieSI6MTA3Ny42Mjk5OTE1MzEzNzJ9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M370.4666145688011,548.9779930114746L370.4666145688011,571.9069251996091Q370.4666145688011,578.9779930114746 363.39554675693563,578.9779930114746L351.6289770235237,578.9779930114746Q344.5579092116582,578.9779930114746 344.5579092116582,586.04906082334L344.5579092116583,901.9669914245605L344.5579092116583,935.9669914245605L344.5579092116583,948.895923612695Q344.5579092116583,955.9669914245605 337.4868413997928,955.9669914245605L162.80023447853216,955.9669914245605Q155.72916666666669,955.9669914245605 155.72916666666669,963.0380592364261L155.72916666666669,1073.629991531372" id="my-svg-L_native_sysroot_srcdir_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_native_sysroot_srcdir_0" data-points="W3sieCI6MzcwLjQ2NjYxNDU2ODgwMTEsInkiOjU0OC45Nzc5OTMwMTE0NzQ2fSx7IngiOjM3MC40NjY2MTQ1Njg4MDExLCJ5Ijo1NzguOTc3OTkzMDExNDc0Nn0seyJ4IjozNDQuNTU3OTA5MjExNjU4MiwieSI6NTc4Ljk3Nzk5MzAxMTQ3NDZ9LHsieCI6MzQ0LjU1NzkwOTIxMTY1ODMsInkiOjkwMS45NjY5OTE0MjQ1NjA1fSx7IngiOjM0NC41NTc5MDkyMTE2NTgzLCJ5Ijo5MzUuOTY2OTkxNDI0NTYwNX0seyJ4IjozNDQuNTU3OTA5MjExNjU4MywieSI6OTU1Ljk2Njk5MTQyNDU2MDV9LHsieCI6MTU1LjcyOTE2NjY2NjY2NjY5LCJ5Ijo5NTUuOTY2OTkxNDI0NTYwNX0seyJ4IjoxNTUuNzI5MTY2NjY2NjY2NjksInkiOjEwNzcuNjI5OTkxNTMxMzcyfV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M446.64920385451546,548.9779930114746L446.64920385451546,595.9069251996091Q446.64920385451546,602.9779930114746 453.72027166638094,602.9779930114746L469.88103782836424,602.9779930114746Q476.9521056402297,602.9779930114746 476.9521056402297,610.0490608233401L476.9521056402297,670.9779930114746" id="my-svg-L_native_sysroot_builddir_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_native_sysroot_builddir_0" data-points="W3sieCI6NDQ2LjY0OTIwMzg1NDUxNTQ2LCJ5Ijo1NDguOTc3OTkzMDExNDc0Nn0seyJ4Ijo0NDYuNjQ5MjAzODU0NTE1NDYsInkiOjYwMi45Nzc5OTMwMTE0NzQ2fSx7IngiOjQ3Ni45NTIxMDU2NDAyMjk3LCJ5Ijo2MDIuOTc3OTkzMDExNDc0Nn0seyJ4Ijo0NzYuOTUyMTA1NjQwMjI5NywieSI6Njc0Ljk3Nzk5MzAxMTQ3NDZ9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M472.04340028308684,548.9779930114746L472.04340028308684,583.9069251996091Q472.04340028308684,590.9779930114746 479.1144680949523,590.9779930114746L665.8810378283642,590.9779930114746Q672.9521056402298,590.9779930114746 672.9521056402298,598.0490608233401L672.9521056402298,670.9779930114746" id="my-svg-L_native_sysroot_sysroot_0" class="edge-thickness-normal edge-pattern-dotted edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_native_sysroot_sysroot_0" data-points="W3sieCI6NDcyLjA0MzQwMDI4MzA4Njg0LCJ5Ijo1NDguOTc3OTkzMDExNDc0Nn0seyJ4Ijo0NzIuMDQzNDAwMjgzMDg2ODQsInkiOjU5MC45Nzc5OTMwMTE0NzQ2fSx7IngiOjY3Mi45NTIxMDU2NDAyMjk4LCJ5Ijo1OTAuOTc3OTkzMDExNDc0Nn0seyJ4Ijo2NzIuOTUyMTA1NjQwMjI5OCwieSI6Njc0Ljk3Nzk5MzAxMTQ3NDZ9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M476.9521056402297,713.6409765896788L476.9521056402297,713.6409950256348L476.9521056402297,778.5699272137692Q476.9521056402297,785.6409950256348 484.0231734520952,785.6409950256348L626.5174961616976,785.6409950256348Q633.588563973563,785.6409950256348 633.588563973563,792.7120628375003L633.588563973563,811.6409950256348" id="my-svg-L_builddir_destdir_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_builddir_destdir_0" data-points="W3sieCI6NDc2Ljk1MjEwNTY0MDIyOTcsInkiOjcxMy42NDA5NzY1ODk2Nzg4fSx7IngiOjQ3Ni45NTIxMDU2NDAyMjk3LCJ5Ijo3MTMuNjQwOTk1MDI1NjM0OH0seyJ4Ijo0NzYuOTUyMTA1NjQwMjI5NywieSI6Nzg1LjY0MDk5NTAyNTYzNDh9LHsieCI6NjMzLjU4ODU2Mzk3MzU2MywieSI6Nzg1LjY0MDk5NTAyNTYzNDh9LHsieCI6NjMzLjU4ODU2Mzk3MzU2MywieSI6ODE1LjY0MDk5NTAyNTYzNDh9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M661.2021056402297,867.9669914245605L661.2021056402298,901.9669914245605L661.2021056402298,935.9669914245605L661.2021056402298,948.895923612695Q661.2021056402298,955.9669914245605 668.2731734520953,955.9669914245605L746.6320571881345,955.9669914245605Q753.703125,955.9669914245605 753.703125,963.0380592364261L753.703125,1011.7984914779663L753.703125,1366.1189861297607L753.703125,1402.210916517358Q753.703125,1409.2819843292236 746.6320571881345,1409.2819843292236L646.8099935931155,1409.2819843292236Q639.7389257812499,1409.2819843292236 639.7389257812499,1416.3530521410892L639.7389257812499,1449.2819843292236L639.7389257812499,1495.2819843292236" id="my-svg-L_destdir_rootfsdbg_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_destdir_rootfsdbg_0" data-points="W3sieCI6NjYxLjIwMjEwNTY0MDIyOTcsInkiOjg2Ny45NjY5OTE0MjQ1NjA1fSx7IngiOjY2MS4yMDIxMDU2NDAyMjk4LCJ5Ijo5MDEuOTY2OTkxNDI0NTYwNX0seyJ4Ijo2NjEuMjAyMTA1NjQwMjI5OCwieSI6OTM1Ljk2Njk5MTQyNDU2MDV9LHsieCI6NjYxLjIwMjEwNTY0MDIyOTgsInkiOjk1NS45NjY5OTE0MjQ1NjA1fSx7IngiOjc1My43MDMxMjUsInkiOjk1NS45NjY5OTE0MjQ1NjA1fSx7IngiOjc1My43MDMxMjUsInkiOjEwMTEuNzk4NDkxNDc3OTY2M30seyJ4Ijo3NTMuNzAzMTI1LCJ5IjoxMzY2LjExODk4NjEyOTc2MDd9LHsieCI6NzUzLjcwMzEyNSwieSI6MTQwOS4yODE5ODQzMjkyMjM2fSx7IngiOjYzOS43Mzg5MjU3ODEyNDk5LCJ5IjoxNDA5LjI4MTk4NDMyOTIyMzZ9LHsieCI6NjM5LjczODkyNTc4MTI0OTksInkiOjE0NDkuMjgxOTg0MzI5MjIzNn0seyJ4Ijo2MzkuNzM4OTI1NzgxMjQ5OSwieSI6MTQ5OS4yODE5ODQzMjkyMjM2fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M497.43759671165833,548.9779930114746L497.43759671165833,571.9069251996091Q497.43759671165833,578.9779930114746 504.5086645235238,578.9779930114746L838.3810378283642,578.9779930114746Q845.4521056402298,578.9779930114746 845.4521056402298,586.0490608233401L845.4521056402298,778.5699272137692Q845.4521056402298,785.6409950256348 838.3810378283642,785.6409950256348L695.8867151187619,785.6409950256348Q688.8156473068964,785.6409950256348 688.8156473068964,792.7120628375003L688.8156473068964,811.6409950256348" id="my-svg-L_native_sysroot_destdir_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_native_sysroot_destdir_0" data-points="W3sieCI6NDk3LjQzNzU5NjcxMTY1ODMzLCJ5Ijo1NDguOTc3OTkzMDExNDc0Nn0seyJ4Ijo0OTcuNDM3NTk2NzExNjU4MzMsInkiOjU3OC45Nzc5OTMwMTE0NzQ2fSx7IngiOjg0NS40NTIxMDU2NDAyMjk4LCJ5Ijo1NzguOTc3OTkzMDExNDc0Nn0seyJ4Ijo4NDUuNDUyMTA1NjQwMjI5OCwieSI6Nzg1LjY0MDk5NTAyNTYzNDh9LHsieCI6Njg4LjgxNTY0NzMwNjg5NjQsInkiOjc4NS42NDA5OTUwMjU2MzQ4fSx7IngiOjY4OC44MTU2NDczMDY4OTY0LCJ5Ijo4MTUuNjQwOTk1MDI1NjM0OH1d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M395.86081099737254,548.9779930114746L395.86081099737254,583.9069251996091Q395.86081099737254,590.9779930114746 388.78974318550706,590.9779930114746L374.82607523780945,590.9779930114746Q367.755007425944,590.9779930114746 367.755007425944,598.0490608233401L367.755007425944,901.9669914245605L367.7550074259441,935.9669914245605L367.7550074259441,968.895923612695Q367.7550074259441,975.9669914245605 360.6839396140786,975.9669914245605L323.6648178118655,975.9669914245605Q316.59375,975.9669914245605 316.59375,983.0380592364261L316.59375,1011.7984914779663L316.59375,1366.1189861297607L316.59375,1422.210916517358Q316.59375,1429.2819843292236 323.6648178118655,1429.2819843292236L518.5246548443846,1429.2819843292236Q525.59572265625,1429.2819843292236 525.59572265625,1436.3530521410892L525.5957226562499,1449.2819843292236L525.5957226562499,1495.2819843292236" id="my-svg-L_native_sysroot_rootfsdbg_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_native_sysroot_rootfsdbg_0" data-points="W3sieCI6Mzk1Ljg2MDgxMDk5NzM3MjU0LCJ5Ijo1NDguOTc3OTkzMDExNDc0Nn0seyJ4IjozOTUuODYwODEwOTk3MzcyNTQsInkiOjU5MC45Nzc5OTMwMTE0NzQ2fSx7IngiOjM2Ny43NTUwMDc0MjU5NDQsInkiOjU5MC45Nzc5OTMwMTE0NzQ2fSx7IngiOjM2Ny43NTUwMDc0MjU5NDQsInkiOjkwMS45NjY5OTE0MjQ1NjA1fSx7IngiOjM2Ny43NTUwMDc0MjU5NDQxLCJ5Ijo5MzUuOTY2OTkxNDI0NTYwNX0seyJ4IjozNjcuNzU1MDA3NDI1OTQ0MSwieSI6OTc1Ljk2Njk5MTQyNDU2MDV9LHsieCI6MzE2LjU5Mzc1LCJ5Ijo5NzUuOTY2OTkxNDI0NTYwNX0seyJ4IjozMTYuNTkzNzUsInkiOjEwMTEuNzk4NDkxNDc3OTY2M30seyJ4IjozMTYuNTkzNzUsInkiOjEzNjYuMTE4OTg2MTI5NzYwN30seyJ4IjozMTYuNTkzNzUsInkiOjE0MjkuMjgxOTg0MzI5MjIzNn0seyJ4Ijo1MjUuNTk1NzIyNjU2MjUsInkiOjE0MjkuMjgxOTg0MzI5MjIzNn0seyJ4Ijo1MjUuNTk1NzIyNjU2MjQ5OSwieSI6MTQ0OS4yODE5ODQzMjkyMjM2fSx7IngiOjUyNS41OTU3MjI2NTYyNDk5LCJ5IjoxNDk5LjI4MTk4NDMyOTIyMzZ9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M421.255007425944,548.9779930114746L421.255007425944,595.9069251996091Q421.255007425944,602.9779930114746 414.1839396140785,602.9779930114746L398.02317345209514,602.9779930114746Q390.95210564022966,602.9779930114746 390.95210564022966,610.0490608233401L390.95210564022966,901.9669914245605L390.9521056402298,935.9669914245605L390.9521056402298,948.895923612695Q390.9521056402298,955.9669914245605 398.02317345209525,955.9669914245605L509.0070571881345,955.9669914245605Q516.078125,955.9669914245605 516.078125,963.0380592364261L516.078125,1067.629991531372L516.078125,1113.629991531372" id="my-svg-L_native_sysroot_debugserver_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_native_sysroot_debugserver_0" data-points="W3sieCI6NDIxLjI1NTAwNzQyNTk0NCwieSI6NTQ4Ljk3Nzk5MzAxMTQ3NDZ9LHsieCI6NDIxLjI1NTAwNzQyNTk0NCwieSI6NjAyLjk3Nzk5MzAxMTQ3NDZ9LHsieCI6MzkwLjk1MjEwNTY0MDIyOTY2LCJ5Ijo2MDIuOTc3OTkzMDExNDc0Nn0seyJ4IjozOTAuOTUyMTA1NjQwMjI5NjYsInkiOjkwMS45NjY5OTE0MjQ1NjA1fSx7IngiOjM5MC45NTIxMDU2NDAyMjk4LCJ5Ijo5MzUuOTY2OTkxNDI0NTYwNX0seyJ4IjozOTAuOTUyMTA1NjQwMjI5OCwieSI6OTU1Ljk2Njk5MTQyNDU2MDV9LHsieCI6NTE2LjA3ODEyNSwieSI6OTU1Ljk2Njk5MTQyNDU2MDV9LHsieCI6NTE2LjA3ODEyNSwieSI6MTA2Ny42Mjk5OTE1MzEzNzJ9LHsieCI6NTE2LjA3ODEyNSwieSI6MTExNy42Mjk5OTE1MzEzNzJ9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M516.078125,1165.292989730835L516.078125,1226.292989730835" id="my-svg-L_debugserver_appbin_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_debugserver_appbin_0" data-points="W3sieCI6NTE2LjA3ODEyNSwieSI6MTE2NS4yOTI5ODk3MzA4MzV9LHsieCI6NTE2LjA3ODEyNSwieSI6MTIzMC4yOTI5ODk3MzA4MzV9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M436.078125,1302.9559879302979L436.078125,1402.210916517358Q436.078125,1409.2819843292236 443.1491928118655,1409.2819843292236L575.5962564068845,1409.2819843292236Q582.66732421875,1409.2819843292236 582.66732421875,1416.3530521410892L582.66732421875,1449.2819843292236L582.66732421875,1495.2819843292236" id="my-svg-L_target_rootfsdbg_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_target_rootfsdbg_0" data-points="W3sieCI6NDM2LjA3ODEyNSwieSI6MTMwMi45NTU5ODc5MzAyOTc5fSx7IngiOjQzNi4wNzgxMjUsInkiOjE0MDkuMjgxOTg0MzI5MjIzNn0seyJ4Ijo1ODIuNjY3MzI0MjE4NzUsInkiOjE0MDkuMjgxOTg0MzI5MjIzNn0seyJ4Ijo1ODIuNjY3MzI0MjE4NzUsInkiOjE0NDkuMjgxOTg0MzI5MjIzNn0seyJ4Ijo1ODIuNjY3MzI0MjE4NzUsInkiOjE0OTkuMjgxOTg0MzI5MjIzNn1d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/></g><g class="edgeLabels"><g class="edgeLabel" transform="translate(265.2091145833333, 109.16299819946289)"><g class="label" data-id="L_idesdk_ideconfig_0" transform="translate(0, -10.829999923706055)"><g><rect class="background" style="" x="-26.84375" y="2.3299999237060547" width="53.6875" height="17"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">generates</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(564.7817931402296, 183.82599639892578)"><g class="label" data-id="L_idesdk_sdk_0" transform="translate(0, -10.329999923706055)"><g><rect class="background" style="" x="-87.1171875" y="1.3299999237060547" width="174.234375" height="18"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">generates</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> the</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> SDK</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> (via</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> bitbake)</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(1039.4548721313477, 1185.292989730835)"><g class="label" data-id="L_rootfsdbg_src_rootfsdbg_0" transform="translate(-0.16295623779296875, -17.661499977111816)"><g><rect class="background" style="" x="-53.421875" y="1.3299999237060547" width="107.16966247558594" height="32.66300010681152"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">deployed,</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> extracted</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(--nfs=rootfs-dbg)</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(339.2846354166666, 331.9889945983887)"><g class="label" data-id="L_ide_native_sysroot_0" transform="translate(-0.16747283935546875, -10.329999923706055)"><g><rect class="background" style="" x="-87.125" y="1.3299999237060547" width="174.58494567871094" height="18"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">calls</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> directly,</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> no</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> bitbake</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> needed</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(88.86458333333334, 658.4779930114746)"><g class="label" data-id="L_ide_srcdir_0" transform="translate(-0.03365325927734375, -10.829999923706055)"><g><rect class="background" style="" x="-31" y="2.3299999237060547" width="62.06730651855469" height="17"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">edit</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> source</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(155.72916666666669, 1011.7984914779663)"><g class="label" data-id="L_native_sysroot_srcdir_0" transform="translate(-0.3126373291015625, -10.829999923706055)"><g><rect class="background" style="" x="-49.5625" y="2.3299999237060547" width="99.75027465820312" height="17"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">reads</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> source</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> from</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(476.76758873349144, 641.9779930114746)"><g class="label" data-id="L_native_sysroot_builddir_0" transform="translate(-0.16704559326171875, -10.329999923706055)"><g><rect class="background" style="" x="-25.1484375" y="1.3299999237060547" width="50.63096618652344" height="18"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">builds</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> in</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(672.8169203985306, 641.9779930114746)"><g class="label" data-id="L_native_sysroot_sysroot_0" transform="translate(-0.14606475830078125, -10.829999923706055)"><g><rect class="background" style="" x="-25.21875" y="2.3299999237060547" width="50.72962951660156" height="17"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">--sysroot</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(476.87306511288597, 746.6409950256348)"><g class="label" data-id="L_builddir_destdir_0" transform="translate(-0.13970947265625, -10.329999923706055)"><g><rect class="background" style="" x="-18.28125" y="1.3299999237060547" width="36.8419189453125" height="18"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">install</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(753.4531249999999, 1185.292989730835)"><g class="label" data-id="L_destdir_rootfsdbg_0" transform="translate(0, -17.661499977111816)"><g><rect class="background" style="" x="-60.75" y="1.3299999237060547" width="121.5" height="32.66300010681152"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">devtool</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> deploy-target</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(direct</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> write,</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> no</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> SSH)</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(845.1893340337845, 694.3094940185547)"><g class="label" data-id="L_native_sysroot_destdir_0" transform="translate(-0.1669158935546875, -17.661499977111816)"><g><rect class="background" style="" x="-49.0703125" y="1.3299999237060547" width="98.47445678710938" height="32.66300010681152"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">debug</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> symbols:</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">unstripped</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> binary</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(316.33593749999994, 1185.292989730835)"><g class="label" data-id="L_native_sysroot_rootfsdbg_0" transform="translate(0, -24.992998123168945)"><g><rect class="background" style="" x="-43.7421875" y="1.3299999237060547" width="87.484375" height="47.32599639892578"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">debug</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> symbols:</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">other</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> recipes'</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">shared</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> libraries</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(515.9064559936523, 1011.7984914779663)"><g class="label" data-id="L_native_sysroot_debugserver_0" transform="translate(-0.16426849365234375, -18.161499977111816)"><g><rect class="background" style="" x="-38.1640625" y="2.3299999237060547" width="76.65666198730469" height="31.663000106811523"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">remote</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> debug</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">protocol</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(515.8614807128906, 1197.792989730835)"><g class="label" data-id="L_debugserver_appbin_0" transform="translate(-0.166168212890625, -10.829999923706055)"><g><rect class="background" style="" x="-32.1171875" y="2.3299999237060547" width="64.56671142578125" height="17"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">attach</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> /</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> run</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(435.6640625, 1366.1189861297607)"><g class="label" data-id="L_target_rootfsdbg_0" transform="translate(0, -25.492998123168945)"><g><rect class="background" style="" x="-43.0859375" y="2.3299999237060547" width="86.171875" height="46.32599639892578"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">booted</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> from</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(NFS-mounted</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">root</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> filesystem)</tspan></tspan></text></g></g></g></g><g class="nodes"><g class="node default orange" id="my-svg-flowchart-idesdk-0" data-look="classic" transform="translate(367.6192708333333, 36.331499099731445)"><rect class="basic label-container" style="fill:#ffbe6f !important;stroke:#ffa348 !important;stroke-width:1px !important" x="-106.36909484863281" y="-24.33150005340576" width="212.73818969726562" height="48.66300010681152"/><g class="label" style="color:#000000 !important" transform="translate(0, -14.331500053405762)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">devtool</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> ide-sdk</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> --nfs=rootfs-dbg</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(bitbake</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> tinfoil</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> client)</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-ideconfig-1" data-look="classic" transform="translate(265.3653645833333, 183.82599639892578)"><polygon points="0,0 138.015625,0 138.015625,-52.32599639892578 0,-52.32599639892578 0,0 -8,0 146.015625,0 146.015625,-52.32599639892578 -8,-52.32599639892578 -8,0" class="label-container" transform="translate(-69.0078125,26.16299819946289)" style="fill:#99c1f1 !important;stroke:#62a0ea !important;stroke-width:1px !important"/><g class="label" style="color:#000000 !important" transform="translate(0, -21.16299819946289)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">IDE</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> configuration</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(e.g.</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> build</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> tool</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> preset,</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">debugger</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> launch</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> config)</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-ide-2" data-look="classic" transform="translate(237.3239360264369, 266.4889945983887)"><rect class="basic label-container" style="fill:#99c1f1 !important;stroke:#62a0ea !important;stroke-width:1px !important" x="-80" y="-16.5" width="160" height="33"/><g class="label" style="color:#000000 !important" transform="translate(0, -6.5)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">IDE</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> (e.g.</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> VSCode)</tspan></tspan></text></g></g></g><g class="node default green" id="my-svg-flowchart-srcdir-3" data-look="classic" transform="translate(122.296875, 1104.292989730835)"><polygon points="0,0 204.59375,0 204.59375,-53.32599639892578 0,-53.32599639892578 0,0 -8,0 212.59375,0 212.59375,-53.32599639892578 -8,-53.32599639892578 -8,0" class="label-container" transform="translate(-102.296875,26.66299819946289)" style="fill:#8ff0a4 !important;stroke:#57e389 !important;stroke-width:1px !important"/><g class="label" style="color:#000000 !important" transform="translate(0, -21.66299819946289)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">S</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> =</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> e.g.</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> workspace/sources/&lt;recipe&gt;</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(source</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> code,</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> extracted</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> by</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">devtool</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> modify,</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> edited</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> in</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> the</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> IDE)</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-native_sysroot-4" data-look="classic" transform="translate(433.9521056402297, 515.4834938049316)"><polygon points="0,0 183.359375,0 183.359375,-66.98899841308594 0,-66.98899841308594 0,0 -8,0 191.359375,0 191.359375,-66.98899841308594 -8,-66.98899841308594 -8,0" class="label-container" transform="translate(-91.6796875,33.49449920654297)" style="fill:#99c1f1 !important;stroke:#62a0ea !important;stroke-width:1px !important"/><g class="label" style="color:#000000 !important" transform="translate(0, -28.49449920654297)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">recipe-sysroot-native</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">build</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> tool</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> (e.g.</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> CMake)</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">cross-compiler</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> (e.g.</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> &lt;arch&gt;-gcc)</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="3.2em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">debugger</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> (e.g.</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> gdb)</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-builddir-5" data-look="classic" transform="translate(476.9521056402297, 694.3094940185547)"><polygon points="0,0 130,0 130,-38.66300010681152 0,-38.66300010681152 0,0 -8,0 138,0 138,-38.66300010681152 -8,-38.66300010681152 -8,0" class="label-container" transform="translate(-65,19.33150005340576)" style="fill:#99c1f1 !important;stroke:#62a0ea !important;stroke-width:1px !important"/><g class="label" style="color:#000000 !important" transform="translate(0, -14.331500053405762)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">B</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> (build</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> directory)</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">build</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> artifacts)</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-sysroot-6" data-look="classic" transform="translate(672.9521056402298, 693.8094940185547)"><polygon points="0,0 130,0 130,-37.66300010681152 0,-37.66300010681152 0,0 -8,0 138,0 138,-37.66300010681152 -8,-37.66300010681152 -8,0" class="label-container" transform="translate(-65,18.83150005340576)" style="fill:#99c1f1 !important;stroke:#62a0ea !important;stroke-width:1px !important"/><g class="label" style="color:#000000 !important" transform="translate(0, -13.831500053405762)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">recipe-sysroot</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(target</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> headers</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> &amp;</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> libs)</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-destdir-7" data-look="classic" transform="translate(661.2021056402298, 841.8039932250977)"><polygon points="0,0 171.28125,0 171.28125,-52.32599639892578 0,-52.32599639892578 0,0 -8,0 179.28125,0 179.28125,-52.32599639892578 -8,-52.32599639892578 -8,0" class="label-container" transform="translate(-85.640625,26.16299819946289)" style="fill:#99c1f1 !important;stroke:#62a0ea !important;stroke-width:1px !important"/><g class="label" style="color:#000000 !important" transform="translate(0, -21.16299819946289)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">D</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> =</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> image</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(non-stripped,</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> relocated</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> rpath,</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">managed</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> by</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> pseudo)</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-rootfsdbg_src-8" data-look="classic" transform="translate(1099.0359374273391, 834.4724922180176)"><polygon points="0,0 197.21875,0 197.21875,-66.98899841308594 0,-66.98899841308594 0,0 -8,0 205.21875,0 205.21875,-66.98899841308594 -8,-66.98899841308594 -8,0" class="label-container" transform="translate(-98.609375,33.49449920654297)" style="fill:#99c1f1 !important;stroke:#62a0ea !important;stroke-width:1px !important"/><g class="label" style="color:#000000 !important" transform="translate(0, -28.49449920654297)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">rootfs-dbg</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(stripped</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> binaries</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> +</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> debug</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> symbols</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">of</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> every</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> recipe,</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> combined</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> by</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="3.2em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">image-combined-dbg)</tspan></tspan></text></g></g></g><g class="node default green" id="my-svg-flowchart-rootfsdbg-9" data-look="classic" transform="translate(611.203125, 1533.2764835357666)"><polygon points="0,0 290.9580078125,0 290.9580078125,-67.98899841308594 0,-67.98899841308594 0,0 -8,0 298.9580078125,0 298.9580078125,-67.98899841308594 -8,-67.98899841308594 -8,0" class="label-container" transform="translate(-145.47900390625,33.99449920654297)" style="fill:#8ff0a4 !important;stroke:#57e389 !important;stroke-width:1px !important"/><g class="label" style="color:#000000 !important" transform="translate(0, -28.99449920654297)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">&lt;workspace&gt;/nfs-exports/&lt;image-recipe&gt;/rootfs-dbg</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(copy,</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> kept</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> in</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> sync</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> by</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> devtool</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">deploy-target;</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> persists</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> across</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="3.2em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">debug</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> sessions)</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-appbin-10" data-look="classic" transform="translate(516.078125, 1254.6244888305664)"><rect class="basic label-container" style="fill:#99c1f1 !important;stroke:#62a0ea !important;stroke-width:1px !important" x="-80" y="-24.33150005340576" width="160" height="48.66300010681152"/><g class="label" style="color:#000000 !important" transform="translate(0, -14.331500053405762)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Application</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> binary</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(running)</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-debugserver-11" data-look="classic" transform="translate(516.078125, 1141.4614906311035)"><rect class="basic label-container" style="fill:#99c1f1 !important;stroke:#62a0ea !important;stroke-width:1px !important" x="-80" y="-23.83150005340576" width="160" height="47.66300010681152"/><g class="label" style="color:#000000 !important" transform="translate(0, -13.831500053405762)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">debug-server</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(e.g.</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> gdbserver)</tspan></tspan></text></g></g></g></g></g></g><defs><filter id="my-svg-drop-shadow" height="130%" width="130%"><feDropShadow dx="4" dy="4" stdDeviation="0" flood-opacity="0.06" flood-color="#000000"/></filter></defs><defs><filter id="my-svg-drop-shadow-small" height="150%" width="150%"><feDropShadow dx="2" dy="2" stdDeviation="0" flood-opacity="0.06" flood-color="#000000"/></filter></defs><linearGradient id="my-svg-gradient" gradientUnits="objectBoundingBox" x1="0%" y1="0%" x2="100%" y2="0%"><stop offset="0%" stop-color="#62a0ea" stop-opacity="1"/><stop offset="100%" stop-color="hsl(92.7272727273, 35.8620689655%, 67.2549019608%)" stop-opacity="1"/></linearGradient></svg>
\ No newline at end of file
diff --git a/documentation/dev-manual/figures/devtool-ide-sdk-workflow.mmd b/documentation/dev-manual/figures/devtool-ide-sdk-workflow.mmd
new file mode 100644
index 000000000..7584dcbb3
--- /dev/null
+++ b/documentation/dev-manual/figures/devtool-ide-sdk-workflow.mmd
@@ -0,0 +1,74 @@ 
+---
+config:
+  theme: base
+  look: classic
+  htmlLabels: false
+  fontFamily: '"Nimbus Roman", "Times New Roman", Times, serif'
+  fontSize: 13.33
+  themeVariables:
+    primaryColor: "#99c1f1"
+    primaryBorderColor: "#62a0ea"
+    primaryTextColor: "#000000"
+    lineColor: "#000000"
+    edgeLabelBackground: "#ffffff"
+    clusterBkg: "#f6f5f4"
+    clusterBorder: "#c0bfbc"
+    titleColor: "#000000"
+    fontSize: 13.33px
+  themeCSS: |
+    .cluster-label tspan { font-weight: bold; }
+    rect { rx: 7.5px; ry: 7.5px; }
+  flowchart:
+    htmlLabels: false
+    useMaxWidth: false
+    curve: basis
+    padding: 10
+    nodeSpacing: 23
+    rankSpacing: 37
+    wrappingWidth: 270
+---
+%% Regenerate: npx -y @mermaid-js/mermaid-cli -b transparent -i devtool-ide-sdk-workflow.mmd -o devtool-ide-sdk-workflow.svg
+%%   && sed -i 's/<text /<text xml:space="preserve" /g' devtool-ide-sdk-workflow.svg
+%% (xml:space keeps the spaces between words in rsvg-convert, used for the PDF output)
+flowchart TB
+    modify["devtool modify recipe --debug-build"]
+
+    subgraph workspace["devtool workspace"]
+        ws_appends[["appends/recipe.bbappend"]]
+        ws_src[["sources/recipe<br/>(extracted here)"]]
+    end
+
+    gensdk["devtool ide-sdk recipe image<br/>(generate SDK + IDE config)"]
+
+    subgraph loop["Edit/build/debug loop"]
+        edit["Edit source code"]
+        build["Build<br/>(build tool called<br/>directly by the IDE)"]
+        deploy["Deploy to target"]
+        debug["Debug remotely<br/>(e.g. GDB/LLDB + gdbserver/lldb-server)"]
+    end
+
+    finish["devtool finish recipe layer<br/>(turn changes into patches)"]
+    rerun_note>"rerun only if recipe<br/>deps/config change"]
+
+    modify --> ws_appends
+    modify -->|extracts| ws_src
+    ws_appends --> gensdk
+    ws_src --> gensdk
+    gensdk -->|"one-time setup"| edit
+    edit --> build
+    build --> deploy
+    deploy --> debug
+    debug -->|repeat| edit
+    edit -.->|"when done"| finish
+    gensdk -.- rerun_note
+
+    style workspace fill:#f6f5f4,stroke:#c061cb,stroke-width:1px
+    style loop fill:#f6f5f4,stroke:#57e389,stroke-width:1px
+
+    classDef orange fill:#ffbe6f,stroke:#ffa348,stroke-width:1px,color:#000000;
+    classDef green fill:#8ff0a4,stroke:#57e389,stroke-width:1px,color:#000000;
+    classDef note fill:#f6f5f4,stroke:#c0bfbc,stroke-width:1px,color:#5e5c64;
+    classDef default fill:#99c1f1,stroke:#62a0ea,stroke-width:1px,color:#000000;
+    class modify,gensdk,finish orange;
+    class ws_src,edit,build,deploy,debug green;
+    class rerun_note note;
diff --git a/documentation/dev-manual/figures/devtool-ide-sdk-workflow.svg b/documentation/dev-manual/figures/devtool-ide-sdk-workflow.svg
new file mode 100644
index 000000000..389b64a6b
--- /dev/null
+++ b/documentation/dev-manual/figures/devtool-ide-sdk-workflow.svg
@@ -0,0 +1 @@ 
+<svg id="my-svg" width="474.1289978027344" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="flowchart" height="1037.1031494140625" viewBox="4 4 474.1289978027344 1037.1031494140625" role="graphics-document document" aria-roledescription="flowchart-v2" style="background-color: transparent;"><style>#my-svg{font-family:"Nimbus Roman","Times New Roman",Times,serif;font-size:13.33px;fill:#000000;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#my-svg .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#my-svg .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#my-svg .error-icon{fill:hsl(32.7272727273, 75.8620689655%, 82.2549019608%);}#my-svg .error-text{fill:rgb(10.9224137931, 42.1293103448, 79.5775862068);stroke:rgb(10.9224137931, 42.1293103448, 79.5775862068);}#my-svg .edge-thickness-normal{stroke-width:1px;}#my-svg .edge-thickness-thick{stroke-width:3.5px;}#my-svg .edge-pattern-solid{stroke-dasharray:0;}#my-svg .edge-thickness-invisible{stroke-width:0;fill:none;}#my-svg .edge-pattern-dashed{stroke-dasharray:3;}#my-svg .edge-pattern-dotted{stroke-dasharray:2;}#my-svg .marker{fill:#000000;stroke:#000000;}#my-svg .marker.cross{stroke:#000000;}#my-svg svg{font-family:"Nimbus Roman","Times New Roman",Times,serif;font-size:13.33px;}#my-svg p{margin:0;}#my-svg .label{font-family:"Nimbus Roman","Times New Roman",Times,serif;color:#000000;}#my-svg .cluster-label text{fill:#000000;}#my-svg .cluster-label span{color:#000000;}#my-svg .cluster-label span p{background-color:transparent;}#my-svg .label text,#my-svg span{fill:#000000;color:#000000;}#my-svg .node rect,#my-svg .node circle,#my-svg .node ellipse,#my-svg .node polygon,#my-svg .node path{fill:#99c1f1;stroke:#62a0ea;stroke-width:1px;}#my-svg .rough-node .label text,#my-svg .node .label text,#my-svg .image-shape .label,#my-svg .icon-shape .label{text-anchor:middle;}#my-svg .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#my-svg .rough-node .label,#my-svg .node .label,#my-svg .image-shape .label,#my-svg .icon-shape .label{text-align:center;}#my-svg .node.clickable{cursor:pointer;}#my-svg .root .anchor path{fill:#000000!important;stroke-width:0;stroke:#000000;}#my-svg .arrowheadPath{fill:#0b0b0b;}#my-svg .edgePaths .path{stroke:#000000;stroke-width:1px;}#my-svg .flowchart-link{stroke:#000000;fill:none;}#my-svg .edgeLabel{background-color:#ffffff;text-align:center;}#my-svg .edgeLabel p{background-color:#ffffff;}#my-svg .edgeLabel rect{opacity:0.5;background-color:#ffffff;fill:#ffffff;}#my-svg .labelBkg{background-color:rgba(255, 255, 255, 0.5);}#my-svg .cluster rect{fill:#f6f5f4;stroke:#c0bfbc;stroke-width:1px;}#my-svg .cluster text{fill:#000000;}#my-svg .cluster span{color:#000000;}#my-svg .node .collapsed-indicator{fill:#c0bfbc;stroke:none;opacity:0.6;}#my-svg .node .collapsed-separator{stroke:#c0bfbc;stroke-width:0.75px;}#my-svg div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"Nimbus Roman","Times New Roman",Times,serif;font-size:12px;background:hsl(32.7272727273, 75.8620689655%, 82.2549019608%);border:1px solid hsl(32.7272727273, 35.8620689655%, 72.2549019608%);border-radius:2px;pointer-events:none;z-index:100;}#my-svg .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#000000;}#my-svg rect.text{fill:none;stroke-width:0;}#my-svg .icon-shape,#my-svg .image-shape{background-color:#ffffff;text-align:center;}#my-svg .icon-shape p,#my-svg .image-shape p{background-color:#ffffff;padding:2px;}#my-svg .icon-shape .label rect,#my-svg .image-shape .label rect{opacity:0.5;background-color:#ffffff;fill:#ffffff;}#my-svg .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#my-svg .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#my-svg .node .neo-node{stroke:#62a0ea;}#my-svg [data-look="neo"].node rect,#my-svg [data-look="neo"].cluster rect,#my-svg [data-look="neo"].node polygon{stroke:url(#my-svg-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg [data-look="neo"].swimlane.cluster rect{filter:none;}#my-svg [data-look="neo"].node path{stroke:url(#my-svg-gradient);stroke-width:1px;}#my-svg [data-look="neo"].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg [data-look="neo"].node .neo-line path{stroke:#62a0ea;filter:none;}#my-svg [data-look="neo"].node circle{stroke:url(#my-svg-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg [data-look="neo"].node circle .state-start{fill:#000000;}#my-svg [data-look="neo"].icon-shape .icon{fill:url(#my-svg-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg [data-look="neo"].icon-shape .icon-neo path{stroke:url(#my-svg-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg .cluster-label tspan{font-weight:bold;}#my-svg rect{rx:7.5px;ry:7.5px;}#my-svg :root{--mermaid-font-family:"Nimbus Roman","Times New Roman",Times,serif;}#my-svg .orange rect{fill:rgb(255, 190, 111)!important;stroke:rgb(255, 163, 72)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .orange polygon{fill:rgb(255, 190, 111)!important;stroke:rgb(255, 163, 72)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .orange ellipse{fill:rgb(255, 190, 111)!important;stroke:rgb(255, 163, 72)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .orange circle{fill:rgb(255, 190, 111)!important;stroke:rgb(255, 163, 72)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .orange path{fill:rgb(255, 190, 111)!important;stroke:rgb(255, 163, 72)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .orange tspan{fill:rgb(0, 0, 0)!important;}#my-svg .green rect{fill:rgb(143, 240, 164)!important;stroke:rgb(87, 227, 137)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .green polygon{fill:rgb(143, 240, 164)!important;stroke:rgb(87, 227, 137)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .green ellipse{fill:rgb(143, 240, 164)!important;stroke:rgb(87, 227, 137)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .green circle{fill:rgb(143, 240, 164)!important;stroke:rgb(87, 227, 137)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .green path{fill:rgb(143, 240, 164)!important;stroke:rgb(87, 227, 137)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .green tspan{fill:rgb(0, 0, 0)!important;}#my-svg .note rect{fill:rgb(246, 245, 244)!important;stroke:rgb(192, 191, 188)!important;stroke-width:1px!important;color:rgb(94, 92, 100)!important;}#my-svg .note polygon{fill:rgb(246, 245, 244)!important;stroke:rgb(192, 191, 188)!important;stroke-width:1px!important;color:rgb(94, 92, 100)!important;}#my-svg .note ellipse{fill:rgb(246, 245, 244)!important;stroke:rgb(192, 191, 188)!important;stroke-width:1px!important;color:rgb(94, 92, 100)!important;}#my-svg .note circle{fill:rgb(246, 245, 244)!important;stroke:rgb(192, 191, 188)!important;stroke-width:1px!important;color:rgb(94, 92, 100)!important;}#my-svg .note path{fill:rgb(246, 245, 244)!important;stroke:rgb(192, 191, 188)!important;stroke-width:1px!important;color:rgb(94, 92, 100)!important;}#my-svg .note tspan{fill:rgb(94, 92, 100)!important;}#my-svg .default rect{fill:rgb(153, 193, 241)!important;stroke:rgb(98, 160, 234)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .default polygon{fill:rgb(153, 193, 241)!important;stroke:rgb(98, 160, 234)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .default ellipse{fill:rgb(153, 193, 241)!important;stroke:rgb(98, 160, 234)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .default circle{fill:rgb(153, 193, 241)!important;stroke:rgb(98, 160, 234)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .default path{fill:rgb(153, 193, 241)!important;stroke:rgb(98, 160, 234)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .default tspan{fill:rgb(0, 0, 0)!important;}</style><g><marker id="my-svg_flowchart-v2-pointEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-pointStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="4.5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 5 L 10 10 L 10 0 z" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-pointEnd-margin" class="marker flowchart-v2" viewBox="0 0 11.5 14" refX="11.5" refY="7" markerUnits="userSpaceOnUse" markerWidth="10.5" markerHeight="14" orient="auto"><path d="M 0 0 L 11.5 7 L 0 14 z" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-pointStart-margin" class="marker flowchart-v2" viewBox="0 0 11.5 14" refX="1" refY="7" markerUnits="userSpaceOnUse" markerWidth="11.5" markerHeight="14" orient="auto"><polygon points="0,7 11.5,14 11.5,0" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="11" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-1" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleEnd-margin" class="marker flowchart-v2" viewBox="0 0 10 10" refY="5" refX="12.25" markerUnits="userSpaceOnUse" markerWidth="14" markerHeight="14" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleStart-margin" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-2" refY="5" markerUnits="userSpaceOnUse" markerWidth="14" markerHeight="14" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-crossEnd" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="12" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width: 2; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-crossStart" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="-1" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width: 2; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-crossEnd-margin" class="marker cross flowchart-v2" viewBox="0 0 15 15" refX="17.7" refY="7.5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto"><path d="M 1,1 L 14,14 M 1,14 L 14,1" class="arrowMarkerPath" style="stroke-width: 2.5;"/></marker><marker id="my-svg_flowchart-v2-crossStart-margin" class="marker cross flowchart-v2" viewBox="0 0 15 15" refX="-3.5" refY="7.5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto"><path d="M 1,1 L 14,14 M 1,14 L 14,1" class="arrowMarkerPath" style="stroke-width: 2.5; stroke-dasharray: 1, 0;"/></marker><g class="root"><g class="clusters"><g class="cluster" id="my-svg-loop" data-look="classic"><rect style="fill:#f6f5f4 !important;stroke:#57e389 !important;stroke-width:1px !important" x="12" y="489.4511375427246" width="334.7396469116211" height="387.9889945983887"/><g class="cluster-label" transform="translate(117.22919845581055, 489.4511375427246)"><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Edit/build/debug</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> loop</tspan></tspan></text></g></g></g><g class="cluster" id="my-svg-workspace" data-look="classic"><rect style="fill:#f6f5f4 !important;stroke:#c061cb !important;stroke-width:1px !important" x="64.92638193766277" y="153" width="405.20262145996094" height="102.66300201416016"/><g class="cluster-label" transform="translate(215.396772257487, 153)"><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">devtool</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> workspace</tspan></tspan></text></g></g></g></g><g class="edges edgePaths"><path d="M261.91944554646807,46L261.91944554646807,58.928932188134524Q261.91944554646807,66 254.8483777346026,66L202.7643412290204,66Q195.69327341715493,66 195.69327341715493,73.07106781186548L195.69327341715493,94.5L195.69327341715493,115.92893218813452Q195.69327341715493,123 188.62220560528945,123L176.59876047950868,123Q169.5276926676432,123 169.5276926676432,130.07106781186548L169.5276926676432,143L169.52769266764318,197.33150100708008" id="my-svg-L_modify_ws_appends_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_modify_ws_appends_0" data-points="W3sieCI6MjYxLjkxOTQ0NTU0NjQ2ODA3LCJ5Ijo0Nn0seyJ4IjoyNjEuOTE5NDQ1NTQ2NDY4MDcsInkiOjY2fSx7IngiOjE5NS42OTMyNzM0MTcxNTQ5MywieSI6NjZ9LHsieCI6MTk1LjY5MzI3MzQxNzE1NDkzLCJ5Ijo5NC41fSx7IngiOjE5NS42OTMyNzM0MTcxNTQ5MywieSI6MTIzfSx7IngiOjE2OS41Mjc2OTI2Njc2NDMyLCJ5IjoxMjN9LHsieCI6MTY5LjUyNzY5MjY2NzY0MzIsInkiOjE0M30seyJ4IjoxNjkuNTI3NjkyNjY3NjQzMTgsInkiOjIwMS4zMzE1MDEwMDcwODAwOH1d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M333.0684120178222,46L333.0684120178222,115.92893218813452Q333.0684120178222,123 340.1394798296877,123L366.05793558575823,123Q373.1290033976237,123 373.1290033976237,130.07106781186548L373.1290033976237,143L373.1290033976237,190" id="my-svg-L_modify_ws_src_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_modify_ws_src_0" data-points="W3sieCI6MzMzLjA2ODQxMjAxNzgyMjIsInkiOjQ2fSx7IngiOjMzMy4wNjg0MTIwMTc4MjIyLCJ5IjoxMjN9LHsieCI6MzczLjEyOTAwMzM5NzYyMzcsInkiOjEyM30seyJ4IjozNzMuMTI5MDAzMzk3NjIzNywieSI6MTQzfSx7IngiOjM3My4xMjkwMDMzOTc2MjM3LCJ5IjoxOTR9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M169.52769266764318,224.33150100708008L169.5276926676432,272.12513732910156L169.5276926676432,285.0540695172361Q169.5276926676432,292.12513732910156 176.59876047950868,292.12513732910156L234.64456583478164,292.12513732910156Q241.71563364664712,292.12513732910156 241.71563364664712,299.19620514096704L241.71563364664712,308.12513732910156" id="my-svg-L_ws_appends_gensdk_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_ws_appends_gensdk_0" data-points="W3sieCI6MTY5LjUyNzY5MjY2NzY0MzE4LCJ5IjoyMjQuMzMxNTAxMDA3MDgwMDh9LHsieCI6MTY5LjUyNzY5MjY2NzY0MzIsInkiOjI3Mi4xMjUxMzczMjkxMDE1Nn0seyJ4IjoxNjkuNTI3NjkyNjY3NjQzMiwieSI6MjkyLjEyNTEzNzMyOTEwMTU2fSx7IngiOjI0MS43MTU2MzM2NDY2NDcxMiwieSI6MjkyLjEyNTEzNzMyOTEwMTU2fSx7IngiOjI0MS43MTU2MzM2NDY2NDcxMiwieSI6MzEyLjEyNTEzNzMyOTEwMTU2fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M373.1290033976237,231.6629840550413L373.1290033976237,231.66300201416016L373.1290033976237,272.12513732910156L373.1290033976237,285.0540695172361Q373.1290033976237,292.12513732910156 366.05793558575823,292.12513732910156L307.41690979184597,292.12513732910156Q300.3458419799805,292.12513732910156 300.3458419799805,299.19620514096704L300.3458419799805,308.12513732910156" id="my-svg-L_ws_src_gensdk_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_ws_src_gensdk_0" data-points="W3sieCI6MzczLjEyOTAwMzM5NzYyMzcsInkiOjIzMS42NjI5ODQwNTUwNDEzfSx7IngiOjM3My4xMjkwMDMzOTc2MjM3LCJ5IjoyMzEuNjYzMDAyMDE0MTYwMTZ9LHsieCI6MzczLjEyOTAwMzM5NzYyMzcsInkiOjI3Mi4xMjUxMzczMjkxMDE1Nn0seyJ4IjozNzMuMTI5MDAzMzk3NjIzNywieSI6MjkyLjEyNTEzNzMyOTEwMTU2fSx7IngiOjMwMC4zNDU4NDE5Nzk5ODA1LCJ5IjoyOTIuMTI1MTM3MzI5MTAxNTZ9LHsieCI6MzAwLjM0NTg0MTk3OTk4MDUsInkiOjMxMi4xMjUxMzczMjkxMDE1Nn1d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M241.71563364664712,360.78813552856445L241.71563364664712,373.717067716699Q241.71563364664712,380.78813552856445 234.64456583478164,380.78813552856445L228.92992197853212,380.78813552856445Q221.85885416666665,380.78813552856445 221.85885416666665,387.85920334042993L221.85885416666665,479.4511375427246L221.85885416666665,526.4511375427246" id="my-svg-L_gensdk_edit_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_gensdk_edit_0" data-points="W3sieCI6MjQxLjcxNTYzMzY0NjY0NzEyLCJ5IjozNjAuNzg4MTM1NTI4NTY0NDV9LHsieCI6MjQxLjcxNTYzMzY0NjY0NzEyLCJ5IjozODAuNzg4MTM1NTI4NTY0NDV9LHsieCI6MjIxLjg1ODg1NDE2NjY2NjY1LCJ5IjozODAuNzg4MTM1NTI4NTY0NDV9LHsieCI6MjIxLjg1ODg1NDE2NjY2NjY1LCJ5Ijo0NzkuNDUxMTM3NTQyNzI0Nn0seyJ4IjoyMjEuODU4ODU0MTY2NjY2NjUsInkiOjUzMC40NTExMzc1NDI3MjQ2fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M221.85885416666662,563.4511375427246L221.85885416666662,586.3800697308591Q221.85885416666662,593.4511375427246 228.9299219785321,593.4511375427246L235.66857909975556,593.4511375427246Q242.73964691162104,593.4511375427246 242.73964691162104,600.5222053545901L242.73964691162104,619.4511375427246" id="my-svg-L_edit_build_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_edit_build_0" data-points="W3sieCI6MjIxLjg1ODg1NDE2NjY2NjYyLCJ5Ijo1NjMuNDUxMTM3NTQyNzI0Nn0seyJ4IjoyMjEuODU4ODU0MTY2NjY2NjIsInkiOjU5My40NTExMzc1NDI3MjQ2fSx7IngiOjI0Mi43Mzk2NDY5MTE2MjEwNCwieSI6NTkzLjQ1MTEzNzU0MjcyNDZ9LHsieCI6MjQyLjczOTY0NjkxMTYyMTA0LCJ5Ijo2MjMuNDUxMTM3NTQyNzI0Nn1d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M242.73964691162104,686.7771339416504L242.73964691162104,706.7771339416504" id="my-svg-L_build_deploy_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_build_deploy_0" data-points="W3sieCI6MjQyLjczOTY0NjkxMTYyMTA0LCJ5Ijo2ODYuNzc3MTMzOTQxNjUwNH0seyJ4IjoyNDIuNzM5NjQ2OTExNjIxMDQsInkiOjcxMC43NzcxMzM5NDE2NTA0fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M242.73964691162104,744.7771339416504L242.73964691162104,767.7060661297849Q242.73964691162104,774.7771339416504 235.66857909975556,774.7771339416504L216.39815114519877,774.7771339416504Q209.3270833333333,774.7771339416504 209.3270833333333,781.8482017535159L209.3270833333333,800.7771339416504" id="my-svg-L_deploy_debug_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_deploy_debug_0" data-points="W3sieCI6MjQyLjczOTY0NjkxMTYyMTA0LCJ5Ijo3NDQuNzc3MTMzOTQxNjUwNH0seyJ4IjoyNDIuNzM5NjQ2OTExNjIxMDQsInkiOjc3NC43NzcxMzM5NDE2NTA0fSx7IngiOjIwOS4zMjcwODMzMzMzMzMzLCJ5Ijo3NzQuNzc3MTMzOTQxNjUwNH0seyJ4IjoyMDkuMzI3MDgzMzMzMzMzMywieSI6ODA0Ljc3NzEzMzk0MTY1MDR9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M128.06354166666665,804.7771339416504L128.06354166666665,781.8482017535159Q128.06354166666665,774.7771339416504 120.99247385480118,774.7771339416504L101.72204590024435,774.7771339416504Q94.65097808837888,774.7771339416504 94.65097808837888,767.7060661297849L94.65097808837888,600.5222053545901Q94.65097808837888,593.4511375427246 101.72204590024435,593.4511375427246L180.18778635480118,593.4511375427246Q187.25885416666665,593.4511375427246 187.25885416666665,586.3800697308591L187.25885416666665,567.4511375427246" id="my-svg-L_debug_edit_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_debug_edit_0" data-points="W3sieCI6MTI4LjA2MzU0MTY2NjY2NjY1LCJ5Ijo4MDQuNzc3MTMzOTQxNjUwNH0seyJ4IjoxMjguMDYzNTQxNjY2NjY2NjUsInkiOjc3NC43NzcxMzM5NDE2NTA0fSx7IngiOjk0LjY1MDk3ODA4ODM3ODg4LCJ5Ijo3NzQuNzc3MTMzOTQxNjUwNH0seyJ4Ijo5NC42NTA5NzgwODgzNzg4OCwieSI6NTkzLjQ1MTEzNzU0MjcyNDZ9LHsieCI6MTg3LjI1ODg1NDE2NjY2NjY1LCJ5Ijo1OTMuNDUxMTM3NTQyNzI0Nn0seyJ4IjoxODcuMjU4ODU0MTY2NjY2NjUsInkiOjU2My40NTExMzc1NDI3MjQ2fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M256.45885416666664,563.4511375427246L256.45885416666664,586.3800697308591Q256.45885416666664,593.4511375427246 263.5299219785321,593.4511375427246L333.70034993308894,593.4511375427246Q340.7714177449544,593.4511375427246 340.7714177449544,600.5222053545901L340.7714177449544,887.4401321411133L340.7714177449544,980.4401321411133" id="my-svg-L_edit_finish_0" class="edge-thickness-normal edge-pattern-dotted edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_edit_finish_0" data-points="W3sieCI6MjU2LjQ1ODg1NDE2NjY2NjY0LCJ5Ijo1NjMuNDUxMTM3NTQyNzI0Nn0seyJ4IjoyNTYuNDU4ODU0MTY2NjY2NjQsInkiOjU5My40NTExMzc1NDI3MjQ2fSx7IngiOjM0MC43NzE0MTc3NDQ5NTQ0LCJ5Ijo1OTMuNDUxMTM3NTQyNzI0Nn0seyJ4IjozNDAuNzcxNDE3NzQ0OTU0NCwieSI6ODg3LjQ0MDEzMjE0MTExMzN9LHsieCI6MzQwLjc3MTQxNzc0NDk1NDQsInkiOjk4NC40NDAxMzIxNDExMTMzfV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M300.3458419799805,360.78813552856445L300.3458419799805,373.717067716699Q300.3458419799805,380.78813552856445 307.41690979184597,380.78813552856445L366.05793558575823,380.78813552856445Q373.1290033976237,380.78813552856445 373.1290033976237,387.85920334042993L373.1290033976237,400.78813552856445" id="my-svg-L_gensdk_rerun_note_0" class="edge-thickness-normal edge-pattern-dotted edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_gensdk_rerun_note_0" data-points="W3sieCI6MzAwLjM0NTg0MTk3OTk4MDUsInkiOjM2MC43ODgxMzU1Mjg1NjQ0NX0seyJ4IjozMDAuMzQ1ODQxOTc5OTgwNSwieSI6MzgwLjc4ODEzNTUyODU2NDQ1fSx7IngiOjM3My4xMjkwMDMzOTc2MjM3LCJ5IjozODAuNzg4MTM1NTI4NTY0NDV9LHsieCI6MzczLjEyOTAwMzM5NzYyMzcsInkiOjQwMC43ODgxMzU1Mjg1NjQ0NX1d" data-look="classic"/></g><g class="edgeLabels"><g class="edgeLabel" transform="translate(333.0684120178222, 94.5)"><g class="label" data-id="L_modify_ws_src_0" transform="translate(0, -10.829999923706055)"><g><rect class="background" style="" x="-22.484375" y="2.3299999237060547" width="44.96875" height="17"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">extracts</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(221.57748972574868, 420.11963653564453)"><g class="label" data-id="L_gensdk_edit_0" transform="translate(-0.16394805908203125, -10.829999923706055)"><g><rect class="background" style="" x="-41.5546875" y="2.3299999237060547" width="83.43727111816406" height="17"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">one-time</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> setup</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(94.44531249999997, 655.1141357421875)"><g class="label" data-id="L_debug_edit_0" transform="translate(-0.14589691162109375, -10.829999923706055)"><g><rect class="background" style="" x="-18.1484375" y="2.3299999237060547" width="36.58866882324219" height="17"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">repeat</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(340.3709737141927, 935.9401321411133)"><g class="label" data-id="L_edit_finish_0" transform="translate(-0.03705596923828125, -10.829999923706055)"><g><rect class="background" style="" x="-31.0625" y="2.3299999237060547" width="62.19911193847656" height="17"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">when</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> done</tspan></tspan></text></g></g></g></g><g class="nodes"><g class="node default orange" id="my-svg-flowchart-modify-0" data-look="classic" transform="translate(297.4939287821452, 29)"><rect class="basic label-container" style="fill:#ffbe6f !important;stroke:#ffa348 !important;stroke-width:1px !important" x="-116.72344970703125" y="-17" width="233.4468994140625" height="34"/><g class="label" style="color:#000000 !important" transform="translate(0, -7)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">devtool</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> modify</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> recipe</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> --debug-build</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-ws_appends-1" data-look="classic" transform="translate(169.5276926676432, 212.83150100708008)"><polygon points="0,0 145.20262145996094,0 145.20262145996094,-23 0,-23 0,0 -8,0 153.20262145996094,0 153.20262145996094,-23 -8,-23 -8,0" class="label-container" transform="translate(-72.60131072998047,11.5)" style="fill:#99c1f1 !important;stroke:#62a0ea !important;stroke-width:1px !important"/><g class="label" style="color:#000000 !important" transform="translate(0, -6.5)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">appends/recipe.bbappend</tspan></tspan></text></g></g></g><g class="node default green" id="my-svg-flowchart-ws_src-2" data-look="classic" transform="translate(373.1290033976237, 212.83150100708008)"><polygon points="0,0 130,0 130,-37.66300010681152 0,-37.66300010681152 0,0 -8,0 138,0 138,-37.66300010681152 -8,-37.66300010681152 -8,0" class="label-container" transform="translate(-65,18.83150005340576)" style="fill:#8ff0a4 !important;stroke:#57e389 !important;stroke-width:1px !important"/><g class="label" style="color:#000000 !important" transform="translate(0, -13.831500053405762)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">sources/recipe</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(extracted</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> here)</tspan></tspan></text></g></g></g><g class="node default orange" id="my-svg-flowchart-gensdk-3" data-look="classic" transform="translate(271.03073781331375, 336.456636428833)"><rect class="basic label-container" style="fill:#ffbe6f !important;stroke:#ffa348 !important;stroke-width:1px !important" x="-97.9453125" y="-24.33150005340576" width="195.890625" height="48.66300010681152"/><g class="label" style="color:#000000 !important" transform="translate(0, -14.331500053405762)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">devtool</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> ide-sdk</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> recipe</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> image</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(generate</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> SDK</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> +</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> IDE</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> config)</tspan></tspan></text></g></g></g><g class="node default green" id="my-svg-flowchart-edit-4" data-look="classic" transform="translate(221.85885416666665, 546.9511375427246)"><rect class="basic label-container" style="fill:#8ff0a4 !important;stroke:#57e389 !important;stroke-width:1px !important" x="-80" y="-16.5" width="160" height="33"/><g class="label" style="color:#000000 !important" transform="translate(0, -6.5)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Edit</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> source</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> code</tspan></tspan></text></g></g></g><g class="node default green" id="my-svg-flowchart-build-5" data-look="classic" transform="translate(242.73964691162107, 655.1141357421875)"><rect class="basic label-container" style="fill:#8ff0a4 !important;stroke:#57e389 !important;stroke-width:1px !important" x="-80" y="-31.66299819946289" width="160" height="63.32599639892578"/><g class="label" style="color:#000000 !important" transform="translate(0, -21.66299819946289)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Build</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(build</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> tool</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> called</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">directly</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> by</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> the</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> IDE)</tspan></tspan></text></g></g></g><g class="node default green" id="my-svg-flowchart-deploy-6" data-look="classic" transform="translate(242.73964691162107, 727.7771339416504)"><rect class="basic label-container" style="fill:#8ff0a4 !important;stroke:#57e389 !important;stroke-width:1px !important" x="-80" y="-17" width="160" height="34"/><g class="label" style="color:#000000 !important" transform="translate(0, -7)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Deploy</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> to</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> target</tspan></tspan></text></g></g></g><g class="node default green" id="my-svg-flowchart-debug-7" data-look="classic" transform="translate(168.6953125, 829.1086330413818)"><rect class="basic label-container" style="fill:#8ff0a4 !important;stroke:#57e389 !important;stroke-width:1px !important" x="-132.6953125" y="-24.33150005340576" width="265.390625" height="48.66300010681152"/><g class="label" style="color:#000000 !important" transform="translate(0, -14.331500053405762)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Debug</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> remotely</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(e.g.</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> GDB/LLDB</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> +</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> gdbserver/lldb-server)</tspan></tspan></text></g></g></g><g class="node default orange" id="my-svg-flowchart-finish-8" data-look="classic" transform="translate(340.7714177449544, 1008.7716312408447)"><rect class="basic label-container" style="fill:#ffbe6f !important;stroke:#ffa348 !important;stroke-width:1px !important" x="-91.4296875" y="-24.33150005340576" width="182.859375" height="48.66300010681152"/><g class="label" style="color:#000000 !important" transform="translate(0, -14.331500053405762)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">devtool</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> finish</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> recipe</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> layer</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(turn</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> changes</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> into</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> patches)</tspan></tspan></text></g></g></g><g class="node default note" id="my-svg-flowchart-rerun_note-9" data-look="classic" transform="translate(373.1290033976237, 420.11963653564453)"><g class="basic label-container outer-path" transform="translate(4.83287501335144,0)"><path d="M-74.66575002670288 -19.33150005340576 C-71.81081832369532 -13.621636647390641, -68.95588662068776 -7.911773241375522, -65 0 C-68.41475458107954 6.829509162159082, -71.82950916215908 13.659018324318165, -74.66575002670288 19.33150005340576 C-42.14355957053174 19.33150005340576, -9.621369114360604 19.33150005340576, 65 19.33150005340576 C65 5.070088766914385, 65 -9.191322519576993, 65 -19.33150005340576 C14.73133435747387 -19.33150005340576, -35.53733128505226 -19.33150005340576, -74.66575002670288 -19.33150005340576" stroke="none" stroke-width="0" fill="#f6f5f4" style="fill:#f6f5f4 !important;stroke:#c0bfbc !important;stroke-width:1px !important"/><path d="M-74.66575002670288 -19.33150005340576 C-72.7068635475771 -15.41372709515419, -70.7479770684513 -11.495954136902618, -65 0 M-74.66575002670288 -19.33150005340576 C-71.4714319250667 -12.9428638501334, -68.27711382343051 -6.554227646861037, -65 0 M-65 0 C-68.22327074297088 6.4465414859417525, -71.44654148594175 12.893082971883505, -74.66575002670288 19.33150005340576 M-65 0 C-67.61763053044977 5.235261060899553, -70.23526106089955 10.470522121799107, -74.66575002670288 19.33150005340576 M-74.66575002670288 19.33150005340576 C-30.467000641108264 19.33150005340576, 13.731748744486353 19.33150005340576, 65 19.33150005340576 M-74.66575002670288 19.33150005340576 C-44.89536705766545 19.33150005340576, -15.124984088628018 19.33150005340576, 65 19.33150005340576 M65 19.33150005340576 C65 7.155197923932967, 65 -5.021104205539828, 65 -19.33150005340576 M65 19.33150005340576 C65 8.673802657021279, 65 -1.9838947393632047, 65 -19.33150005340576 M65 -19.33150005340576 C25.46684856712566 -19.33150005340576, -14.066302865748682 -19.33150005340576, -74.66575002670288 -19.33150005340576 M65 -19.33150005340576 C29.464748686343484 -19.33150005340576, -6.070502627313033 -19.33150005340576, -74.66575002670288 -19.33150005340576" stroke="#c0bfbc" stroke-width="1" fill="none" stroke-dasharray="0 0" style="fill:#f6f5f4 !important;stroke:#c0bfbc !important;stroke-width:1px !important"/></g><g class="label" style="color:#5e5c64 !important" transform="translate(4.791706800460815, -17.661499977111816)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#5e5c64 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">rerun</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> only</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> if</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> recipe</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">deps/config</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> change</tspan></tspan></text></g></g></g></g></g></g><defs><filter id="my-svg-drop-shadow" height="130%" width="130%"><feDropShadow dx="4" dy="4" stdDeviation="0" flood-opacity="0.06" flood-color="#000000"/></filter></defs><defs><filter id="my-svg-drop-shadow-small" height="150%" width="150%"><feDropShadow dx="2" dy="2" stdDeviation="0" flood-opacity="0.06" flood-color="#000000"/></filter></defs><linearGradient id="my-svg-gradient" gradientUnits="objectBoundingBox" x1="0%" y1="0%" x2="100%" y2="0%"><stop offset="0%" stop-color="#62a0ea" stop-opacity="1"/><stop offset="100%" stop-color="hsl(92.7272727273, 35.8620689655%, 67.2549019608%)" stop-opacity="1"/></linearGradient></svg>
\ No newline at end of file
diff --git a/documentation/sphinx-static/theme_overrides.css b/documentation/sphinx-static/theme_overrides.css
index f9e067239..9c4b23f06 100644
--- a/documentation/sphinx-static/theme_overrides.css
+++ b/documentation/sphinx-static/theme_overrides.css
@@ -96,6 +96,11 @@  em {
   color: #444;
 }
 
+/* Scale with the page, but never beyond the size the text is meant for */
+img.max-natural-size {
+    max-width: max-content;
+}
+
 [alt='Permalink'] { color: #eee; }
 [alt='Permalink']:hover { color: black; }