sparkforensics-cli 0.1.0 → 0.2.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 (360) hide show
  1. package/README.md +6 -0
  2. package/bin/sparkforensics-analyze.mjs +113 -48
  3. package/export-template/docs/404.html +25 -0
  4. package/export-template/docs/assets/app.CndaAS6v.js +1 -0
  5. package/export-template/docs/assets/aqe-loop.IwQSATHw.svg +1 -0
  6. package/export-template/docs/assets/aqe-loop.dark.DGbaxqJE.svg +1 -0
  7. package/export-template/docs/assets/broadcast-vs-shuffle.Db4WY1XK.svg +1 -0
  8. package/export-template/docs/assets/broadcast-vs-shuffle.dark.C7Bxs0mG.svg +1 -0
  9. package/export-template/docs/assets/cache-lifecycle.dark.B-hS7AgU.svg +1 -0
  10. package/export-template/docs/assets/cache-lifecycle.rEOVYQNU.svg +1 -0
  11. package/export-template/docs/assets/chunks/@localSearchIndexroot.DNY8bVcl.js +1 -0
  12. package/export-template/docs/assets/chunks/VPLocalSearchBox.yJbZbsEo.js +9 -0
  13. package/export-template/docs/assets/chunks/duplicate-plan-subtree.dark.Cdp70QhV.js +1 -0
  14. package/export-template/docs/assets/chunks/framework.DSg0KOwT.js +20 -0
  15. package/export-template/docs/assets/chunks/retry-escalation-ladder.dark.DHipdJgZ.js +1 -0
  16. package/export-template/docs/assets/chunks/theme.Df2VAG9w.js +2 -0
  17. package/export-template/docs/assets/cold-start-timeline.DxC_Sc7w.svg +1 -0
  18. package/export-template/docs/assets/cold-start-timeline.dark.CZ17YcAG.svg +1 -0
  19. package/export-template/docs/assets/columnar-layout.PghGeOEA.svg +1 -0
  20. package/export-template/docs/assets/columnar-layout.dark.BVNlz0ff.svg +1 -0
  21. package/export-template/docs/assets/container-memory.DIO0AnIm.svg +1 -0
  22. package/export-template/docs/assets/container-memory.dark.CP-5zuCl.svg +1 -0
  23. package/export-template/docs/assets/contributor-guide_architecture_board-widgets.md.B-OsL91z.js +1 -0
  24. package/export-template/docs/assets/contributor-guide_architecture_board-widgets.md.B-OsL91z.lean.js +1 -0
  25. package/export-template/docs/assets/contributor-guide_architecture_detector-contract.md.BOeH4d1J.js +1 -0
  26. package/export-template/docs/assets/contributor-guide_architecture_detector-contract.md.BOeH4d1J.lean.js +1 -0
  27. package/export-template/docs/assets/contributor-guide_architecture_drill-down.md.BtPdlM7r.js +1 -0
  28. package/export-template/docs/assets/contributor-guide_architecture_drill-down.md.BtPdlM7r.lean.js +1 -0
  29. package/export-template/docs/assets/contributor-guide_architecture_impact-estimation.md.DYCDPgkh.js +1 -0
  30. package/export-template/docs/assets/contributor-guide_architecture_impact-estimation.md.DYCDPgkh.lean.js +1 -0
  31. package/export-template/docs/assets/contributor-guide_architecture_index.md.3TO9ic6w.js +1 -0
  32. package/export-template/docs/assets/contributor-guide_architecture_index.md.3TO9ic6w.lean.js +1 -0
  33. package/export-template/docs/assets/contributor-guide_architecture_overview.md.CehiRmGn.js +1 -0
  34. package/export-template/docs/assets/contributor-guide_architecture_overview.md.CehiRmGn.lean.js +1 -0
  35. package/export-template/docs/assets/contributor-guide_architecture_state-and-history.md.m3S3UdMk.js +1 -0
  36. package/export-template/docs/assets/contributor-guide_architecture_state-and-history.md.m3S3UdMk.lean.js +1 -0
  37. package/export-template/docs/assets/contributor-guide_architecture_widget-rendering.md.DbqPf2OT.js +1 -0
  38. package/export-template/docs/assets/contributor-guide_architecture_widget-rendering.md.DbqPf2OT.lean.js +1 -0
  39. package/export-template/docs/assets/contributor-guide_architecture_worker-protocol.md.B93qJ_tT.js +6 -0
  40. package/export-template/docs/assets/contributor-guide_architecture_worker-protocol.md.B93qJ_tT.lean.js +1 -0
  41. package/export-template/docs/assets/contributor-guide_contributing.md.CvRsdr6J.js +1 -0
  42. package/export-template/docs/assets/contributor-guide_contributing.md.CvRsdr6J.lean.js +1 -0
  43. package/export-template/docs/assets/contributor-guide_development-setup.md.DvAN_9mK.js +12 -0
  44. package/export-template/docs/assets/contributor-guide_development-setup.md.DvAN_9mK.lean.js +1 -0
  45. package/export-template/docs/assets/contributor-guide_testing.md.6rIKqSyY.js +1 -0
  46. package/export-template/docs/assets/contributor-guide_testing.md.6rIKqSyY.lean.js +1 -0
  47. package/export-template/docs/assets/dag-stages.DSz_S937.svg +1 -0
  48. package/export-template/docs/assets/dag-stages.dark.F72UzxH4.svg +1 -0
  49. package/export-template/docs/assets/driver-executor.D5pQ7YN1.svg +1 -0
  50. package/export-template/docs/assets/driver-executor.dark.BmX9cPvh.svg +1 -0
  51. package/export-template/docs/assets/duplicate-plan-subtree.B4cvN6fj.svg +1 -0
  52. package/export-template/docs/assets/duplicate-plan-subtree.dark.Dw8wS0Ag.svg +1 -0
  53. package/export-template/docs/assets/index.md.CHJVslga.js +1 -0
  54. package/export-template/docs/assets/index.md.CHJVslga.lean.js +1 -0
  55. package/export-template/docs/assets/inter-italic-cyrillic-ext.r48I6akx.woff2 +0 -0
  56. package/export-template/docs/assets/inter-italic-cyrillic.By2_1cv3.woff2 +0 -0
  57. package/export-template/docs/assets/inter-italic-greek-ext.1u6EdAuj.woff2 +0 -0
  58. package/export-template/docs/assets/inter-italic-greek.DJ8dCoTZ.woff2 +0 -0
  59. package/export-template/docs/assets/inter-italic-latin-ext.CN1xVJS-.woff2 +0 -0
  60. package/export-template/docs/assets/inter-italic-latin.C2AdPX0b.woff2 +0 -0
  61. package/export-template/docs/assets/inter-italic-vietnamese.BSbpV94h.woff2 +0 -0
  62. package/export-template/docs/assets/inter-roman-cyrillic-ext.BBPuwvHQ.woff2 +0 -0
  63. package/export-template/docs/assets/inter-roman-cyrillic.C5lxZ8CY.woff2 +0 -0
  64. package/export-template/docs/assets/inter-roman-greek-ext.CqjqNYQ-.woff2 +0 -0
  65. package/export-template/docs/assets/inter-roman-greek.BBVDIX6e.woff2 +0 -0
  66. package/export-template/docs/assets/inter-roman-latin-ext.4ZJIpNVo.woff2 +0 -0
  67. package/export-template/docs/assets/inter-roman-latin.Di8DUHzh.woff2 +0 -0
  68. package/export-template/docs/assets/inter-roman-vietnamese.BjW4sHH5.woff2 +0 -0
  69. package/export-template/docs/assets/join-strategy.C_FvrCEo.svg +1 -0
  70. package/export-template/docs/assets/join-strategy.dark.ChMLnNII.svg +1 -0
  71. package/export-template/docs/assets/memory-borrowing.BqQRJg0u.svg +1 -0
  72. package/export-template/docs/assets/memory-borrowing.dark.Yhh20O9C.svg +1 -0
  73. package/export-template/docs/assets/memory-regions.XHvO7jHG.svg +1 -0
  74. package/export-template/docs/assets/memory-regions.dark.D4TP9_08.svg +1 -0
  75. package/export-template/docs/assets/repartition-vs-coalesce.BovLRrpj.svg +1 -0
  76. package/export-template/docs/assets/repartition-vs-coalesce.dark.BhAczKZQ.svg +1 -0
  77. package/export-template/docs/assets/retry-escalation-ladder.DyTKJJmZ.svg +1 -0
  78. package/export-template/docs/assets/retry-escalation-ladder.dark.BdsabtU3.svg +1 -0
  79. package/export-template/docs/assets/shuffle-map-reduce.KuOEZVmg.svg +1 -0
  80. package/export-template/docs/assets/shuffle-map-reduce.dark.BgQZnFSb.svg +1 -0
  81. package/export-template/docs/assets/spill-classification.BU2euYDO.svg +1 -0
  82. package/export-template/docs/assets/spill-classification.dark.D7i1M40d.svg +1 -0
  83. package/export-template/docs/assets/style.DXOMCXxn.css +1 -0
  84. package/export-template/docs/assets/tuning-reference_anti-patterns.md.Df1YMIHu.js +1 -0
  85. package/export-template/docs/assets/tuning-reference_anti-patterns.md.Df1YMIHu.lean.js +1 -0
  86. package/export-template/docs/assets/tuning-reference_aqe.md.BIsCtLzm.js +1 -0
  87. package/export-template/docs/assets/tuning-reference_aqe.md.BIsCtLzm.lean.js +1 -0
  88. package/export-template/docs/assets/tuning-reference_bottleneck-broadcast-sizing.md.CEstB3Ia.js +1 -0
  89. package/export-template/docs/assets/tuning-reference_bottleneck-broadcast-sizing.md.CEstB3Ia.lean.js +1 -0
  90. package/export-template/docs/assets/tuning-reference_bottleneck-cold-start.md.CEuy-72y.js +7 -0
  91. package/export-template/docs/assets/tuning-reference_bottleneck-cold-start.md.CEuy-72y.lean.js +1 -0
  92. package/export-template/docs/assets/tuning-reference_bottleneck-duplicate-plan-subtree.md.CIohQDfn.js +1 -0
  93. package/export-template/docs/assets/tuning-reference_bottleneck-duplicate-plan-subtree.md.CIohQDfn.lean.js +1 -0
  94. package/export-template/docs/assets/tuning-reference_bottleneck-failures.md.4z5BXGJ2.js +6 -0
  95. package/export-template/docs/assets/tuning-reference_bottleneck-failures.md.4z5BXGJ2.lean.js +1 -0
  96. package/export-template/docs/assets/tuning-reference_bottleneck-gc.md.DSxzZRK7.js +6 -0
  97. package/export-template/docs/assets/tuning-reference_bottleneck-gc.md.DSxzZRK7.lean.js +1 -0
  98. package/export-template/docs/assets/tuning-reference_bottleneck-job-failure-rate.md.BaJl__1W.js +8 -0
  99. package/export-template/docs/assets/tuning-reference_bottleneck-job-failure-rate.md.BaJl__1W.lean.js +1 -0
  100. package/export-template/docs/assets/tuning-reference_bottleneck-memory-utilization.md.DbP-SJZc.js +7 -0
  101. package/export-template/docs/assets/tuning-reference_bottleneck-memory-utilization.md.DbP-SJZc.lean.js +1 -0
  102. package/export-template/docs/assets/tuning-reference_bottleneck-retry-waste.md.D5JMjVOt.js +1 -0
  103. package/export-template/docs/assets/tuning-reference_bottleneck-retry-waste.md.D5JMjVOt.lean.js +1 -0
  104. package/export-template/docs/assets/tuning-reference_bottleneck-shuffle.md.CM-nTmIH.js +12 -0
  105. package/export-template/docs/assets/tuning-reference_bottleneck-shuffle.md.CM-nTmIH.lean.js +1 -0
  106. package/export-template/docs/assets/tuning-reference_bottleneck-skew.md.BdUwiDhn.js +14 -0
  107. package/export-template/docs/assets/tuning-reference_bottleneck-skew.md.BdUwiDhn.lean.js +1 -0
  108. package/export-template/docs/assets/tuning-reference_bottleneck-slow-host.md.BlIo6UDW.js +7 -0
  109. package/export-template/docs/assets/tuning-reference_bottleneck-slow-host.md.BlIo6UDW.lean.js +1 -0
  110. package/export-template/docs/assets/tuning-reference_bottleneck-small-files.md.B8kloyx8.js +5 -0
  111. package/export-template/docs/assets/tuning-reference_bottleneck-small-files.md.B8kloyx8.lean.js +1 -0
  112. package/export-template/docs/assets/tuning-reference_bottleneck-spill.md.PNH7mITt.js +6 -0
  113. package/export-template/docs/assets/tuning-reference_bottleneck-spill.md.PNH7mITt.lean.js +1 -0
  114. package/export-template/docs/assets/tuning-reference_bottleneck-straggler.md.DY36fHN5.js +7 -0
  115. package/export-template/docs/assets/tuning-reference_bottleneck-straggler.md.DY36fHN5.lean.js +1 -0
  116. package/export-template/docs/assets/tuning-reference_bottleneck-tiny-tasks.md.QTV7O8kU.js +8 -0
  117. package/export-template/docs/assets/tuning-reference_bottleneck-tiny-tasks.md.QTV7O8kU.lean.js +1 -0
  118. package/export-template/docs/assets/tuning-reference_bottleneck-utilization.md.DTiueZC3.js +5 -0
  119. package/export-template/docs/assets/tuning-reference_bottleneck-utilization.md.DTiueZC3.lean.js +1 -0
  120. package/export-template/docs/assets/tuning-reference_caching.md.B7aQ8asB.js +1 -0
  121. package/export-template/docs/assets/tuning-reference_caching.md.B7aQ8asB.lean.js +1 -0
  122. package/export-template/docs/assets/tuning-reference_cluster-config.md.ZVmDGsQ3.js +1 -0
  123. package/export-template/docs/assets/tuning-reference_cluster-config.md.ZVmDGsQ3.lean.js +1 -0
  124. package/export-template/docs/assets/tuning-reference_config.md.UvveiWG3.js +1 -0
  125. package/export-template/docs/assets/tuning-reference_config.md.UvveiWG3.lean.js +1 -0
  126. package/export-template/docs/assets/tuning-reference_data-formats.md.bjCAWH3N.js +1 -0
  127. package/export-template/docs/assets/tuning-reference_data-formats.md.bjCAWH3N.lean.js +1 -0
  128. package/export-template/docs/assets/tuning-reference_index.md.BQ_NooMV.js +1 -0
  129. package/export-template/docs/assets/tuning-reference_index.md.BQ_NooMV.lean.js +1 -0
  130. package/export-template/docs/assets/tuning-reference_intro.md.CobD-lGB.js +1 -0
  131. package/export-template/docs/assets/tuning-reference_intro.md.CobD-lGB.lean.js +1 -0
  132. package/export-template/docs/assets/tuning-reference_joins.md.BtKs_CuW.js +1 -0
  133. package/export-template/docs/assets/tuning-reference_joins.md.BtKs_CuW.lean.js +1 -0
  134. package/export-template/docs/assets/tuning-reference_memory-model.md.DhT-n4y3.js +1 -0
  135. package/export-template/docs/assets/tuning-reference_memory-model.md.DhT-n4y3.lean.js +1 -0
  136. package/export-template/docs/assets/tuning-reference_metrics.md.mLOh7Apj.js +1 -0
  137. package/export-template/docs/assets/tuning-reference_metrics.md.mLOh7Apj.lean.js +1 -0
  138. package/export-template/docs/assets/tuning-reference_partitioning.md.q0zKF_8X.js +1 -0
  139. package/export-template/docs/assets/tuning-reference_partitioning.md.q0zKF_8X.lean.js +1 -0
  140. package/export-template/docs/assets/tuning-reference_pyspark.md.DDCfvN9t.js +6 -0
  141. package/export-template/docs/assets/tuning-reference_pyspark.md.DDCfvN9t.lean.js +1 -0
  142. package/export-template/docs/assets/tuning-reference_shuffle.md.BZZ7R4Ix.js +1 -0
  143. package/export-template/docs/assets/tuning-reference_shuffle.md.BZZ7R4Ix.lean.js +1 -0
  144. package/export-template/docs/assets/tuning-reference_spark-architecture.md.Dwzm5avO.js +1 -0
  145. package/export-template/docs/assets/tuning-reference_spark-architecture.md.Dwzm5avO.lean.js +1 -0
  146. package/export-template/docs/assets/tuning-reference_table-formats.md.D6wj-2dX.js +1 -0
  147. package/export-template/docs/assets/tuning-reference_table-formats.md.D6wj-2dX.lean.js +1 -0
  148. package/export-template/docs/assets/udf-execution-models.BUFDICuG.svg +1 -0
  149. package/export-template/docs/assets/udf-execution-models.dark.YTNS6GDq.svg +1 -0
  150. package/export-template/docs/assets/user-guide_alternative-log-retrieval.md.sU3KGarf.js +1 -0
  151. package/export-template/docs/assets/user-guide_alternative-log-retrieval.md.sU3KGarf.lean.js +1 -0
  152. package/export-template/docs/assets/user-guide_getting-started.md.DtEM37MK.js +3 -0
  153. package/export-template/docs/assets/user-guide_getting-started.md.DtEM37MK.lean.js +1 -0
  154. package/export-template/docs/assets/user-guide_mcp-tools.md.C8MiIu7F.js +125 -0
  155. package/export-template/docs/assets/user-guide_mcp-tools.md.C8MiIu7F.lean.js +1 -0
  156. package/export-template/docs/assets/user-guide_run-comparison.md.S0TWWmLY.js +1 -0
  157. package/export-template/docs/assets/user-guide_run-comparison.md.S0TWWmLY.lean.js +1 -0
  158. package/export-template/docs/assets/user-guide_understanding-findings.md.D0R_Y-R2.js +1 -0
  159. package/export-template/docs/assets/user-guide_understanding-findings.md.D0R_Y-R2.lean.js +1 -0
  160. package/export-template/docs/contributor-guide/architecture/board-widgets.html +25 -0
  161. package/export-template/docs/contributor-guide/architecture/detector-contract.html +25 -0
  162. package/export-template/docs/contributor-guide/architecture/drill-down.html +25 -0
  163. package/export-template/docs/contributor-guide/architecture/impact-estimation.html +25 -0
  164. package/export-template/docs/contributor-guide/architecture/index.html +25 -0
  165. package/export-template/docs/contributor-guide/architecture/overview.html +25 -0
  166. package/export-template/docs/contributor-guide/architecture/state-and-history.html +25 -0
  167. package/export-template/docs/contributor-guide/architecture/widget-rendering.html +25 -0
  168. package/export-template/docs/contributor-guide/architecture/worker-protocol.html +30 -0
  169. package/export-template/docs/contributor-guide/contributing.html +25 -0
  170. package/export-template/docs/contributor-guide/development-setup.html +36 -0
  171. package/export-template/docs/contributor-guide/testing.html +25 -0
  172. package/export-template/docs/favicon.svg +4 -0
  173. package/export-template/docs/hashmap.json +1 -0
  174. package/export-template/docs/index.html +25 -0
  175. package/export-template/docs/package.json +1 -0
  176. package/export-template/docs/tuning-reference/anti-patterns.html +25 -0
  177. package/export-template/docs/tuning-reference/aqe.html +25 -0
  178. package/export-template/docs/tuning-reference/bottleneck-broadcast-sizing.html +25 -0
  179. package/export-template/docs/tuning-reference/bottleneck-cold-start.html +31 -0
  180. package/export-template/docs/tuning-reference/bottleneck-duplicate-plan-subtree.html +25 -0
  181. package/export-template/docs/tuning-reference/bottleneck-failures.html +30 -0
  182. package/export-template/docs/tuning-reference/bottleneck-gc.html +30 -0
  183. package/export-template/docs/tuning-reference/bottleneck-job-failure-rate.html +32 -0
  184. package/export-template/docs/tuning-reference/bottleneck-memory-utilization.html +31 -0
  185. package/export-template/docs/tuning-reference/bottleneck-retry-waste.html +25 -0
  186. package/export-template/docs/tuning-reference/bottleneck-shuffle.html +36 -0
  187. package/export-template/docs/tuning-reference/bottleneck-skew.html +38 -0
  188. package/export-template/docs/tuning-reference/bottleneck-slow-host.html +31 -0
  189. package/export-template/docs/tuning-reference/bottleneck-small-files.html +29 -0
  190. package/export-template/docs/tuning-reference/bottleneck-spill.html +30 -0
  191. package/export-template/docs/tuning-reference/bottleneck-straggler.html +31 -0
  192. package/export-template/docs/tuning-reference/bottleneck-tiny-tasks.html +32 -0
  193. package/export-template/docs/tuning-reference/bottleneck-utilization.html +29 -0
  194. package/export-template/docs/tuning-reference/caching.html +25 -0
  195. package/export-template/docs/tuning-reference/cluster-config.html +25 -0
  196. package/export-template/docs/tuning-reference/config.html +25 -0
  197. package/export-template/docs/tuning-reference/data-formats.html +25 -0
  198. package/export-template/docs/tuning-reference/index.html +25 -0
  199. package/export-template/docs/tuning-reference/intro.html +25 -0
  200. package/export-template/docs/tuning-reference/joins.html +25 -0
  201. package/export-template/docs/tuning-reference/memory-model.html +25 -0
  202. package/export-template/docs/tuning-reference/metrics.html +25 -0
  203. package/export-template/docs/tuning-reference/partitioning.html +25 -0
  204. package/export-template/docs/tuning-reference/pyspark.html +30 -0
  205. package/export-template/docs/tuning-reference/shuffle.html +25 -0
  206. package/export-template/docs/tuning-reference/spark-architecture.html +25 -0
  207. package/export-template/docs/tuning-reference/table-formats.html +25 -0
  208. package/export-template/docs/user-guide/alternative-log-retrieval.html +25 -0
  209. package/export-template/docs/user-guide/getting-started.html +27 -0
  210. package/export-template/docs/user-guide/mcp-tools.html +149 -0
  211. package/export-template/docs/user-guide/run-comparison.html +25 -0
  212. package/export-template/docs/user-guide/understanding-findings.html +25 -0
  213. package/export-template/docs/vp-icons.css +0 -0
  214. package/export-template/favicon.svg +4 -0
  215. package/export-template/index.html +115 -0
  216. package/export-template/parser-worker-QqyEE4m9.js +64 -0
  217. package/package.json +16 -3
  218. package/vendor-core/analyzer.js +74 -74
  219. package/vendor-core/cli/budgets.js +13 -27
  220. package/vendor-core/cli/collect-run.js +43 -19
  221. package/vendor-core/core-count.js +25 -27
  222. package/vendor-core/core-locality-ratio.js +4 -11
  223. package/vendor-core/core-time-series.js +6 -12
  224. package/vendor-core/core-usage-locality.js +3 -4
  225. package/vendor-core/detectors.js +256 -375
  226. package/vendor-core/docs-config.js +69 -21
  227. package/vendor-core/docs-content/chapters/01-intro.md +32 -0
  228. package/vendor-core/docs-content/chapters/02-spark-architecture.md +76 -0
  229. package/vendor-core/docs-content/chapters/03-memory-model.md +73 -0
  230. package/vendor-core/docs-content/chapters/04-partitioning.md +65 -0
  231. package/vendor-core/docs-content/chapters/05-joins.md +62 -0
  232. package/vendor-core/docs-content/chapters/06-shuffle.md +59 -0
  233. package/vendor-core/docs-content/chapters/07-data-formats.md +81 -0
  234. package/vendor-core/docs-content/chapters/07b-table-formats.md +56 -0
  235. package/vendor-core/docs-content/chapters/08-caching.md +58 -0
  236. package/vendor-core/docs-content/chapters/09-pyspark.md +78 -0
  237. package/vendor-core/docs-content/chapters/10-aqe.md +167 -0
  238. package/vendor-core/docs-content/chapters/11-cluster-config.md +170 -0
  239. package/vendor-core/docs-content/chapters/12-anti-patterns.md +171 -0
  240. package/vendor-core/docs-content/chapters/14-metrics.md +87 -0
  241. package/vendor-core/docs-content/chapters/15-config.md +93 -0
  242. package/vendor-core/docs-content/chapters/nav-index.json +370 -0
  243. package/vendor-core/docs-content/detection/cache.md +6 -0
  244. package/vendor-core/docs-content/detection/cfg.md +15 -0
  245. package/vendor-core/docs-content/detection/chrn.md +7 -0
  246. package/vendor-core/docs-content/detection/cold.md +4 -0
  247. package/vendor-core/docs-content/detection/cstor.md +4 -0
  248. package/vendor-core/docs-content/detection/fail.md +5 -0
  249. package/vendor-core/docs-content/detection/gc.md +4 -0
  250. package/vendor-core/docs-content/detection/host.md +5 -0
  251. package/vendor-core/docs-content/detection/incmp.md +6 -0
  252. package/vendor-core/docs-content/detection/jobs.md +4 -0
  253. package/vendor-core/docs-content/detection/local.md +7 -0
  254. package/vendor-core/docs-content/detection/mem.md +10 -0
  255. package/vendor-core/docs-content/detection/part.md +5 -0
  256. package/vendor-core/docs-content/detection/plan.md +14 -0
  257. package/vendor-core/docs-content/detection/retry.md +4 -0
  258. package/vendor-core/docs-content/detection/sfail.md +5 -0
  259. package/vendor-core/docs-content/detection/shape.md +5 -0
  260. package/vendor-core/docs-content/detection/shfl.md +4 -0
  261. package/vendor-core/docs-content/detection/skew.md +6 -0
  262. package/vendor-core/docs-content/detection/slow.md +6 -0
  263. package/vendor-core/docs-content/detection/spec.md +7 -0
  264. package/vendor-core/docs-content/detection/spill.md +7 -0
  265. package/vendor-core/docs-content/detection/strag.md +5 -0
  266. package/vendor-core/docs-content/detection/tiny.md +4 -0
  267. package/vendor-core/docs-content/detection/util.md +4 -0
  268. package/vendor-core/docs-content/diagrams/aqe-loop.dark.svg +1 -0
  269. package/vendor-core/docs-content/diagrams/aqe-loop.svg +1 -0
  270. package/vendor-core/docs-content/diagrams/broadcast-vs-shuffle.dark.svg +1 -0
  271. package/vendor-core/docs-content/diagrams/broadcast-vs-shuffle.svg +1 -0
  272. package/vendor-core/docs-content/diagrams/cache-lifecycle.dark.svg +1 -0
  273. package/vendor-core/docs-content/diagrams/cache-lifecycle.svg +1 -0
  274. package/vendor-core/docs-content/diagrams/cold-start-timeline.dark.svg +1 -0
  275. package/vendor-core/docs-content/diagrams/cold-start-timeline.svg +1 -0
  276. package/vendor-core/docs-content/diagrams/columnar-layout.dark.svg +1 -0
  277. package/vendor-core/docs-content/diagrams/columnar-layout.svg +1 -0
  278. package/vendor-core/docs-content/diagrams/container-memory.dark.svg +1 -0
  279. package/vendor-core/docs-content/diagrams/container-memory.svg +1 -0
  280. package/vendor-core/docs-content/diagrams/dag-stages.dark.svg +1 -0
  281. package/vendor-core/docs-content/diagrams/dag-stages.svg +1 -0
  282. package/vendor-core/docs-content/diagrams/driver-executor.dark.svg +1 -0
  283. package/vendor-core/docs-content/diagrams/driver-executor.svg +1 -0
  284. package/vendor-core/docs-content/diagrams/duplicate-plan-subtree.dark.svg +1 -0
  285. package/vendor-core/docs-content/diagrams/duplicate-plan-subtree.svg +1 -0
  286. package/vendor-core/docs-content/diagrams/join-strategy.dark.svg +1 -0
  287. package/vendor-core/docs-content/diagrams/join-strategy.svg +1 -0
  288. package/vendor-core/docs-content/diagrams/memory-borrowing.dark.svg +1 -0
  289. package/vendor-core/docs-content/diagrams/memory-borrowing.svg +1 -0
  290. package/vendor-core/docs-content/diagrams/memory-regions.dark.svg +1 -0
  291. package/vendor-core/docs-content/diagrams/memory-regions.svg +1 -0
  292. package/vendor-core/docs-content/diagrams/repartition-vs-coalesce.dark.svg +1 -0
  293. package/vendor-core/docs-content/diagrams/repartition-vs-coalesce.svg +1 -0
  294. package/vendor-core/docs-content/diagrams/retry-escalation-ladder.dark.svg +1 -0
  295. package/vendor-core/docs-content/diagrams/retry-escalation-ladder.svg +1 -0
  296. package/vendor-core/docs-content/diagrams/shuffle-map-reduce.dark.svg +1 -0
  297. package/vendor-core/docs-content/diagrams/shuffle-map-reduce.svg +1 -0
  298. package/vendor-core/docs-content/diagrams/spill-classification.dark.svg +1 -0
  299. package/vendor-core/docs-content/diagrams/spill-classification.svg +1 -0
  300. package/vendor-core/docs-content/diagrams/udf-execution-models.dark.svg +1 -0
  301. package/vendor-core/docs-content/diagrams/udf-execution-models.svg +1 -0
  302. package/vendor-core/docs-content/tuning/broadcast-sizing.md +78 -0
  303. package/vendor-core/docs-content/tuning/cold-start.md +81 -0
  304. package/vendor-core/docs-content/tuning/duplicate-plan-subtree.md +45 -0
  305. package/vendor-core/docs-content/tuning/failures.md +124 -0
  306. package/vendor-core/docs-content/tuning/gc.md +110 -0
  307. package/vendor-core/docs-content/tuning/job-failure-rate.md +101 -0
  308. package/vendor-core/docs-content/tuning/memory-utilization.md +58 -0
  309. package/vendor-core/docs-content/tuning/retry-waste.md +90 -0
  310. package/vendor-core/docs-content/tuning/shuffle.md +154 -0
  311. package/vendor-core/docs-content/tuning/skew.md +123 -0
  312. package/vendor-core/docs-content/tuning/slow-host.md +117 -0
  313. package/vendor-core/docs-content/tuning/small-files.md +99 -0
  314. package/vendor-core/docs-content/tuning/spill.md +114 -0
  315. package/vendor-core/docs-content/tuning/straggler.md +103 -0
  316. package/vendor-core/docs-content/tuning/tiny-tasks.md +94 -0
  317. package/vendor-core/docs-content/tuning/utilization.md +90 -0
  318. package/vendor-core/docs-site-config.js +10 -17
  319. package/vendor-core/efficiency-model.js +7 -13
  320. package/vendor-core/etl-phases.js +3 -5
  321. package/vendor-core/event-handlers.js +232 -134
  322. package/vendor-core/event-schemas.js +48 -114
  323. package/vendor-core/evidence-availability.js +5 -10
  324. package/vendor-core/evidence-report.js +72 -122
  325. package/vendor-core/export-data.js +48 -0
  326. package/vendor-core/finding-action-label.js +4 -10
  327. package/vendor-core/finding-filter-predicate.js +3 -7
  328. package/vendor-core/finding-generic-recommendation.js +112 -0
  329. package/vendor-core/finding-names.js +51 -0
  330. package/vendor-core/format-utils.js +112 -38
  331. package/vendor-core/impact-band.js +18 -24
  332. package/vendor-core/impact-estimator.js +38 -74
  333. package/vendor-core/ingest.js +7 -13
  334. package/vendor-core/job-groups.js +3 -6
  335. package/vendor-core/list-runs.js +278 -0
  336. package/vendor-core/load-vendored.js +6 -12
  337. package/vendor-core/log-header-peek.js +81 -0
  338. package/vendor-core/lz4-block.js +4 -6
  339. package/vendor-core/mcp-server-factory.js +38 -8
  340. package/vendor-core/mcp-tools.js +105 -76
  341. package/vendor-core/model-assembler.js +8 -16
  342. package/vendor-core/occupancy.js +5 -9
  343. package/vendor-core/parser-worker.js +18 -27
  344. package/vendor-core/plan-dot.js +2 -5
  345. package/vendor-core/plan-duration-attribution.js +78 -29
  346. package/vendor-core/plan-graph-model.js +126 -69
  347. package/vendor-core/plan-node-detail.js +31 -17
  348. package/vendor-core/plan-summary.js +19 -8
  349. package/vendor-core/recommendation-rollup.js +35 -39
  350. package/vendor-core/redact.js +72 -16
  351. package/vendor-core/rolling-log-reassembly.js +4 -6
  352. package/vendor-core/run-comparison.js +65 -70
  353. package/vendor-core/scaling-sim.js +5 -7
  354. package/vendor-core/session-snapshot.js +1 -1
  355. package/vendor-core/shs-fetch.js +4 -6
  356. package/vendor-core/shs-load.js +9 -13
  357. package/vendor-core/shs-request.js +1 -1
  358. package/vendor-core/stage-quantiles.js +14 -0
  359. package/vendor-core/types.js +78 -18
  360. package/vendor-core/wasted-core-hours.js +7 -12
