{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "1aaa7a66", "metadata": { "execution": { "iopub.execute_input": "2024-04-26T18:17:41.357933Z", "iopub.status.busy": "2024-04-26T18:17:41.357644Z", "iopub.status.idle": "2024-04-26T18:17:41.361384Z", "shell.execute_reply": "2024-04-26T18:17:41.360949Z" }, "nbsphinx": "hidden" }, "outputs": [], "source": [ "# Copyright 2024 Keysight Technologies Inc." ] }, { "cell_type": "raw", "id": "c450b489", "metadata": { "raw_mimetype": "text/restructuredtext" }, "source": [ "\n", "Example: Running KNR\n", "====================\n", "\n", "K-body noise reconstruction (:tqdoc:`KNR`\\) is an error diagnostic protocol\n", "that provides a detailed error profile of a cycle of interest. In this\n", "example, we will see how to generate and run :tqdoc:`KNR` circuits, and how to\n", "interpret the results. First, let's choose a cycle to benchmark:" ] }, { "cell_type": "code", "execution_count": 2, "id": "29ddf30e", "metadata": { "execution": { "iopub.execute_input": "2024-04-26T18:17:41.363356Z", "iopub.status.busy": "2024-04-26T18:17:41.363052Z", "iopub.status.idle": "2024-04-26T18:17:43.631268Z", "shell.execute_reply": "2024-04-26T18:17:43.630744Z" } }, "outputs": [], "source": [ "import numpy as np\n", "import trueq as tq\n", "import trueq.math as tqm\n", "import trueq.simulation as tqs\n", "\n", "# define the cycle to benchmark using KNR\n", "cycle_of_interest = tq.Cycle({(0, 1): tq.Gate.cx, 2: tq.Gate.z})" ] }, { "cell_type": "raw", "id": "327f55ea", "metadata": { "raw_mimetype": "text/restructuredtext" }, "source": [ "This cycle is to be implemented on a quantum processor. For the sake of this\n", "example, the device in question will consist of a\n", ":py:class:`~trueq.Simulator`\\. To avoid confusion, we will name it\n", "``device``. Our device will be a minimalistic 3-qubit processor. Now, let's\n", "introduce a stochastic error map to our ``cycle_of_interest``:" ] }, { "cell_type": "code", "execution_count": 3, "id": "d06eab29", "metadata": { "execution": { "iopub.execute_input": "2024-04-26T18:17:43.633947Z", "iopub.status.busy": "2024-04-26T18:17:43.633446Z", "iopub.status.idle": "2024-04-26T18:17:43.641696Z", "shell.execute_reply": "2024-04-26T18:17:43.641281Z" } }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# define some simple 3-qubit errors, together with their probability\n", "error_profile = {\n", " # no error with prob 88%\n", " \"III\": 0.88,\n", " # IXI error with prob 1%\n", " \"IXI\": 0.01,\n", " # XII error with prob 3%\n", " \"XII\": 0.03,\n", " # IXX error with prob 6%\n", " \"IXX\": 0.06,\n", " # ZXZ error with prob 2%\n", " \"ZXZ\": 0.02,\n", "}\n", "\n", "# define Kraus operators based on the above error profile\n", "kraus_list = [\n", " np.sqrt(prob) * tqm.Weyls(pauli, dim=2).herm_mat\n", " for pauli, prob in error_profile.items()\n", "]\n", "\n", "# instantiate a superoperator based on the Kraus operators\n", "superop = tqm.Superop.from_kraus(kraus_list)\n", "\n", "# instantiate a device simulator based on the above error profile\n", "device = tqs.Simulator()\n", "device.add_cycle_noise(\n", " # the 3-qubit error map is applied to qubits 0, 1, and 2\n", " {(0, 1, 2): superop},\n", " # the error map is only applied to the cycle of interest\n", " match=tqs.CycleMatch(cycle_of_interest),\n", " # the error map occurs before the cycle of interest\n", " cycle_offset=-1,\n", ")" ] }, { "cell_type": "raw", "id": "8458c087", "metadata": { "raw_mimetype": "text/restructuredtext" }, "source": [ "Now that the ``device`` has been instantiated, let's try to learn the error\n", "profile of the ``cycle_of_interest``. For this, we will generate :tqdoc:`KNR`\n", "circuit collections. An important parameter when generating :tqdoc:`KNR`\n", "circuits is ``subsystems``. To understand this parameter, let's first identify\n", "the gate suppports of our cycle of interest, which are :math:`(0,1)` and\n", ":math:`(2)`\\. If ``subsystems=1``, the :tqdoc:`KNR` protocol will yield\n", "marginal error probabilities for each gate support in the cycle of\n", "interest.\n", "\n", "Given our example, if we look at qubit :math:`2`\\, which is a gate support for\n", "the cycle of interest, we should expect to see an :math:`X` error with\n", "probability :math:`6\\%`\\, and a :math:`Z` error with probability :math:`2\\%`\\.\n", "If we look at the gate support :math:`(0,1)`\\, we should expect to see an\n", ":math:`XI` error with probability :math:`3\\%`\\, a :math:`ZX` error with\n", "probability :math:`2\\%`\\, and a :math:`IX` error with probability\n", ":math:`7\\%`\\. To obtain the :math:`7\\%` value, we added the probabilities of\n", ":math:`IXI` and :math:`IXX`\\, which both yield an :math:`IX` error for the\n", "support :math:`(0,1)` (this is the marginal probability). These are indeed the\n", "reconstructed probabilities:" ] }, { "cell_type": "code", "execution_count": 4, "id": "8472ca53", "metadata": { "execution": { "iopub.execute_input": "2024-04-26T18:17:43.643724Z", "iopub.status.busy": "2024-04-26T18:17:43.643429Z", "iopub.status.idle": "2024-04-26T18:17:45.206377Z", "shell.execute_reply": "2024-04-26T18:17:45.205879Z" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# generate KNR circuits to benchmark the cycle, targeting only single gate supports\n", "knr_circuits_1 = tq.make_knr(\n", " cycle_of_interest, n_random_cycles=[4, 10], n_circuits=30, subsystems=1\n", ")\n", "\n", "# run the circuits on the device\n", "device.run(knr_circuits_1)\n", "\n", "# plot the reconstructed error profile with subsystems=1:\n", "layout = tq.visualization.Graph.linear(3, show_labels=True) # specify the chip layout\n", "knr_circuits_1.plot.knr_heatmap(layout) # plot the heatmap" ] }, { "cell_type": "raw", "id": "738192de", "metadata": { "raw_mimetype": "text/restructuredtext" }, "source": [ "In the plot above, notice that the uncertainty for reconstructed error\n", "probabilities is seen in the variation of color in each cell. Some errors that\n", "are not included in the underlying ``error_profile`` might appear in dark\n", "purple due to the uncertainty of the estimates. These dark purple cells can be\n", "removed from the plot by simply changing the cutoff options (see the\n", ":py:class:`~trueq.visualization.plotters.nr.knr_heatmap` API reference).\n", "Moreover, notice the label :math:`\\{XX,XI\\}`\\, which is associated with a\n", "probability of :math:`3\\%`\\. This bracketed set of errors is short for\n", "\":math:`XX` or :math:`XI`\\\" and indicates that :tqdoc:`KNR` didn't\n", "differentiate between the two and instead outputs the sum of their respective\n", "probability of occuring. :math:`XX` and :math:`XI` are then said to be\n", "\"degenerate\". Here, we know from our construction that only :math:`XI` could\n", "occur, but on an actual device where the noise model is unknown, we cannot\n", "learn the individual error probabilities in a degenerate set.\n", "\n", "|\n", "\n", ".. dropdown:: **Advanced note**: KNR degeneracies\n", "\n", " Degeneracies are determined by the cycle of interest. Given a Clifford\n", " cycle of interest :math:`G`\\, the KNR degeneracies are determined by its\n", " *Weyl orbits*; the orbit of a Weyl operator :math:`W` with respect to\n", " :math:`G` is defined as\n", "\n", " .. math::\n", "\n", " W^{\\circlearrowright G}:= \\{W, G(W), G^2(W), \\cdots\\}~.\n", "\n", " For example, the orbit of :math:`XX` given a :math:`CX` gate is\n", "\n", " .. math::\n", "\n", " XX^{\\circlearrowright CX}&= \\{XX, CX(XX)\\} \\\\\n", " &= \\{XX, XI\\}~.\n", "\n", "|\n", "\n", "Aside from the :math:`\\{XX, XI\\}` degeneracy, we might want to resolve our\n", "error profile further. Indeed, from the current experiment (i.e. with\n", "``subsystems=1``), we can't know if some errors on different gate supports are\n", "correlated. For instance, we know that qubit :math:`2` sees a :math:`Z` error\n", "with probability of :math:`2\\%`\\, and that the qubit pair sees a :math:`ZX`\n", "error with probability of :math:`2\\%`\\, but we didn't learn if these errors\n", "occur at the same time or not (we know from our underlying error profile that\n", "they are perfectly correlated). To resolve the error correlations between any\n", "two gate supports, we can simply choose a :tqdoc:`KNR` circuit collection\n", "with ``subsystems=2``:" ] }, { "cell_type": "code", "execution_count": 5, "id": "ac9c881d", "metadata": { "execution": { "iopub.execute_input": "2024-04-26T18:17:45.209059Z", "iopub.status.busy": "2024-04-26T18:17:45.208638Z", "iopub.status.idle": "2024-04-26T18:17:49.168653Z", "shell.execute_reply": "2024-04-26T18:17:49.168092Z" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgYAAAI9CAYAAABBgrDOAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuNSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/xnp5ZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB3rklEQVR4nO3de1xUdf4/8NeZGQYGEMwbiJKaodRqoKAgtYtuJHmplHYlQzGy3V8W4q0UNLXsgrLLit+Fb6633BTBtcxS0BSStK+YxmCtXdS8hLqgUjoIXoA55/cHy+QwZ+AMch1ez+/jPL7ymffncz5ntpnzns/5nM8RJEmSQERERARA1dodICIioraDiQERERGZMDEgIiIiEyYGREREZMLEgIiIiEyYGBAREZEJEwMiIiIyYWJAREREJprW7gARtU+SJOH42e9x8sJplN24Dge1Bp1d3RH0QAC6d+7W2t0jokZiYkBENrl5+yZ2HvoUGz/NwPc/nQQAqAQB4n8XUVWr1BgT9Cimjo7EsIFDIAhCa3aXiGwkcElkIlJqz5FcvLp6KcpvVkAlqCBKomycWqWGUTTiN319seaVlfDq6tnCPSWixmJiQESKbNr7Lyx9LxGAAAnKvjbUKjU6u7ojY/Ea+PTu37wdJKImwcSAiBq0K38vZv7PArOyPh7eePHJ5zB0gB/u9+oHlapmLvPA6CBUVlWa4tQqNbq63YNP3k6HR5ceLdpvIrId70ogonr9UnYVc//3NQgwnyswwLs/nvl9BAb07m9KCuQYRSN+LruK+LXLmrurRNQEmBgQUb3+lfcxqo3VFpcPLv1yGWkfrcP0pDgc+/Hf9bZhFI34/NghnL98sTm7SkRNgIkBEVllFI14f28m5K44fnPmO/z1X2n4rPAgblXebrAtlUrAltwPmqObRNSEmBgQkVUHvj6E4p8vNUlbRlFEes4HuH3H/AMianuYGBCRVf8+8x00KnWTtXf9RjkulhY3WXtE1PSYGBCRVdfKy4AmXqDIUFHWpO0RUdNiYkBEVjXHqoV1724goraFiQERWeXu6iY78fCu2nTp1KTtEVHT4rMSiMiqoT4PwSgaZV/TqDXo5Oxq+nete1zdUVldhZu3b+FW5S2zOl06dUav7l7N12EiumtMDIjIqpDfDId3j164cPk/FusYBAzwQ+aSdRZ1Dv/vXgBAygerserDf5jKVSoVoh77I7Qah+btNBHdFV5KICKrVCoVngufjCaZFiABk3//dBM0RETNic9KIKJ6XbxWgt/GjoNklH+SohJqlRqPBYTi3bnJTdgzImoOHDEgonp9XPI5PEbd1+j6apUaXl098fYLrzVhr4iouTAxICKrisqLsaPoMzj3dkf33/a1+ZKCWqWGR5fu2LxoNbq43dMsfSSipsXEgIisevfEVhilmrsSOvXvCs/HfKB2+u+c5XqSBPV/V0v09eqPj99Kx70evZu7q0TURHhXAhHJ+vLKNzhSetyszNnLDfdOegg3zl+D4fsruFVy3aKeo4Mj/hD6BAK9H8KVn0qgkfj7g6g94eRDIrJQJVbjhf9bigs36n+AUlXZLVQabmFsj0cwpJsv3FzcMNTnIXRydkV1dTW2bduGzp07Y8yYMS3UcyK6WxwxICILHxd91mBSAAAObk54yPtBvBYUB5VgPjKg0WgQHByMffv2oaioCPfee29zdZeImhDH+IjIzNXbZXj/9E7F8bG+z1gkBbX69u0LLy8v5Ofnw2iUX0GRiNoWJgZEZOa9H3egovqmotjRXiHw7Wz9VkZBEDBixAiUlZXh22+/baouElEzYmJARCY/lhUh+8JBRbFOakdM94loMK5r16544IEHoNfrcfOmsoSDiFoPEwMiAgBIkoS0HzItnolgTdR949DNqbOi2MDAQADA0aNHG9s9ImohTAyICABw4FIBvrl6UlFsT103/KHPY4rbdnJyQmBgIH744QeUlpY2totE1AKYGBARbhsr8Y8T2xTHvzhwErRq256S+OCDD6Jz587Iz88H75ImaruYGBARtp3bi0u3flYUO6SLLx7uMcTmfahUKowYMQLFxcU4e/aszfWJqGUwMSDq4K7c+gUZZ7MVxaog4CXfZyAIjXsOs7e3N+69914cPnwY1dXVjWqDiJoXEwOiDm7tyQ9xy1ipKHa8dyju63R3zz0IDg7GjRs38M0339xVO0TUPJgYEHVg3147jdziLxXFumqc8dz9T931Pjt37oxBgwbh2LFjqKiouOv2iKhpMTEg6qBESUTa9xmK46fd/yTctZ2aZN9Dhw6FRqPBl18qS0qIqOUwMSDqoPb9Jx8nys4pir3XpSee9B7ZZPvWarUYPnw4fvzxR1y61PAzGYio5TAxIOqAblTfwrqT2xXHv+QbCY2qaZ+5NmDAAHTt2hWHDh3i7YtEbQgTA6IOaMuZLPxSaVAUG9z9IQzrNqjJ+6BSqRASEoIrV67g1KlTTd4+ETUOEwOiDuY/N67gg3P7FMVqBDVeHDip2frSs2dP3Hffffjyyy9RWanszggial5MDIg6mH+c+BeqJGVrCET0CYO3i2ez9ic4OBiVlZU4duxYs+6HiJRhYkDUgeh//h5fXC5UFNtZ2wlR941r5h4Brq6u8PPzwzfffIOysrJm3x8R1Y+JAVEHYRSN+N8fMhXHP+8zEa4Ozs3Yo1/5+flBp9Ph8OHDLbI/IrKOiQFRB7HrwgGcLb+oKPb+Tvfi8V6PNHOPfuXg4ICgoCCcO3cOFy8q6yMRNQ8mBkQdQFllOTb++LHi+JcfeAZqoWW/Hvr37w8PDw8cOnQIoii26L6J6FdMDIg6gPdP70RZVbmi2JGew/DQPQOauUeWBEFASEgIrl69iu+//77F909ENZgYENm5c+X/wcfn9yuK1aoc8OcBf2jmHlnXvXt3DBgwAF999RVu3brVav0g6siYGBDZMUmS8L8/ZEKUlA3NR/Z7HB66rs3cq/oNHz4coihCr9e3aj+IOiomBkR2LP/K1yj4+TtFsd2d7kFk38ebuUcNc3Z2xpAhQ/Dtt9/i6tWrrd0dog6HiQGRnaoSq7H6xL8Ux/95wB+g0zg2Y4+UGzx4MDp16sTnKBC1AiYGRHbqo59ycfHGZUWxgzrfj1Gew5u5R8qp1WoEBwfj4sWLKCoqau3uEHUoTAyI7NAvtw3YdHqnolgBAl72fQaCIDRzr2zTp08f9OrVC/n5+TAaja3dHaIOg4kBkR3acOoj3DAqm9Uf3isEA9z7Nm+HGkEQBIwYMQLXr1/H8ePHW7s7RB0GEwMiO3Oy7Cfsufh/imJ1akdM94lo5h41XpcuXfDggw9Cr9fjxo0brd0dog6BiQGRHZEkCWnfZ0KCsgl7U/qPRxdH92bu1d0JCAiASqXC0aNHW7srRB0CEwMiO5JXchTHr51SFOul646IPmHN3KO75+TkhMDAQJw4cQJXrlxp7e4Q2T0mBkR24pbxNtac/EBx/AzfSGhVDs3Yo6bzwAMP4J577uHti0QtgIkBkZ3419lPcfnWL4pih3Z9ACO6+zVzj5qOSqXCiBEjcOnSJZw5c6a1u0Nk1zSt3QEiarzblbdhqCjDxbJL2Pz9TkgaCYKq/tsOVYIKLw1se7cnNqR3797o06cPDh8+jD59+kCjqfn6qn0PblXeRidnV7i5dIJapW7l3hK1X0wMiNoZo2jE58cO4f29mTjwdb7ZRENBo0KnAd3gNrA7tO5OsvWf9B6Jfp16tVR3m1RwcDC2bduGwmOFqNDcxsY9mTjw9SGz98DZyRmRIycg6rE/or9X39brLFE7JUi8YEfULkiShIzPtiP1o7Uo/vkS1Co1jKLMwj8CAAlw6tkJXQN7w7Grs+mlTg4ueP+Rt+GmdW25jjexxPXJyPxiB8pulVt9D2rLgx8MxKIpczGo3wOt0FOi9omJAVE7YBSNWPbPv+D9vVuVVxIAQSXAY1R/OPeuuSVx5gPPYsK9v2+mXjYvURTx1qZkvLdni+I6apUKGrUD3p3zF4wa8ttm7B2R/WBiQNTGSZKEN/6ZhH9+mmnxmsc93fFKZCxG+j+MTjpXFF2+iMzPtuO9PVt+nb0vAD3DB+CB+wdizYil7fb6+5vv/xXv7U43XTR4dOjvMH5EOPz6/wbd3LtCFEWcu3Qem/f9Cx8e2Gk6fkEQoBJU2LTwXYz4zbDWOwCidoKJAVEbty3vY8z/x+sW5V3d7sHHb6WjV/eeFq9t3rcNize8U/OHUDP3YM0bf0dYv5Bm7m3z+PDATrzy7hKzso3xqQj1e1g2ftPerVjy3nLT3ypBBSdHJ3yW/BE8uvRo1r4StXe8XZGoDZMkCak71kGA5R0Es/7woikpmP+P1xHw598jt+BzAMCUx/4Iv/6/+W8jAKolfF/4bUt1u0lJkoS0Hest3oPblZVYl7UZo199Gr7RwXhp5auoqq4CAESF/RFd3e4xxYqSiFu3byHzs49atO9E7RETA6I27NC3R1B06YLFEseCIOCpkDEAgNMXz2Jb3sf45fpVpH28wRTz1MNjTf+WJAmb9m5FtbG6ZTrehL78vgBni3+yeA/m/u9reHtzMk5dOIPbVbex+0gODnx9CEDNugf3enibxYuSiPf3bTUlD0Qkj4kBURv2/qdbZecE3NujN9xcOgEATv/nnKn89H/Omv49qJ+vWZ0rhp+Rqz/QPB1tRtbeg4pblg9VctQ6mv596ZfLFq//UnYV+wrymrR/RPaGiQFRGyVJEj4rPCh7O16XO4bJy29W/PrvG7/+u6tbF7M6apUauQXtLzHI1R+Qvy2zjuG+Q02TC7/492H85+cSi5j2+h4QtSQmBkRt1I3bN20e+r9zNcO684qNohFXy681RddazK3KW6isrmww7qH7HsQ/5v0NapUaxT9fwqurl8rGGUUjrl6/1sS9JLIvTAyI2qjblbetvvZL2VXTvzs5/7pYkYvu18WMfrl+FXXdqrzVRL1rGbcrG04Khvr4YdOi1ejs6o6SXy5jytv/DyUylxFq3Wxn7wFRS2NiQNRG3XnCr6vo8gUYyssAAPf17GMq7+/Vz/Tv42d/MKujElRwd3Fv4l42L1dnl3pfD3ogAP9MSIObcyecv3wRk954HmeKf7IaLwgCOru2r/eAqKUxMSBqoxw0DvC4p7vsa5Ik4ZP8PQCA/r364Q+hT6JLp3vw8lPPm2I+/r9sszqCIKCPp/lM/bZOrVKjZ1cP2dceGRyE9xb8Ha46F5z5zzlMeuN5nL98sd72VIIKfdvZe0DU0pgYELVhUWF/hEqQ/5iu+mA1Ll4pBgD85cU3ULDmMzwaEAqgZoGjr0+br1sgiiImjXyqeTvcDKZYeQ9envACdI46AMB9Xn2Rn/YpzmYUmranf/eERR2jaMSkkROau8tE7RoTA6I27JnfT4TM2kYAgJ/LruLppdPw4YGdKDX8gttVlTh14QzefP+vWPJeolmsWqXGbx8KRh+P9vdredKoiU3yiGi1So2HBwWh3x2XXojIEpdEJmrjYlfNx54jnym6Za8+615dhUeH/q6JetWyZv09AVmH9931e/CPeX/D6MBRTdQrIvvEEQOiNm7B5Fno5OwKlapxH1eVoMLowFEY5f9IE/es5bz6zEy4OXeC+i7eg0eH/q7dJkZELYmJAVEb592jFzbGp8HJwdHmE6NKUMH//sFYNfOdRicWbUHv7l74Z0IaHLVONj8dUiWo8FD/3+Dvccvb7ZMliVpS+/2mIOpA/Pr/Bh8u+ye6uHWB8N//q0/tCfCxwJFIf201nLROLdHNZjX4vgfx0bL30c29ZkVHpe/BowG/Q8biNaaJikRUP84xIGpHym9WYMcXWXhvdwbOFJ+DRq2GJNU8IEgtqCBCgiRJCAsIRfToSDw8KKhJJu61JeU3K/DxF9l4b88WnP6P5XsgQYIoSXh06O8QPfoZPDxoeLseLSFqaUwMiNohSZJw5Ac99h7dj6vl13Cr8jY6ObuidzcvPB36BLy6erZ2F5udJEk4eqIQnx75DFfLr+Hm7Vtwc+nUod4DoubAxICIiIhMOL5GREREJkwMiIiIyISJAREREZkwMSAiIiITJgZERERkwsSAiIiITJgYEBERkQkTAyIiIjJhYkBEREQmTAyIiIjIhIkBERERmTAxICIiIhMmBkRERGTCxICIiIhMmBgQERGRCRMDIiIiMtG0dgeIiIjag1u3bqGystLq61qtFk5OTi3Yo+bBxKCFjc6bbVGmEqR6/5aNgVyM2Ixt123Hcl9qubahZP/mbSlpR66eXNtEHYkaDX8m5Mrq1nNQGS3r1fkMquW+b2Q+p3XjZL87LL4nGhvT8HegXIxFH2Vinrl3P/r1cUXJZcv3ppanpyfOnj3b7pMDJgZEREQNqKysRMllI34q6Au3TpZX4cuui+gTcA6VlZVMDIiIiDoK104CXDsJFuUiLMvaK04+JCIiIhOOGBARESlklEQYZaYzGSXLeQntFRMDIiIihURIEGUmWcqVtVe8lEBEREQmHDEgIiJSSIQoczMjrJS2TxwxICIiIhOOGBARESlklCQYJcv5BHJl7RVHDGwkiiJ8fX2xaNEis/KsrCxotVps3769lXpGRER095gY2EilUiEhIQFpaWkwGAwAAL1ej8jISKxYsQIRERGt3EMiImoutXclyG32golBI0RFRaFLly5ITU1FUVERxo8fj5iYGMyZM6e1u0ZERM1IhASjzMbEoIPTaDRYsGABUlJSMHbsWAwbNgyrVq1q7W4RERHdNSYGjRQVFYXy8nIIgoCMjAyoVHwriYjsHS8lkFWxsbEAgNLSUiYFRERkN3hGa4TFixcjKysLhw8fRnV1NdavX9/aXSIiohZQe7ui3GYvmBjYaO3atUhOTsbOnTvh5+eH2bNnIykpCVVVVa3dNSIiamZiPZu9YGJgg+zsbMTGxiI9PR3BwcEAai4pGAwGbNq0qZV7R0REdPeYGChUUFCASZMmISkpCRMnTjSVu7u7Iy4uDsuXL4fRaGzFHhIRUXOTu1WxdrMXXBJZoYCAAJSXl8u+tmzZMixbtqyFe0RERNT0mBgQEREpZJRqNrlye8FLCURERGTCEQMiIiKFrN2BYE93JTAxICIiUkiEACME2XJ7wUsJREREZMIRAyIiIoVEqWaTK7cXTAxa2K2/eFkW1h2BkhmRkgSh4Ri58Z86cRbtyMYoaUcuxrLQIk722BoRI9sn+xnKI2qURnyWZeMaG6PoO0hJTMPfU43/nmg4Rq7tiKUy9ewUEwMiIiKFjFbmGMiVtVdMDIiIiBTqCIkBJx8SERGRCUcMiIiIFBIlAaLMRAW5svaKIwZERERkwhEDIiIihTjHgIiIiDoUjhgQEREpZIQKRpnf1MZW6Etz4YhBI2RnZ0MQBKtbZGRka3eRiIiagfTfyYd1N8mOJh9yxKARRo0aheLiYrMyo9GImJgY6PV6LFy4sJV6RkREdHeYGDSCTqeDTqcz/W00GhEVFQW9Xo/c3Fz4+fm1Yu+IiKi5cPIhNchoNGLKlCnIyclhUkBERO0eRwzuQm1SsHfvXiYFREQdgFFSwSjztCgjn65IRqMRU6dONSUF/v7+rd0lIiJqZiIEiDKD7SLsJzPgpYRGqE0KPv30U+Tk5DApICIiu8ERAxsZjUZER0ebkoIhQ4a0dpeIiKiFdITJh0wMbCCKIqKjo7Fjxw588MEH6NmzJ0pKSsxiunfvDrVa3Uo9JCIiujtMDGxw9OhRbNmyBQAwduxYi9cFQcC1a9fg5ubW0l0jIqIWYH3yof3MMWBiYIOgoCBIdvQ/PhERUV2cfEhERKRQzV0J8put0tLS0LdvXzg5OSEoKAhHjhypN37btm3w9fWFk5MTBg8ejOzsbLPXrS3T/5e//MWmfjExICIiUkj870OU6m5ytzDWZ+vWrZg7dy6WLl0KvV4PPz8/hIeH4/Lly7Lxhw4dwuTJkzF9+nQUFhZiwoQJmDBhAo4fP26KKS4uNts2bNgAQRDw9NNP29Q3QeLYeIv63bgky8K6iaZM4ikJQsMxcv9d1omzaEc2Rkk7cjGWhRZxssfWiBjZPtnPrGCiRmnEZ1k2rrExir6DlMQ0/D3V+O+JhmPk2v6/pdPh7u6ObV/7wrmT5QTzG9eN+KPfDzAYDIrmmQUFBWHYsGFITU0FUDO53dvbGzNnzkR8fLxFfGRkJCoqKrBr1y5TWXBwMPz9/bF69WrZfUyYMAHXr19Hbm5ug/25E0cMiIiIFKqdfCi3AUBZWZnZdvv2bYs2KisrUVBQgLCwMFOZSqVCWFgY8vPzZfebn59vFg8A4eHhVuMvXbqErKwsTJ8+3eZjZGJARETURLy9veHu7m7aEhMTLWJKS0thNBrh4eFhVu7h4WFxC3ytkpISm+L/+c9/olOnToiIiLD5GHhXAhERkUKilfkEtUsinz9/3uxSgqOjY4v17U4bNmxAVFQUnJycbK7LxKCFHcia39pdICIiG5WVlQEAjJIAo8xEhdoyNze3BucYdOvWDWq1GpcuXTIrv3TpEjw9PWXreHp6Ko4/ePAgTpw4ga1bt9bbD2t4KYGIiKgFabVaBAQEmE0KFEURubm5GDFihGydESNGWEwi3Ldvn2z8+vXrERAQ0Ogn/nLEgIiISKHa2xMty227wW/u3LmYNm0aAgMDMXz4cKSkpKCiogIxMTEAgOjoaPTq1cs0R2HWrFkIDQ1FcnIyxo0bh8zMTHz11VdYs2aNWbtlZWXYtm0bkpOTG3mETAyIiIhaXGRkJK5cuYIlS5agpKQE/v7+2LNnj2mCYVFREVSqXxOQkJAQbNmyBa+99hoWLlwIHx8f7NixA4MGDTJrNzMzE5IkYfLkyY3uG9cxICIiakBZWRnc3d2xQT/E6joGzw8tVLyOQVvGOQZERERkwsSAiCwkJiZi2LBh6NSpE3r06IEJEybgxIkTNrXx+uuvW127XRAEvPHGG83Ue6LmI7ccsrV5B+2V/RwJETWZzz//HC+//DIOHz6Mffv2oaqqCqNHj0ZFRYXiNl555RWLtduLi4vx3HPPoXPnznj22Web8QiImoeIX29ZvHMTW7tjTYiTD4nIwp49e8z+3rhxI3r06IGCggL87ne/U9SGq6srXF1dzcrS09OxadMmZGVlwcfHp8n6S0RNhyMGRNQgg8EAAOjSpYup7LnnnsPIkSMVt1FQUIA//elPWL58OcLDw5u6i0QtonblQ7nNXnDEgIjqJYoiZs+ejYcfftjs1qiePXtCFJUNoF6+fBkTJ07E008/jVdeeaW5ukpETYCJARHV6+WXX8bx48fxxRdfmJXLPRxGTlVVFf7whz/Aw8MDa9eubY4uErWYO5+kWLfcXjAxICKrYmNjsWvXLhw4cAC9e/duVBtxcXE4deoUjh492qgHuhC1JSIEiLB8VoJcWXvFxICILEiShJkzZ+Kjjz5CXl4e+vXr16h21qxZgw0bNmD//v2NTiyIqGUxMSAiCy+//DK2bNmCjz/+GJ06dTI9893d3R06nQ4AkJCQgIsXL+L999+XbeP//u//MHPmTCxZsgT33XefxXPjdTod3N3dm/dAiJpYR7iUYD9HQkRN5t1334XBYMDIkSPRs2dP03bnY1yLi4tRVFRktY1169ahsrISr732mlkbtdusWbNa4lCIyEZ8VgIREVEDap+V8NevHoHO1XKw/WZ5NV4J/ILPSiAiIiL7wjkGREREComSAFGSuStBpqy9YmJARESkkGjlgUn2tPKh/RwJERER3TWOGBARESkkSiqIMrcmypW1V/ZzJERERHTXOGJARESkkBECjDLLH8uVtVdMDIiIiBTipQQiIiLqUDhiQEREpJAR8pcNjC3flWbDEQMiIiIy4YgBERGRQpxjQERERB0KRwyIiIgUMkoqGGVGB+TK2ismBkRERApJECDKTD6U7GgdA/tJcYiIiOiuccSAiIhIoY5wKcF+joSIiIjuGkcMWthjqj+2dheIqIMQNJZf8YJWK1PmYF7goCCm7t8AJAeZU0qdMslBbREiatUNxziY/44VNZbX9EWtzG2EDuZxsvXqlImWh4ac1D/VvCYJECWZNmTK2ismBkRERAoZoYJRZrBdrqy9sp8jISIiorvGEQMiIiKFOsKlBI4YEBERkQlHDIiIiBQSoYIo85tarqy9sp8jISIiorvGEQMiIiKFjJIAo8x8Army9oqJARERkUKcfNjMkpOT0bt3b2g0Gpw7d641u9IoeXl50Gg06NevH9atW9fa3SEiIrprrZYY3Lx5E/Hx8YiOjsbZs2fh7e2N6upq3HfffYiLi7OIf/HFF+Hj44PS0lJFMdaIoghfX18sWrTIrDwrKwtarRbbt28HAGRnZ0MQBKtbZGQkQkJCcPr0aYwZMwbz5s2DJEl3+a4QEVFbJkkqiDKbxGcl3L0rV66guroaERER8Pb2hlqthkajQUJCAjZs2IBffvnFFJuYmIgPP/wQu3fvRrdu3RTFWKNSqZCQkIC0tDQYDAYAgF6vR2RkJFasWIGIiAgAwKhRo1BcXGy2XbhwAY899hi6du2KhQsXQqvVok+fPpg4cSLKyspQXl7eTO8WERFRy2i1xEAURQCAps5a3tOmTUOXLl2QmpoKAEhPT8dbb72FTz75BPfff7/imPpERUWZ6hcVFWH8+PGIiYnBnDlzTDE6nQ6enp6mrXv37pg3bx70ej1yc3Ph5+dninVwqFlY22g03sU7QkREbZ0RgtXNXrRaYnDr1i0Av55Ua2m1WsyfPx+pqanIzs7GCy+8gE2bNmHEiBE2xdRHo9FgwYIFSElJwdixYzFs2DCsWrXKarzRaMSUKVOQk5NjkRTceQy3b99WtH8iImqfROnXCYjmW2v3rOm0SmJgNBqRmZkJnU6HPn36WLz+wgsvQK1W44knnkBiYqJpeN/WmPpERUWhvLwcgiAgIyMDKpX8W1GbFOzduxc5OTkWSQEA9O/fHyqVClu3buU8AyIiatdaPDE4ePAgnJyc8M4772DdunVwdXW1iHFycsKoUaMQEhKC2bNny7ajJKY+sbGxAIDS0tJ6k4KpU6di7969yM3Nhb+/v2ycp6cnUlNTMWfOHDg6OqKoqMjm/hARUdsnN/GwdrNVWloa+vbtCycnJwQFBeHIkSP1xm/btg2+vr5wcnLC4MGDkZ2dbRHz/fff48knn4S7uztcXFwwbNgwm89JLZ4YBAYGoqCgAJGRkXjllVdQWVkpG/fNN98gKCio3raUxMhZvHgxsrKycPjwYVRXV2P9+vUWMbVJwaeffoqcnByrSQEAGAwGJCQkYMaMGdDr9fDy8rK5T0RE1HFs3boVc+fOxdKlS6HX6+Hn54fw8HBcvnxZNv7QoUOYPHkypk+fjsLCQkyYMAETJkzA8ePHTTGnT5/GI488Al9fX+Tl5eGbb77B4sWL4eTkZFPfBKmVxr7//e9/46GHHsL3338PX19fs9du3LgBNzc3bNq0CZMnT5atryRGztq1azFr1ix89tlnCA4Oxttvv401a9bgxx9/NJtEGB0djT179iAnJwdDhgypt838/HyEhITg/Pnz6N27d72xj6n+qLivRER3Q9BYrmEnaLUyZeZzveCgIKbu3wAkB5k18+qUSQ5qixBRq244xsH8d6yokVlkSCvzDAMH8zjZenXKRMtDQ07qn+Du7o6p+ydD62r5/lSWV2LTqAycP38ebm5upnJHR0c4OjpaxAcFBWHYsGGmSfSiKMLb2xszZ85EfHy8RXxkZCQqKiqwa9cuU1lwcDD8/f2xevVqAMAzzzwDBwcHbNq0yfIAbNBqkw87deoE4NdJiHf6+uuvYTQaMXToUKv1lcTUlZ2djdjYWKSnpyM4OBhAzSUFg8FgeiNFUUR0dDR27NiBzZs3o2fPnigpKTHb6t59UDvpUO6yCBERdRze3t5wd3c3bYmJiRYxlZWVKCgoQFhYmKlMpVIhLCwM+fn5su3m5+ebxQNAeHi4KV4URWRlZWHAgAEIDw9Hjx49EBQUhB07dth8DK2WGKjVNRlh7W2Ld9Lr9XB1dcWAAQOs1q8vZuPGjRAE8wywoKAAkyZNQlJSEiZOnGgqd3d3R1xcHJYvXw6j0YijR49iy5YtuHHjBsaOHYuePXuabV5eXqioqDBruzZRqD0mIiKyT7XPSpDbAOD8+fMwGAymLSEhwaKN0tJSGI1GeHh4mJV7eHigpKREdr8lJSX1xl++fBnl5eVYvnw5Hn/8cezduxcTJ05EREQEPv/8c5uOsdUSgx49ekAQBNns6OWXX8b169ctTu5KY86ePYvQ0FCzsoCAAJSXl2PWrFkW8cuWLcPJkyehVqsRFBQESZKsbqIomg0TATXXflxcXEyjIEREZJ8amnzo5uZmtsldRmiWfv33R/ZTTz2FOXPmwN/fH/Hx8Rg/frzpUoNSrZYYODo6Ii4uDnFxcU0+k3/37t1ISkpqsvasOXjwILRaLZYtW4b58+c3+/6IiKj969atG9RqNS5dumRWfunSJXh6esrW8fT0rDe+W7du0Gg0ePDBB81iHnjggbZ/V8KdUlJSYDAY8MMPPzTpTP4jR45g+PDhTdaeNYGBgTh58iTKysqwZMmSZt8fERG1LhFyixsJEG1Y+VCr1SIgIAC5ubm/tiuKyM3NtbpQ34gRI8ziAWDfvn2meK1Wi2HDhuHEiRNmMSdPnpRdL6g+rf7YZVdX13Y7aU+n06Fv376t3Q0iImpn5s6di2nTpiEwMBDDhw9HSkoKKioqEBMTAwCIjo5Gr169TJMXZ82ahdDQUCQnJ2PcuHHIzMzEV199hTVr1pjafPXVVxEZGYnf/e53GDVqFPbs2YOdO3ciLy/Ppr61emJARETUXkiQHx2QbHxWQmRkJK5cuYIlS5agpKQE/v7+2LNnj2mCYVFRkdnieyEhIdiyZQtee+01LFy4ED4+PtixYwcGDRpkipk4cSJWr16NxMRExMXFYeDAgfjwww/xyCOP2NS3VlvHoKPiOgZE1FK4jkHTr2PwdM40OLhYvj9VFZX4MOyfMBgMFhPU2xuOGFD7IHP3Sd0vOLkvPKKOpO7JW/YzoeSELnOCF7UKTvAyZZKmzgld9uSt4KRf9wTvIHeCtyiyPOnLxtS/r46GiQEREZFC1p6L0JhnJbRV9nMkREREdNc4YkBERKRQ7e2JcuX2giMGREREZMIRAyIiIoVEK7cr2rLAUVvHxICIiEghXkogIiKiDoUjBkRERApxxICIiIg6lFZNDJKTk9G7d29oNBqcO3euNbvSKHl5edBoNOjXrx/WrVvX2t0hIqJmJvtkRSujCO1VqyUGN2/eRHx8PKKjo3H27Fl4e3sDqHn0pK+vLxYtWmQWn5WVBa1Wi+3bt6O6uhr33Xcf4uLiLNp98cUX4ePjg9LSUtn9Kq2bnZ0NQRCsbpGRkQgJCcHp06cxZswYzJs3D3zsBBGRfWNi0IyuXLmC6upqREREwNvbG2p1zRrbKpUKCQkJSEtLg8FgAADo9XpERkZixYoViIiIgEajQUJCAjZs2IBffvnF1GZiYiI+/PBD7N69G926dZPdr9K6o0aNQnFxsdl24cIFPPbYY+jatSsWLlwIrVaLPn36YOLEiSgrK0N5eXkzvmNERETNr9USA1EUAdScqOuKiopCly5dkJqaiqKiIowfPx4xMTGYM2eOKWbatGmmGABIT0/HW2+9hU8++QT3339/vftWUlen08HT09O0de/eHfPmzYNer0dubi78/PxM7Tk41DyUxGg03sU7QkREbZ2EX9cyuHOzp/HiVksMbt26BeDXk+qdNBoNFixYgJSUFIwdOxbDhg3DqlWrzGK0Wi3mz5+P1NRUZGdn44UXXsCmTZswYsSIBvdta12j0YgpU6YgJyfHIim48xhu376t6NiJiIjaqlZJDIxGIzIzM6HT6dCnTx/ZmKioKJSXl0MQBGRkZEClsuzqCy+8ALVajSeeeAKJiYmIiIhQ3AeldWuTgr179yInJ8ciKQCA/v37Q6VSYevWrZxnQERkxzjHoBkcPHgQTk5OeOedd7Bu3Tq4urrKxsXGxgIASktLZZMCAHBycsKoUaMQEhKC2bNn29QPJXWNRiOmTp2KvXv3Ijc3F/7+/rJxnp6eSE1NxZw5c+Do6IiioiKb+kJERNRWtHhiEBgYiIKCAkRGRuKVV15BZWWlRczixYuRlZWFw4cPo7q6GuvXr7fa3jfffIOgoKBG9aW+urVJwaeffoqcnByrSQEAGAwGJCQkYMaMGdDr9fDy8mpUf4iIqG3jiEEz0Ol0eOihhzB//nwUFxfjzJkzZq+vXbsWycnJ2LlzJ/z8/DB79mwkJSWhqqrKoq0bN27ghx9+QEBAgM39qK+u0WhEdHS0KSkYMmRIvW199913MBgMiI+Px6BBg2QnVBIRUfvHxKAZderUCcCvkxABIDs7G7GxsUhPT0dwcDCAmksKBoMBmzZtsmjj66+/htFoxNChQ23ev7W6oigiOjoaO3bswObNm9GzZ0+UlJSYbXXvPqiddGjtsggREVF70WqJQe26BbW3LRYUFGDSpElISkrCxIkTTXHu7u6Ii4vD8uXLLU7Ier0erq6uGDBggEX7GzduhCBYz+Cs1T169Ci2bNmCGzduYOzYsejZs6fZ5uXlhYqKCrM6tf2qPSYiIrJPHDFoRj169IAgCMjPzwcABAQEoLy8HLNmzbKIXbZsGU6ePGlx4n355Zdx/fp12QTg7NmzCA0Ntbp/a3WDgoIgSZLVTRRFuLm5mdU5dOgQXFxcTKMgRERE7VWrJQaOjo6Ii4tDXFxcs8zk3717N5KSkpq0zboOHjwIrVaLZcuWYf78+c26LyIian2SJFjd7EWrzpJLSUnBW2+9hStXrjT5TP4jR440aXtyAgMDcfLkSXh4eECn0zX7/oiIqHXVrnQoV24vWn36vKura7udtKfT6dC3b9/W7gYREVGTafXEgIiIqL2wNtGQkw+JiIjILnHEoIXdfGq4ZWGdRFNSWWaeFsmoTHIql7BatKWgniSXLtaNkbkTRFk9BTEK2pFrS7YeUUei4HMq+1mq+9lR8v0i83lT9PmWi1EpiGnEd4lsXCOP3xRrZaKhPU0+5FcpERERmXDEgIiISKGOMMeAiQEREZFCvJRAREREHQpHDIiIiBSSrFxK4IgBERER2SWOGBARESkkAZAk+XJ7wcSAiIhIIRECBDt/VkKbuZSQnJyM3r17Q6PR4Ny5c63dHUXy8vKg0WjQr18/rFu3rrW7Q0REdNfaRGJw8+ZNxMfHIzo6GmfPnoW3tzcAQBRF+Pr6YtGiRWbxWVlZ0Gq12L59u01x1thSPzQ0FM8//zwAICQkBKdPn8aYMWMwb948SHLjS0REZDc6wmOX20RicOXKFVRXVyMiIgLe3t5Qq9UAAJVKhYSEBKSlpcFgMAAA9Ho9IiMjsWLFCkRERNgUZ43S+pIkobCwEEOHDgUAaLVa9OnTBxMnTkRZWRnKy8ub/s0hIiJqQW0iMRBFEQCg0VhOeYiKikKXLl2QmpqKoqIijB8/HjExMZgzZ06j4qxRUv/UqVO4fv06AgICzOo6ODgAAIxGo03HTURE7Uvtyodym71oE4nBrVu3APx6gr2TRqPBggULkJKSgrFjx2LYsGFYtWpVo+OsUVK/oKAAarUafn5+ZuW1/b59+7bi/REREbVFrZ4YGI1GZGZmQqfToU+fPrIxUVFRKC8vhyAIyMjIgEol322lcdY0VF+v12PgwIFwdnY2K+/fvz9UKhW2bt3KeQZERHZMkqxv9qJVE4ODBw/CyckJ77zzDtatWwdXV1fZuNjYWABAaWlpvSd7pXGNra/X6y0uIwCAp6cnUlNTMWfOHDg6OqKoqMjmfRMRUdvHyYfNLDAwEAUFBYiMjMQrr7yCyspKi5jFixcjKysLhw8fRnV1NdavXy/bltI4a5TU1+v1pomHdzIYDEhISMCMGTOg1+vh5eVl076JiIjailZNDHQ6HR566CHMnz8fxcXFOHPmjNnra9euRXJyMnbu3Ak/Pz/Mnj0bSUlJqKqqalScNUrqnzlzBteuXZMdMfjuu+9gMBgQHx+PQYMGyU6iJCKi9q8pRwzS0tLQt29fODk5ISgoCEeOHKk3ftu2bfD19YWTkxMGDx6M7Oxss9efe+45CIJgtj3++OM296vV5xgAQKdOnQD8OgkRALKzsxEbG4v09HQEBwcDqBnqNxgM2LRpk81x1iitX1BQAEEQ4O/vb9FG7aRDa5dCiIiI7rR161bMnTsXS5cuhV6vh5+fH8LDw3H58mXZ+EOHDmHy5MmYPn06CgsLMWHCBEyYMAHHjx83i3v88cdRXFxs2jIyMmzuW5tIDGrXLai9bbGgoACTJk1CUlISJk6caIpzd3dHXFwcli9fDqPRqDgOADZu3AhBMM/obKmv1+vh4+NjSmLuVBtTexxERGSfmup2xb/97W/405/+hJiYGDz44INYvXo1nJ2dsWHDBtn4VatW4fHHH8err76KBx54AG+++SaGDh2K1NRUszhHR0d4enqatnvuucfmY2wTiUGPHj0gCALy8/MBAAEBASgvL8esWbMsYpctW4aTJ09CrVYrjgOAs2fPIjQ01CzGlvqJiYk4ceKEbP8PHToEFxcX2aSBiIjsR0N3JZSVlZltcrexV1ZWoqCgAGFhYaYylUqFsLAw03mwrvz8fLN4AAgPD7eIz8vLQ48ePTBw4EDMmDEDP//8s83H2CYSA0dHR8TFxSEuLq7ZZvXv3r0bSUlJTdrmwYMHodVqsWzZMsyfP79J2yYiovbH29sb7u7upi0xMdEiprS0FEajER4eHmblHh4eKCkpkW23pKSkwfjHH38c77//PnJzc7FixQp8/vnnGDNmjM2L77WZWXIpKSl46623cOXKlWaZ1d/QpI7GCAwMxMmTJ+Hh4QGdTtfk7RMRUdtSMzpgedmgdsTg/PnzcHNzM5U7Ojq2VNfwzDPPmP49ePBgPPTQQ+jfvz/y8vLw6KOPKm6nzSQGQM3kvfY0gU+n06Fv376t3Q0iImoj3NzczBIDOd26dYNarcalS5fMyi9dugRPT0/ZOp6enjbFA8B9992Hbt264ccff7QpMWgTlxKIiIjag6a4XVGr1SIgIAC5ubmmMlEUkZubixEjRsjWGTFihFk8AOzbt89qPABcuHABP//8M3r27Km4bwATAyIiohY3d+5crF27Fv/85z/x/fffY8aMGaioqEBMTAwAIDo6GgkJCab4WbNmYc+ePUhOTsYPP/yA119/HV999ZVpxd7y8nK8+uqrOHz4MM6dO4fc3Fw89dRTuP/++xEeHm5T39rUpYSOQPdx0891ICJqSoLMIm1CnXlUgqPWMsbJyaJMcqoTp7V8WJ7oaF4mOlnuX9Ka/441OlreHm7UWv7WFbVCnRjLX/ZGh7oxFiG/9uO/m1y5LSIjI3HlyhUsWbIEJSUl8Pf3x549e0wTDIuKisyW5g8JCcGWLVvw2muvYeHChfDx8cGOHTswaNAgADW3y3/zzTf45z//iWvXrsHLywujR4/Gm2++afM8B0HiU39a1GOqP7Z2F4iI6sXEwCIEeckvwN3dHfe9vxBqZ8vjNN64hTPR78BgMDQ4x6Ct46UEIiIiMuGlBCIiIqWa6lpCG8YRAyIiIjLhiAEREZFS1m5NbMTTFdsqJgZEREQK3flchLrl9oKXEoiIiMiEIwZEREQKWVvl0JaVD9u6NjdikJycjN69e0Oj0eDcuXOt3Z165eXlQaPRoF+/fli3bl1rd4eIiOiutanE4ObNm4iPj0d0dDTOnj0Lb29vAEB2djYEQbC6RUZGorq6Gvfddx/i4uIs2n3xxRfh4+OD0tLSevcfGhqK559/HgAUtffggw/i9OnTGDNmDObNmweuFUVEZOckwfpmJ9pUYnDlyhVUV1cjIiIC3t7eUKtrVrYaNWoUiouLzbYLFy7gscceQ9euXbFw4UJoNBokJCRgw4YN+OWXX0xtJiYm4sMPP8Tu3bvRrVs3q/uWJAmFhYUYOnQoAChqr0ePHujTpw8mTpyIsrIylJeXN9M7Q0RE1DLaVGIgiiKAmpPynXQ6HTw9PU1b9+7dMW/ePOj1euTm5sLPzw8AMG3aNHTp0gWpqakAgPT0dLz11lv45JNPcP/999e771OnTuH69esICAgwlSltz8GhZjlPo9F4l+8AERG1ZbV3Jcht9qJNTT68desWgF9PtHKMRiOmTJmCnJwcs6QAqHmU5fz587Fs2TIEBgbihRdeQHp6er2PpaxVUFAAtVrdqPZq+3v79m2bjpeIiNoZrnzYcoxGIzIzM6HT6dCnTx+rMVOmTMHevXuRk5NjdhKv9cILL0CtVuOJJ55AYmIiIiIiFO1fr9dj4MCBcHZ2trm9/v37Q6VSYevWrZxnQERE7VqbSAwOHjwIJycnvPPOO1i3bh1cXV0tYoxGI6ZOnYq9e/ciNzcX/v7+sm05OTlh1KhRCAkJwezZsxX3Qa/Xm11GsKU9T09PpKamYs6cOXB0dERRUZHi/RIRUftRe7ui3GYv2kRiEBgYiIKCAkRGRuKVV15BZWWl2eu1ScGnn36KnJwcq0lBrW+++QZBQUE29UGv15smHtransFgQEJCAmbMmAG9Xg8vLy+b9k1ERNRWtInEQKfT4aGHHsL8+fNRXFyMM2fOmF4zGo2Ijo42JQVDhgypt60bN27ghx9+kP31b82ZM2dw7do12TpK2vvuu+9gMBgQHx+PQYMGWUyeJCIiOyLJbHakTZ3BOnXqBODXSYiiKCI6Oho7duzABx98gJ49e6KkpMSsTvfu3U23NQLA119/DaPRaPXXv5yCggIIgiA7EqGkvdpJh3KXQIiIyH50hJUP21RiUHuCr71t8ejRo9iyZQsAYOzYsRbxgiDg2rVrcHNzM5Xp9Xq4urpiwIABFvEbN25ETEyMxQRBvV4PHx8fU2JS9zVr7dWqvU3xzgSFiIioPWoTlxJq9ejRA4IgID8/HwAQFBQESZKsbqIomiUFAPDyyy/j+vXrEATL7O3s2bMIDQ21KE9MTMSJEydk+1Rfe7UOHToEFxcX2cSCiIjsiNxlBDu7nNCmEgNHR0fExcUhLi6uWWb37969G0lJSU3W3sGDB6HVarFs2TLMnz+/ydolIiJqLW3qUgIApKSk4K233sKVK1eafHb/kSNHmrS9wMBAnDx5Eh4eHtDpdE3aNhERtUXCfze5cvvQ5hIDoGYSX3uYyKfT6dC3b9/W7gYREVGTaZOJARERUZvUAZZEZmJARESkFBMDamq3xw6zLKxzaUqSuwOibozctFGZahZtycYoaadujMx9vAouuzVVTE1cw8dG1JE06rMsE6foM9iMbSv5DmzpY+tImBgQEREpJQny2YUdLXDUpm5XJCIiotbFEQMiIiKFJKlmkyu3F0wMiIiIlOoAkw95KYGIiIhMOGJARESkFCcfEhERUUfCEQMiIiKFBKlmkyu3FxwxICIiIhMmBnfIzs6GIAhWt8jISIiiCF9fXyxatMisblZWFrRaLbZv395KvSciomYn1bPZCSYGdxg1ahSKi4vNtgsXLuCxxx5D165dsXDhQqhUKiQkJCAtLQ0GgwEAoNfrERkZiRUrViAiIqKVj4KIiJpN7eRDuc1OMDG4g06ng6enp2nr3r075s2bB71ej9zcXPj5+QEAoqKi0KVLF6SmpqKoqAjjx49HTEwM5syZ08pHQEREdHeYGFhhNBoxZcoU5OTkmCUFAKDRaLBgwQKkpKRg7NixGDZsGFatWtWKvSUiohbBSwkdU21SsHfvXuTk5JglBbWioqJQXl4OQRCQkZEBlYpvJRERtX+8XbEOo9GIqVOnYu/evcjNzYW/v79sXGxsLACgtLSUSQERUUfBJZE7ltqk4NNPP0VOTo7VpGDx4sXIysrC4cOHUV1djfXr17dsR4mIqHXwUkLHYTQaER0dbUoKhgwZIhu3du1aJCcnY+fOnfDz88Ps2bORlJSEqqqqFu4xERFR02NiAEAURURHR2PHjh3YvHkzevbsiZKSErPNaDQiOzsbsbGxSE9PR3BwMICaSwoGgwGbNm1q5aMgIqJm1wFuV+QcAwBHjx7Fli1bAABjx461eF0QBOzfvx+TJk1CUlISJk6caHrN3d0dcXFxWL58OaZNmwa1Wt1i/SYiImpqTAwABAUFQZIavkBUXl4uW75s2TIsW7asqbtFRERtDJ+VQERERM0iLS0Nffv2hZOTE4KCgnDkyJF647dt2wZfX184OTlh8ODByM7Othr74osvQhAEpKSk2NwvJgZERERKNdFdCVu3bsXcuXOxdOlS6PV6+Pn5ITw8HJcvX5aNP3ToECZPnozp06ejsLAQEyZMwIQJE3D8+HGL2I8++giHDx+Gl5eXbZ36LyYGRERETaSsrMxsu337tmzc3/72N/zpT39CTEwMHnzwQaxevRrOzs7YsGGDbPyqVavw+OOP49VXX8UDDzyAN998E0OHDkVqaqpZ3MWLFzFz5kykp6fDwcGhUcfAxICIiKiJeHt7w93d3bQlJiZaxFRWVqKgoABhYWGmMpVKhbCwMOTn58u2m5+fbxYPAOHh4Wbxoihi6tSpePXVV/Gb3/ym0cfAyYdEREQKCbAy+fC////8+fNwc3MzlTs6OlrElpaWwmg0wsPDw6zcw8MDP/zwg+x+S0pKZONLSkpMf69YsQIajQZxcXHKDsYKJgYtbGryTosytSCa/a2CKBNj/l+iWiZGJcjUq3Phq+6+5PYnF1O3Hfk+KqgnG1Nn/zIX6xQdmz0tPUbUCCqL7wmZz5JMmeX3i1y9unVk9i/Tp7o3cKsFy4oWbUMmpk492RiZHtTdn1yMqk5basEyphzTLcrkuLm5mSUGLaWgoACrVq2CXq+HIPMe24KXEoiIiJRqggWOunXrBrVajUuXLpmVX7p0CZ6enrJ1PD09640/ePAgLl++jHvvvRcajQYajQY//fQT5s2bh759+9p0iEwMiIiIlGqCuxK0Wi0CAgKQm5trKhNFEbm5uRgxYoRsnREjRpjFA8C+fftM8VOnTsU333yDY8eOmTYvLy+8+uqr+PTTT205Ql5KICIiamlz587FtGnTEBgYiOHDhyMlJQUVFRWIiYkBAERHR6NXr16myYuzZs1CaGgokpOTMW7cOGRmZuKrr77CmjVrAABdu3ZF165dzfbh4OAAT09PDBw40Ka+MTEgIiJSqokeuxwZGYkrV65gyZIlKCkpgb+/P/bs2WOaYFhUVASV6tdB/ZCQEGzZsgWvvfYaFi5cCB8fH+zYsQODBg1q/LFYIUhK1gKmJrP2xG8tyjj5kJMPiZoCJx824+RD5wK4u7ujzztvQ+XkZPG6eOsWflq4CAaDoVUmHzYljhgQEREpxGclEBERUYfCEQMiIiKlmmiOQVvGxICIiEipDpAY8FKCQqGhoXj++ecB1Nxv6uvri0WLFpnFZGVlQavVYvv27a3RRSIiorvGxEABSZJQWFiIoUOHAqh52EVCQgLS0tJgMBgAAHq9HpGRkVixYgUiIiJas7tERNRMaicfym32gomBAqdOncL169cREBBgKouKikKXLl2QmpqKoqIijB8/HjExMZgzZ04r9pSIiOjuMDFQoKCgAGq1Gn5+fqYyjUaDBQsWICUlBWPHjsWwYcOwatWqVuwlERE1uyZ4VkJbx8RAAb1ej4EDB8LZ2dmsPCoqCuXl5RAEARkZGWarVBERkR1qgmcltHU8kymg1+vNLiPUio2NBVDzbG0mBUREZA94NlNAr9ebJh7WWrx4MbKysnD48GFUV1dj/fr1rdQ7IiJqKZx8SDhz5gyuXbtmNmKwdu1aJCcnY+fOnfDz88Ps2bORlJSEqqqqVuwpERHR3WNi0ICCggIIggB/f38AQHZ2NmJjY5Geno7g4GAANZcUDAYDNm3a1Io9JSKiZsc5BqTX6+Hj44NOnTqhoKAAkyZNQlJSEiZOnGiKcXd3R1xcHJYvXw6j0diKvSUiIro7fOxyC+Njl/nYZaLmwscuN/9jl+9b/A7UMo9dNt66hTNvLuRjl4mIiDoUPiuBiIiIOhKOGBARESnFEQMiIiLqSDhiQEREpJC1xYy4wBERERHZJY4YtLB/PeDZ2l1o8wSN5X+Wgk5nWeaoNf9b5hYioo5EcjL/TEDrYBEjOsqUOZl/5iSt5W9Go6P5jYdGmRhRa3kLobFOWd2/AcBYp0ui1iLEop5oeRjyZdq6MZY/7evWE7WWMV/HWLZtr5gYEBERKcXJh0RERNSRcMSAiIhIIU4+JCIiog6FIwZERES2sKPRATlMDIiIiJTi5EMiIiLqSDhiQEREpBAnH7ag5ORk9O7dGxqNBufOnWvt7iiSl5cHjUaDfv36Yd26da3dHSIiorvWJhKDmzdvIj4+HtHR0Th79iy8vb0BANnZ2RAEweoWGRlpU1x9QkND8fzzz5v+VtJmSEgITp8+jTFjxmDevHmQJDtKGYmIyJJUz2Yn2kRicOXKFVRXVyMiIgLe3t5Qq2uW3hw1ahSKi4vNtgsXLuCxxx5D165dsXDhQpvirJEkCYWFhRg6dKipTEmbWq0Wffr0wcSJE1FWVoby8vLme5OIiKjV1V5KkNvsRZuYYyCKIgBAU2eNfJ1OB90da+QbjUZERUVBr9cjNzcXfn5+NsVZc+rUKVy/fh0BAQE27xsAHBwcTDFERETtWZtIDG7dugXg1xOsHKPRiClTpiAnJ6fek73SuDsVFBRArVY3us3aft++fbvBfRERUTvG2xWbn9FoRGZmJnQ6Hfr06WM1ZsqUKdi7dy9ycnIaPIE3FFeXXq/HwIED4ezs3Kg2+/fvD5VKha1bt3KeARERtWutmhgcPHgQTk5OeOedd7Bu3Tq4urpaxBiNRkydOhV79+5Fbm4u/P39ZdtSGidHr9ebXUawtU1PT0+kpqZizpw5cHR0RFFRkeJ9ExFRO8LJh80rMDAQBQUFiIyMxCuvvILKykqz12tPzJ9++ilycnIaTAoairNGr9ebTTy0tU2DwYCEhATMmDEDer0eXl5eNu2fiIiorWjVxECn0+Ghhx7C/PnzUVxcjDNnzpheMxqNiI6ONp2YhwwZItuG0jhrzpw5g2vXrpmNGNja5nfffQeDwYD4+HgMGjTIYhIlERHZB96V0EI6deoE4NdJiKIoIjo6Gjt27MAHH3yAnj17oqSkxKxO9+7dIQiCorja2x/lFBQUQBAE04iA0n3f2WbtpEO5SyFERGRHOsDkwzaRGNSeZGtvWzx69Ci2bNkCABg7dqxFvCAIuHbtGr7//ntFcW5ubti4cSNiYmIsJgfq9Xr4+PiYkhOl+3ZzczOV1d6mWF8CQkRE1B60+l0JANCjRw8IgoD8/HwAQFBQECRJsrqJogg3NzfFcQBw9uxZhIaGWuw7MTERJ06cMP1tS5u1Dh06BBcXF1NyQUREdoqTD1uGo6Mj4uLiEBcX12yz+nfv3o2kpKQmbfPgwYPQarVYtmwZ5s+f36RtExERtYY2cSkBAFJSUvDWW2/hypUrzTKr/8iRI03eZmBgIE6ePAkPDw+zVRKJiMg+8emKLczV1RX9+vVrN7P6dTod+vbty6SAiKijaMJLCWlpaejbty+cnJwQFBTU4A/Ybdu2wdfXF05OThg8eDCys7PNXn/99dfh6+sLFxcX3HPPPQgLC8OXX35pc7/aVGJARETUEWzduhVz587F0qVLodfr4efnh/DwcFy+fFk2/tChQ5g8eTKmT5+OwsJCTJgwARMmTMDx48dNMQMGDEBqair+/e9/44svvkDfvn0xevRoXLlyxaa+CRLX8G1Rj6n+2NpdaPMEmREjQWZURnDUmv/t5NRsfSJqDyQn888EtJbPnxEdZcqczD9zktbyN6PR0fyuK6NMjKgVLOvVKav7NwAY63RJ1FqEWNQTZR6tI1umrRtjecqrW0/UWsZ8HfMnuLu744HYd6B2tPyuMd6+he9TF8JgMFhMUJcTFBSEYcOGITU1tWafoghvb2/MnDkT8fHxFvGRkZGoqKjArl27TGXBwcHw9/fH6tWrZfdRVlYGd3d35OTk4NFHH22wT7Xax5i9HdknbmvtLhARkY3KysoaFefo6AhHR0ezssrKShQUFCAhIcFUplKpEBYWZro7r678/HzMnTvXrCw8PBw7duyQja+srMSaNWvg7u6u+LlBpr7YFE1ERNSRNTDHwNvbG+7u7qYtMTHRoonS0lIYjUZ4eHiYlXt4eFgsqFerpKREUfyuXbvg6uoKJycnrFy5Evv27UO3bt1sOkSOGBARETWR8+fPm11KqDta0NxGjRqFY8eOobS0FGvXrsWkSZPw5ZdfokePHorb4IgBERGRUg2MGLi5uZltcolBt27doFarcenSJbPyS5cuwdPTU3a3np6eiuJdXFxw//33Izg4GOvXr4dGo8H69ettOkQmBkRERAoJ9WxKabVaBAQEIDc311QmiiJyc3MxYsQI2TojRowwiweAffv2WY2/s93a5/koxUsJRERELWzu3LmYNm0aAgMDMXz4cKSkpKCiogIxMTEAgOjoaPTq1cs0R2HWrFkIDQ1FcnIyxo0bh8zMTHz11VdYs2YNAKCiogJvv/02nnzySfTs2ROlpaVIS0vDxYsX8cc/2nY3HEcMiOzIzz//jB49euDcuXMtvu/g4GB8+OGHLb5fohbVRAscRUZG4q9//SuWLFkCf39/HDt2DHv27DFNMCwqKkJxcbEpPiQkBFu2bMGaNWvg5+eHDz74ADt27MCgQYMA1DzE74cffsDTTz+NAQMG4IknnsDPP/+MgwcP4je/+Y1NfeM6BkR2ZO7cubh+/TrWrl1rKisqKsKMGTOwf/9+uLq6Ytq0aUhMTLRphdEDBw7gL3/5CwoKClBcXIyPPvoIEyZMMIvZtWsX5syZgxMnTkClsu03R2VlJVJSUpCeno5Tp07B2dkZAwcOxAsvvIApU6ZApVLht7/9LTw9PbF9+3ZTPYPBgEGDBiE6Ohpvv/22TfskskXtmgAPzrC+jsF37ypfx6At44gBkZ24ceMG1q9fj+nTp5vKjEYjxo0bh8rKShw6dAj//Oc/sXHjRixZssSmtisqKuDn54e0tDSrMWPGjMH169exe/dum9qurKxEeHg4li9fjj//+c84dOgQjhw5gpdffhl///vf8e2330KtVmPjxo3Ys2cP0tPTTXVnzpyJLl26YOnSpTbtk6ixap+VILfZC84xILIT2dnZcHR0RHBwsKls7969+O6775CTkwMPDw/4+/vjzTffxIIFC/D6669Dq5VZYk7GmDFjMGbMmHpj1Go1xo4di8zMTIwbN05xv1NSUnDgwAF89dVXGDJkiKn8vvvuwx//+EdUVlYCqFnudfny5Zg5cyZ+//vf48iRI8jMzMTRo0cVHwfRXbN22cCOEgOOGBDZiYMHDyIgIMCsLD8/H4MHDzZbGCU8PBxlZWX49ttvm7wPw4cPx8GDB01/nzt3DoIgIC8vz2qd9PR0hIWFmSUFtRwcHODi4mL6e+bMmfDz88PUqVPx5z//GUuWLLF5VTciqh8TAyI78dNPP1k8stzaamm1rzU1Ly8vnD9/HqIoAqg5sQ8cOBDOzs5W65w6dQq+vr6K2hcEAe+++y5yc3Ph4eEhu6Y8UbNrgicrtmW8lEBkJ27evAmnVn6QlE6nM903rdPp0KtXL/zwww/11rF1/vOGDRvg7OyMs2fP4sKFC+jbt+9d9JiI6uKIAZGd6NatG65evWpWZm21tNrXmtovv/wCFxcX6GSehmnNgAEDGkweah06dAgrV67Erl27MHz4cEyfPt3mxILobnSEyYdMDIjsxJAhQ/Ddd9+ZlY0YMQL//ve/zZ7xvm/fPri5ueHBBx9s8j4cP35cdq5AfZ599lnk5OSgsLDQ4rWqqipUVFQAqLnr4rnnnsOMGTMwatQorF+/HkeOHLH6yFkiahwmBkR2Ijw8HN9++63ZqMHo0aPx4IMPYurUqfj666/x6aef4rXXXsPLL79s08NdysvLcezYMRw7dgwAcPbsWRw7dgxFRUVmcQcPHsTo0aNNf1+8eBG+vr44cuSI1bZnz56Nhx9+GI8++ijS0tLw9ddf48yZM/jXv/6F4OBgnDp1CgCQkJAASZKwfPlyAEDfvn3x17/+FfPnz2+VBZ2og2qiBY7aMiYGRHZi8ODBGDp0KP71r3+ZytRqNXbt2gW1Wo0RI0ZgypQpiI6OxrJly0wxSu4cqL2VsHY0YO7cuRgyZIjZeggXL17EoUOHTEu6AjW/+E+cOIEbN25YbdvR0RH79u3D/Pnz8Y9//APBwcEYNmwY/ud//gdxcXEYNGgQPv/8c6SlpeG9994zm8j4//7f/0NISAgvKVCL6QiXErjyIZEdycrKwquvvorjx48rXn1w//79iIiIwJkzZ3DPPfc0et8LFizA1atXTWu3E9mT2pUPB7/wDtRamZUPK2/h3+vsY+VD3pVAZEfGjRuHU6dO4eLFi/D29lZUJzs7GwsXLryrpAAAevTogblz595VG0RtXgdY4IgjBkRERA0wjRhMr2fEYD1HDIiIiDoUa/MJ7GmOARMDIiIipTrApQTelUBEREQmHDEgIiJSiiMGRERE1JFwxICIiEihjjD5kCMGREREZMIRAyIiIqU6wBwDJgZEREQKCZIEQWZdQLmy9oqXEoiIiMiEIwZERERKdYBLCRwxICIiIhOOGBARESnUEW5XZGJARESkFC8lEBERUUfCEQMiIiKFeCmBmtyTB2MtylSCWOfvhv8Lk4uRLaszvqWsbdGiTF2nXt12m7ttJW0p2T+RPVOjcZ+JunF121Hallrm813386wkRknbst8lst9LlnEN1ZOrM81rR4Pt2AsmBkREREpxjgERERF1JBwxICIiUohzDIiIiOhXvJRAREREHQlHDIiIiGxgT5cN5HDEgIiIiEw4YkBERKSUJNVscuV2wq5GDERRhK+vLxYtWmRWnpWVBa1Wi+3btzeq3dDQUDz//PPNug8iImr7au9KkNvshV0lBiqVCgkJCUhLS4PBYAAA6PV6REZGYsWKFYiIiDCLz8zMRFBQEHQ6Hbp27YrJkyfj5MmTZjGSJKGwsBBDhw5t1D6IiIjaE7tKDAAgKioKXbp0QWpqKoqKijB+/HjExMRgzpw5ZnHx8fF44403sGjRIhQXF0Ov12Pw4MF4+OGHcfToUVPcqVOncP36dQQEBNi8DyIisjNSPZudsLvEQKPRYMGCBUhJScHYsWMxbNgwrFq1yiwmLy8PGRkZeOmll3DgwAF07twZDg4OOHDgABYvXoxnn30W1dXVAICCggKo1Wr4+fnZtA8iIqL2yO4SA6DmF315eTkEQUBGRgZUKvPDfP/99zFv3jyMHj0aGRkZmD59OkaOHInOnTvjpZdegouLC/Lz8wHUXCYYOHAgnJ2dbdoHERHZH0G0vtkLuzybxcbWPMGwtLRU9oR94cIF+Pj4YODAgdi8eTM2bNgAURSxefNmaDQaDBgwABcuXABQkxjceRlB6T6IiIjaI7s7oy1evBhZWVk4fPgwqqursX79eouYXr164fTp0zh37hymT5+OSZMmobq6Gi+++CJEUcSPP/4ILy8vADWJQe3EQ1v2QUREdohzDNqXtWvXIjk5GTt37oSfnx9mz56NpKQkVFVVmcVFRUVh5cqV2L59Ox599FFkZGTg888/x6lTp7B69WpcvXoVISEhOHPmDK5du2Y2YqB0H0REZH+a8nbFtLQ09O3bF05OTggKCsKRI0fqjd+2bRt8fX3h5OSEwYMHIzs72/RaVVUVFixYgMGDB8PFxQVeXl6Ijo7Gf/7zH5v7ZTeJQXZ2NmJjY5Geno7g4GAANcP9BoMBmzZtMosNCwvDk08+iY0bN2LSpEmorKyETqfDU089haVLlyI9PR0ODg4oKCiAIAjw9/e3eR9ERETWbN26FXPnzsXSpUuh1+vh5+eH8PBwXL58WTb+0KFDmDx5MqZPn47CwkJMmDABEyZMwPHjxwEAN27cgF6vx+LFi6HX67F9+3acOHECTz75pM19EySp/S/XVFBQgNDQULz99tuYNWuW2WtLlixBZmYmvv/+e6jVarPXNmzYgL/97W/4/vvv4eTkhEcffRTvvPMOBg0aBABISEgwvbmN3UddTx6MtShT1Zm1olKQesrFyJbVGd9S1rblLBp1nXp1223utpW0pWT/RPZMjcZ9JurG1W1HaVtqmc933c+zkhglbct+l8h+LzU8K7BuPbk607x2wN3dHcOffBMaByeL16urbuHIJ4thMBjg5ubW4D6DgoIwbNgwpKamAqhZPM/b2xszZ85EfHy8RXxkZCQqKiqwa9cuU1lwcDD8/f2xevVq2X0cPXoUw4cPx08//YR77723wT7VsovE4G6JothiEwiZGDAxIGouTAxaPzE4f/68WWLg6OgIR0dHs9jKyko4Ozvjgw8+wIQJE37dx7RpuHbtGj7++GOL9u+9917MnTsXs2fPNpUtXboUO3bswNdffy17XDk5ORg9ejSuXbumKFmpZTeXEu4G7yogIiIlGppj4O3tDXd3d9OWmJho0UZpaSmMRiM8PDzMyj08PFBSUiK735KSEpvib926hQULFmDy5Mk2JQUAH6JERESknLU7EP5bJjdi0NKqqqowadIkSJKEd9991+b6TAyIiIiaiJubW4O/0Lt16wa1Wo1Lly6ZlV+6dAmenp6ydTw9PRXF1yYFP/30Ez777DObRwsAXkogIiJSrCluV9RqtQgICEBubq6pTBRF5ObmYsSIEbJ1RowYYRYPAPv27TOLr00KTp06hZycHHTt2tW2g/svjhgQERG1sLlz52LatGkIDAzE8OHDkZKSgoqKCsTExAAAoqOj0atXL9MchVmzZiE0NBTJyckYN24cMjMz8dVXX2HNmjUAapKCP/zhD9Dr9di1axeMRqNp/kGXLl2g1WoV942JQQv7ZWUfizJJEMwLBIsQmToyhTJlsnEW9cyDlLStqF2l9SxiFDbe2D4R2asm+u5Q+v2iJMairSbro0xQM/Zx2rLaYKlms2jEtruiIiMjceXKFSxZsgQlJSXw9/fHnj17TBMMi4qKzCbGh4SEYMuWLXjttdewcOFC+Pj4YMeOHabb6y9evIhPPvkEAExr79Tav38/Ro4cqbhvvF2xhT0S8ReLMiYGdWOYGBA1ChODhjWyj18smw53d3cEj11m9XbFw9lLFK9j0JZxxICIiEgha/MJ7GkZFSYGRERESjVwu6I94F0JREREZMIRAyIiIoU6wqUEjhgQERGRCUcMiIiIlBKlmk2u3E4wMSAiIlKKkw+JiIioI2m3iUF2djYEQbC6RUZGNkuboijC19cXixYtMqublZUFrVaL7du3N9UhEhFRGyPAyrMSWrtjTajdJgajRo1CcXGx2XbhwgU89thj6Nq1KxYuXGiKzczMRFBQEHQ6Hbp27YrJkyfj5MmTjWpTpVIhISEBaWlpMBgMAAC9Xo/IyEisWLECERERLfYeEBERNbV2mxjodDp4enqatu7du2PevHnQ6/XIzc2Fn58fACA+Ph5vvPEGFi1ahOLiYuj1egwePBgPP/wwjh492qg2o6Ki0KVLF6SmpqKoqAjjx49HTEwM5syZ0+LvAxERtaDaZyXIbXai3SYGdzIajZgyZQpycnLMTuB5eXnIyMjASy+9hAMHDqBz585wcHDAgQMHsHjxYjz77LOorq62qU0A0Gg0WLBgAVJSUjB27FgMGzYMq1atapFjJSIiak7tPjGoPYHv3bsXOTk5Zifw999/H/PmzcPo0aORkZGB6dOnY+TIkejcuTNeeukluLi4ID8/36Y2a0VFRaG8vByCICAjI8PsKVhERGSfZOcXWFn0qL1q12czo9GIqVOnYu/evcjNzbV41OSFCxfg4+ODgQMHYvPmzdiwYQNEUcTmzZuh0WgwYMAAXLhwwaY2a8XGxgIASktLmRQQEXUUUj2bnWi3Z7TaE/inn36KnJwc2RN4r169cPr0aZw7dw7Tp0/HpEmTUF1djRdffBGiKOLHH3+El5eXTW0CwOLFi5GVlYXDhw+juroa69evb6ajJCIialntMjEwGo2Ijo42ncCHDBkiGxcVFYWVK1di+/btePTRR5GRkYHPP/8cp06dwurVq3H16lWEhITY1ObatWuRnJyMnTt3ws/PD7Nnz0ZSUhKqqqqa7XiJiKhtECTJ6mYv2l1iIIoioqOjsWPHDmzevBk9e/ZESUmJ2WY0GgEAYWFhePLJJ7Fx40ZMmjQJlZWV0Ol0eOqpp7B06VKkp6fDwcFBcZvZ2dmIjY1Feno6goODAdRcUjAYDNi0aVNrvi1ERERNot0tiXz06FFs2bIFADB27FiL1wVBwLVr1+Dm5gYAWLlyJTZs2IA5c+bg+++/h5OTEx599FHs378fgwYNUtzm/v37MWnSJCQlJWHixImm19zd3REXF4fly5dj2rRpUKvVTX7MRETURoj/3eTK7YQgSXY0/tEAURRbfaLgIxF/sSiThDprZilYQkuSi5Epk42zqGcepKRtRe0qrWcRo7DxxvaJyF410XeH0u8XJTEWbTVZH2WCmrGPXyybDnd3d/zut0ug0ThZvF5dfQsHDi6DwWAw/TBtr9rdpYS70dpJARERUVvX7i4lEBERtRo+XZGIiIg6Eo4YEBERKWXtuQh2NF2PIwZERERkwhEDIiIihaw9F8GenpXAxKCF6XYcae0uNEzmNiCh7voMMus1WMTIxAlqmUGquvVUcm0rqKf0Nkcie1X3cyJzJ5Yk91mqG6cgRlLLfN5k9yfYHCOpLNu2KJPZv5J6cv22iKlvLJ2XEoiIiKgj4YgBERGRQoJYs8mV2wuOGBAREZEJRwyIiIiU6gBzDJgYEBERKcWVD4mIiKgj4YgBERGRQoIkQZC5bCBX1l5xxICIiIhMWi0xSE5ORu/evaHRaHDu3LnW6sZdycvLg0ajQb9+/bBu3brW7g4RETW32smHcpudaFRiEBoaiueff77RO7158ybi4+MRHR2Ns2fPwtvb2/SaKIrw9fXFokWLzOpkZWVBq9Vi+/btqK6uxn333Ye4uDiLtl988UX4+PigtLRUdt9K62ZnZ0MQBKtbZGQkQkJCcPr0aYwZMwbz5s2DZEf/YRARUcdkc2IgSRIKCwsxdOhQs/LMzEwEBQVBp9Oha9eumDx5Mk6ePCnbxpUrV1BdXY2IiAh4e3tDfcfStiqVCgkJCUhLS4PBYAAA6PV6REZGYsWKFYiIiIBGo0FCQgI2bNiAX375xVQ3MTERH374IXbv3o1u3brJ7ltp3VGjRqG4uNhsu3DhAh577DF07doVCxcuhFarRZ8+fTBx4kSUlZWhvLzc1reTiIjaEwmAKLPZ0e9CmxODU6dO4fr16wgICDCVxcfH44033sCiRYtQXFwMvV6PwYMH4+GHH8bRo0ct2hDFmiWiNBr5uY9RUVHo0qULUlNTUVRUhPHjxyMmJgZz5swxxUybNs0UAwDp6el466238Mknn+D++++v9xiU1NXpdPD09DRt3bt3x7x586DX65Gbmws/Pz9Tew4ODgAAo9HY4PtHRETtV+3kQ7nNXticGBQUFECtVptOjHl5ecjIyMBLL72EAwcOoHPnznBwcMCBAwewePFiPPvss6iurjZr49atWwB+PaHWpdFosGDBAqSkpGDs2LEYNmwYVq1aZRaj1Woxf/58pKamIjs7Gy+88AI2bdqEESNGNHgMttY1Go2YMmUKcnJyLJKCO4/j9u3bDe6biIioLbM5MdDr9Rg4cCCcnZ0BAO+//z7mzZuH0aNHIyMjA9OnT8fIkSPRuXNnvPTSS3BxcUF+fr6pvtFoRGZmJnQ6Hfr06WN1P1FRUSgvL4cgCMjIyIBK5olcL7zwAtRqNZ544gkkJiYiIiJC8XEorVubFOzduxc5OTkWSQEA9O/fHyqVClu3buU8AyIieybByuTD1u5Y02lUYnDnZYQLFy7Ax8cHAwcOxObNm7FhwwaIoojNmzdDo9FgwIABuHDhAgDg4MGDcHJywjvvvIN169bB1dXV6n5iY2MBAKWlpbJJAQA4OTlh1KhRCAkJwezZs206DiV1jUYjpk6dir179yI3Nxf+/v6ycZ6enkhNTcWcOXPg6OiIoqIim/pCRETUVjQqMbhz4mGvXr1w+vRpnDt3DtOnT8ekSZNQXV2NF198EaIo4scff4SXlxcAIDAwEAUFBYiMjMQrr7yCyspK2X0sXrwYWVlZOHz4MKqrq7F+/Xqr/fnmm28QFBRk62E0WLc2Kfj000+Rk5NjNSkAAIPBgISEBMyYMQN6vd50vEREZGd4u6K5M2fO4Nq1a2YjBlFRUVi5ciW2b9+ORx99FBkZGfj8889x6tQprF69GlevXkVISAiAmgl9Dz30EObPn4/i4mKcOXPGYh9r165FcnIydu7cCT8/P8yePRtJSUmoqqqyiL1x4wZ++OEHs/4oVV9do9GI6OhoU1IwZMiQetv67rvvYDAYEB8fj0GDBlmdVElERO2c3B0JtZudsCkxKCgogCAIZr+ew8LC8OSTT2Ljxo2YNGkSKisrodPp8NRTT2Hp0qVIT0+3mGTYqVMnAL9OQqyVnZ2N2NhYpKenIzg4GEDNJQWDwYBNmzZZ9Ofrr7+G0Wi0uHVSCWt1RVFEdHQ0duzYgc2bN6Nnz54oKSkx2+refVA76bC+SyNERETtgU2JgV6vh4+Pj+nEXmvlypWYPXs25syZAxcXF/Tr1w95eXnYv3+/abTgTrXrFtTetgjUJB2TJk1CUlISJk6caCp3d3dHXFwcli9fbnFC1uv1cHV1xYABAyz2sXHjRgiCUO+xyNU9evQotmzZghs3bmDs2LHo2bOn2ebl5YWKigqzOrX9unM9BiIisj+8XbGOxMREnDhxQva1559/HsePH0dVVRUqKirwySefYNCgQbKxPXr0gCAIZncrBAQEoLy8HLNmzbKIX7ZsGU6ePGlx4n355Zdx/fp12QTg7NmzCA0NtXos1uoGBQVBkiSrmyiKcHNzM6tz6NAhuLi4WCRMRERE1qSlpaFv375wcnJCUFAQjhw5Um/8tm3b4OvrCycnJwwePBjZ2dlmr2/fvh2jR49G165dIQgCjh071qh+NfmzEqzdQXAnR0dHxMXFIS4urtlm8e/evRtJSUlN3u6dDh48CK1Wi2XLlmH+/PnNui8iImoDmmjy4datWzF37lwsXboUer0efn5+CA8Px+XLl2XjDx06hMmTJ2P69OkoLCzEhAkTMGHCBBw/ftwUU1FRgUceeQQrVqy4q0MUpFa88b68vBxXrlyBt7d3u5ywd/PmTVy6dAkeHh7Q6XSK6jym+mMz96oJyIzACHUvk8hcNrGIkYkT1DKJY916Krm2FdSr59IRUYdQ93Mi80NNkvss1Y1TECOpZT5vsvsTbI6RVJZtW5TJ7F9JPbl+W8TIHP6uLS/C3d0dj/7mVWjUjhavVxtvI/fbv8BgMFiMKssJCgrCsGHDTCvwiqIIb29vzJw5E/Hx8RbxkZGRqKiowK5du0xlwcHB8Pf3x+rVq81iz507h379+qGwsLDeO+qsadXHLru6uqJfv37tMikAau6y6Nu3r+KkgIiI2rkGRgzKysrMNrkVcSsrK1FQUICwsDBTmUqlQlhYmNkl9jvl5+ebxQNAeHi41fi70aqJARERUbvSQGLg7e0Nd3d305aYmGjRRGlpKYxGIzw8PMzKPTw8UFJSIrvbkpISm+LvRvv8qU5ERNQGnT9/3uxSgqOj5WWHto6JQQurGh1oUWZxfUvuUnmdsR3Za2kyl/iVXDtTsv+69ZS0o7xenQIF+5dvm3MMqINrzOcNsPjMKfu8NV3bjdu/zPQ4JfXkviaU9LGWaBlvKgfg5ubW4ByDbt26Qa1W49KlS2blly5dgqenp2wdT09Pm+LvBi8lEBERtSCtVouAgADk5uaaykRRRG5urtWn/I4YMcIsHgD27dun6InCtuKIARERkULWFjOydYGjuXPnYtq0aQgMDMTw4cORkpKCiooKxMTEAACio6PRq1cv0xyFWbNmITQ0FMnJyRg3bhwyMzPx1VdfYc2aNaY2f/nlFxQVFeE///kPAJjWHfL09LRpZIGJARERkVLW1iywMTGIjIzElStXsGTJEpSUlMDf3x979uwxTTAsKioyWxcoJCQEW7ZswWuvvYaFCxfCx8cHO3bsMFtI8JNPPjElFgDwzDPPAACWLl2K119/XXHfWnUdg45o5OOWC09wjkGdAs4xIGoczjFouF4j5xgc+9MLcHd3R5jPHKvrGOScWql4HYO2jCMGRERESokSIMgkJaL9/Mbm5EMiIiIy4YgBERGRUk00x6At44gBERERmXDEgIiISDFrT1LkiEGTSk5ORu/evaHRaHDu3LnW7o5ieXl50Gg06NevH9atW9fa3SEioubWRI9dbsvuOjEIDQ3F888/3+j6N2/eRHx8PKKjo3H27Fl4e3ubXhNFEb6+vli0aJFZnaysLGi1Wmzfvt2mOGtsqX/n8YaEhOD06dMYM2YM5s2bB975SURE7d1dJQaSJKGwsBBDhw41K8/MzERQUBB0Oh26du2KyZMn4+TJk7JtXLlyBdXV1YiIiIC3tzfU6l9vxlepVEhISEBaWhoMBgMAQK/XIzIyEitWrEBERIRNcdYorV/3eLVaLfr06YOJEyeirKwM5eXltr6FRETUnoiS9c1O3FVicOrUKVy/fh0BAQGmsvj4eLzxxhtYtGgRiouLodfrMXjwYDz88MM4evSoRRuiWPPkCY1GfrpDVFQUunTpgtTUVBQVFWH8+PGIiYnBnDlzGhVnjZL6cscLAA4ODgAAo9GoaF9ERERt1V0lBgUFBVCr1fDz8wNQc809IyMDL730Eg4cOIDOnTvDwcEBBw4cwOLFi/Hss8+iurrarI1bt24B+PXkWpdGo8GCBQuQkpKCsWPHYtiwYVi1alWj46xRUr/u8daq7fvt27cV74+IiNohSbS+2Ym7Sgz0ej0GDhwIZ2dnAMD777+PefPmYfTo0cjIyMD06dMxcuRIdO7cGS+99BJcXFyQn59vqm80GpGZmQmdToc+ffpY3U9UVBTKy8shCAIyMjLM1o9uTFxj91P3eGv1798fKpUKW7du5TwDIiJ7xsmH9dPr9WbD6hcuXICPjw8GDhyIzZs3Y8OGDRBFEZs3b4ZGo8GAAQNw4cIFAMDBgwfh5OSEd955B+vWrYOrq6vV/cTGxgIASktL6z3ZK41rbP26x1vL09MTqampmDNnDhwdHVFUVGTzvomIiNqCu04M7px42KtXL5w+fRrnzp3D9OnTMWnSJFRXV+PFF1+EKIr48ccf4eXlBQAIDAxEQUEBIiMj8corr6CyslJ2H4sXL0ZWVhYOHz6M6upqrF+//q7irFFSv+7x1jIYDEhISMCMGTOg1+tNx0hERHaGkw+tO3PmDK5du2b2CzoqKgorV67E9u3b8eijjyIjIwOff/45Tp06hdWrV+Pq1asICQkBAOh0Ojz00EOYP38+iouLcebMGYt9rF27FsnJydi5cyf8/Pwwe/ZsJCUloaqqqlFx1iipL3e8tb777jsYDAbEx8dj0KBBVidSEhERtXWNTgwKCgogCAL8/f1NZWFhYXjyySexceNGTJo0CZWVldDpdHjqqaewdOlSpKenW0wy7NSpE4BfJyHWys7ORmxsLNLT0xEcHAygZqjfYDBg06ZNNsdZo7S+3PHWqp10WN/lECIisgOcY2CdXq+Hj4+P6cRea+XKlZg9ezbmzJkDFxcX9OvXD3l5edi/f79ptOBOtesW1N62CNSchCdNmoSkpCRMnDjRVO7u7o64uDgsX74cRqNRcRwAbNy4EYJg/tBtW+pbO17g19sU71yDgYiIqD0SpGacRi+KYoOTAG/fvg2dToe///3vePnll5urK1i6dCk+//xz5OXlNXnbb775JlasWKFogaORj6+wKJNU5gmLJFiEWKRwdesAgCSTl1i0LfM/h5L9162npB3l9eoUKNi/fNtybxxRB9KYzxtg8ZlT9nlrurYbt3+ZU5eSenJfEwr2f+xPL8Dd3R1hPf8fNCqtxevVYiVyiv8Bg8EANzc3mZ20H836rAQldwY4OjoiLi4OcXFxzTqjf/fu3UhKSmrSNg8ePAitVotly5Zh/vz5Tdo2ERG1QR3gUkKbmCWXkpKCt956C1euXGm2Gf1Hjhxp8jYDAwNx8uRJeHh4QKfTNXn7RERELa1NJAZAzcS99jZ5T6fToW/fvq3dDSIiaimiCEBmlUORKx8SERGRHWozIwZERERtnrX5BJxjQI2l+/Y/loV1bqO0+BsAlMy4l6unpO06ZGf3K2lHQduyx6GgbUlR2w2HENm1RnzeAZnPl+ydA41tu06B3N1LFm0raFj2e0JZnAWLOxdk6vyp9kX7Twz4VUpEREQmHDEgIiJSSpQAyIwO8FkJREREZI84YkBERKSQJImQJMtbE+XK2iuOGBAREZEJRwyIiIiUkiT5+QR2dFcCEwMiIiKlJCuTD+0oMeClBCIiIjLpMIlBaGgonn/++buuK4oifH19sWjRIrOYrKwsaLVabN++/a77SkREbZQoWt/sRIdIDCRJQmFhIYYOHWpWnpmZiaCgIOh0OnTt2hWTJ0/GyZMn662rUqmQkJCAtLQ0GAwGAIBer0dkZCRWrFiBiIiIljkoIiKiZtAhEoNTp07h+vXrCAgIMJXFx8fjjTfewKJFi1BcXAy9Xo/Bgwfj4YcfxtGjR+utGxUVhS5duiA1NRVFRUUYP348YmJiMGfOnBY9LiIiamG1SyLLbXaiQyQGBQUFUKvV8PPzAwDk5eUhIyMDL730Eg4cOIDOnTvDwcEBBw4cwOLFi/Hss8+iurpati4AaDQaLFiwACkpKRg7diyGDRuGVatWtcqxERFRy5FE0epmLzpEYqDX6zFw4EA4OzsDAN5//33MmzcPo0ePRkZGBqZPn46RI0eic+fOeOmll+Di4oL8/HzZurWioqJQXl4OQRCQkZEBlapDvJVERGTnOsTZTK/Xm10KuHDhAnx8fDBw4EBs3rwZGzZsgCiK2Lx5MzQaDQYMGIALFy7I1q0VGxsLACgtLWVSQETUUfBSgn3Q6/VmEw979eqF06dP49y5c5g+fTomTZqE6upqvPjiixBFET/++CO8vLxk6wLA4sWLkZWVhcOHD6O6uhrr169v0eMhIiJqLnafGJw5cwbXrl2zmDy4cuVKbN++HY8++igyMjLw+eef49SpU1i9ejWuXr2KkJAQ2bpr165FcnIydu7cCT8/P8yePRtJSUmoqqpqjcMjIqKWJErWNzth94lBQUEBBEGAv7+/qSwsLAxPPvkkNm7ciEmTJqGyshI6nQ5PPfUUli5divT0dDg4OFjUzc7ORmxsLNLT0xEcHAyg5pKCwWDApk2bWuHoiIiImpbdJwZ6vR4+Pj7o1KmTWfnKlSsxe/ZszJkzBy4uLujXrx/y8vKwf/9+hISEWNQtKCjApEmTkJSUhIkTJ5racXd3R1xcHJYvXw6j0diix0ZERC1MkgBJlNnsZ8RAkCQ7OppGEkWxxSYQjvGeZVkoCPX/DQAqmbKG2lHadh2S3L6UtKOgbdnjUNC2pKjthkOI7FojPu+AzOdL7rPU6LbrFMh8B1jsX0nTst8TyuIs1Dleue+bHTtehru7O0Zp/gCN4GDxerVUhf3VH8BgMMDNza3hfbZh/CoFeFcBERHRf/HpikREREpJIgCZxYwkLnBEREREdyEtLQ19+/aFk5MTgoKCcOTIkXrjt23bBl9fXzg5OWHw4MHIzs42e12SJCxZsgQ9e/aETqdDWFgYTp06ZXO/mBgQEREpJImS1c0WW7duxdy5c7F06VLo9Xr4+fkhPDwcly9flo0/dOgQJk+ejOnTp6OwsBATJkzAhAkTcPz4cVNMUlIS/ud//gerV6/Gl19+CRcXF4SHh+PWrVs29Y2TD1sYJx9y8iFRs+HkQ0VxFmyYfDgST1mdfJiHjxVPPgwKCsKwYcOQmpoKoGYSvLe3N2bOnIn4+HiL+MjISFRUVGDXrl2msuDgYPj7+2P16tWQJAleXl6YN28eXnnlFQCAwWCAh4cHNm7ciGeeeabBPtXiVykREZFC1ahCtSSzoWaRu7KyMrPt9u3bFm1UVlaioKAAYWFhpjKVSoWwsDDTc3rqys/PN4sHgPDwcFP82bNnUVJSYhbj7u6OoKAgq21aw8mHLWz3eT6FkYiovbl16xY8PT3xRUm21RhXV1d4e3ublS1duhSvv/66WVlpaSmMRiM8PDzMyj08PPDDDz/Itl1SUiIbX1JSYnq9tsxajFJMDIiIiBrg5OSEs2fPorKy0mqMJEkQ6lyGcHR0bO6uNTkmBkRERAo4OTnBycnprtvp1q0b1Go1Ll26ZFZ+6dIleHp6ytbx9PSsN772/1+6dAk9e/Y0i7nzkQBKcI4BERFRC9JqtQgICEBubq6pTBRF5ObmYsSIEbJ1RowYYRYPAPv27TPF9+vXD56enmYxZWVl+PLLL622aQ1HDIiIiFrY3LlzMW3aNAQGBmL48OFISUlBRUUFYmJiAADR0dHo1asXEhMTAQCzZs1CaGgokpOTMW7cOGRmZuKrr77CmjVrAACCIGD27Nl466234OPjg379+mHx4sXw8vLChAkTbOobEwMiIqIWFhkZiStXrmDJkiUoKSmBv78/9uzZY5o8WFRUZLZcf0hICLZs2YLXXnsNCxcuhI+PD3bs2IFBgwaZYubPn4+Kigr8+c9/xrVr1/DII49gz549Nl/+4DoGRGTh559/xgMPPIAjR46gb9++Lbrv4OBgvPrqq3j66adbdL9EVINzDIhaWWJiIoYNG4ZOnTqhR48emDBhAk6cOGFTG6+//joEQbC6vfHGGza19/bbb+Opp54ySwqKioowbtw4ODs7o0ePHnj11VdRXV1tU7sHDhzAE088AS8vLwiCgB07dljEvPbaa4iPj4co2r72fGVlJZKSkuDn5wdnZ2d069YNDz/8MN577z1UVVXBaDQiJCQEERERZvUMBgO8vb2xaNEim/dJZHckImpV4eHh0nvvvScdP35cOnbsmDR27Fjp3nvvlcrLyxW3cf36dam4uNhie+6556TOnTtLJ0+eVNxWRUWF5ObmJuXn55vKqqurpUGDBklhYWFSYWGhlJ2dLXXr1k1KSEiw6Vizs7OlRYsWSdu3b5cASB999JFFTHV1teTh4SHt2rXLprZv374tjRw5Urrnnnuk1NRUqbCwUDp9+rSUnp4uDRkyRCosLJQkSZJOnDgh6XQ6afPmzaa6U6dOlR566CHp9u3bNu2TyB4xMSBqYy5fviwBkD7//PO7amfz5s2SWq2W9uzZY1O9bdu2Sd27dzcry87OllQqlVRSUmIqe/fddyU3N7dGn0ytJQaSJEkxMTHSlClTbGpvxYoVkkqlkvR6vcVrlZWVZonWqlWrpHvuuUf6z3/+I+3YsUNycHCQjh07ZtP+iOwVLyUQtTEGgwEA0KVLF1PZc889h5EjRypuo6CgAH/605+wfPlyhIeH27T/gwcPIiAgwKwsPz8fgwcPNltVLTw8HGVlZfj2229tal+J4cOH4+DBg6a/z507B0EQkJeXZ7VOeno6wsLCMGTIEIvXHBwc4OLiYvp75syZ8PPzw9SpU/HnP/8ZS5YsgZ+fX5MeA1F7xbsSiNoQURQxe/ZsPPzww2azjXv27Kn4mvvly5cxceJEPP3006aHqdjip59+gpeXl1mZteVYa19ral5eXjh//jxEUYRKpYKDgwMGDhwIZ2dnq3VOnTqlOHkSBAHvvvsuHnjgAQwePFj2oTVEHRUTA6I25OWXX8bx48fxxRdfmJXX3svckKqqKvzhD3+Ah4cH1q5d26g+3Lx5s0lWd7sbOp0Ooiji9u3b0Ol06NWrl9U15GtJNt5gtWHDBjg7O+Ps2bO4cOFCi999QdRW8VICURsRGxuLXbt2Yf/+/ejdu3ej2oiLi8OpU6fw0UcfNfrk3q1bN1y9etWszNpyrLWvNbVffvkFLi4u0Ol0iusMGDCgweSh1qFDh7By5Urs2rULw4cPx/Tp021OLIjsFRMDolYmSRJiY2Px0Ucf4bPPPkO/fv0a1c6aNWuwYcMGfPjhh41OLABgyJAh+O6778zKRowYgX//+9+4fPmyqWzfvn1wc3PDgw8+2Oh9WXP8+HHZuQL1efbZZ5GTk4PCwkKL16qqqlBRUQEAuHHjBp577jnMmDEDo0aNwvr163HkyBGsXr26SfpO1O618uRHog5vxowZkru7u5SXl2d2q+GNGzdMMfHx8dLUqVOttvHFF19IWq1Weuutt2RvW7x27Zri/nzzzTeSRqORfvnlF1NZ7e2Ko0ePlo4dOybt2bNH6t69u823K16/fl0qLCyUCgsLJQDS3/72N6mwsFD66aefzOJCQ0OlZcuWmf6+cOGCNHDgQOnLL7+02vatW7ek3/72t6bbFY8dOyadPn1a2rp1qzR06FDT7YpxcXHS/fffL1VUVJjqrl69WnJ1dZXOnj1r0/EQ2SMmBkStDIDs9t5775lipk2bJoWGhlpt47nnnrPaDgBp2rRpkiRJ0tmzZyUA0v79++vt0/Dhw6XVq1eblZ07d04aM2aMpNPppG7duknz5s2TqqqqTK8raXv//v319k+SapIABwcH6fz58za1LUk1yUFiYqI0ePBgycnJSerSpYv08MMPSxs3bpSqqqqkvLw8Sa1WSwcPHrSoO3r0aOn3v/+9JIpivfsgsndcEpmoA9m/fz8iIiJw5swZ3HPPPVbjsrKy8Oqrr+L48eNm67U3RdsNWbBgAa5evWp6OAwRtSzelUDUgWRnZ2PhwoUNnrjHjRuHU6dO4eLFi/D29m7SthvSo0cPzJ07967aIKLG44gBERERmfCuBCIiIjJhYkBEREQmTAyIiIjIhIkBERERmTAxICIiIhMmBkRERGTCxICIiIhMmBgQERGRCRMDIiIiMvn//4BpOsVZcfEAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# generate KNR circuits to benchmark the cycle, targeting all pairs of gate supports\n", "knr_circuits_2 = tq.make_knr(\n", " cycle_of_interest, n_random_cycles=[4, 10], n_circuits=30, subsystems=2\n", ")\n", "\n", "# run the circuits on the device\n", "device.run(knr_circuits_2)\n", "\n", "# plot the reconstructed error profile with subsystems=2:\n", "knr_circuits_2.plot.knr_heatmap(layout) # plot the heatmap" ] }, { "cell_type": "raw", "id": "878bb07c", "metadata": { "raw_mimetype": "text/restructuredtext" }, "source": [ "Notice that this experiment yields marginal error probabilities for all pairs\n", "of gate supports. Since our cycle only contained a pair of gate supports\n", "(namely :math:`(0,1)` and :math:`2`\\), the above plot shows a complete\n", "reconstruction of the error profile.\n", "\n", "Specifying which subsystems to probe\n", "------------------------------------\n", "\n", "When the ``subsystems`` argument of :py:meth:`~trueq.make_knr` is an integer, it\n", "specifies the maximum number of gate-bodies whose correlated errors should be\n", "reported. For example, if the cycle is a CNOT on qubits :math:`(0, 1)` with idling\n", "qubits :math:`2` and :math:`3`\\, then when ``subsystems=2``, in addition to reporting\n", "single gate-body errors on each of the subsystems :math:`(0, 1)`\\, :math:`(2,)`\\, and\n", ":math:`(3,)`\\, errors will also be reported on the gate-body pairs corresponding to\n", ":math:`(0, 1, 2)`\\, :math:`(0, 1, 3)`\\, and :math:`(2, 3)`\\. In general, for\n", "``subsystems=k``, n-choose-k subsystems will be very large and require many circuits\n", "to reconstruct the errors.\n", "\n", "To reduce experiment cost, the ``subsystems`` argument can be specified as a\n", ":py:class:`~trueq.Subsystems` object where subsystems to reconstruct are explicitly\n", "defined. In this example, we demonstrate how this approach can allow for a less\n", "costly reconstruction by exploiting knowledge of the system being characterized.\n", "Consider a linear array of qubits and a cycle of single-qubit gates with underlying\n", ":math:`ZZ` couplings between adjacent qubits. Rather than reconstructing all\n", "combinations of :math:`2` operations, we expect distant pairs, e.g. :math:`(0, 4)`\\,\n", "to have no correlated errors and thus omit them." ] }, { "cell_type": "code", "execution_count": 6, "id": "7f29c4aa", "metadata": { "execution": { "iopub.execute_input": "2024-04-26T18:17:49.171041Z", "iopub.status.busy": "2024-04-26T18:17:49.170848Z", "iopub.status.idle": "2024-04-26T18:17:49.245794Z", "shell.execute_reply": "2024-04-26T18:17:49.245314Z" } }, "outputs": [ { "data": { "text/plain": [ "Subsystems(((0,), (1,), (2,), (3,), (4,), (0, 1), (1, 2), (2, 3), (3, 4)))" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# define the cycle of interest to benchmark\n", "cycle_of_interest = tq.Cycle({range(5): tq.Gate.x})\n", "\n", "# define the layout of our device\n", "layout = tq.visualization.Graph.linear(5, show_labels=True)\n", "\n", "# define the ZZ couplings in our device\n", "error_profile = {\n", " \"IIIII\": 0.90,\n", " \"ZZIII\": 0.02,\n", " \"IZZII\": 0.01,\n", " \"IIZZI\": 0.03,\n", " \"IIIZZ\": 0.04,\n", "}\n", "\n", "kraus_list = [\n", " np.sqrt(prob) * tqm.Weyls(pauli, dim=2).herm_mat\n", " for pauli, prob in error_profile.items()\n", "]\n", "\n", "# instantiate a superoperator based on the Kraus operators\n", "superop = tqm.Superop.from_kraus(kraus_list)\n", "\n", "# instantiate a device simulator based on the above error profile\n", "device = tqs.Simulator()\n", "device.add_cycle_noise(\n", " {(0, 1, 2, 3, 4): superop},\n", " match=tqs.CycleMatch(cycle_of_interest),\n", " cycle_offset=-1,\n", ")\n", "\n", "# use from_cycle and nearest_neighbour methods to create subsystems to analyze\n", "subsystems = tq.Subsystems.from_cycle(cycle_of_interest).nearest_neighbour(layout)\n", "subsystems" ] }, { "cell_type": "raw", "id": "8f24348d", "metadata": { "raw_mimetype": "text/restructuredtext" }, "source": [ "By using the methods of the :py:class:`~trueq.Subsystems` class, we specified that we\n", "only want to reconstruct the errors on adjacent pairs of qubits when calling\n", ":py:meth:`~trueq.make_knr`\\." ] }, { "cell_type": "code", "execution_count": 7, "id": "9770e019", "metadata": { "execution": { "iopub.execute_input": "2024-04-26T18:17:49.247895Z", "iopub.status.busy": "2024-04-26T18:17:49.247715Z", "iopub.status.idle": "2024-04-26T18:17:58.521400Z", "shell.execute_reply": "2024-04-26T18:17:58.520920Z" } }, "outputs": [ { "data": { "text/plain": [ "540" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "knr_circuits_1 = tq.make_knr(\n", " cycle_of_interest, n_random_cycles=[4, 10], n_circuits=30, subsystems=subsystems\n", ")\n", "device.run(knr_circuits_1)\n", "\n", "# plot the reconstructed error profile on the specified subsystems:\n", "knr_circuits_1.plot.knr_heatmap(layout)\n", "\n", "# print the total number of circuits\n", "knr_circuits_1.n_circuits" ] }, { "cell_type": "raw", "id": "6566e0ce", "metadata": { "raw_mimetype": "text/restructuredtext" }, "source": [ "Comparing the above output with a call to :py:meth:`~trueq.make_knr` with\n", "``subsystems=2``, we note that we were able to perform the reconstruction with fewer\n", "circuits and omit information about the errors on uncoupled pairs." ] }, { "cell_type": "code", "execution_count": 8, "id": "bf1f70b3", "metadata": { "execution": { "iopub.execute_input": "2024-04-26T18:17:58.523540Z", "iopub.status.busy": "2024-04-26T18:17:58.523359Z", "iopub.status.idle": "2024-04-26T18:18:18.985845Z", "shell.execute_reply": "2024-04-26T18:18:18.985380Z" } }, "outputs": [ { "data": { "text/plain": [ "1200" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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0UIRERFKTEzUmjVrfGq/Z88excXF6cUXX/QoX716tWrVqqUlS5YEMlzAq5UrV+p3v/udEhISZFmWFixY4HMfeXl5atWqlcaNG+dRvmPHDsXExOj1118PULSAd5MnT9all16q6OhoNW7cWIMGDdL333/vUx/skxFsr7zyitq3b6+YmBjFxMQoKSlJ//3vf33qg+0YoWTKlCmyLEv333+/T+3YjiuWw2WT4+RZ/fItNSv1rVnvFpo7d67GjRunSZMmKTMzUx06dFD//v21b9++MveRkJCgl156SY888oi2bNkiSfr11181fPhw/fGPf1S/fv0qKnzALS8vTx06dND06dPL3UedOnX05ptv6qWXXtJnn30mSTLGaMSIEbr88st1++23BypcwKsVK1bonnvu0RdffKGlS5eqsLBQ/fr1U15eXpn7YJ+MYDvnnHM0ZcoUrV+/XuvWrVOfPn00cOBAffPNN2Xug+0YoWLt2rV69dVX1b59e5/bsh1XrEJj83upSSxjjAl2EKg8iYmJuvTSS/Xyyy9Lklwul5o3b64//elPGj9+vE99XX/99crJydFnn32mcePG6cMPP9SXX36punXrVkToQKksy9L8+fM1aNCgcrUfN26c/vOf/+jLL7/U66+/rieeeEKbNm1Ss2bNAhsocBY///yzGjdurBUrVqhHjx4+tWWfjFBSv359PfPMMxo1apRP7diOEUxHjx5V586d9Y9//ENPPfWUOnbsqGnTpvncD9txYOXm5qpevXoanH6rwuuEl7ufgrwC/avvOzp8+LBiYmICGGFoqllfa9RwBQUFWr9+vZKTk91lNptNycnJysjIcJfddttt6tWr11n7mzFjhrZs2aKhQ4fq5Zdf1ptvvskODCHl8ccfV4sWLc5a769//avCwsI0bNgwTZgwQS+99BJJPoLi8OHDkk4kSUXYJ6MqcTqdSk1NVV5enpKSktzlbMeoCu655x5de+21Hv9XPh3bcXA5jU0OPxZnDTujz2R8Ncj+/fvldDrVpEkTj/ImTZpo8+bN7udNmzaVqwyzUjZu3FhPPvmkRo8erbvuusvns09ARWvYsKFatWp11nqRkZF64YUXNGDAAF199dUaNmxYJUQHeHK5XLr//vt1+eWXq127du5y9smoCr7++mslJSXp+PHjqlu3rubPn6+LL77YvZ7tGKEuNTVVmZmZ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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "knr_circuits_2 = tq.make_knr(\n", " cycle_of_interest, n_random_cycles=[4, 10], n_circuits=30, subsystems=2\n", ")\n", "device.run(knr_circuits_2)\n", "\n", "# plot the reconstructed error profile with subsystems=2:\n", "knr_circuits_2.plot.knr_heatmap(layout)\n", "\n", "# print the total number of circuits\n", "knr_circuits_2.n_circuits" ] }, { "cell_type": "raw", "id": "10eb8a12", "metadata": { "raw_mimetype": "text/restructuredtext" }, "source": [ "KNR with qudits\n", "---------------\n", "\n", "KNR seamlessly supports qudits. To see this, let's recreate a similar example\n", "as above, but with qutrit instructions on a 2-qutrit processor:" ] }, { "cell_type": "code", "execution_count": 9, "id": "b5e469a6", "metadata": { "execution": { "iopub.execute_input": "2024-04-26T18:18:18.988017Z", "iopub.status.busy": "2024-04-26T18:18:18.987833Z", "iopub.status.idle": "2024-04-26T18:18:18.994055Z", "shell.execute_reply": "2024-04-26T18:18:18.993637Z" } }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# setting the register dimension to 3 (i.e. qutrits)\n", "tq.settings.set_dim(3)\n", "\n", "# define the cycle to benchmark using KNR\n", "cycle_of_interest = {(0, 1): tq.Gate.cx3}\n", "\n", "# define some simple error profile by pairing Weyl errors with corresponding\n", "# probabilities\n", "error_profile = {\n", " # no error with prob 88%\n", " \"W00W00\": 0.88,\n", " # X3.I3 error with prob 2%\n", " \"W10W00\": 0.02,\n", " # X3.Z3 error with prob 8%\n", " \"W10W01\": 0.08,\n", " # I3.X3 error with prob 2%\n", " \"W00W10\": 0.02,\n", "}\n", "\n", "# define Kraus operators based on the above error profile\n", "kraus_list = [\n", " np.sqrt(prob) * tqm.Weyls(weyl).mat for weyl, prob in error_profile.items()\n", "]\n", "\n", "# instantiate a superoperator based on the Kraus operators\n", "superop = tqm.Superop.from_kraus(kraus_list)\n", "\n", "# instantiate a device simulator based on the above error profile\n", "device = tqs.Simulator()\n", "device.add_cycle_noise(\n", " # the 3-qutrit error map is applied to qutrits 0, 1, and 2\n", " {(0, 1): superop},\n", " # the error map is only applied to the cycle of interest\n", " match=tqs.CycleMatch(cycle_of_interest),\n", " # the error map occurs before the cycle of interest\n", " cycle_offset=-1,\n", ")" ] }, { "cell_type": "raw", "id": "30bf3d36", "metadata": { "raw_mimetype": "text/restructuredtext" }, "source": [ "Now that the ``device`` has been instantiated, let's try to learn the error\n", "profile of the ``cycle_of_interest``:" ] }, { "cell_type": "code", "execution_count": 10, "id": "701f4043", "metadata": { "execution": { "iopub.execute_input": "2024-04-26T18:18:18.995886Z", "iopub.status.busy": "2024-04-26T18:18:18.995719Z", "iopub.status.idle": "2024-04-26T18:18:22.950805Z", "shell.execute_reply": "2024-04-26T18:18:22.950333Z" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# generate KNR circuits to benchmark the cycle, targeting only single gate supports\n", "knr_circuits = tq.make_knr(\n", " cycle_of_interest, n_random_cycles=[6, 9, 12], n_circuits=30, subsystems=1\n", ")\n", "\n", "# run the circuits on the device\n", "device.run(knr_circuits)\n", "\n", "# plot the reconstructed error profile with subsystems=1:\n", "layout = tq.visualization.Graph.linear(2, show_labels=True) # specify the chip layout\n", "knr_circuits.plot.knr_heatmap(layout) # plot the heatmap" ] }, { "cell_type": "raw", "id": "0a55aadc", "metadata": { "raw_mimetype": "text/restructuredtext" }, "source": [ "Notice that for this cycle, some degeneracy orbits contain :math:`3` Weyl\n", "operators. This observation is expected as ``tq.Gate.cx3`` has a cyclicity of\n", ":math:`3`\\.\n", "\n", "Advanced Usage: Specifying a custom twirl to diagnose idle qubits\n", "-----------------------------------------------------------------\n", "\n", "For full-system diagnostics, we are often interested in the error that occurs on\n", "idling qubits. This can be done by specifying a custom :py:class:`~trueq.Twirl`\n", "that includes the labels of the idle qubits.\n", "\n", "For example, let's consider a cycle with a :math:`CX` gate on qubits ``0`` and ``1``\n", "and an additional, idling qubit with label ``2``. We instantiate a simulator that\n", "adds a stochastic :math:`Z` error to the idling qubit and define a twirl on all three\n", "qubit labels:" ] }, { "cell_type": "code", "execution_count": 11, "id": "40bcf9e8", "metadata": { "execution": { "iopub.execute_input": "2024-04-26T18:18:22.952991Z", "iopub.status.busy": "2024-04-26T18:18:22.952817Z", "iopub.status.idle": "2024-04-26T18:18:24.019274Z", "shell.execute_reply": "2024-04-26T18:18:24.018782Z" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "tq.settings.set_dim(2)\n", "\n", "cycle_of_interest = tq.Cycle({(0, 1): tq.Gate.cx})\n", "\n", "twirl = tq.Twirl(\"P\", (0, 1, 2))\n", "\n", "circuits = tq.make_knr(\n", " cycle_of_interest, twirl=twirl, n_random_cycles=[4, 10], n_circuits=30, subsystems=1\n", ")\n", "\n", "sim = tq.Simulator().add_stochastic_pauli(pz=0.1, match=tq.simulation.LabelMatch(2))\n", "\n", "sim.run(circuits)\n", "\n", "layout = tq.visualization.Graph.linear(3, show_labels=True)\n", "circuits.plot.knr_heatmap(layout)" ] }, { "cell_type": "raw", "id": "ca5c1911", "metadata": { "raw_mimetype": "text/restructuredtext" }, "source": [ "As expected, the resulting error map is dominated by a single-qubit :math:`Z` errors\n", "on qubit ``2``, whereas there is no significat error observed on the :math:`CX` gate." ] }, { "cell_type": "code", "execution_count": 12, "id": "485b0892", "metadata": { "execution": { "iopub.execute_input": "2024-04-26T18:18:24.021485Z", "iopub.status.busy": "2024-04-26T18:18:24.021308Z", "iopub.status.idle": "2024-04-26T18:18:24.082183Z", "shell.execute_reply": "2024-04-26T18:18:24.081739Z" } }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\n", "
True-Q formatting will not be loaded without trusting this\n", "notebook or rerunning the affected cells. Notebooks can be marked as trusted by clicking\n", "\"File -> Trust Notebook\".
\n", "\n", "\n", "\n", "\n", "\n", " \n", "\n", "\n", "

\n", " One or more estimates with probabilities below the cutoff threshold have been omitted.\n", "

\n", "\n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", "\n", "\n", "\n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", "\n", "\n", "\n", " \n", "\n", "\n", "\n", "
\n", "
KNR Estimates
\n", "
K-body Noise Reconstruction
\n", "
\n", " \n", "

Paulis

\n", " (0, 1): Gate.cx\n", "
\n", "
\n", "
Cycle:
\n", "
\n", "
    \n", "
  • \n", " (0, 1): Gate.cx\n", "
  • \n", "
\n", "
\n", "
Twirl:
\n", "
\n", "
  • Paulis on [0, 1, 2]
\n", "
\n", "
\n", "
\n", "
 \n", " (2,) : Gate.id
\n", "
\n", "
\n", "
Cycle:
\n", "
\n", "
    \n", " \n", "
  • \n", " (0, 1): Gate.cx\n", "
  • \n", "
\n", "
\n", "
\n", "
\n", "
Z\n", " 1.0e-01 (1.1e-02)\n", "
\n", "
\n", "
Subcycle:
\n", "
\n", "
    \n", "
  • (2,): Gate.id
  • \n", "
\n", "
\n", "
Error Type:
\n", "
\n", "
    \n", "
  • Z
  • \n", "
\n", "
\n", "
Error Probability (std):
\n", "
\n", "
    \n", "
  • 0.09961917037745716 (0.01129578315667583)
  • \n", "
\n", "
\n", "
\n", "
\n", "
X\n", " 3.5e-03 (1.1e-02)\n", "
\n", "
\n", "
Subcycle:
\n", "
\n", "
    \n", "
  • (2,): Gate.id
  • \n", "
\n", "
\n", "
Error Type:
\n", "
\n", "
    \n", "
  • X
  • \n", "
\n", "
\n", "
Error Probability (std):
\n", "
\n", "
    \n", "
  • 0.0034546652619686924 (0.01129578315667583)
  • \n", "
\n", "
\n", "
\n", "
\n", "
\n", "\n", "\n", "\n", "\n" ], "text/plain": [ "EstimateCollection(2)" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "circuits.fit()" ] } ], "metadata": { "jupytext": { "cell_metadata_filter": "nbsphinx,raw_mimetype,-all", "main_language": "python", "notebook_metadata_filter": "-all", "text_representation": { "extension": ".py", "format_name": "percent" } }, "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.8.10" } }, "nbformat": 4, "nbformat_minor": 5 }