From 2dba1edda6a4b03fdf9614e3e987d923a806d1ec Mon Sep 17 00:00:00 2001 From: Lars Bogner Date: Wed, 24 Jun 2026 10:53:38 +0200 Subject: [PATCH] Run validation incompletely --- analysis/validation.ipynb | 165 +++++++++++++++++++------------------- 1 file changed, 84 insertions(+), 81 deletions(-) diff --git a/analysis/validation.ipynb b/analysis/validation.ipynb index c5ee062..224e88c 100644 --- a/analysis/validation.ipynb +++ b/analysis/validation.ipynb @@ -7,17 +7,17 @@ "source": [ "# GIANT validation notebook\n", "\n", - "Diagnostics for a trained checkpoint's sample quality, run against `giant predict --coord local` output (`pred_*`/`true_*` columns, denormalized but still local-frame/log-scaled \u2014 see `giant.analysis`'s module docstring). Four tiers, each building on the last:\n", + "Diagnostics for a trained checkpoint's sample quality, run against `giant predict --coord local` output (`pred_*`/`true_*` columns, denormalized but still local-frame/log-scaled — see `giant.analysis`'s module docstring). Four tiers, each building on the last:\n", "\n", - "1. **stratified marginals** \u2014 per-dimension real-vs-generated, sliced by pdg/material/energy\n", - "2. **joint structure** \u2014 correlation matrices, physically-coupled pairwise plots, direction alignment\n", - "3. **physical constraints** \u2014 unit-norm directions, non-negative step_length/delta_e/edep\n", - "4. **event-level (shower) observables** \u2014 total energy, longitudinal/transverse profiles, shower-max depth, in world-frame physical units (mm, MeV)\n" + "1. **stratified marginals** — per-dimension real-vs-generated, sliced by pdg/material/energy\n", + "2. **joint structure** — correlation matrices, physically-coupled pairwise plots, direction alignment\n", + "3. **physical constraints** — unit-norm directions, non-negative step_length/delta_e/edep\n", + "4. **event-level (shower) observables** — total energy, longitudinal/transverse profiles, shower-max depth, in world-frame physical units (mm, MeV)\n" ] }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 17, "id": "1b65ca80", "metadata": {}, "outputs": [], @@ -41,63 +41,29 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 18, "id": "f2752229", "metadata": {}, "outputs": [ { - "name": "stderr", - "output_type": "stream", - "text": [ - "/tmp/ipykernel_370449/3415847466.py:7: UserWarning: FigureCanvasAgg is non-interactive, and thus cannot be shown\n", - " fig.show()\n", - "/tmp/ipykernel_370449/3415847466.py:7: UserWarning: FigureCanvasAgg is non-interactive, and thus cannot be shown\n", - " fig.show()\n", - "/tmp/ipykernel_370449/3415847466.py:7: UserWarning: FigureCanvasAgg is non-interactive, and thus cannot be shown\n", - " fig.show()\n", - "/tmp/ipykernel_370449/3415847466.py:7: UserWarning: FigureCanvasAgg is non-interactive, and thus cannot be shown\n", - " fig.show()\n" + "ename": "KeyboardInterrupt", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[31m---------------------------------------------------------------------------\u001b[39m", + "\u001b[31mKeyboardInterrupt\u001b[39m Traceback (most recent call last)", + "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[18]\u001b[39m\u001b[32m, line 6\u001b[39m\n\u001b[32m 2\u001b[39m \u001b[38;5;66;03m# parquet (no SampleCollection, no row subsampling) so this covers every row\u001b[39;00m\n\u001b[32m 3\u001b[39m \u001b[38;5;66;03m# in the file regardless of size. \"energy\"/\"pdg\"/\"material\" stratify the\u001b[39;00m\n\u001b[32m 4\u001b[39m \u001b[38;5;66;03m# aggregate check so a failure hidden by the overall KL doesn't go unnoticed.\u001b[39;00m\n\u001b[32m 5\u001b[39m \u001b[38;5;28;01mfor\u001b[39;00m grouping \u001b[38;5;28;01min\u001b[39;00m [\u001b[38;5;28;01mNone\u001b[39;00m, \u001b[33m\"energy\"\u001b[39m, \u001b[33m\"pdg\"\u001b[39m, \u001b[33m\"material\"\u001b[39m]:\n\u001b[32m----> \u001b[39m\u001b[32m6\u001b[39m fig = plot_kl_bars_pl(FILE, group_by=grouping)\n\u001b[32m 7\u001b[39m fig.show()\n", + "\u001b[36mFile \u001b[39m\u001b[32m~/Programming/giant/giant/analysis.py:716\u001b[39m, in \u001b[36mplot_kl_bars_pl\u001b[39m\u001b[34m(source, group_by, n_energy_bins, bins, max_groups, figsize)\u001b[39m\n\u001b[32m 708\u001b[39m table = _limit_groups_by_kl_n(table, max_groups)\n\u001b[32m 709\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m _plot_kl_bars(table, figsize=figsize)\n\u001b[32m 712\u001b[39m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34mplot_kl_bars_pl\u001b[39m(\n\u001b[32m 713\u001b[39m source: \u001b[38;5;28mstr\u001b[39m | Path | pl.LazyFrame,\n\u001b[32m 714\u001b[39m group_by: \u001b[38;5;28mstr\u001b[39m | \u001b[38;5;28;01mNone\u001b[39;00m = \u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[32m 715\u001b[39m n_energy_bins: \u001b[38;5;28mint\u001b[39m = \u001b[32m4\u001b[39m,\n\u001b[32m--> \u001b[39m\u001b[32m716\u001b[39m bins: \u001b[38;5;28mint\u001b[39m = \u001b[32m50\u001b[39m,\n\u001b[32m 717\u001b[39m max_groups: \u001b[38;5;28mint\u001b[39m = \u001b[32m6\u001b[39m,\n\u001b[32m 718\u001b[39m figsize: \u001b[38;5;28mtuple\u001b[39m[\u001b[38;5;28mfloat\u001b[39m, \u001b[38;5;28mfloat\u001b[39m] = (\u001b[32m8\u001b[39m, \u001b[32m4\u001b[39m),\n\u001b[32m 719\u001b[39m ):\n\u001b[32m 720\u001b[39m \u001b[38;5;250m \u001b[39m\u001b[33;03m\"\"\"Polars duplicate of `plot_kl_bars`, reading straight from a predict parquet.\u001b[39;00m\n\u001b[32m 721\u001b[39m \n\u001b[32m 722\u001b[39m \u001b[33;03m Built on top of `marginal_table_pl`; see that function for the `source`\u001b[39;00m\n\u001b[32m 723\u001b[39m \u001b[33;03m argument and why it stays lazy until the final per-(group, dim) collect.\u001b[39;00m\n\u001b[32m 724\u001b[39m \u001b[33;03m See `plot_kl_bars` for the `max_groups` capping behavior.\u001b[39;00m\n\u001b[32m 725\u001b[39m \u001b[33;03m \"\"\"\u001b[39;00m\n\u001b[32m 726\u001b[39m table = marginal_table_pl(\n\u001b[32m 727\u001b[39m source, group_by=group_by, n_energy_bins=n_energy_bins, bins=bins\n\u001b[32m 728\u001b[39m ).to_pandas()\n", + "\u001b[36mFile \u001b[39m\u001b[32m~/Programming/giant/giant/analysis.py:572\u001b[39m, in \u001b[36mmarginal_table_pl\u001b[39m\u001b[34m(source, group_by, n_energy_bins, bins)\u001b[39m\n\u001b[32m 565\u001b[39m pair = glf.select(\n\u001b[32m 566\u001b[39m [\n\u001b[32m 567\u001b[39m _raw_expr(true_cols[j], j).alias(\u001b[33m\"\u001b[39m\u001b[33mreal\u001b[39m\u001b[33m\"\u001b[39m),\n\u001b[32m 568\u001b[39m _raw_expr(pred_cols[j], j).alias(\u001b[33m\"\u001b[39m\u001b[33mgen\u001b[39m\u001b[33m\"\u001b[39m),\n\u001b[32m 569\u001b[39m ]\n\u001b[32m 570\u001b[39m ).collect()\n\u001b[32m 571\u001b[39m real_s, gen_s = pair[\u001b[33m\"\u001b[39m\u001b[33mreal\u001b[39m\u001b[33m\"\u001b[39m], pair[\u001b[33m\"\u001b[39m\u001b[33mgen\u001b[39m\u001b[33m\"\u001b[39m]\n\u001b[32m--> \u001b[39m\u001b[32m572\u001b[39m rows.append(\n\u001b[32m 573\u001b[39m {\n\u001b[32m 574\u001b[39m \u001b[33m\"\u001b[39m\u001b[33mgroup\u001b[39m\u001b[33m\"\u001b[39m: label,\n\u001b[32m 575\u001b[39m \u001b[33m\"\u001b[39m\u001b[33mdim\u001b[39m\u001b[33m\"\u001b[39m: name,\n\u001b[32m 576\u001b[39m \u001b[33m\"\u001b[39m\u001b[33mn\u001b[39m\u001b[33m\"\u001b[39m: n,\n\u001b[32m 577\u001b[39m \u001b[33m\"\u001b[39m\u001b[33mreal_mean\u001b[39m\u001b[33m\"\u001b[39m: real_s.mean(),\n\u001b[32m 578\u001b[39m \u001b[33m\"\u001b[39m\u001b[33mgen_mean\u001b[39m\u001b[33m\"\u001b[39m: gen_s.mean(),\n\u001b[32m 579\u001b[39m \u001b[38;5;66;03m# ddof=0 to match numpy's (population-std) default used by marginal_table\u001b[39;00m\n\u001b[32m 580\u001b[39m \u001b[33m\"\u001b[39m\u001b[33mreal_std\u001b[39m\u001b[33m\"\u001b[39m: real_s.std(ddof=\u001b[32m0\u001b[39m),\n\u001b[32m 581\u001b[39m \u001b[33m\"\u001b[39m\u001b[33mgen_std\u001b[39m\u001b[33m\"\u001b[39m: gen_s.std(ddof=\u001b[32m0\u001b[39m),\n\u001b[32m 582\u001b[39m \u001b[33m\"\u001b[39m\u001b[33mkl_real_gen\u001b[39m\u001b[33m\"\u001b[39m: _histogram_kl_pl(real_s, gen_s, bins=bins),\n\u001b[32m 583\u001b[39m }\n\u001b[32m 584\u001b[39m )\n\u001b[32m 585\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m pl.DataFrame(rows).sort(\u001b[33m\"\u001b[39m\u001b[33mkl_real_gen\u001b[39m\u001b[33m\"\u001b[39m, descending=\u001b[38;5;28;01mTrue\u001b[39;00m)\n", + "\u001b[36mFile \u001b[39m\u001b[32m~/Programming/giant/giant/analysis.py:484\u001b[39m, in \u001b[36m_histogram_kl_pl\u001b[39m\u001b[34m(p, q, bins, eps)\u001b[39m\n\u001b[32m 0\u001b[39m \n", + "\u001b[36mFile \u001b[39m\u001b[32m~/Programming/giant/.venv/lib/python3.12/site-packages/polars/_utils/unstable.py:56\u001b[39m, in \u001b[36munstable..decorate..wrapper\u001b[39m\u001b[34m(*args, **kwargs)\u001b[39m\n\u001b[32m 53\u001b[39m \u001b[38;5;129m@wraps\u001b[39m(function)\n\u001b[32m 54\u001b[39m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34mwrapper\u001b[39m(*args: P.args, **kwargs: P.kwargs) -> T:\n\u001b[32m 55\u001b[39m issue_unstable_warning(\u001b[33mf\u001b[39m\u001b[33m\"\u001b[39m\u001b[33m`\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mfunction.\u001b[34m__name__\u001b[39m\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m` is considered unstable.\u001b[39m\u001b[33m\"\u001b[39m)\n\u001b[32m---> \u001b[39m\u001b[32m56\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[30;43mfunction\u001b[39;49m\u001b[30;43m(\u001b[39;49m\u001b[30;43m*\u001b[39;49m\u001b[30;43margs\u001b[39;49m\u001b[30;43m,\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43m*\u001b[39;49m\u001b[30;43m*\u001b[39;49m\u001b[30;43mkwargs\u001b[39;49m\u001b[30;43m)\u001b[39;49m\n", + "\u001b[36mFile \u001b[39m\u001b[32m~/Programming/giant/.venv/lib/python3.12/site-packages/polars/series/series.py:2841\u001b[39m, in \u001b[36mSeries.hist\u001b[39m\u001b[34m(self, bins, bin_count, include_category, include_breakpoint)\u001b[39m\n\u001b[32m 2791\u001b[39m \u001b[38;5;129m@unstable\u001b[39m()\n\u001b[32m 2792\u001b[39m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34mhist\u001b[39m(\n\u001b[32m 2793\u001b[39m \u001b[38;5;28mself\u001b[39m,\n\u001b[32m (...)\u001b[39m\u001b[32m 2798\u001b[39m include_breakpoint: \u001b[38;5;28mbool\u001b[39m = \u001b[38;5;28;01mTrue\u001b[39;00m,\n\u001b[32m 2799\u001b[39m ) -> DataFrame:\n\u001b[32m 2800\u001b[39m \u001b[38;5;250m \u001b[39m\u001b[33;03m\"\"\"\u001b[39;00m\n\u001b[32m 2801\u001b[39m \u001b[33;03m Bin values into buckets and count their occurrences.\u001b[39;00m\n\u001b[32m 2802\u001b[39m \n\u001b[32m (...)\u001b[39m\u001b[32m 2837\u001b[39m \u001b[33;03m └────────────┴─────────────┴───────┘\u001b[39;00m\n\u001b[32m 2838\u001b[39m \u001b[33;03m \"\"\"\u001b[39;00m\n\u001b[32m 2839\u001b[39m out = (\n\u001b[32m 2840\u001b[39m \u001b[30;43mself\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43mto_frame\u001b[39;49m\u001b[30;43m(\u001b[39;49m\u001b[30;43m)\u001b[39;49m\n\u001b[32m-> \u001b[39m\u001b[32m2841\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43mselect_seq\u001b[39;49m\u001b[30;43m(\u001b[39;49m\n\u001b[32m 2842\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mF\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43mcol\u001b[39;49m\u001b[30;43m(\u001b[39;49m\u001b[30;43mself\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43mname\u001b[39;49m\u001b[30;43m)\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43mhist\u001b[39;49m\u001b[30;43m(\u001b[39;49m\n\u001b[32m 2843\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mbins\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43mbins\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 2844\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mbin_count\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43mbin_count\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 2845\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43minclude_category\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43minclude_category\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 2846\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43minclude_breakpoint\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43minclude_breakpoint\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 2847\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43m)\u001b[39;49m\n\u001b[32m 2848\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43m)\u001b[39;49m\n\u001b[32m 2849\u001b[39m .to_series()\n\u001b[32m 2850\u001b[39m )\n\u001b[32m 2851\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m include_breakpoint \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m include_category:\n\u001b[32m 2852\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m out.to_frame()\n", + "\u001b[36mFile \u001b[39m\u001b[32m~/Programming/giant/.venv/lib/python3.12/site-packages/polars/dataframe/frame.py:10447\u001b[39m, in \u001b[36mDataFrame.select_seq\u001b[39m\u001b[34m(self, *exprs, **named_exprs)\u001b[39m\n\u001b[32m 10443\u001b[39m \n\u001b[32m 10444\u001b[39m return (\n\u001b[32m 10445\u001b[39m self.lazy()\n\u001b[32m 10446\u001b[39m .select_seq(*exprs, **named_exprs)\n\u001b[32m> \u001b[39m\u001b[32m10447\u001b[39m .collect(optimizations=QueryOptFlags._eager())\n\u001b[32m 10448\u001b[39m )\n", + "\u001b[36mFile \u001b[39m\u001b[32m~/Programming/giant/.venv/lib/python3.12/site-packages/polars/_utils/deprecation.py:97\u001b[39m, in \u001b[36mdeprecate_streaming_parameter..decorate..wrapper\u001b[39m\u001b[34m(*args, **kwargs)\u001b[39m\n\u001b[32m 93\u001b[39m kwargs[\u001b[33m\"\u001b[39m\u001b[33mengine\u001b[39m\u001b[33m\"\u001b[39m] = \u001b[33m\"\u001b[39m\u001b[33min-memory\u001b[39m\u001b[33m\"\u001b[39m\n\u001b[32m 95\u001b[39m \u001b[38;5;28;01mdel\u001b[39;00m kwargs[\u001b[33m\"\u001b[39m\u001b[33mstreaming\u001b[39m\u001b[33m\"\u001b[39m]\n\u001b[32m---> \u001b[39m\u001b[32m97\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[30;43mfunction\u001b[39;49m\u001b[30;43m(\u001b[39;49m\u001b[30;43m*\u001b[39;49m\u001b[30;43margs\u001b[39;49m\u001b[30;43m,\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43m*\u001b[39;49m\u001b[30;43m*\u001b[39;49m\u001b[30;43mkwargs\u001b[39;49m\u001b[30;43m)\u001b[39;49m\n", + "\u001b[36mFile \u001b[39m\u001b[32m~/Programming/giant/.venv/lib/python3.12/site-packages/polars/lazyframe/opt_flags.py:343\u001b[39m, in \u001b[36mforward_old_opt_flags..decorate..wrapper\u001b[39m\u001b[34m(*args, **kwargs)\u001b[39m\n\u001b[32m 340\u001b[39m optflags = cb(optflags, kwargs.pop(key)) \u001b[38;5;66;03m# type: ignore[no-untyped-call,unused-ignore]\u001b[39;00m\n\u001b[32m 342\u001b[39m kwargs[\u001b[33m\"\u001b[39m\u001b[33moptimizations\u001b[39m\u001b[33m\"\u001b[39m] = optflags\n\u001b[32m--> \u001b[39m\u001b[32m343\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[30;43mfunction\u001b[39;49m\u001b[30;43m(\u001b[39;49m\u001b[30;43m*\u001b[39;49m\u001b[30;43margs\u001b[39;49m\u001b[30;43m,\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43m*\u001b[39;49m\u001b[30;43m*\u001b[39;49m\u001b[30;43mkwargs\u001b[39;49m\u001b[30;43m)\u001b[39;49m\n", + "\u001b[36mFile \u001b[39m\u001b[32m~/Programming/giant/.venv/lib/python3.12/site-packages/polars/lazyframe/frame.py:2630\u001b[39m, in \u001b[36mLazyFrame.collect\u001b[39m\u001b[34m(self, type_coercion, predicate_pushdown, projection_pushdown, simplify_expression, slice_pushdown, comm_subplan_elim, comm_subexpr_elim, cluster_with_columns, collapse_joins, no_optimization, engine, background, optimizations, **_kwargs)\u001b[39m\n\u001b[32m 2626\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m InProcessQuery(ldf.collect_concurrently())\n\u001b[32m 2627\u001b[39m \n\u001b[32m 2628\u001b[39m \u001b[38;5;66;03m# Only for testing purposes\u001b[39;00m\n\u001b[32m 2629\u001b[39m callback = _kwargs.get(\u001b[33m\"post_opt_callback\"\u001b[39m, callback)\n\u001b[32m-> \u001b[39m\u001b[32m2630\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m wrap_df(ldf.collect(engine, callback))\n", + "\u001b[31mKeyboardInterrupt\u001b[39m: " ] - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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4oublGQ+dnR01KvPi6ECALy8vODl5YWLFy++sp7Ro0drbRQSFxcHT0/PXL0nIiIiImNmamqq1wdTyt8UWxWqaNGicHNzw/Hjx7Xaw8LCUK1atTzrAwBpaWl48ODBazf1sLS0hI2NjdYXERERERHljKLLzfbt2xc///wz/v33XwDA6tWrce3aNfTq1UtzzLhx47T2oHhTn9TUVIwdOxbx8fHA87kTgwYNQmpqKjp06PCO3yERERERkXFQdLnZMWPGIDIyEmXKlIGjoyOePXuGFStWoHLlyppjoqOjERERkeM+5ubmsLa2hre3NwoVKoQHDx7Ax8cHe/fuRcmSJRV5n0RERERE7zuVGMCCw0+ePMGjR49QrFgxWFpaaj13584dPHv2DD4+Pjnug+dLZt26dQv29vY6DWuKi4uDra0tYmNjOSyKiEghvqt8de57ofuFPK2FiMgY5eYzsaJ3LDLZ29vD3t4+2+fc3Nxy3QfPl8vy8vLKsxqJiIiIiOjVFJ1jQURERERE7wcGCyIiIiIi0huDBRERERER6Y3BgoiIiIiI9MZgQUREREREemOwICIiIiIivTFYEBERERGR3hgsiIiIiIhIbwwWRERERESkNwYLIiIiIiLSG4MFERERERHpjcGCiIiIiIj0xmBBRERERER6Y7AgIiIiIiK9MVgQEREREZHeGCyIiIiIiEhvDBZERERERKQ3BgsiIiIiItIbgwUREREREelNr2AhIhCRvKuGiIiIiIjypVwFCxHBrl270K1bNxQvXhwWFhawsLBAiRIl0L17d+zZs4dBg4iIiIjICJnl9MC9e/di8ODBePDgAT744AN89dVXcHFxAQDcv38fJ06cQOfOneHi4oI5c+bggw8+eJt1ExERERGRAclxsBgyZAjGjRuHtm3bwsLCIttjUlNT8fvvv+Prr7/G5cuX87JOIiIiIiIyYDkOFhcuXICJyetHTllYWKBjx474+OOP86I2IiIiIiLKJ3I8x+JNoeJFpqamutZDRERERET5UI7vWLzs8uXLOHbsGGJiYrI8N2zYMH3rIiIiIiKifESnYLFkyRL0798fHh4esLe3z/I8gwURERERkXHRKVhMmTIFK1euRNeuXfO+IiIiIiIiynd02iDv6dOnaN++fd5XQ0RERERE+ZJOwaJ69eo4depU3ldDRERERET5kk5DoZo2bYpOnTph+PDh8PHxgUql0nq+ZcuWeVUfERERERHlAzoFiwkTJgAARo8ene3zycnJ+lVFRERERET5ik7BIi+DQ3p6Oo4cOYL79+/D19cX5cuXz9M+UVFROHDgAMqVK4eaNWvmWd1ERERERPT/6byPRV6IiYlBQEAAYmJiUKFCBRw+fBiff/455syZkyd90tLS0L59e5w/fx5ffPEFgwURERER0Vuic7CIiIjA+vXr8e+//2LVqlUAgO3btyMwMBCWlpY5OseYMWOQlJSECxcuwNraGsePH4efnx8+/PBDNGvWTO8+o0ePRvny5ZGamqrr2yQiIiIiohzQaVWow4cPo3LlyggNDcXq1as17UePHsWiRYtydA4RwYYNG/D555/D2toaAFCrVi3UqlUL69ev17vPnj17sH37dsybN0+Xt0hERERERLmgU7AYNWoU5s+fj3379mm1d+/eHYsXL87ROaKiohAbG5tlfkSFChVw8eJFvfrcvXsXn3/+OdasWYPChQvnqJ6UlBTExcVpfRERERERUc7oFCwuXLiAjh07AoDWUrNeXl6IjIzM0TliY2MBAHZ2dlrtRYoU0TynSx+1Wo0uXbqgb9++qF27do7f05QpU2Bra6v58vT0zHFfIiIiIiJjp1OwKFSoEB48eAC8FCzOnDmDokWL5ugcVlZWAIDExESt9vj4eM1zuvT59ddfcfr0aXh4eGDlypVYuXIlYmJicPnyZaxcuRIiku25R48ejdjYWM1XVFRUjt4HERERERHpGCzat2+PYcOGIT4+XtN2/Phx9OrVC0FBQTk6R7FixWBubp7lDkdkZCS8vb117lO0aFG0adMGR44cQUhICEJCQpCQkIDbt28jJCTklcHC0tISNjY2Wl9ERERERJQzKnnVJ+3XiI+PR9u2bfHXX38hLS0N9vb2ePLkCZo0aYIdO3agYMGCOTpPixYtkJqaij///BMAcP/+fXh5eWHBggXo1asX8HxC+MOHD9G6desc93lZ5cqV0bBhw9cuY/uyuLg42NraIjY2liGDiEghvqt8de57ofuFPK2FiMgY5eYzsU7LzRYuXBj79+9HWFgYTp06BbVajapVq6JevXq5Os+0adPg7++PoKAg1K5dG7/88gsqV66M7t27a45ZsWIFjh07pgkWOelDRERERETvll4b5Pn5+cHPz0/n/hUqVMC5c+ewYsUKXL16FX379kWvXr1gbm6uOcbf319r3kZO+rysVatWKFOmjM51EhERERHR6+k0FGrlypWvfM7S0hL/+9//UKNGDZiY6DSFwyBwKBQRkfI4FIqISFlvfSjUuHHjcOvWLeD50q8qlQpPnjwBADg7O+PBgwcoX748/vzzT7i6uuryEkRERERElI/odEvhyy+/REBAAG7cuIEnT54gJiYGN27cQJMmTTB06FDcu3cP7u7uGDJkSN5XTEREREREBkenoVA+Pj44dOhQlk3kbt26hSZNmiAiIgLXrl1Dw4YNcefOnbys953hUCgiIuVxKBQRkbJy85lYpzsWt2/fznb+hKmpKW7fvg08308iNTVVl9MTEREREVE+o1Ow8Pf3R9++fREdHa1pu337Nnr37o06deoAAA4dOoRGjRrlXaVERERERGSwdAoWy5YtQ3R0NIoVKwZ3d3e4ubnBy8sL9+7dw7JlywAA0dHRmD17dl7XS0REREREBkinVaH+97//4cyZM/jrr78QHh4OlUqFMmXKoH79+lCpVMDzCd5ERERERGQcdN4gT6VSoUGDBmjQoEHeVkRERERERPlO/t3BjoiIiIiIDAaDBRERERER6Y3BgoiIiIiI9MZgQUREREREemOwICIiIiIiveV4VaiWLVvq9AI7d+7UqR8REREREeUfOQ4WDRs2fLuVEBERERFRvpXjYDFs2LC3WwkREREREeVbnGNBRERERER6Y7AgIiIiIiK9cfI2ERERERHpjZO3iYiIiIhIb5y8TUREREREeuMcCyIiIiIi0huDBRERERER6Y3BgoiIiIiI9MZgQUREREREemOwICIiIiIiveV4VagNGzbk+KSdOnXStR4iIqI8EV6mrM59y14Jz9NaiIiMQY6DxYABA3J8UgYLIiIiIiLjkuNg8ejRo7dbCRERERER5VucY0FERERERHrL8R2LV3n69CnS09O12hwdHfU9LRERERER5SM6BYvY2FgMGTIEv/32G+Lj47M8LyJ5URsREREREeUTOg2FGj58OK5fv44dO3YAAMLCwjB37lw4ODhg6tSpeV0jEREREREZOJ2CxR9//IGff/4ZDRs2BADUrFkTgwYNwtq1a7Fp06ZcnWv16tWoVq0aPDw88OGHH+L8+fN693n48CFGjBiBSpUqwdvbG61atcLRo0dz+S6JiIiIiCindAoWd+7cgY+PDwDAxsYGMTExAIB69erh0qVLOT7Ppk2b0KtXLwwcOBAHDhyAh4cHGjVqhPv37+vVZ+TIkShWrBg2bNiAPXv2wMfHB02aNMGVK1d0ebtERERERPQGOq8KpVKpAABlypTB1q1bAQB79+7N1cTtyZMno0ePHvjss89QunRpLFmyBGZmZli0aJFefZYvX44BAwagbNmyKFmyJGbMmIH09HSEhobq+naJiIiIiOg1dAoW5cuX1/z3N998g4EDB6Jo0aLo0KEDRo4cmaNzxMbG4vz582jatKmmzdTUFI0bN8aRI0f06pMZevB8IvmqVatgbm6OevXq5fq9EhERERHRm+m0KtTFixc1/92qVStcunQJp06dQpkyZVC5cuUcnePOnTsAABcXF612FxcX/PPPP3r3OXjwIIKCgpCQkAArKyts27YNpUqVemU9KSkpSElJ0TyOi4vL0fsgIiIiIqI82McCAHx8fDRzLnIqc0laU1NT7YLMzKBWq/XuU69ePVy5cgWPHj3CTz/9hI8//hihoaHw9fXN9txTpkzBhAkTcvUeiIiIiIjo/+g8xyIiIgITJkxA9+7dNW3bt2/X+qv/6zg5OQHPV3B60cOHDzXP6dPH3Nwcjo6OKFOmDGbPno0SJUpg8eLFr6xn9OjRiI2N1XxFRUXl6H0QEREREZGOweLw4cOoXLkyQkNDsXr1ak370aNHXzvx+kVOTk4oUaIE/v77b632v/76C7Vq1cqzPpnMzc2Rmpr6yuctLS1hY2Oj9UVERERERDmjU7AYNWoU5s+fj3379mm1d+/e/bV3BV42aNAg/Pzzzzh+/DjS09Mxffp03LlzB3379tUcM3jwYK1J12/q8+zZM/Tr1w+RkZEAgOTkZPz44484c+YMOnbsqMvbJSIiIiKiN9BpjsWFCxc0H9JfXIHJy8tL84E+J7766is8ePAATZs2RUpKCtzd3bF161atSdbx8fF48uRJjvtYWVmhVq1aaN68OW7duoX09HT4+vri999/R0BAgC5vl4iIiIiI3kAlmTOic8HFxQXHjh1DiRIlYGpqioyMDADAkSNH0LlzZ9y6dStX51Or1UhMTEThwoWzPJeQkID09HTY2dnluE+mpKQkFChQQCv85FRcXBxsbW0RGxvLYVFERArxXZX9ghs5sWlKus59y14J17kvEdH7JDefiXUaCtW+fXsMGzYM8fHxmrbjx4+jV69eCAoKyvX5TExMXhkQrK2ts4SKN/XJZGVlpVOoICIiIiKi3NEpWEybNg2xsbFwcHCAWq1GkSJFULt2bXh6euL777/P+yqJiIiIiMig6TTHonDhwti/fz/CwsJw6tQpqNVqVK1alTtbExEREREZKZ2Cha+vLy5cuAA/Pz/4+fnlfVVERERERJSv6DQUKioqCrGxsXlfDRERERER5Us6BYt27dph6dKleV8NERERERHlSzoNhUpISMCIESOwceNGlCtXDhYWFlrP//zzz3lVHxERERER5QM6BQsTExPNBnmpqalITU3N67qIiIiIiCgf0SlYbNiwIe8rISIiIiKifCvHcywuX76c45Pm5lgiIiIiIsr/chwsAgIC0LVrV4SGhkJEsjyvVqsREhKCzp07o2nTpnldJxERERERGbAcD4UKDw/H5MmT0bx5c5iZmaFq1apwcXGBiODevXs4ffo0AKBv3764cuXK26yZiIiIiIgMTI7vWNjY2GDatGmIjo7G4sWLUa5cOTx79gzJycmoUKECli1bhujoaEybNg02NjZvt2oiIiIiIjIouZ68bW1tjaCgIAQFBb2dioiIiIiIKN/RaYO816levXpen5KIiIiIiAxcngeLzLkWRERERERkPPI8WBARERERkfFhsCAiIiIiIr0xWBARERERkd5ytSpUhQoV3l4lRGR4xtvq0Tc2LyshIiIiA5erYBEYGJgnxxARERER0fslV8Fi6tSpMDN7fZeIiAh9ayIiIiIionwmV3MsevXqBRF55fM3btxAo0aN8qIuIiIiIiLKR3IVLHbu3Inhw4dn+9zNmzfRqFEjlClTJq9qIyIiIiKifCJXQ6F27dqFJk2awNHREaNGjdK0//fff2jUqBG8vb2xY8eOt1EnEREREREZsFwFi5o1a2Lr1q346KOP4OjoiF69euHWrVto1KgRPD09sXPnThQsWPDtVUtERERERAYpV8ECAAICArBmzRp07twZKSkp+PHHH1G0aFHs2rULhQoVejtVEhERERGRQct1sACADh06ICYmBl988QVq1qyJPXv2oHDhwnlfHRHlW76rfHXqd6H7hTyvhYiIiN4+vTbIs7CwwIMHD1CnTh2t9osXL+ZNdURERERElC/otUEeN8MjIiIiIiLkNljMnDnz7VVCRERERET5Vq72sSAiIiIiIsoOgwUREREREelNp1Wh8lJCQgKCg4Nx//59+Pr6okmTJnnS5+LFiwgLC4OZmRnq1KmD0qVLv6V3QEREREREit6xiI6ORsWKFTFz5kxcunQJnTt3RqdOnSAiOvcREXz44Yf49NNPcfLkSRw4cABVqlTBhAkT3uE7IyIiIiIyLoresRg1ahTs7e0RFhYGCwsLXL58GRUrVkRQUBDatWunUx8RwVdffaW1YtWWLVvw8ccfo1OnTrxzQURERET0Fih2xyIjIwO///47unfvDgsLCwBAuXLlULduXfz222869zExMcmyDG7dunUBAP/+++9bfldERERERMZJsTsWt27dQmJiYpY7CKVLl8bx48fzrA8AbN68Gebm5qhSpcorj0lJSUFKSormcVxcXC7eDRERERGRcVPsjkVCQgIAwNbWVqvdzs5O81xe9Dlz5gxGjhyJb7/9FkWLFn1lPVOmTIGtra3my9PTM9fviYiIiIjIWCkWLAoVKgRkc2cgNjZW85y+fS5duoTAwEB07twZY8eOfW09o0ePRmxsrOYrKioq1++JiIiIiMhYKRYsihUrhgIFCuD69eta7devX0epUqX07nP58mU0btwYrVu3xpIlS6BSqV5bj6WlJWxsbLS+iIiIiIgoZxQLFmZmZmjZsiXWrl2LjIwM4Pnk6sOHD2utCLV7924sX748V33Cw8PRuHFjtGrVCkuXLn1jqCAiIiIiIv0outzs9OnTUadOHTRp0gQ1a9bEpk2bEBAQgI4dO2qO2bJlC44dO4aePXvmqM+zZ8/QpEkTiAj+97//Ydq0aZpzNW/eHBUrVlTgnRIRERERvd8UDRYlSpTAxYsXsXHjRty/fx8zZ85Eu3btYGLy/2+kNG/eHBUqVMhVn27dugHP51686MVVn4iIiIiIKO+o5HXbXBuxuLg42NraIjY2lvMtyHiNt83BQdnzLVFMp34Xul/Q+TXp/eO7ylfnvpumpOvct+yVcJ37EhG9T3LzmVixORZERERERPT+YLAgIiIiIiK9MVgQEREREZHeGCyIiIiIiEhvDBZERERERKQ3BgsiIiIiItIbgwUREREREemNwYKIiIiIiPTGYEFERERERHpjsCAiIiIiIr0xWBARERERkd4YLIiIiIiISG8MFkREREREpDcGCyIiIiIi0huDBRERERER6Y3BgoiIiIiI9MZgQUREREREemOwICIiIiIivTFYEBERERGR3hgsiIiIiIhIbwwWRERERESkNwYLIiIiIiLSG4MFERERERHpjcGCiIiIiIj0xmBBRERERER6Y7AgIiIiIiK9MVgQEREREZHezJQugIjoReFlyurct+yV8DythYiIiHKOdyyIiIiIiEhvDBZERERERKQ3BgsiIiIiItIbgwUREREREentvQ8W6enpEBGlyyAiIiIieq8pHixmzJgBd3d3mJubo0qVKjh8+LDefR4/foyZM2fCx8cH5ubmOTonERERERHpTtFgsXTpUkyYMAHLly/Ho0eP0Lx5czRv3hyRkZF69Zk/fz7u3r2LZcuWvaN3QkRERERk3BQNFrNmzULPnj0RGBgIW1tbTJo0CUWKFMGSJUv06jN+/HjMmjULJUuWfEfvhIiIiIjIuCkWLGJiYnDt2jU0aNBA06ZSqdCwYUMcPXo0z/oQEREREdHbp1iwuHfvHgDAyclJq93Z2Rn379/Psz45lZKSgri4OK0vIiIiIiLKGcUnb79MrVZDpVK99T4vmzJlCmxtbTVfnp6eep2PiIiIiMiYKBYsXF1dAQAPHjzQan/48CGKFi2aZ31yavTo0YiNjdV8RUVF6XU+IiIiIiJjoliwsLe3R9myZXHo0CFNm4jg0KFDqFOnjqZNrVYjIyMjV310YWlpCRsbG60vIiIiIiLKGUWHQg0fPhwrVqzA9u3b8eDBAwwbNgxxcXHo16+f5pg+ffqgUqVKueojIkhPT9cEkoyMDKSnp0OtVr/jd0hEREREZBzMlHzxHj16ID4+HoMHD8b9+/fh6+uLffv2ac1vMDU1hZmZWa76rFmzBp9//rmmf7NmzQAA3333Hb777rt3+h6JiIiIiIyBSkRE6SIMUVxcHGxtbREbG8thUWS8xtvq3NW3RDGd+m2akq7za5a9Eq5zXzJMvqt8de7L7yUiIv3l5jOxwa0KRURERERE+Q+DBRERERER6U3RORZE9PYVH/WHzn0jC+RpKfQSfYb5XOh+IU9rISIi0hfvWBARERERkd4YLIiIiIiISG8MFkREREREpDcGCyIiIiIi0hsnbxMREREZGL0W3pjaIk9rIcopBgsiIqJ8TtcVxri6GBHlJQ6FIiIiIiIivTFYEBERERGR3hgsiIiIiIhIbwwWRERERESkNwYLIiIiIiLSG1eFIsolXVdfAVdgISIiovcYgwURERER0VsWXqaszn3LXgnP01reFg6FIiIiIiIivTFYEBERERGR3jgUioiIyBCMt9W9b4lieVkJEZFOGCxICycmE+USPwxSPmYMY74p5/gZgPTFoVBERERERKQ3BgsiIiIiItIbgwUREREREemNcywoz+g6VpfjdImIiIjyPwaL95WuE0o5mZSIiIiIdMBgQURERETGRdc/wI6PzetK3iucY0FERERERHrjHQsionyIc5qIiN49ffb62JSnlRgm3rEgIiIiIiK9MVgQEREREZHeGCyIiIiIiEhvnGNBRERvn5EsgV181B86940skKelEBG9c7xjQUREREREelP8jsX9+/exfv163L9/H76+vujYsSPMzF5fVk766HJeIiIiMmC63vmCke0/YCR3CMnwKPpJOyIiAv7+/qhSpQpq1qyJcePG4ZdffsHevXthamqqcx9dzktERESUHS7v/GZKXCMOPTQ8igaLkSNHokyZMti9ezdMTEzQu3dv+Pj4YP369ejatavOfXQ5L9G7oOsvXhjZP1BERHmN+w8QvX2KBYu0tDTs2rULc+bMgYnJ/031KFasGBo2bIht27ZlGwBy0keX8xIR6fqXL2P6qxf/Okh5hT9vRO8nxYLFrVu3kJKSAm9vb612b29vhIaG6txHl/MCQEpKClJSUjSPY2P/byxmXFycDu8ub1QYt1fnvhcLiE79MpIydH7NhAzd+ip5jXWhxDWCHtdJnfJM99dU6fZ9BD2ukxLXCHpcJyWuERT6eVPie4k/bznDn7c348/bm/EavVl++52UFzJfW+TN10yxYPHs2f99MxQuXFir3cbGRvOcLn10OS8ATJkyBRMmTMjS7unpmcN3ZFh0n96m+3Cbmrp2tNVjMl4+o/M1gjLXSb9X1O17idcoZ/Lbz1u++p0E4/le4jXKGf68vRmv0Zvlt5+3l8XHx8P2DXUoFiwyP/g/ffpUq/3JkydZQkFu+uhyXgAYPXo0hgwZonmsVqsRExMDBwcHqFSqXL67/CkuLg6enp6IioqCjY2N0uUYJF6jnOF1ejNeozfjNcoZXqc34zV6M16jNzPWayQiiI+Ph5ub2xuPVSxYFCtWDNbW1rhy5QoCAwM17VeuXEG5cuV07qPLeQHA0tISlpaWWm12dnZ6vcf8ysbGxqh+YHTBa5QzvE5vxmv0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YSEbN27M9vjk5GSjDBWrVq0SR0dHmTx5skyYMEEKFSqU7XLpmbLbD+V9Fx4eLu7u7prNFOPj48XLy0vMzMw0dwkp/2CwMBCnTp0y6p2Q161bJw4ODln2Dnj48KGYm5szXNAb/frrrxIUFJRln47ff/9dVCqV1i62xuqvv/6SiRMnyieffKLVfuvWLXFxcZGePXsqVpshqVevnjg4OMgXX3yR5bnRo0eLq6urUQ4Ny5SRkSHdunWTgIAAzZySpUuXioODg5iZmb0yXBibVatWiYeHh1y5ckVERP755x8pWrSoWFtbS58+fYz6e+hFtWrV0kxaT0xMlLp168oXX3whw4YNY7jIhxgsyCA8ePBArKys5IcffsjyXPHixaVjx46yZ88eRWojw/fw4UNxdnYWlUql+avXi7p27SoBAQGK1GZImjdvLiqVSj7++OMsz61bt04sLCw0m3QZs7Nnz4qDg4O4urpm2ScnPDxcABj1srJ37tyR7t27a0LFqlWrxNPTU27cuCG9e/cWU1NThgsR6dWrl1y9elXk+feNi4uLbN26VbZs2SIAjD5cREVFiVqt1lrw4JNPPpGgoCBRq9WSmpoqNjY2DBf5DIPFWxAfHy+nTp2Shw8f5qqfMY71ftGCBQvExMREZs6cqfllu2fPHilRooRR//KlnLl48aI4OztL2bJls2wm9dNPP0nFihUVq81QJCQkSP369cXCwiLLDrX//fefADCqJa5fJzNcBAYGav1u3rVrl9jb2xvlsB61Wi0///yz1hDCq1evio2NjWaH9osXL4qJiYmYmZnJ33//rWC1ytm6davWimHp6elSvnx5mTNnjqbNw8NDTExMZPz48QpVqayoqCjx8PDQGokQHh4ulpaWWhP8S5YsKb169eIfFvMRBos89vvvv4uNjY0AEFNTU+natWuOdoY+cuSIlChRwih313zRnDlzxMLCQry8vKRu3bpiY2MjISEhSpdF+URmuGjcuLE8fvxY5PmwjRYtWhjt6k8vywwX7u7uWpNt58yZI2XLllW0NkOTGS7KlSsnS5YskYULF4qbm1u2E3CNwbhx46RJkyZad7W+++47adOmjebx6dOnpUyZMrJjxw6jXJDkyJEj4uHhobXvy9GjR6VQoUKa65GRkSEuLi6yceNGo9zbQ61WS48ePWTatGla7aGhoWJmZiY3b94UEZF9+/aJl5eXUX4f5WcMFnnoxo0b4uTkJAcOHJCkpCTZsmWLODs7S7Vq1V47IevIkSPi7OwsBw4ceKf1GqrIyEiZO3euzJw5U/MLhiinMsOFvb29fPLJJ1KlShX54IMPjHJS5KtkhgszMzNp0aKFNG/eXLy8vLhXRTYyw4Wpqal8/vnnEhYWpnRJ71xGRoZcvXpVnJycstyJnzt3rjg7O8uNGzckJiZG6tevL9OnT1esViVFRETIRx99JFu3btVqv3LliqhUKtm0aZOkp6fLyJEjsywMYCyuX78uvr6+4u7uLv/++6/WcxkZGdKgQQNxcXGR1q1bS5EiRTSb4lH+wWCRR37//XcZPHiwDB48WKv9xo0bUqRIkSztmRgqiPJeZrhwdnbW2pOB/r/McGFiYiJz5841+qGYr5MZLtq1a5dlgQljMH/+fLGxsZFixYpleS4pKUkCAgJEpVKJubm59O3b1yiHrl65ckXMzMzE2tpaLl++nOX5iRMnikqlEktLS6lRo4bWUClj8e+//0p8fLw0b95cAMgvv/yS5ZiUlBSZN2+efPPNN5r5KZS/MFjkAbVaLXXr1hUA0rt37yzPL1q0SOzs7LL8smWoIHp7MsNFixYtjHIX+5zIDBfFihXL8tdD0mZM4eLFYYQLFiyQxMREadOmjQCQ3bt3ZzlerVbLiRMnjGon5MxrJCKyefNmiYyMlHnz5gkA+eqrr7Ltc/36dQkLCzOa+TkPHz6UgIAAuXbtmly6dEnc3Nzk8OHDkpycLM2bNxc7Ozuj3CPnfcdgkUdiY2PFz89PChUqlOUH5fTp06JSqbQ+3Pz9998MFURvGcPFmzFc5FxmuFiwYIHSpbw1GzZsEDc3NwkPD9csKZuUlCSpqanSpk0bKVKkiGaitrG6c+eO2NnZybp162Tt2rXi7u6uCVXz5s0TlUolS5cuVbpMxWUGCDc3N3Fzc5MNGzZkec7FxYXh4j3DYJGHMsNFsWLF5OzZs5r2oUOHZhlPefnyZaPdqZXoXbp48aL4+vrK9evXlS7FYCUkJEijRo20/uGn7P3777/v9caKmR/4LCwspEGDBlpLgWaGCwcHB6MPFz/++KOYmpqKs7Nzljs18+bNExMTE1m2bJli9RmKM2fOiImJiTg5OWlNaBeGi/eWSkQElGthYWGYPXs2Hj9+jObNm2PQoEEwNzdHXFwcAgMDceLECTRq1AgJCQlITk7Gzp074e7urnTZREZJRKBSqZQuw6DxGlGmIUOGYMWKFShUqBBCQkJQsmRJzXNpaWkICgrCkSNHcPDgQVSsWFHRWpWyf/9+dOzYEbGxsVi9ejU+/fRTrefnz5+Pr7/+Gj/99BN69eqlWJ1Ku3btGk6fPo21a9fin3/+yfL9lJKSgnbt2uHy5cu4evUqLCwsFK2X9MdgoYNt27ahb9++GDx4MMzNzTF9+nRUq1YNu3btAgBNuDh9+jRWrFiBTp06wdTUVOmyiYiI3ujmzZuwt7dH586ds/0wmBkuihYtisWLFytaq1KSk5Nx584dbN++HcOHD39luFi0aBH++ecfWFpaKlarIcgMEC9/P126dAleXl64cuUKqlevrnSZlAcYLHIpMTERJUqUwB9//IEaNWrgwoULaNasGebNm4ePP/5Yc1xmuLh//z5CQkLg6empaN1ERES58eKHwUOHDqFUqVJISUnBnDlzMHDgQFhaWvKPZgBmz56dJVz8/PPPCAgIgLOzM6ysrJQu0SBkfj+dPXsW27dvx9OnT9GlSxfs2rUL1apVU7o8yiNmSheQ35w4cQIeHh6vDBUhISFo2LAhbGxssGfPHgQGBqJhw4YMF0RElK9YWlpi69ataNeuHerVq4dp06ZhzZo1cHJyYqh4weDBg6FSqdCtWzdEREQgISEB27ZtQ2BgIEPFCzK/nz7//HPUrFkTjo6O2LRpE0PFe8ZE6QIM2bNnzzT/HRwcjCdPnqBgwYKIjo7GiRMnsoSKR48eYeDAgZo+meGiePHiuH79uiLvgYiISFeWlpbYtm0bPv30U4wbNw61a9fGunXrGCpe8vXXX2P16tVYt24dIiIicOTIEXh4eChdlsGxtLTEunXrcP36dURGRqJRo0ZKl0R5jEOhXuHGjRuoU6cONmzYgDt37mDkyJE4ePAgvL29UapUKfz3339Yv349goKCNH169+4Nd3d3jB8/XtHaiYiIiIjeNQ6FegVvb2988sknaNGiBezs7HDw4EGUKlUKALB69Wo0bdoUCxcuRJEiReDo6IiffvoJYWFhOHnypNKlExERERG9cxwK9RpNmjQBAMTGxuLu3buadn9/f4SEhCAxMREBAQGoUaMGnj59ipCQEI6nJCIiIiKjxKFQrxETE4NHjx5h0aJFWLZsGXbu3JllPOCTJ09QoEABBgoiIiIiMmq8Y5GNK1euYMSIEVi3bh1KlSqFOXPmoHfv3mjZsiUOHTqkOW7t2rUAwFBBREREREaPcyxeEhwcjH79+mH8+PFo2bKlpn3OnDlQqVRo0aIF5syZg//++w+bNm1Co0aNYG9vr2jNRERERERK41CoF8TFxcHLywv79u1DjRo1AAAigsjISLi7u8PCwgLTp0/HtGnTUKNGDaxcuRJFixZVumwiIiIiIsUxWLzg0KFD6NSpE+7evQsTExP88ccfGDJkCK5du4aSJUsiLCwMDg4OSpdJRERERGRwOMfiBZUrVwYAtGjRAvXr10f//v0xceJE3Lp1CyKCNWvWKF0iEREREZFB4hyLF9jb2+Pw4cNYsmQJSpcujR49eqBAgQKa51xdXZUukYiIiIjIIHEo1Buo1WqMHz8eu3fvRmhoKCwsLJQuiYiIiIjI4HAo1GvMnj0b1apVw6lTpxAcHMxQQURERET0Crxj8Rr//PMPrK2t4ePjo3QpREREREQGjcGCiIiIiIj0xqFQRERERESkNwYLIiIiIiLSG4MFERERERHpjcGCiIiIiIj0xmBBRERERER6Y7AgIiIiIiK9MVgQEREREZHeGCyIiIiIiEhvDBZERERERKQ3BgsiIiIiItIbgwUREREREemNwYKIiIiIiPT2/wAlgwFTHBZ4+AAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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RERERESUPxSbY2FsbIwrV67A2NhY3bZy5UqULVsWp06dQt26dbN83ddff42uXbtiwIAB6tcUL14cixcvxtixY99a/URERERE9P8UHQr1aqjAy16MrNozxMfH4/z582jcuLG6zdTUFEFBQTh8+HA+V0tERERE+u7y5cvo27ev0mUYJL1aFWrs2LEoXbo0qlevnuXxsLAwAICzs7NGu7OzMy5evJjtdZOTkzWGV8XFxeVZzURERESGStu9V7SRV/uzJCUl4eHDhzpdY8iQIdi5cycA4OzZs7C3twcAPH36FMOGDcNff/2FevXqYfr06TAzM8txe/Xq1REdHa3+enXr1tXYGXz69On44YcfcP36dRgbG2dbz+XLlxESEoI7d+6gfPnymDVrFlxcXDBw4EDs2bNHfb1t27ahfPny2daTV/RmVaixY8di37592LhxY7bfYHp6OgDAxEQzD5mamqp7O7Iybdo02Nraqh9ubm55XD0RERERvStCQkKwd+9ePHv2TOMzZr9+/WBhYYFly5bh1q1bmDZtWq7aN27ciL1792Lv3r2oWrUqateurf4aR48eRWxsLO7fv4+Mfayzq6dnz56oU6cONmzYAAcHB4wcORIA8PDhQ0yZMkX9NcqUKfPaevKKXgSLyZMnY+7cudi9ezeqVq2a7XlFihQBAERFRWm0P3nyBEWLFs32dSEhIYiNjVU/7t+/n4fVExEREdHb0LhxY6xcuRI1a9ZEixYtcPPmTQDA77//jvr166N+/fo4efKk+vzjx4+jXr16qF+/PpYuXaoeItW3b194eXllekyZMgUA4OTkBC8vr0zD8//3v/9h5syZqFKlCiZPnoxffvklV+0eHh7w8vJC8eLFcfLkSXTo0AEAEB0djYULF2LSpEkaXze7eoyMjFCnTh34+fmhevXqGscnTpyITp06Yf369eqb8tnVk1cUHwo1ZcoUTJs2Dbt27cL777//2nOdnJzg7u6O33//HS1btlS3nzhxAs2bN8/2debm5jA3N8/TuomIiIjo7bp79y5OnTqFxYsXY9++fejSpQuOHDmC9u3bY/r06fDz88PYsWNhamqKpKQkdOjQATNnzoSfnx8mTJigvs748eMxfPjwTNe3s7PL9mvHxMTA3NwchQsXBgCULFkSDx8+zHH7q9asWYOWLVvCysoKAPDFF19g1qxZmUbnZGfB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b9K5c2d07tz5tefMnz9f43ndunVRt27dPPn6RERERESUN3I1x4KIiIiIiOhVuQ4WoaGhmDhxIrp3765u2759u8Z+EUREREREZBhyFSyOHDmCihUr4sSJE1i9erW6/ffff8fChQvzsj4iIiIiIioAchUsRo8eje+//x779+/XaO/evTsWLVqUV7UREREREVEBkatgcenSJXTo0AEANJaaLVmyJO7cuZN31RERERERUYGQq2BhbW2NiIgI4D/B4vz583B2ds676oiIiIiIqEDIVbBo27YtRowYgfj4eHXb6dOn0bt3b7Rv3z4v6yMiIiIiogIgV8FixowZiI2NhaOjI9LT0+Hg4IAaNWrAzc0NX3/9dd5XSUREREREei1XG+QVLlwYBw4cwMmTJ/HHH38gPT0dlStXRp06dfK+QiIiIiIi0nu5ChYZAgMDERgYmHfVEBERERFRgZSrYLFy5cpsj5mbm6N06dKoVq0ajIy4sTcRERERkSHIVbAYP3487t27BwCws7ODSqXC06dPAQDFihVDREQE/Pz88Ouvv6J48eJ5WzEREREREemdXHUp9OvXD40aNcKtW7fw9OlTREdH49atWwgKCsLw4cPx6NEjuLi4YNiwYXlfMRERERER6Z1cBYtly5bhhx9+QOnSpdVtpUuXxo8//ohly5bByckJ33//PY4cOZKXtRIRERERkZ7KVbAICwvLcv6EsbExwsLCAADOzs5ISUnRvUIiIiIiItJ7uQoWtWrVQp8+ffDgwQN1W1hYGD777DPUrFkTAHDo0CHUr18/7yolIiIiIiK9leuhUA8ePIC7uztcXFxQokQJlCxZEo8ePcKyZcsAAA8ePMCcOXPyul4iIiIiItJDuVoVqnTp0jh//jyOHj2Ka9euQaVSwcfHB++//z5UKhXwcoI3EREREREZhlxvkKdSqVC3bl3UrVs3bysiIiIiIqIChzvYERERERGRzhgsiIiIiIhIZwwWRERERESkMwYLIiIiIiLSGYMFERERERHpTOtVoT788MNcfYGdO3fm6nVERERERFRwaB0s6tWrl7+VEBERERFRgaV1sBgxYkT+VkJERERERAUW51gQEREREZHOGCyIiIiIiEhnnLxNREREREQ64+RtIiIiIiLSGSdvExERERGRzjjHgoiIiIiIdMZgQUREREREOmOwICIiIiIinTFYEBERERGRzhgsiIiIiIhIZ1qvCrVhwwatL9qxY8fc1kNERERERAWQ1sFiwIABWl+UwYKIiIiIyLBoHSyePHmSv5UQEREREVGBxTkWRERERESkM617LLITExOD1NRUjbYiRYroelkiIiIiIipAchUsYmNjMWzYMGzatAnx8fGZjotIXtRGREREREQFRK6GQo0cORI3b97Ejh07AAAnT57EvHnz4OjoiOnTp+d1jUREREREpOdy1WOxa9cuHD58GGXKlAEAVK9eHTVq1IC3tzfGjBmDUaNG5XWdRERERESkx3LVYxEeHg4vLy8AgI2NDaKjowEAderUwZUrV/K2QiIiIiIi0nu5XhVKpVIBAHx8fLBlyxYAwL59+zhxm4iIiIjIAOUqWPj5+an/e8yYMRg4cCCcnZ3Rrl07DoMiIiIiIjJAuZpjcfnyZfV/t2zZEleuXMEff/wBHx8fVKxYMS/rIyIiIiKiAkDnfSwAwMvLSz3ngoiIiIiIDE+u51iEhoZi4sSJ6N69u7pt+/btSE5OzqvaiIiIiIiogMhVsDhy5AgqVqyIEydOYPXq1er233//HQsXLszx9SIiInDq1CnExcVp/Zrw8HD8+eefSEhIyPHXIyIiIiKivJWrYDF69Gh8//332L9/v0Z79+7dsWjRIq2vc+HCBXTs2BF+fn4IDAzE+fPn3/ia5ORkdOjQAZ6enmjXrh2cnJxy9DWJiIiIiCjv5SpYXLp0CR06dABeWXYWAEqWLIk7d+5ofZ0LFy7go48+wunTp7V+zaRJk3D8+HHcvHkToaGhWL16Nfr374+zZ8/m8LsgIiIiIqK8kqtgYW1tjYiICOA/weL8+fNwdnbW+jq9evVCp06dYGZmpvVrfvjhB/Tu3RsuLi4AgLZt26JcuXL48ccfc/Q9EBERERFR3slVsGjbti1GjBiB+Ph4ddvp06fRu3dvtG/fPi/r0xAeHo5Hjx6hWrVqGu0BAQG4cOFCvn1dIiIiIiJ6vVwFixkzZiA2NhaOjo5IT0+Hg4MDatSoATc3N3z99dd5X+VL0dHRAAAHBweNdkdHR0RFRWX7uuTkZMTFxWk8iIiIiIgo7+RqH4vChQvjwIEDOHnyJP744w+kp6ejcuXKqFOnTt5X+ApTU1PgZVB4VWJiovpYVqZNm4aJEyfma21ERERERIYsV8HC398fly5dQmBgIAIDA/O+qmy4ubnByMgI4eHhGu3h4eEoWbJktq8LCQnBsGHD1M/j4uLg5uaWr7USERERERmSXA2Fun//PmJjY/O+miz8888/uHjxIgDAysoKNWrUwP/+9z/18efPn+PAgQMICgrK9hrm5uawsbHReBARERERUd7JVbBo06YNli5dqvMXj4yMxKlTp9QTr69evYpTp04hLCxMfc7UqVPxySefqJ9PnjwZmzdvxldffYXdu3ejTZs2cHBwQHBwsM71EBERERFR7uRqKFRCQgK++OILbNy4EeXKlcu0XOzy5cu1us6ZM2cwadIk4OXKTqtXr8bq1avRu3dv9O7dGwDg6emJxMRE9Wvq16+P3377DfPnz8fRo0fh7++PH3/8kb0QREREREQKylWwMDIyUm+Ql5KSgpSUlFx98ebNm6N58+avPSckJCRT2/vvv4/3338/V1+TiIiIiIjyXq6CxYYNG/K+EiIiIiIiKrC0nmNx9epVrS+ak3OJiIiIiKjg0zpYNGrUCF27dsWJEycgIpmOp6en4/Dhw+jcuTMaNmyY13USEREREZEe03oo1LVr1zBlyhQ0a9YMJiYmqFy5MpycnCAiePToEc6dOwcA6NOnD65fv56fNRMRERERkZ7RusfCxsYGM2bMwIMHD7Bo0SKUK1cOz58/R1JSEsqXL49ly5bhwYMHmDFjBldoIiIiIiIyMDmevF2oUCG0b98e7du3z5+KiIiIiIiowMnVBnmvU7Vq1by+JBERERER6bk8DxYZcy2IiIiIiMhw5HmwICIiIiIiw8NgQUREREREOmOwICIiIiIineVoVajy5cvnXyVERERERFRg5ShYNGnSJE/OISIiIiKid0uOgsX06dNhYvL6l4SGhupaExERERERFTA5mmPRu3dviEi2x2/duoX69evnRV1ERERERFSA5ChY7Ny5EyNHjszy2O3bt1G/fn34+PjkVW1ERERERFRA5Ggo1O7duxEUFIQiRYpg9OjR6va7d++ifv368PT0xI4dO/KjTiIi0kcTbLU7z8M9vyshIiKF5ShYVK9eHVu2bEGLFi1QpEgR9O7dG/fu3UP9+vXh5uaGnTt3wsrKKv+qJSIiIiIivZSjYAEAjRo1wpo1a9C5c2ckJyfj22+/hbOzM3bv3g1ra+v8qZKIiIiIiPRajoMFALRr1w7R0dH4/PPPUb16dezduxeFCxfO++qIiIiIiKhA0GmDPDMzM0RERKBmzZoa7ZcvX86b6oiIiIiIqEDQaYM8boZHRERERETIabCYNWtW/lVCREREREQFVo72sSAiIiIiIsoKgwUREREREemMwYKIiIiIiHTGYEFERERERDpjsCAiIiIiIp0xWBARERERkc4YLIiIiIiISGcMFkREREREpDMGCyIiIiIi0hmDBRERERER6YzBgoiIiIiIdMZgQUREREREOmOwICIiIiIinTFYEBERERGRzhgsiIiIiIhIZwwWRERERESkMwYLIiIiIiLSGYMFERERERHpjMGCiIiIiIh0xmBBREREREQ6Y7AgIiIiIiKdMVgQEREREZHOGCyIiIiIiEhnDBZERERERKQzBgsiIiIiItIZgwUREREREemMwYKIiIiIiHTGYEFERERERDozUbqAFy9e4PDhw3j8+DH8/f3x3nvvvfb8EydO4Nq1axptDg4OaNOmTT5XSkRERERE2VE0WERFRSEoKAgJCQnw9/dH//790bVrV8yfPz/b16xZswb79u1DUFCQus3FxYXBgoiIiIhIQYoGi5CQELx48QJ//fUXrK2tcfbsWQQEBKB58+Zo2rRptq+rUqUKli9f/lZrJSIiIiKi7Ck2xyI9PR0bN25Er169YG1tDQCoVq0aatSogfXr17/2tZGRkVi3bh127dqFx48fv6WKiYiIiIgoO4oFi/v37yMuLg7lypXTaPfz88Ply5df+9pbt25h27ZtmDp1Kjw8PLBw4cLXnp+cnIy4uDiNBxERERER5R3FgkXGh3t7e3uNdgcHh9d+8O/evTtu376Nn3/+GSdOnMC8efMwaNAgnD9/PtvXTJs2Dba2tuqHm5tbHn4nRERERESkWLCwtLQEAMTHx2u0x8fHq49lJTAwEKampurnn332GRwcHLB///5sXxMSEoLY2Fj14/79+3nyPRARERER0b8Um7zt7u4OU1NT3LlzR6P99u3b8PLyytG1LC0tER0dne1xc3NzmJub57pWIiIiIiJ6PcV6LMzMzNC4cWNs2LABIgIAePjwIQ4dOoQWLVqozzt+/Di2bNkCAEhLS8vU23Dy5Encv38fgYGBb/k7ICIiIiKiDIouNztjxgzUrFkTbdu2RY0aNbBq1SpUqVIFXbt2VZ+zcuVKnDp1Cm3atIGIoGnTpqhZsyb8/Pxw7949LF26FO3bt8dHH32k5LdCRERERGTQFOuxAIBy5crh4sWLqFixIu7evYuBAwfi4MGDGnMo6tSpg7Zt2wIATExMcO7cOdSuXRt37tyBra0tduzYgQ0bNsDISNFvhYiIiIjIoCnaY4GXcy3GjRuX7fHu3btrPDc3N0e3bt3QrVu3t1AdERERERFpg7f5iYiIiIhIZwwWRERERESkMwYLIiIiIiLSGYMFERERERHpjMGCiIiIiIh0xmBBREREREQ6Y7AgIiIiIiKdMVgQEREREZHOGCyIiIiIiEhniu+8TUSklybYaneeh3t+V0JERFQgsMeCiIiIiIh0xmBBREREREQ6Y7AgIiIiIiKdMVgQEREREZHOGCyIiIiIiEhnDBZERERERKQzBgsiIiIiItIZgwUREREREemMwYKIiIiIiHTGYEFERERERDpjsCAiIiIiIp0xWBARERERkc4YLIiIiIiISGcmShdA9Db5r/LX6rxL3S/ley1ERERE7xL2WBARERERkc4YLIiIiIiISGcMFkREREREpDMGCyIiIiIi0hmDBRERERER6YzBgoiIiIiIdMZgQUREREREOmOwICIiIiIinTFYEBERERGRzhgsiIiIiIhIZwwWRERERESkMwYLIiIiIiLSGYMFERERERHpjMGCiIiIiIh0xmBBREREREQ6Y7AgIiIiIiKdMVgQEREREZHOGCyIiIiIiEhnDBZERERERKQzE6ULoLzhv8pfq/Mudb+U77VQwcd/T0RE9E6YYKvlebH5XYlBYLAgIiIi/cAPgUQFGodCERERERGRzthjQURElN+0vRPv4Z7fldC7gr07pIcYLPQd/xgRERERUQHAYEHvBgYwIiIiIkUxWBAZGm1CGAMYERER5RAnbxMRERERkc4U77F4/Pgx1q1bh8ePH8Pf3x8dOnSAicnry8rNa4iIiOjdwL12tKfNe8X3ifKKop/GQ0NDUatWLVSqVAnVq1fH+PHjsWLFCuzbtw/GxsZ59hoiIiIiouwwrOYNRYPFqFGj4OPjgz179sDIyAifffYZvLy8sG7dOnTt2jXPXkM5t+Dzg1qd139xg3yvhYiIiIj0n2LB4sWLF9i9ezfmzp0LI6N/p3q4u7ujXr162LZtW5YhITevISJ6VanRu7Q6745FvpdCRETvKG1u0L6LN2cVCxb37t1DcnIyPD09Ndo9PT1x4sSJPHsN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DhxAQEAAmjZtimrVqmHVqlWK1kxEREREpK8MdigUXi4ba2dnh86dO+P27ds4fPgwSpYsqT4uIoiKioKdnR1MTDjPnYiIiIgoOwbZY3Hw4EH069cP9+7dQ/HixbFz5054eHigXr16uHv3LgAgLS0NS5cuhYODA0MFEREREdEbGFywmDRpEvr374/mzZsjMDAQeDksKiNc1K5dG1u3bkW7du2wdetWvHjxQumSiYiIiIj0nkENhTp16hTatGmDS5cuwdHREXi52tP9+/fh4eGBpKQkDBw4EJs2bcInn3yCefPmwczMTOmyiYiIiIj0nkH1WBw6dAhVqlSBo6Mj0tLSMH/+fBQvXhyenp5o2bIlLCwssHz5csTGxmLRokUMFUREREREWjKoHoszZ86gdu3aaN++Pf744w84ODjgm2++gYWFBWrWrIkjR46gRo0aSpdJRERERFTgGFSwAIDffvsN27dvR7169dC6dWuoVCokJCTA2dkZly5dgoeHh9IlEhEREREVOAYXLP4rPj4e3bp1Q7FixbBkyRKlyyEiIiIiKpAMao7Fq549e4YvvvgC/v7+cHNzw/fff690SUREREREBZZB91gcPXoUvr6+KFq0qNKlEBEREREVaAYdLIiIiIiIKG8Y7FAoIiIiIiLKOwwWRERERESkMwYLIiIiIiLSGYMFERERERHpjMGCiIiIiIh0xmBBREREREQ6Y7AgIiIiIiKdMVgQEREREZHOGCyIiIiIiEhnDBZERERERKQzBgsiIiIiItIZgwUREREREens/wD960103P/u0wAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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YsUKXLhwASkpKZg9ezbu37+P3r17a48ZMmQI6tatCwB4+fIlBgwYgPv37wMAEhMTMW/ePFy4cAFt27bNVL9ERERERJR9FFu8DQCDBw9GWFgYateuDY1Gg4IFC2Lz5s0oWbKk9pjIyEjttCZra2uULVsW9evXR1hYGBISElCqVCls3rwZjRs3zlS/RERERESUfRTdxyJVcnIyoqOjkT9/fp3byeLV3ZmSkpLg6Oio0x4TEwNra2uYm5tnqd934T4WRES6uI8FEZHpycx7YkVHLFKp1Wo4ODik+Vh6L8DW1tagfomIiIiIKPsousaCiIiIiIg+DAwWRERERERkMAYLIiIiIiIyGIMFEREREREZjMGCiIiIiIgMxmBBREREREQGY7AgIiIiIiKDMVgQEREREZHBGCyIiIiIiMhgDBZERERERGQwBgsiIiIiIjIYgwURERERERmMwYKIiIiIiAzGYEFERERERAZjsCAiIiIiIoMxWBARERERkcEYLIiIiIiIyGAMFkREREREZDAGCyIiIiIiMhiDBRERERERGYzBgoiIiIiIDMZgQUREREREBmOwICIiIiIigzFYEBERERGRwRgsiIiIiIjIYAwWRERERERkMAYLIiIiIiIyGIMFEREREREZTK10Af/++y+WLVuGsLAw+Pr6YsCAAbCzs0v3+Pj4eAQGBuLUqVNQq9WoWbMmvvzyS5ibm2uPWbJkCfbt26dznre3N+bOnfteXwsRERERkalSdMTi/PnzqFy5MmJjY+Hv748dO3agZs2aiI+PT/N4jUaDjz/+GGfOnEGNGjXg6+uL0aNHo2XLlhAR7XGXLl1CeHg4unXrpv1q0aJFDr4yIiIiIiLTouiIxciRI9GgQQOsWLECANCqVSt4enri559/xv/+9z+941UqFU6dOgVXV1dtW6VKleDn56cNKanc3d3RsmXLHHolRERERESmTbERi/j4eBw5cgStW7fWtjk4OKBBgwbYu3dvmueoVCqdUAEAHh4eAIDIyEid9n/++Qdffvkl+vbti/Xr1+uMaBARERERUfZSLFiEhoYiJSUFXl5eOu1eXl64c+dOhvsJCAiAg4MDqlSpom1Tq9WoVasWGjdujEKFCuG7775DixYt3houEhISEBUVpfNFREREREQZo9hUqISEBABA3rx5ddptbW3TXWPxpl9//RUBAQHYtGmT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YYPBT+zl5QUzMzM8ePBAp/3BgwcoVKiQwf2/ztzcHI6OjnrP9TorKytYWVll6/MSEREREZmKDI9YXL16NcOdZuTYvHnzonr16jqjCLGxsTh48CD8/f21bbdv387UmgsRQVxcnE7brVu3cPfuXZQpUybD/RARERERUcZleMTC398f9evXxzfffIPq1atDpVLpPK7RaHDs2DEsX74cR44cwcOHD9/Z5+TJk+Hv74+RI0fCz88P8+fPh7OzM3r37q09ZurUqThz5gyuXLkCAAgPD8fNmzfx5MkTAMDly5ehVqtRqFAhFCpUCElJSahYsSJ69uyJ0qVL4969e/jpp59QoUIFdOzYMTPXhoiIiIiIMijDweLatWv48ccf0aRJE6jValSoUAEuLi4QETx+/BgXLlwAAPTp0wfXr1/PUJ916tTBkSNHsHDhQpw7dw6+vr5Yu3YtbG1ttccUK1YMiYmJ2u8vXLiAH3/8EQBQo0YNbNy4ERs3bsTXX3+Nr7/+GpaWljh06BDmz5+PgIAAODg44Pvvv0fPnj3feYtaIiIiIiLKGpWISGZOiImJwZ49e3Dy5EmEhoZCpVLB09MTNWvWRJMmTWBjY/P+qs1BUVFRsLe3R2RkJOzs7JQuh4hIcT4jduf4c4ZMbZrjz0lERP8nM++JM71429bWFu3atUO7du0MqZGIiIiIiD4gWbrd7NtUqlQpu7skIiIiIiIjl+3BInWtBRERERERmY5sDxZERERERGR6GCyIiIiIiMhgDBZERERERGSwTN0VijtXExERERFRWjIVLBo3bpwtxxARERER0YclU8Fi6tSpUKvffsqtW7cMrYmIiIiIiHKZTK2x6NmzJ962UXdwcDDq1auXHXUREREREVEukqlgsWvXLgwbNizNx+7cuYN69eqhZMmS2VUbERERERHlEpmaCrVnzx40aNAATk5OGDFihLb97t27qFevHooUKYIdO3a8jzqJiIiIiMiIZSpYVKlSBVu3bsXnn38OJycn9OzZE/fu3UO9evXg5eWFXbt2IW/evO+vWiIiIiIiMkqZChYA4O/vj7Vr16JTp05ISEjA7Nmz4erqij179sDGxub9VElEREREREYt08ECANq2bYtnz57hm2++QZUqVbBv3z7ky5cv+6sjIiIiIqJcwaAN8iwtLREeHo7q1avrtF+5ciV7qiMiIiIiolzB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dWsBIP369cvUuS9fvpRZs2Z98NN8hOEiQxguMi4r4SIsLEyWLFnyXusyNQwWRm7//v1SsGBBGTVqlDRq1Eisra1lx44dIq/myU+aNEnc3NzE3NxcGjdurN1r4Ouvv5YePXooXP37lZKSIl26dJH8+fOLp6enrFmzRufxOXPmyMcff6xdTLt582apXLmyXj+m9ib65MmTAkDOnTun95iDg4O4u7vLihUrFKlNScnJyeLr6ysAZP/+/Zk6d926dTJ48OD3VpsxGTRokACQQYMGZeq8GzduSIMGDUxmDUHTpk3F19dXHB0d5e+//87QOS9fvhR/f3/p2rWrSQQLyWK4mDRpksyfP/+91mVMshIugoKCpF27du+9NmOTmXARFhbGEcX3gMHCiMXHx0v58uXl5MmT2rZx48aJpaWlNlykev1ONDt37hQHBwftDpIfkt9//11nY61r166JpaWl5MuXT86fP69zbHBwsNja2krz5s1l+PDh4ujoKGfOnFGgauPTpEkTKVSokM7PSOodoZ48eaJobUqJjIyUFi1aSLt27aRAgQLaaVHvsm7dOvHw8NDeRetD17dvXxk2bJiYm5vL4sWLM3RO6ojim+H/QxYZGSnJycnSrl27DIULUwwVqTITLiZNmiQff/yxyd1CPTPhIigoSJydnSUoKCjH6jMmGQkXDBXvD4OFkdq7d68UKVJEXFxc9B4bP358muHi8uXLUrNmTSlbtmym927ILbZs2SIWFhYyduxYERF58OCBbNy4UTty8Wa4uHjxorRu3Vratm2r3VHalCQkJMikSZOkSpUq0rhxY9m7d6+IiDx//lyqVasm9vb28v3338ucOXOkSJEiEhAQoHTJikhMTJTg4GCRVyMXX375pV640Gg0encQMbVQcevWLe2b3pUrV6YZLt4cATSlUBEdHS2DBw+WsmXLaqeJvR4uLl26JPLqQ4+vv/5a+4GQqYWKhIQEefr0qU5bRsKFKYUKjUYjT5480fl5yEi4MKVQce/ePfn666+lQoUK0rVrV/nvv/+0j70tXDBUvF8MFkYqOjpaatSoke6UldRwsW/fPp32Fy9e5GCVyngzXMgb06JeDxf//POPxMbGKlSpspKTk6Vx48bSqFEjCQwMlIEDB4qZmZmsW7dO5NU/7rNmzZIaNWpI9erVTXafiuXLl4ubm5t07dpV+2bn9XBx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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" } ], "source": [ @@ -115,14 +81,14 @@ "id": "22c67dc4", "metadata": {}, "source": [ - "## Detailed marginals, correlation & constraints (Tiers 1\u20133, in-memory sample)\n", + "## Detailed marginals, correlation & constraints (Tiers 1–3, in-memory sample)\n", "\n", "The richer per-row diagnostics below (overlaid histograms, correlation matrices, pairwise scatter, direction alignment, constraint violations) need `real_raw`/`gen_raw` materialized as numpy arrays, so they run on a `SampleCollection` built from a 50% row sample rather than the lazy, full-file path used above." ] }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "id": "6f0903ac", "metadata": {}, "outputs": [], @@ -136,7 +102,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "id": "6d292c9c", "metadata": {}, "outputs": [ @@ -152,7 +118,7 @@ } ], "source": [ - "# sample_frac=0.5 keeps this a manageable in-memory size \u2014 fine for these\n", + "# sample_frac=0.5 keeps this a manageable in-memory size — fine for these\n", "# per-row diagnostics, unlike the event-level checks further down, which\n", "# need every row of an event present to sum correctly.\n", "samples = load_predicted_local(FILE, sample_frac=0.5)\n", @@ -161,7 +127,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "id": "79e066b1", "metadata": {}, "outputs": [ @@ -182,7 +148,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "id": "d5a0bdb6", "metadata": {}, "outputs": [ @@ -211,7 +177,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "id": "8cdb9c2a", "metadata": {}, "outputs": [ @@ -228,7 +194,7 @@ ], "source": [ "# Real vs. generated Pearson correlation matrices (+ their difference) over\n", - "# the 9 raw target dims \u2014 catches a model that decorrelates targets that are\n", + "# the 9 raw target dims — catches a model that decorrelates targets that are\n", "# physically coupled even when every individual marginal looks clean.\n", "_ = plot_correlation_matrices(samples)" ] @@ -238,9 +204,46 @@ "execution_count": null, "id": "e88c8bd9", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Error in callback (for post_execute), with arguments args (),kwargs {}:\n" + ] + }, + { + "ename": "KeyboardInterrupt", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[31m---------------------------------------------------------------------------\u001b[39m", + "\u001b[31mKeyboardInterrupt\u001b[39m Traceback (most recent call last)", + "\u001b[36mFile \u001b[39m\u001b[32m~/Programming/giant/.venv/lib/python3.12/site-packages/matplotlib_inline/backend_inline.py:126\u001b[39m, in \u001b[36mflush_figures\u001b[39m\u001b[34m()\u001b[39m\n\u001b[32m 123\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m InlineBackend.instance().close_figures:\n\u001b[32m 124\u001b[39m \u001b[38;5;66;03m# ignore the tracking, just draw and close all figures\u001b[39;00m\n\u001b[32m 125\u001b[39m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[32m--> \u001b[39m\u001b[32m126\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[30;43mshow\u001b[39;49m\u001b[30;43m(\u001b[39;49m\u001b[30;43;01mTrue\u001b[39;49;00m\u001b[30;43m)\u001b[39;49m\n\u001b[32m 127\u001b[39m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[32m 128\u001b[39m \u001b[38;5;66;03m# safely show traceback if in IPython, else raise\u001b[39;00m\n\u001b[32m 129\u001b[39m ip = get_ipython()\n", + "\u001b[36mFile \u001b[39m\u001b[32m~/Programming/giant/.venv/lib/python3.12/site-packages/matplotlib_inline/backend_inline.py:90\u001b[39m, in \u001b[36mshow\u001b[39m\u001b[34m(close, block)\u001b[39m\n\u001b[32m 88\u001b[39m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[32m 89\u001b[39m \u001b[38;5;28;01mfor\u001b[39;00m figure_manager \u001b[38;5;129;01min\u001b[39;00m Gcf.get_all_fig_managers():\n\u001b[32m---> \u001b[39m\u001b[32m90\u001b[39m \u001b[30;43mdisplay\u001b[39;49m\u001b[30;43m(\u001b[39;49m\n\u001b[32m 91\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mfigure_manager\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43mcanvas\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43mfigure\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 92\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mmetadata\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43m_fetch_figure_metadata\u001b[39;49m\u001b[30;43m(\u001b[39;49m\u001b[30;43mfigure_manager\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43mcanvas\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43mfigure\u001b[39;49m\u001b[30;43m)\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 93\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43m)\u001b[39;49m\n\u001b[32m 94\u001b[39m \u001b[38;5;28;01mfinally\u001b[39;00m:\n\u001b[32m 95\u001b[39m show._to_draw = []\n", + "\u001b[36mFile \u001b[39m\u001b[32m~/Programming/giant/.venv/lib/python3.12/site-packages/decorator/__init__.py:247\u001b[39m, in \u001b[36mdecorate..fun\u001b[39m\u001b[34m(*args, **kw)\u001b[39m\n\u001b[32m 245\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m kwsyntax:\n\u001b[32m 246\u001b[39m args, kw = fix(args, kw, sig)\n\u001b[32m--> \u001b[39m\u001b[32m247\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[30;43mcaller\u001b[39;49m\u001b[30;43m(\u001b[39;49m\u001b[30;43mfunc\u001b[39;49m\u001b[30;43m,\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43m*\u001b[39;49m\u001b[30;43m(\u001b[39;49m\u001b[30;43mextras\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43m+\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43margs\u001b[39;49m\u001b[30;43m)\u001b[39;49m\u001b[30;43m,\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43m*\u001b[39;49m\u001b[30;43m*\u001b[39;49m\u001b[30;43mkw\u001b[39;49m\u001b[30;43m)\u001b[39;49m\n", + "\u001b[36mFile \u001b[39m\u001b[32m~/Programming/giant/.venv/lib/python3.12/site-packages/matplotlib/backend_bases.py:2281\u001b[39m, in \u001b[36mFigureCanvasBase.print_figure\u001b[39m\u001b[34m(self, filename, dpi, facecolor, edgecolor, orientation, format, bbox_inches, pad_inches, bbox_extra_artists, backend, **kwargs)\u001b[39m\n\u001b[32m 2277\u001b[39m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[32m 2278\u001b[39m \u001b[38;5;66;03m# _get_renderer may change the figure dpi (as vector formats\u001b[39;00m\n\u001b[32m 2279\u001b[39m \u001b[38;5;66;03m# force the figure dpi to 72), so we need to set it again here.\u001b[39;00m\n\u001b[32m 2280\u001b[39m \u001b[38;5;28;01mwith\u001b[39;00m cbook._setattr_cm(\u001b[38;5;28mself\u001b[39m.figure, dpi=dpi):\n\u001b[32m-> \u001b[39m\u001b[32m2281\u001b[39m result = \u001b[30;43mprint_method\u001b[39;49m\u001b[30;43m(\u001b[39;49m\n\u001b[32m 2282\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mfilename\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 2283\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mfacecolor\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43mfacecolor\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 2284\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43medgecolor\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43medgecolor\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 2285\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43morientation\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43morientation\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 2286\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mbbox_inches_restore\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43m_bbox_inches_restore\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 2287\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43m*\u001b[39;49m\u001b[30;43m*\u001b[39;49m\u001b[30;43mkwargs\u001b[39;49m\u001b[30;43m)\u001b[39;49m\n\u001b[32m 2288\u001b[39m \u001b[38;5;28;01mfinally\u001b[39;00m:\n\u001b[32m 2289\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m bbox_inches \u001b[38;5;129;01mand\u001b[39;00m restore_bbox:\n", + "\u001b[36mFile \u001b[39m\u001b[32m~/Programming/giant/.venv/lib/python3.12/site-packages/matplotlib/backend_bases.py:2138\u001b[39m, in \u001b[36mFigureCanvasBase._switch_canvas_and_return_print_method..\u001b[39m\u001b[34m(*args, **kwargs)\u001b[39m\n\u001b[32m 2134\u001b[39m optional_kws = { \u001b[38;5;66;03m# Passed by print_figure for other renderers.\u001b[39;00m\n\u001b[32m 2135\u001b[39m \u001b[33m\"\u001b[39m\u001b[33mdpi\u001b[39m\u001b[33m\"\u001b[39m, \u001b[33m\"\u001b[39m\u001b[33mfacecolor\u001b[39m\u001b[33m\"\u001b[39m, \u001b[33m\"\u001b[39m\u001b[33medgecolor\u001b[39m\u001b[33m\"\u001b[39m, \u001b[33m\"\u001b[39m\u001b[33morientation\u001b[39m\u001b[33m\"\u001b[39m,\n\u001b[32m 2136\u001b[39m \u001b[33m\"\u001b[39m\u001b[33mbbox_inches_restore\u001b[39m\u001b[33m\"\u001b[39m}\n\u001b[32m 2137\u001b[39m skip = optional_kws - {*inspect.signature(meth).parameters}\n\u001b[32m-> \u001b[39m\u001b[32m2138\u001b[39m print_method = functools.wraps(meth)(\u001b[38;5;28;01mlambda\u001b[39;00m *args, **kwargs: \u001b[30;43mmeth\u001b[39;49m\u001b[30;43m(\u001b[39;49m\n\u001b[32m 2139\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43m*\u001b[39;49m\u001b[30;43margs\u001b[39;49m\u001b[30;43m,\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43m*\u001b[39;49m\u001b[30;43m*\u001b[39;49m\u001b[30;43m{\u001b[39;49m\u001b[30;43mk\u001b[39;49m\u001b[30;43m:\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43mv\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43;01mfor\u001b[39;49;00m\u001b[30;43m \u001b[39;49m\u001b[30;43mk\u001b[39;49m\u001b[30;43m,\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43mv\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43;01min\u001b[39;49;00m\u001b[30;43m \u001b[39;49m\u001b[30;43mkwargs\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43mitems\u001b[39;49m\u001b[30;43m(\u001b[39;49m\u001b[30;43m)\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43;01mif\u001b[39;49;00m\u001b[30;43m \u001b[39;49m\u001b[30;43mk\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43;01mnot\u001b[39;49;00m\u001b[30;43m \u001b[39;49m\u001b[30;43;01min\u001b[39;49;00m\u001b[30;43m \u001b[39;49m\u001b[30;43mskip\u001b[39;49m\u001b[30;43m}\u001b[39;49m\u001b[30;43m)\u001b[39;49m)\n\u001b[32m 2140\u001b[39m \u001b[38;5;28;01melse\u001b[39;00m: \u001b[38;5;66;03m# Let third-parties do as they see fit.\u001b[39;00m\n\u001b[32m 2141\u001b[39m print_method = meth\n", + "\u001b[36mFile \u001b[39m\u001b[32m~/Programming/giant/.venv/lib/python3.12/site-packages/matplotlib/backends/backend_agg.py:537\u001b[39m, in \u001b[36mFigureCanvasAgg.print_png\u001b[39m\u001b[34m(self, filename_or_obj, metadata, pil_kwargs)\u001b[39m\n\u001b[32m 490\u001b[39m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34mprint_png\u001b[39m(\u001b[38;5;28mself\u001b[39m, filename_or_obj, *, metadata=\u001b[38;5;28;01mNone\u001b[39;00m, pil_kwargs=\u001b[38;5;28;01mNone\u001b[39;00m):\n\u001b[32m 491\u001b[39m \u001b[38;5;250m \u001b[39m\u001b[33;03m\"\"\"\u001b[39;00m\n\u001b[32m 492\u001b[39m \u001b[33;03m Write the figure to a PNG file.\u001b[39;00m\n\u001b[32m 493\u001b[39m \n\u001b[32m (...)\u001b[39m\u001b[32m 535\u001b[39m \u001b[33;03m *metadata*, including the default 'Software' key.\u001b[39;00m\n\u001b[32m 536\u001b[39m \u001b[33;03m \"\"\"\u001b[39;00m\n\u001b[32m--> \u001b[39m\u001b[32m537\u001b[39m \u001b[30;43mself\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43m_print_pil\u001b[39;49m\u001b[30;43m(\u001b[39;49m\u001b[30;43mfilename_or_obj\u001b[39;49m\u001b[30;43m,\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43m\"\u001b[39;49m\u001b[30;43mpng\u001b[39;49m\u001b[30;43m\"\u001b[39;49m\u001b[30;43m,\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43mpil_kwargs\u001b[39;49m\u001b[30;43m,\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43mmetadata\u001b[39;49m\u001b[30;43m)\u001b[39;49m\n", + "\u001b[36mFile \u001b[39m\u001b[32m~/Programming/giant/.venv/lib/python3.12/site-packages/matplotlib/backends/backend_agg.py:485\u001b[39m, in \u001b[36mFigureCanvasAgg._print_pil\u001b[39m\u001b[34m(self, filename_or_obj, fmt, pil_kwargs, metadata)\u001b[39m\n\u001b[32m 480\u001b[39m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34m_print_pil\u001b[39m(\u001b[38;5;28mself\u001b[39m, filename_or_obj, fmt, pil_kwargs, metadata=\u001b[38;5;28;01mNone\u001b[39;00m):\n\u001b[32m 481\u001b[39m \u001b[38;5;250m \u001b[39m\u001b[33;03m\"\"\"\u001b[39;00m\n\u001b[32m 482\u001b[39m \u001b[33;03m Draw the canvas, then save it using `.image.imsave` (to which\u001b[39;00m\n\u001b[32m 483\u001b[39m \u001b[33;03m *pil_kwargs* and *metadata* are forwarded).\u001b[39;00m\n\u001b[32m 484\u001b[39m \u001b[33;03m \"\"\"\u001b[39;00m\n\u001b[32m--> \u001b[39m\u001b[32m485\u001b[39m \u001b[30;43mFigureCanvasAgg\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43mdraw\u001b[39;49m\u001b[30;43m(\u001b[39;49m\u001b[30;43mself\u001b[39;49m\u001b[30;43m)\u001b[39;49m\n\u001b[32m 486\u001b[39m mpl.image.imsave(\n\u001b[32m 487\u001b[39m filename_or_obj, \u001b[38;5;28mself\u001b[39m.buffer_rgba(), \u001b[38;5;28mformat\u001b[39m=fmt, origin=\u001b[33m\"\u001b[39m\u001b[33mupper\u001b[39m\u001b[33m\"\u001b[39m,\n\u001b[32m 488\u001b[39m dpi=\u001b[38;5;28mself\u001b[39m.figure.dpi, metadata=metadata, pil_kwargs=pil_kwargs)\n", + "\u001b[36mFile \u001b[39m\u001b[32m~/Programming/giant/.venv/lib/python3.12/site-packages/matplotlib/backends/backend_agg.py:438\u001b[39m, in \u001b[36mFigureCanvasAgg.draw\u001b[39m\u001b[34m(self)\u001b[39m\n\u001b[32m 435\u001b[39m \u001b[38;5;66;03m# Acquire a lock on the shared font cache.\u001b[39;00m\n\u001b[32m 436\u001b[39m \u001b[38;5;28;01mwith\u001b[39;00m (\u001b[38;5;28mself\u001b[39m.toolbar._wait_cursor_for_draw_cm() \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m.toolbar\n\u001b[32m 437\u001b[39m \u001b[38;5;28;01melse\u001b[39;00m nullcontext()):\n\u001b[32m--> \u001b[39m\u001b[32m438\u001b[39m \u001b[30;43mself\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43mfigure\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43mdraw\u001b[39;49m\u001b[30;43m(\u001b[39;49m\u001b[30;43mself\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43mrenderer\u001b[39;49m\u001b[30;43m)\u001b[39;49m\n\u001b[32m 439\u001b[39m \u001b[38;5;66;03m# A GUI class may be need to update a window using this draw, so\u001b[39;00m\n\u001b[32m 440\u001b[39m \u001b[38;5;66;03m# don't forget to call the superclass.\u001b[39;00m\n\u001b[32m 441\u001b[39m \u001b[38;5;28msuper\u001b[39m().draw()\n", + "\u001b[36mFile \u001b[39m\u001b[32m~/Programming/giant/.venv/lib/python3.12/site-packages/matplotlib/artist.py:94\u001b[39m, in \u001b[36m_finalize_rasterization..draw_wrapper\u001b[39m\u001b[34m(artist, renderer, *args, **kwargs)\u001b[39m\n\u001b[32m 92\u001b[39m \u001b[38;5;129m@wraps\u001b[39m(draw)\n\u001b[32m 93\u001b[39m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34mdraw_wrapper\u001b[39m(artist, renderer, *args, **kwargs):\n\u001b[32m---> \u001b[39m\u001b[32m94\u001b[39m result = \u001b[30;43mdraw\u001b[39;49m\u001b[30;43m(\u001b[39;49m\u001b[30;43martist\u001b[39;49m\u001b[30;43m,\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43mrenderer\u001b[39;49m\u001b[30;43m,\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43m*\u001b[39;49m\u001b[30;43margs\u001b[39;49m\u001b[30;43m,\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43m*\u001b[39;49m\u001b[30;43m*\u001b[39;49m\u001b[30;43mkwargs\u001b[39;49m\u001b[30;43m)\u001b[39;49m\n\u001b[32m 95\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m renderer._rasterizing:\n\u001b[32m 96\u001b[39m renderer.stop_rasterizing()\n", + "\u001b[36mFile \u001b[39m\u001b[32m~/Programming/giant/.venv/lib/python3.12/site-packages/matplotlib/artist.py:71\u001b[39m, in \u001b[36mallow_rasterization..draw_wrapper\u001b[39m\u001b[34m(artist, renderer)\u001b[39m\n\u001b[32m 68\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m artist.get_agg_filter() \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[32m 69\u001b[39m renderer.start_filter()\n\u001b[32m---> \u001b[39m\u001b[32m71\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[30;43mdraw\u001b[39;49m\u001b[30;43m(\u001b[39;49m\u001b[30;43martist\u001b[39;49m\u001b[30;43m,\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43mrenderer\u001b[39;49m\u001b[30;43m)\u001b[39;49m\n\u001b[32m 72\u001b[39m \u001b[38;5;28;01mfinally\u001b[39;00m:\n\u001b[32m 73\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m artist.get_agg_filter() \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n", + "\u001b[36mFile \u001b[39m\u001b[32m~/Programming/giant/.venv/lib/python3.12/site-packages/matplotlib/figure.py:3282\u001b[39m, in \u001b[36mFigure.draw\u001b[39m\u001b[34m(self, renderer)\u001b[39m\n\u001b[32m 3279\u001b[39m \u001b[38;5;66;03m# ValueError can occur when resizing a window.\u001b[39;00m\n\u001b[32m 3281\u001b[39m \u001b[38;5;28mself\u001b[39m.patch.draw(renderer)\n\u001b[32m-> \u001b[39m\u001b[32m3282\u001b[39m \u001b[30;43mmimage\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43m_draw_list_compositing_images\u001b[39;49m\u001b[30;43m(\u001b[39;49m\n\u001b[32m 3283\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mrenderer\u001b[39;49m\u001b[30;43m,\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43mself\u001b[39;49m\u001b[30;43m,\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43martists\u001b[39;49m\u001b[30;43m,\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43mself\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43msuppressComposite\u001b[39;49m\u001b[30;43m)\u001b[39;49m\n\u001b[32m 3285\u001b[39m renderer.close_group(\u001b[33m'\u001b[39m\u001b[33mfigure\u001b[39m\u001b[33m'\u001b[39m)\n\u001b[32m 3286\u001b[39m \u001b[38;5;28;01mfinally\u001b[39;00m:\n", + "\u001b[36mFile \u001b[39m\u001b[32m~/Programming/giant/.venv/lib/python3.12/site-packages/matplotlib/image.py:133\u001b[39m, in \u001b[36m_draw_list_compositing_images\u001b[39m\u001b[34m(renderer, parent, artists, suppress_composite)\u001b[39m\n\u001b[32m 131\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m not_composite \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m has_images:\n\u001b[32m 132\u001b[39m \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m artists:\n\u001b[32m--> \u001b[39m\u001b[32m133\u001b[39m \u001b[30;43ma\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43mdraw\u001b[39;49m\u001b[30;43m(\u001b[39;49m\u001b[30;43mrenderer\u001b[39;49m\u001b[30;43m)\u001b[39;49m\n\u001b[32m 134\u001b[39m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[32m 135\u001b[39m \u001b[38;5;66;03m# Composite any adjacent images together\u001b[39;00m\n\u001b[32m 136\u001b[39m image_group = []\n", + "\u001b[36mFile \u001b[39m\u001b[32m~/Programming/giant/.venv/lib/python3.12/site-packages/matplotlib/artist.py:71\u001b[39m, in \u001b[36mallow_rasterization..draw_wrapper\u001b[39m\u001b[34m(artist, renderer)\u001b[39m\n\u001b[32m 68\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m artist.get_agg_filter() \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[32m 69\u001b[39m renderer.start_filter()\n\u001b[32m---> \u001b[39m\u001b[32m71\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[30;43mdraw\u001b[39;49m\u001b[30;43m(\u001b[39;49m\u001b[30;43martist\u001b[39;49m\u001b[30;43m,\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43mrenderer\u001b[39;49m\u001b[30;43m)\u001b[39;49m\n\u001b[32m 72\u001b[39m \u001b[38;5;28;01mfinally\u001b[39;00m:\n\u001b[32m 73\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m artist.get_agg_filter() \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n", + "\u001b[36mFile \u001b[39m\u001b[32m~/Programming/giant/.venv/lib/python3.12/site-packages/matplotlib/axes/_base.py:3350\u001b[39m, in \u001b[36m_AxesBase.draw\u001b[39m\u001b[34m(self, renderer)\u001b[39m\n\u001b[32m 3347\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m artists_rasterized:\n\u001b[32m 3348\u001b[39m _draw_rasterized(\u001b[38;5;28mself\u001b[39m.get_figure(root=\u001b[38;5;28;01mTrue\u001b[39;00m), artists_rasterized, renderer)\n\u001b[32m-> \u001b[39m\u001b[32m3350\u001b[39m \u001b[30;43mmimage\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43m_draw_list_compositing_images\u001b[39;49m\u001b[30;43m(\u001b[39;49m\n\u001b[32m 3351\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mrenderer\u001b[39;49m\u001b[30;43m,\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43mself\u001b[39;49m\u001b[30;43m,\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43martists\u001b[39;49m\u001b[30;43m,\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43mself\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43mget_figure\u001b[39;49m\u001b[30;43m(\u001b[39;49m\u001b[30;43mroot\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43;01mTrue\u001b[39;49;00m\u001b[30;43m)\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43msuppressComposite\u001b[39;49m\u001b[30;43m)\u001b[39;49m\n\u001b[32m 3353\u001b[39m renderer.close_group(\u001b[33m'\u001b[39m\u001b[33maxes\u001b[39m\u001b[33m'\u001b[39m)\n\u001b[32m 3354\u001b[39m \u001b[38;5;28mself\u001b[39m.stale = \u001b[38;5;28;01mFalse\u001b[39;00m\n", + "\u001b[36mFile \u001b[39m\u001b[32m~/Programming/giant/.venv/lib/python3.12/site-packages/matplotlib/image.py:133\u001b[39m, in \u001b[36m_draw_list_compositing_images\u001b[39m\u001b[34m(renderer, parent, artists, suppress_composite)\u001b[39m\n\u001b[32m 131\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m not_composite \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m has_images:\n\u001b[32m 132\u001b[39m \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m artists:\n\u001b[32m--> \u001b[39m\u001b[32m133\u001b[39m \u001b[30;43ma\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43mdraw\u001b[39;49m\u001b[30;43m(\u001b[39;49m\u001b[30;43mrenderer\u001b[39;49m\u001b[30;43m)\u001b[39;49m\n\u001b[32m 134\u001b[39m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[32m 135\u001b[39m \u001b[38;5;66;03m# Composite any adjacent images together\u001b[39;00m\n\u001b[32m 136\u001b[39m image_group = []\n", + "\u001b[36mFile \u001b[39m\u001b[32m~/Programming/giant/.venv/lib/python3.12/site-packages/matplotlib/artist.py:71\u001b[39m, in \u001b[36mallow_rasterization..draw_wrapper\u001b[39m\u001b[34m(artist, renderer)\u001b[39m\n\u001b[32m 68\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m artist.get_agg_filter() \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[32m 69\u001b[39m renderer.start_filter()\n\u001b[32m---> \u001b[39m\u001b[32m71\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[30;43mdraw\u001b[39;49m\u001b[30;43m(\u001b[39;49m\u001b[30;43martist\u001b[39;49m\u001b[30;43m,\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43mrenderer\u001b[39;49m\u001b[30;43m)\u001b[39;49m\n\u001b[32m 72\u001b[39m \u001b[38;5;28;01mfinally\u001b[39;00m:\n\u001b[32m 73\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m artist.get_agg_filter() \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n", + "\u001b[36mFile \u001b[39m\u001b[32m~/Programming/giant/.venv/lib/python3.12/site-packages/matplotlib/collections.py:1124\u001b[39m, in \u001b[36m_CollectionWithSizes.draw\u001b[39m\u001b[34m(self, renderer)\u001b[39m\n\u001b[32m 1121\u001b[39m \u001b[38;5;129m@artist\u001b[39m.allow_rasterization\n\u001b[32m 1122\u001b[39m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34mdraw\u001b[39m(\u001b[38;5;28mself\u001b[39m, renderer):\n\u001b[32m 1123\u001b[39m \u001b[38;5;28mself\u001b[39m.set_sizes(\u001b[38;5;28mself\u001b[39m._sizes, \u001b[38;5;28mself\u001b[39m.get_figure(root=\u001b[38;5;28;01mTrue\u001b[39;00m).dpi)\n\u001b[32m-> \u001b[39m\u001b[32m1124\u001b[39m \u001b[30;43msuper\u001b[39;49m\u001b[30;43m(\u001b[39;49m\u001b[30;43m)\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43mdraw\u001b[39;49m\u001b[30;43m(\u001b[39;49m\u001b[30;43mrenderer\u001b[39;49m\u001b[30;43m)\u001b[39;49m\n", + "\u001b[36mFile \u001b[39m\u001b[32m~/Programming/giant/.venv/lib/python3.12/site-packages/matplotlib/artist.py:71\u001b[39m, in \u001b[36mallow_rasterization..draw_wrapper\u001b[39m\u001b[34m(artist, renderer)\u001b[39m\n\u001b[32m 68\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m artist.get_agg_filter() \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[32m 69\u001b[39m renderer.start_filter()\n\u001b[32m---> \u001b[39m\u001b[32m71\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[30;43mdraw\u001b[39;49m\u001b[30;43m(\u001b[39;49m\u001b[30;43martist\u001b[39;49m\u001b[30;43m,\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43mrenderer\u001b[39;49m\u001b[30;43m)\u001b[39;49m\n\u001b[32m 72\u001b[39m \u001b[38;5;28;01mfinally\u001b[39;00m:\n\u001b[32m 73\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m artist.get_agg_filter() \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n", + "\u001b[36mFile \u001b[39m\u001b[32m~/Programming/giant/.venv/lib/python3.12/site-packages/matplotlib/collections.py:422\u001b[39m, in \u001b[36mCollection.draw\u001b[39m\u001b[34m(self, renderer)\u001b[39m\n\u001b[32m 420\u001b[39m gc.set_antialiased(\u001b[38;5;28mself\u001b[39m._antialiaseds[\u001b[32m0\u001b[39m])\n\u001b[32m 421\u001b[39m gc.set_url(\u001b[38;5;28mself\u001b[39m._urls[\u001b[32m0\u001b[39m])\n\u001b[32m--> \u001b[39m\u001b[32m422\u001b[39m \u001b[30;43mrenderer\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43mdraw_markers\u001b[39;49m\u001b[30;43m(\u001b[39;49m\n\u001b[32m 423\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mgc\u001b[39;49m\u001b[30;43m,\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43mpaths\u001b[39;49m\u001b[30;43m[\u001b[39;49m\u001b[30;43m0\u001b[39;49m\u001b[30;43m]\u001b[39;49m\u001b[30;43m,\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43mcombined_transform\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43mfrozen\u001b[39;49m\u001b[30;43m(\u001b[39;49m\u001b[30;43m)\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 424\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mmpath\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43mPath\u001b[39;49m\u001b[30;43m(\u001b[39;49m\u001b[30;43moffsets\u001b[39;49m\u001b[30;43m)\u001b[39;49m\u001b[30;43m,\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43moffset_trf\u001b[39;49m\u001b[30;43m,\u001b[39;49m\u001b[30;43m \u001b[39;49m\u001b[30;43mtuple\u001b[39;49m\u001b[30;43m(\u001b[39;49m\u001b[30;43mfacecolors\u001b[39;49m\u001b[30;43m[\u001b[39;49m\u001b[30;43m0\u001b[39;49m\u001b[30;43m]\u001b[39;49m\u001b[30;43m)\u001b[39;49m\u001b[30;43m)\u001b[39;49m\n\u001b[32m 425\u001b[39m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[32m 426\u001b[39m \u001b[38;5;66;03m# The current new API of draw_path_collection() is provisional\u001b[39;00m\n\u001b[32m 427\u001b[39m \u001b[38;5;66;03m# and will be changed in a future PR.\u001b[39;00m\n\u001b[32m (...)\u001b[39m\u001b[32m 431\u001b[39m \u001b[38;5;66;03m# introspectable, e.g. with inspect.signature, the only way is to try and\u001b[39;00m\n\u001b[32m 432\u001b[39m \u001b[38;5;66;03m# call this with the hatchcolors parameter.\u001b[39;00m\n\u001b[32m 433\u001b[39m hatchcolors_arg_supported = \u001b[38;5;28;01mTrue\u001b[39;00m\n", + "\u001b[31mKeyboardInterrupt\u001b[39m: " + ] + } + ], "source": [ - "# Scatter for physically-coupled pairs (step_length/delta_e/edep) \u2014 the\n", + "# Scatter for physically-coupled pairs (step_length/delta_e/edep) — the\n", "# joint-structure check correlation matrices alone can't fully capture.\n", "_ = plot_pairwise(samples, n_sample=len(samples.gen_raw))" ] @@ -263,7 +266,7 @@ } ], "source": [ - "# cos(angle) between post_dir and travel_dir \u2014 coupled through the\n", + "# cos(angle) between post_dir and travel_dir — coupled through the\n", "# scattering physics, so this is another joint-structure check.\n", "_ = plot_direction_alignment(samples)" ] @@ -294,7 +297,7 @@ } ], "source": [ - "# Unit-norm direction vectors, non-negative step_length/delta_e/edep \u2014 the\n", + "# Unit-norm direction vectors, non-negative step_length/delta_e/edep — the\n", "# unconstrained MLP has nothing enforcing these, so any violation here is a\n", "# pure generation artifact rather than a real-data property.\n", "_ = plot_constraint_violations(samples)" @@ -307,11 +310,11 @@ "source": [ "## Tier 4: event-level (shower) observables\n", "\n", - "Everything above is a **step-level** check: one row in, one row out, compared in the local frame (`pre_dir = \u1e91`). This section aggregates those same rows **per `event_id`**, reconstructed into world-frame physical units (mm, MeV), to check the shower-level quantities that actually matter physically: total deposited energy, longitudinal/transverse shower profiles, and shower-max depth (see `diffusion-model-tutorial.md` \u00a77.2).\n", + "Everything above is a **step-level** check: one row in, one row out, compared in the local frame (`pre_dir = ẑ`). This section aggregates those same rows **per `event_id`**, reconstructed into world-frame physical units (mm, MeV), to check the shower-level quantities that actually matter physically: total deposited energy, longitudinal/transverse shower profiles, and shower-max depth (see `diffusion-model-tutorial.md` §7.2).\n", "\n", - "**Caveat:** this re-aggregates one-step-ahead generations \u2014 each row is generated conditioned on the *real* preceding state, then grouped by event \u2014 not a full autoregressive shower rollout. It won't surface covariate-shift failures that only appear under true rollout, only how well one-step generation reconstructs aggregate shower structure when fed real conditioning throughout.\n", + "**Caveat:** this re-aggregates one-step-ahead generations — each row is generated conditioned on the *real* preceding state, then grouped by event — not a full autoregressive shower rollout. It won't surface covariate-shift failures that only appear under true rollout, only how well one-step generation reconstructs aggregate shower structure when fed real conditioning throughout.\n", "\n", - "`compute_event_observables_pl` streams the full file directly (two polars passes, no `SampleCollection`) rather than reusing `samples` above \u2014 per-event sums would be silently corrupted by `sample_frac`-style row subsampling, since a partially-sampled event no longer sums to the true per-event total." + "`compute_event_observables_pl` streams the full file directly (two polars passes, no `SampleCollection`) rather than reusing `samples` above — per-event sums would be silently corrupted by `sample_frac`-style row subsampling, since a partially-sampled event no longer sums to the true per-event total." ] }, { @@ -326,7 +329,7 @@ "from giant.analysis import plot_longitudinal_profile\n", "from giant.analysis import plot_transverse_profile, plot_shower_max_depth\n", "\n", - "# Full file, not `samples` \u2014 see the markdown cell above for why.\n", + "# Full file, not `samples` — see the markdown cell above for why.\n", "obs = compute_event_observables_pl(FILE)" ] }, @@ -337,7 +340,7 @@ "source": [ "### Total deposited energy per event\n", "\n", - "`sum(edep)` grouped by `event_id`, real vs. generated, with the resolution (\u03c3/\u03bc) for each annotated in the legend." + "`sum(edep)` grouped by `event_id`, real vs. generated, with the resolution (σ/μ) for each annotated in the legend." ] }, { @@ -368,7 +371,7 @@ "source": [ "### Total length traveled per event\n", "\n", - "`sum(step_length)` grouped by `event_id` \u2014 total path length traveled by every track in the shower, real vs. generated (not the same as the depth of any single point, since tracks scatter)." + "`sum(step_length)` grouped by `event_id` — total path length traveled by every track in the shower, real vs. generated (not the same as the depth of any single point, since tracks scatter)." ] }, { @@ -388,7 +391,7 @@ "source": [ "### Longitudinal profile\n", "\n", - "Mean deposited energy per event, binned by depth along the shower axis (the `pre_dir` of each event's highest-`pre_E` row), with the event-to-event RMS as error bars \u2014 the classic `E_dep(depth)` profile." + "Mean deposited energy per event, binned by depth along the shower axis (the `pre_dir` of each event's highest-`pre_E` row), with the event-to-event RMS as error bars — the classic `E_dep(depth)` profile." ] }, { @@ -419,7 +422,7 @@ "source": [ "### Transverse profile\n", "\n", - "Same idea, binned by perpendicular distance from the shower axis instead of depth \u2014 a Moli\u00e8re-radius-style lateral containment check." + "Same idea, binned by perpendicular distance from the shower axis instead of depth — a Molière-radius-style lateral containment check." ] }, { @@ -450,7 +453,7 @@ "source": [ "### Shower-maximum depth\n", "\n", - "Per event, the depth bin where that event's longitudinal profile peaks \u2014 compares the real vs. generated distribution of shower-max depth across events, rather than the pooled profile above." + "Per event, the depth bin where that event's longitudinal profile peaks — compares the real vs. generated distribution of shower-max depth across events, rather than the pooled profile above." ] }, { @@ -481,7 +484,7 @@ "source": [ "## Particle-species (pdg) contribution shares\n", "\n", - "Dataset-wide (not per-event) breakdown of which pdg species contributed how much of the total deposited energy / total length traveled, real vs. generated. Pure lazy `group_by(\"pdg\")` over the whole file \u2014 no post_pos reconstruction needed since these are scalar sums." + "Dataset-wide (not per-event) breakdown of which pdg species contributed how much of the total deposited energy / total length traveled, real vs. generated. Pure lazy `group_by(\"pdg\")` over the whole file — no post_pos reconstruction needed since these are scalar sums." ] }, { @@ -504,7 +507,7 @@ "source": [ "### Energy share by particle type\n", "\n", - "Two pies side by side \u2014 real and generated \u2014 so the breakdown of which species deposits the energy can be compared directly. Small contributors are lumped into \"other\" (see `max_slices`)." + "Two pies side by side — real and generated — so the breakdown of which species deposits the energy can be compared directly. Small contributors are lumped into \"other\" (see `max_slices`)." ] }, {