public inbox for pbs-devel@lists.proxmox.com
 help / color / mirror / Atom feed
* [pbs-devel] [PATCH proxmox-backup 0/3] docs: clarify and expand the description of the garbage collection
@ 2024-04-02 13:36 Hannes Duerr
  2024-04-02 13:36 ` [pbs-devel] [PATCH proxmox-backup 1/3] docs: centralise and update garbage collection description Hannes Duerr
                   ` (3 more replies)
  0 siblings, 4 replies; 6+ messages in thread
From: Hannes Duerr @ 2024-04-02 13:36 UTC (permalink / raw)
  To: pbs-devel

The description of the garbage collection process is currently split
between two different articles in two different chapters and causes to
confusion for users. This patch unifies the description and adds and
example to clarify the garbage collection

proxmox-backup:

Hannes Duerr (3):
  docs: centralise and update garbage collection description
  docs: add custom class for svgs
  docs: add garbage collection timing example

 docs/_static/custom.css                   |    5 +
 docs/backup-client.rst                    |   16 +-
 docs/images/garbage-collection-timing.svg | 2513 +++++++++++++++++++++
 docs/maintenance.rst                      |   80 +-
 4 files changed, 2586 insertions(+), 28 deletions(-)
 create mode 100644 docs/images/garbage-collection-timing.svg


Summary over all repositories:
  4 files changed, 2586 insertions(+), 28 deletions(-)

-- 
Generated by git-murpp 0.6.0




^ permalink raw reply	[flat|nested] 6+ messages in thread

* [pbs-devel] [PATCH proxmox-backup 1/3] docs: centralise and update garbage collection description
  2024-04-02 13:36 [pbs-devel] [PATCH proxmox-backup 0/3] docs: clarify and expand the description of the garbage collection Hannes Duerr
@ 2024-04-02 13:36 ` Hannes Duerr
  2024-04-05 10:49   ` Gabriel Goller
  2024-04-02 13:36 ` [pbs-devel] [PATCH proxmox-backup 2/3] docs: add custom class for svgs Hannes Duerr
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 6+ messages in thread
From: Hannes Duerr @ 2024-04-02 13:36 UTC (permalink / raw)
  To: pbs-devel

The "backup client usage" chapter describes a grace period that is 24
hours and 5 minutes long, and unconnected to this a cut-off time is
mentioned under "maintenance tasks", which leads to confusion. Therefore
we summarise the entire description of garbage collection under
"maintenance tasks" and link to it in the "backup client usage" chapter

Signed-off-by: Hannes Duerr <h.duerr@proxmox.com>
---
 docs/backup-client.rst | 16 +++---------
 docs/maintenance.rst   | 55 ++++++++++++++++++++++++++++++------------
 2 files changed, 43 insertions(+), 28 deletions(-)

diff --git a/docs/backup-client.rst b/docs/backup-client.rst
index 00a1abbb..d015b844 100644
--- a/docs/backup-client.rst
+++ b/docs/backup-client.rst
@@ -735,25 +735,15 @@ command. It is recommended to carry out garbage collection on a regular basis.
 
 The garbage collection works in two phases. In the first phase, all
 data blocks that are still in use are marked. In the second phase,
-unused data blocks are removed.
+unused data blocks are removed. A more detailed description of the GC
+can be found :ref:`here <maintenance_gc>`.
+
 
 .. note:: This command needs to read all existing backup index files
   and touches the complete chunk-store. This can take a long time
   depending on the number of chunks and the speed of the underlying
   disks.
 
-.. note:: The garbage collection will only remove chunks that haven't been used
-   for at least one day (exactly 24h 5m). This grace period is necessary because
-   chunks in use are marked by touching the chunk which updates the ``atime``
-   (access time) property. Filesystems are mounted with the ``relatime`` option
-   by default. This results in a better performance by only updating the
-   ``atime`` property if the last access has been at least 24 hours ago. The
-   downside is that touching a chunk within these 24 hours will not always
-   update its ``atime`` property.
-
-   Chunks in the grace period will be logged at the end of the garbage
-   collection task as *Pending removals*.
-
 .. code-block:: console
 
   # proxmox-backup-client garbage-collect
diff --git a/docs/maintenance.rst b/docs/maintenance.rst
index 6dbb6941..baa1241e 100644
--- a/docs/maintenance.rst
+++ b/docs/maintenance.rst
@@ -171,7 +171,7 @@ It's recommended to setup a schedule to ensure that unused space is cleaned up
 periodically. For most setups a weekly schedule provides a good interval to
 start.
 
-GC Background
+Overview
 ^^^^^^^^^^^^^
 
 In `Proxmox Backup`_ Server, backup data is not saved directly, but rather as
@@ -187,26 +187,51 @@ references to the same chunks on every snapshot deletion. Moreover, locking the
 entire datastore is not feasible because new backups would be blocked until the deletion
 process was complete.
 
-Therefore, Proxmox Backup Server uses a garbage collection (GC) process to
+Therefore, Proxmox Backup Server uses a `tracing garbage collection
+<https://en.wikipedia.org/wiki/Tracing_garbage_collection>`_ algorithm to
 identify and remove the unused backup chunks that are no longer needed by any
-snapshot in the datastore. The GC process is designed to efficiently reclaim
+snapshot in the datastore. The GC algorithm is designed to efficiently reclaim
 the space occupied by these chunks with low impact on the performance of the
 datastore or interfering with other backups.
 
-The garbage collection (GC) process is performed per datastore and is split
-into two phases:
+The GC is performed per datastore and is split into two phases:
 
-- Phase one: Mark
-  All index files are read, and the access time of the referred chunk files is
-  updated.
+- Phase one - Mark:
+
+  Read all index files and update the ``atime`` (access time) of the relevant
+  chunk files.
+
+- Phase two - Sweep:
+
+  Iterate over all chunks and check the ``atime`` of the files. If
+  the ``atime`` is older than the cut-off time, the chunk was neither
+  referenced in a backup index nor is it part of a running backup that
+  does not yet have an index to search. As such, safely remove the chunk.
+
+
+Cut-off Time
+^^^^^^^^^^^^
+
+The GC only clears the chunks that were last accessed before the
+cut-off time. The cut-off time is determined by whichever is earlier:
+
+- 24 hours and 5 minutes before the start of the garbage collection
+  due to the mounting of the data storage with relatime, or
+
+- the start time of the oldest active backup job that has been running
+  for longer than 24 hours and 5 minutes at the beginning of the
+  garbage collection. This is necessary because the newly created
+  backup could refer to blocks, but the GC would not notice this as
+  there is no index of the backup that could be searched.
+
+Chunks accessed after the cut-off time are marked as *Pending removals*
+by the GC as it cannot be certain whether they are still needed.
+
+.. Note:: Mounting a volume with relatime means that the ``atime``
+   of the chunk files is not updated every time, but only when the
+   data has changed or the ``atime`` was before a certain time,
+   which is 24 hours by default.
 
-- Phase two: Sweep
-  The task iterates over all chunks, checks their file access time, and if it
-  is older than the cutoff time (i.e., the time when GC started, plus some
-  headroom for safety and Linux file system behavior), the task knows that the
-  chunk was neither referred to in any backup index nor part of any currently
-  running backup that has no index to scan for. As such, the chunk can be
-  safely deleted.
 
 Manually Starting GC
 ^^^^^^^^^^^^^^^^^^^^
-- 
2.39.2





^ permalink raw reply	[flat|nested] 6+ messages in thread

* [pbs-devel] [PATCH proxmox-backup 2/3] docs: add custom class for svgs
  2024-04-02 13:36 [pbs-devel] [PATCH proxmox-backup 0/3] docs: clarify and expand the description of the garbage collection Hannes Duerr
  2024-04-02 13:36 ` [pbs-devel] [PATCH proxmox-backup 1/3] docs: centralise and update garbage collection description Hannes Duerr
@ 2024-04-02 13:36 ` Hannes Duerr
  2024-04-02 13:36 ` [pbs-devel] [PATCH proxmox-backup 3/3] docs: add garbage collection timing example Hannes Duerr
  2024-04-05 10:58 ` [pbs-devel] [PATCH proxmox-backup 0/3] docs: clarify and expand the description of the garbage collection Gabriel Goller
  3 siblings, 0 replies; 6+ messages in thread
From: Hannes Duerr @ 2024-04-02 13:36 UTC (permalink / raw)
  To: pbs-devel

Unfortunately, the width attribute for svgs is ignored in sphinx version
5.3.0. Therefore we create a class which applies a width of 100% as we
want svgs

Signed-off-by: Hannes Duerr <h.duerr@proxmox.com>
---
 docs/_static/custom.css | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/docs/_static/custom.css b/docs/_static/custom.css
index 7022b532..8c3c3e19 100644
--- a/docs/_static/custom.css
+++ b/docs/_static/custom.css
@@ -10,6 +10,11 @@ h1.logo-name {
 div.body img {
     width: 250px;
 }
+
+div.body img.proxmox-svg {
+    width: 100%;
+}
+
 pre {
     padding: 5px 10px;
 }
-- 
2.39.2





^ permalink raw reply	[flat|nested] 6+ messages in thread

* [pbs-devel] [PATCH proxmox-backup 3/3] docs: add garbage collection timing example
  2024-04-02 13:36 [pbs-devel] [PATCH proxmox-backup 0/3] docs: clarify and expand the description of the garbage collection Hannes Duerr
  2024-04-02 13:36 ` [pbs-devel] [PATCH proxmox-backup 1/3] docs: centralise and update garbage collection description Hannes Duerr
  2024-04-02 13:36 ` [pbs-devel] [PATCH proxmox-backup 2/3] docs: add custom class for svgs Hannes Duerr
@ 2024-04-02 13:36 ` Hannes Duerr
  2024-04-05 10:58 ` [pbs-devel] [PATCH proxmox-backup 0/3] docs: clarify and expand the description of the garbage collection Gabriel Goller
  3 siblings, 0 replies; 6+ messages in thread
From: Hannes Duerr @ 2024-04-02 13:36 UTC (permalink / raw)
  To: pbs-devel

To make the garbage collection process easier to understand, we add a
timing example with a graphic.

Signed-off-by: Hannes Duerr <h.duerr@proxmox.com>
---
 docs/images/garbage-collection-timing.svg | 2513 +++++++++++++++++++++
 docs/maintenance.rst                      |   25 +
 2 files changed, 2538 insertions(+)
 create mode 100644 docs/images/garbage-collection-timing.svg

diff --git a/docs/images/garbage-collection-timing.svg b/docs/images/garbage-collection-timing.svg
new file mode 100644
index 00000000..8108ee23
--- /dev/null
+++ b/docs/images/garbage-collection-timing.svg
@@ -0,0 +1,2513 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   width="251.35417mm"
+   height="115.45419mm"
+   viewBox="0 0 251.35415 115.4542"
+   version="1.1"
+   id="svg1434"
+   inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
+   sodipodi:docname="garbage-collection-timing_draft1.svg"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:svg="http://www.w3.org/2000/svg">
+  <sodipodi:namedview
+     id="namedview1436"
+     pagecolor="#ffffff"
+     bordercolor="#111111"
+     borderopacity="1"
+     inkscape:showpageshadow="0"
+     inkscape:pageopacity="0"
+     inkscape:pagecheckerboard="true"
+     inkscape:deskcolor="#d1d1d1"
+     inkscape:document-units="px"
+     showgrid="false"
+     inkscape:zoom="2.2859308"
+     inkscape:cx="458.23784"
+     inkscape:cy="297.25309"
+     inkscape:window-width="3153"
+     inkscape:window-height="2071"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="layer1"
+     showguides="true" />
+  <defs
+     id="defs1431">
+    <marker
+       style="overflow:visible"
+       id="marker38726"
+       refX="0"
+       refY="0"
+       orient="auto-start-reverse"
+       inkscape:stockid="RoundedArrow"
+       markerWidth="6.1347523"
+       markerHeight="5.9304953"
+       viewBox="0 0 6.1347524 5.9304951"
+       inkscape:isstock="true"
+       inkscape:collect="always"
+       preserveAspectRatio="xMidYMid">
+      <path
+         transform="scale(0.7)"
+         d="m -0.21114562,-4.1055728 6.42229122,3.21114561 a 1,1 90 0 1 0,1.78885438 L -0.21114562,4.1055728 A 1.236068,1.236068 31.717474 0 1 -2,3 v -6 a 1.236068,1.236068 148.28253 0 1 1.78885438,-1.1055728 z"
+         style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+         id="path38724" />
+    </marker>
+    <pattern
+       inkscape:collect="always"
+       xlink:href="#Strips1_1"
+       id="pattern5882"
+       patternTransform="matrix(27.715311,0,0,27.715311,-284.89209,683.76847)" />
+    <pattern
+       inkscape:collect="always"
+       patternUnits="userSpaceOnUse"
+       width="2"
+       height="1"
+       patternTransform="translate(0,0) scale(10,10)"
+       id="Strips1_1"
+       inkscape:stockid="Stripes 1:1"
+       inkscape:isstock="true">
+      <rect
+         style="fill:black;stroke:none"
+         x="0"
+         y="-0.5"
+         width="1"
+         height="2"
+         id="rect4328" />
+    </pattern>
+    <marker
+       style="overflow:visible"
+       id="RoundedArrow"
+       refX="0"
+       refY="0"
+       orient="auto-start-reverse"
+       inkscape:stockid="RoundedArrow"
+       markerWidth="6.1347523"
+       markerHeight="5.9304953"
+       viewBox="0 0 6.1347524 5.9304951"
+       inkscape:isstock="true"
+       inkscape:collect="always"
+       preserveAspectRatio="xMidYMid">
+      <path
+         transform="scale(0.7)"
+         d="m -0.21114562,-4.1055728 6.42229122,3.21114561 a 1,1 90 0 1 0,1.78885438 L -0.21114562,4.1055728 A 1.236068,1.236068 31.717474 0 1 -2,3 v -6 a 1.236068,1.236068 148.28253 0 1 1.78885438,-1.1055728 z"
+         style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+         id="path1367" />
+    </marker>
+    <pattern
+       patternUnits="userSpaceOnUse"
+       width="34.999986"
+       height="34.999986"
+       patternTransform="translate(252.00641,162.3377)"
+       id="pattern5879">
+      <rect
+         style="display:inline;fill:url(#pattern5882);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.218;stroke-dasharray:none;stroke-opacity:1"
+         id="rect2735"
+         width="33.781986"
+         height="33.781986"
+         x="0.60900003"
+         y="-34.390987"
+         ry="8.5727673"
+         transform="rotate(90)"
+         rx="8.5727673"
+         inkscape:label="background" />
+    </pattern>
+    <pattern
+       patternUnits="userSpaceOnUse"
+       width="2.7946498"
+       height="2.7898082"
+       patternTransform="translate(39.823201,13.729677)"
+       id="pattern37177">
+      <g
+         id="g37133"
+         transform="matrix(0.52811702,0,0,0.52811702,-24.543455,-42.936124)"
+         inkscape:label="cross">
+        <path
+           style="fill:none;fill-opacity:1;stroke:#e57000;stroke-width:0.136693;stroke-linecap:butt;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+           d="m 49.167708,81.348727 2.549177,2.549177"
+           id="path37129" />
+        <path
+           style="fill:none;fill-opacity:1;stroke:#e57000;stroke-width:0.134673;stroke-linecap:butt;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+           d="m 51.717627,81.348013 -2.550633,2.550633"
+           id="path37131" />
+      </g>
+      <g
+         id="g37139"
+         transform="matrix(0.52811702,0,0,0.52811702,-25.94078,-42.936124)"
+         inkscape:label="cross">
+        <path
+           style="fill:none;fill-opacity:1;stroke:#e57000;stroke-width:0.136693;stroke-linecap:butt;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+           d="m 49.167708,81.348727 2.549177,2.549177"
+           id="path37135" />
+        <path
+           style="fill:none;fill-opacity:1;stroke:#e57000;stroke-width:0.134673;stroke-linecap:butt;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+           d="m 51.717627,81.348013 -2.550633,2.550633"
+           id="path37137" />
+      </g>
+      <g
+         id="g37145"
+         transform="matrix(0.52811702,0,0,0.52811702,-24.543455,-41.54364)"
+         inkscape:label="cross">
+        <path
+           style="fill:none;fill-opacity:1;stroke:#e57000;stroke-width:0.136693;stroke-linecap:butt;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+           d="m 49.167708,81.348727 2.549177,2.549177"
+           id="path37141" />
+        <path
+           style="fill:none;fill-opacity:1;stroke:#e57000;stroke-width:0.134673;stroke-linecap:butt;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+           d="m 51.717627,81.348013 -2.550633,2.550633"
+           id="path37143" />
+      </g>
+      <g
+         id="g37151"
+         transform="matrix(0.52811702,0,0,0.52811702,-25.94078,-41.54364)"
+         inkscape:label="cross">
+        <path
+           style="fill:none;fill-opacity:1;stroke:#e57000;stroke-width:0.136693;stroke-linecap:butt;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+           d="m 49.167708,81.348727 2.549177,2.549177"
+           id="path37147" />
+        <path
+           style="fill:none;fill-opacity:1;stroke:#e57000;stroke-width:0.134673;stroke-linecap:butt;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+           d="m 51.717627,81.348013 -2.550633,2.550633"
+           id="path37149" />
+      </g>
+      <g
+         id="g37157"
+         transform="matrix(0.52811702,0,0,0.52811702,-24.543455,-42.936124)"
+         inkscape:label="cross">
+        <path
+           style="fill:none;fill-opacity:1;stroke:#e57000;stroke-width:0.136693;stroke-linecap:butt;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+           d="m 49.167708,81.348727 2.549177,2.549177"
+           id="path37153" />
+        <path
+           style="fill:none;fill-opacity:1;stroke:#e57000;stroke-width:0.134673;stroke-linecap:butt;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+           d="m 51.717627,81.348013 -2.550633,2.550633"
+           id="path37155" />
+      </g>
+      <g
+         id="g37163"
+         transform="matrix(0.52811702,0,0,0.52811702,-25.94078,-42.936124)"
+         inkscape:label="cross">
+        <path
+           style="fill:none;fill-opacity:1;stroke:#e57000;stroke-width:0.136693;stroke-linecap:butt;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+           d="m 49.167708,81.348727 2.549177,2.549177"
+           id="path37159" />
+        <path
+           style="fill:none;fill-opacity:1;stroke:#e57000;stroke-width:0.134673;stroke-linecap:butt;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+           d="m 51.717627,81.348013 -2.550633,2.550633"
+           id="path37161" />
+      </g>
+      <g
+         id="g37169"
+         transform="matrix(0.52811702,0,0,0.52811702,-24.543455,-41.54364)"
+         inkscape:label="cross">
+        <path
+           style="fill:none;fill-opacity:1;stroke:#e57000;stroke-width:0.136693;stroke-linecap:butt;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+           d="m 49.167708,81.348727 2.549177,2.549177"
+           id="path37165" />
+        <path
+           style="fill:none;fill-opacity:1;stroke:#e57000;stroke-width:0.134673;stroke-linecap:butt;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+           d="m 51.717627,81.348013 -2.550633,2.550633"
+           id="path37167" />
+      </g>
+      <g
+         id="g37175"
+         transform="matrix(0.52811702,0,0,0.52811702,-25.94078,-41.54364)"
+         inkscape:label="cross">
+        <path
+           style="fill:none;fill-opacity:1;stroke:#e57000;stroke-width:0.136693;stroke-linecap:butt;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+           d="m 49.167708,81.348727 2.549177,2.549177"
+           id="path37171" />
+        <path
+           style="fill:none;fill-opacity:1;stroke:#e57000;stroke-width:0.134673;stroke-linecap:butt;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+           d="m 51.717627,81.348013 -2.550633,2.550633"
+           id="path37173" />
+      </g>
+    </pattern>
+    <pattern
+       patternUnits="userSpaceOnUse"
+       width="2.7946498"
+       height="2.7898082"
+       patternTransform="translate(35.849115,14.913625)"
+       id="pattern37287">
+      <g
+         id="g37285"
+         inkscape:label="pattern template"
+         transform="matrix(3.7795276,0,0,3.7795276,-183.63653,-306.51443)">
+        <g
+           id="g37241"
+           transform="matrix(0.13973096,0,0,0.13973096,42.093375,69.738426)"
+           inkscape:label="cross">
+          <path
+             style="fill:none;fill-opacity:1;stroke:#e57000;stroke-width:0.136693;stroke-linecap:butt;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+             d="m 49.167708,81.348727 2.549177,2.549177"
+             id="path37237" />
+          <path
+             style="fill:none;fill-opacity:1;stroke:#e57000;stroke-width:0.134673;stroke-linecap:butt;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+             d="m 51.717627,81.348013 -2.550633,2.550633"
+             id="path37239" />
+        </g>
+        <g
+           id="g37247"
+           transform="matrix(0.13973096,0,0,0.13973096,41.723666,69.738426)"
+           inkscape:label="cross">
+          <path
+             style="fill:none;fill-opacity:1;stroke:#e57000;stroke-width:0.136693;stroke-linecap:butt;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+             d="m 49.167708,81.348727 2.549177,2.549177"
+             id="path37243" />
+          <path
+             style="fill:none;fill-opacity:1;stroke:#e57000;stroke-width:0.134673;stroke-linecap:butt;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+             d="m 51.717627,81.348013 -2.550633,2.550633"
+             id="path37245" />
+        </g>
+        <g
+           id="g37253"
+           transform="matrix(0.13973096,0,0,0.13973096,42.093375,70.106854)"
+           inkscape:label="cross">
+          <path
+             style="fill:none;fill-opacity:1;stroke:#e57000;stroke-width:0.136693;stroke-linecap:butt;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+             d="m 49.167708,81.348727 2.549177,2.549177"
+             id="path37249" />
+          <path
+             style="fill:none;fill-opacity:1;stroke:#e57000;stroke-width:0.134673;stroke-linecap:butt;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+             d="m 51.717627,81.348013 -2.550633,2.550633"
+             id="path37251" />
+        </g>
+        <g
+           id="g37259"
+           transform="matrix(0.13973096,0,0,0.13973096,41.723666,70.106854)"
+           inkscape:label="cross">
+          <path
+             style="fill:none;fill-opacity:1;stroke:#e57000;stroke-width:0.136693;stroke-linecap:butt;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+             d="m 49.167708,81.348727 2.549177,2.549177"
+             id="path37255" />
+          <path
+             style="fill:none;fill-opacity:1;stroke:#e57000;stroke-width:0.134673;stroke-linecap:butt;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+             d="m 51.717627,81.348013 -2.550633,2.550633"
+             id="path37257" />
+        </g>
+        <g
+           id="g37265"
+           transform="matrix(0.13973096,0,0,0.13973096,42.093375,69.738426)"
+           inkscape:label="cross">
+          <path
+             style="fill:none;fill-opacity:1;stroke:#e57000;stroke-width:0.136693;stroke-linecap:butt;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+             d="m 49.167708,81.348727 2.549177,2.549177"
+             id="path37261" />
+          <path
+             style="fill:none;fill-opacity:1;stroke:#e57000;stroke-width:0.134673;stroke-linecap:butt;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+             d="m 51.717627,81.348013 -2.550633,2.550633"
+             id="path37263" />
+        </g>
+        <g
+           id="g37271"
+           transform="matrix(0.13973096,0,0,0.13973096,41.723666,69.738426)"
+           inkscape:label="cross">
+          <path
+             style="fill:none;fill-opacity:1;stroke:#e57000;stroke-width:0.136693;stroke-linecap:butt;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+             d="m 49.167708,81.348727 2.549177,2.549177"
+             id="path37267" />
+          <path
+             style="fill:none;fill-opacity:1;stroke:#e57000;stroke-width:0.134673;stroke-linecap:butt;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+             d="m 51.717627,81.348013 -2.550633,2.550633"
+             id="path37269" />
+        </g>
+        <g
+           id="g37277"
+           transform="matrix(0.13973096,0,0,0.13973096,42.093375,70.106854)"
+           inkscape:label="cross">
+          <path
+             style="fill:none;fill-opacity:1;stroke:#e57000;stroke-width:0.136693;stroke-linecap:butt;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+             d="m 49.167708,81.348727 2.549177,2.549177"
+             id="path37273" />
+          <path
+             style="fill:none;fill-opacity:1;stroke:#e57000;stroke-width:0.134673;stroke-linecap:butt;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+             d="m 51.717627,81.348013 -2.550633,2.550633"
+             id="path37275" />
+        </g>
+        <g
+           id="g37283"
+           transform="matrix(0.13973096,0,0,0.13973096,41.723666,70.106854)"
+           inkscape:label="cross">
+          <path
+             style="fill:none;fill-opacity:1;stroke:#e57000;stroke-width:0.136693;stroke-linecap:butt;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+             d="m 49.167708,81.348727 2.549177,2.549177"
+             id="path37279" />
+          <path
+             style="fill:none;fill-opacity:1;stroke:#e57000;stroke-width:0.134673;stroke-linecap:butt;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+             d="m 51.717627,81.348013 -2.550633,2.550633"
+             id="path37281" />
+        </g>
+      </g>
+    </pattern>
+    <pattern
+       patternUnits="userSpaceOnUse"
+       width="2.7946498"
+       height="2.7898082"
+       patternTransform="translate(38.788319,19.439012)"
+       id="pattern37450">
+      <g
+         id="g37448"
+         inkscape:label="pattern template"
+         transform="matrix(3.7795276,0,0,3.7795276,-183.63653,-306.51443)">
+        <g
+           id="g37404"
+           transform="matrix(0.13973096,0,0,0.13973096,42.093375,69.738426)"
+           inkscape:label="cross">
+          <path
+             style="fill:none;fill-opacity:1;stroke:#4f8eff;stroke-width:0.136693;stroke-linecap:butt;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+             d="m 49.167708,81.348727 2.549177,2.549177"
+             id="path37400" />
+          <path
+             style="fill:none;fill-opacity:1;stroke:#4f8eff;stroke-width:0.134673;stroke-linecap:butt;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+             d="m 51.717627,81.348013 -2.550633,2.550633"
+             id="path37402" />
+        </g>
+        <g
+           id="g37410"
+           transform="matrix(0.13973096,0,0,0.13973096,41.723666,69.738426)"
+           inkscape:label="cross">
+          <path
+             style="fill:none;fill-opacity:1;stroke:#4f8eff;stroke-width:0.136693;stroke-linecap:butt;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+             d="m 49.167708,81.348727 2.549177,2.549177"
+             id="path37406" />
+          <path
+             style="fill:none;fill-opacity:1;stroke:#4f8eff;stroke-width:0.134673;stroke-linecap:butt;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+             d="m 51.717627,81.348013 -2.550633,2.550633"
+             id="path37408" />
+        </g>
+        <g
+           id="g37416"
+           transform="matrix(0.13973096,0,0,0.13973096,42.093375,70.106854)"
+           inkscape:label="cross">
+          <path
+             style="fill:none;fill-opacity:1;stroke:#4f8eff;stroke-width:0.136693;stroke-linecap:butt;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+             d="m 49.167708,81.348727 2.549177,2.549177"
+             id="path37412" />
+          <path
+             style="fill:none;fill-opacity:1;stroke:#4f8eff;stroke-width:0.134673;stroke-linecap:butt;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+             d="m 51.717627,81.348013 -2.550633,2.550633"
+             id="path37414" />
+        </g>
+        <g
+           id="g37422"
+           transform="matrix(0.13973096,0,0,0.13973096,41.723666,70.106854)"
+           inkscape:label="cross">
+          <path
+             style="fill:none;fill-opacity:1;stroke:#4f8eff;stroke-width:0.136693;stroke-linecap:butt;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+             d="m 49.167708,81.348727 2.549177,2.549177"
+             id="path37418" />
+          <path
+             style="fill:none;fill-opacity:1;stroke:#4f8eff;stroke-width:0.134673;stroke-linecap:butt;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+             d="m 51.717627,81.348013 -2.550633,2.550633"
+             id="path37420" />
+        </g>
+        <g
+           id="g37428"
+           transform="matrix(0.13973096,0,0,0.13973096,42.093375,69.738426)"
+           inkscape:label="cross">
+          <path
+             style="fill:none;fill-opacity:1;stroke:#4f8eff;stroke-width:0.136693;stroke-linecap:butt;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+             d="m 49.167708,81.348727 2.549177,2.549177"
+             id="path37424" />
+          <path
+             style="fill:none;fill-opacity:1;stroke:#4f8eff;stroke-width:0.134673;stroke-linecap:butt;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+             d="m 51.717627,81.348013 -2.550633,2.550633"
+             id="path37426" />
+        </g>
+        <g
+           id="g37434"
+           transform="matrix(0.13973096,0,0,0.13973096,41.723666,69.738426)"
+           inkscape:label="cross">
+          <path
+             style="fill:none;fill-opacity:1;stroke:#4f8eff;stroke-width:0.136693;stroke-linecap:butt;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+             d="m 49.167708,81.348727 2.549177,2.549177"
+             id="path37430" />
+          <path
+             style="fill:none;fill-opacity:1;stroke:#4f8eff;stroke-width:0.134673;stroke-linecap:butt;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+             d="m 51.717627,81.348013 -2.550633,2.550633"
+             id="path37432" />
+        </g>
+        <g
+           id="g37440"
+           transform="matrix(0.13973096,0,0,0.13973096,42.093375,70.106854)"
+           inkscape:label="cross">
+          <path
+             style="fill:none;fill-opacity:1;stroke:#4f8eff;stroke-width:0.136693;stroke-linecap:butt;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+             d="m 49.167708,81.348727 2.549177,2.549177"
+             id="path37436" />
+          <path
+             style="fill:none;fill-opacity:1;stroke:#4f8eff;stroke-width:0.134673;stroke-linecap:butt;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+             d="m 51.717627,81.348013 -2.550633,2.550633"
+             id="path37438" />
+        </g>
+        <g
+           id="g37446"
+           transform="matrix(0.13973096,0,0,0.13973096,41.723666,70.106854)"
+           inkscape:label="cross">
+          <path
+             style="fill:none;fill-opacity:1;stroke:#4f8eff;stroke-width:0.136693;stroke-linecap:butt;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+             d="m 49.167708,81.348727 2.549177,2.549177"
+             id="path37442" />
+          <path
+             style="fill:none;fill-opacity:1;stroke:#4f8eff;stroke-width:0.134673;stroke-linecap:butt;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+             d="m 51.717627,81.348013 -2.550633,2.550633"
+             id="path37444" />
+        </g>
+      </g>
+    </pattern>
+  </defs>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-36.011852,-78.291046)"
+     style="display:inline">
+    <rect
+       style="display:inline;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.40734;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:0;stroke-dasharray:0.40734, 0.40734;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000"
+       id="rect21041"
+       width="251.35417"
+       height="115.45419"
+       x="36.011852"
+       y="78.291046"
+       inkscape:label="background"
+       sodipodi:insensitive="true" />
+    <g
+       id="g1345"
+       inkscape:label="coordinate-system"
+       transform="translate(-17.232756,-12.700002)">
+      <path
+         style="display:inline;fill:none;stroke:#4d4d4d;stroke-width:0.507156;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#RoundedArrow)"
+         d="M 94.004509,149.18061 H 289.33303"
+         id="path1061"
+         inkscape:label="x-axis" />
+      <path
+         style="display:inline;fill:none;stroke:#4d4d4d;stroke-width:0.646044;stroke-linecap:round;stroke-dasharray:0.646044, 1.29208;stroke-dashoffset:0;stroke-opacity:1"
+         d="M 93.172187,149.18061 H 69.316251"
+         id="path1341"
+         inkscape:label="dotted" />
+      <path
+         style="fill:none;stroke:#4d4d4d;stroke-width:0.496091;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker38726)"
+         d="m 69.163663,104.38837 v 53.78366"
+         id="path2077"
+         inkscape:label="seperator1" />
+      <path
+         style="display:inline;fill:none;stroke:#4d4d4d;stroke-width:0.496091;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1"
+         d="m 93.872112,104.38837 v 53.78366"
+         id="path1300"
+         inkscape:label="seperator2" />
+      <path
+         style="fill:none;stroke:#4d4d4d;stroke-width:0.496091;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1"
+         d="m 142.76165,104.38837 v 53.78366"
+         id="path2079"
+         inkscape:label="seperator3" />
+      <path
+         style="fill:none;stroke:#4d4d4d;stroke-width:0.496091;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1"
+         d="m 191.65119,104.38837 v 53.78366"
+         id="path2083"
+         inkscape:label="seperator4" />
+      <path
+         style="fill:none;stroke:#4d4d4d;stroke-width:0.496091;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1"
+         d="m 240.54074,104.38837 v 53.78366"
+         id="path2085"
+         inkscape:label="seperator5" />
+      <g
+         id="g3306"
+         inkscape:label="description"
+         style="display:inline;fill:#ffffff;fill-opacity:1"
+         transform="translate(1.0583328,12.700001)">
+        <text
+           id="text3275"
+           y="152.90921"
+           x="91.06678"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;line-height:1.25;font-family:'Open Sans';-inkscape-font-specification:'Open Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;display:inline;fill:#464d4d;fill-opacity:1;stroke:none;stroke-width:0.203197"
+           xml:space="preserve"
+           inkscape:label="t0"><tspan
+             style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93889px;font-family:'Open Sans';-inkscape-font-specification:'Open Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#464d4d;fill-opacity:1;stroke-width:0.203197"
+             y="152.90921"
+             x="91.06678"
+             id="tspan3273"
+             sodipodi:role="line">t<tspan
+   style="font-size:65%;baseline-shift:sub"
+   id="tspan4156">0</tspan></tspan></text>
+        <text
+           id="text3295"
+           y="152.90921"
+           x="140.23376"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;line-height:1.25;font-family:'Open Sans';-inkscape-font-specification:'Open Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;display:inline;fill:#464d4d;fill-opacity:1;stroke:none;stroke-width:0.2032;stroke-dasharray:none"
+           xml:space="preserve"
+           inkscape:label="t1"><tspan
+             style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93889px;font-family:'Open Sans';-inkscape-font-specification:'Open Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#464d4d;fill-opacity:1;stroke-width:0.2032;stroke-dasharray:none"
+             y="152.90921"
+             x="140.23376"
+             id="tspan3293"
+             sodipodi:role="line">t<tspan
+   style="font-size:65%;baseline-shift:sub"
+   id="tspan4154">1</tspan></tspan></text>
+        <text
+           id="text3279"
+           y="152.90921"
+           x="188.85213"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;line-height:1.25;font-family:'Open Sans';-inkscape-font-specification:'Open Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;display:inline;fill:#464d4d;fill-opacity:1;stroke:none;stroke-width:0.203197"
+           xml:space="preserve"
+           inkscape:label="t2"><tspan
+             style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93889px;font-family:'Open Sans';-inkscape-font-specification:'Open Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#464d4d;fill-opacity:1;stroke-width:0.203197"
+             y="152.90921"
+             x="188.85213"
+             id="tspan3277"
+             sodipodi:role="line">t<tspan
+   style="font-size:65%;baseline-shift:sub"
+   id="tspan4152">2</tspan></tspan></text>
+        <text
+           id="text3287"
+           y="152.90921"
+           x="237.74951"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;line-height:1.25;font-family:'Open Sans';-inkscape-font-specification:'Open Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;display:inline;fill:#464d4d;fill-opacity:1;stroke:none;stroke-width:0.203197"
+           xml:space="preserve"
+           inkscape:label="t3"><tspan
+             style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93889px;font-family:'Open Sans';-inkscape-font-specification:'Open Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#464d4d;fill-opacity:1;stroke-width:0.203197"
+             y="152.90921"
+             x="237.74951"
+             id="tspan3285"
+             sodipodi:role="line">t<tspan
+   style="font-size:65%;baseline-shift:sub"
+   id="tspan4150">3</tspan></tspan></text>
+        <text
+           id="text706"
+           y="152.90921"
+           x="62.753822"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;line-height:1.25;font-family:'Open Sans';-inkscape-font-specification:'Open Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;display:inline;fill:#464d4d;fill-opacity:1;stroke:none;stroke-width:0.203197"
+           xml:space="preserve"
+           inkscape:label="t0"><tspan
+             style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93889px;font-family:'Open Sans';-inkscape-font-specification:'Open Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#464d4d;fill-opacity:1;stroke-width:0.203197"
+             y="152.90921"
+             x="62.753822"
+             id="tspan704"
+             sodipodi:role="line">t<tspan
+   style="font-size:65%;baseline-shift:sub"
+   id="tspan4148">cutoff</tspan></tspan></text>
+      </g>
+    </g>
+    <g
+       id="g2861"
+       inkscape:label="grid1"
+       transform="translate(-4.38085,-2.0273229)">
+      <g
+         id="g2705"
+         inkscape:label="column1">
+        <g
+           id="g2675"
+           transform="matrix(0.28137732,0,0,0.28137732,70.125515,92.063045)"
+           inkscape:label="chunk"
+           style="display:inline">
+          <rect
+             style="display:inline;fill:#e57000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.439473;stroke-dasharray:none;stroke-opacity:1"
+             id="rect2663"
+             width="12.188926"
+             height="12.188926"
+             x="103.01205"
+             y="-259.12012"
+             ry="3.093152"
+             transform="matrix(0,2.6061124,-2.6061124,0,-576.13291,-241.96985)"
+             rx="3.093152"
+             inkscape:label="background" />
+          <g
+             id="g2673"
+             inkscape:label="text"
+             transform="translate(-1.1913705e-5)">
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.5369px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="75.800545"
+               y="46.866966"
+               id="text2667"
+               inkscape:label="text_large"><tspan
+                 sodipodi:role="line"
+                 id="tspan2665"
+                 x="75.800545"
+                 y="46.866966"
+                 style="font-size:15.2214px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">C</tspan></text>
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:1.22862px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="85.763794"
+               y="48.903133"
+               id="text2671"
+               inkscape:label="text_small"><tspan
+                 sodipodi:role="line"
+                 id="tspan2669"
+                 x="85.763794"
+                 y="48.903133"
+                 style="font-size:7.37174px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">1</tspan></text>
+          </g>
+        </g>
+        <g
+           id="g2689"
+           transform="matrix(0.28137732,0,0,0.28137732,70.125515,103.9693)"
+           inkscape:label="chunk"
+           style="display:inline">
+          <rect
+             style="display:inline;fill:#e57000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.439473;stroke-dasharray:none;stroke-opacity:1"
+             id="rect2677"
+             width="12.188926"
+             height="12.188926"
+             x="103.01205"
+             y="-259.12012"
+             ry="3.093152"
+             transform="matrix(0,2.6061124,-2.6061124,0,-576.13291,-241.96985)"
+             rx="3.093152"
+             inkscape:label="background" />
+          <g
+             id="g2687"
+             inkscape:label="text"
+             transform="translate(-1.1913705e-5)">
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.5369px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="75.800545"
+               y="46.866966"
+               id="text2681"
+               inkscape:label="text_large"><tspan
+                 sodipodi:role="line"
+                 id="tspan2679"
+                 x="75.800545"
+                 y="46.866966"
+                 style="font-size:15.2214px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">C</tspan></text>
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:1.22862px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="85.763794"
+               y="48.903133"
+               id="text2685"
+               inkscape:label="text_small"><tspan
+                 sodipodi:role="line"
+                 id="tspan2683"
+                 x="85.763794"
+                 y="48.903133"
+                 style="font-size:7.37174px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">4</tspan></text>
+          </g>
+        </g>
+        <g
+           id="g2703"
+           transform="matrix(0.28137732,0,0,0.28137732,70.125515,115.87555)"
+           inkscape:label="chunk"
+           style="display:inline">
+          <rect
+             style="display:inline;fill:#e57000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.439473;stroke-dasharray:none;stroke-opacity:1"
+             id="rect2691"
+             width="12.188926"
+             height="12.188926"
+             x="103.01205"
+             y="-259.12012"
+             ry="3.093152"
+             transform="matrix(0,2.6061124,-2.6061124,0,-576.13291,-241.96985)"
+             rx="3.093152"
+             inkscape:label="background" />
+          <g
+             id="g2701"
+             inkscape:label="text"
+             transform="translate(-1.1913705e-5)">
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.5369px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="75.800545"
+               y="46.866966"
+               id="text2695"
+               inkscape:label="text_large"><tspan
+                 sodipodi:role="line"
+                 id="tspan2693"
+                 x="75.800545"
+                 y="46.866966"
+                 style="font-size:15.2214px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">C</tspan></text>
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:1.22862px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="85.763794"
+               y="48.903133"
+               id="text2699"
+               inkscape:label="text_small"><tspan
+                 sodipodi:role="line"
+                 id="tspan2697"
+                 x="85.763794"
+                 y="48.903133"
+                 style="font-size:7.37174px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">7</tspan></text>
+          </g>
+        </g>
+      </g>
+      <g
+         id="g2749"
+         inkscape:label="column2"
+         transform="translate(12.823771,-0.05452)">
+        <g
+           id="g2719"
+           transform="matrix(0.28137732,0,0,0.28137732,69.207994,115.93007)"
+           inkscape:label="chunk"
+           style="display:inline">
+          <rect
+             style="display:inline;fill:url(#pattern37287);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.439468;stroke-dasharray:none;stroke-opacity:1"
+             id="rect2707"
+             width="12.188926"
+             height="12.188926"
+             x="103.01205"
+             y="-259.12012"
+             ry="3.093152"
+             transform="matrix(0,2.6061124,-2.6061124,0,-576.13291,-241.96985)"
+             rx="3.093152"
+             inkscape:label="background" />
+          <g
+             id="g2717"
+             inkscape:label="text"
+             transform="translate(-1.1913705e-5)">
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.5369px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="75.800545"
+               y="46.866966"
+               id="text2711"
+               inkscape:label="text_large"><tspan
+                 sodipodi:role="line"
+                 id="tspan2709"
+                 x="75.800545"
+                 y="46.866966"
+                 style="font-size:15.2214px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">C</tspan></text>
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:1.22862px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="85.763794"
+               y="48.903133"
+               id="text2715"
+               inkscape:label="text_small"><tspan
+                 sodipodi:role="line"
+                 id="tspan2713"
+                 x="85.763794"
+                 y="48.903133"
+                 style="font-size:7.37174px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">8</tspan></text>
+          </g>
+        </g>
+        <g
+           id="g2733"
+           transform="matrix(0.28137732,0,0,0.28137732,69.207994,104.02382)"
+           inkscape:label="chunk"
+           style="display:inline">
+          <rect
+             style="display:inline;fill:url(#pattern37287);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.439468;stroke-dasharray:none;stroke-opacity:1"
+             id="rect2721"
+             width="12.188926"
+             height="12.188926"
+             x="103.01205"
+             y="-259.12012"
+             ry="3.093152"
+             transform="matrix(0,2.6061124,-2.6061124,0,-576.13291,-241.96985)"
+             rx="3.093152"
+             inkscape:label="background" />
+          <g
+             id="g2731"
+             inkscape:label="text"
+             transform="translate(-1.1913705e-5)">
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.5369px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="75.800545"
+               y="46.866966"
+               id="text2725"
+               inkscape:label="text_large"><tspan
+                 sodipodi:role="line"
+                 id="tspan2723"
+                 x="75.800545"
+                 y="46.866966"
+                 style="font-size:15.2214px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">C</tspan></text>
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:1.22862px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="85.763794"
+               y="48.903133"
+               id="text2729"
+               inkscape:label="text_small"><tspan
+                 sodipodi:role="line"
+                 id="tspan2727"
+                 x="85.763794"
+                 y="48.903133"
+                 style="font-size:7.37174px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">5</tspan></text>
+          </g>
+        </g>
+        <g
+           id="g37334"
+           transform="matrix(0.28137732,0,0,0.28137732,69.207994,92.117565)"
+           inkscape:label="chunk"
+           style="display:inline">
+          <rect
+             style="display:inline;fill:url(#pattern37287);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.439468;stroke-dasharray:none;stroke-opacity:1"
+             id="rect37322"
+             width="12.188926"
+             height="12.188926"
+             x="103.01205"
+             y="-259.12012"
+             ry="3.093152"
+             transform="matrix(0,2.6061124,-2.6061124,0,-576.13291,-241.96985)"
+             rx="3.093152"
+             inkscape:label="background" />
+          <g
+             id="g37332"
+             inkscape:label="text"
+             transform="translate(-1.1913705e-5)">
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.5369px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="75.800545"
+               y="46.866966"
+               id="text37326"
+               inkscape:label="text_large"><tspan
+                 sodipodi:role="line"
+                 id="tspan37324"
+                 x="75.800545"
+                 y="46.866966"
+                 style="font-size:15.2214px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">C</tspan></text>
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:1.22862px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="85.763794"
+               y="48.903133"
+               id="text37330"
+               inkscape:label="text_small"><tspan
+                 sodipodi:role="line"
+                 id="tspan37328"
+                 x="85.763794"
+                 y="48.903133"
+                 style="font-size:7.37174px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">2</tspan></text>
+          </g>
+        </g>
+      </g>
+      <g
+         id="g2793"
+         inkscape:label="column3"
+         transform="translate(24.730021,-0.05452)">
+        <g
+           id="g2763"
+           transform="matrix(0.28137732,0,0,0.28137732,69.207994,92.117565)"
+           inkscape:label="chunk"
+           style="display:inline">
+          <rect
+             style="display:inline;fill:url(#pattern37287);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.439473;stroke-dasharray:none;stroke-opacity:1"
+             id="rect2751"
+             width="12.188926"
+             height="12.188926"
+             x="103.01205"
+             y="-259.12012"
+             ry="3.093152"
+             transform="matrix(0,2.6061124,-2.6061124,0,-576.13291,-241.96985)"
+             rx="3.093152"
+             inkscape:label="background" />
+          <g
+             id="g2761"
+             inkscape:label="text"
+             transform="translate(-1.1913705e-5)">
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.5369px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="75.800545"
+               y="46.866966"
+               id="text2755"
+               inkscape:label="text_large"><tspan
+                 sodipodi:role="line"
+                 id="tspan2753"
+                 x="75.800545"
+                 y="46.866966"
+                 style="font-size:15.2214px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">C</tspan></text>
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:1.22862px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="85.763794"
+               y="48.903133"
+               id="text2759"
+               inkscape:label="text_small"><tspan
+                 sodipodi:role="line"
+                 id="tspan2757"
+                 x="85.763794"
+                 y="48.903133"
+                 style="font-size:7.37174px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">3</tspan></text>
+          </g>
+        </g>
+        <g
+           id="g2791"
+           transform="matrix(0.28137732,0,0,0.28137732,69.207994,115.93007)"
+           inkscape:label="chunk"
+           style="display:inline">
+          <rect
+             style="display:inline;fill:url(#pattern37287);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.439473;stroke-dasharray:none;stroke-opacity:1"
+             id="rect2779"
+             width="12.188926"
+             height="12.188926"
+             x="103.01205"
+             y="-259.12012"
+             ry="3.093152"
+             transform="matrix(0,2.6061124,-2.6061124,0,-576.13291,-241.96985)"
+             rx="3.093152"
+             inkscape:label="background" />
+          <g
+             id="g2789"
+             inkscape:label="text"
+             transform="translate(-1.1913705e-5)">
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.5369px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="75.800545"
+               y="46.866966"
+               id="text2783"
+               inkscape:label="text_large"><tspan
+                 sodipodi:role="line"
+                 id="tspan2781"
+                 x="75.800545"
+                 y="46.866966"
+                 style="font-size:15.2214px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">C</tspan></text>
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:1.22862px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="85.763794"
+               y="48.903133"
+               id="text2787"
+               inkscape:label="text_small"><tspan
+                 sodipodi:role="line"
+                 id="tspan2785"
+                 x="85.763794"
+                 y="48.903133"
+                 style="font-size:7.37174px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">9</tspan></text>
+          </g>
+        </g>
+        <g
+           id="g10284"
+           transform="matrix(0.28137732,0,0,0.28137732,69.207994,104.02382)"
+           inkscape:label="chunk"
+           style="display:inline">
+          <rect
+             style="display:inline;fill:#e57000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.439473;stroke-dasharray:none;stroke-opacity:1"
+             id="rect10272"
+             width="12.188926"
+             height="12.188926"
+             x="103.01205"
+             y="-259.12012"
+             ry="3.093152"
+             transform="matrix(0,2.6061124,-2.6061124,0,-576.13291,-241.96985)"
+             rx="3.093152"
+             inkscape:label="background" />
+          <g
+             id="g10282"
+             inkscape:label="text"
+             transform="translate(-1.1913705e-5)">
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.5369px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="75.800545"
+               y="46.866966"
+               id="text10276"
+               inkscape:label="text_large"><tspan
+                 sodipodi:role="line"
+                 id="tspan10274"
+                 x="75.800545"
+                 y="46.866966"
+                 style="font-size:15.2214px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">C</tspan></text>
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:1.22862px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="85.763794"
+               y="48.903133"
+               id="text10280"
+               inkscape:label="text_small"><tspan
+                 sodipodi:role="line"
+                 id="tspan10278"
+                 x="85.763794"
+                 y="48.903133"
+                 style="font-size:7.37174px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">6</tspan></text>
+          </g>
+        </g>
+      </g>
+    </g>
+    <g
+       id="g2995"
+       inkscape:label="grid2"
+       transform="translate(44.508691,-2.0273229)">
+      <g
+         id="g2905"
+         inkscape:label="column1">
+        <g
+           id="g2875"
+           transform="matrix(0.28137732,0,0,0.28137732,70.125515,92.063045)"
+           inkscape:label="chunk"
+           style="display:inline">
+          <rect
+             style="display:inline;fill:#e57000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.439473;stroke-dasharray:none;stroke-opacity:1"
+             id="rect2863"
+             width="12.188926"
+             height="12.188926"
+             x="103.01205"
+             y="-259.12012"
+             ry="3.093152"
+             transform="matrix(0,2.6061124,-2.6061124,0,-576.13291,-241.96985)"
+             rx="3.093152"
+             inkscape:label="background" />
+          <g
+             id="g2873"
+             inkscape:label="text"
+             transform="translate(-1.1913705e-5)">
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.5369px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="75.800545"
+               y="46.866966"
+               id="text2867"
+               inkscape:label="text_large"><tspan
+                 sodipodi:role="line"
+                 id="tspan2865"
+                 x="75.800545"
+                 y="46.866966"
+                 style="font-size:15.2214px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">C</tspan></text>
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:1.22862px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="85.763794"
+               y="48.903133"
+               id="text2871"
+               inkscape:label="text_small"><tspan
+                 sodipodi:role="line"
+                 id="tspan2869"
+                 x="85.763794"
+                 y="48.903133"
+                 style="font-size:7.37174px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">1</tspan></text>
+          </g>
+        </g>
+        <g
+           id="g2889"
+           transform="matrix(0.28137732,0,0,0.28137732,70.125515,103.9693)"
+           inkscape:label="chunk"
+           style="display:inline">
+          <rect
+             style="display:inline;fill:#e57000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.439473;stroke-dasharray:none;stroke-opacity:1"
+             id="rect2877"
+             width="12.188926"
+             height="12.188926"
+             x="103.01205"
+             y="-259.12012"
+             ry="3.093152"
+             transform="matrix(0,2.6061124,-2.6061124,0,-576.13291,-241.96985)"
+             rx="3.093152"
+             inkscape:label="background" />
+          <g
+             id="g2887"
+             inkscape:label="text"
+             transform="translate(-1.1913705e-5)">
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.5369px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="75.800545"
+               y="46.866966"
+               id="text2881"
+               inkscape:label="text_large"><tspan
+                 sodipodi:role="line"
+                 id="tspan2879"
+                 x="75.800545"
+                 y="46.866966"
+                 style="font-size:15.2214px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">C</tspan></text>
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:1.22862px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="85.763794"
+               y="48.903133"
+               id="text2885"
+               inkscape:label="text_small"><tspan
+                 sodipodi:role="line"
+                 id="tspan2883"
+                 x="85.763794"
+                 y="48.903133"
+                 style="font-size:7.37174px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">4</tspan></text>
+          </g>
+        </g>
+        <g
+           id="g2903"
+           transform="matrix(0.28137732,0,0,0.28137732,70.125515,115.87555)"
+           inkscape:label="chunk"
+           style="display:inline">
+          <rect
+             style="display:inline;fill:#e57000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.439473;stroke-dasharray:none;stroke-opacity:1"
+             id="rect2891"
+             width="12.188926"
+             height="12.188926"
+             x="103.01205"
+             y="-259.12012"
+             ry="3.093152"
+             transform="matrix(0,2.6061124,-2.6061124,0,-576.13291,-241.96985)"
+             rx="3.093152"
+             inkscape:label="background" />
+          <g
+             id="g2901"
+             inkscape:label="text"
+             transform="translate(-1.1913705e-5)">
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.5369px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="75.800545"
+               y="46.866966"
+               id="text2895"
+               inkscape:label="text_large"><tspan
+                 sodipodi:role="line"
+                 id="tspan2893"
+                 x="75.800545"
+                 y="46.866966"
+                 style="font-size:15.2214px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">C</tspan></text>
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:1.22862px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="85.763794"
+               y="48.903133"
+               id="text2899"
+               inkscape:label="text_small"><tspan
+                 sodipodi:role="line"
+                 id="tspan2897"
+                 x="85.763794"
+                 y="48.903133"
+                 style="font-size:7.37174px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">7</tspan></text>
+          </g>
+        </g>
+      </g>
+      <g
+         id="g2949"
+         inkscape:label="column2"
+         transform="translate(12.823771,-0.05452)">
+        <g
+           id="g2919"
+           transform="matrix(0.28137732,0,0,0.28137732,69.207994,92.117565)"
+           inkscape:label="chunk"
+           style="display:inline">
+          <rect
+             style="display:inline;fill:url(#pattern37287);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.439473;stroke-dasharray:none;stroke-opacity:1"
+             id="rect2907"
+             width="12.188926"
+             height="12.188926"
+             x="103.01205"
+             y="-259.12012"
+             ry="3.093152"
+             transform="matrix(0,2.6061124,-2.6061124,0,-576.13291,-241.96985)"
+             rx="3.093152"
+             inkscape:label="background" />
+          <g
+             id="g2917"
+             inkscape:label="text"
+             transform="translate(-1.1913705e-5)">
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.5369px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="75.800545"
+               y="46.866966"
+               id="text2911"
+               inkscape:label="text_large"><tspan
+                 sodipodi:role="line"
+                 id="tspan2909"
+                 x="75.800545"
+                 y="46.866966"
+                 style="font-size:15.2214px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">C</tspan></text>
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:1.22862px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="85.763794"
+               y="48.903133"
+               id="text2915"
+               inkscape:label="text_small"><tspan
+                 sodipodi:role="line"
+                 id="tspan2913"
+                 x="85.763794"
+                 y="48.903133"
+                 style="font-size:7.37174px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">2</tspan></text>
+          </g>
+        </g>
+        <g
+           id="g2933"
+           transform="matrix(0.28137732,0,0,0.28137732,69.207994,104.02382)"
+           inkscape:label="chunk"
+           style="display:inline">
+          <rect
+             style="display:inline;fill:url(#pattern37287);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.439473;stroke-dasharray:none;stroke-opacity:1"
+             id="rect2921"
+             width="12.188926"
+             height="12.188926"
+             x="103.01205"
+             y="-259.12012"
+             ry="3.093152"
+             transform="matrix(0,2.6061124,-2.6061124,0,-576.13291,-241.96985)"
+             rx="3.093152"
+             inkscape:label="background" />
+          <g
+             id="g2931"
+             inkscape:label="text"
+             transform="translate(-1.1913705e-5)">
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.5369px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="75.800545"
+               y="46.866966"
+               id="text2925"
+               inkscape:label="text_large"><tspan
+                 sodipodi:role="line"
+                 id="tspan2923"
+                 x="75.800545"
+                 y="46.866966"
+                 style="font-size:15.2214px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">C</tspan></text>
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:1.22862px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="85.763794"
+               y="48.903133"
+               id="text2929"
+               inkscape:label="text_small"><tspan
+                 sodipodi:role="line"
+                 id="tspan2927"
+                 x="85.763794"
+                 y="48.903133"
+                 style="font-size:7.37174px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">5</tspan></text>
+          </g>
+        </g>
+        <g
+           id="g38425"
+           transform="matrix(0.28137732,0,0,0.28137732,69.207994,115.93007)"
+           inkscape:label="chunk"
+           style="display:inline">
+          <rect
+             style="display:inline;fill:url(#pattern37450);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.439473;stroke-dasharray:none;stroke-opacity:1"
+             id="rect38413"
+             width="12.188926"
+             height="12.188926"
+             x="103.01205"
+             y="-259.12012"
+             ry="3.093152"
+             transform="matrix(0,2.6061124,-2.6061124,0,-576.13291,-241.96985)"
+             rx="3.093152"
+             inkscape:label="background" />
+          <g
+             id="g38423"
+             inkscape:label="text"
+             transform="translate(-1.1913705e-5)">
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.5369px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="75.800545"
+               y="46.866966"
+               id="text38417"
+               inkscape:label="text_large"><tspan
+                 sodipodi:role="line"
+                 id="tspan38415"
+                 x="75.800545"
+                 y="46.866966"
+                 style="font-size:15.2214px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">C</tspan></text>
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:1.22862px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="85.763794"
+               y="48.903133"
+               id="text38421"
+               inkscape:label="text_small"><tspan
+                 sodipodi:role="line"
+                 id="tspan38419"
+                 x="85.763794"
+                 y="48.903133"
+                 style="font-size:7.37174px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">8</tspan></text>
+          </g>
+        </g>
+      </g>
+      <g
+         id="g2993"
+         inkscape:label="column3"
+         transform="translate(24.730021,-0.05452)">
+        <g
+           id="g2963"
+           transform="matrix(0.28137732,0,0,0.28137732,69.207994,92.117565)"
+           inkscape:label="chunk"
+           style="display:inline">
+          <rect
+             style="display:inline;fill:url(#pattern37450);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.439473;stroke-dasharray:none;stroke-opacity:1"
+             id="rect2951"
+             width="12.188926"
+             height="12.188926"
+             x="103.01205"
+             y="-259.12012"
+             ry="3.093152"
+             transform="matrix(0,2.6061124,-2.6061124,0,-576.13291,-241.96985)"
+             rx="3.093152"
+             inkscape:label="background" />
+          <g
+             id="g2961"
+             inkscape:label="text"
+             transform="translate(-1.1913705e-5)">
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.5369px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="75.800545"
+               y="46.866966"
+               id="text2955"
+               inkscape:label="text_large"><tspan
+                 sodipodi:role="line"
+                 id="tspan2953"
+                 x="75.800545"
+                 y="46.866966"
+                 style="font-size:15.2214px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">C</tspan></text>
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:1.22862px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="85.763794"
+               y="48.903133"
+               id="text2959"
+               inkscape:label="text_small"><tspan
+                 sodipodi:role="line"
+                 id="tspan2957"
+                 x="85.763794"
+                 y="48.903133"
+                 style="font-size:7.37174px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">3</tspan></text>
+          </g>
+        </g>
+        <g
+           id="g2977"
+           transform="matrix(0.28137732,0,0,0.28137732,69.207994,104.02382)"
+           inkscape:label="chunk"
+           style="display:inline">
+          <rect
+             style="display:inline;fill:#4f8eff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.439473;stroke-dasharray:none;stroke-opacity:1"
+             id="rect2965"
+             width="12.188926"
+             height="12.188926"
+             x="103.01205"
+             y="-259.12012"
+             ry="3.093152"
+             transform="matrix(0,2.6061124,-2.6061124,0,-576.13291,-241.96985)"
+             rx="3.093152"
+             inkscape:label="background" />
+          <g
+             id="g2975"
+             inkscape:label="text"
+             transform="translate(-1.1913705e-5)">
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.5369px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="75.800545"
+               y="46.866966"
+               id="text2969"
+               inkscape:label="text_large"><tspan
+                 sodipodi:role="line"
+                 id="tspan2967"
+                 x="75.800545"
+                 y="46.866966"
+                 style="font-size:15.2214px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">C</tspan></text>
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:1.22862px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="85.763794"
+               y="48.903133"
+               id="text2973"
+               inkscape:label="text_small"><tspan
+                 sodipodi:role="line"
+                 id="tspan2971"
+                 x="85.763794"
+                 y="48.903133"
+                 style="font-size:7.37174px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">6</tspan></text>
+          </g>
+        </g>
+        <g
+           id="g2991"
+           transform="matrix(0.28137732,0,0,0.28137732,69.207994,115.93007)"
+           inkscape:label="chunk"
+           style="display:inline">
+          <rect
+             style="display:inline;fill:url(#pattern37450);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.439473;stroke-dasharray:none;stroke-opacity:1"
+             id="rect2979"
+             width="12.188926"
+             height="12.188926"
+             x="103.01205"
+             y="-259.12012"
+             ry="3.093152"
+             transform="matrix(0,2.6061124,-2.6061124,0,-576.13291,-241.96985)"
+             rx="3.093152"
+             inkscape:label="background" />
+          <g
+             id="g2989"
+             inkscape:label="text"
+             transform="translate(-1.1913705e-5)">
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.5369px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="75.800545"
+               y="46.866966"
+               id="text2983"
+               inkscape:label="text_large"><tspan
+                 sodipodi:role="line"
+                 id="tspan2981"
+                 x="75.800545"
+                 y="46.866966"
+                 style="font-size:15.2214px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">C</tspan></text>
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:1.22862px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="85.763794"
+               y="48.903133"
+               id="text2987"
+               inkscape:label="text_small"><tspan
+                 sodipodi:role="line"
+                 id="tspan2985"
+                 x="85.763794"
+                 y="48.903133"
+                 style="font-size:7.37174px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">9</tspan></text>
+          </g>
+        </g>
+      </g>
+    </g>
+    <g
+       id="g3129"
+       inkscape:label="grid3"
+       transform="translate(93.398241,-2.0273229)">
+      <g
+         id="g3039"
+         inkscape:label="column1">
+        <g
+           id="g3009"
+           transform="matrix(0.28137732,0,0,0.28137732,70.125515,92.063045)"
+           inkscape:label="chunk"
+           style="display:inline">
+          <rect
+             style="display:inline;fill:#e57000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.439473;stroke-dasharray:none;stroke-opacity:1"
+             id="rect2997"
+             width="12.188926"
+             height="12.188926"
+             x="103.01205"
+             y="-259.12012"
+             ry="3.093152"
+             transform="matrix(0,2.6061124,-2.6061124,0,-576.13291,-241.96985)"
+             rx="3.093152"
+             inkscape:label="background" />
+          <g
+             id="g3007"
+             inkscape:label="text"
+             transform="translate(-1.1913705e-5)">
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.5369px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="75.800545"
+               y="46.866966"
+               id="text3001"
+               inkscape:label="text_large"><tspan
+                 sodipodi:role="line"
+                 id="tspan2999"
+                 x="75.800545"
+                 y="46.866966"
+                 style="font-size:15.2214px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">C</tspan></text>
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:1.22862px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="85.763794"
+               y="48.903133"
+               id="text3005"
+               inkscape:label="text_small"><tspan
+                 sodipodi:role="line"
+                 id="tspan3003"
+                 x="85.763794"
+                 y="48.903133"
+                 style="font-size:7.37174px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">1</tspan></text>
+          </g>
+        </g>
+        <g
+           id="g3023"
+           transform="matrix(0.28137732,0,0,0.28137732,70.125515,103.9693)"
+           inkscape:label="chunk"
+           style="display:inline">
+          <rect
+             style="display:inline;fill:#e57000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.439473;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3011"
+             width="12.188926"
+             height="12.188926"
+             x="103.01205"
+             y="-259.12012"
+             ry="3.093152"
+             transform="matrix(0,2.6061124,-2.6061124,0,-576.13291,-241.96985)"
+             rx="3.093152"
+             inkscape:label="background" />
+          <g
+             id="g3021"
+             inkscape:label="text"
+             transform="translate(-1.1913705e-5)">
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.5369px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="75.800545"
+               y="46.866966"
+               id="text3015"
+               inkscape:label="text_large"><tspan
+                 sodipodi:role="line"
+                 id="tspan3013"
+                 x="75.800545"
+                 y="46.866966"
+                 style="font-size:15.2214px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">C</tspan></text>
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:1.22862px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="85.763794"
+               y="48.903133"
+               id="text3019"
+               inkscape:label="text_small"><tspan
+                 sodipodi:role="line"
+                 id="tspan3017"
+                 x="85.763794"
+                 y="48.903133"
+                 style="font-size:7.37174px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">4</tspan></text>
+          </g>
+        </g>
+        <g
+           id="g3037"
+           transform="matrix(0.28137732,0,0,0.28137732,70.125515,115.87555)"
+           inkscape:label="chunk"
+           style="display:inline">
+          <rect
+             style="display:inline;fill:#e57000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.439473;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3025"
+             width="12.188926"
+             height="12.188926"
+             x="103.01205"
+             y="-259.12012"
+             ry="3.093152"
+             transform="matrix(0,2.6061124,-2.6061124,0,-576.13291,-241.96985)"
+             rx="3.093152"
+             inkscape:label="background" />
+          <g
+             id="g3035"
+             inkscape:label="text"
+             transform="translate(-1.1913705e-5)">
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.5369px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="75.800545"
+               y="46.866966"
+               id="text3029"
+               inkscape:label="text_large"><tspan
+                 sodipodi:role="line"
+                 id="tspan3027"
+                 x="75.800545"
+                 y="46.866966"
+                 style="font-size:15.2214px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">C</tspan></text>
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:1.22862px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="85.763794"
+               y="48.903133"
+               id="text3033"
+               inkscape:label="text_small"><tspan
+                 sodipodi:role="line"
+                 id="tspan3031"
+                 x="85.763794"
+                 y="48.903133"
+                 style="font-size:7.37174px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">7</tspan></text>
+          </g>
+        </g>
+      </g>
+      <g
+         id="g3083"
+         inkscape:label="column2"
+         transform="translate(12.823771,-0.05452)">
+        <g
+           id="g3053"
+           transform="matrix(0.28137732,0,0,0.28137732,69.207994,92.117565)"
+           inkscape:label="chunk"
+           style="display:inline">
+          <rect
+             style="display:inline;fill:#e57000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.439473;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3041"
+             width="12.188926"
+             height="12.188926"
+             x="103.01205"
+             y="-259.12012"
+             ry="3.093152"
+             transform="matrix(0,2.6061124,-2.6061124,0,-576.13291,-241.96985)"
+             rx="3.093152"
+             inkscape:label="background" />
+          <g
+             id="g3051"
+             inkscape:label="text"
+             transform="translate(-1.1913705e-5)">
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.5369px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="75.800545"
+               y="46.866966"
+               id="text3045"
+               inkscape:label="text_large"><tspan
+                 sodipodi:role="line"
+                 id="tspan3043"
+                 x="75.800545"
+                 y="46.866966"
+                 style="font-size:15.2214px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">C</tspan></text>
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:1.22862px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="85.763794"
+               y="48.903133"
+               id="text3049"
+               inkscape:label="text_small"><tspan
+                 sodipodi:role="line"
+                 id="tspan3047"
+                 x="85.763794"
+                 y="48.903133"
+                 style="font-size:7.37174px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">2</tspan></text>
+          </g>
+        </g>
+        <g
+           id="g3067"
+           transform="matrix(0.28137732,0,0,0.28137732,69.207994,104.02382)"
+           inkscape:label="chunk"
+           style="display:inline">
+          <rect
+             style="display:inline;fill:#e57000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.439473;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3055"
+             width="12.188926"
+             height="12.188926"
+             x="103.01205"
+             y="-259.12012"
+             ry="3.093152"
+             transform="matrix(0,2.6061124,-2.6061124,0,-576.13291,-241.96985)"
+             rx="3.093152"
+             inkscape:label="background" />
+          <g
+             id="g3065"
+             inkscape:label="text"
+             transform="translate(-1.1913705e-5)">
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.5369px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="75.800545"
+               y="46.866966"
+               id="text3059"
+               inkscape:label="text_large"><tspan
+                 sodipodi:role="line"
+                 id="tspan3057"
+                 x="75.800545"
+                 y="46.866966"
+                 style="font-size:15.2214px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">C</tspan></text>
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:1.22862px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="85.763794"
+               y="48.903133"
+               id="text3063"
+               inkscape:label="text_small"><tspan
+                 sodipodi:role="line"
+                 id="tspan3061"
+                 x="85.763794"
+                 y="48.903133"
+                 style="font-size:7.37174px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">5</tspan></text>
+          </g>
+        </g>
+        <g
+           id="g3081"
+           transform="matrix(0.28137732,0,0,0.28137732,69.207994,115.93007)"
+           inkscape:label="chunk"
+           style="display:inline">
+          <rect
+             style="display:inline;fill:url(#pattern37450);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.439473;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3069"
+             width="12.188926"
+             height="12.188926"
+             x="103.01205"
+             y="-259.12012"
+             ry="3.093152"
+             transform="matrix(0,2.6061124,-2.6061124,0,-576.13291,-241.96985)"
+             rx="3.093152"
+             inkscape:label="background" />
+          <g
+             id="g3079"
+             inkscape:label="text"
+             transform="translate(-1.1913705e-5)">
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.5369px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="75.800545"
+               y="46.866966"
+               id="text3073"
+               inkscape:label="text_large"><tspan
+                 sodipodi:role="line"
+                 id="tspan3071"
+                 x="75.800545"
+                 y="46.866966"
+                 style="font-size:15.2214px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">C</tspan></text>
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:1.22862px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="85.763794"
+               y="48.903133"
+               id="text3077"
+               inkscape:label="text_small"><tspan
+                 sodipodi:role="line"
+                 id="tspan3075"
+                 x="85.763794"
+                 y="48.903133"
+                 style="font-size:7.37174px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">8</tspan></text>
+          </g>
+        </g>
+      </g>
+      <g
+         id="g3127"
+         inkscape:label="column3"
+         transform="translate(24.730021,-0.05452)">
+        <g
+           id="g3097"
+           transform="matrix(0.28137732,0,0,0.28137732,69.207994,92.117565)"
+           inkscape:label="chunk"
+           style="display:inline">
+          <rect
+             style="display:inline;fill:url(#pattern37450);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.439473;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3085"
+             width="12.188926"
+             height="12.188926"
+             x="103.01205"
+             y="-259.12012"
+             ry="3.093152"
+             transform="matrix(0,2.6061124,-2.6061124,0,-576.13291,-241.96985)"
+             rx="3.093152"
+             inkscape:label="background" />
+          <g
+             id="g3095"
+             inkscape:label="text"
+             transform="translate(-1.1913705e-5)">
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.5369px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="75.800545"
+               y="46.866966"
+               id="text3089"
+               inkscape:label="text_large"><tspan
+                 sodipodi:role="line"
+                 id="tspan3087"
+                 x="75.800545"
+                 y="46.866966"
+                 style="font-size:15.2214px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">C</tspan></text>
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:1.22862px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="85.763794"
+               y="48.903133"
+               id="text3093"
+               inkscape:label="text_small"><tspan
+                 sodipodi:role="line"
+                 id="tspan3091"
+                 x="85.763794"
+                 y="48.903133"
+                 style="font-size:7.37174px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">3</tspan></text>
+          </g>
+        </g>
+        <g
+           id="g3111"
+           transform="matrix(0.28137732,0,0,0.28137732,69.207994,104.02382)"
+           inkscape:label="chunk"
+           style="display:inline">
+          <rect
+             style="display:inline;fill:#4f8eff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.439473;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3099"
+             width="12.188926"
+             height="12.188926"
+             x="103.01205"
+             y="-259.12012"
+             ry="3.093152"
+             transform="matrix(0,2.6061124,-2.6061124,0,-576.13291,-241.96985)"
+             rx="3.093152"
+             inkscape:label="background" />
+          <g
+             id="g3109"
+             inkscape:label="text"
+             transform="translate(-1.1913705e-5)">
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.5369px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="75.800545"
+               y="46.866966"
+               id="text3103"
+               inkscape:label="text_large"><tspan
+                 sodipodi:role="line"
+                 id="tspan3101"
+                 x="75.800545"
+                 y="46.866966"
+                 style="font-size:15.2214px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">C</tspan></text>
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:1.22862px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="85.763794"
+               y="48.903133"
+               id="text3107"
+               inkscape:label="text_small"><tspan
+                 sodipodi:role="line"
+                 id="tspan3105"
+                 x="85.763794"
+                 y="48.903133"
+                 style="font-size:7.37174px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">6</tspan></text>
+          </g>
+        </g>
+        <g
+           id="g3125"
+           transform="matrix(0.28137732,0,0,0.28137732,69.207994,115.93007)"
+           inkscape:label="chunk"
+           style="display:inline">
+          <rect
+             style="display:inline;fill:url(#pattern37450);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.439473;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3113"
+             width="12.188926"
+             height="12.188926"
+             x="103.01205"
+             y="-259.12012"
+             ry="3.093152"
+             transform="matrix(0,2.6061124,-2.6061124,0,-576.13291,-241.96985)"
+             rx="3.093152"
+             inkscape:label="background" />
+          <g
+             id="g3123"
+             inkscape:label="text"
+             transform="translate(-1.1913705e-5)">
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.5369px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="75.800545"
+               y="46.866966"
+               id="text3117"
+               inkscape:label="text_large"><tspan
+                 sodipodi:role="line"
+                 id="tspan3115"
+                 x="75.800545"
+                 y="46.866966"
+                 style="font-size:15.2214px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">C</tspan></text>
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:1.22862px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="85.763794"
+               y="48.903133"
+               id="text3121"
+               inkscape:label="text_small"><tspan
+                 sodipodi:role="line"
+                 id="tspan3119"
+                 x="85.763794"
+                 y="48.903133"
+                 style="font-size:7.37174px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">9</tspan></text>
+          </g>
+        </g>
+      </g>
+    </g>
+    <g
+       id="g3263"
+       inkscape:label="grid4"
+       transform="translate(142.12577,-2.0273229)">
+      <g
+         id="g3173"
+         inkscape:label="column1">
+        <g
+           id="g3143"
+           transform="matrix(0.28137732,0,0,0.28137732,70.125515,92.063045)"
+           inkscape:label="chunk"
+           style="display:inline">
+          <rect
+             style="display:inline;fill:#e57000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.439473;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3131"
+             width="12.188926"
+             height="12.188926"
+             x="103.01205"
+             y="-259.12012"
+             ry="3.093152"
+             transform="matrix(0,2.6061124,-2.6061124,0,-576.13291,-241.96985)"
+             rx="3.093152"
+             inkscape:label="background" />
+          <g
+             id="g3141"
+             inkscape:label="text"
+             transform="translate(-1.1913705e-5)">
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.5369px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="75.800545"
+               y="46.866966"
+               id="text3135"
+               inkscape:label="text_large"><tspan
+                 sodipodi:role="line"
+                 id="tspan3133"
+                 x="75.800545"
+                 y="46.866966"
+                 style="font-size:15.2214px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">C</tspan></text>
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:1.22862px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="85.763794"
+               y="48.903133"
+               id="text3139"
+               inkscape:label="text_small"><tspan
+                 sodipodi:role="line"
+                 id="tspan3137"
+                 x="85.763794"
+                 y="48.903133"
+                 style="font-size:7.37174px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">1</tspan></text>
+          </g>
+        </g>
+        <g
+           id="g3157"
+           transform="matrix(0.28137732,0,0,0.28137732,70.125515,103.9693)"
+           inkscape:label="chunk"
+           style="display:inline">
+          <rect
+             style="display:inline;fill:#e57000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.439473;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3145"
+             width="12.188926"
+             height="12.188926"
+             x="103.01205"
+             y="-259.12012"
+             ry="3.093152"
+             transform="matrix(0,2.6061124,-2.6061124,0,-576.13291,-241.96985)"
+             rx="3.093152"
+             inkscape:label="background" />
+          <g
+             id="g3155"
+             inkscape:label="text"
+             transform="translate(-1.1913705e-5)">
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.5369px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="75.800545"
+               y="46.866966"
+               id="text3149"
+               inkscape:label="text_large"><tspan
+                 sodipodi:role="line"
+                 id="tspan3147"
+                 x="75.800545"
+                 y="46.866966"
+                 style="font-size:15.2214px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">C</tspan></text>
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:1.22862px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="85.763794"
+               y="48.903133"
+               id="text3153"
+               inkscape:label="text_small"><tspan
+                 sodipodi:role="line"
+                 id="tspan3151"
+                 x="85.763794"
+                 y="48.903133"
+                 style="font-size:7.37174px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">4</tspan></text>
+          </g>
+        </g>
+        <g
+           id="g3171"
+           transform="matrix(0.28137732,0,0,0.28137732,70.125515,115.87555)"
+           inkscape:label="chunk"
+           style="display:inline">
+          <rect
+             style="display:inline;fill:#e57000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.439473;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3159"
+             width="12.188926"
+             height="12.188926"
+             x="103.01205"
+             y="-259.12012"
+             ry="3.093152"
+             transform="matrix(0,2.6061124,-2.6061124,0,-576.13291,-241.96985)"
+             rx="3.093152"
+             inkscape:label="background" />
+          <g
+             id="g3169"
+             inkscape:label="text"
+             transform="translate(-1.1913705e-5)">
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.5369px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="75.800545"
+               y="46.866966"
+               id="text3163"
+               inkscape:label="text_large"><tspan
+                 sodipodi:role="line"
+                 id="tspan3161"
+                 x="75.800545"
+                 y="46.866966"
+                 style="font-size:15.2214px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">C</tspan></text>
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:1.22862px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="85.763794"
+               y="48.903133"
+               id="text3167"
+               inkscape:label="text_small"><tspan
+                 sodipodi:role="line"
+                 id="tspan3165"
+                 x="85.763794"
+                 y="48.903133"
+                 style="font-size:7.37174px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">7</tspan></text>
+          </g>
+        </g>
+      </g>
+      <g
+         id="g3217"
+         inkscape:label="column2"
+         transform="translate(12.823771,-0.05452)">
+        <g
+           id="g3187"
+           transform="matrix(0.28137732,0,0,0.28137732,69.207994,92.117565)"
+           inkscape:label="chunk"
+           style="display:inline">
+          <rect
+             style="display:inline;fill:#e57000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.439473;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3175"
+             width="12.188926"
+             height="12.188926"
+             x="103.01205"
+             y="-259.12012"
+             ry="3.093152"
+             transform="matrix(0,2.6061124,-2.6061124,0,-576.13291,-241.96985)"
+             rx="3.093152"
+             inkscape:label="background" />
+          <g
+             id="g3185"
+             inkscape:label="text"
+             transform="translate(-1.1913705e-5)">
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.5369px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="75.800545"
+               y="46.866966"
+               id="text3179"
+               inkscape:label="text_large"><tspan
+                 sodipodi:role="line"
+                 id="tspan3177"
+                 x="75.800545"
+                 y="46.866966"
+                 style="font-size:15.2214px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">C</tspan></text>
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:1.22862px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="85.763794"
+               y="48.903133"
+               id="text3183"
+               inkscape:label="text_small"><tspan
+                 sodipodi:role="line"
+                 id="tspan3181"
+                 x="85.763794"
+                 y="48.903133"
+                 style="font-size:7.37174px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">2</tspan></text>
+          </g>
+        </g>
+        <g
+           id="g3201"
+           transform="matrix(0.28137732,0,0,0.28137732,69.207994,104.02382)"
+           inkscape:label="chunk"
+           style="display:inline">
+          <rect
+             style="display:inline;fill:#e57000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.439473;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3189"
+             width="12.188926"
+             height="12.188926"
+             x="103.01205"
+             y="-259.12012"
+             ry="3.093152"
+             transform="matrix(0,2.6061124,-2.6061124,0,-576.13291,-241.96985)"
+             rx="3.093152"
+             inkscape:label="background" />
+          <g
+             id="g3199"
+             inkscape:label="text"
+             transform="translate(-1.1913705e-5)">
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.5369px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="75.800545"
+               y="46.866966"
+               id="text3193"
+               inkscape:label="text_large"><tspan
+                 sodipodi:role="line"
+                 id="tspan3191"
+                 x="75.800545"
+                 y="46.866966"
+                 style="font-size:15.2214px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">C</tspan></text>
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:1.22862px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="85.763794"
+               y="48.903133"
+               id="text3197"
+               inkscape:label="text_small"><tspan
+                 sodipodi:role="line"
+                 id="tspan3195"
+                 x="85.763794"
+                 y="48.903133"
+                 style="font-size:7.37174px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">5</tspan></text>
+          </g>
+        </g>
+        <g
+           id="g3215"
+           transform="matrix(0.28137732,0,0,0.28137732,69.207994,115.93007)"
+           inkscape:label="chunk"
+           style="display:inline">
+          <rect
+             style="display:inline;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.439468;stroke-dasharray:0.439468, 0.878937;stroke-dashoffset:0;stroke-opacity:1"
+             id="rect3203"
+             width="12.188926"
+             height="12.188926"
+             x="103.01205"
+             y="-259.12012"
+             ry="3.093152"
+             transform="matrix(0,2.6061124,-2.6061124,0,-576.13291,-241.96985)"
+             rx="3.093152"
+             inkscape:label="background" />
+          <g
+             id="g3213"
+             inkscape:label="text"
+             transform="translate(-1.1913705e-5)">
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.5369px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="75.800545"
+               y="46.866966"
+               id="text3207"
+               inkscape:label="text_large"><tspan
+                 sodipodi:role="line"
+                 id="tspan3205"
+                 x="75.800545"
+                 y="46.866966"
+                 style="font-size:15.2214px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">C</tspan></text>
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:1.22862px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="85.763794"
+               y="48.903133"
+               id="text3211"
+               inkscape:label="text_small"><tspan
+                 sodipodi:role="line"
+                 id="tspan3209"
+                 x="85.763794"
+                 y="48.903133"
+                 style="font-size:7.37174px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">8</tspan></text>
+          </g>
+        </g>
+      </g>
+      <g
+         id="g3261"
+         inkscape:label="column3"
+         transform="translate(24.730021,-0.05452)">
+        <g
+           id="g3231"
+           transform="matrix(0.28137732,0,0,0.28137732,69.207994,92.117565)"
+           inkscape:label="chunk"
+           style="display:inline">
+          <rect
+             style="display:inline;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.439468;stroke-dasharray:0.439468, 0.878937;stroke-dashoffset:0;stroke-opacity:1"
+             id="rect3219"
+             width="12.188926"
+             height="12.188926"
+             x="103.01205"
+             y="-259.12012"
+             ry="3.093152"
+             transform="matrix(0,2.6061124,-2.6061124,0,-576.13291,-241.96985)"
+             rx="3.093152"
+             inkscape:label="background" />
+          <g
+             id="g3229"
+             inkscape:label="text"
+             transform="translate(-1.1913705e-5)">
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.5369px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="75.800545"
+               y="46.866966"
+               id="text3223"
+               inkscape:label="text_large"><tspan
+                 sodipodi:role="line"
+                 id="tspan3221"
+                 x="75.800545"
+                 y="46.866966"
+                 style="font-size:15.2214px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">C</tspan></text>
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:1.22862px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="85.763794"
+               y="48.903133"
+               id="text3227"
+               inkscape:label="text_small"><tspan
+                 sodipodi:role="line"
+                 id="tspan3225"
+                 x="85.763794"
+                 y="48.903133"
+                 style="font-size:7.37174px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">3</tspan></text>
+          </g>
+        </g>
+        <g
+           id="g3245"
+           transform="matrix(0.28137732,0,0,0.28137732,69.207994,104.02382)"
+           inkscape:label="chunk"
+           style="display:inline">
+          <rect
+             style="display:inline;fill:#ffdb6a;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.439473;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3233"
+             width="12.188926"
+             height="12.188926"
+             x="103.01205"
+             y="-259.12012"
+             ry="3.093152"
+             transform="matrix(0,2.6061124,-2.6061124,0,-576.13291,-241.96985)"
+             rx="3.093152"
+             inkscape:label="background" />
+          <g
+             id="g3243"
+             inkscape:label="text"
+             transform="translate(-1.1913705e-5)">
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.5369px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="75.800545"
+               y="46.866966"
+               id="text3237"
+               inkscape:label="text_large"><tspan
+                 sodipodi:role="line"
+                 id="tspan3235"
+                 x="75.800545"
+                 y="46.866966"
+                 style="font-size:15.2214px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">C</tspan></text>
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:1.22862px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="85.763794"
+               y="48.903133"
+               id="text3241"
+               inkscape:label="text_small"><tspan
+                 sodipodi:role="line"
+                 id="tspan3239"
+                 x="85.763794"
+                 y="48.903133"
+                 style="font-size:7.37174px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">6</tspan></text>
+          </g>
+        </g>
+        <g
+           id="g3259"
+           transform="matrix(0.28137732,0,0,0.28137732,69.207994,115.93007)"
+           inkscape:label="chunk"
+           style="display:inline">
+          <rect
+             style="display:inline;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.439468;stroke-dasharray:0.439468, 0.878937;stroke-dashoffset:0;stroke-opacity:1"
+             id="rect3247"
+             width="12.188926"
+             height="12.188926"
+             x="103.01205"
+             y="-259.12012"
+             ry="3.093152"
+             transform="matrix(0,2.6061124,-2.6061124,0,-576.13291,-241.96985)"
+             rx="3.093152"
+             inkscape:label="background" />
+          <g
+             id="g3257"
+             inkscape:label="text"
+             transform="translate(-1.1913705e-5)">
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.5369px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="75.800545"
+               y="46.866966"
+               id="text3251"
+               inkscape:label="text_large"><tspan
+                 sodipodi:role="line"
+                 id="tspan3249"
+                 x="75.800545"
+                 y="46.866966"
+                 style="font-size:15.2214px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">C</tspan></text>
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:1.22862px;line-height:0%;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.211408"
+               x="85.763794"
+               y="48.903133"
+               id="text3255"
+               inkscape:label="text_small"><tspan
+                 sodipodi:role="line"
+                 id="tspan3253"
+                 x="85.763794"
+                 y="48.903133"
+                 style="font-size:7.37174px;line-height:1.25;fill:#000000;fill-opacity:1;stroke-width:0.211408">9</tspan></text>
+          </g>
+        </g>
+      </g>
+    </g>
+    <g
+       id="g38664"
+       inkscape:label="description"
+       transform="translate(-16.174423)">
+      <text
+         id="text3668"
+         y="176.27962"
+         x="69.464737"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.97569px;line-height:1.25;font-family:'Open Sans';-inkscape-font-specification:'Open Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;display:inline;fill:#464d4d;fill-opacity:1;stroke:none;stroke-width:0.11765"
+         xml:space="preserve"
+         inkscape:label="used"><tspan
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93889px;font-family:'Open Sans';-inkscape-font-specification:'Open Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#464d4d;fill-opacity:1;stroke-width:0.11765"
+           y="176.27962"
+           x="69.464737"
+           id="tspan3666"
+           sodipodi:role="line">used chunk (atime newer t<tspan
+   style="font-size:65%;baseline-shift:sub"
+   id="tspan4566">cutoff</tspan>)</tspan></text>
+      <text
+         id="text7464"
+         y="185.72391"
+         x="69.464737"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93889px;line-height:1.25;font-family:'Open Sans';-inkscape-font-specification:'Open Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;display:inline;fill:#464d4d;fill-opacity:1;stroke:none;stroke-width:0.11765"
+         xml:space="preserve"
+         inkscape:label="unused"><tspan
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93889px;font-family:'Open Sans';-inkscape-font-specification:'Open Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#464d4d;fill-opacity:1;stroke-width:0.11765"
+           y="185.72391"
+           x="69.464737"
+           id="tspan7462"
+           sodipodi:role="line">unused chunk (atime newer t<tspan
+   style="font-size:65%;baseline-shift:sub"
+   id="tspan4568">cutoff</tspan>)</tspan></text>
+      <g
+         id="g2777"
+         transform="matrix(0.22510186,0,0,0.22510186,46.46788,164.87529)"
+         inkscape:label="chunk"
+         style="display:inline">
+        <rect
+           style="display:inline;fill:#e57000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.14532;stroke-dasharray:none;stroke-opacity:1"
+           id="rect2765"
+           width="31.765711"
+           height="31.765711"
+           x="26.491123"
+           y="-94.946838"
+           ry="8.0611019"
+           transform="rotate(90)"
+           rx="8.0611019"
+           inkscape:label="background" />
+      </g>
+      <g
+         id="g10298"
+         transform="matrix(0.22510186,0,0,0.22510186,46.53104,174.31958)"
+         inkscape:label="chunk"
+         style="display:inline">
+        <rect
+           style="display:inline;fill:#4f8eff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.14532;stroke-dasharray:none;stroke-opacity:1"
+           id="rect10286"
+           width="31.765711"
+           height="31.765711"
+           x="26.491123"
+           y="-94.666252"
+           ry="8.0611019"
+           transform="rotate(90)"
+           rx="8.0611019"
+           inkscape:label="background" />
+      </g>
+      <text
+         id="text27060"
+         y="176.19287"
+         x="271.79565"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.97569px;line-height:1.25;font-family:'Open Sans';-inkscape-font-specification:'Open Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;display:inline;fill:#464d4d;fill-opacity:1;stroke:none;stroke-width:0.11765"
+         xml:space="preserve"
+         inkscape:label="used"><tspan
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93889px;font-family:'Open Sans';-inkscape-font-specification:'Open Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#464d4d;fill-opacity:1;stroke-width:0.11765"
+           y="176.19287"
+           x="271.79565"
+           sodipodi:role="line"
+           id="tspan27314">pending</tspan></text>
+      <text
+         id="text27064"
+         y="185.63716"
+         x="271.79565"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.97569px;line-height:1.25;font-family:'Open Sans';-inkscape-font-specification:'Open Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;display:inline;fill:#464d4d;fill-opacity:1;stroke:none;stroke-width:0.11765"
+         xml:space="preserve"
+         inkscape:label="unused"><tspan
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93889px;font-family:'Open Sans';-inkscape-font-specification:'Open Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#464d4d;fill-opacity:1;stroke-width:0.11765"
+           y="185.63716"
+           x="271.79565"
+           sodipodi:role="line"
+           id="tspan27318">deleted</tspan></text>
+      <g
+         id="g27068"
+         transform="matrix(0.22510186,0,0,0.22510186,248.79828,164.78854)"
+         inkscape:label="chunk"
+         style="display:inline">
+        <rect
+           style="display:inline;fill:#ffdb6a;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.14532;stroke-dasharray:none;stroke-opacity:1"
+           id="rect27066"
+           width="31.765711"
+           height="31.765711"
+           x="26.491123"
+           y="-94.946838"
+           ry="8.0611019"
+           transform="rotate(90)"
+           rx="8.0611019"
+           inkscape:label="background" />
+      </g>
+      <g
+         id="g27072"
+         transform="matrix(0.22510186,0,0,0.22510186,248.86144,174.23283)"
+         inkscape:label="chunk"
+         style="display:inline">
+        <rect
+           style="display:inline;fill:none;fill-opacity:0.6;fill-rule:evenodd;stroke:#000000;stroke-width:1.14483;stroke-dasharray:1.14483, 2.28967;stroke-dashoffset:0;stroke-opacity:1"
+           id="rect27070"
+           width="31.765711"
+           height="31.765711"
+           x="26.491123"
+           y="-94.666252"
+           ry="8.0611019"
+           transform="rotate(90)"
+           rx="8.0611019"
+           inkscape:label="background" />
+      </g>
+      <text
+         id="text27044"
+         y="176.19287"
+         x="170.62993"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.97569px;line-height:1.25;font-family:'Open Sans';-inkscape-font-specification:'Open Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;display:inline;fill:#464d4d;fill-opacity:1;stroke:none;stroke-width:0.11765"
+         xml:space="preserve"
+         inkscape:label="used"><tspan
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93889px;font-family:'Open Sans';-inkscape-font-specification:'Open Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#464d4d;fill-opacity:1;stroke-width:0.11765"
+           y="176.19287"
+           x="170.62993"
+           id="tspan27042"
+           sodipodi:role="line">used chunk (atime older t<tspan
+   style="font-size:65%;baseline-shift:sub"
+   id="tspan4570">cutoff</tspan>)</tspan></text>
+      <text
+         id="text27048"
+         y="185.63716"
+         x="170.62993"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.97569px;line-height:1.25;font-family:'Open Sans';-inkscape-font-specification:'Open Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;display:inline;fill:#464d4d;fill-opacity:1;stroke:none;stroke-width:0.11765"
+         xml:space="preserve"
+         inkscape:label="unused"><tspan
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93889px;font-family:'Open Sans';-inkscape-font-specification:'Open Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#464d4d;fill-opacity:1;stroke-width:0.11765"
+           y="185.63716"
+           x="170.62993"
+           id="tspan27046"
+           sodipodi:role="line">unused chunk (atime older t<tspan
+   style="font-size:65%;baseline-shift:sub"
+   id="tspan4572">cutoff</tspan>)</tspan></text>
+      <g
+         id="g2947"
+         transform="matrix(0.22510186,0,0,0.22510186,146.68396,174.31959)"
+         inkscape:label="chunk"
+         style="display:inline">
+        <rect
+           style="display:inline;fill:url(#pattern37450);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.439473;stroke-dasharray:none;stroke-opacity:1"
+           id="rect2935"
+           width="12.188926"
+           height="12.188926"
+           x="103.01205"
+           y="-259.12012"
+           ry="3.093152"
+           transform="matrix(0,2.6061124,-2.6061124,0,-576.13291,-241.96985)"
+           rx="3.093152"
+           inkscape:label="background" />
+      </g>
+      <g
+         id="g38446"
+         transform="matrix(0.22510186,0,0,0.22510186,146.68396,164.87529)"
+         inkscape:label="chunk"
+         style="display:inline">
+        <rect
+           style="display:inline;fill:url(#pattern37287);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.439473;stroke-dasharray:none;stroke-opacity:1"
+           id="rect38434"
+           width="12.188926"
+           height="12.188926"
+           x="103.01205"
+           y="-259.12012"
+           ry="3.093152"
+           transform="matrix(0,2.6061124,-2.6061124,0,-576.13291,-241.96985)"
+           rx="3.093152"
+           inkscape:label="background" />
+      </g>
+    </g>
+  </g>
+</svg>
diff --git a/docs/maintenance.rst b/docs/maintenance.rst
index baa1241e..f4edfd6b 100644
--- a/docs/maintenance.rst
+++ b/docs/maintenance.rst
@@ -233,6 +233,31 @@ by the GC as it cannot be certain whether they are still needed.
    which is 24 hours by default.
 
 
+Timing Example
+^^^^^^^^^^^^^^
+
+.. figure:: images/garbage-collection-timing.svg
+  :class: proxmox-svg
+  :alt: Garbage Collection timing
+
+t\ :sub:`0`\:
+All chunks are part of the backup indices. Some chunks have a newer
+``atime`` than the cut-off time, while others have not been accessed
+for a while (e.g. because they were only created by a new backup).
+
+t\ :sub:`1`\:
+A backup has been deleted and some chunks are no longer used
+
+t\ :sub:`2`\:
+The first phase of the GC begins and the ``atime`` of the chunks that
+are still being used by a backup are updated
+
+t\ :sub:`3`\:
+The second phase of the GC begins. Chunks that have not been used and
+whose ``atime`` is older than the cut-off time are deleted. Chunks that
+have not been used but whose ``atime`` is newer than the cut-off time
+are not yet deleted, but are marked as pending as a precaution.
+
 Manually Starting GC
 ^^^^^^^^^^^^^^^^^^^^
 
-- 
2.39.2





^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [pbs-devel] [PATCH proxmox-backup 1/3] docs: centralise and update garbage collection description
  2024-04-02 13:36 ` [pbs-devel] [PATCH proxmox-backup 1/3] docs: centralise and update garbage collection description Hannes Duerr
@ 2024-04-05 10:49   ` Gabriel Goller
  0 siblings, 0 replies; 6+ messages in thread
From: Gabriel Goller @ 2024-04-05 10:49 UTC (permalink / raw)
  To: Proxmox Backup Server development discussion

On Tue Apr 2, 2024 at 3:36 PM CEST, Hannes Duerr wrote:
> The "backup client usage" chapter describes a grace period that is 24
> hours and 5 minutes long, and unconnected to this a cut-off time is
> mentioned under "maintenance tasks", which leads to confusion. Therefore
> we summarise the entire description of garbage collection under
> "maintenance tasks" and link to it in the "backup client usage" chapter
>
> Signed-off-by: Hannes Duerr <h.duerr@proxmox.com>
> ---
>  docs/backup-client.rst | 16 +++---------
>  docs/maintenance.rst   | 55 ++++++++++++++++++++++++++++++------------
>  2 files changed, 43 insertions(+), 28 deletions(-)
>
> diff --git a/docs/backup-client.rst b/docs/backup-client.rst
> index 00a1abbb..d015b844 100644
> --- a/docs/backup-client.rst
> +++ b/docs/backup-client.rst
> @@ -735,25 +735,15 @@ command. It is recommended to carry out garbage collection on a regular basis.
>  
>  The garbage collection works in two phases. In the first phase, all
>  data blocks that are still in use are marked. In the second phase,
> -unused data blocks are removed.
> +unused data blocks are removed. A more detailed description of the GC
> +can be found :ref:`here <maintenance_gc>`.
> +
>  
>  .. note:: This command needs to read all existing backup index files
>    and touches the complete chunk-store. This can take a long time
>    depending on the number of chunks and the speed of the underlying
>    disks.
>  
> -.. note:: The garbage collection will only remove chunks that haven't been used
> -   for at least one day (exactly 24h 5m). This grace period is necessary because
> -   chunks in use are marked by touching the chunk which updates the ``atime``
> -   (access time) property. Filesystems are mounted with the ``relatime`` option
> -   by default. This results in a better performance by only updating the
> -   ``atime`` property if the last access has been at least 24 hours ago. The
> -   downside is that touching a chunk within these 24 hours will not always
> -   update its ``atime`` property.
> -
> -   Chunks in the grace period will be logged at the end of the garbage
> -   collection task as *Pending removals*.
> -
>  .. code-block:: console
>  
>    # proxmox-backup-client garbage-collect
> diff --git a/docs/maintenance.rst b/docs/maintenance.rst
> index 6dbb6941..baa1241e 100644
> --- a/docs/maintenance.rst
> +++ b/docs/maintenance.rst
> @@ -171,7 +171,7 @@ It's recommended to setup a schedule to ensure that unused space is cleaned up
>  periodically. For most setups a weekly schedule provides a good interval to
>  start.
>  
> -GC Background
> +Overview
>  ^^^^^^^^^^^^^

Small nit: adjust the length of the underline to match the length of the
title.

>  
>  In `Proxmox Backup`_ Server, backup data is not saved directly, but rather as
> @@ -187,26 +187,51 @@ references to the same chunks on every snapshot deletion. Moreover, locking the
>  entire datastore is not feasible because new backups would be blocked until the deletion
>  process was complete.
>  
> -Therefore, Proxmox Backup Server uses a garbage collection (GC) process to
> +Therefore, Proxmox Backup Server uses a `tracing garbage collection
> +<https://en.wikipedia.org/wiki/Tracing_garbage_collection>`_ algorithm to
>  identify and remove the unused backup chunks that are no longer needed by any
> -snapshot in the datastore. The GC process is designed to efficiently reclaim
> +snapshot in the datastore. The GC algorithm is designed to efficiently reclaim
>  the space occupied by these chunks with low impact on the performance of the
>  datastore or interfering with other backups.
>  
> -The garbage collection (GC) process is performed per datastore and is split
> -into two phases:
> +The GC is performed per datastore and is split into two phases:
>  
> -- Phase one: Mark
> -  All index files are read, and the access time of the referred chunk files is
> -  updated.
> +- Phase one - Mark:
> +
> +  Read all index files and update the ``atime`` (access time) of the relevant
> +  chunk files.
> +
> +- Phase two - Sweep:
> +
> +  Iterate over all chunks and check the ``atime`` of the files. If
> +  the ``atime`` is older than the cut-off time, the chunk was neither
> +  referenced in a backup index nor is it part of a running backup that
> +  does not yet have an index to search. As such, safely remove the chunk.
> +
> +
> +Cut-off Time
> +^^^^^^^^^^^^
> +
> +The GC only clears the chunks that were last accessed before the
> +cut-off time. The cut-off time is determined by whichever is earlier:
> +
> +- 24 hours and 5 minutes before the start of the garbage collection
> +  due to the mounting of the data storage with relatime, or

I would also make relatime a inline literal like this: ``relatime``

> +
> +- the start time of the oldest active backup job that has been running
> +  for longer than 24 hours and 5 minutes at the beginning of the
> +  garbage collection. This is necessary because the newly created
> +  backup could refer to blocks, but the GC would not notice this as
> +  there is no index of the backup that could be searched.
> +
> +Chunks accessed after the cut-off time are marked as *Pending removals*
> +by the GC as it cannot be certain whether they are still needed.
> +
> +.. Note:: Mounting a volume with relatime means that the ``atime``

Same here

> +   of the chunk files is not updated every time, but only when the
> +   data has changed or the ``atime`` was before a certain time,
> +   which is 24 hours by default.
>  
> -- Phase two: Sweep
> -  The task iterates over all chunks, checks their file access time, and if it
> -  is older than the cutoff time (i.e., the time when GC started, plus some
> -  headroom for safety and Linux file system behavior), the task knows that the
> -  chunk was neither referred to in any backup index nor part of any currently
> -  running backup that has no index to scan for. As such, the chunk can be
> -  safely deleted.
>  
>  Manually Starting GC
>  ^^^^^^^^^^^^^^^^^^^^





^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [pbs-devel] [PATCH proxmox-backup 0/3] docs: clarify and expand the description of the garbage collection
  2024-04-02 13:36 [pbs-devel] [PATCH proxmox-backup 0/3] docs: clarify and expand the description of the garbage collection Hannes Duerr
                   ` (2 preceding siblings ...)
  2024-04-02 13:36 ` [pbs-devel] [PATCH proxmox-backup 3/3] docs: add garbage collection timing example Hannes Duerr
@ 2024-04-05 10:58 ` Gabriel Goller
  3 siblings, 0 replies; 6+ messages in thread
From: Gabriel Goller @ 2024-04-05 10:58 UTC (permalink / raw)
  To: Proxmox Backup Server development discussion

Apart from the small nits that I mentioned in the first reply this looks
really good. Especially the timing example looks great!

Consider:

Reviewed-by: Gabriel Goller <g.goller@proxmox.com>
Tested-by: Gabriel Goller <g.goller@proxmox.com>





^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2024-04-05 10:58 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-04-02 13:36 [pbs-devel] [PATCH proxmox-backup 0/3] docs: clarify and expand the description of the garbage collection Hannes Duerr
2024-04-02 13:36 ` [pbs-devel] [PATCH proxmox-backup 1/3] docs: centralise and update garbage collection description Hannes Duerr
2024-04-05 10:49   ` Gabriel Goller
2024-04-02 13:36 ` [pbs-devel] [PATCH proxmox-backup 2/3] docs: add custom class for svgs Hannes Duerr
2024-04-02 13:36 ` [pbs-devel] [PATCH proxmox-backup 3/3] docs: add garbage collection timing example Hannes Duerr
2024-04-05 10:58 ` [pbs-devel] [PATCH proxmox-backup 0/3] docs: clarify and expand the description of the garbage collection Gabriel Goller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal