{ "cells": [ { "cell_type": "markdown", "id": "intro", "metadata": {}, "source": [ "# Tutorial 1 — Analysis\n", "\n", "Companion notebook to [Tutorial Part 1](../tutorial.rst). It loads the three solved scenarios from `results/tutorial_01/` and produces three small comparison figures: total cropland, net GHG emissions by gas, and the objective-cost breakdown.\n", "\n", "Run the Part 1 workflow first:\n", "\n", "```bash\n", "tools/smk -j4 --configfile config/tutorial/01_ghg_prices.yaml\n", "```\n", "\n", "Then execute this notebook (`pixi run -e dev jupyter lab`, or from the command line with `pixi run -e dev jupyter execute docs/tutorials/tutorial_01_analysis.ipynb`)." ] }, { "cell_type": "markdown", "id": "693f5122", "metadata": {}, "source": "## A note on baseline numbers\n\nThe `baseline` scenario here is a *model baseline*, not an observation. Consumption is fixed to observed 2020 food-group totals, but production, trade, and land allocation are still being optimised subject to the LP's cost objective. The model therefore uses **less** agricultural land than the real world — our baseline total is ~1.6 Bha of cropland + grazed grassland, against roughly 4.8 Bha globally in reality.\n\nOne direct consequence: the baseline already has strongly **net-negative emissions** (around −3.7 GtCO₂eq/year in the output below) because the model implicitly spares land relative to the real-world footprint and then books the regrowth carbon sequestration. This is *not* a prediction that today's food system is net-negative; it is a starting point from which the scenarios in this tutorial measure *relative* change as the GHG price rises.\n\nMost serious studies avoid this by **coercing the model toward the observed production system**. The common mechanism is `validation.production_stability` (see `config/sensitivity.yaml` and `config/gsa.yaml`), which adds an L1 penalty per Mha / Mt of deviation from baseline production. That penalty pulls land use, livestock, and grassland back toward observed levels while still allowing the optimiser some flexibility. For strict validation without any flexibility, `config/validation.yaml` uses hard constraints (`use_actual_yields`, `use_actual_production`, `enforce_baseline_feed`, and so on). We deliberately omit both in this tutorial to keep the config short and focused on the GHG-price response." }, { "cell_type": "markdown", "id": "setup-md", "metadata": {}, "source": [ "## Setup" ] }, { "cell_type": "code", "execution_count": 1, "id": "setup", "metadata": { "execution": { "iopub.execute_input": "2026-04-17T22:58:04.672648Z", "iopub.status.busy": "2026-04-17T22:58:04.672374Z", "iopub.status.idle": "2026-04-17T22:58:05.108037Z", "shell.execute_reply": "2026-04-17T22:58:05.107407Z" } }, "outputs": [], "source": [ "from pathlib import Path\n", "\n", "import matplotlib.pyplot as plt\n", "import pandas as pd\n", "\n", "project_root = Path(\"..\", \"..\").resolve()\n", "results = project_root / \"results\" / \"tutorial_01\" / \"analysis\"\n", "scenarios = [\"baseline\", \"ghg_mid\", \"ghg_high\"]\n", "\n", "\n", "def load(filename: str) -> pd.DataFrame:\n", " \"\"\"Concatenate a per-scenario parquet file across the three scenarios.\"\"\"\n", " return pd.concat(\n", " pd.read_parquet(results / f\"scen-{s}\" / filename).assign(scenario=s)\n", " for s in scenarios\n", " )" ] }, { "cell_type": "markdown", "id": "cropland-md", "metadata": {}, "source": [ "## Total agricultural land use\n", "\n", "`land_use.parquet` aggregates the area (Mha) allocated to every crop and grazed grassland per scenario. Because every scenario uses `validation.enforce_baseline_diet: true`, consumption is identical across scenarios, so any change in total agricultural land reflects how the optimiser reorganises production in response to the GHG price." ] }, { "cell_type": "code", "execution_count": 2, "id": "cropland", "metadata": { "execution": { "iopub.execute_input": "2026-04-17T22:58:05.109920Z", "iopub.status.busy": "2026-04-17T22:58:05.109730Z", "iopub.status.idle": "2026-04-17T22:58:05.234432Z", "shell.execute_reply": "2026-04-17T22:58:05.233869Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "scenario\n", "baseline 1623.3\n", "ghg_mid 1078.4\n", "ghg_high 892.8\n", "Name: area_mha, dtype: float64\n" ] }, { "data": { "image/png": "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AwAAsAiCHQAAgEUQ7AAAACyCYAcAAGARBDsAAACLINgBAABYBMEOAADAIgh2AAAAFkGwAwAAsAiCHQAAgEUQ7AAAACyCYAcAAGARBDsAAACLINgBAABYBMEOAADAIgh2AAAAFkGwAwAAsIgsDXbr16+XZs2aSXh4uPj4+MjixYtTLNutWzdTZsKECS774+PjpVevXhIaGipBQUHSvHlzOX78uEuZCxcuSPv27SU4ONhs+vjixYsZ9r4AAAC8LthdvXpVHn/8cZk8efIdy2ng27p1qwmAifXt21cWLVokCxYskI0bN8qVK1ekadOmcuvWLUeZdu3aya5du2T58uVm08ca7gAAAKzELysv3qhRI7PdyV9//SU9e/aUH3/8UZo0aeJy7NKlSzJjxgyZM2eO1K1b1+ybO3euREREyKpVq6RBgwayb98+E+a2bNkiVatWNWWmT58u1atXl/3790vp0qUz8B0CAABkHo8eY3f79m3TsjZo0CB59NFHkxyPiYmRGzduSP369R37tFWvXLlysmnTJvN88+bNpvvVHupUtWrVzD57meRoF29cXJzLBgAA4Mk8OtiNHj1a/Pz8pHfv3skeP3XqlAQEBEjevHld9hcoUMAcs5cJCwtL8lrdZy+TnFGjRjnG5OmmrYAAAACezGODnbbGffLJJzJr1iwzaSI9bDaby2uSe33iMolFRUWZrl77duzYsXS+AwAAgMzlscFuw4YNcvr0aSlcuLBptdPtyJEjMmDAAClatKgpU7BgQUlISDCzXp3p67TVzl7m77//TnL+M2fOOMokJ0eOHJInTx6XDQAAwJN5bLDTsXW//fabmcFq33T8nI6304kUqlKlSuLv7y8rV650vO7kyZOyZ88eqVGjhnmukyS0xW3btm2OMjrDVvfZywAAAFhBls6K1aVJDh486HgeGxtrAly+fPlMS11ISIhLeQ1x2gJnn8mqY986d+5sWvG0rL5u4MCBUr58eccs2TJlykjDhg2lS5cu8tlnn5l9Xbt2NUuiMCMWAABYSZYGux07dkidOnUcz/v3729+dujQwYytS4vo6GjTTdu2bVu5du2aREZGmtf6+vo6ysybN89MwLDPntVFjFNbOw8AACC78bHpLAKkSpc70RZC7cLNTuPtag7qmNVV8Bobx6btP0YAAMioDOKxY+wAAACQPgQ7AAAAiyDYAQAA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AI8Idg888ID4+PiYTceyJab73R2EFi5caLpNtVtVx9jt2rXLjJfTFjedrOF8bWcaPhPvSyy1MlFRUdK/f3+XYBsREXFP7wcAAMAjgt2aNWtMGHr22Wfl22+/lXz58jmOaYtYkSJFTOByp0GDBslbb70lL774onlevnx50xKnrWka7AoWLGj2a8tboUKFHK87ffq0oxVPyyQkJMiFCxdcWu20TI0aNVK8tnbp6gYAAGC5YKfj1uzj2goXLpxqi5g76CSI++5zHQaoXbL25U50GRQNbitXrjSTIpSGuHXr1pkZtapSpUri7+9vyrRt29bs03X39uzZY2bUAgAAeFWw++2331ye64zSlDz22GPiLs2aNTNj6jRIales3qdWlzaxz77VcKldsyNHjpSSJUuaTR8HBgZKu3btTBldGqVz585miRNd6kRbGgcOHGha/3SWLAAAgFcFuyeeeMKEKO2KvRMtoxMc3GXSpEnm/rM9evQwXafa1dutWzcZNmyYo8zgwYPNjFwto92tVatWlRUrVjjWsFO6kLKfn59psdOykZGRZt071rADAABW4mNLLa2JOGaYpoWOtbMinTyhrX86SzdPnjySXdQc1DGrq+A1No6dldVV8Bp8rzMP3+vMw/c682zMZv9epyeD+HlzWAMAAPDqW4qltgjxq6++ei/1AQAAQGYFO/s9Wu30rg46e1WXPNFJCwQ7AACAbHJLMZ2g4LxduXJF9u/fb27/NX/+/IypJQAAANwf7JKjy4x89NFHSVrzAAAAkM2CndKlQ06cOOGu0wEAACCjx9gtWbLE5bmulqJ3cpg8ebI89dRT6T0dAAAAsirYtWzZMsmixPnz5zf3kB03bpy76gUAAICMDnb2+7QCAADAomPsAAAAkM2C3fPPP29mwCY2duxYadOmjbvqBQAAgIwOduvWrZMmTZok2d+wYUNZv359ek8HAACArAp2uiCx3mUiMX9/f3OTWgAAAGSTYFeuXDlZuHBhkv0LFiyQsmXLuqteAAAAyOhZsUOHDpXnnntODh06ZJY4UatXrza3E/v666/TezoAAABkVbBr3ry5LF68WEaOHCnffPON5MqVSx577DFZtWqV1KpVy131AgAAQEYHO6WTJ5KbQAEAAICswzp2AAAA3tRily9fPjlw4ICEhoZK3rx5zW3EUnL+/Hl31g8AAADuDHbR0dGS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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "land = load(\"land_use.parquet\")\n", "totals = land.groupby(\"scenario\")[\"area_mha\"].sum().reindex(scenarios)\n", "print(totals.round(1))\n", "\n", "ax = totals.plot.bar(ylabel=\"Total agricultural land (Mha)\", rot=0, color=\"#3b745f\")\n", "ax.set_title(\"Total agricultural land\")\n", "plt.tight_layout()" ] }, { "cell_type": "markdown", "id": "09e56590", "metadata": {}, "source": [ "## Grassland area\n", "\n", "`land_use.parquet` also covers grazed grassland (crop code `grassland`). Separating it from cropland shows whether the reduction in cropland is offset by more grazing land, or whether both shrink together." ] }, { "cell_type": "code", "execution_count": 3, "id": "6771ff35", "metadata": { "execution": { "iopub.execute_input": "2026-04-17T22:58:05.235676Z", "iopub.status.busy": "2026-04-17T22:58:05.235573Z", "iopub.status.idle": "2026-04-17T22:58:05.305537Z", "shell.execute_reply": "2026-04-17T22:58:05.305195Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " cropland grassland\n", "scenario \n", "baseline 956.2 667.1\n", "ghg_mid 774.0 304.4\n", "ghg_high 718.4 174.4\n" ] }, { "data": { "image/png": "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ewkAAID4GzyhJlcNnihSpIg98cQT7ufcuXPH9ukAAABILsHutddec6GuePHitnr1aneLynvvvRef+wcAAID4DnYdOnTgWrAAAABemaAYAAAAyRfXigUAAEhJwU5XnThy5EisVvjmm2/a/Pnz/+p+AQAAICGaYm+66SYrV66c1axZ0+6//36rVq2aFSxY0DJkyGAnT550kxWvXbvWjZQtVKiQTZ8+Pa77AQAAgMQIdi+88IL17NnTZs6c6UbH7tq1K+TxrFmzWoMGDez111+3Ro0a/dV9AgAAQEIOnsibN68NHjzY3U6dOmWHDh2y8+fPW548eaxkyZKMmAUAAAiXYBcsR44c7gYAAIDkg1GxAAAAHkGwAwAA8AiCHQAAgEcQ7AAAADyCYAcAAJCSR8W+88479tZbb9nhw4ft0qVLIY9t27YtvvYNAAAACVljN2nSJHviiSfcvHbbt2+3O++803Lnzm379++3pk2bxnV1AAAASKpgN3XqVHfJsClTpli6dOls4MCBtnz5cuvVq5edPn06vvYLAAAACR3s1Pyqa8ZKxowZ7ezZs+7n9u3b28KFC+O6OgAAACRVsMufP7/9+uuv7ueiRYvahg0b3M8HDhwwn88XX/sFAACAhA529957r3344Yfu506dOlmfPn2sYcOG9ve//90efPDBuK4OAAAASTUqVv3rrl275n7u2rWr5cqVy9auXWstWrRw9wEAABAmwS516tTu5te6dWt3AwAAQBhOULxmzRpr166d1ahRw3788Ue3bO7cua7mDgAAAGES7N59911r3LixGxGreewuXrzolmt07MiRIxNiHwEAAJAQwe7FF1+01157zWbMmGERERGB5ZoChatOAAAAhFGw27dvn9WuXfu65dmyZbNTp07F134BAAAgoYNdgQIF7Pvvv79uufrXlShRIq6rAwAAQFIFuy5dutjTTz9tGzdutFSpUtlPP/1k8+fPt/79+1u3bt3ia78AAACQ0NOd6NqwuiZsvXr17MKFC65ZNn369C7Y9ejRI66rAwAAQFIEu6tXr7om1379+tmQIUNsz549brLismXLWpYsWeJrnwAAAJDQwS5NmjRuqpO9e/e6K05Uq1btz2wTAAAAyaGPXfny5W3//v0JsS8AAABIzGD30ksvuf50H330kR07dszOnDkTcgMAAECYDJ5o0qSJ+//+++93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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "is_grassland = land[\"crop\"] == \"grassland\"\n", "by_land_type = pd.DataFrame(\n", " {\n", " \"cropland\": land[~is_grassland].groupby(\"scenario\")[\"area_mha\"].sum(),\n", " \"grassland\": land[is_grassland].groupby(\"scenario\")[\"area_mha\"].sum(),\n", " }\n", ").reindex(scenarios)\n", "print(by_land_type.round(1))\n", "\n", "ax = by_land_type.plot.bar(ylabel=\"Area (Mha)\", rot=0)\n", "ax.set_title(\"Cropland vs grassland by scenario\")\n", "plt.tight_layout()" ] }, { "cell_type": "markdown", "id": "emissions-md", "metadata": {}, "source": [ "## Net GHG emissions by gas\n", "\n", "Stacked bars decompose net emissions (in MtCO₂-equivalent) into CO₂, CH₄, and N₂O contributions. As the GHG price rises, the optimiser cuts the cheapest-to-abate emission sources first." ] }, { "cell_type": "code", "execution_count": 4, "id": "emissions", "metadata": { "execution": { "iopub.execute_input": "2026-04-17T22:58:05.307092Z", "iopub.status.busy": "2026-04-17T22:58:05.306977Z", "iopub.status.idle": "2026-04-17T22:58:05.389797Z", "shell.execute_reply": "2026-04-17T22:58:05.389249Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "gas ch4 co2 n2o\n", "scenario \n", "baseline 4259.0 -9403.5 1470.3\n", "ghg_mid 2886.2 -12327.5 1097.3\n", "ghg_high 2087.7 -12840.3 922.5\n" ] }, { "data": { "image/png": "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P6VGxbLSqGZlKV+qGFcXAIAYRLCDOHRdLjO/r1eo++/evSs1atQw24LFIyRDhgxy+vRpqVmzpjxMnUckS3Gp3epFOVWzqaxevVo2bNggVZu9I926dZPx48dH/xXWJt+7ASLd94okTsxPFAAQbzF4ApInTx7x8fGR3bt3O69GYGCgHD9+3Hz/559/ytWrV+WTTz6RV155RV544QW5fPlyiCunga9t27ZmoMXkyZPlyy+/5OoCABCDqLGDpEiRQtq0aSP9+/eXtGnTSsaMGWXIkCFmSTOtxcuePbskTJhQPv30U+nSpYscPnxYRowY4XbldLBFiRIlpHDhwvLgwQP58ccfpWDBglxdAABiEDV2MCZOnCjlypWTevXqSbVq1aRChQommCVOnNjUxM2dO1eWLVsmhQoVMjV3wZtYNfgNHDhQihYtKq+++qokSJBAlixZwtUFACAGeTmsjlSIUdrUqQMUbt26JSlTpnR77v79+xIQECC5cuUywcoTtF9d1qxZZcKECdK+fXuJzWLD9UIsNzSVp8/Avobe8vQZ2Bv3bjRe21tih8wQHE2xcI561b50OjJWb5zhw4eb/Q0bNuQKAQAQRxDs4KTNq8eOHTPNqtpf7tdff5X06dNzhQAAiCPiTB+7kSNHSvny5SVp0qSSOnXqUMvoFBz169c3y2JpIOnRo4dZMcHVoUOHpGLFipIkSRLT1Kg1U8Fbo7du3WqCjTbr5c6dW2bMmBHivb777jvT3yxRokTm64oVKyQue/HFF2Xfvn1y584duX79uqxfv16KFCni6dMCAAB2DHYa0N5880155513Qn3+8ePHUrduXdM3bNu2babjvoavvn37urVRV69e3ayosGfPHjPKU2updOCARftq1alTx0zroc2TH3zwgQmIeizLzp07pWnTptK6dWv5448/zNcmTZrIrl27ovkqAAAA2GjwhI7O1IXpb9686bb/p59+MiM6z5w541wKS8Odzqumc65pZ8Pp06ebkZuXLl0yNW1KR3hqwDt79qyZ2uO9994z66X6+/s7j61TfGiA00CnNNRpSNT3tNSqVUvSpEkjixcvtsXgibiE64WnogN69IlDHdDjJO7daLy2t8SOgyfiTI3d02jo8vPzc1vfVFdG0DnVtInRKqPNsFaos8qcP39eTp486SyjKyy40jJ79+41y26FV2bHjh1hnp+e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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "emissions = load(\"net_emissions.parquet\")\n", "by_gas = (\n", " emissions.groupby([\"scenario\", \"gas\"])[\"mtco2eq\"]\n", " .sum()\n", " .unstack(\"gas\")\n", " .reindex(scenarios)\n", ")\n", "print(by_gas.round(1))\n", "\n", "ax = by_gas.plot.bar(stacked=True, ylabel=\"Emissions (MtCO2eq)\", rot=0)\n", "ax.set_title(\"Net GHG emissions by gas\")\n", "plt.tight_layout()" ] }, { "cell_type": "markdown", "id": "452f2c00", "metadata": {}, "source": [ "## Animal feed composition\n", "\n", "`feed_by_category.parquet` breaks down dry-matter feed use (Mt) by category — grass & leaves, grains, oilseed cakes, residues, and so on. Even when total livestock output is fixed (which is roughly the case here, since consumption is fixed), the *mix* of feed that supports it changes as the optimiser substitutes cheap-to-emit feeds for cleaner alternatives." ] }, { "cell_type": "code", "execution_count": 5, "id": "85c88973", "metadata": { "execution": { "iopub.execute_input": "2026-04-17T22:58:05.391247Z", "iopub.status.busy": "2026-04-17T22:58:05.391150Z", "iopub.status.idle": "2026-04-17T22:58:05.478292Z", "shell.execute_reply": "2026-04-17T22:58:05.477605Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "category Grass & leaves Grains Crop residues Oilseed cakes By-products\n", "scenario \n", "baseline 3938.7 1382.6 639.0 426.3 271.8\n", "ghg_mid 2165.4 1536.4 685.4 381.8 100.8\n", "ghg_high 1029.5 1442.9 909.9 367.0 1.2\n" ] }, { "data": { "image/png": "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bd682cqWLRtlX8C4juC8XOvXr7cvv/zSfv31V0uTJo398ccfltRRoQMAAPHy+++/24wZM+yTTz4JhDmpX7++NWvWzP08fvx4q1Onjj311FN255132tq1a23o0KF21113uWre3XffbWvWrHH7nj592h5//HG77bbbrEyZMlarVq3Aee699163rXTp0vbSSy9FO93HoUOH7MiRI+7+zTffHOfXcvz4cWvbtq27nttvv906dOgQmB4muut98803rUuXLoFjKNhmz57d/v33X3d/yJAhbv877rjDHnzwQbeMqD/w6hwKvKVKlbKvvvrKrhQVOgAAEC8//fSTC00KMTFZsWKF21ejNkXP6d69u/t59erV1qZNG9u0aZPNmzfPDh8+7CpsonAmI0aMsIceeshefPHFkO0RaZoPXUvdunVt0aJFISEzNj169LDKlSvbmDFj3OAThTud9/nnn7cWLVpEeb2tWrVyYe3dd991FcFp06bZAw88YDlz5rTJkyfbb7/95iqXqkhOnDjROnfu7MKbAumHH35olSpVskuXLrn1fa8UgQ4AACRoB/7t27fbI4884ipt/nAk9913XyDMicLdW2+9ZQcPHrRUqVK5AHfu3DlXgdu6dat17NjRqlSp4qpaomO98MILdvLkSbe9Ro0aka7j7NmzrqKnUDhz5kyrWbOmLVy40B1X1bVdu3bF+Dr0HIU1hTPRa1BIi+l6NVecqnazZs2yRx991MaNG2e9evUKHO+HH36w8uXLR2pqrl69unXr1s09R9ccVdN0XBHoAABAvCjMqDlUVTVVw4oWLeoGQ6iZNXiwQfAEuQpCCn1Lly51YUfVqaxZs7rtRYoUcWFp8eLFrsKmcKTjaX9VsxTQVDUbPny4zZ07N+RafvnlF7vuuutc9a9nz56u+VWhTtU6VdRio6qcQpiuIVhM16vApz6Eer0KZeqzp/P5j6dKXOvWrSOdS0246mO4ZMkSa9mypWue9gfBy0UfOgAAEC+qujVs2NAFJn+/NVElLTpnzpxxfdPy58/v7n/wwQeBxzSZrip+DRo0cP3PFIrU70yhMXfu3K4f3uDBg10lLaJbbrnFNcXOnz/f3e/atasLmAMHDowyVEWkcw4aNMguXLjg7iukKqDFdL3y8MMPu36Beq6aZv1VOB1v5MiRgeZhHUOVPlEVUqNw1QT77LPPRvl64ooKHQAAiDdVp9Qcec8997gwo0qdwpemD4lKlixZ7PXXX3eDBQoUKOCCj9/GjRvd8xTk1LdMAUmDBwYMGGCTJk1yFTE9pv5nEWXNmtU1farSpQpdunTpXPPs22+/7ZpuVfXThL3RUdWvd+/ertKmSp8qfHquKn7RXa+kTZvWHnvsMRfetmzZEtiua1cTraZGUUhVUFTwVVVT06mof51ej1b+GDVq1BW++2YpfCwEFyf+0urRo0fdlxAAgHD8XVGlaMeOHVa4cGEXVpB0Xc5nTYXOg/7TYXG4LyHR6PRhtXBfAgAAYUcfOgAAAI8j0AEAAHgcgQ4AAMDjCHQAAAAeR6ADAADwOAIdAACAxzFtCQAAXtc/61U89tE47aYVEDTx75QpU9zEwpost2DBgta/f//LXqNU+2sx+/Tp01/hRSc/BDoAABBvWsv0xIkTLohplQiZPXu2W6s0YqALXqA+Klq3FZeHQAcAAOJFa6zOmDHDrbfqD3NSv379wLJgU6dOdUuB/frrr24dVAU/VfO0FJaW19I2LRsmWiLr+PHjlilTJitUqJALi1qbdc+ePW7ZLC12L2+++aZbCixt2rTu/ldffeWqgskRgQ4AAMSLFpvXWqfZs2ePdp8VK1a4/YoVK+bua//u3bu7n7UovYLapk2bonzukSNHbOXKlXbgwAH3PAU8rX06ZMgQF/LSp09vp06dcmuvJlfJ95UDAIAEo6qa3/bt210za/Hixa1t27Zu23333RcIc6JwV6VKFStVqpR16NDBVe7OnTsX5bGbNWvm/s2VK5cVKVLErW+q9W91vObNm9vo0aPt0KFDyXptWwIdAACIl3Llyrlm18OHD7v7RYsWdf3g+vbtG9im5lM/BbdHHnnEhg4d6qpyy5cvN5/PF22gCw5q6nunZlr9q8pet27dbP/+/VahQgX77rvvku0nSaADAADxokpZw4YNXbOpmkf9Tp48GeX+Z86ccaNi8+fP7+6r/9zlUh+7ffv22f33328vv/yyqwCq6pdc0YcOAADEmwY+vPXWW25gg6pnGhyhQRB9+vSxLVu2hOyr5tLXX3/d7r77bitQoIA1aNDgss939OhRe/TRR11oTJEihQuVLVu2TLafZAqfapyI1bFjxyxr1qzuC6QvYjhtubVEWM+fmJTYGvpLAgCS+t8VVbfUh6xw4cLJus9YcnDmMj5rmlwBAAA8jkAHAADgcQQ6AAAAjyPQAQAAeByBDgAAwOMIdAAAAB5HoAMAAPGm1Rs0t9ytt95qJUuWdP+2a9cuZKLhxOiVV16xzz//PMrH+vfvbz179jQvYGJhAAA8rvSE0lft2BtbbozTflolQuuprlq1yk0qfOnSJfvvf//rtl1//fWRwl+qVAkbQS5c4TEVQpMCKnQAACBe/vjjD5s2bZqNGzfOhTkXMK67zh577DErUqSILV261MqWLWtdu3a1ihUr2owZM+yHH35wP99+++1uxYjvv//ePW/nzp2WM2dOVxnTqhOq9i1evDjK87Zq1cods06dOlamTBm3beLEie55d9xxh1WpUsWtFSta97V8+fLuOkqVKmWjRo0KHGPEiBEhq0/cdtttVrt2bfe6oqvW6Tl6rt+QIUPc69B5H3zwQfv777/d9tmzZ7vX6D/vV199dVW+bVToAABAvPz4449u6S0Fsej88ssvLgS9//77du7cObv55pttzJgxLjitWLHCBSl/gDp48KCVLl3ahSQFsUaNGtn27dstY8aMkY6r5y5fvtwyZcrkQuHUqVPd/bRp09p3331nzZo1s59//tkGDhxoPXr0sKZNm7rnHT58OMpqnVbt+PXXX+3ff/914axJkyaxvv7Jkyfbb7/95qqTWvZMobJz584uvL300kv24YcfWqVKlVzVUiuEXA0EOgAAcNXdcsstdt9997mft23bZmnSpHFhTrRd674q9N1www3usRYtWrjHKlSoYHnz5nWhTKEoIgWuTJkyuZ8VoLSfKnR+Bw4ccAHygQcesDfffNOFxmrVqgWuJdiSJUvsgw8+cD8rnDZu3DhOr23mzJmu4qgKoFy8eNEFO6levbp169bNBdZatWq5St3VQJMrAACIF1Wyfv/9d1dZi44/dImWkU+RIkWkfaLaFttjEY/bunVr27BhQ+D2v//9zwVEhaqvv/7aBcYXX3zROnbsGOlYMS1vr/55CmrB66wGP0+VOP85N27c6P6VoUOHuqboDBkyWMuWLW3w4MF2NRDoAABAvKj59JFHHnEDI/yjWhVyPv30U9dUGpFGwJ49ezbQN27lypW2f/9+18wqqqhNmjTJ/bx27Vrbu3ev64cWm/r167tz+vuvqYlTlTN/VVD9+dq2besCnZpyI1I1TeFLNJhDff38ihYt6o6lY546dcoN+PBr0KCBjRw50j1Hzp8/bz/99JP7eevWra4foJpgn3322SjPmxBocgUAAPH2ySefuCZNNXeqmqVAV7lyZRd2/AHLTxUzBSINaDh58qSlS5fODapQHzk1kebIkcM1jepYJ06ccH3Uouo/F1HlypVtwIAB1rBhQ1dNU7B66KGH7M4773RNqWpS1bnVHPruu+9Gev7LL7/sKnwaFFGwYEGrWbNm4DEF1i+//NI9VqhQIdd0evr0afeYmodVnaxataqrJGrErcJtuXLlrG/fvq5/nc6rKp1/MEZCS+GLqb6IAHVizJo1qxsBow6T4bTl1hJhPX9iUmLrlnBfAgBc078raurbsWOHFS5c2AWhpEajXBXANCghuTtzGZ81Ta4AAAAeF/ZA988//1jz5s1deVWlSJUw169fH3hcBUTN/ZIvXz5Lnz69K2du3rw55Bhqh+/SpYsbkaKSrMq7u3fvDtlHw5NVEtV/DemmnxP77NUAACQ3as6kOuexQKeQde+991rq1Kntm2++cfO+qE07eEZpjQbRCBHNXbNu3To3dFlt2sePHw/so5Er6riouWc0H43a2+vVqxcyGkXzzmjEybx589xNP/uHRAMAAHhZWAdFvP3225Y/f/7AiBJ/Mg+uzg0fPtz69esXmAtmwoQJlidPHtdBsn379q7vwdixY90kfjVq1HD7fPbZZ+64ixYtcnPcbNmyxYU4jSzxz02jyQw1Q7VGvRQvXvyav3YAAIAkUaGbNWuW6/iopUE0oaBGgyho+akjoIYqayI+P838rKU8NMRZ1DyrUSzB+6h5Vstr+PfRzM1qZg2eaFATFWqbf5+I1IyrDqvBNwAAgMQorIHuzz//dMN3tVzI/PnzrUOHDm4Is+aQEYU5UUUumO77H9O/GgrsXzsuun0UGCPSNv8+EWmJEH9/O91U8QMAAEiMwhroNDmfZpfWnDGqzqkJVRP+RZyjJeLs0NHNMB3TPlHtH9NxNG+MmnP9t4hz6AAAACQWYe1Dp+U3NEFfsBIlSgRmX9YACFEVTfv6aTZpf9VO+2hGaQ2wCK7SaR//mm/aZ9++fZHOr8kLI1b/gpt2dUuMmvRlPmi/jWH9JAAgcbia85PGdb5P/S3WxLz6G67Bjpq8t0ePHvb000+7x7XKwrBhw9wKENdyrrn+/fu7wZJDhgxJ0nPkhbVCpxGuGpQQTLMpa3Zm0UR6CmMLFy4M+cIsW7YsENa0EK6+OMH77NmzxzZt2hTYR4MfVGXT8iF+a9ascduiWugXAABcnlatWrnVHX7++Wc3GFHrpmqmio8++sg9riDkX84LSSzQPf/8827kqZpc9SXQyFV98J06dXKPqzlUU5LocU1LopCmL4zmq9M0JKL+bVpeQ/8V8O2337q10zSvndaD8496VdWvTp06rjlX59NNP2tqE0a4AgAQP/obPnPmTPc33L9El2at0FRkb7zxhru/dOlSF+oi0vJZjz/+uGuxK1OmTMggR81goQGN6p6lAZHKAX6quN19993usQcffDDQNUrFmkcffdQdTzNd6Nqio0GT999/vzuv1or96quv3PYXXnjB7rrrLjc3rs77+++/R3quCkzKG+r/r2nSNLVatWrV3GvUNflbG9UaqNekXKJz+CuWCS2sbXd6sxTU1F/t9ddfdxU5TVPSrFmzwD69evVyH3bHjh1ds6o+2AULFljmzJkD+6iEq3XjmjRp4vbV4rrjx4935V4//VeBBlz4vyiafFhz2wEAgPj58ccf3QBHLRIQTC1kmuhfoSY6mlZMf981F634F7j//vvv3fyyy5cvd12gvvvuO5cPVAFUAUgtegpk+ls/ceJE69y5swtkyhNaSk3HU9OowpXyQUQ6z8MPP2zTp093rXXq1+9fcKB37972zjvvuJ91DSpAqeLop+vV2q7KFH369HHP0ziAOXPmuC5iOq9aENUSOWXKFBdulV2CX19CC3tnLFXJdIuOqnRq/9YtOlrfTIvu6had7Nmzu/npAABAwottsGJ0VB3bunWrK9yoGqZqmyicKbwFTzmmYKjKmKqB6pOn0CQXL14MFHGWLFkSyANaQco/j21ECoOq4vm7Xl133XUuK4jCl46hRQwU9IKnLtP6qgpqL730UqC1UFOgaeaOunXrhgy8VLcyTZOmwpNaEvX6VDVMkoEOAAB4m2aqUMXs4MGDIVU6haabbrrJcuXKFe1zixQp4qppixcvdgsCqGVOqzkpELVu3dpV3CLSYwpUejyqx+Jj165drkVP/e51bb/88otrSvVTtVCBbvbs2a7ypxZCnVPNqaomRkWvR69NzbC6bnUPC25FTBJruQIAAG9Tc2v9+vWtXbt2durUqcCIUFWltNpTTNQkq+qeukKpX5zCkfrD6Xial9bfN06VMlXlRPuOHDky0Hx5/vx5F5JE3a78K1DpcXXtiooqcxq84V9gQMfX/uqDp/ltNShT1xKxe5auVX0FNUuGqn9aiEDHUj87hdLgEKdqohZJyJQpkwt/qvop+GrUbUKjQgcAAOJN4UvVJ3X+VyDyT1vyzDPPxPi8jRs3un5oCk8KVVpnXdUu0aDIhg0buiZVhbaHHnrIDTrQPqoGVq1a1QWsCxcuuAGSqhRq6hRV7tScqlkztP57VDTVmcKerlFNqzqOBnAoLGoFq5IlS1qBAgWifL72VZ9/nUvXpOZhVew0mEL97XSteq6ahjUYRGvS6/3Q61DfPA3oTGgpfPGtTSYTaj/XB6Dkrs6W4VR6Qumwnj8x2diSmegAJK+/K+rDpaqPBhKqDzmSrsv5rGlyBQAA8DgCHQAAgMcR6AAAADyOQAcAAOBxBDoAAACPI9ABAAB4HIEOAADA45hYGAAAj/tPh/9boSChdfrw/5a9iokWoNdcabpp9QRN8jtmzBjLmDGjhVuhQoXs66+/tlKlSl3R8zVBcL58+ezuu++2xIoKHQAASBBffvmlW/JKa7Nq4uTx48dflXdWK0NcSzNnznRruyZmBDoAAJCgVKE7efKkW15LS4GtWrUq8Njo0aPt8ccfj/J5WlKrf//+du+999ott9xiU6ZMCXns3Xffdct99e3b1/bt22cPP/ywO36pUqXc+qp+3333nduuilrnzp3dsmLB1bpNmzYF7mspMS3PJf/88489+uijbukx3bS019y5c23WrFk2aNAgK1u2rH388cdu3VZdY5kyZdx5tORZuNHkCgAAEoTCkJpctVxV+fLl3YL0Cnb/+c9/rGLFim4f/axbdBTcvv/+e/vzzz9dILvvvvssf/78gaDoD18Khbfeeqtbj3X//v3ufApcCllPPPGETZo0yYW/L774IsbzBWvevLk9+OCDrtIoBw4csFy5crn1XRX8FA7lueeec2u4vvjii+7+oUOHLNyo0AEAgARtcj148KBbf7R3794uJC1evNiFrmXLlrnAdv/990d7jGeeecb9W6RIERfmVG3za926deDnRYsWWadOndzPuXPntsaNG9u3335r27ZtswwZMrgwJwqVWjM3NidOnLCVK1fa888/H9imMBeVypUru0pdv379bMGCBXb99ddbuBHoAABAgkqVKpU98sgjNm/ePEufPr21bNnSBaARI0YEqlyffvqpq6jpNm7cuGiPpQDolylTpmgf898Pbl6N7touXrwYuH/mzBm7XHptqiIWL17cvaZ69epZuBHoAABAglNVToFHVEkbNWqUq9A1a9bMbXvqqadcNU+3p59+OvC8Tz75xP27c+dOW7FihavSRaVGjRqBfnMHDhxwTa/VqlVzzbCnT5+25cuXB6qGR48eDTyvaNGitmbNGvezBjqooucPizrXsGHDAvvquJIlS5aQY6gPnaqCeg2DBw+21atXW7jRhw4AACRoH7rz58+7wQcffvih237TTTe5SpwGOqg5NCZp06Z1Aw4Upj744INA/7mI3n//fevQoYMbvHDp0iXX/OmfVkSDKTp27Oiqg2p6LVCgQOB5b731lqsYjh071u644w4rWbJk4LGJEydaly5d3DZV8ho1amSvvfaatWjRwlq1amXTpk1zFUY1H6uPXpo0aVxF0P86wymFL7baJBwNv1YbvBK6kno4lZ5Qmk/l/9nYciPvBYBk9XdFTYQadKA+agpPXqD+aaqcqT+crjs6ajI9fvx4pKbV5OrMZXzWNLkCAICrRtUrhTlVzGIKc4gfmlwBAMBVo2ZR3eKCRsMrR4UOAADA4wh0AAB4ENWspM93GcMcaHIFAMBDUqdO7QYP+FcxiDgXG5JOmNNnrM9Xn3lsCHQAAHhIypQp3TQgu3fvdnO1IelSmNNnrc88NgQ6AAA8RtN6FCtWzM33hqRLlbm4hDkh0AEA4EH6Qx/XP/ZI+hgUAQAA4HEEOgAAAI8j0AEAAHgcfeg8aOOOXeG+BAAAkIhQoQMAAPA4Ah0AAIDHEegAAAA8jkAHAADgcQQ6AAAAjyPQAQAAeByBDgAAwOMIdAAAAB5HoAMAAPA4Ah0AAIDHEegAAAA8jkAHAADgcWENdP3797cUKVKE3PLmzRt43OfzuX3y5ctn6dOnt6pVq9rmzZtDjnH27Fnr0qWL5cyZ0zJmzGgNGjSw3bt3h+xz+PBha9GihWXNmtXd9PORI0eu2esEAABI0hW6kiVL2p49ewK3jRs3Bh4bPHiwDR061EaMGGHr1q1zYa9mzZp2/PjxwD7dunWzGTNm2NSpU23FihV24sQJq1evnl28eDGwT9OmTW3Dhg02b948d9PPCnUAAABJQaqwX0CqVCFVueDq3PDhw61fv37WuHFjt23ChAmWJ08emzx5srVv396OHj1qY8eOtYkTJ1qNGjXcPp999pnlz5/fFi1aZLVr17YtW7a4ELd69Wq755573D5jxoyxihUr2rZt26x48eLX+BUDAAAksQrd77//7ppUCxcubE888YT9+eefbvuOHTts7969VqtWrcC+adOmtSpVqtjKlSvd/fXr19v58+dD9tGxSpUqFdhn1apVrpnVH+akQoUKbpt/n6ioKffYsWMhNwAAgMQorIFOIevTTz+1+fPnu6qZAlylSpXs4MGD7mdRRS6Y7vsf079p0qSxbNmyxbhP7ty5I51b2/z7RGXgwIGBPne6qeoHAACQGIU10NWtW9ceeeQRK126tGsynTNnTqBp1U8DJSI2xUbcFlHEfaLaP7bj9O3b1zXp+m9///33Zb02AACAZNPkGkyjVBXu1Azr71cXsYq2f//+QNVO+5w7d86NYo1pn3379kU614EDByJV/4KpeTdLliwhNwAAgMQoUQU69VvTIIYbbrjB9alTGFu4cGHgcYW3ZcuWuWZZKV++vKVOnTpkH42U3bRpU2AfDX5QhW3t2rWBfdasWeO2+fcBAADwsrCOcu3Zs6fVr1/fChQo4Kpqb775pht80LJlS9ccqilJBgwYYMWKFXM3/ZwhQwY3DYmob1ubNm2sR48eliNHDsuePbs7pr8JV0qUKGF16tSxtm3b2ujRo922du3aualNGOEKAACSgrAGOk0A/OSTT9q///5ruXLlcqNPNb1IwYIF3eO9evWy06dPW8eOHV2zqgZRLFiwwDJnzhw4xrBhw9zUJ02aNHH7Vq9e3caPH28pU6YM7DNp0iTr2rVrYDSsJh/W3HYAAABJQQqfRgcgVqocqiKoptqw96frnzW8509M+h8N9xUAgPf/rsDzElUfOgAAAHhwpQgACec/HRbzdgbp9GE13g8AyQIVOgAAAI8j0AEAAHgcgQ4AAMDjCHQAAAAex6AIIAmptrRTuC8hkdkS7gsAgGuCCh0AAIDHEegAAAA8jkAHAADgcQQ6AAAAjyPQAQAAeByBDgAAwOMIdAAAAB5HoAMAAPA4Ah0AAIDHEegAAAA8jkAHAADgcQQ6AAAAjyPQAQAAeByBDgAAwOMIdAAAAB5HoAMAAPA4Ah0AAIDHEegAAAA8jkAHAADgcQQ6AAAAj0sV7gsAkHCa9OX/0sE28uUCkExQoQMAAPA4Ah0AAIDHEegAAAA8jkAHAADgcZfVg/ro0aM2Y8YM++6772znzp126tQpy5Url5UrV85q165tlSpVunpXCgAAgCuv0O3Zs8fatm1rN9xwg73++ut28uRJK1u2rFWvXt1uuukmW7JkidWsWdNuu+02+/zzz+NySAAAAFzLCl2ZMmXsqaeesrVr11qpUqWi3Of06dM2c+ZMGzp0qP3999/Ws2fPhLpGAAAAxDfQbd682TWtxiR9+vT25JNPutuBAwficlgAAABcqybX2MJcfPcHAADANRgUsXz58jjtV7ly5XhcDgAAAK5aoKtataqlSJHC/ezz+aLcR49fvHjxsi8CAAAA1yDQZcuWzTJnzmytWrWyFi1aWM6cOeNxWgAAAFzziYU1dcnbb79tq1atstKlS1ubNm1s5cqVliVLFsuaNWvgBgAAgEQa6NKkSWOPP/64zZ8/37Zt22a33367de7c2fLnz2/9+vWzCxcuXN0rBQAAQMIt/aUQ98orr9iiRYvslltusUGDBtmxY8eu5FAAAAC41oHu7NmzNnnyZKtRo4abZFh96ebMmWPZs2eP77UAAADgagY6rRLx7LPPWt68eW3IkCHWoEEDtyLEF198YXXq1LH4GjhwoBsl261bt8A2jabt37+/5cuXz01crJG2muQ4YsDs0qWLC5YZM2Z017V79+6QfQ4fPuwGcvj7+ennI0eOxPuaAQAAPDXKtUKFClagQAHr2rWrlS9f3m1bsWJFpP0UqC7XunXr7KOPPnL98oINHjzYLSU2fvx417T75ptvujVj1YdPI25FAXD27Nk2depUy5Ejh/Xo0cPq1atn69evt5QpU7p9mjZt6kLevHnz3P127dq5UKfnAQAAeF0KX3STykVw3XWxF/OuZB66EydO2B133GEjR450ga1s2bI2fPhwV51TZU6BrXfv3oFqXJ48edxo2/bt29vRo0fdqhQTJ050Azbkf//7n+vjN3fuXKtdu7Zt2bLFbrvtNlu9erXdc889bh/9XLFiRdu6dasVL148TtepPoKq7umcGtkbVv0ZTfx/78XRcH4SiU7pCaXDfQmJysaWG8N9CYA3/q4g+TS5Xrp0KdbblUwq3KlTJ3vooYdcn7xgO3bssL1791qtWrUC29KmTWtVqlRx06WIqnDnz58P2UchUH37/PtomhX9H8Yf5vzVRm3z7wMAAJAsmlyvBjWT/vjjj67JNSKFOVFFLpju//XXX4F9NJ2KJj2OuI//+fo3d+7ckY6vbf59oqJqoG5+jOIFAABJJtAtXrzYpk+fbjt37nRNrIULF7ZHH330stdw1YCK5557zhYsWGDp0qWLdj//cmN+aoqNuC2iiPtEtX9sx9Egjddeey2WVwEAAOCxaUs6dOjgmkanTJliBw8etAMHDtikSZPsgQcecCNNL4eaS/fv3+8GWKRKlcrdli1bZu+//7772V+Zi1hF03P8j2nE7blz59wo1pj22bdvX6Tz69ojVv+C9e3b1/Vr8N8UQAEAADwd6GbMmGHjxo2zTz75xP7991/XN02DCxSMxowZ40apzpo1K84nrl69um3cuNE2bNgQuN15553WrFkz93ORIkVcGFu4cGHgOQpvCn2VKlVy9xUGU6dOHbKPlijbtGlTYB8NflAg07QrfmvWrHHb/PtERf311Ek1+AYAAODpJleFue7du1urVq0ijX5t3bq1m0pk7NixcZ62RNOOaPBCMM0jp6lH/Ns1wnXAgAFWrFgxd9PPGTJkcNOQiAY2aE1ZTVWi52ly4549e7q1Zv2DLEqUKOHmyWvbtq2NHj06MG2JpjaJ6wjXxKbQmcnhvoREY2e4LwAAAC8FOg1eeOmll6J9/JFHHrHGjRtbQurVq5edPn3aOnbs6JpVNVJVfe78c9DJsGHDXBNtkyZN3L6q/GneOv8cdKJmYc2f5x8Nq9A5YsSIBL1WAACARD8PnQYubN++3W688cYoH//nn3/s5ptvdqEqKUpM8wUV6jMnrOdPTHYOeijcl5CoMA9dKOahQ2KWmP6uIBn1oVP/NU0REh1VybQPAAAAEvG0JS+//LLrwxaVU6dOJdQ1AQAA4GoEOs0zp4EPse0DAACARBroli5denWvBAAAAFd/YmEAAAAkPgQ6AAAAjyPQAQAAJKdRrgAA79pya4lwX0KiUWLrlnBfAhDeCt2uXbssqrmItU2PAQAAIJEHusKFC9uBAwcibT906JB7DAAAAIm8yVWVuBQpUkTafuLECbc8GIDw2biDKjkAJEdxDnTdu3d3/yrMRVwx4uLFi7ZmzRorW7bs1blKAAAAxD/Q/fTTT4EK3caNG0PWddXPZcqUsZ49e8b1cAAAALjWgW7JkiXu36efftree+89y5IlS0JdAwAAAK5lH7px48bF53wAAAAIV6Br3bp1nPb75JNP4nM9AAAAuFqBbvz48VawYEErV65clPPQAQAAIJEHug4dOtjUqVPtzz//dNW65s2bW/bs2a/u1QEAACDhJhYeOXKk7dmzx3r37m2zZ8+2/PnzW5MmTWz+/PlU7AAAALyyUkTatGntySeftIULF9qvv/5qJUuWtI4dO7qmWE0sDAAAAA8s/eWnCYZ1U3+6S5cuJexVAQAA4OoEurNnz9qUKVOsZs2aVrx4cTfB8IgRI2zXrl2WKVOmyzkUAAAArvWgCDWtalBEgQIF3OTC+jlHjhwJdR0AAAC42oHuww8/dGGucOHCtmzZMneLyvTp06/0WgAAAHA1A91TTz3l+swBAADAwxMLAwAAIAmNcgUAAICHAp1Wifj777/jdMDPP//cJk2aFN/rAgAAQEI2uebKlctKlSpllSpVsgYNGtidd95p+fLls3Tp0tnhw4fdJMMrVqxwI19vvPFG++ijj+J6fgDANdKkb5x72SR5G8N9AUACi9P/u9944w3r0qWLjR071o123bRpU8jjmTNntho1atjHH39stWrVSuhrBAAAQAzi/J9ruXPntr59+7rbkSNH7K+//rLTp09bzpw5rWjRooyABQAACJMrqr9ff/317gYAAIDwY5QrAACAxxHoAAAAPI5ABwAA4HEEOgAAAI8j0AEAACSHUa7lypWL87QkP/74Y3yvCQAAAAkd6Bo1ahT4+cyZMzZy5Ei77bbbrGLFim7b6tWrbfPmzdaxY8fLOTcAAACuVaB79dVXAz8/88wz1rVrV7d6RMR94rreKwAAAMLYh27atGn21FNPRdrevHlz++9//5tQ1wUAAICrFejSp09vK1asiLRd29KlS3e5hwMAAMC1XvqrW7du9uyzz9r69eutQoUKgT50n3zyib3yyivxvR4AAABc7UDXp08fK1KkiL333ns2efJkt61EiRI2fvx4a9KkyeUeDgAAAOGYh07B7fvvv7dDhw65m36+kjA3atQou/322y1LlizuplGz33zzTeBxn89n/fv3t3z58rmm3qpVq7rRtMHOnj1rXbp0sZw5c1rGjBmtQYMGtnv37pB9Dh8+bC1atLCsWbO6m34+cuTIlbx0AACApBHoFIY+/vhje/HFF12g888/988//1zWcW666SYbNGiQ/fDDD+5WrVo1a9iwYSC0DR482IYOHWojRoywdevWWd68ea1mzZp2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md/hw4etWbNmlitXLkufPr0VK1bMxo0bF3j8n3/+cfP5ZcuWzR1bq2zs3Lkzzk0fasIZMGCAtW7d2l1DgQIF3ATPwS73HIgbLS+kzzZjxox2ww032LBhwyJ9PqdOnYrxs1m5cqVr/kqXLp37Hs2cOdM1mW3YsCHOzWvz58+3cuXKue9XtWrV3Pfvm2++sRIlSrgVR5588kl3HX4Rr1H7169f3z2/cOHCNmnSJL4CHv1O+K1fv949N0OGDFapUiXbtm1btE2u+v3WtWvXwO+33r17W8uWLUO6eviXauzVq5f7j0r9rtNxgKSOQJfETJgwwVKlSmVr1qyx999/3/2S/vjjj91j586dszfeeMN+/vln94t3x44drt+b38svv2y//vqr+wO7ZcsWGzVqlFsH1/+L/YEHHnD/tbx8+XJbsWKF+7lOnTruuHH17rvvul/eP/30k5sT8Nlnn7WtW7cm6DkQ9Uop33//vc2aNcsteffdd9/Zjz/+GOfPRn/8FaRKly7tnqfvkf6YXi79YR0xYoQLAloHuEmTJq6f1uTJk23OnDnu2j744INon6/vqwL+4sWL7csvv7SRI0eG/EcJvPed6NevnzvPDz/84H53KUBG5+2333YhXv+hqWvXusH6XRbV70EFVf0eHDx4sJtQXq8RSNI0Dx2ShipVqvhKlCjhu3TpUmBb79693baorF27VqU73/Hjx939+vXr+55++uko9x07dqyvePHiIcc+e/asL3369L758+e7+y1btvQ1bNgw5Hqee+65wP2CBQv6mjdvHrivY+XOnds3atSoOJ8Dl+/YsWO+1KlT+6ZNmxbYduTIEV+GDBkCn09sn43+zZEjh+/06dOBfcaMGeO+Pz/99FOs17BkyRK376JFiwLbBg4c6LZt3749sK19+/a+2rVrR/kd2rZtm9t/9erVgce3bNnitg0bNoyvRhL4TsyZM8dt8x/z1Vdf9ZUpUybweJ48eXzvvPNO4P6FCxd8BQoUiPR757777gs511133eV+FwJJGRW6JKZChQquycNP69b+/vvvdvHiRfdf2WrC1HJnakJR84poTVvRf31PnTrVNXGouUJVlOBmkT/++MM9z9+vRc0ZZ86cse3bt8f5+m6//fbAz7pONYf4KywJdQ6E+vPPP+38+fN29913hywIXrx48Th/NmoG0+NqWvMLPl5cBZ8j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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "feed = load(\"feed_by_category.parquet\")\n", "by_category = (\n", " feed.groupby([\"scenario\", \"category\"])[\"mt_dm\"]\n", " .sum()\n", " .unstack(\"category\")\n", " .reindex(scenarios)\n", ")\n", "# Order columns by total feed use for a cleaner stacked plot.\n", "by_category = by_category.reindex(\n", " columns=by_category.sum().sort_values(ascending=False).index\n", ")\n", "print(by_category.round(1))\n", "\n", "ax = by_category.plot.bar(stacked=True, ylabel=\"Feed (Mt DM)\", rot=0)\n", "ax.set_title(\"Feed use by category\")\n", "ax.legend(bbox_to_anchor=(1.02, 1), loc=\"upper left\", fontsize=8)\n", "plt.tight_layout()" ] }, { "cell_type": "markdown", "id": "objective-md", "metadata": {}, "source": [ "## Objective breakdown\n", "\n", "Each column is a cost category in billion USD. The `ghg_cost` column only appears in scenarios with a non-zero GHG price, and at these GHG prices it is *negative*: the model achieves net-negative emissions (cropland shrinks and regrowth sequesters carbon), so `ghg_price × net_emissions` is a revenue term that reduces the objective. Production-side categories (`crop_production`, `animal_production`, `trade`, `fertilizer`) shift as the solver reorganises supply under the carbon price. The sum across columns matches the LP's reported objective value (up to the 1% tolerance enforced by the extractor)." ] }, { "cell_type": "code", "execution_count": 6, "id": "objective", "metadata": { "execution": { "iopub.execute_input": "2026-04-17T22:58:05.479878Z", "iopub.status.busy": "2026-04-17T22:58:05.479713Z", "iopub.status.idle": "2026-04-17T22:58:05.491742Z", "shell.execute_reply": "2026-04-17T22:58:05.491235Z" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
scenariobaselineghg_midghg_high
category
animal_production40.3649.2947.52
consumption0.030.030.03
crop_production51.8161.8073.66
feed_conversion0.040.040.03
fertilizer14.0819.9330.22
land_use1.001.861.78
processing0.030.030.03
slack_penalties19.0318.9618.97
trade60.0197.90237.71
ghg_costNaN-417.20-1966.03
\n", "
" ], "text/plain": [ "scenario baseline ghg_mid ghg_high\n", "category \n", "animal_production 40.36 49.29 47.52\n", "consumption 0.03 0.03 0.03\n", "crop_production 51.81 61.80 73.66\n", "feed_conversion 0.04 0.04 0.03\n", "fertilizer 14.08 19.93 30.22\n", "land_use 1.00 1.86 1.78\n", "processing 0.03 0.03 0.03\n", "slack_penalties 19.03 18.96 18.97\n", "trade 60.01 97.90 237.71\n", "ghg_cost NaN -417.20 -1966.03" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "breakdown = load(\"objective_breakdown.parquet\").set_index(\"scenario\").reindex(scenarios)\n", "breakdown.round(2).T" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.13.9" } }, "nbformat": 4, "nbformat_minor": 5 }