{ "cells": [ { "cell_type": "markdown", "id": "3dff5e0e", "metadata": {}, "source": [ "# OPLS-AA conformational energetics: reproducing Table 1 of Jorgensen et al. (1996)\n", "\n", "The OPLS all-atom force field (Jorgensen, Maxwell & Tirado-Rives, *J. Am.\n", "Chem. Soc.* **118**, 11225, 1996) was parameterized so that relaxed torsional\n", "energy profiles match RHF/6-31G* *ab initio* scans — Table 1 of the paper\n", "lists the resulting relative conformer energies for hydrocarbons and\n", "alcohols. Those numbers are the cleanest published fingerprint of the force\n", "field, so this notebook reproduces them with the `xnn` OPLS implementation:\n", "\n", "1. build small molecules (ethane, propane, butane, methanol, ethanol) from\n", " coordinates alone — atom types are assigned from the SMARTS templates of\n", " the parameter file and angles, dihedrals, 1,2/1,3 exclusions and scaled\n", " 1,4 pairs are derived from the perceived bonds;\n", "2. run the paper's *dihedral driver*: constrain one dihedral, relax every\n", " other internal degree of freedom (ASE `BFGS` + `FixInternals` on top of\n", " `XNNCalculator`);\n", "3. compare with Table 1.\n", "\n", "Two parameter sets shipped with `xnn` (SEAMM `.frc` force-field files) are\n", "used: **`oplsaa-1996`**, which restores the torsions of the original paper\n", "(alkanes from Supporting Information Table 7, plus the `H-C-O-H` and\n", "`C-C-C-O` alcohol terms), and **`oplsaa`**, the OPLS-AA distribution, whose\n", "alkane torsions were mildly revised by the Jorgensen lab in late 1999 and\n", "whose `H-C-O-H` term (V3 = 0.352 vs 0.45 kcal/mol) was revised later. The\n", "former reproduces Table 1 essentially exactly; the latter shows what modern\n", "OPLS-AA packages actually ship." ] }, { "cell_type": "markdown", "id": "47281e0a", "metadata": {}, "source": [ "## 0. Setup" ] }, { "cell_type": "code", "execution_count": 1, "id": "8c7191f7", "metadata": { "execution": { "iopub.execute_input": "2026-09-15T19:20:34.327745Z", "iopub.status.busy": "2026-09-15T19:20:34.327634Z", "iopub.status.idle": "2026-09-15T19:20:42.030854Z", "shell.execute_reply": "2026-09-15T19:20:42.029838Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "xnn: 0.1.0 | torch: 2.5.1+cu121\n" ] } ], "source": [ "import warnings\n", "warnings.filterwarnings(\"ignore\")\n", "import math\n", "import numpy as np\n", "import torch\n", "import matplotlib.pyplot as plt\n", "\n", "torch.set_default_dtype(torch.float64) # cheap for a classical force field\n", "torch.manual_seed(0)\n", "rng = np.random.default_rng(0)\n", "\n", "from ase import Atoms\n", "from ase.constraints import FixInternals\n", "from ase.optimize import BFGS\n", "\n", "import xnn\n", "from xnn.common.deploy import XNNCalculator\n", "from xnn.common.models import ForceStressOutput\n", "from xnn.ffnn.models import OPLS, builtin_library\n", "from xnn.ffnn.models.oplslib import KCAL_TO_EV\n", "\n", "EV_TO_KCAL = 1.0 / KCAL_TO_EV\n", "print(\"xnn:\", xnn.__version__, \"| torch:\", torch.__version__)" ] }, { "cell_type": "markdown", "id": "fd77290b", "metadata": {}, "source": [ "## 1. Molecules and topologies\n", "\n", "`OPLS.from_atoms` builds the fixed topology from a structure: the per-atom\n", "OPLS *type names* are assigned from the SMARTS templates carried by the\n", "parameter file (so the file's own numbering, `opls_80` for an alkane CH3\n", "carbon and so on, never has to be spelled out), the bonds are given\n", "explicitly here (the geometry builder knows them; they can equally be\n", "perceived from the coordinates), and everything else — angles, proper\n", "dihedrals, nonbonded exclusions, scaled 1,4 pairs — is derived. The\n", "geometries below are rough by intention: the force field relaxes them itself\n", "before any scan." ] }, { "cell_type": "code", "execution_count": 2, "id": "913c6178", "metadata": { "execution": { "iopub.execute_input": "2026-09-15T19:20:42.032722Z", "iopub.status.busy": "2026-09-15T19:20:42.032497Z", "iopub.status.idle": "2026-09-15T19:20:42.242411Z", "shell.execute_reply": "2026-09-15T19:20:42.241667Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "butane atom types from the templates: ['opls_80', 'opls_81', 'opls_85']\n", "butane: 13 bonds, 24 angles, 27 dihedrals, 27 1,4 pairs\n" ] } ], "source": [ "def ideal_alkane(n, seed=42):\n", " \"\"\"A rough all-anti alkane C_nH_{2n+2}: zig-zag backbone + jittered H.\"\"\"\n", " r, ang = 1.529, math.radians(112.7)\n", " pos = [np.zeros(3)]\n", " up = True\n", " for _ in range(1, n):\n", " v = np.array([math.cos(ang / 2), (1 if up else -1) * math.sin(ang / 2), 0.0])\n", " pos.append(pos[-1] + r * v)\n", " up = not up\n", " jit = np.random.default_rng(seed)\n", " H, hb = [], []\n", " for i, p in enumerate(pos):\n", " for k in range(3 if i in (0, n - 1) else 2):\n", " phi = 2 * math.pi * k / 3 + 0.5 * i\n", " H.append(p + 1.09 * np.array([0.3 * (-1 if i == 0 else 1 if i == n - 1 else 0),\n", " 0.7 * math.cos(phi), 0.9 * math.sin(phi)])\n", " + 0.05 * jit.standard_normal(3))\n", " hb.append(i)\n", " z = [6] * n + [1] * len(H)\n", " bonds = [(i, i + 1) for i in range(n - 1)] + [(hb[k], n + k) for k in range(len(H))]\n", " return np.array(list(pos) + H), z, bonds, hb\n", "\n", "\n", "# ethane / propane / butane: coordinates, atomic numbers and bonds only --\n", "# the OPLS atom types come from the parameter file's SMARTS templates\n", "molecules = {}\n", "for name, n in ((\"ethane\", 2), (\"propane\", 3), (\"butane\", 4)):\n", " pos, z, bonds, hb = ideal_alkane(n)\n", " molecules[name] = (pos, z, bonds)\n", "\n", "# methanol\n", "molecules[\"methanol\"] = (\n", " np.array([[0.0, 0.0, 0.0], [1.41, 0.0, 0.0],\n", " [-0.36, -0.51, 0.89], [-0.36, -0.51, -0.89], [-0.36, 1.02, 0.0],\n", " [1.75, 0.4, 0.75]]),\n", " [6, 8, 1, 1, 1, 1],\n", " [(0, 1), (0, 2), (0, 3), (0, 4), (1, 5)])\n", "\n", "# ethanol\n", "molecules[\"ethanol\"] = (\n", " np.array([[0.0, 0.0, 0.0], [1.512, 0.0, 0.0], [2.0, 1.32, 0.0],\n", " [-0.39, -0.51, 0.89], [-0.39, -0.51, -0.89], [-0.39, 1.02, 0.0],\n", " [1.90, -0.52, 0.88], [1.90, -0.52, -0.88], [2.60, 1.30, 0.7]]),\n", " [6, 6, 8, 1, 1, 1, 1, 1, 1],\n", " [(0, 1), (1, 2), (0, 3), (0, 4), (0, 5), (1, 6), (1, 7), (2, 8)])\n", "\n", "# butane bookkeeping, exactly as counted in the paper:\n", "# \"In butane, for example, there are 27 dihedrals: 1 C-C-C-C, 10 H-C-C-C,\n", "# and 16 H-C-C-H.\"\n", "pos, z, bonds = molecules[\"butane\"]\n", "top = OPLS.from_atoms((pos, z), \"oplsaa\", bonds=bonds).topology\n", "print(\"butane atom types from the templates:\", sorted(set(top.types)))\n", "print(f\"butane: {len(top.bonds)} bonds, {len(top.angles)} angles, \"\n", " f\"{len(top.dihedrals)} dihedrals, {len(top.pairs14)} 1,4 pairs\")" ] }, { "cell_type": "markdown", "id": "cba7c660", "metadata": {}, "source": [ "## 2. The relaxed dihedral driver\n", "\n", "The paper's BOSS dihedral driver fixes one dihedral and minimizes everything\n", "else. Here that is ASE `BFGS` with a `FixInternals` constraint on top of\n", "`XNNCalculator(ForceStressOutput(OPLS(...)))` — the forces are exact\n", "autograd derivatives of the OPLS energy.\n", "\n", "One practical detail: a perfectly eclipsed methyl group is a *symmetric\n", "saddle point* with zero net torque, and a gradient optimizer started exactly\n", "there will converge to it. A tiny random rattle before each minimization\n", "breaks the symmetry.\n" ] }, { "cell_type": "code", "execution_count": 3, "id": "6ba041b5", "metadata": { "execution": { "iopub.execute_input": "2026-09-15T19:20:42.243950Z", "iopub.status.busy": "2026-09-15T19:20:42.243831Z", "iopub.status.idle": "2026-09-15T19:20:42.249019Z", "shell.execute_reply": "2026-09-15T19:20:42.248434Z" } }, "outputs": [], "source": [ "def fragment(bonds, n, axis_a, axis_b):\n", " \"\"\"Atoms on the axis_b side of the bond axis_a-axis_b.\"\"\"\n", " nbr = {i: set() for i in range(n)}\n", " for i, j in bonds:\n", " nbr[i].add(j); nbr[j].add(i)\n", " seen, stack, frag = {axis_a, axis_b}, [x for x in nbr[axis_b] if x != axis_a], set()\n", " while stack:\n", " x = stack.pop()\n", " if x in seen:\n", " continue\n", " seen.add(x); frag.add(x)\n", " stack.extend(nbr[x] - seen)\n", " return sorted(frag)\n", "\n", "\n", "def relaxed_scan(molecule, dihedral, angles_deg, library, fmax=1e-5):\n", " \"\"\"Constrained-dihedral relaxed energies (kcal/mol, relative).\"\"\"\n", " pos, z, bonds = molecule\n", " # SMARTS-typed against the library, topology from the given bonds\n", " model = OPLS.from_atoms((pos, z), library, bonds=bonds, cutoff=50.0)\n", " calc = lambda: XNNCalculator(ForceStressOutput(model), cutoff=model.cutoff)\n", " frag = fragment(bonds, len(z), dihedral[1], dihedral[2])\n", " ref = Atoms(numbers=z, positions=pos + 0.03 * rng.standard_normal((len(z), 3)))\n", " ref.calc = calc()\n", " BFGS(ref, logfile=None).run(fmax=fmax, steps=5000) # free minimum\n", " energies = {}\n", " for a in angles_deg:\n", " w = ref.copy(); w.calc = calc()\n", " w.set_dihedral(*dihedral, a, indices=frag)\n", " w.rattle(0.004, seed=2) # break saddle symmetry\n", " w.set_constraint(FixInternals(dihedrals_deg=[[a, list(dihedral)]]))\n", " BFGS(w, logfile=None).run(fmax=fmax, steps=5000)\n", " energies[a] = w.get_potential_energy() * EV_TO_KCAL\n", " e0 = min(energies.values())\n", " return {a: e - e0 for a, e in energies.items()}" ] }, { "cell_type": "markdown", "id": "ba2083e9", "metadata": {}, "source": [ "## 3. Table 1, recomputed\n", "\n", "Every scan below uses `oplsaa-1996`. The paper's values are quoted next to\n", "ours (kcal/mol).\n" ] }, { "cell_type": "code", "execution_count": 4, "id": "94e8a61f", "metadata": { "execution": { "iopub.execute_input": "2026-09-15T19:20:42.250477Z", "iopub.status.busy": "2026-09-15T19:20:42.250365Z", "iopub.status.idle": "2026-09-15T19:20:50.172787Z", "shell.execute_reply": "2026-09-15T19:20:50.172252Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "molecule dihedral conf xnn paper diff\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "ethane H-C-C-H 60 0.00 0.00 +0.00\n", "ethane H-C-C-H 0 3.01 3.01 -0.00\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "propane H-C-C-C 60 0.00 0.00 +0.00\n", "propane H-C-C-C 0 3.32 3.32 +0.00\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "butane C-C-C-C 180 0.00 0.00 +0.00\n", "butane C-C-C-C 120 3.68 3.68 -0.00\n", "butane C-C-C-C 60 1.18 1.18 +0.00\n", "butane C-C-C-C 0 6.03 6.04 -0.01\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "methanol H-C-O-H 60 0.00 0.00 +0.00\n", "methanol H-C-O-H 0 1.36 1.36 +0.00\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "ethanol C-C-O-H 180 0.00 0.00 +0.00\n", "ethanol C-C-O-H 120 1.32 1.32 -0.00\n", "ethanol C-C-O-H 60 0.09 0.09 +0.00\n", "ethanol C-C-O-H 0 1.76 1.76 +0.00\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "ethanol H-C-C-O 60 0.00 0.00 +0.00\n", "ethanol H-C-C-O 0 3.70 3.67 +0.03\n", "\n", "largest |deviation| from Table 1: 0.026 kcal/mol\n" ] } ], "source": [ "lib96 = builtin_library(\"oplsaa-1996\")\n", "\n", "# (molecule, dihedral atoms, scan angles, paper reference values)\n", "cases = [\n", " (\"ethane\", \"H-C-C-H\", (2, 0, 1, 5), {60: 0.00, 0: 3.01}),\n", " (\"propane\", \"H-C-C-C\", (8, 2, 1, 0), {60: 0.00, 0: 3.34}),\n", " (\"butane\", \"C-C-C-C\", (0, 1, 2, 3), {180: 0.00, 120: 3.68, 60: 1.18, 0: 6.04}),\n", " (\"methanol\", \"H-C-O-H\", (2, 0, 1, 5), {60: 0.00, 0: 1.36}),\n", " (\"ethanol\", \"C-C-O-H\", (0, 1, 2, 8), {180: 0.00, 120: 1.32, 60: 0.09, 0: 1.76}),\n", " (\"ethanol\", \"H-C-C-O\", (3, 0, 1, 2), {60: 0.00, 0: 3.64}),\n", "]\n", "# paper values for butane/ethanol quote the 6-31G* column where OPLS-AA and\n", "# 6-31G* differ; Table 1's OPLS-AA column is what we compare against:\n", "paper_opls = {\n", " (\"ethane\", \"H-C-C-H\"): {60: 0.00, 0: 3.01},\n", " (\"propane\", \"H-C-C-C\"): {60: 0.00, 0: 3.32},\n", " (\"butane\", \"C-C-C-C\"): {180: 0.00, 120: 3.68, 60: 1.18, 0: 6.04},\n", " (\"methanol\", \"H-C-O-H\"): {60: 0.00, 0: 1.36},\n", " (\"ethanol\", \"C-C-O-H\"): {180: 0.00, 120: 1.32, 60: 0.09, 0: 1.76},\n", " (\"ethanol\", \"H-C-C-O\"): {60: 0.00, 0: 3.67},\n", "}\n", "\n", "print(f\"{'molecule':<10} {'dihedral':<9} {'conf':>5} {'xnn':>7} {'paper':>7} {'diff':>7}\")\n", "worst = 0.0\n", "for name, label, dih, angles in cases:\n", " res = relaxed_scan(molecules[name], dih, list(angles), lib96)\n", " ref = paper_opls[(name, label)]\n", " for a in angles:\n", " diff = res[a] - ref[a]\n", " worst = max(worst, abs(diff))\n", " print(f\"{name:<10} {label:<9} {a:>5} {res[a]:>7.2f} {ref[a]:>7.2f} {diff:>+7.2f}\")\n", "print(f\"\\nlargest |deviation| from Table 1: {worst:.3f} kcal/mol\")\n", "assert worst < 0.05, \"Table 1 is not reproduced\"\n" ] }, { "cell_type": "markdown", "id": "89a56feb", "metadata": {}, "source": [ "Every entry agrees with the paper's OPLS-AA column to a few hundredths of a\n", "kcal/mol — the residuals are the finite convergence of the scans, not the\n", "force field.\n" ] }, { "cell_type": "markdown", "id": "44f3e0c7", "metadata": {}, "source": [ "## 4. The full butane profile: 1996 torsions vs the modern distribution\n", "\n", "The late-1999 revision softened the three alkane torsions slightly\n", "(`C-C-C-C`, i.e. the `opls_18` quadruple in the file: V = 1.740/-0.157/0.279\n", "→ 1.300/-0.050/0.200 kcal/mol, `H-C-C-H`: 0.318 → 0.300, `H-C-C-C`: 0.366 →\n", "0.300); its gauche-trans gap is ~0.25 kcal/mol smaller. Both are \"OPLS-AA\" in the wild, which is worth\n", "knowing when comparing against other codes." ] }, { "cell_type": "code", "execution_count": 5, "id": "b26755a2", "metadata": { "execution": { "iopub.execute_input": "2026-09-15T19:20:50.174368Z", "iopub.status.busy": "2026-09-15T19:20:50.174252Z", "iopub.status.idle": "2026-09-15T19:21:07.121463Z", "shell.execute_reply": "2026-09-15T19:21:07.120801Z" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAGZCAYAAAAErnwzAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjExLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlcelbwAAAAlwSFlzAAAPYQAAD2EBqD+naQAAuG1JREFUeJzs3Xd4VEUXwOHfpieQAoGEkgAh1NA7SBEB6R2lKdUgYgMRQSwfIiIoIKgoKFKkKUqR3qUX6SV0AiEhhDRII41k5/tjzUpI22w2lfM+zz5k786de/YmJGfvnTmjUUophBBCCCFEoWeW3wEIIYQQQgjTkMROCCGEEKKIkMROCCGEEKKIkMROCCGEEKKIkMROCCGEEKKIkMROCCGEEKKIkMROCCGEEKKIkMROCCGEEKKIkMROCJEjNjY2TJgwIb/D0Cto8aTw8/OjS5cuODo6otFoWLZsGStXrkSj0eDj46Nvt3btWjQaDefOnTPp8Xfs2IGtrS337t0zab+9e/emdu3aJu3TlO7fv49Go2HevHn5HYrRTp8+jaWlJZcuXcrvUEQhIImdKJTKlCmDRqPRP6ysrKhcuTKjRo3izp07Oepbo9Hw4YcfmijS3FWYYn3WeXt7ExERwa1bt1BKMXz48Dw7dlJSEuPHj2fMmDGUK1cuz44rTKNRo0Z0796d8ePH53coohCQxE4UWi1btkQphVKKqKgoVqxYwd69e2nRogVRUVH5Hd4zIz4+ntmzZ+d3GAVacnIyBw4coGvXrjg7O+u3v/rqqyilcv2K119//cWVK1d4++23c/U4Ive89dZb7Nq1i9OnT+d3KKKAk8ROFAk2Nja0bNmSSZMmERQUxP79+/M7JCH0wsPDSUpKwtbWNl+Ov3DhQlq2bEnlypXz5fgi59q1a0e5cuVYuHBhfociCjhJ7ESRZGNjo//65s2baDQafvnllzTtKlWqxMCBAwHdGCiNRgPAV199pb/N27t371TtU7ZbWFjg7u7O6NGjCQ8P17eJj49Ho9Hw2Wef8ffff9OwYUNsbGyoVq0aq1evThODUooFCxbQoEEDbG1tcXR0pHv37qnGXT3NkFjj4+P55JNP8PT0xNramjJlyjB8+PBUY6yejHXnzp00atQIa2tr/R+PFStW0LhxYxwcHChdujQdO3bkwIEDac7102PasntsQ86TIefeUE8ee+vWrdSpUwcbGxtq1qzJ8uXLM2yb3jm6evUqL730Es7OzlhbW+Pl5cWcOXPQarUATJgwAVdXVwA++OCDVEMIUh6Zfa9ThISE8Oabb+Lu7o6VlRXu7u5MmDCBuLi4TPeLiYnhwIEDtGvXLs1rv/zyCxqNhmvXrvHpp59Svnx5zMzMiImJAeDAgQN06tQJR0dHbGxsaNSoEWvXrs0y1jfeeEP/3szMzHB2dqZ79+6prjZdvnyZ4sWL069fv1T7nj9/HltbW1555ZVU72HSpEn6nydXV1dGjRqV5nt/8+ZNevToQfHixSldujTjxo0jMTExy3gBHj9+zJQpU6hWrRp2dnZUrFiRV199FV9f31TtYmJimDx5MtWqVcPGxobKlSszfvx4IiIiALh7926q7621tTU1a9Zk+vTpJCUl6fvZs2cPGo2GPXv2sGDBAjw8PLCxsaFFixacOnUqTXxmZmY8//zzbN682aD3I55hSohCyNXVVbVs2VL/PD4+Xh09elR5enqqWrVqqYSEBP1rN27cUIBatGhRmn4qVqyoBgwYkGoboCZNmpRlDI8ePVL79+9X1atXVx06dFBarVYppVRcXJwCVO/evdWQIUOUr6+vCg0NVaNGjVIajUZdunQpVT/e3t6qWLFi6ueff1ZhYWHK399fDRkyRNnb26tr165lGkNGsWq1WtWpUyfl6Oio/vzzTxUZGamOHz+uatSooSpUqKBCQ0NTxdqjRw81YMAAdePGDXXz5k21c+dOtWXLFgWoH374QT18+FBFRESovXv3qu7du6c6lrW1tXr//feNPrah58mQc59ePOlJOXb37t3VwIEDla+vrwoODlYff/yxAtSSJUvStE3vHF2/fl05Ojqqli1bqosXL6oHDx6on3/+WVlbW6tRo0bp+wgKClKAmjVrVqo4VqxYoQB18eJF/bY///xTAers2bP6bcHBwapixYqqfv366siRIyo6OlodPnxYValSJc37f9quXbsUoDZu3JjmtUWLFilADRgwQP34448qLCxMrVy5UsXExKg1a9YoMzMz9dZbb6nbt2+rBw8eqO+//15ZWFiopUuX6vvo1auXqlWrVobHT0xMVFeuXFH9+vVTzs7OKigoSP/a6tWrFaBmz56tlFIqIiJCeXp6Ki8vLxUTE6OU0n2vGzZsqCpVqqS2b9+uoqKi1Pnz51Xjxo1V7dq1VWxsrFJKqZCQEFWmTBnVsGFDdfbsWfXw4UO1ZMkSNXDgQAWouXPnZhijUkp9+OGHysnJSe3atUs9evRI3bt3T61evVq9/fbb+jYxMTGqfv36qnz58mrDhg3qwYMHys/PT82dO1f98MMP6fYbHh6uVq9erYoXL66mTJmi3757924FqEGDBqkvvvhCBQcHK19fX9WsWTNVrlw5FR8fn6avuXPnKkBdvXo10/cinm2S2IlCydXVVQFpHnXq1FHXr19P1Ta3ErsUf/31lwLUzZs3lVL/JQIVK1ZUiYmJ+nbR0dHKzs5Ovffee/ptR44cSfePTmJioqpcubJ65ZVXMj12RrFu27ZNAerHH39Mtf3ChQtKo9Ho90mJtUyZMmn+kEyYMEE5ODhk+f6fTqSye2xDzlNGnj736cWTnpRjlytXLtWHAKWU6tChg3J1dVWPHz9O1Ta9czR48GBla2ur7t+/n2r7pEmTUiVsOU3sxowZo2xtbZW/v3+q/ffv368AtX379gzf6y+//KIAdeLEiTSvpSR277zzTprzU7p0adWpU6c0+3h7eytXV1eVlJSklMo6sUsRExOjzM3N1fz581Ntf/PNN5WFhYU6cOCA6tWrlypevLi6cuWK/vWvvvpKAerkyZOp9vP19VXm5uZqwYIFSimlJk+erMzNzVP9LCilS9gMSeyaN2+uunTpkmmbL774QgHqyJEjWb3dNCZMmKDKlCmjf56S2PXv3z9VuwMHDihArVu3Lk0fv//+uwLUzp07s3188eyQW7Gi0Hpy8kRiYiKXLl2ifPnytGzZkitXruTKMU+cOEHPnj1xcXHB3Nw81e3PmzdvpmrbsWNHLC0t9c+LFy9OxYoVuXXrln5bym2Vl19+OdW+lpaWtGnTJs1tT0Pt3bsXgL59+6baXqdOHapVq6Z/PUWnTp2wtrZOta1evXpERUUxbNgwjh49yuPHj3Pl2IacJ8jeuTdUp06dsLKySrWtd+/eBAcHpyktkd452rt3Ly1bttTfak3x0ksv6V83hc2bN9OsWTPc3d1TbW/dujXW1taZ/pyk3CK0t7fPsE3Pnj1TPf/nn38IDQ1N83MJ0KFDB4KDg7l69WqG/QUHBzNmzBg8PDywsrJCo9FQvHhxkpOT03yv5s6dS4MGDejUqRMbN25k0aJF1KhRI9V7r1SpEo0bN061X+XKlfHw8NC/97179+Ll5YWnp2eqdk8OT8hMvXr12LNnD1OnTuXy5csopdK02bZtG5UqVeK5557LtK/ff/+d1q1b4+joiJmZGRqNhtmzZ3P//n0ePXqUqm23bt1SPU+ZSPP0zz+Ag4MD8N/3VIj0SGInigRLS0u8vLxYsWIFYWFhTJkyxaD90vvlnZGrV6/y/PPPY2Fhwb59+4iJiUEpxZ49ewDSJD5ly5ZN04eDg0OqX8r3798HoGLFilhYWGBubo6ZmRlmZmYsW7bMqPFjoBusb2ZmhouLS5rXypQpQ1hYWKpt5cuXT9PulVdeYd68efzzzz+0bNkSJycnunXrlmWymd1jG3KesnvuDfV0QvbkNkPOUXh4OGXKlEmzPWXb030Y6/79+xw4cAALC4tUPyfm5uYkJCRk+nPi5OQEkOlM8affW8rP5euvv64/XsoxU8akZnTM5ORk2rdvz549e1i6dClhYWFotVq0Wi2WlpZpvldWVlYMGTKE+Ph4qlSpkiaZvH//Pn5+fmneu0aj4ebNm/o4wsPDM/1+ZmXWrFm89dZbLFiwgFq1auHq6srw4cNTjbELCQlJ9+fgSStXrmTQoEG88MILXLhwgYSEBJRSfPbZZ0DWvycyS95SvoclSpQw6D2JZ5MkdqJIKVWqFCVKlEg1GN3R0RGA6OjoVG21Wq3+D5gh/vjjD+Lj41m0aBG1atXSz3C8fft2uu1TJjdkFa9GoyEsLIykpCSSk5P1fwSVUsTGxhoc35NKliyJVqslNDQ0zWvBwcGUKlUq1bYnr5g9Gf/YsWO5evUq9+7dY/HixYSEhNC+fftMi+dm99iGnKfsnntDBQcHZ7jtybIkkP45KlmyZKZ9PP1ejVWqVCm6detGUlJSqp+TlCvWP//8c4b7VqxYESDTn/Wn31tK3KtXr9Yf7+ljtmnTJt2+Tp8+zaVLl5g6dSpt27bFwcEBjUZDYGBgugn4pUuX+PDDD2nSpAm+vr588sknaWKpXbt2hu99165dgO77ldn3Iiv29vbMnTuXoKAgrl69ypQpU9i1axetW7fWT1ApXbo0gYGBmfazfPlyatasyeeff07FihX15zYnvydSBAUFAf99T4VIjyR2okgJCwvj4cOHqa6ilC5dGnt7+zQzD3ft2pXujDk7OzsSEhLS7T9lltuTnp5FmR09evRAKcUff/xh1P4Zxdq+fXsANmzYkGr7pUuXuHbtmv51Q5UtW5aBAweyaNEikpOTOXr0aIZtTX3sFKY+95D+z8DGjRtxcXExqLZc+/btOXLkSJokdt26dQDpzkQ1Ro8ePTh48GC2PoikaN68ORYWFunOtMzIc889h7OzM2vWrMn28VIY8r2KiYnhpZdeonz58uzZs4dPPvmEr776ii1btujb9OjRg8uXL2c5c7hdu3Zcvnw5zS3MjRs3ZitujUZD9erVeeutt/joo48ICgrixo0bAHTv3h0/P79Mf/4h7XuPiorKdhzpOXHiBK6urlSrVi3HfYmiSxI7USQkJSVx5coVhgwZgkaj4f3330/1+qhRo/j999/ZsmUL0dHR7Nmzh2XLlqUZswS6MS6HDx9O88e6W7dumJmZ8d577xEeHo6/vz9vvfWWwbd60tOmTRtGjRrF+++/z/fff8/du3d59OgRFy9eZPr06UyaNCnT/TOKtUuXLnTo0IEPP/yQ9evXExUVxcmTJxkwYADlypVLc37SM378eGbMmIGPjw9xcXEEBQXx008/YWFhQatWrTLczxTHflpunHuA+vXrM2LECPz8/AgNDWXKlCns3r2b6dOnY2FhkeX+U6ZMwdzcnH79+nHp0iUiIiJYvHgx33zzDSNHjqROnTo5ii/F559/jrOzM126dGHv3r1ERkYSGhrK/v37eeWVVzK9PV68eHHatm3L33//bfDxbG1t+fHHH9m0aRNvvPEGV69eJS4uDl9fX1asWEGXLl0y3Ldu3bpUrFiRL7/8kmvXrvHw4UMWL17MyZMnKVasWKq2r732Gnfu3GHdunU4ODjw2Wef0b59e4YOHYqfnx8AY8eOpWHDhvTq1Yu//vqL8PBwIiIiOH78OGPGjGHVqlUAjBs3jlKlSjFgwADOnz9PZGQky5Yt0/eTlW7durFs2TJu3bpFYmIi165d448//qB8+fJUrVpVH0u9evXo378/f/31FxEREfj7+/Ptt9/y448/ArrxiufOnWPhwoXExMTg4+NDnz59aNu2rcHnPz1arZYDBw7Qo0ePHPUjngH5MGFDiBx7elasubm5cnd3Vz169Eh3xtqjR4/Ua6+9ppycnFTx4sXVgAEDVHh4eLqzYk+cOKEaN26sbGxsFKB69eqlf+3PP/9UtWvXVjY2Nqpy5cpq7ty56tChQwpQmzdvVkr9N4vyydIGKZo1a6aef/75NNuXLl2qWrRooYoXL66KFy+u6tWrp6ZMmaKCg4MzPQ+ZxRobG6smT56sPDw8lKWlpSpdurQaMmSICggI0LfJLNagoCD16aefqjp16ihbW1vl6uqqunXrpg4ePJiqXXqzUHN67PTOkyHnPqN4nvbksTdu3Ki8vLyUlZWVql69eqpSHlnFqZRSly5dUn369FElSpRQlpaWqkaNGurrr79WycnJ+jY5nRWrlFJhYWFq/PjxqkqVKsrKykq5urqq9u3bq99++00/gzcja9euVRqNRvn6+qbanjIr9saNG+nud+zYMdWrVy9VqlQpZWVlpapUqaJGjBihzp8/r2+T3qxYHx8f1aFDB2Vvb69KlSqlvL29VVRUlCpWrJh66623lFJKffvttwpQv/76a6p9Q0JCVPny5VXjxo31M5ZjY2PVZ599pmrVqqVsbGyUs7Ozatmypfrpp59UXFycft9r166prl27Kjs7O+Xs7KzefvttdefOHYNmxV64cEF5e3srT09PZW1trdzd3dXIkSPTnLOoqCj1wQcfqMqVKysrKytVuXJlNX78ePXgwQOllFLJyclq2rRpqmLFisrGxkY1bNhQbd++Xc2YMUMB6uHDh0qp/2bF7t69O1X/jx8/VoD6+OOPU21Paf/07GAhnqZRKhujx4UQogiIj4/H1taWKVOm6Ae1F2XJycnUrVuXTp068c033+R3OMIIffr0ITY2lp07d+Z3KKKAk1uxQghRxJmbmzNnzhwWLFiQavUPUTicPn2aLVu2MGfOnPwORRQCWQ8iEUIIUeh17tw5y+XHRMHUqFEjo0v6iGePXLETQgghhCgiZIydEEIIIUQRIVfshBBCCCGKCEnshBBCCCGKiEI/eUKr1XLv3j3s7e2ztTSLEEIIIURhoJQiOjqacuXKYWaW+TW5Qp/Y3bt3L93VA4QQQgghipKAgADc3NwybVPoEzt7e3tA92YdHBzyORohhBBCCNOKiorC3d1dn/NkptAndim3Xx0cHCSxE0IIIUSRZciQM5k8IYQQQghRREhiJ4QQQghRREhiZ6Bz587RpUsXzp07l9+hCCGEEEKkq9CPscsr69atY8eOHTRp0oT69evndzhCCGFSycnJsh6pEPnE0tISc3Nzk/QliZ2BNm/erP/3888/z+dohBDCNJRS3L9/n4iIiPwORYhnmpOTE2XKlMlxTV5J7AwQHBzM+fPnAd0t2ZCQEFxcXPI5KiGEyLmUpM7FxQU7Ozsp9C5EHlNKERsbS0hICABly5bNUX+S2Blg586daZ4PGTIkn6IRQgjTSE5O1id1zs7O+R2OEM8sW1tbAP2Fo5zclpXJEwbYsnWr/iSbm5uzZevWfI5ICCFyLmVMnZ2dXT5HIoRI+X+Y07GucsXuX4GBgQQHB6fZfuRGKOs3biE5ORnQfcJd99dmvl+zk5ZVS6dp7+rqSvny5XM9XiGEMBW5/SpE/jPV/8N8T+y0Wi1r167l77//xs7OjuHDh1O3bt08j6N///4cPXrUoLbJCbG8O7Bzuq+1bNmSw4cPmzI0IYQQz6j4+Hhu3rxJzZo1TTZrUhRt+XorNjExkS5dujB58mSqV69O9erVef311/UTFfLSiBEjsLCwMDpj1mg0WFhYMGLECBNHJoQQ4ll19epV6tSpw8OHD/M7FD0/Pz9u3LiR4etarZY7d+4QGhqaozagS2x9fX2lFE825GtiN2vWLE6cOMGRI0d47733GD16NIcOHaJixYp5Hou3tzeHDh2iVKlSWFhk70Kmubk5pUuX5tChQ7z22mu5FKEQQhRcyVrFMd9wNp4L5JhvOMlald8hCRNbtWoVLVu2xMvLiy5duqTbZv78+Tg7O9O6dWs8PT3p2LEj4eHh2W6TnJzMxIkTKVWqFB07dqRSpUosWrQo195bUZKvid2iRYsYMmQIZcqU0W+ztLTEyckpX+Jp3rw558+fp1GjRgZfudNoNDRp0oTz58/TvHnzXI5QCCEKnh0+QbT66m8GLTrO2N/PMWjRcVp99Tc7fIJy5Xi3bt3C398/1bbIyEh8fHx4/PgxsbGx+Pj4oJQiKSkJPz8/EhMTU7U3pE2KsLAwAgICjIo1KSmJmzdvpjuG+8kYHj9+zK1bt0hISDCo3/RiSkpKwsfHBx8fH65du0Z8fHy68WTVJiP79u3jq6++YuLEiem+vnPnTsaOHcvy5cvx9/cnODgYGxsbhg8fnq02AGPHjmXVqlX8888/+Pr6cuPGDSIjIw2O9Zmm8snDhw8VoJYvX66+//57NXz4cPXRRx+pS5cuZbpffHy8ioyM1D8CAgIUoCIjI00WW0JCgurU62UFZPno1OtllZCQYLJjCyFEXomLi1OXL19WcXFxRvex/eI9VWnSFlXxqUelfx/bL94zYcQ6v/76q7Kzs1NXrlxRSimVlJSkWrVqpbp166aUUurQoUMKUB9++KEqVaqUcnd3V8WKFVN//PGHvg9D2gQFBanmzZsrBwcHValSJVWhQgW1fft2g+Ncvny5KlmypCpbtqyysbFRzz//vLp377/zkRLD+++/rxwdHZWrq6tycnJS69at07c5e/asAlRoaGiWMYWFhalatWqpWrVqqapVqypra2s1cuRIlZiYqO/PkDZZmTJlivL09Eyzfdy4cap27dqptu3Zs0cB6s6dOwa3uXPnjjIzM1MrVqwwOKaiILP/j5GRkQbnOvl2xS4mJgaATz75hDNnztC6dWvCwsKoX78+u3btynC/GTNm4OjoqH+4u7ubPDYrKysa1a4GZlmcHjMzGtepjpWVlcljEEKI/KCUIjYxyaBHdPxjpmy6RHo3XVO2fbbpMtHxj7PsSynDb90OHTqUnj17MnjwYBITE5k+fTrXr19nyZIlqdr5+/sTGBiIv78/H3/8MaNHj04zViuzNjNmzMDW1pbQ0FBu377NsWPHuHXrlkExXrt2jZEjRzJnzhzu3btHcHAwiYmJjB49Ok3bM2fOEBgYyP379/n4448ZOnRohmPPMovJ2dlZfzXu+vXr3Lp1iyNHjvDjjz/q9zekjbHs7e15+PAhWq1Wvy0sLAyAkydPGtxmz549KKXo2bMnDx484M6dO6nai8zl26xYR0dHAOrWrav/zzhy5EgePHjA559/TseOHdPdb/LkyYwfP17/PCoqKleSu61btkBWP0haLWvXb+SLadNMfnwhhMgPcY+T8frfzqwbGkAB96PiqfNZxh/WU1z+vBN2Vob/SVq4cCH16tXj5ZdfZtu2bWzcuDHNikDTpk3Tf/AePHgwH330Ef7+/nh6ehrUJiYmBgcHB/2463LlyvHmm28aFN8vv/xCnTp19LcYHRwc+PLLL3nhhRcIDAxMVRZr2rRpFCtWDIDx48fz7bffsnr1asaOHZumX0Niio+PJzAwkLi4ONq1a8eePXvS9GVIm+waMmQIc+bMwdvbm1GjRhEUFMRnn32GmZmZPnkzpM3du3cpVaoUn376KatWrcLGxobY2Fi+/vprvL29cxTjsyDfrtjZ29vj4eFBjRo1Um2vUaMG9+7dy3A/a2trHBwcUj1M7cklxP6jeepfnWuXL7Jo11mTxyCEECJjjo6OzJ07l02bNjF48GC6du2apk25cuX0X6ckTtHR0Qa3ef/997lw4QKVK1dm9OjRbNiwweArRzdv3qR27dqpttWpUwcAX1/fVNu9vLz0X5uZmVGzZk1u3ryZbr+ZxZSQkMDQoUNxdHTkhRdeYODAgWzYsIHAwED9/oa08fX1TXVVz1BVq1bl+PHjJCUlMXbsWBYvXszPP/+MVqvFxsbG4Dbm5uaEhoby6NEj7t+/z927d/nmm28YPXq0/qqeyFi+1rEbNmwYf/75J59//jm2trbEx8ezdevWfJ+E8PQSYubm5tgVK07XgSPY9vtSYh/F6AsWA0z+biWB8VZ83K0mluaymIcQovCytTTn8uedDGp74vYDhi/N+g/tshFNaOpRMsvjZodSigULFlCiRAn27NlDeHi4yZdF8/Ly4ubNm5w4cYJ9+/Yxfvx4Fi5cmOZvRHqKFStGXFxcqm2xsbH6154UFxdHiRIlUrV7uo0hMX3//fccPXqU27dv6xPW//3vf2zatEm/vyFtJk2axNWrVwEoX768Qe83RZ06dVi+fLn++bFjxwBSXcTJqk2FChUA3dXLlCuTw4cP54MPPuDvv/+mSZMmBsfzLMrXLGTSpElUqlSJatWq0bNnT6pXr46ZmRnffPNNfobFtm3bMDMz08+M7dmzJzdvXOf3n+Zy88Z1evbsCehmxGo0ZsTdOsWyo34MWfwP4TGGzWgSQoiCSKPRYGdlYdCjddXSlHW0IaMaAhqgrKMNrauWzrKv7NYQnTt3LqdPn+bMmTOUK1eO119/Pcfv/WmJiYmYmZnRvHlzJk+ezJIlS9i1axdRUVEA3Lhxg6Cg9Gf+NmzYkMOHD6eaabtnzx7s7OyoVq1aqrb79u3Tf/3w4UPOnTtHgwYNsh3T1atXad68eaqrkHv37k21vyFt1q5dq79il52kDtIuh7Vo0SKqVq1K06ZNDW7zwgsvYGZmlmqcYVxcHI8ePUqVAIv05esVOxsbG7Zs2cLZs2e5c+cOFSpUoEGDBvm6vE1SUhLbt29Hq9Xi5OTETz/9RP/+/fWvu7i4sH79ev744w9Gjx5NREQEBJzFzgKO33pAz/lH+GlII2qXd8y39yCEEHnB3EzDlB5ejFl5Bg2kmkSR8lt8Sg8vzM1M+zv9woULfPTRR6xcuZJKlSqxevVqGjRowOLFi01aS3To0KF4enrSvn17bGxsmD9/PrVr19YPAerSpQtdu3blu+++S7Pv6NGjmTdvHgMGDOC9997D39+fCRMm8OGHH2Jvb5+q7cSJEzE3N6dMmTJ88cUXVKhQgX79+mU7ppYtWzJu3DjWrFmDm5sbS5cu5cSJE9SqVUu/vyFtMnL79m0ePXpESEgIiYmJ+Pj4ALorbSlX1jp06MDYsWMpX748v//+O2vWrGHXrl2p/q5n1cbNzY23336bN998k1mzZuHg4MCcOXMoWbJkhudF/EejsjMVqQCKiorC0dGRyMhIk4y3i46Opk2bNnh4eLBw4cI0g3GfFBISwhtvvIGfnx+L/9zCe+uv4Rcei42lGV/1q0uv+rJmrBCi4IqPj+f27dt4eHjoxzcZY4dPEFM3XyYo8r+aaGUdbZjSw4vOtcuaIlQ9pRSDBw/G1dWVefPm6bf/+uuvLFy4kC1btuDv78+QIUM4c+aMfmJEREQErVq1Yt26dVSvXp2zZ89m2SYmJobvv/+ePXv2kJCQQOPGjZk4cSLlypUjKiqKUqVKceDAAVq0aJFurP7+/nzxxRecOXMGe3t7BgwYwOjRo/UJzOHDh2ndujUHDx7khx9+wNfXl1q1ajF9+nT95Ipr167Rr18/Dh8+jJOTU6YxKaWYO3cuGzZs4PHjx7Ru3Ro3NzcOHTrE2rVr9ecvqzYZGTp0KGfOnEmzfe/evbi6ugLg4+PDtGnTuHXrFnXq1GHChAmpxhAa2iY5OZnvv/+e9evXk5ycTIMGDZg8eXKRXos9s/+P2cl1JLFLR3JycrbW5EtpHxn3mHd/O8uB67rLx6+3qczETtWxkHF3QogCyFSJHehWnjhx+wEh0fG42NvQ1KOkya/UFST79+/nzz//5IcffjC6j5TELi4uLsfnXxR+pkrs8vVWbEGV3YWWU9o72lqyZHgTZu+6xoL9vvx88BZXgqL4flADnOyk1p0QougyN9PQwtO0kxcKsrZt29K2bdv8DkOINORSkomZm2mY1LkG8wc3wNbSnEM3wug5/whX70fld2hCCCEKkGLFilGrVi3MsiqGL0Q2yE9TLuletxzrxjyHWwlb/B/E0vfHo2y/mDvrJgohhCh8GjRogI+Pj6xeJExKErtc5FXOgc1vt6JlFWdiE5MZs+oMs3deQ6st1MMahRBCCFFASWKXy0oUs+LXEU15rZUHAPP33cR7+Smi4h9nsacQQgghRPZIYpcHLMzN+LS7F9/0r4eVhRl/Xw2h9w9HuBkSk9+hCSGEEKIIkcQuD/Vt6MbaN1pQ1tGGW6GP6P3DEfZcDs7vsIQQQghRREhil8fqujmx6e1WNK1UkpiEJLyXn+K7vTdk3J0QQgghckwSu3xQ2t6ald7NGNqiIgDf7L7Om6vOEJOQlM+RCSGEEKIwk8Qun1hZmPF5r9rM7FsHK3Mzdly6T98fj+AX9ii/QxNCCFFAXL58GTc3Nx4+fJjfoTBr1iwmTpyY4et+fn64ublx//59IPdif7rfkydP4ubmRkJCgkmPkxNPn4tbt25Rv359YmJyf2y9JHb5bGDTCvz2enNc7K25HhxDz/mH9UuSCSFEgRcRAPfOZfyICMjH4Aq/xMREAgMDSU5Oztc4goKC+OKLL3jzzTczbJOUlERgYCBJSbq7T9mJ/cKFC7i5uREVlXUx/6f7TUhIIDAwkJyukJqdGLLy9LmoXLkyNWrUYMaMGTnuOyuypFgB0KhiCTa/04rRK05zLiCCEUtPMKlzDV5vU1m/WLQQQhQ4EQEwvxEkZXKlxMIa3j4NTu55F5cwuR9++IE2bdpQqVIlg/epVasWAQEBlCxZMsu2KcmaVqs1ab/ZkZ0YjPH666/Tr18/Pv74Y+zs7HLlGCBX7AoMVwcb1oxuTv/GbmgVzNh+lXd/P0dcYv5+ShNCiAzFhmee1IHu9dhwkx525syZNG7cmOjoaP22CRMm0LZtWxITE/W35vbu3Uu3bt2oUaMGPXv25Nq1a/r2hrRJSkpi6tSpNG7cmFq1ajFq1Cj9rTVDXLt2jQEDBlClShUaNmzIzJkzU129Solh586ddO7cmWrVqtGnTx9u3bqVYZ+ZxRQaGoqbmxtubm54eHjQrl07/vzzz1T7G9ImPStWrKBv376ptp0/f55OnTpRvXp1evXqxblz51K9fuPGDZo3b05kZGSmsd+9e5du3boBuqTNzc2Nt956S39+du/eTdu2balUqRLHjh1L02+K/fv3Z3ged+7cSfXq1VO19/X11d8uzSgGgODgYN58801q1qxJ/fr1GTt2LBEREdk6F4B+beEtW7Zkeb5zRBVykZGRClCRkZH5HYpJaLVatfzobeU5eauqOGmL6jLvoPIPf5TfYQkhiqC4uDh1+fJlFRcXl/bFhJiMH4n/tg88q9QUh6wfgWcz7zeb4uPjVZ06ddTQoUOVUkpt3bpVWVpaquPHjyullDp06JACVL169dTff/+tLl26pHr37q1q1aqltFqtwW1mzpypPD091f79+9XVq1fVkiVL1OjRow2KMSIiQrm4uKhXX31VnTt3Tm3atEm5urqqSZMm6dukxFChQgW1fft2dfbsWdWrVy/l6empEhMTlVJKnT17VgEqNDQ0y5iSk5NVQECACggIUL6+vmrFihWqePHiatu2bfpjGtLmabdv31aAunjxon7bgwcPVMmSJdWoUaPUhQsX1Jo1a1TJkiUVoAICArIVe1JSktq6dasC1KVLl1RAQIAKDw/Xn5+aNWuq3bt3K39/fxUfH5+mX0PO44YNG1SxYsVSva8rV67o480ohsjISFWlShU1evRode7cOX3fLVu21P+cGHIuUnTs2FGNGTMm3fOc2f/H7OQ6ktgVUMd9w1TDz3epipO2qPpTd6ojN0PzOyQhRBGTaWKXWaK28iVdG2MSu6880r5uhIsXLyobGxs1b9485eLioqZNm6Z/LeUPfUqip5RSPj4+ClB37941uM0rr7ySJpFLTk42KL4ZM2YoNzc3fWKhlFIrV65U1tbWKiIiIlUMf/zxh75NZGSkcnBwUCtWrFBKpU2OshvTBx98oPr3759prFm12b9/vwJUWFhYqvfn4eGR6tizZ8/ONLHLLPaTJ08qQD18+FD/Wsr52bt3b6p9MkrsMjuPWSV2GcUwe/Zs1aBBg1T7xcTEKEtLS/XPP/8YfC5SDBs2THXp0kWlx1SJnYyxK6CaVXZm8zuteH3FKXwCoxiy+ASfdKvJ8Ocqybg7IcQzr3bt2nz11VeMHTuWVq1aMXny5HTbpHB1dQUgLCyM8uXLG9Smb9++vPrqq2i1Wrp06UK7du1wdHQ0KL7z58/TokULLC0t9dvatm1LQkIC165do2nTpvrtrVq10n/t4OBAvXr1uHDhQrr9ZhXT6tWrWbJkCXfu3CEuLo6YmJg0tyANafOklAkAFhb/pQwp78/M7L8RXa1bt870nBh7Phs2bJhlG8jeeTTU0aNHuX79OpUqVULpLoahlCI5OZmbN2/StGnTbJ0LCwsL/fnMLTLGrgAr52TL2jeeo0+D8iRrFVM3X2bCnxeIfyzj7oQQueyjexk/+q8wvt9xF9P2Z6TAwEAANBpNuh94zc3N02xTT82czKxN3759OXnyJOXKlWPevHmUKVOGr7/+2qDYEhISsLa2TrUt5fnTZTmsrKzSPM+odEdmMa1du5Y33niDIUOGsHHjRo4fP87o0aNT9WVIm6eVLVsWgJCQkFTvL724M2Ps+bSxscmyTXrHz+w8Gio+Pp527dpx+PBhjhw5wtGjRzl27Bh37tyhd+/eQPbORWhoqP585hZJ7Ao4G0tzvulfj0+61cRMA+vO3GXAT8cIiozL79CEEEWZVbGMH5aG/aE1uF8j7N+/n2+++Ybff/+dK1eu5FoZiVq1avHZZ59x4MABlixZwuTJk3n0KOt6o9WrV+f8+fOptp09exaAqlWrptp+8eJF/ddJSUlcvnw5TRtDYtq1axc9evRg2LBheHl54ebmxp07d1Lta0ibp9WoUQMnJyfOnDmj31a1atVUcQNp3m92Yk9JsJ9OvLMjs/Po4OBAfHx8qqtlT7/v9GKoVasW58+fx9XVVT/pJOWRMrM1O+fizJkztGzZ0uj3aAhJ7AoBjUaDd+vKLB/ZDCc7S87fjaTH94c56fcgv0MTQog8FxERwdChQ/nggw8YMGAAixcvZurUqZw8edKkx5kyZQqHDh0iOTkZpRQBAQHY29vrryC1bt2aTz/9NN19X3/9da5fv853332HVqslJCSEyZMn079/f8qUKZOq7eTJkwkPDyc5OZnPP/+cR48eMXjw4GzH5ObmxsmTJwkLC0Mpxdq1a1m7dm2q/Q1p8zQzMzP69u3L9u3b9dtGjRrF+fPnWbRoEUop/P39mT59utHns1y5cgCpZiVnV2bnsU6dOlhYWLBkyRJAN9P1s88+S7V/ejGMGTOGhw8f8tZbb+mLCwcEBDB27Fh9gWRDz4WPjw/BwcH07NnT6PdoCEnsCpFWVUux+e1W1ChjT1hMIoMXHWfVP5l/0hJCiFxj56yrU5cZC2tdOxMaPXo0Li4uTJ06FYCePXvy2muv8corrxh0Nc1QnTp14pNPPsHJyQknJyeWLFnCn3/+ibm5OUlJSVy4cAFPT8909/Xw8GDNmjXMmTMHBwcH/VWeH3/8MU3brl27Uq1aNRwcHPjll19Ys2ZNhjXaMotp3LhxVKpUiXLlyuHo6MjUqVPp379/qv0NaZOesWPHsn79en2JkSpVqrB06VImTZqEg4MDTZo0YcCAAUafT1dXV8aOHUvbtm0pX768vtRIdmR2HkuXLs2CBQuYMGECJUqUoHHjxnTq1CnV/unF4OHhwd69e7l48aI+7jZt2lC1alX9+EBDz8WSJUsYOHBgmsTe1DQqJ9c9C4CoqCgcHR2JjIzEwcEhv8PJE7GJSXyw9gJbLwQBMKhpBab2rIWVhRnJWsWJ2w8IiY7Hxd6Gph4lMTeTyRZCiLTi4+O5ffs2Hh4eBo9jSiMiIPM6dXbOJi1OrJQiMDCQEiVKUKzYf7dxHz9+THBwMKVKlcLMzIyQkBDc3Nz0r2u1Wu7du4erqyuWlpYkJiZm2SZFXFwcycnJFC9eXL/twIEDvPfee5w6dSrVoPn0hIWFYWdnl6Yo7eHDh2ndujVxcXHY2NgQHh5OiRIlUvWX8r7KlSuXant6MaWIiYkhKSkJJycnYmJiiI2NxcXFJdttnubt7Y2rq2uqq1FJSUlERUVRsmRJkpOTCQoKomzZspibmxsV++PHjwkNDcXGxobixYun+R6ld06e/l6mdx5TKKWIjIzEycmJpKQk7t+/r483vRieTLAfPXpEUlJShhM+MjsX9+/fp06dOpw5cwZ39/T/P2T2/zE7uY4kdoWUUooFB3yZtfMaSulWr+jfyI15e28QFBmvb1fW0YYpPbzoXDt3B2sKIQofkyR2z6hHjx6h1Wqxt7c3uo+nE7uCLiEhgcjIyCwTQJFWyuzj0qVLZ9jGVImd3IotpDQaDW+2rcKS4U2wt7Hg9J2HTFp/MVVSB3A/Mp4xK8+wwyconyIVQoiip1ixYjlK6goja2trSeqMZGtrm2lSZ0qS2BVyL1R3YcObLTO83ZpyOXbq5sskawv1xVkhhChSmjZtSkBAQKG4WicKD0nsioDQ6IRMkzYFBEXGc+K2zKIVQoiCwsrKKs34MSFyShK7IiAkOj7rRtloJ4QQQojCSRK7IsDF3rDL+Ia2E0IIIUThJIldZiIC4N65jB8RAfkY3H+aepSkrKMNGRU10aCbHdvUI/26SEIIYQrnzp2jS5cunDt3Lr9DEeKZZZF1k2dURADMbwRJmawzZ2ENb582aY0mY5ibaZjSw4sxK8+g4b8JE0+a0sNL6tkJIXLVunXr2LFjB02aNKF+/fr5HY4QzyS5YpeR2PDMkzrQvZ5ZYc481Ll2WRa82pAyjmlvtw5o4i517IQQuW7z5s2p/hVC5D1J7IqQzrXLcnhSO34b1ZxvB9ZnZMtKAOy6HExU/OP8DU4IUaQFBwfrFz4/d+4cISEh+RyReBbNmDGDrVu3Ztrmm2++Yf369XkUUd6TW7FFjLmZhhaeunUZu9Ypy4HrofiGPmLBfl8mda6Rz9EJIYqqnTt3pnk+ZMiQXDlWeHg4kyZN4oMPPqB69eq5coyiJDk5mc2bN7N9+3aee+45hg0blqZNcHAwK1euxM/PDzc3N4YPH46rq2u22wBcv36dP/74g7CwMNq3b0+PHj0MivOLL77Az88vw9fLli3LtGnTMu1j48aNJCcn061btwzbbNu2jcaNG9O3b1+D4spIREQEv/76KxcvXuTtt98uMMMP5IpdEWZpbsbkLjUBWHz4NoERcfkckRCiqNq6dat+vU0LC4ssr5rkRHR0NIsXLyYoSFbUycrNmzfx9PRkyZIl7N27l0OHDqVpc/78eapWrcqRI0eoWrUq58+fp27duvj6+marDcDKlSupV68e/v7+VK1alRUrVvD5558bFGudOnVo3rw5zZs3p0KFCixevBgXFxf9tnr16uXsZJjQ8uXL8fLy4tKlSyxevDjThDSvyRW7Iq59TReaVy7J8VsPmL3zGnMH1M/vkIQQhVRgYCDBwcFptiul2LFjB8nJyYBuMfTt27dz+vRpNJq0k7ZcXV0pX768SWNLTExk1apVnD59GgcHB/r160ejRo30r9+8eZOZM2fy5ZdfsmTJEvz8/HjvvfeoXr06t2/fZsmSJcTHx9O0aVPKlCnD9u3b+fLLL/X7x8bGsmLFCnx8fHBxcaF3797UqVNH//rWrVu5cOEC/fr1Y926dYSGhtKmTRt69+6tb6PVatmwYQPHjh3D1taWbt260bx5c5Me42klSpTg8OHDuLm50bZt23TbfPLJJzRp0kR/e/Ldd9+lb9++TJ48mT/++MPgNrdv38bb25s5c+bw1ltvAfDWW28RGBiY2bdOr1evXvqvfXx8mDJlCj179tSfo8WLF+Pt7Y1Go6FUqVK0bNmS7t27p9vX1q1bOXToEBqNhmHDhlGjRuZ3rPz8/Fi1ahX379/H09OTYcOGUaJEiQzbt2jRgps3b6LValm0aJFB7y+vyBW7nIqPzO8IMqXRaPi4qxcAG84GcvFuwY5XCFFw9e/fn0aNGqV5NG7cmOjo6FRto6Ojady4cbrtBwwYYNK4tFotHTp0YObMmbi7uxMZGUnz5s31CQfA/fv3Wbx4Mc899xxhYWE0atQIBwcHfH19adCgAWfPnqVs2bIsXLiQgQMHpto3pf3GjRvx9PQkOjqa1q1bs27dOn2bs2fPMmvWLPr06YNGo8He3p4hQ4bw/fff69uMHz+eCRMmUKpUKYoXL84HH3zAmjVrTHqMpzk7O2e5usXt27fTXA2rV68eW7Zs0SfrhrRZtmwZxYoVY/To0anamSqJ9/T0pHnz5jRr1gxbW1veeOMNJkyYkKbdggULmDZtGqVLl8bX15dGjRrpx3+mZ9++fTRs2JDAwECqVq3KsWPH8PLyyjQhrVq1KnZ2diZ5X6YmV+xy6s/hMGQDlKuf35FkqI6bI30alGfD2UCmb7vMb6Oap/spWgghMjNixAhOnDhBcnIySqUurJTVc9B90DQ3N2fEiBEmjWv16tWcPn2aW7du6cd8lS5dmvfee4/evXtjZWWlb/vxxx+nOv7w4cOpV68emzdvRqPRMHbsWBo1akRMTIy+zaeffkq1atXYuHGjflv16tUZN24c/fr102+LjY1lx44duLvrSmCZm5vzyy+/8M477wC6cjCzZ8/WJ7YTJ07k3r17Jj2GMerXr8+ePXtISEjA2tqa5ORkdu3aRVxcHIGBgVSoUMGgNmfOnKFp06acP3+e1atXY2VlRZs2bejSpYvRsT2pbdu2qa469uzZk8aNG/PRRx9RsuR/dVrNzMw4cOAA1tbWAPTt25ePPvoo3eEBycnJjBgxgq+++opRo0YBuquRffr04YsvvmDBggUmiT0v5Wti9/3336c50ZUqVWLhwoX5FNET7Jx1deoyLXmiAQsbKOmRZ2EZa0Kn6my7GMTxWw/YeyWEDl5pB7wKIURmvL29qV27Nj179uThw4ckJSUZvK+5uTnOzs5s3Lgx1e1HU9i/fz/t2rVLNZD/1VdfZerUqdy4cYNatWrptz+dZBw8eJBx48bpP+yam5vTt29fli9frm+zZcsWKlasyBtvvIFSCqUU4eHh3L17l/DwcJyddRPWqlevrk+4Up7fvXtX/9zLy4sFCxZQvnx5mjVrhqWlpf5qlqmOYYwZM2bQoUMHatWqRdOmTTl79iyVKlUCIC4uzuA20dHR+Pn5MWLECIYOHUpkZCSDBw/mlVdeYf78+TmKEXRJ2F9//cWpU6cICwtDq9WSnJzMjRs3aNasmb5djx499EkdwIABA3jttdfS7dPHx4c7d+6wf/9+Tp8+rT/3d+/e5f79+zmOOT/ka2J36dIlHj16xMcff6zfZm9vn48RPcHJXVd8OLM6dVbFdP/aOOr+VQoe3oaSlXM/vmwq72TLa608+HG/L19uv8Lz1UtjaS534oUQ2dO8eXPOnz9Pnz59OHnyJFqtNst9NBoNTZo0YcOGDZQpU8bkMYWEhFCqVKlU21KeBwcHp0rsnJycUrULDQ3VJ00pnn4eFhZGhw4daNy4cartXbp0SZVA2Nrapnrd3Nxcf5sSYNWqVcycORNvb28CAwPp1q0bs2bNwt3d3WTHMIa7uzs+Pj4cPnyYwMBAJkyYwLVr19ixY4f+PBrSxsHBgcDAQI4dO0bZsrraqfXq1ePll19m0qRJqRJSY/Tp04erV68yaNAgGjZsiIWFBUuWLEkzDODp71+pUqV49OgRsbGxaW6fhoWFAdC4ceNU+UfTpk1TXQUsTPL9VqyrqyudO3fO7zDS5+SevVUlTi+F7ZOg/f+g+VtgVrASpzFtPVlzMoBboY/4/YQ/Q1pUyu+QhBCFUNmyZTl48CCvvfYaK1euzLL9K6+8wuLFi1PdEjUld3d3rly5kmrbnTt3AKhQoUKm+7q5uREQkHp5yKefly9fHmdnZ7y9vXMUZ6lSpZg9ezazZ8/G39+foUOHMmbMGLZs2WKyYxjL0tKSF154Qf/8xx9/pGbNmqmSpKza1KlTh1OnTumTupRtAP7+/jlK7O7evcvmzZu5evWqvsRNRjNRn/7+3blzh5IlS6Y7Ji7limmDBg0ynFxS2OR75nHu3Dn69u3LiBEjWLJkiUGf/gqsO0chORF2fQIrekOkYTOB8oq9jSXjOlQFYO6eG1K0WAhhNCsrKypVqqQvcZIRc3NzPDw8ci2pA3jppZc4cOAAZ86c0W+bM2cO9evXx9PTM9N9e/fuzbJly/Rj6h48eMCqVatStXn11VdZtGgR165d0297/Pgxf/31V7bi/PPPP/VjDytUqECTJk0IDw836TGMERAQwM2bN/XPT506xcqVK/nwww+z1Wbw4MGEhIRw+vRp/batW7dia2uLl5duEt/Dhw/x9vZO1cYQKeftyatzM2fOTLft+vXr9cldfHw8CxcupE+fPum2rVGjBo0bN2bKlCk8evRIvz0kJISDBw9mK8aCIl+v2FlZWdGpUyeef/55AgMD+eSTT1izZg07duzIcHB/QkICCQn/jXuLiorKq3Cz1ncRVGoFOybD7QOw4DnoMQ9qpf8DlR8GNq3A0qN+3Ap9xML9vkyUosVCCCNt3rw5y9uAKcVxDa1lZowXXniBd955h+eff54XX3yRgIAA7ty5w7Zt27KcKDZx4kS2bNlCnTp1aNq0Kf/88w/u7u76hAt0Ey5u3rxJw4YNeeGFF7C0tOTcuXMMGTIk01IjT/vrr7/4+OOPadCgAVFRURw9epTffvvNpMd4mlar5fXXXwfg2rVr3L9/H29vb1xcXPTlXMzNzRkwYADlypVDo9Hw999/M3nyZIYOHarvx5A2tWrVYtasWbRr144XX3yRqKgojh07xi+//KIvHRISEsLixYsZPnx4tt6Hu7s7r776Kp07d6Zjx45cu3YNC4v0U5iaNWvSsmVL/bCBpKSkTH/+1qxZQ69evahevTotW7YkLCwMf3//TGcbnzt3jvnz5+vHmf7www9s2bKFF1980eSzvrNLo9KbupRHYmJiKF68uP75pUuXqFu3Ln/88UeqWUBP+uyzz5g6dWqa7ZGRkTg4OORarNkS7gvrvOHev58e6w2GLl+BTcGIb/flYEYtP4W1hRl/T2hLeSfbrHcSQhQ58fHx3L59Gw8PD2xs0q4znZng4OA04+U0Gg1KKf2/T7d3cXHJccwAly9fplatWpw5c4YGDRqk2n7mzBns7e1p165dqjFTwcHBbN68mREjRqS5ypiQkMDu3buJj4+nUaNG/Prrr+zatYujR4+manft2jVOnz5N8eLF9fXuUpw7dw5/f3969uyp3+bn58ehQ4dSrcBx69YtTp06ha2tLa1atUpTK80Ux3iSUorFixen2e7o6MjLL7+sfx4fH8++ffuIjo6mZcuW6ZYoMaQN6EqjHDt2DHt7e5o3b07p0qX1r/3www9s2rQpzUolT3v48CHr1q2jV69eqfY/fPgwt2/fxs3NjTZt2rB06VK6du1KuXLlANi0aRMVKlSgdOnSnDx5EoCOHTumug27fft2SpUqRZMmTfTbtFotR48e1ffdrFmzTMuZ3Llzh927d6fZXrt2baMnB2X2/zEqKgpHR0eDcp18TezSU7lyZQYNGsT06dPTfT29K3YpdYsKTGIHkPwYDnwFh+bono/cBe5NMt8njyilGPjzcf65/YC+DcrzjRQtFuKZlJPEbvny5amWpjI3N8fe3p53332X7777jujo6FRX85YvX26yJcZWrFiBt7c3ISEhODo65qivhIQEfHx89MWMIyIiaNiwIYMHD+aLL74wRbjiCYcOHcLd3V0/o1b8x1SJXb6PsXuSVqslIiIi07EY1tbWODg4pHoUSOaW0O4TGLEdOs8sMEkd6D5Vf9JNN95hvRQtFkIYYdu2bZiZmelvdfbs2ZNr164xdepUrl27pr+qpNFoMDMzY9u2bTk+5q1btxgwYABjxoxh0qRJOU7qQJeQvvPOO7Rr146XX36ZGjVqULFiRT744IMc9y3Sat26tSR1uSzfErvHjx/z008/6SdLKKWYNm0akZGRORpPUOBUaA7NnqjCHXoNlnXX3a7NRylFiwGmb7ucbjFRIYRIT8qSYVqtFkdHR9asWcP69ev1t1pdXFxYv349a9aswdHREa1Wy7Zt23JclsPe3p5evXpx9OhRk43Zs7Cw4NChQ0ybNo2+ffuyadMm/v77b5MkjULkh3ybPGFubo6Pjw9ubm54enpy9+5dEhIS+O233wrUQr8mt20C+B2Cha2h8wxoOBTyaRWICZ2qs1WKFgshsikuLo7KlSvj4eHBwoULMxw7179/f9q2bcsbb7yBn58fsbGxOapVWrp0aQYPHmz0/hkxNzenZcuWtGzZ0uR9C5HX8n2MXUREBJcuXaJEiRJUqVIl21Pis3PfuUCIvAsb3tAldwA1ukOP76CYc+b75ZKvdlxlwX5fKpcuxs5xbaRosRDPkJyMsUtOTs6y1ElO2gvxrDHVGDujrthdvnyZgwcP6pcxcXd3p02bNtSsWTPbfTk5OT1bn5Ic3WDoJjj2PeydBle3wN2T0PtHqNIhz8NJVbT4ZABDmlfM8xiEEIVPdpM0SeqEyBsGX57RarUsW7aMunXrUqtWLaZMmcKmTZvYtGkT//vf//Dy8qJ+/fr8+uuvhbvIcF4wM4OWY2HUXihVHWKCYWU/uLEnz0NxeKJo8bzd14mWosVCPHPkd7YQ+c9U/w8NvhXbuHFjtFot3t7edO/ePc0yLXfu3GHLli0sXrwYMzMzTp06ZZIAs1LobsU+LTEW9kyBoPMwfBuY5/2wx8fJWjrNO8it0Ee82dZTihYL8YzQarXcuHEDc3NzSpcujZWVVZYFfYUQpqWUIjExkdDQUJKTk6latSpmTy1Jmit17DZs2JDhkhw5aZtThT6xS5GUABbW/319YQ3UfzXP1puVosVCPJsSExMJCgoiNjY2v0MR4plmZ2dH2bJl051rUKgLFGdXkUnsnrTzYzg2HzzaQO+F4Jh+dW9TkqLFQjy7lFIkJSXluByJEMI45ubmWFhYZHjFPNcnT4hcVqoqWNrB7YN5tt6sRqPh42416Tn/COvPBjKylQe1y0sdJyGeBRqNBktLSywtLfM7FCFEDhl8xS47laL9/PyMDCf7iuQVO4Cwm7DeG+6d1T3Po/Vmx/1+lr/O3aN55ZL8Nqq5jLcRQggh8lmuXLH75JNPchyYyIZSVeC13bB/Jhz+Bs6vhjtHoP9yKFc/1w77QecabPO5L0WLhRBCiEJIxtgVBneOwvrREB8BbxyGErlba06KFgshhBAFR3ZynRz/xU5ISCA+Pj6n3YjMVHwOxhyGwX+kTupiH+TK4ca09aRkMSt90WIhhBBCFA5GJ3aLFi2iSpUq2NraYmdnR5UqVVi0aJEpYxNPsnGEii3+e35zL8yrA6d/BRNfdJWixUIIIUThZNSs2FmzZjFt2jTeffddmjfXDbA/duwY77//PhEREXzwwQemjlM87fxvkBgDm9+FG7vg+UmgMqlabecMTu4Gdz+oaQWWHfHjVtgjFh7w5YNOUrRYCCGEKOiMGmNXsWJFfvzxR7p165Zq+9atW3nrrbdkVmxe0Gr/W29Wa8AVNQtrePt0tpK7XZfu8/qK01hbmLFvQlvKSdFiIYQQIs/l+hi7oKAgWrdunWZ7q1atuHfvnjFdiuzSrzf7NzgZMJkiKQFiw7N1iBe9XGnmUZKEJC2zd14zMlAhhBBC5BWjEjtPT0/Wr1+fZvvatWvx9PTMcVAiG8rWhb65M7YxpWgxwPqzgfgERubKcYQQQghhGkaNsfv0008ZNmwYO3bsoGnTpgD8888/rF+/nuXLl5s0QGGAlDVmc0FdNyd61y/HX+fu8cXWy1K0WAghhCjAjLpiN3jwYPbs2UNMTAzff/898+fP59GjR+zdu5dBgwaZOkaRzyZ0qo6VhRnHbz3g76sh+R2OEEIIITJg9Fqxzz//PM8//7wpYxEFlFsJO0a29GDhAV++3HaF56uVxkKKFgshhBAFjvx1FgZ58wVd0WJfKVoshBBCFFhGXbGLi4vjxx9/5PDhwzx8+DDN6/v3789pXKKASSla/L+Nl5i7+zq96pfD3sYyv8MSQgghxBOMSuxef/119u3bR+/evalVq5apYxLZZeesm0CRlJBxG3MrXbsckKLFQgghRMFmVIFiBwcHTp06RbVq1XIjpmx5ZgsUPy0iIJ06dQp2fgx3jkDZ+jBqn67+XQ5I0WIhhBAib+V6gWI7OztKlSplVHAilzi5Q7n6Tz0aQN+fwao4BJ2D00tzfJgXvVxpmlK0eJcULRZCCCEKEqMSu2HDhjF16lSSk5NNHY8wNUc3aPep7utzqyH7F2hT0Wg0fNxVV7R4gxQtFkIIIQoUo27F3r17l7p162JmZkbFihXTFKw9deqUyQLMityKNYA2WXe1rsEQkxUzHvv7WTaeu0eLys6sHtVMihYLIYQQuSQ7uY5RkydGjBhBiRIlePnll3FycjKmC5GXzMyhibdJu/ygU3W2+9zn2K1w/r4aQvuaribtXwghhBDZZ1Rid/jwYS5dukTlypVNHY/IbclJuqt39QaBdXGju5GixUIIIUTBY9Rf4jJlyshtz8Lqz2GwbQLs+zLHXb35gicl7CylaLEQQghRQBiV2L388st8/PHHJCYmmjoekdsajdD9+88CuHc2R13pihbrSt7M23Od6PjHOY1OCCGEEDlgVGK3efNmfv75Z0qVKkWtWrWoXbt2qocowKp2gNovgdLCpnd1t2ZzYHCzCniUKkZYTCI/HbhloiCFEEIIYQyjxtiNHj3a1HGIvNR5BtzcDfcvwD8L4bm3je7K0tyMD7vUYPSK0yw6dItXmlegrKMULRZCCCHyg1HlTgoSKXdipDPLYdM7YGkHbx6HEhWN7kopxYCfj3Pi9gP6NizPN/3rmy5OIYQQ4hmXaytPeHp6MnbsWHbv3i3j6wq7BkOgYkt4HAs7JueoKylaLIQQQhQM2Ursvv/+exITE3nttdcoVaoU/fr1Y+nSpQQHB+dWfCK3aDTQfR54tIH2n+a4u3ruTvSqXw6lYPrWKxTyC8FCCCFEoWT0rdjz58+zZcsWtmzZwqlTp2jYsCHdu3ene/fuNGjQwNRxZkhuxRYcAQ9iaf/NARKTtCwZ3ph2NaRosRBCCJFTuXYr9kn16tXj448/5tixY9y7d48333yTCxcu0LZtW9zc3GSCRWEUeTdHu7uXtGNEy0oAfLntKknJWhMEJYQQQghDmWSpgNKlSzNs2DD+/PNPwsLC+PXXX7GzszNF1yIvKAU7P4Zv68Gdoznq6s22VShhZ8nNkBjWnJKixUIIIUReMvkaUJaWlrRv3565c+eaumuRWzQaSIgCbRJsHgtJCUZ35Wj7X9HiubulaLEQQgiRlwxO7CpVqmTwwxi///47rVq14rvvvjNqf5FDL34OxUpD2HU4PC9HXUnRYiGEECJ/GFyg+JNPPsm1IG7cuMEHH3yAVqvl1i1JBPKFbQnoPBPWvQaHZkPtvlCqqlFdSdFiIYQQIn8YnNh5e3vnSgAJCQkMGDCAWbNmMXPmzFw5hjBQ7X5w/je4uQc2j4PhW3S3aY3Q0cuVppVKcsLvAbN3XmdO/3qmjVUIIYQQaZh8jF12TZw4kVq1ajFw4MD8DkVoNNBtjm41ijuH4ezKHHSl4aNuuqLF68/elaLFQgghRB4waq1YgMuXL/PXX3/h7+9PUlLqheR/+eUXg/rYvHkzmzdv5ty5cwYfNyEhgYSE/wb3R0VFGbyvMECJStB2MhycBZqc5f313Z3oWa8cm87f48ttV1jl3QyNkVcAhRBCCJE1o/5yb9q0iUaNGnHw4EF++uknwsLC2LVrF4sXLyYoKMigPgIDA/H29mb58uXZKiw8Y8YMHB0d9Q93d3dj3oLITPM34e2T0OCVHHf1QafqWFmYcdQ3nH3XQkwQnBBCCCEyYtTKEw0aNOCDDz5g8ODBaDQalFI8fvyYN998E61Wy+LFi7Ps44cffuDDDz+kXr3/xl6dO3cOR0dHPDw8OHDgAObm5mn2S++Knbu7u6w8UYDN2H6Fnw7coopLcXaMbY2Feb6PABBCCCEKjeysPGFUYmdra0tYWBjFihXD0tKSqKgobG1tCQ4Opnbt2oSGhmbZR1BQEL6+vqm2jRgxggYNGvDuu+/SqlUrg2KRJcVy2Y09cPQ7GPQ7WBlXdDoy7jFtZ+3jYexjpvepzSvNKpo4SCGEEKLoyvUlxeLj4ylWrBgAZcuW5caNGwAkJycTFxdnUB9ly5alVatWqR7FihWjXLlyBid1IpclJegKFt8+AAe+MrobR1tLxrbXlU6Zu/s6MQlJWewhhBBCCGPk+J5Yjx49eO2115g3bx4DBw6kdevWpohLFAQW1tBttu7ro9/D/YtGdzW4WcUnihb7Zr2DEEIIIbLNqMRu8+bN+q9nzpxJ48aNWbZsGeXKlTN4Rmx6li1bxtixY43eX+SC6l3AqxeoZN3VO22yUd1YWeiKFgMsOnSLoEjDruwKIYQQwnBGjbErSGSMXR6ICoIfmurWk+3yNTQbbVQ3SikG/HScE34P6NfQTYoWCyFSOXfuHJMnT2bGjBnUr18/v8MRosDI9TF2Sin8/f3TbPf396eQ54kiPQ5locMU3dd7P4fIQKO6kaLFQojMrFu3jh07drB+/fr8DkWIQsuoxO67777jm2++SbP9m2++Yf78+TkOShRAjUaCezNIjAGftUZ3k1K0WCmYvvUyx3zD2HgukGO+4SRr5UOBEM+ylGE+Tw73EUJkj1G3Yj08PNi/fz8VK6YuW+Hn58eLL76onyWbF+RWbB4KuQLhvlCze466CXgQywuz95P0VCJX1tGGKT286Fy7bI76F0IUPsHBwZQpUybVcxcXl3yMSIiCI9dvxd6/fx87u7Q1zezs7Lh7964xXYrCwKVmjpM6gEv3ItMkdQD3I+MZs/IMO3wMW71ECFF07Ny5M9PnQgjDGJXYNWzYMN3Zr4sWLZIBr8+KmFA4/3u2d0vWKqZuvpzuaymp3tTNl+W2rBDPmC1bt+pXGzI3N2fL1q35HJEQhZOFMTtNnTqVLl26cOzYMdq0aYNSioMHD7Jjxw62b99u6hhFQfMoDH5oAnERUNIT3JsYvOuJ2w8IiozP8HUFBEXGc+L2A1p4Ouc8ViFEgREYGEhwcHCa7UduhLJ+4xaSk3XllJKTk1n312a+X7OTllVLp2nv6upK+fLlcz1eIQojoxK7Dh068PfffzNz5kzmzJmDRqOhQYMG7Nu3T1aNeBYUKwXVusD51bradqMPgLmlQbuGRGec1BnTTghRePTv35+jR48a1DY5IZZ3B3ZO97WWLVty+PBhU4YmRJFhVGKXlJRE69at011lIiIiAicnp5zGJQq6jl/A9R0Qckm3KkXr8Qbt5mJvY9J2QojCY8SIEZw4cYLk5GSjSmNpNBrMzc0ZMWJELkQnRNFg1Bg7b2/vdP9TRkRE8OKLL+Y4KFEIFHOGzjN0Xx/4Ch7cMmi3ph4lKetogyaD1zXoZsc29ShpkjCFEAWHt7c3hw4dolSpUlhYZO+6grm5OaVLl+bQoUO89tpruRShEIWfUYnd8ePHef/991Nte/jwIR06dJCSI8+SugPA43lIioct74EBn8DNzTRM6eEFkG5yp4ApPbwwN8so9RNCFGbNmzfn/PnzNGrUCI3GsP/nGo2GJk2acP78eZo3b57LEQpRuBmV2O3atYs///yTL7/8EvgvqXNycmLLli0mDVAUYBoNdJ8LFjZwaz/4rDNot861y7Lg1YaUcUx7u7WqS3E61SqTzl5CiKKibNmy/Lp+O2UbdTCofceeL3HgwIFUde6EEOkzaoxdhQoV2LVrF61bt8bS0pLff/+dEiVKsHnzZmxtbU0doyjInD2h7WSIDICqht+G71y7LC96leHE7QeERMdjptHw/h/nuBESw+7LwXSU5E6IIikxScuiQ7f4du8NHlmWBI0ZKG3GO2jMeGjmSFyyBqu8C1OIQsuoxA6gZs2abN26lfbt29OiRQs2bdokSd2zqtU4o3YzN9OkKmly9X4UP+zzZeb2q7xQwwVLc6MuKAshCqjTdx4wef1FrgfHAGAWcCbzpA5AaTl75G86zzvInJfr8VyVUnkQqRCFl8GJXe3atdPdbmlpiZ+fH02a/FfLzMfHJ+eRicJJKYgJAXvXbO86pm0V1pwM4FbYI1Ydv8Pwlh65EKAQIq9Fxj3m6x1XWX3CH6XAuZgV77QozYivnl5+UoNupG3KvzqPQ25x9959Bv8Sz8iWHkzsXB0bS/M8fAdCFB4GJ3be3t65GYcoCqLuwYbREBkIY46CZfZKlhS3tuC9F6vx8QYfvt17gz4N3XC0Naw+nhCi4FFKsd3nPp9tukRIdAIA/Ru7MblLTTavS71yjbm5OXbFitN14Ai2/b6U2Ecx+oLFAPXN7nARJ5Ycuc3BG6HMG1Cf2uUd8/T9CFEYGJzYjRs3LhfDEEWCVTEIvQ4x9+HQbGj3Sba7GNDYnWVH/LgREsMP+27yUdeauRCoECK3BUbE8b+/fNh7NQSAyqWKMb1PHf3wi23btmFmZoZSCqUUPXv2ZOHChbi4uBAybTJvvPEGGzZsQKPRoNFoKB5ykaVTvJm47gI3Q2Lo/cMRxnWoyhvPe2IhwzaE0DP4f8Ovv/6KVpvFWAh0S8H8+uuvOQpKFFI2jtB1lu7rw/Mg5Eq2u7AwN+OjbrpkbtkRPwIexJowQCFEbkvWKhYfvs2L3xxg79UQLM01vNuuCtvGttYndUlJSWzfvh2tVoujoyNr1qxh/fr1uLi4AODi4sL69etZs2YNjo6OaLVatm3bRpuqzuwc14YutcuQpFXM3nWd/j8dwy/sUX6+ZSEKFIMTu2XLluHl5cWcOXO4fv16qteUUly+fJmZM2dSs2ZNli1bZuo4RWFRswdU7wrax7rlxgz4MPC0ttVK07pqKRKTtczccTUXghRC5AafwEh6/3CEaVsuE5uYTOOKJdj2bmvGd0w9Ji4uLo7KlSvTp08frl27Rv/+/dPtr3///ly7do0+ffrg6elJbGwsJYtZ8eMrDfmmfz3srS044x9Bl28PseqfO0atZiFEUaNR2fifsGHDBmbNmsWxY8ewt7fHxcUFpRQhISHExMTQsmVL3n//ffr06ZObMacSFRWFo6MjkZGRUhy5oIi8Cz80g8QYXZ27xiOz3cWVoCi6fncIpWDdmOdoVLFELgQqhDCF2MQk5u6+zuLDt9EqsLexYHKXmgxs4o5ZBsXGk5OTMTc3fAJEeu0DI+J4/49zHL/1AIAXqpfmq351cXGQJQlF0ZKdXCdbiV0Kf39/jhw5QkBAABqNBjc3N1q1aoW7u7vRQRtLErsC6vgC2PEhWDvC2yfAPvt16SatvcCaUwE0qODE+jHPGVylXgiRd/ZdDeGTv3wIjIgDoHvdsvyvh1eerfes1SqWHLnN1zuvkZikpYSdJV/2qUOXOmXz5PhC5IVcT+wKEknsCihtMvzSHh7HwUtLwdUr212ERMXTdvZ+YhOT+X5QA3rUK5cLgQohjBESHc/nmy+z5UIQAOWdbPmid21eqOGSL/FcD45m3O/nuBwUBUDfhuX5rGctHGxkZr0o/CSxEwVD1D2wKwUWxteL/3bPDebuuY5bCVv2jH9ealcJkc+0WsWaUwHM2HaFqPgkzDTwWisP3nuxGnZWRte8N4nEJC3z9lxn4QFftEqXbM5+uV6qQuhCFEaS2IkiIzYxiRdm7yc4KoHJXWow+nnP/A5JiGfWzZBoJq+/yEm/hwDUKe/IjL51Clw9uVN+Dxj/x3n8H8Si0cBrLT2Y0EmKGovCKzu5jhT/Ebkv+TEcmgN7P8/2rnZWFkzoWB2A+ftu8uBRoqmjE0JkIf5xMt/svk6Xbw9x0u8hdlbmfNKtJhvefK7AJXUAjSuVZPvY1gxq6o5S8Mvh2/ScfxifwMj8Dk2IXGdUYhcXF2fqOERR5n9Ml9Qdngv3zmZ7934N3fAq60B0fBLf7rme9Q5CCJM55htO128P8d3eGzxOVrSv4cLu8c/j3bpygS4MXMzaghl967J4WGNKFbfmenAMfX48wg/7bpKsLdQ3qoTIlFG3Yp2cnBg4cCAjR46kadOmuRGXweRWbCGxdiT4rIMydWHUPjDP3licozfDGPzLP1iYadj5Xhs8SxfPpUCFEAARsYl8ue0Kf5y6C0Bpe2um9qxFl9plTDtDPSIAYsMzft3OGZxyVnEhPCaBjzZcZOelYAAaVyzBN/3rU8HZLkf9CpFXcn2M3YoVK1iyZAkHDhygVq1ajBw5kldffZXSpUsbHbSxJLErJGJCYH5jiI+EjtPhubez3cVry06y92oIHWq68suwxrkQpBBCKcXGc/eYtuUy4f8OfXilWQUmdq5h+rWbIwJgfiNISsi4jYU1vH06x8mdUop1ZwL5bNMlYhKSsLMy59PuXgxs4i6llESBl+tj7IYMGcK+ffu4efMmvXv3Zu7cuZQvX55+/fqxdevWVAs3CwFAcRd4cZru633T4eGdbHcxuWtNzM007LkSzDHfTD7hCyGM4h8ey9AlJxi35hzhjxKp6lKctW+0YHqfOqZP6kB3pS6zpA50r2d2Rc9AGo2Glxq5sX1sa5p6lCQ2MZnJ6y/i/espQqOziEGIQiRHAyQqV67MtGnT8PPzY86cOWzZsoXu3btToUIFvvrqKxIS5D+LeEKDIVDhOXgcC1vfh2xeLK7iUpzBTSsAMH3bZbQyTkYIk3icrGXBfl86zjvAoRthWFmYMaFjNba+25rGlUrmd3gm5V7Sjt9HNefjrjWxMjdj79UQOs07yA6f+/kdmhAmkaOiQzExMfzxxx8sWbKEY8eO8cILL+Dt7U1ISAjz5s3j+PHjbNiwwVSxisLOzAx6zIMFLeHWPri8EUpUStsukzE14zpU5a+zgfgERrHhbCD9GrnlashCFHXnAiL4cN0Frt6PBqBFZWem96lN5SI8jtXMTMOoNpVpXa0U7605z5WgKN5YeZqXGrkxpYcX9lLUWBRiRiV2hw8fZsmSJfzxxx84OjoyfPhwVqxYgYeHh77NgAEDqFChgskCFUWEpR2gQJsEfw5Lv00mY2qci1vz5gtV+GrHVWbtvEbXOmWxtZLaVEJkV3T8Y2bvvMby43dQCkrYWfJxNy/6NSz/zIw5q1HGgb/eeo65u2/w00Ff1p6+yzHfcL7pX49mlaWosSicjLoV27ZtW8LCwvjtt9/w9/dn+vTpqZI6AFdXV0aMGGGSIEUREhuuS+oyk8WYmhEtK1HeyZb7UfH8cuiWiQMUouhI1iqO+Yaz8Vwgx3zD9WU+dl66z4vfHOTXY7qkrm+D8uwZ/zwvNXLL26Tu3pm8O1YGrC3M+bBLDf4Y3QL3krYERsQxcNFxvtx2hYQkGS8uCh+jZsUGBQVRtmzBWGBZZsUWMvfOwc/PZ93u9QNQrn6GL288F8jY389hZ2XO/g/a5tmC40IUFjt8gpi6+TJBkfH6bS721pR1tOH8XV2h3orOdkzvXYdWVUvlbXAP/WDXJ3Bls2Htm3hDpy91V/NzUUxCEtM2X2bNqQAAapSxZ+6A+tQsK39bRP7K9VmxBSWpE8+unvXKUc/didjEZObulqLFQjxph08QY1aeSZXUAYREJ3D+biRmGnizrSc7x7XJ+6QO4O6pf5M6A/8EnfwFfmgG13fmaljFrS346qW6LBraGOdiVly9H03P+YdZsN9XihqLQsOoxK5MmTIZPipWrMgLL7zA8uXLTR2rEHoajYZPu9UEYM3JAK79O/BbiGddslYxdfNlMktDnItZ837HPFw7VSl4cPu/57X7QYu34dV1WV+FM7MAu9Lw8Das7g+r+kO4b66G+6KXKzvfa8OLXq48TlZ8teMqA38+RsCDWCDjW9xCFARGTZ4YPXo0X3/9NUOHDqVhw4ZoNBpOnTrFihUrePfdd0lMTGTMmDEkJSUxcuRIU8csBKBbD7JrnTJsu3if6duusHxk/q6CIkRBcOL2gzRX6p4WGpPAidsPaOGZBxMEAk/D9g91idk7Z8DGATQa6DRd9/rbp7NeecLWCQ58DccXwI2duln1Ly2Fmt1zLexSxa35eUgj/jx9l6mbLnHS7yGd5x2kb0M3dl8J5v4T57isow1TenjRubbczRL5z6jE7tChQ6xatYq+ffvqt73++ut07NiRBQsWsHfvXpo3b84XX3whiZ3IVZM612D35WAOXg/lwPVQnq+W96ufCFGQhERnntRlt53Rou/r1og+t0r33LKYbq3oyk+NsXVyN2xViY7ToOFQ2D4JAk9Bheamj/kpGo2G/o3daVHZmff/OM8JvwesOJ62uPr9yHjGrDzDglcbSnIn8p1Rt2JPnz7Niy++mGZ7x44dOX36NABdunTh9u3bado8KTY2lm+++YZOnTrRsmVLXn/9da5cuWJMSOIZVdG5GMNaVALgy61X5JaIeOYZOpEo1yYcJSXA4bnwfaP/krp6g+Cd02mTuuwqVVV3+/aNw1Ds37GBSsHfX0DwpZz1nQn3knas9G6GvU3610JSfutM3XxZfgeJfGdUYle8eHG2bduWZvvWrVspXlxX1PLevXtUrlw5035GjRrFgwcP+PDDD5k5cyaxsbG0aNECPz8/Y8IShYGdc9Zjasytde0M9E67qjjZWXItOJo//p3NJsSzqqlHSewyqe2oQXfrsKlHLqwokRADPzaHPZ9BYgyUbwTee6HPQnAw0ZUsjQacnqiRen0HHJwFC1vrrubFRZjmOE85fech0fEZl2pSQFBkPCduP8iV4wthKKNuxX744YcMHTqUbdu20bhxY5RSnD59mt9//53Zs2cDMGvWLN5///1M+1m6dClWVlb65y1atMDW1pZ9+/ZJDbyiysk9/TE1SgvbPoDKL0DDIdla8NvRzpJ321Xl8y2XmbPrOj3qlaO4dY4WVRGi0Np8/h6xienXX0upUDelhxfmZrlQr866OLg3g8RYeHEq1OmvW3EmN7l4Qc0eulm2/yyEi2uhw2dQ/xWTHrvA3OIWIgtG1bED2LFjB99++y1XrlxBo9FQo0YNxo4dS+fOnY0OZtu2bfTs2ZMzZ85Qt25dg/aROnZFiFK6T+NGSEzS0nHuAfzCY3mnXRXe71jdxMEJUfDdDImm5/wjxCYm061OWc74P0w1kcLkg/xjH+gmNTR/47/lAWMfgLklWNub5hiG8v1bd8Uu7N/yR+UbQZdZ4NbIJN0f8w1n0KLjWbb7bVTzvJmUIp4p2cl1jErstmzZQvfuppmNdOTIEUaPHk1UVBTR0dGsWrWKrl27Ztg+ISGBhIQE/fOoqCjc3d0lsStqEqIBje4KgIF2+NznjZWnsbE0Y9+EtpR1tM29+IQoYGITk+j9wxGuB8fQsoozy0c2A3SzZEOi43Gx191+NcmVuuQkOLMM/p4OcQ90V8wGrMx5vzmVlAgnfoL9X0FiNDhXgbdOgFnOy7okaxWtvvqb+5HxGZaSKetow+FJ7XLnaqh4puV6geLevXtj5IW+NOrVq8fvv//O8uXL6dq1K6+99hq+vhnXKJoxYwaOjo76h7u74bfsRCFxaz/80Fw3oy4bOtVypWmlksQ/1jJr57XciU2IAkgpxSd/+XA9OAYXe2vmDWiAuZkGczMNLTyd6VW/PC08nU2TcNw+CD+1ga3v65K60jWh8Ws579cULKzguXfgnVO6CRudvvwvqUtO0j2MZG6mYUoPL+C/W9pPm9ylhiR1It8Zldh5enpy+fJlkwRQvHhxateuTdu2bVm5ciWOjo589913GbafPHkykZGR+kdAgAyWL3KUFqLuwomfdRXqDaTRaPiku65o8fozgfgERuZWhEIUKH+eusv6M4GYaeD7QQ0obZ8LS2899IM1r8KvPSDkEtg4QdfZuhmqni+Y/ng5YV9GN2GjWqf/tp38BX5qDbcPGd1t59plWfBqQ8o4pp5RnJLLXQ6SQuki/xmV2E2cOJEhQ4awZ88e7t27R1hYWKqHsTQaDSVKlCAyMuM/yNbW1jg4OKR6iCLGs53u0zYKNr0LyY8N3rWumxO965cD4Iutl012ZVmIgupKUBSfbvQB4P2O1WlWOZfGd53/XTdBQWMOTV+Hd89C01FgXggmKmmTdbdoQy7Dr93hz+EQedeorjrXLsvhSe34bVRzvh1Yn99GNWfBK7pxfD8f9OV8QITp4hbCCEYldt7e3pw9e5YXX3yR8uXLU7p06VQPQ8TFxTF16lQePXqk37Z69WpOnDhBz549jQlLFCUdp+tKnoRcgqMZX8FNzweda2BtYcbxWw/YfTk4lwIUIv9Fxz/mzVVnSEjS0rZ6acY872m6zrVaiAn97/lz70LdAbordF1ngV0ulEvJLWbmurIrTbxBYwaXNsD8JnBwtq7uXjY9fYu7U+0y9KxXDq2CiWsvkJikzYU3IYRhjPqodfbs2Rwf2NraGmtrazw8PChevDiRkZHY2dmxYMGCVCtaiGdUMWfoNAM2vK4bCO3VG5wN+6NV3smW11p58ON+X2Zuv8oLNVywNM/lkgtC5DGlFJPXX+R22CPKOdowt399zEw1vuvuadgxSZf0vL5flxhZ2UHfn03Tf36wKwnd5kDDYbB9Ivgfg7+nwdmVutu2OVzJ4rOetThyM4xrwdH8sO8m771YzUSBC5E9Rpc7MRWlFP7+/hQrVoxSpUple38pd1KEKQUr+ujWhazUGoZtNrgcSnT8Y16YvZ+wmEQ+6+HF8JYeuRysEHlrxTE/Pt14CQszDWtGt6BRxRI57zS9ZcBe2wVlaue874JEKbj4J+z6FB6FwOhDJnmPWy7c4+3VZ7Ew07D5nVbULCt/k4Rp5PqsWID4+Hh27tzJggUL9Nv8/f2zPaZJo9FQsWJFo5I6UcRpNNB9LljY6pYPehxr8K72NpaM66D7xPzt3htExhk+Tk+Igu7C3QimbdEtv/hhlxo5T+oyWwasqCV1oPvdUre/bvbsgJWp3+P1nZD4KON9M9GtTlk6ermSpFVMXHuBpGS5JSvynlGJna+vL3Xq1GHgwIG8+eab+u0TJ05k3bp1JgtOCEp6wFv/wMvLwKpYtnYd2MSdqi7FeRj7mB/23cyd+ITIY5GxunF1iclaOnq58lqrHF6NjgyEH5o9sQxYY9MvA1ZQWdtDjW7/PQ+5Ar8N0o2/81mnu7KXDRqNhi9618bBxoKLgZEsOpT5eulC5AajErv33nuPbt26ER6eelmo8ePH8/XXX5skMCH0SlQ0ajcLczM+6qorf7LsiB8BDwy/4idEQaSUYsLa89x9GId7SVtmvVwPTXrDEyIC4N65jB8RT5SJsi+ruyJevAz0+Qle2w1ujfPg3RRAcQ/B0Q2iAmHtSF1pl+BL2erCxcGG//WoBcDcPdfxDY3JjUiFyJBRY+xKlizJzZs3KVmyJBqNRn/7NSYmBmdn51QrQ+Q2GWP3DIkO1g3orjcYqnU0aBelFEMWn+DwzTC61S3LD4Mb5nKQQuSeXw7d4outV7AyN2PdmOeo4+aYtlFEAMxvlPlsT405jDkKLjV0zx/6gV2pbK30UmQ9joMj38HhbyApXneumnjDCx/pVsR5ep3rJ9k5g5M7SimGLz3JgeuhNKpYgj9Gt5DCxSJHspPrGDUrNikpCa1WN3bgyU+LAQEB2Nvn8fqA4tnxzwJdmYK7p6HiMYP+CGk0Gj7qWpNu3x9i64UgRrZ8aJpB5kLksdN3HjBz+1UAPu3hlX5SB7rEI6sSHioZjn4Lvf8dI52yzqsAS1toOwnqD4KdH8OVTboaeNe2Q0wwJGdybi2s4e3TaJzc+bJvHTp+c4DTdx6y/JgfI2QCl8gjRt2KbdeuHfPmzQP+S+wiIiIYN24cnTp1ymRPIXKg9QRwrACR/rDvS4N38yrnwMuN3AApWiwKpwePEnl79VmStIoe9crxarMKOe+0fJOc91GUOVWAAStgyF9Qqhp49cg8qQNdQv3vFb3yTrZM/ncoyNc7rslQEJFnjErs5syZw7Jly6hfvz5KKbp06YKHhwdXrlxhxowZpo5RCB3r4tD9G93X/yyAwDMG7/p+x+rYWppz1j+CrReDcilAIUxPq1W8t+YcQZHxVC5VjBl966Q/ri67ysuwBIN4vqC7bV0r+/VVBzetQDOPksQ9TmbSugvyoVLkCaPXir148SLDhg1j0KBBODk58dFHH3H+/HkqVDDBJ0khMlL1Raj9km492c2GLzfm6mDD6OcrA/DVjqskJCXnZpRCmMyCA74cuB6KtYUZP77akOLWhWAJr6LG3BLMsn/ezcw0fNWvLjaWZhz1Def3k7K2uch9RtexK1GiBO+99x6rVq3it99+44MPPqBECRm7JPJA55m6BcjvX4TjPxq82+ttKuPqYE3Agzh+PeqXa+EJYSrHb4UzZ9c1AKb1rk2NMjJBrLCpVKoYEzpWB2D61isERcblc0SiqDM6sUtISODy5cscPnw4zUOIXFW8NHSarvv6zApITjJoNzsrC/0v2O//vsmDR4m5FaEQORYancA7v51Fq+ClRm70b+ye3yEJI41o6UGDCk7EJCTx0fqLcktW5Cqjrunv27ePQYMGERyc/gLr8kMrcl39V3TV4esPBnPDf4z7NXRj6RE/LgdF8d3eG3zWs1YuBimEcZK1irG/nyU0OoHqrvZM65WN1R/8j+VeYMIo5mYaZr1Ul67fHmbftVD+OhdInwZu+R2WKKKMumL37rvvMmjQIO7du0dcXFyahxC5TqOBZqN1leOzwcxMwyfddDPVVh6/wy0pHioKoG/33uCobzh2Vub88EpDbK3MDdsx+DLsnZZ1OwtrXc01kWequNgztkNVAKZuvkxodN7VexXPFqOu2N26dYtp06ZRvLgUsxQFgFarW9+yelcolvUfq+eqlKJ9DRf2Xg1hxvarLBr6jFbZFwXSweuhfP/3DQBm9K1DFRcDf88+CoPfBsDjR+DWRDcWNaMB//8W0hXZYOesS4gzqxFonnnC/Hqbymy7GMSle1FM2eTDj680yoVAxbPOqMSuWrVq3L17lxo1apg6HiGyb+t4OL1Ut2h5n4UG7TK5a032Xw9l9+Vgjt8Kp3lluXoh8t/9yHjGrTmHUvBKswr0ql/esB2TEmHNEIjwhxIeMPgPsCuZu8E+a5zc4e3T6a88kRQPFjZZJsyW5mZ8/VJdes0/wraL99l2MYiudYr4erwizxl9K3b48OEcO3aM0NBQwsLCUj2EyFMNXgU0cP438N1n0C5VXIozuKmuNM8XWy+j1cq4UJG/Hidreee3Mzx4lEitcg582t3LsB2Vgi3vgf9RsHaAwWskqcstTu5Qrn7aR4Xmun+d3HV3EMJuZNhFrXKOjGnrCcD/NvrwUCZxCRMzKrEbOXIk//zzD8899xwuLi6ULl061UOIPOXWGJq+rvt6yzhINKzC+7gOVbG3tsAnMIq/zgXmXnxCGGD2rmuc9HuIvbUFP77SEBtLA8fVHZsP51aCxgxeWgqlq+duoCJj8ZG62+GL2sOD2xk2e7tdFaq6FCcsJpFpWy7nYYDiWWBUYnf27NlMH0LkufafgkN53WLmB2YatItzcWvefKEKALN2XiMuUYoWi/yx53IwPx24BcDXL9WlonMxw3dOiNb923E6VO2QC9EJg1naQVwEJETC2pG6W+TpsLYw5+uX6mKmgfVnA/n7avoVJoQwhkYV8tokUVFRODo6EhkZiYODFO98pl3bDr8NBI05vL4fytbNcpf4x8m0n3OAwIg4JnSsxtvtquZ+nEI8IeBBLN2/P0xk3GNGtKzElB5GlOAJOKm7cm2KpcZEzkQEwMJWEB8Bzd+Czhmvaz1962UWHbpNGQcbdo1vg4ONZd7FKQqV7OQ6Rhcojo+PZ+fOnSxYsEC/zd/fX2rYifxTvQt49QaVrLsla8DPoo2lORM7625dLdjvS0h0fO7GKMQTEpO0vL36DJFxj6nn7sTkLjUN2zH2ATx+orSUexNJ6goKJ3fo/e/fxeM/wNVtGTYd/2J1KjnbcT8qnhnbruRRgKKoMyqx8/X1pU6dOgwcOJA333xTv33ixImsW7fOZMEJkW1dvoKKLaHL1wb/oetZrxz13J14lJjM3N0ZD3oWwtS+3HaF83cjcbS15IfBDbCyMOBXclIirHkVlnWD6Pu5H6TIvhpddVfrAP4ao5utnA5bK3O+6qe7s/DbiQCO3JTJhyLnjErs3nvvPbp160Z4eOpp3+PHj+frr782SWBCGMW+DIzYprstZSCNRsOn/xYtXnPSn2v3o3MrOiH0tl0MYtm/axZ/078ebiXsst5JKV15nztHdDMv4yJyNUaRAx0+g/KNdLdkN4zJ8A5Cs8rODGleEYAP11/gUYJhSyQKkRGjErvDhw/zv//9DzOz1Lt7eXlx/vx5kwQmhElEBBh0S7ZxpZJ0qV0GrdJdRREiN/mFPWLi2gsAvPG8J+1ruhq24/Ef4eyKf2fALgEXqSVaYFlY6b5HZetBx88zvYMwqUsNyjvZEvAgjlk7r+VhkKIoMiqxS0pKQqvVArqrHSkCAgKwt8/eEk9C5JrD8+D7huBj2PCAD7vUwNJcw4HroRy4Hpq7sYlnVvzjZN5cdYaYhCSaVirJhI7VDNvx+i7Y9Ynu647ToeqLuRekMI0SleD1A7ord5kobm3BjL51APj1mB+n/B7kQXCiqDIqsWvXrh3z5s0D/kvsIiIiGDduHJ06dTJZcELkSFICJCfCjg91g82zUNG5GENbVALgy61XSJaixSIXTN18mctBUTgXs+K7QQ2wMDfg13DIFV35DKWFhkOh+ZjcD1SYxpNX6oIuQGT6NTPbVCvNy43cUAomrr1A/GMpvySMY1RiN2fOHJYtW0b9+vVRStGlSxc8PDy4cuUKM2bMMHWMQhin1XtQugY8CoXdnxq0yzvtquBoa8m14Gj+OBWQywGKZ82Gs3f57YQ/Gg3MG1ifMo42We+kFGx8CxKjoWIr6DpHZsAWRpc3wi8dYN1rkJz+OLpPunnhYm/NrbBHzNsjE7mEcYxK7Dw9Pbl48SLDhg1j0KBBODk58dFHH3H+/HkqVKhg6hiFMI6FFfT4Vvf12ZVw+2CWuzjZWfFue10tuzm7rhMjA5mFidwIjuaj9T4AvNuuKq2rGrhKj0YD/RZDtc7Qf7nu51oUPq61wdwK/I/BvunpNnG0s2R6H90t2UWHbnHhbkQeBiiKCilQLIq+LePh1GIoWRnGHAVL20ybJyZp6Tj3AH7hsbzTrgrvd5QlmkTOxCYm0Wv+EW6ExNCyijPLRzbD3Eyuuj1zfNbD2hG6r19dB1XSXynk3d/Osun8PWqUsWfT260MK4MjirQ8KVAsRKHRYQrYl4UHt+DgrCybW1mY8WEX3WzDRYduERQZl8UeQmRMKcUnf/lwIyQGF3tr5g1oYFhSd2KRbsKEKDpq94XGI3Vfrx8NUUHpNpvSw4uSxay4ej+aH/ffzMMARVEgiZ0o+mwcoessMLcGGyeDdulUqwxNK5Uk/rFWyg+IHPnz1F3WnwnETAPfD2pAaXvrrHe6sRu2T9QtKH/vXK7HKPJQpxngWgdiw2Cdd7rj7ZyLWzO1p25pufl/3+Tq/ai8jlIUYpLYiWdDzR4w9jy0fNeg5hqNho//LVq8/kwgPoGRuRmdKKKuBEXx6UbduLoJnarTrLJz1juFXP1vBmz9V3R10ETRYWkDLy8Dq+Jw5zBc+D3dZt3rlqWjlytJWsXEtRdIStbmbZyi0JLETjw7HMpmq3k9dyd61S8HwBdbL8s6yCJbouMf8+aqMyQkaXmhemneaOOZ9U6PwnVX6RKidEvjdftGZsAWRaWq6CZ2tfsE6g1Ot4lGo+GL3rVxsLHgwt1Ifjl8O4+DFIWV0YldfHw8O3fuZMGCBfpt/v7+8sdPFHwBJ+CXFyHybpZNJ3augbWFGcdvPeCHfTfZeC6QY77hUuNOZEopxeT1F7kd9ohyjjZ8078+ZlmNq0tKhD+GwkM/cKoI/VfIDNiirM5L0OYDMMv4z7CLgw2fdvcC4Jvd1/ENjcmr6EQhZlRi5+vrS506dRg4cCBvvvmmfvvEiRNZt86wKv9C5AulYPf/4O4J2PZBlsuNlXeypW11XVmK2buuM/b3cwxadJxWX/3NDp/0Bz4LsfL4HbZcCMLCTMP8VxpSolgWCZpSsG2C7taclT0MXgPFDLhtK4qGx3Fw7AfQpi1K/FIjN9pUK01ikpZJay+glQ+VIgtGJXbvvfce3bp1Izw8PNX28ePH8/XXX5skMCFyhUYD3eeCmSVc2wZXNmXafIdPELsuBafZfj8ynjErz0hyJ9K4cDeCaVt06w1P7lqThhVKZL2T0urWf9WvAVszl6MUBYZWC7/2gJ0fwaE5aV7WaDTM6FuHYlbmnLrzkOXH/PI+RlGoGJXYHT58mP/973+YPXUJ2cvLi/Pnz5skMCFyjUtNaDVO9/W2DyAuIt1myVrF1M2XSe/zccq2qZsvy21ZoRcZqxtXl5ispVMtV0a2rGTYjmbmug8crx+Aah1zNUZRwJiZ/VcCZf8M8Ducpkl5J1s+7KpL9r/acY2AB7F5GaEoZIxK7JKSktBqdTN0NE8M7A0ICMDe3t40kQmRm1pPAOcqEBMMez5Lt8mJ2w8IiozPsAsFBEXGc+K2LNgtdOPqJqw9z92HcbiXtOXrl+ql+v2Yrqh7/5W70GigbN3cD1QUPPUH6yZRKC2sfQ1iQtM0eaVpBZp5lCTucTIfrr8g49lFhoxK7Nq1a8e8efOA/xK7iIgIxo0bR6dOnUwWnBC5xtLmv+XGTi+FO0fTNAmJzjipM6adKNoWH77N7svBWJmb8ePgRjjaWma+Q+wDWNoVVr+c4VVj8QzpNhtKVYeY+7BhtO4W7RPMzDR81a8uNpZmHLkZzpqTspa1SJ9Rid2cOXNYtmwZ9evXRylFly5d8PDw4MqVK8yYMcPUMQqROyq1goZDdV9fWJPmZRd7AxZoz0Y7UXSdvvOAmduvAvBpDy/quDlmvoN+BuxtCL8JWlmT+JlnVUxX387CFnz3wpF5aZpUKlWMCf8ucTh96xVZFUeky6jEztPTk4sXLzJs2DAGDRqEk5MTH330EefPn6dChQoG93P9+nXGjBlDvXr1aNSoEWPHjiUkJMSYkIQwzoufQ++F0H1empeaepSkrKMNmd1Mc7CxoKlHyVwLTxR8Dx4l8vbqsyRpFT3qlePVZln8DlQKtn8Afod0RWoHrYFipfImWFGwuXpB138nIB5fAAnRaZqMaOlBfXcnohOS+HiDj9ySFWlolBE/FYcOHaJVq1ZZjx/JRHJyMnXr1uXdd9+lRYsWxMbGMmHCBCIjIzl58iQ2NoZdBcnOwrhCZNcOnyDGrDwDkO4kCoA5L9ejXyO3vAtKFBharWLEspMcuB5K5VLF2PROK4pbW2S+0/GFsGMSoIFBv0P1znkSqygklILD30DdAeCY/u+VG8HRdPvuMInJWuYNqE/vBuXzOEiR17KT6xiV2Jmbm+Pu7s4rr7zCq6++Ss2axk3N12q1qWbW3rhxg2rVqrFv3z7atm1rUB+S2AmTiY+E079Ci7dTFQ3d4RPE1M2XU02kKOtoQ61yDuy5EoK5mYafXm1EBy/X/Iha5KFkreLE7QeERMfjYm/DqTsPmLPrOtYWZmx8uyU1ymTxO+jmHlj1sm6QfMcv4Ll38iZwUeTM//sGs3ddx8nOkt3vPW/YGsSi0MpOrpPFR8v03blzh99++41Vq1bx5Zdf0rBhQ1599VUGDRpEmTJlDO7n6XIpjx8/BsDSMotBx0KYmjYZFrWH8BtgXfy/8gNA59pledGrTKo/6E09SmKmgQl/XmDdmbu8tfoMK15rJrdli7D0EvwU03rXzjqpS0qAje/8uwbsq7oPEEJk5epW3ezppqNSbR79vCfbLt7nclAUUzb58OMrjfIpQFHQGHXF7kmXLl1i1apVrF69mrt379K+fXt27tyZ7X6UUvTp04dLly5x6dIlrKzSr9SekJBAQkKC/nlUVBTu7u5yxU7kXMotMmsHeOuEQWvLJiVrGb3iNHuvhmBvY8Ga11vgVU5+DoualFvyGf2yXPhqQzrXNmAt4vsX4ci30OsHsJArLCILASdg8YtgZgEjdoB7k1QvX7oXSa/5R0jSKha80pAudbK3HrYoPLJzxc7otWJT1KpViy+++IKlS5dSu3Ztdu3aZVQ/H330EX///Tdr1qzJMKkDmDFjBo6OjvqHu7u7saELkVrTUVC+kW4B9u0TDdrFwtyMH15pSJNKJYiOT2LY0hP4h0vx0KIks0LVABqyUai6TB3o94skdcIwbk2gVl/drOm1I3Qlcp5Qq5wjY9p6AvDpxks8fJSYH1GKAiZHid358+eZOHEiFStWpGPHjpQrV45Vq1Zlu5/PPvuM+fPns23bNho2bJhp28mTJxMZGal/BARILR9hImbm0OM73afjK5t0t0AMYGNpzi/DmlCjjD2h0QkMWfKP1LYrQnJUqFop2DMV/P/JvQBF0aXR6OptlqwMkQGw8e0061u/3a4KVV2KExaTwLQtl/MpUFGQGJXYzZgxg9q1a1O/fn0OHjzIxIkTuXfvHtu2bWPw4MHZ6mvq1KnMmTOHbdu20apVqyzbW1tb4+DgkOohhMmUqf3fgPatEyA+yqDdHG0tWT6yKRVK2nEnPJZhS04SFf84FwMVeSVHhapP/Kyb4bi8F0TfN3Fk4plg4wAvLQVzK7i2Ff5ZmOplawtzvn6pLmYaWH82kH1XpWTYs86oxG7p0qW8/PLL3Lhxg+PHj/POO+9QunTpbPczffp0Zs+ezbZt22jdurUxoQhhes9PghIeEH0PDnxl8G4uDjaseK0ppYpbcyUoCu9fTxH/ODkXAxV5wehC1Tf3wo4PdV+/MBnsDZ9YJkQq5epDx+m6r3d9CoGnU73coEIJXmvlAcBHGy7Kh8pnnFGJ3fXr15kyZQpVqlQx+sAPHjzgk08+QavVMmjQINzc3PSP3377zeh+hcgxS1voMQ/qvAwtx2Vr14rOxfh1ZBPsrS04cfuBrnBtsjbrHUWBVdfNEWuLjH9VatCVv0k1Izr0Ovw54t8ZsK/Ac+/mfqCiaGs6Cmr2AO1j3YeGp4x/sTqVnO0Iioxnxrar+RCgKCgMnhXr5+cHQKVKlfRfZ6RSpUpZ9qfVarl37166r5UsWRI7OztDwpI6dqJA+udWOEOWnCAxScvLjdz4+qW6OSroLfLHo4QkXl9xiiM3w9N9PeU7uuDJWbGxD+CX9vDgFlRoAUM3ymQJYRpxEeB3GGp2T/fl47fCGfjzcQBWezfjuSqyoklRkSsFilP+KCmlsvwDlZdLnEhiJ/JEuC84e2Zrl12X7vPGytNoFYxuU5nJXY0r5C3yR2TsY0YsO8EZ/wiKWZkzqk1l1pwMSFOoekoPr/+SuuTHsLIv3D4IjhVg1N9QPPvDVIQw1qd/+bDi+B3cS9qyc1wb7KyMKlcrCphcKVB848aNdL8WokgLvQ5bx4P/cd0AZqenyuvYOafd9q+Otcows19dJq69wE8Hb1GymBWjn89ecijyR2h0AkOXnOBKUBSOtpYsG9GEBhVK8E67qmkKVZubPfFBV5sEtiV0a8AO/l2SOpF7ooNh41vQ7hPdGLx/TepSg7+vhhDwII5ZO68xpUet/ItR5AujChR3796dLVu2ZPu13CBX7ESuiQiA+Y10KwZkxMIa3j6dYXIH8NMBX2Zs1415mfVSXV5uLLUXC7LAiDiG/PIPt8IeUdremhWvNc16VYknabUQfhNKV8u9IIXY+BacXamb6DX6oG727L8OXA9l2JITaDTw5+gWNK4kK+IUdrleoHjr1vTre2m1WrZv325Ml0IUPLHhmSd1oHs9Nv3xVylGP+/J6DaVAfhw/UV2Xw42VYTCxG6FxvDygqPcCntEeSdb/hzdwrCkLtz3v/piZmaS1Inc9+I0cHSHh7dh89hU9e2er1aalxu5oRR8sPY8B66HsPFcIMd8ww0rpC0KtWzdfL979266X4MuqTty5AjlypUzTWRCFCEfdqnBg0eJ/Hn633VlRzalWWXn/A5LPOHyvSiGLvmHsJhEPEsXY6V3M8o62ma9Y+h1+KUDVGkPvX/UzaoWIrfZldQND1naGS6tB4/Wqda4/qSbFzsv3ed2mK6uZoo040JFkZOtxO7J5bvSW8rLysqKuXPn5jwqIYoYjUbDjL51eBj7mD1XgvH+9RS/j25OrXKO+R2aAE7feciIpSeIik+iVjkHlo9sinPxJ2ayRgSkf2U2Pgr+egMSInULtWtyvEqjEIZzbwLt/we7/wfbP9QtQVamDgDHboURFZ+UZpf7kfGMWXkm9UxuUaRkK7G7cuUKADVr1tR/ncLS0pJy5cphayufVoVIj4W5GfMHN2DokhOcuP2AYUtOsm5MCyo6F8vv0J5ph2+E8fqKU8QmJtO4YgkWD2+Co63lfw0MGWsJ0OVrKWsi8l6Ld3QlUG7sgj+Hw+v7SbYsztTN6S8vpvhvfeMXvcqknvwjioRsJXY1atQAIDQ0lFKlpD6OENmlW1e2MQN+Os6VoCiGLD7B2jda4OJg2OoGwrR2XbrP26vPkpispXXVUvw0pFHa8hCGjLUEdH8yhchjZmbQeyEsbAVo4FEoJx4mGry+cQtPGRJS1Bh130CSOiGekJy95XscbCz5dWQTKjrb4f8glqFLThAZJ0sA5bUNZ+8yZtUZEpO1dK5Vhl+GNZaaX6JwKuYMQ9bD6/uhZOWcrW8sCj2jEjutVsuiRYvo2LEjNWrUoEqVKqkeQjxTfh8EASeytYuLvQ0rRjajtL01V+9HM0rWlc1TK4758d6a8yRrFf0aujF/cAOsLczzOywhjOdSE6yL6760t8GCtOPr0uxi4DrIonAxKrGbOXMmn3/+Oe3atePatWu8/fbbNG3alNu3b9O9e/pLnQhR6Ng5Zz1mSmMGj0JheW+4dSBb3VdwtmP5yKbY21hwwu8Bb68+I+vK5oEf99/k042XABj+XCVmvVQXC3OZ9CCKCKVodn8V22z/hx0ZX5FLs76xKDKMKlDs6enJqlWraN68ORqNRr+E2MKFC9mwYQM7d+40eaAZkQLFIldlNBsyhaUtbJ8Et/aBuTX0/xWqd8nWIU7cfsCQxf+QkKSlX0M3Zr1UFzMZ0GxySim+2nGNhQd8AXi3XRXee7Fa1mv43jsHPz+f9QFeP5BqBQAh8kXcQ/ixBUQH8WdSGyYmvZHu6M8hzSsyrXftPA9PGCdX1op9koWFBXFxcVhaWmJnZ0dwcDD29vZERUVRrlw5YmJijA4+uySxE/kuKQHWjoSrW8DMAvr8BHVeylYXey4HM3rlaZK1ilGtPfioa82sEw5hMK1W8elGH1b94w/Ax11rMurfotFZCjgJiztk3U4SO1FQ+B2GZd0Bxc/mA9gYW1f/UjFrcx4lJBNn4cSid3vjWbp4/sUpDJYra8U+KTk5GUtLXTmAihUrcuzYMTp27MitW7ewtpbp/uIZY2ENL/8KG9+EC2tgnTckPoJGwwzuooOXK1/1q8uEP8+z6NBtnItb84asK2sSj5O1TPjzPBvP3UOjgS/71GFQ0wqG7RwXAds/yNX4hDA5p4q62bLaZF5PXsPr1mtSv24N8cqSMats+entPlhZyFCEoiTH381Ro0YxcOBAevfuTceOHenfv78p4hKicDG30JUcaDwSUHB9Z6olfgzxUiM3Pu5aE4CZ26/yx8mAXAj02RL/OJkxK8+w8dw9LMw0fDuwgeFJXYQ/LOkE985m3dbCWjcmU4iCIDYctJlPxrLRPCYkOIg5u67lUVAirxh1xS46Olr/9fjx4ylfvjzHjh2jc+fOeHt7myw4IQoVMzPo9g2UrQ91B4ARt1JHtalM+KNEFh7w5cP1F3C0s6RTrTKmj/UZ8CghiVHLT3HUNxxrCzMWvNqQdjVcDds58Az8NhBigsG+LPT4HoqXzri9nTM4pV2NR4iC7qeDt2hdtTStqkoZs6LCqDF2BYmMsRMFmlJweSN49TI40VNKMWndBf44dRcrCzN+HdFUiohmU0RsIsOXnuRcQATFrMz5ZVgTw89h4Gnd+KTHseBaGwb/AY7lczdgIUzJwAk/P1RbzKwLtrjYW7N9bOvUy+iJAiVXxtj5+fkZHEClSpUMbitEkbb7f3D0O2g4FLrPA7Osa6VpNBq+7FOHiNjH7LoczKjlp/j99ebULi/ryhoiJDqeoYtPcPV+NE52liwb0ZT67k6Gd+BSC8rWA0s7eHkZ2MgHRlE0vdaqMn/dj+ZGSAyT1l1g0dDGMmmrCDA4sfPw8DC400J+EVAI0ylVTVfr7sxy3YSKPj+BuWWWu1mYm/HdoAYMW3KCf24/YPjSE/z5xnN4lJJ1ZTNz92Esr/7yD37hsZS2t2bla82oXsY+6x21yYBGdzvd0gYGr9EldgZ8r4QorGwsdL9nev1whD1XQlh5/A5DWlTK77BEDhmc2N24cSM34xCiaGo4BKyKwfpR4LMOEmN1V4Ess674bmNpzqJhjRn403EuB0UxZPE/rBvzHK6yrmy6fENjGPLLP9yLjMethC2rvJtR0dmARDgxVvf9ca4CL07VbbORq6Pi2VCzrAOTu9Rg6ubLfLH1Ck09nA37MCQKLBljJ0ReuL4L/hgCSfHg0QYG/qZf/icrodEJvLzwKH7hsVR3teeP0S1wtJMrSU+6dC+SoYtPEP4oEc/SxVjp3YyyjrZZ7xgTopskEXhaV2D6rX+g5P/bu/O4qOr1geOfYdhEFllkkQCV3MjcUZFMRdxNr0u4V+ZaqaX1S/PanletWy7ltXK7labmlrvect93UCJwRQQUUWSRHeb8/pgYHUEYCBiW5/16zQvO93zPmeccjzMP53wXw59OCFEhFXNQbUVRGP3f0xyIiKeRiw1bJvljaSZT7FUkxcl1SjzcSUZGBnv27GHJkiW6sqioKHkMK0RBGnaHkRvB3BquH4LVL4LGsOnDattY8NOYdjjbWBARl8KYH06TniXzyuY5eyOBod+f4F5qFk3dbfllgp9hSV38JVgWqE3qatjDS1skqRNVgyHTIQJc3Qdo2/X++8XmOFmbExGXwtxd4WUcoChLJbpjd/XqVXr27Mndu3dJTEzUJXNDhw5l8ODBDB5cvFH3/w65Yycqleiz8POL0OvzYs9OEX47maBvj5OckUNAY2e+G9Uas2o+x+nhy/GM//Es6dm5+Na1Z/krvthaGnA3M/IIrB0OGUlgXw9GbACnp8s+YCHKS2HTIZ7/CU4vAxMzeGU7eLYH4EDEHV5ZeRqAFa+0MXx4IFHmynxKsX79+lG/fn2++uor1Gq1LrE7deoUkyZN4tSpUyWLvAQksROVTkZSidtwnY5MYOQy7byyA1u68+8Xm1fbeWV3h95myprzZOVq6NSwNt+ObE0NcwMeH134BX59HTTZ8FRbGLYGasoYXqIaURRY/wqE/Qo1nWH8Ad2QPp9sC2PF0es41DRn95sdcZY2vRVCmT+KPXLkCB988AEmJvqb+/j4EBISUpJdClF9PJrUJcdqx0y7d9WgTX3rOrBkZCvUJio2nY9h9s4/n9j8ITg4mF69ehEcHFwKQVcsG89G88bP58jK1dD7WVeWvtTGsKQOtEPOaLLB5x/w8lZJ6kT1o1LBP/6jHacx9Q7sele3anqvRjRxsyUhNYu314eg0UjzqsqmRIldTk4Omr/aBz065s3NmzexsZHeNEIYbMc7EHkYVvaCuDCDNglo7MIXg7WTei8/cp3/HCg4Kdy4cSO7d+9m06ZNpRZuRfDj8UjeXh9CrkbhxdZPsWhoy+LNddl0ELy8HQavBDMD2uIJURWZ14Shq6FxX3hhoa7YwlTNoqEtsDQz4fDlu6w4et2IQYqSKFFiFxAQwIIFC4CHiV1iYiJvvfUWPXr0KLXghKjyXligHRD3QRz8t7e2Ib8BBrZ6ill9tPPKfrEngrWnovLV2bZtm97Pyk5RFBbvv8IHW/4AYLR/XeYNaoZpUe0M0xNh03jt3dE89Tpqx6wTojqzr6tN7h67a93AxYb3+/oAMG93OKExSUYITpRUiTtPdOrUCScnJy5cuECPHj04ceIENjY2HDlyBE9PAyfZLgXSxk5UemkJ2l6yMWfA3EY7OG5df4M2/Xx3OP85cBUTFfxnRCt6NnUDIC4uDlfXh3PMxsXF4ezsXCbhlwdFUZi7O5zvDl4DYErXBkwNbFD0KPmJUbA6COL/BM8OMHpniebwFaJaOL8abOuAdxcURWHCT2f5X1gc9WvXZPvk57AyL9H08qIUlHkbO29vby5evMjLL7/MsGHDqFWrFjNnziQkJKRckzohqgQrB3jpV6jbEbJSYNVAuPy7QZv+X49GDPX1QKPAlDXBHLt6F4A9e/bo1Xt8uTLJ1Sj889dQXVI3q08TpnVrWHRSF3teO5xJ/J9g4wa95klSJ8STXNwAW16HDaMh4ToqlYp5g5rhYmvBtfhUPt1uWFMRYXwlSuzGjh2Lvb09U6dOZfXq1axZs4b/+7//w97evrTjE6J6sLCBEeuhQQ/tIMa/f/TXNFeFU6lUfPaPpvR4xoWsXA3jfzxLaEwS23fsQK3WdiZQq9Vs37GjjA+gbGTnapi6LpifT0ahUsHcgc8ytmP9ojeM2AUre2sfcbs0hbF7wa1Z2QcsRGXVuC+4t4b0+9qhgDIfYF/TnPlBLVCpYM2pm+y6eMvYUQoDlOhRrJWVFQkJCVhaGr8btDyKFVVKTpY2qeswSftIpBAxMTHExcUBkJmTy0dbw7gQnYiVmZrIn6ajyUzT1VVbWDH/h034N6idbz8uLi64u7uX6mGUhozsXN5YfY694XcwNVGxYGgL+jYr/JwAcGqptpefogHvAHjxB7CUzwYhipQcC9931v5B1KQfBP0IKhXzdoez5MBV7GqYsfutjoYNAC5KVZmPY9etWzcmTZpE//79SxxkaZHETlR5d8LBuXG+Yn9/f44dO/a3d+/v78+RI0f+9n5K04PMHMb9cIbj1+5hYWrCtyNb06WxAW0EszNgaRe4EwatXoI+X4Fapl8TwmBRJ+G/fbRDAnWZBZ3+j+xcDYOXHCMkOon29R1YPbY96mo6fqaxFCfXKVFLSF9fX0aMGMErr7yCj48P5ubmeuvHjh1bkt0KIR53cQNsHAtd34eOb+utGj16NKdOnSI3N7dEU/mpVCrUajWjR48urWhLJFejcOp6AndSMnC2saShizWv/nCGkJuJWFuYsuzlNrSv72jYzswsYfgvEL4d2k2UNnVCFJdnO+jzJWybAvs/A9emmDXqxcKhLem96DAnriXw7cGrvNFFZmqpqEp0x65u3bqFro+MjCxhOMUnd+xElXZgHhz4l/Z3/7cg8CO9ZOXEiRP069eP+/fvk5OTY/BuVSZqLK3tGD7ra55p0Qa7GmbUstK+7GqY//VT+yrLact2h97i421h3ErK0JWZmqjI0SjUsjLjx1fb0uypWoXv5MEduHYQmr1YZnEKUe3seFs77VjgR/DcVAA2nI3mnfUhqE1UbJjoR0tPaVdfXsr8UWxFIomdqPKOLoLf3tf+3mYM9P633hhst27dYsCAAZw6dcrAO3cqzOs0xHnALNTWRX8wW1uY6hK/hz+1yV+tGgWU/VWvhpm60J6ru0Nv8dqqczwp4g/6+vDqc/UKDy7+EqwerB3WZMhP0OSFIo9HCGGA3GyIOg71ntcVKYrClLXBbAuJxdPBip1vdsTaQoZAKQ+S2AlR1ZxZCdunAgo0Gwr9F4P64QdqVlYW/YJGsmfL+iJ31aZrP6Z9+hWpOSoS07JJTM8iMS2bpHTtKzEtm8S0LJIzDL8DWBBztQl2fyV/D+8AapM/W0tTlh+5Xuh7uNlZcmR6wJPb8kQe0fbey0gC+3owYgM4yeMhIcpEdjqozUnK1NB74WFiEtMZ2Mqdr4JaGDuyaqHM29gJIcpZm9Fgbg2bJ8CFtZD1QNvb86/kztzcnNZNG7Jnmwn8Nd1fgUxM6OHXjGF+3kW+Za5GITkv2UvXJnt5iZ8uAUzPIilNu/7huiyycxWycjXEp2QSn5JZokO+lZTBqesJ+HkX0L4uZB1seUPbwPuptjBsjcz5KkRZSbwJ60aAdwB2gR+xcGgLgr47zqZzMXRqWJv+LSper/rqTBI7ISqLZi+CuRWsf0U7FZCJ/qT3O7ZvLzypA9Bo2LF9O599+mmRb6c2UWFf0xz7muZF1n2UoiikZeXqJYN5yV9eMnghOpHjVxOK3NedlAz9AkWBQ1/A/tnaZZ/+MOA7mfNViLIUfRpuhWhfrs/SpukgpnRtwILfLzNrcyitPO3xcLAydpTiL0Z9FJuamsqaNWv49ttvCQ8PZ9euXXTs2LFY+5BHsaLaufMn1G6s14ni8SnEtFSA8shP9Oobc4qx41fvMWzpiSLrrRnXXv+O3dX98NM/tL93mAKBH8ucr0KUh/+9D8cWgWkNGPM/cpybMvT7E5y5cZ9WnrX4ZYJf0fM2ixIr8ynFSsunn37K8ePHmTVrFqmpqeTmFj3SvhDVnnOTh0lddgbsmsGerRv1qqjVamxsbRky/i1sbG11s1DkMfYUY23rOeBmZ8mTulao0Laxa1vPQX+FdxfoMFk7HEP3TyWpE6K8BH4E3l0hJx3WjsA0I4EFQ1tgY2nKuahEFu27YuwIxV+M+qk4d+5cli9fTps2bYwZhhCV18634eQSdn77PiYmJrpeqP369ePK5Uus/W4+Vy5fol+/foB27DoTExN27txpzKhRm6j48AUfbUyPrctb/vAFH23HicSb2mmO8nT/DHxlrEwhypWJGgYvB4f6kBQF61/hKVszZg94FoBv9l3m1PWim1eIsid/7gpRmXV4kxwrN3aFJqDRaLCzsWbdknls+uYDnHNiITYY55xYNn3zAeuWzMPO1gaNRsPOnTuNfoe8Z1M3loxshaud/tSErnaWLBnZip5N3SD2PCzrCutGaadbE0IYTw17GPqztiNX5GHYP5t+zeswqNVTaBR4a+15ktKyjR1ltVchhjuJjo7Gw8OD/fv307lz50LrZmZmkpn5sJddcnIyHh4e0sZOVFspUaE838GXejY5fNvXEueaT/577U6GGRP/8CUyJo6DBw9iY2NTjpEW7PGZJ9rWc9DeqYvYBRtehew0cH4GXvoVrI3XLlAI8ZfwHXBgLgxdDbU8eZCZQ59Fh7lxL40+zdz4ZljLQsewFMVX6caxK05i99FHH/Hxxx/nK5fETlRnufejUf/QBxIji648/iC5Ls/ma3dX7hJvQtq9gtf9sRmOLgQU8A7QDu1iKf+/hagwNLl6PfODbyYyeMkxcjQKnw9uRlAbDyMGV/VU6XHs3nvvPaZNm6ZbzrtjJ0R1prZ/Cvotgh/7GVa/IiR137SGnCLGuGs6EAZ8D2qz8olLCGGYR4dburSHFq7NmNa9IZ/vjuCjrX/Qxsue+rWtjRdfNVbp2thZWFhga2ur9xJCAJZ2htW7tBtCN2kfdV7drx0bLk/qXUiJ087mkJOlv640pd0rOqkD7ZAmktQJUXGd/S/8HAS/jGJCh6fwq+9IWlYub64NJiuniHE1RZmodHfshBB/04E5D383MYUPHnkcunUKROx4uKwy0Y5bZWqhHQR4ynnt7wCHv4Qbx8HMUlvHzBJM/3qZ1dBOHJ43cHD0GUiK1i6bWmp/N4i00xGiQqvbUftHZfRp1Lve5qugL+i16AgXY5L48rcI3uvVxNgRVjtGTexWr17NhAkTdBOX9+rVC7VazcyZM5k5c6YxQxOi6nrKF9QW2vGoHk+cFE3+5exU7StdBepHZqGIDYYrvz35ffzffPj76eUQ8vPfjVwIUdE4esPglbB6MJxfhZtrc+YO7MfEVWf57uA1Oj5dm+cayHR/5cmonSdycnLIyMjIV25ubo65uWHTGMnME0L8JTYYvu9UdL3xB6FOiyevVxTtY9KcDO0rO/3h73VaPqwXeRTuR2oTxOyMR37+9er1+cN2OIf+DVf2PqyTkQgpt/5+rEKIiuHoIvjtfVCp4aUtzAyuxc8no3C2sWD3W8/jUMypCYW+StN5wtTUFGtraVwpRIWiUmkfq5pZFl6vrr/2ZYjn39G+8hiahAohKocOk+H2Rbj4C6x/mQ9G7+PktZpcjU/l3Q0XWPpSaxkCpZxUus4TQognsHJ82P7tSUwttPWEEKI0qVTanvluzSHtHpaXt7FoWEvM1Sb8/mccq05GGTvCakM6TwhRVdTygElnnzw2HGiTuloyPJAQogyY1YAhq7WzUrQYzjPA9F6N+XR7GJ9tD6NdPQcauhh/UPSqThI7IaqSWh6VI3HLu7tY2JAncndRiMqnlge0GK5bHO3nxaFL8Ry8FM+UNef59Q1/LM2MPI5mFSeJnRCi/MndRSGqvtR7mGwcw8I2EwiMNSf8dgrzdofz4QvPGDuyKk0SOyGEcVSWu4tCiJI5/g1c20+tmHN802MDQzfGs/JoJM83qE2XxjLvc1mRzhNCCCGEKH2dZ8BTbSEzifYnJzGhfW0A/m9DCPEpBsw8I0pEEjshhBBClD5TCxjyE9jUgbsRvJv6FU1canL3QRbvrA9BozHaMLpVmiR2QgghhCgbNq4wdBWoLVBf3sWqp/dhYWrCwUvxrDwWaezoqiRJ7IQQQghRdtxbwwsLAXA8u5Dv28QCMG9XOH/EJhkzsipJEjshhBBClK0Ww6D962Bfj+f9/Ojm40JWroYpa86TnpVr7OiqFEnshBBCCFH2un0K4w+gcvFh3qBmONtYcDU+lU93hBk7sipFEjshhBBClD21KdSoBYBDTXO+72aOqSqXn09GsTv0tnFjq0IksRNCCCFE+Tr3Iy12D2C11y4AZmy6wK2kdCMHVTVIYieEEEKI8mVhA5oc2t3+mUlO50hMy2bauhCycjQcv3qPLcExHL96j1wZEqXYVIqiVOqzlpycjJ2dHUlJSdja2ho7HCGEEEIYYu8ncPhLNGpLgrI/5EyWFzYWpqRk5uiquNlZ8uELPvRs6mbEQI2vOLmO3LETQgghRPnrMgsa9MAkN4PlFvNxIkkvqQO4nZTBa6vOsTv0lpGCrHwksRNCCCFE+TMxgUFLURwbYJd9h/+az6W56grPqK7rXj5//fx260F5LGsgU2MHIIQQQohqytKOP1p+xDO/jaCpyQ22WHxQYLWMTDOCQ31o3axZOQdY+cgdOyGEEEIYzd0cC1SqwutYqrJJSYgrn4AqOUnshBBCCGE0DlbmBtWrYaYu40iqBknshBBCCGE0z7gbNqLFV79FsOzwNTJzZAqywkhiJ4QQQgijURf1HPYvDzJz+GzHn3T98iBbgmPQSGeKAkliJ4QQQogKb5XTj/Sv+QfR99N4c20w/Rcf5djVu8YOq8KRxE4IIYQQFZ59yiUW5s7mXx1MsLYw5WJMEsOXnmT0ylNE3E4xdngVhgx3IoQQQoiK79kgyElneL/edA/I5Ou9lzl36hAHIjQcvBTP4NZPMa1bI1ztLI0dqVFJYieEEEII47FyBFMLyMl8ch1TC+j6Adg9BYCTtQUfBzihufARt9WuzH3Qlw1n/NgaEsuY5+oxoZM3tpZm5RN/BSNzxQohhBDCuBJvQtq9J6+3coRaHvplV36H9a9CZhIAsWp3vsroy6+5/tjWtGJKwNMMb+eFuWnlb3VWnFxHEjshhBBCVE4ZSXDyezixGNLvAxCrcuHrrL5szH0eN0c73u3RmN7PuqIysPdtRSSJnRBCCCGqj8wUOLMCjn0NqfHkmFjQR7WYiFQrAJp71GJmr8a0q+9o5EBLRhI7IYQQQlQ/WWlw7gfIfEBq+6ksPXyN7w9do0vOUfZpWuDfxJPpPRvTwMXG2JEWiyR2QgghhBBAQsQRHNb04Z5iy7Kc3qzSdKOvb0OmBjbE2bZy9KAtTq5T+VsUCiGEEEI8gYM6E+zr4qhKZrrZWg6bT6H22YX0/WIHX/0vggeZOcYOsVRJYieEEEKIquvprjDpLAz4DhwbUEuVyjSzDfxu8gZmh/5Fj3m7+Ol4JNm5mmLvOjg4mF69ehEcHFz6cZeQJHZCCCGEqNrUptB8KLxxEgavQHH2wVaVzotmR7mTpuH9LX/Qff4hdofeojgt1DZu3Mju3bvZtGlTGQZfPNLGTgghhBDVi0YDETvIydWwJqU5C36/TFJqGpNNf+Wiyz+Y+EJH2tR1KHI3LVq0ICQkhBYtWnD+/PkyC1c6TwghhBBCGCglI5ujGxbR88onZCqm/JLbmbD6rzL2hU5417YucJu4uDhcXV31lp2dncskPuk8IYQQQghhIBtLM3p27ECWe3ssVDmMMv2dT26M4syikXy1bjfxKfmnO9uzZ0+hy8Zi9MRu/vz5eHl5YWlpia+vL0eOHDF2SEIIIYSobrz8MB+3B17ZQZr7c5ipchmi3s+UsGEc+/cgvv5fKKmZOdrpz2KD2b5hFWq1No1Sq9Vs37AKYoO1643IqI9ily9fzuTJk/nll1/w8/Pj888/Z/HixYSFheHp6WnQPuRRrBBCCCFK3c1T/LHmn2RePc6F3Pq8lzMG7xqpzFe+wESTTcAPqSRnPaxuawH7XqqJytQMhqwGm4ePaV1cXHB3dy9xKJWmjV3jxo3p3r07ixYtAkBRFDw8PBg1ahRz5swxaB+S2AkhhBCiLPj7+3Ps2LEC16kApZDlx/fzd55IVoo2dgkJCURERNC5c2ddmUqlonPnzk88iUIIIYQQ5WX06NGYmpqiUqnyrXs8iSsoqVOpVJiamjJ69Ogyia8gRkvsbt++DUDt2rX1yp2dnXXrCpKZmUlycrLeSwghhBCitI0dO5bDhw/j5OSEqalpsbZVq9XUrl2bw4cPM2bMmDKKMD+jd554nKIoBWbGeebMmYOdnZ3u5eHhUY7RCSGEEKI6ad++PSEhIbRu3brQ/ORRKpUKX19fQkJCaN++fRlHqM9oiV3e2C/x8fF65fHx8bi4uDxxu/fee4+kpCTd6+ZN4/Y+EUIIIUTV5ubmxqFDh+jdI9Cg+r17BHLw4EG9ce7Ki9ESOwcHBxo1asT+/ft1ZYqicODAATp06PDE7SwsLLC1tdV7CSGEEEKUJXNzc5o38kJdxE07tQpaNKqLubl5+QT2GKM+in3nnXdYsWIFO3bsICEhgRkzZpCYmMjEiRONGZYQQgghRD47fjtEbhFjieQqsOP3Q+UTUAGK1xKwlI0dO5bk5GRee+014uLiePbZZ9m9ezdeXl7GDEsIIYQQQk9cXBwhYZf0yvKGOHl8qJPgPyK4c+dOmU0xVhijd56YNm0aUVFRZGZmcubMGZ577jljhySEEEIIoefxKcPUahOsbax56aWRWNtYo1arC61fXoye2AkhhBBCVHQ7d+7ExMRE1zO2X7/+XLlylR9++IkrV67Sr18/QNsj1sTEhJ07dxolTknshBBCCCEKkZOTw65du9BoNNjZ2bFu3To2bdqke9Tq7OzMpk2bWLduHXZ2dmg0Gnbu3Elubm65xyqJnRBCCCFEIdLT06lfvz4DBgwgIiKCoKCgAusFBQURERHBgAED8Pb2Ji0trZwjNfJcsaVB5ooVQgghRFnLzc3N146uNOsXplLMFSuEEEIIUVkUN0krraSuuCSxE0IIIYSoIiSxE0IIIYSoIow6QHFpyGsimJycbORIhBBCCCFKX16OY0i3iEqf2KWkpADg4eFh5EiEEEIIIcpOSkoKdnZ2hdap9L1iNRoNsbGx2NjY6AYNLAvJycl4eHhw8+ZN6X1bADk/hZPzUzg5P4WT81M4OT+Fk/NTtIp+jhRFISUlhTp16mBiUngrukp/x87ExISnnnqq3N7P1ta2Qv6jVxRyfgon56dwcn4KJ+encHJ+Cifnp2gV+RwVdacuj3SeEEIIIYSoIiSxE0IIIYSoIiSxM5CFhQUffvghFhYWxg6lQpLzUzg5P4WT81M4OT+Fk/NTODk/RatK56jSd54QQgghhBBacsdOCCGEEKKKkMROCCGEEKKKkMROCCGEEKKKqPTj2JWHe/fuce3aNTw8PHB1dTV2OEaVlZVFeHg4tra2eHl55RsU+uLFiyQlJemVOTk50bhx4/IM0yiuXLnC7du39cqsra1p0aJFvrpRUVHcuXOHhg0bVtgxk0rb+fPnSU1NzVdeq1YtmjZtCkB0dDSRkZF669VqNX5+fuURolFcunSJO3fu4O/v/8RB1sPDw0lPT+eZZ57B3Ny8xHUqo6ioKKKiomjVqhVWVlb51mdnZxMREYGVlRVeXl6o1Wq99eHh4dy9e1evzM7OjmeffbZM4y4v8fHxRERE4OPjg4ODg966GzducPPmTb0yCwsLfH198+0nNjaWmJgYnn76aezt7cs05vKUkpLChQsXqFu3Lu7u7nrrCvq+Av3P7bi4OC5fvpyvTmH/X41OEYWaOXOmYmFhofj4+CgWFhbK+PHjldzcXGOHVe5SUlKUt956S7G3t1eeffZZxcXFRfHx8VHOnDmjV69Tp06Kh4eH4u/vr3vNmjXLSFGXrzFjxihOTk56x/7KK6/o1UlLS1P69++vWFlZKY0bN1Zq1KihLF682EgRl69Ro0bpnRt/f39FpVIpw4YN09WZM2eOYm1trVenW7duRoy67GzevFl57rnnFHt7ewVQ0tPT89WJiopSmjdvrjg6Oir16tVTateurfz+++/FrlMZHTp0SOnTp4/i6OioAMrFixf11mdmZiozZ85UnJyclGeeeUZxd3dXvL29lQMHDujVGzRokOLq6qp3TU2aNKk8D6VMXLx4URk2bJji4uKiAMrmzZvz1Zk+fbpiZ2end+wDBgzQq5Odna2MGjVKsbS01H3PzZ49u5yOouxERUUpEydOVFxdXRUzMzPliy++yFdn0qRJ+T6TzMzM9D5zli5dqlhYWOSrl5mZWZ6HUyyS2BViw4YNirm5uXL8+HFFURQlLCxMsbGxqTZfxI+KjIxU5s+fr6SlpSmKoihZWVnKyJEjFXd3d71Et1OnTso///lPY4VpVGPGjFGGDBlSaJ133nlH8fT0VG7fvq0oiqKsX79eUalU+RLk6uDYsWMKoOzZs0dXNmfOHKV169ZGjKr8fPbZZ8rBgweV9evXPzGx69y5s9K5c2fdl8j06dMVe3t75f79+8WqUxktXrxY2bZtm3L27NkCE7uEhARl9uzZSnJysqIoipKbm6tMnjxZsbe3V1JSUnT1Bg0apEyYMKFcYy8Pa9euVVatWqXcvXu30MSua9euhe5n7ty5ipOTk3Lt2jVFURRl7969iomJid7/y8po7969yuLFi5Xk5GTFxcWlwMTucZcuXVIAZfXq1bqypUuXKl5eXmUYaemTNnaFWLFiBd27d6d9+/YANGnShEGDBrFixQojR1b+vLy8eOutt6hRowYAZmZmjB07lpiYmHyPzpKTkzl9+jTR0dFGiNS4MjIyOHv2LNeuXUOj0eitUxSFlStXMn78eFxcXAAYPHgwjRs3ZuXKlcYI16iWL19O3bp1CQwM1CvPyckhJCSE8PBwsrOzjRRd2fvnP//J888//8T1169f58CBA8yYMUP3aHXGjBk8ePCAX3/91eA6ldXrr79O3759nzgvpr29PTNnzsTGxgbQTi85YcIE7t+/T1hYmF7dtLQ0zpw5w40bN1CqyAhfQ4YMYcSIEUWOu5aVlcX58+e5fPkyubm5+davWLGCkSNHUq9ePQACAgLo0KFDpf+eCwgI4PXXX9ddH4ZYvnw5Dg4ODBw4UK9co9EQGhpKWFgYWVlZpR1qqZPErhDnz5+ndevWemVt27blwoUL+b60q6PTp09jaWmZr93C0qVLGTduHE2bNqVZs2acO3fOSBGWv507dzJ69Gjat29PvXr12LNnj27dzZs3uXfvXr5rytfXl/Pnz5d3qEaVmprKunXrGDNmTL4v7osXLzJ8+HACAwNxcXHhhx9+MFKUxpV3TTx6vdSqVYsGDRro1hlSpzo5ffo0JiYmuiQlT9611qpVKxo2bMihQ4eMFGH5O3bsGKNGjeL555/H3d2dDRs26NalpqZy6dKlAr/nqtv1k5OTw48//sioUaOwtLTUWxcdHc3gwYPp06cPjo6OLFq0yEhRGkYSu0IkJCTg6OioV+bo6Eh2djYpKSlGiqpiCAsL45NPPuHdd9/V+4tx3Lhx3L17l+DgYGJjY2nUqBH9+/evFuerd+/exMTEcOHCBWJjYxk8eDCDBg3S3dFMSEgAKPCayltXXaxbt4709HRGjx6tV96qVSuuXLnCH3/8QXR0NJ988gmvvvoqR48eNVKkxpN3TTzeIP7R68WQOtVFVFQU7777LhMnTqR27dq68qCgIOLi4ggJCeHWrVt07tyZAQMGEBcXZ8Roy0fHjh25ceMGoaGhxMbGMnnyZIYPH86FCxcAuH//PiCfSaD9o/zWrVuMHTtWr7xRo0b88ccfhIeHc/36db777jveeusttm3bZqRIiyaJXSHMzMzIyMjQK0tPTweoUr3OiisyMpKePXvSq1cvPvjgA711I0aMoGbNmgBYWVkxf/58oqOjOXLkiDFCLVcDBw7UfaGYmpoyb948VCqV7gPAzMwMoMBrqrpdT8uXL6d379757vZ2795d727LpEmTaNKkCb/88kt5h2h0eddLZmamXvmj14shdaqDuLg4unfvTsuWLfnqq6/01gUFBVGrVi1A+7m9YMECkpKS+N///meESMtXnz59dP/HVCoVM2fOxMXFhY0bNwLymfSo5cuX4+fnp+uhn6djx440adJEtzx8+HCef/551q5dW94hGkwSu0J4eXkRExOjVxYTE4OTk5OurVl1ExkZSefOnWnbti2rV6/ON7TA45ydnVGpVPnOY3VgamqKg4OD7tg9PT0LPBcxMTF4enoaI0SjCA8P59ixY4wbN86g+i4uLtXy+vHy8gLId+yxsbG668WQOlXdnTt3CAgIwMPDgy1bthTZ5qxmzZpYW1tXy2tKpVLh7OysO/batWtjZWVV7T+Tbt++zc6dO6vMZ5IkdoXo1q0bO3bs0GtwumXLFrp162bEqIwnKiqKLl260KZNG9auXYupqf4wiBkZGfka5/72228oipLvr6CqRqPR6O7m5gkPD+fmzZu6Y7exsaFdu3Zs3bpVVyclJYV9+/ZVq2tq2bJl1KlTh969e+db9/g4d/fu3ePcuXNV/vopSLt27bCxsdG7Xk6fPk1sbKzuejGkTlUWHx9PQEAAbm5ubN26NV/bqOzs7HyN3U+ePElSUlK1uKYe//8UHR3Nn3/+qTt2ExMTAgIC9K6frKwsdu3aVS2unzz//e9/sbKyIigoKN+6x89hWloax44dq9DXjwxQXIh33nmHVatWMXz4cEaOHMnWrVsJCwurlj0Y4+Pj6dKlC1ZWVkyaNIkTJ07o1jVr1gxbW1tu3LjBiBEjGDt2LPXr1yc0NJTZs2fz4osv6noWV1WZmZm0adOGsWPH4uPjw40bN5g9ezZt27bV+7CYPXs2PXr0oF69erRt25ZFixZRp04dxowZY8Toy092djY//fQT48ePL/Bub2BgIH369KFVq1YkJCTwxRdf4ODgwKRJk4wQbdm6evUqt27dIjw8HNA2cjc3N6dp06bUqlWLGjVq8NFHH/H+++9jaWmJk5MTs2bNol+/fnTo0AHAoDqVVUxMDNevX+fKlSuAtqNIYmIi3t7euLm58eDBA7p27cqDBw+YPn06Z8+e1W2bN1jv/fv3CQwMZNy4cTRq1IjLly/z2Wef0bVr1wL/sKhMEhISCAsL0/1B+eeff+Lk5IS7u7uuOYOfnx8jRoygefPm3L59m7lz51K/fn29z5uPP/4Yf39/3nzzTQIDA1m2bBkmJiZMmTLFKMdVWtLS0nQd97Kzs4mMjOTIkSM4ODjg4+OjV3fFihUMHz5c14zoUYMGDcLX15d27dqRmprKggULyMnJ4d133y2X4ygJlVJV+n6XkWvXrvH5559z+fJlPD09mTZtWpUZsbw4Ll68yGuvvVbguiVLlujOSXh4OEuWLCE8PBxXV1d69+7NkCFDyjNUo4mJieGbb74hODgYe3t7OnXqxJgxY/Ld2Tx8+DD/+c9/uHPnDs2bN2fGjBk4OzsbKerydfr0aaZOncqqVauoW7duvvWJiYksXryY48ePU6NGDXx9fXnjjTcK/MCt7P79738XOCTJl19+Sbt27XTLa9asYe3ataSnp9OlSxemTp2a786UIXUqm7Vr1/LNN9/kK582bRoDBw4kKiqK4cOHF7jtnDlz6NixI6BtPvLNN98QGhqKk5MTgYGBvPTSS08cRqWyOHz4MO+9916+8qCgIF1SdvfuXb7++mtOnz6NjY0Nfn5+vPbaa/keV589e5aFCxcSExND48aNmT59eqV/FHv9+nVGjRqVr9zf35958+bpli9dusSrr77K4sWLad68eb76qampLFmyhEOHDmFqakrLli2ZMmUKdnZ2ZRr/3yGJnRBCCCFEFVG5/2QRQgghhBA6ktgJIYQQQlQRktgJIYQQQlQRktgJIYQQQlQRktgJIYQQQlQRktgJIYQQQlQRktgJIYQQQlQRktgJIaqt3bt3c/nyZd3ytm3buHbtmm558+bNREVFlct7/x2Px12QnJwcfvnlF7Kzs8slpkdt2LAh39RMQoiyIYmdEIKMjAyOHDnC5s2bOX36dLG+hCvjtnneeecd9uzZo1uePHky+/bt0y2PGzeOY8eOFXu/JXnvv+PxuAuyePFifvzxR8zMzMolpkft2LGD2bNnl/p+hRD5yVyxQlRz8+fP5+OPP8bLywtvb29iY2OJjY3lzTff5O23365y2xbmhRdewNvbu8TbV1RpaWl88sknbN++3SjvP2PGDFq0aMHUqVOpXbu2UWIQorqQxE6Iamzu3Ll8/PHHbN68mZ49e+rKk5OTC5zHtLJvGxcXx4kTJ6hTp06B80J2794dLy+vArcLDg7G2tqa9u3bo1ar9dZnZWVx4sQJkpKS8PHxKTA5LOq9N2/eTOvWrVGpVJw7dw5PT09atmzJ77//zt27d1GpVLi5udGyZUtsbGwKPc7H/fzzzzg5OeHn51esmAw9ttu3b3Py5Endfvbt24e3tzcNGjQAoFGjRjRr1ozly5czY8aMYsUuhCgmRQhRLSUmJio1a9ZU3n333Wqx7fbt2xUrKyulffv2ynPPPae0aNFCqVOnjvL111/r6nh5eSlLly7VLTs6Oio9evRQ6tevr/Tt21dxc3NTOnbsqOTk5OjqnD9/XvHy8lJatmyp9O3bV3FyclImTJhQ7Pd2dHRUunfvrnh5eSn/+Mc/lB9++EFRFEWZNWuWMmTIECUoKEhp06aN4uzsrBw+fFhv/4/H/bj+/fsrEydOLHZMhhzbpk2bFEtLS6V9+/ZKx44dlZYtW+bbj6IoyowZMxR/f/8nxiiEKB2S2AlRTW3fvl0BlBMnTlT5bdPT0xV3d3flww8/1JV98cUXClBkYte2bVslNTVVURRFiYuLU2rWrKls2rRJURRFycrKUurWravMnz9ft82dO3cUNzc3Zc2aNcV6b0dHR6Vp06ZKcnJyoccye/ZspWnTpnplRSV2Hh4eyqJFi4p1Pgw5trS0NMXV1VVvP/Pnz893bIqiKKtXr1YsLCwKPTYhxN8nnSeEqKZu374NgKenZ5Xf9siRI8TGxuq1v5s8eTI1atQoctuXX34ZKysrAJydnWnSpAkREREA7N+/nxs3buDs7MyGDRtYv349+/fvx9vbm/379xf7vUePHl3gY9aoqCj27NnDunXrMDMzIzQ0lLS0NIOP/+7du9jb2+uWDYnJ0GOLi4vT28/rr7+uO1+Psre3JzMzk5SUFIPjFkIUn7SxE6Kayksg7t27h5ub2xPrhYaGEhoaqlvu2bNnhd/2cVFRUTg6OuolTRYWFtSpU6fIbR0cHPSWLSwsyMjIACAyMhJzc3O2bt2qV8fd3Z2GDRsW+70LOqbJkyezcuVKfH19cXJyIj09HYD4+PgC2wMWxNraWq/XsCExGXJsN2/ezLcfc3PzAo8tNTUVExOTApM+IUTpkcROiGrK19cXgBMnTtC0adMn1gsPD9frlODn51fht32co6MjycnJaDQaTEwePqi4f/++wfsoiK2tLVlZWSxbtgxra+u//d4qlUpv+dy5cyxevJjLly/rOi2cOHGCHTt2oCiKwXE2bNiQ69evFysmQ47NwcHB4GO7fv06Tz/9dL6OJ0KI0iWPYoWopurVq8eAAQP49NNPuXfvXr71eQPzDh48mLVr1+peXl5eFX7bx+UlhDt37tSVHTx4kISEhKJOU6E6d+6Mubk533//vV55bm4ucXFxf/u9b9++TY0aNfTuzG3YsKHYcXbt2pWjR4/qlg2JydBjUxSF3bt369YfPXq0wH+bo0ePEhgYWOzYhRDFI3fshKjGli1bRv/+/WnevDljxozB29ubW7ducezYMTQaDdu2basS29apU4epU6cyatQoZsyYgampKQsXLnzinShDubq6smDBAiZPnkx4eDjt2rUjOjqajRs38q9//Yu+ffv+rff28/PD2tqaoKAg+vbty8mTJ1m/fn2x43z11VeZM2cOUVFReHp6GhSTIcfm7u7OlClTGDVqFNOnT8fU1JRFixZhbW2td/cxKSmJPXv2lNlgz0KIh+SOnRDVmIODA4cOHeK7774jJSWFvXv3kpSUxIQJE/K1rars286ZM4eFCxcSHh7OvXv32L59OxMnTtS1F4P8AxQPHDgwXzu2wMBAvcfAEydO5NSpU7q4ANavX0/fvn2L9d4FvZe9vT0nTpzg6aef5sCBA3h6enLo0CGGDBlCzZo1nxj347y8vBg5ciRff/11sWIy5Ng+//xzvvzyS/7880/u3r3L1q1bsba21mt3t3TpUgICAmjZsuUTYxRClA6VUpyGGkIIISqluLg43nvvPb777rtCpxUrroSEBL0OJsHBwbRs2ZKLFy/qEuBJkybx5ptv6gYsFkKUHUnshBBClNi3337Lvn37CAwM5O7duyxatIiAgAB+/vlnY4cmRLUkiZ0QQoi/ZfPmzezduxe1Wo2/vz9BQUHGDkmIaksSOyGEEEKIKkI6TwghhBBCVBGS2AkhhBBCVBGS2AkhhBBCVBGS2AkhhBBCVBGS2AkhhBBCVBGS2AkhhBBCVBGS2AkhhBBCVBGS2AkhhBBCVBGS2AkhhBBCVBH/D2Vz9E/Jx+3uAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "angles = list(range(0, 181, 15))\n", "prof96 = relaxed_scan(molecules[\"butane\"], (0, 1, 2, 3), angles, lib96)\n", "profd = relaxed_scan(molecules[\"butane\"], (0, 1, 2, 3), angles,\n", " builtin_library(\"oplsaa\"))\n", "paper_pts = {0: 6.04, 60: 1.18, 120: 3.68, 180: 0.00}\n", "\n", "fig, ax = plt.subplots(figsize=(6.4, 4.2))\n", "ax.plot(angles, [prof96[a] for a in angles], \"o-\", label=\"xnn, oplsaa-1996\")\n", "ax.plot(angles, [profd[a] for a in angles], \"s--\",\n", " label=\"xnn, oplsaa (distributed)\")\n", "ax.plot(list(paper_pts), list(paper_pts.values()), \"k*\", ms=14,\n", " label=\"Jorgensen 1996, Table 1\")\n", "ax.set_xlabel(\"C-C-C-C dihedral (deg)\")\n", "ax.set_ylabel(\"relative energy (kcal/mol)\")\n", "ax.set_title(\"Butane torsional profile (relaxed scan)\")\n", "ax.legend()\n", "fig.tight_layout()\n", "fig.savefig(\"opls_butane_profile.png\", dpi=150)\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "659456ab", "metadata": {}, "source": [ "## Summary\n", "\n", "* `MolecularTopology` + a built-in library is all it takes to evaluate OPLS\n", " energies with autograd forces; the dihedral driver is ~20 lines of ASE.\n", "* With the original 1996 alkane torsions (`oplsaa-1996`), Table 1 of the\n", " paper is reproduced to a few hundredths of a kcal/mol across ethane,\n", " propane, butane, methanol and ethanol — the alcohol torsions of the\n", " standard distribution are unchanged since 1996 and match exactly.\n", "* The distributed OPLS-AA alkane torsions (late-1999 revision) give a\n", " slightly softer butane profile; both variants ship as built-ins.\n", "\n", "The OpenMM cross-validation of the full functional form lives in\n", "`examples/fidelity_checks/opls_verification.ipynb`; refitting torsions by\n", "gradient descent is demonstrated in `opls_lopls_torsion_refit.ipynb`.\n" ] } ], "metadata": { "kernelspec": { "display_name": "xnn (.venv)", "language": "python", "name": "xnn" }, "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.12" } }, "nbformat": 4, "nbformat_minor": 5 }