@@ -0,0 +1 @@
1
+ <svg id="gd22" width="100%" xmlns="http://www.w3.org/2000/svg" class="flowchart" viewBox="-8 -8 921.9765625 201.5625" role="graphics-document document" aria-roledescription="flowchart-v2" style="max-width: 921.9765625px;"><style>#gd22{font-family:Recursive,ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:16px;fill:#f4f4f5;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#gd22 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#gd22 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#gd22 .error-icon{fill:#1a232f;}#gd22 .error-text{fill:#e5dcd0;stroke:#e5dcd0;}#gd22 .edge-thickness-normal{stroke-width:1px;}#gd22 .edge-thickness-thick{stroke-width:3.5px;}#gd22 .edge-pattern-solid{stroke-dasharray:0;}#gd22 .edge-thickness-invisible{stroke-width:0;fill:none;}#gd22 .edge-pattern-dashed{stroke-dasharray:3;}#gd22 .edge-pattern-dotted{stroke-dasharray:2;}#gd22 .marker{fill:#a9b5b4;stroke:#a9b5b4;}#gd22 .marker.cross{stroke:#a9b5b4;}#gd22 svg{font-family:Recursive,ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:16px;}#gd22 p{margin:0;}#gd22 .label{font-family:Recursive,ui-sans-serif,system-ui,-apple-system,sans-serif;color:#f4f4f5;}#gd22 .cluster-label text{fill:#f4f4f5;}#gd22 .cluster-label span{color:#f4f4f5;}#gd22 .cluster-label span p{background-color:transparent;}#gd22 .label text,#gd22 span{fill:#f4f4f5;color:#f4f4f5;}#gd22 .node rect,#gd22 .node circle,#gd22 .node ellipse,#gd22 .node polygon,#gd22 .node path{fill:#17202c;stroke:#3a4a52;stroke-width:1px;}#gd22 .rough-node .label text,#gd22 .node .label text,#gd22 .image-shape .label,#gd22 .icon-shape .label{text-anchor:middle;}#gd22 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#gd22 .rough-node .label,#gd22 .node .label,#gd22 .image-shape .label,#gd22 .icon-shape .label{text-align:center;}#gd22 .node.clickable{cursor:pointer;}#gd22 .root .anchor path{fill:#a9b5b4!important;stroke-width:0;stroke:#a9b5b4;}#gd22 .arrowheadPath{fill:rgba(255, 255, 255, 0);}#gd22 .edgePath .path{stroke:#a9b5b4;stroke-width:1px;}#gd22 .flowchart-link{stroke:#a9b5b4;fill:none;}#gd22 .edgeLabel{background-color:#11171a;text-align:center;}#gd22 .edgeLabel p{background-color:#11171a;}#gd22 .edgeLabel rect{opacity:0.5;background-color:#11171a;fill:#11171a;}#gd22 .labelBkg{background-color:rgba(17, 23, 26, 0.5);}#gd22 .cluster rect{fill:#11171a;stroke:#233035;stroke-width:1px;}#gd22 .cluster text{fill:#f4f4f5;}#gd22 .cluster span{color:#f4f4f5;}#gd22 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:Recursive,ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:12px;background:#1a232f;border:1px solid hsl(214.2857142857, 0%, 4.3137254902%);border-radius:2px;pointer-events:none;z-index:100;}#gd22 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#f4f4f5;}#gd22 rect.text{fill:none;stroke-width:0;}#gd22 .icon-shape,#gd22 .image-shape{background-color:#11171a;text-align:center;}#gd22 .icon-shape p,#gd22 .image-shape p{background-color:#11171a;padding:2px;}#gd22 .icon-shape .label rect,#gd22 .image-shape .label rect{opacity:0.5;background-color:#11171a;fill:#11171a;}#gd22 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#gd22 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#gd22 .node .neo-node{stroke:#3a4a52;}#gd22 [data-look=&quot;neo&quot;].node rect,#gd22 [data-look=&quot;neo&quot;].cluster rect,#gd22 [data-look=&quot;neo&quot;].node polygon{stroke:url(#gd22-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#gd22 [data-look=&quot;neo&quot;].swimlane.cluster rect{filter:none;}#gd22 [data-look=&quot;neo&quot;].node path{stroke:url(#gd22-gradient);stroke-width:1px;}#gd22 [data-look=&quot;neo&quot;].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#gd22 [data-look=&quot;neo&quot;].node .neo-line path{stroke:#3a4a52;filter:none;}#gd22 [data-look=&quot;neo&quot;].node circle{stroke:url(#gd22-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#gd22 [data-look=&quot;neo&quot;].node circle .state-start{fill:#000000;}#gd22 [data-look=&quot;neo&quot;].icon-shape .icon{fill:url(#gd22-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#gd22 [data-look=&quot;neo&quot;].icon-shape .icon-neo path{stroke:url(#gd22-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#gd22 :root{--mermaid-font-family:Recursive,ui-sans-serif,system-ui,-apple-system,sans-serif;}</style><g><marker id="gd22_flowchart-v2-pointEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowMarkerPath" style="stroke-width:1;stroke-dasharray:1,0"></path></marker><marker id="gd22_flowchart-v2-pointStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="4.5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 5 L 10 10 L 10 0 z" class="arrowMarkerPath" style="stroke-width:1;stroke-dasharray:1,0"></path></marker><marker id="gd22_flowchart-v2-pointEnd-margin" class="marker flowchart-v2" viewBox="0 0 11.5 14" refX="11.5" refY="7" markerUnits="userSpaceOnUse" markerWidth="10.5" markerHeight="14" orient="auto"><path d="M 0 0 L 11.5 7 L 0 14 z" class="arrowMarkerPath" style="stroke-width:0;stroke-dasharray:1,0"></path></marker><marker id="gd22_flowchart-v2-pointStart-margin" class="marker flowchart-v2" viewBox="0 0 11.5 14" refX="1" refY="7" markerUnits="userSpaceOnUse" markerWidth="11.5" markerHeight="14" orient="auto"><polygon points="0,7 11.5,14 11.5,0" class="arrowMarkerPath" style="stroke-width:0;stroke-dasharray:1,0"></polygon></marker><marker id="gd22_flowchart-v2-circleEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="11" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width:1;stroke-dasharray:1,0"></circle></marker><marker id="gd22_flowchart-v2-circleStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-1" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width:1;stroke-dasharray:1,0"></circle></marker><marker id="gd22_flowchart-v2-circleEnd-margin" class="marker flowchart-v2" viewBox="0 0 10 10" refY="5" refX="12.25" markerUnits="userSpaceOnUse" markerWidth="14" markerHeight="14" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width:0;stroke-dasharray:1,0"></circle></marker><marker id="gd22_flowchart-v2-circleStart-margin" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-2" refY="5" markerUnits="userSpaceOnUse" markerWidth="14" markerHeight="14" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width:0;stroke-dasharray:1,0"></circle></marker><marker id="gd22_flowchart-v2-crossEnd" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="12" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width:2;stroke-dasharray:1,0"></path></marker><marker id="gd22_flowchart-v2-crossStart" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="-1" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width:2;stroke-dasharray:1,0"></path></marker><marker id="gd22_flowchart-v2-crossEnd-margin" class="marker cross flowchart-v2" viewBox="0 0 15 15" refX="17.7" refY="7.5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto"><path d="M 1,1 L 14,14 M 1,14 L 14,1" class="arrowMarkerPath" style="stroke-width:2.5"></path></marker><marker id="gd22_flowchart-v2-crossStart-margin" class="marker cross flowchart-v2" viewBox="0 0 15 15" refX="-3.5" refY="7.5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto"><path d="M 1,1 L 14,14 M 1,14 L 14,1" class="arrowMarkerPath" style="stroke-width:2.5;stroke-dasharray:1,0"></path></marker><g class="root"><g class="clusters"></g><g class="edgePaths"><path d="M322.402,52.852L363.443,48.729C404.484,44.606,486.566,36.359,548.012,35.273C609.457,34.187,650.266,40.262,670.67,43.299L691.075,46.336" id="gd22-L_ST_EX_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" data-edge="true" data-et="edge" data-id="L_ST_EX_0" data-points="W3sieCI6MzIyLjQwMjM0Mzc1LCJ5Ijo1Mi44NTI0NzU5Nzc5Mzk1MDV9LHsieCI6NTY4LjY0ODQzNzUsInkiOjI4LjExMjQ5OTk5OTk5OTk5N30seyJ4Ijo2OTUuMDMxMjUsInkiOjQ2LjkyNTAyNTA2MTA3MzJ9XQ==" data-look="classic" marker-end="url(#gd22_flowchart-v2-pointEnd)" style=";"></path><path d="M695.031,78.325L673.967,81.46C652.904,84.596,610.776,90.867,549.335,89.945C487.893,89.024,407.138,80.911,366.76,76.854L326.382,72.797" id="gd22-L_EX_ST_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" data-edge="true" data-et="edge" data-id="L_EX_ST_0" data-points="W3sieCI6Njk1LjAzMTI1LCJ5Ijo3OC4zMjQ5NzQ5Mzg5MjY4fSx7IngiOjU2OC42NDg0Mzc1LCJ5Ijo5Ny4xMzc1fSx7IngiOjMyMi40MDIzNDM3NSwieSI6NzIuMzk3NTI0MDIyMDYwNX1d" data-look="classic" marker-end="url(#gd22_flowchart-v2-pointEnd)" style=";"></path></g><g class="edgeLabels"><g class="edgeLabel" transform="translate(509.09302, 34.09594)"><g class="label" data-id="L_ST_EX_0" transform="translate(0, -19.2609375)"><g><rect class="background" x="-67.3828125" y="-0.8515625" width="134.765625" height="40.225"></rect><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">grows</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> into</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> idle</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">execution</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> space</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(509.09302, 91.15406)"><g class="label" data-id="L_EX_ST_0" transform="translate(0, -28.0609375)"><g><rect class="background" x="-101.3828125" y="-0.8515625" width="202.765625" height="57.825"></rect><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">evicts</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> storage</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> to</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> reclaim</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">its</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> space</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(one-directional,</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> LRU)</tspan></tspan></text></g></g></g></g><g class="nodes"><g class="node default " id="gd22-flowchart-ST-0" data-look="classic" transform="translate(225.1328125, 62.625)"><rect class="basic label-container" x="-97.26953125" y="-24.3125" width="194.5390625" height="48.625"></rect><g class="label" transform="translate(0, -9.3125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Storage</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> memory</tspan></tspan></text></g></g></g><g class="node default " id="gd22-flowchart-EX-1" data-look="classic" transform="translate(800.50390625, 62.625)"><rect class="basic label-container" x="-105.47265625" y="-24.3125" width="210.9453125" height="48.625"></rect><g class="label" transform="translate(0, -9.3125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Execution</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> memory</tspan></tspan></text></g></g></g><g class="node default " id="gd22-flowchart-N-4" data-look="classic" transform="translate(225.1328125, 161.25)"><rect class="basic label-container" x="-217.1328125" y="-24.3125" width="434.265625" height="48.625"></rect><g class="label" transform="translate(0, -9.3125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Execution</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> memory</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> is</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> never</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> evicted</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> by</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> storage</tspan></tspan></text></g></g></g></g></g></g><defs><filter id="gd22-drop-shadow" height="130%" width="130%"><feDropShadow dx="4" dy="4" stdDeviation="0" flood-opacity="0.06" flood-color="#000000"></feDropShadow></filter></defs><defs><filter id="gd22-drop-shadow-small" height="150%" width="150%"><feDropShadow dx="2" dy="2" stdDeviation="0" flood-opacity="0.06" flood-color="#000000"></feDropShadow></filter></defs><linearGradient id="gd22-gradient" gradientUnits="objectBoundingBox" x1="0%" y1="0%" x2="100%" y2="0%"><stop offset="0%" stop-color="#3a4a52" stop-opacity="1"></stop><stop offset="100%" stop-color="hsl(200, 0%, 0%)" stop-opacity="1"></stop></linearGradient></svg>
@@ -0,0 +1 @@
1
+ <svg id="gd21" width="100%" xmlns="http://www.w3.org/2000/svg" class="flowchart" viewBox="-8 -8 921.9765625 201.5625" role="graphics-document document" aria-roledescription="flowchart-v2" style="max-width: 921.9765625px;"><style>#gd21{font-family:Recursive,ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:16px;fill:#151b1e;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#gd21 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#gd21 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#gd21 .error-icon{fill:#eef1f6;}#gd21 .error-text{fill:#110e09;stroke:#110e09;}#gd21 .edge-thickness-normal{stroke-width:1px;}#gd21 .edge-thickness-thick{stroke-width:3.5px;}#gd21 .edge-pattern-solid{stroke-dasharray:0;}#gd21 .edge-thickness-invisible{stroke-width:0;fill:none;}#gd21 .edge-pattern-dashed{stroke-dasharray:3;}#gd21 .edge-pattern-dotted{stroke-dasharray:2;}#gd21 .marker{fill:#4f5f60;stroke:#4f5f60;}#gd21 .marker.cross{stroke:#4f5f60;}#gd21 svg{font-family:Recursive,ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:16px;}#gd21 p{margin:0;}#gd21 .label{font-family:Recursive,ui-sans-serif,system-ui,-apple-system,sans-serif;color:#151b1e;}#gd21 .cluster-label text{fill:#151b1e;}#gd21 .cluster-label span{color:#151b1e;}#gd21 .cluster-label span p{background-color:transparent;}#gd21 .label text,#gd21 span{fill:#151b1e;color:#151b1e;}#gd21 .node rect,#gd21 .node circle,#gd21 .node ellipse,#gd21 .node polygon,#gd21 .node path{fill:#ffffff;stroke:#9aa8a3;stroke-width:1px;}#gd21 .rough-node .label text,#gd21 .node .label text,#gd21 .image-shape .label,#gd21 .icon-shape .label{text-anchor:middle;}#gd21 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#gd21 .rough-node .label,#gd21 .node .label,#gd21 .image-shape .label,#gd21 .icon-shape .label{text-align:center;}#gd21 .node.clickable{cursor:pointer;}#gd21 .root .anchor path{fill:#4f5f60!important;stroke-width:0;stroke:#4f5f60;}#gd21 .arrowheadPath{fill:rgba(255, 255, 255, 0);}#gd21 .edgePath .path{stroke:#4f5f60;stroke-width:1px;}#gd21 .flowchart-link{stroke:#4f5f60;fill:none;}#gd21 .edgeLabel{background-color:#eef1f6;text-align:center;}#gd21 .edgeLabel p{background-color:#eef1f6;}#gd21 .edgeLabel rect{opacity:0.5;background-color:#eef1f6;fill:#eef1f6;}#gd21 .labelBkg{background-color:rgba(238, 241, 246, 0.5);}#gd21 .cluster rect{fill:#f2f5f9;stroke:#dbe2df;stroke-width:1px;}#gd21 .cluster text{fill:#151b1e;}#gd21 .cluster span{color:#151b1e;}#gd21 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:Recursive,ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:12px;background:#eef1f6;border:1px solid hsl(217.5, 0%, 84.9019607843%);border-radius:2px;pointer-events:none;z-index:100;}#gd21 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#151b1e;}#gd21 rect.text{fill:none;stroke-width:0;}#gd21 .icon-shape,#gd21 .image-shape{background-color:#eef1f6;text-align:center;}#gd21 .icon-shape p,#gd21 .image-shape p{background-color:#eef1f6;padding:2px;}#gd21 .icon-shape .label rect,#gd21 .image-shape .label rect{opacity:0.5;background-color:#eef1f6;fill:#eef1f6;}#gd21 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#gd21 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#gd21 .node .neo-node{stroke:#9aa8a3;}#gd21 [data-look=&quot;neo&quot;].node rect,#gd21 [data-look=&quot;neo&quot;].cluster rect,#gd21 [data-look=&quot;neo&quot;].node polygon{stroke:url(#gd21-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#gd21 [data-look=&quot;neo&quot;].swimlane.cluster rect{filter:none;}#gd21 [data-look=&quot;neo&quot;].node path{stroke:url(#gd21-gradient);stroke-width:1px;}#gd21 [data-look=&quot;neo&quot;].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#gd21 [data-look=&quot;neo&quot;].node .neo-line path{stroke:#9aa8a3;filter:none;}#gd21 [data-look=&quot;neo&quot;].node circle{stroke:url(#gd21-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#gd21 [data-look=&quot;neo&quot;].node circle .state-start{fill:#000000;}#gd21 [data-look=&quot;neo&quot;].icon-shape .icon{fill:url(#gd21-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#gd21 [data-look=&quot;neo&quot;].icon-shape .icon-neo path{stroke:url(#gd21-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#gd21 :root{--mermaid-font-family:Recursive,ui-sans-serif,system-ui,-apple-system,sans-serif;}</style><g><marker id="gd21_flowchart-v2-pointEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowMarkerPath" style="stroke-width:1;stroke-dasharray:1,0"></path></marker><marker id="gd21_flowchart-v2-pointStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="4.5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 5 L 10 10 L 10 0 z" class="arrowMarkerPath" style="stroke-width:1;stroke-dasharray:1,0"></path></marker><marker id="gd21_flowchart-v2-pointEnd-margin" class="marker flowchart-v2" viewBox="0 0 11.5 14" refX="11.5" refY="7" markerUnits="userSpaceOnUse" markerWidth="10.5" markerHeight="14" orient="auto"><path d="M 0 0 L 11.5 7 L 0 14 z" class="arrowMarkerPath" style="stroke-width:0;stroke-dasharray:1,0"></path></marker><marker id="gd21_flowchart-v2-pointStart-margin" class="marker flowchart-v2" viewBox="0 0 11.5 14" refX="1" refY="7" markerUnits="userSpaceOnUse" markerWidth="11.5" markerHeight="14" orient="auto"><polygon points="0,7 11.5,14 11.5,0" class="arrowMarkerPath" style="stroke-width:0;stroke-dasharray:1,0"></polygon></marker><marker id="gd21_flowchart-v2-circleEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="11" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width:1;stroke-dasharray:1,0"></circle></marker><marker id="gd21_flowchart-v2-circleStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-1" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width:1;stroke-dasharray:1,0"></circle></marker><marker id="gd21_flowchart-v2-circleEnd-margin" class="marker flowchart-v2" viewBox="0 0 10 10" refY="5" refX="12.25" markerUnits="userSpaceOnUse" markerWidth="14" markerHeight="14" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width:0;stroke-dasharray:1,0"></circle></marker><marker id="gd21_flowchart-v2-circleStart-margin" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-2" refY="5" markerUnits="userSpaceOnUse" markerWidth="14" markerHeight="14" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width:0;stroke-dasharray:1,0"></circle></marker><marker id="gd21_flowchart-v2-crossEnd" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="12" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width:2;stroke-dasharray:1,0"></path></marker><marker id="gd21_flowchart-v2-crossStart" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="-1" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width:2;stroke-dasharray:1,0"></path></marker><marker id="gd21_flowchart-v2-crossEnd-margin" class="marker cross flowchart-v2" viewBox="0 0 15 15" refX="17.7" refY="7.5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto"><path d="M 1,1 L 14,14 M 1,14 L 14,1" class="arrowMarkerPath" style="stroke-width:2.5"></path></marker><marker id="gd21_flowchart-v2-crossStart-margin" class="marker cross flowchart-v2" viewBox="0 0 15 15" refX="-3.5" refY="7.5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto"><path d="M 1,1 L 14,14 M 1,14 L 14,1" class="arrowMarkerPath" style="stroke-width:2.5;stroke-dasharray:1,0"></path></marker><g class="root"><g class="clusters"></g><g class="edgePaths"><path d="M322.402,52.852L363.443,48.729C404.484,44.606,486.566,36.359,548.012,35.273C609.457,34.187,650.266,40.262,670.67,43.299L691.075,46.336" id="gd21-L_ST_EX_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" data-edge="true" data-et="edge" data-id="L_ST_EX_0" data-points="W3sieCI6MzIyLjQwMjM0Mzc1LCJ5Ijo1Mi44NTI0NzU5Nzc5Mzk1MDV9LHsieCI6NTY4LjY0ODQzNzUsInkiOjI4LjExMjQ5OTk5OTk5OTk5N30seyJ4Ijo2OTUuMDMxMjUsInkiOjQ2LjkyNTAyNTA2MTA3MzJ9XQ==" data-look="classic" marker-end="url(#gd21_flowchart-v2-pointEnd)" style=";"></path><path d="M695.031,78.325L673.967,81.46C652.904,84.596,610.776,90.867,549.335,89.945C487.893,89.024,407.138,80.911,366.76,76.854L326.382,72.797" id="gd21-L_EX_ST_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" data-edge="true" data-et="edge" data-id="L_EX_ST_0" data-points="W3sieCI6Njk1LjAzMTI1LCJ5Ijo3OC4zMjQ5NzQ5Mzg5MjY4fSx7IngiOjU2OC42NDg0Mzc1LCJ5Ijo5Ny4xMzc1fSx7IngiOjMyMi40MDIzNDM3NSwieSI6NzIuMzk3NTI0MDIyMDYwNX1d" data-look="classic" marker-end="url(#gd21_flowchart-v2-pointEnd)" style=";"></path></g><g class="edgeLabels"><g class="edgeLabel" transform="translate(509.09302, 34.09594)"><g class="label" data-id="L_ST_EX_0" transform="translate(0, -19.2609375)"><g><rect class="background" x="-67.3828125" y="-0.8515625" width="134.765625" height="40.225"></rect><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">grows</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> into</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> idle</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">execution</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> space</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(509.09302, 91.15406)"><g class="label" data-id="L_EX_ST_0" transform="translate(0, -28.0609375)"><g><rect class="background" x="-101.3828125" y="-0.8515625" width="202.765625" height="57.825"></rect><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">evicts</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> storage</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> to</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> reclaim</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">its</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> space</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(one-directional,</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> LRU)</tspan></tspan></text></g></g></g></g><g class="nodes"><g class="node default " id="gd21-flowchart-ST-0" data-look="classic" transform="translate(225.1328125, 62.625)"><rect class="basic label-container" x="-97.26953125" y="-24.3125" width="194.5390625" height="48.625"></rect><g class="label" transform="translate(0, -9.3125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Storage</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> memory</tspan></tspan></text></g></g></g><g class="node default " id="gd21-flowchart-EX-1" data-look="classic" transform="translate(800.50390625, 62.625)"><rect class="basic label-container" x="-105.47265625" y="-24.3125" width="210.9453125" height="48.625"></rect><g class="label" transform="translate(0, -9.3125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Execution</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> memory</tspan></tspan></text></g></g></g><g class="node default " id="gd21-flowchart-N-4" data-look="classic" transform="translate(225.1328125, 161.25)"><rect class="basic label-container" x="-217.1328125" y="-24.3125" width="434.265625" height="48.625"></rect><g class="label" transform="translate(0, -9.3125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Execution</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> memory</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> is</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> never</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> evicted</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> by</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> storage</tspan></tspan></text></g></g></g></g></g></g><defs><filter id="gd21-drop-shadow" height="130%" width="130%"><feDropShadow dx="4" dy="4" stdDeviation="0" flood-opacity="0.06" flood-color="#000000"></feDropShadow></filter></defs><defs><filter id="gd21-drop-shadow-small" height="150%" width="150%"><feDropShadow dx="2" dy="2" stdDeviation="0" flood-opacity="0.06" flood-color="#000000"></feDropShadow></filter></defs><linearGradient id="gd21-gradient" gradientUnits="objectBoundingBox" x1="0%" y1="0%" x2="100%" y2="0%"><stop offset="0%" stop-color="#9aa8a3" stop-opacity="1"></stop><stop offset="100%" stop-color="hsl(214.2857142857, 0%, 86.2745098039%)" stop-opacity="1"></stop></linearGradient></svg>
@@ -0,0 +1 @@
1
+ <svg id="gd24" width="100%" xmlns="http://www.w3.org/2000/svg" class="flowchart" viewBox="-8 -8 1102.734375 492.675" role="graphics-document document" aria-roledescription="flowchart-v2" style="max-width: 1102.734375px;"><style>#gd24{font-family:Recursive,ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:16px;fill:#f4f4f5;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#gd24 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#gd24 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#gd24 .error-icon{fill:#1a232f;}#gd24 .error-text{fill:#e5dcd0;stroke:#e5dcd0;}#gd24 .edge-thickness-normal{stroke-width:1px;}#gd24 .edge-thickness-thick{stroke-width:3.5px;}#gd24 .edge-pattern-solid{stroke-dasharray:0;}#gd24 .edge-thickness-invisible{stroke-width:0;fill:none;}#gd24 .edge-pattern-dashed{stroke-dasharray:3;}#gd24 .edge-pattern-dotted{stroke-dasharray:2;}#gd24 .marker{fill:#a9b5b4;stroke:#a9b5b4;}#gd24 .marker.cross{stroke:#a9b5b4;}#gd24 svg{font-family:Recursive,ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:16px;}#gd24 p{margin:0;}#gd24 .label{font-family:Recursive,ui-sans-serif,system-ui,-apple-system,sans-serif;color:#f4f4f5;}#gd24 .cluster-label text{fill:#f4f4f5;}#gd24 .cluster-label span{color:#f4f4f5;}#gd24 .cluster-label span p{background-color:transparent;}#gd24 .label text,#gd24 span{fill:#f4f4f5;color:#f4f4f5;}#gd24 .node rect,#gd24 .node circle,#gd24 .node ellipse,#gd24 .node polygon,#gd24 .node path{fill:#17202c;stroke:#3a4a52;stroke-width:1px;}#gd24 .rough-node .label text,#gd24 .node .label text,#gd24 .image-shape .label,#gd24 .icon-shape .label{text-anchor:middle;}#gd24 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#gd24 .rough-node .label,#gd24 .node .label,#gd24 .image-shape .label,#gd24 .icon-shape .label{text-align:center;}#gd24 .node.clickable{cursor:pointer;}#gd24 .root .anchor path{fill:#a9b5b4!important;stroke-width:0;stroke:#a9b5b4;}#gd24 .arrowheadPath{fill:rgba(255, 255, 255, 0);}#gd24 .edgePath .path{stroke:#a9b5b4;stroke-width:1px;}#gd24 .flowchart-link{stroke:#a9b5b4;fill:none;}#gd24 .edgeLabel{background-color:#11171a;text-align:center;}#gd24 .edgeLabel p{background-color:#11171a;}#gd24 .edgeLabel rect{opacity:0.5;background-color:#11171a;fill:#11171a;}#gd24 .labelBkg{background-color:rgba(17, 23, 26, 0.5);}#gd24 .cluster rect{fill:#11171a;stroke:#233035;stroke-width:1px;}#gd24 .cluster text{fill:#f4f4f5;}#gd24 .cluster span{color:#f4f4f5;}#gd24 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:Recursive,ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:12px;background:#1a232f;border:1px solid hsl(214.2857142857, 0%, 4.3137254902%);border-radius:2px;pointer-events:none;z-index:100;}#gd24 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#f4f4f5;}#gd24 rect.text{fill:none;stroke-width:0;}#gd24 .icon-shape,#gd24 .image-shape{background-color:#11171a;text-align:center;}#gd24 .icon-shape p,#gd24 .image-shape p{background-color:#11171a;padding:2px;}#gd24 .icon-shape .label rect,#gd24 .image-shape .label rect{opacity:0.5;background-color:#11171a;fill:#11171a;}#gd24 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#gd24 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#gd24 .node .neo-node{stroke:#3a4a52;}#gd24 [data-look=&quot;neo&quot;].node rect,#gd24 [data-look=&quot;neo&quot;].cluster rect,#gd24 [data-look=&quot;neo&quot;].node polygon{stroke:url(#gd24-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#gd24 [data-look=&quot;neo&quot;].swimlane.cluster rect{filter:none;}#gd24 [data-look=&quot;neo&quot;].node path{stroke:url(#gd24-gradient);stroke-width:1px;}#gd24 [data-look=&quot;neo&quot;].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#gd24 [data-look=&quot;neo&quot;].node .neo-line path{stroke:#3a4a52;filter:none;}#gd24 [data-look=&quot;neo&quot;].node circle{stroke:url(#gd24-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#gd24 [data-look=&quot;neo&quot;].node circle .state-start{fill:#000000;}#gd24 [data-look=&quot;neo&quot;].icon-shape .icon{fill:url(#gd24-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#gd24 [data-look=&quot;neo&quot;].icon-shape .icon-neo path{stroke:url(#gd24-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#gd24 :root{--mermaid-font-family:Recursive,ui-sans-serif,system-ui,-apple-system,sans-serif;}</style><g><marker id="gd24_flowchart-v2-pointEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowMarkerPath" style="stroke-width:1;stroke-dasharray:1,0"></path></marker><marker id="gd24_flowchart-v2-pointStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="4.5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 5 L 10 10 L 10 0 z" class="arrowMarkerPath" style="stroke-width:1;stroke-dasharray:1,0"></path></marker><marker id="gd24_flowchart-v2-pointEnd-margin" class="marker flowchart-v2" viewBox="0 0 11.5 14" refX="11.5" refY="7" markerUnits="userSpaceOnUse" markerWidth="10.5" markerHeight="14" orient="auto"><path d="M 0 0 L 11.5 7 L 0 14 z" class="arrowMarkerPath" style="stroke-width:0;stroke-dasharray:1,0"></path></marker><marker id="gd24_flowchart-v2-pointStart-margin" class="marker flowchart-v2" viewBox="0 0 11.5 14" refX="1" refY="7" markerUnits="userSpaceOnUse" markerWidth="11.5" markerHeight="14" orient="auto"><polygon points="0,7 11.5,14 11.5,0" class="arrowMarkerPath" style="stroke-width:0;stroke-dasharray:1,0"></polygon></marker><marker id="gd24_flowchart-v2-circleEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="11" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width:1;stroke-dasharray:1,0"></circle></marker><marker id="gd24_flowchart-v2-circleStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-1" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width:1;stroke-dasharray:1,0"></circle></marker><marker id="gd24_flowchart-v2-circleEnd-margin" class="marker flowchart-v2" viewBox="0 0 10 10" refY="5" refX="12.25" markerUnits="userSpaceOnUse" markerWidth="14" markerHeight="14" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width:0;stroke-dasharray:1,0"></circle></marker><marker id="gd24_flowchart-v2-circleStart-margin" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-2" refY="5" markerUnits="userSpaceOnUse" markerWidth="14" markerHeight="14" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width:0;stroke-dasharray:1,0"></circle></marker><marker id="gd24_flowchart-v2-crossEnd" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="12" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width:2;stroke-dasharray:1,0"></path></marker><marker id="gd24_flowchart-v2-crossStart" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="-1" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width:2;stroke-dasharray:1,0"></path></marker><marker id="gd24_flowchart-v2-crossEnd-margin" class="marker cross flowchart-v2" viewBox="0 0 15 15" refX="17.7" refY="7.5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto"><path d="M 1,1 L 14,14 M 1,14 L 14,1" class="arrowMarkerPath" style="stroke-width:2.5"></path></marker><marker id="gd24_flowchart-v2-crossStart-margin" class="marker cross flowchart-v2" viewBox="0 0 15 15" refX="-3.5" refY="7.5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto"><path d="M 1,1 L 14,14 M 1,14 L 14,1" class="arrowMarkerPath" style="stroke-width:2.5;stroke-dasharray:1,0"></path></marker><g class="root"><g class="clusters"></g><g class="edgePaths"></g><g class="edgeLabels"></g><g class="nodes"><g class="root" transform="translate(0, 0)"><g class="clusters"><g class="cluster " id="gd24-Heap" data-look="classic"><rect x="8" y="8" width="550.3515625" height="468.675"></rect><g class="cluster-label " transform="translate(245.92578125, 8)"><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">JVM</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> heap</tspan></tspan></text></g></g></g></g><g class="edgePaths"></g><g class="edgeLabels"></g><g class="nodes"><g class="root" transform="translate(37.5, 35.000000000000014)"><g class="clusters"><g class="cluster " id="gd24-M" data-look="classic"><rect x="8" y="8" width="475.3515625" height="166.225"></rect><g class="cluster-label " transform="translate(150.734375, 8)"><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Unified</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> region</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> M</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(heap</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> −</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> 300</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> MiB)</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> ×</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> 0.6</tspan></tspan></text></g></g></g></g><g class="edgePaths"></g><g class="edgeLabels"></g><g class="nodes"><g class="node default " id="gd24-flowchart-EX-1" data-look="classic" transform="translate(112.50390625, 91.1125)"><rect class="basic label-container" x="-69.50390625" y="-24.3125" width="139.0078125" height="48.625"></rect><g class="label" transform="translate(0, -9.3125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Execution</tspan></tspan></text></g></g></g><g class="node default " id="gd24-flowchart-ST-2" data-look="classic" transform="translate(340.1796875, 91.1125)"><rect class="basic label-container" x="-108.171875" y="-33.1125" width="216.34375" height="66.225"></rect><g class="label" transform="translate(0, -18.1125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Storage</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">storageFraction</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> 0.5</tspan></tspan></text></g></g></g></g></g><g class="node default " id="gd24-flowchart-R-0" data-look="classic" transform="translate(283.17578125, 292.3375)"><rect class="basic label-container" x="-103.5625" y="-33.1125" width="207.125" height="66.225"></rect><g class="label" transform="translate(0, -18.1125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Reserved</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> memory</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">300</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> MiB</tspan></tspan></text></g></g></g><g class="node default " id="gd24-flowchart-U-3" data-look="classic" transform="translate(283.17578125, 408.5625)"><rect class="basic label-container" x="-83.3125" y="-33.1125" width="166.625" height="66.225"></rect><g class="label" transform="translate(0, -18.1125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">User</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> Memory</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">~40%</tspan></tspan></text></g></g></g></g></g><g class="node default " id="gd24-flowchart-OH-4" data-look="classic" transform="translate(719.90234375, 242.3375)"><rect class="basic label-container" x="-111.55078125" y="-33.1125" width="223.1015625" height="66.225"></rect><g class="label" transform="translate(0, -18.1125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Off-heap</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> pool</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">execution</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> +</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> storage</tspan></tspan></text></g></g></g><g class="node default " id="gd24-flowchart-OV-5" data-look="classic" transform="translate(984.09375, 242.3375)"><rect class="basic label-container" x="-102.640625" y="-33.1125" width="205.28125" height="66.225"></rect><g class="label" transform="translate(0, -18.1125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">memoryOverhead</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">outside</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> the</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> heap</tspan></tspan></text></g></g></g></g></g></g><defs><filter id="gd24-drop-shadow" height="130%" width="130%"><feDropShadow dx="4" dy="4" stdDeviation="0" flood-opacity="0.06" flood-color="#000000"></feDropShadow></filter></defs><defs><filter id="gd24-drop-shadow-small" height="150%" width="150%"><feDropShadow dx="2" dy="2" stdDeviation="0" flood-opacity="0.06" flood-color="#000000"></feDropShadow></filter></defs><linearGradient id="gd24-gradient" gradientUnits="objectBoundingBox" x1="0%" y1="0%" x2="100%" y2="0%"><stop offset="0%" stop-color="#3a4a52" stop-opacity="1"></stop><stop offset="100%" stop-color="hsl(200, 0%, 0%)" stop-opacity="1"></stop></linearGradient></svg>
@@ -0,0 +1 @@
1
+ <svg id="gd23" width="100%" xmlns="http://www.w3.org/2000/svg" class="flowchart" viewBox="-8 -8 1102.734375 492.675" role="graphics-document document" aria-roledescription="flowchart-v2" style="max-width: 1102.734375px;"><style>#gd23{font-family:Recursive,ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:16px;fill:#151b1e;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#gd23 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#gd23 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#gd23 .error-icon{fill:#eef1f6;}#gd23 .error-text{fill:#110e09;stroke:#110e09;}#gd23 .edge-thickness-normal{stroke-width:1px;}#gd23 .edge-thickness-thick{stroke-width:3.5px;}#gd23 .edge-pattern-solid{stroke-dasharray:0;}#gd23 .edge-thickness-invisible{stroke-width:0;fill:none;}#gd23 .edge-pattern-dashed{stroke-dasharray:3;}#gd23 .edge-pattern-dotted{stroke-dasharray:2;}#gd23 .marker{fill:#4f5f60;stroke:#4f5f60;}#gd23 .marker.cross{stroke:#4f5f60;}#gd23 svg{font-family:Recursive,ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:16px;}#gd23 p{margin:0;}#gd23 .label{font-family:Recursive,ui-sans-serif,system-ui,-apple-system,sans-serif;color:#151b1e;}#gd23 .cluster-label text{fill:#151b1e;}#gd23 .cluster-label span{color:#151b1e;}#gd23 .cluster-label span p{background-color:transparent;}#gd23 .label text,#gd23 span{fill:#151b1e;color:#151b1e;}#gd23 .node rect,#gd23 .node circle,#gd23 .node ellipse,#gd23 .node polygon,#gd23 .node path{fill:#ffffff;stroke:#9aa8a3;stroke-width:1px;}#gd23 .rough-node .label text,#gd23 .node .label text,#gd23 .image-shape .label,#gd23 .icon-shape .label{text-anchor:middle;}#gd23 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#gd23 .rough-node .label,#gd23 .node .label,#gd23 .image-shape .label,#gd23 .icon-shape .label{text-align:center;}#gd23 .node.clickable{cursor:pointer;}#gd23 .root .anchor path{fill:#4f5f60!important;stroke-width:0;stroke:#4f5f60;}#gd23 .arrowheadPath{fill:rgba(255, 255, 255, 0);}#gd23 .edgePath .path{stroke:#4f5f60;stroke-width:1px;}#gd23 .flowchart-link{stroke:#4f5f60;fill:none;}#gd23 .edgeLabel{background-color:#eef1f6;text-align:center;}#gd23 .edgeLabel p{background-color:#eef1f6;}#gd23 .edgeLabel rect{opacity:0.5;background-color:#eef1f6;fill:#eef1f6;}#gd23 .labelBkg{background-color:rgba(238, 241, 246, 0.5);}#gd23 .cluster rect{fill:#f2f5f9;stroke:#dbe2df;stroke-width:1px;}#gd23 .cluster text{fill:#151b1e;}#gd23 .cluster span{color:#151b1e;}#gd23 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:Recursive,ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:12px;background:#eef1f6;border:1px solid hsl(217.5, 0%, 84.9019607843%);border-radius:2px;pointer-events:none;z-index:100;}#gd23 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#151b1e;}#gd23 rect.text{fill:none;stroke-width:0;}#gd23 .icon-shape,#gd23 .image-shape{background-color:#eef1f6;text-align:center;}#gd23 .icon-shape p,#gd23 .image-shape p{background-color:#eef1f6;padding:2px;}#gd23 .icon-shape .label rect,#gd23 .image-shape .label rect{opacity:0.5;background-color:#eef1f6;fill:#eef1f6;}#gd23 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#gd23 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#gd23 .node .neo-node{stroke:#9aa8a3;}#gd23 [data-look=&quot;neo&quot;].node rect,#gd23 [data-look=&quot;neo&quot;].cluster rect,#gd23 [data-look=&quot;neo&quot;].node polygon{stroke:url(#gd23-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#gd23 [data-look=&quot;neo&quot;].swimlane.cluster rect{filter:none;}#gd23 [data-look=&quot;neo&quot;].node path{stroke:url(#gd23-gradient);stroke-width:1px;}#gd23 [data-look=&quot;neo&quot;].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#gd23 [data-look=&quot;neo&quot;].node .neo-line path{stroke:#9aa8a3;filter:none;}#gd23 [data-look=&quot;neo&quot;].node circle{stroke:url(#gd23-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#gd23 [data-look=&quot;neo&quot;].node circle .state-start{fill:#000000;}#gd23 [data-look=&quot;neo&quot;].icon-shape .icon{fill:url(#gd23-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#gd23 [data-look=&quot;neo&quot;].icon-shape .icon-neo path{stroke:url(#gd23-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#gd23 :root{--mermaid-font-family:Recursive,ui-sans-serif,system-ui,-apple-system,sans-serif;}</style><g><marker id="gd23_flowchart-v2-pointEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowMarkerPath" style="stroke-width:1;stroke-dasharray:1,0"></path></marker><marker id="gd23_flowchart-v2-pointStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="4.5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 5 L 10 10 L 10 0 z" class="arrowMarkerPath" style="stroke-width:1;stroke-dasharray:1,0"></path></marker><marker id="gd23_flowchart-v2-pointEnd-margin" class="marker flowchart-v2" viewBox="0 0 11.5 14" refX="11.5" refY="7" markerUnits="userSpaceOnUse" markerWidth="10.5" markerHeight="14" orient="auto"><path d="M 0 0 L 11.5 7 L 0 14 z" class="arrowMarkerPath" style="stroke-width:0;stroke-dasharray:1,0"></path></marker><marker id="gd23_flowchart-v2-pointStart-margin" class="marker flowchart-v2" viewBox="0 0 11.5 14" refX="1" refY="7" markerUnits="userSpaceOnUse" markerWidth="11.5" markerHeight="14" orient="auto"><polygon points="0,7 11.5,14 11.5,0" class="arrowMarkerPath" style="stroke-width:0;stroke-dasharray:1,0"></polygon></marker><marker id="gd23_flowchart-v2-circleEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="11" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width:1;stroke-dasharray:1,0"></circle></marker><marker id="gd23_flowchart-v2-circleStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-1" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width:1;stroke-dasharray:1,0"></circle></marker><marker id="gd23_flowchart-v2-circleEnd-margin" class="marker flowchart-v2" viewBox="0 0 10 10" refY="5" refX="12.25" markerUnits="userSpaceOnUse" markerWidth="14" markerHeight="14" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width:0;stroke-dasharray:1,0"></circle></marker><marker id="gd23_flowchart-v2-circleStart-margin" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-2" refY="5" markerUnits="userSpaceOnUse" markerWidth="14" markerHeight="14" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width:0;stroke-dasharray:1,0"></circle></marker><marker id="gd23_flowchart-v2-crossEnd" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="12" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width:2;stroke-dasharray:1,0"></path></marker><marker id="gd23_flowchart-v2-crossStart" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="-1" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width:2;stroke-dasharray:1,0"></path></marker><marker id="gd23_flowchart-v2-crossEnd-margin" class="marker cross flowchart-v2" viewBox="0 0 15 15" refX="17.7" refY="7.5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto"><path d="M 1,1 L 14,14 M 1,14 L 14,1" class="arrowMarkerPath" style="stroke-width:2.5"></path></marker><marker id="gd23_flowchart-v2-crossStart-margin" class="marker cross flowchart-v2" viewBox="0 0 15 15" refX="-3.5" refY="7.5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto"><path d="M 1,1 L 14,14 M 1,14 L 14,1" class="arrowMarkerPath" style="stroke-width:2.5;stroke-dasharray:1,0"></path></marker><g class="root"><g class="clusters"></g><g class="edgePaths"></g><g class="edgeLabels"></g><g class="nodes"><g class="root" transform="translate(0, 0)"><g class="clusters"><g class="cluster " id="gd23-Heap" data-look="classic"><rect x="8" y="8" width="550.3515625" height="468.675"></rect><g class="cluster-label " transform="translate(245.92578125, 8)"><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">JVM</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> heap</tspan></tspan></text></g></g></g></g><g class="edgePaths"></g><g class="edgeLabels"></g><g class="nodes"><g class="root" transform="translate(37.5, 35.000000000000014)"><g class="clusters"><g class="cluster " id="gd23-M" data-look="classic"><rect x="8" y="8" width="475.3515625" height="166.225"></rect><g class="cluster-label " transform="translate(150.734375, 8)"><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Unified</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> region</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> M</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(heap</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> −</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> 300</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> MiB)</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> ×</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> 0.6</tspan></tspan></text></g></g></g></g><g class="edgePaths"></g><g class="edgeLabels"></g><g class="nodes"><g class="node default " id="gd23-flowchart-EX-1" data-look="classic" transform="translate(112.50390625, 91.1125)"><rect class="basic label-container" x="-69.50390625" y="-24.3125" width="139.0078125" height="48.625"></rect><g class="label" transform="translate(0, -9.3125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Execution</tspan></tspan></text></g></g></g><g class="node default " id="gd23-flowchart-ST-2" data-look="classic" transform="translate(340.1796875, 91.1125)"><rect class="basic label-container" x="-108.171875" y="-33.1125" width="216.34375" height="66.225"></rect><g class="label" transform="translate(0, -18.1125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Storage</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">storageFraction</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> 0.5</tspan></tspan></text></g></g></g></g></g><g class="node default " id="gd23-flowchart-R-0" data-look="classic" transform="translate(283.17578125, 292.3375)"><rect class="basic label-container" x="-103.5625" y="-33.1125" width="207.125" height="66.225"></rect><g class="label" transform="translate(0, -18.1125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Reserved</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> memory</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">300</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> MiB</tspan></tspan></text></g></g></g><g class="node default " id="gd23-flowchart-U-3" data-look="classic" transform="translate(283.17578125, 408.5625)"><rect class="basic label-container" x="-83.3125" y="-33.1125" width="166.625" height="66.225"></rect><g class="label" transform="translate(0, -18.1125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">User</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> Memory</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">~40%</tspan></tspan></text></g></g></g></g></g><g class="node default " id="gd23-flowchart-OH-4" data-look="classic" transform="translate(719.90234375, 242.3375)"><rect class="basic label-container" x="-111.55078125" y="-33.1125" width="223.1015625" height="66.225"></rect><g class="label" transform="translate(0, -18.1125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Off-heap</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> pool</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">execution</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> +</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> storage</tspan></tspan></text></g></g></g><g class="node default " id="gd23-flowchart-OV-5" data-look="classic" transform="translate(984.09375, 242.3375)"><rect class="basic label-container" x="-102.640625" y="-33.1125" width="205.28125" height="66.225"></rect><g class="label" transform="translate(0, -18.1125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">memoryOverhead</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">outside</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> the</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> heap</tspan></tspan></text></g></g></g></g></g></g><defs><filter id="gd23-drop-shadow" height="130%" width="130%"><feDropShadow dx="4" dy="4" stdDeviation="0" flood-opacity="0.06" flood-color="#000000"></feDropShadow></filter></defs><defs><filter id="gd23-drop-shadow-small" height="150%" width="150%"><feDropShadow dx="2" dy="2" stdDeviation="0" flood-opacity="0.06" flood-color="#000000"></feDropShadow></filter></defs><linearGradient id="gd23-gradient" gradientUnits="objectBoundingBox" x1="0%" y1="0%" x2="100%" y2="0%"><stop offset="0%" stop-color="#9aa8a3" stop-opacity="1"></stop><stop offset="100%" stop-color="hsl(214.2857142857, 0%, 86.2745098039%)" stop-opacity="1"></stop></linearGradient></svg>
@@ -0,0 +1 @@
1
+ <svg id="gd26" width="100%" xmlns="http://www.w3.org/2000/svg" class="flowchart" viewBox="-8 -8 876.3203125 436.99218750000006" role="graphics-document document" aria-roledescription="flowchart-v2" style="max-width: 876.3203125px;"><style>#gd26{font-family:Recursive,ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:16px;fill:#f4f4f5;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#gd26 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#gd26 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#gd26 .error-icon{fill:#1a232f;}#gd26 .error-text{fill:#e5dcd0;stroke:#e5dcd0;}#gd26 .edge-thickness-normal{stroke-width:1px;}#gd26 .edge-thickness-thick{stroke-width:3.5px;}#gd26 .edge-pattern-solid{stroke-dasharray:0;}#gd26 .edge-thickness-invisible{stroke-width:0;fill:none;}#gd26 .edge-pattern-dashed{stroke-dasharray:3;}#gd26 .edge-pattern-dotted{stroke-dasharray:2;}#gd26 .marker{fill:#a9b5b4;stroke:#a9b5b4;}#gd26 .marker.cross{stroke:#a9b5b4;}#gd26 svg{font-family:Recursive,ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:16px;}#gd26 p{margin:0;}#gd26 .label{font-family:Recursive,ui-sans-serif,system-ui,-apple-system,sans-serif;color:#f4f4f5;}#gd26 .cluster-label text{fill:#f4f4f5;}#gd26 .cluster-label span{color:#f4f4f5;}#gd26 .cluster-label span p{background-color:transparent;}#gd26 .label text,#gd26 span{fill:#f4f4f5;color:#f4f4f5;}#gd26 .node rect,#gd26 .node circle,#gd26 .node ellipse,#gd26 .node polygon,#gd26 .node path{fill:#17202c;stroke:#3a4a52;stroke-width:1px;}#gd26 .rough-node .label text,#gd26 .node .label text,#gd26 .image-shape .label,#gd26 .icon-shape .label{text-anchor:middle;}#gd26 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#gd26 .rough-node .label,#gd26 .node .label,#gd26 .image-shape .label,#gd26 .icon-shape .label{text-align:center;}#gd26 .node.clickable{cursor:pointer;}#gd26 .root .anchor path{fill:#a9b5b4!important;stroke-width:0;stroke:#a9b5b4;}#gd26 .arrowheadPath{fill:rgba(255, 255, 255, 0);}#gd26 .edgePath .path{stroke:#a9b5b4;stroke-width:1px;}#gd26 .flowchart-link{stroke:#a9b5b4;fill:none;}#gd26 .edgeLabel{background-color:#11171a;text-align:center;}#gd26 .edgeLabel p{background-color:#11171a;}#gd26 .edgeLabel rect{opacity:0.5;background-color:#11171a;fill:#11171a;}#gd26 .labelBkg{background-color:rgba(17, 23, 26, 0.5);}#gd26 .cluster rect{fill:#11171a;stroke:#233035;stroke-width:1px;}#gd26 .cluster text{fill:#f4f4f5;}#gd26 .cluster span{color:#f4f4f5;}#gd26 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:Recursive,ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:12px;background:#1a232f;border:1px solid hsl(214.2857142857, 0%, 4.3137254902%);border-radius:2px;pointer-events:none;z-index:100;}#gd26 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#f4f4f5;}#gd26 rect.text{fill:none;stroke-width:0;}#gd26 .icon-shape,#gd26 .image-shape{background-color:#11171a;text-align:center;}#gd26 .icon-shape p,#gd26 .image-shape p{background-color:#11171a;padding:2px;}#gd26 .icon-shape .label rect,#gd26 .image-shape .label rect{opacity:0.5;background-color:#11171a;fill:#11171a;}#gd26 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#gd26 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#gd26 .node .neo-node{stroke:#3a4a52;}#gd26 [data-look=&quot;neo&quot;].node rect,#gd26 [data-look=&quot;neo&quot;].cluster rect,#gd26 [data-look=&quot;neo&quot;].node polygon{stroke:url(#gd26-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#gd26 [data-look=&quot;neo&quot;].swimlane.cluster rect{filter:none;}#gd26 [data-look=&quot;neo&quot;].node path{stroke:url(#gd26-gradient);stroke-width:1px;}#gd26 [data-look=&quot;neo&quot;].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#gd26 [data-look=&quot;neo&quot;].node .neo-line path{stroke:#3a4a52;filter:none;}#gd26 [data-look=&quot;neo&quot;].node circle{stroke:url(#gd26-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#gd26 [data-look=&quot;neo&quot;].node circle .state-start{fill:#000000;}#gd26 [data-look=&quot;neo&quot;].icon-shape .icon{fill:url(#gd26-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#gd26 [data-look=&quot;neo&quot;].icon-shape .icon-neo path{stroke:url(#gd26-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#gd26 :root{--mermaid-font-family:Recursive,ui-sans-serif,system-ui,-apple-system,sans-serif;}</style><g><marker id="gd26_flowchart-v2-pointEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowMarkerPath" style="stroke-width:1;stroke-dasharray:1,0"></path></marker><marker id="gd26_flowchart-v2-pointStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="4.5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 5 L 10 10 L 10 0 z" class="arrowMarkerPath" style="stroke-width:1;stroke-dasharray:1,0"></path></marker><marker id="gd26_flowchart-v2-pointEnd-margin" class="marker flowchart-v2" viewBox="0 0 11.5 14" refX="11.5" refY="7" markerUnits="userSpaceOnUse" markerWidth="10.5" markerHeight="14" orient="auto"><path d="M 0 0 L 11.5 7 L 0 14 z" class="arrowMarkerPath" style="stroke-width:0;stroke-dasharray:1,0"></path></marker><marker id="gd26_flowchart-v2-pointStart-margin" class="marker flowchart-v2" viewBox="0 0 11.5 14" refX="1" refY="7" markerUnits="userSpaceOnUse" markerWidth="11.5" markerHeight="14" orient="auto"><polygon points="0,7 11.5,14 11.5,0" class="arrowMarkerPath" style="stroke-width:0;stroke-dasharray:1,0"></polygon></marker><marker id="gd26_flowchart-v2-circleEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="11" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width:1;stroke-dasharray:1,0"></circle></marker><marker id="gd26_flowchart-v2-circleStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-1" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width:1;stroke-dasharray:1,0"></circle></marker><marker id="gd26_flowchart-v2-circleEnd-margin" class="marker flowchart-v2" viewBox="0 0 10 10" refY="5" refX="12.25" markerUnits="userSpaceOnUse" markerWidth="14" markerHeight="14" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width:0;stroke-dasharray:1,0"></circle></marker><marker id="gd26_flowchart-v2-circleStart-margin" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-2" refY="5" markerUnits="userSpaceOnUse" markerWidth="14" markerHeight="14" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width:0;stroke-dasharray:1,0"></circle></marker><marker id="gd26_flowchart-v2-crossEnd" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="12" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width:2;stroke-dasharray:1,0"></path></marker><marker id="gd26_flowchart-v2-crossStart" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="-1" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width:2;stroke-dasharray:1,0"></path></marker><marker id="gd26_flowchart-v2-crossEnd-margin" class="marker cross flowchart-v2" viewBox="0 0 15 15" refX="17.7" refY="7.5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto"><path d="M 1,1 L 14,14 M 1,14 L 14,1" class="arrowMarkerPath" style="stroke-width:2.5"></path></marker><marker id="gd26_flowchart-v2-crossStart-margin" class="marker cross flowchart-v2" viewBox="0 0 15 15" refX="-3.5" refY="7.5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto"><path d="M 1,1 L 14,14 M 1,14 L 14,1" class="arrowMarkerPath" style="stroke-width:2.5;stroke-dasharray:1,0"></path></marker><g class="root"><g class="clusters"></g><g class="edgePaths"><path d="M335.705,146.514L297.747,167.837C259.789,189.161,183.873,231.808,145.915,264.383C107.957,296.959,107.957,319.463,107.957,330.715L107.957,341.967" id="gd26-L_Q_RP_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" data-edge="true" data-et="edge" data-id="L_Q_RP_0" data-points="W3sieCI6MzM1LjcwNTM1NTU0NTAwMzksInkiOjE0Ni41MTM5NDkyOTUwMDM5fSx7IngiOjEwNy45NTcwMzEyNSwieSI6Mjc0LjQ1NDY4NzV9LHsieCI6MTA3Ljk1NzAzMTI1LCJ5IjozNDUuOTY3MTg3NX1d" data-look="classic" marker-end="url(#gd26_flowchart-v2-pointEnd)" style=";"></path><path d="M400.934,211.742L400.934,222.194C400.934,232.646,400.934,253.551,400.934,273.788C400.934,294.026,400.934,313.596,400.934,323.382L400.934,333.167" id="gd26-L_Q_CO_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" data-edge="true" data-et="edge" data-id="L_Q_CO_0" data-points="W3sieCI6NDAwLjkzMzU5Mzc1LCJ5IjoyMTEuNzQyMTg3NX0seyJ4Ijo0MDAuOTMzNTkzNzUsInkiOjI3NC40NTQ2ODc1fSx7IngiOjQwMC45MzM1OTM3NSwieSI6MzM3LjE2NzE4NzV9XQ==" data-look="classic" marker-end="url(#gd26_flowchart-v2-pointEnd)" style=";"></path><path d="M468.643,144.033L511.725,165.77C554.807,187.507,640.972,230.981,684.054,263.97C727.137,296.959,727.137,319.463,727.137,330.715L727.137,341.967" id="gd26-L_Q_COS_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" data-edge="true" data-et="edge" data-id="L_Q_COS_0" data-points="W3sieCI6NDY4LjY0MjU3NTc5NjMyMzksInkiOjE0NC4wMzMyMDU0NTM2NzYxfSx7IngiOjcyNy4xMzY3MTg3NSwieSI6Mjc0LjQ1NDY4NzV9LHsieCI6NzI3LjEzNjcxODc1LCJ5IjozNDUuOTY3MTg3NX1d" data-look="classic" marker-end="url(#gd26_flowchart-v2-pointEnd)" style=";"></path></g><g class="edgeLabels"><g class="edgeLabel" transform="translate(107.95703125, 274.4546875)"><g class="label" data-id="L_Q_RP_0" transform="translate(0, -36.860937500000006)"><g><rect class="background" x="-88.34375" y="-0.8515625" width="176.6875" height="75.42500000000001"></rect><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">More</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> partitions,</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> fix</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">skew,</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">or</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> rebalance</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> before</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> a</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="3.2em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">join/cache</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(400.93359375, 274.4546875)"><g class="label" data-id="L_Q_CO_0" transform="translate(0, -28.0609375)"><g><rect class="background" x="-87.04296875" y="-0.8515625" width="174.0859375" height="57.825"></rect><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Only</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> reduce</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> partition</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">count,</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">no</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> rebalance</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> needed</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(727.13671875, 274.4546875)"><g class="label" data-id="L_Q_COS_0" transform="translate(0, -19.2609375)"><g><rect class="background" x="-89.40625" y="-0.8515625" width="178.8125" height="40.225"></rect><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Reduce</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> count</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> but</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> still</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">need</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> a</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> rebalance</tspan></tspan></text></g></g></g></g><g class="nodes"><g class="node default " id="gd26-flowchart-Q-0" data-look="classic" transform="translate(400.93359375, 109.87109375)"><polygon points="101.87109375,0 203.7421875,-101.87109375 101.87109375,-203.7421875 0,-101.87109375" class="label-container" transform="translate(-101.37109375, 101.87109375)"></polygon><g class="label" transform="translate(0, -9.3125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">What</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> do</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> you</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> need?</tspan></tspan></text></g></g></g><g class="node default " id="gd26-flowchart-RP-2" data-look="classic" transform="translate(107.95703125, 379.07968750000003)"><rect class="basic label-container" x="-99.95703125" y="-33.1125" width="199.9140625" height="66.225"></rect><g class="label" transform="translate(0, -18.1125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">repartition</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(full</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> hash</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> shuffle)</tspan></tspan></text></g></g></g><g class="node default " id="gd26-flowchart-CO-4" data-look="classic" transform="translate(400.93359375, 379.07968750000003)"><rect class="basic label-container" x="-143.01953125" y="-41.9125" width="286.0390625" height="83.825"></rect><g class="label" transform="translate(0, -26.9125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">coalesce</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(narrow,</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> no</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> shuffle,</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">drops</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> upstream</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> parallelism)</tspan></tspan></text></g></g></g><g class="node default " id="gd26-flowchart-COS-6" data-look="classic" transform="translate(727.13671875, 379.07968750000003)"><rect class="basic label-container" x="-133.18359375" y="-33.1125" width="266.3671875" height="66.225"></rect><g class="label" transform="translate(0, -18.1125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">coalesce(n,</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> shuffle=True)</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(shuffle</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> +</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> rebalance)</tspan></tspan></text></g></g></g></g></g></g><defs><filter id="gd26-drop-shadow" height="130%" width="130%"><feDropShadow dx="4" dy="4" stdDeviation="0" flood-opacity="0.06" flood-color="#000000"></feDropShadow></filter></defs><defs><filter id="gd26-drop-shadow-small" height="150%" width="150%"><feDropShadow dx="2" dy="2" stdDeviation="0" flood-opacity="0.06" flood-color="#000000"></feDropShadow></filter></defs><linearGradient id="gd26-gradient" gradientUnits="objectBoundingBox" x1="0%" y1="0%" x2="100%" y2="0%"><stop offset="0%" stop-color="#3a4a52" stop-opacity="1"></stop><stop offset="100%" stop-color="hsl(200, 0%, 0%)" stop-opacity="1"></stop></linearGradient></svg>
@@ -0,0 +1 @@
1
+ <svg id="gd25" width="100%" xmlns="http://www.w3.org/2000/svg" class="flowchart" viewBox="-8 -8 876.3203125 436.99218750000006" role="graphics-document document" aria-roledescription="flowchart-v2" style="max-width: 876.3203125px;"><style>#gd25{font-family:Recursive,ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:16px;fill:#151b1e;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#gd25 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#gd25 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#gd25 .error-icon{fill:#eef1f6;}#gd25 .error-text{fill:#110e09;stroke:#110e09;}#gd25 .edge-thickness-normal{stroke-width:1px;}#gd25 .edge-thickness-thick{stroke-width:3.5px;}#gd25 .edge-pattern-solid{stroke-dasharray:0;}#gd25 .edge-thickness-invisible{stroke-width:0;fill:none;}#gd25 .edge-pattern-dashed{stroke-dasharray:3;}#gd25 .edge-pattern-dotted{stroke-dasharray:2;}#gd25 .marker{fill:#4f5f60;stroke:#4f5f60;}#gd25 .marker.cross{stroke:#4f5f60;}#gd25 svg{font-family:Recursive,ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:16px;}#gd25 p{margin:0;}#gd25 .label{font-family:Recursive,ui-sans-serif,system-ui,-apple-system,sans-serif;color:#151b1e;}#gd25 .cluster-label text{fill:#151b1e;}#gd25 .cluster-label span{color:#151b1e;}#gd25 .cluster-label span p{background-color:transparent;}#gd25 .label text,#gd25 span{fill:#151b1e;color:#151b1e;}#gd25 .node rect,#gd25 .node circle,#gd25 .node ellipse,#gd25 .node polygon,#gd25 .node path{fill:#ffffff;stroke:#9aa8a3;stroke-width:1px;}#gd25 .rough-node .label text,#gd25 .node .label text,#gd25 .image-shape .label,#gd25 .icon-shape .label{text-anchor:middle;}#gd25 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#gd25 .rough-node .label,#gd25 .node .label,#gd25 .image-shape .label,#gd25 .icon-shape .label{text-align:center;}#gd25 .node.clickable{cursor:pointer;}#gd25 .root .anchor path{fill:#4f5f60!important;stroke-width:0;stroke:#4f5f60;}#gd25 .arrowheadPath{fill:rgba(255, 255, 255, 0);}#gd25 .edgePath .path{stroke:#4f5f60;stroke-width:1px;}#gd25 .flowchart-link{stroke:#4f5f60;fill:none;}#gd25 .edgeLabel{background-color:#eef1f6;text-align:center;}#gd25 .edgeLabel p{background-color:#eef1f6;}#gd25 .edgeLabel rect{opacity:0.5;background-color:#eef1f6;fill:#eef1f6;}#gd25 .labelBkg{background-color:rgba(238, 241, 246, 0.5);}#gd25 .cluster rect{fill:#f2f5f9;stroke:#dbe2df;stroke-width:1px;}#gd25 .cluster text{fill:#151b1e;}#gd25 .cluster span{color:#151b1e;}#gd25 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:Recursive,ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:12px;background:#eef1f6;border:1px solid hsl(217.5, 0%, 84.9019607843%);border-radius:2px;pointer-events:none;z-index:100;}#gd25 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#151b1e;}#gd25 rect.text{fill:none;stroke-width:0;}#gd25 .icon-shape,#gd25 .image-shape{background-color:#eef1f6;text-align:center;}#gd25 .icon-shape p,#gd25 .image-shape p{background-color:#eef1f6;padding:2px;}#gd25 .icon-shape .label rect,#gd25 .image-shape .label rect{opacity:0.5;background-color:#eef1f6;fill:#eef1f6;}#gd25 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#gd25 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#gd25 .node .neo-node{stroke:#9aa8a3;}#gd25 [data-look=&quot;neo&quot;].node rect,#gd25 [data-look=&quot;neo&quot;].cluster rect,#gd25 [data-look=&quot;neo&quot;].node polygon{stroke:url(#gd25-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#gd25 [data-look=&quot;neo&quot;].swimlane.cluster rect{filter:none;}#gd25 [data-look=&quot;neo&quot;].node path{stroke:url(#gd25-gradient);stroke-width:1px;}#gd25 [data-look=&quot;neo&quot;].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#gd25 [data-look=&quot;neo&quot;].node .neo-line path{stroke:#9aa8a3;filter:none;}#gd25 [data-look=&quot;neo&quot;].node circle{stroke:url(#gd25-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#gd25 [data-look=&quot;neo&quot;].node circle .state-start{fill:#000000;}#gd25 [data-look=&quot;neo&quot;].icon-shape .icon{fill:url(#gd25-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#gd25 [data-look=&quot;neo&quot;].icon-shape .icon-neo path{stroke:url(#gd25-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#gd25 :root{--mermaid-font-family:Recursive,ui-sans-serif,system-ui,-apple-system,sans-serif;}</style><g><marker id="gd25_flowchart-v2-pointEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowMarkerPath" style="stroke-width:1;stroke-dasharray:1,0"></path></marker><marker id="gd25_flowchart-v2-pointStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="4.5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 5 L 10 10 L 10 0 z" class="arrowMarkerPath" style="stroke-width:1;stroke-dasharray:1,0"></path></marker><marker id="gd25_flowchart-v2-pointEnd-margin" class="marker flowchart-v2" viewBox="0 0 11.5 14" refX="11.5" refY="7" markerUnits="userSpaceOnUse" markerWidth="10.5" markerHeight="14" orient="auto"><path d="M 0 0 L 11.5 7 L 0 14 z" class="arrowMarkerPath" style="stroke-width:0;stroke-dasharray:1,0"></path></marker><marker id="gd25_flowchart-v2-pointStart-margin" class="marker flowchart-v2" viewBox="0 0 11.5 14" refX="1" refY="7" markerUnits="userSpaceOnUse" markerWidth="11.5" markerHeight="14" orient="auto"><polygon points="0,7 11.5,14 11.5,0" class="arrowMarkerPath" style="stroke-width:0;stroke-dasharray:1,0"></polygon></marker><marker id="gd25_flowchart-v2-circleEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="11" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width:1;stroke-dasharray:1,0"></circle></marker><marker id="gd25_flowchart-v2-circleStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-1" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width:1;stroke-dasharray:1,0"></circle></marker><marker id="gd25_flowchart-v2-circleEnd-margin" class="marker flowchart-v2" viewBox="0 0 10 10" refY="5" refX="12.25" markerUnits="userSpaceOnUse" markerWidth="14" markerHeight="14" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width:0;stroke-dasharray:1,0"></circle></marker><marker id="gd25_flowchart-v2-circleStart-margin" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-2" refY="5" markerUnits="userSpaceOnUse" markerWidth="14" markerHeight="14" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width:0;stroke-dasharray:1,0"></circle></marker><marker id="gd25_flowchart-v2-crossEnd" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="12" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width:2;stroke-dasharray:1,0"></path></marker><marker id="gd25_flowchart-v2-crossStart" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="-1" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width:2;stroke-dasharray:1,0"></path></marker><marker id="gd25_flowchart-v2-crossEnd-margin" class="marker cross flowchart-v2" viewBox="0 0 15 15" refX="17.7" refY="7.5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto"><path d="M 1,1 L 14,14 M 1,14 L 14,1" class="arrowMarkerPath" style="stroke-width:2.5"></path></marker><marker id="gd25_flowchart-v2-crossStart-margin" class="marker cross flowchart-v2" viewBox="0 0 15 15" refX="-3.5" refY="7.5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto"><path d="M 1,1 L 14,14 M 1,14 L 14,1" class="arrowMarkerPath" style="stroke-width:2.5;stroke-dasharray:1,0"></path></marker><g class="root"><g class="clusters"></g><g class="edgePaths"><path d="M335.705,146.514L297.747,167.837C259.789,189.161,183.873,231.808,145.915,264.383C107.957,296.959,107.957,319.463,107.957,330.715L107.957,341.967" id="gd25-L_Q_RP_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" data-edge="true" data-et="edge" data-id="L_Q_RP_0" data-points="W3sieCI6MzM1LjcwNTM1NTU0NTAwMzksInkiOjE0Ni41MTM5NDkyOTUwMDM5fSx7IngiOjEwNy45NTcwMzEyNSwieSI6Mjc0LjQ1NDY4NzV9LHsieCI6MTA3Ljk1NzAzMTI1LCJ5IjozNDUuOTY3MTg3NX1d" data-look="classic" marker-end="url(#gd25_flowchart-v2-pointEnd)" style=";"></path><path d="M400.934,211.742L400.934,222.194C400.934,232.646,400.934,253.551,400.934,273.788C400.934,294.026,400.934,313.596,400.934,323.382L400.934,333.167" id="gd25-L_Q_CO_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" data-edge="true" data-et="edge" data-id="L_Q_CO_0" data-points="W3sieCI6NDAwLjkzMzU5Mzc1LCJ5IjoyMTEuNzQyMTg3NX0seyJ4Ijo0MDAuOTMzNTkzNzUsInkiOjI3NC40NTQ2ODc1fSx7IngiOjQwMC45MzM1OTM3NSwieSI6MzM3LjE2NzE4NzV9XQ==" data-look="classic" marker-end="url(#gd25_flowchart-v2-pointEnd)" style=";"></path><path d="M468.643,144.033L511.725,165.77C554.807,187.507,640.972,230.981,684.054,263.97C727.137,296.959,727.137,319.463,727.137,330.715L727.137,341.967" id="gd25-L_Q_COS_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" data-edge="true" data-et="edge" data-id="L_Q_COS_0" data-points="W3sieCI6NDY4LjY0MjU3NTc5NjMyMzksInkiOjE0NC4wMzMyMDU0NTM2NzYxfSx7IngiOjcyNy4xMzY3MTg3NSwieSI6Mjc0LjQ1NDY4NzV9LHsieCI6NzI3LjEzNjcxODc1LCJ5IjozNDUuOTY3MTg3NX1d" data-look="classic" marker-end="url(#gd25_flowchart-v2-pointEnd)" style=";"></path></g><g class="edgeLabels"><g class="edgeLabel" transform="translate(107.95703125, 274.4546875)"><g class="label" data-id="L_Q_RP_0" transform="translate(0, -36.860937500000006)"><g><rect class="background" x="-88.34375" y="-0.8515625" width="176.6875" height="75.42500000000001"></rect><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">More</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> partitions,</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> fix</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">skew,</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">or</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> rebalance</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> before</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> a</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="3.2em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">join/cache</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(400.93359375, 274.4546875)"><g class="label" data-id="L_Q_CO_0" transform="translate(0, -28.0609375)"><g><rect class="background" x="-87.04296875" y="-0.8515625" width="174.0859375" height="57.825"></rect><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Only</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> reduce</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> partition</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">count,</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">no</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> rebalance</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> needed</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(727.13671875, 274.4546875)"><g class="label" data-id="L_Q_COS_0" transform="translate(0, -19.2609375)"><g><rect class="background" x="-89.40625" y="-0.8515625" width="178.8125" height="40.225"></rect><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Reduce</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> count</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> but</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> still</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">need</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> a</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> rebalance</tspan></tspan></text></g></g></g></g><g class="nodes"><g class="node default " id="gd25-flowchart-Q-0" data-look="classic" transform="translate(400.93359375, 109.87109375)"><polygon points="101.87109375,0 203.7421875,-101.87109375 101.87109375,-203.7421875 0,-101.87109375" class="label-container" transform="translate(-101.37109375, 101.87109375)"></polygon><g class="label" transform="translate(0, -9.3125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">What</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> do</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> you</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> need?</tspan></tspan></text></g></g></g><g class="node default " id="gd25-flowchart-RP-2" data-look="classic" transform="translate(107.95703125, 379.07968750000003)"><rect class="basic label-container" x="-99.95703125" y="-33.1125" width="199.9140625" height="66.225"></rect><g class="label" transform="translate(0, -18.1125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">repartition</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(full</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> hash</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> shuffle)</tspan></tspan></text></g></g></g><g class="node default " id="gd25-flowchart-CO-4" data-look="classic" transform="translate(400.93359375, 379.07968750000003)"><rect class="basic label-container" x="-143.01953125" y="-41.9125" width="286.0390625" height="83.825"></rect><g class="label" transform="translate(0, -26.9125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">coalesce</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(narrow,</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> no</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> shuffle,</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">drops</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> upstream</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> parallelism)</tspan></tspan></text></g></g></g><g class="node default " id="gd25-flowchart-COS-6" data-look="classic" transform="translate(727.13671875, 379.07968750000003)"><rect class="basic label-container" x="-133.18359375" y="-33.1125" width="266.3671875" height="66.225"></rect><g class="label" transform="translate(0, -18.1125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">coalesce(n,</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> shuffle=True)</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(shuffle</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> +</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> rebalance)</tspan></tspan></text></g></g></g></g></g></g><defs><filter id="gd25-drop-shadow" height="130%" width="130%"><feDropShadow dx="4" dy="4" stdDeviation="0" flood-opacity="0.06" flood-color="#000000"></feDropShadow></filter></defs><defs><filter id="gd25-drop-shadow-small" height="150%" width="150%"><feDropShadow dx="2" dy="2" stdDeviation="0" flood-opacity="0.06" flood-color="#000000"></feDropShadow></filter></defs><linearGradient id="gd25-gradient" gradientUnits="objectBoundingBox" x1="0%" y1="0%" x2="100%" y2="0%"><stop offset="0%" stop-color="#9aa8a3" stop-opacity="1"></stop><stop offset="100%" stop-color="hsl(214.2857142857, 0%, 86.2745098039%)" stop-opacity="1"></stop></linearGradient></svg>
@@ -0,0 +1 @@
1
+ <svg id="gd28" width="100%" xmlns="http://www.w3.org/2000/svg" class="flowchart" viewBox="-8 -17.3125 1909.8769531249998 917.3859375000001" role="graphics-document document" aria-roledescription="flowchart-v2" style="max-width: 1909.8769531249998px;"><style>#gd28{font-family:Recursive,ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:16px;fill:#f4f4f5;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#gd28 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#gd28 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#gd28 .error-icon{fill:#1a232f;}#gd28 .error-text{fill:#e5dcd0;stroke:#e5dcd0;}#gd28 .edge-thickness-normal{stroke-width:1px;}#gd28 .edge-thickness-thick{stroke-width:3.5px;}#gd28 .edge-pattern-solid{stroke-dasharray:0;}#gd28 .edge-thickness-invisible{stroke-width:0;fill:none;}#gd28 .edge-pattern-dashed{stroke-dasharray:3;}#gd28 .edge-pattern-dotted{stroke-dasharray:2;}#gd28 .marker{fill:#a9b5b4;stroke:#a9b5b4;}#gd28 .marker.cross{stroke:#a9b5b4;}#gd28 svg{font-family:Recursive,ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:16px;}#gd28 p{margin:0;}#gd28 .label{font-family:Recursive,ui-sans-serif,system-ui,-apple-system,sans-serif;color:#f4f4f5;}#gd28 .cluster-label text{fill:#f4f4f5;}#gd28 .cluster-label span{color:#f4f4f5;}#gd28 .cluster-label span p{background-color:transparent;}#gd28 .label text,#gd28 span{fill:#f4f4f5;color:#f4f4f5;}#gd28 .node rect,#gd28 .node circle,#gd28 .node ellipse,#gd28 .node polygon,#gd28 .node path{fill:#17202c;stroke:#3a4a52;stroke-width:1px;}#gd28 .rough-node .label text,#gd28 .node .label text,#gd28 .image-shape .label,#gd28 .icon-shape .label{text-anchor:middle;}#gd28 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#gd28 .rough-node .label,#gd28 .node .label,#gd28 .image-shape .label,#gd28 .icon-shape .label{text-align:center;}#gd28 .node.clickable{cursor:pointer;}#gd28 .root .anchor path{fill:#a9b5b4!important;stroke-width:0;stroke:#a9b5b4;}#gd28 .arrowheadPath{fill:rgba(255, 255, 255, 0);}#gd28 .edgePath .path{stroke:#a9b5b4;stroke-width:1px;}#gd28 .flowchart-link{stroke:#a9b5b4;fill:none;}#gd28 .edgeLabel{background-color:#11171a;text-align:center;}#gd28 .edgeLabel p{background-color:#11171a;}#gd28 .edgeLabel rect{opacity:0.5;background-color:#11171a;fill:#11171a;}#gd28 .labelBkg{background-color:rgba(17, 23, 26, 0.5);}#gd28 .cluster rect{fill:#11171a;stroke:#233035;stroke-width:1px;}#gd28 .cluster text{fill:#f4f4f5;}#gd28 .cluster span{color:#f4f4f5;}#gd28 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:Recursive,ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:12px;background:#1a232f;border:1px solid hsl(214.2857142857, 0%, 4.3137254902%);border-radius:2px;pointer-events:none;z-index:100;}#gd28 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#f4f4f5;}#gd28 rect.text{fill:none;stroke-width:0;}#gd28 .icon-shape,#gd28 .image-shape{background-color:#11171a;text-align:center;}#gd28 .icon-shape p,#gd28 .image-shape p{background-color:#11171a;padding:2px;}#gd28 .icon-shape .label rect,#gd28 .image-shape .label rect{opacity:0.5;background-color:#11171a;fill:#11171a;}#gd28 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#gd28 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#gd28 .node .neo-node{stroke:#3a4a52;}#gd28 [data-look=&quot;neo&quot;].node rect,#gd28 [data-look=&quot;neo&quot;].cluster rect,#gd28 [data-look=&quot;neo&quot;].node polygon{stroke:url(#gd28-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#gd28 [data-look=&quot;neo&quot;].swimlane.cluster rect{filter:none;}#gd28 [data-look=&quot;neo&quot;].node path{stroke:url(#gd28-gradient);stroke-width:1px;}#gd28 [data-look=&quot;neo&quot;].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#gd28 [data-look=&quot;neo&quot;].node .neo-line path{stroke:#3a4a52;filter:none;}#gd28 [data-look=&quot;neo&quot;].node circle{stroke:url(#gd28-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#gd28 [data-look=&quot;neo&quot;].node circle .state-start{fill:#000000;}#gd28 [data-look=&quot;neo&quot;].icon-shape .icon{fill:url(#gd28-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#gd28 [data-look=&quot;neo&quot;].icon-shape .icon-neo path{stroke:url(#gd28-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#gd28 :root{--mermaid-font-family:Recursive,ui-sans-serif,system-ui,-apple-system,sans-serif;}</style><g><marker id="gd28_flowchart-v2-pointEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowMarkerPath" style="stroke-width:1;stroke-dasharray:1,0"></path></marker><marker id="gd28_flowchart-v2-pointStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="4.5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 5 L 10 10 L 10 0 z" class="arrowMarkerPath" style="stroke-width:1;stroke-dasharray:1,0"></path></marker><marker id="gd28_flowchart-v2-pointEnd-margin" class="marker flowchart-v2" viewBox="0 0 11.5 14" refX="11.5" refY="7" markerUnits="userSpaceOnUse" markerWidth="10.5" markerHeight="14" orient="auto"><path d="M 0 0 L 11.5 7 L 0 14 z" class="arrowMarkerPath" style="stroke-width:0;stroke-dasharray:1,0"></path></marker><marker id="gd28_flowchart-v2-pointStart-margin" class="marker flowchart-v2" viewBox="0 0 11.5 14" refX="1" refY="7" markerUnits="userSpaceOnUse" markerWidth="11.5" markerHeight="14" orient="auto"><polygon points="0,7 11.5,14 11.5,0" class="arrowMarkerPath" style="stroke-width:0;stroke-dasharray:1,0"></polygon></marker><marker id="gd28_flowchart-v2-circleEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="11" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width:1;stroke-dasharray:1,0"></circle></marker><marker id="gd28_flowchart-v2-circleStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-1" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width:1;stroke-dasharray:1,0"></circle></marker><marker id="gd28_flowchart-v2-circleEnd-margin" class="marker flowchart-v2" viewBox="0 0 10 10" refY="5" refX="12.25" markerUnits="userSpaceOnUse" markerWidth="14" markerHeight="14" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width:0;stroke-dasharray:1,0"></circle></marker><marker id="gd28_flowchart-v2-circleStart-margin" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-2" refY="5" markerUnits="userSpaceOnUse" markerWidth="14" markerHeight="14" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width:0;stroke-dasharray:1,0"></circle></marker><marker id="gd28_flowchart-v2-crossEnd" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="12" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width:2;stroke-dasharray:1,0"></path></marker><marker id="gd28_flowchart-v2-crossStart" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="-1" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width:2;stroke-dasharray:1,0"></path></marker><marker id="gd28_flowchart-v2-crossEnd-margin" class="marker cross flowchart-v2" viewBox="0 0 15 15" refX="17.7" refY="7.5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto"><path d="M 1,1 L 14,14 M 1,14 L 14,1" class="arrowMarkerPath" style="stroke-width:2.5"></path></marker><marker id="gd28_flowchart-v2-crossStart-margin" class="marker cross flowchart-v2" viewBox="0 0 15 15" refX="-3.5" refY="7.5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto"><path d="M 1,1 L 14,14 M 1,14 L 14,1" class="arrowMarkerPath" style="stroke-width:2.5;stroke-dasharray:1,0"></path></marker><g class="root"><g class="clusters"><g class="cluster " id="gd28-EXEC" data-look="classic"><rect x="1255.2292968749998" y="131.625" width="638.64765625" height="676.8234375000001"></rect><g class="cluster-label " transform="translate(1432.41640625, 131.625)"><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Executor</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> failures</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> (application</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> level)</tspan></tspan></text></g></g></g><g class="cluster " id="gd28-FETCH" data-look="classic"><rect x="651.948828125" y="8" width="583.28046875" height="800.4484375000001"></rect><g class="cluster-label " transform="translate(793.53828125, 8)"><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Shuffle-fetch</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> failures</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> (DAGScheduler)</tspan></tspan></text></g></g></g><g class="cluster " id="gd28-TASK" data-look="classic"><rect x="8" y="131.625" width="623.948828125" height="676.8234375000001"></rect><g class="cluster-label " transform="translate(148.3181640625, 131.625)"><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Task-computation</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> failures</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> (TaskScheduler)</tspan></tspan></text></g></g></g></g><g class="edgePaths"><path d="M344.385,214.05L344.385,219.683C344.385,225.317,344.385,236.583,344.385,255.706C344.385,274.829,344.385,301.808,344.385,315.298L344.385,328.787" id="gd28-L_T_TR_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" data-edge="true" data-et="edge" data-id="L_T_TR_0" data-points="W3sieCI6MzQ0LjM4NDc2NTYyNSwieSI6MjE0LjA1fSx7IngiOjM0NC4zODQ3NjU2MjUsInkiOjI0Ny44NX0seyJ4IjozNDQuMzg0NzY1NjI0OTk5OSwieSI6MzMyLjc4NzQ5OTk5OTk5OTk3fV0=" data-look="classic" marker-end="url(#gd28_flowchart-v2-pointEnd)" style=";"></path><path d="M294.422,534.698L278.397,559.067C262.371,583.436,230.32,632.173,214.295,661.928C198.27,691.682,198.27,702.453,198.27,707.838L198.27,713.223" id="gd28-L_TR_RETRY_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" data-edge="true" data-et="edge" data-id="L_TR_RETRY_0" data-points="W3sieCI6Mjk0LjQyMjMwMTM0Njg2NjMsInkiOjUzNC42OTg0NzMyMjE4NjYyfSx7IngiOjE5OC4yNjk1MzEyNSwieSI6NjgwLjkxMDkzNzV9LHsieCI6MTk4LjI2OTUzMTI1LCJ5Ijo3MTcuMjIzNDM3NX1d" data-look="classic" marker-end="url(#gd28_flowchart-v2-pointEnd)" style=";"></path><path d="M394.347,534.698L410.373,559.067C426.398,583.436,458.449,632.173,474.475,663.394C490.5,694.615,490.5,708.319,490.5,715.171L490.5,722.023" id="gd28-L_TR_TABORT_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" data-edge="true" data-et="edge" data-id="L_TR_TABORT_0" data-points="W3sieCI6Mzk0LjM0NzIyOTkwMzEzMzg0LCJ5Ijo1MzQuNjk4NDczMjIxODY2NH0seyJ4Ijo0OTAuNSwieSI6NjgwLjkxMDkzNzV9LHsieCI6NDkwLjUsInkiOjcyNi4wMjM0Mzc1fV0=" data-look="classic" marker-end="url(#gd28_flowchart-v2-pointEnd)" style=";"></path><path d="M946.343,81.625L946.343,85.792C946.343,89.958,946.343,98.292,946.343,106.625C946.343,114.958,946.343,123.292,946.343,130.958C946.343,138.625,946.343,145.625,946.343,149.125L946.343,152.625" id="gd28-L_FF_RESUB_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" data-edge="true" data-et="edge" data-id="L_FF_RESUB_0" data-points="W3sieCI6OTQ2LjM0Mjk2ODc1LCJ5Ijo4MS42MjV9LHsieCI6OTQ2LjM0Mjk2ODc1LCJ5IjoxMDYuNjI1fSx7IngiOjk0Ni4zNDI5Njg3NSwieSI6MTMxLjYyNX0seyJ4Ijo5NDYuMzQyOTY4NzUsInkiOjE1Ni42MjV9XQ==" data-look="classic" marker-end="url(#gd28_flowchart-v2-pointEnd)" style=";"></path><path d="M946.343,222.85L946.343,227.017C946.343,231.183,946.343,239.517,946.343,247.183C946.343,254.85,946.343,261.85,946.343,265.35L946.343,268.85" id="gd28-L_RESUB_SR_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" data-edge="true" data-et="edge" data-id="L_RESUB_SR_0" data-points="W3sieCI6OTQ2LjM0Mjk2ODc1LCJ5IjoyMjIuODUwMDAwMDAwMDAwMDJ9LHsieCI6OTQ2LjM0Mjk2ODc1LCJ5IjoyNDcuODV9LHsieCI6OTQ2LjM0Mjk2ODc1LCJ5IjoyNzIuODQ5OTk5OTk5OTk5OTd9XQ==" data-look="classic" marker-end="url(#gd28_flowchart-v2-pointEnd)" style=";"></path><path d="M882.059,580.314L873.195,597.081C864.331,613.847,846.602,647.379,837.738,670.997C828.874,694.615,828.874,708.319,828.874,715.171L828.874,722.023" id="gd28-L_SR_FRETRY_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" data-edge="true" data-et="edge" data-id="L_SR_FRETRY_0" data-points="W3sieCI6ODgyLjA1ODk2ODgwNjkyODMsInkiOjU4MC4zMTQ0Mzc1NTY5MjgzfSx7IngiOjgyOC44NzQyMTg3NSwieSI6NjgwLjkxMDkzNzV9LHsieCI6ODI4Ljg3NDIxODc1LCJ5Ijo3MjYuMDIzNDM3NX1d" data-look="classic" marker-end="url(#gd28_flowchart-v2-pointEnd)" style=";"></path><path d="M1010.627,580.314L1019.491,597.081C1028.355,613.847,1046.083,647.379,1054.948,670.997C1063.812,694.615,1063.812,708.319,1063.812,715.171L1063.812,722.023" id="gd28-L_SR_SABORT_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" data-edge="true" data-et="edge" data-id="L_SR_SABORT_0" data-points="W3sieCI6MTAxMC42MjY5Njg2OTMwNzIxLCJ5Ijo1ODAuMzE0NDM3NTU2OTI4fSx7IngiOjEwNjMuODExNzE4NzUwMDAwMiwieSI6NjgwLjkxMDkzNzV9LHsieCI6MTA2My44MTE3MTg3NTAwMDAyLCJ5Ijo3MjYuMDIzNDM3NX1d" data-look="classic" marker-end="url(#gd28_flowchart-v2-pointEnd)" style=";"></path><path d="M1569.664,214.05L1569.664,219.683C1569.664,225.317,1569.664,236.583,1569.664,249.477C1569.664,262.371,1569.664,276.892,1569.664,284.152L1569.664,291.412" id="gd28-L_EL_EX_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" data-edge="true" data-et="edge" data-id="L_EL_EX_0" data-points="W3sieCI6MTU2OS42NjQ0NTMxMjUsInkiOjIxNC4wNX0seyJ4IjoxNTY5LjY2NDQ1MzEyNSwieSI6MjQ3Ljg1fSx7IngiOjE1NjkuNjY0NDUzMTI1MDAwMSwieSI6Mjk1LjQxMjQ5OTk5OTk5OTk3fV0=" data-look="classic" marker-end="url(#gd28_flowchart-v2-pointEnd)" style=";"></path><path d="M1505.594,557.965L1492.365,578.456C1479.136,598.947,1452.677,639.929,1439.448,665.805C1426.219,691.682,1426.219,702.453,1426.219,707.838L1426.219,713.223" id="gd28-L_EX_KEEP_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" data-edge="true" data-et="edge" data-id="L_EX_KEEP_0" data-points="W3sieCI6MTUwNS41OTM3NTIxNzc2MDg2LCJ5Ijo1NTcuOTY1MjM2NTUyNjA4Nn0seyJ4IjoxNDI2LjIxOTE0MDYyNSwieSI6NjgwLjkxMDkzNzV9LHsieCI6MTQyNi4yMTkxNDA2MjUsInkiOjcxNy4yMjM0Mzc1fV0=" data-look="classic" marker-end="url(#gd28_flowchart-v2-pointEnd)" style=";"></path><path d="M1633.735,557.965L1646.964,578.456C1660.193,598.947,1686.652,639.929,1699.881,665.805C1713.11,691.682,1713.11,702.453,1713.11,707.838L1713.11,713.223" id="gd28-L_EX_EABORT_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" data-edge="true" data-et="edge" data-id="L_EX_EABORT_0" data-points="W3sieCI6MTYzMy43MzUxNTQwNzIzOTEsInkiOjU1Ny45NjUyMzY1NTI2MDk0fSx7IngiOjE3MTMuMTA5NzY1NjI1LCJ5Ijo2ODAuOTEwOTM3NX0seyJ4IjoxNzEzLjEwOTc2NTYyNSwieSI6NzE3LjIyMzQzNzV9XQ==" data-look="classic" marker-end="url(#gd28_flowchart-v2-pointEnd)" style=";"></path><path d="M490.5,774.648L490.5,780.282C490.5,785.915,490.5,797.182,490.5,806.982C490.5,816.782,490.5,825.115,575.913,835.588C661.327,846.06,832.154,858.672,917.567,864.978L1002.981,871.284" id="gd28-L_TABORT_JOB_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" data-edge="true" data-et="edge" data-id="L_TABORT_JOB_0" data-points="W3sieCI6NDkwLjUsInkiOjc3NC42NDg0Mzc1fSx7IngiOjQ5MC41LCJ5Ijo4MDguNDQ4NDM3NTAwMDAwMX0seyJ4Ijo0OTAuNSwieSI6ODMzLjQ0ODQzNzUwMDAwMDF9LHsieCI6MTAwNi45Njk5NTE4MjEyODk0LCJ5Ijo4NzEuNTc4OTE0Nzg2NTM3M31d" data-look="classic" marker-end="url(#gd28_flowchart-v2-pointEnd)" style=";"></path><path d="M1063.812,774.648L1063.812,780.282C1063.812,785.915,1063.812,797.182,1063.812,806.982C1063.812,816.782,1063.812,825.115,1063.882,832.865C1063.952,840.615,1064.093,847.782,1064.163,851.366L1064.233,854.949" id="gd28-L_SABORT_JOB_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" data-edge="true" data-et="edge" data-id="L_SABORT_JOB_0" data-points="W3sieCI6MTA2My44MTE3MTg3NTAwMDAyLCJ5Ijo3NzQuNjQ4NDM3NX0seyJ4IjoxMDYzLjgxMTcxODc1MDAwMDIsInkiOjgwOC40NDg0Mzc1MDAwMDAxfSx7IngiOjEwNjMuODExNzE4NzUwMDAwMiwieSI6ODMzLjQ0ODQzNzUwMDAwMDF9LHsieCI6MTA2NC4zMTE3MTg3NTAwMDE4LCJ5Ijo4NTguOTQ4NDM3NTAwMDAwNn1d" data-look="classic" marker-end="url(#gd28_flowchart-v2-pointEnd)" style=";"></path><path d="M1713.11,783.448L1713.11,787.615C1713.11,791.782,1713.11,800.115,1713.11,808.448C1713.11,816.782,1713.11,825.115,1615.22,835.674C1517.329,846.232,1321.549,859.016,1223.659,865.408L1125.769,871.8" id="gd28-L_EABORT_JOB_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" data-edge="true" data-et="edge" data-id="L_EABORT_JOB_0" data-points="W3sieCI6MTcxMy4xMDk3NjU2MjUsInkiOjc4My40NDg0Mzc1fSx7IngiOjE3MTMuMTA5NzY1NjI1LCJ5Ijo4MDguNDQ4NDM3NTAwMDAwMX0seyJ4IjoxNzEzLjEwOTc2NTYyNSwieSI6ODMzLjQ0ODQzNzUwMDAwMDF9LHsieCI6MTEyMS43NzcwMDE5MjIzOTc0LCJ5Ijo4NzIuMDYwMzc2MzEwNTU4NH1d" data-look="classic" marker-end="url(#gd28_flowchart-v2-pointEnd)" style=";"></path></g><g class="edgeLabels"><g class="edgeLabel"><g class="label" data-id="L_T_TR_0" transform="translate(0, -10.4609375)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"></tspan></text></g></g><g><rect class="background" style="stroke: none"></rect></g><g class="edgeLabel" transform="translate(198.26953125, 680.9109375)"><g class="label" data-id="L_TR_RETRY_0" transform="translate(0, -10.4609375)"><g><rect class="background" x="-12.87890625" y="-0.8515625" width="25.7578125" height="22.625"></rect><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">No</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(490.5, 680.9109375)"><g class="label" data-id="L_TR_TABORT_0" transform="translate(0, -10.4609375)"><g><rect class="background" x="-15.9765625" y="-0.8515625" width="31.953125" height="22.625"></rect><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Yes</tspan></tspan></text></g></g></g><g class="edgeLabel"><g class="label" data-id="L_FF_RESUB_0" transform="translate(0, -10.4609375)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"></tspan></text></g></g><g><rect class="background" style="stroke: none"></rect></g><g class="edgeLabel"><g class="label" data-id="L_RESUB_SR_0" transform="translate(0, -10.4609375)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"></tspan></text></g></g><g><rect class="background" style="stroke: none"></rect></g><g class="edgeLabel" transform="translate(828.87421875, 680.9109375)"><g class="label" data-id="L_SR_FRETRY_0" transform="translate(0, -10.4609375)"><g><rect class="background" x="-12.87890625" y="-0.8515625" width="25.7578125" height="22.625"></rect><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">No</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(1063.8117187500002, 680.9109375)"><g class="label" data-id="L_SR_SABORT_0" transform="translate(0, -10.4609375)"><g><rect class="background" x="-15.9765625" y="-0.8515625" width="31.953125" height="22.625"></rect><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Yes</tspan></tspan></text></g></g></g><g class="edgeLabel"><g class="label" data-id="L_EL_EX_0" transform="translate(0, -10.4609375)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"></tspan></text></g></g><g><rect class="background" style="stroke: none"></rect></g><g class="edgeLabel" transform="translate(1426.219140625, 680.9109375)"><g class="label" data-id="L_EX_KEEP_0" transform="translate(0, -10.4609375)"><g><rect class="background" x="-12.87890625" y="-0.8515625" width="25.7578125" height="22.625"></rect><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">No</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(1713.109765625, 680.9109375)"><g class="label" data-id="L_EX_EABORT_0" transform="translate(0, -10.4609375)"><g><rect class="background" x="-15.9765625" y="-0.8515625" width="31.953125" height="22.625"></rect><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Yes</tspan></tspan></text></g></g></g><g class="edgeLabel"><g class="label" data-id="L_TABORT_JOB_0" transform="translate(0, -10.4609375)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"></tspan></text></g></g><g><rect class="background" style="stroke: none"></rect></g><g class="edgeLabel"><g class="label" data-id="L_SABORT_JOB_0" transform="translate(0, -10.4609375)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"></tspan></text></g></g><g><rect class="background" style="stroke: none"></rect></g><g class="edgeLabel"><g class="label" data-id="L_EABORT_JOB_0" transform="translate(0, -10.4609375)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"></tspan></text></g></g><g><rect class="background" style="stroke: none"></rect></g></g><g class="nodes"><g class="node default " id="gd28-flowchart-T-0" data-look="classic" transform="translate(344.384765625, 189.7375)"><rect class="basic label-container" x="-102.11328125" y="-24.3125" width="204.2265625" height="48.625"></rect><g class="label" transform="translate(0, -9.3125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Task</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> attempt</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> fails</tspan></tspan></text></g></g></g><g class="node default " id="gd28-flowchart-TR-1" data-look="classic" transform="translate(344.384765625, 458.72421875000003)"><polygon points="125.93671875,0 251.8734375,-125.93671875 125.93671875,-251.8734375 0,-125.93671875" class="label-container" transform="translate(-125.43671875, 125.93671875)"></polygon><g class="label" transform="translate(0, -18.1125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">spark.task.maxFailures</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">reached?</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> (default</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> 4)</tspan></tspan></text></g></g></g><g class="node default " id="gd28-flowchart-RETRY-3" data-look="classic" transform="translate(198.26953125, 750.3359375)"><rect class="basic label-container" x="-155.26953125" y="-33.1125" width="310.5390625" height="66.225"></rect><g class="label" transform="translate(0, -18.1125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Retry</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> task</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> on</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> another</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> executor</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(earlier</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> attempt</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> superseded)</tspan></tspan></text></g></g></g><g class="node default " id="gd28-flowchart-TABORT-5" data-look="classic" transform="translate(490.5, 750.3359375)"><rect class="basic label-container" x="-86.9609375" y="-24.3125" width="173.921875" height="48.625"></rect><g class="label" transform="translate(0, -9.3125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Stage</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> aborted</tspan></tspan></text></g></g></g><g class="node default " id="gd28-flowchart-FF-6" data-look="classic" transform="translate(946.34296875, 57.3125)"><rect class="basic label-container" x="-76.078125" y="-24.3125" width="152.15625" height="48.625"></rect><g class="label" transform="translate(0, -9.3125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">FetchFailed</tspan></tspan></text></g></g></g><g class="node default " id="gd28-flowchart-RESUB-7" data-look="classic" transform="translate(946.34296875, 189.7375)"><rect class="basic label-container" x="-108.37109375" y="-33.1125" width="216.7421875" height="66.225"></rect><g class="label" transform="translate(0, -18.1125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Resubmit</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> the</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> stage</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">as</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> a</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> fresh</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> attempt</tspan></tspan></text></g></g></g><g class="node default " id="gd28-flowchart-SR-9" data-look="classic" transform="translate(946.34296875, 458.72421875000003)"><polygon points="185.87421875,0 371.7484375,-185.87421875 185.87421875,-371.7484375 0,-185.87421875" class="label-container" transform="translate(-185.37421875, 185.87421875)"></polygon><g class="label" transform="translate(0, -18.1125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">spark.stage.maxConsecutiveAttempts</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">reached?</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> (default</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> 4)</tspan></tspan></text></g></g></g><g class="node default " id="gd28-flowchart-FRETRY-11" data-look="classic" transform="translate(828.87421875, 750.3359375)"><rect class="basic label-container" x="-97.9765625" y="-24.3125" width="195.953125" height="48.625"></rect><g class="label" transform="translate(0, -9.3125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Stage</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> runs</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> again</tspan></tspan></text></g></g></g><g class="node default " id="gd28-flowchart-SABORT-13" data-look="classic" transform="translate(1063.8117187500002, 750.3359375)"><rect class="basic label-container" x="-86.9609375" y="-24.3125" width="173.921875" height="48.625"></rect><g class="label" transform="translate(0, -9.3125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Stage</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> aborted</tspan></tspan></text></g></g></g><g class="node default " id="gd28-flowchart-EL-14" data-look="classic" transform="translate(1569.664453125, 189.7375)"><rect class="basic label-container" x="-82.46484375" y="-24.3125" width="164.9296875" height="48.625"></rect><g class="label" transform="translate(0, -9.3125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Executor</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> lost</tspan></tspan></text></g></g></g><g class="node default " id="gd28-flowchart-EX-15" data-look="classic" transform="translate(1569.664453125, 458.72421875000003)"><polygon points="163.31171875,0 326.6234375,-163.31171875 163.31171875,-326.6234375 0,-163.31171875" class="label-container" transform="translate(-162.81171875, 163.31171875)"></polygon><g class="label" transform="translate(0, -18.1125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">spark.executor.maxNumFailures</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">reached?</tspan></tspan></text></g></g></g><g class="node default " id="gd28-flowchart-KEEP-17" data-look="classic" transform="translate(1426.219140625, 750.3359375)"><rect class="basic label-container" x="-108.66796875" y="-33.1125" width="217.3359375" height="66.225"></rect><g class="label" transform="translate(0, -18.1125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Keep</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> running</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> on</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">surviving</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> executors</tspan></tspan></text></g></g></g><g class="node default " id="gd28-flowchart-EABORT-19" data-look="classic" transform="translate(1713.109765625, 750.3359375)"><rect class="basic label-container" x="-128.22265625" y="-33.1125" width="256.4453125" height="66.225"></rect><g class="label" transform="translate(0, -18.1125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Application</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> attempt</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> fails</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(driver</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> restart)</tspan></tspan></text></g></g></g><g class="node default " id="gd28-flowchart-JOB-21" data-look="classic" transform="translate(1063.8117187500002, 875.2609375000001)"><g class="basic label-container outer-path"><path d="M-41.06640625 -16.8125 C-11.675572439318461 -16.8125, 17.715261371363077 -16.8125, 41.06640625 -16.8125 C41.06640625 -16.8125, 41.06640625 -16.8125, 41.06640625 -16.8125 C41.4650042423266 -16.79971773821001, 41.8636022346532 -16.786935476420023, 42.143586823425736 -16.77795691561503 C42.53588670524622 -16.740112217825445, 42.928186587066705 -16.70226752003586, 43.21634103082076 -16.674469607403328 C43.436920124825384 -16.638808090101083, 43.65749921883001 -16.603146572798835, 44.28026069504182 -16.502463326912288 C44.49705916109059 -16.452980491778863, 44.713857627139355 -16.403497656645435, 45.33097394197859 -16.26264488484368 C45.542384333135814 -16.199899390464005, 45.75379472429304 -16.13715389608433, 46.36416316552212 -15.955999746616866 C46.73728556461054 -15.818687254646681, 47.110407963698954 -15.681374762676496, 47.375582769534475 -15.58378798287999 C47.63519401790418 -15.468865784320784, 47.89480526627389 -15.353943585761577, 48.361076613913944 -15.147539091609422 C48.70367087033969 -14.968807887474204, 49.046265126765434 -14.790076683338986, 49.3165950930662 -14.649045713074486 C49.65512706948509 -14.443825639534637, 49.99365904590398 -14.238605565994789, 50.23821177660235 -14.090356263494073 C50.47001954070731 -13.928657202050823, 50.70182730481228 -13.766958140607576, 51.12213954388357 -13.47376651765502 C51.314740405974824 -13.320172455461439, 51.50734126806607 -13.166578393267855, 51.96474614611219 -12.801810175081075 C52.23891381072728 -12.552818356156545, 52.51308147534237 -12.303826537232014, 52.76256913202111 -12.077248448518045 C52.915319767289155 -11.919520876543407, 53.06807040255719 -11.761793304568771, 53.51233007582874 -11.303058717518391 C53.71122135480916 -11.069429703993615, 53.91011263378958 -10.835800690468838, 54.21094804899375 -10.48242229374996 C54.41995229244784 -10.202375648199757, 54.628956535901935 -9.922329002649557, 54.85555228041132 -9.61871134830398 C55.06775407360886 -9.292712409792546, 55.279955866806404 -8.966713471281112, 55.443493953027385 -8.715475054720704 C55.65333077578449 -8.342888527633082, 55.86316759854159 -7.970302000545459, 55.972357088396066 -7.776425004674043 C56.14006801109983 -7.428169685240786, 56.30777893380359 -7.07991436580753, 56.439968474453345 -6.80541995624525 C56.56629134206353 -6.4934000309615865, 56.69261420967372 -6.181380105677922, 56.84440659571159 -5.806449977458242 C56.96962040785418 -5.429325925396452, 57.09483421999677 -5.0522018733346625, 57.18400952917885 -4.783620050234238 C57.28029058113497 -4.4164586706536895, 57.37657163309109 -4.049297291073141, 57.45738177355691 -3.7411332021405377 C57.500539852892565 -3.5195255862152477, 57.54369793222822 -3.2979179702899577, 57.66339998365544 -2.6832732352486945 C57.69435443676596 -2.443196609571626, 57.72530888987649 -2.203119983894558, 57.80121758645839 -1.6143871230729026 C57.82347794008012 -1.267664147180546, 57.84573829370184 -0.9209411712881895, 57.87026825987407 -0.5388671479234525 C57.87026825987407 -0.25179526457100715, 57.87026825987407 0.035276618781438174, 57.87026825987407 0.5388671479234484 C57.84514188338823 0.9302307433364079, 57.820015506902394 1.3215943387493674, 57.80121758645839 1.6143871230728912 C57.75563005158061 1.9679550413079876, 57.71004251670283 2.321522959543084, 57.663399983655445 2.683273235248683 C57.60423304698056 2.987082950137712, 57.545066110305676 3.2908926650267416, 57.45738177355691 3.7411332021405337 C57.35219467519147 4.142257196584756, 57.247007576826036 4.543381191028979, 57.18400952917886 4.7836200502342265 C57.09952591802041 5.038071226408024, 57.015042306861965 5.292522402581822, 56.8444065957116 5.806449977458231 C56.72270278630027 6.107060739687299, 56.60099897688894 6.407671501916367, 56.43996847445335 6.805419956245245 C56.30833045239601 7.078769125649785, 56.176692430338655 7.352118295054326, 55.972357088396066 7.776425004674039 C55.80143884729613 8.079907649095622, 55.63052060619621 8.383390293517206, 55.443493953027385 8.7154750547207 C55.248741832631495 9.014666609915556, 55.05398971223561 9.313858165110412, 54.855552280411324 9.618711348303972 C54.7107409182854 9.812745380966216, 54.56592955615949 10.006779413628461, 54.21094804899376 10.482422293749956 C53.96730357591413 10.768620955592546, 53.7236591028345 11.054819617435134, 53.51233007582875 11.303058717518383 C53.3272250645621 11.494194839055254, 53.14212005329546 11.685330960592127, 52.76256913202112 12.077248448518041 C52.49527292392218 12.319999792443383, 52.22797671582324 12.562751136368725, 51.964746146112205 12.801810175081064 C51.78846523672335 12.942389509286665, 51.6121843273345 13.082968843492267, 51.12213954388357 13.473766517655019 C50.790602082807816 13.70503269847609, 50.45906462173206 13.936298879297162, 50.238211776602355 14.090356263494066 C50.05335689874875 14.202416376776762, 49.86850202089516 14.314476490059457, 49.316595093066205 14.649045713074484 C49.03383890154696 14.79655943707609, 48.75108271002772 14.944073161077696, 48.36107661391395 15.14753909160942 C47.98299134266341 15.31490622569095, 47.60490607141287 15.482273359772478, 47.37558276953448 15.583787982879988 C47.012712354017516 15.717327650127583, 46.64984193850054 15.85086731737518, 46.364163165522136 15.955999746616863 C46.133545679015555 16.024445806076127, 45.90292819250898 16.09289186553539, 45.330973941978606 16.262644884843677 C45.08227062718248 16.31940979350509, 44.83356731238636 16.376174702166505, 44.280260695041825 16.502463326912284 C43.94307301896468 16.556977215450956, 43.60588534288754 16.611491103989625, 43.216341030820765 16.674469607403324 C42.98998333645544 16.69630606194379, 42.763625642090105 16.718142516484257, 42.143586823425736 16.77795691561503 C41.78914902266109 16.789323046014225, 41.43471122189645 16.800689176413417, 41.06640625 16.8125 C41.06640625 16.8125, 41.06640625 16.8125, 41.06640625 16.8125 C17.78689173629377 16.8125, -5.492622777412457 16.8125, -41.06640625 16.8125 C-41.341684768654375 16.803672353703885, -41.61696328730875 16.794844707407773, -42.14358682342573 16.77795691561503 C-42.55749913976351 16.738027292260316, -42.97141145610128 16.6980976689056, -43.21634103082076 16.674469607403324 C-43.575208189038925 16.616450748318986, -43.93407534725709 16.55843188923465, -44.28026069504182 16.502463326912284 C-44.64276479216054 16.41972413230524, -45.005268889279264 16.3369849376982, -45.330973941978584 16.26264488484368 C-45.72831340256162 16.144716618620027, -46.12565286314466 16.026788352396373, -46.364163165522115 15.95599974661687 C-46.59938623198159 15.869435483781592, -46.834609298441066 15.782871220946316, -47.375582769534475 15.58378798287999 C-47.74289166917787 15.42119122883924, -48.11020056882126 15.258594474798487, -48.361076613913944 15.147539091609424 C-48.64155748147993 15.001212402656819, -48.92203834904591 14.854885713704215, -49.3165950930662 14.649045713074488 C-49.567076422227025 14.497202459345516, -49.81755775138785 14.345359205616544, -50.23821177660234 14.090356263494078 C-50.42968331960579 13.956794003764374, -50.62115486260925 13.82323174403467, -51.12213954388356 13.473766517655022 C-51.42213065394841 13.234531590477019, -51.72212176401325 12.995296663299014, -51.96474614611219 12.801810175081076 C-52.25972353694354 12.53391951340212, -52.554700927774896 12.266028851723163, -52.762569132021106 12.077248448518052 C-52.91381511188572 11.921074556781956, -53.06506109175034 11.76490066504586, -53.51233007582874 11.303058717518388 C-53.657647393570706 11.132360727309054, -53.80296471131267 10.961662737099722, -54.21094804899375 10.482422293749961 C-54.45560964616116 10.154598042675662, -54.70027124332857 9.826773791601363, -54.85555228041132 9.618711348303982 C-55.04288026279941 9.330925262749293, -55.2302082451875 9.043139177194606, -55.44349395302738 8.715475054720711 C-55.617967284854295 8.405679986721392, -55.79244061668121 8.09588491872207, -55.972357088396066 7.776425004674045 C-56.13288314970596 7.443089203656561, -56.293409211015856 7.109753402639077, -56.439968474453345 6.8054199562452515 C-56.528451397435795 6.586865425777655, -56.616934320418245 6.36831089531006, -56.84440659571159 5.806449977458245 C-56.948947372063124 5.491589815398155, -57.053488148414665 5.1767296533380645, -57.18400952917885 4.783620050234233 C-57.26468101966556 4.475984693763271, -57.34535251015227 4.168349337292311, -57.457381773556904 3.74113320214054 C-57.504655885331665 3.498390629564194, -57.55192999710643 3.255648056987848, -57.66339998365544 2.6832732352486963 C-57.71776561202015 2.261624157359611, -57.77213124038486 1.839975079470526, -57.80121758645839 1.614387123072912 C-57.825253273968684 1.2400118888423428, -57.84928896147898 0.8656366546117737, -57.87026825987407 0.5388671479234546 C-57.87026825987407 0.10981619097755935, -57.87026825987407 -0.3192347659683359, -57.87026825987407 -0.5388671479234464 C-57.85331948264695 -0.8028580340424729, -57.83637070541984 -1.0668489201614992, -57.80121758645839 -1.614387123072889 C-57.74649560651846 -2.038799993409851, -57.691773626578524 -2.4632128637468127, -57.663399983655445 -2.6832732352486883 C-57.605499176303766 -2.980581643659597, -57.54759836895209 -3.2778900520705063, -57.45738177355691 -3.741133202140532 C-57.37178292102528 -4.067558725621009, -57.28618406849365 -4.393984249101486, -57.18400952917886 -4.783620050234225 C-57.06326333164569 -5.147288358910164, -56.94251713411252 -5.510956667586104, -56.844406595711604 -5.8064499774582226 C-56.74701521026635 -6.047008582442342, -56.6496238248211 -6.287567187426462, -56.43996847445335 -6.8054199562452435 C-56.262783560223525 -7.173348221793311, -56.0855986459937 -7.541276487341378, -55.972357088396066 -7.776425004674037 C-55.78918857141475 -8.10165925439797, -55.60602005443343 -8.426893504121905, -55.443493953027385 -8.715475054720706 C-55.25794912113971 -9.000521742263798, -55.072404289252034 -9.285568429806888, -54.85555228041132 -9.618711348303977 C-54.68460477484174 -9.847765432129075, -54.513657269272166 -10.07681951595417, -54.21094804899376 -10.482422293749956 C-54.0082645158548 -10.720505904794724, -53.805580982715846 -10.958589515839494, -53.51233007582875 -11.303058717518383 C-53.22052898018513 -11.604367306085916, -52.928727884541516 -11.90567589465345, -52.76256913202113 -12.077248448518036 C-52.445382891544035 -12.365308599831287, -52.12819665106695 -12.653368751144539, -51.964746146112205 -12.80181017508106 C-51.646302704593126 -13.05576034555666, -51.32785926307404 -13.30971051603226, -51.12213954388358 -13.473766517655017 C-50.831110836941455 -13.676775545188166, -50.540082129999334 -13.879784572721315, -50.238211776602355 -14.090356263494064 C-49.99212793905123 -14.23953373196671, -49.7460441015001 -14.388711200439353, -49.316595093066205 -14.649045713074482 C-49.112586088468646 -14.755477080099027, -48.90857708387109 -14.86190844712357, -48.36107661391395 -15.14753909160942 C-47.97546850969039 -15.318236360691198, -47.589860405466816 -15.488933629772974, -47.37558276953449 -15.583787982879986 C-47.134418998639184 -15.672538479862919, -46.89325522774388 -15.76128897684585, -46.364163165522136 -15.955999746616863 C-45.990037045375544 -16.06703841524829, -45.61591092522896 -16.17807708387972, -45.33097394197861 -16.262644884843677 C-44.976275967306776 -16.343602382941928, -44.62157799263494 -16.424559881040178, -44.28026069504183 -16.502463326912284 C-43.88690321557374 -16.566058313659873, -43.49354573610564 -16.629653300407462, -43.21634103082077 -16.674469607403324 C-42.807651678856274 -16.713895377666482, -42.39896232689178 -16.753321147929636, -42.143586823425736 -16.77795691561503 C-41.82429000188819 -16.78819614320818, -41.504993180350645 -16.798435370801325, -41.06640625000001 -16.8125 C-41.06640625000001 -16.8125, -41.06640625 -16.8125, -41.06640625 -16.8125" stroke="none" stroke-width="0" fill="#17202c"></path><path d="M-41.06640625 -16.8125 C-21.046266169412913 -16.8125, -1.0261260888258263 -16.8125, 41.06640625 -16.8125 M-41.06640625 -16.8125 C-13.7291606534625 -16.8125, 13.608084943075 -16.8125, 41.06640625 -16.8125 M41.06640625 -16.8125 C41.06640625 -16.8125, 41.06640625 -16.8125, 41.06640625 -16.8125 M41.06640625 -16.8125 C41.06640625 -16.8125, 41.06640625 -16.8125, 41.06640625 -16.8125 M41.06640625 -16.8125 C41.450345325595 -16.800187821137744, 41.83428440119 -16.787875642275488, 42.143586823425736 -16.77795691561503 M41.06640625 -16.8125 C41.42593482462341 -16.800970618391744, 41.78546339924682 -16.78944123678349, 42.143586823425736 -16.77795691561503 M42.143586823425736 -16.77795691561503 C42.55878110353074 -16.73790362275748, 42.97397538363575 -16.69785032989993, 43.21634103082076 -16.674469607403328 M42.143586823425736 -16.77795691561503 C42.56872763245595 -16.736944093074513, 42.99386844148617 -16.695931270534, 43.21634103082076 -16.674469607403328 M43.21634103082076 -16.674469607403328 C43.45419593080773 -16.636015071765733, 43.69205083079469 -16.59756053612814, 44.28026069504182 -16.502463326912288 M43.21634103082076 -16.674469607403328 C43.59937234589263 -16.61254407483472, 43.98240366096451 -16.55061854226611, 44.28026069504182 -16.502463326912288 M44.28026069504182 -16.502463326912288 C44.500723115044956 -16.45214421819831, 44.7211855350481 -16.40182510948433, 45.33097394197859 -16.26264488484368 M44.28026069504182 -16.502463326912288 C44.592559851175665 -16.431183082467186, 44.90485900730951 -16.359902838022084, 45.33097394197859 -16.26264488484368 M45.33097394197859 -16.26264488484368 C45.65633323459693 -16.166079954640335, 45.98169252721527 -16.069515024436992, 46.36416316552212 -15.955999746616866 M45.33097394197859 -16.26264488484368 C45.621577719825815 -16.176395208988982, 45.91218149767303 -16.090145533134287, 46.36416316552212 -15.955999746616866 M46.36416316552212 -15.955999746616866 C46.5771916418515 -15.877603298114007, 46.790220118180876 -15.799206849611148, 47.375582769534475 -15.58378798287999 M46.36416316552212 -15.955999746616866 C46.65324540372254 -15.849614810712193, 46.94232764192297 -15.74322987480752, 47.375582769534475 -15.58378798287999 M47.375582769534475 -15.58378798287999 C47.72062736341449 -15.43104697655352, 48.06567195729451 -15.27830597022705, 48.361076613913944 -15.147539091609422 M47.375582769534475 -15.58378798287999 C47.654264541385466 -15.460423829282599, 47.932946313236464 -15.337059675685206, 48.361076613913944 -15.147539091609422 M48.361076613913944 -15.147539091609422 C48.73132063516165 -14.954383022877106, 49.10156465640936 -14.761226954144792, 49.3165950930662 -14.649045713074486 M48.361076613913944 -15.147539091609422 C48.679964009741695 -14.98117574146321, 48.99885140556945 -14.814812391316996, 49.3165950930662 -14.649045713074486 M49.3165950930662 -14.649045713074486 C49.654590263447744 -14.4441510545091, 49.99258543382929 -14.239256395943713, 50.23821177660235 -14.090356263494073 M49.3165950930662 -14.649045713074486 C49.50507705956532 -14.534786837339736, 49.69355902606444 -14.420527961604986, 50.23821177660235 -14.090356263494073 M50.23821177660235 -14.090356263494073 C50.58049855934182 -13.851591821211027, 50.9227853420813 -13.61282737892798, 51.12213954388357 -13.47376651765502 M50.23821177660235 -14.090356263494073 C50.42046424883845 -13.963224828444531, 50.60271672107456 -13.836093393394991, 51.12213954388357 -13.47376651765502 M51.12213954388357 -13.47376651765502 C51.34926414618594 -13.29264069135838, 51.57638874848831 -13.111514865061743, 51.96474614611219 -12.801810175081075 M51.12213954388357 -13.47376651765502 C51.324451992133795 -13.31242772393582, 51.526764440384014 -13.151088930216618, 51.96474614611219 -12.801810175081075 M51.96474614611219 -12.801810175081075 C52.175432105060025 -12.610470761609657, 52.38611806400785 -12.419131348138238, 52.76256913202111 -12.077248448518045 M51.96474614611219 -12.801810175081075 C52.24089880375496 -12.551015638008842, 52.517051461397735 -12.300221100936609, 52.76256913202111 -12.077248448518045 M52.76256913202111 -12.077248448518045 C52.93506843714473 -11.899128753521575, 53.10756774226835 -11.721009058525103, 53.51233007582874 -11.303058717518391 M52.76256913202111 -12.077248448518045 C52.94613807018382 -11.887698448574943, 53.12970700834652 -11.69814844863184, 53.51233007582874 -11.303058717518391 M53.51233007582874 -11.303058717518391 C53.760917538894354 -11.011053738374166, 54.00950500195996 -10.71904875922994, 54.21094804899375 -10.48242229374996 M53.51233007582874 -11.303058717518391 C53.66723270183402 -11.121101278803478, 53.8221353278393 -10.939143840088564, 54.21094804899375 -10.48242229374996 M54.21094804899375 -10.48242229374996 C54.35647773592014 -10.287425771295823, 54.502007422846525 -10.092429248841684, 54.85555228041132 -9.61871134830398 M54.21094804899375 -10.48242229374996 C54.415161790513395 -10.208794484368216, 54.61937553203303 -9.935166674986473, 54.85555228041132 -9.61871134830398 M54.85555228041132 -9.61871134830398 C55.032988084591004 -9.346122304899183, 55.2104238887707 -9.073533261494386, 55.443493953027385 -8.715475054720704 M54.85555228041132 -9.61871134830398 C55.029020775418374 -9.352217157160025, 55.20248927042543 -9.085722966016068, 55.443493953027385 -8.715475054720704 M55.443493953027385 -8.715475054720704 C55.60229475660878 -8.433508147636891, 55.76109556019017 -8.151541240553076, 55.972357088396066 -7.776425004674043 M55.443493953027385 -8.715475054720704 C55.56870299821882 -8.493153716192646, 55.69391204341025 -8.270832377664588, 55.972357088396066 -7.776425004674043 M55.972357088396066 -7.776425004674043 C56.1477633967571 -7.412190052268589, 56.32316970511813 -7.047955099863136, 56.439968474453345 -6.80541995624525 M55.972357088396066 -7.776425004674043 C56.1419736849229 -7.424212512772286, 56.31159028144974 -7.072000020870528, 56.439968474453345 -6.80541995624525 M56.439968474453345 -6.80541995624525 C56.54098777982213 -6.55590031890894, 56.64200708519092 -6.30638068157263, 56.84440659571159 -5.806449977458242 M56.439968474453345 -6.80541995624525 C56.58574957209636 -6.44533782658121, 56.73153066973938 -6.08525569691717, 56.84440659571159 -5.806449977458242 M56.84440659571159 -5.806449977458242 C56.973738603210165 -5.416922577129536, 57.10307061070875 -5.0273951768008285, 57.18400952917885 -4.783620050234238 M56.84440659571159 -5.806449977458242 C56.9233921063215 -5.568558204133284, 57.00237761693141 -5.330666430808326, 57.18400952917885 -4.783620050234238 M57.18400952917885 -4.783620050234238 C57.248661618369425 -4.537073613757891, 57.31331370755999 -4.290527177281544, 57.45738177355691 -3.7411332021405377 M57.18400952917885 -4.783620050234238 C57.254574523766294 -4.514525142810203, 57.325139518353744 -4.245430235386167, 57.45738177355691 -3.7411332021405377 M57.45738177355691 -3.7411332021405377 C57.504454272965546 -3.4994258664534534, 57.55152677237418 -3.2577185307663687, 57.66339998365544 -2.6832732352486945 M57.45738177355691 -3.7411332021405377 C57.51423280573621 -3.4492151673697293, 57.57108383791551 -3.1572971325989214, 57.66339998365544 -2.6832732352486945 M57.66339998365544 -2.6832732352486945 C57.69173013067164 -2.4635502094113786, 57.72006027768783 -2.2438271835740626, 57.80121758645839 -1.6143871230729026 M57.66339998365544 -2.6832732352486945 C57.70678194520321 -2.3468113082214574, 57.75016390675098 -2.0103493811942204, 57.80121758645839 -1.6143871230729026 M57.80121758645839 -1.6143871230729026 C57.82672591837934 -1.2170742634492042, 57.85223425030029 -0.819761403825506, 57.87026825987407 -0.5388671479234525 M57.80121758645839 -1.6143871230729026 C57.8264982584484 -1.2206202506373196, 57.85177893043842 -0.8268533782017369, 57.87026825987407 -0.5388671479234525 M57.87026825987407 -0.5388671479234525 C57.87026825987407 -0.2426949218996023, 57.87026825987407 0.05347730412424789, 57.87026825987407 0.5388671479234484 M57.87026825987407 -0.5388671479234525 C57.87026825987407 -0.2997706302682504, 57.87026825987407 -0.06067411261304834, 57.87026825987407 0.5388671479234484 M57.87026825987407 0.5388671479234484 C57.845279037866504 0.9280944516281633, 57.82028981585894 1.3173217553328782, 57.80121758645839 1.6143871230728912 M57.87026825987407 0.5388671479234484 C57.847986103251614 0.8859297231511865, 57.82570394662917 1.2329922983789245, 57.80121758645839 1.6143871230728912 M57.80121758645839 1.6143871230728912 C57.77358841865123 1.8286734925889578, 57.745959250844066 2.0429598621050244, 57.663399983655445 2.683273235248683 M57.80121758645839 1.6143871230728912 C57.76367468598881 1.905562445430752, 57.72613178551923 2.196737767788613, 57.663399983655445 2.683273235248683 M57.663399983655445 2.683273235248683 C57.601752202811376 2.9998215606198806, 57.54010442196731 3.3163698859910777, 57.45738177355691 3.7411332021405337 M57.663399983655445 2.683273235248683 C57.61888083236367 2.9118696680059872, 57.5743616810719 3.1404661007632915, 57.45738177355691 3.7411332021405337 M57.45738177355691 3.7411332021405337 C57.377255086948495 4.046690985304076, 57.29712840034008 4.352248768467617, 57.18400952917886 4.7836200502342265 M57.45738177355691 3.7411332021405337 C57.365409710838094 4.091862538231512, 57.27343764811928 4.44259187432249, 57.18400952917886 4.7836200502342265 M57.18400952917886 4.7836200502342265 C57.04821280890957 5.192618135416212, 56.91241608864028 5.601616220598197, 56.8444065957116 5.806449977458231 M57.18400952917886 4.7836200502342265 C57.07154186519428 5.122354734867021, 56.959074201209695 5.4610894194998165, 56.8444065957116 5.806449977458231 M56.8444065957116 5.806449977458231 C56.70865611130239 6.1417562985060465, 56.57290562689318 6.477062619553861, 56.43996847445335 6.805419956245245 M56.8444065957116 5.806449977458231 C56.75744402929935 6.021249197803331, 56.6704814628871 6.236048418148431, 56.43996847445335 6.805419956245245 M56.43996847445335 6.805419956245245 C56.34421014814239 7.004264169729915, 56.248451821831424 7.203108383214585, 55.972357088396066 7.776425004674039 M56.43996847445335 6.805419956245245 C56.27413074886068 7.149785541797324, 56.108293023268004 7.494151127349403, 55.972357088396066 7.776425004674039 M55.972357088396066 7.776425004674039 C55.85383578571204 7.986871579172824, 55.73531448302802 8.19731815367161, 55.443493953027385 8.7154750547207 M55.972357088396066 7.776425004674039 C55.85997822239252 7.975965060857484, 55.74759935638897 8.17550511704093, 55.443493953027385 8.7154750547207 M55.443493953027385 8.7154750547207 C55.22914395046586 9.04477421969019, 55.01479394790434 9.37407338465968, 54.855552280411324 9.618711348303972 M55.443493953027385 8.7154750547207 C55.305668898750326 8.927211349299393, 55.16784384447327 9.138947643878087, 54.855552280411324 9.618711348303972 M54.855552280411324 9.618711348303972 C54.686941153013784 9.844634898226973, 54.51833002561624 10.070558448149974, 54.21094804899376 10.482422293749956 M54.855552280411324 9.618711348303972 C54.71722534657188 9.804056837805913, 54.578898412732435 9.989402327307854, 54.21094804899376 10.482422293749956 M54.21094804899376 10.482422293749956 C54.0332043442928 10.691210163195013, 53.85546063959184 10.899998032640069, 53.51233007582875 11.303058717518383 M54.21094804899376 10.482422293749956 C53.94894867307347 10.790181668892748, 53.68694929715318 11.097941044035538, 53.51233007582875 11.303058717518383 M53.51233007582875 11.303058717518383 C53.31582992350708 11.505961257753043, 53.11932977118541 11.708863797987703, 52.76256913202112 12.077248448518041 M53.51233007582875 11.303058717518383 C53.28621086075122 11.53654537181875, 53.06009164567369 11.770032026119118, 52.76256913202112 12.077248448518041 M52.76256913202112 12.077248448518041 C52.48206667579693 12.331993357572557, 52.20156421957274 12.586738266627071, 51.964746146112205 12.801810175081064 M52.76256913202112 12.077248448518041 C52.45111146083126 12.360106064774273, 52.1396537896414 12.642963681030503, 51.964746146112205 12.801810175081064 M51.964746146112205 12.801810175081064 C51.70745953738089 13.006989398860082, 51.450172928649586 13.2121686226391, 51.12213954388357 13.473766517655019 M51.964746146112205 12.801810175081064 C51.77825166453326 12.950534561313695, 51.591757182954304 13.099258947546328, 51.12213954388357 13.473766517655019 M51.12213954388357 13.473766517655019 C50.89855904016656 13.629726598403991, 50.67497853644955 13.785686679152965, 50.238211776602355 14.090356263494066 M51.12213954388357 13.473766517655019 C50.84924505203549 13.664125901756085, 50.57635056018741 13.854485285857153, 50.238211776602355 14.090356263494066 M50.238211776602355 14.090356263494066 C49.99034091243994 14.240617038000208, 49.74247004827752 14.39087781250635, 49.316595093066205 14.649045713074484 M50.238211776602355 14.090356263494066 C49.97135098194768 14.252128845461833, 49.704490187293004 14.413901427429598, 49.316595093066205 14.649045713074484 M49.316595093066205 14.649045713074484 C48.977976580393694 14.825702774240224, 48.63935806772119 15.002359835405963, 48.36107661391395 15.14753909160942 M49.316595093066205 14.649045713074484 C49.07268918155639 14.77629127087996, 48.828783270046586 14.903536828685437, 48.36107661391395 15.14753909160942 M48.36107661391395 15.14753909160942 C48.03575563236575 15.291549039836768, 47.71043465081755 15.435558988064114, 47.37558276953448 15.583787982879988 M48.36107661391395 15.14753909160942 C48.04873080611875 15.285805315311167, 47.73638499832355 15.424071539012914, 47.37558276953448 15.583787982879988 M47.37558276953448 15.583787982879988 C47.14434214463992 15.66888667040609, 46.91310151974536 15.753985357932194, 46.364163165522136 15.955999746616863 M47.37558276953448 15.583787982879988 C47.00353730428411 15.720704153242705, 46.63149183903374 15.857620323605424, 46.364163165522136 15.955999746616863 M46.364163165522136 15.955999746616863 C46.10028782761082 16.034316561799027, 45.836412489699505 16.112633376981194, 45.330973941978606 16.262644884843677 M46.364163165522136 15.955999746616863 C46.1415807627083 16.022061035413135, 45.918998359894466 16.088122324209404, 45.330973941978606 16.262644884843677 M45.330973941978606 16.262644884843677 C44.91085098218369 16.358535208858342, 44.49072802238878 16.454425532873007, 44.280260695041825 16.502463326912284 M45.330973941978606 16.262644884843677 C45.01158236822816 16.335543927327414, 44.692190794477725 16.408442969811155, 44.280260695041825 16.502463326912284 M44.280260695041825 16.502463326912284 C43.96209582004638 16.553901756496092, 43.64393094505094 16.6053401860799, 43.216341030820765 16.674469607403324 M44.280260695041825 16.502463326912284 C43.89945023375282 16.564029809064255, 43.51863977246383 16.62559629121623, 43.216341030820765 16.674469607403324 M43.216341030820765 16.674469607403324 C42.87561914907705 16.707338637557125, 42.53489726733335 16.740207667710923, 42.143586823425736 16.77795691561503 M43.216341030820765 16.674469607403324 C42.85839591538191 16.709000142197727, 42.50045079994307 16.743530676992126, 42.143586823425736 16.77795691561503 M42.143586823425736 16.77795691561503 C41.78528412933454 16.789446985620646, 41.426981435243356 16.800937055626267, 41.06640625 16.8125 M42.143586823425736 16.77795691561503 C41.73965172143355 16.79091032812394, 41.33571661944137 16.80386374063285, 41.06640625 16.8125 M41.06640625 16.8125 C41.06640625 16.8125, 41.06640625 16.8125, 41.06640625 16.8125 M41.06640625 16.8125 C41.06640625 16.8125, 41.06640625 16.8125, 41.06640625 16.8125 M41.06640625 16.8125 C15.458195326781894 16.8125, -10.150015596436212 16.8125, -41.06640625 16.8125 M41.06640625 16.8125 C24.24388048058643 16.8125, 7.42135471117286 16.8125, -41.06640625 16.8125 M-41.06640625 16.8125 C-41.31920086956568 16.804393368585405, -41.571995489131346 16.79628673717081, -42.14358682342573 16.77795691561503 M-41.06640625 16.8125 C-41.40643911466453 16.80159580786403, -41.746471979329066 16.790691615728058, -42.14358682342573 16.77795691561503 M-42.14358682342573 16.77795691561503 C-42.449509641902424 16.7484449092426, -42.75543246037912 16.718932902870172, -43.21634103082076 16.674469607403324 M-42.14358682342573 16.77795691561503 C-42.483337461519724 16.745181580168026, -42.82308809961372 16.71240624472102, -43.21634103082076 16.674469607403324 M-43.21634103082076 16.674469607403324 C-43.47967656623986 16.63189556023434, -43.74301210165897 16.589321513065357, -44.28026069504182 16.502463326912284 M-43.21634103082076 16.674469607403324 C-43.459836814744136 16.6351030973966, -43.70333259866752 16.595736587389872, -44.28026069504182 16.502463326912284 M-44.28026069504182 16.502463326912284 C-44.49778791081252 16.452814159410362, -44.71531512658323 16.40316499190844, -45.330973941978584 16.26264488484368 M-44.28026069504182 16.502463326912284 C-44.627580764141705 16.4231897876155, -44.9749008332416 16.343916248318713, -45.330973941978584 16.26264488484368 M-45.330973941978584 16.26264488484368 C-45.70019990859864 16.1530605560575, -46.06942587521869 16.043476227271317, -46.364163165522115 15.95599974661687 M-45.330973941978584 16.26264488484368 C-45.61760824713303 16.177573327648012, -45.90424255228748 16.092501770452344, -46.364163165522115 15.95599974661687 M-46.364163165522115 15.95599974661687 C-46.741860634125345 15.817003586773755, -47.11955810272857 15.67800742693064, -47.375582769534475 15.58378798287999 M-46.364163165522115 15.95599974661687 C-46.69608036879594 15.833851147603108, -47.02799757206977 15.711702548589345, -47.375582769534475 15.58378798287999 M-47.375582769534475 15.58378798287999 C-47.58996998458639 15.488885122347288, -47.8043571996383 15.393982261814587, -48.361076613913944 15.147539091609424 M-47.375582769534475 15.58378798287999 C-47.70975500038932 15.435859849147574, -48.04392723124417 15.28793171541516, -48.361076613913944 15.147539091609424 M-48.361076613913944 15.147539091609424 C-48.55741681607293 15.045108533904983, -48.75375701823191 14.942677976200544, -49.3165950930662 14.649045713074488 M-48.361076613913944 15.147539091609424 C-48.56904265192771 15.039043342786247, -48.777008689941475 14.93054759396307, -49.3165950930662 14.649045713074488 M-49.3165950930662 14.649045713074488 C-49.58662102703895 14.485354405051678, -49.856646961011705 14.32166309702887, -50.23821177660234 14.090356263494078 M-49.3165950930662 14.649045713074488 C-49.646200591978946 14.449236922656665, -49.9758060908917 14.249428132238844, -50.23821177660234 14.090356263494078 M-50.23821177660234 14.090356263494078 C-50.52435284071896 13.890756644013349, -50.81049390483558 13.691157024532618, -51.12213954388356 13.473766517655022 M-50.23821177660234 14.090356263494078 C-50.49410086838244 13.911859110328528, -50.749989960162544 13.733361957162979, -51.12213954388356 13.473766517655022 M-51.12213954388356 13.473766517655022 C-51.452362845587444 13.210422222157293, -51.782586147291326 12.947077926659563, -51.96474614611219 12.801810175081076 M-51.12213954388356 13.473766517655022 C-51.398515433612886 13.253364100267191, -51.67489132334221 13.03296168287936, -51.96474614611219 12.801810175081076 M-51.96474614611219 12.801810175081076 C-52.22896686129615 12.56185191244804, -52.4931875764801 12.321893649815003, -52.762569132021106 12.077248448518052 M-51.96474614611219 12.801810175081076 C-52.17968307842963 12.606610140069968, -52.394620010747076 12.41141010505886, -52.762569132021106 12.077248448518052 M-52.762569132021106 12.077248448518052 C-53.05077139198391 11.779655953260864, -53.338973651946716 11.482063458003676, -53.51233007582874 11.303058717518388 M-52.762569132021106 12.077248448518052 C-53.031847170996606 11.799196765137696, -53.3011252099721 11.521145081757341, -53.51233007582874 11.303058717518388 M-53.51233007582874 11.303058717518388 C-53.673088666565725 11.114222529415779, -53.83384725730271 10.925386341313171, -54.21094804899375 10.482422293749961 M-53.51233007582874 11.303058717518388 C-53.76391011622503 11.007538486759083, -54.015490156621304 10.712018255999778, -54.21094804899375 10.482422293749961 M-54.21094804899375 10.482422293749961 C-54.383040637931586 10.251833902530636, -54.55513322686943 10.02124551131131, -54.85555228041132 9.618711348303982 M-54.21094804899375 10.482422293749961 C-54.40427045086143 10.223387887280388, -54.597592852729115 9.964353480810816, -54.85555228041132 9.618711348303982 M-54.85555228041132 9.618711348303982 C-55.08503750667631 9.266160415349335, -55.3145227329413 8.913609482394689, -55.44349395302738 8.715475054720711 M-54.85555228041132 9.618711348303982 C-54.981216236319455 9.425657766532106, -55.10688019222759 9.232604184760232, -55.44349395302738 8.715475054720711 M-55.44349395302738 8.715475054720711 C-55.65118610398934 8.346696609576934, -55.85887825495129 7.9779181644331585, -55.972357088396066 7.776425004674045 M-55.44349395302738 8.715475054720711 C-55.596367523423645 8.444032550354535, -55.749241093819904 8.172590045988358, -55.972357088396066 7.776425004674045 M-55.972357088396066 7.776425004674045 C-56.09475967184106 7.52225342115478, -56.217162255286055 7.268081837635513, -56.439968474453345 6.8054199562452515 M-55.972357088396066 7.776425004674045 C-56.15478317551783 7.397613331472735, -56.33720926263959 7.0188016582714265, -56.439968474453345 6.8054199562452515 M-56.439968474453345 6.8054199562452515 C-56.57374297175703 6.4749943615512, -56.707517469060704 6.144568766857149, -56.84440659571159 5.806449977458245 M-56.439968474453345 6.8054199562452515 C-56.57903720808446 6.461917495465352, -56.718105941715564 6.118415034685452, -56.84440659571159 5.806449977458245 M-56.84440659571159 5.806449977458245 C-56.9404096877209 5.5173039603416605, -57.03641277973022 5.228157943225076, -57.18400952917885 4.783620050234233 M-56.84440659571159 5.806449977458245 C-56.919298729761955 5.580886802139648, -56.99419086381232 5.3553236268210505, -57.18400952917885 4.783620050234233 M-57.18400952917885 4.783620050234233 C-57.25098997449869 4.528194582721057, -57.31797041981853 4.272769115207883, -57.457381773556904 3.74113320214054 M-57.18400952917885 4.783620050234233 C-57.242445428727905 4.560778638974632, -57.30088132827695 4.337937227715033, -57.457381773556904 3.74113320214054 M-57.457381773556904 3.74113320214054 C-57.53240235808097 3.3559183562156183, -57.607422942605034 2.9707035102906967, -57.66339998365544 2.6832732352486963 M-57.457381773556904 3.74113320214054 C-57.50498070260112 3.4967227615357204, -57.55257963164533 3.2523123209309004, -57.66339998365544 2.6832732352486963 M-57.66339998365544 2.6832732352486963 C-57.70243234122984 2.3805459777125018, -57.74146469880423 2.0778187201763068, -57.80121758645839 1.614387123072912 M-57.66339998365544 2.6832732352486963 C-57.707854564195316 2.33849228713126, -57.75230914473519 1.993711339013824, -57.80121758645839 1.614387123072912 M-57.80121758645839 1.614387123072912 C-57.820686729802695 1.311139500275711, -57.840155873147005 1.00789187747851, -57.87026825987407 0.5388671479234546 M-57.80121758645839 1.614387123072912 C-57.82255015480362 1.2821151517567746, -57.843882723148845 0.9498431804406371, -57.87026825987407 0.5388671479234546 M-57.87026825987407 0.5388671479234546 C-57.87026825987407 0.277329179157532, -57.87026825987407 0.015791210391609467, -57.87026825987407 -0.5388671479234464 M-57.87026825987407 0.5388671479234546 C-57.87026825987407 0.29195218839257236, -57.87026825987407 0.04503722886169015, -57.87026825987407 -0.5388671479234464 M-57.87026825987407 -0.5388671479234464 C-57.856183838680394 -0.7582433767549979, -57.84209941748673 -0.9776196055865493, -57.80121758645839 -1.614387123072889 M-57.87026825987407 -0.5388671479234464 C-57.84462808518294 -0.9382335651142568, -57.818987910491806 -1.3375999823050673, -57.80121758645839 -1.614387123072889 M-57.80121758645839 -1.614387123072889 C-57.765714464566635 -1.889742325580995, -57.73021134267487 -2.165097528089101, -57.663399983655445 -2.6832732352486883 M-57.80121758645839 -1.614387123072889 C-57.755115624049736 -1.9719448396522525, -57.70901366164108 -2.329502556231616, -57.663399983655445 -2.6832732352486883 M-57.663399983655445 -2.6832732352486883 C-57.608534067307204 -2.9649981197813684, -57.55366815095897 -3.2467230043140485, -57.45738177355691 -3.741133202140532 M-57.663399983655445 -2.6832732352486883 C-57.619604552373325 -2.908153518714697, -57.575809121091204 -3.133033802180706, -57.45738177355691 -3.741133202140532 M-57.45738177355691 -3.741133202140532 C-57.39361596404653 -3.984299870080274, -57.329850154536146 -4.227466538020016, -57.18400952917886 -4.783620050234225 M-57.45738177355691 -3.741133202140532 C-57.3879208900113 -4.00601765563729, -57.3184600064657 -4.270902109134049, -57.18400952917886 -4.783620050234225 M-57.18400952917886 -4.783620050234225 C-57.077768999451926 -5.103599598642085, -56.971528469724994 -5.423579147049946, -56.844406595711604 -5.8064499774582226 M-57.18400952917886 -4.783620050234225 C-57.07194593720884 -5.1211377343392845, -56.959882345238825 -5.458655418444344, -56.844406595711604 -5.8064499774582226 M-56.844406595711604 -5.8064499774582226 C-56.73045582509504 -6.087910583969404, -56.61650505447848 -6.369371190480587, -56.43996847445335 -6.8054199562452435 M-56.844406595711604 -5.8064499774582226 C-56.75710766832523 -6.022080015912506, -56.669808740938855 -6.23771005436679, -56.43996847445335 -6.8054199562452435 M-56.43996847445335 -6.8054199562452435 C-56.30832697361063 -7.078776349422044, -56.176685472767915 -7.352132742598844, -55.972357088396066 -7.776425004674037 M-56.43996847445335 -6.8054199562452435 C-56.33593275181141 -7.021452360319098, -56.23189702916947 -7.237484764392953, -55.972357088396066 -7.776425004674037 M-55.972357088396066 -7.776425004674037 C-55.81199731570259 -8.061160019279098, -55.651637543009116 -8.345895033884158, -55.443493953027385 -8.715475054720706 M-55.972357088396066 -7.776425004674037 C-55.85767775658064 -7.980049770853887, -55.742998424765226 -8.183674537033736, -55.443493953027385 -8.715475054720706 M-55.443493953027385 -8.715475054720706 C-55.24771662673983 -9.016241601471487, -55.051939300452275 -9.317008148222268, -54.85555228041132 -9.618711348303977 M-55.443493953027385 -8.715475054720706 C-55.321562573990995 -8.902794396080346, -55.199631194954605 -9.090113737439985, -54.85555228041132 -9.618711348303977 M-54.85555228041132 -9.618711348303977 C-54.718447825792886 -9.802418827019912, -54.58134337117445 -9.986126305735848, -54.21094804899376 -10.482422293749956 M-54.85555228041132 -9.618711348303977 C-54.64019576712776 -9.907269456721984, -54.4248392538442 -10.19582756513999, -54.21094804899376 -10.482422293749956 M-54.21094804899376 -10.482422293749956 C-54.03843781722956 -10.68506262809045, -53.86592758546536 -10.887702962430943, -53.51233007582875 -11.303058717518383 M-54.21094804899376 -10.482422293749956 C-54.029355413863115 -10.695731335888063, -53.84776277873247 -10.909040378026171, -53.51233007582875 -11.303058717518383 M-53.51233007582875 -11.303058717518383 C-53.243343815775816 -11.5808091152057, -52.97435755572288 -11.858559512893015, -52.76256913202113 -12.077248448518036 M-53.51233007582875 -11.303058717518383 C-53.29244516534788 -11.530107940476773, -53.072560254867 -11.757157163435165, -52.76256913202113 -12.077248448518036 M-52.76256913202113 -12.077248448518036 C-52.54149297006225 -12.278023969454377, -52.320416808103374 -12.478799490390717, -51.964746146112205 -12.80181017508106 M-52.76256913202113 -12.077248448518036 C-52.54121949183932 -12.278272335140603, -52.319869851657515 -12.47929622176317, -51.964746146112205 -12.80181017508106 M-51.964746146112205 -12.80181017508106 C-51.74164326297549 -12.979728787365536, -51.51854037983877 -13.157647399650012, -51.12213954388358 -13.473766517655017 M-51.964746146112205 -12.80181017508106 C-51.71539036988653 -13.000664770985155, -51.46603459366085 -13.199519366889248, -51.12213954388358 -13.473766517655017 M-51.12213954388358 -13.473766517655017 C-50.795437493841355 -13.701659725060662, -50.46873544379914 -13.929552932466306, -50.238211776602355 -14.090356263494064 M-51.12213954388358 -13.473766517655017 C-50.81170259100583 -13.690313897383433, -50.50126563812808 -13.906861277111851, -50.238211776602355 -14.090356263494064 M-50.238211776602355 -14.090356263494064 C-49.881254967298474 -14.30674557900513, -49.5242981579946 -14.523134894516195, -49.316595093066205 -14.649045713074482 M-50.238211776602355 -14.090356263494064 C-49.906444766237094 -14.291475374856851, -49.574677755871825 -14.49259448621964, -49.316595093066205 -14.649045713074482 M-49.316595093066205 -14.649045713074482 C-48.96123561486531 -14.834436525233283, -48.605876136664406 -15.019827337392085, -48.36107661391395 -15.14753909160942 M-49.316595093066205 -14.649045713074482 C-49.045096895053476 -14.79068614907483, -48.77359869704074 -14.93232658507518, -48.36107661391395 -15.14753909160942 M-48.36107661391395 -15.14753909160942 C-47.98651547940102 -15.313346194897013, -47.61195434488808 -15.479153298184606, -47.37558276953449 -15.583787982879986 M-48.36107661391395 -15.14753909160942 C-47.99990283436803 -15.307420009974892, -47.63872905482211 -15.467300928340366, -47.37558276953449 -15.583787982879986 M-47.37558276953449 -15.583787982879986 C-47.00271256778907 -15.721007663896664, -46.62984236604364 -15.858227344913342, -46.364163165522136 -15.955999746616863 M-47.37558276953449 -15.583787982879986 C-47.15495189182172 -15.664982185367762, -46.934321014108946 -15.746176387855538, -46.364163165522136 -15.955999746616863 M-46.364163165522136 -15.955999746616863 C-46.11871238069763 -16.028848251155317, -45.873261595873124 -16.10169675569377, -45.33097394197861 -16.262644884843677 M-46.364163165522136 -15.955999746616863 C-46.05978987462263 -16.04633614166783, -45.755416583723125 -16.136672536718798, -45.33097394197861 -16.262644884843677 M-45.33097394197861 -16.262644884843677 C-44.97603101600819 -16.34365829147737, -44.621088090037766 -16.42467169811107, -44.28026069504183 -16.502463326912284 M-45.33097394197861 -16.262644884843677 C-45.110932310035984 -16.312867951428743, -44.890890678093356 -16.363091018013805, -44.28026069504183 -16.502463326912284 M-44.28026069504183 -16.502463326912284 C-44.02792303824756 -16.543259322355027, -43.775585381453276 -16.584055317797773, -43.21634103082077 -16.674469607403324 M-44.28026069504183 -16.502463326912284 C-44.01689449116388 -16.545042332319856, -43.75352828728593 -16.58762133772743, -43.21634103082077 -16.674469607403324 M-43.21634103082077 -16.674469607403324 C-42.93393520608263 -16.701712957673116, -42.65152938134448 -16.72895630794291, -42.143586823425736 -16.77795691561503 M-43.21634103082077 -16.674469607403324 C-42.98922389999124 -16.696379323866136, -42.7621067691617 -16.718289040328948, -42.143586823425736 -16.77795691561503 M-42.143586823425736 -16.77795691561503 C-41.846967930661094 -16.78746890617234, -41.550349037896446 -16.796980896729654, -41.06640625000001 -16.8125 M-42.143586823425736 -16.77795691561503 C-41.91391015008469 -16.78532219949055, -41.68423347674364 -16.792687483366073, -41.06640625000001 -16.8125 M-41.06640625000001 -16.8125 C-41.06640625000001 -16.8125, -41.06640625 -16.8125, -41.06640625 -16.8125 M-41.06640625000001 -16.8125 C-41.06640625000001 -16.8125, -41.06640625 -16.8125, -41.06640625 -16.8125" stroke="#3a4a52" stroke-width="1.3" fill="none" stroke-dasharray="0 0"></path></g><g class="label" transform="translate(0, -9.3125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Job</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> aborted</tspan></tspan></text></g></g></g></g></g></g><defs><filter id="gd28-drop-shadow" height="130%" width="130%"><feDropShadow dx="4" dy="4" stdDeviation="0" flood-opacity="0.06" flood-color="#000000"></feDropShadow></filter></defs><defs><filter id="gd28-drop-shadow-small" height="150%" width="150%"><feDropShadow dx="2" dy="2" stdDeviation="0" flood-opacity="0.06" flood-color="#000000"></feDropShadow></filter></defs><linearGradient id="gd28-gradient" gradientUnits="objectBoundingBox" x1="0%" y1="0%" x2="100%" y2="0%"><stop offset="0%" stop-color="#3a4a52" stop-opacity="1"></stop><stop offset="100%" stop-color="hsl(200, 0%, 0%)" stop-opacity="1"></stop></linearGradient></svg>