@greenpandastudios/aug-cli 0.20.1 → 0.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (295) hide show
  1. package/README.md +1 -1
  2. package/docs/assets/benchmarks/execution.svg +774 -637
  3. package/docs/assets/benchmarks/http.svg +278 -249
  4. package/docs/assets/benchmarks/improvements.svg +66 -66
  5. package/docs/assets/benchmarks/kernels-mobile.svg +1 -0
  6. package/docs/assets/benchmarks/kernels.svg +1 -0
  7. package/docs/assets/benchmarks/memory.svg +153 -153
  8. package/docs/benchmark-results.json +227089 -90363
  9. package/docs/compatibility.md +6 -6
  10. package/docs/contributing-benchmarks.md +36 -6
  11. package/docs/dev-containers.md +8 -15
  12. package/docs/dgx-consumers.json +122 -0
  13. package/docs/dgx-gyms.json +784 -0
  14. package/docs/dgx-kernels.json +1170 -0
  15. package/docs/dgx-performance.json +227849 -0
  16. package/docs/dgx-spark.md +64 -0
  17. package/docs/diagnostics.md +1 -1
  18. package/docs/docker.md +16 -17
  19. package/docs/example-projects.json +32 -0
  20. package/docs/examples/approved-design/dependencies/august/{0.20.1 → 0.21.0}/io/contracts.md +3 -3
  21. package/docs/examples/approved-design/domain/app.md +4 -4
  22. package/docs/examples/approved-design/main.md +2 -2
  23. package/docs/examples/calls-benchmark/index.md +36 -0
  24. package/docs/examples/calls-benchmark/main.md +78 -0
  25. package/docs/examples/calls-benchmark/operations.md +60 -0
  26. package/docs/examples/developer-workflow/calculator.md +5 -5
  27. package/docs/examples/developer-workflow/dependencies/august/{0.20.1 → 0.21.0}/io/contracts.md +3 -3
  28. package/docs/examples/developer-workflow/logging/console.md +2 -2
  29. package/docs/examples/developer-workflow/logging/logger.md +2 -2
  30. package/docs/examples/developer-workflow/main.md +2 -2
  31. package/docs/examples/errors-benchmark/index.md +36 -0
  32. package/docs/examples/errors-benchmark/main.md +92 -0
  33. package/docs/examples/errors-benchmark/operations.md +65 -0
  34. package/docs/examples/float-benchmark/index.md +35 -0
  35. package/docs/examples/float-benchmark/main.md +75 -0
  36. package/docs/examples/generic-di/dependencies/august/{0.20.1 → 0.21.0}/io/contracts.md +3 -3
  37. package/docs/examples/generic-di/main.md +2 -2
  38. package/docs/examples/generic-di/types.md +3 -3
  39. package/docs/examples/hello/app/greeter.md +3 -3
  40. package/docs/examples/hello/dependencies/august/{0.20.1 → 0.21.0}/io/contracts.md +3 -3
  41. package/docs/examples/hello/logging/console.md +2 -2
  42. package/docs/examples/hello/logging/logger.md +2 -2
  43. package/docs/examples/hello/main.md +2 -2
  44. package/docs/examples/index.md +18 -1
  45. package/docs/examples/interceptors/app.md +5 -5
  46. package/docs/examples/interceptors/dependencies/august/{0.20.1 → 0.21.0}/io/contracts.md +3 -3
  47. package/docs/examples/interceptors/interceptors.md +2 -2
  48. package/docs/examples/interceptors/logging.md +3 -3
  49. package/docs/examples/interceptors/main.md +2 -2
  50. package/docs/examples/list-benchmark/index.md +35 -0
  51. package/docs/examples/list-benchmark/main.md +78 -0
  52. package/docs/examples/map-churn-benchmark/index.md +35 -0
  53. package/docs/examples/map-churn-benchmark/main.md +106 -0
  54. package/docs/examples/native-blake3/dependencies/packages/@greenpandastudios/aug-blake3/0.1.3/api.md +104 -0
  55. package/docs/examples/native-blake3/dependencies/packages/@greenpandastudios/aug-blake3/0.1.3/contracts.md +54 -0
  56. package/docs/examples/native-blake3/dependencies/packages/@greenpandastudios/aug-blake3/0.1.3/native.abi-json.md +48 -0
  57. package/docs/examples/native-blake3/hashing.md +93 -0
  58. package/docs/examples/native-blake3/index.md +38 -0
  59. package/docs/examples/native-blake3/main.md +73 -0
  60. package/docs/examples/native-pytorch/dependencies/packages/@greenpandastudios/aug-pytorch/0.1.4/api.md +406 -0
  61. package/docs/examples/native-pytorch/dependencies/packages/@greenpandastudios/aug-pytorch/0.1.4/bindings.md +51 -0
  62. package/docs/examples/native-pytorch/dependencies/packages/@greenpandastudios/aug-pytorch/0.1.4/contracts.md +63 -0
  63. package/docs/examples/native-pytorch/dependencies/packages/@greenpandastudios/aug-pytorch/0.1.4/native.abi-json.md +161 -0
  64. package/docs/examples/native-pytorch/index.md +38 -0
  65. package/docs/examples/native-pytorch/main.md +73 -0
  66. package/docs/examples/native-pytorch/tensors.md +123 -0
  67. package/docs/examples/native-sqlite/database.md +116 -0
  68. package/docs/examples/native-sqlite/dependencies/packages/@greenpandastudios/aug-sqlite/0.1.3/api.md +284 -0
  69. package/docs/examples/native-sqlite/dependencies/packages/@greenpandastudios/aug-sqlite/0.1.3/bindings.md +51 -0
  70. package/docs/examples/native-sqlite/dependencies/packages/@greenpandastudios/aug-sqlite/0.1.3/contracts.md +75 -0
  71. package/docs/examples/native-sqlite/dependencies/packages/@greenpandastudios/aug-sqlite/0.1.3/native.abi-json.md +119 -0
  72. package/docs/examples/native-sqlite/index.md +38 -0
  73. package/docs/examples/native-sqlite/main.md +73 -0
  74. package/docs/examples/native-zlib/compression.md +99 -0
  75. package/docs/examples/native-zlib/dependencies/packages/@greenpandastudios/aug-zlib/0.1.3/api.md +153 -0
  76. package/docs/examples/native-zlib/dependencies/packages/@greenpandastudios/aug-zlib/0.1.3/contracts.md +54 -0
  77. package/docs/examples/native-zlib/dependencies/packages/@greenpandastudios/aug-zlib/0.1.3/native.abi-json.md +76 -0
  78. package/docs/examples/native-zlib/index.md +38 -0
  79. package/docs/examples/native-zlib/main.md +78 -0
  80. package/docs/examples/new-syntax/console.md +2 -2
  81. package/docs/examples/new-syntax/dependencies/august/{0.20.1 → 0.21.0}/io/contracts.md +3 -3
  82. package/docs/examples/new-syntax/greeter.md +3 -3
  83. package/docs/examples/new-syntax/logger.md +2 -2
  84. package/docs/examples/new-syntax/main.md +2 -2
  85. package/docs/examples/ownership-transfer/dependencies/august/{0.20.1 → 0.21.0}/io/contracts.md +3 -3
  86. package/docs/examples/ownership-transfer/main.md +2 -2
  87. package/docs/examples/ownership-transfer/resource.md +2 -2
  88. package/docs/examples/packages-math/aug-package-json.md +1 -1
  89. package/docs/examples/records-benchmark/data.md +55 -0
  90. package/docs/examples/records-benchmark/index.md +36 -0
  91. package/docs/examples/records-benchmark/main.md +85 -0
  92. package/docs/examples/strings-benchmark/index.md +35 -0
  93. package/docs/examples/strings-benchmark/main.md +76 -0
  94. package/docs/examples/tasks-benchmark/index.md +36 -0
  95. package/docs/examples/tasks-benchmark/main.md +89 -0
  96. package/docs/examples/tasks-benchmark/operations.md +58 -0
  97. package/docs/getting-started.md +3 -3
  98. package/docs/grammar.md +2 -2
  99. package/docs/gym-results.json +784 -0
  100. package/docs/implementation-map.md +6 -0
  101. package/docs/index.md +1 -1
  102. package/docs/kernel-results.json +1170 -0
  103. package/docs/language-conformance.md +6 -0
  104. package/docs/language-constructs.md +9 -1
  105. package/docs/learn/index.md +1 -1
  106. package/docs/maintaining-docs.md +1 -1
  107. package/docs/native-implementation.md +276 -0
  108. package/docs/native-interop-llvm-plan.md +342 -0
  109. package/docs/native-package-examples.md +684 -0
  110. package/docs/native-packages.md +179 -0
  111. package/docs/packages.md +2 -2
  112. package/docs/performance.md +50 -29
  113. package/docs/production-readiness.md +11 -1
  114. package/docs/public/downloads/approved-design.zip +0 -0
  115. package/docs/public/downloads/calls-benchmark.zip +0 -0
  116. package/docs/public/downloads/developer-workflow.zip +0 -0
  117. package/docs/public/downloads/errors-benchmark.zip +0 -0
  118. package/docs/public/downloads/float-benchmark.zip +0 -0
  119. package/docs/public/downloads/generic-di.zip +0 -0
  120. package/docs/public/downloads/hello.zip +0 -0
  121. package/docs/public/downloads/interceptors.zip +0 -0
  122. package/docs/public/downloads/json-benchmark.zip +0 -0
  123. package/docs/public/downloads/list-benchmark.zip +0 -0
  124. package/docs/public/downloads/map-churn-benchmark.zip +0 -0
  125. package/docs/public/downloads/native-blake3.zip +0 -0
  126. package/docs/public/downloads/native-pytorch.zip +0 -0
  127. package/docs/public/downloads/native-sqlite.zip +0 -0
  128. package/docs/public/downloads/native-zlib.zip +0 -0
  129. package/docs/public/downloads/new-syntax.zip +0 -0
  130. package/docs/public/downloads/oidc-login.zip +0 -0
  131. package/docs/public/downloads/ownership-transfer.zip +0 -0
  132. package/docs/public/downloads/packages-app.zip +0 -0
  133. package/docs/public/downloads/packages-math.zip +0 -0
  134. package/docs/public/downloads/records-benchmark.zip +0 -0
  135. package/docs/public/downloads/strings-benchmark.zip +0 -0
  136. package/docs/public/downloads/tasks-benchmark.zip +0 -0
  137. package/docs/qualification-results.md +66 -0
  138. package/docs/reference.md +24 -0
  139. package/docs/releasing.md +81 -6
  140. package/docs/research/libtorch-native-qualification.md +115 -0
  141. package/docs/research/native-interop-llvm.md +197 -0
  142. package/docs/research/qualification-methods.md +15 -0
  143. package/docs/roadmap.md +1 -0
  144. package/docs/safety-gyms.md +41 -0
  145. package/docs/tooling.md +16 -15
  146. package/docs/web-library-gaps.md +1 -1
  147. package/docs/web.md +4 -0
  148. package/examples/approved-design/.aug-spec/manifest.json +3 -3
  149. package/examples/approved-design/domain/app.aug.md +4 -4
  150. package/examples/approved-design/main.aug.md +2 -2
  151. package/examples/developer-workflow/.aug-spec/manifest.json +3 -3
  152. package/examples/developer-workflow/calculator.aug.md +5 -5
  153. package/examples/developer-workflow/logging/console.aug.md +2 -2
  154. package/examples/developer-workflow/logging/logger.aug.md +2 -2
  155. package/examples/developer-workflow/main.aug.md +2 -2
  156. package/examples/generic-di/.aug-spec/manifest.json +3 -3
  157. package/examples/generic-di/main.aug.md +2 -2
  158. package/examples/generic-di/types.aug.md +3 -3
  159. package/examples/hello/.aug-spec/manifest.json +3 -3
  160. package/examples/hello/app/greeter.aug.md +3 -3
  161. package/examples/hello/logging/console.aug.md +2 -2
  162. package/examples/hello/logging/logger.aug.md +2 -2
  163. package/examples/hello/main.aug.md +2 -2
  164. package/examples/interceptors/.aug-spec/manifest.json +3 -3
  165. package/examples/interceptors/app.aug.md +5 -5
  166. package/examples/interceptors/interceptors.aug.md +2 -2
  167. package/examples/interceptors/logging.aug.md +3 -3
  168. package/examples/interceptors/main.aug.md +2 -2
  169. package/examples/native-blake3/.aug-spec/manifest.json +16 -0
  170. package/examples/native-blake3/.aug-spec/packages/@greenpandastudios/aug-blake3/0.1.1/native.abi.json +29 -0
  171. package/examples/native-blake3/.aug-spec/packages/@greenpandastudios/aug-blake3/0.1.3/api.aug +14 -0
  172. package/examples/native-blake3/.aug-spec/packages/@greenpandastudios/aug-blake3/0.1.3/api.aug.md +34 -0
  173. package/examples/native-blake3/.aug-spec/packages/@greenpandastudios/aug-blake3/0.1.3/contracts.aug +4 -0
  174. package/examples/native-blake3/.aug-spec/packages/@greenpandastudios/aug-blake3/0.1.3/contracts.aug.md +8 -0
  175. package/examples/native-blake3/.aug-spec/packages/@greenpandastudios/aug-blake3/0.1.3/native.abi.json +29 -0
  176. package/examples/native-blake3/AGENTS.md +5 -0
  177. package/examples/native-blake3/aug.lock.json +253 -0
  178. package/examples/native-blake3/hashing.aug +11 -0
  179. package/examples/native-blake3/hashing.aug.md +25 -0
  180. package/examples/native-blake3/main.aug +8 -0
  181. package/examples/native-blake3/main.aug.md +13 -0
  182. package/examples/native-pytorch/.aug-spec/manifest.json +18 -0
  183. package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.1/native.abi.json +142 -0
  184. package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.3/native.abi.json +142 -0
  185. package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.4/api.aug +101 -0
  186. package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.4/api.aug.md +160 -0
  187. package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.4/bindings.aug +3 -0
  188. package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.4/bindings.aug.md +8 -0
  189. package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.4/contracts.aug +6 -0
  190. package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.4/contracts.aug.md +13 -0
  191. package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.4/native.abi.json +142 -0
  192. package/examples/native-pytorch/AGENTS.md +5 -0
  193. package/examples/native-pytorch/aug.lock.json +309 -0
  194. package/examples/native-pytorch/main.aug +8 -0
  195. package/examples/native-pytorch/main.aug.md +13 -0
  196. package/examples/native-pytorch/tensors.aug +23 -0
  197. package/examples/native-pytorch/tensors.aug.md +35 -0
  198. package/examples/native-sqlite/.aug-spec/manifest.json +18 -0
  199. package/examples/native-sqlite/.aug-spec/packages/@greenpandastudios/aug-sqlite/0.1.2/native.abi.json +100 -0
  200. package/examples/native-sqlite/.aug-spec/packages/@greenpandastudios/aug-sqlite/0.1.3/api.aug +48 -0
  201. package/examples/native-sqlite/.aug-spec/packages/@greenpandastudios/aug-sqlite/0.1.3/api.aug.md +91 -0
  202. package/examples/native-sqlite/.aug-spec/packages/@greenpandastudios/aug-sqlite/0.1.3/bindings.aug +3 -0
  203. package/examples/native-sqlite/.aug-spec/packages/@greenpandastudios/aug-sqlite/0.1.3/bindings.aug.md +8 -0
  204. package/examples/native-sqlite/.aug-spec/packages/@greenpandastudios/aug-sqlite/0.1.3/contracts.aug +8 -0
  205. package/examples/native-sqlite/.aug-spec/packages/@greenpandastudios/aug-sqlite/0.1.3/contracts.aug.md +22 -0
  206. package/examples/native-sqlite/.aug-spec/packages/@greenpandastudios/aug-sqlite/0.1.3/native.abi.json +100 -0
  207. package/examples/native-sqlite/AGENTS.md +5 -0
  208. package/examples/native-sqlite/aug.lock.json +236 -0
  209. package/examples/native-sqlite/database.aug +15 -0
  210. package/examples/native-sqlite/database.aug.md +27 -0
  211. package/examples/native-sqlite/main.aug +8 -0
  212. package/examples/native-sqlite/main.aug.md +13 -0
  213. package/examples/native-zlib/.aug-spec/manifest.json +16 -0
  214. package/examples/native-zlib/.aug-spec/packages/@greenpandastudios/aug-zlib/0.1.1/native.abi.json +57 -0
  215. package/examples/native-zlib/.aug-spec/packages/@greenpandastudios/aug-zlib/0.1.3/api.aug +29 -0
  216. package/examples/native-zlib/.aug-spec/packages/@greenpandastudios/aug-zlib/0.1.3/api.aug.md +54 -0
  217. package/examples/native-zlib/.aug-spec/packages/@greenpandastudios/aug-zlib/0.1.3/contracts.aug +4 -0
  218. package/examples/native-zlib/.aug-spec/packages/@greenpandastudios/aug-zlib/0.1.3/contracts.aug.md +8 -0
  219. package/examples/native-zlib/.aug-spec/packages/@greenpandastudios/aug-zlib/0.1.3/native.abi.json +57 -0
  220. package/examples/native-zlib/AGENTS.md +5 -0
  221. package/examples/native-zlib/aug.lock.json +236 -0
  222. package/examples/native-zlib/compression.aug +15 -0
  223. package/examples/native-zlib/compression.aug.md +27 -0
  224. package/examples/native-zlib/main.aug +10 -0
  225. package/examples/native-zlib/main.aug.md +13 -0
  226. package/examples/new-syntax/.aug-spec/manifest.json +3 -3
  227. package/examples/new-syntax/console.aug.md +2 -2
  228. package/examples/new-syntax/greeter.aug.md +3 -3
  229. package/examples/new-syntax/logger.aug.md +2 -2
  230. package/examples/new-syntax/main.aug.md +2 -2
  231. package/examples/oidc-login/aug.lock.json +6 -6
  232. package/examples/ownership-transfer/.aug-spec/manifest.json +3 -3
  233. package/examples/ownership-transfer/main.aug.md +2 -2
  234. package/examples/ownership-transfer/resource.aug.md +2 -2
  235. package/examples/packages/math/aug-package.json +1 -1
  236. package/native/compiler-packs.json +43 -0
  237. package/package.json +3 -2
  238. package/runtime/aug_http.c +48 -21
  239. package/runtime/aug_http_ir.c +30 -0
  240. package/runtime/aug_http_ir.h +18 -0
  241. package/runtime/aug_ir.c +209 -0
  242. package/runtime/aug_ir.h +89 -0
  243. package/runtime/aug_json.c +6 -1
  244. package/runtime/aug_runtime.c +82 -16
  245. package/runtime/aug_runtime.h +16 -2
  246. package/runtime/aug_tasks.c +38 -7
  247. package/runtime/aug_values.c +12 -6
  248. package/scripts/bootstrap-native.mjs +4 -1
  249. package/src/ast.js +1 -1
  250. package/src/checker.js +110 -28
  251. package/src/cli.js +92 -14
  252. package/src/codegen.js +31 -6
  253. package/src/compiler-packs.js +66 -0
  254. package/src/config.js +2 -2
  255. package/src/editor.js +15 -6
  256. package/src/formatter.js +4 -2
  257. package/src/git-http.js +137 -0
  258. package/src/git-packages.js +9 -1
  259. package/src/help.js +10 -2
  260. package/src/ir-types.js +5 -0
  261. package/src/ir-verify.js +277 -0
  262. package/src/ir.js +962 -0
  263. package/src/llvm-debug.js +101 -0
  264. package/src/llvm-native.js +152 -0
  265. package/src/llvm-platform.js +20 -0
  266. package/src/llvm.js +781 -0
  267. package/src/native-artifacts.js +207 -0
  268. package/src/native-bindings.js +189 -0
  269. package/src/native-contracts.js +295 -0
  270. package/src/native-declarations.js +68 -0
  271. package/src/native-facts.js +63 -0
  272. package/src/package-locking.js +43 -0
  273. package/src/package-manager.js +23 -8
  274. package/src/parser.js +20 -2
  275. package/src/project.js +2 -2
  276. package/src/runtime-abi.js +23 -0
  277. package/src/runtime-adapters.js +18 -0
  278. package/src/schemas.js +24 -17
  279. package/src/semantic.js +8 -3
  280. package/src/snippets.js +1 -0
  281. package/src/spec.js +49 -8
  282. /package/examples/approved-design/.aug-spec/august/{0.20.1 → 0.21.0}/io/contracts.aug +0 -0
  283. /package/examples/approved-design/.aug-spec/august/{0.20.1 → 0.21.0}/io/contracts.aug.md +0 -0
  284. /package/examples/developer-workflow/.aug-spec/august/{0.20.1 → 0.21.0}/io/contracts.aug +0 -0
  285. /package/examples/developer-workflow/.aug-spec/august/{0.20.1 → 0.21.0}/io/contracts.aug.md +0 -0
  286. /package/examples/generic-di/.aug-spec/august/{0.20.1 → 0.21.0}/io/contracts.aug +0 -0
  287. /package/examples/generic-di/.aug-spec/august/{0.20.1 → 0.21.0}/io/contracts.aug.md +0 -0
  288. /package/examples/hello/.aug-spec/august/{0.20.1 → 0.21.0}/io/contracts.aug +0 -0
  289. /package/examples/hello/.aug-spec/august/{0.20.1 → 0.21.0}/io/contracts.aug.md +0 -0
  290. /package/examples/interceptors/.aug-spec/august/{0.20.1 → 0.21.0}/io/contracts.aug +0 -0
  291. /package/examples/interceptors/.aug-spec/august/{0.20.1 → 0.21.0}/io/contracts.aug.md +0 -0
  292. /package/examples/new-syntax/.aug-spec/august/{0.20.1 → 0.21.0}/io/contracts.aug +0 -0
  293. /package/examples/new-syntax/.aug-spec/august/{0.20.1 → 0.21.0}/io/contracts.aug.md +0 -0
  294. /package/examples/ownership-transfer/.aug-spec/august/{0.20.1 → 0.21.0}/io/contracts.aug +0 -0
  295. /package/examples/ownership-transfer/.aug-spec/august/{0.20.1 → 0.21.0}/io/contracts.aug.md +0 -0
