{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# How to tune the learning rate of a stochastic optimization\n",
    "**Configuring the stochastic optimizer by requesting the cost history from the optimization results**\n",
    "\n",
    "Boulder Opal provides a highly flexible optimization engine for general-purpose optimization.\n",
    "It can be directly applied to model-based control optimization and for model-based system identification.\n",
    "\n",
    "The optimization engine from Boulder Opal allows you to tune the parameters of your optimization.\n",
    "You can use the additional information provided by the history of costs obtained during the course of the optimization to see which choices of these parameters are the best for your purposes.\n",
    "\n",
    "This user guide will show how to use the cost histories returned by the optimization engine to select the learning rate of the [Adam stochastic optimizer](https://en.wikipedia.org/wiki/Stochastic_gradient_descent#Adam).\n",
    "For general instructions about how to use the stochastic optimizer, see the user guide [How to optimize controls robust to strong noise sources](https://docs.q-ctrl.com/boulder-opal/toolkit/design/design-model-based-controls/how-to-optimize-controls-robust-to-strong-noise-sources).\n",
    "For an example of how to use the cost history to tune parameters of a non-stochastic optimization, see the user guide [How to tune the parameters of an optimization](https://docs.q-ctrl.com/boulder-opal/toolkit/design/design-model-based-controls/tune-optimization-hyperparameters/how-to-tune-the-parameters-of-an-optimization)."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Summary workflow\n",
    "### 1. Define the computational graph\n",
    "\n",
    "The Boulder Opal optimization engine expresses all optimization problems as [data flow graphs](https://docs.q-ctrl.com/boulder-opal/toolkit/design/calculate-with-graphs/get-an-introduction-to-graphs-in-boulder-opal), which you can create with `boulderopal.Graph`.\n",
    "The methods of the graph object allow you to represent the mathematical structure of the problem that you want to solve.\n",
    "\n",
    "### 2. Execute optimization and retrieve cost history\n",
    "\n",
    "You can calculate a stochastic optimization from an input graph using the `boulderopal.run_stochastic_optimization` function.\n",
    "This function allows you to retrieve the history of all the costs for each step of the optimization, or the history of the best value of the costs up to each iteration.\n",
    "You can request the history of costs with the `cost_history_scope` argument.\n",
    "\n",
    "### 3. Compare the cost histories for different choices of the learning rate\n",
    "\n",
    "You can retrieve the list of costs by looking at the `\"cost_history\"` element in the dictionary returned by the optimization.\n",
    "By plotting these results, you can then verify which choices of parameters resulted in costs that stagnated, and which ones kept improving with each iteration.\n",
    "You can then keep refining the choices, and requesting more iterations for the parameter values whose costs did not stagnate.\n",
    "\n",
    "### 4. Restart the optimization for the most successful choice of the learning rate\n",
    "\n",
    "Together with the output of the optimization, the stochastic optimizer returns the `\"state\"` of the optimizer at the last iteration of the optimization.\n",
    "You can use this state as a replacement to the `optimizer` configuration argument when calling the stochastic optimization function, in order to restart the optimization from the same point where the previous optimization had stopped."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Example: Tuning the learning rate and iteration count for a stochastic optimization\n",
    "\n",
    "Consider the problem of finding the best drive pulse to create an $X$ gate for a single-qubit system whose Hamiltonian is the following:\n",
    "$$ H = (1 + \\beta) \\frac{\\Omega_x(t) \\sigma_x + \\Omega_y(t) \\sigma_y}{2} + \\frac{\\zeta}{2} \\sigma_z , $$\n",
    "where $\\sigma_x$, $\\sigma_y$, and $\\sigma_z$ are the Pauli matrices, $\\Omega_x(t)$ and $\\Omega_y(t)$ are two drive pulses that you want to optimize, $\\beta$ and $\\zeta$ are a quasi-static amplitude noise and dephasing noise, respectively, both sampled from a normal distribution.\n",
    "\n",
    "Suppose that you want to use the stochastic optimizer to find the best pulses to reduce the effect of the noise, but you don't know which value of the learning rate will yield the best result.\n",
    "In this case, you can run the optimization for different values of the learning rate, and retrieve the history of the best cost for each of them.\n",
    "By plotting these best costs as a function of the iteration, you can then see which choices of the parameters stagnated at a certain level and which ones kept improving.\n",
    "For those that kept improving without stagnating, you can increase the iteration count to obtain better results.\n",
    "\n",
    "The following example shows how to make this comparison for different values of the `learning_rate`, plotting the results of the cost histories.\n",
    "At the end, we show how to continue the optimization for the learning rate that resulted in the best cost.\n",
    "\n",
    "Some Boulder Opal functions like `boulderopal.run_stochastic_optimization` support a `run_async` flag, that when set to True enables to submit jobs asynchronously.\n",
    "Depending on your Boulder Opal plan, these jobs may run concurrently on different machines and save you time.\n",
    "For more details on asynchronous job submission, refer to [this user guide](https://docs.q-ctrl.com/boulder-opal/toolkit/discover/set-up/how-to-manage-and-monitor-your-calculations)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import qctrlvisualizer as qv\n",
    "import boulderopal as bo\n",
    "\n",
    "plt.style.use(qv.get_qctrl_style())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Define optimization parameters.\n",
    "omega_max = 2 * np.pi * 25e3  # Hz\n",
    "duration = 200e-6  # s\n",
    "segment_count = 80\n",
    "noise_count = 400"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Create optimization graph.\n",
    "graph = bo.Graph()\n",
    "\n",
    "# Define optimizable pulses, start with square pulse.\n",
    "i_signal = graph.real_optimizable_pwc_signal(\n",
    "    segment_count=segment_count,\n",
    "    duration=duration,\n",
    "    maximum=omega_max,\n",
    "    minimum=-omega_max,\n",
    "    initial_values=np.ones(segment_count) * np.pi / duration,\n",
    ")\n",
    "q_signal = graph.real_optimizable_pwc_signal(\n",
    "    segment_count=segment_count,\n",
    "    duration=duration,\n",
    "    maximum=omega_max,\n",
    "    minimum=-omega_max,\n",
    "    initial_values=np.zeros(segment_count),\n",
    ")\n",
    "# Create drive term of the Hamiltonian.\n",
    "drive_term = (\n",
    "    i_signal * graph.pauli_matrix(\"X\") / 2.0 + q_signal * graph.pauli_matrix(\"Y\") / 2.0\n",
    ")\n",
    "\n",
    "# Create amplitude noise realizations.\n",
    "amplitude_noise = graph.random.normal(\n",
    "    mean=0, standard_deviation=0.2, shape=(noise_count, 1)\n",
    ")\n",
    "amplitude_noise_pwc = graph.constant_pwc(\n",
    "    constant=amplitude_noise, duration=duration, batch_dimension_count=1\n",
    ")\n",
    "\n",
    "# Create dephasing noise realizations.\n",
    "dephasing_noise = graph.random.normal(\n",
    "    mean=0, standard_deviation=2e4, shape=(noise_count, 1)\n",
    ")\n",
    "dephasing_noise_pwc = graph.constant_pwc(\n",
    "    constant=dephasing_noise, duration=duration, batch_dimension_count=1\n",
    ")\n",
    "dephasing_term = dephasing_noise_pwc * graph.pauli_matrix(\"Z\")\n",
    "\n",
    "# Define batch of infidelities.\n",
    "hamiltonian = (1 + amplitude_noise_pwc) * drive_term + dephasing_term\n",
    "infidelities = graph.infidelity_pwc(\n",
    "    hamiltonian=hamiltonian, target=graph.target(graph.pauli_matrix(\"X\"))\n",
    ")\n",
    "\n",
    "# Calculate cost as the average of the infidelities.\n",
    "cost = graph.sum(infidelities) / noise_count\n",
    "cost.name = \"cost\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Your task (action_id=\"2067550\") is queued.\n",
      "Your task (action_id=\"2067550\") has started.\n",
      "Your task (action_id=\"2067550\") has completed.\n",
      "Your task (action_id=\"2067551\") has completed.\n",
      "Your task (action_id=\"2067552\") has completed.\n",
      "Your task (action_id=\"2067553\") has completed.\n",
      "Your task (action_id=\"2067554\") has started.\n",
      "Your task (action_id=\"2067554\") has completed.\n"
     ]
    }
   ],
   "source": [
    "# Submit multiple calculations asynchronously\n",
    "# to run optimization for each value of the learning rate.\n",
    "\n",
    "learning_rates = [0.2, 0.1, 0.08, 0.04, 0.01]\n",
    "jobs = {\n",
    "    learning_rate: bo.run_stochastic_optimization(\n",
    "        graph=graph,\n",
    "        cost_node_name=\"cost\",\n",
    "        output_node_names=[\"cost\"],\n",
    "        optimizer=bo.stochastic.Adam(learning_rate),\n",
    "        cost_history_scope=\"HISTORICAL_BEST\",\n",
    "        iteration_count=4000,\n",
    "        run_async=True,\n",
    "    )\n",
    "    for learning_rate in learning_rates\n",
    "}\n",
    "# Get results from all jobs.\n",
    "results = {learning_rate: job.get_result() for learning_rate, job in jobs.items()}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAtUAAAF4CAYAAACb2QXGAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAAsTAAALEwEAmpwYAAB+KElEQVR4nO3dZ3gc1fn38e9sVy+2bMlyb3LH3bhQXABjugETOiTUECCU9MKTQPgnIYSEQIBAQsCUUIxp7hVcwBh3G/deZKv3sm2eFyutLVuyulbl97kuX5Zmzszcs7OS7j1zzzmGaZomIiIiIiJSZ5ZQByAiIiIi0tIpqRYRERERqScl1SIiIiIi9aSkWkRERESknpRUi4iIiIjUk5JqEREREZF6UlItVfr6y2948NZHST+RfsY6n8/Hg7c+ytyP5p/RPjM9q1bH+OqLNQ0Sbyh89cUafv/40/z4jp/w03t/WWW7v//hRZ578h9NFtfu7XuY+9F8/H5/kx2ztXrikSeZ+cq7ddr2+LETPP/0P/nJ3b/gwVsfZdO3W5j70XwevPXRarfdvX0PD976KLu376n1cU+PubKfzbkfzWfntt1nbDvzlXd54pEna33M5uj031HNUUuIsTJHDh5l7kfzKSwoDHUoIs2GLdQBSOsxcOgAHn3iIaJjo2u8zZoVa/H7/Yy9YEwjRtY4crNz+d9/PmDkuOHcfPf3sNvtoQ4paPf2PcybvZBLrroo1KG0eHc9fCeuMFedtp399idkpmdy54O3ERYeRsekDnTt2YX+Q/o1cJRnV9nP5rzZC7nkyimkDOxToe3Uqy+ipPi8Jo2vLXv0iYeIjY8NdRi1duTgUebNXsio8SOIiIwIdTgizYKSamkwUdGRREVHhjoMPB4vdnvjv7XTjqfj9/sZPWEUvVJ6Nvrx2oKmuna10aV75zpve/xYGr1SejFgSP/gsvCIcOKaOImqzc9mQsf2jRxN61bb93CP3t0bL5haME0Tn8+Hzda8fv5EWhL99EiD+frLb3j71f/x//76a9olxAPw7ep1LJm7nLTj6VgMg7j2cZx/0QQmTBrH3//wInt27AUI3g7v3a8XD//qAQAO7D3IZx/M5cCeg2BC997duGLGNLr36hY85sxX3mXXtl18/8Hbmf3Opxw5eIRxE8eSmZZJTnYuP3vqsQoxZqRl8vvHn2bG7dcyYfK4Ks/lRGoan773Obu378Hr8ZLctROXTr8kmBzNfOVdvlm5FoAX/vgSAKMnjOLWe28862u0ed1WPv9gLukn0olPaMdl105l+JihFdocOXiUObPms3fnPrweD527d+bKGy6n9ymJ+8F9h/js/bkcPngET6mb6Nho+g/pxw13XMfcj+Yzb/ZCAH58x0+C2/xj5l+rjOuLRSv4dvV60lLTME2TjkkduOTqixk0dAAQSBR+/eATjDlvNNNvvqrCtuvXbOT1F97kp08+GkxAd2/fw/yPF3Fw3yFMv0nPlB5cc+OVdOqSFNzu7394Eb/fz5TLJjH3o/kcP3qcK2ZczqRLL6g2nnIZaZl88MYsdu/Yi9PpZNSEEXRM7MD/Xv+gwvsQYNXSr/hy8UrSjqfjdDoZPHwgV994RbW9bE888iS9+/UOXtvy9/mjTzzElwtXsnXDNhwuJ8NGDeGq712B3WFn9/Y9PP/0PwHIyshi7apvg9eg/Pqcej3y8wqY9dZstm34DsNiMGjYIM4ZObjSeDau3cySOUs5ejgVm81KysAUrrnpSuLbx1V5Dqf/bJb/vC34dDELPl0MwKXXXMy06VOZ+cq77Nmxh98995vg9u5SN/NmL2D9mk3kZucSExfDuAvHcNEVk7FYAlWEpSWlfPr+HLas30p+bj6usDA6dU3i+tumk9ipY6VxvfSXV8nLyTvj5zQ3J4/fPvx7rvreFUy69ALycvL45L3P2bF1F0UFhYRHhNOlRxduvusGomKiqr54lajpz9fiz5dyYM9BCgsKiWsXxzmjhjD16otwOBzBdlW9h7t0T+b5p//JPY98n+1bdrL+640A9B+SwvW3XUt4RFhwHw/e+mjwtQeC74/fPPMLZr31MXt27CUiMoKxF4zmkqsuCr7eAIcPHOHDmbM5vP8wEVGRTJg8Dq/Hy/yPF5715x0C7+uefXvQd0AfFs9ZRkZaBt//0W2cM3IIc2bNZ+uGbWScyMBqs9GpSxJXzJgW/ABQ/n4C+P3j/xfcZ/n7y+fzsWTOMtas/Jas9EzCIyMYMXYYV1w3DbsjcEfP5/Mxb/ZC1n21npzsXJxOJx07deDKGZepk0JaLCXVUi2/P9CDcfqy6uzduY83X36HCy6ewFXfuwLTNDlx7ATFRcUAzLjjWt586W38fj/f+/71AMHb7EcPHeP5P7xIYnIit9xzI4YBiz5byvN/eJFHn3iYzt2Sg8cpLi7h9RdnMnnahVwxYxp2u53CgkJefvY1Duw9WCEJX73sKxxOByPHDa8y7tzsXP725D9wupxcf9t0XGFhrFi8kpf/8hr3PnYXA8/pz9SrL6Jrj858OHM2199+LV26JxMZdfaewPQTGXw4czbTpl9CZHQkK5es5r8vziQyKoK+AwK34A8fOMLfnnyBzt2TufEHM3A47Kxc+hUv/vElHvntQ3Tt0YXSklL++edX6NazK7fcfSOuMCeZ6Vns330AgLEXnktOVi5ffbGGR37zIIbFqPZaZaVnM+6CMcQnxOP3+dmyYRuvPPsa9//kbgYM6Y/dbmPYmKGs+2o9V994RYU/7GtXfktS58RgQr1143e8+tx/GDi0P7fddzMAiz9fyt+eeoFfPP04ce1OJn9pqel8OHM2U6++iPYd2hEeEV6jeAC8Xi8v/ullvB4vN9xxHZFREaz+Yg0bv9l8xvl98t7nLJ23nAsuPo+rb7yS3OxcPv9wLqlHjvPoEw9VOJ+amvnyO4wYO4wfPHwnB/YcYO5HCwiLCOeya6fSuXtnHn3iIf711//QtWcXpl599jKc1/7+OscOHePyGdPo0DGB9Ws28uHM2We0W7lkNe/990POPX80U6++mJKSUubNXsDf//Aiv3j68RqXqTz6xEP89XfPM+a8UYyfNBagyhIEn8/Hi39+hePHTjD1qovo1CWJA3sOMv+TRRQWFjH9psCHrFlvf8zW9du44vppJCQmUFhQyL5dB4I/75UZPX4k//3nTFKPHicpOTG4/NvV6wGCP6dvvvwOWZnZXP29K4hrF0t+bj47v9uN2+2p0fmWq8nPF0B2ZjbJXZMZc94onC4nqUdPMP/jhWSmZXLnj26rsM/K3sNFhUUAfDjzYwYNG8DtP7yFtNQ0PvnfZ1gsFm6996ZqY33tb68z5vzRTJx6AVs3bGPuRwuIaxfHueePBqAgv4B//N9LxMRFc8u9N2G1Wlk+/wsyM7Jr/Hrs3r6HowePcek1FxMVHUl8+8CH0NzsXCZOvYDY+BjcpW7WrlrH3596kZ8++QidunRi4NABXHLVRSz4ZBHff/B2YuNjAILlRW++9DZbN3zHlMsn0qNPD04cO8GcWfPISs/irofvBAK/E5bN/4Irrp9GctdOlBSXcmj/4eBrJ9ISKamWaj310z/WabsDew4SFu7i2luuCS7rPzgl+HVSciKuMBd+v/+MW6DzP16IzW7jRz+/P9irkzIohf/3yJPM+3ghd5f9YoZAD9lt993MkBGDgsv8fj/tO7Rj1dKvgkm1z+vj6xVrGTlu+FmTj6XzvqCosJhHn3iIhI4JAAwc2p8//OxPfP7BXAae05+Eju3pWNb7lpTcsUa3cPNz83n0iYeCbQcM6ccffv5n5syaH0yqP373M+Lax/LgL+4P3obtP6QfT//iz8z/eBH3PPJ9ThxLo6iwmKu+dwXJXTsB0Kc/wT+2cfGxwT9y3Xp1xWq1VhvbNTddWeG16zuwD+nH01m5ZHUwiR09fiSrln7Fzq27gjXB+XkFfLdlB1dcNy24/ayZs+ndrxf3PPKD4LI+A3rzu0f/wNJ5yyu8HwoLCnngZ/dW+JBU03jWfLmWjLRMHvt/Dwev8YBz+vPHX/2F7MyT+8pMz2LJnGVces3FXHrNJcHlHRITeO7Jf7Bl/bYqe4XPZsTY4Vx2baB3sd+gvhzYe4h1X2/gsmunEhbmokfv7thsViKjIs/6/tixZSf7du3njh/eyoixw4DANf/nM/8iJysn2K60pJRP3vucc88fzc13fy+4vFvPrjz10z/y1RdrmDj1ghrFXh5PbFxMte/ddV9tYN+u/Tz8qwfo3a8XACkD+wKBuuyLLptEVEwUB3YfZOS4EYy98NzgtueMHHLWfQ8eMRBXmIu1K7/lyhsuDy5fu+pb+g3qS3RZL/T+PQe44vppjBo/Ithm2Gl3eGqiJj9fAENHnQOjAtuYpknPvj0IC3My85V3mZFfSETUybsblb2Hyx8u7d2vJ9ffNj1wnMEpnEhN46sv1pR1FJz9w+6kaRcGf6b7DerLru92s+6r9cFlS+d9gcft5oc/vTdYTtR/SAr/75Gnavx6FBUW89PfP3rGczA33XVD8Gu/3x94jX7+Z1YvX8N1t15DVHQk7Tu0A6Bzt07B35MAe3buY/2ajdxy742MmTAqGH94RDhvvvw2Rw4epXO3ZPbvOUi/wSlceMn5wW0HDx9Y49hFmiMl1VKtux6+84waUL/fz7O/+/tZt+vaswtFhcW88dJbjDh3GD379qxw2/Ns9uzYx8ChAyq0DwtzMWjYILZu3FahrdVqZdCwimUBFouF8RPHMm/2QqbffBVh4WFsXreF/Nx8xk8ce/Zj79xL997dKvyhsFgsjBg7jPkfL6K4uISwOjy4FtcutkICY7FYGDb6HJbMWYrf78fr9bJnx14uvnIyhmFUuDuQMrAv365eB0BCYnvCwsP43+sfcP6U8fTu16tC729dHNp/mLkfLeDQvkMU5BdimoE7ER2SOgTb9Ozbg/Yd2vHNqm+DSfX6rzdg+s1gj2La8XQy0jK5+MopFeJ3OOz06N2NPTv2VThufPu4MxLqmsZzYO9B4trFVbgTYRgGQ0cN4djh1OCyHVt3YpomI8eNqBBTt15dcbmc7N25r05J9cCh/St836lzIju37ar1fvbvOYDFYmHoqIoJ6Ihzh7F9846T7XYfoKS4hJHjhlc4j7h2sXTs1IE9O/fVOKmuje2bdxDfPo4efbpXOG6/wSl8/uE8Duw9yODhg+jaswtrVnxDRFQE/Qel0Ll7crV3ABwOB0NHDeHbr9ZzxYzLMAyDY4ePcfTQMaZcPinYrlvPLiyZuxyAvgN6k9Q5qdqk9HRut7tGP18QuPu18JNFbFy7mezMnApt006k0+OUpLqq9zAEHhA9VacuSXg9XvJz86t9oHvgORXfX0mdkzhy8Gjw+wN7AnfhTv3d7HA4GDh0AF9/+c1Z912ue69ulcaxY+suFn66iKOHUykqONlzfGo5VVW2b96BzWZl2Khzzni/AOzZsZfO3ZLp2qMLiz5fwmcfzGXAkH5069VV9dzS4ukdLNXq1CWxQoIJnFEOUpk+/Xvz/Qdv58uFK3j1768DgZrp6TddFexhrUpRYRExlfyyj46Noriw4u3kyOiISv94j71gDHM+ms83q77lgovOY+XSr+jWs2u1D54VFRTRuduZbaJjojFNk+LCojol1VHRZ9Z+RsVE4vX6KMgvxO/z4ff7mf/xIuZ/vKjSffj9fsLCw3jolz9k/scLef+/sygpKSUpOZFp114S6GGrpezMbF7440skdkrkutumE9cuFqvFyuez5nHi2IkKbUeNH8GSucspLSnF6XLyzapv6TugT7B0oCCvAIB3XnuPd15774xjnZ78V/YHvabx5ObkVfrw3ek1tuUx/f7xpys9/7oOCRYRGV7he5vdhtfjrfV+8nLyCY8Iw2qreEchKqbiueWXnccLf3y50v2Eh9fsA2tt5ecVkJWRXaE+/1SFZUnX9bdNJzomiq+/WMPnH8wlPDKc0eNHcsX103A4HZVuCzB6wki+/vIbdm/fQ98Bffhm5TpcLmeFO093PnAb82YvZPGcpcx662OiY6OZMGnsGTXGZ1NUUFSjny+LxcLb/3qXndt2c9m1U0nu2gmn08mBfYf44I1ZZ1zjsyXH5eVM5cqTRk8N3ifhp7+/bDa8npPlLnm5eSQlJ52+Wa0eFq/sd+zhA0d4+S+v0n9wCjf94AZiYqOxWCy88+/3ahR3fl4+Xq+Px+76eaXry98vl1w5BbvDxtpV61j46WKcLidDRw3h6huvqLaUTqS5UlItjWrY6HMYNvocSktK2b19D5+89zn/fOZfPPn33571j2F4RDh5uflnLM/LySfstN5ug8p7rCKiIhg2eiirln5F/8H92L19Dzf+YEa1MYdHhpOXm3fmsXPzMAyDsNP+UNZUft6Z55OfW1BWIhCBx+3BMAzOnzKe0WW3TU9X/pp17pbMXQ/fic/n49D+wyz6bAn/+ceb/PwPj1d4GLAmvtu8g+KiEu588LYKvV6eUvcZbUeNH8m82QvZ9O0WuvfqyqF9h7nllIczyxOBK2ZcRr+yEoFTnZ44VtbbWNN4YmKjOX70BKfLP+19U/4g4gM/vfeMJOfUmEMlOjaKosJifF5fhdcnP7egQruIqECct9xzY4X643LOMGejxBcRGU67hHi+/6PbK10fnxD4oOR0Obnyhsu58obLycrIYsM3m/n0/c+x2axc9b0rqtx/+Z2WtavW0btfL9Z9tZ6ho8+p8EBgVEwUM+64lhl3XMuJ1DTWrFjL3I8WEBkVyXlTxtfoPMLCw2r08+Vxe9iyfhuXXnNJhdKEY0dSK92mtj3mDSU6JpqCyn6n5BVU0roKlYS+ce1mLFYLdz18Z4X3Y1FhMWE1+OAWERmB3W7jx79+sNL1MXGBRN5qs3LR5ZO56PLJ5OXksXXjd8x++xPcbg/fP61uXaSlUFItTcLpcjJo2EAy0jKZ9dbHFBYUERUdic1uozD/zJ7C3v16sW3TdkqKS4L1zyXFJWzduI0+ZXWdNXHelHH89XfP8+5r7+EKczHi3GHVbtOnXy+WLfiSzPSs4O1Ov9/P+jUb6dwtuU691ADZmTns33MgWALi9/vZ8M0muvbsisViwely0iulJ0cPHavRrXMIlL706N2dy669lC3rt3Hi2Ak6dUk62SPm9mANO3tNtafsYa9Ta6/TUtPYt/tAsDa7XELH9vTo0521q74l7Xg6DqeDoafUzXZM6kB8+3iOHz3OxVdMrtHrUtd4uvfqxtdfflPhYVTTNNm4tuKDiimD+mIYBtmZ2cFb0M1Jj97d8fv9bFy7OVhTDbDu6w0V2/XpgcvlJP1EBmPOqzwprA2bzYrbU/2Dfv2H9GPjt5txuBxVjuJxuvj28UyediHfrl7HsSPHz9rWMAxGjR/Bl4tWcs7IweRk51aonT5dx6TACBGrlq4mtZp9n6qmP19erxe/34/VVnH9mhqWVDSV7r27sXTucrKzcoIfPt1uN9s2flev/bpL3YHX5pSEe+e23WRnZlco/7DZT/6OOdWAIf1Y/PlSiouLg7X31YmOjWbcheeybdN2Uqv48CLSEiiplkYzZ9Y88nPz6dO/DzFx0eRk5fDFwhV07pYcvEWZ2KkjK5esYt3XG0jo0B5nmJOOSR2YevVFbNu4jX/88SUuunwSYLD486V4St1MvfriGsfQo3d3OndLZs/OfVxw0YSz3oYuN3HqBaxZsZYX//Qy06ZfgivMxYrFq0hLTee+x++q68tBVEwUr78ws8LoH+nH07nhjmuDbabffBV/e+oF/vnnfzH2gjFEx0ZRWFDI4QNH8fv9XHXD5WzdsI1Vy75myIhBtEuIx13q5ouFK3C5nHTv0x2AxLKezKXzljNgSH8sFgtde3apNK6UgX2xWC3MfOUdJl16IXk5ecz9aD5x7WKDtcynGj1+JO+/MYtjh1M5Z+RgnK6TPaSGYTDj9un862//wev1MXzMOURERpCfV8D+3fuJaxfHpEsvPOvrVNN4xpw/isVzlvLvv/+Xy6+fFhz9o3y0ifIexISO7Zly+SQ+ePMjTqSm07t/L+x2G9mZOezcuouxF44JPigaCv0Gp9Czbw/+9/oHFBQUBEf/OD1hDAtzcdWNV/DBGx9RkF/AgCH9CQt3kZOVy54de+nTvxcjx1WdjJ4uMTmRbRu3M2BwP8IjwomJiyYmLuaMdqPGjWDNl9/wwh9fYtKlF5LctRNer4+MtAy2rt/G3T/+Pg6ng2d/93cGDxtIpy5JOF1Odm/fy9FDx2r0AWDU+BEs/HQx773+IXHt4ujTv3dwXXFRMS/88WVGjhtOx04dsFqtbFm3laLC4lp/SKrJz1dYeFhZwvoF0bHRREZG8PWX35CTnVurYzW2SZdewMolq/nnn1/h0msuwWazsWzecmx2W716zwcM6cfyBV/y1r/e5dzzR5OWms78TxYRe9p7o/wD1peLVzFmwiisViuduibRp39vRowdxr+ff4NJl15At55dMQyDzIwsvtu0natuuJwOSR3413P/JrlrJzp360x4RBhHDh5l++Yd1T7zItKcKamWRtOtVze+WLiCLW9/TFFhEZHRUfQb1JfLr7s02OaiyyeRlprGu/9+n9KS0uA41cldO/HQLx/gsw/nBqZbLhun+qFfPVDlQ0FVGTb6HI4cPMr4SVWPS32qmLgYfvybB/nkf5/z3n9n4fV66dy1E/c9fleFSTxqK6Fje6ZcNpHP3i8bp7p9PLf/8JYKCV2X7p35ye8eYd7sBXw4czYlxcVERkXSuXtnJpQNfZaQmIDdYWf+x4vIy83D5XLStUcXHvjZfcEeq0HDBnDe5PGsWLya+R8vwjTNKsetTeqcyO3338KcWfP513P/pn2Hdlw543K+27yDPTvOnCJ7+LlDmfXWbPJy8xk1fuQZ6wcOHcCPf/UjFny6mHdeex+Px0N0TBTde3Vj+Jjq7xTUNB6bzcYPf3ovH775Ee+9/gFOl5MRY4fTvVdXPn1vDmHhJ+8oXDnjMhI7dWTF4pWsWLwKjMADfn0H9CEhMaGyMJrUXQ/fyYczZ/PZ+3OxlI1Tff1t03n1b/+p0G7CpHHExceyZO4y1q1ej8/vJzYuhl4pPUmu5c/F9bdN58OZs3nluX/j9XgrjJV8KqvNyg9/ei+LPl/CqmVfk5WeicPpoH2H9gwc2j9YItA7pScbvtnEos+X4vf5adchnuk3X1WhhKIqiZ060rVHFw7tP8xFV0yukBTa7Ha6dE9m9fKvycrIxmIYdEjqwO33VxzxpyZq8vMFcMcPb+W9/37IB298hN1uZ9iYc7j21mt45dnXanW8xhQZFcmDv7ifD2fOZuYr7xARGc6ESeMoyC/km5Xf1nm//Yf047pbr2HpvC/YtHYzSZ2TuPXem1jwScU69M7dkrn0mktYvfwrVi/7GtM0g+NU33bfzXy5aCVffbGGBZ8uxmazEd8+jv6D+wWfeeiV0ouN32zky8Wr8JS6iWsXx5TLJnLJlZoFVlouw6ysK0qkFfnr75/HMAwe+U3lNX7Surz87GucOHaCJ579VahDEWlSfr+fP/362WDCLSJNSz3V0ip5PF6OHDjCzm272L/7QHD8WWldls5bjtPpJCGxPaUlpWz4ZhPbNn7HDXdcF+rQRBrd5x/OI6Fje+Lbx1FYUMjq5Ws4djiV+x6/O9ShibRJSqqlVcrLyeOvv3+esPAwLr5yCoOH1+42sbQMNpuNZQu+IDsjB7/pp0NiAjf9YEaFCUhEWivDCEyUlZudC4ZBcpck7v7x988Y41pEmobKP0RERERE6qlmo+aLiIiIiEiVlFSLiIiIiNSTkmoRERERkXpSUi0iIiIiUk9KqkVERERE6klJtYiIiIhIPSmpFhERERGpJyXVIiIiIiL1pKRaRERERKSelFSLiIiIiNSTkmoRERERkXpSUi0iIiIiUk9KqkVERERE6klJtYiIiIhIPSmpFhERERGpJ1uoA2hqn/zvM/btPkC7hHhuvut7WG3WUIckIiIiIi1cm+qpPnLwKDnZuTzymwfpmNSBDWs3hTokEREREWkF2lRSvX/3AfoNTgGg/5B+7Nu1P8QRiYiIiEhr0CLLP75YtII1K9aSejiV4ecO59Z7bwyuKywo5J3X3mPHll1EREVw5YxpjBw3AoCiomKiY6MBCAt3UVRYFJL4RURERKR1aZFJdUxsDJdceRE7tuzE7fZUWPf+Gx9htdl4+sXfceTgUV5+9jWSuyaT1DmRsPAwSkpKACguKiE8IjwU4YuIiIhIK9Mik+qho4YAcHj/YdxZucHlpSWlbFq7mV/+309wupz0SunJ4OED+WbVt1x1w+X07NOdpfO+YMyEUWzfspOefXtUe6zdh9Ox62FGERERaQE8Xh99uiSEOow2qUUm1VVJO56OxWqhQ1KH4LLkLp3Ys2MvAJ27JRMdE8lzT/6D+HZxTJ52YaX7WbX0K1Yt/wqAaTdfR5+Uro0eu4iIiEh9HUjNCnUIbVarSqpLS924wlwVlrnCXZSUlAa/v/rGK6vdz/hJYxk/aSygN6eIiIiIVK9Vjf7hdDooKS6psKykuBSXyxmiiERERESkLWhVSXWHxAT8Pj9px9ODy44eOkZi58QQRiUiIiIirV2LTKp9Ph8etwe/349p+vG4Pfh8PpwuJ+eMHMycWfMpLSll3679bFm/ldHjR4Y6ZBERERFpxQzTNM1QB1Fbcz+az7zZCyssu/Sai5k2fSqFBYW8/ep77Ny6i4iocK6ccVlwnOra2LJ+G1s3bGPohePp3yu5oUIXERERaTQHUrPonhQf6jDapBaZVDclvTlFRESkpThb3mKaJjkFxRQUleL3mygBrDkDcNhtJMRFYrNWXujRqkb/EBEREZHKpWUXYACJ7aKxWS0YhhHqkFoM0zTJKywhPbuApPbRlbZpkTXVIiIiIlI7JaUe2sdFYrdZlVDXkmEYREe4cHu8VbZRUi0iIiLSBpiARcl0nRmGcdaSGSXVVdiyfhvv/vt9iouKG/U47+/azXWfz+W9nbsa9TgiIiIi0nhUU12FwcMHMnj4wEafUTFz/yaKc/ZyYl8epPRt1GOJiIiISONQT3WIxez7gmeW5hJzZFWoQxERERGROlJPdYilrO5KbGoMPewn4O5QRyMiIiLSPH25eBVL5iwjLzePpOREpt9yNb1TelbaduPazaxaupojB4/i8XhJ7NSRS66awuDhgxotPvVUh9jhhHwAworsIY5EREREpHla9/UGZr01m4uvnMzPnnyMHn2689Iz/yIrI7vS9nt27KXPgD7c+9hd/OypRxlwTn9e/dvr7Nm5r9FiVFJdhaZ6UNFSNj67w2Nt1OOIiIiItFTL5n3BmPNGMX7iWBKTO3L9bdOJiY1m5ZLKy2evu/UaLr5iMt17dSOhYwLTpl9Clx6d2bxuS6PFqPKPKjTVg4p+R2BoG7uSahEREWli90elheS4L+V3qHFbr9fL4QNHmDztwgrL+w1KYf/uAzXeT2lJKeHh4TVuX1vqqQ4xMyyQTDvc+nwjIiIicrrC/EL8fj9RMVEVlkfFRJKXm1+jfXy5aCU5WbmMnjCiMUIE1FMdes7AJbB7dClERESkadWmx7il2rh2Ex//7zPufOA24tvHN9px1FMdYhaXDdPwY/fayNjnCXU4IiIiIs1KRFQEFouF/NN6pfNzC4g+rff6dBu+2cSbL7/DrffexODhAxszTCXVoea0WfA53AC8flN6iKMRERERaV5sNhtdundmx9aKs0/v2LaLHn26V7nd+jUbmfny29xyz40MG31OI0eppDrkIpMTMS1+AMLzMkMcjYiIiEjzM/HSC1izYi2rl3/N8aMn+HDmbHKzc5kweRwAb778Dm++/E6w/bqvNvDGS29x5Q2X0zulJ3k5eeTl5FFYUNhoMaqQtwpb1m9j64ZtDL1wfKMex2lz4g4vwl4cjtNwN+qxRERERFqiEecOo7CgiAWfLCIvJ4+kzknc//jdwRrp7MyK41WvXLoav8/PrLc+ZtZbHweX9+7Xi4d/9UCjxGiYpmk2yp5biQOpWXRParyi9o1rPsX/v4UkbhnCstRB3LxtXKMdS0RERFq3s+UtjZ3TtAVnew1V/hFiDqsTT3gRAOHWkhBHIyIiIiJ1oaQ6xNq5IvGEBWZtjIpSTbWIiIhIS6SkOsRiw5PwhgV6qgeEZZM3c12IIxIRERGR2lJSHWKG1cLXER3wOkoByHtjPSXZGq9aREREpCVRUh1ihsVKod3PxlvfxI+JBZMtHxeEOiwRERERqQUl1aFmsYDXgmnzUez0AeDblxHioERERESkNpRUV2HL+m28++/3KS4qbtwDWSzgCVwGqzUwumHsnl1n20JEREREmhkl1VUYPHwgN/5gBmHhYY16HMNqweINXIYDA1IBMH3+Rj2miIiIiDQsJdUhZm3XHr/XCkBO+0DZR2m2N5QhiYiIiEgtKakOMcNqxeYPzBZvtQUmf+lgpocyJBERERGpJVuoAxBIzHcD4I/OA8DnNyjdm4XFbsGWHI1h1WcfERERadu+XLyKJXOWkZebR1JyItNvuZreKT0rbZubk8fsdz7h8IGjpB9PZ9T4kdx6742NGp+ytWbAXtZTXRIR6KG2Wkwy7/2Q9O+/T9YTC0MZmoiIiEjIrft6A7Pems3FV07mZ08+Ro8+3XnpmX+RlZFdaXuvx0tkZAQXXT6J7r26NUmMSqqbAZvHAMBhlLAzfAAZxZF4o6MA8O7V1OUiIiLSti2b9wVjzhvF+IljSUzuyPW3TScmNpqVS1ZV2r5dQjzX3Tadc88fTXhkeJPEqPKPZmDSdTex9sBKbIaPtJFFvP/MFG78g53en36AP6+Egg83Eza5N9a4pnlTiIiISNtw8OLJITlut4VLatzW6/Vy+MARJk+7sMLyfoNS2L/7QMMGVg/qqW4G2sXGAoExqu09/gNAXo4F7FbMUh95L39N5s/m4t52HF9GYegCFREREWlihfmF+P1+omKiKiyPiokkLzc/RFGdST3VVdiyfhtbN2xj6IXjG/1YVpuNV903cK/zPfyOLADyMg3ifzOZvDfW4d2biXdfFhkPfwp2Kx3fuQlrXOOOny0iIiKtX216jOXslFRXYfDwgQwePpADqVmNfzCrlT778qE/YARGACnINHGN645zZGey/7QcX3oh3oPZmIVuvAezlVSLiIhImxARFYHFYiH/tF7p/NwCok/rvQ4llX80A4bFSnJ2AV7Tit1wY7G58ZQEykEMh43430wh4fmrcI3uAqASEBEREWkzbDYbXbp3ZsfWXRWW79i2ix59uocmqEqop7o5sFrpm5lJEQ5sFGMLK8LvizyjmaV9BAA5f1yGY0BHbJ2imzpSERERkSY38dILmPnyO3Tr1ZWefXqwculqcrNzmTB5HABvvvwOALfdd1NwmyMHjwJQUlyCYRgcOXgUq81KUnJio8SopLoZMKxWHD4v2aadCKMYogrweRPOaGfv0z74deHn3xFzz7lNGaaIiIhISIw4dxiFBUUs+GQReTl5JHVO4v7H7ya+fTwA2Zlnjlf9p18/W+H7rRu2Ed8+jt8995tGiVFJdXNgsdAjJ5tDOADImLiHbgd7nNEsbGIv3FuPU/Tpd5j5pU0dpYiIiEjInD9lPOdPqXwAiYd/9cAZy/4x86+NHVIFqqluBiyRkYR7PDhL/QAYUYX4fWe2MwwDx6DALYuixbtJf2A2/mJPU4YqIiIiIpVQUt0MWMICI3lEFXoBKOqfit9rVtrW0bc9hssGHj+enel4NOOiiIiISMgpqW4mDJcLuzuQSEcUmZX2VAPYOseSOOs2HEM7AeA9WPmc9yIiIiLSdJRUNxcWC+HFgZ7q2Phj7NtaSlGOv9KmhtOG4bACULRgV6VtRERERKTpKKluJgyLBYcv0D3dw3KEosQC3v9pQZXtw87vGdjOaJLwREREROQslFQ3F4ZB1LHAYCw+rPgcfrKPVlEDAth7twPAve1Ek4QnIiIiIlVTUt1cWCw48wOXw46HPd/bTmFZOUhlrMkxwa+LFqoERERERCSUlFRXYcv6bbz77/cpLipumgMaBhZvoJbDbngpSipkk/sE7qLKRwGxhNmxxAdGDcn583IK5+5omjhFRERE5AxKqqswePhAbvzBDMLCw5rkeIbFguELJNUOAj3UXpeXI1ur7q1OeOGa4Ne5f/0S0195Ai4iIiIijUtJdXNhsWApy59j7IHk2G/34S6uOlG2doik47sn57hPv+dDcv+5GveOtEYNVUREREQq0jTlzYVhCZZ/WM3ALInHxx3DUzTorJtZEyKxdY/DeyA7+K/wo62EXzGA6HvGYAmzN3roIiIiIo3ty8WrWDJnGXm5eSQlJzL9lqvpndKzyva7t+9h9jufknr0ODGx0Uy5bBITJo8Lrvf7/cz9aAFrV60jLzeP6JhoRo0bzqXTL8FqtdY6PvVUNxcWA4snkFRbTDcABd3yWPi3omo3bf/sFcT8eAJRd4wMLiv67DtKvtjXOLGKiIiINKF1X29g1luzufjKyfzsycfo0ac7Lz3zL7IyKp8ELyMtk5f/8ho9+nTnZ08+xkVXTOaDmR+xce2mYJtFny9lxeKVXHfrNfz6Tz/nuluv5svFq1j02ZI6xaikupkwDAuWshH0Akl1oOzDcFY+AcypLDEuIi4fQNQtw0l47TpsXQIjgxQt3t1Y4YqIiIg0mWXzvmDMeaMYP3Esickduf626cTERrNyyapK269aupqYuGiuv206ickdGT9xLGMmjGLJ3OXBNvt3H2DQsIEMHj6QdgnxDB4+iMHDB3Jg76E6xajyj+bCYmCYBhbDjt/0EGn4KDBtZEUWAO1qvBt793girh5E7j9W4d54DH+RG0u4o/HiFhERkRZr4Jtvh+S42267ucZtvV4vhw8cYfK0Cyss7zcohf27D1S6zf49B+k3KKXCsv6DU1izci0+rw+rzUrPvj1YuWQVx4+dILFTR1KPHmfXd3u46IrJtT0dQEl182EJ3DTwl9VTx5JJAR0ptVQ9+kdVwib3IfcfgU9unr2ZOAcnNVycIiIiIk2oML8Qv99PVExUheVRMZHs3JZf6TZ5ufmkDOxzWvso/D4/BQWFxMRGc9HlkygtKeXpn/8Zw2Lg9/m55MopnD9lfJ3iVFLdTFhjY/EeOUJESQyFrlxSXBEcKQavUX35x+kskQ6sCRH40gspXrxbSbWIiIhUqjY9xq3N+q838s3Kb7n9/ltI6tyRIwePMeut2bRLiGfshefWen+qqW4mYm4MvKltZc8luoxAj7WXqqcqPxvXBWVPw2roahEREWnBIqIisFgs5OdW7JXOzy0g+rTe63LRMVHk5xac1j4fi9VCZGQEAB//7zMmT7uQEWOH0alLJ0ZPGMnEqReyUA8qtmzW+EDdtFFW7eEwAsm0rw491QD2bnEAmL66bS8iIiLSHNhsNrp078yOrbsqLN+xbRc9+nSvdJsevbuxY9tp7bfuomuPLlhtgeHy3G43hsWo0MZiMTDNuvVIKqluJgx7oBKnLJfGagQuqLeuXc22skvrVVItIiIiLdvESy9gzYq1rF7+NcePnuDDmbPJzc4Njjv95svv8ObL7wTbj580jtysXGa9NZvjR0+wevnXrFmxtsLDjoOGDmTxZ0vZuvE7MtOz2PTtZpbN/4IhIwfXKUbVVDcXtsAkLYYvkEQ7LIH/69pTbZQl1aaSahEREWnhRpw7jMKCIhZ8soi8nDySOidx/+N3E98+HoDszIrjVbfv0I77Hr+Lj97+hJVLVhMdG8N1t17D0FHnBNtcf9s1zJk1j/f/O4uCvHyiY6MZe+G5XHr1xXWKUUl1M2HYyi6FP5BM28p7qo261VRjLRtNJL+03rGJiIiIhNr5U8ZXOTLHw7964Ixlffr35mdPPVbl/lxhLq695RquveWaBolP5R/NRLD8w1sxqc5Jq1tSbdjL6oXWH8WXVf2sjCIiIiJSd0qqm4uy8g/Kyz/Kppz32/wU5dS+hMMxsGPwa++hnPpGJyIiIiJnoaS6mSgv/yivqXaFBRJp0+anIKMOY1VHu3CO7QqAv9DdQFGKiIiISGWUVFdhy/ptvPvv9ykuKm6S4xn2sp5qf6DcI6IkMAyM32qy8fO61UVbIgLTk5tKqkVEREQalZLqKgwePpAbfzCDsPCwpjmg1QqGcXKyFnsMEOip3jynbkmxEV6WVBcpqRYRERFpTEqqmwnDMMBmIywjUExtMQOzwPhtfnzeOg5CXpZUq/xDREREpHEpqW5GDKsViy8ws4+VQFJtWk3cRXVLqo2y8g/v4ZwGiU9EREREKqekujmxWIIzKgZ7qu1+3MV1nFWxfFLFQ7kNEJyIiIiIVEVJdTNiWCwYZT3VFjwA+K1+3HUcZtrWOTaw33B7Q4QnIiIiIlVQUt2cGAaW03qqTZtZ555qS5Qz8IWmKhcRERFpVJqmvDk5pafaMMt6qm3+utdU2wKfmUwl1SIiItLCfbl4FUvmLCMvN4+k5ESm33I1vVN6Vtl+9/Y9zH7nU1KPHicmNpopl01iwuRxlbZd+OliPvtgLudNGc+M26+tU3zqqW5OLJZgT7VZsCPwv82P3ws+Tx0Sa1t5UXXdpjoXERERaQ7Wfb2BWW/N5uIrJ/OzJx+jR5/uvPTMv8jKyK60fUZaJi//5TV69OnOz558jIuumMwHMz9i49pNZ7Tdv+cAq5Z9TacuSfWKUUl1M2IYFqylRtk3gZsImUPSAerUW13eU+0v9jRMgCIiIiIhsGzeF4w5bxTjJ44lMbkj1982nZjYaFYuWVVp+1VLVxMTF831t00nMbkj4yeOZcyEUSyZu7xCu+KiYt586W1uvvsGwiPC6xWjyj+aE4uBvSiQCBvGyc87pmGSe8JPWEwtPwPZAmNe+47mNViIIiIi0np88sHwkBz3quvX17it1+vl8IEjTJ52YYXl/QalsH/3gUq32b/nIP0GpVRY1n9wCmtWrsXn9WEty5He/c8HDB01hL4D+jBv9sJancPp1FPdnBgWjPLyZ9NHmC3wmcfn8pKTWvu6aFtydPBr9VaLiIhIS1SYX4jf7ycqJqrC8qiYSPJy8yvdJi83n6iYyNPaR+H3+SkoKARg1bKvyDiRweXXTWuQONVT3ZxYLMFpyk3TR4zdTrHXi9flxVtah/IPqwVrQgS+9EL8uSVYwjS0noiIiJxUmx7j1uREahqffzCXH//mwWCvdX0pqW5GDIuBgYFhWDFNH5F2KxSDL8yLr44zjRuRTkgvxNRU5SIiItICRURFYLFYyD+tVzo/t4Do03qvy0XHRJGfW3Ba+3wsVguRkRFs37yDgvxCnv75n4Pr/X4/e3fuY9XSr/jLa3/Ebq9dmqykujkpq6M2sGLiI8YR+OTkCffidddxrOqyqcr9BaUNE6OIiIhIE7LZbHTp3pkdW3cxbMzQ4PId23YxdOTgSrfp0bsbm9ZtrbBsx9ZddO3RBavNypARg+nao0uF9W+/+j8SEttz8RVTsNWh91o11c2JJXA5LEbgQrZ3BRJiT5Sb127PwzTrUAISGdiHeqpFRESkpZp46QWsWbGW1cu/5vjRE3w4cza52bnBcafffPkd3nz5nWD78ZPGkZuVy6y3ZnP86AlWL/+aNSvWBh92DI8Io1OXpAr/HE4H4RHhdOqShGEYtY5RPdXNiGEJXEDTH3gosYvlGGDHHRPoZS4tNHFF1u4iW2JcAJSsO4JrXPcGi1VERESkqYw4dxiFBUUs+GQReTl5JHVO4v7H7ya+fTwA2ZkVx6tu36Ed9z1+Fx+9/Qkrl6wmOjaG6269hqGjzmm0GJVUNyOmu2yEDr8PLBBjKQbsWDsGpiwvzDRxRVa9fWUMe6DX2yzxNmCkIiIiIk3r/CnjOX/K+ErXPfyrB85Y1qd/b3721GM13n9l+6gNlX80I7F33wNA++xOAIS79wNghAd6rt3FtS//cAzoGPjCV7eabBERERGpnpLqZsTiCpRqmGZgWnFH6REAjvcIzKpYp4cVrWWX2Ff7ca5FREREpGaUVDcjhiPwUGF0VgwAdpsTgNx2BZiYeErqsE9rWZ22eqpFREREGo2S6makPKm2lSXPcc6Tk7WYFpMTu+tQF13eU+1XT7WIiIhIY1FS3YyUJ9V4AsmzaXpxWcseNLT78dZhqOmTPdVKqkVEREQai5LqZsSwlyXV7rKk2u/DUZZU+21+PHWYqvxkTbXKP0REREQaS5tKqouLinnmied47K6fc+xwaqjDOUOwp7o8qTZ92MsmhPFbTbz1SKpLvzncIDGKiIiIyJnaVFLtcDi477G7G3Xg7/ownGVTipcNYG6aPhxlSbFp85N1uPYlHLbEqIYLUEREREQq1aaSaqvNSlR0LWdPaUKWyEACbPgDddC5OTu5x/8Mg6078dv8bF1Q+6JqW+eY4NemXyUgIiIiIo2h2c6o+MWiFaxZsZbUw6kMP3c4t957Y3BdYUEh77z2Hju27CIiKoIrZ0xj5LgRIYy2YRh2O5GXXoZv0ee4zBhKjFyclNDfsoc9Nj/hsXX8DGQxwG8G/llqP5e9iIiIiJxds02qY2JjuOTKi9ixZSfu8um7y7z/xkdYbTaefvF3HDl4lJeffY3krskkdU4kLyeP11+cecb+7nzgVqJjo5sq/DqzxERj9RqM8d5J0flJrP3qpwy17WC3zY+nDjMqAmA9JakWERERaYG+XLyKJXOWkZebR1JyItNvuZreKT2rbL97+x5mv/MpqUePExMbzZTLJjFh8rjg+j079rJk7nIOHzhMbnYeN9/9Pc49f3Sd42u2SfXQUUMAOLz/MO6s3ODy0pJSNq3dzC//7yc4XU56pfRk8PCBfLPqW6664XKiY6PrPXd7KBllo33gM4mNGxBcvuP2rXT773l13GnZsHp+E/VTi4iISEuz7usNzHprNjNuv5ZefXuyYskqXnrmX/zqjz8jvn3cGe0z0jJ5+S+vce4Fo7ntvpvZu2sf778xi8joiOCzdaUlpSR1TmT0hJHMfOWdesfYbJPqqqQdT8ditdAhqUNwWXKXTuzZsbdG27/0zL84cugYacfTGD9xbKWfSFYt/YpVy78CYNrN10FSfMMEXxPWskvi8xEe0Sm42J2YR6HfU8VGZ2dYDEzQBDAiIiLSIi2b9wVjzhvF+IljAbj+tuls37yDlUtWceUNl5/RftXS1cTERXP9bdMBSEzuyMG9h1gyd3kwqR44dAADhwY6MN/617v1jrHFJdWlpW5cYa4Ky1zhLkpKavYQ3/0/uafaNuMnjWX8pMBFO5CaVfsg66G8p9r0+QCw2sLxeYuw4SOzQy6QVPudltdRq/xDRERETnFsyr9CctxOi6vPx8p5vV4OHzjC5GkXVljeb1AK+3cfqHSb/XsO0m9QSoVl/QensGblWnxeH1abtbYhV6vFjf7hdDooKS6psKykuBSXyxmiiBpYsPwjMFa11VI2dTk+Sj0+/HWZxEUTwIiIiEgLVZhfiN/vJyqm4jDBUTGR5OXmV7pNXm4+UTGRp7WPwu/zU1BQ2Chxtrie6g6JCfh9ftKOp9MhMQGAo4eOkdg5McSRNQzDFrgkRWvWEHfPfRiWwPdRRiF+m5/Nc90MvaJ2HyDKyz80pJ6IiIicqjY9xnJ2zban2ufz4XF78Pv9mKYfj9uDz+fD6XJyzsjBzJk1n9KSUvbt2s+W9VsZPX5kgx5/y/ptvPvv9ykuKm7Q/VbHsNsBsLVvD4C7NAeAQdZdmDY/O5a7a79TlX+IiIhICxURFYHFYiH/tF7p/NwComMqn+QuOiaK/NyC09rnY7FaiIyMaJQ4m21P9YJPFjFv9sLg92tXrePSay5m2vSpzLjjWt5+9T1++cATRESFc8Md15LUwD3Vg4cPZPDwgU1eU+3o3RuAkg3rAUjoOJq046uJM3JZP/I4fncPPKUmNgcYRg3H8ihLqt070ggb370xwhYRERFpFDabjS7dO7Nj6y6GjRkaXL5j2y6Gjhxc6TY9endj07qtFZbt2LqLrj26NEo9NTTjpHra9KlMmz610nURkRHc88j3mziipmFLPPnhwF9YQJduV5B2fDU2w4e11MqK10tY8Z8SzrncwX3vxtZon2ZRYNSQkuV7lVSLiIhIizPx0guY+fI7dOvVlZ59erBy6Wpys3OD406/+XJgSLzb7rsJgPGTxvHlolXMems24yeOY9/u/axZsZY7HrgluM/SklLST2QAYJom2ZnZHDl4lPCI8EqH6atOs02q2ypr3Mnh+9wHDmKLC4x0YseLNdLEagefB7YtqnkZSPT9Y8n965eYpd4Gj1dERESksY04dxiFBUUs+GQReTl5JHVO4v7H7ya+fSBvys7MrtC+fYd23Pf4XXz09iesXLKa6NgYrrv1muBwegCH9h/m+af/Gfx+7kcLmPvRAkZPGFVhJu+aUlLdDLmGDqNk4wbMkmIs1sBDif2s+zg42cY//pDAj+LT8ZaCu9jEEVZ9CYitY+DpV39x3ca5FhEREQm186eM5/wp4ytdV9nEf3369+ZnTz1W5f769O/NP2b+tcHia7YPKoZaqB5UBDDCwgAwi0twuQIjnBSaYbj9fgzDwF/W4Xx4Y82SZCMs8PBjeRmIiIiIiDQsJdVVGDx8IDf+YAZh4WFNfuzyEUBMn5fIqK4AhFHC16mpZJeU0HVY4AbDji9qmFSHB/bn2ZmOaWoEEBEREZGGpqS6ObKUXRa/H4vFjtUWgcUwcVLKloxMEnoEnlp1F9UsQba2Ozl0TOmaQw0eroiIiEhbp6S6GTLKkuryqcqdzsATqBFGMW6/nwGTA7Msrn2/hP/ek0dRjv+s+7NEOcEW2Kc3tfKZh0RERESk7pRUN0flU5X7A0m1wxkLQIKRidvno9PAQPlH9lE/a94tYevC6kcCifzeUADM/NIGD1dERESaPwNUBloPpmlytuEhlFQ3R8Ge6kAPdEREZwA6W07g9vvpPsLOL1fGMeCiQI91aUH1PyBGWCAR95foYUUREZG2yGa1UOrxhTqMFsvr82OxVJ06K6muQkhH/7CU91QHkuqY2L4A2PCy9vgJALqcY6djn0C7eX8uJG3v2cegNhyBpFpjVYuIiLRNsVFhpGcXUOL2qse6lvymSXZeEZHhjirbaJzqKoRqmnIArGWfdcpqqg1L4DJZDJMY58mLGRkfaJd91M9rd+TxyxXxVMVwBvZR9Ml3RN81BkvZMHsiIiLSNkSEBea+yMwpwOvzo7S65gzA5bQTG1n1qHBKqpuh4IOKZT3VhhHokbbiw+07+VDied8PozDbz9IXizm61cszU7Kx2sCwgsUKFptBeIzBNb+PJKJrbHA798ZjuMZ2a7oTEhERkWYhIswZTK6lYSmpbo5OGVIv8G1ZTzV+3L6TtVBRCRau+79INn5aStZhP/vWVF4v/e2HpaRc6ORCS3s6+DPI+M1CPnRdi9Vu4aIfh9PvgqpvZYiIiIhI9ZRUN0dlSXXpd9tg+rVYjJNJ9Yqjx3h58xbuGzIYAMMw+NXqeI7v9OH3mfj94PeC32ey4ZNSVr5eAsDO5R7CEzpzec8MLJhE7djFtyd6YrWjpFpERESknpRUN0P+ggIALFFRwMkHF0fZtvJp8RT+sXEzt/bvR0TZzIvhsRZ6jjnzmdP+kxxMuDOMopyyqinzHMxnt2GUeri0+2Y2pXfFXazaahEREZH60ugfVQjl6B/OAQMDX5SVf7jCOgTX9bQEZkQs9VU/JI5hGHQbZqf/REfg3yQnHf81Pbi+fVg+Xg1bLSIiIlJv6qmuQihH/zDKJn8xvYHh7xI6jCYsPJHiouMkOz3sLgaP/+yzKFbFlhyDY0gS7s2pdAzPJaMggawjoRmzMizaICxan+tERESk5VNS3RyVz6hYPqSeYaFT5yns3fUWkUYRQIUHFmvLsAf2P6HTLl7Y1J1f9c+sX7z10HmIjXZdq0+s7WEG034aQVI/vWVFRESk+VGG0gwFe6pPSZzDykpARpkrmMM5FYbWq62IawZSuu4IES43lw3YxpaCXuT7wusXdC1lHw3Ef2SzlyOba7ZNVHsLM/4c1YhRiYiIiNRNjZPq55/+J3c9fCfhERUHvS4uLuHV5/7DQ7/8YYMH12ad1lMNkNz1UrZu+it23IRTTGphIb1iY+q0e8c5ncBuxeHxMjxqN+fd7iTmh+MaIvIacxeb7PrSXaOa7u3L3Hz5WjGlhRqmXkRERJqnGifVe3bsxec9c4prr9vD3l37GjSots6wBS6L+8D+4DKXqx2RUd0pyD9AhFFEYSXXoqYsYXba/fkyij77juKle/AXuusdc205wgwGXVKzwedLCvx8+Rp43UqqRUREpHmqNqk+fOBI8Oujh1OJyM4Nfu/3+9m+eSexcXXrMZUqGAYA/ry8CoudzriypLq4XjXVAM7BifjSCiheugfcoXlQsaZszsDroZFKREREpLmqNql+5rfPBb/+559fOWO93W7nutuuadio2jhHr15AIKk2fb5gjbXdEQ2Ai9J6J9UAhqOsdtvTzJNqR3lSrZ5qERERaZ6qTar/319/hWnC7x77A4//vx8TGR0RXGe12YiKjsRiaX3Dom1Zv42tG7Yx9MLxTX5sS/TJnv+i1auIOO98AKzWQLmE3fCw8OAhru3Tu17HCSbVzb6nOvC/t+mrVERERERqpNqkOr59PADPv/lsowfTnIRynGqLy4W9Rw88+/fjPXw4uNxqdQFgx8vh/IJ6H6flJNWBnmpPiXqqRUREpHmq8YOK69dsJCw8jP6DUwCYN3sBq5d9TWLnRG6550ZiYqMbLci2KHzC+eTu34/pPtk9W55UO/BwMD8fn9+PtR53CVpK+YfdEfhf5R8iIiLSXNU4I5v30YLg14cPHGHhZ0u44OLz8Hl9zH7nk0YJri0zHHYATM8pSbWtrKfaCIz8Me/AwfodpGwSGM+2E/jzm+9TgDZXWU21yj9ERESkmapxUp2VkU3HpAQANn27hSHDBzHl8klMv/kqdm3b3WgBtlWGI9A9mzfrw2BvdXlPdbgl0LOcWlhUv2O47MGvj1/zBqWbU+u1v8ZycvQP9VSLiIhI81TjpNrmsFFSHOjN3LVtNymD+gLgCnNRUtJ8ezlbKktUWTmN30/xN98AJ5Pqoe0C6zz+us+qCGDrEkP45f2D3xct2Fmv/TWWYPmHeqpFRESkmapxUt2rb09mv/sp8z9eyKH9hxl4TiAZSz+eTlx8bGPF12aFl434AeDLC4wNXl7+YcUDgMdfv1powzCI/fF5xDxYNsJJM31gUT3VIiIi0tzVOKm+/vbp2KxWNnyziRvuvI6Ysglfvtu8PfjwojQci9NJ1FVXA2CWBu4EBEf/8OYANMgIIACW2MDU86a3fj3fjaU8qXYXK6kWERGR5qnGo3/Excdy72N3nbH82ls08UtjKa+rzn7pRaKuuhqrNZD8OgrW0c/SmXkH4C/nT6j/ceyBz1amt3n2VNvLxqkuzDLxeUysdiO0AYmIiIicpsZJdbmd23Zz/NhxDAwSkzvSd0CfxohLAEdKv+DXvrQ02ncYGfx+qn0F+70NdIfAFhgFxHc0j4LZW2u8mXNoJ+w94hsmhrNwRZ9MorOO+EnoYW30Y4qIiIjURo2T6pysHF79++sc3n8kWPqRm51L1x5duPvHdwaXtRahnFGxXMT5F5AZEYFZWIjp8+FyJTLu/JdY/eX9WPDjNxumHMISERgFxHsoh7wXV9d4O2unaDq++b0GieFsDMOg2wgbB9d5yU9TUi0iIiLNT42T6g9nzsZisfDbv/yS9h3aAZCRlsmbL73NhzNn84OH7misGEMilDMqnsoaF4+3sBB8gdKMyOieALS35GAzG2bUFXv/jkTfPQZfes1qtE2Pj6I5O/DnFDfI8WsiOiFQopJ3onnWfYuIiEjbVuOkeufWXTz0qweCCTVA+w7tuO7Wa/jHH19qlOAEDGtZvXNZUu1wnJy5srtxoGGOYTGIvOGcGrf3F3somrMDfE2X4EZ1CLwOO75wM/RKZ5MdV0RERKQm6j7HdTk9M9a4rGWlDmXD51mtTmLjBgLgMLyYDVQCUhtG2UyMTTpaSNlpluSblBT4g/9Ccf4iIiIip6txUt13YB8+nDmb7Mzs4LKsjGxmvfUxfQfqYcXGYljKEthTeoWjykpAbHjxhSKptJZ9kvKZTZbUDrwkMBLKmndLeCQpI/jv33fkNcnxRURERM6mxuUf1916Df967j/8v8f+QExs2YOKObl06pzEdbdqWL1GU95T7fOdsiiQYLpwU+rOx7RasdkiMIymuW1gGEYgsfaZuLceD5ao1JclxoUtufIHXnuPddChl5Xc44EPF6Zp4i6CnV9qmkUREREJvZqPU90ujp8++Sg7t+7iRGoaAB07daRf2XTl0jiMsqTam56Gs39gFkuLJZBUX+ZYzuLPlgMQ324o5036T9PF5bBhFnvIfOSzBt1v++evwjGg4xnLoztY+N3Gk/X8hVl+Hu+Wgc/boIcXERERqZNqk+ptm7bz/n8/5OdP/4SwMBf9BqfQr2wGxeKiYp545Elu/P6M4DJpWL7cHADcu3YScf4FAHRMmsDm3Z9iw0OE3Y7PW0hW5kb8fg8Wi71J4oq8ZRglKw802P58x/Lw55bgPZpbaVJ9OmvZafo9DRaCiIiISJ1Vm1R/uWglk6dNJCzMdca6sPAwplw2iWULvlRS3UjCRp9L/uxZYJwsseiQOJa/eX9EkdfLmqtnsHzORHzeInw+d5Ml1VE3DCXqhqENtr+cv3xB0fydNX74sXxWRZ9HDyqKiIhI6FVbDHvscCopZynx6DuwD8cOHWvQoOQkW0J7AExvxS5ZS1n9tB8TqzUwxFxO9ramDa4hlY0ogrtmU6WX91R73WgEEBEREQm5anuqC/ILzvoAnAEUFhQ2ZExyKlt59lixeLg8qX5h42b6++1YgNVf3Mfo8c+R1OmCJg6y/gx74POde1c6lpX7z942zI7znE4YFjD9sHWBm8FTNXa1iIiIhE61SXVsXAzHDh+jQ2JCpeuPHk5tdVOUNyeGLXCJPIcOVVge43CQ53bz9o6dDLKM5ibn5wAcPTS/ZSbVrsB5Fi/YRfGCXdW2d43tRo+oTgBs+FMGfdpFVVhv79UOa3x4wwcqIiIiUolqk+qBQwcw58P5DDinPw6Ho8I6d6mbubPmM3DogEYLMFS2rN/G1g3bGHrh+NAGUjb6R8mmjRUW//WC81idmsoHu/awtSCF2JT+5Ox8Bq+3Zd41CJ/aD9+JAsySsw/nUbLqQOD/rw5yc7+DweVZv6jYzpIQQeK7Nzd0mCIiIiKVqjapvuTKKWxcu4knf/JHzr9oPB2TAiMzHD92ghWLVmJicvGVUxo90KY2ePhABg8fyIHUrJDG4Ro4CABrXFyF5QPaxTOgXTyrjqVypKAAwx4PwInUleTl7iY6pmVNyGPrFE3cLyZV286XU0zei6vx55VSUmCyb40HZyT0GnPyA1/puiP40wsx/SaGRVN+ioiISOOrNqmOioni0d8+xHuvf8hn78+tsK7/4BSuv/1aomOiqtha6suIiADA9Fc+KoalbJ54a3i34LL0E2taXFJdU9bYMOJ+NRmA1B1e3nkzi8QUK0/86eQY1scueRV8JvhNUFItIiIiTaBGk7/Et4/n/p/cQ1FhEeknMjBNkw6JCYRHqGa1sZVP/kJVSXXZA4umLZo+/b7P7h3/Yeumv9Kj9w1NNrxeqFjKX5rTK0aslsAMlD4/2BpmtkcRERGRs6nxjIoA4RHhdOvZtbFikcpYypJCX+VDzZV3xJqYtGs/lN1ly/Pz9hMT27pnu7TYysaq9lUcUs+wWjDxYfr8qJ9aREREmoK68Zo5wxq4RFWVf1jLeqp9pknHpAmER3QGwH9G923rYy37SHhmT3VZKu3T+NUiIiLSNJRUN3flNQ6+ypPq8jHE/WX5o9MVeGDRbAPzd1uqSKqDH0SqeM1EREREGlqtyj+k6ZXXVJv+yss/rMGkOpBVl9dR+9tEUl3WS+89rUe6rCbGvSkVS3QTTQpjs+BI6YDhsDbN8URERKRZUVLd3FVTU21UkVQf2DcLmz2c2LjWN4Z4ueAznKe9NEbZlOfZTy5u4ogg/PL+FWMJtxN5/RCscXqoV0REpDVTUt3clSfVfj+mx4NhrziiR3lPtVmWVDscgdktjx5eQGHhUS6Y/GbTxdrEqir/iLptBEWLd5+5QSPxHszGn10MQNHn289Yb4l0EnXTsCaLR0RERJqekupmzrCcLHsv2byJsBEjK6y3nPKgIsCAIQ8RHtGJ3Ttex+PObbpAQ8BaRflH+NQUwqemNGksJWsO4TtRUGFZ6fojlKw8gD+/tEljERERkaanpLoFcA4YQOl335H5lz9jhEdgcTqJe+BBXAMHBoeM+/ZEGgDnJyfTvdd17N7xOj6fO3RBN4GqeqpDwTWm8qEmS1YeoPDjbRQv2Fmn/RrhDuJ+PRlHvw71CU9EREQamUb/aAHCxk0AwJeZiffwIdx7dlP0xbLAOlsgs3xv125+smIVz2/chNXqAsBdmsU3qx8jI31daAJvZM0pqa6MPSUBHFbw+PDnldbpn+94PqXfHgn1qYiIiEg11FPdAkRfP4Pw884Dj4fCL74gd+YbmO5AL/RtAwIPxh3Iy2NdWjqZxcXY7ZHY7JF4PQWkHl2G11tM+4QRoTyFRmGxlNeTg99vBr9vLhwpCSR+dDtmad2y/oL/baTwg80nx0sUERGRZktJdQtgGAb2pE4A2DoGygBMT2DIvN6xMfx+3LksOHiIdWnp+EwTi8XOhVPeJvXocrZtfo683D1s2/Qcnbtd1upmWbTYAj3Vfi9YHKGO5kwWlw1cdfsxs0QETsj0arxtERGR5k7lHy2MYQ8kWoWLFuLLyQkut572wGJEZBeSu1wMQGlJBnt2zWTb5r81aaxNoey0ObKlmdaA1Ed5z7smsREREWn2lFS3MEb4yfGOs1/+Z/Dr05NqgLDwjpw74Xl69b0FAHdpTtME2YR8ZXPc5Ka2vsTTsJVPUa/yDxERkeZOSXUVtqzfxrv/fp/iouJQh1JB2LDhOIecA0DRqpUcu+9uijesP2NmxXIdkybQred0AHJzdpCft69pA25kQ68MzJh4xqyKrYG1fOKf1veBQUREpLVRUl2FwcMHcuMPZhAWHhbqUCowHA4SfvsERng4Zmkpnn37KFy8CGvZeNY+/5kJWHh4p+DXmRkbmyrUJmEtmwvH1wqrPwxr2YOYSqpFRESaPT2o2AJZo2Po/Pa7FCxeTPaL/6Bw0UKM62YAFcs/gu2tDrr3vJYD+2ZhNtfx5+rIWj6snqf19lQXL9hFyaqDjXYYS4yLdk9dgjUhstGOISIi0topqW6hLBGRhA0fQXbZ9+5v1gBnln+UMyz2svWtLakuqyX3hDiQRmDv1Q5sFswSL2ZJ4103f0YhpRuOEX5x6xoZRkREpCkpqW7B7F264OibgnvXTozSUsDGtswsbp63AAgk2DP69gEgoigwVXZr66kunwCmpLD19VQ7BnQk8cPbMIsbb2bMvP9+S/GCXeT9+xsKPth81rbWjpHE/2YKhlO/NkRERE6nv44tXNjYcbh37aSjz4vVZqfI62VjekZw/eaMTAAusR3hAjtsOJHKemM3U7p2Id7lClXYDcZqD/RUf/DTAqISLIy6ruWf06kskQ6IbLwBuB0DEylesAt/ZhH+zKKztvXuz8K9Mx3nkKRGi0dERKSlUlLdwhlWKwAd/X4WTL+K44WBxOjbE2kcyMvDBD7Zuw8fgXbfHN3D3APfsDUjk9+POzdUYTeYgRc5+PK1wAgte7/ytLqkurFFTOuH85ykamd9zPnbSjzfncB0+5ooMhERkZZFSXVLV5ZU4/ORFBFBUkQEAMM6JASb3Dt4EIu/3gG5MMKxl7meC8kpLQ1FtA1uyDQnN/09incezsfnbn0lIE3BlhxTbRtLTGDoQtytq3xIRESkoSipbuGMsqH0zjbsWrfoKC4dcCFrv5pDRFh7KARvFQ80tkTBYfVa4cOKzYVhD/yqyHtjHYWffndyudNG1B0jsfeID1VoIiIizYKS6pauvKfaf/bb8pFRXcvaBR56q2w865bK5gjUVXtb47B6zYQtKQoA795MTu+rtiZEEPOj8U0flIiISDOipLqFK6+pNn1nT6ot1sDte9OTzUTbV3QpjmTnd3tP7sew0KnLRURGdm28YBuJtew5vrQ9Pla/WYzNaTB4qoOwGM1t1FCi7hiJc2RnTM/JD2OlG45S+MFmCj/eRvT9YzGser1FRKTtUlLd0pWVf3gOH6Jg8aIqm7n9hYCB6c3nIvtqKIEd2yq2ycrcxLkTnm/EYBuHMyLQU31wvZeZ6/ODy/96tD1h0Ur0GoJht+IclnzG8sKyYfhK1x3BNbrlfSATERFpKEqqWzjDGeiBLt20idJNm87atnv3cA52dbGkZx+SIsK5qlfPwLYlmRzcP5uM9PWNHm9jSLnAwdTHw8k97ufQBg9HtwV67TfPdTPmexoNpLE4R5xMsnOe/RJLRMWh/yzx4cQ/cRGWKGdThyYiItLklFS3cOFjx+K+Zjr+3Nxq24YVFnLsu30s7jqegbZ4ftDrQgBKCo9ycP9sfN4iMgszaRfRrpGjblh2p8FVT5ycYvt3IzM5vtNHcW7rqRtvjgyrhZgfn0fu31ZUPs71oRzyXl1D7KPnhyZAERGRJqSkuoWzREQSf/8DNWrrPXEC648fAmBbZhYXfvBR2RqTp8MCX02f/R6/nHAZl3Tv1gjRNo3BU50c31nEspeK2bPaw4xnoojuoDKQxhBxef9ArfVp41zn/vVL3NtO4MsswvSe/HBj2HQdRESkdVJS3YZY27enT3w8/dNOcDwqqsK6LFc88UYWmD62ZGS26KQ6oWfg4c20vT7S9vpIucDBed8PC3FUrZctMeqMZVE/GE3mo59RuuYQqVNfCy4Pv7w/sT8+rynDExERaRJKqtsQw2ql+wv/5INThtNL+82vKPl2LbvuNCmygQU/JdWMJNLcjb/DRfIgG4v+VsTGz0pxF2uovaZm79UOa+cYfKl5gQW+wDUo+nw7vrSCYDvH4MqnPHcM6oizinUiIiLNkZLqNsYwjJNjWwPWmMBsev7cfGgXSKo/2LWbX48ZFaoQ681iMeg52h7ssfaWKqluapYIBx3/e0Pwe9Pn58SMt/DnllD6zeHg8lO/PpURbifxkzsC71cREZEWQEl1Gxd9w40YYWFYoz4DsrFg4jVNjuQX0DkqstrtmzNb2aATm+e6uejhcCxWJWihYlgtJLw0Hc/+LAA8B7Iw80orbVvw/ibMIg/4TdA1ExGRFkJJdRvn6N6ddg/9GPuS9ZCVjYVAacie3BxslsofKrNZDNqHNf8aZVdkICHbt8bDhk9LGXGNhtcLJWuHSKwdAh/UXGOqHtO64KOt4PGBzw+aUEZERFoIJdUCBGZUBBhTuANHpIdnl888a/veMTFc1rN7hWXxLhddKunddjhiiYnt22Cx1tTo77mY/dtCAHKOaXi9lsKwGpgeMH0m6qcWEZGWQkm1AGC1BCbuGNFuPSOowSQwJVD4XcVFhUDlFbLgdLUnNq4/Tmc8EZFd4JRaWavFQedu03A64+oWfBVik6xMeSicxc8X4XOrrrrFKO+d9umDkIiItBxKqgWAXim34t65C39JEY6+KViqKO8wgQN5+bhPGyEkp/RkfWy0w0H/+ECCnJH+LQClJRmcSF1R5fH37/2AKZd+XL+TqIStbJI/n/fs7aT5MKwGJoGeahERkZZCSbUAkJh0Hubm/rh37yJx6q9wpvSrsu2ESpZ9dSyV5zZsZFtmFu0sLr688FoA/H4PGenr8ftK8HgKKMg/hN/vCW6Xk7WVjPRvKS5KpbDwKFaLA1dYQoOdl9UR6BH3qqe65SifIMarnmoREWk52lRSfWDvQWa99TFWq5WYuBhuu/cmrDZr9Ru2FeUPJvprn4CO7ZTE4PbtGfO/9yn2nuwWtljsdOg45qzbfvLBcPx+D4vnXgHAoKGP06vPTbWOoTI2e+D/+X8pYsk/ipn4wzCu+m3LHtWk1Ssr/8j6zQIMey0fVDQMwqemED41pRECExERqVqbSqrj2sXx4C/ux+Fw8Ol7n7N5/VaGjT4n1GE1G0ZZMmP669ZD6Cz7gFLk9XLRrI+rbW8xDG7r34+hKXdw9PACfN5i3O4ccrK+q3bbmuo5xo49DDzFUOo1mf9MEZf/IgKrXY/ANVe2pGjc6YV4dqXXaXv31uN49mcRdfsILOGOBo5ORESkcm0qqY6JjQ5+bbXZNLHE6Yzynuq6zahot1joFxfHjuxsjhUW1mibp9d+y/nJg8E1mI7uzQxzv8HOzBOMqFMEZ+p7noO/HkkgP93PL/tlAvDKzbn88P3YBjqCNLT4P0zFsyez9ht6fGT+dA4AhbO24OiXQNjE3g0cnYiISOWabVL9xaIVrFmxltTDqQw/dzi33ntjcF1hQSHvvPYeO7bsIiIqgitnTGPkuJqnYVkZWezYupOpV13UGKG3XGXlH77MTLwnTtRpF2+NHEZaaeWTepyqyOvjutVfA/Dl0WMA9LXkM8wJEYXrWLbwbmLDO9Kx3Rg6Jp+PNTqmTvEA2BwGcclWBlzk4LtFblJ36KnF5swSZsc5OLFO2yb86zpyX1iFe3Mq/iJP9RuIiIg0kGabVMfExnDJlRexY8tO3O6Kfxzff+MjrDYbT7/4O44cPMrLz75GctdkkjonkpeTx+svnjnG8p0P3Ep0bDTFxSW8+fI73HLPjaqnPo1RNn15xtNPNfqxwoF/R0ZxOOaUZNnlgUmBL/Ny15GXC8f2zmPQu/F0ePqPhA2vX//1rS9G8Yu+mbiL6rUbacbsPeOx9YjDvTk1MIGMiIhIE2m2SfXQUUMAOLz/MO6s3ODy0pJSNq3dzC//7yc4XU56pfRk8PCBfLPqW6664XKiY6N5+FcPVLpPn8/Hf194k0uvuZiOSR2a5DxakogpF+E9fhyzjuUftdUZ6Oxxn1zggYfTbyUq5jg37d9FccpBvOEmB8/LJ27fvnon1XZnoNwn74RGlWjNDHvgw6H3RAGeA1lnbWvrHIth06yNIiJSf802qa5K2vF0LFYLHU5JipO7dGLPjr3Vbrvuqw0c2HeI+R8vYv7Hi5gweRwjzh12RrtVS79i1fKvAJh283WQFN9wJ9CMRV58CZEXXxLSGOxz57M2owPx513OyNwXiCjdTUYvH8+WuHGsWVvldh3Cw7lr0ICz1sk7I0+uK8zyExGvZKo1MhyBX2uFH2ym8IPNZ23rGJ5M+z9f1hRhiYhIK9fikurSUjeuMFeFZa5wFyUl1dfxjp4wktETRlbbbvyksYyfNBaAA6ln7+mShtXOFbi2Cw4eYiGX84ew5zAsPmb5Tcydu8667d82bOTS7t0qTG0dZrNxz+BBdI6KxOY4uaYo1ySibXxWanPCzutB6fojmMVnqZ33+/EezsWzOwPPwex6Hc/aLhxLpLNe+xARkZavxSXVTqeDkuKSCstKiktxufRHrTX49ZhRTOjUCb8ZGCvb3GLDYnh52CwhfPR5lW7z2f79bMkIjBYx78DBM9bP2rOXCzsn88cJ40jqZyV1h4/jO7zBqcsd4QbxXVRf31rY+7Qn4YVrztrG9PhIvfTfmPmlpP/gg3odz4hw0OGNG7DGVj4LqYiItA0tLqnukJiA3+cn7Xg6HRIDM+8dPXSMxM51Gy1AmpekiAhu7Nc3+P3cLXY8eLnSV0TH/pVP6HFz/xQO5eezOT2jwvIN6en8b+duAJYfOcq3J9JwhIcD8M8ZuRXaXvVEBFMfj2jIU5FmzLBbiZg+iNJvj9RrP95DOZiFbrz7s7AOS26g6EREpCVqtkm1z+fD7/Pj9/sxTT8etweL1YLT5eSckYOZM2s+N/1gBkcPHWPL+q08+tuHGvT4W9ZvY+uGbQy9cHyD7ldqx4oDD8V8l/0Oafd9QswxV5Vth1Ty/cUREfxtxLls7tCR4394khsijuA79+SMkWb5M4vzYPe8UzY2Ag82WqrpwLa2b4/F1Xx7KI2IcNo9/Aj2zl1CHUqzE/PDcfXeR+bP5lK67gimplQXEWnzmm1SveCTRcybvTD4/dpV67j0mouZNn0qM+64lrdffY9fPvAEEVHh3HDHtSQ1cE/14OEDGTx8oGqqQyw8ohMlRbnkdXXjjvQSva922yeWlBBVHBhDz+/1YvGWYDm16PpsSbMHzGqGOvYeqV9PZ1MoWrWSmBturL6h1F75yCE+8+ztRESk1Wu2SfW06VOZNn1qpesiIiO455HvN3FEEgqjJj/P8cNL2bTx/yiJ9xP71gs1mgkzLCwRqzVQZx/x1Ro4cpS4n/6cLl06V9reNM3gRJILnytkwbPFXPJYGJf+JLLKY5glJXjT6zaVdlMomPs5BXPnYJa6q28sdWJYA+9F06eeahGRtq7ZJtUiAC5XO7r2uoZNG/8PgOVf3Fyj7aKiezHpksADaFZb4G3ut9mwhFVdqlHeaW0JM/H4Tbxm2FnbExaGNS6uRvGEQsn6JABMj5LqRlPeU63yDxGRNk9JtTR7FouNgUMe4eD+2Zhm9bfZCwsOkp+3F9P0YxgWrGU92/4abAtgLfup8LXwWa4NpwOAgjmfU7RyRRVtnMT/8Ee4hpzTlKG1GoY1kFSrp1pERJRUV0EPKjYvvVNupXfKrTVq++mHozFNL36/F6vVgaUsqfbVMKm22MqScG/LrpO1d+8JhoG/oAB/QUGV7QqXL1dSXVdlSXXBe5soXrqn9tsbYOsUg2NIUq02s/eIx9YpuvbHExGRRqOkugp6ULHlslhs+HxeTNMLnEyqa5hTYynvqW6a2dobTdiwYXT+3/v4CwsrXV+0YgU5r/9b5SH1YO0QGIbRuzcT797MOu2jFCictaVW2xgRDhI/vDU4JbuIiISekmppdQyLDXzg9wdm1LPWsqe6vPwjY38Lz6oBa1w81rjKp460dewIgOlWUl1XUbeMwDGkE3hq/14x/SbFC3bWeruStYcxC934C9xY45rvcI4iIm2NkmppdSxG4G1tliXVlmBNdc3qXu3OQPutC1p3smk4AjXXJRs3cOKXP6+2beytt+Ho1bspQmsxDIcV18jKR5SpibDx3Wu9zYmb38F3ooDSNYdwje+OJUqzyYqINAdKqqXVMcrqN/Lz9+N0xQeT6nyPB7fPh8N69lvmgy91AvmNHWbIWct6qv3Z2ZR8u7b69jGxtHvk0cYOS6phhAc+DOX85Qucy/bQ7k+XhTgiEREBJdXSCpWWBKYrLyw4QvuEEcGk+rn1G3lu/UZ+MmI47cKqnpkR4MSoPAA+2VOA5ZTZYlLiYunbjIfRqw1nn74kvfQKvsyz1wKXbN1C3v/exXPoIEWrVwUWGgauwUOwRFY9jrc0jqjbR1D4yTbcG47hPV71A6giItK0lFRXQaN/tFxdu1/FoQOfBOcgn9ilM8sOH+F4UWBmxWfWra9+J3cE/vvl6oqLw2w2Vt1wHc5qertbCkev3lBdSYfFSt7/3qV021bSt20NLg47dywdfv9UI0copwub0AN7nwTSbn4H0+0NdTgiIlJGSXUVNPpHy2UpK//wm4GHx8Z3SmLJddewPTOLt3bsxOuvvrZ67QclmH4YeZ0LS1n+PP/gIYq9Xoq93laTVNeEa8gQIi+/El9m4A6Av6iQ0k2b8KadCHFkbZfhDLz//DklZP95+SkrIOy8nrjO7RqawERE2jAl1dLqGEYg4QgMqXdS/3bx/GH82Brt46Fr0/AUw1N/SsAZESj/WHkslZzS0hpPItNaGA4H7R56OPi95/Bhjv3gDszS0hBG1bZZwh0YYXbMYg/FC3dVWFe8YBeJH9+BJdIRouhERNomJdXS6hhlXcumv+5D4lmsBmDi95lAIKmu7dB8rVX5TI3eEydIfeD+soVG2csUeI0s4eHE3Xc/jh49QxNkK2c4rLT/25V49mQEl5k+k9y/fgmAL70AS2TlQymKiEjjUFItrY5RPqSeWZ+kOvD/qXn5yUlk2nZSbY2NwxIdjT8vD/fuXVW2K1y2VEl1I7L3aoe9V7sKy4o++w7P7gzMOoybLSIi9aOkWlqd8vIPf32S6sDs05y6C/VUBxgOB53+8wbe48cBMzBVZflLYpoULl1C/iezMT2eUIbZNjnK7tK4lVSLiDQ1JdXS6hhGICNOP7EmOAFMbXW9uBB3kcm+/RE40wLJ9Gi+I9/m4cjuHPIcVder2u1RtEsYXqfjtigdIFDuYVRYXJJkoTjei0Ea1pyqe7JbCsMwiIruGfyw1pyVT1ue/cRCqMEU5ta4MOL/MBVrfHhjhyYi0uoZZlu/l12FU4fU698rOdThSC3s3vkG323+e6jDkFakc7fLGDH6yVCHUa28176h4H8ba7VN3K8mEzaxV+MEJCJN7kBqFt2T9ExFKCiprobenC2P253HwX0f4fUW1Xkfy18poii34o/GsfMO443w0unLztiK7JVu167fJqzOEjBa349VfLKV8Dij2nb+/Dy86RlYoqKwJSQ0QWSNx+dzU1hwEKerPb363tzkxzcw6JA0gejomtem+7KKwFf9sJF5/1pD8bK92Pu2x5oYVYugDCKuGIBzaKeabyMiTUZ5S+io/ENaHYcjmj797qjXPgouKGHt+yUVln3tWU6Ot5CbSi8gqqTymQSLNtbrsM3SiV0+0vb6uOLXEUy8IaLa9gUL55P5yjM4+qYQMWlypW1cI0bg6Na9gSNteKUlWcz/bAqlJRkhu/tx5PACLpzydo3b17SUw9YjHpbtxbMrA8+ujOo3OIU/u1hJtYjIaZRUi1Ri1HUuRl1XcSrzeZ9YycmFG56LpHdsbGgCC4G5fyrks6cK8bpr1vtuCQ984HDv2ol7185K29h79KDTK681WIyNxemKZ8SYP5CbvaPJj+31FnFg3yzcJdmNsv/I64Zg79kOs7Tmzx34jueT9+oa/AUao1xE5HRKqkVqqHz0j2+On+BoQWGIo2k6O8NLyBxYwnc2JzFHwqptb3buQtHt38dfWHDmylI3xeu/xeIIo1d6Oue0b49hVF9SEkqdu15K566XNvlxS0uzObBvFl5vER5PJa9lfRlgHVHLW8RHwuBV8O7LIvvVVRgGOM/rhq1nXMPHdxbN5z3TXOJoHprDdTEMKxZL5eV5Io1NNdXVUG2SlJsxZx7bMjVtfUN6YeIFTOzSOdRhNEtebzFzZo8PdRgVWDw2RvznrgrL8jseZ8fVH4cmIJFKOJxxxMYNCHUYlYqM6sbgoY836jGUt4SOeqpFaui+IYP5cPeeNjf5S+YhH6nbfVgd4AgL9EQ5Iw2SB9qobceU6fVSsn4dB+PiSQuPILWw7fT415bV6iKx00Qy0r4JdSgAmJhgg11XLyAytQPWEicdNw3AXhqG1daEQ/I1m5+/5hJH89Acfi/6/YGyJHdpNmnHV4U4msp53LmhDkEakZJqkRqa1KUzk9pgr+r2pW6efyjnjOVPfBtPYkrtfoX4Cws5/Owf+deY8XzcJwWPv/pRKtoqwzAYM/7ZUIdRJe+JfNJufpdwSyJTR37esDt32LDGuapvV85qwbBaGjYGaZGys77DXdp87yja7bUYaUdaHCXVVTh1nGqRtqz/JAe/2xBPYXagJ+q/9+SRtseHu7gOPVPWwIQkNl/g4Tgl1S2X4Qz8+fBnFZN25/shjcUS7aT9S9OxdVTC0tbFxTfPsg9pG5RUV2Hw8IEMHj6QA6nN9xOvSFPp0Pvkr4rIeIM0oCjXxF1sYnfV/AElozyp9gaSancNxlOW5skS4yLskr64t51o2B2b4M8prvlU614f/rxSPHsylVSLSEgpqRaRWrGX1VX//fIcANp1s3DXGzE129jvx+BkT/XMtd/yyarV9Q/KaoOYlj3RTFOxOQwsDTXjel+gb+3qqe0WK4+NGMb4TkkNEkLWU4spWb6vVkMDiog0BiXVIlIr51zu5MA6Lz63idcNmQf9/OnCmo+lfOeQbnTPDrTPczjIczgaJjB3fsPsp7VzhzoAuGfxUiY0UFJ9VUY6Q4E3Nm5lo/9Qg+xTpLH0iInh56NGhDoMaSRKqkWkVibeF87E+wK9kwueLWTDp7WbCGQZfyR8bya3pLrx2Gt4i/8sRtlfJdI4wQrP4+Sbbe9B0to49l3F3twuQ+3c+Vp0kx1/T24uj36xAoCVx1IbZJ/D3aUMBQ5m5LDymEaTkeYtz90MPtVKo1FSLSJ1dsljEVzyWPVTl5+pQ4PFkPpDE/eeXB57oT3Ovl0bbL+t0aGNHrYucJN7ws+XrxbjOmKlV2wNS3caQK/YGD66YhppRUUNts/2x7bCroPc1Kc3l03u0WD7FWkMkfYGujMnzZKSahFp2SxlQ6mZeuixOl2H2uk61M6x7V6+fLUYXwjKkFPi4kiJa7gZGHOjD1II9IyKJjI5ucH2KyJSWxrYU0RatvKkWsPz1Vj5g4r++lffhJ6lbOQZf+gnHxGRtk1JtYi0aEZZUmUqqaqx8qS6VXTu6/qLSDOhpLoKW9Zv491/v09xUXGoQxGRszHKe6pbQ7dr07BYA4moz9vyE1EjeKei5Z+LiLRsqqmugiZ/EWkhgjXVSqpqKthT3Ro+h5SXf2giIREJMfVUi0jLVn77X0lVjVnKulNaRee+VeUfItI8KKkWkRbNaFUFwk2jVZV/WMv+jPla/rmISMum8g8RadmM8tEflFTXVHnFTGmByaxftuyZKJOPuekK7FxWwqE9oTkXm9Pg3JtcDTf9u7RKsclW7E4j1GFII1JSLSItm4bUqzVHuIHNAZ4SWPyPlv0w9rgkL127gntHOvlfb6nVtiawMyuJXHddJjCqaP5fGm5CG2mdOvS28sS6eCwWJdatlZJqEWnRykd/yPt4NkVfrQ5xNHXjOmcoERdObLLjOcINfjQ7lkMbQjD7SwOLOxABW6BHTAY9YjJqvf24UVkcGjOpzsfftcLN8V0t/3WUxpV5wE/aHh+lBSZh0UqqWyvDNPXI/NkcSM2ie1J8qMMQkSpkPPMnChctDHUY9WO30/XTORhW1Q/Ulr+glMKPtuIvdNduu7wSihftxoh04BrVpUFicU3oQdgFPRtkX9K6/LxvBrmpfgZPdfDDD2Ib9VjKW0JHPdUi0qLF3X0vzkGDwdcyh7LIfvUVzOJijj/84MlSlhYs8uJLiLr8iiY7niXSSdRtI2q9nT+vhOLlezEL3BQv29sgsZRuOa6kWirVsY+V3FQ/OcdVptaaKakWkRbNGhtL1KXTQh1GnRUuW0rpls24d+0MdSgNIi83p0mT6rqyRLtI+MfVeA7l1HtfZrGH3OdWYJaqDEQqd/97MRze6MUZqdKP1kxJtYhICHX4w//h2b8v1GHUmy8nh/QnfoPp8YQ6lBqz926PvXf7eu/HX1BK7nMrNKujVMkVaaHPBEeow5BGpqRaRCSELC4Xzv4DQh1GvfmyArPPmt422FtbPpqDkmqRNq3lF/A1ki3rt/Huv9+nuKhlDzclItIkbGUPWbbQ2vb6KJ+ARrN6irRt6qmuwuDhAxk8fCAHUrNCHYqISLNnWAN/TtRTLSJtlZJqERGpv7LhAE2vF29GeoiDaRzWmFgMu72SFeVTpaunWqQtU1ItIiL1ZtjK/px4PBy96XuhDaaR2JKT6fTa62eMJ26U91SbYJomhqERHkTaIiXVIiJSb4bNRsQlUyn5dm2oQ2kUvsxMvEePcujSi7G2a3fGeoNJGFjwZxVgOJ0hiFBaBKuBJaySux3SKmhGxWpoZiIREcn449MULl1S5Xqb/zoMNCOmnJ29XwcSXri6UY+hvCV01FMtIiJSjXY/+wWxd98DVfRDpd3zKmZeNBZXWKuYGVMahxGmtKs109UVERGphmEY2NpVPVGMpVcGpZuWEDFhMtYOHZowsvqzhEcQdcUVWCIiQx2KSIumpFpERKSerLFxAGctEWnOjLAwoq+6OtRhiLRoSqpFRETqKe6ue3D06dPiJr8pXr+O0k2b8BcUhDoUkRZPSbWIiEg92Tp2JGZGyxtK0PR4Kd20CXxtcNIekQampylERETaqPLxxdvkTJgiDUxJtYiISFtlKxsG0NuyylZEmiMl1SIiIm2UYS3rqVb5h0i9qaZaRESkrSor/yhcuoTSLVtCHEzrZ+/enfY//Xmow5BGoqRaRESkjbIndwbAn5uLOzc3xNG0ATalXa2Zrq6IiEgbFTZyJJ3emIk/X0PqNQWLyxXqEKQRKakWERFpw+xJnSAp1FGItHx6ULEKW9Zv491/v09xUXGoQxERERGRZs4wTdMMdRDN2YHULLonxYc6DBEREZFqKW8JHfVUi4iIiIjUk5JqEREREZF6UlItIiIiIlJPSqpFREREROpJSbWIiIiISD0pqRYRERERqScl1SIiIiIi9aSkWkRERESknjRNeTU8Xh8HUrMa9RgFeQVERkc26jGas7Z8/m353KFtn39bPndo2+evc2+b5w5Nc/4er69R9y9nYUrI/ek3z4Y6hJBqy+ffls/dNNv2+bflczfNtn3+Ove2q62ff2un8g8RERERkXpSUi0iIiIiUk9KqpuB8ReODXUIIdWWz78tnzu07fNvy+cObfv8de5tV1s//9bOME3TDHUQIiIiIiItmXqqRURERETqSUm1iIiIiEg9aZzqECosKOSd195jx5ZdRERFcOWMaYwcNyLUYTWYv//hRQ7sPYjFEvjsFhsXw2+e+QUA365ex6fvz6Uwv5CUQX25+e4biIiMAFrm6/LFohWsWbGW1MOpDD93OLfee2Nw3c5tu3j/jY/Izsyme6+u3HLPjcS3jwfA4/Hy/n8/ZOM3m7A7HUy5bCKTLr2wRts2J1Wdf2Z6Fv/v0adwOB3BthddPompV18MtI7zLz+Hndt2U1RYRPsO7bhixmUMPKc/0Lqv/9nOvS1ce4A3XnqLXdt24y51ExUbzZTLJjLuwnOB1n3toepzbyvXHiDteDr/98tnGDpqCLfffwtQv79vZ9tWWoBQj+nXlv3nhTfNf//jDbOkuMTcs2Ov+fjdvzCPHU4NdVgN5m9PvWCuWvbVGcuPHU41H7vr5+bu7XvMkuIS8/UX3zT/8483gutb4uuy4ZtN5sa1m83//ecD882X3wkuz8/LNx+/+xfm+q83mO5Stzn7nU/MvzzxXHD9J//7zPzr7583CwsKzdQjx81fPPBbc9um72q0bXNS1flnpGWaP7rlEdPr9Va6XWs4/5LiEnPOrHlmRlqm6fP5zC3rt5qP3fVzMyMts9Vf/7Ode1u49qYZ+H3mdntM0zTN1KOB8zi471Crv/amWfW5t5Vrb5qm+cIfXzL/+vvnzf/+c6ZpmvX7+1bdttL8qfwjREpLStm0djOXXzsVp8tJr5SeDB4+kG9WfRvq0Brd2tXrGDRsAL379cLpcnLZtZey6dstlBSXtNjXZeioIZwzcjARkeEVlm9au4Wk5ESGjRmK3WHn0msu4eihYxw/dgKANSu/ZerVFxMeEU5ickfGXXgua75cW6Ntm5Oqzr86reH8nS4n06ZPpV1CPBaLhUHDBtIuIZ7DBw63+ut/tnOvTks/93JJnROx2wM3fQ3DwAAy0jJb/bWHqs+9Oq3h3AHWfbWBsPAwUgb2CS6rz9+3s20rLYPKP0Ik7Xg6FquFDkkdgsuSu3Riz469IYyq4X32/hw+fW8OHZISuOL6afTp35vjR4/To0/3YJuEju2x2qykHU/HMIxW9bqkHj1OctdOwe+dLiftO7Tn+NHjRMdEkZeTV2F9ctdObF63pdptEzt1bLqTaABPPPIkBgYpg/py9Y1XEBkVSVFhUas8/7zcfNKOp5OYnMjKJavb1PU/9dzLtYVr/95/P2TNirV43B46d0tm4Dn9+eyDuW3i2ld27gX5hUDrvvbFxSXM+Wg+D/7ifr5a/nVweX3+vp1t2649ujT6OUn9KakOkdJSN64wV4VlrnAXJSWlIYqo4V11w+UkJnfEarOx/usNvPLXf/Ozpx6jtMRNWFhYhbZh4S5KS0oxLJZW9bqUlpQSGR1ZYZkr3EVJcSmlZecUdsr5hoW5gsvPtm1LERkVwU9+9wjJ3TpRWFDEB2/M4o2X3uaBn97bKs/f5/XxxktvMWbCSBI7dWxT17+yc28r1/6GO67j+tums3/3AXZv34vNZmsz176yc28LP/dzPpzH2AtGExcfW2F5ff6+nW1baRlU/hEiTqfjjFs6JcWluFzOEEXU8Lr37oYrzIXdbmPMeaPo2ac7323ajtNV+bk7Xc5W97o4Xc5KzqcEV5gTZ9k5nbq+pKQkuPxs27YUTpeTrj27YLVaiY6J4vrbprNjy05Kikta3fn7/X7efPltbFYr1992LdB2rn9V595Wrj2AxWKhV0pPcrJzWLFkVZu59lD5ubfma3/k4FF2btvFxKkXnLGuPn/fzrattAxKqkOkQ2ICfp+ftOPpwWVHDx0jsXPiWbZq4QwD0zRJTE7k6KFjwcUZaZl4PV46JCa0utcl6bRzLS0pJSMtk8TkRMIjwomOja6w/uihYySV3To/27YtlmEAYJpmqzp/0zR557X3yM/L5wcP34HVZgXaxvWv6tzP0Eqv/en8Pj8ZaZlt4tqfrvzcz9DKrv3u7XvISs/mtz9+kl/+6AmWzF3OprWb+dOvn63X37ezbSstg5LqEHG6nJwzcjBzZs2ntKSUfbv2s2X9VkaPHxnq0BpEUWEx2zfvwOP24PP5WLtqHXt37GPAkH6MGjeCrRu2sWfnPkpLSpkzax7njByMK8zVYl8Xn8+Hx+3B7/djmv7geQ8ZOZjUI8fZuHYTHreH+R8vJLlLUrA2cPSEkSz4ZBFFhUUcP3aC1cu+Zsz5owCq3bY5qer8D+w5yInUNPx+P4X5hXw4czZ9+vciLDxwi7O1nP97//2QE8dOcO+jd+FwnBxGrC1c/6rOvS1c+/zcfNZ9tYHSklL8fj/bN+9g3VcbSBnYp9Vf+7Ode2u/9uMnjuWJZ3/Jz596jJ8/9RgTJo1j4NAB/PCn99br79vZtpWWQdOUh1BhQSFvv/oeO7fuIiIqnCtnXNbsx2Ouqfy8Al7+y6ucSE3DYjHomNSBy669lH6DU4DysTjnUJhfRMqgPtx89/cqjOPZ0l6XuR/NZ97shRWWXXrNxUybPpUdW3fxwZsfkZ2RRbde3bjlnhtpl1DJWLUOO1Mun1RhvNazbducVHX+HZI68Nn7cynIK8AV5iRlUApXf+9yomOjgdZx/lkZWTzxyFPY7LbgmOwA37vzekaNH9Gqr//Zzt2wGK3+2ufnFfCf5//L0cPHMP0mce3juODi8xg/cSxw9nNo6ed/tnP/9qv1rf7an2ruR/NJP5Fx2jjVdfv7drZtpflTUi0iIiIiUk8q/xARERERqScl1SIiIiIi9aSkWkRERESknpRUi4iIiIjUk5JqEREREZF6UlItIiIiIlJPSqpFREREROpJSbWIiIiISD0pqRYRERERqScl1SIiIiIi9aSkWkRERESknpRUi4iIiIjUk5JqEREREZF6UlItIiIiIlJPSqpFREREROpJSbWIiIiISD0pqRYRERERqScl1SIizdTcj+bz9M//HOowRESkBpRUi4gAM195l5effe2Mr5tCZnoWD976KIf2Ha6wfPK0iTz8qweaLA4REak7W6gDEBFprXw+HxaLBcMw6rS90+XE6XI2cFQiItIYDNM0zVAHISISajNfeZfCgkK69ujMvNkLK6x76Jc/pE//3uRk5TD7nU/ZvmUnAD36dOfaW66mQ2ICECjX2PjNZiZNu5AFnywiMz2LZ/71NHt37WPBJ4tJPXIcw4CuPbty7c1Xk5jcEYAHb320wvF69+vFw796ILi/X/7xpwD4/X4WfrqYVcu+piAvn4TEBC6/bhpDRgwCAj3e/+/Rp/jBQ7ezcslX7Nu9n3bt47n2lqvpNzilUV8/EZG2Tj3VIiKnmDxtIsePpVFUUMRt990EQHhkOO5SN8//30v06N2dh3/1AFablaVzl/PCH1/m13/6GQ6nAwgktuu+Ws/3H7wdq9WKzW7DXepm4tTz6dSlEx63hwWfLOKVv77Gr/70M2w2G4//7sf85Ym/8cOf3ENy105YbdZKY1u+YAVL5izjhjuvo2uPLqxdvY7X/v46P33yUTp3Sw62++yDeVz9vSuYcce1LPhkEa//cya/f+436vUWEWlEqqkWETmF0+XEbrdjs9uIjo0mOjYam83Guq83gGlyyz3fI7lrJxI7deR737+e0tJStm78Lri91+fl1vtupkv3znTqkoTVamXoqHMYOuocOiQmkNy1Ezff/T0y07M4uPcQAJFRkQBEREYQHRtNRGREpbEtnbeMSdMuZOS4EXRI6sBl115Kr5SeLJm7rEK7iVPPZ/DwgXRITOCK66dRVFDEkYNHG+kVExERUE+1iEiNHN5/hMz0LB6/+xcVlnvcHjJOZAS/j42LJTomqkKb9BMZzJk1j4N7D1GQV4DfNDFNk+zM7Bofv7i4hNzsPHr27VFhea++Pdi2aXuFZcldOgW/jomLASA/r6DGxxIRkdpTUi0iUgOmaZLcrRN3PnDrGevCI8KDXzvLykBO9cpfXyM2LpYb7rye2LgYLFYLf/j5n/B6fQ0S2+kPQlqt1jPW6fEZEZHGpaRaROQ0NpsVv99fYVnn7sms+3o9EZGRhEeE1XhfhfmFnDiWxozbr6XvgD4AHD5wBL/v5P5tZTXUpx/zVGFhLmLiotm3az8pA/sGl+/dtT/4wKOIiISOaqpFRE4TnxBP6pHjnEhNoyC/AJ/Xx6hxI4iKjuLV5/7N7u17yEjLZM+OvXz0ziekHU+vcl9hEWFERkWwevnXpJ9IZ/f2Pfzv9Q+wWE/++o2MjsTusLN9yw7ycvMpLiqudF+Tp01k6dzlfPvVetJS05gzax57d+5j0qUXNvRLICIitaSeahGR04y78Fz2bN/DM799jtKS0uCQeg//+kd8+t7n/Ocfb1JSXEx0bAx9B/Q+a8+1xWLhjgduY9bM2Tz9i2dI6NCea266ktee/2+wjdVq5bpbr2H+xwuZN3shvVJ6VjrpywUXn0dpSSmf/O9z8nPz6ZCUwA8euqPCyB8iIhIaGqdaRERERKSeVP4hIiIiIlJPSqpFREREROpJSbWIiIiISD0pqRYRERERqScl1SIiIiIi9aSkWkRERESknpRUi4iIiIjUk5JqEREREZF6UlItIiIiIlJP/x/l0/R56VaBdgAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 720x360 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plot best cost history for each value of the learning rate.\n",
    "qv.plot_cost_histories(\n",
    "    [result[\"cost_history\"][\"historical_best\"] for result in results.values()],\n",
    "    labels=[str(learning_rate) for learning_rate in results],\n",
    "    y_axis_log=True,\n",
    ")\n",
    "plt.suptitle(\"History of best average infidelities vs learning rates\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Your task (action_id=\"2067555\") has started.\n",
      "Your task (action_id=\"2067555\") has completed.\n"
     ]
    }
   ],
   "source": [
    "# Continue optimization for the learning rate with the best cost.\n",
    "best_learning_rate, best_result = min(list(results.items()), key=lambda x: x[1][\"cost\"])\n",
    "\n",
    "continued_results = bo.run_stochastic_optimization(\n",
    "    graph=graph,\n",
    "    cost_node_name=\"cost\",\n",
    "    output_node_names=[\"cost\"],\n",
    "    optimizer=best_result[\"state\"],\n",
    "    cost_history_scope=\"HISTORICAL_BEST\",\n",
    "    iteration_count=4000,\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 720x360 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Get the complete history of best cost values.\n",
    "complete_cost_history = np.minimum.accumulate(\n",
    "    best_result[\"cost_history\"][\"historical_best\"]\n",
    "    + continued_results[\"cost_history\"][\"historical_best\"]\n",
    ")\n",
    "\n",
    "# Plot complete graph of cost history.\n",
    "qv.plot_cost_histories(list(complete_cost_history), y_axis_log=True)\n",
    "plt.suptitle(\"Complete cost history for best learning rate\")\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "venv",
   "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.11.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
