Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Several improvements to the image-format-vs-repo-size experiment and the report documenting it: dropped the first 3 columns of data to make the bar chart clearer; drawing the bar chart on a transparent BG in case it's used on a page with a non-white BG, as with a selected Fossil forum post; added axis labels; added a run time calculation to the expensive first step; fixed a few syntax problems that prevent the Python code from compiling on Python 3; documented some problems with running it under Anaconda on macOS; better documented the notebook's dependencies; many clarifications to the experimental report text. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
41e5237acd2eb2b160a81425e02e1324 |
User & Date: | wyoung 2019-03-27 18:45:55.909 |
Context
2019-03-27
| ||
19:59 | Added Jupyter nbviewer link for www/image-format-vs-repo-size.ipynb, and made a few small edits to the notebook after seeing it in that viewer. ... (check-in: f52d63e3 user: wyoung tags: trunk) | |
18:45 | Several improvements to the image-format-vs-repo-size experiment and the report documenting it: dropped the first 3 columns of data to make the bar chart clearer; drawing the bar chart on a transparent BG in case it's used on a page with a non-white BG, as with a selected Fossil forum post; added axis labels; added a run time calculation to the expensive first step; fixed a few syntax problems that prevent the Python code from compiling on Python 3; documented some problems with running it under Anaconda on macOS; better documented the notebook's dependencies; many clarifications to the experimental report text. ... (check-in: 41e5237a user: wyoung tags: trunk) | |
13:22 | Expand the dates in the timeline description when using punctuationless dates in the query parameters. ... (check-in: 99abe50b user: drh tags: trunk) | |
Changes
Changes to www/image-format-vs-repo-size.ipynb.
1 2 3 4 5 6 7 8 9 10 | { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Image Format vs Fossil Repository Size\n", "\n", "## Prerequisites\n", "\n", | > > | > > > > > > > > | | > > | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Image Format vs Fossil Repository Size\n", "\n", "## Prerequisites\n", "\n", "This notebook was developed with [JupyterLab][jl]. To follow in my footsteps, install that and the needed Python packages:\n", "\n", " $ sudo pip install jupyterlab matplotlib pandas wand\n", "\n", "In principle, it should also work with [Anaconda Navigator][an], but because [Wand][wp] is not currently in the Anaconda base package set, you may run into difficulties making it work, as we did on macOS. These problems might not occur on Windows or Linux.\n", "\n", "This notebook uses the Python 2 kernel because macOS does not include Python 3, and we don't want to make adding that a prerequisite for those re-running this experiement on their own macOS systems. The code was written with Python 3 syntax changes in mind, but we haven't yet successfully tried it in a Python 3 Jupyter kernel.\n", "\n", "[an]: https://www.anaconda.com/distribution/\n", "[jl]: https://github.com/jupyterlab/\n", "[wp]: http://wand-py.org/\n", "\n", "\n", "## Running\n", "\n", "The next cell generates the test repositories. This takes about 45 seconds to run, primarily due to the `sleep 1` synchronization call, made 40 times in the main test loop.\n", "\n", "The one after that produces the bar chart from the collected data, all but instantaneously.\n", "\n", "This split allows you to generate the expensive experimental data in a single pass, then play as many games as you like with the generated data.\n", "\n", "\n", "## Discussion\n", "\n", "That is kept in [a separate document](image-format-vs-repo-size.md) so we can share that document with Fossil's Markdown renderer." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import os\n", "import random\n", "import time\n", "\n", "from wand.color import Color\n", "from wand.drawing import Drawing\n", "from wand.image import Image\n", "\n", "import pandas as pd\n", "\n", "size = 256\n", "iterations = 10\n", "start = time.time()\n", "repo_sizes = []\n", "\n", "formats = ['JPEG', 'BMP', 'TIFF', 'PNG']\n", "for f in formats:\n", " ext = f.lower()\n", " tdir = 'test' + '-' + ext\n", " repo = tdir + '.fossil'\n", " ifn = 'test.' + ext\n", " ipath = os.path.join(tdir, ifn)\n", " rs = []\n", " \n", " def add_repo_size():\n", " rs.append(os.path.getsize(repo) / 1024.0 / 1024.0)\n", "\n", " try:\n", " # Create test repo\n", " if not os.path.exists(tdir): os.mkdir(tdir, 0o700)\n", " cmd = 'cd {0} ; fossil init ../{1} && fossil open ../{1} && fossil set binary-glob \"*.{2}\"'.format(\n", " tdir, repo, ext\n", " )\n", " if os.system(cmd) != 0:\n", " raise RuntimeError('Failed to create test repo ' + repo)\n", " add_repo_size()\n", "\n", |
︙ | ︙ | |||
114 115 116 117 118 119 120 | " repo_sizes.append(pd.Series(rs, name=f))\n", "\n", " finally:\n", " if os.path.exists(ipath): os.remove(ipath)\n", " if os.path.exists(tdir):\n", " os.system('cd ' + tdir + ' ; fossil close -f')\n", " os.rmdir(tdir)\n", | | > > > > > | > | | | > > | > > > > > > > | 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 | " repo_sizes.append(pd.Series(rs, name=f))\n", "\n", " finally:\n", " if os.path.exists(ipath): os.remove(ipath)\n", " if os.path.exists(tdir):\n", " os.system('cd ' + tdir + ' ; fossil close -f')\n", " os.rmdir(tdir)\n", " if os.path.exists(repo): os.remove(repo)\n", " \n", "print(\"Experiment completed in \" + str(time.time() - start) + \" seconds.\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "%config InlineBackend.figure_formats = ['svg']\n", "\n", "import matplotlib as mpl\n", "import matplotlib.pyplot as plt\n", "\n", "# Merge per-format test data into a single DataFrame without the first\n", "# first 3 rows: the initial empty repo state (boring) and the repo DB\n", "# size as it \"settles\" in its first few checkins.\n", "data = pd.concat(repo_sizes, axis=1).drop(range(3))\n", "\n", "mpl.rcParams['figure.figsize'] = (6, 4)\n", "#plt.rcParams['axes.facecolor'] = 'white'\n", "ax = data.plot(kind = 'bar', colormap = 'coolwarm',\n", " grid = False, width = 0.8,\n", " edgecolor = 'white', linewidth = 2)\n", "ax.axes.set_xlabel('Checkin index')\n", "ax.axes.set_ylabel('Repo size (MiB)')\n", "plt.savefig('image-format-vs-repo-size.svg', transparent=True)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" |
︙ | ︙ |
Changes to www/image-format-vs-repo-size.md.
1 2 3 4 5 | # Image Format vs Fossil Repo Size ## The Problem Fossil has a [delta compression][dc] feature which removes redundant | | > | | < | > | > > > | | | < | | | | > > > > > > > < | < < < < < | | > | | | | > > | | | < | | | | | | | | | < < < < < < < < < | | < < < < | < < | < < < | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 | # Image Format vs Fossil Repo Size ## The Problem Fossil has a [delta compression][dc] feature which removes redundant information from a file — with respect to the version checked in at the tip of the current working branch — when checking in a subsequent version.¹ That delta is then [zlib][zl]-compressed before being stored in the Fossil repository database file. Storing pre-compressed data files in a Fossil repository defeats both of these space-saving measures: 1. Binary data compression algorithms — whether lossless as with zlib or lossy as with JPEG — turn the file data into [pseudorandom noise][prn].² Typical data compression algorithms are not [hash functions][hf], where the goal is that a change to each bit in the input has a statistically even chance of changing every bit in the output, but because they do approach that pathological condition, pre-compressed data tends to defeat Fossil’s delta compression algorithm, there being so little correlation between two different outputs from the binary data compression algorithm. 2. An ideal lossless binary data compression algorithm cannot be applied more than once to make the data even smaller, since random noise is incompressible. The consequence for our purposes here is that pre-compressed data doesn’t benefit from Fossil’s zlib compression. You might then ask, what does it matter if the space savings comes from the application file format (e.g. JPEG, Zip, etc.) or from Fossil itself? It really doesn’t, as far as point 2 above goes, but point 1 causes the Fossil repository to balloon out of proportion to the size of the input data change on each checkin. This article will illustrate that problem, quantify it, and give a solution to it. [dc]: ./delta_format.wiki [hf]: https://en.wikipedia.org/wiki/Hash_function [prn]: https://en.wikipedia.org/wiki/Pseudorandomness [zl]: http://www.zlib.net/ ## Affected File Formats In this article’s core experiment, we use 2D image file formats, but this article’s advice also applies to many other file types. For just a few examples out of what must be thousands: * **Microsoft Office**: The [OOXML document format][oox] used from Office 2003 onward (`.docx`, `.xlsx`, `.pptx`, etc.) are Zip files containing an XML document file and several collateral files. * **Libre Office**: Its [ODF][odf] format is designed in more or less the same way as OOXML. * **Java**: A Java [`.jar` file][jcl] is a Zip file containing JVM `.class` files, manifest files, and more. * **Windows Installer:** An [`*.msi` file][wi] is a proprietary database format that contains, among other things, [Microsoft Cabinet][cab]-compressed files, which in turn may hold Windows executables, which [may themselves be compressed][exc]. * **SVG, PDF, TIFF, etc.**: Many file formats are available in both compressed and uncompressed forms. You should use the uncompressed form with Fossil wherever practical, as we will show below. [cab]: https://en.wikipedia.org/wiki/Cabinet_(file_format) [exc]: https://en.wikipedia.org/wiki/Executable_compression [jcl]: https://en.wikipedia.org/wiki/Java_(programming_language) [odf]: https://en.wikipedia.org/wiki/OpenDocument [oox]: https://en.wikipedia.org/wiki/Office_Open_XML [wi]: https://en.wikipedia.org/wiki/Windows_Installer ## Demonstration The companion [`image-format-vs-repo-size.ipynb` file][nb] is a [Jupyter][jp] notebook implementing the following experiment: 1. Create an empty Fossil repository; save its initial size. 2. Use [ImageMagick][im] via [Wand][wp] to generate a JPEG file of a particular size — currently 256 px² — filled with Gaussian noise to make data compression more difficult than with a solid-color image. 3. Check that image into the new Fossil repo, and remember that size. 4. Change a random pixel in the image to a random RGB value, save that image, check it in, and remember the new Fossil repo size. 5. Iterate on step 4 some number of times — currently 10 — and remember the Fossil repo size at each step. 6. Repeat the above steps for BMP, TIFF,³ and PNG. 7. Create a bar chart showing how the Fossil repository size changes with each checkin. We chose to use Jupyter for this because it makes it easy for you to modify the notebook to try different things. Want to see how the results change with a different image size? Easy, change the `size` value in the second cell of the notebook. Want to try more image formats? You can put anything ImageMagick can recognize into the `formats` list. Want to find the break-even point for images like those in your own respository? Easily done with a small amount of code. [im]: https://www.imagemagick.org/ [jp]: https://jupyter.org/ [nb]: ./image-format-vs-repo-size.ipynb [wp]: http://wand-py.org/ ## Results Running the notebook gives a bar chart something like⁴ this:  There are a few key things we want to draw your attention to in that chart: * BMP and uncompressed TIFF are nearly identical in size for all checkins, and the repository growth rate is negligible.⁵ We owe this economy to Fossil’s delta compression feature. * The JPEG and TIFF bars increase by large amounts on most checkins even though each checkin encodes only a *single-pixel change*! * Because JPEG’s lossy nature allows it to start smaller and have smaller size increases than than PNG, the crossover point with BMP/TIFF isn’t until 7-9 checkins in typical runs of this [Monte Carlo experiment][mce]. Given a choice among these four file formats and a willingness to use lossy image compression, a rational tradeoff is to choose JPEG for repositories where each image will change fewer than that number of times. [mce]: https://en.wikipedia.org/wiki/Monte_Carlo_method ## Automated Recompression Since programs that produce and consume binary-compressed data files often make it either difficult or impossible to work with the uncompressed form, we want an automated method for producing the uncompressed form to make Fossil happy while still having the compressed form to keep our content creation applications happy. This `Makefile` should⁶ do that for BMP, PNG, SVG, and XLSX files: .SUFFIXES: .bmp .png .svg .svgz .svgz.svg: gzip -dc < $< > $@ .svg.svgz: |
︙ | ︙ | |||
191 192 193 194 195 196 197 | unzip $@ -d $< doc-big.pdf: doc-small.pdf qpdf --stream-data=uncompress $@ $< This `Makefile` allows you to treat the compressed version as the process input, but to actually check in only the changes against the | | > > > | | | > > > | | | | | > > > > > > > | | | | > > > > > > > > > > > > > > > > > > > | | | | > | | | 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 | unzip $@ -d $< doc-big.pdf: doc-small.pdf qpdf --stream-data=uncompress $@ $< This `Makefile` allows you to treat the compressed version as the process input, but to actually check in only the changes against the uncompressed version by typing “`make`” before “`fossil ci`”. This is not actually an extra step in practice, since if you’ve got a `Makefile`-based project, you should be building (and testing!) it before checking each change in anyway! Because this technique is based on dependency rules, only the necessary files are generated on each `make` command. You only have to run “`make reconstitute`” *once* after opening a fresh Fossil checkout to produce those compressed sources. After that, you work with the compressed files in your content creation programs. Your build system might include some kind of bootstrapping or auto-configuration step that you could attach this to, so that it doesn’t need to be run by hand. This `Makefile` illustrates two primary strategies: ### Input and Ouput File Formats Differ by Extension In the case of SVG and the bitmap image formats, the file name extension differs between the cases, so we can use `make` suffix rules to get the behavior we want. The top half of the `Makefile` just tells `make` how to map from `*.svg` to `*.svgz` and vice versa, and the same for `*.bmp` to/from `*.png`. ### Input and Output Use the Same Extension We don’t have that luxury for Excel and PDF files, each for a different reason: * **Excel:** Excel has no way to work with the unpacked Zip file contents at all, so we have to unpack it into a subdirectory, which is what we check into Fossil. On making a fresh Fossil checkout, we have to pack that subdirectory’s contents back up into an `*.xlsx` file with “`make reconstitute`” so we can edit it with Excel again. * **PDF:** All PDF readers can display an uncompressed PDF file, but many PDF-*producing* programs have no option for uncompressed output. Since the file name extension is the same either way, we treat the compressed PDF as the source to the process, yielding an automatically-uncompressed PDF for the benefit of Fossil. Unlike with the Excel case, there is no simple “file base name to directory name” mapping, so we just created the `-big` to `-small` name scheme here. ---- ## Footnotes and Digressions 1. Several other programs also do delta compression, so they’ll also be affected by this problem: [rsync][rs], [Unison][us], [Git][git], etc. When using file copying and synchronization programs *without* delta compression, it’s best to use the most highly-compressed file format you can tolerate, since they copy the whole file any time any bit of it changes. 2. In fact, a good way to gauge the effectiveness of a given compression scheme is to run its output through the same sort of tests we use to gauge how “random” a given [PRNG][prng] is. Another way to look at it is that if there is a discernible pattern in the output of a compression scheme, it’s information that could be further compressed. 3. We're using *uncompressed* TIFF here, not [LZW][lzw]- or Zip-compressed TIFF, either of which would give similar results to PNG, which is always zlib-compressed. 4. The raw data changes somewhat from one run to the next due to the use of random noise in the image to make the zlib/PNG compression more difficult, and the random pixel changes. Those test design choices make this a [Monte Carlo experient][mce]. We’ve found that the overall character of the results doesn’t change from one run to the next. The code in the notebook’s third cell drops the first three columns of data because the first column (the empty repository size) is boring, and the subsequent two checkins show the SQLite DB file format settling in with its first few checkins. There’s a single line in the notebook you can comment out to get a bar chart with these data included. If you do this, you’ll see a mildly interesting result: the size of the first checkin in the BMP and TIFF cases is roughly the same as that for the PNG case, because both PNG and Fossil use the zlib binary data compression algorithm. 5. A low-tech format like BMP will have a small edge in practice because TIFF metadata includes the option for multiple timestamps, UUIDs, etc., which bloat the checkin size by creating many small deltas. If you don't need the advantages of TIFF, a less capable image file format will give smaller checkin sizes for a given amount of change. 6. The `Makefile` above is not battle-tested. Please report bugs and needed extensions [on the forum][for]. [for]: https://fossil-scm.org/forum/forumpost/15e677f2c8 [git]: https://git-scm.com/ [lzw]: https://en.wikipedia.org/wiki/Lempel%E2%80%93Ziv%E2%80%93Welch [prng]: https://en.wikipedia.org/wiki/Pseudorandom_number_generator [rs]: https://rsync.samba.org/ [us]: http://www.cis.upenn.edu/~bcpierce/unison/ |
Changes to www/image-format-vs-repo-size.svg.
1 2 3 4 | <?xml version="1.0" encoding="utf-8" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <!-- Created with matplotlib (http://matplotlib.org/) --> | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | < < < < < < < < < < < < < < < < | | < < < < < < | < < | | | | < | < < < < < | < < | | < < < < < < < < < < < < < < < < | | | | | | | < < < < < < < < < < < < < < < < < < < < < < < | | < | | | | | | | | | < < < < < < | < < | | < < < < < < < < | | | | | | < < < < < < < | | < | | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 | <?xml version="1.0" encoding="utf-8" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <!-- Created with matplotlib (http://matplotlib.org/) --> <svg height="288pt" version="1.1" viewBox="0 0 432 288" width="432pt" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <defs> <style type="text/css"> *{stroke-linecap:butt;stroke-linejoin:round;} </style> </defs> <g id="figure_1"> <g id="patch_1"> <path d="M 0 288 L 432 288 L 432 0 L 0 0 z " style="fill:none;"/> </g> <g id="axes_1"> <g id="patch_2"> <path d="M 54 256.32 L 388.8 256.32 L 388.8 34.56 L 54 34.56 z " style="fill:none;"/> </g> <g id="patch_3"> <path clip-path="url(#pbb31c7aa29)" d="M 63 256.32 L 70.2 256.32 L 70.2 175.617561 L 63 175.617561 z " style="fill:#3b4cc0;stroke:#ffffff;stroke-linejoin:miter;stroke-width:2;"/> </g> <g id="patch_4"> <path clip-path="url(#pbb31c7aa29)" d="M 99 256.32 L 106.2 256.32 L 106.2 165.315122 L 99 165.315122 z " style="fill:#3b4cc0;stroke:#ffffff;stroke-linejoin:miter;stroke-width:2;"/> </g> <g id="patch_5"> <path clip-path="url(#pbb31c7aa29)" d="M 135 256.32 L 142.2 256.32 L 142.2 148.14439 L 135 148.14439 z " style="fill:#3b4cc0;stroke:#ffffff;stroke-linejoin:miter;stroke-width:2;"/> </g> <g id="patch_6"> <path clip-path="url(#pbb31c7aa29)" d="M 171 256.32 L 178.2 256.32 L 178.2 141.276098 L 171 141.276098 z " style="fill:#3b4cc0;stroke:#ffffff;stroke-linejoin:miter;stroke-width:2;"/> </g> <g id="patch_7"> <path clip-path="url(#pbb31c7aa29)" d="M 207 256.32 L 214.2 256.32 L 214.2 139.559024 L 207 139.559024 z " style="fill:#3b4cc0;stroke:#ffffff;stroke-linejoin:miter;stroke-width:2;"/> </g> <g id="patch_8"> <path clip-path="url(#pbb31c7aa29)" d="M 243 256.32 L 250.2 256.32 L 250.2 137.841951 L 243 137.841951 z " style="fill:#3b4cc0;stroke:#ffffff;stroke-linejoin:miter;stroke-width:2;"/> </g> <g id="patch_9"> <path clip-path="url(#pbb31c7aa29)" d="M 279 256.32 L 286.2 256.32 L 286.2 136.983415 L 279 136.983415 z " style="fill:#3b4cc0;stroke:#ffffff;stroke-linejoin:miter;stroke-width:2;"/> </g> <g id="patch_10"> <path clip-path="url(#pbb31c7aa29)" d="M 315 256.32 L 322.2 256.32 L 322.2 125.822439 L 315 125.822439 z " style="fill:#3b4cc0;stroke:#ffffff;stroke-linejoin:miter;stroke-width:2;"/> </g> <g id="patch_11"> <path clip-path="url(#pbb31c7aa29)" d="M 351 256.32 L 358.2 256.32 L 358.2 119.812683 L 351 119.812683 z " style="fill:#3b4cc0;stroke:#ffffff;stroke-linejoin:miter;stroke-width:2;"/> </g> <g id="patch_12"> <path clip-path="url(#pbb31c7aa29)" d="M 70.2 256.32 L 77.4 256.32 L 77.4 135.266341 L 70.2 135.266341 z " style="fill:#aac7fd;stroke:#ffffff;stroke-linejoin:miter;stroke-width:2;"/> </g> <g id="patch_13"> <path clip-path="url(#pbb31c7aa29)" d="M 106.2 256.32 L 113.4 256.32 L 113.4 135.266341 L 106.2 135.266341 z " style="fill:#aac7fd;stroke:#ffffff;stroke-linejoin:miter;stroke-width:2;"/> </g> <g id="patch_14"> <path clip-path="url(#pbb31c7aa29)" d="M 142.2 256.32 L 149.4 256.32 L 149.4 135.266341 L 142.2 135.266341 z " style="fill:#aac7fd;stroke:#ffffff;stroke-linejoin:miter;stroke-width:2;"/> </g> <g id="patch_15"> <path clip-path="url(#pbb31c7aa29)" d="M 178.2 256.32 L 185.4 256.32 L 185.4 135.266341 L 178.2 135.266341 z " style="fill:#aac7fd;stroke:#ffffff;stroke-linejoin:miter;stroke-width:2;"/> </g> <g id="patch_16"> <path clip-path="url(#pbb31c7aa29)" d="M 214.2 256.32 L 221.4 256.32 L 221.4 135.266341 L 214.2 135.266341 z " style="fill:#aac7fd;stroke:#ffffff;stroke-linejoin:miter;stroke-width:2;"/> </g> <g id="patch_17"> <path clip-path="url(#pbb31c7aa29)" d="M 250.2 256.32 L 257.4 256.32 L 257.4 135.266341 L 250.2 135.266341 z " style="fill:#aac7fd;stroke:#ffffff;stroke-linejoin:miter;stroke-width:2;"/> </g> <g id="patch_18"> <path clip-path="url(#pbb31c7aa29)" d="M 286.2 256.32 L 293.4 256.32 L 293.4 135.266341 L 286.2 135.266341 z " style="fill:#aac7fd;stroke:#ffffff;stroke-linejoin:miter;stroke-width:2;"/> </g> <g id="patch_19"> <path clip-path="url(#pbb31c7aa29)" d="M 322.2 256.32 L 329.4 256.32 L 329.4 134.407805 L 322.2 134.407805 z " style="fill:#aac7fd;stroke:#ffffff;stroke-linejoin:miter;stroke-width:2;"/> </g> <g id="patch_20"> <path clip-path="url(#pbb31c7aa29)" d="M 358.2 256.32 L 365.4 256.32 L 365.4 134.407805 L 358.2 134.407805 z " style="fill:#aac7fd;stroke:#ffffff;stroke-linejoin:miter;stroke-width:2;"/> </g> <g id="patch_21"> <path clip-path="url(#pbb31c7aa29)" d="M 77.4 256.32 L 84.6 256.32 L 84.6 136.124878 L 77.4 136.124878 z " style="fill:#f7b89c;stroke:#ffffff;stroke-linejoin:miter;stroke-width:2;"/> </g> <g id="patch_22"> <path clip-path="url(#pbb31c7aa29)" d="M 113.4 256.32 L 120.6 256.32 L 120.6 136.124878 L 113.4 136.124878 z " style="fill:#f7b89c;stroke:#ffffff;stroke-linejoin:miter;stroke-width:2;"/> </g> <g id="patch_23"> <path clip-path="url(#pbb31c7aa29)" d="M 149.4 256.32 L 156.6 256.32 L 156.6 136.124878 L 149.4 136.124878 z " style="fill:#f7b89c;stroke:#ffffff;stroke-linejoin:miter;stroke-width:2;"/> </g> <g id="patch_24"> <path clip-path="url(#pbb31c7aa29)" d="M 185.4 256.32 L 192.6 256.32 L 192.6 136.124878 L 185.4 136.124878 z " style="fill:#f7b89c;stroke:#ffffff;stroke-linejoin:miter;stroke-width:2;"/> </g> <g id="patch_25"> <path clip-path="url(#pbb31c7aa29)" d="M 221.4 256.32 L 228.6 256.32 L 228.6 136.124878 L 221.4 136.124878 z " style="fill:#f7b89c;stroke:#ffffff;stroke-linejoin:miter;stroke-width:2;"/> </g> <g id="patch_26"> <path clip-path="url(#pbb31c7aa29)" d="M 257.4 256.32 L 264.6 256.32 L 264.6 134.407805 L 257.4 134.407805 z " style="fill:#f7b89c;stroke:#ffffff;stroke-linejoin:miter;stroke-width:2;"/> </g> <g id="patch_27"> <path clip-path="url(#pbb31c7aa29)" d="M 293.4 256.32 L 300.6 256.32 L 300.6 134.407805 L 293.4 134.407805 z " style="fill:#f7b89c;stroke:#ffffff;stroke-linejoin:miter;stroke-width:2;"/> </g> <g id="patch_28"> <path clip-path="url(#pbb31c7aa29)" d="M 329.4 256.32 L 336.6 256.32 L 336.6 134.407805 L 329.4 134.407805 z " style="fill:#f7b89c;stroke:#ffffff;stroke-linejoin:miter;stroke-width:2;"/> </g> <g id="patch_29"> <path clip-path="url(#pbb31c7aa29)" d="M 365.4 256.32 L 372.6 256.32 L 372.6 134.407805 L 365.4 134.407805 z " style="fill:#f7b89c;stroke:#ffffff;stroke-linejoin:miter;stroke-width:2;"/> </g> <g id="patch_30"> <path clip-path="url(#pbb31c7aa29)" d="M 84.6 256.32 L 91.8 256.32 L 91.8 133.549268 L 84.6 133.549268 z " style="fill:#b40426;stroke:#ffffff;stroke-linejoin:miter;stroke-width:2;"/> </g> <g id="patch_31"> <path clip-path="url(#pbb31c7aa29)" d="M 120.6 256.32 L 127.8 256.32 L 127.8 116.378537 L 120.6 116.378537 z " style="fill:#b40426;stroke:#ffffff;stroke-linejoin:miter;stroke-width:2;"/> </g> <g id="patch_32"> <path clip-path="url(#pbb31c7aa29)" d="M 156.6 256.32 L 163.8 256.32 L 163.8 104.359024 L 156.6 104.359024 z " style="fill:#b40426;stroke:#ffffff;stroke-linejoin:miter;stroke-width:2;"/> </g> <g id="patch_33"> <path clip-path="url(#pbb31c7aa29)" d="M 192.6 256.32 L 199.8 256.32 L 199.8 99.207805 L 192.6 99.207805 z " style="fill:#b40426;stroke:#ffffff;stroke-linejoin:miter;stroke-width:2;"/> </g> <g id="patch_34"> <path clip-path="url(#pbb31c7aa29)" d="M 228.6 256.32 L 235.8 256.32 L 235.8 82.89561 L 228.6 82.89561 z " style="fill:#b40426;stroke:#ffffff;stroke-linejoin:miter;stroke-width:2;"/> </g> <g id="patch_35"> <path clip-path="url(#pbb31c7aa29)" d="M 264.6 256.32 L 271.8 256.32 L 271.8 71.734634 L 264.6 71.734634 z " style="fill:#b40426;stroke:#ffffff;stroke-linejoin:miter;stroke-width:2;"/> </g> <g id="patch_36"> <path clip-path="url(#pbb31c7aa29)" d="M 300.6 256.32 L 307.8 256.32 L 307.8 60.573659 L 300.6 60.573659 z " style="fill:#b40426;stroke:#ffffff;stroke-linejoin:miter;stroke-width:2;"/> </g> <g id="patch_37"> <path clip-path="url(#pbb31c7aa29)" d="M 336.6 256.32 L 343.8 256.32 L 343.8 50.27122 L 336.6 50.27122 z " style="fill:#b40426;stroke:#ffffff;stroke-linejoin:miter;stroke-width:2;"/> </g> <g id="patch_38"> <path clip-path="url(#pbb31c7aa29)" d="M 372.6 256.32 L 379.8 256.32 L 379.8 45.12 L 372.6 45.12 z " style="fill:#b40426;stroke:#ffffff;stroke-linejoin:miter;stroke-width:2;"/> </g> <g id="matplotlib.axis_1"> <g id="xtick_1"> <g id="line2d_1"> <defs> <path d="M 0 0 L 0 3.5 " id="m445964aa5c" style="stroke:#000000;stroke-width:0.8;"/> </defs> <g> <use style="stroke:#000000;stroke-width:0.8;" x="77.4" xlink:href="#m445964aa5c" y="256.32"/> </g> </g> <g id="text_1"> <!-- 3 --> <defs> <path d="M 40.578125 39.3125 Q 47.65625 37.796875 51.625 33 Q 55.609375 28.21875 55.609375 21.1875 Q 55.609375 10.40625 48.1875 4.484375 Q 40.765625 -1.421875 27.09375 -1.421875 |
︙ | ︙ | |||
557 558 559 560 561 562 563 | Q 40.828125 74.21875 47.359375 69.109375 Q 53.90625 64.015625 53.90625 55.328125 Q 53.90625 49.265625 50.4375 45.09375 Q 46.96875 40.921875 40.578125 39.3125 z " id="DejaVuSans-33"/> </defs> | | | | | | | | | | | | 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 | Q 40.828125 74.21875 47.359375 69.109375 Q 53.90625 64.015625 53.90625 55.328125 Q 53.90625 49.265625 50.4375 45.09375 Q 46.96875 40.921875 40.578125 39.3125 z " id="DejaVuSans-33"/> </defs> <g transform="translate(80.159375 269.6825)rotate(-90)scale(0.1 -0.1)"> <use xlink:href="#DejaVuSans-33"/> </g> </g> </g> <g id="xtick_2"> <g id="line2d_2"> <g> <use style="stroke:#000000;stroke-width:0.8;" x="113.4" xlink:href="#m445964aa5c" y="256.32"/> </g> </g> <g id="text_2"> <!-- 4 --> <defs> <path d="M 37.796875 64.3125 L 12.890625 25.390625 L 37.796875 25.390625 z M 35.203125 72.90625 L 47.609375 72.90625 L 47.609375 25.390625 L 58.015625 25.390625 L 58.015625 17.1875 L 47.609375 17.1875 L 47.609375 0 L 37.796875 0 L 37.796875 17.1875 L 4.890625 17.1875 L 4.890625 26.703125 z " id="DejaVuSans-34"/> </defs> <g transform="translate(116.159375 269.6825)rotate(-90)scale(0.1 -0.1)"> <use xlink:href="#DejaVuSans-34"/> </g> </g> </g> <g id="xtick_3"> <g id="line2d_3"> <g> <use style="stroke:#000000;stroke-width:0.8;" x="149.4" xlink:href="#m445964aa5c" y="256.32"/> </g> </g> <g id="text_3"> <!-- 5 --> <defs> <path d="M 10.796875 72.90625 L 49.515625 72.90625 L 49.515625 64.59375 L 19.828125 64.59375 L 19.828125 46.734375 |
︙ | ︙ | |||
628 629 630 631 632 633 634 | Q 45.015625 31 40.078125 35.4375 Q 35.15625 39.890625 26.703125 39.890625 Q 22.75 39.890625 18.8125 39.015625 Q 14.890625 38.140625 10.796875 36.28125 z " id="DejaVuSans-35"/> </defs> | | | | | | | 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 | Q 45.015625 31 40.078125 35.4375 Q 35.15625 39.890625 26.703125 39.890625 Q 22.75 39.890625 18.8125 39.015625 Q 14.890625 38.140625 10.796875 36.28125 z " id="DejaVuSans-35"/> </defs> <g transform="translate(152.159375 269.6825)rotate(-90)scale(0.1 -0.1)"> <use xlink:href="#DejaVuSans-35"/> </g> </g> </g> <g id="xtick_4"> <g id="line2d_4"> <g> <use style="stroke:#000000;stroke-width:0.8;" x="185.4" xlink:href="#m445964aa5c" y="256.32"/> </g> </g> <g id="text_4"> <!-- 6 --> <defs> <path d="M 33.015625 40.375 Q 26.375 40.375 22.484375 35.828125 Q 18.609375 31.296875 18.609375 23.390625 Q 18.609375 15.53125 22.484375 10.953125 Q 26.375 6.390625 33.015625 6.390625 |
︙ | ︙ | |||
673 674 675 676 677 678 679 | Q 6.984375 53.65625 15.1875 63.9375 Q 23.390625 74.21875 37.203125 74.21875 Q 40.921875 74.21875 44.703125 73.484375 Q 48.484375 72.75 52.59375 71.296875 z " id="DejaVuSans-36"/> </defs> | | | | | | | | | | | | 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 | Q 6.984375 53.65625 15.1875 63.9375 Q 23.390625 74.21875 37.203125 74.21875 Q 40.921875 74.21875 44.703125 73.484375 Q 48.484375 72.75 52.59375 71.296875 z " id="DejaVuSans-36"/> </defs> <g transform="translate(188.159375 269.6825)rotate(-90)scale(0.1 -0.1)"> <use xlink:href="#DejaVuSans-36"/> </g> </g> </g> <g id="xtick_5"> <g id="line2d_5"> <g> <use style="stroke:#000000;stroke-width:0.8;" x="221.4" xlink:href="#m445964aa5c" y="256.32"/> </g> </g> <g id="text_5"> <!-- 7 --> <defs> <path d="M 8.203125 72.90625 L 55.078125 72.90625 L 55.078125 68.703125 L 28.609375 0 L 18.3125 0 L 43.21875 64.59375 L 8.203125 64.59375 z " id="DejaVuSans-37"/> </defs> <g transform="translate(224.159375 269.6825)rotate(-90)scale(0.1 -0.1)"> <use xlink:href="#DejaVuSans-37"/> </g> </g> </g> <g id="xtick_6"> <g id="line2d_6"> <g> <use style="stroke:#000000;stroke-width:0.8;" x="257.4" xlink:href="#m445964aa5c" y="256.32"/> </g> </g> <g id="text_6"> <!-- 8 --> <defs> <path d="M 31.78125 34.625 Q 24.75 34.625 20.71875 30.859375 Q 16.703125 27.09375 16.703125 20.515625 Q 16.703125 13.921875 20.71875 10.15625 Q 24.75 6.390625 31.78125 6.390625 |
︙ | ︙ | |||
751 752 753 754 755 756 757 | Q 45.3125 60.0625 41.71875 63.234375 Q 38.140625 66.40625 31.78125 66.40625 Q 25.390625 66.40625 21.84375 63.234375 Q 18.3125 60.0625 18.3125 54.390625 z " id="DejaVuSans-38"/> </defs> | | | | | | | 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 | Q 45.3125 60.0625 41.71875 63.234375 Q 38.140625 66.40625 31.78125 66.40625 Q 25.390625 66.40625 21.84375 63.234375 Q 18.3125 60.0625 18.3125 54.390625 z " id="DejaVuSans-38"/> </defs> <g transform="translate(260.159375 269.6825)rotate(-90)scale(0.1 -0.1)"> <use xlink:href="#DejaVuSans-38"/> </g> </g> </g> <g id="xtick_7"> <g id="line2d_7"> <g> <use style="stroke:#000000;stroke-width:0.8;" x="293.4" xlink:href="#m445964aa5c" y="256.32"/> </g> </g> <g id="text_7"> <!-- 9 --> <defs> <path d="M 10.984375 1.515625 L 10.984375 10.5 Q 14.703125 8.734375 18.5 7.8125 Q 22.3125 6.890625 25.984375 6.890625 Q 35.75 6.890625 40.890625 13.453125 |
︙ | ︙ | |||
796 797 798 799 800 801 802 | Q 23.96875 66.40625 20.09375 61.84375 Q 16.21875 57.28125 16.21875 49.421875 Q 16.21875 41.5 20.09375 36.953125 Q 23.96875 32.421875 30.609375 32.421875 z " id="DejaVuSans-39"/> </defs> | | | | | | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | | | | | | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | | | | | | | | > > > > > > > > > > > > > > > > > > > > > > > > > > | | | | | | | | | | | | | | | | | < | > > | > > | < < > > > > > > > > > > > > > > > > > > > > > > | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | | < > > > > | | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | > > > > > | > > > > > | | | | | | | | | | | | | | | | | | 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 | Q 23.96875 66.40625 20.09375 61.84375 Q 16.21875 57.28125 16.21875 49.421875 Q 16.21875 41.5 20.09375 36.953125 Q 23.96875 32.421875 30.609375 32.421875 z " id="DejaVuSans-39"/> </defs> <g transform="translate(296.159375 269.6825)rotate(-90)scale(0.1 -0.1)"> <use xlink:href="#DejaVuSans-39"/> </g> </g> </g> <g id="xtick_8"> <g id="line2d_8"> <g> <use style="stroke:#000000;stroke-width:0.8;" x="329.4" xlink:href="#m445964aa5c" y="256.32"/> </g> </g> <g id="text_8"> <!-- 10 --> <defs> <path d="M 12.40625 8.296875 L 28.515625 8.296875 L 28.515625 63.921875 L 10.984375 60.40625 L 10.984375 69.390625 L 28.421875 72.90625 L 38.28125 72.90625 L 38.28125 8.296875 L 54.390625 8.296875 L 54.390625 0 L 12.40625 0 z " id="DejaVuSans-31"/> <path d="M 31.78125 66.40625 Q 24.171875 66.40625 20.328125 58.90625 Q 16.5 51.421875 16.5 36.375 Q 16.5 21.390625 20.328125 13.890625 Q 24.171875 6.390625 31.78125 6.390625 Q 39.453125 6.390625 43.28125 13.890625 Q 47.125 21.390625 47.125 36.375 Q 47.125 51.421875 43.28125 58.90625 Q 39.453125 66.40625 31.78125 66.40625 z M 31.78125 74.21875 Q 44.046875 74.21875 50.515625 64.515625 Q 56.984375 54.828125 56.984375 36.375 Q 56.984375 17.96875 50.515625 8.265625 Q 44.046875 -1.421875 31.78125 -1.421875 Q 19.53125 -1.421875 13.0625 8.265625 Q 6.59375 17.96875 6.59375 36.375 Q 6.59375 54.828125 13.0625 64.515625 Q 19.53125 74.21875 31.78125 74.21875 z " id="DejaVuSans-30"/> </defs> <g transform="translate(332.159375 276.045)rotate(-90)scale(0.1 -0.1)"> <use xlink:href="#DejaVuSans-31"/> <use x="63.623047" xlink:href="#DejaVuSans-30"/> </g> </g> </g> <g id="xtick_9"> <g id="line2d_9"> <g> <use style="stroke:#000000;stroke-width:0.8;" x="365.4" xlink:href="#m445964aa5c" y="256.32"/> </g> </g> <g id="text_9"> <!-- 11 --> <g transform="translate(368.159375 276.045)rotate(-90)scale(0.1 -0.1)"> <use xlink:href="#DejaVuSans-31"/> <use x="63.623047" xlink:href="#DejaVuSans-31"/> </g> </g> </g> <g id="text_10"> <!-- Checkin index --> <defs> <path d="M 64.40625 67.28125 L 64.40625 56.890625 Q 59.421875 61.53125 53.78125 63.8125 Q 48.140625 66.109375 41.796875 66.109375 Q 29.296875 66.109375 22.65625 58.46875 Q 16.015625 50.828125 16.015625 36.375 Q 16.015625 21.96875 22.65625 14.328125 Q 29.296875 6.6875 41.796875 6.6875 Q 48.140625 6.6875 53.78125 8.984375 Q 59.421875 11.28125 64.40625 15.921875 L 64.40625 5.609375 Q 59.234375 2.09375 53.4375 0.328125 Q 47.65625 -1.421875 41.21875 -1.421875 Q 24.65625 -1.421875 15.125 8.703125 Q 5.609375 18.84375 5.609375 36.375 Q 5.609375 53.953125 15.125 64.078125 Q 24.65625 74.21875 41.21875 74.21875 Q 47.75 74.21875 53.53125 72.484375 Q 59.328125 70.75 64.40625 67.28125 z " id="DejaVuSans-43"/> <path d="M 54.890625 33.015625 L 54.890625 0 L 45.90625 0 L 45.90625 32.71875 Q 45.90625 40.484375 42.875 44.328125 Q 39.84375 48.1875 33.796875 48.1875 Q 26.515625 48.1875 22.3125 43.546875 Q 18.109375 38.921875 18.109375 30.90625 L 18.109375 0 L 9.078125 0 L 9.078125 75.984375 L 18.109375 75.984375 L 18.109375 46.1875 Q 21.34375 51.125 25.703125 53.5625 Q 30.078125 56 35.796875 56 Q 45.21875 56 50.046875 50.171875 Q 54.890625 44.34375 54.890625 33.015625 z " id="DejaVuSans-68"/> <path d="M 56.203125 29.59375 L 56.203125 25.203125 L 14.890625 25.203125 Q 15.484375 15.921875 20.484375 11.0625 Q 25.484375 6.203125 34.421875 6.203125 Q 39.59375 6.203125 44.453125 7.46875 Q 49.3125 8.734375 54.109375 11.28125 L 54.109375 2.78125 Q 49.265625 0.734375 44.1875 -0.34375 Q 39.109375 -1.421875 33.890625 -1.421875 Q 20.796875 -1.421875 13.15625 6.1875 Q 5.515625 13.8125 5.515625 26.8125 Q 5.515625 40.234375 12.765625 48.109375 Q 20.015625 56 32.328125 56 Q 43.359375 56 49.78125 48.890625 Q 56.203125 41.796875 56.203125 29.59375 z M 47.21875 32.234375 Q 47.125 39.59375 43.09375 43.984375 Q 39.0625 48.390625 32.421875 48.390625 Q 24.90625 48.390625 20.390625 44.140625 Q 15.875 39.890625 15.1875 32.171875 z " id="DejaVuSans-65"/> <path d="M 48.78125 52.59375 L 48.78125 44.1875 Q 44.96875 46.296875 41.140625 47.34375 Q 37.3125 48.390625 33.40625 48.390625 Q 24.65625 48.390625 19.8125 42.84375 Q 14.984375 37.3125 14.984375 27.296875 Q 14.984375 17.28125 19.8125 11.734375 Q 24.65625 6.203125 33.40625 6.203125 Q 37.3125 6.203125 41.140625 7.25 Q 44.96875 8.296875 48.78125 10.40625 L 48.78125 2.09375 Q 45.015625 0.34375 40.984375 -0.53125 Q 36.96875 -1.421875 32.421875 -1.421875 Q 20.0625 -1.421875 12.78125 6.34375 Q 5.515625 14.109375 5.515625 27.296875 Q 5.515625 40.671875 12.859375 48.328125 Q 20.21875 56 33.015625 56 Q 37.15625 56 41.109375 55.140625 Q 45.0625 54.296875 48.78125 52.59375 z " id="DejaVuSans-63"/> <path d="M 9.078125 75.984375 L 18.109375 75.984375 L 18.109375 31.109375 L 44.921875 54.6875 L 56.390625 54.6875 L 27.390625 29.109375 L 57.625 0 L 45.90625 0 L 18.109375 26.703125 L 18.109375 0 L 9.078125 0 z " id="DejaVuSans-6b"/> <path d="M 9.421875 54.6875 L 18.40625 54.6875 L 18.40625 0 L 9.421875 0 z M 9.421875 75.984375 L 18.40625 75.984375 L 18.40625 64.59375 L 9.421875 64.59375 z " id="DejaVuSans-69"/> <path d="M 54.890625 33.015625 L 54.890625 0 L 45.90625 0 L 45.90625 32.71875 Q 45.90625 40.484375 42.875 44.328125 Q 39.84375 48.1875 33.796875 48.1875 Q 26.515625 48.1875 22.3125 43.546875 Q 18.109375 38.921875 18.109375 30.90625 L 18.109375 0 L 9.078125 0 L 9.078125 54.6875 L 18.109375 54.6875 L 18.109375 46.1875 Q 21.34375 51.125 25.703125 53.5625 Q 30.078125 56 35.796875 56 Q 45.21875 56 50.046875 50.171875 Q 54.890625 44.34375 54.890625 33.015625 z " id="DejaVuSans-6e"/> <path id="DejaVuSans-20"/> <path d="M 45.40625 46.390625 L 45.40625 75.984375 L 54.390625 75.984375 L 54.390625 0 L 45.40625 0 L 45.40625 8.203125 Q 42.578125 3.328125 38.25 0.953125 Q 33.9375 -1.421875 27.875 -1.421875 Q 17.96875 -1.421875 11.734375 6.484375 Q 5.515625 14.40625 5.515625 27.296875 Q 5.515625 40.1875 11.734375 48.09375 Q 17.96875 56 27.875 56 Q 33.9375 56 38.25 53.625 Q 42.578125 51.265625 45.40625 46.390625 z M 14.796875 27.296875 Q 14.796875 17.390625 18.875 11.75 Q 22.953125 6.109375 30.078125 6.109375 Q 37.203125 6.109375 41.296875 11.75 Q 45.40625 17.390625 45.40625 27.296875 Q 45.40625 37.203125 41.296875 42.84375 Q 37.203125 48.484375 30.078125 48.484375 Q 22.953125 48.484375 18.875 42.84375 Q 14.796875 37.203125 14.796875 27.296875 z " id="DejaVuSans-64"/> <path d="M 54.890625 54.6875 L 35.109375 28.078125 L 55.90625 0 L 45.3125 0 L 29.390625 21.484375 L 13.484375 0 L 2.875 0 L 24.125 28.609375 L 4.6875 54.6875 L 15.28125 54.6875 L 29.78125 35.203125 L 44.28125 54.6875 z " id="DejaVuSans-78"/> </defs> <g transform="translate(186.104688 287.643438)scale(0.1 -0.1)"> <use xlink:href="#DejaVuSans-43"/> <use x="69.824219" xlink:href="#DejaVuSans-68"/> <use x="133.203125" xlink:href="#DejaVuSans-65"/> <use x="194.726562" xlink:href="#DejaVuSans-63"/> <use x="249.707031" xlink:href="#DejaVuSans-6b"/> <use x="307.617188" xlink:href="#DejaVuSans-69"/> <use x="335.400391" xlink:href="#DejaVuSans-6e"/> <use x="398.779297" xlink:href="#DejaVuSans-20"/> <use x="430.566406" xlink:href="#DejaVuSans-69"/> <use x="458.349609" xlink:href="#DejaVuSans-6e"/> <use x="521.728516" xlink:href="#DejaVuSans-64"/> <use x="585.205078" xlink:href="#DejaVuSans-65"/> <use x="646.712891" xlink:href="#DejaVuSans-78"/> </g> </g> </g> <g id="matplotlib.axis_2"> <g id="ytick_1"> <g id="line2d_10"> <defs> <path d="M 0 0 L -3.5 0 " id="mdf25573cb4" style="stroke:#000000;stroke-width:0.8;"/> </defs> <g> <use style="stroke:#000000;stroke-width:0.8;" x="54" xlink:href="#mdf25573cb4" y="256.32"/> </g> </g> <g id="text_11"> <!-- 0.0 --> <defs> <path d="M 10.6875 12.40625 L 21 12.40625 L 21 0 L 10.6875 0 z " id="DejaVuSans-2e"/> </defs> <g transform="translate(31.096875 260.119219)scale(0.1 -0.1)"> <use xlink:href="#DejaVuSans-30"/> <use x="63.623047" xlink:href="#DejaVuSans-2e"/> <use x="95.410156" xlink:href="#DejaVuSans-30"/> </g> </g> </g> <g id="ytick_2"> <g id="line2d_11"> <g> <use style="stroke:#000000;stroke-width:0.8;" x="54" xlink:href="#mdf25573cb4" y="212.362927"/> </g> </g> <g id="text_12"> <!-- 0.2 --> <defs> <path d="M 19.1875 8.296875 L 53.609375 8.296875 L 53.609375 0 L 7.328125 0 L 7.328125 8.296875 Q 12.9375 14.109375 22.625 23.890625 Q 32.328125 33.6875 34.8125 36.53125 Q 39.546875 41.84375 41.421875 45.53125 Q 43.3125 49.21875 43.3125 52.78125 Q 43.3125 58.59375 39.234375 62.25 Q 35.15625 65.921875 28.609375 65.921875 Q 23.96875 65.921875 18.8125 64.3125 Q 13.671875 62.703125 7.8125 59.421875 L 7.8125 69.390625 Q 13.765625 71.78125 18.9375 73 Q 24.125 74.21875 28.421875 74.21875 Q 39.75 74.21875 46.484375 68.546875 Q 53.21875 62.890625 53.21875 53.421875 Q 53.21875 48.921875 51.53125 44.890625 Q 49.859375 40.875 45.40625 35.40625 Q 44.1875 33.984375 37.640625 27.21875 Q 31.109375 20.453125 19.1875 8.296875 z " id="DejaVuSans-32"/> </defs> <g transform="translate(31.096875 216.162146)scale(0.1 -0.1)"> <use xlink:href="#DejaVuSans-30"/> <use x="63.623047" xlink:href="#DejaVuSans-2e"/> <use x="95.410156" xlink:href="#DejaVuSans-32"/> </g> </g> </g> <g id="ytick_3"> <g id="line2d_12"> <g> <use style="stroke:#000000;stroke-width:0.8;" x="54" xlink:href="#mdf25573cb4" y="168.405854"/> </g> </g> <g id="text_13"> <!-- 0.4 --> <g transform="translate(31.096875 172.205072)scale(0.1 -0.1)"> <use xlink:href="#DejaVuSans-30"/> <use x="63.623047" xlink:href="#DejaVuSans-2e"/> <use x="95.410156" xlink:href="#DejaVuSans-34"/> </g> </g> </g> <g id="ytick_4"> <g id="line2d_13"> <g> <use style="stroke:#000000;stroke-width:0.8;" x="54" xlink:href="#mdf25573cb4" y="124.44878"/> </g> </g> <g id="text_14"> <!-- 0.6 --> <g transform="translate(31.096875 128.247999)scale(0.1 -0.1)"> <use xlink:href="#DejaVuSans-30"/> <use x="63.623047" xlink:href="#DejaVuSans-2e"/> <use x="95.410156" xlink:href="#DejaVuSans-36"/> </g> </g> </g> <g id="ytick_5"> <g id="line2d_14"> <g> <use style="stroke:#000000;stroke-width:0.8;" x="54" xlink:href="#mdf25573cb4" y="80.491707"/> </g> </g> <g id="text_15"> <!-- 0.8 --> <g transform="translate(31.096875 84.290926)scale(0.1 -0.1)"> <use xlink:href="#DejaVuSans-30"/> <use x="63.623047" xlink:href="#DejaVuSans-2e"/> <use x="95.410156" xlink:href="#DejaVuSans-38"/> </g> </g> </g> <g id="ytick_6"> <g id="line2d_15"> <g> <use style="stroke:#000000;stroke-width:0.8;" x="54" xlink:href="#mdf25573cb4" y="36.534634"/> </g> </g> <g id="text_16"> <!-- 1.0 --> <g transform="translate(31.096875 40.333853)scale(0.1 -0.1)"> <use xlink:href="#DejaVuSans-31"/> <use x="63.623047" xlink:href="#DejaVuSans-2e"/> <use x="95.410156" xlink:href="#DejaVuSans-30"/> </g> </g> </g> <g id="text_17"> <!-- Repo size (MiB) --> <defs> <path d="M 44.390625 34.1875 Q 47.5625 33.109375 50.5625 29.59375 Q 53.5625 26.078125 56.59375 19.921875 L 66.609375 0 L 56 0 L 46.6875 18.703125 Q 43.0625 26.03125 39.671875 28.421875 Q 36.28125 30.8125 30.421875 30.8125 L 19.671875 30.8125 L 19.671875 0 L 9.8125 0 L 9.8125 72.90625 L 32.078125 72.90625 Q 44.578125 72.90625 50.734375 67.671875 Q 56.890625 62.453125 56.890625 51.90625 Q 56.890625 45.015625 53.6875 40.46875 Q 50.484375 35.9375 44.390625 34.1875 z M 19.671875 64.796875 L 19.671875 38.921875 L 32.078125 38.921875 Q 39.203125 38.921875 42.84375 42.21875 Q 46.484375 45.515625 46.484375 51.90625 Q 46.484375 58.296875 42.84375 61.546875 Q 39.203125 64.796875 32.078125 64.796875 z " id="DejaVuSans-52"/> <path d="M 18.109375 8.203125 L 18.109375 -20.796875 L 9.078125 -20.796875 L 9.078125 54.6875 L 18.109375 54.6875 L 18.109375 46.390625 Q 20.953125 51.265625 25.265625 53.625 Q 29.59375 56 35.59375 56 Q 45.5625 56 51.78125 48.09375 Q 58.015625 40.1875 58.015625 27.296875 Q 58.015625 14.40625 51.78125 6.484375 Q 45.5625 -1.421875 35.59375 -1.421875 Q 29.59375 -1.421875 25.265625 0.953125 Q 20.953125 3.328125 18.109375 8.203125 z M 48.6875 27.296875 Q 48.6875 37.203125 44.609375 42.84375 Q 40.53125 48.484375 33.40625 48.484375 Q 26.265625 48.484375 22.1875 42.84375 Q 18.109375 37.203125 18.109375 27.296875 Q 18.109375 17.390625 22.1875 11.75 Q 26.265625 6.109375 33.40625 6.109375 Q 40.53125 6.109375 44.609375 11.75 Q 48.6875 17.390625 48.6875 27.296875 z " id="DejaVuSans-70"/> <path d="M 30.609375 48.390625 Q 23.390625 48.390625 19.1875 42.75 Q 14.984375 37.109375 14.984375 27.296875 Q 14.984375 17.484375 19.15625 11.84375 Q 23.34375 6.203125 30.609375 6.203125 Q 37.796875 6.203125 41.984375 11.859375 Q 46.1875 17.53125 46.1875 27.296875 Q 46.1875 37.015625 41.984375 42.703125 Q 37.796875 48.390625 30.609375 48.390625 z M 30.609375 56 Q 42.328125 56 49.015625 48.375 Q 55.71875 40.765625 55.71875 27.296875 Q 55.71875 13.875 49.015625 6.21875 Q 42.328125 -1.421875 30.609375 -1.421875 Q 18.84375 -1.421875 12.171875 6.21875 Q 5.515625 13.875 5.515625 27.296875 Q 5.515625 40.765625 12.171875 48.375 Q 18.84375 56 30.609375 56 z " id="DejaVuSans-6f"/> <path d="M 44.28125 53.078125 L 44.28125 44.578125 Q 40.484375 46.53125 36.375 47.5 Q 32.28125 48.484375 27.875 48.484375 Q 21.1875 48.484375 17.84375 46.4375 Q 14.5 44.390625 14.5 40.28125 Q 14.5 37.15625 16.890625 35.375 Q 19.28125 33.59375 26.515625 31.984375 L 29.59375 31.296875 Q 39.15625 29.25 43.1875 25.515625 Q 47.21875 21.78125 47.21875 15.09375 Q 47.21875 7.46875 41.1875 3.015625 Q 35.15625 -1.421875 24.609375 -1.421875 Q 20.21875 -1.421875 15.453125 -0.5625 Q 10.6875 0.296875 5.421875 2 L 5.421875 11.28125 Q 10.40625 8.6875 15.234375 7.390625 Q 20.0625 6.109375 24.8125 6.109375 Q 31.15625 6.109375 34.5625 8.28125 Q 37.984375 10.453125 37.984375 14.40625 Q 37.984375 18.0625 35.515625 20.015625 Q 33.0625 21.96875 24.703125 23.78125 L 21.578125 24.515625 Q 13.234375 26.265625 9.515625 29.90625 Q 5.8125 33.546875 5.8125 39.890625 Q 5.8125 47.609375 11.28125 51.796875 Q 16.75 56 26.8125 56 Q 31.78125 56 36.171875 55.265625 Q 40.578125 54.546875 44.28125 53.078125 z " id="DejaVuSans-73"/> <path d="M 5.515625 54.6875 L 48.1875 54.6875 L 48.1875 46.484375 L 14.40625 7.171875 L 48.1875 7.171875 L 48.1875 0 L 4.296875 0 L 4.296875 8.203125 L 38.09375 47.515625 L 5.515625 47.515625 z " id="DejaVuSans-7a"/> <path d="M 31 75.875 Q 24.46875 64.65625 21.28125 53.65625 Q 18.109375 42.671875 18.109375 31.390625 Q 18.109375 20.125 21.3125 9.0625 Q 24.515625 -2 31 -13.1875 L 23.1875 -13.1875 Q 15.875 -1.703125 12.234375 9.375 Q 8.59375 20.453125 8.59375 31.390625 Q 8.59375 42.28125 12.203125 53.3125 Q 15.828125 64.359375 23.1875 75.875 z " id="DejaVuSans-28"/> <path d="M 9.8125 72.90625 L 24.515625 72.90625 L 43.109375 23.296875 L 61.8125 72.90625 L 76.515625 72.90625 L 76.515625 0 L 66.890625 0 L 66.890625 64.015625 L 48.09375 14.015625 L 38.1875 14.015625 L 19.390625 64.015625 L 19.390625 0 L 9.8125 0 z " id="DejaVuSans-4d"/> <path d="M 19.671875 34.8125 L 19.671875 8.109375 L 35.5 8.109375 Q 43.453125 8.109375 47.28125 11.40625 Q 51.125 14.703125 51.125 21.484375 Q 51.125 28.328125 47.28125 31.5625 Q 43.453125 34.8125 35.5 34.8125 z M 19.671875 64.796875 L 19.671875 42.828125 L 34.28125 42.828125 Q 41.5 42.828125 45.03125 45.53125 Q 48.578125 48.25 48.578125 53.8125 Q 48.578125 59.328125 45.03125 62.0625 Q 41.5 64.796875 34.28125 64.796875 z M 9.8125 72.90625 L 35.015625 72.90625 Q 46.296875 72.90625 52.390625 68.21875 Q 58.5 63.53125 58.5 54.890625 Q 58.5 48.1875 55.375 44.234375 Q 52.25 40.28125 46.1875 39.3125 Q 53.46875 37.75 57.5 32.78125 Q 61.53125 27.828125 61.53125 20.40625 Q 61.53125 10.640625 54.890625 5.3125 Q 48.25 0 35.984375 0 L 9.8125 0 z " id="DejaVuSans-42"/> <path d="M 8.015625 75.875 L 15.828125 75.875 Q 23.140625 64.359375 26.78125 53.3125 Q 30.421875 42.28125 30.421875 31.390625 Q 30.421875 20.453125 26.78125 9.375 Q 23.140625 -1.703125 15.828125 -13.1875 L 8.015625 -13.1875 Q 14.5 -2 17.703125 9.0625 Q 20.90625 20.125 20.90625 31.390625 Q 20.90625 42.671875 17.703125 53.65625 Q 14.5 64.65625 8.015625 75.875 z " id="DejaVuSans-29"/> </defs> <g transform="translate(25.017187 184.129063)rotate(-90)scale(0.1 -0.1)"> <use xlink:href="#DejaVuSans-52"/> <use x="69.419922" xlink:href="#DejaVuSans-65"/> <use x="130.943359" xlink:href="#DejaVuSans-70"/> <use x="194.419922" xlink:href="#DejaVuSans-6f"/> <use x="255.601562" xlink:href="#DejaVuSans-20"/> <use x="287.388672" xlink:href="#DejaVuSans-73"/> <use x="339.488281" xlink:href="#DejaVuSans-69"/> <use x="367.271484" xlink:href="#DejaVuSans-7a"/> <use x="419.761719" xlink:href="#DejaVuSans-65"/> <use x="481.285156" xlink:href="#DejaVuSans-20"/> <use x="513.072266" xlink:href="#DejaVuSans-28"/> <use x="552.085938" xlink:href="#DejaVuSans-4d"/> <use x="638.365234" xlink:href="#DejaVuSans-69"/> <use x="666.148438" xlink:href="#DejaVuSans-42"/> <use x="734.751953" xlink:href="#DejaVuSans-29"/> </g> </g> </g> <g id="patch_39"> <path d="M 54 256.32 L 54 34.56 " style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> </g> <g id="patch_40"> <path d="M 388.8 256.32 L 388.8 34.56 " style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> </g> <g id="patch_41"> <path d="M 54 256.32 L 388.8 256.32 " style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> </g> <g id="patch_42"> <path d="M 54 34.56 L 388.8 34.56 " style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> </g> <g id="legend_1"> <g id="patch_43"> <path d="M 61 101.2725 L 116.046875 101.2725 Q 118.046875 101.2725 118.046875 99.2725 L 118.046875 41.56 Q 118.046875 39.56 116.046875 39.56 L 61 39.56 Q 59 39.56 59 41.56 L 59 99.2725 Q 59 101.2725 61 101.2725 z " style="fill:#ffffff;opacity:0.8;stroke:#cccccc;stroke-linejoin:miter;"/> </g> <g id="patch_44"> <path d="M 63 51.158438 L 83 51.158438 L 83 44.158438 L 63 44.158438 z " style="fill:#3b4cc0;stroke:#ffffff;stroke-linejoin:miter;stroke-width:2;"/> </g> <g id="text_18"> <!-- JPEG --> <defs> <path d="M 9.8125 72.90625 L 19.671875 72.90625 L 19.671875 5.078125 Q 19.671875 -8.109375 14.671875 -14.0625 Q 9.671875 -20.015625 -1.421875 -20.015625 |
︙ | ︙ | |||
1051 1052 1053 1054 1055 1056 1057 | Q 16.015625 21.625 22.71875 14.15625 Q 29.4375 6.6875 42.828125 6.6875 Q 48.046875 6.6875 52.140625 7.59375 Q 56.25 8.5 59.515625 10.40625 z " id="DejaVuSans-47"/> </defs> | | | | | | | | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | | | | | | | | 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 | Q 16.015625 21.625 22.71875 14.15625 Q 29.4375 6.6875 42.828125 6.6875 Q 48.046875 6.6875 52.140625 7.59375 Q 56.25 8.5 59.515625 10.40625 z " id="DejaVuSans-47"/> </defs> <g transform="translate(91 51.158438)scale(0.1 -0.1)"> <use xlink:href="#DejaVuSans-4a"/> <use x="29.492188" xlink:href="#DejaVuSans-50"/> <use x="89.794922" xlink:href="#DejaVuSans-45"/> <use x="152.978516" xlink:href="#DejaVuSans-47"/> </g> </g> <g id="patch_45"> <path d="M 63 65.836563 L 83 65.836563 L 83 58.836563 L 63 58.836563 z " style="fill:#aac7fd;stroke:#ffffff;stroke-linejoin:miter;stroke-width:2;"/> </g> <g id="text_19"> <!-- BMP --> <g transform="translate(91 65.836563)scale(0.1 -0.1)"> <use xlink:href="#DejaVuSans-42"/> <use x="68.603516" xlink:href="#DejaVuSans-4d"/> <use x="154.882812" xlink:href="#DejaVuSans-50"/> </g> </g> <g id="patch_46"> <path d="M 63 80.514688 L 83 80.514688 L 83 73.514688 L 63 73.514688 z " style="fill:#f7b89c;stroke:#ffffff;stroke-linejoin:miter;stroke-width:2;"/> </g> <g id="text_20"> <!-- TIFF --> <defs> <path d="M -0.296875 72.90625 L 61.375 72.90625 L 61.375 64.59375 L 35.5 64.59375 L 35.5 0 |
︙ | ︙ | |||
1160 1161 1162 1163 1164 1165 1166 | L 48.578125 34.8125 L 19.671875 34.8125 L 19.671875 0 L 9.8125 0 z " id="DejaVuSans-46"/> </defs> | | | | | | | | | | | | 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 | L 48.578125 34.8125 L 19.671875 34.8125 L 19.671875 0 L 9.8125 0 z " id="DejaVuSans-46"/> </defs> <g transform="translate(91 80.514688)scale(0.1 -0.1)"> <use xlink:href="#DejaVuSans-54"/> <use x="61.083984" xlink:href="#DejaVuSans-49"/> <use x="90.576172" xlink:href="#DejaVuSans-46"/> <use x="148.095703" xlink:href="#DejaVuSans-46"/> </g> </g> <g id="patch_47"> <path d="M 63 95.192813 L 83 95.192813 L 83 88.192813 L 63 88.192813 z " style="fill:#b40426;stroke:#ffffff;stroke-linejoin:miter;stroke-width:2;"/> </g> <g id="text_21"> <!-- PNG --> <defs> <path d="M 9.8125 72.90625 L 23.09375 72.90625 L 55.421875 11.921875 L 55.421875 72.90625 L 64.984375 72.90625 L 64.984375 0 L 51.703125 0 L 19.390625 60.984375 L 19.390625 0 L 9.8125 0 z " id="DejaVuSans-4e"/> </defs> <g transform="translate(91 95.192813)scale(0.1 -0.1)"> <use xlink:href="#DejaVuSans-50"/> <use x="60.302734" xlink:href="#DejaVuSans-4e"/> <use x="135.107422" xlink:href="#DejaVuSans-47"/> </g> </g> </g> </g> </g> <defs> <clipPath id="pbb31c7aa29"> <rect height="221.76" width="334.8" x="54" y="34.56"/> </clipPath> </defs> </svg> |