{ "cells": [ { "cell_type": "markdown", "id": "e5e22979", "metadata": {}, "source": [ "# `sc-tap` — Side-constrained (capacitated) user equilibrium (Larsson & Patriksson 1995)\n", "\n", "**What.** Side-constrained UE adds a hard per-link capacity `v_a ≤ u_a` on top of the\n", "BPR latency. At the equilibrium the KKT multiplier of a binding constraint acts as a\n", "queueing delay, so travellers equalize the *capacity-augmented* cost `t_a + β_a`, not\n", "the raw cost. `sc-tap` solves the augmented Wardrop problem\n", "(`[larsson1995augmented]`, [docs/REFERENCES.md](../../docs/REFERENCES.md)).\n", "\n", "**Why it is in the benchmark.** It is the capacitated branch of UE (ADR-009): a binding\n", "capacity makes the raw gap non-zero while the augmented equilibrium holds. See the\n", "[model compendium](../../docs/MODELS.md) and\n", "[docs/ARCHITECTURE.md](../../docs/ARCHITECTURE.md) (P1).\n", "\n", "**Scope.** Runs on the built-in side-constrained anchor (demand 10, capacity 4 on link\n", "3→2) and certifies capacity feasibility and the binding-constraint anchor." ] }, { "cell_type": "markdown", "id": "6056da8f", "metadata": {}, "source": [ "## How this notebook is graded\n", "\n", "**A notebook never claims a number it does not compute in that cell.** Every scored\n", "quantity below is recomputed live by the P1 `Evaluator` from the flows the model\n", "emitted, in the cell where it is claimed. Model self-reports are shown only as\n", "provenance and diffed against the certificate as an honesty check, exactly as the\n", "harness treats them ([README](../../README.md), *Certified, not self-reported*)." ] }, { "cell_type": "code", "execution_count": 1, "id": "a4c01ef3", "metadata": { "execution": { "iopub.execute_input": "2026-07-21T13:45:52.813357Z", "iopub.status.busy": "2026-07-21T13:45:52.813015Z", "iopub.status.idle": "2026-07-21T13:45:54.766211Z", "shell.execute_reply": "2026-07-21T13:45:54.765336Z" } }, "outputs": [], "source": [ "# Setup. `sc-tap` is a core model: a plain `pip install -e .` suffices — no\n", "# optional extra, so no guard cell. The inline backend is Agg-based (headless CI\n", "# renders into the notebook); NEVER matplotlib.use(\"Agg\") in-kernel — it silently\n", "# suppresses inline figure capture.\n", "%matplotlib inline\n", "import numpy as np\n", "\n", "from tabench import (\n", " Budget,\n", " Evaluator,\n", " RngBundle,\n", " SideConstrainedModel,\n", " Trace,\n", " sc_two_route_scenario,\n", " viz,\n", ")" ] }, { "cell_type": "markdown", "id": "c362a244", "metadata": {}, "source": [ "## The scenario\n", "\n", "Two disjoint 2-link routes, demand 10, a hard capacity of 4 on the route-A link 3→2.\n", "Plain UE would put f_A = 5.5 there, so the capacity binds: f_A = 4, f_B = 6, with a\n", "queueing multiplier β = 1 + D − 2·cap = 3. Content-hashed (P2)." ] }, { "cell_type": "code", "execution_count": 2, "id": "adec5ab4", "metadata": { "execution": { "iopub.execute_input": "2026-07-21T13:45:54.770006Z", "iopub.status.busy": "2026-07-21T13:45:54.769439Z", "iopub.status.idle": "2026-07-21T13:45:54.774432Z", "shell.execute_reply": "2026-07-21T13:45:54.773922Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "scenario : sc-tworoute\n", "content hash : 0dc8ae19da506625…\n", "total demand : 10.0\n", "side capacities: [1.e+06 4.e+00 1.e+06 1.e+06] (link 3->2 capped at 4)\n" ] } ], "source": [ "scenario = sc_two_route_scenario()\n", "net = scenario.network\n", "\n", "print(f\"scenario : {scenario.name}\")\n", "print(f\"content hash : {scenario.content_hash()[:16]}…\")\n", "print(f\"total demand : {scenario.demand.total}\")\n", "print(f\"side capacities: {scenario.side_capacities} (link 3->2 capped at 4)\")" ] }, { "cell_type": "markdown", "id": "ea7984df", "metadata": {}, "source": [ "## Solve\n", "\n", "The model contract ([CONTRIBUTING.md](../../CONTRIBUTING.md)): a model receives\n", "`(scenario, budget, rng, trace)`, records checkpoints, and respects the budget.\n", "Budgets are hardware-free (iterations / shortest-path calls; wall-clock is recorded\n", "but never the ranking axis, P7). Whatever the model writes into `self_report` is\n", "provenance, not a score." ] }, { "cell_type": "code", "execution_count": 3, "id": "ea19ec9a", "metadata": { "execution": { "iopub.execute_input": "2026-07-21T13:45:54.777041Z", "iopub.status.busy": "2026-07-21T13:45:54.776880Z", "iopub.status.idle": "2026-07-21T13:45:54.795800Z", "shell.execute_reply": "2026-07-21T13:45:54.795323Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "model : sc-tap\n", "emitted flows : [4. 4. 6. 6.]\n", "self Wardrop gap : 2.647e-01 (provenance only)\n", "self augmented gap : 5.099e-11 (provenance only)\n", "self max multiplier : 3.0000 (queue delay, provenance)\n" ] } ], "source": [ "model = SideConstrainedModel()\n", "bundle = model.solve(scenario, Budget(iterations=100), RngBundle(0), Trace())\n", "\n", "final = bundle.final\n", "print(f\"model : {model.name}\")\n", "print(f\"emitted flows : {np.round(final.link_flows, 6)}\")\n", "print(f\"self Wardrop gap : {final.self_report['relative_gap']:.3e} (provenance only)\")\n", "print(f\"self augmented gap : {final.self_report['augmented_relative_gap']:.3e} (provenance only)\")\n", "print(f\"self max multiplier : {final.self_report['max_multiplier']:.4f} (queue delay, provenance)\")" ] }, { "cell_type": "markdown", "id": "6f061d3e", "metadata": {}, "source": [ "## Certify (P1)\n", "\n", "The scored certificate is **capacity feasibility**: the harness recomputes the maximum\n", "capacity violation and confirms `sc_capacity_feasible = 1`. The ordinary Wardrop gap is\n", "*non-zero* — the binding capacity creates a queueing delay, so raw costs are unequal —\n", "and the model equalizes the augmented cost instead (its `augmented_relative_gap ≈ 0` is\n", "provenance). We recompute the binding anchor (f_A = 4, f_B = 6) in-cell." ] }, { "cell_type": "code", "execution_count": 4, "id": "ae2aceb4", "metadata": { "execution": { "iopub.execute_input": "2026-07-21T13:45:54.797883Z", "iopub.status.busy": "2026-07-21T13:45:54.797483Z", "iopub.status.idle": "2026-07-21T13:45:54.803587Z", "shell.execute_reply": "2026-07-21T13:45:54.803115Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Wardrop relative gap : 2.647e-01 (non-zero: binding capacity -> queue delay)\n", "max capacity violation : 6.37e-11\n", "capacity feasible : 1\n", "feasible : 1\n", "binding anchor f_A, f_B : 4.0, 6.0 (recomputed)\n", "plain-UE counterfactual f_A : 5.5 (capacity 4.0 binds below it)\n", "queueing multiplier beta : 3.0 (self-report: 3.0000)\n" ] } ], "source": [ "evaluator = Evaluator(scenario)\n", "metrics = evaluator.evaluate(final.link_flows)\n", "gap = metrics[\"relative_gap\"]\n", "print(f\"Wardrop relative gap : {gap:.3e} (non-zero: binding capacity -> queue delay)\")\n", "print(f\"max capacity violation : {metrics['max_capacity_violation']:.2e}\")\n", "print(f\"capacity feasible : {metrics['sc_capacity_feasible']:.0f}\")\n", "print(f\"feasible : {metrics['feasible']:.0f}\")\n", "\n", "assert metrics[\"feasible\"] == 1.0\n", "assert metrics[\"sc_capacity_feasible\"] == 1.0\n", "assert metrics[\"max_capacity_violation\"] < 1e-6\n", "\n", "# Honesty diff (P1): the (non-zero) raw Wardrop gap self-report matches the certificate.\n", "assert np.isclose(final.self_report[\"relative_gap\"], gap, rtol=1e-9, atol=1e-9)\n", "\n", "# Analytic anchor RECOMPUTED: capacity 4 binds -> f_A = cap, f_B = D - cap.\n", "demand = scenario.demand.total\n", "cap = float(scenario.side_capacities[1]) # the capacity on link 3->2\n", "ref_flows = np.array([cap, cap, demand - cap, demand - cap])\n", "print(f\"binding anchor f_A, f_B : {cap}, {demand - cap} (recomputed)\")\n", "assert np.allclose(final.link_flows, ref_flows, atol=1e-4)\n", "\n", "# The two counterfactuals named in the Scope markdown, recomputed (not quoted).\n", "# Plain (uncapacitated) UE equalizes 1+f_A = 2+f_B with f_A+f_B=D -> f_A*=(D+1)/2.\n", "plain_ue_f_a = 0.5 * (demand + 1.0)\n", "print(f\"plain-UE counterfactual f_A : {plain_ue_f_a} (capacity {cap} binds below it)\")\n", "assert np.isclose(plain_ue_f_a, 5.5)\n", "assert cap < plain_ue_f_a # confirms the capacity actually binds\n", "\n", "# The queueing multiplier beta = c_B(D-cap) - c_A(cap) = (2+D-cap) - (1+cap) = 1+D-2*cap,\n", "# checked against the model's own self-reported max_multiplier (provenance).\n", "beta = 1.0 + demand - 2.0 * cap\n", "print(f\"queueing multiplier beta : {beta} (self-report: \"\n", " f\"{final.self_report['max_multiplier']:.4f})\")\n", "assert np.isclose(beta, 3.0)\n", "assert np.isclose(final.self_report[\"max_multiplier\"], beta, atol=1e-4)" ] }, { "cell_type": "markdown", "id": "99c8085e", "metadata": {}, "source": [ "## Visualize\n", "\n", "Both figures come from `tabench.viz`. Left/top: the side-constrained link flows — the\n", "capped link 3→2 carries exactly its capacity 4. Right/bottom: the emitted flows against\n", "the recomputed binding anchor — on-diagonal at (4, 4, 6, 6)." ] }, { "cell_type": "code", "execution_count": 5, "id": "89f4666b", "metadata": { "execution": { "iopub.execute_input": "2026-07-21T13:45:54.805463Z", "iopub.status.busy": "2026-07-21T13:45:54.805204Z", "iopub.status.idle": "2026-07-21T13:45:55.091608Z", "shell.execute_reply": "2026-07-21T13:45:55.090951Z" } }, "outputs": [ { "data": { "image/png": "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P26MyX39BySUecLcli2bERoahkaNGuPEiePljpmfnw+VyhNy+Z3PaNB4eRl/KKjscUewa6yL9AbEvJNmz1WiSG+AUs4zConIOfn6+qJPn77o06cvbt68ibNnM3Dp0iXoioqgUCoRHByM8PB6dr0yWWU8PDzw8ScLodPprB7LYDDcd2W6sraqsy9exI87tuODD+ZUOqanpycKCwug1+uNQdZqc6FWq8163BHsFuvYBl5IOpVrr9UZKeUCYht42X29RERi8/HxwYMPNnP0NMzi4eFh193wp079iZycHEycOAEAoNPpkZ+fh9FPjMSUV6eifv0I47K1a4dALpfjXGYmwuuVXCs9MzMTdevWNetxR7BbrBMH1bLXqoiIyM20jWqHpv/3oPHrtLRULFq4EB/MngtfHx+TZVUqFaKi2mHNmtWYOHEycm7m4Ifvv8PAxweZ9bgjCDpdUflH4YmIiJzQiRPHMfuD97F8xUoAwMx330GDhg3Rt28/ACXvo16yZBEOHzoEDw8PdOvWHf0HJBifX9nj9sZYExERSRzfZ01ERCRxjDUREZHEMdZEREQSx1gTERFJHGNNREQkcYw1ERGRxDHWREREEsdYExERSRxjTUREJHGMNRERkcQx1kRERBLHWBMREUkcY01ERCRxjDUREZHEMdZEREQSx1gTERFJHGNNREQkcYw1ERGRxDHWREREEsdYExERSRxjTUREJHGMNRERkcQx1kRERBL3/zVRpavYHgM/AAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAcIAAAHXCAYAAAAvA1ptAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABKoklEQVR4nO3dd3gUdf4H8Pf2bEsvkJDQwUMiVmqC3omI9F7VO0QR5E6xgwp4cooNz1OQIipIUak/wAIqooAKqEhRAREwAQJJNj27s31+f8SsCaHsJruZLe/X8/A87O7szGc25Z1vme/InE6HCCIioggll7oAIiIiKTEIiYgoojEIiYgoojEIiYgoojEIiYgoojEIiYgoojEIiYgoojEIiYgoojEIiYgoojEIiepp2rRpmDx5slfbrly5EllZWQGuqH6WLl2Gdu3aIzU1DQcOHJC6HKJGp5S6ACKSjsPhwOOPP44NG9aje/fuUpdDJAm2CInClNPphCheeinh/Px8WK1WdOjQoV7HcDgc9XofUTBhEFLYyszMxNy5r+Cmm/6Kpk1TMWzYcBQXl+Chhx5GRkYGrrnmWuzZs8ezfUVFBe6//wG0a9ce7dq1x9SpD8JsNnte//rrr9GtW3ekpqZh3LjbUVFRWet4J06cxKhRo9CqVWt07NgRL730Etxu92XrnD9/Pvr3H1DruXXr1uP6628AAOzfvx8339wLzZqlo2XLVhg1atRF9xUTE4vFixeja9duaNo0FZWVlRet68CBA7jhhs4AgA4drkSnTlcDACorK/HII4/iyis7onXrNrj33ntRVlYGAMjJyUFMTCxWrFiBq6++Bn/5SwdPjf3790fz5i1w9dXXYOnSZZ6a5syZg1GjRuGRRx5FRkYGrryyI9atW+953e12Y+HChbj++huQltYM11xzLT7//HMAgCiKntcyMjLQr18/HD169LKfKZEvGIQU1jZsWI8VK5bjyJHDOHPmDHr16oWbbroRJ0+exIgRw/Hggw96tp02bRpOnDiB3bu/xbfffoNjx37F9OlPAABKSkoxZswY3HPPPcjNzcHtt4/D6tWrPe+1WCwYNGggbrzxRhw5chiffPIJ1q1bjxUrVly2xhEjRmD37t04ffq057kPPvjAE3iPPvoY+vTpg9zcHBw5chj333//Jfe3Zs1abNiwHqdPn4JCobhoXZ06dcLu3d8CAH755WccOLAfADBlyj9RUlKCr7/ehYMHD8DhcOLRRx+tdYxPPvkEX365HQcPHkB+fj4GDx6Cu+6agBMnjmPVqpWYM2cOvvzyK8/227Z9ge7du+PkyZN46qkncf/996OiogIAsHjxYrzxxgK8+eabOH36FDZt2oj09HQAwJIlb2H58uX44IP3ceLECQwYMACjRo2G3W6/7OdK5C0GIYW1u+6agGbNmiEmJga33HIL4uPjMXDgQCgUCgwdOhS//HIYdrsdbrcbq1evwdNPz0J8fDwSEhIwc+ZMvP/++3C73di6dQuaNGmKu+4aD6VSidtuuw09e/b0HGfr1k8RExOL++67D2q1Gunp6Zg0aRLWrFl72RqTk5Nx0003YfXqNQCAwsJCbN++HaNHVwWhSqXEqVOncPbsWWg0GvTo0eOS+3vggfvRtGlTaDQan+symUzYtGkTXn75ZcTGxkKv1+PJJ5/A+vUb4HK5PNs9/vjjiI2NhU6nw/vvf4AePbpj6NAhUCgU6NChA8aNG4c1a9Z4tu/UqZPn9dGjq4Lst9+OAwDeeuttTJ8+DddcczVkMhnS09PRvn17AMCSJUvwxBNPoHXr1lAqlZg0aRKsViu+//77y36uRN7iZBkKa8nJSZ7/63TaWo+1Wi1EUYTFYoHdbofdbkdGRobn9RYtWsBms6GoqAhnz57ztFKqpaenw2azAgByc3Nx+PDhWu93u0WkpaV5Vefo0aPx0ksv4aGHHsTatWvRpUtnz/HmzZuPF154HjfeeBNiY2MxceI9mDhx4kX31axZM8//fa0rJycXbrcbnTpdVet5uVyO/Pz8Gsf487PIzc3Fp59+VusYLpcb3bp18zxOSUn2/F8mk0GrjUJlZVWL8NSpU2jduvUF68nNzcXEifdCofjzb3a73YG8vLwLnzxRPTAIiQAkJiZCrVYjNzcXyclVv7Rzc3Oh0WiQkJCApk2b4NSpU7Xec/r0aSQlJQIA0tLScPXVV2Pbts/rdfx+/friwQcfxI8/7sf773+Au++e4HmtVauWWLRoEURRxO7duzFo0GDccENnXHPN1Rfcl1z+Z2j4WlezZmmQy+U4cuQIdDpdnddzcnL+OIas1jH69++Pd95526tjnC89PR0nTpxA586d67yWlpaG55+fg169etVr30TeYNcoEarCY8SI4XjmmdkoLi5BcXEx/v3vZzBq1CjI5XL07n0rzp49i6VLl8HpdGLr1q3YsWOH5/19+tyKgoICvPnmElitVrhcLhw7dgw7d+706vharRYDBw7E7NmzcfToUQwePNjz2nvvvYeCggLIZDLExMRALpfXaiFdiq91paSkoF+/fnj00UdRVFQEoGpm6ebNmy96jNGjR2HHjh3YuHEjHA4HHA4HDh48iB9+2OdVjePH/wPPP/8CDh48CFEUcerUKc+EmHvuuRvPPvscjh07BgAoLy/HRx995BlfJPIHBiHRH55//nlkZGSgS5cu6NKlK1q1aoXnnnsWABAfH4dVq1Zi4cKFyMhojnfffRcjRozwvNdgMGDjxo346quvkJl5FVq2bIkJE+5Gfn6B18cfM2Y0tm3bhn79+sFoNHqe//LLL9GjRxZSU9MwZsxYzJ79DK666qpL7OlP9alrwYI3EBMTg5tu+iuaNUtHnz63Yf/+i19on5qaivXr1+Gdd5aiXbv2aNOmLR555FGvw2rSpEmYMOEu/OMf45GW1gyDBg3GqVNVE4cmTpyIsWPH4vbb70CzZuno3LmLV+OuRL6QOZ2OS19oREREFMbYIiQioojGICQioojGICQioojGICQioojGICQioojGICQioogWckFYvSTW5W4vQ0RE5I2QC0JBEPCPv98BQRAavK/iokI/VBQ6eL7hjecb3ni+3hMEC+w2m9fbh1wQ+pM394oLJzzf8MbzDW88X+8IghnlZSWw2rxvLEV0EBIRUfioCsFSaLU6GI0xXr+PQUhERCFPECx/hmB0LGQy2eXf9AfehomIiEKeSqWCTm+AwRDtUwgCbBESEVEIs9mscLvdUCpVMBpjfA5BgEFIREQhShAsKC0pgiCYG7SfiOwaPV3swNZDFfg9X4BBX4jWyWr07mhAtFYhdWlEROSFqjHBEmi1Ouh0hgbtK6KCsKjSiZc/MWHvCQuAqum5cnnVzUOXfFWMAVdHY+Jf46FS+N60JiKixlEzBH2dGHMhEROERZVO3L/iLM6VOWCIkqNPphHNjVZoDTHYdcyCnUfNWP9DGc6WOfD04BQoGyEMS0tLsWHD/2H8+H8E/FhEROHC7XL5LQSBCBojnLvFhHNlDnTK0GLlvemY/LcEdG6hxF//YsCMgcl4c3waEgxKfPubBeu+L2uUmsrKyrB06dJGORYRUahzOp0AAL3B6LcQBCIkCE8XO7DnuAV6jRzPDEmGIaruWGDzRDWeHJgEANi4rxwut29rmVZWVmLo0GHo1q07unXrjs8/34atW7ciKysbPXr0wIQJd9d5z+zZ/8HRo0eRlZWFF154AeXl5ejffwCys3siKysL27d/CQDYuXMnBgwYiKFDh+G6667HU0/N8P1DICIKYj/mCLjn7dPoPvs4bnj6NwxYUI573j6NH3OqVogRBDOKTPmw26uWTvNXCAIR0jX66c9V44C3ZhovGILVrmoWhdbJahwvsONArhXXttB6fYxt27YhPj4e69evgyiKOH36NPr1648tWz5BamoqiotL6rxnxoyncOzYMXz11ZcAAIfDgffeWwWj0Yj8/HwMHToUX3/9NQDg+++/x969e9C0aVMMGDAAO3fuRHZ2tg+fAhFR8HE63bhveR72nqi9JJrdBXx3UsD4JadxXXM1nukrh1FvgEql9nsNEdEiLCirak5f1SzqktvJZDJk/rFNfrnTp2NceeWV+OabbzBjxkx89913OHToEHr27InU1FQAQHx83GX3IYoiZs6chW7dumPYsGE4duw32O12AECXLl2Qnp4OpVKJQYMGYffu3T7VR0QUjCYuqwpBmQzolBGF/41LxdZHWuA/A7TolBEFGYDvc+x4YrPLr92hNUnWInQ4HHh32VIcOLAfKpUazVu0wP33PxCQY8nlVR+cw3X57k77H9sofPwToU2bNti1aye2bNmCJ554EsOHD6uzjcvlwo033ggAGDNmDPr371/r9dWrV8NiMWPnzh1QKpVo2bKVJwhrfvGr/s+ZrUQU2j77qQL7fq8KwX8PScHAa6I9r3VrqUL/G5Lx/s7TePFzKw6cduDznytxS0ej3+uQLAhXrlwBmUyG/702DzKZDKUldbsO/aVNshpbAez61Yy/dbj49SYOl4jdv1n+eI/Gp2OcPXsWcXFxGDt2LDSaKHzxxTbs3LkLeXl5nq7R+Pg47Nq1y/Oe4uJiVFZWeh5XVFQgKSkZSqUSW7ZsQXFxsee1PXv24MyZM0hJScGmTZswffp0n+ojIgo2b+2o+r2f1VZXKwSBqh4ymUyGUVlp+DrnLHb9asFbO0rCJwitViu2f7ENCxYu9rR0YuMu33VYX7d0NODNr4qx65gFJwvtaJl04T7mTw5WoNjsQoe0KLRK9q0f+ueff8GMGTOgUMgRFaXFvHmvY8CAARg5ciREUUSHDlfizTcX13pPfHw8OnXqhG7dumPw4EG4++67MXLkKHTr1h1du3ZFenozz7bXXXcd/vWv+5GTk4PbbrsNWVlZvn8QRERB5Nf8qokv9/dOrPW8IFjgdrvgdrsglyvwQO9E7Po117O9v0kShPn552AwGLBh/TocOnQIarUaI0aORGbmVXW2dTgccDgcnsf1uSGvMUqBwddGY/XeMjz2wVlM75+Ma5r/OV7ocIn4+EAF5m8rAgCM7er97Tuq9ep1M3r1urnWc1dccQX69Olzyfe9/fZbtR5v2/b5BbeLjY3F8uXv+lwXEVEwsjvdcLsBuRxom/JnD1z1xfIymQwyWdUYVdsUDeRywO0GrHY3otT+nd4iSRC6XG4UFhaiWXo6xt1+B06ePIH/zH4Gc195FbGxsbW23bBhPdauWV1nH0WmAli03s/qHNxBxMlzcuz53YGH3zuDjDg52qfI4HLn4IdTTpQJVWODd3bRoG1MJUyFlZfZY+MpKy2B3WaDqTC/QftxuZwN3kco4fmGN55vaKu+8a7bDfyWcxaxOjncbjdE0Q2ZTAZRFFFkKgAAlFqqQhMAykvyUSn3LggTk1K82k6SIExMTIRMJkd2VtX0/5YtWyE5ORm5uTl1gnDIkKHo33+A57EgCJg8aSISEpOh0+l8Ou6zo0Rs+KEcG34ox+kyB3JLXJDLRQAyZKZrMaZrDLq10Tf09Pyu/4CB6D9gYIP3YyrM9/obIxzwfMMbzzf0NYk5iXNlTnxwUI5pfRNhKjznWTGmyFTgOd+Fm/L/2F6J5JSmfq9DkiCMjo5GZmYm9h/Yj2uvvQ4F+fkoKChAs7RmdbZVqVRQqVR+Oa5CLsPwG2Iw9LpoHDptxbFTRYiLi0WrJPVFxw2JiCgwRnSOxuufFWPTvgqM7RqHZglJUCpVtWbJnyy0Y/OPFZ7tA0GyWaP3TJyIhQvewMoVKyCXy3DPxHsRn5DQKMeWy2XolKFFmlaFxKSGrVpORET1c0f3OLz3bSkKK90YuyAXd2bFYXxWHKLUMtidbiz4ogjLdpXA5hSRaFTgju6BmVQpWRCmpDTBrKefkerwREQkMZdDwKvD1PjXGhtKLCIWbS/GWztKEKWSQbC74fpjXDDBoMDKe9OhVgZmDZiIWFmGiIiCiyCYUV5WiowkAz56qCVGd41BjE4Op0tEpdUNpxuI1ckxtmsMNj/YAikx/hkiu5CIWGuUiIiCh81mRXlZaa1bKU3rl4xp/ZJxqsiOwgonFI4ydGrr/4kxF8IgJCKiRqVWa2CMjoVWq6uzdmh6ghrpCWqYCisarR52jRIRUaMQBAvsdjtkMhl0On1AFtCuDwYhEREFXPWKMTarRepS6mAQEhFRQFWHoFarg8Ho+xKWgcYgJCKigKkZgoG6n2BDcbIMEREFjFKpgk5ngMEYHZQhCDAIiYgoAGw2K9RqzR/LZAZfd2hN7BolIiK/EgQzSkuKIFjMUpfiFQYhERH5TfWKMVqtDlpd8N3N50IYhERE5Bc1QzBYJ8ZcCIOQiIj8wuV0hVwIApwsQ0REDeRyOaFQKKE3GAEgpEIQYIuQiIgaQBAsMBXme5ZOC7UQBBiERERUTzUvllepAnebpEBjEBIRkc9CYcUYbzEIiYjIJ6IowmyuCIsQBDhZhoiIfCCKImQyGeLjk0J2TPB8bBESEZFXBMGMoqICuN1uyOXysAhBgEFIREReqL5YXq1Sh00AVmMQEhHRJYXqijHeYhASEdFFuVzOsA5BgJNliIjoEhQKJeLik6BSqcIyBAG2CImI6AIEwYLKinKIogi1OvzGBWtiEBIRUS3VF8u73S6pS2kUDEIiIvIIpxVjvMUgJCIiAIDNZo24EAQ4WYaIiP6gVmtgNMZAq9NHTAgCbBESEUU8QbDA4ai6jZJOb4ioEAQYhEREEa3qYvkSWAVB6lIkwyAkIopQNVeMMRijpS5HMgxCIqIIVDU7NLxXjPEWJ8sQEUUghUIJnU4PgzEmokMQYBASEUUUm80KtVoDtVoNtVotdTlBgV2jREQRQhAsKC0pgiBYpC4lqDAIiYgiQM0VY7RandTlBBUGIRFRmIvEZdN8wSAkIgpzToedIXgJnCxDRBSmXC4XFAoFDMYYAGAIXgRbhEREYUgQzDAVnvMsncYQvDgGIRFRmKm5YoxSqZK6nKDHICQiCiM1Q5Bjgt5hEBIRhQlRFGGurGAI+oiTZYiIwoAoipDJZIhPSIJMJmcI+oAtQiKiECcIFhQXFcLtdkMuVzAEfcQgJCIKYdUXy6tUKgZgPTEIiYhCFFeM8Q8GIRFRCHI6nQxBP+FkGSKiEKRUKhEXnwiVSs0QbCC2CImIQoggmGGurAAAqNUahqAfSNYinHLfJCiVKs+NIYcMGYruPXpIVQ4RUdCrebF89eUS1HCSdo0++OBDaNGypZQlEBGFBLfbzRVjAiToxwgdDgccDofnsSAIElZDRNT4bFYrRNHNEAwQmdPpEKU48JT7JkGr1UIUgTZt2mDcuNsRHRNTZ7vVqz/A2jWr6zw/d+5caLXaBtXgcjmhUAT93wJ+w/MNbzzf8CWKItxuV0RdLO+Pr29iUopX20kWhKbCQiQmJcHpdOL999/DqdwcTH/iqTrbXahFOHnSRCxdthw6na6BNeR7/UGFA55veOP5hh9BsEClUkGpVEXE+dbUmOcr2azRxKQkAFVTgPv164/Dhw9fcDuVSgWdTuf519BWIBFRKKi+WF4QLFKXEvYkCUKr1Qqz2ex5/PWunWjJSTNERABqrxhjMERLXU7Yk6SDvaysFHNffhlutwuiCKSkpGDKP++XohQioqDCZdManyRBmJLSBC++9LIUhyYiCmoKuQJanR5GYwxDsJFExpQrIqIgZ7fboFKpodZooNZopC4nonCJNSIiiQmCGSXFJlg5MUYSDEIiIgnVXDYtStuwS8KofhiEREQSqRmCnBgjHQYhEZFEHHY7QzAIcLIMEVEjc7lcUCgUMEbHAgBDUGJsERIRNSJBsMBkyofD4YBMJmMIBgEGIRFRI/FcLB+lhVLJDrlgwSAkImoEXDEmeDEIiYgCTBTdqKwoZwgGKbbNiYgCSBRFyGRyxCckQS6XMwSDEFuEREQBUr1ijOh2Q6GInJvqhhoGIRFRAFRfLK9UKgEGYFBjEBIR+RlXjAktDEIiIj9yOh0MwRDDyTJERH6kVKoQG5cAtVrDEAwRbBESEfmBIFhgMVcCADSaKIZgCGEQEhE1UPXF8k6nA6IoSl0O+YhBSETUAFwxJvQxCImI6slqFRiCYYCTZYiI6kmt1sBgiIZOb2AIhjC2CImIfGQVLHA6nZDL5dAbjAzBEMcgJCLygSCYUVZWAqtglroU8hMGIRGRl2quGKM3REtdDvkJg5CIyAtVs0O5Ykw44mQZIiIvyOVyaHV6GI0xDMEwwyAkIroEu90GlUoNjSYKGk2U1OVQALBrlIjoIgTBgpJiE6xWQepSKIAYhEREF1BzxZioKK3U5VAAMQiJiM7DZdMiC4OQiKgGURRht1kZghGEk2WIiP7gdrsglysQHRMHAAzBCMEWIRERqi6WNxXmw+l0QCaTMQQjCIOQiCJe9YoxUVFaKBTsKIs0DEIiimg1l03jmGBkYhASUcRyu92orChnCEY49gEQUUQSRRFyuRzxCUmQyxUMwQjGFiERRRxBsKC0pAiiKEKhUDIEIxyDkIgiSvXF8gqFQupSKEgwCIkoYnDFGLoQBiERRQSHw8EQpAviZBkiiggqlQqxsfFQa6IYglQLg5CIwpogmAER0Or00PAuEnQB7BolorBVfbG8w2GXuhQKYgxCIgpL568YQ3QxDEIiCjtWq8Bl08hrHCMkorCjVquhNxih1xsZgnRZDEIiCimni+04WeiAzeJE9xg3dOo/O7asVgEqlRoKhQIGQ7SEVVIoYRASUdBzu9149+syfLC3FGdLnQAAEYDy/07guhZReKhPIprHulFeVgK93giDkSFI3mMQElFQc7vdGP/WGRzItQIA5DIgWiuH3emGxS5i7wkB4xaewkN/VWPANdHQG4wSV0yhhkFIREFt6qpzOJBrhVwGDLwmGv+6JQEJBiVMhfk4XGLAix/lI7fYhblf2HFFcw2ui+GYIPlG8lmj27d/gZEjhmHv3j1Sl0JEQeZMiR07fzUDAGYNTsbTQ1KQYPjz7/fsdnp8cG8KWiUo4BaBl7eYpCqVQpikQVhQUIBtn3+Otm3bSVkGEQWp1z8rhigCzRNUGHRtTK3XRFGEKIrQ6fSYMyoVAHDkrA35ZQ4pSqUQJlkQut1uLFr4Bu66awJUKtVFt3M4HLBYLJ5/giA0YpVEJKVDp6t+3gdeW3vcTxDMcLtdsNmqxg2vaBqFZKMSoghsP2xu9DoptEk2Rvjhh5vRvv0VaNW69SW327BhPdauWV3n+SJTASzahq0b6HI5YSrMb9A+QgnPN7yF4/naHC6IALSwwFRYNVvU7XZDFN0AgIryMlRWlAMANEo3RAAFxeUwFdokqjhwwvHreyn+ON/EpBSvtpMkCHNzc7Fn9278+5nZl912yJCh6N9/gOexIAiYPGkiEhKTodPpGlSHqTDf6w8qHPB8w1s4nm+01gpTpR0nStVITEqptWyazWZDUnITAFXhWGKphAxA67RYJCaF3+UT4fj1vZTGPF9JgvDI4V9QWFiAB+7/JwCgtLQUixedQmlJCXrf2qfWtiqV6pJdp0QUvm67yoD524rx6aFKTO+XCJvV6lk2zW4q8Gy3eX8FKm1uaJQy3HKlQcKKKRRJEoS9b+1TK/CenjUTffv1Q+fOXaQoh4iC1B3d4/DmVyUot7rxwKpz+N/YJpDL5bWWTfst34YXPioEAGS310OtlHwyPIUYfscQUdCKUstx/81V3Zy7frWgz9xcLPqyGL+etWJfrhP3r8jD6AWnYLGLiNMrMHNQksQVUygKigvqn/73M1KXQERBSBAsuKWNAw6HHvO+tKCwwomFXxRj4RfFEAFUtwubxiqx7J50RGuD4lcahRh+1xBRUBIEC8rLSqDV6vCPm2IxpIsLC7cX4/OfK2G2uSGDiPR4DcZnx6HPVVxWjeqPQUhEQcftdqOivKzW/QRjdUpM65eMaf2SAUTeLEoKHAYhEQUVURQhl8sRn5AEhULB+wlSwHGyDBEFDUEwo6y0GKIoQqlUMgSpUTAIiSgoVF8sL5fz1xI1Ln7HEZHkaq4YUz0mSNRYGIREJCmHw84QJElxsgwRSUqpVCEmNh4aTRRDkCThc4tw8+bNKC0tDUApRBRJBMECq2CBTCZDVJSWIUiS8TkIX355Ltq2bYeePW/EU0/NwKefforKyspA1EZEYar6Ynm73S51KUS+B+FXX32JX3/9FY899ijsdhtmzXoaLVu2Qu/etwaiPiIKMzVXjDFGx1z+DUQBVq8xwri4WLRr1w5nz57DuXP5yMvLg9vt9ndtRBRmrFahRghyYgwFB5+DcMKEu/H1118jISEeN954I8aMGY15815HdHT43QiTiPxLpVJDrzdCbzAyBClo+ByE27dvR3R0NHr1ugXZ2dno3r1bg+8UT0ThzWoVoFapoVAoYDDyj2YKLj6PEZ44cRwrVixHSkoylix5E5mZV+HWW/vgueeeC0R9RBTiqpdNswhmqUshuqB6jRF27NgRLVq0QJs2bdCyZUusXLkS3333HZ544gl/10dEIazmijF6PW+VRMHJ5yB8+ul/Y9euXThw4ADatm2D7OxszJ8/H1lZ2YGoj4hCFJdNo1DhcxCWl5djypQpyM7OQmJiYiBqIqJwIIIhSCHB5yB85ZW5nv8XFRUhISHBrwURUWhzOBxQqVTQ6vTQQi91OUSX5fNkGUEQMHXqg2jSpCnatGmLJk2aYurUB2E2cyCcKNIJggXFRQWwWQWpSyHyms9B+MQTT+K3345h06aNOHr0CDZv3oTjx4/jqadmBKI+IgoRNVeMUWuipC6HyGs+d41+8skn+OabbxAfHwcASE5OxrJlS9GtW3f897+v+L1AIgp+tZdN45gghRafW4SiKEIur/1NLpPJIYqi34oiotAhiiKsgoUhSCHL5yC89dZbceedf8e+fT/CZDLhhx/2Yfz48ejTp08g6iOiIOZ2uyGTyRAbl8AQpJDlcxA+99yzSE9vhj59+qBt23bo27cv0tJS8eyz/wlEfUQUpATBjCJTPlwuJ2QyGUOQQpbPY4QGgwHz58/HvHnzYDKZkJiYyB8AoghT82J5uVwhdTlEDVKvJdYAQCaTISkpyZ+1EFEI4IoxFG68CsKMjOZefbPn5Pze0HqIKIi53S5UlJcxBCmseBWEq1atDHQdRBTkqmaMKxCfkASFQskQpLDhVRDOmvU0tm37HADw/PPPY9q0aQEtioiCiyBYYLNZERMTB6VSJXU5RH7l1azRY8eOwel0AgDmzZsf0IKIKLhUXywvZwuQwpRXLcLs7CxkZWWjdevWEAQB48bdfsHtVq5c4dfiiEhaXDGGIoFXQfj2229j48aNyMnJwaefforMzI6BrouIJGa32xiCFBG8CkKNRoORI0cCAEpLyzhGSBQBVCo1omPiEBWlZQhSWPP5OkKuIEMU3gTBArlMBk2UFlqtTupyiALO5yXWiCh8VV0sXwKb3SZ1KUSNhkFIRADOWzHGGCN1OUSNhkFIRLAKFi6bRhHL5yB8880lF3z+gQemNrQWIpKISqWGXm9kCFJE8jkI58+fj40bN9Z67qGHHsbPP//st6KIqHFYrQLcbjcUSiUMxmiGIEUkn2eNrl27BgMHDkJCQgKysrLw2GOPYd++fdi48f8CUB4RBUr1xfIGQzT0BqPU5RBJxucgbNOmDZYvfxfjxt2Onj2zceTIUWzatBExMRxcJwoVNVeM0ekNUpdDJCmvgvCnn36q9Vij0eDee+/FwoULsWTJmzh9+jROnz6Njh254gxRsOOyaUS1eRWEWVnZkMlkEEWxzmsDBgwEUHWj3pKSYv9WR0R+J4puhiBRDV4FYWlpSaDrIKIAczodUCpV0OkMEEWRIUj0B15HSBQBBMGMIlMBbDYrADAEiWrwebJMXl4enn32Wezfvx8VFZW1Xjt48IDfCiMi/6i5YoxarZG6HKKg43MQTpw4EVqtDlOnToVOxwV5iYJZrWXTOCZIdEE+B+H+/Qdw4sRxqNXqQNRDRH4iiiIEi4UhSHQZPo8RXnHFFcjPzw9ELUTkJ6LohkwmQ1xcAkOQ6DJ8bhEOGDAAY8aMwd1334Pk5KRar/Xt29dvhRFR/QiCBZUV5YhPSIJCoZC6HKKg53MQLllStej23Llzaz0vk8l8CsL/zH4GpaUlkMnk0Gq1GH/XXWjZspWv5RBRDTUvlpfLOSmcyBs+B+GhQwf9cuAHH3oYer0eALB3zx68MX8eXnr5Fb/smygSud1urhhDVA8+B6G/VIcgAFgsZgAX/qF1OBxwOByex4IgBLo0opDjdrm4YgxRPXkVhLfe2gdbt24B8Odyaxeyc+cOnw4+7/XX8PPPVeuYTp/+5AW32bBhPdauWV3n+SJTASxarU/HO5/L5YSpMHIm/vB8w5/NZoPdVCB1GY0i0r6+PF/fJSaleLWdzOl01F1A9Dxr1qzBiBEjAACrVq266HZjx471srzavvxyO7795mtMf+KpOq9dqEU4edJELF22vMHXMZoK873+oMIBzzf8CIIZdrsd0dGxKDIVhP351hQJX9+aeL6B41WLsDoEgfqH3aXcdNNf8ebixaioqIDRWPu+aCqVCiqVyu/HJAp1NS+WJ6L68yoIP/74Y6925u2sUbPZDJvNhvj4eADA3r17YDQaYDDwvmhE3uCKMUT+41UQPv74tMtu48vlExaLGa/MnQu73Q65XIbo6GhMm/YEf5iJvGC32xiCRH7kVRD665KJaklJyZjz/At+3SdRpFCp1IiOjkWUVscQJPIDXnFLFCIEwQK7zQaZTAatTs8QJPITBiFRCKheMcZq43W0RP7GICQKcjWXTTMaY6QuhyjsMAiJgpi1ZghyYgxRQEi2xBoRXZ5SpYJOb4DBEM0QJAoQr4LwUsuq1eTrEmtEdGE2qxUqtRpKpYrdoUQB5lUQ3nff5EDXQUR/qL5Y3mCMhl5vvPwbiKhBvArCQCyrRkR11VwxRqfjSktEjaFek2VWrFiBgQMHoXv37gCAXbt2Yf36DX4tjCjScNk0Imn4HIQvvfQy3njjDQwbNgynT58GADRp0gSvvfaa34sjiiRuF+8nSCQFn4Pw3XffxZo1a/D3v9+J6pvptmrVCidPnvR3bUQRwel0AgD0BiNDkEgCPgehxWJBkyZNAMDzA+twOKDRaPxbGVEEEAQLikz5sNttAMAQJJKAz0F4ww3XY8mSJbWeW758Bbp06eK3oogiQc0VY1QqtdTlEEUsny+onzPneQwcOBArV66C2WzGLbf0RkFBATZu/L8AlEcUngSuGEMUNHwOwpYtW2Dv3j3YuvVT5ObmIi0tDX363Aq9Xh+I+ojCjiiKsJgrGYJEQaJeS6xptVoMHjzI37UQhT1RFCGTyRAXnwiZTMYQJAoCXgXhlClTvNrZ/PnzG1QMUTgTBDPMlRWIT0iCXK6Quhwi+oNXk2Wio6M9/2QyOdasWYv8/AKo1RoUFBRi7dp1/MEmuoTqi+XVag1kMt70hSiYeNUinDNnjuf/d9xxJ959dxn69OnjeW7r1q1YvnyF/6sjCgNcMYYouPn8p+n27dvRu3fvWs/16tULX375pb9qIgobLpeLIUgU5HwOwoyM9Dqtv5UrVyI9Pd1vRRGFC4VCgfiEJIYgURDzedboSy+9hDFjxmLBggVIT0/HqVOnkJeXh/feWxWI+ohCkiBY4HTYYTDG8GJ5oiDncxD26NEDBw8ewJYtW3DuXD6aNm2C3r1vRVxcbADKIwo9NS+WJ6LgV6/rCGNjYzF69GgUFRUhISHB3zURhSyuGEMUeuq16PYDD0xFkyZN0aZNWzRp0hRTpz4Is9kciPqIQobdZmMIEoUgn4PwySefwvHjv2HTpo04evQINm/ehOPHj+Opp2YEoj6ikKFSq2GMjmUIEoUYn7tGP/nkE3zzzTeIj48DACQnJ2PZsqXo1q07/vvfV/xeIFGwEwQLFAoF1GoNdDquuUsUanxuEYqiCLm89l+7Mpkcoij6rSiiUFF1sXwJbFZB6lKIqJ58DsJbb70Vd975d+zb9yNMJhN++GEfxo8fX2ulGaJIUHPFGIMxRupyiKiefA7C5557FunpzdCnTx+0bdsOffv2RVpaKp599j+BqI8oKFXNDuWKMUThwOcxQoPBgPnz52PevHkwmUxITEzkLwGKOEqlCjqdAQZjNL//iUJcva4jBKrWUNRoNKioqPA8Fx0d7ZeiiIKVzWaFWq2BSqWCSsXuUKJw4HMQfvfdd5g6dSoOHz7imSBTfbPRkpJivxdIFCyqL5Y3GmOg0xukLoeI/MTnIJw0aTKGDx+Gt99+G1qtNhA1EQWdmivGaHmJBFFY8TkICwsLMW3aNI6LUMTgsmlE4c3nWaMjRozAxx9/HIhaiIKSy+lkCBKFMZ9bhE899RR69eqF//3vNSQlJdV6beVK3qWewofL6YRCqYTeYAQAhiBRmPI5CCdOnAi1Wo2uXbtCp+MYIYWn6ovl4+IToVZrpC6HiALI5yD8+uuvcfToERiNxkDUQyS5mivG8Ka6ROHP5zHC9u3bo7KyMhC1EEmuZghyTJAoMvjcIhwwYABGjhyFCRMmIDm59hhh3759/VYYUWMTRRFmcyVDkCjC+ByE77zzDgBg7ty5tZ6XyWQMQgpZ1YtCxMcnQSaTMQSJIojPQXjo0MFA1EEkGUEww2yuRHx8EuRyn0cLiCjE8aeeIlr1mKBapWYrkChCMQgpYnFiDBEBDEKKUC6XkyFIRAAacBsmolCmUCgRF58ElUrFECSKcGwRUkQRBDMqK8ogiiLUao4LEhGDkCJI9Zig2+2WuhQiCiIMQooInBhDRBfDIKSwZ7NZGYJEdFGSTJax2+149dVXcOb0aajVakRHx+CeeyaiSdOmUpRDYU6t1sBojIFWp2cIElEdks0a7dXrFlxzzbWQyWTY8snHWLhwAZ7+9zNSlUNhyO12w+GwQ6VSQ6c3SF0OEQUpSbpG1Wo1rr32Os9f523btUNhYcEFt3U4HLBYLJ5/giA0ZqkUogTBDFF0w8rvFyK6jKC4jvDjjz7C9dffcMHXNmxYj7VrVtd5vshUAIu2YTcGdrmcMBXmN2gfoSRSztftdkMUq2aGWq0CbDarxBU1jkj5+lbj+YY3f5xvYlKKV9vJnE6H2KAjNdD69evww/ffY+asp6HR1L0TuMPhgMPh8DwWBAGTJ03E0mXLodPpGnRsU2G+1x9UOIiE8xUEC8rLSqDV6mCz2ZCU3ETqkhpNJHx9a+L5hrfGPF9JW4SbNm3E3j17MGPmrAuGIACoVCqoVKpGroxClUKhhE6nh8EYA7vpwt3tREQ1SRaEH27ehK937cKMmbOg1+ulKoPChM1mhVqtgVqthlqtlrocIgohkgRhUVER3n13GVJSUvDvp2cBqGr5PTfneSnKoRBXfbG8MToWOh3/qCIi30gShAkJCVi9Zp0Uh6YwU3PFGK22YWPGRBSZuLIMhSwum0ZE/sAgpJDldDgYgkTUYEFxHSGRL1wuFxQKBQzGGABgCBJRg7BFSCFFEMwwFZ6Dw2GHTCZjCBJRgzEIKWTUHBNUKnltKRH5B4OQQgInxhBRoDAIKeiJoghzZQVDkIgCgpNlKKiJogiZTIb4hCTIZHKGIBH5HVuEFLQEwYziokK43W7I5QqGIBEFBIOQglL1mKBKpWIAElFAMQgp6HBiDBE1JgYhBRWn08kQJKJGxckyFFSUSiXi4hOhUqkZgkTUKNgipKAgCGaYKysAAGq1hiFIRI2GQUiSqx4TdLmcEEVR6nKIKMIwCElSnBhDRFJjEJJkbFYrQ5CIJMfJMiQZlVoNgzEaOp2BIUhEkmGLkBqdIFjgdDogl8uh1xsZgkQkKQYhNaqqMcESCIJF6lKIiAAwCKkR1ZwYYzBES10OEREABiE1EkGwcGIMEQUlTpahRqGQK6DV6WE0xjAEiSioMAgpoOx2G1QqNdQaDdQajdTlEBHVwa5RChhBMKOk2AQrJ8YQURBjEFJA1JwYE6XVSV0OEdFFMQjJ77hsGhGFEgYh+Z3DbmcIElHI4GQZ8huXywWFQgFjdCwAMASJKCSwRUh+IQhmmEz5cDgckMlkDEEiChkMQmowz5hglBZKJTsZiCi0MAipQTgxhohCHYOQ6k0U3aisqGAIElFIYz8W1YsoipDJ5IhPSIJcLmcIElHIYouQfFa9YozodkOhUDAEiSikMQjJJ9VjgkqlEmAAElEYYBCS1zgxhojCEYOQvOJ0OhiCRBSWOFmGvKJUqhAblwC1WsMQJKKwwhYhXZIgmGExVwIANJoohiARhR0GIV1U9Zig0+mAKIpSl0NEFBAMQrogTowhokjBIKQ6rFaBIUhEEYOTZagOtVoDgyEaOr2BIUhEYY8tQvKwChY4nU7I5XLoDUaGIBFFBAYhAagaEywrK4FVMEtdChFRo2IQUq2JMXpDtNTlEBE1KgZhhBMECyfGEFFE42SZCCeXy6HV6WE0xjAEiSgiMQgjlN1ug0qlhkYTBY0mSupyiIgkw67RCFR9P0GrVZC6FCIiyUkWhG+//Ram3DcJI0cMw+8nT0pVRsSpOTEmKkordTlERJKTLAi7du2KZ2Y/i6SkJKlKiDhut5sTY4iIziPZGGGHDld6tZ3D4YDD4fA8FgR259VH1aLZIkOQiOg8QT9ZZsOG9Vi7ZnWd54tMBbBoG9a153I5YSrMb9A+QoEoipDJZBBFETabDXZTgdQlNYpI+fpW4/mGN56v7xKTUrzaLuiDcMiQoejff4DnsSAImDxpIhISk6HT6Rq0b1NhvtcfVKgSBDMqyssQF5+E0pLisD/fmiLh61sTzze88XwDJ+iDUKVSQaVSSV1GSKo5MUahCPovNRGRJHj5RJji/QSJiLwjWTNh8aKF2LfvB5SWluLZZ2cjKkqL1+fNl6qcsOJ2u1FZUc4QJCLygmRBOPHeSVIdOqyJogi5XI74hCTI5QqGIBHRZbBrNIwIghmlJUUQRREKhZIhSETkBQZhmKgeE1QoFFKXQkQUUhiEYYATY4iI6o9BGOIcDgdDkIioAXhxWYhTqVSIjY2HWhPFECQiqgcGYYgSBDMgAlqdHhreRYKIqN7YNRqCqscEHQ671KUQEYU8BmGIOX9iDBERNQyDMIRYrQInxhAR+RnHCEOIWq2G3mCEXm9kCBIR+QlbhCHAahXgcrkglytgMEQzBImI/IhBGOQEwYyy0mIIFrPUpRARhSUGYRCrOTFGbzBKXQ4RUVhiEAYpQbBwYgwRUSPgZJkgJZPJoNXqYYyOYQgSEQUQgzDIOBx2KJUqREVpEcUVY4iIAo5do0FEEMwoLiqEzWaVuhQioojBIAwSNSfGaDRRUpdDRBQxGIRBgPcTJCKSDoNQYqIowma1MgSJiCTCyTIScrvdkMvliImNBwCGIBGRBNgilIggmGEqPAen0wmZTMYQJCKSCINQAtVjglFRWigUCqnLISKKaAzCRsaJMUREwYVB2IjcbjcqyssZgkREQYSTZRqJKIqQy+WIT0iCQqFgCBIRBQm2CBuBIJhRWloMURShVCoZgkREQYRBGGDVY4IKOT9qIqJgxN/OAcSJMUREwY9BGCAOh50hSEQUAjhZJkCUShViYuOh0UQxBImIghiD0M8EwQwZZIjS6ng/QSKiEMCuUT+qHhO02+1Sl0JERF5iEPpJ7YkxMVKXQ0REXmIQ+oHVKnBiDBFRiOIYoR+oVGro9UboDUaGIBFRiGGLsAGsVgFulwsKhQIGYzRDkIgoBDEI60kQzCgrLYZFMEtdChERNQCDsB5qTozR641Sl0NERA3AIPQRl00jIgovDMJ6YAgSEYUPzhr1ksNhh0qlhlarh1arl7ocIiLyE7YIvSAIZhQXFcJqFaQuhYiI/IxBeBk1xwQ1miipyyEiIj9jEF4CJ8YQEYU/BuFFiKIIqyAwBImIwhwny1yA2+2GXC5HbFwCADAEiYjCGFuE5xEEM4pM+XC5nJDJZAxBIqIwxyCsoXpMUKOJglyukLocIiJqBAzCP3BiDBFRZJJsjPDs2TzMnzcPFRXl0Ol0uG/KP5GeniFJLW63CxXlZQxBIqIIJFmLcPGiRejVqxf+99o8DBo0BG/MnydJHaIoQi5XID4hiSFIRBSBJAnCsrIynDhxHNk9bwQAdOnaFSZTEc6dPduodbjdbpSVlUAURSiVKoYgEVEEkqRrtMhkQmxsHBSKqgkpMpkMiYmJMJlMaNK0aa1tHQ4HHA6H57Eg+GeZM0EwQxTdkDP8iIgiWtBfR7hhw3qsXbO6zvNFpgJYtNp67dPtdkMU3QAAm80Gu6mgQTWGCpfLCVNhvtRlNBqeb3jj+YY3f5xvYlKKV9tJEoQJiYkoLS2By+WCQqGAKIowmUxITEyss+2QIUPRv/8Az2NBEDB50kQkJCZDp9P5fGy73YaSYhO0Wh1sNhuSkps06FxCiakw3+tvjHDA8w1vPN/w1pjnK8kYYUxMDFq2bIWdO74CAOzZvRsJCQl1ukUBQKVSQafTef5p69kK/HN/akTHxHFiDBERAZCwa3TixHsxf/48bNiwHlqtDvfdNyWgxxMEC+QyGTRRWmi1vrckiYgoPEkWhKlpaXj2uTmNcizPxfI6PTRRDWtREhFReAn7lWVqrRhjjJG6HCIiCjJhHYRWwcJl04iI6JKC/vKJhlCp1NDrjdAbjAxBIiK6oLBsEVqtAtxuNxRKJQzGaIYgERFdVNgFoSCYUVZaDMFilroUIiIKAWEVhDUnxuj0BqnLISKiEBA2Qcj7CRIRUX2ETRCKosgQJCIin4X8rFGn0wGlUgWdzgBRFBmCRETkk5BuEQqCBUWmAthsVgBgCBIRkc9CtkVotQpw2K3QanVQqzVSl0NERCEqZFuE5WUlHBMkIqIGC7kWoSiKf/xPBoVS3aA71guCAIvF4p/CQgDPN7zxfMMbz7d+tFrtZRtLIReEVmvVeOBjjz0mcSVERBTsli5bftmbuMucTod4yS2CjNvtRklJCaKiohrUJVp9p/sFCxc3+Ga/oYDnG954vuGN51t/YdkilMvlSEhI8Nv+tFrtZf9aCCc83/DG8w1vPN/ACNnJMkRERP7AICQioogWsUGoUqkwfMRIqFQqqUtpFDzf8MbzDW8838AKuckyRERE/hSxLUIiIiKAQUhERBGOQUhERBEt5K4j9JezZ/Mwf948VFSUQ6fT4b4p/0R6eobUZQXE22+/hR++/w6FhYV48cWX0aJlS6lLChi73Y5XX30FZ06fhlqtRnR0DO65ZyKaNG0qdWkB85/Zz6C0tAQymRxarRbj77oLLVu2krqsgNu+/QsseGM+Hnn0MXTu3EXqcgJmyn2ToFSqoFarAQBDhgxF9x49JK4qcBwOB95dthQHDuyHSqVG8xYtcP/9DwT0mBEbhIsXLUKvXr1w01//ht3ffos35s/DnOdflLqsgOjatSsGDRqMmTOelLqURtGr1y245pprIZPJsOWTj7Fw4QI8/e9npC4rYB586GHo9XoAwN49e/DG/Hl46eVXJK4qsAoKCrDt88/Rtm07qUtpFA8++FBY/wFb08qVKyCTyfC/1+ZBJpOhtKQk4MeMyK7RsrIynDhxHNk9bwQAdOnaFSZTEc6dPStxZYHRocOVfl2NJ5ip1Wpce+11niWV2rZrh8LCAomrCqzqEAQAi8UMILzvxuJ2u7Fo4Ru4664JEXM5QaSwWq3Y/sU2jB4z1vMzHBsXF/DjRmSLsMhkQmxsHBQKBYCqG/omJibCZDKFdRdaJPr4o49w/fU3SF1GwM17/TX8/PNPAIDp08O75f/hh5vRvv0VaNW6tdSlNJp5816DKAJt2rTBuHG3IzomRuqSAiI//xwMBgM2rF+HQ4cOQa1WY8TIkcjMvCqgx43IFiFFhvXr1+HcuXMYO+52qUsJuH/+634sWLgYo0aPwcqVy6UuJ2Byc3OxZ/duDB02XOpSGs2//z0bL8/9L1548SUYo6Mxf/7rUpcUMC6XG4WFhWiWno7nX3gR4++6C6/+9xWUlpYG9LgRGYQJiYkoLS2By+UCUHWPQ5PJhMTERIkrI3/ZtGkj9u7ZgyeefAoajUbqchrNTTf9FT/99DMqKiqkLiUgjhz+BYWFBXjg/n9iyn2TcOzYr1i8aCE+3bpF6tICJjEpCQCgVCrRr19/HD58WOKKAicxMREymRzZWdkAgJYtWyE5ORm5uTkBPW5Edo3GxMSgZctW2LnjK9z0179hz+7dSEhIYLdomPhw8yZ8vWsXZsycVWv8LByZzWbYbDbEx8cDAPbu3QOj0QCDwSBxZYHR+9Y+6H1rH8/jp2fNRN9+/cJ21qjVaoXL5fJ8H3+9aydahvGkmejoaGRmZmL/gf249trrUJCfj4KCAjRLaxbQ40bsEmt5Z85g/vx5qKysgFarw333TUFG8+ZSlxUQixctxL59P6C0tBRGoxFRUVq8Pm++1GUFRFFRESZPmoiUlBRERVXdx0ylUuG5Oc9LXFlgFBYW4JW5c2G32yGXyxAdHY077vh7xMwwDPcgzM8/h7kvvwy32wVRBFJSUvCP8XchOTlZ6tICJj//HBYueAPl5RWQy2UYNnwEunbtFtBjRmwQEhERARE6RkhERFSNQUhERBGNQUhERBGNQUhERBGNQUhERBGNQUhERBGNQUhERBGNQUiSmDx5MqZNm3bR14cNG44331xS7/1nZWVh5cqVAIDVq1fjllt613tfUlm5ciWysrICfpzvvvsON9/cK+DHAYA5c+Zg7Nix9X6/t98XOTk5uP76G2Cz2S66zfmfb5cuXbFli3dLtfl6Hp988gkyMzORmpqGDz/8EP369cMbb7zh9fspsBiEYebYsWMYNWoUWrZshWbN0nH99Tfgv/99tdY23377LYYNG46MjObIyMhAjx498Oqr/4Pdbr/gPi8WWpmZmfjwww8BVP1SiYuLR2pqWq1/GzdurNd5rFu3Fvfcc3e93nu+kSNH4rPPPvXLvsLRrFmz8MgjD0tdRh0X+r7z9vuiefPm6Nz5Brz99tteH2/Pnt3o06fP5Tesh+nTn8CTTz6JvLwz6N+/f0COQfXHIAwzI0aMRMeOmfj555+Qk/M7li9/Fy1atPC8vmXLFgwfPgI33/w3/PjjPuTm5uKdd97B0aNHcO7cuQYd+8orOyAv70ytf4MGDWrgGZE/iKLoWWS+pl9++QXHjv2G3r1Dr8V8OWPGjMHixW9KXQaAqhZqhw4dpC6DLoJBGEaKiopw8uRJjB//D+h0OigUCvzlL3/BkCGDAVT9MnzssccxdeoDuO+++zw3623Xrh0WLFiAjIyMRq23oqICY8eORWpqGrp3745vv/3W81rNrqOdO3ciIyMDy5a9iw4drkSLFi0xY8bMWvtavHix57Vnnpld67Xzu8AyMzPx6qv/w80390JaWjP07dsXp0+f9rx++PBhz2v9+/fHjBkz0a9fv4uex4wZM9GxY0ekpTVD585dsGHD/3le86b2L77Yjr/97WZkZGSgXbv2mDu39t3lX3zxRbRu3QZt2rSt1Z0miiJef/11dOp0NZo3b4GhQ4fh5Mnfa53n3Lmv4Oabe6FJk6Y4cuRIndo//vgTdO/e3XNvTgCYN28errnmWqSlNUOnTldj8eLFntdycnIQExOL999/H1dffQ0yMjIwefJkOBwOAEBlZSXGjBmD1q3bID09A7fddhsOHTp0wc9t+vTpmDx5cq3nXnnlvxg2bDgWLlyI1avXYMmSt5CamoYuXboCQJ0uxR9/3I/+/QegefMWaNWqNR599FHPa127dkVeXh6OHj16weOf7/wejqysrIt+9ud75pnZ6NGjR50/JouLi5Gamga3243evW9FamraBbtrt237AllZ2UhPz0B2dk9s3/4lACA/Px+JiUmorKwEACxatAgxMbH49ddfAVR1uXbr1t2r86OLYxCGkfj4eLRt2xb33TcF69dvQG5ubq3Xjx8/jpycHAwLknu5rVmzFnfccQdyc3MwYcLdGD16zEXvO1ZRUYmjR49g374fsHXrFixZsgQ7d+4EAHz11VeYPfs/WLr0Hfz6a9UvvV9+ufStalav/gBvvbUEx4//Bp1Oj2effRYA4HA4MHr0GNxySy+cPHkCTz/9NFasWHHJfWVmdsT27duRm5uDxx57DPfeey9+//13r2o/cOAAxo4diwceuB/Hjx/Hd9/tRc+e2Z73Hj58BFqtFkeOHMY777yNGTNm4sSJkwCA999/H/Pnv4FVq1bi6NEj+MtfrsDo0aPhdDo971+1ahUWLlyAvLwzaNu2bZ3aDx06hHbtaj+fnp6OzZs34fTpU3j99dcwY8ZM7N69u9Y2n332OXbu3IE9e/bgq692YPXq1QCq7h4/fPgIHDx4AMeO/YqrrroK//jHeIhi3SWN77jjDmzatNnzS7663ttvvx2TJk3CyJEjcPfdE5CXdwZ79uyu8/68vDwMHDgQgwYNwtGjR/DTT4cwZMgQz+sqlQqtWrW6aBBfzqU++2pOpxNTpvwTe/bsxscff4wmTZrUej0+Ph55eWcAAJ9+uhV5eWfq3Bbs+PETGDt2LB577FGcPHkCDz/8MMaMGYPff/8dKSkpaNWqleePxB07dqBly5bYsWOn53HN7xeqHwZhGJHJZPjoow+RmdkRL7zwAjp1uhqdO3fBF19sBwCYTCYAQGpqYG439fPPvyAjI6PWv+PHj190+549e+K2226DUqnEhAlVK+pv3br1gtuKooinnnoKUVFRaN++PTp37oz9+/cDAFavXoMRI0agc+fOUKvVmD592mVvvzRhwt1o0aIFoqKiMHLkCOzffwBA1cSRkpJiPPLII1Cr1bj++usxdOjQS+5r5MiRSEpKgkKhwPDhw9CuXVvs3bvXq9qXLl2GYcOGYtCgQVCpVIiJicENN9zgeW9CQgL+9a9/QaVSITs7GxkZGTh06CAA4P33P8C9996LK6+8ElFRUZg5cybOnDmDH374ocZ53oW2bdtCoVBArVbXqb3qjiTRtZ4bNGgQmjVrBplMhp49e+Lmm/+GnTt31drm8ccfg9FoRNOmTXHzzTd7zic6OhrDhg2FXq9HVFQUpk+fjt9++w1nz56tc+wOHTqgffv2nnHkvXv3wmQyoW/f2y75eVf74IPV6NSpE+65525ERUVBp9Ohe/farSOj0YiSklKv9ne+S332AGCxCBg3bhzKy8uxfv16xNTzrvHr169HVlYWBg4cCKVSicGDB6Fr165Yu3YdACA7Oxs7duyE2+3G7t178MgjD3v+kKoKwp71Oi79iUEYZlJSUvDss89iz57dOH78OG65pRduv/12FBeXeLpC8/Lq/lKqNnXqg56JLlOnPggAUCpVcDicdbZ1OJxQqVSex1de2QG5ubm1/rVu3fqix0pPT6/z+GK1RUcbodPpPI/1ep2nJXHu3Lla+1KpVEhJSbnocQEgJeXP29jodDpUVlbdyPbs2XNISWkCpfLPW3U2a3bpe6HNnz8fXbp0RXp6Vfj/8sthFBUVeVX7qVOn0KrVxT+j5OSkWo9rvjcvL69Wd7ZGo0GTJk1w5kye17XHxsaioqK81nOrV69GdnZPNG/eAhkZGfj0089QXFxUa5uatwGqWZMgCHjooYeRmZmJZs3ScdVVVwFArc+jpttvvx2rVq0CAKxcuQojR47w+kbKp06duuT3F1DV/R4XF+vV/s53qc8eqGpNb9/+JaZPn9agmz+f/3UEgBYtWiAvr+rrmJ2djZ07d+LAgYNo3rw5+vbth2+++QYmkwlHjhxFjx496n1sqsIgDGPx8XGYNm0azGYzcnJy0KZNG2RkZGDdunUXfc+rr/7XM9Hl1Vf/CwDIyEhHTk7tO0SbzWYUFBQ0aFzx1KlTtR6fPn26Xq3VJk2a1NqXw+FAfn5+vWpq2rQJ8vPza3Uv1hw/PN+3336L559/AQsXLkROzu/Izc1Fhw5/uWBX4IWkp6fjxIkT9ao1NTW1Vve33W7HuXPnkJaW6nlOLr/0j3hmZiZ+/fWY5/GpU6cwadJkPPPMMzh+/Dfk5uaid+9bvD6fefPmYf/+/diyZQtOnz6FgwerWlAXe//w4cPw44/7ceTIEWzYsB7jxo3zuvbLfXYOhwMnTpxAZmamV7X7qkuXznj55ZcwePCQBt01/vyvIwDk5uYiNbXq65idnYVDhw7hww8/RM+ePREfH4cmTZpg8eLF6NixI2JjYxtyGgQGYVgpKSnF7Nn/wa+//gqXywWLxYL58+cjLi4O7dq1hUwmw0svvYhXX30VixYtQnFxMQDgt99+w5Qp/6zzw1ht8ODB2LVrFzZu3AiHw4Hy8nI88cST6NixI9q3b1/venfs2IGtW7fC6XRi6dJlOHfuHHr3vtXn/QwfPhxr1qzB999/D7vdjhdeeAFms7leNd1www2IiYnBK6+8AofDgR9+2IcNGzZcdPuKigrI5XIkJibA7XZj+fLllx2frOnvf78T69atw+bNm+F0OlFWVobvvvvOq/eOGjUSb775Jo4cOQKbzYbZs/+Dpk2b4rrrrvP6+H363Ipvv/3WM6PUbDZDFEUkJSVCLpfj008/9XSte6O8vAJRURrExsaisrKyzsSl80VHR2PgwAG4++67kZHRHJ06dfK8lpSUjN9///2iITpy5Ajs27cPb731Nmw2GywWC7755hvP63v27EHTpk0b9D16OXfeeSdmzZqJgQMH4aeffqrXPoYOHYpdu3bho48+gtPpxKZNm/DNN99g2LBhAKq6aNu3b4fFixcjO7tqPLBnz55YsGAhu0X9hEEYRtRqFc6ezcPw4SOQnp6BK6/siN2792DdurWeMbM+ffpg7do12Lr1U1x99dXIyMjAnXfeiXbt2tUZ6K/Wtm1brFq1Cq+/Pg+tW7fBddddj9LSUqxcuaLWX+0///xLnesIFy5ceNF6R4wYjmXLliEjozkWLVqE995bVa9urL/+9SY8+eQTuOOOO9GuXXu43SI6dPiLz/sBqrpV33tvFbZs2YrmzVtg1qyZGDVqJNTqC3d99erVC4MGDUL37j3Qvv0VOHLkCLp29f5u6VdffTWWL38XL788Fy1atETnzl2wa9fXXr13zJgxmDhxIkaOHIW2bdvhp59+wvvvv1+rW/dyOnbsiNatW+Gzzz4DAFxxxRV45JGHMWDAQLRo0RLr16/Hbbd5N2YHAP/85xTI5Qq0bdsO3bp1Q+fON1z2PXfccQcOHfoJt98+rtbzd955J/LyzqJ58xZ1xv4AIC0tDZs2bcTatWvQtm1bZGZeVeu61ffee99v16Jeyrhx4zB79jMYPHiIpwXsi9atW2HFiuWYM2cOWrRoiRdffBErVqxAy5YtPNtkZ2fDarWiW7eq2bM33XQjysvLceONDEJ/4B3qiS7jgQemwu124/XXX5O6lIDYu3cvpk9/Atu2fS7J8U+dOoVrr70OR48eQXx8vF/2mZubi2HDhmPXrp0NGr+jyMAgJDrPN998g4yMDKSmpmLHjp0YO3Ysli9fjptv/pvUpYUdl8uFxx57HBUV5bWuVyRqTN73oRBFiN9//x133TUBpaWlSE1NxdNPz2IIBsDvv/+Obt26o3nz5lizZrXU5VAEY4uQiIgiGifLEBFRRGMQEhFRRGMQEhFRRGMQEhFRRGMQEhFRRGMQEhFRRGMQEhFRRGMQEhFRRPt/KCCcNH5vPfMAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "display(viz.plot_network_flows(net, final.link_flows))\n", "display(viz.plot_flow_scatter((\"SC-UE binding anchor (analytic)\", ref_flows), {\"sc-tap\": final.link_flows}))" ] }, { "cell_type": "markdown", "id": "5eaddcff", "metadata": {}, "source": [ "## Takeaways & pointers\n", "\n", "- **Capacity is the certificate.** `sc_capacity_feasible = 1`, zero violation; the raw\n", " Wardrop gap is non-zero because the queue delay makes raw costs unequal (reported).\n", "- **Augmented equilibrium.** The flow equalizes `t_a + β_a`, the model's provenance\n", " `augmented_relative_gap ≈ 0`.\n", "- **Where next.** Uncapacitated UE: [`bfw`](05-bfw.ipynb); ADR-009 in the\n", " [model compendium](../../docs/MODELS.md)." ] } ], "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.10.12" }, "tabench": { "covers": [], "requires_extra": null, "track": "static", "unit": "sc-tap" } }, "nbformat": 4, "nbformat_minor": 5 }