{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "cellView": "form", "execution": { "iopub.execute_input": "2024-12-15T11:07:02.389456Z", "iopub.status.busy": "2024-12-15T11:07:02.389232Z", "iopub.status.idle": "2024-12-15T11:07:02.393133Z", "shell.execute_reply": "2024-12-15T11:07:02.392524Z" }, "id": "906e07f6e562" }, "outputs": [], "source": [ "# @title Copyright 2020 The Cirq Developers\n", "# Licensed under the Apache License, Version 2.0 (the \"License\");\n", "# you may not use this file except in compliance with the License.\n", "# You may obtain a copy of the License at\n", "#\n", "# https://www.apache.org/licenses/LICENSE-2.0\n", "#\n", "# Unless required by applicable law or agreed to in writing, software\n", "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", "# See the License for the specific language governing permissions and\n", "# limitations under the License." ] }, { "cell_type": "markdown", "metadata": { "id": "291eb7f565e0" }, "source": [ "# Quantum approximate optimization algorithm for the Ising model" ] }, { "cell_type": "markdown", "metadata": { "id": "4dec45d973fc" }, "source": [ "
\n",
" ![]() | \n",
" \n",
" ![]() | \n",
" \n",
" ![]() | \n",
" \n",
" ![]() | \n",
"
(0, 0): ───H───\n", "\n", "(0, 1): ───H───\n", "\n", "(0, 2): ───H───\n", "\n", "(1, 0): ───H───\n", "\n", "(1, 1): ───H───\n", "\n", "(1, 2): ───H───\n", "\n", "(2, 0): ───H───\n", "\n", "(2, 1): ───H───\n", "\n", "(2, 2): ───H───" ], "text/plain": [ "(0, 0): ───H───\n", "\n", "(0, 1): ───H───\n", "\n", "(0, 2): ───H───\n", "\n", "(1, 0): ───H───\n", "\n", "(1, 1): ───H───\n", "\n", "(1, 2): ───H───\n", "\n", "(2, 0): ───H───\n", "\n", "(2, 1): ───H───\n", "\n", "(2, 2): ───H───" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "\"\"\"Create the QAOA circuit.\"\"\"\n", "# Use sympy.Symbols for the 𝛾 and β parameters.\n", "gamma = sympy.Symbol(\"𝛄\")\n", "beta = sympy.Symbol(\"β\")\n", "\n", "# Start in the H|0> state.\n", "qaoa = cirq.Circuit(cirq.H.on_each(qubits))\n", "\n", "# Your code here!\n", "\n", "# Display the QAOA circuit.\n", "qaoa" ] }, { "cell_type": "markdown", "metadata": { "id": "VEAt5QZvtPu_" }, "source": [ "#### Solution" ] }, { "cell_type": "markdown", "metadata": { "id": "7zWHPT1ktlUk" }, "source": [ "We'll just illustrate the solution for a single $C$ layer and a single $B$ layer." ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "execution": { "iopub.execute_input": "2024-12-15T11:07:20.922720Z", "iopub.status.busy": "2024-12-15T11:07:20.922245Z", "iopub.status.idle": "2024-12-15T11:07:20.948428Z", "shell.execute_reply": "2024-12-15T11:07:20.947859Z" }, "id": "lHjIRxL13nXP" }, "outputs": [ { "data": { "text/html": [ "
┌──────────────────┐ ┌──────────────────┐\n", "(0, 0): ───H───ZZ───────ZZ───────Z^(0.5*𝛄)──────────────────────────────────────────────────────────────────────────────────────────────X^(β)───\n", " │ │\n", "(0, 1): ───H───┼────────ZZ^(𝛄)───ZZ──────────ZZ────────Z^(0.5*𝛄)────────────────────────────────────────────────────────────────────────X^(β)───\n", " │ │ │\n", "(0, 2): ───H───┼─────────────────┼───────────ZZ^(𝛄)────ZZ────────────────────Z^(0.5*𝛄)──────────────────────────────────────────────────X^(β)───\n", " │ │ │\n", "(1, 0): ───H───ZZ^(𝛄)───ZZ───────┼───────────ZZ────────┼────────Z^(0.5*𝛄)───────────────────────────────────────────────────────────────X^(β)───\n", " │ │ │ │\n", "(1, 1): ───H────────────┼────────ZZ^(𝛄)──────ZZ^(𝛄)────┼────────ZZ───────────ZZ───────────Z^(0.5*𝛄)─────────────────────────────────────X^(β)───\n", " │ │ │ │\n", "(1, 2): ───H────────────┼──────────────────────────────ZZ^(𝛄)───┼────────────ZZ^(𝛄)───────ZZ────────────────────Z^(0.5*𝛄)───────────────X^(β)───\n", " │ │ │\n", "(2, 0): ───H────────────ZZ^(𝛄)──────────────────────────────────┼────────────ZZ───────────┼────────Z^(0.5*𝛄)────────────────────────────X^(β)───\n", " │ │ │\n", "(2, 1): ───H────────────────────────────────────────────────────ZZ^(𝛄)───────ZZ^(𝛄)───────┼─────────────────────ZZ──────────Z^(0.5*𝛄)───X^(β)───\n", " │ │\n", "(2, 2): ───H──────────────────────────────────────────────────────────────────────────────ZZ^(𝛄)────────────────ZZ^(𝛄)──────Z^(0.5*𝛄)───X^(β)───\n", " └──────────────────┘ └──────────────────┘" ], "text/plain": [ " ┌──────────────────┐ ┌──────────────────┐\n", "(0, 0): ───H───ZZ───────ZZ───────Z^(0.5*𝛄)──────────────────────────────────────────────────────────────────────────────────────────────X^(β)───\n", " │ │\n", "(0, 1): ───H───┼────────ZZ^(𝛄)───ZZ──────────ZZ────────Z^(0.5*𝛄)────────────────────────────────────────────────────────────────────────X^(β)───\n", " │ │ │\n", "(0, 2): ───H───┼─────────────────┼───────────ZZ^(𝛄)────ZZ────────────────────Z^(0.5*𝛄)──────────────────────────────────────────────────X^(β)───\n", " │ │ │\n", "(1, 0): ───H───ZZ^(𝛄)───ZZ───────┼───────────ZZ────────┼────────Z^(0.5*𝛄)───────────────────────────────────────────────────────────────X^(β)───\n", " │ │ │ │\n", "(1, 1): ───H────────────┼────────ZZ^(𝛄)──────ZZ^(𝛄)────┼────────ZZ───────────ZZ───────────Z^(0.5*𝛄)─────────────────────────────────────X^(β)───\n", " │ │ │ │\n", "(1, 2): ───H────────────┼──────────────────────────────ZZ^(𝛄)───┼────────────ZZ^(𝛄)───────ZZ────────────────────Z^(0.5*𝛄)───────────────X^(β)───\n", " │ │ │\n", "(2, 0): ───H────────────ZZ^(𝛄)──────────────────────────────────┼────────────ZZ───────────┼────────Z^(0.5*𝛄)────────────────────────────X^(β)───\n", " │ │ │\n", "(2, 1): ───H────────────────────────────────────────────────────ZZ^(𝛄)───────ZZ^(𝛄)───────┼─────────────────────ZZ──────────Z^(0.5*𝛄)───X^(β)───\n", " │ │\n", "(2, 2): ───H──────────────────────────────────────────────────────────────────────────────ZZ^(𝛄)────────────────ZZ^(𝛄)──────Z^(0.5*𝛄)───X^(β)───\n", " └──────────────────┘ └──────────────────┘" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "\"\"\"Create the QAOA circuit.\"\"\"\n", "# Use sympy.Symbols for the 𝛾 and β parameters.\n", "gamma = sympy.Symbol(\"𝛄\")\n", "beta = sympy.Symbol(\"β\")\n", "\n", "# Start in the H|0> state.\n", "qaoa = cirq.Circuit(cirq.H.on_each(qubits))\n", "\n", "# Implement the U(gamma, C) operator.\n", "qaoa.append(gamma_layer(gamma, h))\n", "\n", "# Implement the U(beta, B) operator.\n", "qaoa.append(beta_layer(beta), strategy=cirq.InsertStrategy.NEW_THEN_INLINE)\n", "\n", "# Display the QAOA circuit.\n", "qaoa" ] }, { "cell_type": "markdown", "metadata": { "id": "9fc72a4fb3d3" }, "source": [ "### Computing the energy" ] }, { "cell_type": "markdown", "metadata": { "id": "3HtlMxa6QpVo" }, "source": [ "To train the QAOA circuit (that is, find the optimal values of the parameters) we're going to need to be able to compute the expectation value of the Ising model energy.\n", "\n", "If we were using real hardware, the only way to compute the expectation value of the energy would be to estimate it by sampling. Using a simulator we can alternatively compute the wavefunction and then calculate the expectation value from that. Not only does this save us from having to worry about statistical error, it also tends to be faster that simulating the sampling process.\n", "\n", "We divide the total energy by the number of qubits because we expect the energy to scale with the size of the system." ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "execution": { "iopub.execute_input": "2024-12-15T11:07:20.951081Z", "iopub.status.busy": "2024-12-15T11:07:20.950852Z", "iopub.status.idle": "2024-12-15T11:07:20.956428Z", "shell.execute_reply": "2024-12-15T11:07:20.955864Z" }, "id": "-9etj1AeK6dG" }, "outputs": [], "source": [ "def energy_from_wavefunction(wf: np.ndarray, h: np.ndarray) -> float:\n", " \"\"\"Computes the energy-per-site of the Ising model directly from the\n", " a given wavefunction.\n", "\n", " Args:\n", " wf: Array of size 2**(n_rows * n_cols) specifying the wavefunction.\n", " h: Array of shape (n_rows, n_cols) giving the magnetic field values.\n", "\n", " Returns:\n", " energy: Float equal to the expectation value of the energy per site\n", " \"\"\"\n", " n_sites = n_rows * n_cols\n", "\n", " # Z is an array of shape (n_sites, 2**n_sites). Each row consists of the\n", " # 2**n_sites non-zero entries in the operator that is the Pauli-Z matrix on\n", " # one of the qubits times the identities on the other qubits. The\n", " # (i*n_cols + j)th row corresponds to qubit (i,j).\n", " Z = np.array(\n", " [(-1) ** (np.arange(2**n_sites) >> i) for i in range(n_sites - 1, -1, -1)]\n", " )\n", "\n", " # Create the operator corresponding to the interaction energy summed over all\n", " # nearest-neighbor pairs of qubits\n", " ZZ_filter = np.zeros_like(wf, dtype=float)\n", " for i in range(n_rows):\n", " for j in range(n_cols):\n", " if i < n_rows - 1:\n", " ZZ_filter += Z[i * n_cols + j] * Z[(i + 1) * n_cols + j]\n", " if j < n_cols - 1:\n", " ZZ_filter += Z[i * n_cols + j] * Z[i * n_cols + (j + 1)]\n", "\n", " energy_operator = -ZZ_filter - h.reshape(n_sites).dot(Z)\n", "\n", " # Expectation value of the energy divided by the number of sites\n", " return np.sum(np.abs(wf) ** 2 * energy_operator) / n_sites" ] }, { "cell_type": "markdown", "metadata": { "id": "fjFPEQuyvxjR" }, "source": [ "We'll also need a helper function that computes the expected value of the energy given some parameters of the QAOA." ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "execution": { "iopub.execute_input": "2024-12-15T11:07:20.959203Z", "iopub.status.busy": "2024-12-15T11:07:20.958651Z", "iopub.status.idle": "2024-12-15T11:07:20.962779Z", "shell.execute_reply": "2024-12-15T11:07:20.961960Z" }, "id": "XOYLY_u5K7z0" }, "outputs": [], "source": [ "def energy_from_params(\n", " gamma_value: float, beta_value: float, qaoa: cirq.Circuit, h: np.ndarray\n", ") -> float:\n", " \"\"\"Returns the energy given values of the parameters.\"\"\"\n", " sim = cirq.Simulator()\n", " params = cirq.ParamResolver({\"𝛄\": gamma_value, \"β\": beta_value})\n", " wf = sim.simulate(qaoa, param_resolver=params).final_state_vector\n", " return energy_from_wavefunction(wf, h)" ] }, { "cell_type": "markdown", "metadata": { "id": "909ff1474e87" }, "source": [ "### Optimizing the parameters" ] }, { "cell_type": "markdown", "metadata": { "id": "r-CjbPwkRI_I" }, "source": [ "Now we need to figure out the best values of $\\gamma$ and $\\beta$ by minimizing the expectation value of the energy. We'll start by doing a brute-force search of the parameter space for illustrative purposes." ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "execution": { "iopub.execute_input": "2024-12-15T11:07:20.966190Z", "iopub.status.busy": "2024-12-15T11:07:20.965551Z", "iopub.status.idle": "2024-12-15T11:07:36.631014Z", "shell.execute_reply": "2024-12-15T11:07:36.630263Z" }, "id": "hM2Zd_kTI578" }, "outputs": [], "source": [ "\"\"\"Do a grid search over values of 𝛄 and β.\"\"\"\n", "# Set the grid size and range of parameters.\n", "grid_size = 50\n", "gamma_max = 2\n", "beta_max = 2\n", "\n", "# Do the grid search.\n", "energies = np.zeros((grid_size, grid_size))\n", "for i in range(grid_size):\n", " for j in range(grid_size):\n", " energies[i, j] = energy_from_params(\n", " i * gamma_max / grid_size, j * beta_max / grid_size, qaoa, h\n", " )" ] }, { "cell_type": "markdown", "metadata": { "id": "b9b6bb9ad449" }, "source": [ "We can visualize the energy landscape as follows." ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "execution": { "iopub.execute_input": "2024-12-15T11:07:36.634749Z", "iopub.status.busy": "2024-12-15T11:07:36.634462Z", "iopub.status.idle": "2024-12-15T11:07:36.910326Z", "shell.execute_reply": "2024-12-15T11:07:36.909680Z" }, "id": "AFP2Ofi0KTfq" }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
┌──────────────────┐ ┌──────────────────┐\n", "(0, 0): ───H───ZZ───────ZZ───────Z^(0.5*𝛄)──────────────────────────────────────────────────────────────────────────────────────────────X^(β)───M('m')───\n", " │ │ │\n", "(0, 1): ───H───┼────────ZZ^(𝛄)───ZZ──────────ZZ────────Z^(0.5*𝛄)────────────────────────────────────────────────────────────────────────X^(β)───M────────\n", " │ │ │ │\n", "(0, 2): ───H───┼─────────────────┼───────────ZZ^(𝛄)────ZZ────────────────────Z^(0.5*𝛄)──────────────────────────────────────────────────X^(β)───M────────\n", " │ │ │ │\n", "(1, 0): ───H───ZZ^(𝛄)───ZZ───────┼───────────ZZ────────┼────────Z^(0.5*𝛄)───────────────────────────────────────────────────────────────X^(β)───M────────\n", " │ │ │ │ │\n", "(1, 1): ───H────────────┼────────ZZ^(𝛄)──────ZZ^(𝛄)────┼────────ZZ───────────ZZ───────────Z^(0.5*𝛄)─────────────────────────────────────X^(β)───M────────\n", " │ │ │ │ │\n", "(1, 2): ───H────────────┼──────────────────────────────ZZ^(𝛄)───┼────────────ZZ^(𝛄)───────ZZ────────────────────Z^(0.5*𝛄)───────────────X^(β)───M────────\n", " │ │ │ │\n", "(2, 0): ───H────────────ZZ^(𝛄)──────────────────────────────────┼────────────ZZ───────────┼────────Z^(0.5*𝛄)────────────────────────────X^(β)───M────────\n", " │ │ │ │\n", "(2, 1): ───H────────────────────────────────────────────────────ZZ^(𝛄)───────ZZ^(𝛄)───────┼─────────────────────ZZ──────────Z^(0.5*𝛄)───X^(β)───M────────\n", " │ │ │\n", "(2, 2): ───H──────────────────────────────────────────────────────────────────────────────ZZ^(𝛄)────────────────ZZ^(𝛄)──────Z^(0.5*𝛄)───X^(β)───M────────\n", " └──────────────────┘ └──────────────────┘" ], "text/plain": [ " ┌──────────────────┐ ┌──────────────────┐\n", "(0, 0): ───H───ZZ───────ZZ───────Z^(0.5*𝛄)──────────────────────────────────────────────────────────────────────────────────────────────X^(β)───M('m')───\n", " │ │ │\n", "(0, 1): ───H───┼────────ZZ^(𝛄)───ZZ──────────ZZ────────Z^(0.5*𝛄)────────────────────────────────────────────────────────────────────────X^(β)───M────────\n", " │ │ │ │\n", "(0, 2): ───H───┼─────────────────┼───────────ZZ^(𝛄)────ZZ────────────────────Z^(0.5*𝛄)──────────────────────────────────────────────────X^(β)───M────────\n", " │ │ │ │\n", "(1, 0): ───H───ZZ^(𝛄)───ZZ───────┼───────────ZZ────────┼────────Z^(0.5*𝛄)───────────────────────────────────────────────────────────────X^(β)───M────────\n", " │ │ │ │ │\n", "(1, 1): ───H────────────┼────────ZZ^(𝛄)──────ZZ^(𝛄)────┼────────ZZ───────────ZZ───────────Z^(0.5*𝛄)─────────────────────────────────────X^(β)───M────────\n", " │ │ │ │ │\n", "(1, 2): ───H────────────┼──────────────────────────────ZZ^(𝛄)───┼────────────ZZ^(𝛄)───────ZZ────────────────────Z^(0.5*𝛄)───────────────X^(β)───M────────\n", " │ │ │ │\n", "(2, 0): ───H────────────ZZ^(𝛄)──────────────────────────────────┼────────────ZZ───────────┼────────Z^(0.5*𝛄)────────────────────────────X^(β)───M────────\n", " │ │ │ │\n", "(2, 1): ───H────────────────────────────────────────────────────ZZ^(𝛄)───────ZZ^(𝛄)───────┼─────────────────────ZZ──────────Z^(0.5*𝛄)───X^(β)───M────────\n", " │ │ │\n", "(2, 2): ───H──────────────────────────────────────────────────────────────────────────────ZZ^(𝛄)────────────────ZZ^(𝛄)──────Z^(0.5*𝛄)───X^(β)───M────────\n", " └──────────────────┘ └──────────────────┘" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "\"\"\"Add measurements to the QAOA circuit.\"\"\"\n", "measurement_circuit = qaoa.copy()\n", "measurement_circuit.append(\n", " cirq.measure(*[qubit for row in qubits for qubit in row], key=\"m\")\n", ")\n", "measurement_circuit" ] }, { "cell_type": "markdown", "metadata": { "id": "_OOqzrQwGTJZ" }, "source": [ "Now we'll measure the output of the circuit repeatedly for a good set of angles $\\gamma$ and $\\beta$. Note that these are simply found from inspecting the above heatmap of the energy found via grid search." ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "execution": { "iopub.execute_input": "2024-12-15T11:07:40.871925Z", "iopub.status.busy": "2024-12-15T11:07:40.871472Z", "iopub.status.idle": "2024-12-15T11:07:40.888875Z", "shell.execute_reply": "2024-12-15T11:07:40.888311Z" }, "id": "KbIu8eyNSK_t" }, "outputs": [], "source": [ "\"\"\"Sample from the QAOA circuit.\"\"\"\n", "num_reps = 1000 # Try different numbers of repetitions.\n", "gamma_value, beta_value = 0.2, 0.25 # Try different values of the parameters.\n", "\n", "# Sample from the circuit.\n", "simulator = cirq.Simulator()\n", "params = cirq.ParamResolver({\"𝛄\": gamma_value, \"β\": beta_value})\n", "result = simulator.run(measurement_circuit, param_resolver=params, repetitions=num_reps)" ] }, { "cell_type": "markdown", "metadata": { "id": "EudMLjzNGadh" }, "source": [ "Finally, we'll compute the energy for each of our measurement outcomes and look at the statistics. We start with a helper function which calculates the energy given a set of measurement outcomes." ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "execution": { "iopub.execute_input": "2024-12-15T11:07:40.891472Z", "iopub.status.busy": "2024-12-15T11:07:40.891243Z", "iopub.status.idle": "2024-12-15T11:07:40.895864Z", "shell.execute_reply": "2024-12-15T11:07:40.895191Z" }, "id": "Oa6kAObJTZRi" }, "outputs": [], "source": [ "def compute_energy(meas: np.ndarray) -> float:\n", " \"\"\"Returns the energy computed from measurements.\n", "\n", " Args:\n", " meas: Measurements/samples.\n", " \"\"\"\n", " Z_vals = 1 - 2 * meas.reshape(n_rows, n_cols)\n", " energy = 0\n", " for i in range(n_rows):\n", " for j in range(n_cols):\n", " if i < n_rows - 1:\n", " energy -= Z_vals[i, j] * Z_vals[i + 1, j]\n", " if j < n_cols - 1:\n", " energy -= Z_vals[i, j] * Z_vals[i, j + 1]\n", " energy -= h[i, j] * Z_vals[i, j]\n", " return energy / (n_rows * n_cols)" ] }, { "cell_type": "markdown", "metadata": { "id": "kkUl5LYnG7E7" }, "source": [ "Now we consider the 10 most common outputs of our measurements and compute the energies of those." ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "execution": { "iopub.execute_input": "2024-12-15T11:07:40.898304Z", "iopub.status.busy": "2024-12-15T11:07:40.898091Z", "iopub.status.idle": "2024-12-15T11:07:40.904063Z", "shell.execute_reply": "2024-12-15T11:07:40.903556Z" }, "id": "t2SHZj_-TTFS" }, "outputs": [], "source": [ "\"\"\"Compute the energies of the most common measurement results.\"\"\"\n", "# Get a histogram of the measurement results.\n", "hist = result.histogram(key=\"m\")\n", "\n", "# Consider the top 10 of them.\n", "num = 10\n", "\n", "# Get the most common measurement results and their probabilities.\n", "configs = [c for c, _ in hist.most_common(num)]\n", "probs = [v / result.repetitions for _, v in hist.most_common(num)]" ] }, { "cell_type": "markdown", "metadata": { "id": "37ec9e5b702b" }, "source": [ "We can now plot the probabilities of the most common measurement results as well as the energies associated with these results." ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "execution": { "iopub.execute_input": "2024-12-15T11:07:40.906575Z", "iopub.status.busy": "2024-12-15T11:07:40.906356Z", "iopub.status.idle": "2024-12-15T11:07:41.135989Z", "shell.execute_reply": "2024-12-15T11:07:41.135014Z" }, "id": "6-jbvrc_WOgP" }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiwAAAGzCAYAAAAMr0ziAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAM5NJREFUeJzt3XtcVVX+//E3FzmQCiokhKI45V2TQiHU1IpCJZNKRdNBHRur8RrleMm8ZEY3jUZMZR5TmUE6WWmZmUppFykVdMpvpWZ5KQPUChQLFfbvj36cOnKRo8hZ0uv5eJyHD9ZZe+/P2pwDb9dZe+NmWZYlAAAAg7m7ugAAAIBzIbAAAADjEVgAAIDxCCwAAMB4BBYAAGA8AgsAADAegQUAABiPwAIAAIxHYAEAAMYjsMCl3NzcNHbs2Grb34svvig3Nzdt3779nH179eqlXr162b/ev3+/3Nzc9OKLL9rbZs2aJTc3t2qrrzrk5uZqwIAB8vf3l5ubm5KTk11dEgBcdAQWlFH6S7/04e3trVatWmns2LHKzc11dXku99hjj2nVqlUuO/7999+vd999V1OnTtWyZcvUu3fvCvuuWLFCw4YNU8uWLeXm5uYQ0M5WVFSkyZMnKzg4WD4+PoqMjNSGDRuqVNOIESPk5uYmX19f/fLLL2We37t3r/319PTTT1dpn87asmWLZs2apZ9//tmp7TZt2qQ77rhDQUFB8vLyUuPGjdWvXz+9/vrrF6XO2mbNmjXq3bu3/P397T8rHnzwQR07duy893n48GHNmjVLO3furL5CK5Genk7wvwQQWFChRx55RMuWLVNKSoq6du2qRYsWKSoqSidPnnR1adVi/fr1Wr9+faV9pk+fXuYXsKsDy3vvvaf+/fvrwQcf1LBhw9SmTZsK+y5atEirV69WSEiIGjZsWOl+R4wYofnz52vo0KF69tln5eHhob59++qjjz6qUl2enp46efKk3nrrrTLPpaWlydvbu0r7OV9btmzR7NmznQosM2fO1A033KBdu3bpnnvu0eLFizVp0iSdOHFCd955p9LT0y9ewbXAgw8+qH79+iknJ0eTJ09WSkqKoqOjlZKSok6dOmn37t3ntd/Dhw9r9uzZBBY48HR1ATBXnz591LlzZ0nS3XffLX9/f82fP1+rV6/WkCFDyt2msLBQdevWrckyz5uXl9c5+3h6esrT06y3SV5enho0aFClvsuWLVOTJk3k7u6uDh06VNhv69atWr58uZ566ik9+OCDkqSEhAR16NBB//znP7Vly5ZzHstms6lbt2565ZVXNGjQIIfn0tPTFRsbq9dee61KddeElStX6pFHHtGAAQOUnp6uOnXq2J+bNGmS3n33XZ0+fdqFFZrtlVde0bx58xQfH6+0tDR5eHjYnxsxYoRuuOEGDRw4UNnZ2ca9h3BpYoYFVXbjjTdKkr799ltJv/1Qqlevnvbt26e+ffuqfv36Gjp0qKTfgssDDzygkJAQ2Ww2tW7dWk8//bQq+uPgaWlpat26tby9vRUeHq4PPvjA4fkDBw7oH//4h1q3bi0fHx/5+/tr4MCB2r9/f7n7O3nypO655x75+/vL19dXCQkJ+umnnxz6nL2GpTxnr2Fxc3NTYWGhli5dav+IY8SIEXr//ffl5uamN954o8w+0tPT5ebmpszMzEqP9c0332jgwIFq1KiRLrvsMl133XV6++237c+XflRnWZYWLlxoP35lQkJC5O5+7rf5ypUr5eHhodGjR9vbvL29NWrUKGVmZurQoUPn3Ick3XXXXXrnnXccZjm2bdumvXv36q677ip3m3ONu9SCBQvUvn17XXbZZWrYsKE6d+5snwGZNWuWJk2aJElq0aKF/dxU9PqQpIcffliNGjXS888/7xBWSsXExOjWW2+1f52Xl6dRo0YpMDBQ3t7e6tSpk5YuXeqwTek6qKeffloLFy7UX/7yF1122WW65ZZbdOjQIVmWpTlz5qhp06by8fFR//799eOPPzrsIzQ0VLfeeqs2bdqkzp07y8fHRx07dtSmTZskSa+//ro6duxof6/s2LGjTO3vvfeerr/+etWtW1cNGjRQ//799eWXXzr0KX1tf/311xoxYoQaNGggPz8/jRw5skqzqLNnz1bDhg2VmprqEFYkKSIiQpMnT9bnn3+ulStXOoxtxIgRZfb1x/fipk2b1KVLF0nSyJEj7d/L0rVlvXr1UocOHZSVlaWuXbvKx8dHLVq00OLFix32Wfp+Ofs1sGnTJrm5udnPZ69evfT222/rwIED9mOFhoba+1f2ukPNIrCgyvbt2ydJ8vf3t7edOXNGMTExaty4sZ5++mndeeedsixLt912m5555hn17t1b8+fPV+vWrTVp0iQlJiaW2e/mzZs1ceJEDRs2TI888oiOHTum3r17a9euXfY+27Zt05YtWzR48GD961//0r333quMjAz16tWr3B+uY8eO1ZdffqlZs2YpISFBaWlpiouLqzAwVdWyZctks9l0/fXXa9myZVq2bJnuuece9erVSyEhIUpLSyuzTVpamq688kpFRUVVuN/c3Fx17dpV7777rv7xj39o7ty5+vXXX3XbbbfZQ1CPHj20bNkySdLNN99sP3512LFjh1q1aiVfX1+H9oiICEmq8tT8HXfcITc3N4f1H+np6WrTpo2uvfbaMv2rMm5J+ve//63x48erXbt2Sk5O1uzZsxUWFqZPP/3UftzSWb9nnnnGfm4uv/zycuvcu3evvvrqK8XFxal+/frnHNcvv/yiXr16admyZRo6dKieeuop+fn5acSIEXr22WfL9E9LS9Nzzz2ncePG6YEHHtDmzZs1aNAgTZ8+XevWrdPkyZM1evRovfXWW/YZrT/6+uuvddddd6lfv35KSkrSTz/9pH79+iktLU3333+/hg0bptmzZ2vfvn0aNGiQSkpK7Ntu3LhRMTExysvL06xZs5SYmKgtW7aoW7du5Qa4QYMG6fjx40pKStKgQYP04osvavbs2ZWej71792r37t3q379/mddMqYSEBEm/rXFxRtu2bfXII49IkkaPHm3/Xvbo0cPe56efflLfvn0VHh6uJ598Uk2bNtV9992n559/3qljSdJDDz2ksLAwBQQE2I9V+vHQuV53qGEWcJYXXnjBkmRt3LjROnLkiHXo0CFr+fLllr+/v+Xj42N99913lmVZ1vDhwy1J1pQpUxy2X7VqlSXJevTRRx3aBwwYYLm5uVlff/21vU2SJcnavn27ve3AgQOWt7e3dfvtt9vbTp48WabOzMxMS5L10ksvlak9PDzcOnXqlL39ySeftCRZq1evtrf17NnT6tmzp/3rb7/91pJkvfDCC/a2mTNnWme/TerWrWsNHz68TD1Tp061bDab9fPPP9vb8vLyLE9PT2vmzJll+v/RxIkTLUnWhx9+aG87fvy41aJFCys0NNQqLi62t0uyxowZU+n+ytO+fXuH8Z793I033lim/f/+7/8sSdbixYsr3ffw4cOtunXrWpb12/f5pptusizLsoqLi62goCBr9uzZ9vP71FNP2ber6rj79+9vtW/fvtIannrqKUuS9e2331baz7Isa/Xq1ZYk65lnnjlnX8uyrOTkZEuS9fLLL9vbTp06ZUVFRVn16tWzCgoKLMv6/TV0+eWXO7wOpk6dakmyOnXqZJ0+fdrePmTIEMvLy8v69ddf7W3Nmze3JFlbtmyxt7377ruWJMvHx8c6cOCAvX3JkiWWJOv999+3t4WFhVmNGze2jh07Zm/73//+Z7m7u1sJCQn2ttLX9t/+9jeHsd5+++2Wv79/peej9D1+rvPn6+trXXvttQ5jK++9c/Z7cdu2bWXei3/sK8maN2+eva2oqMg+7tL3fenPgrNfD++//36ZcxYbG2s1b968zLGq8rpDzWGGBRWKjo7W5ZdfrpCQEA0ePFj16tXTG2+8oSZNmjj0u++++xy+Xrt2rTw8PDR+/HiH9gceeECWZemdd95xaI+KilJ4eLj962bNmql///569913VVxcLEny8fGxP3/69GkdO3ZMV111lRo0aKDs7OwytY8ePdphmv++++6Tp6en1q5d6+RZqLqEhAQVFRU5TIGvWLFCZ86c0bBhwyrddu3atYqIiFD37t3tbfXq1dPo0aO1f/9+ffHFFxetbum3GQSbzVamvXShbHlX/lTkrrvu0qZNm5STk6P33ntPOTk5FX4cVNVxN2jQQN999522bdvmzLAqVFBQIElVml0prTMoKMhh7VadOnU0fvx4nThxQps3b3boP3DgQPn5+dm/joyMlCQNGzbMYT1HZGSkTp06pe+//95h+3bt2jnMyJVuf+ONN6pZs2Zl2r/55htJ0g8//KCdO3dqxIgRatSokb3f1VdfrZtvvrnc1/+9997r8PX111+vY8eO2c9ReY4fPy7p3Oevfv36le7nfHl6euqee+6xf+3l5aV77rlHeXl5ysrKqrbjVPfrDheGwIIKLVy4UBs2bND777+vL774Qt98841iYmIc+nh6eqpp06YObQcOHFBwcHCZH2Zt27a1P/9HLVu2LHPsVq1a6eTJkzpy5Iik335hzpgxw74mJiAgQJdffrl+/vln5efnl9n+7H3Wq1dPV1xxRaVrGi5UmzZt1KVLF4ePhdLS0nTdddfpqquuqnTbAwcOqHXr1mXaKzpn1c3Hx0dFRUVl2n/99Vf781VVup5pxYoVSktLU5cuXSocf1XHPXnyZNWrV08RERFq2bKlxowZo48//rjKNZ2t9GOM0l+853LgwAG1bNmyzHqgir4/fwwVkuzhJSQkpNz2s9dXne/2pXVUdE6PHj2qwsLCSo9VejXZ2TX9Uel7+1zn7/jx41UOhc4IDg4us7i/VatWklSt7/Hqft3hwhBYUKGIiAhFR0erV69eatu2bbmLN202W5UWdV6ocePGae7cuRo0aJD++9//av369dqwYYP8/f0dPr93tYSEBG3evFnfffed9u3bp08++eScsysmuOKKK/TDDz+UaS9tCw4OrvK+bDab7rjjDi1dulRvvPFGhbMrzmjbtq12796t5cuXq3v37nrttdfUvXt3zZw587z2V3op+Oeff37BtZXn7EWo52q3zlpbdaHbO+N89lka1D777LMK+xw4cEAFBQVq166dva2iReKlM6nVqTqOVd2vO1wYAguqXfPmzXX48OEy//v66quv7M//0d69e8vsY8+ePbrsssvsiyZXrlyp4cOHa968eRowYIBuvvlmde/evcJ7bpy9zxMnTuiHH35wWP1/viq7Mmfw4MHy8PDQK6+8orS0NNWpU0fx8fHn3Gfz5s3LvWdFReesuoWFhWnPnj1lpu9LFxeGhYU5tb+77rpLO3bs0PHjxzV48OAK+zkz7rp16yo+Pl4vvPCCDh48qNjYWPsiXany78vZWrVqpdatW2v16tU6ceLEOfs3b95ce/fuLROOa+r7U1WldVR0TgMCAqrltgOtWrVSq1attGrVqgpnWV566SVJcrjSqmHDhuW+Z8+eoTrX9/Lw4cNlZor27NkjSfb3eOlM0dnHK2+2srLjnet1h5pDYEG169u3r4qLi5WSkuLQ/swzz8jNzU19+vRxaM/MzHRYh3Lo0CGtXr1at9xyi/1/fx4eHmX+x7dgwYIK/7eUmprqcA+NRYsW6cyZM2WOfT7q1q1bYVAKCAhQnz599PLLLystLU29e/dWQEDAOffZt29fbd261eHS58LCQqWmpio0NNThf6kXw4ABA1RcXKzU1FR7W1FRkV544QVFRkaW+SjiXG644QbNmTNHKSkpCgoKqrBfVcd99l1Tvby81K5dO1mWZf8+l/4iruqN42bPnq1jx47p7rvv1pkzZ8o8v379evsVLn379lVOTo5WrFhhf/7MmTNasGCB6tWrp549e1bpmBfbFVdcobCwMC1dutThPOzatUvr169X3759q+1YM2bM0E8//aR77723zPswKytLTzzxhDp06KA777zT3n7l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bdu2zdWl1HrffPONFi1apMTERE2bNk3btm3T+PHj5eXlpeHDh7u6vFpnypQpKigoUJs2beTh4aHi4mLNnTtXQ4cOdXVpf0oEFtRaY8aM0a5du/TRRx+5upRa69ChQ5owYYI2bNhQq/72l6lKSkrUuXNnPfbYY5Kka665Rrt27dLixYsJLBfBf//7X6WlpSk9PV3t27fXzp07NXHiRAUHB3O+XYDAcpEFBATIw8NDubm5Du25ubkKCgpyUVW139ixY7VmzRp98MEHatq0qavLqbWysrKUl5ena6+91t5WXFysDz74QCkpKSoqKpKHh4cLK6xdrrjiCrVr186hrW3btnrttddcVFHtNmnSJE2ZMkWDBw+WJHXs2FEHDhxQUlISgcUFWMNykXl5eSk8PFwZGRn2tpKSEmVkZCgqKsqFldVOlmVp7NixeuONN/Tee++pRYsWri6pVrvpppv0+eefa+fOnfZH586dNXToUO3cuZOwUs26detW5jL9PXv2qHnz5i6qqHY7efKk3N0df016eHiopKTERRX9uTHDUgMSExM1fPhwde7cWREREUpOTlZhYaFGjhzp6tJqnTFjxig9PV2rV69W/fr1lZOTI0ny8/OTj4+Pi6urferXr19mfVDdunXl7+/PuqGL4P7771fXrl312GOPadCgQdq6datSU1OVmprq6tJqpX79+mnu3Llq1qyZ2rdvrx07dmj+/Pn629/+5urS/pws1IgFCxZYzZo1s7y8vKyIiAjrk08+cXVJtZKkch8vvPCCq0v70+jZs6c1YcIEV5dRa7311ltWhw4dLJvNZrVp08ZKTU11dUm1VkFBgTVhwgSrWbNmlre3t/WXv/zFeuihh6yioiJXl/anxH1YAACA8VjDAgAAjEdgAQAAxiOwAAAA4xFYAACA8QgsAADAeAQWAABgPAILAAAwHoEFAAAYj8ACAACMR2ABAADGI7AAAADj/T/RXpqFgsTKgQAAAABJRU5ErkJggg==", "text/plain": [ "