@@ -8,7 +8,7 @@
8
8
  <cc:Work>
9
9
  <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
10
10
  <dc:title>Execution time by workload</dc:title>
11
- <dc:description>Median wall time including process startup, 15 samples per implementation. Shorter bars are faster. Each panel has its own linear scale.</dc:description>
11
+ <dc:description>Median wall time including process startup, 60 samples per implementation. Shorter bars are faster. Each panel has its own linear scale.</dc:description>
12
12
  <dc:format>image/svg+xml</dc:format>
13
13
  <dc:creator>
14
14
  <cc:Agent>
@@ -33,8 +33,8 @@ z
33
33
  <g id="axes_1">
34
34
  <g id="patch_2">
35
35
  <path d="M 44.993365 138.475697
36
- L 428.99976 138.475697
37
- L 428.99976 20.118365
36
+ L 422.340516 138.475697
37
+ L 422.340516 20.118365
38
38
  L 44.993365 20.118365
39
39
  z
40
40
  " style="fill: #ffffff"/>
@@ -44,7 +44,7 @@ z
44
44
  <g id="line2d_1">
45
45
  <path d="M 44.993365 138.475697
46
46
  L 44.993365 20.118365
47
- " clip-path="url(#pf8f6cfcaad)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
47
+ " clip-path="url(#pf401f257af)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
48
48
  </g>
49
49
  <g id="line2d_2">
50
50
  <defs>
@@ -88,18 +88,18 @@ z
88
88
  </g>
89
89
  <g id="xtick_2">
90
90
  <g id="line2d_3">
91
- <path d="M 126.189457 138.475697
92
- L 126.189457 20.118365
93
- " clip-path="url(#pf8f6cfcaad)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
91
+ <path d="M 123.807757 138.475697
92
+ L 123.807757 20.118365
93
+ " clip-path="url(#pf401f257af)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
94
94
  </g>
95
95
  <g id="line2d_4">
96
96
  <g>
97
- <use xlink:href="#m9cd3e2f3f9" x="126.189457" y="138.475697" style="fill: #52606d; stroke: #52606d; stroke-width: 0.8"/>
97
+ <use xlink:href="#m9cd3e2f3f9" x="123.807757" y="138.475697" style="fill: #52606d; stroke: #52606d; stroke-width: 0.8"/>
98
98
  </g>
99
99
  </g>
100
100
  <g id="text_2">
101
101
  <!-- 5 -->
102
- <g style="fill: #52606d" transform="translate(122.690082 153.833979) scale(0.11 -0.11)">
102
+ <g style="fill: #52606d" transform="translate(120.308382 153.833979) scale(0.11 -0.11)">
103
103
  <defs>
104
104
  <path id="DejaVuSans-35" d="M 691 4666
105
105
  L 3169 4666
@@ -133,18 +133,18 @@ z
133
133
  </g>
134
134
  <g id="xtick_3">
135
135
  <g id="line2d_5">
136
- <path d="M 207.385549 138.475697
137
- L 207.385549 20.118365
138
- " clip-path="url(#pf8f6cfcaad)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
136
+ <path d="M 202.622149 138.475697
137
+ L 202.622149 20.118365
138
+ " clip-path="url(#pf401f257af)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
139
139
  </g>
140
140
  <g id="line2d_6">
141
141
  <g>
142
- <use xlink:href="#m9cd3e2f3f9" x="207.385549" y="138.475697" style="fill: #52606d; stroke: #52606d; stroke-width: 0.8"/>
142
+ <use xlink:href="#m9cd3e2f3f9" x="202.622149" y="138.475697" style="fill: #52606d; stroke: #52606d; stroke-width: 0.8"/>
143
143
  </g>
144
144
  </g>
145
145
  <g id="text_3">
146
146
  <!-- 10 -->
147
- <g style="fill: #52606d" transform="translate(200.386799 153.833979) scale(0.11 -0.11)">
147
+ <g style="fill: #52606d" transform="translate(195.623399 153.833979) scale(0.11 -0.11)">
148
148
  <defs>
149
149
  <path id="DejaVuSans-31" d="M 794 531
150
150
  L 1825 531
@@ -168,18 +168,18 @@ z
168
168
  </g>
169
169
  <g id="xtick_4">
170
170
  <g id="line2d_7">
171
- <path d="M 288.581641 138.475697
172
- L 288.581641 20.118365
173
- " clip-path="url(#pf8f6cfcaad)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
171
+ <path d="M 281.436541 138.475697
172
+ L 281.436541 20.118365
173
+ " clip-path="url(#pf401f257af)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
174
174
  </g>
175
175
  <g id="line2d_8">
176
176
  <g>
177
- <use xlink:href="#m9cd3e2f3f9" x="288.581641" y="138.475697" style="fill: #52606d; stroke: #52606d; stroke-width: 0.8"/>
177
+ <use xlink:href="#m9cd3e2f3f9" x="281.436541" y="138.475697" style="fill: #52606d; stroke: #52606d; stroke-width: 0.8"/>
178
178
  </g>
179
179
  </g>
180
180
  <g id="text_4">
181
181
  <!-- 15 -->
182
- <g style="fill: #52606d" transform="translate(281.582891 153.833979) scale(0.11 -0.11)">
182
+ <g style="fill: #52606d" transform="translate(274.437791 153.833979) scale(0.11 -0.11)">
183
183
  <use xlink:href="#DejaVuSans-31"/>
184
184
  <use xlink:href="#DejaVuSans-35" transform="translate(63.623047 0)"/>
185
185
  </g>
@@ -187,18 +187,18 @@ L 288.581641 20.118365
187
187
  </g>
188
188
  <g id="xtick_5">
189
189
  <g id="line2d_9">
190
- <path d="M 369.777733 138.475697
191
- L 369.777733 20.118365
192
- " clip-path="url(#pf8f6cfcaad)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
190
+ <path d="M 360.250933 138.475697
191
+ L 360.250933 20.118365
192
+ " clip-path="url(#pf401f257af)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
193
193
  </g>
194
194
  <g id="line2d_10">
195
195
  <g>
196
- <use xlink:href="#m9cd3e2f3f9" x="369.777733" y="138.475697" style="fill: #52606d; stroke: #52606d; stroke-width: 0.8"/>
196
+ <use xlink:href="#m9cd3e2f3f9" x="360.250933" y="138.475697" style="fill: #52606d; stroke: #52606d; stroke-width: 0.8"/>
197
197
  </g>
198
198
  </g>
199
199
  <g id="text_5">
200
200
  <!-- 20 -->
201
- <g style="fill: #52606d" transform="translate(362.778983 153.833979) scale(0.11 -0.11)">
201
+ <g style="fill: #52606d" transform="translate(353.252183 153.833979) scale(0.11 -0.11)">
202
202
  <defs>
203
203
  <path id="DejaVuSans-32" d="M 1228 531
204
204
  L 3431 531
@@ -232,7 +232,7 @@ z
232
232
  </g>
233
233
  <g id="text_6">
234
234
  <!-- Milliseconds · lower is faster -->
235
- <g style="fill: #263445" transform="translate(166.559062 167.720072) scale(0.1 -0.1)">
235
+ <g style="fill: #263445" transform="translate(163.229441 167.720072) scale(0.1 -0.1)">
236
236
  <defs>
237
237
  <path id="DejaVuSans-4d" d="M 628 4666
238
238
  L 1569 4666
@@ -787,44 +787,44 @@ z
787
787
  </g>
788
788
  <g id="patch_3">
789
789
  <path d="M 44.993365 25.498244
790
- L 68.78179 25.498244
791
- L 68.78179 42.930253
790
+ L 67.500123 25.498244
791
+ L 67.500123 42.930253
792
792
  L 44.993365 42.930253
793
793
  z
794
- " clip-path="url(#pf8f6cfcaad)" style="fill: #087e8b"/>
794
+ " clip-path="url(#pf401f257af)" style="fill: #087e8b"/>
795
795
  </g>
796
796
  <g id="patch_4">
797
797
  <path d="M 44.993365 55.553432
798
- L 65.86685 55.553432
799
- L 65.86685 72.985442
798
+ L 63.766953 55.553432
799
+ L 63.766953 72.985442
800
800
  L 44.993365 72.985442
801
801
  z
802
- " clip-path="url(#pf8f6cfcaad)" style="fill: #6c7789"/>
802
+ " clip-path="url(#pf401f257af)" style="fill: #6c7789"/>
803
803
  </g>
804
804
  <g id="patch_5">
805
805
  <path d="M 44.993365 85.608621
806
- L 354.675942 85.608621
807
- L 354.675942 103.04063
806
+ L 349.305584 85.608621
807
+ L 349.305584 103.04063
808
808
  L 44.993365 103.04063
809
809
  z
810
- " clip-path="url(#pf8f6cfcaad)" style="fill: #587f25"/>
810
+ " clip-path="url(#pf401f257af)" style="fill: #587f25"/>
811
811
  </g>
812
812
  <g id="patch_6">
813
813
  <path d="M 44.993365 115.663809
814
- L 181.781043 115.663809
815
- L 181.781043 133.095819
814
+ L 300.089614 115.663809
815
+ L 300.089614 133.095819
816
816
  L 44.993365 133.095819
817
817
  z
818
- " clip-path="url(#pf8f6cfcaad)" style="fill: #9265b8"/>
818
+ " clip-path="url(#pf401f257af)" style="fill: #9265b8"/>
819
819
  </g>
820
820
  <g id="patch_7">
821
821
  <path d="M 44.993365 138.475697
822
- L 428.99976 138.475697
822
+ L 422.340516 138.475697
823
823
  " style="fill: none; stroke: #c4cbd2; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/>
824
824
  </g>
825
825
  <g id="text_11">
826
- <!-- 1.46 -->
827
- <g style="fill: #263445" transform="translate(76.523854 37.249561) scale(0.11 -0.11)">
826
+ <!-- 1.43 -->
827
+ <g style="fill: #263445" transform="translate(75.107928 37.249561) scale(0.11 -0.11)">
828
828
  <defs>
829
829
  <path id="DejaVuSans-Bold-31" d="M 750 831
830
830
  L 1813 831
@@ -866,46 +866,48 @@ L 288 1881
866
866
  L 2156 4666
867
867
  z
868
868
  " transform="scale(0.015625)"/>
869
- <path id="DejaVuSans-Bold-36" d="M 2316 2303
870
- Q 2000 2303 1842 2098
871
- Q 1684 1894 1684 1484
872
- Q 1684 1075 1842 870
873
- Q 2000 666 2316 666
874
- Q 2634 666 2792 870
875
- Q 2950 1075 2950 1484
876
- Q 2950 1894 2792 2098
877
- Q 2634 2303 2316 2303
878
- z
879
- M 3803 4544
880
- L 3803 3681
881
- Q 3506 3822 3243 3889
882
- Q 2981 3956 2731 3956
883
- Q 2194 3956 1894 3657
884
- Q 1594 3359 1544 2772
885
- Q 1750 2925 1990 3001
886
- Q 2231 3078 2516 3078
887
- Q 3231 3078 3670 2659
888
- Q 4109 2241 4109 1563
889
- Q 4109 813 3618 361
890
- Q 3128 -91 2303 -91
891
- Q 1394 -91 895 523
892
- Q 397 1138 397 2266
893
- Q 397 3422 980 4083
894
- Q 1563 4744 2578 4744
895
- Q 2900 4744 3203 4694
896
- Q 3506 4644 3803 4544
869
+ <path id="DejaVuSans-Bold-33" d="M 2981 2516
870
+ Q 3453 2394 3698 2092
871
+ Q 3944 1791 3944 1325
872
+ Q 3944 631 3412 270
873
+ Q 2881 -91 1863 -91
874
+ Q 1503 -91 1142 -33
875
+ Q 781 25 428 141
876
+ L 428 1069
877
+ Q 766 900 1098 814
878
+ Q 1431 728 1753 728
879
+ Q 2231 728 2486 893
880
+ Q 2741 1059 2741 1369
881
+ Q 2741 1688 2480 1852
882
+ Q 2219 2016 1709 2016
883
+ L 1228 2016
884
+ L 1228 2791
885
+ L 1734 2791
886
+ Q 2188 2791 2409 2933
887
+ Q 2631 3075 2631 3366
888
+ Q 2631 3634 2415 3781
889
+ Q 2200 3928 1806 3928
890
+ Q 1516 3928 1219 3862
891
+ Q 922 3797 628 3669
892
+ L 628 4550
893
+ Q 984 4650 1334 4700
894
+ Q 1684 4750 2022 4750
895
+ Q 2931 4750 3382 4451
896
+ Q 3834 4153 3834 3553
897
+ Q 3834 3144 3618 2883
898
+ Q 3403 2622 2981 2516
897
899
  z
898
900
  " transform="scale(0.015625)"/>
899
901
  </defs>
900
902
  <use xlink:href="#DejaVuSans-Bold-31"/>
901
903
  <use xlink:href="#DejaVuSans-Bold-2e" transform="translate(69.580078 0)"/>
902
904
  <use xlink:href="#DejaVuSans-Bold-34" transform="translate(107.568359 0)"/>
903
- <use xlink:href="#DejaVuSans-Bold-36" transform="translate(177.148438 0)"/>
905
+ <use xlink:href="#DejaVuSans-Bold-33" transform="translate(177.148438 0)"/>
904
906
  </g>
905
907
  </g>
906
908
  <g id="text_12">
907
- <!-- 1.29 -->
908
- <g style="fill: #263445" transform="translate(73.608915 67.304749) scale(0.11 -0.11)">
909
+ <!-- 1.19 -->
910
+ <g style="fill: #263445" transform="translate(71.374759 67.304749) scale(0.11 -0.11)">
909
911
  <defs>
910
912
  <path id="DejaVuSans-2e" d="M 684 794
911
913
  L 1344 794
@@ -947,36 +949,88 @@ z
947
949
  </defs>
948
950
  <use xlink:href="#DejaVuSans-31"/>
949
951
  <use xlink:href="#DejaVuSans-2e" transform="translate(63.623047 0)"/>
950
- <use xlink:href="#DejaVuSans-32" transform="translate(95.410156 0)"/>
952
+ <use xlink:href="#DejaVuSans-31" transform="translate(95.410156 0)"/>
951
953
  <use xlink:href="#DejaVuSans-39" transform="translate(159.033203 0)"/>
952
954
  </g>
953
955
  </g>
954
956
  <g id="text_13">
955
- <!-- 19.07 -->
956
- <g style="fill: #263445" transform="translate(362.418006 97.359938) scale(0.11 -0.11)">
957
+ <!-- 19.31 -->
958
+ <g style="fill: #263445" transform="translate(356.913389 97.359938) scale(0.11 -0.11)">
957
959
  <defs>
958
- <path id="DejaVuSans-37" d="M 525 4666
959
- L 3525 4666
960
- L 3525 4397
961
- L 1831 0
962
- L 1172 0
963
- L 2766 4134
964
- L 525 4134
965
- L 525 4666
960
+ <path id="DejaVuSans-33" d="M 2597 2516
961
+ Q 3050 2419 3304 2112
962
+ Q 3559 1806 3559 1356
963
+ Q 3559 666 3084 287
964
+ Q 2609 -91 1734 -91
965
+ Q 1441 -91 1130 -33
966
+ Q 819 25 488 141
967
+ L 488 750
968
+ Q 750 597 1062 519
969
+ Q 1375 441 1716 441
970
+ Q 2309 441 2620 675
971
+ Q 2931 909 2931 1356
972
+ Q 2931 1769 2642 2001
973
+ Q 2353 2234 1838 2234
974
+ L 1294 2234
975
+ L 1294 2753
976
+ L 1863 2753
977
+ Q 2328 2753 2575 2939
978
+ Q 2822 3125 2822 3475
979
+ Q 2822 3834 2567 4026
980
+ Q 2313 4219 1838 4219
981
+ Q 1578 4219 1281 4162
982
+ Q 984 4106 628 3988
983
+ L 628 4550
984
+ Q 988 4650 1302 4700
985
+ Q 1616 4750 1894 4750
986
+ Q 2613 4750 3031 4423
987
+ Q 3450 4097 3450 3541
988
+ Q 3450 3153 3228 2886
989
+ Q 3006 2619 2597 2516
966
990
  z
967
991
  " transform="scale(0.015625)"/>
968
992
  </defs>
969
993
  <use xlink:href="#DejaVuSans-31"/>
970
994
  <use xlink:href="#DejaVuSans-39" transform="translate(63.623047 0)"/>
971
995
  <use xlink:href="#DejaVuSans-2e" transform="translate(127.246094 0)"/>
972
- <use xlink:href="#DejaVuSans-30" transform="translate(159.033203 0)"/>
973
- <use xlink:href="#DejaVuSans-37" transform="translate(222.65625 0)"/>
996
+ <use xlink:href="#DejaVuSans-33" transform="translate(159.033203 0)"/>
997
+ <use xlink:href="#DejaVuSans-31" transform="translate(222.65625 0)"/>
974
998
  </g>
975
999
  </g>
976
1000
  <g id="text_14">
977
- <!-- 8.42 -->
978
- <g style="fill: #263445" transform="translate(189.523108 127.415127) scale(0.11 -0.11)">
1001
+ <!-- 16.18 -->
1002
+ <g style="fill: #263445" transform="translate(307.697419 127.415127) scale(0.11 -0.11)">
979
1003
  <defs>
1004
+ <path id="DejaVuSans-36" d="M 2113 2584
1005
+ Q 1688 2584 1439 2293
1006
+ Q 1191 2003 1191 1497
1007
+ Q 1191 994 1439 701
1008
+ Q 1688 409 2113 409
1009
+ Q 2538 409 2786 701
1010
+ Q 3034 994 3034 1497
1011
+ Q 3034 2003 2786 2293
1012
+ Q 2538 2584 2113 2584
1013
+ z
1014
+ M 3366 4563
1015
+ L 3366 3988
1016
+ Q 3128 4100 2886 4159
1017
+ Q 2644 4219 2406 4219
1018
+ Q 1781 4219 1451 3797
1019
+ Q 1122 3375 1075 2522
1020
+ Q 1259 2794 1537 2939
1021
+ Q 1816 3084 2150 3084
1022
+ Q 2853 3084 3261 2657
1023
+ Q 3669 2231 3669 1497
1024
+ Q 3669 778 3244 343
1025
+ Q 2819 -91 2113 -91
1026
+ Q 1303 -91 875 529
1027
+ Q 447 1150 447 2328
1028
+ Q 447 3434 972 4092
1029
+ Q 1497 4750 2381 4750
1030
+ Q 2619 4750 2861 4703
1031
+ Q 3103 4656 3366 4563
1032
+ z
1033
+ " transform="scale(0.015625)"/>
980
1034
  <path id="DejaVuSans-38" d="M 2034 2216
981
1035
  Q 1584 2216 1326 1975
982
1036
  Q 1069 1734 1069 1313
@@ -1015,31 +1069,13 @@ Q 2441 4250 2034 4250
1015
1069
  Q 1625 4250 1398 4047
1016
1070
  Q 1172 3844 1172 3481
1017
1071
  z
1018
- " transform="scale(0.015625)"/>
1019
- <path id="DejaVuSans-34" d="M 2419 4116
1020
- L 825 1625
1021
- L 2419 1625
1022
- L 2419 4116
1023
- z
1024
- M 2253 4666
1025
- L 3047 4666
1026
- L 3047 1625
1027
- L 3713 1625
1028
- L 3713 1100
1029
- L 3047 1100
1030
- L 3047 0
1031
- L 2419 0
1032
- L 2419 1100
1033
- L 313 1100
1034
- L 313 1709
1035
- L 2253 4666
1036
- z
1037
1072
  " transform="scale(0.015625)"/>
1038
1073
  </defs>
1039
- <use xlink:href="#DejaVuSans-38"/>
1040
- <use xlink:href="#DejaVuSans-2e" transform="translate(63.623047 0)"/>
1041
- <use xlink:href="#DejaVuSans-34" transform="translate(95.410156 0)"/>
1042
- <use xlink:href="#DejaVuSans-32" transform="translate(159.033203 0)"/>
1074
+ <use xlink:href="#DejaVuSans-31"/>
1075
+ <use xlink:href="#DejaVuSans-36" transform="translate(63.623047 0)"/>
1076
+ <use xlink:href="#DejaVuSans-2e" transform="translate(127.246094 0)"/>
1077
+ <use xlink:href="#DejaVuSans-31" transform="translate(159.033203 0)"/>
1078
+ <use xlink:href="#DejaVuSans-38" transform="translate(222.65625 0)"/>
1043
1079
  </g>
1044
1080
  </g>
1045
1081
  <g id="text_15">
@@ -1211,8 +1247,8 @@ z
1211
1247
  <g id="axes_2">
1212
1248
  <g id="patch_8">
1213
1249
  <path d="M 44.993365 311.275698
1214
- L 428.99976 311.275698
1215
- L 428.99976 192.918365
1250
+ L 422.340516 311.275698
1251
+ L 422.340516 192.918365
1216
1252
  L 44.993365 192.918365
1217
1253
  z
1218
1254
  " style="fill: #ffffff"/>
@@ -1222,7 +1258,7 @@ z
1222
1258
  <g id="line2d_15">
1223
1259
  <path d="M 44.993365 311.275698
1224
1260
  L 44.993365 192.918365
1225
- " clip-path="url(#p6cacf997e3)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
1261
+ " clip-path="url(#pe9adc960e1)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
1226
1262
  </g>
1227
1263
  <g id="line2d_16">
1228
1264
  <g>
@@ -1238,18 +1274,18 @@ L 44.993365 192.918365
1238
1274
  </g>
1239
1275
  <g id="xtick_7">
1240
1276
  <g id="line2d_17">
1241
- <path d="M 124.406773 311.275698
1242
- L 124.406773 192.918365
1243
- " clip-path="url(#p6cacf997e3)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
1277
+ <path d="M 105.225067 311.275698
1278
+ L 105.225067 192.918365
1279
+ " clip-path="url(#pe9adc960e1)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
1244
1280
  </g>
1245
1281
  <g id="line2d_18">
1246
1282
  <g>
1247
- <use xlink:href="#m9cd3e2f3f9" x="124.406773" y="311.275698" style="fill: #52606d; stroke: #52606d; stroke-width: 0.8"/>
1283
+ <use xlink:href="#m9cd3e2f3f9" x="105.225067" y="311.275698" style="fill: #52606d; stroke: #52606d; stroke-width: 0.8"/>
1248
1284
  </g>
1249
1285
  </g>
1250
1286
  <g id="text_17">
1251
1287
  <!-- 50 -->
1252
- <g style="fill: #52606d" transform="translate(117.408023 326.633979) scale(0.11 -0.11)">
1288
+ <g style="fill: #52606d" transform="translate(98.226317 326.633979) scale(0.11 -0.11)">
1253
1289
  <use xlink:href="#DejaVuSans-35"/>
1254
1290
  <use xlink:href="#DejaVuSans-30" transform="translate(63.623047 0)"/>
1255
1291
  </g>
@@ -1257,18 +1293,18 @@ L 124.406773 192.918365
1257
1293
  </g>
1258
1294
  <g id="xtick_8">
1259
1295
  <g id="line2d_19">
1260
- <path d="M 203.820181 311.275698
1261
- L 203.820181 192.918365
1262
- " clip-path="url(#p6cacf997e3)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
1296
+ <path d="M 165.45677 311.275698
1297
+ L 165.45677 192.918365
1298
+ " clip-path="url(#pe9adc960e1)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
1263
1299
  </g>
1264
1300
  <g id="line2d_20">
1265
1301
  <g>
1266
- <use xlink:href="#m9cd3e2f3f9" x="203.820181" y="311.275698" style="fill: #52606d; stroke: #52606d; stroke-width: 0.8"/>
1302
+ <use xlink:href="#m9cd3e2f3f9" x="165.45677" y="311.275698" style="fill: #52606d; stroke: #52606d; stroke-width: 0.8"/>
1267
1303
  </g>
1268
1304
  </g>
1269
1305
  <g id="text_18">
1270
1306
  <!-- 100 -->
1271
- <g style="fill: #52606d" transform="translate(193.322056 326.633979) scale(0.11 -0.11)">
1307
+ <g style="fill: #52606d" transform="translate(154.958645 326.633979) scale(0.11 -0.11)">
1272
1308
  <use xlink:href="#DejaVuSans-31"/>
1273
1309
  <use xlink:href="#DejaVuSans-30" transform="translate(63.623047 0)"/>
1274
1310
  <use xlink:href="#DejaVuSans-30" transform="translate(127.246094 0)"/>
@@ -1277,18 +1313,18 @@ L 203.820181 192.918365
1277
1313
  </g>
1278
1314
  <g id="xtick_9">
1279
1315
  <g id="line2d_21">
1280
- <path d="M 283.233589 311.275698
1281
- L 283.233589 192.918365
1282
- " clip-path="url(#p6cacf997e3)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
1316
+ <path d="M 225.688472 311.275698
1317
+ L 225.688472 192.918365
1318
+ " clip-path="url(#pe9adc960e1)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
1283
1319
  </g>
1284
1320
  <g id="line2d_22">
1285
1321
  <g>
1286
- <use xlink:href="#m9cd3e2f3f9" x="283.233589" y="311.275698" style="fill: #52606d; stroke: #52606d; stroke-width: 0.8"/>
1322
+ <use xlink:href="#m9cd3e2f3f9" x="225.688472" y="311.275698" style="fill: #52606d; stroke: #52606d; stroke-width: 0.8"/>
1287
1323
  </g>
1288
1324
  </g>
1289
1325
  <g id="text_19">
1290
1326
  <!-- 150 -->
1291
- <g style="fill: #52606d" transform="translate(272.735464 326.633979) scale(0.11 -0.11)">
1327
+ <g style="fill: #52606d" transform="translate(215.190347 326.633979) scale(0.11 -0.11)">
1292
1328
  <use xlink:href="#DejaVuSans-31"/>
1293
1329
  <use xlink:href="#DejaVuSans-35" transform="translate(63.623047 0)"/>
1294
1330
  <use xlink:href="#DejaVuSans-30" transform="translate(127.246094 0)"/>
@@ -1297,27 +1333,67 @@ L 283.233589 192.918365
1297
1333
  </g>
1298
1334
  <g id="xtick_10">
1299
1335
  <g id="line2d_23">
1300
- <path d="M 362.646997 311.275698
1301
- L 362.646997 192.918365
1302
- " clip-path="url(#p6cacf997e3)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
1336
+ <path d="M 285.920175 311.275698
1337
+ L 285.920175 192.918365
1338
+ " clip-path="url(#pe9adc960e1)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
1303
1339
  </g>
1304
1340
  <g id="line2d_24">
1305
1341
  <g>
1306
- <use xlink:href="#m9cd3e2f3f9" x="362.646997" y="311.275698" style="fill: #52606d; stroke: #52606d; stroke-width: 0.8"/>
1342
+ <use xlink:href="#m9cd3e2f3f9" x="285.920175" y="311.275698" style="fill: #52606d; stroke: #52606d; stroke-width: 0.8"/>
1307
1343
  </g>
1308
1344
  </g>
1309
1345
  <g id="text_20">
1310
1346
  <!-- 200 -->
1311
- <g style="fill: #52606d" transform="translate(352.148872 326.633979) scale(0.11 -0.11)">
1347
+ <g style="fill: #52606d" transform="translate(275.42205 326.633979) scale(0.11 -0.11)">
1348
+ <use xlink:href="#DejaVuSans-32"/>
1349
+ <use xlink:href="#DejaVuSans-30" transform="translate(63.623047 0)"/>
1350
+ <use xlink:href="#DejaVuSans-30" transform="translate(127.246094 0)"/>
1351
+ </g>
1352
+ </g>
1353
+ </g>
1354
+ <g id="xtick_11">
1355
+ <g id="line2d_25">
1356
+ <path d="M 346.151877 311.275698
1357
+ L 346.151877 192.918365
1358
+ " clip-path="url(#pe9adc960e1)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
1359
+ </g>
1360
+ <g id="line2d_26">
1361
+ <g>
1362
+ <use xlink:href="#m9cd3e2f3f9" x="346.151877" y="311.275698" style="fill: #52606d; stroke: #52606d; stroke-width: 0.8"/>
1363
+ </g>
1364
+ </g>
1365
+ <g id="text_21">
1366
+ <!-- 250 -->
1367
+ <g style="fill: #52606d" transform="translate(335.653752 326.633979) scale(0.11 -0.11)">
1312
1368
  <use xlink:href="#DejaVuSans-32"/>
1369
+ <use xlink:href="#DejaVuSans-35" transform="translate(63.623047 0)"/>
1370
+ <use xlink:href="#DejaVuSans-30" transform="translate(127.246094 0)"/>
1371
+ </g>
1372
+ </g>
1373
+ </g>
1374
+ <g id="xtick_12">
1375
+ <g id="line2d_27">
1376
+ <path d="M 406.38358 311.275698
1377
+ L 406.38358 192.918365
1378
+ " clip-path="url(#pe9adc960e1)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
1379
+ </g>
1380
+ <g id="line2d_28">
1381
+ <g>
1382
+ <use xlink:href="#m9cd3e2f3f9" x="406.38358" y="311.275698" style="fill: #52606d; stroke: #52606d; stroke-width: 0.8"/>
1383
+ </g>
1384
+ </g>
1385
+ <g id="text_22">
1386
+ <!-- 300 -->
1387
+ <g style="fill: #52606d" transform="translate(395.885455 326.633979) scale(0.11 -0.11)">
1388
+ <use xlink:href="#DejaVuSans-33"/>
1313
1389
  <use xlink:href="#DejaVuSans-30" transform="translate(63.623047 0)"/>
1314
1390
  <use xlink:href="#DejaVuSans-30" transform="translate(127.246094 0)"/>
1315
1391
  </g>
1316
1392
  </g>
1317
1393
  </g>
1318
- <g id="text_21">
1394
+ <g id="text_23">
1319
1395
  <!-- Milliseconds · lower is faster -->
1320
- <g style="fill: #263445" transform="translate(166.559062 340.520073) scale(0.1 -0.1)">
1396
+ <g style="fill: #263445" transform="translate(163.229441 340.520073) scale(0.1 -0.1)">
1321
1397
  <use xlink:href="#DejaVuSans-4d"/>
1322
1398
  <use xlink:href="#DejaVuSans-69" transform="translate(86.279297 0)"/>
1323
1399
  <use xlink:href="#DejaVuSans-6c" transform="translate(114.0625 0)"/>
@@ -1353,8 +1429,8 @@ L 362.646997 192.918365
1353
1429
  </g>
1354
1430
  <g id="matplotlib.axis_4">
1355
1431
  <g id="ytick_5">
1356
- <g id="line2d_25"/>
1357
- <g id="text_22">
1432
+ <g id="line2d_29"/>
1433
+ <g id="text_24">
1358
1434
  <!-- August -->
1359
1435
  <g style="fill: #263445" transform="translate(3.00024 211.193389) scale(0.11 -0.11)">
1360
1436
  <use xlink:href="#DejaVuSans-41"/>
@@ -1367,8 +1443,8 @@ L 362.646997 192.918365
1367
1443
  </g>
1368
1444
  </g>
1369
1445
  <g id="ytick_6">
1370
- <g id="line2d_26"/>
1371
- <g id="text_23">
1446
+ <g id="line2d_30"/>
1447
+ <g id="text_25">
1372
1448
  <!-- C -->
1373
1449
  <g style="fill: #263445" transform="translate(33.812271 241.248578) scale(0.11 -0.11)">
1374
1450
  <use xlink:href="#DejaVuSans-43"/>
@@ -1376,8 +1452,8 @@ L 362.646997 192.918365
1376
1452
  </g>
1377
1453
  </g>
1378
1454
  <g id="ytick_7">
1379
- <g id="line2d_27"/>
1380
- <g id="text_24">
1455
+ <g id="line2d_31"/>
1456
+ <g id="text_26">
1381
1457
  <!-- Node -->
1382
1458
  <g style="fill: #263445" transform="translate(12.781646 271.303766) scale(0.11 -0.11)">
1383
1459
  <use xlink:href="#DejaVuSans-4e"/>
@@ -1388,8 +1464,8 @@ L 362.646997 192.918365
1388
1464
  </g>
1389
1465
  </g>
1390
1466
  <g id="ytick_8">
1391
- <g id="line2d_28"/>
1392
- <g id="text_25">
1467
+ <g id="line2d_32"/>
1468
+ <g id="text_27">
1393
1469
  <!-- Python -->
1394
1470
  <g style="fill: #263445" transform="translate(3.364615 301.358955) scale(0.11 -0.11)">
1395
1471
  <use xlink:href="#DejaVuSans-50"/>
@@ -1404,44 +1480,44 @@ L 362.646997 192.918365
1404
1480
  </g>
1405
1481
  <g id="patch_9">
1406
1482
  <path d="M 44.993365 198.298244
1407
- L 56.492295 198.298244
1408
- L 56.492295 215.730253
1483
+ L 54.319391 198.298244
1484
+ L 54.319391 215.730253
1409
1485
  L 44.993365 215.730253
1410
1486
  z
1411
- " clip-path="url(#p6cacf997e3)" style="fill: #087e8b"/>
1487
+ " clip-path="url(#pe9adc960e1)" style="fill: #087e8b"/>
1412
1488
  </g>
1413
1489
  <g id="patch_10">
1414
1490
  <path d="M 44.993365 228.353432
1415
- L 57.962435 228.353432
1416
- L 57.962435 245.785442
1491
+ L 55.08732 228.353432
1492
+ L 55.08732 245.785442
1417
1493
  L 44.993365 245.785442
1418
1494
  z
1419
- " clip-path="url(#p6cacf997e3)" style="fill: #6c7789"/>
1495
+ " clip-path="url(#pe9adc960e1)" style="fill: #6c7789"/>
1420
1496
  </g>
1421
1497
  <g id="patch_11">
1422
1498
  <path d="M 44.993365 258.408621
1423
- L 92.991424 258.408621
1424
- L 92.991424 275.84063
1499
+ L 81.901796 258.408621
1500
+ L 81.901796 275.84063
1425
1501
  L 44.993365 275.84063
1426
1502
  z
1427
- " clip-path="url(#p6cacf997e3)" style="fill: #587f25"/>
1503
+ " clip-path="url(#pe9adc960e1)" style="fill: #587f25"/>
1428
1504
  </g>
1429
1505
  <g id="patch_12">
1430
1506
  <path d="M 44.993365 288.463809
1431
- L 354.675942 288.463809
1432
- L 354.675942 305.895819
1507
+ L 349.305584 288.463809
1508
+ L 349.305584 305.895819
1433
1509
  L 44.993365 305.895819
1434
1510
  z
1435
- " clip-path="url(#p6cacf997e3)" style="fill: #9265b8"/>
1511
+ " clip-path="url(#pe9adc960e1)" style="fill: #9265b8"/>
1436
1512
  </g>
1437
1513
  <g id="patch_13">
1438
1514
  <path d="M 44.993365 311.275698
1439
- L 428.99976 311.275698
1515
+ L 422.340516 311.275698
1440
1516
  " style="fill: none; stroke: #c4cbd2; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/>
1441
1517
  </g>
1442
- <g id="text_26">
1443
- <!-- 7.24 -->
1444
- <g style="fill: #263445" transform="translate(64.234359 210.049561) scale(0.11 -0.11)">
1518
+ <g id="text_28">
1519
+ <!-- 7.74 -->
1520
+ <g style="fill: #263445" transform="translate(61.927197 210.049561) scale(0.11 -0.11)">
1445
1521
  <defs>
1446
1522
  <path id="DejaVuSans-Bold-37" d="M 428 4666
1447
1523
  L 3944 4666
@@ -1452,101 +1528,66 @@ L 2675 3781
1452
1528
  L 428 3781
1453
1529
  L 428 4666
1454
1530
  z
1455
- " transform="scale(0.015625)"/>
1456
- <path id="DejaVuSans-Bold-32" d="M 1844 884
1457
- L 3897 884
1458
- L 3897 0
1459
- L 506 0
1460
- L 506 884
1461
- L 2209 2388
1462
- Q 2438 2594 2547 2791
1463
- Q 2656 2988 2656 3200
1464
- Q 2656 3528 2436 3728
1465
- Q 2216 3928 1850 3928
1466
- Q 1569 3928 1234 3808
1467
- Q 900 3688 519 3450
1468
- L 519 4475
1469
- Q 925 4609 1322 4679
1470
- Q 1719 4750 2100 4750
1471
- Q 2938 4750 3402 4381
1472
- Q 3866 4013 3866 3353
1473
- Q 3866 2972 3669 2642
1474
- Q 3472 2313 2841 1759
1475
- L 1844 884
1476
- z
1477
1531
  " transform="scale(0.015625)"/>
1478
1532
  </defs>
1479
1533
  <use xlink:href="#DejaVuSans-Bold-37"/>
1480
1534
  <use xlink:href="#DejaVuSans-Bold-2e" transform="translate(69.580078 0)"/>
1481
- <use xlink:href="#DejaVuSans-Bold-32" transform="translate(107.568359 0)"/>
1535
+ <use xlink:href="#DejaVuSans-Bold-37" transform="translate(107.568359 0)"/>
1482
1536
  <use xlink:href="#DejaVuSans-Bold-34" transform="translate(177.148438 0)"/>
1483
1537
  </g>
1484
1538
  </g>
1485
- <g id="text_27">
1486
- <!-- 8.17 -->
1487
- <g style="fill: #263445" transform="translate(65.7045 240.104749) scale(0.11 -0.11)">
1539
+ <g id="text_29">
1540
+ <!-- 8.38 -->
1541
+ <g style="fill: #263445" transform="translate(62.695126 240.104749) scale(0.11 -0.11)">
1488
1542
  <use xlink:href="#DejaVuSans-38"/>
1489
1543
  <use xlink:href="#DejaVuSans-2e" transform="translate(63.623047 0)"/>
1490
- <use xlink:href="#DejaVuSans-31" transform="translate(95.410156 0)"/>
1491
- <use xlink:href="#DejaVuSans-37" transform="translate(159.033203 0)"/>
1544
+ <use xlink:href="#DejaVuSans-33" transform="translate(95.410156 0)"/>
1545
+ <use xlink:href="#DejaVuSans-38" transform="translate(159.033203 0)"/>
1492
1546
  </g>
1493
1547
  </g>
1494
- <g id="text_28">
1495
- <!-- 30.22 -->
1496
- <g style="fill: #263445" transform="translate(100.733489 270.159938) scale(0.11 -0.11)">
1548
+ <g id="text_30">
1549
+ <!-- 30.64 -->
1550
+ <g style="fill: #263445" transform="translate(89.509602 270.159938) scale(0.11 -0.11)">
1497
1551
  <defs>
1498
- <path id="DejaVuSans-33" d="M 2597 2516
1499
- Q 3050 2419 3304 2112
1500
- Q 3559 1806 3559 1356
1501
- Q 3559 666 3084 287
1502
- Q 2609 -91 1734 -91
1503
- Q 1441 -91 1130 -33
1504
- Q 819 25 488 141
1505
- L 488 750
1506
- Q 750 597 1062 519
1507
- Q 1375 441 1716 441
1508
- Q 2309 441 2620 675
1509
- Q 2931 909 2931 1356
1510
- Q 2931 1769 2642 2001
1511
- Q 2353 2234 1838 2234
1512
- L 1294 2234
1513
- L 1294 2753
1514
- L 1863 2753
1515
- Q 2328 2753 2575 2939
1516
- Q 2822 3125 2822 3475
1517
- Q 2822 3834 2567 4026
1518
- Q 2313 4219 1838 4219
1519
- Q 1578 4219 1281 4162
1520
- Q 984 4106 628 3988
1521
- L 628 4550
1522
- Q 988 4650 1302 4700
1523
- Q 1616 4750 1894 4750
1524
- Q 2613 4750 3031 4423
1525
- Q 3450 4097 3450 3541
1526
- Q 3450 3153 3228 2886
1527
- Q 3006 2619 2597 2516
1552
+ <path id="DejaVuSans-34" d="M 2419 4116
1553
+ L 825 1625
1554
+ L 2419 1625
1555
+ L 2419 4116
1556
+ z
1557
+ M 2253 4666
1558
+ L 3047 4666
1559
+ L 3047 1625
1560
+ L 3713 1625
1561
+ L 3713 1100
1562
+ L 3047 1100
1563
+ L 3047 0
1564
+ L 2419 0
1565
+ L 2419 1100
1566
+ L 313 1100
1567
+ L 313 1709
1568
+ L 2253 4666
1528
1569
  z
1529
1570
  " transform="scale(0.015625)"/>
1530
1571
  </defs>
1531
1572
  <use xlink:href="#DejaVuSans-33"/>
1532
1573
  <use xlink:href="#DejaVuSans-30" transform="translate(63.623047 0)"/>
1533
1574
  <use xlink:href="#DejaVuSans-2e" transform="translate(127.246094 0)"/>
1534
- <use xlink:href="#DejaVuSans-32" transform="translate(159.033203 0)"/>
1535
- <use xlink:href="#DejaVuSans-32" transform="translate(222.65625 0)"/>
1575
+ <use xlink:href="#DejaVuSans-36" transform="translate(159.033203 0)"/>
1576
+ <use xlink:href="#DejaVuSans-34" transform="translate(222.65625 0)"/>
1536
1577
  </g>
1537
1578
  </g>
1538
- <g id="text_29">
1539
- <!-- 194.98 -->
1540
- <g style="fill: #263445" transform="translate(362.418006 300.215127) scale(0.11 -0.11)">
1541
- <use xlink:href="#DejaVuSans-31"/>
1542
- <use xlink:href="#DejaVuSans-39" transform="translate(63.623047 0)"/>
1543
- <use xlink:href="#DejaVuSans-34" transform="translate(127.246094 0)"/>
1579
+ <g id="text_31">
1580
+ <!-- 252.62 -->
1581
+ <g style="fill: #263445" transform="translate(356.913389 300.215127) scale(0.11 -0.11)">
1582
+ <use xlink:href="#DejaVuSans-32"/>
1583
+ <use xlink:href="#DejaVuSans-35" transform="translate(63.623047 0)"/>
1584
+ <use xlink:href="#DejaVuSans-32" transform="translate(127.246094 0)"/>
1544
1585
  <use xlink:href="#DejaVuSans-2e" transform="translate(190.869141 0)"/>
1545
- <use xlink:href="#DejaVuSans-39" transform="translate(222.65625 0)"/>
1546
- <use xlink:href="#DejaVuSans-38" transform="translate(286.279297 0)"/>
1586
+ <use xlink:href="#DejaVuSans-36" transform="translate(222.65625 0)"/>
1587
+ <use xlink:href="#DejaVuSans-32" transform="translate(286.279297 0)"/>
1547
1588
  </g>
1548
1589
  </g>
1549
- <g id="text_30">
1590
+ <g id="text_32">
1550
1591
  <!-- CPU · 2 million iterations -->
1551
1592
  <g style="fill: #263445" transform="translate(44.993365 184.918365) scale(0.12 -0.12)">
1552
1593
  <defs>
@@ -1617,25 +1658,47 @@ L 653 1619
1617
1658
  L 653 2828
1618
1659
  z
1619
1660
  " transform="scale(0.015625)"/>
1620
- <path id="DejaVuSans-Bold-6d" d="M 3781 2919
1621
- Q 3994 3244 4286 3414
1622
- Q 4578 3584 4928 3584
1623
- Q 5531 3584 5847 3212
1624
- Q 6163 2841 6163 2131
1625
- L 6163 0
1626
- L 5038 0
1627
- L 5038 1825
1628
- Q 5041 1866 5042 1909
1629
- Q 5044 1953 5044 2034
1630
- Q 5044 2406 4934 2573
1631
- Q 4825 2741 4581 2741
1632
- Q 4263 2741 4089 2478
1633
- Q 3916 2216 3909 1719
1634
- L 3909 0
1635
- L 2784 0
1636
- L 2784 1825
1637
- Q 2784 2406 2684 2573
1638
- Q 2584 2741 2328 2741
1661
+ <path id="DejaVuSans-Bold-32" d="M 1844 884
1662
+ L 3897 884
1663
+ L 3897 0
1664
+ L 506 0
1665
+ L 506 884
1666
+ L 2209 2388
1667
+ Q 2438 2594 2547 2791
1668
+ Q 2656 2988 2656 3200
1669
+ Q 2656 3528 2436 3728
1670
+ Q 2216 3928 1850 3928
1671
+ Q 1569 3928 1234 3808
1672
+ Q 900 3688 519 3450
1673
+ L 519 4475
1674
+ Q 925 4609 1322 4679
1675
+ Q 1719 4750 2100 4750
1676
+ Q 2938 4750 3402 4381
1677
+ Q 3866 4013 3866 3353
1678
+ Q 3866 2972 3669 2642
1679
+ Q 3472 2313 2841 1759
1680
+ L 1844 884
1681
+ z
1682
+ " transform="scale(0.015625)"/>
1683
+ <path id="DejaVuSans-Bold-6d" d="M 3781 2919
1684
+ Q 3994 3244 4286 3414
1685
+ Q 4578 3584 4928 3584
1686
+ Q 5531 3584 5847 3212
1687
+ Q 6163 2841 6163 2131
1688
+ L 6163 0
1689
+ L 5038 0
1690
+ L 5038 1825
1691
+ Q 5041 1866 5042 1909
1692
+ Q 5044 1953 5044 2034
1693
+ Q 5044 2406 4934 2573
1694
+ Q 4825 2741 4581 2741
1695
+ Q 4263 2741 4089 2478
1696
+ Q 3916 2216 3909 1719
1697
+ L 3909 0
1698
+ L 2784 0
1699
+ L 2784 1825
1700
+ Q 2784 2406 2684 2573
1701
+ Q 2584 2741 2328 2741
1639
1702
  Q 2006 2741 1831 2477
1640
1703
  Q 1656 2213 1656 1722
1641
1704
  L 1656 0
@@ -1801,128 +1864,128 @@ z
1801
1864
  <g id="axes_3">
1802
1865
  <g id="patch_14">
1803
1866
  <path d="M 44.993365 484.075697
1804
- L 428.99976 484.075697
1805
- L 428.99976 365.718365
1867
+ L 422.340516 484.075697
1868
+ L 422.340516 365.718365
1806
1869
  L 44.993365 365.718365
1807
1870
  z
1808
1871
  " style="fill: #ffffff"/>
1809
1872
  </g>
1810
1873
  <g id="matplotlib.axis_5">
1811
- <g id="xtick_11">
1812
- <g id="line2d_29">
1874
+ <g id="xtick_13">
1875
+ <g id="line2d_33">
1813
1876
  <path d="M 44.993365 484.075697
1814
1877
  L 44.993365 365.718365
1815
- " clip-path="url(#p8956ccee4a)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
1878
+ " clip-path="url(#p22bf70c728)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
1816
1879
  </g>
1817
- <g id="line2d_30">
1880
+ <g id="line2d_34">
1818
1881
  <g>
1819
1882
  <use xlink:href="#m9cd3e2f3f9" x="44.993365" y="484.075697" style="fill: #52606d; stroke: #52606d; stroke-width: 0.8"/>
1820
1883
  </g>
1821
1884
  </g>
1822
- <g id="text_31">
1885
+ <g id="text_33">
1823
1886
  <!-- 0 -->
1824
1887
  <g style="fill: #52606d" transform="translate(41.49399 499.433979) scale(0.11 -0.11)">
1825
1888
  <use xlink:href="#DejaVuSans-30"/>
1826
1889
  </g>
1827
1890
  </g>
1828
1891
  </g>
1829
- <g id="xtick_12">
1830
- <g id="line2d_31">
1831
- <path d="M 114.411279 484.075697
1832
- L 114.411279 365.718365
1833
- " clip-path="url(#p8956ccee4a)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
1892
+ <g id="xtick_14">
1893
+ <g id="line2d_35">
1894
+ <path d="M 112.37181 484.075697
1895
+ L 112.37181 365.718365
1896
+ " clip-path="url(#p22bf70c728)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
1834
1897
  </g>
1835
- <g id="line2d_32">
1898
+ <g id="line2d_36">
1836
1899
  <g>
1837
- <use xlink:href="#m9cd3e2f3f9" x="114.411279" y="484.075697" style="fill: #52606d; stroke: #52606d; stroke-width: 0.8"/>
1900
+ <use xlink:href="#m9cd3e2f3f9" x="112.37181" y="484.075697" style="fill: #52606d; stroke: #52606d; stroke-width: 0.8"/>
1838
1901
  </g>
1839
1902
  </g>
1840
- <g id="text_32">
1903
+ <g id="text_34">
1841
1904
  <!-- 5 -->
1842
- <g style="fill: #52606d" transform="translate(110.911904 499.433979) scale(0.11 -0.11)">
1905
+ <g style="fill: #52606d" transform="translate(108.872435 499.433979) scale(0.11 -0.11)">
1843
1906
  <use xlink:href="#DejaVuSans-35"/>
1844
1907
  </g>
1845
1908
  </g>
1846
1909
  </g>
1847
- <g id="xtick_13">
1848
- <g id="line2d_33">
1849
- <path d="M 183.829194 484.075697
1850
- L 183.829194 365.718365
1851
- " clip-path="url(#p8956ccee4a)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
1910
+ <g id="xtick_15">
1911
+ <g id="line2d_37">
1912
+ <path d="M 179.750254 484.075697
1913
+ L 179.750254 365.718365
1914
+ " clip-path="url(#p22bf70c728)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
1852
1915
  </g>
1853
- <g id="line2d_34">
1916
+ <g id="line2d_38">
1854
1917
  <g>
1855
- <use xlink:href="#m9cd3e2f3f9" x="183.829194" y="484.075697" style="fill: #52606d; stroke: #52606d; stroke-width: 0.8"/>
1918
+ <use xlink:href="#m9cd3e2f3f9" x="179.750254" y="484.075697" style="fill: #52606d; stroke: #52606d; stroke-width: 0.8"/>
1856
1919
  </g>
1857
1920
  </g>
1858
- <g id="text_33">
1921
+ <g id="text_35">
1859
1922
  <!-- 10 -->
1860
- <g style="fill: #52606d" transform="translate(176.830444 499.433979) scale(0.11 -0.11)">
1923
+ <g style="fill: #52606d" transform="translate(172.751504 499.433979) scale(0.11 -0.11)">
1861
1924
  <use xlink:href="#DejaVuSans-31"/>
1862
1925
  <use xlink:href="#DejaVuSans-30" transform="translate(63.623047 0)"/>
1863
1926
  </g>
1864
1927
  </g>
1865
1928
  </g>
1866
- <g id="xtick_14">
1867
- <g id="line2d_35">
1868
- <path d="M 253.247108 484.075697
1869
- L 253.247108 365.718365
1870
- " clip-path="url(#p8956ccee4a)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
1929
+ <g id="xtick_16">
1930
+ <g id="line2d_39">
1931
+ <path d="M 247.128699 484.075697
1932
+ L 247.128699 365.718365
1933
+ " clip-path="url(#p22bf70c728)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
1871
1934
  </g>
1872
- <g id="line2d_36">
1935
+ <g id="line2d_40">
1873
1936
  <g>
1874
- <use xlink:href="#m9cd3e2f3f9" x="253.247108" y="484.075697" style="fill: #52606d; stroke: #52606d; stroke-width: 0.8"/>
1937
+ <use xlink:href="#m9cd3e2f3f9" x="247.128699" y="484.075697" style="fill: #52606d; stroke: #52606d; stroke-width: 0.8"/>
1875
1938
  </g>
1876
1939
  </g>
1877
- <g id="text_34">
1940
+ <g id="text_36">
1878
1941
  <!-- 15 -->
1879
- <g style="fill: #52606d" transform="translate(246.248358 499.433979) scale(0.11 -0.11)">
1942
+ <g style="fill: #52606d" transform="translate(240.129949 499.433979) scale(0.11 -0.11)">
1880
1943
  <use xlink:href="#DejaVuSans-31"/>
1881
1944
  <use xlink:href="#DejaVuSans-35" transform="translate(63.623047 0)"/>
1882
1945
  </g>
1883
1946
  </g>
1884
1947
  </g>
1885
- <g id="xtick_15">
1886
- <g id="line2d_37">
1887
- <path d="M 322.665023 484.075697
1888
- L 322.665023 365.718365
1889
- " clip-path="url(#p8956ccee4a)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
1948
+ <g id="xtick_17">
1949
+ <g id="line2d_41">
1950
+ <path d="M 314.507144 484.075697
1951
+ L 314.507144 365.718365
1952
+ " clip-path="url(#p22bf70c728)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
1890
1953
  </g>
1891
- <g id="line2d_38">
1954
+ <g id="line2d_42">
1892
1955
  <g>
1893
- <use xlink:href="#m9cd3e2f3f9" x="322.665023" y="484.075697" style="fill: #52606d; stroke: #52606d; stroke-width: 0.8"/>
1956
+ <use xlink:href="#m9cd3e2f3f9" x="314.507144" y="484.075697" style="fill: #52606d; stroke: #52606d; stroke-width: 0.8"/>
1894
1957
  </g>
1895
1958
  </g>
1896
- <g id="text_35">
1959
+ <g id="text_37">
1897
1960
  <!-- 20 -->
1898
- <g style="fill: #52606d" transform="translate(315.666273 499.433979) scale(0.11 -0.11)">
1961
+ <g style="fill: #52606d" transform="translate(307.508394 499.433979) scale(0.11 -0.11)">
1899
1962
  <use xlink:href="#DejaVuSans-32"/>
1900
1963
  <use xlink:href="#DejaVuSans-30" transform="translate(63.623047 0)"/>
1901
1964
  </g>
1902
1965
  </g>
1903
1966
  </g>
1904
- <g id="xtick_16">
1905
- <g id="line2d_39">
1906
- <path d="M 392.082937 484.075697
1907
- L 392.082937 365.718365
1908
- " clip-path="url(#p8956ccee4a)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
1967
+ <g id="xtick_18">
1968
+ <g id="line2d_43">
1969
+ <path d="M 381.885589 484.075697
1970
+ L 381.885589 365.718365
1971
+ " clip-path="url(#p22bf70c728)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
1909
1972
  </g>
1910
- <g id="line2d_40">
1973
+ <g id="line2d_44">
1911
1974
  <g>
1912
- <use xlink:href="#m9cd3e2f3f9" x="392.082937" y="484.075697" style="fill: #52606d; stroke: #52606d; stroke-width: 0.8"/>
1975
+ <use xlink:href="#m9cd3e2f3f9" x="381.885589" y="484.075697" style="fill: #52606d; stroke: #52606d; stroke-width: 0.8"/>
1913
1976
  </g>
1914
1977
  </g>
1915
- <g id="text_36">
1978
+ <g id="text_38">
1916
1979
  <!-- 25 -->
1917
- <g style="fill: #52606d" transform="translate(385.084187 499.433979) scale(0.11 -0.11)">
1980
+ <g style="fill: #52606d" transform="translate(374.886839 499.433979) scale(0.11 -0.11)">
1918
1981
  <use xlink:href="#DejaVuSans-32"/>
1919
1982
  <use xlink:href="#DejaVuSans-35" transform="translate(63.623047 0)"/>
1920
1983
  </g>
1921
1984
  </g>
1922
1985
  </g>
1923
- <g id="text_37">
1986
+ <g id="text_39">
1924
1987
  <!-- Milliseconds · lower is faster -->
1925
- <g style="fill: #263445" transform="translate(166.559062 513.320072) scale(0.1 -0.1)">
1988
+ <g style="fill: #263445" transform="translate(163.229441 513.320072) scale(0.1 -0.1)">
1926
1989
  <use xlink:href="#DejaVuSans-4d"/>
1927
1990
  <use xlink:href="#DejaVuSans-69" transform="translate(86.279297 0)"/>
1928
1991
  <use xlink:href="#DejaVuSans-6c" transform="translate(114.0625 0)"/>
@@ -1958,8 +2021,8 @@ L 392.082937 365.718365
1958
2021
  </g>
1959
2022
  <g id="matplotlib.axis_6">
1960
2023
  <g id="ytick_9">
1961
- <g id="line2d_41"/>
1962
- <g id="text_38">
2024
+ <g id="line2d_45"/>
2025
+ <g id="text_40">
1963
2026
  <!-- August -->
1964
2027
  <g style="fill: #263445" transform="translate(3.00024 383.993389) scale(0.11 -0.11)">
1965
2028
  <use xlink:href="#DejaVuSans-41"/>
@@ -1972,8 +2035,8 @@ L 392.082937 365.718365
1972
2035
  </g>
1973
2036
  </g>
1974
2037
  <g id="ytick_10">
1975
- <g id="line2d_42"/>
1976
- <g id="text_39">
2038
+ <g id="line2d_46"/>
2039
+ <g id="text_41">
1977
2040
  <!-- C -->
1978
2041
  <g style="fill: #263445" transform="translate(33.812271 414.048578) scale(0.11 -0.11)">
1979
2042
  <use xlink:href="#DejaVuSans-43"/>
@@ -1981,8 +2044,8 @@ L 392.082937 365.718365
1981
2044
  </g>
1982
2045
  </g>
1983
2046
  <g id="ytick_11">
1984
- <g id="line2d_43"/>
1985
- <g id="text_40">
2047
+ <g id="line2d_47"/>
2048
+ <g id="text_42">
1986
2049
  <!-- Node -->
1987
2050
  <g style="fill: #263445" transform="translate(12.781646 444.103766) scale(0.11 -0.11)">
1988
2051
  <use xlink:href="#DejaVuSans-4e"/>
@@ -1993,8 +2056,8 @@ L 392.082937 365.718365
1993
2056
  </g>
1994
2057
  </g>
1995
2058
  <g id="ytick_12">
1996
- <g id="line2d_44"/>
1997
- <g id="text_41">
2059
+ <g id="line2d_48"/>
2060
+ <g id="text_43">
1998
2061
  <!-- Python -->
1999
2062
  <g style="fill: #263445" transform="translate(3.364615 474.158955) scale(0.11 -0.11)">
2000
2063
  <use xlink:href="#DejaVuSans-50"/>
@@ -2009,139 +2072,80 @@ L 392.082937 365.718365
2009
2072
  </g>
2010
2073
  <g id="patch_15">
2011
2074
  <path d="M 44.993365 371.098244
2012
- L 80.324765 371.098244
2013
- L 80.324765 388.530253
2075
+ L 81.522596 371.098244
2076
+ L 81.522596 388.530253
2014
2077
  L 44.993365 388.530253
2015
2078
  z
2016
- " clip-path="url(#p8956ccee4a)" style="fill: #087e8b"/>
2079
+ " clip-path="url(#p22bf70c728)" style="fill: #087e8b"/>
2017
2080
  </g>
2018
2081
  <g id="patch_16">
2019
2082
  <path d="M 44.993365 401.153432
2020
- L 67.964336 401.153432
2021
- L 67.964336 418.585442
2083
+ L 67.145437 401.153432
2084
+ L 67.145437 418.585442
2022
2085
  L 44.993365 418.585442
2023
2086
  z
2024
- " clip-path="url(#p8956ccee4a)" style="fill: #6c7789"/>
2087
+ " clip-path="url(#p22bf70c728)" style="fill: #6c7789"/>
2025
2088
  </g>
2026
2089
  <g id="patch_17">
2027
2090
  <path d="M 44.993365 431.208621
2028
- L 354.675942 431.208621
2029
- L 354.675942 448.64063
2091
+ L 349.305584 431.208621
2092
+ L 349.305584 448.64063
2030
2093
  L 44.993365 448.64063
2031
2094
  z
2032
- " clip-path="url(#p8956ccee4a)" style="fill: #587f25"/>
2095
+ " clip-path="url(#p22bf70c728)" style="fill: #587f25"/>
2033
2096
  </g>
2034
2097
  <g id="patch_18">
2035
2098
  <path d="M 44.993365 461.263809
2036
- L 188.823244 461.263809
2037
- L 188.823244 478.695819
2099
+ L 298.529754 461.263809
2100
+ L 298.529754 478.695819
2038
2101
  L 44.993365 478.695819
2039
2102
  z
2040
- " clip-path="url(#p8956ccee4a)" style="fill: #9265b8"/>
2103
+ " clip-path="url(#p22bf70c728)" style="fill: #9265b8"/>
2041
2104
  </g>
2042
2105
  <g id="patch_19">
2043
2106
  <path d="M 44.993365 484.075697
2044
- L 428.99976 484.075697
2107
+ L 422.340516 484.075697
2045
2108
  " style="fill: none; stroke: #c4cbd2; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/>
2046
2109
  </g>
2047
- <g id="text_42">
2048
- <!-- 2.54 -->
2049
- <g style="fill: #263445" transform="translate(88.066829 382.849561) scale(0.11 -0.11)">
2050
- <defs>
2051
- <path id="DejaVuSans-Bold-35" d="M 678 4666
2052
- L 3669 4666
2053
- L 3669 3781
2054
- L 1638 3781
2055
- L 1638 3059
2056
- Q 1775 3097 1914 3117
2057
- Q 2053 3138 2203 3138
2058
- Q 3056 3138 3531 2711
2059
- Q 4006 2284 4006 1522
2060
- Q 4006 766 3489 337
2061
- Q 2972 -91 2053 -91
2062
- Q 1656 -91 1267 -14
2063
- Q 878 63 494 219
2064
- L 494 1166
2065
- Q 875 947 1217 837
2066
- Q 1559 728 1863 728
2067
- Q 2300 728 2551 942
2068
- Q 2803 1156 2803 1522
2069
- Q 2803 1891 2551 2103
2070
- Q 2300 2316 1863 2316
2071
- Q 1603 2316 1309 2248
2072
- Q 1016 2181 678 2041
2073
- L 678 4666
2074
- z
2075
- " transform="scale(0.015625)"/>
2076
- </defs>
2110
+ <g id="text_44">
2111
+ <!-- 2.71 -->
2112
+ <g style="fill: #263445" transform="translate(89.130401 382.849561) scale(0.11 -0.11)">
2077
2113
  <use xlink:href="#DejaVuSans-Bold-32"/>
2078
2114
  <use xlink:href="#DejaVuSans-Bold-2e" transform="translate(69.580078 0)"/>
2079
- <use xlink:href="#DejaVuSans-Bold-35" transform="translate(107.568359 0)"/>
2080
- <use xlink:href="#DejaVuSans-Bold-34" transform="translate(177.148438 0)"/>
2115
+ <use xlink:href="#DejaVuSans-Bold-37" transform="translate(107.568359 0)"/>
2116
+ <use xlink:href="#DejaVuSans-Bold-31" transform="translate(177.148438 0)"/>
2081
2117
  </g>
2082
2118
  </g>
2083
- <g id="text_43">
2084
- <!-- 1.65 -->
2085
- <g style="fill: #263445" transform="translate(75.7064 412.904749) scale(0.11 -0.11)">
2086
- <defs>
2087
- <path id="DejaVuSans-36" d="M 2113 2584
2088
- Q 1688 2584 1439 2293
2089
- Q 1191 2003 1191 1497
2090
- Q 1191 994 1439 701
2091
- Q 1688 409 2113 409
2092
- Q 2538 409 2786 701
2093
- Q 3034 994 3034 1497
2094
- Q 3034 2003 2786 2293
2095
- Q 2538 2584 2113 2584
2096
- z
2097
- M 3366 4563
2098
- L 3366 3988
2099
- Q 3128 4100 2886 4159
2100
- Q 2644 4219 2406 4219
2101
- Q 1781 4219 1451 3797
2102
- Q 1122 3375 1075 2522
2103
- Q 1259 2794 1537 2939
2104
- Q 1816 3084 2150 3084
2105
- Q 2853 3084 3261 2657
2106
- Q 3669 2231 3669 1497
2107
- Q 3669 778 3244 343
2108
- Q 2819 -91 2113 -91
2109
- Q 1303 -91 875 529
2110
- Q 447 1150 447 2328
2111
- Q 447 3434 972 4092
2112
- Q 1497 4750 2381 4750
2113
- Q 2619 4750 2861 4703
2114
- Q 3103 4656 3366 4563
2115
- z
2116
- " transform="scale(0.015625)"/>
2117
- </defs>
2119
+ <g id="text_45">
2120
+ <!-- 1.64 -->
2121
+ <g style="fill: #263445" transform="translate(74.753242 412.904749) scale(0.11 -0.11)">
2118
2122
  <use xlink:href="#DejaVuSans-31"/>
2119
2123
  <use xlink:href="#DejaVuSans-2e" transform="translate(63.623047 0)"/>
2120
2124
  <use xlink:href="#DejaVuSans-36" transform="translate(95.410156 0)"/>
2121
- <use xlink:href="#DejaVuSans-35" transform="translate(159.033203 0)"/>
2125
+ <use xlink:href="#DejaVuSans-34" transform="translate(159.033203 0)"/>
2122
2126
  </g>
2123
2127
  </g>
2124
- <g id="text_44">
2125
- <!-- 22.31 -->
2126
- <g style="fill: #263445" transform="translate(362.418006 442.959938) scale(0.11 -0.11)">
2128
+ <g id="text_46">
2129
+ <!-- 22.58 -->
2130
+ <g style="fill: #263445" transform="translate(356.913389 442.959938) scale(0.11 -0.11)">
2127
2131
  <use xlink:href="#DejaVuSans-32"/>
2128
2132
  <use xlink:href="#DejaVuSans-32" transform="translate(63.623047 0)"/>
2129
2133
  <use xlink:href="#DejaVuSans-2e" transform="translate(127.246094 0)"/>
2130
- <use xlink:href="#DejaVuSans-33" transform="translate(159.033203 0)"/>
2131
- <use xlink:href="#DejaVuSans-31" transform="translate(222.65625 0)"/>
2134
+ <use xlink:href="#DejaVuSans-35" transform="translate(159.033203 0)"/>
2135
+ <use xlink:href="#DejaVuSans-38" transform="translate(222.65625 0)"/>
2132
2136
  </g>
2133
2137
  </g>
2134
- <g id="text_45">
2135
- <!-- 10.36 -->
2136
- <g style="fill: #263445" transform="translate(196.565308 473.015127) scale(0.11 -0.11)">
2138
+ <g id="text_47">
2139
+ <!-- 18.81 -->
2140
+ <g style="fill: #263445" transform="translate(306.137559 473.015127) scale(0.11 -0.11)">
2137
2141
  <use xlink:href="#DejaVuSans-31"/>
2138
- <use xlink:href="#DejaVuSans-30" transform="translate(63.623047 0)"/>
2142
+ <use xlink:href="#DejaVuSans-38" transform="translate(63.623047 0)"/>
2139
2143
  <use xlink:href="#DejaVuSans-2e" transform="translate(127.246094 0)"/>
2140
- <use xlink:href="#DejaVuSans-33" transform="translate(159.033203 0)"/>
2141
- <use xlink:href="#DejaVuSans-36" transform="translate(222.65625 0)"/>
2144
+ <use xlink:href="#DejaVuSans-38" transform="translate(159.033203 0)"/>
2145
+ <use xlink:href="#DejaVuSans-31" transform="translate(222.65625 0)"/>
2142
2146
  </g>
2143
2147
  </g>
2144
- <g id="text_46">
2148
+ <g id="text_48">
2145
2149
  <!-- Map + Set · 20,000 entries -->
2146
2150
  <g style="fill: #263445" transform="translate(44.993365 357.718365) scale(0.12 -0.12)">
2147
2151
  <defs>
@@ -2239,110 +2243,129 @@ z
2239
2243
  <g id="axes_4">
2240
2244
  <g id="patch_20">
2241
2245
  <path d="M 44.993365 656.875697
2242
- L 428.99976 656.875697
2243
- L 428.99976 538.518365
2246
+ L 422.340516 656.875697
2247
+ L 422.340516 538.518365
2244
2248
  L 44.993365 538.518365
2245
2249
  z
2246
2250
  " style="fill: #ffffff"/>
2247
2251
  </g>
2248
2252
  <g id="matplotlib.axis_7">
2249
- <g id="xtick_17">
2250
- <g id="line2d_45">
2253
+ <g id="xtick_19">
2254
+ <g id="line2d_49">
2251
2255
  <path d="M 44.993365 656.875697
2252
2256
  L 44.993365 538.518365
2253
- " clip-path="url(#p1ce382a11a)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
2257
+ " clip-path="url(#p9ec359dc4c)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
2254
2258
  </g>
2255
- <g id="line2d_46">
2259
+ <g id="line2d_50">
2256
2260
  <g>
2257
2261
  <use xlink:href="#m9cd3e2f3f9" x="44.993365" y="656.875697" style="fill: #52606d; stroke: #52606d; stroke-width: 0.8"/>
2258
2262
  </g>
2259
2263
  </g>
2260
- <g id="text_47">
2264
+ <g id="text_49">
2261
2265
  <!-- 0 -->
2262
2266
  <g style="fill: #52606d" transform="translate(41.49399 672.233979) scale(0.11 -0.11)">
2263
2267
  <use xlink:href="#DejaVuSans-30"/>
2264
2268
  </g>
2265
2269
  </g>
2266
2270
  </g>
2267
- <g id="xtick_18">
2268
- <g id="line2d_47">
2269
- <path d="M 125.78469 656.875697
2270
- L 125.78469 538.518365
2271
- " clip-path="url(#p1ce382a11a)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
2271
+ <g id="xtick_20">
2272
+ <g id="line2d_51">
2273
+ <path d="M 120.394887 656.875697
2274
+ L 120.394887 538.518365
2275
+ " clip-path="url(#p9ec359dc4c)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
2272
2276
  </g>
2273
- <g id="line2d_48">
2277
+ <g id="line2d_52">
2274
2278
  <g>
2275
- <use xlink:href="#m9cd3e2f3f9" x="125.78469" y="656.875697" style="fill: #52606d; stroke: #52606d; stroke-width: 0.8"/>
2279
+ <use xlink:href="#m9cd3e2f3f9" x="120.394887" y="656.875697" style="fill: #52606d; stroke: #52606d; stroke-width: 0.8"/>
2276
2280
  </g>
2277
2281
  </g>
2278
- <g id="text_48">
2282
+ <g id="text_50">
2279
2283
  <!-- 10 -->
2280
- <g style="fill: #52606d" transform="translate(118.78594 672.233979) scale(0.11 -0.11)">
2284
+ <g style="fill: #52606d" transform="translate(113.396137 672.233979) scale(0.11 -0.11)">
2281
2285
  <use xlink:href="#DejaVuSans-31"/>
2282
2286
  <use xlink:href="#DejaVuSans-30" transform="translate(63.623047 0)"/>
2283
2287
  </g>
2284
2288
  </g>
2285
2289
  </g>
2286
- <g id="xtick_19">
2287
- <g id="line2d_49">
2288
- <path d="M 206.576015 656.875697
2289
- L 206.576015 538.518365
2290
- " clip-path="url(#p1ce382a11a)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
2290
+ <g id="xtick_21">
2291
+ <g id="line2d_53">
2292
+ <path d="M 195.796409 656.875697
2293
+ L 195.796409 538.518365
2294
+ " clip-path="url(#p9ec359dc4c)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
2291
2295
  </g>
2292
- <g id="line2d_50">
2296
+ <g id="line2d_54">
2293
2297
  <g>
2294
- <use xlink:href="#m9cd3e2f3f9" x="206.576015" y="656.875697" style="fill: #52606d; stroke: #52606d; stroke-width: 0.8"/>
2298
+ <use xlink:href="#m9cd3e2f3f9" x="195.796409" y="656.875697" style="fill: #52606d; stroke: #52606d; stroke-width: 0.8"/>
2295
2299
  </g>
2296
2300
  </g>
2297
- <g id="text_49">
2301
+ <g id="text_51">
2298
2302
  <!-- 20 -->
2299
- <g style="fill: #52606d" transform="translate(199.577265 672.233979) scale(0.11 -0.11)">
2303
+ <g style="fill: #52606d" transform="translate(188.797659 672.233979) scale(0.11 -0.11)">
2300
2304
  <use xlink:href="#DejaVuSans-32"/>
2301
2305
  <use xlink:href="#DejaVuSans-30" transform="translate(63.623047 0)"/>
2302
2306
  </g>
2303
2307
  </g>
2304
2308
  </g>
2305
- <g id="xtick_20">
2306
- <g id="line2d_51">
2307
- <path d="M 287.36734 656.875697
2308
- L 287.36734 538.518365
2309
- " clip-path="url(#p1ce382a11a)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
2309
+ <g id="xtick_22">
2310
+ <g id="line2d_55">
2311
+ <path d="M 271.197931 656.875697
2312
+ L 271.197931 538.518365
2313
+ " clip-path="url(#p9ec359dc4c)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
2310
2314
  </g>
2311
- <g id="line2d_52">
2315
+ <g id="line2d_56">
2312
2316
  <g>
2313
- <use xlink:href="#m9cd3e2f3f9" x="287.36734" y="656.875697" style="fill: #52606d; stroke: #52606d; stroke-width: 0.8"/>
2317
+ <use xlink:href="#m9cd3e2f3f9" x="271.197931" y="656.875697" style="fill: #52606d; stroke: #52606d; stroke-width: 0.8"/>
2314
2318
  </g>
2315
2319
  </g>
2316
- <g id="text_50">
2320
+ <g id="text_52">
2317
2321
  <!-- 30 -->
2318
- <g style="fill: #52606d" transform="translate(280.36859 672.233979) scale(0.11 -0.11)">
2322
+ <g style="fill: #52606d" transform="translate(264.199181 672.233979) scale(0.11 -0.11)">
2319
2323
  <use xlink:href="#DejaVuSans-33"/>
2320
2324
  <use xlink:href="#DejaVuSans-30" transform="translate(63.623047 0)"/>
2321
2325
  </g>
2322
2326
  </g>
2323
2327
  </g>
2324
- <g id="xtick_21">
2325
- <g id="line2d_53">
2326
- <path d="M 368.158665 656.875697
2327
- L 368.158665 538.518365
2328
- " clip-path="url(#p1ce382a11a)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
2328
+ <g id="xtick_23">
2329
+ <g id="line2d_57">
2330
+ <path d="M 346.599453 656.875697
2331
+ L 346.599453 538.518365
2332
+ " clip-path="url(#p9ec359dc4c)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
2329
2333
  </g>
2330
- <g id="line2d_54">
2334
+ <g id="line2d_58">
2331
2335
  <g>
2332
- <use xlink:href="#m9cd3e2f3f9" x="368.158665" y="656.875697" style="fill: #52606d; stroke: #52606d; stroke-width: 0.8"/>
2336
+ <use xlink:href="#m9cd3e2f3f9" x="346.599453" y="656.875697" style="fill: #52606d; stroke: #52606d; stroke-width: 0.8"/>
2333
2337
  </g>
2334
2338
  </g>
2335
- <g id="text_51">
2339
+ <g id="text_53">
2336
2340
  <!-- 40 -->
2337
- <g style="fill: #52606d" transform="translate(361.159915 672.233979) scale(0.11 -0.11)">
2341
+ <g style="fill: #52606d" transform="translate(339.600703 672.233979) scale(0.11 -0.11)">
2338
2342
  <use xlink:href="#DejaVuSans-34"/>
2339
2343
  <use xlink:href="#DejaVuSans-30" transform="translate(63.623047 0)"/>
2340
2344
  </g>
2341
2345
  </g>
2342
2346
  </g>
2343
- <g id="text_52">
2347
+ <g id="xtick_24">
2348
+ <g id="line2d_59">
2349
+ <path d="M 422.000976 656.875697
2350
+ L 422.000976 538.518365
2351
+ " clip-path="url(#p9ec359dc4c)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
2352
+ </g>
2353
+ <g id="line2d_60">
2354
+ <g>
2355
+ <use xlink:href="#m9cd3e2f3f9" x="422.000976" y="656.875697" style="fill: #52606d; stroke: #52606d; stroke-width: 0.8"/>
2356
+ </g>
2357
+ </g>
2358
+ <g id="text_54">
2359
+ <!-- 50 -->
2360
+ <g style="fill: #52606d" transform="translate(415.002226 672.233979) scale(0.11 -0.11)">
2361
+ <use xlink:href="#DejaVuSans-35"/>
2362
+ <use xlink:href="#DejaVuSans-30" transform="translate(63.623047 0)"/>
2363
+ </g>
2364
+ </g>
2365
+ </g>
2366
+ <g id="text_55">
2344
2367
  <!-- Milliseconds · lower is faster -->
2345
- <g style="fill: #263445" transform="translate(166.559062 686.120072) scale(0.1 -0.1)">
2368
+ <g style="fill: #263445" transform="translate(163.229441 686.120072) scale(0.1 -0.1)">
2346
2369
  <use xlink:href="#DejaVuSans-4d"/>
2347
2370
  <use xlink:href="#DejaVuSans-69" transform="translate(86.279297 0)"/>
2348
2371
  <use xlink:href="#DejaVuSans-6c" transform="translate(114.0625 0)"/>
@@ -2378,8 +2401,8 @@ L 368.158665 538.518365
2378
2401
  </g>
2379
2402
  <g id="matplotlib.axis_8">
2380
2403
  <g id="ytick_13">
2381
- <g id="line2d_55"/>
2382
- <g id="text_53">
2404
+ <g id="line2d_61"/>
2405
+ <g id="text_56">
2383
2406
  <!-- August -->
2384
2407
  <g style="fill: #263445" transform="translate(3.00024 556.793389) scale(0.11 -0.11)">
2385
2408
  <use xlink:href="#DejaVuSans-41"/>
@@ -2392,8 +2415,8 @@ L 368.158665 538.518365
2392
2415
  </g>
2393
2416
  </g>
2394
2417
  <g id="ytick_14">
2395
- <g id="line2d_56"/>
2396
- <g id="text_54">
2418
+ <g id="line2d_62"/>
2419
+ <g id="text_57">
2397
2420
  <!-- C -->
2398
2421
  <g style="fill: #263445" transform="translate(33.812271 586.848578) scale(0.11 -0.11)">
2399
2422
  <use xlink:href="#DejaVuSans-43"/>
@@ -2401,8 +2424,8 @@ L 368.158665 538.518365
2401
2424
  </g>
2402
2425
  </g>
2403
2426
  <g id="ytick_15">
2404
- <g id="line2d_57"/>
2405
- <g id="text_55">
2427
+ <g id="line2d_63"/>
2428
+ <g id="text_58">
2406
2429
  <!-- Node -->
2407
2430
  <g style="fill: #263445" transform="translate(12.781646 616.903766) scale(0.11 -0.11)">
2408
2431
  <use xlink:href="#DejaVuSans-4e"/>
@@ -2413,8 +2436,8 @@ L 368.158665 538.518365
2413
2436
  </g>
2414
2437
  </g>
2415
2438
  <g id="ytick_16">
2416
- <g id="line2d_58"/>
2417
- <g id="text_56">
2439
+ <g id="line2d_64"/>
2440
+ <g id="text_59">
2418
2441
  <!-- Python -->
2419
2442
  <g style="fill: #263445" transform="translate(3.364615 646.958955) scale(0.11 -0.11)">
2420
2443
  <use xlink:href="#DejaVuSans-50"/>
@@ -2429,81 +2452,164 @@ L 368.158665 538.518365
2429
2452
  </g>
2430
2453
  <g id="patch_21">
2431
2454
  <path d="M 44.993365 543.898244
2432
- L 166.983547 543.898244
2433
- L 166.983547 561.330253
2455
+ L 171.716307 543.898244
2456
+ L 171.716307 561.330253
2434
2457
  L 44.993365 561.330253
2435
2458
  z
2436
- " clip-path="url(#p1ce382a11a)" style="fill: #087e8b"/>
2459
+ " clip-path="url(#p9ec359dc4c)" style="fill: #087e8b"/>
2437
2460
  </g>
2438
2461
  <g id="patch_22">
2439
2462
  <path d="M 44.993365 573.953432
2440
- L 96.543619 573.953432
2441
- L 96.543619 591.385442
2463
+ L 92.555228 573.953432
2464
+ L 92.555228 591.385442
2442
2465
  L 44.993365 591.385442
2443
2466
  z
2444
- " clip-path="url(#p1ce382a11a)" style="fill: #6c7789"/>
2467
+ " clip-path="url(#p9ec359dc4c)" style="fill: #6c7789"/>
2445
2468
  </g>
2446
2469
  <g id="patch_23">
2447
2470
  <path d="M 44.993365 604.008621
2448
- L 354.675942 604.008621
2449
- L 354.675942 621.44063
2471
+ L 331.20451 604.008621
2472
+ L 331.20451 621.44063
2450
2473
  L 44.993365 621.44063
2451
2474
  z
2452
- " clip-path="url(#p1ce382a11a)" style="fill: #587f25"/>
2475
+ " clip-path="url(#p9ec359dc4c)" style="fill: #587f25"/>
2453
2476
  </g>
2454
2477
  <g id="patch_24">
2455
2478
  <path d="M 44.993365 634.063809
2456
- L 258.643673 634.063809
2457
- L 258.643673 651.495819
2479
+ L 349.305584 634.063809
2480
+ L 349.305584 651.495819
2458
2481
  L 44.993365 651.495819
2459
2482
  z
2460
- " clip-path="url(#p1ce382a11a)" style="fill: #9265b8"/>
2483
+ " clip-path="url(#p9ec359dc4c)" style="fill: #9265b8"/>
2461
2484
  </g>
2462
2485
  <g id="patch_25">
2463
2486
  <path d="M 44.993365 656.875697
2464
- L 428.99976 656.875697
2487
+ L 422.340516 656.875697
2465
2488
  " style="fill: none; stroke: #c4cbd2; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/>
2466
2489
  </g>
2467
- <g id="text_57">
2468
- <!-- 15.10 -->
2469
- <g style="fill: #263445" transform="translate(174.725612 555.649561) scale(0.11 -0.11)">
2490
+ <g id="text_60">
2491
+ <!-- 16.81 -->
2492
+ <g style="fill: #263445" transform="translate(179.324113 555.649561) scale(0.11 -0.11)">
2493
+ <defs>
2494
+ <path id="DejaVuSans-Bold-36" d="M 2316 2303
2495
+ Q 2000 2303 1842 2098
2496
+ Q 1684 1894 1684 1484
2497
+ Q 1684 1075 1842 870
2498
+ Q 2000 666 2316 666
2499
+ Q 2634 666 2792 870
2500
+ Q 2950 1075 2950 1484
2501
+ Q 2950 1894 2792 2098
2502
+ Q 2634 2303 2316 2303
2503
+ z
2504
+ M 3803 4544
2505
+ L 3803 3681
2506
+ Q 3506 3822 3243 3889
2507
+ Q 2981 3956 2731 3956
2508
+ Q 2194 3956 1894 3657
2509
+ Q 1594 3359 1544 2772
2510
+ Q 1750 2925 1990 3001
2511
+ Q 2231 3078 2516 3078
2512
+ Q 3231 3078 3670 2659
2513
+ Q 4109 2241 4109 1563
2514
+ Q 4109 813 3618 361
2515
+ Q 3128 -91 2303 -91
2516
+ Q 1394 -91 895 523
2517
+ Q 397 1138 397 2266
2518
+ Q 397 3422 980 4083
2519
+ Q 1563 4744 2578 4744
2520
+ Q 2900 4744 3203 4694
2521
+ Q 3506 4644 3803 4544
2522
+ z
2523
+ " transform="scale(0.015625)"/>
2524
+ <path id="DejaVuSans-Bold-38" d="M 2228 2088
2525
+ Q 1891 2088 1709 1903
2526
+ Q 1528 1719 1528 1375
2527
+ Q 1528 1031 1709 848
2528
+ Q 1891 666 2228 666
2529
+ Q 2563 666 2741 848
2530
+ Q 2919 1031 2919 1375
2531
+ Q 2919 1722 2741 1905
2532
+ Q 2563 2088 2228 2088
2533
+ z
2534
+ M 1350 2484
2535
+ Q 925 2613 709 2878
2536
+ Q 494 3144 494 3541
2537
+ Q 494 4131 934 4440
2538
+ Q 1375 4750 2228 4750
2539
+ Q 3075 4750 3515 4442
2540
+ Q 3956 4134 3956 3541
2541
+ Q 3956 3144 3739 2878
2542
+ Q 3522 2613 3097 2484
2543
+ Q 3572 2353 3814 2058
2544
+ Q 4056 1763 4056 1313
2545
+ Q 4056 619 3595 264
2546
+ Q 3134 -91 2228 -91
2547
+ Q 1319 -91 855 264
2548
+ Q 391 619 391 1313
2549
+ Q 391 1763 633 2058
2550
+ Q 875 2353 1350 2484
2551
+ z
2552
+ M 1631 3419
2553
+ Q 1631 3141 1786 2991
2554
+ Q 1941 2841 2228 2841
2555
+ Q 2509 2841 2662 2991
2556
+ Q 2816 3141 2816 3419
2557
+ Q 2816 3697 2662 3845
2558
+ Q 2509 3994 2228 3994
2559
+ Q 1941 3994 1786 3844
2560
+ Q 1631 3694 1631 3419
2561
+ z
2562
+ " transform="scale(0.015625)"/>
2563
+ </defs>
2470
2564
  <use xlink:href="#DejaVuSans-Bold-31"/>
2471
- <use xlink:href="#DejaVuSans-Bold-35" transform="translate(69.580078 0)"/>
2565
+ <use xlink:href="#DejaVuSans-Bold-36" transform="translate(69.580078 0)"/>
2472
2566
  <use xlink:href="#DejaVuSans-Bold-2e" transform="translate(139.160156 0)"/>
2473
- <use xlink:href="#DejaVuSans-Bold-31" transform="translate(177.148438 0)"/>
2474
- <use xlink:href="#DejaVuSans-Bold-30" transform="translate(246.728516 0)"/>
2567
+ <use xlink:href="#DejaVuSans-Bold-38" transform="translate(177.148438 0)"/>
2568
+ <use xlink:href="#DejaVuSans-Bold-31" transform="translate(246.728516 0)"/>
2475
2569
  </g>
2476
2570
  </g>
2477
- <g id="text_58">
2478
- <!-- 6.38 -->
2479
- <g style="fill: #263445" transform="translate(104.285683 585.704749) scale(0.11 -0.11)">
2571
+ <g id="text_61">
2572
+ <!-- 6.31 -->
2573
+ <g style="fill: #263445" transform="translate(100.163033 585.704749) scale(0.11 -0.11)">
2480
2574
  <use xlink:href="#DejaVuSans-36"/>
2481
2575
  <use xlink:href="#DejaVuSans-2e" transform="translate(63.623047 0)"/>
2482
2576
  <use xlink:href="#DejaVuSans-33" transform="translate(95.410156 0)"/>
2483
- <use xlink:href="#DejaVuSans-38" transform="translate(159.033203 0)"/>
2577
+ <use xlink:href="#DejaVuSans-31" transform="translate(159.033203 0)"/>
2484
2578
  </g>
2485
2579
  </g>
2486
- <g id="text_59">
2487
- <!-- 38.33 -->
2488
- <g style="fill: #263445" transform="translate(362.418006 615.759938) scale(0.11 -0.11)">
2580
+ <g id="text_62">
2581
+ <!-- 37.96 -->
2582
+ <g style="fill: #263445" transform="translate(338.812315 615.759938) scale(0.11 -0.11)">
2583
+ <defs>
2584
+ <path id="DejaVuSans-37" d="M 525 4666
2585
+ L 3525 4666
2586
+ L 3525 4397
2587
+ L 1831 0
2588
+ L 1172 0
2589
+ L 2766 4134
2590
+ L 525 4134
2591
+ L 525 4666
2592
+ z
2593
+ " transform="scale(0.015625)"/>
2594
+ </defs>
2489
2595
  <use xlink:href="#DejaVuSans-33"/>
2490
- <use xlink:href="#DejaVuSans-38" transform="translate(63.623047 0)"/>
2596
+ <use xlink:href="#DejaVuSans-37" transform="translate(63.623047 0)"/>
2491
2597
  <use xlink:href="#DejaVuSans-2e" transform="translate(127.246094 0)"/>
2492
- <use xlink:href="#DejaVuSans-33" transform="translate(159.033203 0)"/>
2493
- <use xlink:href="#DejaVuSans-33" transform="translate(222.65625 0)"/>
2598
+ <use xlink:href="#DejaVuSans-39" transform="translate(159.033203 0)"/>
2599
+ <use xlink:href="#DejaVuSans-36" transform="translate(222.65625 0)"/>
2494
2600
  </g>
2495
2601
  </g>
2496
- <g id="text_60">
2497
- <!-- 26.44 -->
2498
- <g style="fill: #263445" transform="translate(266.385737 645.815127) scale(0.11 -0.11)">
2499
- <use xlink:href="#DejaVuSans-32"/>
2500
- <use xlink:href="#DejaVuSans-36" transform="translate(63.623047 0)"/>
2602
+ <g id="text_63">
2603
+ <!-- 40.36 -->
2604
+ <g style="fill: #263445" transform="translate(356.913389 645.815127) scale(0.11 -0.11)">
2605
+ <use xlink:href="#DejaVuSans-34"/>
2606
+ <use xlink:href="#DejaVuSans-30" transform="translate(63.623047 0)"/>
2501
2607
  <use xlink:href="#DejaVuSans-2e" transform="translate(127.246094 0)"/>
2502
- <use xlink:href="#DejaVuSans-34" transform="translate(159.033203 0)"/>
2503
- <use xlink:href="#DejaVuSans-34" transform="translate(222.65625 0)"/>
2608
+ <use xlink:href="#DejaVuSans-33" transform="translate(159.033203 0)"/>
2609
+ <use xlink:href="#DejaVuSans-36" transform="translate(222.65625 0)"/>
2504
2610
  </g>
2505
2611
  </g>
2506
- <g id="text_61">
2612
+ <g id="text_64">
2507
2613
  <!-- Map + Set · 200,000 entries -->
2508
2614
  <g style="fill: #263445" transform="translate(44.993365 530.518365) scale(0.12 -0.12)">
2509
2615
  <use xlink:href="#DejaVuSans-Bold-4d"/>
@@ -2539,128 +2645,166 @@ L 428.99976 656.875697
2539
2645
  <g id="axes_5">
2540
2646
  <g id="patch_26">
2541
2647
  <path d="M 44.993365 829.675698
2542
- L 428.99976 829.675698
2543
- L 428.99976 711.318365
2648
+ L 422.340516 829.675698
2649
+ L 422.340516 711.318365
2544
2650
  L 44.993365 711.318365
2545
2651
  z
2546
2652
  " style="fill: #ffffff"/>
2547
2653
  </g>
2548
2654
  <g id="matplotlib.axis_9">
2549
- <g id="xtick_22">
2550
- <g id="line2d_59">
2655
+ <g id="xtick_25">
2656
+ <g id="line2d_65">
2551
2657
  <path d="M 44.993365 829.675698
2552
2658
  L 44.993365 711.318365
2553
- " clip-path="url(#p2d371805ef)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
2659
+ " clip-path="url(#p38d4d0c691)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
2554
2660
  </g>
2555
- <g id="line2d_60">
2661
+ <g id="line2d_66">
2556
2662
  <g>
2557
2663
  <use xlink:href="#m9cd3e2f3f9" x="44.993365" y="829.675698" style="fill: #52606d; stroke: #52606d; stroke-width: 0.8"/>
2558
2664
  </g>
2559
2665
  </g>
2560
- <g id="text_62">
2666
+ <g id="text_65">
2561
2667
  <!-- 0 -->
2562
2668
  <g style="fill: #52606d" transform="translate(41.49399 845.033979) scale(0.11 -0.11)">
2563
2669
  <use xlink:href="#DejaVuSans-30"/>
2564
2670
  </g>
2565
2671
  </g>
2566
2672
  </g>
2567
- <g id="xtick_23">
2568
- <g id="line2d_61">
2569
- <path d="M 119.307971 829.675698
2570
- L 119.307971 711.318365
2571
- " clip-path="url(#p2d371805ef)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
2673
+ <g id="xtick_26">
2674
+ <g id="line2d_67">
2675
+ <path d="M 92.787437 829.675698
2676
+ L 92.787437 711.318365
2677
+ " clip-path="url(#p38d4d0c691)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
2572
2678
  </g>
2573
- <g id="line2d_62">
2679
+ <g id="line2d_68">
2574
2680
  <g>
2575
- <use xlink:href="#m9cd3e2f3f9" x="119.307971" y="829.675698" style="fill: #52606d; stroke: #52606d; stroke-width: 0.8"/>
2681
+ <use xlink:href="#m9cd3e2f3f9" x="92.787437" y="829.675698" style="fill: #52606d; stroke: #52606d; stroke-width: 0.8"/>
2576
2682
  </g>
2577
2683
  </g>
2578
- <g id="text_63">
2684
+ <g id="text_66">
2579
2685
  <!-- 5 -->
2580
- <g style="fill: #52606d" transform="translate(115.808596 845.033979) scale(0.11 -0.11)">
2686
+ <g style="fill: #52606d" transform="translate(89.288062 845.033979) scale(0.11 -0.11)">
2581
2687
  <use xlink:href="#DejaVuSans-35"/>
2582
2688
  </g>
2583
2689
  </g>
2584
2690
  </g>
2585
- <g id="xtick_24">
2586
- <g id="line2d_63">
2587
- <path d="M 193.622577 829.675698
2588
- L 193.622577 711.318365
2589
- " clip-path="url(#p2d371805ef)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
2691
+ <g id="xtick_27">
2692
+ <g id="line2d_69">
2693
+ <path d="M 140.581508 829.675698
2694
+ L 140.581508 711.318365
2695
+ " clip-path="url(#p38d4d0c691)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
2590
2696
  </g>
2591
- <g id="line2d_64">
2697
+ <g id="line2d_70">
2592
2698
  <g>
2593
- <use xlink:href="#m9cd3e2f3f9" x="193.622577" y="829.675698" style="fill: #52606d; stroke: #52606d; stroke-width: 0.8"/>
2699
+ <use xlink:href="#m9cd3e2f3f9" x="140.581508" y="829.675698" style="fill: #52606d; stroke: #52606d; stroke-width: 0.8"/>
2594
2700
  </g>
2595
2701
  </g>
2596
- <g id="text_64">
2702
+ <g id="text_67">
2597
2703
  <!-- 10 -->
2598
- <g style="fill: #52606d" transform="translate(186.623827 845.033979) scale(0.11 -0.11)">
2704
+ <g style="fill: #52606d" transform="translate(133.582758 845.033979) scale(0.11 -0.11)">
2599
2705
  <use xlink:href="#DejaVuSans-31"/>
2600
2706
  <use xlink:href="#DejaVuSans-30" transform="translate(63.623047 0)"/>
2601
2707
  </g>
2602
2708
  </g>
2603
2709
  </g>
2604
- <g id="xtick_25">
2605
- <g id="line2d_65">
2606
- <path d="M 267.937182 829.675698
2607
- L 267.937182 711.318365
2608
- " clip-path="url(#p2d371805ef)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
2710
+ <g id="xtick_28">
2711
+ <g id="line2d_71">
2712
+ <path d="M 188.37558 829.675698
2713
+ L 188.37558 711.318365
2714
+ " clip-path="url(#p38d4d0c691)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
2609
2715
  </g>
2610
- <g id="line2d_66">
2716
+ <g id="line2d_72">
2611
2717
  <g>
2612
- <use xlink:href="#m9cd3e2f3f9" x="267.937182" y="829.675698" style="fill: #52606d; stroke: #52606d; stroke-width: 0.8"/>
2718
+ <use xlink:href="#m9cd3e2f3f9" x="188.37558" y="829.675698" style="fill: #52606d; stroke: #52606d; stroke-width: 0.8"/>
2613
2719
  </g>
2614
2720
  </g>
2615
- <g id="text_65">
2721
+ <g id="text_68">
2616
2722
  <!-- 15 -->
2617
- <g style="fill: #52606d" transform="translate(260.938432 845.033979) scale(0.11 -0.11)">
2723
+ <g style="fill: #52606d" transform="translate(181.37683 845.033979) scale(0.11 -0.11)">
2618
2724
  <use xlink:href="#DejaVuSans-31"/>
2619
2725
  <use xlink:href="#DejaVuSans-35" transform="translate(63.623047 0)"/>
2620
2726
  </g>
2621
2727
  </g>
2622
2728
  </g>
2623
- <g id="xtick_26">
2624
- <g id="line2d_67">
2625
- <path d="M 342.251788 829.675698
2626
- L 342.251788 711.318365
2627
- " clip-path="url(#p2d371805ef)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
2729
+ <g id="xtick_29">
2730
+ <g id="line2d_73">
2731
+ <path d="M 236.169651 829.675698
2732
+ L 236.169651 711.318365
2733
+ " clip-path="url(#p38d4d0c691)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
2628
2734
  </g>
2629
- <g id="line2d_68">
2735
+ <g id="line2d_74">
2630
2736
  <g>
2631
- <use xlink:href="#m9cd3e2f3f9" x="342.251788" y="829.675698" style="fill: #52606d; stroke: #52606d; stroke-width: 0.8"/>
2737
+ <use xlink:href="#m9cd3e2f3f9" x="236.169651" y="829.675698" style="fill: #52606d; stroke: #52606d; stroke-width: 0.8"/>
2632
2738
  </g>
2633
2739
  </g>
2634
- <g id="text_66">
2740
+ <g id="text_69">
2635
2741
  <!-- 20 -->
2636
- <g style="fill: #52606d" transform="translate(335.253038 845.033979) scale(0.11 -0.11)">
2742
+ <g style="fill: #52606d" transform="translate(229.170901 845.033979) scale(0.11 -0.11)">
2637
2743
  <use xlink:href="#DejaVuSans-32"/>
2638
2744
  <use xlink:href="#DejaVuSans-30" transform="translate(63.623047 0)"/>
2639
2745
  </g>
2640
2746
  </g>
2641
2747
  </g>
2642
- <g id="xtick_27">
2643
- <g id="line2d_69">
2644
- <path d="M 416.566394 829.675698
2645
- L 416.566394 711.318365
2646
- " clip-path="url(#p2d371805ef)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
2748
+ <g id="xtick_30">
2749
+ <g id="line2d_75">
2750
+ <path d="M 283.963723 829.675698
2751
+ L 283.963723 711.318365
2752
+ " clip-path="url(#p38d4d0c691)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
2647
2753
  </g>
2648
- <g id="line2d_70">
2754
+ <g id="line2d_76">
2649
2755
  <g>
2650
- <use xlink:href="#m9cd3e2f3f9" x="416.566394" y="829.675698" style="fill: #52606d; stroke: #52606d; stroke-width: 0.8"/>
2756
+ <use xlink:href="#m9cd3e2f3f9" x="283.963723" y="829.675698" style="fill: #52606d; stroke: #52606d; stroke-width: 0.8"/>
2651
2757
  </g>
2652
2758
  </g>
2653
- <g id="text_67">
2759
+ <g id="text_70">
2654
2760
  <!-- 25 -->
2655
- <g style="fill: #52606d" transform="translate(409.567644 845.033979) scale(0.11 -0.11)">
2761
+ <g style="fill: #52606d" transform="translate(276.964973 845.033979) scale(0.11 -0.11)">
2656
2762
  <use xlink:href="#DejaVuSans-32"/>
2657
2763
  <use xlink:href="#DejaVuSans-35" transform="translate(63.623047 0)"/>
2658
2764
  </g>
2659
2765
  </g>
2660
2766
  </g>
2661
- <g id="text_68">
2767
+ <g id="xtick_31">
2768
+ <g id="line2d_77">
2769
+ <path d="M 331.757795 829.675698
2770
+ L 331.757795 711.318365
2771
+ " clip-path="url(#p38d4d0c691)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
2772
+ </g>
2773
+ <g id="line2d_78">
2774
+ <g>
2775
+ <use xlink:href="#m9cd3e2f3f9" x="331.757795" y="829.675698" style="fill: #52606d; stroke: #52606d; stroke-width: 0.8"/>
2776
+ </g>
2777
+ </g>
2778
+ <g id="text_71">
2779
+ <!-- 30 -->
2780
+ <g style="fill: #52606d" transform="translate(324.759045 845.033979) scale(0.11 -0.11)">
2781
+ <use xlink:href="#DejaVuSans-33"/>
2782
+ <use xlink:href="#DejaVuSans-30" transform="translate(63.623047 0)"/>
2783
+ </g>
2784
+ </g>
2785
+ </g>
2786
+ <g id="xtick_32">
2787
+ <g id="line2d_79">
2788
+ <path d="M 379.551866 829.675698
2789
+ L 379.551866 711.318365
2790
+ " clip-path="url(#p38d4d0c691)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
2791
+ </g>
2792
+ <g id="line2d_80">
2793
+ <g>
2794
+ <use xlink:href="#m9cd3e2f3f9" x="379.551866" y="829.675698" style="fill: #52606d; stroke: #52606d; stroke-width: 0.8"/>
2795
+ </g>
2796
+ </g>
2797
+ <g id="text_72">
2798
+ <!-- 35 -->
2799
+ <g style="fill: #52606d" transform="translate(372.553116 845.033979) scale(0.11 -0.11)">
2800
+ <use xlink:href="#DejaVuSans-33"/>
2801
+ <use xlink:href="#DejaVuSans-35" transform="translate(63.623047 0)"/>
2802
+ </g>
2803
+ </g>
2804
+ </g>
2805
+ <g id="text_73">
2662
2806
  <!-- Milliseconds · lower is faster -->
2663
- <g style="fill: #263445" transform="translate(166.559062 858.920073) scale(0.1 -0.1)">
2807
+ <g style="fill: #263445" transform="translate(163.229441 858.920073) scale(0.1 -0.1)">
2664
2808
  <use xlink:href="#DejaVuSans-4d"/>
2665
2809
  <use xlink:href="#DejaVuSans-69" transform="translate(86.279297 0)"/>
2666
2810
  <use xlink:href="#DejaVuSans-6c" transform="translate(114.0625 0)"/>
@@ -2696,8 +2840,8 @@ L 416.566394 711.318365
2696
2840
  </g>
2697
2841
  <g id="matplotlib.axis_10">
2698
2842
  <g id="ytick_17">
2699
- <g id="line2d_71"/>
2700
- <g id="text_69">
2843
+ <g id="line2d_81"/>
2844
+ <g id="text_74">
2701
2845
  <!-- August -->
2702
2846
  <g style="fill: #263445" transform="translate(3.00024 729.593389) scale(0.11 -0.11)">
2703
2847
  <use xlink:href="#DejaVuSans-41"/>
@@ -2710,8 +2854,8 @@ L 416.566394 711.318365
2710
2854
  </g>
2711
2855
  </g>
2712
2856
  <g id="ytick_18">
2713
- <g id="line2d_72"/>
2714
- <g id="text_70">
2857
+ <g id="line2d_82"/>
2858
+ <g id="text_75">
2715
2859
  <!-- C -->
2716
2860
  <g style="fill: #263445" transform="translate(33.812271 759.648578) scale(0.11 -0.11)">
2717
2861
  <use xlink:href="#DejaVuSans-43"/>
@@ -2719,8 +2863,8 @@ L 416.566394 711.318365
2719
2863
  </g>
2720
2864
  </g>
2721
2865
  <g id="ytick_19">
2722
- <g id="line2d_73"/>
2723
- <g id="text_71">
2866
+ <g id="line2d_83"/>
2867
+ <g id="text_76">
2724
2868
  <!-- Node -->
2725
2869
  <g style="fill: #263445" transform="translate(12.781646 789.703766) scale(0.11 -0.11)">
2726
2870
  <use xlink:href="#DejaVuSans-4e"/>
@@ -2731,8 +2875,8 @@ L 416.566394 711.318365
2731
2875
  </g>
2732
2876
  </g>
2733
2877
  <g id="ytick_20">
2734
- <g id="line2d_74"/>
2735
- <g id="text_72">
2878
+ <g id="line2d_84"/>
2879
+ <g id="text_77">
2736
2880
  <!-- Python -->
2737
2881
  <g style="fill: #263445" transform="translate(3.364615 819.758955) scale(0.11 -0.11)">
2738
2882
  <use xlink:href="#DejaVuSans-50"/>
@@ -2747,112 +2891,80 @@ L 416.566394 711.318365
2747
2891
  </g>
2748
2892
  <g id="patch_27">
2749
2893
  <path d="M 44.993365 716.698244
2750
- L 147.850353 716.698244
2751
- L 147.850353 734.130253
2894
+ L 114.059383 716.698244
2895
+ L 114.059383 734.130253
2752
2896
  L 44.993365 734.130253
2753
2897
  z
2754
- " clip-path="url(#p2d371805ef)" style="fill: #087e8b"/>
2898
+ " clip-path="url(#p38d4d0c691)" style="fill: #087e8b"/>
2755
2899
  </g>
2756
2900
  <g id="patch_28">
2757
2901
  <path d="M 44.993365 746.753432
2758
- L 74.804669 746.753432
2759
- L 74.804669 764.185442
2902
+ L 63.558571 746.753432
2903
+ L 63.558571 764.185442
2760
2904
  L 44.993365 764.185442
2761
2905
  z
2762
- " clip-path="url(#p2d371805ef)" style="fill: #6c7789"/>
2906
+ " clip-path="url(#p38d4d0c691)" style="fill: #6c7789"/>
2763
2907
  </g>
2764
2908
  <g id="patch_29">
2765
2909
  <path d="M 44.993365 776.808621
2766
- L 354.675942 776.808621
2767
- L 354.675942 794.24063
2910
+ L 247.276391 776.808621
2911
+ L 247.276391 794.24063
2768
2912
  L 44.993365 794.24063
2769
2913
  z
2770
- " clip-path="url(#p2d371805ef)" style="fill: #587f25"/>
2914
+ " clip-path="url(#p38d4d0c691)" style="fill: #587f25"/>
2771
2915
  </g>
2772
2916
  <g id="patch_30">
2773
2917
  <path d="M 44.993365 806.863809
2774
- L 330.28837 806.863809
2775
- L 330.28837 824.295819
2918
+ L 349.305584 806.863809
2919
+ L 349.305584 824.295819
2776
2920
  L 44.993365 824.295819
2777
2921
  z
2778
- " clip-path="url(#p2d371805ef)" style="fill: #9265b8"/>
2922
+ " clip-path="url(#p38d4d0c691)" style="fill: #9265b8"/>
2779
2923
  </g>
2780
2924
  <g id="patch_31">
2781
2925
  <path d="M 44.993365 829.675698
2782
- L 428.99976 829.675698
2926
+ L 422.340516 829.675698
2783
2927
  " style="fill: none; stroke: #c4cbd2; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/>
2784
2928
  </g>
2785
- <g id="text_73">
2786
- <!-- 6.92 -->
2787
- <g style="fill: #263445" transform="translate(155.592417 728.449561) scale(0.11 -0.11)">
2788
- <defs>
2789
- <path id="DejaVuSans-Bold-39" d="M 641 103
2790
- L 641 966
2791
- Q 928 831 1190 764
2792
- Q 1453 697 1709 697
2793
- Q 2247 697 2547 995
2794
- Q 2847 1294 2900 1881
2795
- Q 2688 1725 2447 1647
2796
- Q 2206 1569 1925 1569
2797
- Q 1209 1569 770 1986
2798
- Q 331 2403 331 3084
2799
- Q 331 3838 820 4291
2800
- Q 1309 4744 2131 4744
2801
- Q 3044 4744 3544 4128
2802
- Q 4044 3513 4044 2388
2803
- Q 4044 1231 3459 570
2804
- Q 2875 -91 1856 -91
2805
- Q 1528 -91 1228 -42
2806
- Q 928 6 641 103
2807
- z
2808
- M 2125 2350
2809
- Q 2441 2350 2600 2554
2810
- Q 2759 2759 2759 3169
2811
- Q 2759 3575 2600 3781
2812
- Q 2441 3988 2125 3988
2813
- Q 1809 3988 1650 3781
2814
- Q 1491 3575 1491 3169
2815
- Q 1491 2759 1650 2554
2816
- Q 1809 2350 2125 2350
2817
- z
2818
- " transform="scale(0.015625)"/>
2819
- </defs>
2820
- <use xlink:href="#DejaVuSans-Bold-36"/>
2929
+ <g id="text_78">
2930
+ <!-- 7.23 -->
2931
+ <g style="fill: #263445" transform="translate(121.667188 728.449561) scale(0.11 -0.11)">
2932
+ <use xlink:href="#DejaVuSans-Bold-37"/>
2821
2933
  <use xlink:href="#DejaVuSans-Bold-2e" transform="translate(69.580078 0)"/>
2822
- <use xlink:href="#DejaVuSans-Bold-39" transform="translate(107.568359 0)"/>
2823
- <use xlink:href="#DejaVuSans-Bold-32" transform="translate(177.148438 0)"/>
2934
+ <use xlink:href="#DejaVuSans-Bold-32" transform="translate(107.568359 0)"/>
2935
+ <use xlink:href="#DejaVuSans-Bold-33" transform="translate(177.148438 0)"/>
2824
2936
  </g>
2825
2937
  </g>
2826
- <g id="text_74">
2827
- <!-- 2.01 -->
2828
- <g style="fill: #263445" transform="translate(82.546734 758.504749) scale(0.11 -0.11)">
2829
- <use xlink:href="#DejaVuSans-32"/>
2938
+ <g id="text_79">
2939
+ <!-- 1.94 -->
2940
+ <g style="fill: #263445" transform="translate(71.166376 758.504749) scale(0.11 -0.11)">
2941
+ <use xlink:href="#DejaVuSans-31"/>
2830
2942
  <use xlink:href="#DejaVuSans-2e" transform="translate(63.623047 0)"/>
2831
- <use xlink:href="#DejaVuSans-30" transform="translate(95.410156 0)"/>
2832
- <use xlink:href="#DejaVuSans-31" transform="translate(159.033203 0)"/>
2943
+ <use xlink:href="#DejaVuSans-39" transform="translate(95.410156 0)"/>
2944
+ <use xlink:href="#DejaVuSans-34" transform="translate(159.033203 0)"/>
2833
2945
  </g>
2834
2946
  </g>
2835
- <g id="text_75">
2836
- <!-- 20.84 -->
2837
- <g style="fill: #263445" transform="translate(362.418006 788.559938) scale(0.11 -0.11)">
2947
+ <g id="text_80">
2948
+ <!-- 21.16 -->
2949
+ <g style="fill: #263445" transform="translate(254.884197 788.559938) scale(0.11 -0.11)">
2838
2950
  <use xlink:href="#DejaVuSans-32"/>
2839
- <use xlink:href="#DejaVuSans-30" transform="translate(63.623047 0)"/>
2951
+ <use xlink:href="#DejaVuSans-31" transform="translate(63.623047 0)"/>
2840
2952
  <use xlink:href="#DejaVuSans-2e" transform="translate(127.246094 0)"/>
2841
- <use xlink:href="#DejaVuSans-38" transform="translate(159.033203 0)"/>
2842
- <use xlink:href="#DejaVuSans-34" transform="translate(222.65625 0)"/>
2953
+ <use xlink:href="#DejaVuSans-31" transform="translate(159.033203 0)"/>
2954
+ <use xlink:href="#DejaVuSans-36" transform="translate(222.65625 0)"/>
2843
2955
  </g>
2844
2956
  </g>
2845
- <g id="text_76">
2846
- <!-- 19.20 -->
2847
- <g style="fill: #263445" transform="translate(338.030435 818.615127) scale(0.11 -0.11)">
2848
- <use xlink:href="#DejaVuSans-31"/>
2849
- <use xlink:href="#DejaVuSans-39" transform="translate(63.623047 0)"/>
2957
+ <g id="text_81">
2958
+ <!-- 31.84 -->
2959
+ <g style="fill: #263445" transform="translate(356.913389 818.615127) scale(0.11 -0.11)">
2960
+ <use xlink:href="#DejaVuSans-33"/>
2961
+ <use xlink:href="#DejaVuSans-31" transform="translate(63.623047 0)"/>
2850
2962
  <use xlink:href="#DejaVuSans-2e" transform="translate(127.246094 0)"/>
2851
- <use xlink:href="#DejaVuSans-32" transform="translate(159.033203 0)"/>
2852
- <use xlink:href="#DejaVuSans-30" transform="translate(222.65625 0)"/>
2963
+ <use xlink:href="#DejaVuSans-38" transform="translate(159.033203 0)"/>
2964
+ <use xlink:href="#DejaVuSans-34" transform="translate(222.65625 0)"/>
2853
2965
  </g>
2854
2966
  </g>
2855
- <g id="text_77">
2967
+ <g id="text_82">
2856
2968
  <!-- JSON · 5,000 round trips -->
2857
2969
  <g style="fill: #263445" transform="translate(44.993365 703.318365) scale(0.12 -0.12)">
2858
2970
  <defs>
@@ -2902,6 +3014,31 @@ L 1728 0
2902
3014
  L 588 0
2903
3015
  L 588 4666
2904
3016
  z
3017
+ " transform="scale(0.015625)"/>
3018
+ <path id="DejaVuSans-Bold-35" d="M 678 4666
3019
+ L 3669 4666
3020
+ L 3669 3781
3021
+ L 1638 3781
3022
+ L 1638 3059
3023
+ Q 1775 3097 1914 3117
3024
+ Q 2053 3138 2203 3138
3025
+ Q 3056 3138 3531 2711
3026
+ Q 4006 2284 4006 1522
3027
+ Q 4006 766 3489 337
3028
+ Q 2972 -91 2053 -91
3029
+ Q 1656 -91 1267 -14
3030
+ Q 878 63 494 219
3031
+ L 494 1166
3032
+ Q 875 947 1217 837
3033
+ Q 1559 728 1863 728
3034
+ Q 2300 728 2551 942
3035
+ Q 2803 1156 2803 1522
3036
+ Q 2803 1891 2551 2103
3037
+ Q 2300 2316 1863 2316
3038
+ Q 1603 2316 1309 2248
3039
+ Q 1016 2181 678 2041
3040
+ L 678 4666
3041
+ z
2905
3042
  " transform="scale(0.015625)"/>
2906
3043
  <path id="DejaVuSans-Bold-64" d="M 2919 2988
2907
3044
  L 2919 4863
@@ -2959,20 +3096,20 @@ z
2959
3096
  </g>
2960
3097
  </g>
2961
3098
  <defs>
2962
- <clipPath id="pf8f6cfcaad">
2963
- <rect x="44.993365" y="20.118365" width="384.006395" height="118.357332"/>
3099
+ <clipPath id="pf401f257af">
3100
+ <rect x="44.993365" y="20.118365" width="377.347151" height="118.357332"/>
2964
3101
  </clipPath>
2965
- <clipPath id="p6cacf997e3">
2966
- <rect x="44.993365" y="192.918365" width="384.006395" height="118.357333"/>
3102
+ <clipPath id="pe9adc960e1">
3103
+ <rect x="44.993365" y="192.918365" width="377.347151" height="118.357333"/>
2967
3104
  </clipPath>
2968
- <clipPath id="p8956ccee4a">
2969
- <rect x="44.993365" y="365.718365" width="384.006395" height="118.357332"/>
3105
+ <clipPath id="p22bf70c728">
3106
+ <rect x="44.993365" y="365.718365" width="377.347151" height="118.357332"/>
2970
3107
  </clipPath>
2971
- <clipPath id="p1ce382a11a">
2972
- <rect x="44.993365" y="538.518365" width="384.006395" height="118.357333"/>
3108
+ <clipPath id="p9ec359dc4c">
3109
+ <rect x="44.993365" y="538.518365" width="377.347151" height="118.357333"/>
2973
3110
  </clipPath>
2974
- <clipPath id="p2d371805ef">
2975
- <rect x="44.993365" y="711.318365" width="384.006395" height="118.357333"/>
3111
+ <clipPath id="p38d4d0c691">
3112
+ <rect x="44.993365" y="711.318365" width="377.347151" height="118.357333"/>
2976
3113
  </clipPath>
2977
3114
  </defs>
2978
3115
  </svg>