{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Creating a Bell state with cross-resonance pulses on OQC's Lucy\n", "\n", "In this notebook we will investigate cross-resonance mechanisms to create a Bell state, i.e., the `Hello world!` example in quantum computing. \n", "\n", "The simplest circuit to generate a Bell pair is an Hadamard gate on a first qubit followed by a CNOT gate between this qubit and a second qubit. However, diving deeper in the pulse implementation of such gates, we would realize that they require specific mechanisms that are tightly connected to the hardware type and device architecture. Focusing on the capabilities of OQC's Lucy device, we will replace the canonical CNOT gate with a different entangling gate that is either the cross-resonance (CR) gate or its echoed version. We will then see how two qubits interact when we drive one qubit at the frequency of the other and calibrate this process to be able to create a Bell pair." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "# Use Braket SDK Cost Tracking to estimate the cost to run this example\n", "from braket.tracking import Tracker\n", "t = Tracker().start()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's first start with importing some packages as usual." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "from braket.aws import AwsDevice\n", "from braket.pulse import PulseSequence, ConstantWaveform\n", "\n", "from braket.circuits import Circuit, Observable\n", "from braket.parametric import FreeParameter\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We will use two qubits, #0 amd #1, that are physically connected to each other. We also instantiate an OQC device to extract frames and submit circuits." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "a=0\n", "b=1\n", "\n", "device = AwsDevice(\"arn:aws:braket:eu-west-2::device/qpu/oqc/Lucy\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Bell pair with the H, ECR and V gates" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First we show how to transform the canonical Bell state circuit into another one where we replace the CNOT gate by an echoed cross-resonance (ECR) gatet and a V gate, also known as SX (square-root of X). These gates are native on the Lucy device.\n", "\n", "As shown in Phys. Rev. B. 81, 134507 (2010) and Phys. Rev. Applied 12, 064013, the ECR gate implements an unitary evolution of the system that can be decomposed in two steps with a time reversal half way through the process to suppress most undesired evolution.\n", "$$ R_{ZX}(\\pi/4)-R_X(\\pi)-R_{ZX}(\\pi/4).$$\n", "The $R_{ZX}$ is interpretable as the rotation of the second qubit, conditioned by the state of the first qubit. " ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "T : |0| 1 |2|\n", " \n", "q0 : -H-ECR---\n", " | \n", "q1 : ---ECR-V-\n", "\n", "T : |0| 1 |2|\n" ] } ], "source": [ "bell_pair_with_gates = Circuit().h(a).ecr(a, b).v(b)\n", "print(bell_pair_with_gates)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The circuit is then executed on the OQC device and we plot the measurement histogram which indicates that we created $$\\frac{|00\\rangle+e^{i\\phi}|11\\rangle}{\\sqrt{2}}$$" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, 'Population')" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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srLk9XqDy/x+v7xer/Ly8trcJi8vL2R9SXrrrbeOuj4AAOhbLH9byu12q6CgQNnZ2crJyVFZWZmamppUWFgoSZo1a5aGDh0qj8cjSbr55ps1ceJE3X///brooov04osvatOmTXriiSesfBkAAKCHsDxuZs6cqfr6ehUXF8vn8ykzM1OrVq0KXjRcW1urqKifTjBNmDBBL7zwgv74xz/qjjvu0MiRI7Vy5UqdccYZVr0EI9jtdpWUlBzxFh56P46tuTi2ZuK4dp4t0J7PVAEAAPQSln+JHwAAQCQRNwAAwCjEDQAAMApxAwAAjELc9EFLly5VamqqHA6HcnNztXHjxuBj3333nW688UYNGTJEcXFxmjFjxhFfmoie61jH9oknntCkSZMUHx8vm82m/fv3Wzco2u2dd97RJZdcopSUFNlstiN+Ry8QCKi4uFinnHKKTjjhBLlcLn322WfWDIsOOd6xXbFihS644ILgN+pXV1dbMmdvRNz0McuXL5fb7VZJSYmqqqo0btw45efna8+ePZKk3/3ud3r99df10ksvae3atdq1a5cuu+wyi6dGexzv2B46dEhTpkzRHXfcYfGk6IimpiaNGzdOS5cubfPx++67Tw899JDKy8u1YcMGDRgwQPn5+fruu++6eVJ01PGObVNTk/7v//5P9957bzdPZoAA+pScnJzAjTfeGLzf2toaSElJCXg8nsD+/fsD/fv3D7z00kvBx7du3RqQFKisrLRiXHTAsY7tf1u9enVAUuCbb77p5gnRWZICr7zySvC+3+8PJCcnBxYvXhxctn///oDdbg/89a9/tWBChOt/j+1/2759e0BSYMuWLd06U2/GmZs+pKWlRZs3b5bL5Qoui4qKksvlUmVlpTZv3qzDhw+HPD569GgNGzZMlZWVVoyMdjresYWZtm/fLp/PF3LcExISlJuby3FHn0bc9CF79+5Va2tr8Nuff5SUlCSfzyefz6eYmJgjflj0x8fRcx3v2MJMPx5bjjsQirgBAABGIW76kMTEREVHRx/x6ae6ujolJycrOTlZLS0tR3yK5sfH0XMd79jCTD8eW447EIq46UNiYmKUlZUlr9cbXOb3++X1epWXl6esrCz1798/5PFt27aptrZWeXl5VoyMdjresYWZTjvtNCUnJ4cc94aGBm3YsIHjjj7N8l8FR/dyu90qKChQdna2cnJyVFZWpqamJhUWFiohIUHXXnut3G63Bg8erPj4eN10003Ky8vT2WefbfXoOI5jHVtJweuqPv/8c0nShx9+qBNPPFHDhg3T4MGDrRwdx9DY2Bg8ZtIPFxFXV1dr8ODBGjZsmG655Rbdc889GjlypE477TQtWLBAKSkpmjZtmnVDo12Od2z37dun2tpa7dq1S9IP/7MpKXimHcdg9ce10P0efvjhwLBhwwIxMTGBnJycwPr164OPffvtt4EbbrghMGjQoEBsbGxg+vTpgd27d1s4LTriWMe2pKQkIOmI27Jly6wbGMf140f3//dWUFAQCAR++Dj4ggULAklJSQG73R745S9/Gdi2bZu1Q6Ndjndsly1b1ubjJSUlls7dG9gCgUCge3MKAACg63DNDQAAMApxAwAAjELcAAAAoxA3AADAKMQNAAAwCnEDAACMQtwAAACjEDcAAMAoxA0AADAKcQOgR6mvr9dvf/tbDRs2THa7XcnJycrPz9e7774rSbLZbFq5cmWH95uamqqysrLIDgugR+KHMwH0KDNmzFBLS4uefvppjRgxQnV1dfJ6vfr666+tHg1AL8FvSwHoMfbv369BgwZpzZo1mjhx4hGPp6am6ssvvwzeHz58uGpqavTFF1/I7XZr/fr1ampq0pgxY+TxeORyuSRJkyZN0tq1a0P29eN/+tatW6f58+dr06ZNSkxM1PTp0+XxeDRgwIAufKUAuhJvSwHoMeLi4hQXF6eVK1equbn5iMf//e9/S5KWLVum3bt3B+83NjbqwgsvlNfr1ZYtWzRlyhRdcsklqq2tlSStWLFCp556qhYuXKjdu3dr9+7dkqQvvvhCU6ZM0YwZM/TBBx9o+fLlWrdunebOndtNrxhAV+DMDYAe5eWXX1ZRUZG+/fZbjR8/XhMnTtQVV1yhsWPHSvrhmptXXnlF06ZNO+Z+zjjjDF1//fXBUElNTdUtt9yiW265JbjOnDlzFB0drccffzy4bN26dZo4caKamprkcDgi/voAdD3O3ADoUWbMmKFdu3bptdde05QpU7RmzRqNHz9eTz311FG3aWxs1K233qoxY8Zo4MCBiouL09atW4Nnbo7m/fff11NPPRU8YxQXF6f8/Hz5/X5t3749wq8MQHfhgmIAPY7D4dDkyZM1efJkLViwQHPmzFFJSYlmz57d5vq33nqr3nrrLS1ZskTp6ek64YQTdPnll6ulpeWYz9PY2Kjf/OY3mjdv3hGPDRs2LBIvBYAFiBsAPV5GRkbw49/9+/dXa2tryOPvvvuuZs+erenTp0v6IVpqampC1omJiTliu/Hjx+uTTz5Renp6l80OoPvxthSAHuPrr7/W+eefr+eee04ffPCBtm/frpdeekn33XefLr30Ukk/XDvj9Xrl8/n0zTffSJJGjhypFStWqLq6Wu+//75+9atfye/3h+w7NTVV77zzjnbu3Km9e/dKkm677Ta99957mjt3rqqrq/XZZ5/p1Vdf5YJioJcjbgD0GHFxccrNzdUDDzygX/ziFzrjjDO0YMECFRUV6ZFHHpEk3X///XrrrbfkdDp11llnSZJKS0s1aNAgTZgwQZdccony8/M1fvz4kH0vXLhQNTU1SktL00knnSRJGjt2rNauXav//Oc/Ovfcc3XWWWepuLhYKSkp3fvCAUQUn5YCAABG4cwNAAAwCnEDAACMQtwAAACjEDcAAMAoxA0AADAKcQMAAIxC3AAAAKMQNwAAwCjEDQAAMApxAwAAjELcAAAAo/w/+6RxlECLHrAAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "nb_shots = 100\n", "task = device.run(bell_pair_with_gates, shots = nb_shots)\n", "counts = task.result().measurement_counts\n", "\n", "\n", "plt.bar(sorted(counts), [counts[k]/nb_shots for k in sorted(counts)])\n", "plt.xlabel(\"State\")\n", "plt.ylabel(\"Population\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Bell pair with the pulse implementation of the cross-resonance sequence" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Instead of tackling the implementation of the complete echoed cross resonance pulse sequence, we use a simple cross-resonance (CR) gate. The CR gate is a single-pulse gate that implements the unitary transformation $$ \\exp(−i \\beta Z X / 2),$$ where Z and X are the 2x2 Pauli matrices. Practically, you can understand the gate by isolating its action for each eigenstate of the control qubit. If it is in $|0\\rangle$ (resp. $|1\\rangle$), the target qubit undergoes a rotation of angle $\\beta$ (resp. $-\\beta$). \n", "\n", "We seek to measure the interaction strength between the qubits when we drive one of them at the frequency of the other. For this, we use the frame `q0_q1_cross_resonance` that is bound to qubit 0 but tuned up to the frequency of qubit 1. As we will test this pulse sequence in a quantum circuit containing single-qubit gates on other qubits, we also declare the 1-qubit drive frames for 0 and 1. " ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "q0_q1_CR = device.frames[f'q{a}_q{b}_cross_resonance']\n", "q0 = device.frames[f'q{a}_drive']\n", "q1 = device.frames[f'q{b}_drive']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The sequence consists of a single square pulse of amplitude 0.18. This value has been determined by running the circuits below for different amplitudes and choosing the one that optimizes the difference of the expectation values $\\langle IZ \\rangle$ taken for the opposite initialization of the control qubit." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "length = FreeParameter(\"length\")\n", "const_wf = ConstantWaveform(length, 0.18)\n", "\n", "cross_resonance_sequence = (\n", " PulseSequence()\n", " .barrier([q0, q1, q0_q1_CR])\n", " .play(q0_q1_CR, const_wf)\n", " .barrier([q0, q1, q0_q1_CR])\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We run two batches of circuits where we vary the length of the pulse from 12ns to 1.4 µs. Each batch has a different initialized state: $|0\\rangle$ for the first, $|1\\rangle$ for the second. " ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "lengths = np.arange(12e-9, 1.5e-6, 36e-9)\n", "nb_shots = 1000\n", "\n", "# Initialization of the control qubit in 0\n", "circuit = (\n", " Circuit()\n", " .pulse_gate([0, 1], pulse_sequence=cross_resonance_sequence)\n", " .expectation(observable = Observable.I() @ Observable.Z(),target=[0,1])\n", ")\n", "CR_circuits = [circuit(length=l) for l in lengths]\n", "batch_init_0 = device.run_batch(CR_circuits, shots=nb_shots, disable_qubit_rewiring=True)\n", "\n", "# Initialization of the control qubit in 1\n", "circuit = (\n", " Circuit()\n", " .x(0)\n", " .pulse_gate([0, 1], pulse_sequence=cross_resonance_sequence)\n", " .expectation(observable = Observable.I() @ Observable.Z(),target=[0,1])\n", ")\n", "CR_circuits = [circuit(length=l) for l in lengths]\n", "batch_init_1 = device.run_batch(CR_circuits, shots=nb_shots, disable_qubit_rewiring=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We analyze the data by plotting the expectation value $\\langle IZ \\rangle$ versus the pulse duration for each batch. " ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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cs8995CcnIyvry8JCQnMnDmz2a7rtjBu3Djuu+8+m16zLQUFBUybNq1D13jzzTcZN24cISEhaDQaSktLbROcaJeft87qJMjor1P64OOl5bfDJ1mVWdziOTtzS3l7vVrX89QV/a3eFNZLp5UkSAgX59BEaN68eWg0mja/9u/fb9W1v/76a1avXs1LL71k0fMeeeQRysrKTF+5ublWvb4zy87OJj09ndWrV/P888+ze/duVqxYwfjx47nrrrs6PR5FUWhosHzJc0tiY2Px9e3YL6bq6mqmTp3K3/72N5vEJDpXQniAaZrqme8yqT+nf1G93sDDX+zCoMCswV0Z3ye6pcsIITyEQxOhBx98kMzMzDa/kpOTiY2Npbi4+Se7hoYGTp061eqU1+rVqzl8+DBhYWF4eXnh5aV+4rvqqqsYN25cqzH5+voSEhLS7MtsigJ1VY75smDx35133olGo2Hz5s1cddVV9O7dm379+vHAAw+wceNG03k5OTlcfvnlBAUFERISwuzZsykqamoo9/jjjzN48GDee+89kpKSCA0N5brrrqOiogKAm2++mbVr1/Lyyy+bEtvs7GzWrFmDRqPh+++/Jz09HV9fX9atW0dtbS333nsv0dHR+Pn5cdFFF7Flyxbz//5Rp8aWLVsGqAmfRqNh6dKljB8/noCAAAYNGsSGDRvavMZ9993HvHnzuPDCCy16beE87hyXQkSgD0dKqvhg47Fmj/137WH2F1bQJcCbv1/qvLvWCyE6h0NrhKKiooiKimr3vJEjR1JaWsq2bdtIT08H1ETHYDAwYsSIFp8zb948brvttmb3DRgwgP/85z/MnDmz48G3pL4anulqn2u352/54NP+7tunTp1ixYoVPP300wQGnn++sfbGYDCYkqC1a9fS0NDAXXfdxbXXXsuaNWtM5x8+fJhly5axfPlyTp8+zezZs3nuued4+umnefnllzl48CD9+/fnySefBNR/8+zsbED9N1qwYAHJycl06dKFv/71r3zxxRcsWbKE7t278+9//5spU6aQlZVFeHi41X81jz76KAsWLKBXr148+uijXH/99WRlZZmSY+F+gv28eeCS3jz65R5eWnWIK4bEExrgTVZxJa+sygJg/sx+Mq0lhHCNGqG+ffsydepUbr/9djZv3sz69eu5++67ue666+jaVU088vLySE1NZfPmzYA6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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "IZ_exp_value_init_0 = np.array([result.values[0] for result in batch_init_0.results()])\n", "IZ_exp_value_init_1 = np.array([result.values[0] for result in batch_init_1.results()])\n", "\n", "plt.plot(lengths, IZ_exp_value_init_0, label=\"Control in 0\")\n", "plt.plot(lengths, IZ_exp_value_init_1, label=\"Control in 1\")\n", "plt.xlabel(\"Pulse duration (s)\")\n", "plt.ylabel(\"\")\n", "plt.legend()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The plot displays a state-dependent oscillatory behavior indicating that we have implemented a unitary evolution based on the ZX interaction. We see also from the previous plot that, for pulse duration of 700ns, the two qubits interacts long enough for the state of the target qubit (i) to be flipped if the control qubit is its ground state or (ii) to cycle back to the original state if the control is in the excited state. Adding an X gate after this sequence would give the expected for the CNOT gate. \n", "\n", "Fixing the duration of the pulse to this particular value, we can now create a circuit including our custom pulse sequence and create a Bell state" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "RZX_sequence = cross_resonance_sequence(length=700e-9)\n", "\n", "bell_pair_with_pulses = (\n", " Circuit()\n", " .h(a)\n", " .pulse_gate([a ,b], pulse_sequence=RZX_sequence)\n", " .x(b)\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We now can execute this circuit, which returns similar results as with the circuit using an ECR gate. \n", "\n", "We can however notice that the fidelity is worse than in the first case, due to the fact that we did not include any correction for crosstalks such as cross-resonant cancelation, pulse synchronization and an echo scheme. To dive deeper and investigate methods to improve these results, see the following paper Phys. Rev. Applied 12, 064013. " ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, 'Population')" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAGzCAYAAADHdKgcAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAtzklEQVR4nO3df1iVdZ7/8RdgHFASMZIDhoHC+KMUEoIvTY1tnTyUW1nWpe42IJVNNVbu6SdNgqWzqJlDphMzzfqjmsp1M5vdcWmbkzhbIY6i4zaZq146+OscUQcQTDA43z+6PO1JVDgCB/g8H9d1X8P9uT/3h/fnuq/BV/f53PcJ8ng8HgEAABgkONAFAAAAdDUCEAAAMA4BCAAAGIcABAAAjEMAAgAAxiEAAQAA4xCAAACAcQhAAADAOAQgAABgHAIQAAAwTp9AFyBJS5cu1csvvyyXy6WUlBS99tprysjIaLXvmjVr9M///M/avXu3Tp8+reTkZD355JP68Y9/7O0zbdo0rVy50uc8u92u0tLSNtXT0tKiQ4cO6dJLL1VQUJD/EwMAAF3G4/HoxIkTiouLU3Dw+e/xBDwArVq1Sg6HQyUlJcrMzFRxcbHsdrt27typQYMGndV/4MCB+tnPfqYRI0YoNDRU//Ef/6G8vDwNGjRIdrvd2y87O1vLly/37lssljbXdOjQIcXHx1/cxAAAQEDs379fV1xxxXn7BAX6y1AzMzN17bXXasmSJZK+vfsSHx+vxx57TM8991ybxhg7dqwmTJigOXPmSPr2DlBNTY3Wrl3rV021tbUaMGCA9u/fr/79+/s1BgAA6Fp1dXWKj49XTU2NIiMjz9s3oHeAmpqatGXLFuXn53vbgoODZbPZVF5efsHzPR6PPvnkE+3cuVPz58/3OVZWVqZBgwYpKipKN910k+bOnavLLrus1XEaGxvV2Njo3T9x4oQkqX///gQgAAB6mLYsXwloADp69Kiam5sVExPj0x4TE6OvvvrqnOfV1tZq8ODBamxsVEhIiH75y1/qlltu8R7Pzs7W3XffrcTERO3Zs0fPP/+8br31VpWXlyskJOSs8YqKivTiiy923MQAAEC3FvA1QP649NJLtW3bNtXX18vpdMrhcGjo0KG68cYbJUlTpkzx9h09erTGjBmjYcOGqaysTDfffPNZ4+Xn58vhcHj3z9xCAwAAvVNAA1B0dLRCQkLkdrt92t1ut6xW6znPCw4OVlJSkiQpNTVVO3bsUFFRkTcAfd/QoUMVHR2t3bt3txqALBZLuxZJAwCAni2g7wEKDQ1VWlqanE6nt62lpUVOp1NZWVltHqelpcVnDc/3HThwQMeOHVNsbOxF1QsAAHqHgH8E5nA4lJubq/T0dGVkZKi4uFgNDQ3Ky8uTJOXk5Gjw4MEqKiqS9O16nfT0dA0bNkyNjY1at26d3nrrLb3++uuSpPr6er344ouaNGmSrFar9uzZo2eeeUZJSUk+j8kDAABzBTwATZ48WdXV1SooKJDL5VJqaqpKS0u9C6Orqqp8XmbU0NCgRx99VAcOHFB4eLhGjBiht99+W5MnT5YkhYSEaPv27Vq5cqVqamoUFxen8ePHa86cOXzMBQAAJHWD9wB1R3V1dYqMjFRtbS2PwQMA0EO0599vvgsMAAAYhwAEAACMQwACAADGIQABAADjEIAAAIBxCEAAAMA4BCAAAGAcAhAAADBOwN8EDQBAoCQ89/tAl2CkffMmBLoE7gABAADzEIAAAIBxCEAAAMA4BCAAAGAcAhAAADAOAQgAABiHAAQAAIxDAAIAAMYhAAEAAOMQgAAAgHEIQAAAwDgEIAAAYBwCEAAAMA4BCAAAGIcABAAAjEMAAgAAxiEAAQAA4xCAAACAcQhAAADAOAQgAABgHAIQAAAwDgEIAAAYhwAEAACMQwACAADGIQABAADjEIAAAIBxCEAAAMA4BCAAAGAcAhAAADAOAQgAABiHAAQAAIxDAAIAAMbpFgFo6dKlSkhIUFhYmDIzM7Vp06Zz9l2zZo3S09M1YMAA9evXT6mpqXrrrbd8+ng8HhUUFCg2Nlbh4eGy2WzatWtXZ08DAAD0EAEPQKtWrZLD4VBhYaEqKyuVkpIiu92uI0eOtNp/4MCB+tnPfqby8nJt375deXl5ysvL00cffeTts2DBAi1evFglJSWqqKhQv379ZLfbderUqa6aFgAA6MaCPB6PJ5AFZGZm6tprr9WSJUskSS0tLYqPj9djjz2m5557rk1jjB07VhMmTNCcOXPk8XgUFxenJ598Uk899ZQkqba2VjExMVqxYoWmTJlywfHq6uoUGRmp2tpa9e/f3//JAQC6tYTnfh/oEoy0b96EThm3Pf9+B/QOUFNTk7Zs2SKbzeZtCw4Ols1mU3l5+QXP93g8cjqd2rlzp370ox9Jkvbu3SuXy+UzZmRkpDIzM885ZmNjo+rq6nw2AADQewU0AB09elTNzc2KiYnxaY+JiZHL5TrnebW1tYqIiFBoaKgmTJig1157Tbfccoskec9rz5hFRUWKjIz0bvHx8RczLQAA0M0FfA2QPy699FJt27ZNf/rTn/Tzn/9cDodDZWVlfo+Xn5+v2tpa77Z///6OKxYAAHQ7fQL5y6OjoxUSEiK32+3T7na7ZbVaz3lecHCwkpKSJEmpqanasWOHioqKdOONN3rPc7vdio2N9RkzNTW11fEsFossFstFzgYAAPQUAb0DFBoaqrS0NDmdTm9bS0uLnE6nsrKy2jxOS0uLGhsbJUmJiYmyWq0+Y9bV1amioqJdYwIAgN4roHeAJMnhcCg3N1fp6enKyMhQcXGxGhoalJeXJ0nKycnR4MGDVVRUJOnb9Trp6ekaNmyYGhsbtW7dOr311lt6/fXXJUlBQUGaOXOm5s6dq+TkZCUmJmrWrFmKi4vTxIkTAzVNAADQjQQ8AE2ePFnV1dUqKCiQy+VSamqqSktLvYuYq6qqFBz83Y2qhoYGPfroozpw4IDCw8M1YsQIvf3225o8ebK3zzPPPKOGhgY99NBDqqmp0fXXX6/S0lKFhYV1+fwAAED3E/D3AHVHvAcIAMzAe4ACw/j3AAEAAAQCAQgAABiHAAQAAIxDAAIAAMYhAAEAAOMQgAAAgHEC/h4gE/HYZeB01qOXAICehTtAAADAOAQgAABgHAIQAAAwDgEIAAAYhwAEAACMQwACAADGIQABAADjEIAAAIBxCEAAAMA4BCAAAGAcAhAAADAOAQgAABiHAAQAAIxDAAIAAMYhAAEAAOMQgAAAgHEIQAAAwDgEIAAAYBwCEAAAMA4BCAAAGIcABAAAjEMAAgAAxiEAAQAA4xCAAACAcQhAAADAOAQgAABgHAIQAAAwDgEIAAAYhwAEAACMQwACAADGIQABAADjEIAAAIBxCEAAAMA4BCAAAGAcAhAAADBOtwhAS5cuVUJCgsLCwpSZmalNmzads+8bb7yhG264QVFRUYqKipLNZjur/7Rp0xQUFOSzZWdnd/Y0AABADxHwALRq1So5HA4VFhaqsrJSKSkpstvtOnLkSKv9y8rKNHXqVK1fv17l5eWKj4/X+PHjdfDgQZ9+2dnZOnz4sHd79913u2I6AACgBwh4AFq0aJGmT5+uvLw8jRo1SiUlJerbt6+WLVvWav/f/va3evTRR5WamqoRI0boN7/5jVpaWuR0On36WSwWWa1W7xYVFdUV0wEAAD1AQANQU1OTtmzZIpvN5m0LDg6WzWZTeXl5m8Y4efKkTp8+rYEDB/q0l5WVadCgQRo+fLgeeeQRHTt27JxjNDY2qq6uzmcDAAC9V0AD0NGjR9Xc3KyYmBif9piYGLlcrjaN8eyzzyouLs4nRGVnZ+vNN9+U0+nU/PnztWHDBt16661qbm5udYyioiJFRkZ6t/j4eP8nBQAAur0+gS7gYsybN0/vvfeeysrKFBYW5m2fMmWK9+fRo0drzJgxGjZsmMrKynTzzTefNU5+fr4cDod3v66ujhAEAEAvFtA7QNHR0QoJCZHb7fZpd7vdslqt5z134cKFmjdvnv7rv/5LY8aMOW/foUOHKjo6Wrt37271uMViUf/+/X02AADQewU0AIWGhiotLc1nAfOZBc1ZWVnnPG/BggWaM2eOSktLlZ6efsHfc+DAAR07dkyxsbEdUjcAAOjZAv4UmMPh0BtvvKGVK1dqx44deuSRR9TQ0KC8vDxJUk5OjvLz873958+fr1mzZmnZsmVKSEiQy+WSy+VSfX29JKm+vl5PP/20Nm7cqH379snpdOrOO+9UUlKS7HZ7QOYIAAC6l4CvAZo8ebKqq6tVUFAgl8ul1NRUlZaWehdGV1VVKTj4u5z2+uuvq6mpSffcc4/POIWFhZo9e7ZCQkK0fft2rVy5UjU1NYqLi9P48eM1Z84cWSyWLp0bAADongIegCRpxowZmjFjRqvHysrKfPb37dt33rHCw8P10UcfdVBlAACgNwr4R2AAAABdjQAEAACMQwACAADGIQABAADjEIAAAIBxCEAAAMA4BCAAAGAcAhAAADAOAQgAABiHAAQAAIxDAAIAAMYhAAEAAOMQgAAAgHEIQAAAwDgEIAAAYBwCEAAAMA4BCAAAGIcABAAAjEMAAgAAxiEAAQAA4xCAAACAcQhAAADAOAQgAABgHAIQAAAwDgEIAAAYhwAEAACMQwACAADGIQABAADjEIAAAIBxCEAAAMA4BCAAAGAcAhAAADAOAQgAABiHAAQAAIxDAAIAAMYhAAEAAOMQgAAAgHEIQAAAwDh+BSC3260f//jHiouLU58+fRQSEuKzAQAAdGd9/Dlp2rRpqqqq0qxZsxQbG6ugoKCOrgsAAKDT+BWAPv30U/33f/+3UlNTO7gcAACAzufXR2Dx8fHyeDwdVsTSpUuVkJCgsLAwZWZmatOmTefs+8Ybb+iGG25QVFSUoqKiZLPZzurv8XhUUFCg2NhYhYeHy2azadeuXR1WLwAA6Nn8CkDFxcV67rnntG/fvosuYNWqVXI4HCosLFRlZaVSUlJkt9t15MiRVvuXlZVp6tSpWr9+vcrLyxUfH6/x48fr4MGD3j4LFizQ4sWLVVJSooqKCvXr1092u12nTp266HoBAEDPF+Tx41ZOVFSUTp48qW+++UZ9+/bVJZdc4nP8+PHjbR4rMzNT1157rZYsWSJJamlpUXx8vB577DE999xzFzy/ublZUVFRWrJkiXJycuTxeBQXF6cnn3xSTz31lCSptrZWMTExWrFihaZMmXLBMevq6hQZGana2lr179+/zXNpq4Tnft/hY6Jt9s2bEOgSAHQj/D0OjM76W9yef7/9WgNUXFzsz2lnaWpq0pYtW5Sfn+9tCw4Ols1mU3l5eZvGOHnypE6fPq2BAwdKkvbu3SuXyyWbzebtExkZqczMTJWXl7cagBobG9XY2Ojdr6ur83dKAACgB/ArAOXm5nbILz969Kiam5sVExPj0x4TE6OvvvqqTWM8++yziouL8wYel8vlHeP7Y5459n1FRUV68cUX21s+AADoofwKQNK3Hz2tXbtWO3bskCRdddVVuuOOO7r0PUDz5s3Te++9p7KyMoWFhfk9Tn5+vhwOh3e/rq5O8fHxHVEiAADohvwKQLt379Ztt92mgwcPavjw4ZK+vYsSHx+v3//+9xo2bFibxomOjlZISIjcbrdPu9vtltVqPe+5Cxcu1Lx58/SHP/xBY8aM8bafOc/tdis2NtZnzHM9tm+xWGSxWNpUMwAA6Pn8egrs8ccf17Bhw7R//35VVlaqsrJSVVVVSkxM1OOPP97mcUJDQ5WWlian0+lta2lpkdPpVFZW1jnPW7BggebMmaPS0lKlp6f7HEtMTJTVavUZs66uThUVFecdEwAAmMOvO0AbNmzQxo0bvQuPJemyyy7TvHnz9MMf/rBdYzkcDuXm5io9PV0ZGRkqLi5WQ0OD8vLyJEk5OTkaPHiwioqKJEnz589XQUGB3nnnHSUkJHjX9URERCgiIkJBQUGaOXOm5s6dq+TkZCUmJmrWrFmKi4vTxIkT/ZkuAADoZfwKQBaLRSdOnDirvb6+XqGhoe0aa/LkyaqurlZBQYFcLpdSU1NVWlrqXcRcVVWl4ODvblS9/vrrampq0j333OMzTmFhoWbPni1JeuaZZ9TQ0KCHHnpINTU1uv7661VaWnpR64QAAEDv4dd7gHJyclRZWal/+Zd/UUZGhiSpoqJC06dPV1pamlasWNHRdXYp3gPUe/EeIAD/F3+PA6M7vAfIrzVAixcv1rBhw5SVlaWwsDCFhYXphz/8oZKSkvTqq6/6VTQAAEBX8esjsAEDBujDDz/Url27vO/rGTlypJKSkjq0OAAAgM7g93uAJCk5OVnJyckdVQsAAECXaHMAcjgcmjNnjvr16+fz0sDWLFq06KILAwAA6CxtDkBbt27V6dOnvT8DgClYKBs4PLiAztLmALR+/fpWfwYAAOhp/HoK7P7772/1PUANDQ26//77L7ooAACAzuRXAFq5cqW+/vrrs9q//vprvfnmmxddFAAAQGdq11NgdXV18ng88ng8OnHihM+blZubm7Vu3ToNGjSow4sEegLWiQQO60QAtFe7AtCAAQMUFBSkoKAg/eAHPzjreFBQkF588cUOKw4AAKAztCsArV+/Xh6PRzfddJPef/99ny9DDQ0N1ZVXXqm4uLgOLxIAAKAjtSsAjRs3TpK0d+9excfH+3xJKQAAQE/h15ugr7zySknSyZMnVVVVpaamJp/jY8aMufjKAAAAOolfAai6ulp5eXn6z//8z1aPNzc3X1RRAAAAncmvz7BmzpypmpoaVVRUKDw8XKWlpVq5cqWSk5P1u9/9rqNrBAAA6FB+3QH65JNP9OGHHyo9PV3BwcG68sordcstt6h///4qKirShAk8kgoAALovv+4ANTQ0eN/3ExUVperqaknS6NGjVVlZ2XHVAQAAdAK/AtDw4cO1c+dOSVJKSop+9atf6eDBgyopKVFsbGyHFggAANDR/PoI7IknntDhw4clSYWFhcrOztZvf/tbhYaGasWKFR1ZHwAAQIfzKwDdd9993p/T0tL017/+VV999ZWGDBmi6OjoDisOAACgM/gVgL6vb9++Gjt2bEcMBQAA0OnaHIAcDkebB120aJFfxQAAAHSFNgegrVu3tqlfUFCQ38UAAAB0hTYHoPXr13dmHQAAAF2GbzMFAADG8WsR9N/93d+d96OuTz75xO+CAAAAOptfASg1NdVn//Tp09q2bZu++OIL5ebmdkRdAAAAncavAPSLX/yi1fbZs2ervr7+ogoCAADobB26Bui+++7TsmXLOnJIAACADtehAai8vFxhYWEdOSQAAECH8+sjsLvvvttn3+Px6PDhw9q8ebNmzZrVIYUBAAB0Fr8CUGRkpM9+cHCwhg8frpdeeknjx4/vkMIAAAA6i18BaPny5R1dBwAAQJe5qC9D3bx5s3bs2CFJGjVqlNLS0jqkKAAAgM7kVwA6cOCApk6dqs8++0wDBgyQJNXU1Oi6667Te++9pyuuuKIjawQAAOhQfj0F9uCDD+r06dPasWOHjh8/ruPHj2vHjh1qaWnRgw8+2NE1AgAAdCi/7gBt2LBBn3/+uYYPH+5tGz58uF577TXdcMMNHVYcAABAZ/DrDlB8fLxOnz59Vntzc7Pi4uIuuigAAIDO5FcAevnll/XYY49p8+bN3rbNmzfriSee0MKFCzusOAAAgM7g10dg06ZN08mTJ5WZmak+fb4d4ptvvlGfPn10//336/777/f2PX78eMdUCgAA0EH8CkDFxcUdXAYAAEDX8SsA5ebmdnQdAAAAXcbvL0Ntbm7W+++/r7lz52ru3Ln64IMP1Nzc3O5xli5dqoSEBIWFhSkzM1ObNm06Z9+//OUvmjRpkhISEhQUFNTqnajZs2crKCjIZxsxYkS76wIAAL2XXwFo9+7dGjlypHJycrRmzRqtWbNG9913n6666irt2bOnzeOsWrVKDodDhYWFqqysVEpKiux2u44cOdJq/5MnT2ro0KGaN2+erFbrOce96qqrdPjwYe/26aeftnuOAACg9/IrAD3++OMaNmyY9u/fr8rKSlVWVqqqqkqJiYl6/PHH2zzOokWLNH36dOXl5WnUqFEqKSlR3759tWzZslb7X3vttXr55Zc1ZcoUWSyWc47bp08fWa1W7xYdHd3uOQIAgN7LrwC0YcMGLViwQAMHDvS2XXbZZZo3b542bNjQpjGampq0ZcsW2Wy274oJDpbNZlN5ebk/ZXnt2rVLcXFxGjp0qP7xH/9RVVVV5+3f2Niouro6nw0AAPRefgUgi8WiEydOnNVeX1+v0NDQNo1x9OhRNTc3KyYmxqc9JiZGLpfLn7IkSZmZmVqxYoVKS0v1+uuva+/evbrhhhtarfeMoqIiRUZGerf4+Hi/fz8AAOj+/ApAf//3f6+HHnpIFRUV8ng88ng82rhxox5++GHdcccdHV1ju9x666269957NWbMGNntdq1bt041NTX613/913Oek5+fr9raWu+2f//+LqwYAAB0Nb8eg1+8eLGmTZum6667zudFiHfccYdeffXVNo0RHR2tkJAQud1un3a3233eBc7tNWDAAP3gBz/Q7t27z9nHYrGcd00RAADoXdp1B6ilpUXz58/XhAkTdPDgQU2cOFGrV6/Wv/3bv2nnzp364IMPFBkZ2aaxQkNDlZaWJqfT6TO+0+lUVlZW+2ZxHvX19dqzZ49iY2M7bEwAANCztesO0M9//nPNnj1bNptN4eHhWrdunSIjI8/51NaFOBwO5ebmKj09XRkZGSouLlZDQ4Py8vIkSTk5ORo8eLCKiookfbtw+ssvv/T+fPDgQW3btk0RERFKSkqSJD311FO6/fbbdeWVV+rQoUMqLCxUSEiIpk6d6leNAACg92lXAHrzzTf1y1/+Uj/5yU8kSX/4wx80YcIE/eY3v1FwcPuXE02ePFnV1dUqKCiQy+VSamqqSktLvQujq6qqfMY9dOiQrrnmGu/+woULtXDhQo0bN05lZWWSpAMHDmjq1Kk6duyYLr/8cl1//fXauHGjLr/88nbXBwAAeqd2BaCqqirddttt3n2bzaagoCAdOnRIV1xxhV8FzJgxQzNmzGj12JlQc0ZCQoI8Hs95x3vvvff8qgMAAJijXbdtvvnmG4WFhfm0XXLJJTp9+nSHFgUAANCZ2nUHyOPxaNq0aT5PTJ06dUoPP/yw+vXr521bs2ZNx1UIAADQwdoVgFr7Fvj77ruvw4oBAADoCu0KQMuXL++sOgAAALqMX2+CBgAA6MkIQAAAwDgEIAAAYBwCEAAAMA4BCAAAGIcABAAAjEMAAgAAxiEAAQAA4xCAAACAcQhAAADAOAQgAABgHAIQAAAwDgEIAAAYhwAEAACMQwACAADGIQABAADjEIAAAIBxCEAAAMA4BCAAAGAcAhAAADAOAQgAABiHAAQAAIxDAAIAAMYhAAEAAOMQgAAAgHEIQAAAwDgEIAAAYBwCEAAAMA4BCAAAGIcABAAAjEMAAgAAxiEAAQAA4xCAAACAcQhAAADAOAQgAABgHAIQAAAwDgEIAAAYJ+ABaOnSpUpISFBYWJgyMzO1adOmc/b9y1/+okmTJikhIUFBQUEqLi6+6DEBAIB5AhqAVq1aJYfDocLCQlVWViolJUV2u11Hjhxptf/Jkyc1dOhQzZs3T1artUPGBAAA5gloAFq0aJGmT5+uvLw8jRo1SiUlJerbt6+WLVvWav9rr71WL7/8sqZMmSKLxdIhYwIAAPMELAA1NTVpy5Ytstls3xUTHCybzaby8vIuHbOxsVF1dXU+GwAA6L0CFoCOHj2q5uZmxcTE+LTHxMTI5XJ16ZhFRUWKjIz0bvHx8X79fgAA0DMEfBF0d5Cfn6/a2lrvtn///kCXBAAAOlGfQP3i6OhohYSEyO12+7S73e5zLnDurDEtFss51xQBAIDeJ2B3gEJDQ5WWlian0+lta2lpkdPpVFZWVrcZEwAA9D4BuwMkSQ6HQ7m5uUpPT1dGRoaKi4vV0NCgvLw8SVJOTo4GDx6soqIiSd8ucv7yyy+9Px88eFDbtm1TRESEkpKS2jQmAABAQAPQ5MmTVV1drYKCArlcLqWmpqq0tNS7iLmqqkrBwd/dpDp06JCuueYa7/7ChQu1cOFCjRs3TmVlZW0aEwAAIKABSJJmzJihGTNmtHrsTKg5IyEhQR6P56LGBAAA4CkwAABgHAIQAAAwDgEIAAAYhwAEAACMQwACAADGIQABAADjEIAAAIBxCEAAAMA4BCAAAGAcAhAAADAOAQgAABiHAAQAAIxDAAIAAMYhAAEAAOMQgAAAgHEIQAAAwDgEIAAAYBwCEAAAMA4BCAAAGIcABAAAjEMAAgAAxiEAAQAA4xCAAACAcQhAAADAOAQgAABgHAIQAAAwDgEIAAAYhwAEAACMQwACAADGIQABAADjEIAAAIBxCEAAAMA4BCAAAGAcAhAAADAOAQgAABiHAAQAAIxDAAIAAMYhAAEAAOMQgAAAgHEIQAAAwDgEIAAAYJxuEYCWLl2qhIQEhYWFKTMzU5s2bTpv/9WrV2vEiBEKCwvT6NGjtW7dOp/j06ZNU1BQkM+WnZ3dmVMAAAA9SMAD0KpVq+RwOFRYWKjKykqlpKTIbrfryJEjrfb//PPPNXXqVD3wwAPaunWrJk6cqIkTJ+qLL77w6Zedna3Dhw97t3fffbcrpgMAAHqAgAegRYsWafr06crLy9OoUaNUUlKivn37atmyZa32f/XVV5Wdna2nn35aI0eO1Jw5czR27FgtWbLEp5/FYpHVavVuUVFRXTEdAADQAwQ0ADU1NWnLli2y2WzetuDgYNlsNpWXl7d6Tnl5uU9/SbLb7Wf1Lysr06BBgzR8+HA98sgjOnbs2DnraGxsVF1dnc8GAAB6r4AGoKNHj6q5uVkxMTE+7TExMXK5XK2e43K5Ltg/Oztbb775ppxOp+bPn68NGzbo1ltvVXNzc6tjFhUVKTIy0rvFx8df5MwAAEB31ifQBXSGKVOmeH8ePXq0xowZo2HDhqmsrEw333zzWf3z8/PlcDi8+3V1dYQgAAB6sYDeAYqOjlZISIjcbrdPu9vtltVqbfUcq9Xarv6SNHToUEVHR2v37t2tHrdYLOrfv7/PBgAAeq+ABqDQ0FClpaXJ6XR621paWuR0OpWVldXqOVlZWT79Jenjjz8+Z39JOnDggI4dO6bY2NiOKRwAAPRoAX8KzOFw6I033tDKlSu1Y8cOPfLII2poaFBeXp4kKScnR/n5+d7+TzzxhEpLS/XKK6/oq6++0uzZs7V582bNmDFDklRfX6+nn35aGzdu1L59++R0OnXnnXcqKSlJdrs9IHMEAADdS8DXAE2ePFnV1dUqKCiQy+VSamqqSktLvQudq6qqFBz8XU677rrr9M477+iFF17Q888/r+TkZK1du1ZXX321JCkkJETbt2/XypUrVVNTo7i4OI0fP15z5syRxWIJyBwBAED3EvAAJEkzZszw3sH5vrKysrPa7r33Xt17772t9g8PD9dHH33UkeUBAIBeJuAfgQEAAHQ1AhAAADAOAQgAABiHAAQAAIxDAAIAAMYhAAEAAOMQgAAAgHEIQAAAwDgEIAAAYBwCEAAAMA4BCAAAGIcABAAAjEMAAgAAxiEAAQAA4xCAAACAcQhAAADAOAQgAABgHAIQAAAwDgEIAAAYhwAEAACMQwACAADGIQABAADjEIAAAIBxCEAAAMA4BCAAAGAcAhAAADAOAQgAABiHAAQAAIxDAAIAAMYhAAEAAOMQgAAAgHEIQAAAwDgEIAAAYBwCEAAAMA4BCAAAGIcABAAAjEMAAgAAxiEAAQAA4xCAAACAcQhAAADAOAQgAABgHAIQAAAwTrcIQEuXLlVCQoLCwsKUmZmpTZs2nbf/6tWrNWLECIWFhWn06NFat26dz3GPx6OCggLFxsYqPDxcNptNu3bt6swpAACAHiTgAWjVqlVyOBwqLCxUZWWlUlJSZLfbdeTIkVb7f/7555o6daoeeOABbd26VRMnTtTEiRP1xRdfePssWLBAixcvVklJiSoqKtSvXz/Z7XadOnWqq6YFAAC6sYAHoEWLFmn69OnKy8vTqFGjVFJSor59+2rZsmWt9n/11VeVnZ2tp59+WiNHjtScOXM0duxYLVmyRNK3d3+Ki4v1wgsv6M4779SYMWP05ptv6tChQ1q7dm0XzgwAAHRXfQL5y5uamrRlyxbl5+d724KDg2Wz2VReXt7qOeXl5XI4HD5tdrvdG2727t0rl8slm83mPR4ZGanMzEyVl5drypQpZ43Z2NioxsZG735tba0kqa6uzu+5nU9L48lOGRcX1lnXVOK6BlJnXleJaxtIXNveqbOu65lxPR7PBfsGNAAdPXpUzc3NiomJ8WmPiYnRV1991eo5Lper1f4ul8t7/Ezbufp8X1FRkV588cWz2uPj49s2EfQYkcWBrgCdgevae3Fte6fOvq4nTpxQZGTkefsENAB1F/n5+T53lVpaWnT8+HFddtllCgoKCmBl3UtdXZ3i4+O1f/9+9e/fP9DloANxbXsnrmvvxbVtncfj0YkTJxQXF3fBvgENQNHR0QoJCZHb7fZpd7vdslqtrZ5jtVrP2//M/7rdbsXGxvr0SU1NbXVMi8Uii8Xi0zZgwID2TMUo/fv35/9wvRTXtnfiuvZeXNuzXejOzxkBXQQdGhqqtLQ0OZ1Ob1tLS4ucTqeysrJaPScrK8unvyR9/PHH3v6JiYmyWq0+ferq6lRRUXHOMQEAgFkC/hGYw+FQbm6u0tPTlZGRoeLiYjU0NCgvL0+SlJOTo8GDB6uoqEiS9MQTT2jcuHF65ZVXNGHCBL333nvavHmzfv3rX0uSgoKCNHPmTM2dO1fJyclKTEzUrFmzFBcXp4kTJwZqmgAAoBsJeACaPHmyqqurVVBQIJfLpdTUVJWWlnoXMVdVVSk4+LsbVdddd53eeecdvfDCC3r++eeVnJystWvX6uqrr/b2eeaZZ9TQ0KCHHnpINTU1uv7661VaWqqwsLAun19vYrFYVFhYeNbHhej5uLa9E9e19+LaXrwgT1ueFQMAAOhFAv4iRAAAgK5GAAIAAMYhAAEAAOMQgAAAgHEIQGjV0qVLlZCQoLCwMGVmZmrTpk3eY6dOndJPf/pTXXbZZYqIiNCkSZPOejkluq/zXdtf//rXuvHGG9W/f38FBQWppqYmcIWizf74xz/q9ttvV1xcnIKCgs764mePx6OCggLFxsYqPDxcNptNu3btCkyxaJcLXds1a9Zo/Pjx3m8u2LZtW0Dq7IkIQDjLqlWr5HA4VFhYqMrKSqWkpMhut+vIkSOSpH/6p3/Sv//7v2v16tXasGGDDh06pLvvvjvAVaMtLnRtT548qezsbD3//PMBrhTt0dDQoJSUFC1durTV4wsWLNDixYtVUlKiiooK9evXT3a7XadOneriStFeF7q2DQ0Nuv766zV//vwurqwX8ADfk5GR4fnpT3/q3W9ubvbExcV5ioqKPDU1NZ5LLrnEs3r1au/xHTt2eCR5ysvLA1Eu2uF81/b/Wr9+vUeS529/+1sXV4iLJcnzwQcfePdbWlo8VqvV8/LLL3vbampqPBaLxfPuu+8GoEL46/vX9v/au3evR5Jn69atXVpTT8YdIPhoamrSli1bZLPZvG3BwcGy2WwqLy/Xli1bdPr0aZ/jI0aM0JAhQ1ReXh6IktFGF7q26J327t0rl8vlc90jIyOVmZnJdYfRCEDwcfToUTU3N3vfxH1GTEyMXC6XXC6XQkNDz/qy2DPH0X1d6NqidzpzbbnugC8CEAAAMA4BCD6io6MVEhJy1lNdbrdbVqtVVqtVTU1NZz0ddOY4uq8LXVv0TmeuLdcd8EUAgo/Q0FClpaXJ6XR621paWuR0OpWVlaW0tDRdcsklPsd37typqqoqZWVlBaJktNGFri16p8TERFmtVp/rXldXp4qKCq47jBbwb4NH9+NwOJSbm6v09HRlZGSouLhYDQ0NysvLU2RkpB544AE5HA4NHDhQ/fv312OPPaasrCz9v//3/wJdOi7gfNdWkned1+7duyVJ//M//6NLL71UQ4YM0cCBAwNZOs6jvr7ee82kbxc+b9u2TQMHDtSQIUM0c+ZMzZ07V8nJyUpMTNSsWbMUFxeniRMnBq5otMmFru3x48dVVVWlQ4cOSfr2P0glee/Y4zwC/RgauqfXXnvNM2TIEE9oaKgnIyPDs3HjRu+xr7/+2vPoo496oqKiPH379vXcddddnsOHDwewWrTH+a5tYWGhR9JZ2/LlywNXMC7ozGsLvr/l5uZ6PJ5vH4WfNWuWJyYmxmOxWDw333yzZ+fOnYEtGm1yoWu7fPnyVo8XFhYGtO6eIMjj8Xi6NnIBAAAEFmuAAACAcQhAAADAOAQgAABgHAIQAAAwDgEIAAAYhwAEAACMQwACAADGIQABAADjEIAA9CjV1dV65JFHNGTIEFksFlmtVtntdn322WeSpKCgIK1du7bd4yYkJKi4uLhjiwXQbfFdYAB6lEmTJqmpqUkrV67U0KFD5Xa75XQ6dezYsUCXBqAH4aswAPQYNTU1ioqKUllZmcaNG3fW8YSEBP31r3/17l955ZXat2+f9uzZI4fDoY0bN6qhoUEjR45UUVGRbDabJOnGG2/Uhg0bfMY686fx008/VX5+vjZv3qzo6GjdddddKioqUr9+/TpxpgA6Gx+BAegxIiIiFBERobVr16qxsfGs43/6058kScuXL9fhw4e9+/X19brtttvkdDq1detWZWdn6/bbb1dVVZUkac2aNbriiiv00ksv6fDhwzp8+LAkac+ePcrOztakSZO0fft2rVq1Sp9++qlmzJjRRTMG0Fm4AwSgR3n//fc1ffp0ff311xo7dqzGjRunKVOmaMyYMZK+XQP0wQcfaOLEiecd5+qrr9bDDz/sDTMJCQmaOXOmZs6c6e3z4IMPKiQkRL/61a+8bZ9++qnGjRunhoYGhYWFdfj8AHQN7gAB6FEmTZqkQ4cO6Xe/+52ys7NVVlamsWPHasWKFec8p76+Xk899ZRGjhypAQMGKCIiQjt27PDeATqXP//5z1qxYoX3zlNERITsdrtaWlq0d+/eDp4ZgK7EImgAPU5YWJhuueUW3XLLLZo1a5YefPBBFRYWatq0aa32f+qpp/Txxx9r4cKFSkpKUnh4uO655x41NTWd9/fU19frJz/5iR5//PGzjg0ZMqQjpgIgQAhAAHq8UaNGeR99v+SSS9Tc3Oxz/LPPPtO0adN01113Sfo22Ozbt8+nT2ho6FnnjR07Vl9++aWSkpI6rXYAgcFHYAB6jGPHjummm27S22+/re3bt2vv3r1avXq1FixYoDvvvFPSt2t5nE6nXC6X/va3v0mSkpOTtWbNGm3btk1//vOf9Q//8A9qaWnxGTshIUF//OMfdfDgQR09elSS9Oyzz+rzzz/XjBkztG3bNu3atUsffvghi6CBXoAABKDHiIiIUGZmpn7xi1/oRz/6ka6++mrNmjVL06dP15IlSyRJr7zyij7++GPFx8frmmuukSQtWrRIUVFRuu6663T77bfLbrdr7NixPmO/9NJL2rdvn4YNG6bLL79ckjRmzBht2LBB//u//6sbbrhB11xzjQoKChQXF9e1EwfQ4XgKDAAAGIc7QAAAwDgEIAAAYBwCEAAAMA4BCAAAGIcABAAAjEMAAgAAxiEAAQAA4xCAAACAcQhAAADAOAQgAABgHAIQAAAwDgEIAAAY5/8DRUe2Kgz1DzAAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "nb_shots = 500\n", "task = device.run(bell_pair_with_pulses, shots = nb_shots)\n", "counts = task.result().measurement_counts\n", "\n", "\n", "plt.bar(sorted(counts), [counts[k]/nb_shots for k in sorted(counts)])\n", "plt.xlabel(\"State\")\n", "plt.ylabel(\"Population\")" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Task Summary\n", "{'arn:aws:braket:eu-west-2::device/qpu/oqc/Lucy': {'shots': 84600, 'tasks': {'COMPLETED': 86}}}\n", "Note: Charges shown are estimates based on your Amazon Braket simulator and quantum processing unit (QPU) task usage. Estimated charges shown may differ from your actual charges. Estimated charges do not factor in any discounts or credits, and you may experience additional charges based on your use of other services such as Amazon Elastic Compute Cloud (Amazon EC2).\n", "Estimated cost to run this example: 55.410 USD\n" ] } ], "source": [ "print(\"Task Summary\")\n", "print(t.quantum_tasks_statistics())\n", "print('Note: Charges shown are estimates based on your Amazon Braket simulator and quantum processing unit (QPU) task usage. Estimated charges shown may differ from your actual charges. Estimated charges do not factor in any discounts or credits, and you may experience additional charges based on your use of other services such as Amazon Elastic Compute Cloud (Amazon EC2).')\n", "print(f\"Estimated cost to run this example: {t.qpu_tasks_cost() + t.simulator_tasks_cost():.3f} USD\")" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3.9.14", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.14" } }, "nbformat": 4, "nbformat_minor": 2 }