Commit a65918f3 authored by Dominik Charousset's avatar Dominik Charousset

Documentation update

parent 304cdf2d
...@@ -33,7 +33,7 @@ add_core_example(message_passing request) ...@@ -33,7 +33,7 @@ add_core_example(message_passing request)
add_core_example(message_passing typed_calculator) add_core_example(message_passing typed_calculator)
# flow API # flow API
add_core_example(flow from-callable) add_core_example(flow iota)
add_core_example(flow observe-on) add_core_example(flow observe-on)
add_core_example(flow spsc-buffer-resource) add_core_example(flow spsc-buffer-resource)
......
...@@ -25,7 +25,7 @@ void caf_main(caf::actor_system& sys, const config& cfg) { ...@@ -25,7 +25,7 @@ void caf_main(caf::actor_system& sys, const config& cfg) {
// Get an observable factory. // Get an observable factory.
->make_observable() ->make_observable()
// Produce an integer sequence starting at 1, i.e., 1, 2, 3, ... // Produce an integer sequence starting at 1, i.e., 1, 2, 3, ...
.from_callable([i = 0]() mutable { return ++i; }) .iota(1)
// Only take the requested number of items from the infinite sequence. // Only take the requested number of items from the infinite sequence.
.take(n) .take(n)
// Print each integer. // Print each integer.
......
...@@ -29,7 +29,7 @@ void caf_main(caf::actor_system& sys, const config& cfg) { ...@@ -29,7 +29,7 @@ void caf_main(caf::actor_system& sys, const config& cfg) {
// Get an observable factory. // Get an observable factory.
->make_observable() ->make_observable()
// Produce an integer sequence starting at 1, i.e., 1, 2, 3, ... // Produce an integer sequence starting at 1, i.e., 1, 2, 3, ...
.from_callable([i = 0]() mutable { return ++i; }) .iota(1)
// Only take the requested number of items from the infinite sequence. // Only take the requested number of items from the infinite sequence.
.take(cfg.n) .take(cfg.n)
// Switch to `snk` for further processing. // Switch to `snk` for further processing.
......
...@@ -19,7 +19,7 @@ void source(caf::event_based_actor* self, ...@@ -19,7 +19,7 @@ void source(caf::event_based_actor* self,
// Get an observable factory. // Get an observable factory.
->make_observable() ->make_observable()
// Produce an integer sequence starting at 1, i.e., 1, 2, 3, ... // Produce an integer sequence starting at 1, i.e., 1, 2, 3, ...
.from_callable([i = 0]() mutable { return ++i; }) .iota(1)
// Only take the requested number of items from the infinite sequence. // Only take the requested number of items from the infinite sequence.
.take(n) .take(n)
// Subscribe the resource to the sequence, thereby starting the stream. // Subscribe the resource to the sequence, thereby starting the stream.
......
...@@ -7,11 +7,11 @@ Data flows, or *streams*, are potentially unbound sequences of values. The flow ...@@ -7,11 +7,11 @@ Data flows, or *streams*, are potentially unbound sequences of values. The flow
API in CAF makes it easy to generate, transform, and consume observable API in CAF makes it easy to generate, transform, and consume observable
sequences with a `ReactiveX <https://reactivex.io/>`_-style interface. sequences with a `ReactiveX <https://reactivex.io/>`_-style interface.
Flows that pass through two or more actors use backpressure to make sure that Data flows in CAF use backpressure to make sure that fast senders cannot
fast senders cannot overwhelm receivers. overwhelm receivers.
We do not assume prior experience with ReactiveX for this chapter and there are We do not assume prior experience with ReactiveX for this chapter and there are
some key differences to ReactiveX implementations that we pointer out in some key differences to ReactiveX implementations that we point out in
`Key Differences to ReactiveX`_. `Key Differences to ReactiveX`_.
Introduction Introduction
...@@ -27,23 +27,43 @@ and ``subscription``. ...@@ -27,23 +27,43 @@ and ``subscription``.
``observer`` ``observer``
Subscribes to and consumes values from an observable. This interface bundles Subscribes to and consumes values from an observable. This interface bundles
callbacks for the observable, namely ``on_subscribe``, ``on_next``, callbacks for the observable, namely ``on_subscribe``, ``on_next``,
``on_complete`` and ``on_error``. ``on_complete`` and ``on_error``.
``subscription`` ``subscription``
Manages the flow of items between an observable and an observer. An observer Manages the flow of items between an observable and an observer. An observer
calls ``request`` to ask for more items or ``cancel`` to stop receiving data. calls ``request`` to ask for more items or ``dispose`` to stop receiving data.
When working with data flows, the primitive building blocks usually remain in When working with data flows, these interfaces usually remain hidden and
the background. For example, the code snippet below illustrates a trivial data applications leverage high-level *operators* that either generate or transform
flow for integers inside a single actor that only uses the high-level an ``observable``. For example, the code snippet below illustrates a trivial
data flow for integers inside a single actor that only uses the high-level
composition API without any manual setup for observers or subscriptions: composition API without any manual setup for observers or subscriptions:
.. literalinclude:: /examples/flow/from-callable.cpp .. literalinclude:: /examples/flow/iota.cpp
:language: C++ :language: C++
:start-after: --(rst-main-begin)-- :start-after: --(rst-main-begin)--
:end-before: --(rst-main-end)-- :end-before: --(rst-main-end)--
In the concurrency model of CAF, all of these building blocks describe
processing steps that happen *inside* of an actor. The actor owns all of its
``observer``, ``observable`` and ``subscription`` objects and they cannot
outlive their parent actor. This means that an ``observable`` *must not* be
shared with others.
To move data from one actor to another, CAF provides asynchronous buffers.
The following figure depicts the general architecture when working with data
flows across actor boundaries:
.. image:: flow.svg
:alt: CAF flow running through two actors.
Here, actor A creates an ``observbale`` and then applies the ``flat_map`` and
``filter`` operators to it. The resulting items then flow into an asynchronous
buffer that connects to actor B. Actor B then applies the ``map`` and ``filter``
operators to the incoming data before terminating the data flow, e.g., by
printing each value.
Concurrent Processing Concurrent Processing
--------------------- ---------------------
...@@ -162,14 +182,53 @@ into complex data stream operations. ...@@ -162,14 +182,53 @@ into complex data stream operations.
The operators presented here are available on the template classes The operators presented here are available on the template classes
``observable``, ``generation`` and ``transformation``. ``observable``, ``generation`` and ``transformation``.
Concat
++++++
The ``concat`` operator takes multiple input observables and re-emits the
observed items as a single sequence of items without interleaving them.
.. image:: op/concat.svg
Concat Map
++++++++++
The ``concat_map`` operator takes a function object converts a given input to an
``observable`` and then applies ``concat`` to all of them.
.. image:: op/concat_map.svg
Distinct
++++++++
The ``distinct`` operator makes all items unique by filtering all items have
been emitted in the past.
.. image:: op/distinct.svg
Filter Filter
++++++ ++++++
The ``filter`` operator re-emits items from its input observable that pass a The ``filter`` operator re-emits items from its input observable that pass a
predicate test. predicate test.
.. image:: filter.png .. image:: op/filter.svg
:alt: Filter operator.
Flat Map
++++++++
The ``flat_map`` operator takes a function object converts a given input to an
``observable`` and then applies ``merge`` to all of them.
.. image:: op/flat_map.svg
Head and Tail
+++++++++++++
The ``head_and_tail`` operator splits an ``observable`` into its first item and
an ``observable`` for the remainder.
.. image:: op/head_and_tail.svg
Map Map
+++ +++
...@@ -178,34 +237,112 @@ The ``map`` operator applies a unary operation to all items of the input ...@@ -178,34 +237,112 @@ The ``map`` operator applies a unary operation to all items of the input
observable and re-emits the resulting items. Similar to observable and re-emits the resulting items. Similar to
`std::transform <https://en.cppreference.com/w/cpp/algorithm/transform>`_. `std::transform <https://en.cppreference.com/w/cpp/algorithm/transform>`_.
.. image:: map.png .. image:: op/map.svg
:alt: Map operator.
Merge
+++++
The ``merge`` operator takes multiple input observables and re-emits the
observed items as a single sequence of items as soon as they appear.
.. image:: op/merge.svg
Observe On
++++++++++
The ``observe_on`` operator pipes data from one actor to another through an
asynchronous buffer. The target actor must not run at the point of calling this
operator. In the image below, alice (red) and bob (blue) are two actors.
.. image:: op/observe_on.svg
Prefix and Tail
+++++++++++++++
The ``head_and_tail`` operator splits an ``observable`` into its first ``n``
items (stores in a ``caf::cow_vector``) and an ``observable`` for the remainder.
.. image:: op/prefix_and_tail.svg
Reduce
++++++
The ``reduce`` operator is similar to
`std::accumulate <https://en.cppreference.com/w/cpp/algorithm/accumulate>`_,
only that it operates on an ``observable`` instead of an iterator range.
.. image:: op/reduce.svg
Ref Count
+++++++++
The ``ref_count`` operator turns a ``connectable`` back to a regular
``observable`` by automatically calling ``connect`` as soon as there is an
initial "reference" (subscription). After the last "reference" goes away (no
more subscription), the ``ref_count`` operators unsubscribes from its source.
.. image:: op/ref_count.svg
Skip
++++
The ``skip`` operator re-emits all but the first ``n`` items from its input
observable.
.. image:: op/skip.svg
Sum
+++
The ``sum`` operator accumulates all items and emits the result after the input
``observable`` has completed.
.. image:: op/sum.svg
Take Take
++++ ++++
The ``take`` operator re-emits the first ``n`` items from its input observable. The ``take`` operator re-emits the first ``n`` items from its input observable.
.. image:: take.png .. image:: op/take.svg
:alt: Take operator.
Merge Take While
+++++ ++++++++++
The ``merge`` operator takes multiple input observables and re-emits the The ``take_while`` operator re-emits items from its input observable until its
observed items as a single sequence of items as soon as they appear. predicate returns ``false``.
.. image:: merge.png .. image:: op/take_while.svg
:alt: Merge operator.
Concat To Vector
++++++ +++++++++
The ``concat`` operator takes multiple input observables and re-emits the The ``to_vector`` operator collects all items and emits a single vector
observed items as a single sequence of items without interleaving them. containing all observed items after the source ``observable`` has completed.
.. image:: op/to_vector.svg
Notes on Performance
--------------------
When working with data flows in CAF, it is important to remember that values are
frequently copied and buffered. In languages with call-by-reference semantics
such as Java, this is not an issue since the flows basically pass pointers down
the chain. In C++ however, programmers must choose wisely what data types are
used in a flow.
Passing down types such as ``std::string`` or ``std::vector`` will invariably
slow down your application to a crawl. CAF offers three classes that help
mitigate this problem: ``caf::cow_string``, ``caf::cow_vector`` and
``caf::cow_tuple``. These type are thin wrappers around their standard library
counterpart that add copy-on-write (COW) semantics. Internally, all COW-types
have a pointer to the actual data with a reference count. This makes them cheap
to copy and save to use in a data flow. Most of the time, data in a flow does
not need to change after creating and is de-facto immutable. However, the
COW-optimization still gives you a mutable reference if you really need it and
you make a deep copy only if you must, i.e., if there are multiple references to
the data.
.. image:: concat.png
:alt: Concat operator.
Key Differences to ReactiveX Key Differences to ReactiveX
---------------------------- ----------------------------
...@@ -224,7 +361,3 @@ such as ``SubscribeOn``. That being said, the flow API does not tie observables ...@@ -224,7 +361,3 @@ such as ``SubscribeOn``. That being said, the flow API does not tie observables
or observers to actor types. The interface ``caf::flow::coordinator`` manages or observers to actor types. The interface ``caf::flow::coordinator`` manages
scheduling of flow-related work and can be implemented to run CAF flows without scheduling of flow-related work and can be implemented to run CAF flows without
actors, e.g., to integrate them into a custom event loop. actors, e.g., to integrate them into a custom event loop.
Observers and observables use non-blocking backpressure by default. The protocol
used between observers and observables to signal demand is similar to the
`Reactive Streams <https://www.reactive-streams.org>`_ specification.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xl="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="184 261 482 278" width="482" height="278">
<defs>
<marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="StickArrow_Marker" stroke-linejoin="miter" stroke-miterlimit="10" viewBox="-1 -3 7 6" markerWidth="7" markerHeight="6" color="black">
<g>
<path d="M 4.8 0 L 0 0 M 0 -1.8 L 4.8 0 L 0 1.8" fill="none" stroke="currentColor" stroke-width="1"/>
</g>
</marker>
</defs>
<g id="Canvas_1" fill-opacity="1" stroke-dasharray="none" stroke-opacity="1" fill="none" stroke="none">
<title>Canvas 1</title>
<g id="Canvas_1_Layer_1">
<title>Layer 1</title>
<g id="Graphic_2">
<rect x="185" y="329.5" width="140" height="180" fill="white"/>
<path d="M 185 329.5 L 325 329.5 L 325 509.5 L 185 509.5 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-dasharray="4.0,4.0" stroke-width="1"/>
</g>
<g id="Graphic_7">
<rect x="525" y="329.5" width="140" height="180" fill="white"/>
<path d="M 525 329.5 L 665 329.5 L 665 509.5 L 525 509.5 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-dasharray="4.0,4.0" stroke-width="1"/>
</g>
<g id="Line_19">
<line x1="255" y1="364.5" x2="255" y2="391.6" marker-end="url(#StickArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_20">
<line x1="255" y1="424.5" x2="255" y2="451.6" marker-end="url(#StickArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_21">
<path d="M 255 484.5 L 255 538 L 361 538 L 361 299.5 L 372.1 299.5" marker-end="url(#StickArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_22">
<path d="M 465 299.5 L 595 299.5 L 595 341.6" marker-end="url(#StickArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_23">
<line x1="595" y1="374.5" x2="595" y2="401.6" marker-end="url(#StickArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_24">
<line x1="595" y1="434.5" x2="595" y2="461.6" marker-end="url(#StickArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_3">
<path d="M 397 289.5 L 453 289.5 C 459.624 289.5 465 293.98 465 299.5 C 465 305.02 459.624 309.5 453 309.5 L 397 309.5 C 390.376 309.5 385 305.02 385 299.5 C 385 293.98 390.376 289.5 397 289.5 Z" fill="#ccc"/>
<path d="M 397 289.5 L 453 289.5 C 459.624 289.5 465 293.98 465 299.5 C 465 305.02 459.624 309.5 453 309.5 L 397 309.5 C 390.376 309.5 385 305.02 385 299.5 C 385 293.98 390.376 289.5 397 289.5 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
<text transform="translate(398 290.5)" fill="black">
<tspan font-family="Andale Mono" font-size="16" fill="black" x="2.9960938" y="15">· · ·</tspan>
</text>
</g>
<g id="Graphic_5">
<text transform="translate(190.87366 306.052)" fill="black">
<tspan font-family="Arial" font-size="16" fill="black" x="0" y="14">actor A</tspan>
</text>
</g>
<g id="Graphic_6">
<text transform="translate(609.3125 306.97656)" fill="black">
<tspan font-family="Arial" font-size="16" fill="black" x="0" y="14">actor B</tspan>
</text>
</g>
<g id="Graphic_8">
<circle cx="255" cy="359.5" r="5.00000798950945" fill="black"/>
<circle cx="255" cy="359.5" r="5.00000798950945" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_9">
<path d="M 220 404.5 L 290 404.5 C 298.28 404.5 305 408.98 305 414.5 C 305 420.02 298.28 424.5 290 424.5 L 220 424.5 C 211.72 424.5 205 420.02 205 414.5 C 205 408.98 211.72 404.5 220 404.5 Z" fill="#ffc0c0"/>
<path d="M 220 404.5 L 290 404.5 C 298.28 404.5 305 408.98 305 414.5 C 305 420.02 298.28 424.5 290 424.5 L 220 424.5 C 211.72 424.5 205 420.02 205 414.5 C 205 408.98 211.72 404.5 220 404.5 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
<text transform="translate(220 407.5)" fill="black">
<tspan font-family="Andale Mono" font-size="12" fill="black" x="6.1953125" y="11">flat_map</tspan>
</text>
</g>
<g id="Graphic_12">
<path d="M 220 464.5 L 290 464.5 C 298.28 464.5 305 468.98 305 474.5 C 305 480.02 298.28 484.5 290 484.5 L 220 484.5 C 211.72 484.5 205 480.02 205 474.5 C 205 468.98 211.72 464.5 220 464.5 Z" fill="#ffc0c0"/>
<path d="M 220 464.5 L 290 464.5 C 298.28 464.5 305 468.98 305 474.5 C 305 480.02 298.28 484.5 290 484.5 L 220 484.5 C 211.72 484.5 205 480.02 205 474.5 C 205 468.98 211.72 464.5 220 464.5 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
<text transform="translate(220 467.5)" fill="black">
<tspan font-family="Andale Mono" font-size="12" fill="black" x="13.396484" y="11">filter</tspan>
</text>
</g>
<g id="Graphic_17">
<circle cx="595" cy="479.5" r="5.00000798950945" fill="black"/>
<circle cx="595" cy="479.5" r="5.00000798950945" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_16">
<path d="M 560 354.5 L 630 354.5 C 638.28 354.5 645 358.98 645 364.5 C 645 370.02 638.28 374.5 630 374.5 L 560 374.5 C 551.72 374.5 545 370.02 545 364.5 C 545 358.98 551.72 354.5 560 354.5 Z" fill="#ffc0c0"/>
<path d="M 560 354.5 L 630 354.5 C 638.28 354.5 645 358.98 645 364.5 C 645 370.02 638.28 374.5 630 374.5 L 560 374.5 C 551.72 374.5 545 370.02 545 364.5 C 545 358.98 551.72 354.5 560 354.5 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
<text transform="translate(560 357.5)" fill="black">
<tspan font-family="Andale Mono" font-size="12" fill="black" x="24.198242" y="11">map</tspan>
</text>
</g>
<g id="Graphic_14">
<path d="M 560 414.5 L 630 414.5 C 638.28 414.5 645 418.98 645 424.5 C 645 430.02 638.28 434.5 630 434.5 L 560 434.5 C 551.72 434.5 545 430.02 545 424.5 C 545 418.98 551.72 414.5 560 414.5 Z" fill="#ffc0c0"/>
<path d="M 560 414.5 L 630 414.5 C 638.28 414.5 645 418.98 645 424.5 C 645 430.02 638.28 434.5 630 434.5 L 560 434.5 C 551.72 434.5 545 430.02 545 424.5 C 545 418.98 551.72 414.5 560 414.5 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
<text transform="translate(560 417.5)" fill="black">
<tspan font-family="Andale Mono" font-size="12" fill="black" x="13.396484" y="11">filter</tspan>
</text>
</g>
<g id="Graphic_27">
<text transform="translate(381.5664 266.97656)" fill="black">
<tspan font-family="Arial" font-size="16" fill="black" x="0" y="14">async buffer</tspan>
</text>
</g>
</g>
</g>
</svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns:xl="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="-1 -80 802 300" width="802" height="300">
<defs>
<marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="FilledArrow_Marker" stroke-linejoin="miter" stroke-miterlimit="10" viewBox="-1 -3 7 6" markerWidth="7" markerHeight="6" color="black">
<g>
<path d="M 4.8 0 L 0 -1.8 L 0 1.8 Z" fill="currentColor" stroke="currentColor" stroke-width="1"/>
</g>
</marker>
</defs>
<g id="concat" fill-opacity="1" fill="none" stroke-opacity="1" stroke="none" stroke-dasharray="none">
<title>concat</title>
<g id="concat_Layer_1">
<title>Layer 1</title>
<g id="Graphic_2">
<path d="M 10 80 L 790 80 C 795.52285 80 800 84.47715 800 90 L 800 130 C 800 135.52285 795.52285 140 790 140 L 10 140 C 4.4771525 140 67635375e-23 135.52285 0 130 L 17763568e-22 90 C 24527106e-22 84.47715 4.4771525 80 10 80 Z" fill="white"/>
<path d="M 10 80 L 790 80 C 795.52285 80 800 84.47715 800 90 L 800 130 C 800 135.52285 795.52285 140 790 140 L 10 140 C 4.4771525 140 67635375e-23 135.52285 0 130 L 17763568e-22 90 C 24527106e-22 84.47715 4.4771525 80 10 80 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(5 101)" fill="black">
<tspan font-family="Andale Mono" font-size="16" fill="black" x="356.59375" y="15">concat()</tspan>
</text>
</g>
<g id="Graphic_3"/>
<g id="Line_4">
<line x1="20" y1="40" x2="767.1" y2="40" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_5">
<line x1="726.5" y1="25" x2="726.5" y2="55" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_7">
<circle cx="173.5" cy="40" r="20.0000319580379" fill="#ff80ff"/>
<circle cx="173.5" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(169.60693 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">2</tspan>
</text>
</g>
<g id="Graphic_8">
<circle cx="384" cy="40" r="20.0000319580379" fill="#ff80ff"/>
<circle cx="384" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(380.10693 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">7</tspan>
</text>
</g>
<g id="Graphic_10">
<circle cx="684.5" cy="40" r="20.0000319580379" fill="#ff80ff"/>
<circle cx="684.5" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(680.6069 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">8</tspan>
</text>
</g>
<g id="Graphic_26"/>
<g id="Line_25">
<line x1="20" y1="180" x2="767.1" y2="180" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_24">
<line x1="726.5" y1="165" x2="726.5" y2="195" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_34"/>
<g id="Line_33">
<line x1="22" y1="-40" x2="769.1" y2="-40" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_32">
<line x1="493.5" y1="-55" x2="493.5" y2="-25" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_31">
<circle cx="82.5" cy="-40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="82.5" cy="-40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(78.60693 -48.229004)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">1</tspan>
</text>
</g>
<g id="Graphic_29">
<circle cx="453.5" cy="-40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="453.5" cy="-40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(449.60693 -48.229004)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">3</tspan>
</text>
</g>
<g id="Graphic_28">
<circle cx="309" cy="-40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="309" cy="-40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(305.10693 -48.229004)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">5</tspan>
</text>
</g>
<g id="Graphic_39">
<circle cx="684.5" cy="180" r="20.0000319580379" fill="#ff80ff"/>
<circle cx="684.5" cy="180" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(680.6069 171.771)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">8</tspan>
</text>
</g>
<g id="Graphic_38">
<circle cx="82.5" cy="180" r="20.0000319580379" fill="#80ff80"/>
<circle cx="82.5" cy="180" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(78.60693 171.771)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">1</tspan>
</text>
</g>
<g id="Graphic_37">
<circle cx="453.5" cy="180" r="20.0000319580379" fill="#80ff80"/>
<circle cx="453.5" cy="180" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(449.60693 171.771)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">3</tspan>
</text>
</g>
<g id="Graphic_36">
<circle cx="309" cy="180" r="20.0000319580379" fill="#80ff80"/>
<circle cx="309" cy="180" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(305.10693 171.771)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">5</tspan>
</text>
</g>
<g id="Graphic_42">
<circle cx="527.5" cy="180" r="20.000031958038" fill="#ff80ff"/>
<circle cx="527.5" cy="180" r="20.000031958038" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(523.60693 171.771)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">2</tspan>
</text>
</g>
<g id="Graphic_43">
<circle cx="587.5" cy="180" r="20.0000319580379" fill="#ff80ff"/>
<circle cx="587.5" cy="180" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(583.6069 171.771)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">7</tspan>
</text>
</g>
</g>
</g>
</svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns:xl="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="-1 0 802 220" width="802" height="220">
<defs>
<marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="FilledArrow_Marker" stroke-linejoin="miter" stroke-miterlimit="10" viewBox="-1 -3 7 6" markerWidth="7" markerHeight="6" color="black">
<g>
<path d="M 4.8 0 L 0 -1.8 L 0 1.8 Z" fill="currentColor" stroke="currentColor" stroke-width="1"/>
</g>
</marker>
</defs>
<g id="concat_map" fill-opacity="1" fill="none" stroke-opacity="1" stroke="none" stroke-dasharray="none">
<title>concat_map</title>
<g id="concat_map_Layer_1">
<title>Layer 1</title>
<g id="Graphic_2">
<path d="M 10 80 L 790 80 C 795.52285 80 800 84.47715 800 90 L 800 130 C 800 135.52285 795.52285 140 790 140 L 10 140 C 4.4771525 140 67635375e-23 135.52285 0 130 L 17763568e-22 90 C 24527106e-22 84.47715 4.4771525 80 10 80 Z" fill="white"/>
<path d="M 10 80 L 790 80 C 795.52285 80 800 84.47715 800 90 L 800 130 C 800 135.52285 795.52285 140 790 140 L 10 140 C 4.4771525 140 67635375e-23 135.52285 0 130 L 17763568e-22 90 C 24527106e-22 84.47715 4.4771525 80 10 80 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_26"/>
<g id="Line_25">
<line x1="20" y1="180" x2="767.1" y2="180" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_24">
<line x1="726.5" y1="165" x2="726.5" y2="195" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_36"/>
<g id="Line_35">
<line x1="19.5" y1="40" x2="766.6" y2="40" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_33">
<path d="M 80 20 L 99.02112 33.81968 L 91.75572 56.18032 L 68.24428 56.18032 L 60.97888 33.81968 Z" fill="#80ff80"/>
<path d="M 80 20 L 99.02112 33.81968 L 91.75572 56.18032 L 68.24428 56.18032 L 60.97888 33.81968 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_30">
<path d="M 280 20 L 299.02112 33.81968 L 291.75572 56.18032 L 268.24428 56.18032 L 260.97888 33.81968 Z" fill="#ff80ff"/>
<path d="M 280 20 L 299.02112 33.81968 L 291.75572 56.18032 L 268.24428 56.18032 L 260.97888 33.81968 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_39">
<path d="M 480 20 L 499.0211 33.81968 L 491.7557 56.18032 L 468.2443 56.18032 L 460.9789 33.81968 Z" fill="#8080ff"/>
<path d="M 480 20 L 499.0211 33.81968 L 491.7557 56.18032 L 468.2443 56.18032 L 460.9789 33.81968 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_38">
<line x1="520" y1="25" x2="520" y2="55" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_51">
<circle cx="80" cy="180" r="20.0000319580379" fill="#80ff80"/>
<circle cx="80" cy="180" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_50">
<circle cx="280" cy="180" r="20.0000319580379" fill="#80ff80"/>
<circle cx="280" cy="180" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_52">
<circle cx="480" cy="180" r="20.0000319580379" fill="#ff80ff"/>
<circle cx="480" cy="180" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_53">
<circle cx="380" cy="180" r="20.0000319580379" fill="#ff80ff"/>
<circle cx="380" cy="180" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_54">
<circle cx="563.25" cy="180" r="20.0000319580379" fill="#8080ff"/>
<circle cx="563.25" cy="180" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_55">
<circle cx="686.5" cy="180" r="20.0000319580379" fill="#8080ff"/>
<circle cx="686.5" cy="180" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Group_73">
<g id="Graphic_72">
<path d="M 349.6992 105 L 356.3566 109.83689 L 353.8137 117.66311 L 345.5847 117.66311 L 343.04183 109.83689 Z" fill="#ccc"/>
<path d="M 349.6992 105 L 356.3566 109.83689 L 353.8137 117.66311 L 345.5847 117.66311 L 343.04183 109.83689 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Group_66">
<g id="Graphic_71"/>
<g id="Line_70">
<line x1="462.3164" y1="112" x2="540.4164" y2="112" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_69">
<circle cx="483.4914" cy="112" r="7.00001118531327" fill="#ccc"/>
<circle cx="483.4914" cy="112" r="7.00001118531327" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_68">
<circle cx="518.4914" cy="112" r="7.00001118531327" fill="#ccc"/>
<circle cx="518.4914" cy="112" r="7.00001118531327" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_67">
<line x1="532.4914" y1="106.75" x2="532.4914" y2="117.25" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
</g>
<g id="Graphic_65">
<text transform="translate(208.27734 101)" fill="black">
<tspan font-family="Andale Mono" font-size="16" fill="black" x="0" y="15">concat_map([](</tspan>
</text>
</g>
<g id="Graphic_64">
<text transform="translate(356.6992 101)" fill="black">
<tspan font-family="Andale Mono" font-size="16" fill="black" x="4.800781" y="15">) { return </tspan>
</text>
</g>
<g id="Graphic_63">
<text transform="translate(553.3164 101)" fill="black">
<tspan font-family="Andale Mono" font-size="16" fill="black" x="0" y="15">; })</tspan>
</text>
</g>
</g>
</g>
</g>
</svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns:xl="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="-1 0 802 220" width="802" height="220">
<defs>
<marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="FilledArrow_Marker" stroke-linejoin="miter" stroke-miterlimit="10" viewBox="-1 -3 7 6" markerWidth="7" markerHeight="6" color="black">
<g>
<path d="M 4.8 0 L 0 -1.8 L 0 1.8 Z" fill="currentColor" stroke="currentColor" stroke-width="1"/>
</g>
</marker>
</defs>
<g id="distinct" fill-opacity="1" fill="none" stroke-opacity="1" stroke="none" stroke-dasharray="none">
<title>distinct</title>
<g id="distinct_Layer_1">
<title>Layer 1</title>
<g id="Graphic_2">
<path d="M 10 80 L 790 80 C 795.52285 80 800 84.47715 800 90 L 800 130 C 800 135.52285 795.52285 140 790 140 L 10 140 C 4.4771525 140 67635375e-23 135.52285 0 130 L 17763568e-22 90 C 24527106e-22 84.47715 4.4771525 80 10 80 Z" fill="white"/>
<path d="M 10 80 L 790 80 C 795.52285 80 800 84.47715 800 90 L 800 130 C 800 135.52285 795.52285 140 790 140 L 10 140 C 4.4771525 140 67635375e-23 135.52285 0 130 L 17763568e-22 90 C 24527106e-22 84.47715 4.4771525 80 10 80 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(5 101)" fill="black">
<tspan font-family="Andale Mono" font-size="16" fill="black" x="346.9922" y="15">distinct()</tspan>
</text>
</g>
<g id="Graphic_18"/>
<g id="Line_17">
<line x1="19.75" y1="180" x2="766.85" y2="180" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_16">
<line x1="720" y1="165" x2="720" y2="195" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_12">
<circle cx="180" cy="180" r="20.0000319580379" fill="#80ff80"/>
<circle cx="180" cy="180" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(176.10693 171.771)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">3</tspan>
</text>
</g>
<g id="Graphic_11">
<circle cx="480" cy="180" r="20.0000319580379" fill="#80ff80"/>
<circle cx="480" cy="180" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(476.10693 171.771)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">4</tspan>
</text>
</g>
<g id="Graphic_39"/>
<g id="Line_31">
<line x1="19.5" y1="40" x2="766.6" y2="40" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_30">
<line x1="720" y1="25" x2="720" y2="55" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_29">
<circle cx="80" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="80" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(76.10693 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">1</tspan>
</text>
</g>
<g id="Graphic_28">
<circle cx="180" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="180" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(176.10693 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">3</tspan>
</text>
</g>
<g id="Graphic_27">
<circle cx="380" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="380" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(376.10693 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">3</tspan>
</text>
</g>
<g id="Graphic_26">
<circle cx="280" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="280" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(276.10693 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">7</tspan>
</text>
</g>
<g id="Graphic_25">
<circle cx="480" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="480" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(476.10693 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">4</tspan>
</text>
</g>
<g id="Graphic_24">
<circle cx="580" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="580" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(576.1069 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">1</tspan>
</text>
</g>
<g id="Graphic_23">
<circle cx="680" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="680" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(676.1069 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">7</tspan>
</text>
</g>
<g id="Graphic_40">
<circle cx="80" cy="180" r="20.0000319580379" fill="#80ff80"/>
<circle cx="80" cy="180" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(76.10693 171.771)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">1</tspan>
</text>
</g>
<g id="Graphic_41">
<circle cx="280" cy="180" r="20.0000319580379" fill="#80ff80"/>
<circle cx="280" cy="180" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(276.10693 171.771)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">7</tspan>
</text>
</g>
</g>
</g>
</svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns:xl="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="-1 0 802 220" width="802" height="220">
<defs>
<marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="FilledArrow_Marker" stroke-linejoin="miter" stroke-miterlimit="10" viewBox="-1 -3 7 6" markerWidth="7" markerHeight="6" color="black">
<g>
<path d="M 4.8 0 L 0 -1.8 L 0 1.8 Z" fill="currentColor" stroke="currentColor" stroke-width="1"/>
</g>
</marker>
</defs>
<g id="filter" fill-opacity="1" fill="none" stroke-opacity="1" stroke="none" stroke-dasharray="none">
<title>filter</title>
<g id="filter_Layer_1">
<title>Layer 1</title>
<g id="Graphic_2">
<path d="M 10 80 L 790 80 C 795.52285 80 800 84.47715 800 90 L 800 130 C 800 135.52285 795.52285 140 790 140 L 10 140 C 4.4771525 140 67635375e-23 135.52285 0 130 L 17763568e-22 90 C 24527106e-22 84.47715 4.4771525 80 10 80 Z" fill="white"/>
<path d="M 10 80 L 790 80 C 795.52285 80 800 84.47715 800 90 L 800 130 C 800 135.52285 795.52285 140 790 140 L 10 140 C 4.4771525 140 67635375e-23 135.52285 0 130 L 17763568e-22 90 C 24527106e-22 84.47715 4.4771525 80 10 80 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(5 101)" fill="black">
<tspan font-family="Andale Mono" font-size="16" fill="black" x="226.97266" y="15">filter([](int x) { return x &gt; 3; })</tspan>
</text>
</g>
<g id="Graphic_18"/>
<g id="Line_17">
<line x1="19.75" y1="180" x2="766.85" y2="180" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_16">
<line x1="726.25" y1="165" x2="726.25" y2="195" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_12">
<circle cx="280" cy="180" r="20.0000319580379" fill="#80ff80"/>
<circle cx="280" cy="180" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(275.7993 172)" fill="black">
<tspan font-family="Andale Mono" font-size="14" fill="black" x="0" y="13">5</tspan>
</text>
</g>
<g id="Graphic_11">
<circle cx="480" cy="180" r="20.0000319580379" fill="#80ff80"/>
<circle cx="480" cy="180" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(475.7993 172)" fill="black">
<tspan font-family="Andale Mono" font-size="14" fill="black" x="0" y="13">8</tspan>
</text>
</g>
<g id="Graphic_45"/>
<g id="Line_37">
<line x1="19.5" y1="40" x2="766.6" y2="40" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_36">
<line x1="720" y1="25" x2="720" y2="55" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_35">
<circle cx="80" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="80" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(75.79932 32)" fill="black">
<tspan font-family="Andale Mono" font-size="14" fill="black" x="0" y="13">1</tspan>
</text>
</g>
<g id="Graphic_34">
<circle cx="180" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="180" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(175.79932 32)" fill="black">
<tspan font-family="Andale Mono" font-size="14" fill="black" x="0" y="13">2</tspan>
</text>
</g>
<g id="Graphic_33">
<circle cx="380" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="380" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(375.7993 32)" fill="black">
<tspan font-family="Andale Mono" font-size="14" fill="black" x="0" y="13">3</tspan>
</text>
</g>
<g id="Graphic_32">
<circle cx="280" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="280" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(275.7993 32)" fill="black">
<tspan font-family="Andale Mono" font-size="14" fill="black" x="0" y="13">5</tspan>
</text>
</g>
<g id="Graphic_31">
<circle cx="480" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="480" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(475.7993 32)" fill="black">
<tspan font-family="Andale Mono" font-size="14" fill="black" x="0" y="13">8</tspan>
</text>
</g>
<g id="Graphic_30">
<circle cx="580" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="580" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(575.7993 32)" fill="black">
<tspan font-family="Andale Mono" font-size="14" fill="black" x="0" y="13">4</tspan>
</text>
</g>
<g id="Graphic_29">
<circle cx="680" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="680" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(675.7993 32)" fill="black">
<tspan font-family="Andale Mono" font-size="14" fill="black" x="0" y="13">2</tspan>
</text>
</g>
<g id="Graphic_46">
<circle cx="580" cy="180" r="20.0000319580379" fill="#80ff80"/>
<circle cx="580" cy="180" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(575.7993 172)" fill="black">
<tspan font-family="Andale Mono" font-size="14" fill="black" x="0" y="13">4</tspan>
</text>
</g>
</g>
</g>
</svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns:xl="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="-1 0 802 220" width="802" height="220">
<defs>
<marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="FilledArrow_Marker" stroke-linejoin="miter" stroke-miterlimit="10" viewBox="-1 -3 7 6" markerWidth="7" markerHeight="6" color="black">
<g>
<path d="M 4.8 0 L 0 -1.8 L 0 1.8 Z" fill="currentColor" stroke="currentColor" stroke-width="1"/>
</g>
</marker>
</defs>
<g id="flat_map" fill-opacity="1" fill="none" stroke-opacity="1" stroke="none" stroke-dasharray="none">
<title>flat_map</title>
<g id="flat_map_Layer_1">
<title>Layer 1</title>
<g id="Graphic_2">
<path d="M 10 80 L 790 80 C 795.52285 80 800 84.47715 800 90 L 800 130 C 800 135.52285 795.52285 140 790 140 L 10 140 C 4.4771525 140 67635375e-23 135.52285 0 130 L 17763568e-22 90 C 24527106e-22 84.47715 4.4771525 80 10 80 Z" fill="white"/>
<path d="M 10 80 L 790 80 C 795.52285 80 800 84.47715 800 90 L 800 130 C 800 135.52285 795.52285 140 790 140 L 10 140 C 4.4771525 140 67635375e-23 135.52285 0 130 L 17763568e-22 90 C 24527106e-22 84.47715 4.4771525 80 10 80 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_26"/>
<g id="Line_25">
<line x1="20" y1="180" x2="767.1" y2="180" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_24">
<line x1="726.5" y1="165" x2="726.5" y2="195" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_36"/>
<g id="Line_35">
<line x1="19.5" y1="40" x2="766.6" y2="40" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_33">
<path d="M 80 20 L 99.02112 33.81968 L 91.75572 56.18032 L 68.24428 56.18032 L 60.97888 33.81968 Z" fill="#80ff80"/>
<path d="M 80 20 L 99.02112 33.81968 L 91.75572 56.18032 L 68.24428 56.18032 L 60.97888 33.81968 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_30">
<path d="M 280 20 L 299.02112 33.81968 L 291.75572 56.18032 L 268.24428 56.18032 L 260.97888 33.81968 Z" fill="#ff80ff"/>
<path d="M 280 20 L 299.02112 33.81968 L 291.75572 56.18032 L 268.24428 56.18032 L 260.97888 33.81968 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_39">
<path d="M 480 20 L 499.0211 33.81968 L 491.7557 56.18032 L 468.2443 56.18032 L 460.9789 33.81968 Z" fill="#8080ff"/>
<path d="M 480 20 L 499.0211 33.81968 L 491.7557 56.18032 L 468.2443 56.18032 L 460.9789 33.81968 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_38">
<line x1="520" y1="25" x2="520" y2="55" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_51">
<circle cx="80" cy="180" r="20.0000319580379" fill="#80ff80"/>
<circle cx="80" cy="180" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_50">
<circle cx="280" cy="180" r="20.0000319580379" fill="#ff80ff"/>
<circle cx="280" cy="180" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_52">
<circle cx="480" cy="180" r="20.0000319580379" fill="#8080ff"/>
<circle cx="480" cy="180" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_53">
<circle cx="380" cy="180" r="20.0000319580379" fill="#ff80ff"/>
<circle cx="380" cy="180" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_54">
<circle cx="563.25" cy="180" r="20.0000319580379" fill="#80ff80"/>
<circle cx="563.25" cy="180" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_55">
<circle cx="686.5" cy="180" r="20.0000319580379" fill="#8080ff"/>
<circle cx="686.5" cy="180" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Group_77">
<g id="Graphic_62">
<path d="M 339.59766 105 L 346.25505 109.83689 L 343.71216 117.66311 L 335.48315 117.66311 L 332.94026 109.83689 Z" fill="#ccc"/>
<path d="M 339.59766 105 L 346.25505 109.83689 L 343.71216 117.66311 L 335.48315 117.66311 L 332.94026 109.83689 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Group_63">
<g id="Graphic_61"/>
<g id="Line_60">
<line x1="452.21484" y1="112" x2="530.31484" y2="112" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_59">
<circle cx="473.38984" cy="112" r="7.00001118531328" fill="#ccc"/>
<circle cx="473.38984" cy="112" r="7.00001118531328" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_58">
<circle cx="508.38984" cy="112" r="7.00001118531324" fill="#ccc"/>
<circle cx="508.38984" cy="112" r="7.00001118531324" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_57">
<line x1="522.38984" y1="106.75" x2="522.38984" y2="117.25" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
</g>
<g id="Graphic_64">
<text transform="translate(217.3789 101)" fill="black">
<tspan font-family="Andale Mono" font-size="16" fill="black" x="0" y="15">flat_map([](</tspan>
</text>
</g>
<g id="Graphic_65">
<text transform="translate(346.59766 101)" fill="black">
<tspan font-family="Andale Mono" font-size="16" fill="black" x="4.800781" y="15">) { return </tspan>
</text>
</g>
<g id="Graphic_66">
<text transform="translate(543.21484 101)" fill="black">
<tspan font-family="Andale Mono" font-size="16" fill="black" x="0" y="15">; })</tspan>
</text>
</g>
</g>
</g>
</g>
</svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns:xl="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="-1 0 802 426" width="802" height="426">
<defs>
<marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="FilledArrow_Marker" stroke-linejoin="miter" stroke-miterlimit="10" viewBox="-1 -3 7 6" markerWidth="7" markerHeight="6" color="black">
<g>
<path d="M 4.8 0 L 0 -1.8 L 0 1.8 Z" fill="currentColor" stroke="currentColor" stroke-width="1"/>
</g>
</marker>
</defs>
<g id="head_and_tail" fill-opacity="1" fill="none" stroke-opacity="1" stroke="none" stroke-dasharray="none">
<title>head_and_tail</title>
<g id="head_and_tail_Layer_1">
<title>Layer 1</title>
<g id="Line_104">
<line x1="70" y1="190" x2="42.08948" y2="215.25237" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-dasharray="2.0,8.0" stroke-width="2"/>
</g>
<g id="Line_105">
<line x1="90" y1="190" x2="114.49569" y2="214.4957" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-dasharray="2.0,8.0" stroke-width="2"/>
</g>
<g id="Graphic_72"/>
<g id="Graphic_71">
<path d="M 10 80 L 790 80 C 795.52285 80 800 84.47715 800 90 L 800 130 C 800 135.52285 795.52285 140 790 140 L 10 140 C 4.4771525 140 67635375e-23 135.52285 0 130 L 17763568e-22 90 C 24527106e-22 84.47715 4.4771525 80 10 80 Z" fill="white"/>
<path d="M 10 80 L 790 80 C 795.52285 80 800 84.47715 800 90 L 800 130 C 800 135.52285 795.52285 140 790 140 L 10 140 C 4.4771525 140 67635375e-23 135.52285 0 130 L 17763568e-22 90 C 24527106e-22 84.47715 4.4771525 80 10 80 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(5 101)" fill="black">
<tspan font-family="Andale Mono" font-size="16" fill="black" x="322.9883" y="15">head_and_tail()</tspan>
</text>
</g>
<g id="Line_70">
<line x1="19.75" y1="180" x2="766.85" y2="180" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_67"/>
<g id="Line_66">
<line x1="19.5" y1="40" x2="766.6" y2="40" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_65">
<line x1="720" y1="25" x2="720" y2="55" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_64">
<circle cx="80" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="80" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(76.10693 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">1</tspan>
</text>
</g>
<g id="Graphic_60">
<circle cx="421.5" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="421.5" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(417.60693 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">4</tspan>
</text>
</g>
<g id="Graphic_58">
<circle cx="680" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="680" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(676.1069 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">7</tspan>
</text>
</g>
<g id="Line_80">
<line x1="120" y1="165" x2="120" y2="195" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_85">
<path d="M 80 160 L 100 180 L 80 200 L 60 180 Z" fill="#80ff80"/>
<path d="M 80 160 L 100 180 L 80 200 L 60 180 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Group_89">
<g id="Graphic_94"/>
<g id="Line_93">
<line x1="114.49569" y1="214.4957" x2="260.9375" y2="360.9375" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_92">
<path d="M 176.92207 257.6292 C 176.9221 268.67492 167.96781 277.6292 156.9221 277.62918 C 145.87638 277.6292 136.92209 268.67492 136.92212 257.6292 C 136.92209 246.5835 145.87638 237.6292 156.9221 237.62922 C 167.96781 237.6292 176.9221 246.5835 176.92207 257.6292" fill="#80ff80"/>
<path d="M 176.92207 257.6292 C 176.9221 268.67492 167.96781 277.6292 156.9221 277.62918 C 145.87638 277.6292 136.92209 268.67492 136.92212 257.6292 C 136.92209 246.5835 145.87638 237.6292 156.9221 237.62922 C 167.96781 237.6292 176.9221 246.5835 176.92207 257.6292" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(159.98807 249.0576) rotate(45)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">4</tspan>
</text>
</g>
<g id="Graphic_91">
<circle cx="199.3485" cy="300.0556" r="20.0000319580379" fill="#80ff80"/>
<circle cx="199.3485" cy="300.0556" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(202.41447 291.484) rotate(45)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">7</tspan>
</text>
</g>
<g id="Line_90">
<line x1="238.23938" y1="317.73328" x2="217.02617" y2="338.9465" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
</g>
<g id="Graphic_95">
<circle cx="28" cy="228" r="20.0000319580379" fill="#80ff80"/>
<circle cx="28" cy="228" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(24.106934 219.771)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">1</tspan>
</text>
</g>
</g>
</g>
</svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns:xl="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="-1 0 802 220" width="802" height="220">
<defs>
<marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="FilledArrow_Marker" stroke-linejoin="miter" stroke-miterlimit="10" viewBox="-1 -3 7 6" markerWidth="7" markerHeight="6" color="black">
<g>
<path d="M 4.8 0 L 0 -1.8 L 0 1.8 Z" fill="currentColor" stroke="currentColor" stroke-width="1"/>
</g>
</marker>
</defs>
<g id="map" fill-opacity="1" fill="none" stroke-opacity="1" stroke="none" stroke-dasharray="none">
<title>map</title>
<g id="map_Layer_1">
<title>Layer 1</title>
<g id="Graphic_2">
<path d="M 10 80 L 790 80 C 795.52285 80 800 84.47715 800 90 L 800 130 C 800 135.52285 795.52285 140 790 140 L 10 140 C 4.4771525 140 67635375e-23 135.52285 0 130 L 17763568e-22 90 C 24527106e-22 84.47715 4.4771525 80 10 80 Z" fill="white"/>
<path d="M 10 80 L 790 80 C 795.52285 80 800 84.47715 800 90 L 800 130 C 800 135.52285 795.52285 140 790 140 L 10 140 C 4.4771525 140 67635375e-23 135.52285 0 130 L 17763568e-22 90 C 24527106e-22 84.47715 4.4771525 80 10 80 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(5 101)" fill="black">
<tspan font-family="Andale Mono" font-size="16" fill="black" x="241.375" y="15">map([](int x) { return x + 3; })</tspan>
</text>
</g>
<g id="Graphic_26"/>
<g id="Line_25">
<line x1="20" y1="180" x2="767.1" y2="180" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_24">
<line x1="726.5" y1="165" x2="726.5" y2="195" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_23">
<circle cx="80.5" cy="180" r="20.0000319580379" fill="#80ff80"/>
<circle cx="80.5" cy="180" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(76.60693 171.771)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">4</tspan>
</text>
</g>
<g id="Graphic_22">
<circle cx="180" cy="180" r="20.0000319580379" fill="#80ff80"/>
<circle cx="180" cy="180" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(176.10693 171.771)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">5</tspan>
</text>
</g>
<g id="Graphic_21">
<circle cx="380" cy="180" r="20.0000319580379" fill="#80ff80"/>
<circle cx="380" cy="180" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(376.10693 171.771)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">6</tspan>
</text>
</g>
<g id="Graphic_20">
<circle cx="280" cy="180" r="20.0000319580379" fill="#80ff80"/>
<circle cx="280" cy="180" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(276.10693 171.771)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">8</tspan>
</text>
</g>
<g id="Graphic_19">
<circle cx="580" cy="180" r="20.0000319580379" fill="#80ff80"/>
<circle cx="580" cy="180" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(576.1069 171.771)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">7</tspan>
</text>
</g>
<g id="Graphic_36"/>
<g id="Line_35">
<line x1="19.5" y1="40" x2="766.6" y2="40" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_34">
<line x1="720" y1="25" x2="720" y2="55" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_33">
<circle cx="80" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="80" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(76.10693 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">1</tspan>
</text>
</g>
<g id="Graphic_32">
<circle cx="180" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="180" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(176.10693 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">2</tspan>
</text>
</g>
<g id="Graphic_31">
<circle cx="380" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="380" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(376.10693 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">3</tspan>
</text>
</g>
<g id="Graphic_30">
<circle cx="280" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="280" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(276.10693 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">5</tspan>
</text>
</g>
<g id="Graphic_29">
<circle cx="480" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="480" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(476.10693 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">8</tspan>
</text>
</g>
<g id="Graphic_28">
<circle cx="580" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="580" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(576.1069 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">4</tspan>
</text>
</g>
<g id="Graphic_27">
<circle cx="680" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="680" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(676.1069 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">2</tspan>
</text>
</g>
<g id="Graphic_37">
<circle cx="680" cy="180" r="20.0000319580379" fill="#80ff80"/>
<circle cx="680" cy="180" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(676.1069 171.771)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">5</tspan>
</text>
</g>
<g id="Graphic_38">
<circle cx="480" cy="180" r="20.0000319580379" fill="#80ff80"/>
<circle cx="480" cy="180" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(472.6001 171.771)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">11</tspan>
</text>
</g>
</g>
</g>
</svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns:xl="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="-1 -80 802 300" width="802" height="300">
<defs>
<marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="FilledArrow_Marker" stroke-linejoin="miter" stroke-miterlimit="10" viewBox="-1 -3 7 6" markerWidth="7" markerHeight="6" color="black">
<g>
<path d="M 4.8 0 L 0 -1.8 L 0 1.8 Z" fill="currentColor" stroke="currentColor" stroke-width="1"/>
</g>
</marker>
</defs>
<g id="merge" fill-opacity="1" fill="none" stroke-opacity="1" stroke="none" stroke-dasharray="none">
<title>merge</title>
<g id="merge_Layer_1">
<title>Layer 1</title>
<g id="Graphic_2">
<path d="M 10 80 L 790 80 C 795.52285 80 800 84.47715 800 90 L 800 130 C 800 135.52285 795.52285 140 790 140 L 10 140 C 4.4771525 140 67635375e-23 135.52285 0 130 L 17763568e-22 90 C 24527106e-22 84.47715 4.4771525 80 10 80 Z" fill="white"/>
<path d="M 10 80 L 790 80 C 795.52285 80 800 84.47715 800 90 L 800 130 C 800 135.52285 795.52285 140 790 140 L 10 140 C 4.4771525 140 67635375e-23 135.52285 0 130 L 17763568e-22 90 C 24527106e-22 84.47715 4.4771525 80 10 80 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(5 101)" fill="black">
<tspan font-family="Andale Mono" font-size="16" fill="black" x="361.39453" y="15">merge()</tspan>
</text>
</g>
<g id="Graphic_3"/>
<g id="Line_4">
<line x1="20" y1="40" x2="767.1" y2="40" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_5">
<line x1="598" y1="25" x2="598" y2="55" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_7">
<circle cx="173.5" cy="40" r="20.0000319580379" fill="#ff80ff"/>
<circle cx="173.5" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(169.60693 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">2</tspan>
</text>
</g>
<g id="Graphic_8">
<circle cx="384" cy="40" r="20.0000319580379" fill="#ff80ff"/>
<circle cx="384" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(380.10693 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">7</tspan>
</text>
</g>
<g id="Graphic_10">
<circle cx="558" cy="40" r="20.0000319580379" fill="#ff80ff"/>
<circle cx="558" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(554.10693 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">8</tspan>
</text>
</g>
<g id="Graphic_26"/>
<g id="Line_25">
<line x1="20" y1="180" x2="767.1" y2="180" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_24">
<line x1="726.5" y1="165" x2="726.5" y2="195" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_34"/>
<g id="Line_33">
<line x1="22" y1="-40" x2="769.1" y2="-40" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_32">
<line x1="725.5" y1="-55" x2="725.5" y2="-25" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_31">
<circle cx="82.5" cy="-40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="82.5" cy="-40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(78.60693 -48.229004)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">1</tspan>
</text>
</g>
<g id="Graphic_29">
<circle cx="453.5" cy="-40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="453.5" cy="-40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(449.60693 -48.229004)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">3</tspan>
</text>
</g>
<g id="Graphic_28">
<circle cx="309" cy="-40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="309" cy="-40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(305.10693 -48.229004)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">5</tspan>
</text>
</g>
<g id="Graphic_27">
<circle cx="686.5" cy="-40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="686.5" cy="-40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(682.6069 -48.229004)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">9</tspan>
</text>
</g>
<g id="Graphic_41">
<circle cx="173.5" cy="180" r="20.0000319580379" fill="#ff80ff"/>
<circle cx="173.5" cy="180" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(169.60693 171.771)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">2</tspan>
</text>
</g>
<g id="Graphic_40">
<circle cx="384" cy="180" r="20.0000319580379" fill="#ff80ff"/>
<circle cx="384" cy="180" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(380.10693 171.771)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">7</tspan>
</text>
</g>
<g id="Graphic_39">
<circle cx="558" cy="180" r="20.0000319580379" fill="#ff80ff"/>
<circle cx="558" cy="180" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(554.10693 171.771)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">8</tspan>
</text>
</g>
<g id="Graphic_38">
<circle cx="82.5" cy="180" r="20.0000319580379" fill="#80ff80"/>
<circle cx="82.5" cy="180" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(78.60693 171.771)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">1</tspan>
</text>
</g>
<g id="Graphic_37">
<circle cx="453.5" cy="180" r="20.0000319580379" fill="#80ff80"/>
<circle cx="453.5" cy="180" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(449.60693 171.771)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">3</tspan>
</text>
</g>
<g id="Graphic_36">
<circle cx="309" cy="180" r="20.0000319580379" fill="#80ff80"/>
<circle cx="309" cy="180" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(305.10693 171.771)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">5</tspan>
</text>
</g>
<g id="Graphic_35">
<circle cx="686.5" cy="180" r="20.0000319580379" fill="#80ff80"/>
<circle cx="686.5" cy="180" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(682.6069 171.771)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">9</tspan>
</text>
</g>
</g>
</g>
</svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns:xl="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="-1 -12 802 232" width="802" height="232">
<defs>
<marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="FilledArrow_Marker" stroke-linejoin="miter" stroke-miterlimit="10" viewBox="-1 -3 6 6" markerWidth="6" markerHeight="6" color="#ff2600">
<g>
<path d="M 3.2 0 L 0 -1.2 L 0 1.2 Z" fill="currentColor" stroke="currentColor" stroke-width="1"/>
</g>
</marker>
<marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="FilledArrow_Marker_2" stroke-linejoin="miter" stroke-miterlimit="10" viewBox="-1 -3 6 6" markerWidth="6" markerHeight="6" color="#0432ff">
<g>
<path d="M 3.2 0 L 0 -1.2 L 0 1.2 Z" fill="currentColor" stroke="currentColor" stroke-width="1"/>
</g>
</marker>
</defs>
<g id="observe_on" fill-opacity="1" fill="none" stroke-opacity="1" stroke="none" stroke-dasharray="none">
<title>observe_on</title>
<g id="observe_on_Layer_1">
<title>Layer 1</title>
<g id="Line_35">
<line x1="19.5" y1="40" x2="760.6" y2="40" marker-end="url(#FilledArrow_Marker)" stroke="#ff2600" stroke-linecap="round" stroke-linejoin="round" stroke-width="4"/>
</g>
<g id="Line_25">
<line x1="20" y1="180" x2="761.1" y2="180" marker-end="url(#FilledArrow_Marker_2)" stroke="#0432ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="4"/>
</g>
<g id="Graphic_2">
<path d="M 10 80 L 790 80 C 795.52285 80 800 84.47715 800 90 L 800 130 C 800 135.52285 795.52285 140 790 140 L 10 140 C 4.4771525 140 67635375e-23 135.52285 0 130 L 17763568e-22 90 C 24527106e-22 84.47715 4.4771525 80 10 80 Z" fill="white"/>
<path d="M 10 80 L 790 80 C 795.52285 80 800 84.47715 800 90 L 800 130 C 800 135.52285 795.52285 140 790 140 L 10 140 C 4.4771525 140 67635375e-23 135.52285 0 130 L 17763568e-22 90 C 24527106e-22 84.47715 4.4771525 80 10 80 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(5 101)" fill="black">
<tspan font-family="Andale Mono" font-size="16" fill="black" x="322.9883" y="15">observe_on(</tspan>
<tspan font-family="Andale Mono" font-size="16" fill="#0432ff" y="15">bob</tspan>
<tspan font-family="Andale Mono" font-size="16" fill="black" y="15">)</tspan>
</text>
</g>
<g id="Graphic_26"/>
<g id="Line_24">
<line x1="726.5" y1="165" x2="726.5" y2="195" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_23">
<circle cx="80.5" cy="180" r="20.0000319580379" fill="#80ff80"/>
<circle cx="80.5" cy="180" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(76.60693 171.771)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">1</tspan>
</text>
</g>
<g id="Graphic_22">
<circle cx="180" cy="180" r="20.0000319580379" fill="#80ff80"/>
<circle cx="180" cy="180" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(176.10693 171.771)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">2</tspan>
</text>
</g>
<g id="Graphic_21">
<circle cx="380" cy="180" r="20.0000319580379" fill="#80ff80"/>
<circle cx="380" cy="180" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(376.10693 171.771)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">3</tspan>
</text>
</g>
<g id="Graphic_20">
<circle cx="280" cy="180" r="20.0000319580379" fill="#80ff80"/>
<circle cx="280" cy="180" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(276.10693 171.771)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">5</tspan>
</text>
</g>
<g id="Graphic_19">
<circle cx="580" cy="180" r="20.0000319580379" fill="#80ff80"/>
<circle cx="580" cy="180" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(576.1069 171.771)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">4</tspan>
</text>
</g>
<g id="Graphic_36"/>
<g id="Line_34">
<line x1="720" y1="25" x2="720" y2="55" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_33">
<circle cx="80" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="80" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(76.10693 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">1</tspan>
</text>
</g>
<g id="Graphic_32">
<circle cx="180" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="180" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(176.10693 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">2</tspan>
</text>
</g>
<g id="Graphic_31">
<circle cx="380" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="380" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(376.10693 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">3</tspan>
</text>
</g>
<g id="Graphic_30">
<circle cx="280" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="280" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(276.10693 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">5</tspan>
</text>
</g>
<g id="Graphic_29">
<circle cx="480" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="480" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(476.10693 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">8</tspan>
</text>
</g>
<g id="Graphic_28">
<circle cx="580" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="580" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(576.1069 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">4</tspan>
</text>
</g>
<g id="Graphic_27">
<circle cx="680" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="680" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(676.1069 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">2</tspan>
</text>
</g>
<g id="Graphic_37">
<circle cx="680" cy="180" r="20.0000319580379" fill="#80ff80"/>
<circle cx="680" cy="180" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(676.1069 171.771)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">2</tspan>
</text>
</g>
<g id="Graphic_38">
<circle cx="480" cy="180" r="20.0000319580379" fill="#80ff80"/>
<circle cx="480" cy="180" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(476.10693 171.771)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">8</tspan>
</text>
</g>
<g id="Graphic_39">
<text transform="translate(26.571068 20.234099) rotate(-45)" fill="#ff2600">
<tspan font-family="Arial" font-size="16" fill="#ff2600" x="0" y="14">alice</tspan>
</text>
</g>
<g id="Graphic_40">
<text transform="translate(26.571068 163.30366) rotate(-45)" fill="#0332ff">
<tspan font-family="Arial" font-size="16" fill="#0332ff" x="0" y="14">bob</tspan>
</text>
</g>
</g>
</g>
</svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns:xl="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="-1 0 802 426" width="802" height="426">
<defs>
<marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="FilledArrow_Marker" stroke-linejoin="miter" stroke-miterlimit="10" viewBox="-1 -3 7 6" markerWidth="7" markerHeight="6" color="black">
<g>
<path d="M 4.8 0 L 0 -1.8 L 0 1.8 Z" fill="currentColor" stroke="currentColor" stroke-width="1"/>
</g>
</marker>
</defs>
<g id="prefix_and_tail" fill-opacity="1" fill="none" stroke-opacity="1" stroke="none" stroke-dasharray="none">
<title>prefix_and_tail</title>
<g id="prefix_and_tail_Layer_1">
<title>Layer 1</title>
<g id="Line_86">
<line x1="453.1971" y1="207.283" x2="469.30285" y2="190.71707" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-dasharray="2.0,8.0" stroke-width="2"/>
</g>
<g id="Line_87">
<line x1="490" y1="190" x2="514.4957" y2="214.4957" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-dasharray="2.0,8.0" stroke-width="2"/>
</g>
<g id="Graphic_72"/>
<g id="Graphic_71">
<path d="M 10 80 L 790 80 C 795.52285 80 800 84.47715 800 90 L 800 130 C 800 135.52285 795.52285 140 790 140 L 10 140 C 4.4771525 140 67635375e-23 135.52285 0 130 L 17763568e-22 90 C 24527106e-22 84.47715 4.4771525 80 10 80 Z" fill="white"/>
<path d="M 10 80 L 790 80 C 795.52285 80 800 84.47715 800 90 L 800 130 C 800 135.52285 795.52285 140 790 140 L 10 140 C 4.4771525 140 67635375e-23 135.52285 0 130 L 17763568e-22 90 C 24527106e-22 84.47715 4.4771525 80 10 80 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(5 101)" fill="black">
<tspan font-family="Andale Mono" font-size="16" fill="black" x="308.58594" y="15">prefix_and_tail(3)</tspan>
</text>
</g>
<g id="Line_70">
<line x1="19.75" y1="180" x2="766.85" y2="180" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_67"/>
<g id="Line_66">
<line x1="19.5" y1="40" x2="766.6" y2="40" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_65">
<line x1="720" y1="25" x2="720" y2="55" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_64">
<circle cx="80" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="80" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(76.10693 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">1</tspan>
</text>
</g>
<g id="Graphic_61">
<circle cx="280" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="280" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(276.10693 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">7</tspan>
</text>
</g>
<g id="Graphic_60">
<circle cx="480" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="480" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(476.10693 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">4</tspan>
</text>
</g>
<g id="Graphic_59">
<circle cx="580" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="580" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(576.1069 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">1</tspan>
</text>
</g>
<g id="Graphic_58">
<circle cx="680" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="680" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(676.1069 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">7</tspan>
</text>
</g>
<g id="Graphic_78">
<rect x="412.5" y="208" width="40" height="60" fill="#80ff80"/>
<rect x="412.5" y="208" width="40" height="60" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(428.60693 213.313)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">1</tspan>
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="29.458008">7</tspan>
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="45.916016">4</tspan>
</text>
</g>
<g id="Group_84">
<g id="Graphic_77"/>
<g id="Line_76">
<line x1="514.4957" y1="214.4957" x2="660.9375" y2="360.9375" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_75">
<path d="M 576.9221 257.6292 C 576.9221 268.67492 567.9678 277.6292 556.9221 277.62918 C 545.8764 277.6292 536.9221 268.67492 536.9221 257.6292 C 536.9221 246.5835 545.8764 237.6292 556.9221 237.62922 C 567.9678 237.6292 576.9221 246.5835 576.9221 257.6292" fill="#80ff80"/>
<path d="M 576.9221 257.6292 C 576.9221 268.67492 567.9678 277.6292 556.9221 277.62918 C 545.8764 277.6292 536.9221 268.67492 536.9221 257.6292 C 536.9221 246.5835 545.8764 237.6292 556.9221 237.62922 C 567.9678 237.6292 576.9221 246.5835 576.9221 257.6292" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(559.9881 249.0576) rotate(45)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">1</tspan>
</text>
</g>
<g id="Graphic_74">
<circle cx="599.3485" cy="300.0556" r="20.0000319580379" fill="#80ff80"/>
<circle cx="599.3485" cy="300.0556" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(602.4145 291.484) rotate(45)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">7</tspan>
</text>
</g>
<g id="Line_73">
<line x1="638.2394" y1="317.73328" x2="617.0262" y2="338.9465" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
</g>
<g id="Line_80">
<line x1="541" y1="165" x2="541" y2="195" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_85">
<path d="M 480 160 L 500 180 L 480 200 L 460 180 Z" fill="#80ff80"/>
<path d="M 480 160 L 500 180 L 480 200 L 460 180 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
</g>
</g>
</svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns:xl="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="-1 0 802 220" width="802" height="220">
<defs>
<marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="FilledArrow_Marker" stroke-linejoin="miter" stroke-miterlimit="10" viewBox="-1 -3 7 6" markerWidth="7" markerHeight="6" color="black">
<g>
<path d="M 4.8 0 L 0 -1.8 L 0 1.8 Z" fill="currentColor" stroke="currentColor" stroke-width="1"/>
</g>
</marker>
</defs>
<g id="reduce" fill-opacity="1" fill="none" stroke-opacity="1" stroke="none" stroke-dasharray="none">
<title>reduce</title>
<g id="reduce_Layer_1">
<title>Layer 1</title>
<g id="Graphic_2">
<path d="M 10 80 L 790 80 C 795.52285 80 800 84.47715 800 90 L 800 130 C 800 135.52285 795.52285 140 790 140 L 10 140 C 4.4771525 140 67635375e-23 135.52285 0 130 L 17763568e-22 90 C 24527106e-22 84.47715 4.4771525 80 10 80 Z" fill="white"/>
<path d="M 10 80 L 790 80 C 795.52285 80 800 84.47715 800 90 L 800 130 C 800 135.52285 795.52285 140 790 140 L 10 140 C 4.4771525 140 67635375e-23 135.52285 0 130 L 17763568e-22 90 C 24527106e-22 84.47715 4.4771525 80 10 80 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(5 101)" fill="black">
<tspan font-family="Andale Mono" font-size="16" fill="black" x="178.96484" y="15">reduce(0, [](int x, int y) { return x + y; })</tspan>
</text>
</g>
<g id="Graphic_26"/>
<g id="Line_25">
<line x1="20" y1="180" x2="767.1" y2="180" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_24">
<line x1="726.5" y1="165" x2="726.5" y2="195" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_36"/>
<g id="Line_35">
<line x1="19.5" y1="40" x2="766.6" y2="40" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_34">
<line x1="620" y1="25" x2="620" y2="55" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_33">
<circle cx="80" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="80" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(76.10693 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">1</tspan>
</text>
</g>
<g id="Graphic_32">
<circle cx="180" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="180" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(176.10693 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">2</tspan>
</text>
</g>
<g id="Graphic_31">
<circle cx="380" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="380" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(376.10693 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">3</tspan>
</text>
</g>
<g id="Graphic_30">
<circle cx="280" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="280" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(276.10693 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">5</tspan>
</text>
</g>
<g id="Graphic_29">
<circle cx="480" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="480" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(476.10693 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">8</tspan>
</text>
</g>
<g id="Graphic_28">
<circle cx="580" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="580" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(576.1069 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">4</tspan>
</text>
</g>
<g id="Graphic_37">
<circle cx="680" cy="180" r="20.0000319580379" fill="#80ff80"/>
<circle cx="680" cy="180" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(672.2139 171.771)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">23</tspan>
</text>
</g>
</g>
</g>
</svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns:xl="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="-1 0 802 540" width="802" height="540">
<defs>
<marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="FilledArrow_Marker" stroke-linejoin="miter" stroke-miterlimit="10" viewBox="-1 -3 7 6" markerWidth="7" markerHeight="6" color="black">
<g>
<path d="M 4.8 0 L 0 -1.8 L 0 1.8 Z" fill="currentColor" stroke="currentColor" stroke-width="1"/>
</g>
</marker>
<marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="StickArrow_Marker" stroke-linejoin="miter" stroke-miterlimit="10" viewBox="-1 -3 7 6" markerWidth="7" markerHeight="6" color="#0432ff">
<g>
<path d="M 4.8 0 L 0 0 M 0 -1.8 L 4.8 0 L 0 1.8" fill="none" stroke="currentColor" stroke-width="1"/>
</g>
</marker>
</defs>
<g id="ref_count" fill-opacity="1" fill="none" stroke-opacity="1" stroke="none" stroke-dasharray="none">
<title>ref_count</title>
<g id="ref_count_Layer_1">
<title>Layer 1</title>
<g id="Graphic_2">
<path d="M 10 80 L 790 80 C 795.52285 80 800 84.47715 800 90 L 800 130 C 800 135.52285 795.52285 140 790 140 L 10 140 C 4.4771525 140 67635375e-23 135.52285 0 130 L 17763568e-22 90 C 24527106e-22 84.47715 4.4771525 80 10 80 Z" fill="white"/>
<path d="M 10 80 L 790 80 C 795.52285 80 800 84.47715 800 90 L 800 130 C 800 135.52285 795.52285 140 790 140 L 10 140 C 4.4771525 140 67635375e-23 135.52285 0 130 L 17763568e-22 90 C 24527106e-22 84.47715 4.4771525 80 10 80 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(5 101)" fill="black">
<tspan font-family="Andale Mono" font-size="16" fill="black" x="351.79297" y="15">publish()</tspan>
</text>
</g>
<g id="Graphic_36"/>
<g id="Line_35">
<line x1="19.5" y1="40" x2="766.6" y2="40" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_34">
<line x1="720" y1="25" x2="720" y2="55" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_32">
<circle cx="180" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="180" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(176.10693 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">2</tspan>
</text>
</g>
<g id="Graphic_31">
<circle cx="380" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="380" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(376.10693 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">3</tspan>
</text>
</g>
<g id="Graphic_30">
<circle cx="280" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="280" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(276.10693 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">5</tspan>
</text>
</g>
<g id="Graphic_29">
<circle cx="480" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="480" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(476.10693 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">8</tspan>
</text>
</g>
<g id="Graphic_28">
<circle cx="580" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="580" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(576.1069 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">4</tspan>
</text>
</g>
<g id="Graphic_27">
<circle cx="680" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="680" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(676.1069 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">2</tspan>
</text>
</g>
<g id="Graphic_49">
<path d="M 10 240 L 790 240 C 795.52285 240 800 244.47715 800 250 L 800 290 C 800 295.52285 795.52285 300 790 300 L 10 300 C 4.4771525 300 67635375e-23 295.52285 0 290 L 17763568e-22 250 C 24527106e-22 244.47715 4.4771525 240 10 240 Z" fill="white"/>
<path d="M 10 240 L 790 240 C 795.52285 240 800 244.47715 800 250 L 800 290 C 800 295.52285 795.52285 300 790 300 L 10 300 C 4.4771525 300 67635375e-23 295.52285 0 290 L 17763568e-22 250 C 24527106e-22 244.47715 4.4771525 240 10 240 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(5 261)" fill="black">
<tspan font-family="Andale Mono" font-size="16" fill="black" x="342.1914" y="15">ref_count()</tspan>
</text>
</g>
<g id="Graphic_48"/>
<g id="Line_47">
<line x1="100" y1="400" x2="545.6" y2="400" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_45">
<circle cx="180" cy="400" r="20.0000319580379" fill="#80ff80"/>
<circle cx="180" cy="400" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(176.10693 391.771)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">2</tspan>
</text>
</g>
<g id="Graphic_44">
<circle cx="380" cy="400" r="20.0000319580379" fill="#80ff80"/>
<circle cx="380" cy="400" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(376.10693 391.771)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">3</tspan>
</text>
</g>
<g id="Graphic_43">
<circle cx="280" cy="400" r="20.0000319580379" fill="#80ff80"/>
<circle cx="280" cy="400" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(276.10693 391.771)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">5</tspan>
</text>
</g>
<g id="Graphic_40">
<circle cx="480" cy="400" r="20.0000319580379" fill="#80ff80"/>
<circle cx="480" cy="400" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(476.10693 391.771)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">8</tspan>
</text>
</g>
<g id="Line_68">
<line x1="26.391998" y1="240" x2="26.391998" y2="152.9" marker-end="url(#StickArrow_Marker)" stroke="#0432ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_67">
<text transform="translate(4.966995 234.3945) rotate(-90)" fill="#0432ff">
<tspan font-family="Arial" font-size="14" fill="#0432ff" x="0" y="13">subscribe</tspan>
</text>
</g>
<g id="Line_66">
<line x1="127.392" y1="240" x2="127.392" y2="152.9" marker-end="url(#StickArrow_Marker)" stroke="#0432ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_65">
<text transform="translate(105.967 234.2661) rotate(-90)" fill="#0432ff">
<tspan font-family="Arial" font-size="14" fill="#0432ff" x="0" y="13">connect</tspan>
</text>
</g>
<g id="Line_64">
<line x1="626.392" y1="240" x2="626.392" y2="152.9" marker-end="url(#StickArrow_Marker)" stroke="#0432ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_63">
<text transform="translate(604.967 234.39663) rotate(-90)" fill="#0432ff">
<tspan font-family="Arial" font-size="14" fill="#0432ff" x="0" y="13">unsubscribe</tspan>
</text>
</g>
<g id="Line_71">
<line x1="126.392" y1="400" x2="126.392" y2="312.9" marker-end="url(#StickArrow_Marker)" stroke="#0432ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_70">
<text transform="translate(104.967 394.3945) rotate(-90)" fill="#0432ff">
<tspan font-family="Arial" font-size="14" fill="#0432ff" x="0" y="13">subscribe</tspan>
</text>
</g>
<g id="Line_74">
<line x1="526.392" y1="400" x2="526.392" y2="312.9" marker-end="url(#StickArrow_Marker)" stroke="#0432ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_73">
<text transform="translate(504.967 394.39663) rotate(-90)" fill="#0432ff">
<tspan font-family="Arial" font-size="14" fill="#0432ff" x="0" y="13">unsubscribe</tspan>
</text>
</g>
<g id="Graphic_86"/>
<g id="Line_85">
<line x1="200" y1="500" x2="645.6" y2="500" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_89">
<line x1="226.392" y1="500" x2="226.392" y2="312.9" marker-end="url(#StickArrow_Marker)" stroke="#0432ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_88">
<text transform="translate(204.967 494.3945) rotate(-90)" fill="#0432ff">
<tspan font-family="Arial" font-size="14" fill="#0432ff" x="0" y="13">subscribe</tspan>
</text>
</g>
<g id="Graphic_93">
<circle cx="380" cy="500" r="20.0000319580379" fill="#80ff80"/>
<circle cx="380" cy="500" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(376.10693 491.771)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">3</tspan>
</text>
</g>
<g id="Graphic_92">
<circle cx="280" cy="500" r="20.0000319580379" fill="#80ff80"/>
<circle cx="280" cy="500" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(276.10693 491.771)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">5</tspan>
</text>
</g>
<g id="Graphic_91">
<circle cx="480" cy="500" r="20.0000319580379" fill="#80ff80"/>
<circle cx="480" cy="500" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(476.10693 491.771)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">8</tspan>
</text>
</g>
<g id="Graphic_90">
<circle cx="580" cy="500" r="20.0000319580379" fill="#80ff80"/>
<circle cx="580" cy="500" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(576.1069 491.771)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">4</tspan>
</text>
</g>
<g id="Line_95">
<line x1="625.392" y1="500" x2="625.392" y2="312.9" marker-end="url(#StickArrow_Marker)" stroke="#0432ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_94">
<text transform="translate(604.967 494.39663) rotate(-90)" fill="#0432ff">
<tspan font-family="Arial" font-size="14" fill="#0432ff" x="0" y="13">unsubscribe</tspan>
</text>
</g>
</g>
</g>
</svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns:xl="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="-1 0 802 220" width="802" height="220">
<defs>
<marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="FilledArrow_Marker" stroke-linejoin="miter" stroke-miterlimit="10" viewBox="-1 -3 7 6" markerWidth="7" markerHeight="6" color="black">
<g>
<path d="M 4.8 0 L 0 -1.8 L 0 1.8 Z" fill="currentColor" stroke="currentColor" stroke-width="1"/>
</g>
</marker>
</defs>
<g id="skip" fill-opacity="1" fill="none" stroke-opacity="1" stroke="none" stroke-dasharray="none">
<title>skip</title>
<g id="skip_Layer_1">
<title>Layer 1</title>
<g id="Graphic_63"/>
<g id="Graphic_64">
<path d="M 10 80 L 790 80 C 795.52285 80 800 84.47715 800 90 L 800 130 C 800 135.52285 795.52285 140 790 140 L 10 140 C 4.4771525 140 67635375e-23 135.52285 0 130 L 17763568e-22 90 C 24527106e-22 84.47715 4.4771525 80 10 80 Z" fill="white"/>
<path d="M 10 80 L 790 80 C 795.52285 80 800 84.47715 800 90 L 800 130 C 800 135.52285 795.52285 140 790 140 L 10 140 C 4.4771525 140 67635375e-23 135.52285 0 130 L 17763568e-22 90 C 24527106e-22 84.47715 4.4771525 80 10 80 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(5 101)" fill="black">
<tspan font-family="Andale Mono" font-size="16" fill="black" x="361.39453" y="15">skip(3)</tspan>
</text>
</g>
<g id="Line_62">
<line x1="19.75" y1="180" x2="766.85" y2="180" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_61">
<line x1="720" y1="165" x2="720" y2="195" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_58"/>
<g id="Line_57">
<line x1="19.5" y1="40" x2="766.6" y2="40" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_56">
<line x1="720" y1="25" x2="720" y2="55" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_55">
<circle cx="80" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="80" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(76.10693 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">1</tspan>
</text>
</g>
<g id="Graphic_54">
<circle cx="180" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="180" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(176.10693 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">3</tspan>
</text>
</g>
<g id="Graphic_53">
<circle cx="380" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="380" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(376.10693 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">3</tspan>
</text>
</g>
<g id="Graphic_52">
<circle cx="280" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="280" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(276.10693 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">7</tspan>
</text>
</g>
<g id="Graphic_51">
<circle cx="480" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="480" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(476.10693 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">4</tspan>
</text>
</g>
<g id="Graphic_50">
<circle cx="580" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="580" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(576.1069 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">1</tspan>
</text>
</g>
<g id="Graphic_49">
<circle cx="680" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="680" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(676.1069 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">7</tspan>
</text>
</g>
<g id="Graphic_68">
<circle cx="380" cy="180" r="20.0000319580379" fill="#80ff80"/>
<circle cx="380" cy="180" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(376.10693 171.771)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">3</tspan>
</text>
</g>
<g id="Graphic_67">
<circle cx="480" cy="180" r="20.0000319580379" fill="#80ff80"/>
<circle cx="480" cy="180" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(476.10693 171.771)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">4</tspan>
</text>
</g>
<g id="Graphic_66">
<circle cx="580" cy="180" r="20.0000319580379" fill="#80ff80"/>
<circle cx="580" cy="180" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(576.1069 171.771)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">1</tspan>
</text>
</g>
<g id="Graphic_65">
<circle cx="680" cy="180" r="20.0000319580379" fill="#80ff80"/>
<circle cx="680" cy="180" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(676.1069 171.771)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">7</tspan>
</text>
</g>
</g>
</g>
</svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns:xl="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="-1 0 802 220" width="802" height="220">
<defs>
<marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="FilledArrow_Marker" stroke-linejoin="miter" stroke-miterlimit="10" viewBox="-1 -3 7 6" markerWidth="7" markerHeight="6" color="black">
<g>
<path d="M 4.8 0 L 0 -1.8 L 0 1.8 Z" fill="currentColor" stroke="currentColor" stroke-width="1"/>
</g>
</marker>
</defs>
<g id="sum" fill-opacity="1" fill="none" stroke-opacity="1" stroke="none" stroke-dasharray="none">
<title>sum</title>
<g id="sum_Layer_1">
<title>Layer 1</title>
<g id="Graphic_2">
<path d="M 10 80 L 790 80 C 795.52285 80 800 84.47715 800 90 L 800 130 C 800 135.52285 795.52285 140 790 140 L 10 140 C 4.4771525 140 67635375e-23 135.52285 0 130 L 17763568e-22 90 C 24527106e-22 84.47715 4.4771525 80 10 80 Z" fill="white"/>
<path d="M 10 80 L 790 80 C 795.52285 80 800 84.47715 800 90 L 800 130 C 800 135.52285 795.52285 140 790 140 L 10 140 C 4.4771525 140 67635375e-23 135.52285 0 130 L 17763568e-22 90 C 24527106e-22 84.47715 4.4771525 80 10 80 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(5 101)" fill="black">
<tspan font-family="Andale Mono" font-size="16" fill="black" x="370.9961" y="15">sum()</tspan>
</text>
</g>
<g id="Graphic_26"/>
<g id="Line_25">
<line x1="20" y1="180" x2="767.1" y2="180" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_24">
<line x1="726.5" y1="165" x2="726.5" y2="195" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_36"/>
<g id="Line_35">
<line x1="19.5" y1="40" x2="766.6" y2="40" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_34">
<line x1="620" y1="25" x2="620" y2="55" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_33">
<circle cx="80" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="80" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(76.10693 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">1</tspan>
</text>
</g>
<g id="Graphic_32">
<circle cx="180" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="180" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(176.10693 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">2</tspan>
</text>
</g>
<g id="Graphic_31">
<circle cx="380" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="380" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(376.10693 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">3</tspan>
</text>
</g>
<g id="Graphic_30">
<circle cx="280" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="280" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(276.10693 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">5</tspan>
</text>
</g>
<g id="Graphic_29">
<circle cx="480" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="480" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(476.10693 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">8</tspan>
</text>
</g>
<g id="Graphic_28">
<circle cx="580" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="580" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(576.1069 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">4</tspan>
</text>
</g>
<g id="Graphic_37">
<circle cx="680" cy="180" r="20.0000319580379" fill="#80ff80"/>
<circle cx="680" cy="180" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(672.2139 171.771)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">23</tspan>
</text>
</g>
</g>
</g>
</svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns:xl="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="-1 0 802 220" width="802" height="220">
<defs>
<marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="FilledArrow_Marker" stroke-linejoin="miter" stroke-miterlimit="10" viewBox="-1 -3 7 6" markerWidth="7" markerHeight="6" color="black">
<g>
<path d="M 4.8 0 L 0 -1.8 L 0 1.8 Z" fill="currentColor" stroke="currentColor" stroke-width="1"/>
</g>
</marker>
</defs>
<g id="take" fill-opacity="1" fill="none" stroke-opacity="1" stroke="none" stroke-dasharray="none">
<title>take</title>
<g id="take_Layer_1">
<title>Layer 1</title>
<g id="Graphic_63"/>
<g id="Graphic_64">
<path d="M 10 80 L 790 80 C 795.52285 80 800 84.47715 800 90 L 800 130 C 800 135.52285 795.52285 140 790 140 L 10 140 C 4.4771525 140 67635375e-23 135.52285 0 130 L 17763568e-22 90 C 24527106e-22 84.47715 4.4771525 80 10 80 Z" fill="white"/>
<path d="M 10 80 L 790 80 C 795.52285 80 800 84.47715 800 90 L 800 130 C 800 135.52285 795.52285 140 790 140 L 10 140 C 4.4771525 140 67635375e-23 135.52285 0 130 L 17763568e-22 90 C 24527106e-22 84.47715 4.4771525 80 10 80 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(5 101)" fill="black">
<tspan font-family="Andale Mono" font-size="16" fill="black" x="361.39453" y="15">take(3)</tspan>
</text>
</g>
<g id="Line_62">
<line x1="19.75" y1="180" x2="766.85" y2="180" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_61">
<line x1="320" y1="165" x2="320" y2="195" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_60">
<circle cx="180" cy="180" r="20.0000319580379" fill="#80ff80"/>
<circle cx="180" cy="180" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(176.10693 171.771)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">3</tspan>
</text>
</g>
<g id="Graphic_58"/>
<g id="Line_57">
<line x1="19.5" y1="40" x2="766.6" y2="40" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_56">
<line x1="720" y1="25" x2="720" y2="55" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_55">
<circle cx="80" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="80" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(76.10693 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">1</tspan>
</text>
</g>
<g id="Graphic_54">
<circle cx="180" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="180" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(176.10693 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">3</tspan>
</text>
</g>
<g id="Graphic_53">
<circle cx="380" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="380" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(376.10693 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">3</tspan>
</text>
</g>
<g id="Graphic_52">
<circle cx="280" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="280" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(276.10693 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">7</tspan>
</text>
</g>
<g id="Graphic_51">
<circle cx="480" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="480" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(476.10693 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">4</tspan>
</text>
</g>
<g id="Graphic_50">
<circle cx="580" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="580" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(576.1069 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">1</tspan>
</text>
</g>
<g id="Graphic_49">
<circle cx="680" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="680" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(676.1069 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">7</tspan>
</text>
</g>
<g id="Graphic_48">
<circle cx="80" cy="180" r="20.0000319580379" fill="#80ff80"/>
<circle cx="80" cy="180" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(76.10693 171.771)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">1</tspan>
</text>
</g>
<g id="Graphic_47">
<circle cx="280" cy="180" r="20.0000319580379" fill="#80ff80"/>
<circle cx="280" cy="180" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(276.10693 171.771)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">7</tspan>
</text>
</g>
</g>
</g>
</svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns:xl="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="-1 0 802 220" width="802" height="220">
<defs>
<marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="FilledArrow_Marker" stroke-linejoin="miter" stroke-miterlimit="10" viewBox="-1 -3 7 6" markerWidth="7" markerHeight="6" color="black">
<g>
<path d="M 4.8 0 L 0 -1.8 L 0 1.8 Z" fill="currentColor" stroke="currentColor" stroke-width="1"/>
</g>
</marker>
</defs>
<g id="take_while" fill-opacity="1" fill="none" stroke-opacity="1" stroke="none" stroke-dasharray="none">
<title>take_while</title>
<g id="take_while_Layer_1">
<title>Layer 1</title>
<g id="Graphic_63"/>
<g id="Graphic_64">
<path d="M 10 80 L 790 80 C 795.52285 80 800 84.47715 800 90 L 800 130 C 800 135.52285 795.52285 140 790 140 L 10 140 C 4.4771525 140 67635375e-23 135.52285 0 130 L 17763568e-22 90 C 24527106e-22 84.47715 4.4771525 80 10 80 Z" fill="white"/>
<path d="M 10 80 L 790 80 C 795.52285 80 800 84.47715 800 90 L 800 130 C 800 135.52285 795.52285 140 790 140 L 10 140 C 4.4771525 140 67635375e-23 135.52285 0 130 L 17763568e-22 90 C 24527106e-22 84.47715 4.4771525 80 10 80 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(5 101)" fill="black">
<tspan font-family="Andale Mono" font-size="16" fill="black" x="183.76562" y="15">take_while([](int x) { return x % 2 == 1; })</tspan>
</text>
</g>
<g id="Line_62">
<line x1="19.75" y1="180" x2="766.85" y2="180" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_61">
<line x1="420" y1="165" x2="420" y2="195" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_60">
<circle cx="180" cy="180" r="20.0000319580379" fill="#80ff80"/>
<circle cx="180" cy="180" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(176.10693 171.771)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">3</tspan>
</text>
</g>
<g id="Graphic_58"/>
<g id="Line_57">
<line x1="19.5" y1="40" x2="766.6" y2="40" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_56">
<line x1="720" y1="25" x2="720" y2="55" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_55">
<circle cx="80" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="80" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(76.10693 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">1</tspan>
</text>
</g>
<g id="Graphic_54">
<circle cx="180" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="180" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(176.10693 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">3</tspan>
</text>
</g>
<g id="Graphic_53">
<circle cx="380" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="380" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(376.10693 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">3</tspan>
</text>
</g>
<g id="Graphic_52">
<circle cx="280" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="280" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(276.10693 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">7</tspan>
</text>
</g>
<g id="Graphic_51">
<circle cx="480" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="480" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(476.10693 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">4</tspan>
</text>
</g>
<g id="Graphic_50">
<circle cx="580" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="580" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(576.1069 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">1</tspan>
</text>
</g>
<g id="Graphic_49">
<circle cx="680" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="680" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(676.1069 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">7</tspan>
</text>
</g>
<g id="Graphic_48">
<circle cx="80" cy="180" r="20.0000319580379" fill="#80ff80"/>
<circle cx="80" cy="180" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(76.10693 171.771)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">1</tspan>
</text>
</g>
<g id="Graphic_47">
<circle cx="280" cy="180" r="20.0000319580379" fill="#80ff80"/>
<circle cx="280" cy="180" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(276.10693 171.771)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">7</tspan>
</text>
</g>
<g id="Graphic_66">
<circle cx="380" cy="180" r="20.0000319580379" fill="#80ff80"/>
<circle cx="380" cy="180" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(376.10693 171.771)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">3</tspan>
</text>
</g>
</g>
</g>
</svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns:xl="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="-1 0 802 220" width="802" height="220">
<defs>
<marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="FilledArrow_Marker" stroke-linejoin="miter" stroke-miterlimit="10" viewBox="-1 -3 7 6" markerWidth="7" markerHeight="6" color="black">
<g>
<path d="M 4.8 0 L 0 -1.8 L 0 1.8 Z" fill="currentColor" stroke="currentColor" stroke-width="1"/>
</g>
</marker>
</defs>
<g id="to_vector" fill-opacity="1" fill="none" stroke-opacity="1" stroke="none" stroke-dasharray="none">
<title>to_vector</title>
<g id="to_vector_Layer_1">
<title>Layer 1</title>
<g id="Graphic_2">
<path d="M 10 80 L 790 80 C 795.52285 80 800 84.47715 800 90 L 800 130 C 800 135.52285 795.52285 140 790 140 L 10 140 C 4.4771525 140 67635375e-23 135.52285 0 130 L 17763568e-22 90 C 24527106e-22 84.47715 4.4771525 80 10 80 Z" fill="white"/>
<path d="M 10 80 L 790 80 C 795.52285 80 800 84.47715 800 90 L 800 130 C 800 135.52285 795.52285 140 790 140 L 10 140 C 4.4771525 140 67635375e-23 135.52285 0 130 L 17763568e-22 90 C 24527106e-22 84.47715 4.4771525 80 10 80 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(5 101)" fill="black">
<tspan font-family="Andale Mono" font-size="16" fill="black" x="342.1914" y="15">to_vector()</tspan>
</text>
</g>
<g id="Graphic_26"/>
<g id="Line_25">
<line x1="20" y1="180" x2="767.1" y2="180" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_24">
<line x1="726.5" y1="165" x2="726.5" y2="195" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_36"/>
<g id="Line_35">
<line x1="19.5" y1="40" x2="766.6" y2="40" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_34">
<line x1="620" y1="25" x2="620" y2="55" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_33">
<circle cx="80" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="80" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(76.10693 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">1</tspan>
</text>
</g>
<g id="Graphic_30">
<circle cx="280" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="280" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(276.10693 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">5</tspan>
</text>
</g>
<g id="Graphic_28">
<circle cx="580" cy="40" r="20.0000319580379" fill="#80ff80"/>
<circle cx="580" cy="40" r="20.0000319580379" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(576.1069 31.770996)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">4</tspan>
</text>
</g>
<g id="Graphic_37">
<rect x="666.5" y="150" width="40" height="60" fill="#80ff80"/>
<rect x="666.5" y="150" width="40" height="60" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(682.6069 155.31299)" fill="black">
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="13">1</tspan>
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="29.458008">5</tspan>
<tspan font-family="Arial" font-size="14" fill="black" x="0" y="45.916016">4</tspan>
</text>
</g>
</g>
</g>
</svg>
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment