{ "cells": [ { "cell_type": "markdown", "id": "6f476caa", "metadata": {}, "source": [ "# Cryoscope\n", "\n", "This notebook replicates the Cryoscope protocol in [this paper](https://doi.org/10.1063/1.5133894). Here's the [arxiv link](https://arxiv.org/abs/1907.04818).\n", "\n", "Cryoscope is short for cryogenic oscilloscope, and is used to sample baseband pulses. This can then be used to correct the pulse distortions.\n", "\n", "The experiment in this tutorial is meant to be executed with a Qblox Cluster controlling a flux-tunable transmon system.\n", "\n", "The experiments can also be executed using a dummy Qblox device that is created via an instance of the `Cluster` class, and is initialized with a dummy configuration. However, when using a dummy device, fake data will be generated and analyzed." ] }, { "cell_type": "markdown", "id": "356e89fa", "metadata": {}, "source": [ "## Hardware setup\n", "In this section we configure the hardware configuration which specifies the connectivity of our system." ] }, { "cell_type": "markdown", "id": "d2f51592", "metadata": {}, "source": [ "### Configuration file\n", "\n", "This is a template hardware configuration file for a single qubit system (we name the qubit `q0`), with a dedicated flux-control line.\n", "\n", "The hardware setup is as follows, by cluster slot:\n", "- **QCM-RF** (Slot 6)\n", " - Drive line for `q0` using fixed 80 MHz IF.\n", "- **QCM** (Slot 2)\n", " - Flux line for `q0`.\n", "- **QRM-RF** (Slot 8)\n", " - Shared readout line for `q0` using a fixed LO set at 7.5 GHz.\n", "\n", "Note that in the hardware configuration below the mixers are uncorrected, but for high fidelity experiments this should also be done for all the modules." ] }, { "cell_type": "code", "execution_count": 1, "id": "d8c60413", "metadata": { "execution": { "iopub.execute_input": "2024-09-18T14:58:24.203506Z", "iopub.status.busy": "2024-09-18T14:58:24.203303Z", "iopub.status.idle": "2024-09-18T14:58:24.209670Z", "shell.execute_reply": "2024-09-18T14:58:24.209050Z" } }, "outputs": [], "source": [ "import json\n", "\n", "with open(\"configs/tuning_transmon_coupled_pair_hardware_config.json\") as hw_cfg_json_file:\n", " hardware_cfg = json.load(hw_cfg_json_file)" ] }, { "cell_type": "markdown", "id": "5693a84c", "metadata": {}, "source": [ "### Scan For Clusters\n", "\n", "We scan for the available devices connected via ethernet using the Plug & Play functionality of the Qblox Instruments package (see [Plug & Play](https://qblox-qblox-instruments.readthedocs-hosted.com/en/main/api_reference/tools.html#api-pnp) for more info)." ] }, { "cell_type": "code", "execution_count": 2, "id": "6703a422", "metadata": { "execution": { "iopub.execute_input": "2024-09-18T14:58:24.211663Z", "iopub.status.busy": "2024-09-18T14:58:24.211484Z", "iopub.status.idle": "2024-09-18T14:58:24.214317Z", "shell.execute_reply": "2024-09-18T14:58:24.213673Z" } }, "outputs": [], "source": [ "# !qblox-pnp list" ] }, { "cell_type": "code", "execution_count": 3, "id": "da812d39", "metadata": { "execution": { "iopub.execute_input": "2024-09-18T14:58:24.216093Z", "iopub.status.busy": "2024-09-18T14:58:24.215927Z", "iopub.status.idle": "2024-09-18T14:58:24.218891Z", "shell.execute_reply": "2024-09-18T14:58:24.218258Z" } }, "outputs": [], "source": [ "cluster_ip = None # To run this tutorial on hardware, fill in the IP address of the cluster here\n", "cluster_name = \"cluster0\"" ] }, { "cell_type": "markdown", "id": "c1298126", "metadata": {}, "source": [ "### Connect to Cluster\n", "\n", "We now make a connection with the Cluster." ] }, { "cell_type": "code", "execution_count": 4, "id": "72058da9", "metadata": { "execution": { "iopub.execute_input": "2024-09-18T14:58:24.220820Z", "iopub.status.busy": "2024-09-18T14:58:24.220654Z", "iopub.status.idle": "2024-09-18T14:58:25.106369Z", "shell.execute_reply": "2024-09-18T14:58:25.105607Z" } }, "outputs": [], "source": [ "from pathlib import Path\n", "\n", "from qcodes.instrument import find_or_create_instrument\n", "\n", "from qblox_instruments import Cluster, ClusterType\n", "\n", "cluster0 = find_or_create_instrument(\n", " Cluster,\n", " recreate=True,\n", " name=cluster_name,\n", " identifier=cluster_ip,\n", " dummy_cfg=(\n", " {\n", " 2: ClusterType.CLUSTER_QCM,\n", " 4: ClusterType.CLUSTER_QRM,\n", " 6: ClusterType.CLUSTER_QCM_RF,\n", " 8: ClusterType.CLUSTER_QRM_RF,\n", " }\n", " if cluster_ip is None\n", " else None\n", " ),\n", ")" ] }, { "cell_type": "markdown", "id": "cb974b0c", "metadata": { "lines_to_next_cell": 2 }, "source": [ "### Select the modules we'll use for this experiment" ] }, { "cell_type": "code", "execution_count": 5, "id": "aa182c8f", "metadata": { "execution": { "iopub.execute_input": "2024-09-18T14:58:25.108839Z", "iopub.status.busy": "2024-09-18T14:58:25.108590Z", "iopub.status.idle": "2024-09-18T14:58:25.112844Z", "shell.execute_reply": "2024-09-18T14:58:25.112188Z" } }, "outputs": [], "source": [ "def get_module_from_hardware_cfg(\n", " cluster: object, hardware_cfg: dict, module_type: str, match_index: int = 0\n", "):\n", " matching_modules = [\n", " key\n", " for key, value in hardware_cfg[\"hardware_description\"][\"cluster0\"][\"modules\"].items()\n", " if value[\"instrument_type\"] == module_type\n", " ]\n", " module_nr = next(\n", " (\n", " i\n", " for i, module in enumerate(cluster.modules)\n", " if module.name.endswith(f\"module{int(matching_modules[match_index])}\")\n", " ),\n", " None,\n", " )\n", " return module_nr" ] }, { "cell_type": "markdown", "id": "75669e91", "metadata": {}, "source": [ "Select the appropriate modules for this experiment:\n", "- A QCM baseband module for the flux line\n", "- A QCM-RF module for the XY drive line\n", "- A QRM-RF module for the readout" ] }, { "cell_type": "code", "execution_count": 6, "id": "3ffb064d", "metadata": { "execution": { "iopub.execute_input": "2024-09-18T14:58:25.114745Z", "iopub.status.busy": "2024-09-18T14:58:25.114553Z", "iopub.status.idle": "2024-09-18T14:58:25.118129Z", "shell.execute_reply": "2024-09-18T14:58:25.117478Z" } }, "outputs": [], "source": [ "flux_module = cluster0.modules[get_module_from_hardware_cfg(cluster0, hardware_cfg, \"QCM\")]\n", "xy_module = cluster0.modules[get_module_from_hardware_cfg(cluster0, hardware_cfg, \"QCM_RF\")]\n", "readout_module = cluster0.modules[get_module_from_hardware_cfg(cluster0, hardware_cfg, \"QRM_RF\")]" ] }, { "cell_type": "markdown", "id": "d130d05b", "metadata": {}, "source": [ "## Experiment setup" ] }, { "cell_type": "markdown", "id": "a210e4cf", "metadata": {}, "source": [ "### Quantum device settings\n", "Here we initialize our `QuantumDevice` and our qubit parameters, check out this [tutorial](https://quantify-os.org/docs/quantify-scheduler/dev/tutorials/Operations%20and%20Qubits.html) for further details.\n", "\n", "In short, a `QuantumDevice` contains device elements where we save our found parameters." ] }, { "cell_type": "code", "execution_count": 7, "id": "cc1e7471", "metadata": { "execution": { "iopub.execute_input": "2024-09-18T14:58:25.120097Z", "iopub.status.busy": "2024-09-18T14:58:25.119937Z", "iopub.status.idle": "2024-09-18T14:58:26.204517Z", "shell.execute_reply": "2024-09-18T14:58:26.202152Z" }, "lines_to_next_cell": 2 }, "outputs": [], "source": [ "from quantify_scheduler.device_under_test.quantum_device import QuantumDevice\n", "\n", "try:\n", " quantum_device = QuantumDevice.from_json_file(\"devices/transmon_device_2q.json\")\n", "except KeyError as error:\n", " if error.args[0].startswith(\"Another instrument has the name:\"):\n", " print(f\"Warning! {error.args[0]}, restart the kernel if you wish to redefine it.\")\n", " else:\n", " raise\n", "q0 = quantum_device.get_element(\"q0\")\n", "q1 = quantum_device.get_element(\"q1\")\n", "quantum_device.hardware_config(hardware_cfg)" ] }, { "cell_type": "markdown", "id": "1cba5a7b", "metadata": {}, "source": [ "### Calibrate mixers" ] }, { "cell_type": "code", "execution_count": 8, "id": "cccd73a9", "metadata": { "execution": { "iopub.execute_input": "2024-09-18T14:58:26.211342Z", "iopub.status.busy": "2024-09-18T14:58:26.210218Z", "iopub.status.idle": "2024-09-18T14:58:26.217024Z", "shell.execute_reply": "2024-09-18T14:58:26.215862Z" } }, "outputs": [], "source": [ "# Calibrate the mixer\n", "xy_module.out0_lo_cal()\n", "readout_module.out0_in0_lo_cal()" ] }, { "cell_type": "markdown", "id": "07bc7ffd", "metadata": {}, "source": [ "### Configure measurement control loop\n", "We will use a `MeasurementControl` object for data acquisition as well as an `InstrumentCoordinator` for controlling the instruments in our setup.\n", "\n", "The `PlotMonitor` is used for live plotting.\n", "\n", "All of these are then associated with the `QuantumDevice`." ] }, { "cell_type": "markdown", "id": "134c9e06", "metadata": {}, "source": [ "### Configure measurement control loop\n", "We will use a `MeasurementControl` object for data acquisition as well as an `InstrumentCoordinator` for controlling the instruments in our setup.\n", "\n", "The `PlotMonitor` is used for live plotting.\n", "\n", "All of these are then associated with the `QuantumDevice`." ] }, { "cell_type": "code", "execution_count": 9, "id": "748998d8", "metadata": { "execution": { "iopub.execute_input": "2024-09-18T14:58:26.220557Z", "iopub.status.busy": "2024-09-18T14:58:26.220235Z", "iopub.status.idle": "2024-09-18T14:58:26.439503Z", "shell.execute_reply": "2024-09-18T14:58:26.438782Z" } }, "outputs": [], "source": [ "import logging\n", "\n", "from quantify_core.measurement.control import MeasurementControl\n", "from quantify_core.visualization.pyqt_plotmon import PlotMonitor_pyqt as PlotMonitor\n", "from quantify_scheduler.instrument_coordinator import InstrumentCoordinator\n", "from quantify_scheduler.instrument_coordinator.components.qblox import ClusterComponent\n", "\n", "\n", "def configure_measurement_control_loop(\n", " device: QuantumDevice, cluster: Cluster, live_plotting: bool = False\n", "):\n", " meas_ctrl = find_or_create_instrument(MeasurementControl, recreate=True, name=\"meas_ctrl\")\n", " ic = find_or_create_instrument(InstrumentCoordinator, recreate=True, name=\"ic\")\n", "\n", " # Add cluster to instrument coordinator\n", " ic_cluster = ClusterComponent(cluster)\n", " ic.add_component(ic_cluster)\n", "\n", " if live_plotting:\n", " # Associate plot monitor with measurement controller\n", " plotmon = find_or_create_instrument(PlotMonitor, recreate=False, name=\"PlotMonitor\")\n", " meas_ctrl.instr_plotmon(plotmon.name)\n", "\n", " # Associate measurement controller and instrument coordinator with the quantum device\n", " device.instr_measurement_control(meas_ctrl.name)\n", " device.instr_instrument_coordinator(ic.name)\n", "\n", " return (meas_ctrl, ic)\n", "\n", "\n", "# Only create meas_ctrl, instrument_coordinator if they don't exist yet.\n", "if \"meas_ctrl\" not in globals() and \"instrument_coordinator\" not in globals():\n", " meas_ctrl, instrument_coordinator = configure_measurement_control_loop(quantum_device, cluster0)\n", "else:\n", " logging.debug(\n", " \"meas_ctrl or instrument_coordinator already existed, they have not been reinstantiated.\"\n", " )" ] }, { "cell_type": "markdown", "id": "0fa1087a", "metadata": {}, "source": [ "### Set data directory\n", "This directory is where all of the experimental data as well as all of the post processing will go." ] }, { "cell_type": "code", "execution_count": 10, "id": "32f24be4", "metadata": { "execution": { "iopub.execute_input": "2024-09-18T14:58:26.442022Z", "iopub.status.busy": "2024-09-18T14:58:26.441554Z", "iopub.status.idle": "2024-09-18T14:58:26.445495Z", "shell.execute_reply": "2024-09-18T14:58:26.444832Z" } }, "outputs": [], "source": [ "import quantify_core.data.handling as dh\n", "\n", "# Enter your own dataset directory here!\n", "dh.set_datadir(Path(\"example_data\").resolve())" ] }, { "cell_type": "markdown", "id": "faaf5fef", "metadata": {}, "source": [ "### Configure external flux control\n", "We need to have some way of controlling the external flux.\n", "\n", "This can be done by setting an output bias on a QCM baseband module of the cluster which is then connected to the flux-control line.\n", "\n", "Here we are nullifying the external flux on the qubit." ] }, { "cell_type": "code", "execution_count": 11, "id": "5b81b6af", "metadata": { "execution": { "iopub.execute_input": "2024-09-18T14:58:26.447493Z", "iopub.status.busy": "2024-09-18T14:58:26.447316Z", "iopub.status.idle": "2024-09-18T14:58:26.452236Z", "shell.execute_reply": "2024-09-18T14:58:26.451574Z" }, "lines_to_next_cell": 2 }, "outputs": [], "source": [ "# hardware_cfg[\"connectivity\"][\"graph\"] contains a graph of how each physical output port\n", "# connects to the device.\n", "# Here we select the outputs that correspond to the flux, and then create a dict with\n", "# a key:value pair `q*`:`cluster*.module*.out*_offset`\n", "flux_settables = {\n", " element[1].split(\":\")[0]: eval(\n", " \".\".join(element[0].split(\".\")[:2]) + f\".out{element[0][-1]}_offset\"\n", " )\n", " for element in hardware_cfg[\"connectivity\"][\"graph\"]\n", " if element[1][-3:] == \":fl\"\n", "}\n", "\n", "for flux_settable in flux_settables.values():\n", " flux_settable.inter_delay = 100e-9 # Delay time in seconds between consecutive set operations.\n", " flux_settable.step = 0.3e-3 # Stepsize in V that this Parameter uses during set operation.\n", " flux_settable() # get before set to avoid jumps\n", " flux_settable(0.0)" ] }, { "cell_type": "markdown", "id": "a744de1a", "metadata": {}, "source": [ "## Experiment\n", "\n", "As in the single qubit tuneup tutorial, the sweep setpoints for all experiments in this section are only examples. The sweep setpoints should be changed to match your own system.\n", "In this section we assume that each individual qubit has already been characterized, and that they have been biased to their sweetspots.\n", "\n", "The Cryoscope method allows us to \"capture\" the flux pulse similar to an oscilloscope. It does this by first setting up two Ramsey-style experiments in which the gap between the two pi pulses is fixed: one where the second pi half pulse has the same phase, and another where the second pi half pulse is 90 degrees phase shifted. This allows us to measure the phase of the qubit on the equator of the Bloch sphere. In between the two pi half pulses, a flux pulse of small incremental duration is played in each iteration of the Ramsey style experiment, while the rest of the time between the pip half pulses is just idle time.\n", "\n", "The flux pulse changes the qubit frequency while it is played, and the time integral of this frequency change gives the total phase accrued by the qubit. If we measure this cumulative phase for small incremental changes in the duration of the flux pulse, then we can effectively work out the frequency change in the qubit over time as the flux pulse is played by taking the derivative of the phase accrued vs time. Then using an already measured flux arc (qubit frequency vs flux), we can convert this frequency change over time to the actual flux seen by the qubit over time." ] }, { "cell_type": "code", "execution_count": 12, "id": "fbe581b7", "metadata": { "execution": { "iopub.execute_input": "2024-09-18T14:58:26.454295Z", "iopub.status.busy": "2024-09-18T14:58:26.454106Z", "iopub.status.idle": "2024-09-18T14:58:26.462709Z", "shell.execute_reply": "2024-09-18T14:58:26.462001Z" } }, "outputs": [], "source": [ "import numpy as np\n", "\n", "from quantify_scheduler.device_under_test.quantum_device import DeviceElement\n", "from quantify_scheduler.operations.gate_library import X90, Y90, Measure, Reset, X\n", "from quantify_scheduler.operations.pulse_library import IdlePulse, SquarePulse\n", "from quantify_scheduler.schedules.schedule import Schedule\n", "\n", "\n", "def cryoscope_sched(\n", " qubit: DeviceElement,\n", " time_axis: np.ndarray,\n", " x_or_y_axis: np.ndarray,\n", " amplitude: float = 0.1,\n", " start_pad: float = 40e-9,\n", " end_pad: float = 100e-9,\n", " repetitions: int = 1,\n", ") -> Schedule:\n", " \"\"\"\n", " Generate a schedule for performing a Cryoscope experiment.\n", "\n", " Parameters\n", " ----------\n", " qubit\n", " The name of the qubit e.g., :code:`\"q0\"` to perform the experiment on.\n", " time_axis\n", " The time axis for which the cryoscope experiment is run.\n", " x_or_y_axis\n", " Defines the pi half pulse after the wait time as an X90 or Y90.\n", " amplitude\n", " The amplitude of the flux pulse.\n", " start_pad\n", " The starting pad time of the flux pulse.\n", " end_pad\n", " The ending pad time of the flux pulse.\n", " repetitions\n", " The amount of times the Schedule will be repeated.\n", "\n", " Returns\n", " -------\n", " :\n", " An experiment schedule.\n", "\n", " \"\"\"\n", " schedule = Schedule(\"Cryoscope\", repetitions)\n", "\n", " # Calculate the additional time required to make\n", " # one iteration take a multiple of 4 ns to complete.\n", " idle_pulse_time = (\n", " 4e-9\n", " - (\n", " qubit.reset.duration()\n", " + start_pad\n", " + time_axis[-1] # Gap between pi half pulses excluding padding.\n", " + end_pad\n", " + 2 * qubit.rxy.duration()\n", " + qubit.measure.pulse_duration()\n", " )\n", " % 4e-9\n", " )\n", "\n", " # Create a dict x_or_y_op that assigns an X or Y gate to the binary keys\n", " x_or_y_op = {0: X90(qubit.name), 1: Y90(qubit.name)}\n", "\n", " # This IdlePulse is needed to have a starting point relative\n", " # to which a relative time can be assigned to the Reset pulse.\n", " schedule.add(IdlePulse(4e-9))\n", " # Loop through the time axis. The last point is not used because\n", " # it is used for the calibration points later.\n", " for i, (time, x_or_y) in enumerate(zip(time_axis[:-2], x_or_y_axis[:-2])):\n", " # Wait for additional time calculated above and then Reset the qubit.\n", " schedule.add(Reset(qubit.name), label=f\"Reset {i}\", rel_time=idle_pulse_time)\n", " # Move the qubit to the equator on the bloch sphere.\n", " pi_half = schedule.add(X90(qubit.name))\n", " if time > 0:\n", " # Add the flux pulse of time t to the schedule\n", " schedule.add(\n", " SquarePulse(\n", " amp=amplitude, duration=time, port=qubit.ports.flux(), clock=\"cl0.baseband\"\n", " ),\n", " ref_op=pi_half,\n", " rel_time=start_pad,\n", " )\n", " # Wait for the gap time and play the second pi half pulse.\n", " # This pi half pulse is either an X90 or Y90.\n", " schedule.add(\n", " x_or_y_op[x_or_y], ref_op=pi_half, rel_time=start_pad + time_axis[-1] + end_pad\n", " )\n", " # Measure the qubit.\n", " schedule.add(Measure(qubit.name, acq_index=i), label=f\"Measurement {i}\")\n", "\n", " # Calibration points measured by preparing ground and excited states.\n", " schedule.add(Reset(qubit.name), label=\"Reset Cal 0\")\n", " schedule.add(Measure(qubit.name, acq_index=i + 1), label=\"Calibration 0\")\n", " schedule.add(Reset(qubit.name), label=\"Reset Cal 1\")\n", " schedule.add(X(qubit.name))\n", " schedule.add(Measure(qubit.name, acq_index=i + 2), label=\"Calibration 1\")\n", "\n", " return schedule" ] }, { "cell_type": "markdown", "id": "89a7c860", "metadata": {}, "source": [ "### Create a CryoscopeAnalysis class\n", "This class extends the class `SingleQubitTimedomainAnalysis` from `quantify_core.analysis.single_qubit_timedomain`:\n", "- Specify that the `run()` method uses calibration points\n", "- Extend the `process_data()` method to populate `self.dataset_processed` with an `xarray` dataset:\n", " - coords: `\"Time (ns)\"`\n", " - axis: `\"frequency_change\"`\n", " - axis: `\"reconstructed_phi\"`\n", "- Add method `create_figures()`" ] }, { "cell_type": "code", "execution_count": 13, "id": "a7be68f0", "metadata": { "execution": { "iopub.execute_input": "2024-09-18T14:58:26.464794Z", "iopub.status.busy": "2024-09-18T14:58:26.464598Z", "iopub.status.idle": "2024-09-18T14:58:26.490167Z", "shell.execute_reply": "2024-09-18T14:58:26.489540Z" }, "lines_to_next_cell": 2 }, "outputs": [], "source": [ "from typing import Callable\n", "\n", "import matplotlib.pyplot as plt\n", "from scipy.signal import savgol_filter\n", "from xarray.core.dataset import Dataset\n", "\n", "from quantify_core.analysis.single_qubit_timedomain import SingleQubitTimedomainAnalysis\n", "from quantify_core.visualization.mpl_plotting import (\n", " set_suptitle_from_dataset,\n", " set_xlabel,\n", " set_ylabel,\n", ")\n", "\n", "\n", "class CryoscopeAnalysis(SingleQubitTimedomainAnalysis):\n", " \"\"\"\n", " Analysis class for the Cryoscope experiment.\n", "\n", " This class extends the SingleQubitTimedomainAnalysis class, which in turn extends the\n", " BaseAnalysis class:\n", " - BaseAnalysis.run() runs all steps in the AnalysisSteps class:\n", " 1. process_data # Empty\n", " 2. run_fitting # Empty\n", " 3. analyze_fit_results # Empty\n", " 4. create_figures # Empty\n", " 5. adjust_figures # Defined\n", " 6. save_figures # Defined\n", " 7. save_quantities_of_interest # Defined\n", " 8. save_processed_dataset # Defined\n", " 9. save_fit_results # Defined\n", " - SingleQubitTimedomainAnalysis extends BaseAnalysis:\n", " - run() defines self.calibration_points\n", " - process_data() populates dataset_processed.S21 and dataset_processed.pop_exc\n", " - CryoscopeAnalysis extends SingleQubitTimedomainAnalysis:\n", " - process_data() is extended by calculating:\n", " - x_vals, y_vals\n", " - unfiltered_phase\n", " - filtered_phase\n", " - unwrapped_phase\n", " - phase_derivative\n", " - frequency_change\n", " - reconstructed_phi\n", " - create_figures() is defined\n", " \"\"\"\n", "\n", " def __init__( # noqa: D107\n", " self,\n", " dataset: Dataset = None,\n", " tuid: str = None,\n", " label: str = \"\",\n", " settings_overwrite: dict = None,\n", " plot_figures: bool = True,\n", " frequency_change_to_flux: Callable = None,\n", " savgol_filter_params: dict = {\"window_length\": 2, \"polyorder\": 1},\n", " ) -> None:\n", " super().__init__(dataset, tuid, label, settings_overwrite, plot_figures)\n", " self.frequency_change_to_flux = frequency_change_to_flux\n", " self.savgol_filter_params = savgol_filter_params\n", "\n", " def run(self):\n", " \"\"\"\n", " Run the SingleQubitTimedomainAnalysis with calibration_points.\n", "\n", " This removes the calibration points (last two) and converts\n", " the rest of the IQ values to a population (pop_exc).\n", " \"\"\"\n", " return super().run(calibration_points=True)\n", "\n", " def process_data(self): # noqa: D102\n", " super().process_data()\n", "\n", " # Translate and scale the populations from X and Y measurements\n", " # from the range [0,1] to [-1,1]\n", " x_vals = 2 * (self.dataset_processed[\"pop_exc\"].values[:-2:2] - 0.5)\n", " y_vals = 2 * (self.dataset_processed[\"pop_exc\"].values[1:-2:2] - 0.5)\n", "\n", " # Find phase from the X,Y coordinates\n", " unfiltered_phase = np.angle(x_vals + 1j * y_vals)\n", " # Store the unfiltered phase for debugging purposes\n", " self.dataset_processed[\"unfiltered_phase\"] = ([\"t\"], unfiltered_phase)\n", "\n", " # First unwrap the phase\n", " unwrapped_phase = np.unwrap(unfiltered_phase)\n", " # Store the unwrapped phase for debugging purposes\n", " self.dataset_processed[\"unwrapped_phase\"] = ([\"t\"], unwrapped_phase)\n", "\n", " # Use the savgol_filter to both filter and take the derivative of the unwrapped phase.\n", " # The parameters of the savgol_filter may need to be changed after this is run on an\n", " # actual device.\n", " filtered_phase_derivative = savgol_filter(\n", " unwrapped_phase,\n", " window_length=self.savgol_filter_params[\"window_length\"],\n", " polyorder=self.savgol_filter_params[\"polyorder\"],\n", " deriv=1,\n", " )\n", "\n", " # Store the filtered phase derivative for debugging purposes\n", " self.dataset_processed[\"filtered_phase_derivative\"] = ([\"t\"], filtered_phase_derivative)\n", "\n", " # Rescale the filtered phase derivative to units of frequency change\n", " frequency_change = filtered_phase_derivative / (\n", " self.dataset_processed.x1[2].values - self.dataset_processed.x1[0].values\n", " )\n", " # Store the frequency change\n", " self.dataset_processed[\"frequency_change\"] = ([\"t\"], frequency_change)\n", "\n", " # if frequency_change_to_flux is provided, convert the frequency to flux (reconstructed_phi) and plot this.\n", " if self.frequency_change_to_flux is not None:\n", " reconstructed_phi = self.frequency_change_to_flux(frequency_change)\n", " self.dataset_processed[\"reconstructed_phi\"] = ([\"t\"], reconstructed_phi)\n", " else:\n", " print(\n", " \"frequency_change_to_flux was not provided, reconstructed_phi has not been calculated.\"\n", " )\n", "\n", " def create_figures(self): # noqa: D102\n", " fig, ax = plt.subplots()\n", " fig_id = \"Cryoscope\"\n", " self.figs_mpl[fig_id] = fig\n", " self.axs_mpl[fig_id] = ax\n", "\n", " # if frequency_change_to_flux is provided, plot it.\n", " if self.frequency_change_to_flux is not None:\n", " ax.plot(\n", " 1e9 * self.dataset_processed[\"reconstructed_phi\"].coords[\"t\"],\n", " self.dataset_processed[\"reconstructed_phi\"],\n", " label=\"Measured\",\n", " )\n", " set_ylabel(r\"Reconstructed $\\Phi/\\Phi_0$\")\n", " # if frequency_change_to_flux is not provided, plot the frequency change.\n", " else:\n", " ax.plot(\n", " 1e9 * self.dataset_processed[\"frequency_change\"].coords[\"t\"],\n", " self.dataset_processed[\"frequency_change\"] / 1e6,\n", " label=\"Measured\",\n", " )\n", " set_ylabel(\"Frequency change (MHz)\")\n", " set_xlabel(\"Time (ns)\")\n", " set_suptitle_from_dataset(fig, self.dataset)" ] }, { "cell_type": "markdown", "id": "09888c97", "metadata": { "lines_to_next_cell": 2 }, "source": [ "### Define the flux dependence of the qubit frequency\n", "This is qubit specific, and assumes that the qubit has already been characterized. In the simplest case of a symmetric qubit (i.e. one with identical JJs in the SQUID), only $E_\\text{J}$ and $E_\\text{C}$ need to be provided." ] }, { "cell_type": "code", "execution_count": 14, "id": "8cbc620b", "metadata": { "execution": { "iopub.execute_input": "2024-09-18T14:58:26.492174Z", "iopub.status.busy": "2024-09-18T14:58:26.492008Z", "iopub.status.idle": "2024-09-18T14:58:26.497000Z", "shell.execute_reply": "2024-09-18T14:58:26.496411Z" } }, "outputs": [], "source": [ "def flux_to_frequency_change(flux: np.ndarray):\n", " \"\"\"\n", " Convert frequency to flux.\n", "\n", " Currently this assumes a symmetric qubit and fixed parameters.\n", "\n", " Args:\n", " ----\n", " flux (np.ndarray): an array of flux values, in units of flux quantum\n", "\n", " \"\"\"\n", " h = 1 / (2 * np.pi)\n", " e_c = h * 300e6\n", " e_j = (h * q0.clock_freqs.f01() + e_c) ** 2 / (8 * e_c)\n", " return (1 / h) * (\n", " np.sqrt(8 * e_j * e_c * np.abs(np.cos(np.pi * flux))) - e_c\n", " ) - q0.clock_freqs.f01()\n", "\n", "\n", "def frequency_change_to_flux(freq_change: np.ndarray):\n", " r\"\"\"\n", " Convert flux to frequency.\n", "\n", " \\Phi(\\tau) = \\pm \\Phi_0/\\pi \\arccos((Ec+h*freq_change)**2/(8*Ej*Ec)),\n", " or in units of flux quantum:\n", " |\\Phi(\\tau)/\\Phi_0| = arccos((Ec+h*freq_change)**2/(8*Ej*Ec))/pi.\n", " \"\"\"\n", " # Assuming the qubit is parked at the maximum frequency, we can clip positive frequency changes to zero\n", " freq_change = np.clip(freq_change, None, 0)\n", " h = 1 / (2 * np.pi)\n", " e_c = h * 300e6\n", " e_j = (h * q0.clock_freqs.f01() + e_c) ** 2 / (8 * e_c)\n", " return (\n", " np.arccos((h * (q0.clock_freqs.f01() + freq_change) + e_c) ** 2 / (8 * e_j * e_c)) / np.pi\n", " )" ] }, { "cell_type": "markdown", "id": "31d19695", "metadata": {}, "source": [ "### Define the shape of the flux pulse\n", "- When testing with a dummy cluster, this should mimic the distortions of the cables.\n", "- When running on a real device, this should be a true step function." ] }, { "cell_type": "code", "execution_count": 15, "id": "49fd662f", "metadata": { "execution": { "iopub.execute_input": "2024-09-18T14:58:26.498862Z", "iopub.status.busy": "2024-09-18T14:58:26.498701Z", "iopub.status.idle": "2024-09-18T14:58:26.503219Z", "shell.execute_reply": "2024-09-18T14:58:26.502597Z" }, "lines_to_next_cell": 2 }, "outputs": [], "source": [ "from qblox_instruments.simulations import exponential_overshoot_correction\n", "\n", "\n", "def flux_pulse_shape(t: np.ndarray):\n", " \"\"\"\n", " Shape of the flux pulse send to the qubit.\n", "\n", " Predistortion calculated using the Qblox simulator for the exponential overshoot correction\n", " using values in the cluster to simulate the real time predistortions,\n", " and an exponential overshoot distortion is added to the signal\n", " that is fixed to simulate a real distortion.\n", " \"\"\"\n", " signal = 0.1 * (1 + 0.05 * np.exp(-t / 72e-9))\n", " signal[np.where(t <= 0)] = 0.0\n", " return exponential_overshoot_correction(\n", " signal,\n", " flux_module.out0_exp0_amplitude(),\n", " max(flux_module.out0_exp0_time_constant(), 6),\n", " )" ] }, { "cell_type": "markdown", "id": "74c5d699", "metadata": { "lines_to_next_cell": 2 }, "source": [ "### Define fake data when running on a dummy cluster" ] }, { "cell_type": "code", "execution_count": 16, "id": "7d1f3df0", "metadata": { "execution": { "iopub.execute_input": "2024-09-18T14:58:26.504998Z", "iopub.status.busy": "2024-09-18T14:58:26.504837Z", "iopub.status.idle": "2024-09-18T14:58:26.509778Z", "shell.execute_reply": "2024-09-18T14:58:26.509205Z" } }, "outputs": [], "source": [ "def get_fake_cryoscope_data():\n", " \"\"\"Convert the flux pulse shape to cryoscope data.\"\"\"\n", " # Convert the flux pulse shape to frequency change.\n", " freq_change = flux_to_frequency_change(flux_pulse_shape(time_axis()[::2]))\n", " freq_change -= freq_change[0]\n", " cumulative_phase_change = np.cumsum(2 * np.pi * freq_change) * np.diff(time_axis()[:4:2])[0]\n", " # Define IQ values for ground state and excited state\n", " ground_state = 0\n", " excited_state = 1 + 5.0j\n", " # compute the IQ values for the X measurements\n", " x_measurements = (np.cos(cumulative_phase_change) * 0.5 + 0.5) * excited_state\n", " # compute the IQ values for the Y measurements\n", " y_measurements = (np.sin(cumulative_phase_change) * 0.5 + 0.5) * excited_state\n", "\n", " # Assign the last of the x and y measurements\n", " # to ground and excited state IQ values\n", " x_measurements[-1] = ground_state\n", " y_measurements[-1] = excited_state\n", "\n", " # reshape to the way that an actual measurement would look like\n", " result = np.concatenate((x_measurements, y_measurements)).reshape(2, -1).T.flatten()\n", "\n", " return [np.real(result), np.imag(result)]\n", "\n", "\n", "def fake_get():\n", " \"\"\"Run the previous get function but only return fake data.\"\"\"\n", " gettable.old_get()\n", " return get_fake_cryoscope_data()" ] }, { "cell_type": "markdown", "id": "f626337e", "metadata": {}, "source": [ "### Define the schedule gettables for the measurement" ] }, { "cell_type": "code", "execution_count": 17, "id": "df8feff2", "metadata": { "execution": { "iopub.execute_input": "2024-09-18T14:58:26.511747Z", "iopub.status.busy": "2024-09-18T14:58:26.511569Z", "iopub.status.idle": "2024-09-18T14:58:26.517355Z", "shell.execute_reply": "2024-09-18T14:58:26.516729Z" } }, "outputs": [], "source": [ "from qcodes import ManualParameter\n", "\n", "from quantify_scheduler.gettables import ScheduleGettable\n", "\n", "time_axis = ManualParameter(name=\"time_axis\", unit=\"(ns)\", label=\"Time\")\n", "time_axis.batched = True\n", "\n", "x_or_y = ManualParameter(name=\"x_or_y\", unit=\"\", label=\"axis\")\n", "x_or_y.batched = True\n", "\n", "cryoscope_kwargs = {\n", " \"time_axis\": time_axis,\n", " \"x_or_y_axis\": x_or_y,\n", " \"amplitude\": 0.156,\n", " \"qubit\": quantum_device.get_element(\"q0\"),\n", "}\n", "\n", "gettable = ScheduleGettable(\n", " quantum_device,\n", " schedule_function=cryoscope_sched,\n", " schedule_kwargs=cryoscope_kwargs,\n", " real_imag=True,\n", " batched=True,\n", ")\n", "\n", "# replace the get method for the gettable in case the cluster is a dummy\n", "if cluster_ip is None:\n", " gettable.old_get = gettable.get\n", " gettable.get = fake_get\n", "\n", "# Set the number of repetitions (or averages)\n", "quantum_device.cfg_sched_repetitions(1)" ] }, { "cell_type": "markdown", "id": "9a7af1b4", "metadata": {}, "source": [ "### Define the time spacing between pulses\n", "\n", "This allows for transients to decay." ] }, { "cell_type": "code", "execution_count": 18, "id": "91ab2cbb", "metadata": { "execution": { "iopub.execute_input": "2024-09-18T14:58:26.519263Z", "iopub.status.busy": "2024-09-18T14:58:26.519100Z", "iopub.status.idle": "2024-09-18T14:58:26.522034Z", "shell.execute_reply": "2024-09-18T14:58:26.521442Z" } }, "outputs": [], "source": [ "from quantify_scheduler.backends.qblox import constants\n", "\n", "constants.PULSE_STITCHING_DURATION = 16e-9" ] }, { "cell_type": "markdown", "id": "be658a70", "metadata": {}, "source": [ "### Measure the phase vs the duration of the detuning flux pulse" ] }, { "cell_type": "code", "execution_count": 19, "id": "db961f97", "metadata": { "execution": { "iopub.execute_input": "2024-09-18T14:58:26.523789Z", "iopub.status.busy": "2024-09-18T14:58:26.523629Z", "iopub.status.idle": "2024-09-18T14:58:26.527678Z", "shell.execute_reply": "2024-09-18T14:58:26.527086Z" } }, "outputs": [], "source": [ "time_axis_setpoints = np.arange(-5e-9, 200e-9, 1e-9)\n", "x_or_y_setpoints = [0, 1]\n", "meas_ctrl.settables([x_or_y, time_axis])\n", "meas_ctrl.setpoints_grid([x_or_y_setpoints, time_axis_setpoints])\n", "# Pass the ScheduleGettable class with schedule_function=cryoscope_sched on to the measurement control\n", "meas_ctrl.gettables(gettable)\n", "hw_cfg = quantum_device.hardware_config()" ] }, { "cell_type": "code", "execution_count": 20, "id": "7c370e72", "metadata": { "execution": { "iopub.execute_input": "2024-09-18T14:58:26.529445Z", "iopub.status.busy": "2024-09-18T14:58:26.529282Z", "iopub.status.idle": "2024-09-18T14:58:28.406714Z", "shell.execute_reply": "2024-09-18T14:58:28.406004Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Starting batched measurement...\n", "Iterative settable(s) [outer loop(s)]:\n", "\t --- (None) --- \n", "Batched settable(s):\n", "\t x_or_y, time_axis \n", "Batch size limit: 410\n", "\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/usr/local/lib/python3.9/site-packages/quantify_scheduler/backends/types/qblox.py:1220: ValidationWarning: Setting `auto_lo_cal=on_lo_interm_freq_change` will overwrite settings `dc_offset_i=0.0` and `dc_offset_q=0.0`. To suppress this warning, do not set either `dc_offset_i` or `dc_offset_q` for this port-clock.\n", " warnings.warn(\n", "/usr/local/lib/python3.9/site-packages/quantify_scheduler/backends/types/qblox.py:1235: ValidationWarning: Setting `auto_sideband_cal=on_interm_freq_change` will overwrite settings `amp_ratio=1.0` and `phase_error=0.0`. To suppress this warning, do not set either `amp_ratio` or `phase_error` for this port-clock.\n", " warnings.warn(\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "7580daf5664147b79b2008677bf23887", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Completed: 0%| [ elapsed time: 00:00 | time left: ? ] it" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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TO+tvKyXO3PmjKZMmaKePXsqKipK9957r4KDg/M8K7dnzx6Pf9ZVrFhRu3fv9uj9UKVKFX377be5DnEpKSnO9XRHjhxx29f58+clyaPZvl69eumPP/7I1fo+AHnDZicACkxSUpIkub3M6ErZ/UX49OnTOnLkiPbv36+33npL33//vTp37qz+/furSZMmzgX5R44c0dGjR3Xy5EmVLl3aZR9Hjx51WW7+/Pm67bbbVKNGDd1xxx2qWLGiAgMDZbfbdfToUa1atUq9e/fWqFGjNHbs2Ex1T506pY4dO6patWoaMWKEwsPDM50/dOiQZs6cqc6dO2vLli0qW7ZspvOff/657rvvPt14443q27evIiMj5e/vr/T0dO3cuVNr1qzRHXfcoVmzZmUJu2PGjNG//vUvtW3bVvfee69zQxnHJgs//vijmjRpojlz5ui2227L8vwePXpUr7/+uiZNmqQbb7xRd911lyIjI1WsWDGdOHFCf/zxhx5++GEtW7ZMkydPzvKcbtq0SY0bN1bJkiXVu3dvVa5cWcWKFZMxRsePH9e6des0cOBArVq1Sh999JHL741VHMF5wIABio+PV40aNTKdP378uHr27Kly5cpl2dxi586d+u9//6sffvhBtWrVUteuXRUVFaXQ0FAlJCRo06ZNev755zV37lwtW7Ysyy+0x48f17XXXqu0tDTFxcWpf//+CgkJkTFGp0+f1qZNmzR8+HDNnz9fc+bMyVJ/165d2rVrl1asWKHu3burfPnyatmypapXr67bb7/dWW7Pnj3Z7iDo+H4++uij2rlzp+68807FxMTIz89P27Zt03/+8x9t2LBBTz75pB588EHdfffd6t27t8LCwnTs2DFNmzZNHTp00LJly9SqVass7d9///364osv1LVrV7Vv315ly5aVzWZTSkqK9u3bp++++04//PCD1q1bl+V5d7z3xo0bp7fffls333yz4uLiVKFCBfn5+engwYOaM2eOGjdurLlz5+rWW2911h01apR69Oihr776SseOHcu0qUfdunVdvRRcmjJlis6ePatHHnlE0oUNQO666y5NnjxZb7zxRq4vYUxOTlaxYsU8KhsSEqLU1FRlZGQoIMC6X9UOHTqke++9V7Nnz9aJEyey9FmvXj2NGzdON998c7b1Ha9FY4yOHTum1NRUSRd+hpcuXdr5x6Fq1apZNmYAbhTEwjwAMMaYxYsXG0lm27Zt+WrHseFFu3btTJs2bczOnTvz1Z+rcna73Vx33XWmTZs2JjU11WX95557zgQFBZm9e/dmOj5p0iTj5+dnjh496rLukSNHjM1mM5MnT850/Ny5c6Z8+fLm3nvvNXa7Pdu6drvdtG3b1nTp0iXT8f3795vg4GAzatQol3VTU1PNLbfcYq699tosZRzPb1hYmFmyZInLsX/xxRdGkvnll1+ynOvWrZupVq2aSUhIcFn/448/Nn5+fmbDhg0uy1wpP5udnD592lSvXt00aNDAJCcnO4+np6eb9u3bm7Jly5o9e/ZkqSfJBAYGmqlTp7p8Ph2voW+//TbLuccff9yEh4ebAwcOuBzb3LlzjSTz008/ZTl3zz33mGuuucZUrVrV/Pvf/3a5+cSYMWNMxYoVsxx3PGfXXHONOXPmTJbz//d//2ckGX9/f7N48eIs55OSkkzVqlVN9+7ds5yLj483ksz48eNdPrbExERTvXp1c9ddd2U553jeoqOjXb4O0tLSTPv27U3dunWzff7zs6mHg91uNw0bNszyfli1apWRZD755JNct5mbcX3++edGkklLS8t1P1WqVMl2s5MHHnjASDIVKlQwI0eONBMnTjTTp083s2fPNtOmTTMffPCBufnmm7PdaMXxfVm6dKm58847Tbly5YykTB9hYWGmQ4cOZu3atbkeM4C8IcgBKDBWB7ly5cqZw4cP57s/V+VOnDhhJJlp06a5rZ+QkGAkme+++y7T8VdffdWULVs2h0djzNtvv53ll9i1a9caSeaPP/5wWzc+Pt589dVXmY798MMPRpI5efKk27ozZ840ksyxY8cyHXc8v88//7zb+hkZGaZs2bLmjTfeyHTcbreb8PBw89prr7mtn5qaaiIiIsy7777rtlx2Y5syZYrZt29flo+cHvO6detMcHCwefDBB53HRo4cafz9/c2iRYuyrSPJDBw4MMexNWrUyAwdOjTL8fr165shQ4a4rWu3203dunXNk08+meXcPffcYySZMWPGuG0jpyDn6nm22+2mQoUKpkmTJi7bHjFihImNjc1y/O233zbh4eFu/9BhjDFvvPGGKVmyZJbjjvfe559/7rb+7Nmzs32tGmNNkFuzZk22gdRut5sGDRq4fW5cyW5c27ZtM6GhoZlef8Z4J8jt2LHDTJgwwZw7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vf322y77TUtL03vvvadrr70201/ic2PSpEk6fvx4lptE22w2tW7dWp988onzBsLZ2b59u7755huv7jx6uV9//VVPPPGEhg4dmmn93vjx41WzZk3deeeded5MY+nSpVq7dq1at26d5Vzr1q311VdfuW372LFj+vTTT/P8R4uC0qpVKx09elTff/+9yzLGGL3//vvy8/Pzyhq5m266SceOHdO3336bq3oJCQmaOnWq7rvvvhw3yJGk7t27KyoqyuMNT7p27aro6Gg9/fTTbmcMp06dqsWLF2vo0KFZzp08edLtzx53WrVqlePrLiUlRe+9956aNm2aac1xqVKldN1117n92SldmIX+8ssv1bRp0zyNEUDucGklgAL17LPP6scff1T9+vXVs2dP1axZU+XLl3f+NTcjI0PHjh3T0qVLtWLFCr3yyit5Dho2m01vvfWWevTooRtuuEEdO3ZUhQoVlJqaqoMHD2r16tVavXq1+vfvr0mTJmVb/5133lHnzp1Vv359de3aVVFRUc41IcePH9eqVau0YMECjRo1KsuGD71799Z//vMfdejQQa1bt86yyUFycrJWrVql+Ph4vfLKK5nOhYSE6LXXXtOgQYO0adMmtW/fXuXLl5e/v7/S09O1a9curVmzRqtWrcpy+VblypX1j3/8Q//617/0888/q3nz5ipXrpz8/PyUnp6ugwcP6scff9TmzZv1008/ubyca8aMGdq8eXOmY8YYnTx5UuvXr9e0adMUFxeXJcBK0muvvaYmTZqodu3a6tWrl6KiohQUFCRjjJKSkrRr1y599913uuaaa9SjRw/X30QXshvblYoVK6b+/furWLFiOnnypO688041bNhQb731VqZyISEh+v7779WkSRM98MAD+u6777K0tWjRIpe7Nm7evFlTp05VixYtsl3n+Pzzz2vq1Km65ppr1LdvX1WqVMkZaJKTk7V//3798MMPCggIyPflnb52ww03aODAgerTp4++++471atXTyVLlpTNZlN6erpOnTqlxYsXa/ny5frkk0+8smFLixYt1Lt3b/Xt21c//PCD6tWrp5YtW+Z4SeHkyZOVlJSkIUOGeNRPYGCgHnroIb3xxht66623ctxsKSQkRO+995769eunOnXqqEuXLqpcubJKlCjhfB/Gx8dr0aJFuvPOO7Ncnvrnn3+qXr16uvPOO3MdUiXplVdeUb169VSnTh317dtXFStWdK41dvQ/c+ZM7dy5M8vMneNnZ6dOnZw/O8uXL++8jUpKSor279+vqVOnKjExUWPHjs31+ADkQYHcvQ4ALpOSkmJef/1107p1a1OxYkUjyflhs9lMxYoVzc0332ymT59u7HZ7lvqnT5825cuXN/Pnz/eov5UrV5qOHTuaKlWqGD8/P1OiRAnTuHFjM2DAALNy5cocbxweHx9vunbtamJjY42/v79zrFFRUaZVq1bmm2++yXacxhjzxRdfmOuuu84UK1Ys0+OUZIoXL27q1atn/vvf/7oc+9KlS82tt95qYmJijM1mc9YtW7asadOmjZkxY0a29ex2u/n2229Nq1atTFRUlLOev7+/iY2NNV27djXx8fHZ1nXcQNrVR7ly5cyNN95oPvroI5Oenu5y7Dt27DBxcXGmVq1aJigoyFk/PDzc1K5d24wYMcIcOnTIZf3snDp1yoSHh7sdn+MjODjYbNmyxRhjzKpVq8w111xj9uzZ47Lt77//3tSsWTPLza3d9VGqVCnTuHFj8/LLL5vk5GSXbR8+fNg89NBDpm7duqZ48eLO+qGhoaZGjRpmyJAhZvv27dnWfeGFF0zbtm1zfG4+++wz06pVq2yfs/Lly5v169e7rNuvXz+3N4CfO3euqV69erbn0tPTzcSJE02zZs1MuXLlMr3WoqOjza233urydfrnn3+a8uXLmxMnTrh9bI7HsGHDhmzPp6Wlmffff9/ccMMNpmzZsqZ9+/Zu2zPGmKeeesr06NEjx3KXO3jwoCldurTLcWRn69atpl+/fqZ+/fqmRIkSzuemWrVqpn379i5/fri6efiVbr75ZvPJJ59ke27nzp1m4MCBpmbNmpneg/7+/qZ69eqmR48eZuPGjS7bXrt2renSpYupVq1app99wcHBplatWmbgwIFm9+7dHj8XAPLHZkweLiIHgKvYkiVL1LZtW23btk01atQo6OEUOMdar/nz5+d5i/+ric1m06effqoHHnigoIcCixkPd3bMbx0AsAJr5AD8bWzbtk21a9fWiRMn3JbLyMiQ5NlNnwFcPfISyAhxAAoKQQ7A34YxRlu2bMlxN8Ldu3fLz89PFStW9NHIAAAAcofNTgD8bcTGxqpWrVp68MEHNWjQIOcmDA7GGB05ckSffPKJunTpUmRvOg4AAK5+BDkAfxsBAQGaMWOGnn76ab3//vs6fvx4ljJRUVG67bbb9OabbxbACAunkiVLqly5ckVuK3xviY2NVXR0dEEPAwDwN8dmJwAAAABQxLBGDgAAAACKGIIcAAAAABQxBDkAAAAAKGIIcgAKrf/973+KjY2V3W4v6KEAAAAUKgQ5AF5x9OhRVahQQbGxsUpLS8tTGwcPHtSuXbssCXLnzp3T2LFjVa9ePYWFhclmszk/KlWqpHbt2mnhwoUu658/f16vvPKKWrdurYoVKzrrVqhQQS1atNDIkSOVmJiYbV273a6vv/5azZs3V7ly5TL1Xbp0ad1444366KOPnDci95TdblePHj3Ur18/l2UOHz6sIUOG6IYbblDp0qVls9nk5+enqlWrql27dpo4caLbfletWqXOnTurWrVq8vPzc447LCxMDRs21D/+8Q+Xj9thxYoVqlmzpn766adszyclJem5555Tw4YNM31vgoKCVLt2bd133306dOiQZ09KLmzevFnXX3+9JkyYkKt6ycnJat68uf75z39mOXf69GlFRERk+h67+3j33Xez7WPVqlXq1KmTqlSpkul5L1++vG666SZNnTpVrvYq27t3rx588EHVrFlTQUFBzroBAQGqWbOm7r77bm3fvj3buhkZGRo/frxuvPFG5+vF8VG8eHFdd911euaZZ3L8nntqzJgxHj9X5cqVy/ZnyS+//KKuXbsqJiYm03NVunRpNW3aVO+//77S09Oz7f/EiRMaPny4rr32WhUvXtxZ1/Ee6dKli9auXWvJY5Wkv/76S3fffbeqVaumgIAAZ3/BwcGqU6eOHnjgAR0+fNhl/U2bNqlXr16qXr26/P39nfVLlSqlpk2b6oMPPsj1z5GcLF68ONNY3X188cUXmeqeOHFCI0aM0LXXXquQkJBMj7d27dq69957deDAAZd9Z2Rk6OOPP9Ytt9yS6b1QpkwZNW3aVI888oiOHDli6eMFihJuPwD8Ddntdk2YMEEDBgxQWFiYV/rYvHmzjh49Kkk6dOiQYmJivNKPJ4wx6t27txYtWqS+ffuqf//+Cg0NdZ47evSoFi5cqPbt22vKlCnq27dvpvqnTp3SjTfeqF27dunOO+9UmzZtnIHs+PHj2rVrl95//319+eWXWrZsmWrUqJGp/ptvvqlnnnlGnTp10uOPP57p/nWnT5/W77//rqFDh2r9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tKni4+PdXiYuSdu2bdPgwYO1ZMkStW/fXp988onLDX+OHz+us2fPuhxzTExMjt+b//3vf86rJB599FGNGzfO5a6Wjz32mD7//HM98cQTatCggcqUKeNsPykpSXv27NHEiRN17733as6cOZnWqznub3jlfQOvFBgYqJiYGLebpWRkZKhbt27y9/fXypUrc1zX6/Dkk08678XneG//73//U1xcnAIDA9WrV68c2zh16pSSkpKUkpLiUZ/AVa+gkyQA3yvoGTlXx69k1X3kLme3282nn35qIiIiTFhYmPnggw/c3ifN1fOQnJyc7YyIcpiRW758ualVq5ax2Wxm6NChOc6qHDt2zERHR5uuXbtmub+dMbmbkTPGmNOnT2eZSXH1GEeNGmWCg4PNCy+8YFavXm12795t9u3bZ/bt22c2bdpk5syZY1q0aGFKliyZ5xm566+/3vTo0SPbx3a5J554wtSuXTtLuebNm7udoejbt6/bdl39JX/r1q0mNDTUPPbYY9nW8/Q17E63bt1Mt27dMh2bPn26kWTWrVvntu6BAwdMsWLFsp3NcDh37pwZNmyY8fPzM9WrV89xZmnMmDHGZrOZ1NTUHMfepk0bc++992Y6NnHiRLffi4CAALf3UHNn7dq1RpJZu3ZtruuePXvWREZGmqefftplmbS0NDN27FgTHBxsKlSoYL7++mu3r8mzZ8+agIAAt4934sSJLusfP37cDBgwwEgyjRo1MmvWrHH7GNatW2ckmZkzZ7otd+7cORMVFWVeffXVTMcdP6enTJnifA+7+rjxxhvdvrYnTpxo/Pz83N4fLjcee+wxU758+Uw/5139v5KWlmaOHz+epQ1m5PB3xYwcgL+NtLQ0DR06VJ9++qm6d++u8ePHu9xgIyfFihXL9UzPZ599poceeki1a9fWzz//nOPW2sYYPfDAA8rIyNBnn32Wr01FHDzZWt7h+eefl7+/v8aOHasXXnghy3l/f3/17t1brVq10ldffZXrsezfv19//PGHxo4dm+Nju//++/Xee+/pjz/+yLSRw2effaYdO3a4rJeXNZSpqamKi4tT1apV9dprr+W6vqfCwsK0f//+TMd+/PFHNWnSJMdNTKKjo9W5c2dNnTpVffr0yXL+6NGj6tq1q+Lj4zVixAg9//zzzrWH7pQrV845I+pOxYoVs8za9OnTRxUrVnQ5IxcREeH2HmruODaF8WTXxiuFhoYqLi5Os2fP1ptvvpnl/NmzZ9W3b1/9+OOPeuCBB/T666/nuEOl4z6Erma3bTaby81Vtm/frk6dOunAgQN688039cQTT+S4kYpjDVrXrl3dlnPcI3Dq1KkaOXJklvPuZlov5+598+6772rAgAG5uoLBnQcffFAffPCB1qxZ49zt15WAgACVKVPGkn6BqwFBDsDfgjFGd955p+bMmaN3331Xjz/+uEfByLGjo2MXNXccm35kt73822+/raeffloDBgzQxIkTPfqleuLEiZo5c6Y+/fRTpaSkZPmlX7pwaaPjXNmyZZ3hMiQkxKMxuxt3cHCwXnrpJT377LPasWOH9u7d67zXXJkyZXT99dcrJCQk25DnCcd9yDwJ047Lt3bu3Jkp5NSpU0d16tTJU/+uPP/884qPj892F0WHlJQUnTt3Tvv371dkZGSmX8SNMR69trILPAcOHPD4jwuVK1fWokWLshw/duyYmjdvrsTExEy3FPGEJyHOUe7K2w+Eh4fr9ttv97gvKX/PlTFGdrvd7Q3rHSpXrqx9+/ZlOX7+/Hm1bdtWf/31l7755psc70l3ubzsgrllyxa1bNlS4eHhWr16terXr+9RvQMHDqhixYoePVeVK1fWzp07sz33r3/9y6OdTps0aZLt8VOnTmnTpk0aM2ZMjm1kZGR4/L2RpH379jmDXG5+7koXfoa5u60HcLUiyAF/Q46/irvbbdCxq5mrNSAOeVkjFhERkWO7Uva/vOXVlClTNGvWLE2ZMkV9+/b1uF5MTIykC1u216tXz21ZRzC5ck3Njh07NGrUKA0ePFgTJkzweGbt/fffl3ThL9Y5qVy5sjp27Kh58+Y5x33y5EmlpKTkuH7twIEDCg4OzrQL4alTp7R8+XJ169ZNxYsX13XXXefyr/Tp6el5WofmqOO4r6E7jjJX7vBoNbvdrvHjx8sYk+MOidKFHVgfeugh55rN999/XzNnztTChQtzrJuQkJBldqFYsWIePR/Shecku+dj1KhROnLkiNauXatrrrnGo7akC+9LT9cenT9/Pt/39bPb7YqOjtbXX3+ttm3bui3rmIm7/Pl6/vnntXHjRk2fPj3HvjIyMrL948lbb72ltWvXasmSJVm2wLeaMUaPPvqogoKCtHr1ao/XXUr5f104ZjQbNGjg0evalV9//VWSdOONN7ott2XLFjVu3Fg7d+5U+fLlcxyvpEzfn3LlyqlYsWI6fPhwjmNKTU3VsWPHXK5lBK5mBDngb6hs2bIKCQnJ9i/UDo5t8Pfu3ev2L7iO+1nlRtWqVbV06dIcy61fvz7XbWfHbrdrxIgRuuuuu3IV4qQL260XL15cP//8c6YbqGdn1apVkrIGueeee05RUVF65513cnV55NSpU7V37163Zd555x0dOnRIr7/+eqZf2h1jWL16dbZbkV857qpVq2b65W/58uXq3r27jh075nJjDIdDhw65vG2CO44Nb/bs2aNGjRq5Leu42a+3f1nz8/PTwoULdezYMbflnn32WZUpU0bDhw/P9P4ICwvT0qVLlZycnOOs665du3TbbbdlOlalShUtXrzYo7Hu2rUry/OxefNmffbZZ/rwww9zFeIcfR8/ftyjkLZv3z5de+21uWr/Sn5+fgoODtbChQtzDHKO7//lmySFhYVp2bJlHs3q7dq1K8tr9NSpU3rllVc0fPhwr4c46cLtBRYsWKCffvopVyFOuvC49+3b59EsV3avi9KlSyssLMztz3yHfv36qX79+tneEuDgwYOSlOMGJyVLltS5c+f0yy+/5Hg5qON7e/n3x3ED9J9//jnHP2StXr1akvd/NgCFUsEszQNQ0Dp06GCuv/56c/78+WzP2+12c91115n27du73Gzkzz//NJUqVcr1Zic//PCDkWQWLlzocnz/+9//TIkSJbLd7MTVgndX9u3bZySZ6dOne1znck899ZQpWbKk22229+3bZ6pXr2569uyZ5Vz16tXNE088kae+c+Jqs5OMjAzTuHFj06xZM3PixAmX9ZctW2b8/f3N+++/n+n4oUOHjCTz3nvvue0/ISHBlC9f3owcOdJtObnY7KRhw4amTZs2bjfYyMjIMHFxcaZChQomKSnJbT+5lddNEly9trds2WIk5bh9+5w5c4wk89NPP2U6PnPmTCMpx41JNm7caPz9/c0777yT6fhXX31lbDab2++5K/v27TPBwcE5jv23334zNpvNfPLJJ7nu40r9+vUzMTExbjf9OX/+vGnRooVp2rRppuM///yzkWQmTZrkto9Dhw6ZiIiILJudLF++3KONZazyr3/9y5QqVcpkZGTkuq5js5OcnvPDhw+bkiVLZvvz5vbbbzcNGjQwKSkpLutv27bN+Pv7m88//zzb8x988IEpVqyYR2O+5pprzK233ur28WZkZJg+ffqY6OjoLJswvf/++8bf398sX77cZf0TJ06YZs2amcaNG+fpeQWKOmbkgL+p1157TTfeeKPq1Kmjnj17qmrVqurXr59zkb/NZtPbb7+t2267Tddff726dOmiyMhIGWN09OhRrV27VosWLdLw4cNzvSFEjx49dPPNN6tjx47q06ePateurfDwcCUlJenIkSNavny54uPj1bVrV82aNStL/f79++ubb77Rhg0bPNrMYsuWLZIuzPBlt87scgEBAbr77rszbXbwz3/+U7Nnz1b9+vV15513qmbNms6/qJ88edJ5w+Dw8HCNGzcuU3spKSnatWuXTpw4ofHjx+c41g4dOqhWrVo5lsuJn5+f3nvvPXXu3Fm1atVSjx49VKVKFUVERCgjI0NHjhzRn3/+qVmzZql58+ZZtoCPjIzUo48+qqeeekorVqxQgwYNFBYW5pz5SEtL08GDB/X1118rIyND//jHP/I0zrfeeksdOnRQ/fr11bVrV0VHRzvXmznGuWDBAq1Zs0ZffPGFR2sLC9I111yjJ598Uk8++aQWLlyoJk2aqFSpUs7nLSEhQX/++ae++eYbdezYMcuMXNeuXdWuXTt16tRJffr0cd5+wOHs2bPasWOHJk2apBo1amjIkCGZ6m/ZskWlSpXSlClTchxrRESE+vfv7xxbpUqVNGLECOfYGzVqlGmLe8etDyZPnqx69erp3nvvzddzJUmvvPKK6tWrpzp16qhv376qWLGic9v89PR0HTx4UDNnztTOnTuzXK7avHlz9e/fXwMGDNC0adPUsGHDTLdqSEpK0t69ezV58mQFBwfr2WefzfJc+fn5aenSpTleWVCsWDH1798/X5eTbtmyRWXLltVHH32UY9lKlSrpjjvucH7doEED3X///Ro8eLB++uknNWjQQKVLl850o/g9e/ZoypQpCggI0OjRo7O0+dprr6lJkyaqXbu2evXqpaioKAUFBckYo6SkJOfPsWuuuUY9evTIdlxnz571eMOa8ePH69Zbb3W+tytUqJDpvX348GHNnz9f8fHx+uqrr7I8tw899JC+/vprtWrVSt26dVPdunWdN0FPSEjQnj17NG3aNKWlpemnn37y+mXXQKFU0EkSQMHZvHmz6d27t6lZs6YJCQkxixYtylJm3bp1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AADfydOllYVBRkaG2rVrp27dumnJkiUqXbq0c11eQkKCvvjiC7Vo0ULr169XSEhItm3Ex8erd+/eGj9+vNq1a+e8P57dbte2bdv0zDPPaPPmzXrzzTeddRISEvTee+8VqkBbGBDkAAAAAN8psrtWTp8+XVWrVtWYMWNUpkyZTJurRERE6IknnlDnzp01ceJEl22MGTNG7733njp37pzpJud+fn6qVauWJk+erO+++05Hjhzx6mO5Gly6j1zBjgMAAAD4OyiyQW7Dhg1q27at2zLt27fXhg0b8txGaGioGjdurC1btuR5nH8XzMgBAAAAvlNkg9z+/fsVFRXltkx0dLT27t3r8nxCQoJKlCiRrzZwAUEOAAAA8J0ivUbu8k1IshMQEOC8HUJeZdfGkiVLNH36dP31119KTEyUzWZzbpByzz336KGHHlJAgOunNiUlRSkpKc6vExMT8zXGwoAgBwAAAPhOkZ2RKyi1atXS3r17NXToUP366686fPiwDh8+rL179+rrr7/WvHnz9MYbb7ht49VXX1VERITzo3Llyj4avfewRg4AAADwnasmyG3ZskWxsbHaunVrntsYN26cunXr5rbMkCFDtGjRIt16660qVaqUc5MVf39/Va9eXZ9//rk+/vhjt208++yzSkhIcH7s27cvz2MuLJiRAwAAAHynyF5aeaVatWpp586d+Wpj5MiR+R5H2bJllZqaqvPnz6tYsWLZlgkODs60S+bVgCAHAAAA+E6RnZHzZP1benq627VqnshLG8WKFdP58+fz1W9RQ5ADAAAAfKfIBrlKlSrp8OHDbsscPHhQMTExLs+XLFlSZ8+ezVUbzzzzTKaNSrKTkpLicjbuasUaOQAAAMB3imyQq1evnhYuXOi2zMKFC1WvXr08t3Hu3DnFx8erVq1azmM///yz23V4p06dUkBAwN8wyDEjBwAAAPhKkQ1yd9xxh/bv368xY8boxIkTMheDhHRhO/8PPvhAc+bM0eDBg1228dJLL+nJJ5/UnDlzMs2y2e12bd++Xf3799edd96pChUqOM/16NFDI0eO1MGDB7O0d+TIET300EN64IEHLHqURYddBDkAAADAV4rsZif+/v5asGCBxo4dqzZt2mQKcyVLllSbNm20YsUKhYaGSrpw77cHHnhAa9euVXh4uCSpYcOGmjZtmsaMGaPHHntMSUlJ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pyfy8/M1bYyZO9qbpuJqzHHIWs4Lmqs588Kdei4uLnr72b59OzZu3AgfHx+tz8LX1xdr167F9u3b4ebmZpbtsISrV69i69aten+vFQoFysrKADR+oq+hx8A7jJmnLc1GCL71koiIiIiISEp4RY6IiIiIiEhimMgRERERERFJDBM5IiIiIiIiiWEiR0REREREJDFM5IiIiIiIiCSGiRwREREREZHEMJEjIiIiIiKSGCZyREREREREEsNEjoiIiIiI6P9VV1cjJiYG69evN0l/p06dQp8+fVBUVHTP8rVr1+LRRx81uF8mckRERO3ErVu3UF9fb9ExCCFQXV1t0TEQERmrqqoK0dHROHbsGGpqalrc3/Hjx/GXv/wFFRUVqKura1S+evVqvPPOO7h8+bLBfTORIyIiycjIyICNjY3B/5YtW6bp49lnn4WDgwN2795twS0xrU2bNqFv377o3LkznnjiCYuOZf369ejatSt8fHwwb9483Lx506LjISJqrrq6OowcORKPPvoopkyZ0uL+ioqKEB0djXXr1qFPnz6NylevXo2MjAxkZmYa1b99SwdIRETUWqKiovDhhx9CCKG1/PLly1i6dClmz56NgICARu1Gjhyp+f/333+P33//HYcOHcLo0aPNPmZze+ONN7B48WJMnjwZs2fPRlRUlEXH89RTT6FLly44cuQIPvjgAxQUFCAvLw82NjYWHRcRUVOEEEhKSsKkSZOQmpra4v5sbW2xZcsWPPTQQ3j77bcblfv7+2Pv3r2orKw0qn8bcffRkIiISGJOnz6NgIAA5ObmIjIyUm/dpUuXIjMzE+np6RgyZEjrDNBMKisroVAo8Oabb2L27NmWHk4jv/76K/r374+cnBwMHz7c0sMhImq21NRUdOvWDXPnztUsO3ToEF5//XUcP35cc7eBjY0NXF1dMWXKFMyZMwcdO3a8Z3+RkZF47733cP/99zcqO3fuHMaOHYtffvnFoDHy1koiIrIqixcvxq+//ir5JA4Adu7cCXt7e0ybNs3SQ7mnsLAwjBo1ChkZGZYeChFRi5SVlSE+Ph6vvvoqzp49i/LycpSXl+O3337Dvn37cPDgQSxfvrxVx8REjoiISKIuXLiA++67D506dbL0UHQaOHAglEqlpYdBRNQiW7ZswbRp0zBs2DDY2mqnUJ6envjoo4+wefPmVh0TEzkiIrIq+/btQ69evaBWqxuV9e7dG9999x0+++wzhIWFwdHRETY2NnBzc8PYsWNx+vRpAEB2djYefPBBdO3aFTY2NnBxccHgwYPx5Zdf6lyvEALffvstIiMj4e3trXkQS4cOHRAYGIgJEybgxIkTBm1LWVkZevToobN879698Pf3h1qtRlZWFmJjYyGTyWBnZwcHBwcEBwcjISEBZ8+e1dlHRkYGwsLC0KlTp0YPkfHw8EB8fDzKysp0tu/Ro4feciIiKSgpKYGfn5/Ocnd3d6OePNkSfNgJERFZFaVSiZKSEqjV6kZ/VT1z5gyWLVuGwsJCxMfHY/LkyejYsSPOnz+PTz/9FBEREVi3bh3GjRuH2NhYjBo1Ct27d0dFRQV2796NuLg4NDQ0IDExsdF6ly5ditTUVEREROCZZ56Bh4cHbG1tcevWLZSWlmLnzp0ICwtDTk4O/vznPzdrW27cuIEuXbroLC8tLcXZs2exaNEirF69GqNGjcKzzz4Ld3d3qNVqKJVKfP311wgJCcGhQ4fQt29frfbff/89EhMTMW7cOEyePBmOjo6aMiEETp48ia+//hpxcXH4/vvv7zmGrl27oqqqqlnbQ0TUVtXW1mLq1KmYOXOmzjp/nCNbAxM5IiKiPygsLMSJEyfg4eGhtXzq1KkICQnB2LFj8be//a3Ro6lfeeUVREREYNWqVY0SubKyMixfvhzz58/HypUr7/kEx2XLluGRRx7B/PnzcfDgwWaPtzlPg8zKykJJSQm8vb0blb311lsYPHgwFi5ciF27dmmVbd68GaGhocjMzNS5nqioKEyYMAGlpaXw8vIyanxERFKwceNGjBs3ztLD0OCtlURERH9w52rZ3fr06YPBgwfDzc0NTz/9dKNyOzs7JCQk4NixY41u2zx48CDq6+vx8ssv60xsOnbsiNmzZ+Pnn39GRUWFSbbljg8//PCeSRwAdO7cGTNmzEBeXl6j1zpcuHABgYGBepOxmJgYLFiwAM7OziYdMxFRW9KpU6cm7y44cOBAK43mNiZyREREf6DvOxDe3t7w9fVtdEvmH8sbGhoafU/i3LlzcHJygru7u951+/v7AwD++9//Gjhq/YYOHaq33MfHBzU1Nbhy5YrWcldX1yaTSkdHR6xYsQJdu3Zt6TCJiNosPz8/FBYW6iy/dOkSnnvuuVYcEW+tJCIi0tK5c2edZZ06dWqyHADq6uq0lldWVqJLly5NPr3xznuJTP2FeTs7O73ld5KwyspKrYen/PnPf8asWbOQkZGBIUOGwMHBQaudq6ur3ngQEbUXcXFxGDx4MB5++GGMHj0a9vb/S6MuX76M+fPnY9KkSa06JiZyREREreDixYtQKBTNqtvaX5jXZerUqdi/f/89H95yR2BgINLS0vDYY4+14siIiMzL2dlZ604DhUKB7du347XXXsOMGTOgUqkAALa2tnB2dkZiYiKSk5N19te9e3edf/jq1KkT3NzcDB4jEzkiIqJW4Orqik2bNjVZz9HRsc28rLxDhw7YunUrzp49izNnzqC+vl5TJoRAZWUlMjIyMHHiRBQVFaFnz54WHC0RkekkJSU1WvbAAw9g7969RvX3zTff6Czz8PBATk6OwX0ykSMiIjKzO++bk+pVKz8/P53fHRw3bhxcXV2xd+9e/PWvf23lkRERWS8+7ISIiMjM/Pz8cPXqVdTW1uqt99tvv8HHxwclJSWtNDL9Pv74Y70vCwcAJycnuLq6ory8vJVGRUREABM5IiIiswsPD4eDgwM++ugjvfXS09Nx6dIlyGSyVhqZfqtWrcL777+vt87169dx5coVna83ICIi8+CtlURERGbm7e2NhQsXYsGCBcjNzdW8j87W1hYqlQqVlZU4ePAgdu/ejVdeeaXZT4K0t7dv9IRMU5o0aRJWrVqFy5cv4/7779c8lRO4/R25GzduIDMzE05OToiOjr5nH7du3dJ6uhsREZkGZ1YiIpI8Nzc3yOVyeHp6NlnXy8sLfn5+93wXXK9eveDl5aWzrY+Pj96kRCaTwd3dHd26dWtUlpqaitDQUKxZswYbNmxAWVkZgNtPPOvRowcCAwOxceNGPPPMM01uwx/X9/PPP+ssl8vlOrf1j9zd3eHu7g5XV1et5UuWLAEAfPHFF/jqq680T2m7o3v37ggNDUV2drbOd+RdunSpWZ8LEREZxkYIISw9CCIiIjLcxx9/jFWrVuH06dOwsbGx9HDu6bnnnkNtbS2+/PJLSw+FiKhd4XfkiIiIJGr48OE4e/Ys9u3bZ+mh3NP169fxj3/8A1FRUZYeChFRu8MrckRERBI2adIkZGdn44033sCQIUNw3333wcnJyWLjUavVOHbsGE6cOIHXX38dN27cQElJSZt5yTkRUXvBK3JEREQStnHjRsTFxWHu3LkYMmQIJk6caNHxrF+/HqGhoXjyySfh5uaGAwcOMIkjIjIDXpEjIiJqB2pqalBUVARnZ2f07t3bYuOoqqrCkSNHEBQUhB49elhsHERE7R0TOSIiIiIiIonhrZVEREREREQSw0SOiIiIiIhIYpjIERERERERSQwTOSIiIiIiIolhIkdERERERCQxTOSIiIiIiIgkhokcERERERGRxDCRIyIiIiIikpj/Awls2DRMHBkuAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "if hw_cfg.get(\"hardware_options\", {}).get(\"distortion_corrections\") is not None:\n", " # In case the cells below have already been run, we need to reset the distortion_corrections hardware option again.\n", " print(\n", " f\"Predistortion filter removed. Previous value: {hw_cfg['hardware_options'].pop('distortion_corrections', None)}\"\n", " )\n", "# Run the measurement control loop\n", "cryoscope_ds = meas_ctrl.run(f\"Cryoscope Experiment A {cryoscope_kwargs['amplitude']}\")\n", "# Analyze the date from the measurement\n", "if cluster_ip is None:\n", " savgol_filter_params = {\"window_length\": 2, \"polyorder\": 1}\n", "else:\n", " savgol_filter_params = {\"window_length\": 10, \"polyorder\": 1}\n", "cryoscope_result = CryoscopeAnalysis(\n", " dataset=cryoscope_ds,\n", " label=\"Cryoscope\",\n", " settings_overwrite={\"mpl_transparent_background\": False},\n", " frequency_change_to_flux=frequency_change_to_flux,\n", " savgol_filter_params=savgol_filter_params,\n", ").run()\n", "cryoscope_result.display_figs_mpl()" ] }, { "cell_type": "markdown", "id": "a7833b3d", "metadata": { "lines_to_next_cell": 2 }, "source": [ "### Calculate the predistortion needed to send a square pulse\n", "\n", "In order to find the optimal parameters for the overshoot correction, we define the residual as the difference between exponential_overshoot_correction() applied to the measured $\\Phi/\\Phi_0$, and the ideal pulse shape." ] }, { "cell_type": "code", "execution_count": 21, "id": "a79457d0", "metadata": { "execution": { "iopub.execute_input": "2024-09-18T14:58:28.408806Z", "iopub.status.busy": "2024-09-18T14:58:28.408626Z", "iopub.status.idle": "2024-09-18T14:58:28.412837Z", "shell.execute_reply": "2024-09-18T14:58:28.412237Z" } }, "outputs": [], "source": [ "from copy import deepcopy\n", "\n", "\n", "# Define the residual for the fitting function\n", "def residual(params: list, distorted_data: np.ndarray):\n", " # Params: [amp,tau,scale]\n", " distorted_data = deepcopy(distorted_data.values)\n", " # Remove the offset: subtract the value of the first data point from the data array\n", " distorted_data -= distorted_data[0]\n", " # Scale the data by scaling parameter\n", " distorted_data /= 2 * params[2]\n", " # Define the ideal pulse as a step function with height 0.5 starting at t=0\n", " ideal = 0.5 * np.ones(len(distorted_data))\n", " ideal[:5] = 0\n", "\n", " return exponential_overshoot_correction(distorted_data, params[0], params[1]) - ideal" ] }, { "cell_type": "markdown", "id": "fe6eaf26", "metadata": {}, "source": [ "Find a best fit for the predistortion filter that would result in a clean pulse at the qubit using the least squares method." ] }, { "cell_type": "code", "execution_count": 22, "id": "c072e107", "metadata": { "execution": { "iopub.execute_input": "2024-09-18T14:58:28.414593Z", "iopub.status.busy": "2024-09-18T14:58:28.414430Z", "iopub.status.idle": "2024-09-18T14:58:28.421537Z", "shell.execute_reply": "2024-09-18T14:58:28.420953Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/builds/qblox/packages/software/qblox_instruments_docs/qblox_instruments/qblox_instruments/simulations/predistortions.py:80: UserWarning: Qblox simulator plugin WARNING: Output will be clipped.The result of the simulation cannot be trusted.\n", " warnings.warn(\n" ] } ], "source": [ "from scipy.optimize import least_squares\n", "\n", "time = cryoscope_result.dataset_processed.t\n", "# Convert xarray.DataArray to np.array, store the results separately in memory\n", "distorted_data = cryoscope_result.dataset_processed.reconstructed_phi\n", "# Find the overshoot correction parameters that best approximate the ideal pulse shape\n", "res = least_squares(residual, x0=(0.33, 73, 0.1), args=(distorted_data,))" ] }, { "cell_type": "markdown", "id": "3d051879", "metadata": {}, "source": [ "Plot the measured pulse shape versus the corrected and predistorted pulse shapes" ] }, { "cell_type": "code", "execution_count": 23, "id": "1569edf1", "metadata": { "execution": { "iopub.execute_input": "2024-09-18T14:58:28.423517Z", "iopub.status.busy": "2024-09-18T14:58:28.423332Z", "iopub.status.idle": "2024-09-18T14:58:28.569492Z", "shell.execute_reply": "2024-09-18T14:58:28.568845Z" }, "tags": [ "nbsphinx-thumbnail" ] }, "outputs": [ { "data": { "image/png": "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VisWLlzoCmwAEB4ejmeffRZ33303CgoK3HqA4uPjMWPGDKxdu9YttH344Yf461//iuuuu87t/BKJBB07dsRrr72Gv/71r26hbc+ePZg/f36tW4KCgoLw5JNPYtWqVdi+fTuGDx8OAMjOzka3bt3qXCJLrVbjpZdewpEjR7xrEKd3330XW7duRVRUVK19S5cuxeLFi5Gamuq2XSKR4LrrrsMLL7yAZcuWuYW2Dz/8EM8//zxuvPFGn9QvEAVkaCMiIiKi1iORSHw2xDCQBQUF1RqCCABJSUlISEioc8heQkICfvrpJ7dtmZmZmD59er3XSUlJQVZWltu21157rcEp43v37o3MzExXaEtOTsaxY8dw4MABXHfddbVGnLVr1w7Dhg2r93zNcfvtt9cZ2ICqz5qcnFzvsSkpKfjwww9rHTNtWmD+ksBXGNqIiIiIiDygUqnqnNREpVLVu7CySqVCZWWl2zaTyYRRo0bVG8IEQUBSUpLbNqvVimeffRZr165FaWlprWPKysrw8ssvu963b98eixYtwgMPPIBLly65DTFUKpW45ZZb8M9//rPesNUcXbt2rXefyWRC9+7d611LzW63Y8iQIbWOUavVXtcrkDG0ERERERG1ss2bN6Nv375NLj9//nxUVFRg3759bveMVasZ2Krdc889uOeee2ptt1qtWLx4Mf7yl7/g888/b17F61BfYK128uRJhIWFeX2da0nArdNGRERERNSWqNVqGAyGevc7HA7s2rXLbdsPP/yAZ555ps7AVn1MUykUCjz22GO1riGVSl0T/tXFarU2+RrVGvusJpMJ+/fvd9um0WhQUVFR7zF2u73Z9Qg0DG1ERERERK0oOTm5wUlADhw4gPnz57tts9vt9Q4xFAQB27Ztc9v29ddf45VXXqn3GhKJpFbQi46OxtmzZ+ssb7VasWnTpnrPV5/GPuu6deuwdOnSWsecOHGi3mOuhckCGdqIiIiIiFrRH/7wB/z973/Hjh07agWnc+fO4bnnnsOUKVPctg8aNAhvvfWWW2+XIAg4efIkZsyYgaKiIrfy3bp1w+eff46MjIxavWeCIODjjz/GTTfd5LZ9xowZePTRR5GTk+PaZrfbsX//fkyaNMmj9YtnzJiBZ555BocOHapVjxMnTmDhwoWYPHmy2/aHHnoICxcuxN69e92OKS0txeeff96kGeUDHe9pIyIiIiLyQExMTJ3bg4KCEB4eXuc+jUZTa93fG264AR988AGeffZZZGZmuoKJTCZDZGQkHn74YfzhD39wO+bll1/GrFmzkJqaCovFAqlUisjISHTp0gUPPvggevbsieDgYFf5nj174oknnsCIESNgMpncZo+USqW4/vrra/VwzZw5E1KpFGPGjEFBQQEkEgnatWuH7t274+mnn8amTZsQEhLidoxer693yCYAjBs3DuXl5fj973+PvLw813a5XI7Y2Fg8++yzGDlypNsxffv2xTvvvIOnn34amZmZsNvt0Gg0iI+Px4033ohly5bVuSB3WyIRGhqoSj5lMBig1+tRWlra4A9zS7BarVi3bh3GjBnT4HSx1HxsW/GwbcXDthUH21U8bFvxWK1WbNy4EcnJyUhJSWl0UglqOofDAYPBAJ1OV+/QRvKMv7St2WxGVlYWkpOTG/2z05xswJ8WIiIiIiIiP8bQRkRERERE5McY2oiIiIiIiPwYQxsREREREZEfY2gjIiIiIiLyYwxtREREREREfoyhjYiIiIiIyI8xtBEREREREfkxhjYiIiIiIiI/xtBGRERERETkxxjaiIiIiIiI/BhDGxERERERkR9jaCMiIiIiIvJjDG1ERERERER+jKGNiIiIiIgCyqlTpzB+/PjWrkaLYWgjIiIiIqKAYjKZUFJS0trVaDEMbURERERE5JUePXq0dhXaNIY2IiIiIiLySm5ubmtXoU1jaCMiIiIiIvJjDG1ERERE1CyCIECoKA/MhyD4tC2Ki4uRnp6Ozp07IyoqClFRUWjXrh2io6Mxffp0FBUVucra7XZ8+OGH6NOnD2JiYlzlExIScPvtt2Pfvn21zv/EE09gx44dyMrKwsMPP4zExER07doVDoejSfsBYPny5ejfvz/i4uJc14yNjcUtt9yCFStW1Pm5Nm7ciFtvvdV1TIcOHRAeHo4bbrgBX3/9tavchAkTEBUVhdLSUrdznzp1yu1zv/vuu+jduzdiY2Nd5eLj4zF8+HBs27atzjpU17vmMdWP4cOHN+9/VICTt3YFiIiIiCjAmE0ouyW4tWvhkeDdZYBa67PzPfjgg+jSpQv279+PkJAQ1/bLly/jvffew8yZM/Hll18CAJYuXYr169dj1apVSEpKgkQiAVAVajZv3oyJEyfi559/RnR0tOs8BoMBv/76K5577jnMmjULr732GnQ6XZP3f/fdd3j33XexfPlypKSkuK4pCAIOHz6MqVOnIjw8HGlpaa5jDhw4gMcffxzLli1Dv379IJVW9fNYLBb89ttvmDRpEnr16oWuXbvi22+/BQCEhobi4sWLdbbRe++9h61bt+L77793+2wOhwO7du3C/fffj++//x6dO3d2q/drr72Gzz//HN26dXPVu9rBgwfx1FNPNeH/UNvAnjYiIiIiIg/k5+fj4MGDWLhwoVtgA4D27dvjmWeeQVxcnGvb+++/j8WLFyMxMdEthMhkMowaNQr333+/K+DV9O677+Lrr7/G3Xff7RbImrJ/6dKlWLx4MVJTU92uKZFIcN111+GFF17AsmXL3I7597//jeeffx4DBgxwBTYAUCqV6Nu3L1566aVmzdy4dOlSvPfee26BDQCkUiluvfVWPPLII/jmm29qHfP666+je/futQLbtYg9bURERETUPEGaqh6rQBSk8dmpsrKy0LlzZ7dg43apoCAsWrTI9T4vLw+JiYn1nq979+7YtWtXre233347oqKi6j2uof2ZmZlITk6u99iUlBR8+OGHbtuysrLwu9/9rt5jpk6dWu++uuTn56Ndu3YN1mHjxo1u2zIzM9G1a9dmXactY2gjIiIiomaRSCQ+HWIYqEwmE9RqdZPLOxyOBnuNNBoNysvLa21vLLw0tN9kMqF79+71Bku73Y4hQ4bUOqY5n6sxly9fbjB02mw2TJ8+XdQ6BDqGNiIiIiIiPxYUFOTV/pMnTyIsLMyXVWoWnU5X7/1u1DS8p42IiIiIyAMajQYVFRVNLi+VShucvdJkMkGr9W0PplqthsFgaPCa+/fvd9vW3M8FVPW+1vfZHA4H7HZ7vccWFhbi2LFjzapDQ+drixjaiIiIiIg8kJSUhFOnTrlNr1+T2WzGnDlzXO+jo6ORk5NT7/mOHz+OlJQUn9YxOTkZR44cqXf/unXrsHTp0lrHnDx5st5jli9fjr1797pt69ChAy5cuFBn+fj4eBw/frze83388ce1lh5ITk7GiRMn6j1mz5499e5rixjaiIiIiIg80L59e1x33XV47rnnUFbmPjFLfn4+Fi1ahLNnz7q2/fGPf8SsWbNqBTe73Y5Nmzbh008/xb333uvTOs6YMQPPPPMMDh06VKsn7MSJE1i4cCEmT57stv3BBx/EggULsHfvXrdjrFYrDh06hLlz59aaLfPBBx/E448/jkuXLtVZh8ceewxnzpxxO58gCNi3bx/ef/99jBs3zu2YRx55BH/5y19w/Phx1zGCICA/Px9LlizBJ5984lF7BCre00ZERERE5KGPPvoI8+fPR58+fVzBzW63QyaTYeTIkViyZImr7OOPPw6LxYKxY8eisLDQFUYUCgW6d++Ob775BjExMW7n1+v1dU7z39T948aNQ3l5OX7/+98jLy/PtV0ulyM2NhbPPvssRo4c6XbMDTfcgLfffhvp6enIzs6G3W6HIAiwWCxISkrCwoUL0a1bN7dj0tPTIZPJMHToUBgMBnz33Xfo06cPAGDmzJmQSqUYN24cCgoK3OrQqVMnvPfee+jZs6fb+e68806UlZXhvvvuQ15eHhwOB4KDg5GUlIS0tDR8+OGHmDdvXr2fu62RCL5eFp7qZTAYoNfrUVpa2uAfrpZgtVqxbt06jBkzBgqFolXr0tawbcXDthUP21YcbFfxsG3FY7VasXHjRiQnJyMlJaXRSS6o6RwOBwwGA3Q6Xb2zOZJn/KVtzWYzsrKykJyc3OifneZkA/60EBERERER+TGGNiIiIiIiIj/G0EZEREREROTHGNqIiIiIiIj8GEMbERERERGRH2NoIyIiIiIi8mMMbURERERERH6MoY2IiIiIiMiPMbQRERERERH5MYY2IiIiIiIiP8bQRkRERERE5McY2oiIiIiIiPwYQxsREREREZEfY2gjIiIiIiLyYwxtREREREREfoyhjYiIiIioDSsvL0e/fv1auxoB64EHHsC+fftatQ4MbUREREREbZjVakVBQYHbtt/97neIj49vpRoFltLSUpSXl7dqHRjaiIiIiIiuMYmJiejWrZtX57h48SKGDRvmoxo1zeLFi/Hvf/+7Ra/pD+StXQEiIiIiImpZCxYs8PocZrMZRUVFPqhN0xmNRshksha9pj9gTxsREREREZEfY2gjIiIiomYRBAEmuz0gH4Ig+KwdevTogdzcXMycORMDBw5EYmIioqKikJCQgNGjR+OXX36pdcwzzzyDHTt2ICsrCw8//DASExPRtWtXOBwOV5nly5ejf//+iIuLQ1RUFKKiohAbG4tbbrkFK1asqLMumzZtwuDBg92OqX507ty5VvnNmzfjiSeecNt26tQpDBkyBBEREW7HR0ZGonfv3vjhhx9cZfv374/+/fvj6NGjrnJJSUkoLS11lTGbzXj55ZfRrVs3REdHu5WbPHkyTp06Vated999N86ePYtDhw7h3nvvRXx8PEaMGIHdu3cjKioKr7/+Ov7617+6zvXoo4/W+gyTJ09GcnKyq0x0dDS6dOmC5557DkajsdY18/Ly8Ic//AGpqam12i4qKgrr16+vs81bEodHEhEREVGzVDgc6HnwYGtXwyNH+/SBxkfD6zIzMzFp0iQ8+eSTePXVVxEcHAwAsNvt2LJlCyZOnIg9e/YgOjradYzRaMTBgwcxd+5czJo1C6+99hp0Op1r/3fffYd3330Xy5cvR0pKCiQSCYCqoHz48GFMnToV4eHhSEtLcx1z8OBBPProo1i2bBn69+8PqdS9X6akpAR9+vRx21ZWVgaDweC27c9//jOmTZuG+++/HyqVyrVdEARs3boV06dPR3Z2NiQSCfbt24fs7GyMHz8eB+v5WZg7dy4uXbqE7du3o127dq7tVqsV33zzDUaPHo0jR45Ao9G49hUXF2PTpk348ssv8fzzz+PDDz+EVqsFUHUP3fz58xEaGoqnnnqq1vXKy8sxfvx4vP7661i+fLnbMMri4mLMnTsXTz75JD766CPXdofDgfHjx2Pq1Kl45513EBQUVOu848ePr/PztSSGNiIiIiIiD5jNZixatAi33nqr23aZTIaRI0fivvvuw5dffomnn37abf97772HrVu3IioqqtY5ly5disWLFyM1NdVtu0QiwXXXXYcXXngBy5YtcwttH374IZ5//nnceOONXn2ejIwM3HnnnW6BrfraQ4cOxWuvvdbkcwmCgM8++wxZWVmu0FVNoVDg3nvvxdq1a7F+/XpMnDjRbf9HH32ETZs21TquMZs3b8awYcNwxx131NoXFhaGf/7zn4iNjYXD4XAF2wMHDkCtVtcZAv0JQxsRERERNYtaKsXRq3puAoVa6ru7g7RaLQYNGlTv/u7du2PXrl21to8aNarOwAZU9d4lJyfXe86UlBR8+OGHtY6ZNm1aE2tdvy5duuC///0vpk+f7tb7V+3//u//mnyu/Px8hIaGNhi8unfvjszMzDqv09zABgDZ2dkNtp1CoUC7du1w4cIFxMbGAqhqu65duzb7Wi2NoY2IiIiImkUikfhsiGEgk8vlruGLddFoNHWu79WlS5d6jzGZTOjevXutIY7V7HY7hgwZUusYtVrdtEo34B//+Acef/xxvPrqq2732EkkEsTHx+Oll17CqFGjmnQuk8nkNuyxLhqNBiUlJbW2exqiKioq8Prrr2Px4sX1lrFYLJDLr0QgX7Wd2BjaiIiIiIhaUF33TdV08uRJhIWFtVBtrkhOTsa6detqbRcEAUePHsXYsWNx6NAh0evWWPs05MUXX8SsWbN8WBv/wNkjiYiIiIhEYDKZmj3MT61W15og5Opz7t+/322bRqNBRUVFvcfY7fZm1eFqEokEvXr1Qr9+/XDkyBHX9qCgIFRWVtZ5jFqtbrBOgGft09A1g4KCGmw7ANi5c6fbDKKNtR3gffv5AkMbEREREZEIjh8/jpSUlGYdk5yc7BaMrrZu3TosXbq01jEnTpyo95g9e/Y0el273Y7+/fs3WEYikbgNm2zfvj0KCwvrDFHt27dHcXExTCZTvefzpH2SkpJw5syZOvclJiY22HY2mw2TJ0+G1Wp1bWus7SwWCw4cONCsOoqBoY2IiIiIyIccDgc2bdqEzz77DPfee2+zjp0xYwaeeeYZHDp0qNaacidOnMDChQsxefJkt+0PPfQQFi5ciL1797odU1pais8//xyLFi1q9LoymQwSiQT//e9/6wxhmZmZ2LdvH3r16uXaJpVKMWnSJDz11FNu67MBVQFv2rRpePTRR1FQUOC2z2azYfny5di9ezduv/32RutW0+jRo7Fp0yasWbOmVg/YiBEjsG/fPnz00UewWCxu+wwGA55//nkMHz4cSqXStf3666+HyWTCW2+95fa5bTYbdu/ejYkTJ3o1XNNXeE8bEREREZEHSktL65wFUqFQoHv37vjmm28QExPjtk+n09U5M2O1cePGoby8HL///e+Rl5fn2i6XyxEbG4tnn30WI0eOdDumb9++eOedd/D0008jMzMTdrsdGo0G8fHxuPHGG7Fs2TLcfffdbscEBwfXqsdHH32Ehx9+GI888ohbsAGA8PBwvPXWW4iIiHDb/tprr2HhwoXo378/LBYL9uzZ42qThQsXYtGiRRg4cCAMBoMrUKpUKvTr1w/r1q2rNTwyNDTUtd5dXfR6PdasWYPnnnsOjz/+OIYOHYpPP/0UABASEoINGzbg+eefx/z5813BTSKRQKvVYvz48bV6KWUyGVatWoXnn38eXbt2RUVFBWQyGdq3b4+uXbviueeew9KlSz2azdKXJIIvl4WnBhkMBuj1epSWljb4h7UlWK1WrFu3DmPGjIFCoWjVurQ1bFvxsG3Fw7YVB9tVPGxb8VitVmzcuBHJyclISUnxi14GfxUaGlrn7If1cTgcMBgM0Ol09c4OSZ7xl7Y1m83IyspCcnJyo392mpMN+NNCRERERETkxxjaiIiIiIiI/BhDGxERERGRB66+X41ILAxtREREREQeOHbsWGtXga4RDG1ERERERER+jKGNiIiIiIjIjzG0ERERERER+TGGNiIiIiKqE5fzJWoesf7MMLQRERERkRuHwwGgaqFtImq66j8zMpnMp+dlaCMiIiIiNw6HA0qlEqWlpextI2oiQRBQWloKlUoFhULh03PLfXo2IiIiImoTwsPDcenSJZw/fx56vR4KhQISiaS1qxXQHA4HLBYLzGYzpFL2nfhSa7atIAiwWq0oLS1FWVkZYmNjfX4NhjYiIiIiqiUkJARyuRwFBQXIzc1t7eq0CYIgoKKiAmq1mgHYx/yhbVUqFWJjY6HT6Xx+boY2IiIiIqqTTqeDTqeD1WqF3W5v7eoEPKvViu3bt2Pw4ME+Hz53rWvttpXJZKJeN2BCW0lJCRYuXIj169ejoKDANb46PDwcaWlpmD9/Pjp06NDg8XPnzsXatWtRUVHh2i6Xy9G5c2e8/PLLuOWWW9yO2b9/P+bMmYNjx47BZrMBqErxcrkcXbp0wYIFC3DzzTeL8GmJiIiI/IdCoWDI8AGZTAabzYagoCC2p4+19bYNiNBmt9sxfPhw3HXXXdi6dSvCw8Nd3Z6lpaX45JNPMHDgQBw+fBgajabOc6SnpyM0NBRHjx6FVqt1bXc4HNi9ezemTZuGXbt2ISYmBgBQVFSEu+++Gx988AFuu+02t7GxgiBg27ZtmDJlCvbv34927dqJ+OmJiIiIiOhaFhB3QK5YsQJJSUmYN28eIiIi3Map6vV6PPnkkxgzZgzef//9es+xYcMGLFy40C2wAYBUKsWgQYNwzz33YNWqVW7lb7/9dowaNarWzYwSiQRDhgzBbbfdhh07dvjoUxIREREREdUWEKHtyJEjGDp0aINlRowYgSNHjtS7f/bs2VCr1fXuj4+PR05Ojut9dnY2UlNTG7zm7bffXm/PHhERERERkS8ExPDI8+fPo3fv3g2WiYmJwblz5+rdn56e3uDxR48eRb9+/VzvLRYLQkNDGzxm8uTJDe4nIiIiIiLyVkCENrvd3uiq4nK53DVZSHOtXr0aGzZswIIFC9y2V1ZW4rnnnsOWLVtw7tw51+Qner0eN9xwA+bPn4/OnTvXe97KykpUVla63hsMBgBVs9tUr5beWqqv39r1aIvYtuJh24qHbSsOtqt42LbiYduKh20rnkBs2+bUNSBCm1iKi4uRnp6OHTt2YOXKlQgLC3Pb//bbb2PhwoWYM2cOQkJCXNuNRiPWrFmDkSNH4tChQ9Dr9XWe/5VXXsGLL75Ya/vGjRv9Zljlpk2bWrsKbRbbVjxsW/GwbcXBdhUP21Y8bFvxsG3FE0htazKZmlw2IEPbyZMnMXr0aGzYsKHBnq76CIKAr776CrNnz8bEiRNx4MCBOoPX8OHDcf/999faHhISgqlTp2Lnzp343//+hwcffLDO68yZMwezZs1yvTcYDIiPj8fIkSNFWXSvOaxWKzZt2oTbbrutTU6L2prYtuJh24qHbSsOtqt42LbiYduKh20rnkBs2+pReE0RkKGtS5cuyMzM9OjYnJwcTJ8+HYIgYP369ejRo0e9Zbt27drguXr27IkzZ87Uu1+lUkGlUtXa7k9rnfhTXdoatq142LbiYduKg+0qHrateNi24mHbiieQ2rY59QyI2SObcr+azWaDXN5wBt27dy8GDx6MKVOmYMuWLQ0GNgANzjYJABqNBuXl5Q2WISIiIiIi8kZA9LTFxcXh4sWLDZbJy8tDQkJCvftLSkowYcIELF++HIMGDWr0mlqtFmazucEyFRUVfnNvGhERERERtU0B0dPWq1cvbNmypcEyW7ZsQa9everdv3jxYkydOrVJgQ0AUlJSkJGR0WCZ48ePIyUlpUnnIyIiIiIi8kRAhLbx48fj/PnzmDdvHgoLC11T7wNVN/C9/fbbWLt2LWbMmFHvOfbv34+xY8c2+ZqjR4/Gjh078O2338Jut7vts9vt+O6777By5Urcfffdzf9AbcgveQW4YGz6zDdERERERNQ8ATE8UiaTYfPmzViwYAHS0tLcgltoaCjS0tKwc+dOaLVaAMDWrVvx0EMP4cCBA65ZGouKijBp0qQG13sbPnw4li1bBqDqfrW1a9dizpw5SE9Pd1tvTaFQoHfv3li9ejUiIiLE+th+b8/5y7j5k3VQSKW4t0cy0m/sjj5R1257EBERERGJISBCG1C1oPWiRYuwaNGiRssOGTIEp0+fdtu2Z8+eZl+zU6dO+Oabb5p93LXiYnkFAMDqcOCzI2fw2ZEzGJYUjfQbu2NMxzhIJZJWriERERERUeALiOGR5N9Sw0Jwb49kyCQS/JB9AXd+tQXd3luBpftPwGRteNZPIiIiIiJqGEMbeaz61sIOWjW+vDsNmTMn4i8394RepcCpIgMeXb8H8W99jbk/HuB9b0REREREHmJoI59J0Adj0fB+yHni//DmyAFIDg1GUUUlFuw6jMS3v8EDq3Zg/4WC1q4mEREREVFAYWgjnwtRKfDEgO7IeGwC/jdpKAbGtXfd99bv39/hlk/W4j9HM2G5alZOIiIiIiKqLWAmIiH/U73wQn3TjcikUkzomogJXROxNzcfb+07jv8ey8ZP5/Px0/l8RG9W45Hru+Dh67ugQ7C6papNRERERBRQ2NNGLWJAbDt8MX4wzj0xCfMH90FUsBoXyiowb/tBxL/1Ne5buR17c/Nbu5pERERERH6HoY281pyZ/aOCNZg3uA/O/mkSlo0fjJti28HqcOCLo5m48eO1uPGj7/DFkTOotHHoJBERERERwNBGXqhe4NwTSpkMU3um4Kffj8XeB+/Afb1SoZRJsTevAPet2oG4t/6LZ7b8gsxiow9rTEREREQUeLy6p+3ChQvYtm0bLly4AEEQEB0djcGDByM2NtZX9aNrQP+YSHw27la8PqIf/nXgFJYeOIlcowmLfjqKRT8dxaiUGDxyQxfc0Skecil/z0BERERE1xaPQttvv/2GWbNmYfPmzXXuHz58OP7xj3+gR48eXlWOAoOk3qlImqe9Vo25t16HZwf2wncZOVi6/yS+z8xzPWJDNHioTyf8sW9nxOq0PrkmEREREZG/a3a3xZo1azBgwABs3rwZgiDU+diyZQsGDBiAtWvXilFn8hOeD45smFwqxfguidgwdSROPzYBz9zSE5EaFXKNJry44xAS3/4Gd3/9A74/kwuHF0M0iYiIiIgCQbN62g4ePIjJkyfDYrEAAG6++WZMnjwZnTp1glQqxenTp/HNN99gx44dqKiowKRJk7Bnzx5cd911olSe2r7UcB1eHdYPLw7ui29PnMXSAyex/dwlrDx5DitPnkNKaAhmXN8ZD17XCe20Qa1dXSIiIiIin2tWaJsxYwYsFguUSiWWLl2K6dOn1yrzpz/9CcuWLcNDDz2EyspKzJgxAz///LOv6kt+pLqTqzmzR3pKJZfh3p4puLdnCo7ll+D9Ayfx6eHTyCwx4tkf9uOvW3/FpG6JeKhPZwxJioK0JSpFRERERNQCmjw8cvv27fjll18gkUgwf/78OgNbtWnTpmHBggUAgF9++QXbtm3zuqJE1bq3C8Wbo25E3lNT8O87BqJ/TCSsDgf+81sWhi/7Hh3f+R9e2nEIOaXlrV1VIiIiIiKvNTm0rVy5EgCQlJSE2bNnN1r+qaeeQseOHQEAK1as8Kx2RA3QKOR4sE8n7H3wDvzyhzvw8PWdoVMpkFVShhe2/YrEt7/G7V9uxNfHsrnuGxEREREFrCaHtgMHDkAikWDMmDGQNmHadalUirFjx0IQBOzfv9+rSpJ/EpxTkfjDQMQboiOxdMwtuPDUFHx2160YkhgFAcD3mXn4v2+3IvbN/+KpjT/j8KWi1q4qEREREVGzNHpP27BhwwAA+/btAwBs2rTJta0xFy5cAFAV+IYNGwaJRIItW7Z4WleiRmkUctzXOxX39U7F6SIDPj50Gp8cPo08owlv7j2ON/ceR7/oCDzYpxPu7ZGM0CBVa1eZiIiIiKhBjYa2rVu3QuKc1EEQBGRkZCAjI6NZFzGbzW7nIWoJHcN1WDD0evwtrQ++z8zDRwczsPpUDn65UIhfLhRi1qZ9mNg1EX/o0wlpiZy8hIiIiIj8U6OhLSEhARKJBLm5ubDb7QgPD0dwcHCTTl5WVobCwkLIZDLExsZ6XVnyL1dmj/TvsCOTSjGmYxzGdIxDfrkZXxw9g38fzMBv+SVYdjQTy45mIkGnxbSeKbivdyq6RYa2dpWJiIiIiFwaDW3Z2dkAgIEDB2LPnj144IEH8Prrrzfp5M8++ywWLVqE66+/Hnv27PGqokS+0E4bhPQbe+CpAd2xL68A/z6YgeXHsnDOUI5Xdh/BK7uPoF90BO7rlYp7eiSjvVbd2lUmIiIiomtckyci6dOnDwRBwNq1a5t88u+++w4SiQR9+/b1qHJEYpFIJBgQ2w7vj70FF5+agq8mpOGOTnGQSyX45UIhnty4FzH//C/uWL4Z/z2WhQqrrbWrTERERETXqCaHtrvuugsAcOrUKbz55puNln/vvfdw7NgxAMC4ceM8rB75M3+aPdIbaoUc/9c9GWumjEDuk/+HN0cOQL/oCNgFAWtPn8eUb7ch6p9f4aHvdmH72YtwVI8LJSIiIiJqAU0ObaNGjUKPHj0gCALmzJmDr776qt6y3377Lf785z9DIpGgR48euP32231SWSKxtdeq8cSA7tj3hztx7JHxmHNLL8TrtDBUWvHvgxlI+3wDUpZ8g7k/HsDJwtLWri4RERERXQMavaetpg8++ABpaWmorKzE1KlT8e6772Ly5Mno2LEjJBIJzpw5g//973/YunUrBEGAQqHAv/71L7HqTn7C3yci8VS3yFAsHHYDXh56PbafvYjPj2Ti6+PZOFtajgW7DmPBrsPoGxWOe7onY0r3ZCSGNm2CHiIiIiKi5mhWaLvpppvw5Zdf4ne/+x0qKyuxc+dO7Ny5s1Y5QRCgVCrx2Wef4aabbvJZZcm/XCujBKUSCYYkRWNIUjTevv1GrD51Dp8fycT3Z3Lx68Ui/HqxCM/8sB+3xLXHPT2SMb4jZ0olIiIiIt9pVmgDgIkTJyI1NRVPP/00fvzxxzrLDB48GG+88Qauv/56rytI5E80Cjnu6ZGCe3qkoMBkxv+On8XyY1nYdvYidp+/jN3nL+OpjRL01Mhw8dBpTO6RgnA1F/AmIiIiIs81O7QBVTNJbtmyBefPn8f27dtx4cIFCIKA6OhoDBo0CImJib6uJ/mh6o62tjk4snGRmiA8fEMXPHxDF+QZTfj6eDaW/5aFPbn5OFxuwyMbfsafNu7DqNQY3NM9GXd1TkCIStHa1SYiIiKiAONRaKsWFxeHqVOn+qouRAErJkSDJwd0x5MDuuNUfjFeXrkRh4QgHL5cjO8yzuO7jPNQy2W4o1M8pnRPwuiOcdAovPrjR0RERETXCH5rJPKx5NBgTGwfhH+PGYPTpeX46rcs/Oe3LJwqMuDr49n4+ng2NAo5RqfGYlK3RIztGM8eOCIiIiKqF0MbeUxwzkTSRieP9IlukaGYn9YX8wb3wcFLRfjPb1n45ng2skrK8L8TZ/G/E2ehkkkxMqUqwN3ZKR5hvAeOiIiIiGpgaCNqARKJBH2jItA3KgJ/H3YDDl4qwjfHz+Kb49k4VWTAmowcrMnIgVwqwYjkGEzsmojxXRIQqQlq7aoTERERUStjaCNqYTUD3MtD+uK3/BJ8czwb/ztxFkfzS7DhTC42nMnFI+t+QlpiFCZ1S8TdXRIQFaxp7aoTERERUStgaCOPXZk9kuMjPSWRSNCzfRh6tg/D/LS+OFlYiv8dP4tvTmTj14tF+CH7An7IvoDH1+/BLXHtMa5LAsZ1jkfnCH1rV52IiIiIWghDG5Ef6RKhx3ODeuO5Qb2RWWx03veWjZ9zC7Dr/GXsOn8Zs7f8gq4ReozrEo9xnRNwY2w7SHljIREREVGbxdBG5KdSwkLwl5t74i8390ROaTlWnTqHVafOYevZizhRWIoTu0vx991H0UEbhDs7xWNclwQMT4qGmksJEBEREbUp/HZHHnNOHsnZI1tAvF6Lmf27YWb/bigxV2L96VysOnUO68/k4lK5GR8ezMCHBzOgUcgxKiUG4zon4I5OcYjgRCZEREREAa9JoW3w4MHIzs72+mIpKSnYunWr1+chupaFBqlwb88U3NszBRa7HVuzL2LVqRysPnUO540mrDh5DitOnoNUIsGg+Pa4q3M8xnaMQ5cIPSRM2EREREQBp0mhbfr06cjJyXHbJggC/va3v2H06NEYMGBAnccJgoBDhw5h7dq1uO222zBx4kTva0x+hzGg9ShlMoxMjcXI1Fgsuf1GHLhYiFUnc7Dq1DkcvlyM7ecuYfu5S/jz5l+QEhqCsZ3iMKZjLIYkRiFIzo52IiIiokDQpG9tDz74YJ3b//a3v2Hs2LF47LHHGjz+iy++wMMPP4x//OMfza8h+S3BNX8k+QOJRIIboiNxQ3Qk/jakL7KKjVidkYO1Geex7dxFZJYY8fa+43h733FoFHIMT4rG2I5xGNMxDvF6bWtXn4iIiIjq0SK/av/d736HBQsW4LXXXsMHH3zQEpckuuYlh4XgyQHd8eSA7iizWLEl6wLWnj6PdafPI9doci3oDQC92odhbMc4jO0Yh5vi2kEulbZy7YmIiIioWouNjxo5ciS+++67lroctSDeJ+X/gpWKqjXeuiRAEAQcvlyMtRnnsfb0eezJzceRy8U4crkYr+4+grAgJUalxGJ0x1iMTInhot5ERERErazFQlt0dDQuXbrUUpejFiBwdGRAkkgkuK5DOK7rEI7nBvVGocmMDWdyse50LjZk5qKoohLLj2Vh+bEsAEDv9mEYlRqLUSkxGBTfASq5rJU/AREREdG1pcVCW3BwMCoqKlrqckTURBGaIEzrlYppvVJhczjwc24+1p3OxfeZudh/oRCHLxfj8OVivPbTUajlMgxJjMKo1KpeuK6ckZKIiIhIdF6FtpCQEBiNxiaVLS8vR0hIiDeXIz9TPREJv7K3HXKpFAPjO2BgfAcsGHo98svN2JyVh+8zc7ExMw8Xyiqw/kwu1p/JBQDE67QYlRKDkSmxGJEcjTC1qpU/AREREVHb41Vo69ixI86cOdOkspmZmUhJSfHmckTUwtppg1xrwgmCgKP5Jfj+TFUv3I5zl5BjKHct7C2VSDAgJhIjkqMxPCkaN8e151BKIiIiIh/wKrSNHDkSb7/9Nv7yl7+gU6dO9ZY7deoUli1bhj/96U/eXI6IWpFEIkGv9mHo1T4Mf765J0xWG7afu4jvz+RhY2YejhWUYE9uPvbk5uPlnYehlsswKL4DhjtDXN+ocMg4KyURERFRs3kV2ubOnYsVK1agV69eGDt2LBITExEcHOzaX1ZWhuzsbKxbtw5JSUmYO3eu1xUm/1E9EQnvabo2aRRy3J4ah9tT4wAAOaXl2JSVhy1ZF7AlOw+Xys3YlJWHTVl5AIDQICWGJEZheFI0hidH8344IiIioibyKrRptVocPnwY77zzDrZt24YffvgBpaWlrv16vR5JSUl45ZVX8Nhjj0Gl4v0uRG1VvF6LB/t0woN9OkEQBBwrKHEGuAvYevYiSswWrDx5DitPngMAxIRoMCwxytkTF8MFvomIiIjq4fXskUqlEunp6UhPT/dFfYioDZBIJOjRLgw92oXhiQHdYXM4sP9CoSvE7cq5hDyjCV8czcQXRzMBACmhIRiSGIW0xA5IS4hCYmhwI1chIiIiuja02JT/1PZUL9PGAW7UGLlUihtj2+HG2HZ4blBvmG027M7Jx5bsqqGU+/IKkVliRGaJER8dygAAJOmDkZbYoSrIJUQhiSGOiIiIrlEMbUTU4oLkcgxLjsaw5GgswPUwVFqwK+cytp69iG3nLuKXvEJkl5Yh+3AZPj1cNUNtvE6LwfHtEVpSic7FRnRtF8Z74oiIiOiawNBGXuP3ZvKWTqXE6I5xGN2xalITY6UVu89fxrazF7Ht3CXszctHjqEcy37LAgC886/ViA3RIC0hCoMS2mNQfAf0aBcKKX8YiYiIqA3yOrTZ7XZ8+OGH2LhxI7Kzs5Gfnw+1Wo2VK1eiW7duuPPOO9G+fXv86U9/Qp8+fXxQZfIXQvX0kUQ+FqJSYFRqLEalxgIAyi1W/HQ+Hz9k5WHloRM4bXYg12jCl79l4svfqu6J06sUuCWuPQbGV4W4/jGR0Cj4eykiIiIKfF59ozGbzbjppptw9OhRjB49GoMGDYJUKsVbb72FrKwsdOvWDWPGjMGSJUvw9ddfY+fOnejdu7ev6k5E1witUoERKTFIi2+HG8tyMfS2kdh/uQTbzl7ErvOXsSc3H6WVVqw/k4v1Z3IBAHKpBNdHRWBQfAcMjG+PgXHt0SFY3cqfhIiIiKj5vAptCxcuREZGBg4dOoQePXoAAHJzc/Hmm2+6yjz66KN44IEH0LdvX7zxxhv45JNPvKow+R8JpyKhFqZWyDE0KRpDk6IBADaHA4cvFWPX+cvYmXMJO3MuI89owt68AuzNK8AbP/8GAOgYFuIKcYPi26ML14ojIiKiAOBVaFu/fj2mTp3qCmz10Wg0GDduHL799ltvLkd+hoMjyV/IpVJcHx2B66Mj8Kf+3SAIAs6WlmFXzmXszLmMXecv4+jlYpwuNuJ0sRGfHD4NAIhQqzAwvj1ujm2Hm2LboV9MJIKVilb+NERERETuvAptGRkZmDRpUpPKRkVF4cKFC95cjoioSSQSCZJCQ5AUGoJpvVIBACXmSvx0Pt8Z5C5hb14BCisqsfpUDlafygEASCUS9GwXihudIe7G2Eh0i+QEJ0RERNS6vAptBoMBISEhTSqrUqlgNpu9uRz5KX6fpUAQGqRym6HSYrfj14tF2JVTdU/cz7n5OGcox+HLxTh8uRgf/HoKAKBTKdA/OhI3xbbDTXHtcGNMO7TTBrXmRyEiIqJrDKdWI49x8kgKZEqZzLXgd7U8owk/5+bj57x87Dmfj18uFMJQaXUuAn5lpEBKaAhujI109sa1Q58O4VDJZa3xMYiIiOga4FVoCwkJgdFobFLZsrKyJvfKERG1hpgQDe7umoi7uyYCqJrg5Lf8Evycm+/sjSvAsYISZJYYkVlixH+c68YpZVL06RCOftGR6BcdgX4xkegWqYdcKm3Nj0NERERthFehrWPHjsjIyGhS2bNnzyIlJcWby5GfEZxTkXB0JLVVcqkU13UIx3UdwjHj+i4Aqu6N25dXeCXI5eWjwFTpmqmymlouQ5+oGkEuOhJdInSQMcgRERFRM3kV2kaOHIk333wTTz31FHr27FlvubNnz2LZsmV47LHHvLkcEVGrCw1S4baUGNyWEgOgapH5zGIj9l0owC8XCrHf+TA6FwT/6Xy+61itQo7royJwQ3SEq0euU7iOE50QERFRg7wKbXPnzsWKFSvQt29fjBo1CikpKZA6f4v8+eefY+vWrcjJycGaNWsQGxuLuXPn+qTSRET+QiKRIDVch9RwHe7pUTWawCEIyCgy4Je8Auy/WIhf8gpx4GIhyq027Mi5hB05l1zHhygVuD4qHP1iqnrk+kZFoGNYCHvkiIiIyMWr0KbVanH48GG888472LZtG7Zv347S0lIkJiZiz549+O2335CcnIwXX3wRM2fOhEql8lW9yQ9UT0TCxYmJ3EklEnSJ0KNLhN615IDd4cDJQgP2XyjEL85euV8vVvXIbTt3CdvOXQlyGoUcvduHoW9UOPp0qHr0ah8GtYJzRxEREV2LvP4GoFQqkZ6ejvT0dF/Uh4ioTZJJpejeLhTd24Xivt5VQc7mcOB4QSn21xhaefhyMUxWG/Y475mrJpVI0DVCjz4dwq+EuahwRGq4/AAREVFbx1/bEhG1ErlUil7tw9CrfRimX9cJQFWPXEaRAQcvFeHXi0Wu53yTGccKSnCsoARf/pbpOkdciAZ9nCGub1QE+nQIR1JoMO+TIyIiakMY2shjnD2SyPdkUim6Roaia2So6x45QRBwoawCBy8V4eDFIvx6qRAHLxbhdLER540mnDea8F3Gedc5gpXyqjDYLswVCnu1D0O4mkPUiYiIApFXoW379u3o06cPdDpdo2VLS0tx8OBBpKWleXNJIqJrjkQiQUyIBjEhGozpGOfabqi04PClYrdeuaP5xSiz2GrNXAlUrUPXq12oW5DrFqlHkJy/vyMiIvJnXv1LPWLECCxZsgQzZsxotOwXX3yBZ599tsmLcVPg4EQkRK1Dp1JiUEIHDEro4NpmtTtwqqgURy4X48jlEhy5XIzDl4twtrQceUYT8owmfJ+Z5yovk0jQOUKHHpF6KIsrYMvIQd/odhxiSURE5Ee8Cm02mw02m61JZbOzsxEbG+vN5cjPCK1dASKqRSGToke7MPRoF4Z7elzZbqi04KgzxB3JL3aGumIUmy04XlCK4wWlAIAvv90OoGpNuW6RenSPrJo8pXtkKLpH6pEUGszlCIiIiFpYi4yJsVgs+Pbbb9G/f/+WuBwREV1Fp1Lilvj2uCW+vWubIAjIM5pwJL8YBy8U4vuDv6FYqcXxwlKUW2345UIhfrlQ6HYetVyGrtVhLjIU3dtVvU4JC4GcYY6IiEgUzQpt5eXl2Lt3LwThSh/LiRMn8MMPP9RZ3mQyIScnBx988AFyc3OxYcMG72pLfokDqIgCk0QiQaxOi1idFsMTOqBbYTbGjBkDSGU4U2zAsYJSHMsvcc1aeaKgFBU2O369WHUPXU1KmRRdIvToflXvXMfwEChlslb6hERERG1Ds0LbZ599hscff9z1XiKRYMmSJViyZEm9x2g0GgwcOBB79uxBp06dPK8p+R2B4yOJ2iSF7MoMlhO6Jrq22x0OZJWUVYW4/JKqUFdQguMFpTBZba4hlzVJJRIkhwY7FxvXoUu48zlCj6hgNe+JJSIiaoJmhbZHHnkEY8eOhSAIEAQBKSkpePHFF3H//ffXWV6r1SIyMtInFSUiotYlk0rRMVyHjuE63NU5wbXdIQg4V1pWq2fuWH4pjBYrzhQbcabYiHWn3c+nUynQOVznDHRXwlyncB00Cs5oSUREVK1Z/ypKJBIkJFz5h1omk6FDhw5ITExs4Chq6/iLcqJrm1QiQVJoCJJCQ9yWJBAEARfLKnCysBQnCw04WeR8LixFVkkZDJXWOu+bA4AEndYtyFW/jtNpOaslERFdc7z6VebGjRvRt29fX9WFAozA+SOJqAESiQTRIRpEh2gwJCnabV+lzY7TxQZXiHMFu8JSFJstOGcoxzlDOTZl5bkdp5bLkBoWUtXjFxaCjmE6dAyveo7TaTizJRERtUlehbahQ4f6qh5ERHQNUcllrqUJahIEAQWmyitBruhKqDtTbESFzY6j+SU4ml9S65xKmRTJocFuQa76OVEfDIWMgY6IiAKTT24a+PXXXxETE4MOHTrU2nf58mXk5uayR64Nqp6IRML5I4nIRyQSCdppg9BOG+S2aDhQtXB4dmkZzhQbcLrIiNM1njOLy2CxO5y9dYZa55VJJEgKDa7qpbsq1CWHBiNIznvoiIjIf3n1r1RhYSHGjh2Lffv24e9//zv+/Oc/1yqzbNkyPP300xgwYADWrVuH8PBwby5JRETXKIVMik7hOnQK1wGp7vvsDgdyDOU4U2y8EuiKjThdVPVsttldE6JsRF6tc8eEaJCsD0ZyaDCSQ0Ocz1WvOeySiIham1ehbcGCBcjIyMDWrVtx66231lkmPT0dN9xwA+6++268/PLLeOONN7y5JBERUS0yqdQ1GcrwZPd9DkHABaPJLcSdKa4KdhlFBpRZbMgzmpBnNGHX+cu1zi2XSpCgC3YLcjVft9cGcekCIiISlVehbc2aNRg9enS9ga3a4MGDMXr0aKxevZqhrQ2pnoaE31WIyJ9JaywinpYY5bav+h66rBIjskrKajxXvT5bWg6rw4HMEiMyS4x1nl+jkCNJ7x7qkkKDkajXIlqjgsBFLYmIyEtehba8vDx069atSWW7du2KFStWeHytkpISLFy4EOvXr0dBQYHrH8Hw8HCkpaVh/vz5dd5TV/P4uXPnYu3ataioqHBtl8vl6Ny5M15++WXccsstru0ZGRno3bs39Hp9veeUSCT47rvvcMMNN3j8uYiIqPXUvIduQGy7WvvtDgfyjBX1hrpcowkmq821Nl1dlBIgKW8NEvVVQS6h+lmnRaI+GLE6DZQymciflIiIAplXoa2iogJhYWGNFwQQFhYGs9ns0XXsdjuGDx+Ou+66C1u3bkV4eLhrKEppaSk++eQTDBw4EIcPH4ZGo6nzHOnp6QgNDcXRo0eh1Wpd2x0OB3bv3o1p06Zh165diImJAQCUl5fjxhtvxNatWz2q87WEHW1E1FbJpFLE67WI12sxuI4lSSttdpwzlCOr2BnmSquez5aW4VxpOS6UVcAiAKeKDDhVVHuCFKDq79DoEI1bkEvQa5Ggqw55WoQGqcT9oERE5NcCYrqsFStWICkpCfPmzau1T6/X48knn8SZM2fw/vvvIz09vc5zbNiwAZmZmVCr1W7bpVIpBg0ahHvuuQerVq3Co48+KspnaIs45IeIrnUquezK5Ch1KKsw44s165B6fX/klVdWhTlDuSvUnTOUw2yzu+6p+wn5dZ5Hp1IgXqdFbIgGcSFaxOmqnmN1GsSFaBCn0yIsSMl764iI2iivQptOp4PRWPcY/6uVlZUhJCTEo+scOXKk0TXhRowYgZUrV9a7f/bs2bUCW03x8fHIycnxqH5ERER1UclliFbJMCQxCgqFotZ+QRCQbzLjXGm5K9Bd/TrfZIah0orf8kvwWx3r01VTy2VVoU6ndQW5qvdXgl57rRpSBjsiooDjVWhLTU1FZmZmk8pmZmYiNTW18YJ1OH/+PHr37t1gmZiYGJw7d67e/fX1wFU7evQo+vXr51H9rnVcp42IyDMSiQTttWq016rRLyayzjImqw3nSsuQazThvMGE88ZynDeYqt47X+ebzKiw2atmyCyu/5epcqkEMcHOYKfTuPXcxYZoEB2sQXSwGmpFQAzEISK6Znj1t/Jtt92Gd955B7Nnz24wkGVkZGDZsmV44oknPLqO3W6HrJGbtOVyOWw2m0fnX716NTZs2IAFCxa4bc/Pz0d6ejq2bNmCgoICOBwOAFWTn9xyyy2YP38+4uLi6j1vZWUlKisrXe8Nhqr7GaxWK6xWq0d19ZXq63tTD5vdDgBwCI5W/zz+xBdtS3Vj24qHbSsOX7SrAkCqXotUvbbeMmabHXllJuQZK3DeWBXorn5cKDfD5hCqevAM5Q1eU69SIEqrRkyIGlFaNaKDq56jgtWICa56jtaqEaKq3XvYUvgzKx62rXjYtuIJxLZtTl0lghc3JpWVleGGG27A2bNncccddyAhIQHBwcFu+8+ePYu1a9ciOTkZ+/fvr3eikIZMnz4d48ePx/jx4+stc/DgQTz11FPNmjikuLgY6enp2LFjB1asWOHWm5eXl4fbb78dDzzwAKZMmYKoqCjI5VUZt7S0FF988QWWLl2KAwcO1DnkBQDmz5+PF198sdb2L7/80qN28DdrCsz494UK3KpX4OmE4MYPICKiVmMXBJTYBBRaHSiwOlBY41FgFVBkc6DY6oClGd8KgqRAmFyKcIUUYXIJwuRShDlfhyukCJdLEaaQQCuV8H47IqKrmEwmTJ06FaWlpdDp6r43uppXPW3BwcE4cuQIlixZgu3bt2PLli2u3iSg6p635ORkvPrqq3jsscegVCq9uZzLyZMnMXr0aGzYsAGdO3du9vGCIOCrr77C7NmzMXHiRBw4cKDW1P4xMTE4fPhwncfr9Xo8/vjj2LBhA7Zv347hw4fXWW7OnDmYNWuW673BYEB8fDxGjhzZ6P8YsVmtVmzatAm33XZbvaGzMWd+OQFc2I+YmBiMGTPIxzUMXL5oW6ob21Y8bFtxBFq7CoIAg8WKC2UVrsfFsgpcLK9AnvP1hfKqZ6PFBrMDuGBx4ILF0eB5g+QyRGmD0F4ThPZaNTo4X3fQBqG9a3vV+1BV0yZUCbS2DSRsW/GwbcUTiG1bMzc1xutB60qlErNmzXILJ2Lr0qVLk++lu1pOTg6mT58OQRCwfv169OjRw+N6dOvWDWfOnKk3tKlUKqhUtadpVigUfvPD5E1dpFKp69lfPo8/8af/z20N21Y8bFtxBFK7RiqViAzWolcj5cqqw53R5Ax4JuS5va/aVmy2wGyzI7u0HNmlDQ/LBAClTFoV6ILV6KBVO18HoYNW7XxUvQ5TymEXhIBq20DDthUP21Y8gdS2zalnQNxp3JT71Ww2m2v4Yn327t2LKVOmYM6cOfjjH//o9VANjUYDk8nk1TmIiIgCUbBSgU7hinqXO6hWYbVV9dCVVeCyqQKXysy4VF6BS+XVz1WvL5dXoLTSCovdgfNGE84bG//3VQqgXdb/XIGunSYI7bQqRKqDnK+DEKlWOZ+DEK5WQub8hSMRUSAJiNAWFxeHixcvNlgmLy8PCQkJ9e4vKSnBhAkTsHz5cgwa1PhQvjVr1kCj0dTbiwZULS4eHR3d6LnaqurbHjh7JBER1UetkCM5LATJYY0v+2O22XC53Hwl0JVV4LKp+rV72CusqIQDcL43Ayhu9PwSABGaOkKdJgiRmqrnqtdBrm2cSZOI/EFA/E3Uq1cvfPHFF5g5c2a9ZbZs2YJeveofzLF48WJMnTq1SYENAC5fvoxjx441GNpOnTqFESNGNOl8RERE1LAguRwJ+mAk6Buf3KqishLL16xDz5tuQVGlDZfKK1BgqkS+yYx8kxkFJjPyne8LTGYUmy0QABSYKlFgqsSJwtIm1UmrkLuFupqBLkJd9Qiv8RyuVkHDoEdEPubV3yr3338/srOzm1w+KSkJn332WbOvM378eLz66quYN28ennjiCYSHh7uGNhoMBnz66adYu3YtDh06VO859u/fj2eeeabJ1xwxYgRefPFF3HXXXRg8eLDbUEqr1Yr//Oc/OHnyJAYPHtzsz0NERETekUurZq3s0yG8SfeFWO0OFFaYXcGudsCrCnkFrm2VsDocKLfaUF5ahuzSsibXLUguuxLkgpSI0AQ5n1UID3IPeTWfVfKGlzciomuXV6EtJSWlwfXTbDYbdu3ahezsbNx1111ITk726DoymQybN2/GggULkJaWhsLCQlSvVBAaGoq0tDTs3LkTWm3VGjZbt27FQw89hAMHDrhmaSwqKsKkSZMarO/w4cOxbNkyAEBiYiKWLVuGefPm4eTJk7A71yQDgKCgINx8881Yu3ZtnRONXCuqF4vgLM5EROTvFDIpooI1iApu2pI7giDAUGmts9euOtQVVlSiqKISReYrr20OoWrdPKMJeU24L68mjULuDHFKhAepXCGvOtiFBikRFqR0Pl95r1MpeK8eURvnVWibP39+k8rNnj0b69evx3/+8x+Pr6XX67Fo0SIsWrSo0bJDhgzB6dOn3bbt2bOn2de89dZb8cMPPzT7OCIiIgpsEokE+iAl9EFKdGxkspVqgiDAaLGiqKI6xFlqvL7q2VyJQlPVc1GFBQ5BgMlqg8lqQ04ji5/XqisAnUpRK8zV/b729iC5jOvoEfm5Fhl0/eqrr+LLL7/EP//5T8yZM6clLkktiH/NExERVQU9nUoJnUqJpNDGJ16p5hAEGCotKKqw1Ap4NV+XVFpQXGGpejZbUGK2wGS1QQBQWmlFaaUVZ5uwrMLVlDKpW5jTK+UwFZVh7fc/I1QdBL1KAb2qqkdPr1JCr1JA53zWO3v6lA2MZCIi77VIaJNKpbjzzjvxzTffMLS1IYJr/kgiIiLylFQiQWiQCqFBKqQ0YZbNmix2O0rMV0JcsbnyqvdVz3XtKzFbYBcEWOyOGrNwXrHj4Ol6rlpbkFzmHuZqhrwgBXTKqueGwp9WIWePH1E9Wmx6o7i4OK+GRxIRERGRO6VMhvZaNdpr1c0+VhAElFlstcJcQbkJP/16CLGpnVBmtcNQaXH25FlQWmmBwdmrV2q2oNxatY6u2WaH2WavFfyaQyqRQKdSQKdUIESlQIiy6hGslFe9rrGt6rUcwcra26qOUXBiF2pTWiy06fV6GI3GlroctSD+VoyIiCjwSCSSqqCjUiBBf2W71WpFZM5JjBnYq9GZOW0OB4zOQOcKc67XFpSaqwKfoVbos6DUbIXBUhX+7IIAhyC4egB9QSGVugW56tBXFfTkV4W9ugNisFIOrUIBrVIONe/9o1bUYqHNYDAgLCyspS5HLUDg6EgiIqJrmlwqRZhahTC157NpC85JWAw1Ap/R4nxU2lyvy+rYZqy0oszqvs1sq5rx2+pwuO4L9AUJAK1SDq2iKsgFK+U13tezTalAsOLKNpVUggyTDccLShGqCXKWkUMlYyCkhrVYaDt58iRSU1Nb6nJEREREFAAkEgm0SgW0SgWiQ5q2JENDrHaHK+CVWWyucOcKetXbr9pW9d52JRw6y1WHQAFAmcWGMosNgOfDQAHgL2e+c3svk0iuCntyBDt7+Kq3aWo81HKZ87UMarn8qtdV+9QKOTTy6tcyBsMA1yKhbfv27fjPf/6Dl19+uSUuRy2Mf/yJiIjIXyhk3vf+1WR3OGCy2lFmsVYttm61odxS9eza5nzf2LaySisKjUY4ZAqUWW2w2B1V13CuC2iotPqkznWRAK4Ap3EGvQZfO0Ofujosul5XlVPXCIpBchmC5DKonc8quQxSBkSf8iq0vfDCC8jOzq53f1lZGc6dO4cDBw4gLS0Ns2bN8uZy5Gc4OpKIiIjaOplUihBV1f1x3rJarVi3bh3GjBkDhUIBm8NRO9zVEwBNVhsqbHa358Zel1tssDvvZxEA13kB3wwZbYhSJnWFuCuhTn7V+6btq/u9e1iUwYFKR9W9kW2RV6Ht3LlzyMnJqXe/TqfDwIED8dxzz2HChAneXIqIiIiIqE2RS6WuRdzFYrU7UGGzOcOc3fm6OvzVeG21w+Qs19TX5Vaba+bQCpvdLTBZ7A5Y7A6Uith7WKffvoRKJnULeEFyGSQ1xoYpZVIcmjGuZevlJa9C2yeffOKjalAgY+83ERERkX9SyKRQyKoWfRebzeFAhdXuCnJmux0VNYJddbi78rr+fXW/r7v81YGx0u5AZQOBUSWTit4WvtZiE5FQ2yO00e5nIiIiImo+uQ+HkjZXRWUlVq1dj8HDh8MOaa3AWFMgTsjiVWh79tlncd9996FHjx6+qg8REREREVGzyKVSqGUStNMENbq+YCDyKrS99957CA4OZmi7RlX3s0k4fyQRERERkWi8GtCZlJSEzMxMX9WFiIiIiIiIruJVaJswYQJ+/PFHWK0tPCsMERERERHRNcKr4ZEzZ87Exx9/jMWLF+PZZ5/1VZ0oQAgOB4ZfPIKbbcdhsZ1o7ep4QJyJVOx2O2KOHIHNcgGCTCbKNQAAgTwRjId1t9vtiDl6FDZzrrht25A22u52ux2xvx2FzZTTem3bBrFdxcO2FQ/bVjxsW/E02LaCA7BaIFSaAWslIJFA9fC81qmohySCl1MAnjx5EtOmTcN1112HGTNmoEePHggODvZV/doUg8EAvV6P0tJS6HS6Vq3L1Ys7euLjzz/HpDfu93HNiIiIiIhEpApCyJ6K1q5Fs7KBVz1tN910EzIzM2G1WnHgwIFG121LTU3FqVOnvLkk+RGNsRAAYAoKhu7GYa1cmxbUyDSxDocDly5dQocOHSCVBt46IG78bEpc0drWzz6nuOr+rA7BgYsXLyIqKgpSSYD/3PoRtqt42LbiYduKh20rngbbViIBlCpAqYJEoQJU6tappBe8Cm2PPPIIzp492+TyiYmJ3lyO/Ex1F+3Fdsno8M9VrVoXf2K1WnFk3TrEe9GLSXVj24rHarXi6Lp1SGDb+hTbVTxsW/GwbcXDthVPW29br0Lb9OnTfVQNCkQSke4JIyIiIiKiK9gvS167pkaWERERERG1MIY28lj1FDbsbyMiIiIiEo9XoW379u0wGAxNKltaWopt27Z5cznyM5JAnvqciIiIiChAeHVP24gRI7BkyRLMmDGj0bJffPEFnn32WRiNRm8uSURERERE1zi7IKDS4UCl87ncYsEFuRxHTCbYZbKqfTX2VzocMDtfCwAeiYpq7Y/QLF6FNpvNBpvN1qSy2dnZiI2N9eZy5GeE6oGRvKmNiIiI6JokCAIsgoAKhwNmh8P1bHaGpOr3Vwenq19X1vHaXHP7VfutdY34iooCTp9utM4qieTaCm1NZbFY8O2336J///4tcTkiIiIiomtWdZCqGaIqnGHH7f3V+6vfO4+tFcLqCGVmZ89Va5IDUEqlkFqtCAkKgkoqhUoqRZBE4nqtkkgQVON1oGlWaCsvL8fevXsh1Ei2J06cwA8//FBneZPJhJycHHzwwQfIzc3Fhg0bvKst+SWhnsV6iYiIiKhuNkGAyeFAhd1e9exwXHm2213v69rmer7q2OpQVdFKQUoOIEgqRZBUCrXz2e1RI0QprwpRKmeZ6tfVIUtZ337n+ZRSKeQSCaxWK9atW4cxXKcN+Oyzz/D444+73kskEixZsgRLliyp9xiNRoOBAwdiz5496NSpk+c1Jf/jaO3fqxARERGJRxAEVAoCyu12lDsctZ6bGqaqy5kcDhhiYjD7yJG6h/eJQAZA7Qw5VwcptTP41Be01FcFLnV9+5wPRQD2YAWKZoW2Rx55BGPHjoUgCBAEASkpKXjxxRdx//3311leq9UiMjLSJxUlIiIiImqIwzn8r9zhQJkzJLkFrXrCl8luR5nzffUxZc7tdl9XUiq9sm4SqqZy1zhDkEYmq3qufi+VQi2Tub+/qtzV26of1SGNQaptaFZok0gkSEhIcL2XyWTo0KEDEhMTfV4x8n+uv274lwERERF5SHAOEyyz22F0hiVj9Wvnw/X6qsBVfVz1a5OIwwLVUim0Uim0Mhm0DYSs+rZppFIoHA78snMnRg0ZAp1KBY1zmKCE36WoEV5NRLJx40b07dvXV3WhACNp9dtOiYiIqLUIggCzILhClbGOgHV18HIr4wxcZXY7HD6umwRwC1g1nzVSKYJlMvfXzmAV7HzWOrdrahwj80GwslqtyLHZEKNUQiFvkfkAqY3w6qdl6NChDe632WzIz89Hhw4dIJV6tY43EREREfmQQxBQ7nDAYLfDYLNVPdvtKK6sxJ7gYGReuoQyQai1v2YQa9rCT00jAxAskyFYJkOI8zlYKnW9DnEGrerwVV/Aqu4FY+8VtSVeR/xPP/0U//nPfzB58mT84Q9/AADk5eXhkUcewfr16+FwOCCTyTBlyhQsWbIEer3e60qTnxC4ThsREVFrqR5WWB2mSm02GJ2vXY8aYauu8FVvD1doKHDpUpPqIQGuBK2rQtbVAezq7TX3MWgR1c+r0PbGG2/gL3/5C8aOHYtevXq5tj/++OPYv38/li5divj4eJw6dQpz586FXq9vcKZJIiIiomuNTRBQarOh1G5Hic2GEmcAc3t91bbq8OWLSTKUEgl0Mhl0Mhn0cjmCpVKUXbqELnFxCFUqXftcD2eZ6uClYdgiEp1XoW3p0qW4++678c0337i2ORwOrF+/Hq+//rqr523kyJE4e/Ysvv76a4a2Nol/URMREVU6e72KneGqOoS5wlg928oc3t3RJQegl8sRUiNY6eVy6JyhqjpoufZd9V511S0sVqsV644fx5ibbmqT610RBSKvQlt2djYefvhht22XL1+GxWKpNaNkfHw8cnNzvbkc+RmhhdYXISIiamkWhwMldjuKbDYUOx9Xvy6yWl2vS52zF3pDJ5Mh1Bm4QuVy6GUyhMrlbttCnYFLXyN8BXH2QaI2z6vQZrPZoFar3bbZ7VUd9TKZzG27TCaDw8u/zIiIiIiayy4IKHX2gBU6g1ZdIazma097v6SAW+ByBa9GtulkMp/MTkhEbRPnGiWvCfw3hoiIWpBDEFBks+GiXI6fy8pQKggocAayQput6lEjnJXY7R4tUiNDVQALl8sR5nw09Lr6fjApwxcR+RhDG3mOwyOJiMhHKhwOFFSHLqu1zhBWUCOM2QEgKgrIzGzyNfQyWYPBK+Kq7SEyGQMYEfkFr0Pb1UMeq99fPbaa9z8RERFdWyocDuRbra7HZasVBVYr8m02t4BWaLN5dD+Yxm5HlEaDSIUCkQoFIpzBK0KhQPhVISxULoecAYyIApRXoS0hIQHnz59325aXlweJRILY2Fi37WfOnEFERIQ3lyM/I3EFcf4jSER0rbA7hyYW1Ahi+TYb8p2B7HKNkNbc+8JUEgkiFApEOoNXzRAWedVzsCBg0/r1GDNmDGc4JKI2z6vQNmbMGCxduhQxMTHo1KkTSkpK8PrrryMpKQndunVzlTt8+DBWrVqFm266yesKk/9g3ykRUdthcThw2WrFJeejvh6yQqu1WWuDqSQStFco0N7ZG9au+lEzmDmftc1Y78tqtXr2QYmIApBXoe3VV1+F2WzG7NmzYbFYAAADBgzAN9984/qt1z/+8Q88/fTTSExMxGuvveZ9jcnvCBxuQkTktwRnz1h1GLtkseCiM4hdtFhwyfm60GZr8jklAMLlcrRzhrF2zh6wmu+rH8FceJmIyGtehTadToePPvoI//73v3H58mWEhoZCpVK5lZk6dSr69++PAQMGQKlUelVZ8jdVfW38p5iIqHVUOByu4HV1IKt+nW+1wtLE+8qVzl6xDleFr8ia7509Y7w/jIio5fhk9kiJRIIOHTrUua9Dhw717qMAx/GRRESiqXA4cMFiQZ7FggvOR57FggvOHrKLViuM9qYPVIyQy9FBoUAHpRJRzhAWpVRWbXNuD5PJ2CtGROSHOOU/eY3DI4mImscqCLhUI4RdHc4uWCwobmIg00il6OAMYNW9ZDXDWQdnD5lSKhX5UxERkVgY2sgLzZ+emYiorXM4F3q+YLEgp6IC24KDcSgvD5dsNldAu2y1NmmwglYqRbRSiRilEtFKJaIViqrn6kCmVPKeMSKia4DPQ9vV67bVJOVv+YiIKMA5BAGXrVact1hwvrISuRaL6/V5Zy+Z2z1koaFAQUGt8yglEkQpFFcCWY1HjFKJGIUCIRyuSERE8EFoKygowN/+9jds3boVWVlZMJlM9ZZNTk7G6dOnvb0k+QvXMm38QkFEbYe9RijLdQax6kCW6xzGaG1kYg8pUHXPmEIBFBTg+oQExAYFufWaRcjlkPLvTyIiagKvQlt+fj569OgBAHjggQeQmJiIkJCQesvHxMR4cznyM02cjIyIyK8IzuGLOZWVOFdZiZyaoayyEhes1kZDmQxAtFKJOKUSsSoV4pRKxDmfY5VKdFAqoZBIYLVase7UKYy56SYuAE1ERB7zKrS98MILEAQBJ06cQEREhK/qRAGHvykmIv9icThw3mJBTmUlzlZWugLaOec2UwND+YGqfxxjnIEs1hnOXKFMpUIHTnlPREQtyKvQtmvXLtx7770MbNcoCef8J6JWIggCSu1290Dm7DU7W1mJCxZLg39DSVDVU5bgDGPxNXrJ4pyhTMZQRkREfsKr0HbmzBk88MADvqoLBRhGNiISkyAIKLTZkFVZiWyzGdnO5+pg1tgaZWqpFAkqFRKUSiQ4g1mC8xGrVELFybGIiChAeBXazGYzlEqlr+pCAYrrtBGRN0ptNmRXViLLbHYFtOrnskaGMbZXKFzBLF6lQmKNcBYpl3PmRSIiahO8Cm2RkZHIz8/3VV0owEicN+rzKxERNabcbnf1lNXsOcsymxtcRFqCqnvLklUqJAUFIVGlQpIzmMWrVFCzt4yIiK4BXoW23r17IyMjw1d1oQAjcIAkEdVgFwSct1hwxmxGptmMM2Yzspzh7LLV2uCxHRQKJKlUSA4KQpIzoCU7e8w4jJGIiK51XoW2Bx54AI888giMRmODU/1T2yRxZjZGN6JrS4XDgSyzGaedwSzT+TrLbHZfVPoqEXK5K5DVDGiJKhW0MlkLfgIiIqLA4lVo+93vfofvv/8e48ePx8cff4yEhARf1YsCiIQDJInaHEEQUGSz4YwzmJ2u0XuW28DMjEqJBClBQUgNCkKK85GkUiFZpYJO7tU/OURERNcsr/4FTUtLw+nTp3HhwgUkJycjKioKsgZ+W5qSkoKtW7d6c0nyI9Vf2gRmNqKA5RAE5FksOF5Whh+Dg7ErJwdZziGOJQ3caxYmkyFVrUaqM6BVP2KVSk6VT0RE5GNehbbp06fj3LlzTS4fHx/vzeXI3zQwDIqI/IsgCLhkteJURQVOmc04VVGBjIoKZJjNVxaaDg0Fiotdx0gAxCmVSAkKQscavWcd1WqEs9eMiIioxXj1r+7vf/97X9WDAhJDG5G/EQQBBTYbMpzhLKOiwhXU6lvXTCGRIFmlgraoCAOTktBJq0XHoCAkBQVxdkYiIiI/wF+Vkvc4FIqoVRjtdpyoqMBJZ6/ZKWfPWZHNVmd5GYCkoCB0DgpCJ7UandVqdA4KQmJQEGCzYd26dRhz001QKBQt+0GIiIioQQxt5IXqnjaGNiIxOQQBZysrcaKiouphMuF4RQXOWyx1lpcASFCp3MJZJ+fQxvqmz294Qn4iIiJqTQxt5DmOjiTyOYPdjhMmk6sH7bjzuaL6vrOrRCsU6KxWo0uNcNZRreawRiIiojbE69BWWVmJJUuWYNu2bcjKykJpaalrn16vR3JyMtLS0jBz5kyoVCpvL0dE1CZU954dd/acnXAGtNx6es9UEgk6q9Xo6nx002jQRa1GGCcEISIiavO8+tfeaDTihhtuwNmzZ3HHHXdg1KhRbotsG41GZGVl4bnnnsP777+P/fv3cxHutoijI4kaZBMEnDab8ZvJ5HocN5lQ1kDvWVeNBt1qBLRElQpy3j9KRER0TfIqtL388svIy8vD4cOH0aVLl3rLnTx5Etdffz1efvll/P3vf/fmkuRHXOu0MbURuVQ6HDhRUeEW0E5WVKCyjiUyqnvPujmDWXUvmp69Z0RERFSDV98MNm3ahHvvvbfBwAYAXbp0wbRp07Bp0yaGtjZEwnXa6BpXZrfjmDOYHauowFGTCacrKlDXxPrBUim6azToUeORGhTE3jMiIiJqlFeh7cyZM5gyZUqTyqampuK///2vN5cjP8WvnHQtMNnt+K2iAofLy3G4vBxHTCZkV1bWWTZcLr8SztRq9NBokKBSQcqARkRERB7w+p62pt6jFhwcDKPR6M3lyM8IzgGSAr+IUhtjcThwsqICh02mqpBmMiGjogJ13YEWrVC49Z710GgQpVBAwj8XRERE5CO8cYI8xuGR1BbYBQGZZvOVgFZejuMVFbDU8fPdXqFAb40GvbVa9HYGtAguRE1EREQi8yq0hYSENLn3rKysjDNHtlHsT6BAIQgC8iwWHHT2nh0uL8dRkwnldcziqJfJ0Ks6oDlDWpRS2Qq1JiIiomudV6EtNTUVp0+fblLZM2fOICUlxZvLkZ9xzR7JYWDkp8wOB46YTPi1rAwHystxsLwcl63WWuXUUil6aDRuvWiJKhWHOBIREZFf8Cq0jRgxAu+88w7+/Oc/Nzrl/7Jly/D44497cznyM/w6S/5EEATkWCz4tbwcv5aV4dfychw3mWC7qpwcQNeaAU2rRUfO4khERER+zKvQ9te//hUrV65E7969MWbMGCQlJbkNgSwrK0N2djbWrVuH+Ph4/PWvf/W6wuSP+GWXWp7JbscRk6mqB83Zk1ZouzqiAe3kcvQNDkZfrRZ9tVr00mqhlkpbocZEREREnvH6nrYjR45gyZIl2L59O3788UeUlpa67U9KSsJLL72EP/3pTwgKCvK6wuRHHJyIhFpG9b1oP5WWYlVoKD44dQonzeZa66EpJBJ0V6tdIe16rRYxSiWHORIREVFA83r2SJVKhaeffhpPP/20L+pDRASHIOCU2Yx9RiN+KSvDL2VluFB9L1pwMGA2AwCiFIqqHjRnSOup0UDFXjQiIiJqYzjlP3msep02sBeDvFTpnDBknzOg7S8rg8Hu3o8mB9BdrUbY5cu4u0cP9NPrEcPZHImIiOgawNBGHpOAwyPJMwabDQfKy10h7VB5ea110TRSKfpqtegfHIx+wcHoo9VC4XBgXUYGRoeGQsH10YiIiOga4ZPQ9uuvvyImJgYdOnSote/y5cvIzc1F3759fXEpIgpA+VYrfjYaXSHtREVFrcgfIZejX3CwK6R112hqzehorWM9NSIiIqK2zqvQVlhYiLFjx2Lfvn34+9//jj//+c+1yixbtgxPP/00BgwYgHXr1iE8PNybS5IfcXWMcHgkXaU6pO0xGvFzWRnOOO9BqylRpXILaclcF42IiIioTl6FtgULFiAjIwNbt27FrbfeWmeZ9PR03HDDDbj77rvx8ssv44033vDmkkTkhxoLaRIA3dRqDAgJQT9nSGvP4Y1ERERETeJVaFuzZg1Gjx5db2CrNnjwYIwePRqrV6/2KrSVlJRg4cKFWL9+PQoKCiA4u3rCw8ORlpaG+fPn1zlEs+bxc+fOxdq1a1FRUeHaLpfL0blzZ7z88su45ZZbGq2HIAh46qmnEB8fX2fv4rWGd7Zde/KtVuw1GrGnrAw/G404XU9IuzEkBDeHhKB/cDD0ct5CS0REROQJr75F5eXloVu3bk0q27VrV6xYscLja9ntdgwfPhx33XUXtm7divDwcNdQqtLSUnzyyScYOHAgDh8+DI1GU+c50tPTERoaiqNHj0Kr1bq2OxwO7N69G9OmTcOuXbsQExPTYF0+/PBDLF26FHPmzPH487QJAu8vulYY7Hb8bDRil8GA3Y2EtJucIS2UIY2IiIjIJ7z6VlVRUYGwsLAmlQ0LC4O5jvtammrFihVISkrCvHnzau3T6/V48skncebMGbz//vtIT0+v8xwbNmxAZmYm1Gq123apVIpBgwbhnnvuwapVq/Doo4/WW4+G7t8jaisqHQ78Wl7uCmmHystxdUSvGdIGMKQRERERiSZgvmUdOXIEQ4cObbDMiBEjsHLlynr3z549u1Zgqyk+Ph45OTn17i8oKMDUqVPx+eef4+eff0ZJSUlj1b42SLiYcaBzCAKOV1S4QtpeoxHmq6bgT1apcItOh1ucQS2MIY2IiIioRXj1rUun08FoNDapbFlZGUJCQjy+1vnz59G7d+8Gy8TExODcuXP17q+vB67a0aNH0a9fvzr32e123HvvvXjiiSdw88034+eff2680m2dwLvZAtm5ykrsMhiwy2jETwYDiq9azDpSLsdAZ0i7RadDLBeyJiIiImoVXoW21NRUZGZmNqlsZmYmUlNTPb6W3W6HTCZrsIxcLofNZvPo/KtXr8aGDRuwYMGCOve/8MILiIyMxMyZM5t8zsrKSlRWVrreGwwGAIDVaoXVavWonr5SfX1v6lE9EYwgCK3+efyJL9pWDOV2O/aWl2OH0YidRiPOWixu+7VSKQZotbg5JAQ3Bwej01VT8PvD5/HXtm0L2LbiYLuKh20rHrateNi24gnEtm1OXb0KbbfddhveeecdzJ49u8FAlpGRgWXLluGJJ57w5nKiKC4uRnp6Onbs2IGVK1fWeY/eqlWrsGrVKuzZs6dZ60i98sorePHFF2tt37hxY72TpbS0TZs2eXxsYWERAKC8vBzr1q3zVZXaDG/a1hcEAHkKBU6oVDgRFIQslQr2Gj+/UkFAksWCzmYzOldWIsFiQfWvRU47H/6qtdu2LWPbioPtKh62rXjYtuJh24onkNrWZDI1uaxXoW3u3LlYsWIFevTogTvuuAMJCQkIDg527S8rK8PZs2exdu1aJCcnY+7cud5czs3JkycxevRobNiwAZ07d2728YIg4KuvvsLs2bMxceJEHDhwAHq9vla5jIwMPP7449i0aZPbZ2uKOXPmYNasWa73BoMB8fHxGDlyJHQ6XbPr7EtWqxWbNm3CbbfdBoWH62V9tX8HAEAbrMWgMWN8Wb2A5ou29VSRzYbdRiN2lJVhl9GI/Kt6nuOUStwaEoJbg4NxY3AwghvpvfY3rdm2bR3bVhxsV/GwbcXDthUP21Y8gdi21aPwmsKr0BYcHIwjR45gyZIl2L59O7Zs2eJ2cZ1Oh+TkZLz66qt47LHHoPThPTFdunRp8tDMq+Xk5GD69OkQBAHr169Hjx496ixXXl6OiRMnYvHixU1e2qAmlUoFlUpVa7tCofCbHyZv6iKRVvXaSCRSv/k8/qQl/j/bBAEHy8uxvbQU2wwGHDWZ3NbNU0uluDkkBIN1Otyq0yHpqiGPgcqf/gy1NWxbcbBdxcO2FQ/bVjxsW/EEUts2p55eT/+mVCoxa9Ystx4lMTTlfjWbzQZ5IzPa7d27F1OmTMGcOXPwxz/+sd4vsIIgYMaMGRg2bBimTJnicb3bMgknImkVJTYbthkM+LG0FNtLS1Fy1QQiXdVqDNbpMFinww3BwVBJObsnERERUSALmDm74+LicPHixQbL5OXlISEhod79JSUlmDBhApYvX45BgwY1eK6srCysWbMGQUFBWL58ea39ZWVlAKrWjzt48GCb6L1oLoGhrUUIgoCTZjN+KCnBj6Wl+PWqNdP0MhludYa0W3U6dOAsj0RERERtSsCEtl69euGLL75ocPbGLVu2oFevXvXuX7x4MaZOndpoYAOAlJSUBseZzp8/H6GhoXjqqacaPVebdw0GVrFVOBzY7exN+7G0FBeuml2oc1AQhur1GBYair5aLeT8f0BERETUZgVMaBs/fjxeffVVzJs3D0888QTCw8NdvVsGgwGffvop1q5di0OHDtV7jv379+OZZ55pqSoTNUuuxeLqTfvJaERljZ5MlUSCm0NCMCw0FEN1OsTWca8kEREREbVNXoc2u92ODz/8EBs3bkR2djby8/OhVquxcuVKdOvWDXfeeSfat2+PP/3pT+jTp4/H15HJZNi8eTMWLFiAtLQ0FBYWuobnhYaGIi0tDTt37oRWqwUAbN26FQ899BAOHDjgmqmxqKgIkyZNanC9t+HDh2PZsmWN1ken03m1WDiRIAg4XlGBTSUl2FRSgmMVFW77Y5RKDNXrMVSvx80hIVDz3jQiIiKia5JXoc1sNuOmm27C0aNHMXr0aAwaNAhSqRRvvfUWsrKy0K1bN4wZMwZLlizB119/jZ07d6J3794eX0+v12PRokVYtGhRo2WHDBmC06fdV5ras2ePx9e+mtgTrwQUDs1rMqsgYJ/RiE0lJdhcWorcGgtcSwH01WqretP0enQJCrom75UkIiIiIndehbaFCxciIyMDhw4dck2bn5ubizfffNNV5tFHH8UDDzyAvn374o033sAnn3ziVYXJj3AikiYps9ux3WDAJufQR0ON2R6DJBLcqtNhRGgohun1iAiQKWqJiIiIqOV4FdrWr1+PqVOn1rvOWTWNRoNx48bh22+/9eZyRAGjVCrFV4WF2GI04iejEZYaATdcLscwvR63hYZikE7HYY9ERERE1CCvQltGRgYmTZrUpLJRUVG4cOGCN5cjv8UhfACQW1mJ9SUlWF9UhF9jYoDcXNe+RJUKt4WGYoRejxuCgyHjsEciIiIiaiKvQpvBYGjyZBwqlQpms9mby5G/ERyNl2njss1mrC8pwYbiYhwxmdz29VarcVtYGG4LDUUn3p9GRERERB4KmCn/yX8J11gYOV1R4Qpqx2vM+CgFMCA4GLfpdJD+8gum3n47FLxHjYiIiIi85FVoCwkJgdFobFLZsrIyTpHfxkiuem6rBEHAiYoKbCgpwfriYpyu0WMsA3BzSAhud/aotVMoYLVasc7BXkgiIiIi8g2vQlvHjh2RkZHRpLJnz55FSkqKN5cjP9OWJ48UBAHHKiqwtrgY64uLcbay0rVPIZFgYEgIRoeFYURoKMLk7LAmIiIiIvF49W1z5MiRePPNN/HUU0+hZ8+e9ZY7e/Ysli1bhscee8yby5GfakvDI09XVGBNcTG+KypCVo2gppRIkKbTYXRYGIbp9dAxqBERERFRC/Hqm+fcuXOxYsUK9O3bF6NGjUJKSgqkzunLP//8c2zduhU5OTlYs2YNYmNjMXfuXJ9UmvyDBG2jqy2nshJriorwXXExTtS4R00lkWCoXo8xYWEYotcjWCZrxVoSERER0bXKq9Cm1Wpx+PBhvPPOO9i2bRu2b9+O0tJSJCYmYs+ePfjtt9+QnJyMF198ETNnzoRKpfJVvckPCAEc2i5ZLFhbXIzviotxsLzctV3hXOz6DufQRwY1IiIiImptXo/xUiqVSE9PR3p6ui/qQ4EoQIZHFtls2OAc+vhzWZkrckpRNZnIHeHhGBUailAOfSQiIiIiP8Jvp+QxSQB0tJnsdmwsKcGqoiLsNBhgr7HvBq0Wd4aHY3RYGNpxan4iIiIi8lNehTZBEJq8YPC+ffsAAP379/fmkuRHrmQ2/+ppswsCdhuNWFFYiI0lJTDVmH6/p0aDO8PCMCY8HLFKZSvWkoiIiIioaaTNKVxYWIg//elP6NmzJ9RqNeRyOeLj4zF27Fhs3769zmOKiorwxz/+ETfddBM+/vhjn1Sa/IPEz+b8P24yYeH58xh45AgeyMjAyqIimBwOJKpUeDI6Gpt79MDqbt3wx6goBjYiIiIiChhN7mkrKChAz549YbPZMH36dKSmpkKpVCIvLw+rV6/G0KFD8fXXX2PChAmuYz7++GPMnj0bdrsdS5cuxUMPPSTKh6DW4Q+R7aLFgtVFRVhRVISTNWZ+DJXJcEd4OO4OD0cfrbbJPcJERERERP6myaHtr3/9K2w2G44dO4b27du77Zs7dy4mTJiAmTNnYsKECfjtt9/wyCOPYNeuXbjvvvvw+uuvo127dj6vPPmJFg5EZXY7vi8pwYrCQvxkNLrCo1IiwTC9HndHRCBNp4NS2qyOZCIiIiIiv9Tk0LZz505MnTq1VmADAIlEgieffBLDhg3Dvffei2+++QYdO3bEDz/8gCFDhviyvuRHWnKdNofzPrVvCguxqaQEFTXuU+sXHIy7w8MxJiwMes78SERERERtTJO/4WZkZODBBx+sd39iYiIAYPXq1XjxxRfx5z//GUreN9SmCS1wT9v5ykp8U1iIbwoLkWexuLYnqVS4OyIC48PDEc/1/4iIiIioDWtyaLNYLA0ujl0d0D755BNMnjzZ+5pR4PDx6Eizw4HvS0rwdUEBdhuNru0hMhnuCg/HxIgIXKfR8D41IiIiIrom+HwsmVar9fUpyU9J6njlKUEQcNhkwtcFBVhTXAyj/cqKagNDQjA5MhIjQ0MRxPvUiIiIiOgawxuAyGO+WKet0GrFyqIifF1QgFNms2t7rFKJSRERmBgRgTgOfyQiIiKiaxhDG3nM03Xa7IKAbQYDvi4owA+lpbA6z6OUSHB7WBgmR0Tg5pAQSDn8kYiIiIioeaGtKfcQ8T6ja1AT/5dftFjw34ICfFVQgAtWq2t7L40GkyMjcSdnfyQiIiIiqqVZ35Cff/55vPLKK3Xus9lsAID7778farW6zjLVywBQ29CUjjaHIGCnwYAvCwqwpaQE1XeqhcpkuDsiApMiItBNoxG1nkREREREgazJoe2jjz7C2bNnvbpYQkKCV8eTf2lonbZ8qxVfO3vVcmpM1d8/OBj3RkZidFgYVJxUhIiIiIioUU0ObdOnTxexGtQWOAQBPxmN+E9BATYWF8Pm3B4ik2FiRATuiYxE53p6YYmIiIiIqG68gYg8Vt3PZgjS4IOLF/GfggJkV1a69vfVanFvZCTGhodDzV41IiIiIiKPMLSRx6xSKf76+xew7qYxsOXmAgCCpVKMi4jA1MhI3qtGREREROQDDG3ksaz2MVg98HYAVTNATm3XDneEhUErk7VyzYiIiIiI2g6GNvKY3bm8Q+rlXKwafVcr14aIiIiIqG3ijUbkOWdokwmOVq4IEREREVHbxdBGHmvCMm1EREREROQlhjbyWPU6bZJWrgcRERERUVvG0EYeExjXiIiIiIhEx9BGHhM4PpKIiIiISHQMbeSx6uGRvLmNiIiIiEg8DG3kOY6OJCIiIiISHUMbec7ZwyZhVxsRERERkWgY2shjjGpEREREROJjaCMf4DhJIiIiIiKxMLSRF6rXaWOfGxERERGRWBjayAvsYSMiIiIiEhtDGxERERERkR9jaCOPcVAkEREREZH4GNqIiIiIiIj8GEMbeay6p413thERERERiYehjTzGsEZEREREJD6GNiIiIiIiIj/G0EYeE6rXaRM4JQkRERERkVgY2oiIiIiIiPwYQxsREREREZEfY2gjj3FQJBERERGR+BjaiIiIiIiI/BhDG3lBUuO/REREREQkBoY28gIHSBIRERERiY2hjYiIiIiIyI8xtJHXODySiIiIiEg8DG3kMQ6OJCIiIiISH0MbERERERGRH2NoI49xWCQRERERkfgY2shzHB9JRERERCQ6hjbymODsamOPGxERERGReBjaiIiIiIiI/BhDG/kAx0kSEREREYmFoY28UBXWODySiIiIiEg8DG1ERERERER+jKGNPCZU97FxdCQRERERkWgY2shjEqY1IiIiIiLRMbSRx1yRTcK72oiIiIiIxMLQRl6oCmsSgT1uRERERERiYWgjLzCsERERERGJjaGNPFY9EQkHRxIRERERiYehjTzGYZFEREREROJjaCMiIiIiIvJjDG3kMQfHRRIRERERiY6hjTzGzEZEREREJD6GNvIawxsRERERkXgY2oiIiIiIiPwYQxsREREREZEfY2gjj1VP+M/hkURERERE4mFoIyIiIiIi8mMMbeQ5rq1NRERERCS6gAltJSUlmD17Nnr16oXo6GhERUUhKioK3bt3x6OPPopLly41evzMmTORnJzsOjYqKgpxcXEYNmwYdu/eXeuY/fv3Y9SoUYiLi3M7pmPHjpg9ezaMRqNYHzcwSKoHRjK9ERERERGJJSBCm91ux/Dhw6HVarF161bk5eXh4sWLuHjxIn766Sd07doVAwcOhMlkqvcc6enpUCgUOHr0qOvYixcv4ty5c/jb3/6GadOmIS8vz1XeYDBgwoQJeOKJJ5CTk+N2zK+//ory8nLMnj27JT6+/xIY1oiIiIiIxBYQoW3FihVISkrCvHnzEBERAYnkytQXer0eTz75JMaMGYP333+/3nNs2LABCxcuhFarddsulUoxaNAg3HPPPVi1apVr+6FDh9CrVy+MHTvW7XoAEBISgsWLF+Pbb7/10ScMUBK3JyIiIiIiEkFAhLYjR45g6NChDZYZMWIEjhw5Uu/+2bNnQ61W17s/Pj4eOTk5rvedOnXCc889V2/5oKAgyGQyWCyWBuvVlrGfjYiIiIhIfAER2s6fP4/o6OgGy8TExODcuXP17k9PT2/w+KNHj6Jjx46u91FRUbjlllvqLV9RUYHo6GgolcoGz9uWsYeNiIiIiEh88tauQFPY7XbIZLIGy8jlcthsNo/Ov3r1amzYsAELFixoUvni4mI899xzmDZtWoPlKisrUVlZ6XpvMBgAAFarFVar1aO6+kr19b2ph6O6q03w7jxtjS/alurGthUP21YcbFfxsG3Fw7YVD9tWPIHYts2pa0CENrEUFxcjPT0dO3bswMqVKxEWFlZnucrKSnTv3h3l5eWwWq0oKirCyJEj8c9//rPB87/yyit48cUXa23fuHEjNBqNLz6C1zZt2uTxsdVDQysrK7Fu3TpfVanN8KZtqWFsW/GwbcXBdhUP21Y8bFvxsG3FE0ht29AkilcLyNB28uRJjB49Ghs2bEDnzp2bfbwgCPjqq68we/ZsTJw4EQcOHIBer6+3vEqlwpkzZ1zHFhcX44MPPsD//d//YeXKlbUmKqk2Z84czJo1y/XeYDAgPj4eI0eOhE6na3a9fclqtWLTpk247bbboFAoPDrHtjNV9xAGqVQYM3qML6sX0HzRtlQ3tq142LbiYLuKh20rHrateNi24gnEtq0ehdcUARnaunTpgszMTI+OzcnJwfTp0yEIAtavX48ePXo063iJRILw8HA888wzGDp0KPbv349+/frVWValUkGlUtXarlAo/OaHyau6SK48+8vn8Sf+9P+5rWHbiodtKw62q3jYtuJh24qHbSueQGrb5tQzICYiacr9ajabDXJ5wxl07969GDx4MKZMmYItW7Y0O7Bd7brrrsPhw4e9OkdA4/SRRERERESiC4jQFhcXh4sXLzZYJi8vDwkJCfXuLykpwYQJE/D5559jxowZ9Q5prDZ16lScPHmywTJSqRRSaUA0oSgErtNGRERERCS6gEgcvXr1wpYtWxoss2XLFvTq1ave/YsXL8bUqVMxaNCgJl1TrVY32ov222+/ITU1tUnnIyIiIiIi8kRAhLbx48fj/PnzmDdvHgoLCyEIV8blGQwGvP3221i7di1mzJhR7zn279+PsWPHNvma9957L1566SUcP37c7XpA1ayJS5cuRUFBQYNrubV1HB1JRERERCS+gJiIRCaTYfPmzViwYAHS0tLcgltoaCjS0tKwc+dOaLVaAMDWrVvx0EMP4cCBA65ZGouKijBp0qQG13sbPnw4li1bBgAYMWIEnn/+edx3333Izc11C24ajQa33nor1qxZ0+j6cdcCDo8kIiIiIhJPQIQ2ANDr9Vi0aBEWLVrUaNkhQ4bg9OnTbtv27NnT7GtOmTIFU6ZMafZxREREREREvhIQwyPJP7l62DhOkoiIiIhINAxt5D2OjyQiIiIiEg1DG3lOYBcbEREREZHYGNrIY4JzrTsJsxsRERERkWgY2sh7HB5JRERERCQahjbyWHUHG3vaiIiIiIjEw9BG3mNPGxERERGRaBjaiIiIiIiI/BhDG3mPwyOJiIiIiETD0EZe4+hIIiIiIiLxMLQRERERERH5MYY2IiIiIiIiP8bQRkRERERE5McY2shjrnXaWrUWRERERERtG0MbeY+pjYiIiIhINAxt5DkJ0xoRERERkdgY2shzQtUASQnXaSMiIiIiEg1DG3mPHW5ERERERKJhaCPPVYc19rQREREREYmGoY08JjCsERERERGJjqGNvMfhkUREREREomFoI69xIhIiIiIiIvEwtJH32NNGRERERCQahjbyHMMaEREREZHoGNrIc85hkRweSUREREQkHoY28h573IiIiIiIRMPQRh4TnGGNmY2IiIiISDwMbeQxhjUiIiIiIvExtJHHeCsbEREREZH4GNqIiIiIiIj8GEMbERERERGRH2NoIy9IavyXiIiIiIjEwNBGXuBdbUREREREYmNoI48J7GMjIiIiIhIdQxt5jdGNiIiIiEg8DG3kMQmHRxIRERERiY6hjTzG4ZFEREREROJjaCMvVPW0MboREREREYmHoY28wLhGRERERCQ2hjbyGqMbEREREZF4GNqIiIiIiIj8GEMbeUxwdbGxr42IiIiISCwM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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ideal = res.x[2] * np.ones(len(distorted_data))\n", "ideal[:5] = 0\n", "\n", "fig, ax = plt.subplots()\n", "ax.plot(time, distorted_data, label=\"measured\")\n", "ax.plot(\n", " time, exponential_overshoot_correction(distorted_data, res.x[0], res.x[1]), label=\"corrected\"\n", ")\n", "ax.plot(time, exponential_overshoot_correction(ideal, res.x[0], res.x[1]), label=\"predistorted\")\n", "if cluster_ip is None:\n", " ax.set_ylim(0.9 * res.x[2], 1.1 * res.x[2])\n", "ax.set_xlabel(\"Time (ns)\")\n", "ax.set_ylabel(r\"Reconstructed $\\Phi$\")\n", "ax.legend()\n", "ax.grid()" ] }, { "cell_type": "markdown", "id": "7ffe6fa9", "metadata": {}, "source": [ "### Repeat the measurement of the phase vs the duration of the detuning flux pulse\n", "\n", "This time with the predistortion filter applied." ] }, { "cell_type": "code", "execution_count": 24, "id": "d789b3c6", "metadata": { "execution": { "iopub.execute_input": "2024-09-18T14:58:28.571617Z", "iopub.status.busy": "2024-09-18T14:58:28.571427Z", "iopub.status.idle": "2024-09-18T14:58:30.221464Z", "shell.execute_reply": "2024-09-18T14:58:30.220787Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Starting batched measurement...\n", "Iterative settable(s) [outer loop(s)]:\n", "\t --- (None) --- \n", "Batched settable(s):\n", "\t x_or_y, time_axis \n", "Batch size limit: 410\n", "\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/usr/local/lib/python3.9/site-packages/quantify_scheduler/backends/types/qblox.py:1235: ValidationWarning: Setting `auto_sideband_cal=on_interm_freq_change` will overwrite settings `amp_ratio=1.0` and `phase_error=0.0`. To suppress this warning, do not set either `amp_ratio` or `phase_error` for this port-clock.\n", " warnings.warn(\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "7474b53256c8453ca83a8b0a991671bc", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Completed: 0%| [ elapsed time: 00:00 | time left: ? ] it" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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pp+tvKyXO3funGbPnq0ePXooJCRE9957r/z8/PI8K3fw4EGXf9eFhYXpwIEDLv08VKlSRV988UWuQ1xKSop9Pd3x48ed9nX58mVJcmm276677tLPP/+cq/V9APKGzU4AFJiLFy9KktPbjP4uu78IJyYm6vjx4zpy5IgmT56sr776Sp06ddKAAQPUuHFj+4L848eP68SJEzpz5ozKli3rsI8TJ044LLd8+XJ16NBB1atX15133qmwsDAVK1ZM6enpOnHihDZu3KhevXpp3LhxmjhxYqa6Z8+eVfv27VW1alWNGTNGgYGBmc4nJCRowYIF6tSpk3bt2qXy5ctnOv/RRx/pvvvu00033aS+ffsqODhY3t7eSk1N1b59+7R582bdeeedWrhwYZawO2HCBP373/9Wq1atdO+999o3lMnYZGHx4sVq3LixlixZog4dOmS5vidOnNArr7yimTNn6qabblLv3r0VHBys4sWL6/Tp0/r55581bNgwrV27VrNmzcpyTX/77Tc1atRIpUuXVq9evRQeHq7ixYvLGKNTp05p69atGjRokDZu3Kh33nnH4ffGKhnBeeDAgYqNjVX16tUznT916pR69OihChUqZNncYt++ffrkk080d+5c1apVS126dFFISIj8/f2VlJSk3377Tc8++6yWLl2qtWvXZvlAe+rUKdWpU0dXr15Vv379NGDAAJUsWVLGGCUmJuq3337T6NGjtXz5ci1ZsiRL/f3792v//v1at26dunXrpooVK+rWW29VtWrVdMcdd9jLHTx4MNsdBDO+nw899JD27dunnj17KiIiQl5eXoqLi9P//d//afv27Xrsscf0wAMP6O6771avXr0UEBCgkydP6uuvv1a7du20du1aNW/ePEv7999/vz7++GN16dJFbdu2Vfny5WWz2ZSSkqLDhw/ryy+/1Ny5c7V169Ys1z3jZ2/SpEl6/fXXddttt6lfv36qVKmSvLy8FB8fryVLlqhRo0ZaunSpbr/9dnvdcePGqXv37poxY4ZOnjyZaVOPunXrOnorODR79mydP39e//rXvyT9vgFI7969NWvWLL366qu5voXx0qVLKl68uEtlS5YsqStXrigtLU0+PtZ9VEtISNC9996rRYsW6fTp01n6jI6O1qRJk3TbbbdlWz/jvWiM0cmTJ3XlyhVJv/8OL1u2rP2PQ1WrVrVs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X19fvf766w77vXr1qt544w3VqVMn01/ic2PmzJk6depUlodE22w2tWjRQu+99579AcLZ2bNnjz7//HO37jz6Vz/88IMeffRRjRgxItP6valTp6pGjRrq2bNnnjfTWLNmjbZs2aIWLVpkOdeiRQvNmDHDadsnT57U+++/n+c/WhSU5s2b68SJE/rqq68cljHG6M0335SXl5db1sjdcsstOnnypL744otc1UtKStKcOXN033335bhBjiR169ZNISEhLm940qVLF4WGhurxxx93OmM4Z84crV69WiNGjMhy7syZM05/9zjTvHnzHN93KSkpeuONN9SkSZNMa47LlCmj66+/3unvTun3WehPP/1UTZo0ydMYAeQOt1YCKFBPPfWUFi9erHr16qlHjx6qUaOGKlasaP9rblpamk6ePKk1a9Zo3bp1evHFF/McNGw2myZPnqzu3bvrxhtvVPv27VWpUiVduXJF8fHx2rRpkzZt2qQBAwZo5syZ2dafMmWKOnXqpHr16qlLly4KCQmxrwk5deqUNm7cqBUrVmjcuHFZNnzo1auX/u///k/t2rVTixYtsmxycOnSJW3cuFGxsbF68cUXM50rWbKkXn75ZQ0ePFi//fab2rZtq4oVK8rb21upqanav3+/Nm/erI0bN2a5fSs8PFxPPPGE/v3vf2vDhg1q2rSpKlSoIC8vL6Wmpio+Pl6LFy/Wzp079c033zi8nWv+/PnauXNnpmPGGJ05c0bbtm3T119/rX79+mUJsJL08ssvq3Hjxrruuut01113KSQkRL6+vjLG6OLFi9q/f7++/PJL1axZU927d3f8TXQgu7H9XfHixTVgwAAVL15cZ86cUc+ePdWgQQNNnjw5U7mSJUvqq6++UuPGjTVkyBB9+eWXWdpatWqVw10bd+7cqTlz5qhZs2bZrnN89tlnNWfOHNWsWVN9+/ZV5cqV7YHm0qVLOnLkiObOnSsfH598397paTfeeKMGDRqkPn366Msvv1R0dLRKly4tm82m1NRUnT17VqtXr9Z3332n9957zy0btjRr1ky9evVS3759NXfuXEVHR+vWW2/N8ZbCWbNm6eLFixo+fLhL/RQrVkwPPvigXn31VU2ePDnHzZZKliypN954Q/3791ft2rXVuXNnhYeHq1SpUvafw9jYWK1atUo9e/bMcnvqL7/8oujoaPXs2TPX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LNvzGzZsUMeOHeXr66vu3burW7duCgoKUnp6uuLj4/XLL79o2LBh+vTTTxUTE6NixYplqj9nzhz169dPDRs21N13362QkBB5e3tLks6fP689e/bo7bff1rx587R9+3aVKFEiyxi+//57derUSefOnVN8fHyW88YYtW/fXps3b1b//v3Vp08f+/fmypUrOnz4sGbPnq1FixZp9+7dKlOmjMvXx5k9e/aoTZs2io+P15EjR3JVd9SoUdq0aZOqVauW5VxiYqKSk5M1YsQIXXfddTm21alTpyzHli9frttvv10NGjRQ//79FRwcLC8vLxljdObMGf3www/q27ev9uzZo/Hjx2eqe+bMGTVt2lRpaWnq27evwsPD7c9NTE1N1dGjR/Xll18qOjpav/zyi6KiojLVP3nypOrVq6fixYurb9++qly5sr3+hQsXtGvXLr344ov67rvvtHz58kzPa8yL48ePKyUlRc8++6wqVKjgtKyXl1em9/qDDz6o+vXrO63zyy+/aNq0aUpNTc1xLMYYDR48WHFxcTp06JBL43dFWlqaBg0apM8++0xhYWHZ9tu/f38tW7ZMffr0Ub9+/VSqVClJv3/P4uPjNXfuXNWrV08///xzlvfVF198obvvvlu33nqrhg4dqvLly9u/L+fPn9dvv/2m559/XuvWrdPSpUuzfM9ee+01JSUl6bfffnPb7+kxY8bohhtu0MaNG3mOJ+AKAwAOHDhwwEgyK1ascFsfSUlJpkWLFqZDhw4mLS0tT2189NFHRpK5evVqvsayatUqI8ksW7bMYZn09HTTu3dvExERYdLT0zOdGzlypCldurTZuXOnw/qHDh0yUVFR5q677sp0/OLFi8bPz8+MHTvW6Rjffvtt4+XlZXbv3u3CKzLmhx9+MD4+PqZSpUqmWbNmWc6npaWZRo0amVtuucWcOXPGYTtr1qwx3t7e5q233sp0/PLly6ZKlSqmd+/eJjU11WH9X375xXh7e5tXX301y7nY2FhTunRp06JFCyPJvP/++1nKLFy40Egya9ascdjHyZMnTenSpc24ceMclsmN/fv3m4iICFO7dm1Trlw58/TTT7tcd968ecZms5ny5cub/v37Z9u2JLN8+fI8j69hw4amTZs2Tn9uxo8fb/z9/c3p06czHX/22WdNmTJlTHx8vMO6Fy5cMFWqVDGDBg3Kcm7UqFGmbNmyWdr9qxUrVhhJ5ttvv3Xh1Ti3evVqI8nExcXlu63szJo1y9hsNpd+B02ZMsWUKFHClCpVKlfvCWfS0tLM4MGDjY+Pj2natKkJCwvLUmbDhg1GklmyZInDdi5fvmxq1KhhevfuneVcRESE6dOnj9NxLFmyxEgyq1atynKubdu2pm/fvi68mrxJS0szvr6+Zvr06W7rA7jWcGslAIfMH7dkGTc+bjIwMFBr1qzR0qVL5eVVsL+S1q9fr4oVK+r22293WMZms+m+++7ToUOH7DOJ0u/XaNq0aRo1apRq1arlsH54eLieffZZzZ07V8eOHbMfj42NVUpKigYNGuR0jPfdd5/S09O1ZcuWHF/PuXPn1LdvX911111q3759tmU2b96s2NhYTZo0yeksVosWLTRw4EBNnTo10/Hdu3fr4MGDevzxx+2zcNmpU6eOOnXqpDVr1mQ6vnfvXrVr10716tXTkiVLHNaPjY1V1apV1aJFC4dlypcvr65du+qHH35wWMZVZ86cUevWreXv76/Vq1fbZz5cceTIEd1///0aM2aM6tatm++xZCc1NVU///yzBg0a5PTn5r777tOFCxf022+/ZTq+fv16tWvXTiEhIQ7rlixZUn379s32esbGxqpbt24qW7asw/pt2rRRRESEJd8Pd9u/f78iIiJy/B30008/6cknn9Trr7+ucuXKWdb/448/rpkzZ+rzzz93+Ptn48aNKl26tDp27OiwHT8/P/Xt21c//vhjpuNHjx7VoUOHcvz90rFjRwUHB2f7PTtw4IDCw8NdeDV5k5CQoCtXrri1D+BaQ5ADgD80atRIEyZMyPE2sIwPv3+9rer48eO6dOmSbr755hz7ueWWWyT9/uExQ2hoqB555JEcb7MrXry4ypQp49ItXSNGjNCVK1f07rvvOnxNGWNo0qSJS+M+cOBAprWIBw8elCRVrVo1x/pVq1bN9Jql328x7Ny5s5YsWeI0LB09elSVKlXKsY+QkBAdOHAgx3I5OXfunBo3bqzVq1e71G+GtLQ0DRw4UJGRkXrhhRfyPQ5Hjh8/rrS0tBzHlvFe/fs16dChg4YPH55jPyEhIdm+1zz9/XC3RYsWOfxjR4YLFy6ob9++at++vR588EFL+09PT9fcuXPVo0cPh2WaNWumyZMnu/T76dChQ5n+AFeyZEkNHTpULVu2dFrXZrM5/J5funQp29uirXLp0iVJcmsfwLWGIAcgi1WrVsnHx8f+4bxdu3aZFtXHxMTYy/7666+qVKmSzpw547TNxMREVapUSTt27MhybvDgwVnW8GS4cuWKXn75Zd10000qV65ctpsU3HvvvXl/sX/RsWNH/etf/8qxXMYH08qVK9uPZQQaZzMcGTLWv/w11ERFRemNN97I8UNaUlKSzp49m+NfrWfNmqWZM2fq008/dTrTdvDgQZUrV05+fn4ujTslJSXTTOKpU6ckSaVLl86xfunSpZWYmJjpWKNGjfTJJ5/kOOMVGRmppKSkHPs4d+6cihcvnmO5nFSpUkVffPFFrkKcJE2aNEnff/+9Zs2alas1PsYYnT17VkeOHNGRI0d08eJFp+UrVaokPz+/HK/JuXPnJCnLNRk9erRuu+22HMflaBbG09+Pv0tPT9epU6fs18vRBh2uWLBggb7//nunmwFJ0mOPPaazZ8/qgw8+yPeav79744031LVrV6dlbrrpJt133305tnXu3Dn5+/tnGmOZMmU0ffp0lSxZ0mldY0yW73nGZjFHjx7V888/n+l376effpqpvqPf1/7+/rrhhhv0yCOP6OzZs1n6rV69umrUqCFJatWqlb1e8eLF2bUScILNTgBk0aBBA02dOlXHjx/Xc889l2lDBh8fn0wbB5w4cUInTpzQmTNnnN5mlZiYqBMnTujYsWO6/vrrM507cOBAtpsMGGPUoUMHrV27Vnfffbc6d+6caQOQDJs2bdKsWbOy1E9LS9O5c+dcChmuSktL03//+19FRUVlCm0Zf0125UNrxoepnD6sZ2fKlCny8vJyOvO3b98+DR8+XE8++WSOH9YvXbrk8gdtZ+N25YNtfj781q9fX88//7yOHDmSKUD/lTFG69aty3FjC3fZtGmTJkyYoLffftulDUwkacaMGXryySe1bdu2LD8DYWFh6t27t55//vksmw35+PgoOjpaMTEx6t27t8P2161bJ0l5uibHjh3TrFmz1Llz5yzn6tevr6VLlyo9Pd3h7YjHjh1TXFycRo0aleu+HZkyZYpWr16t3bt3Z9pF1WazqUqVKnrggQc0evRol0P0pk2bdN9992nQoEFOb9v96quv9MEHH+ibb75RxYoV8/063Om7777Trbfemqe6n3zyic6ePZtps5hhw4apfv36Gj9+vG655Rb7xjs2m02tW7e2l8v4fb1mzRr17t070+/rixcv6uDBg5oxY4a++uor/fLLL5n+wDR58mRt2bJFL7zwgh555BF7qCtevDi7VgJOEOQAZFGmTBkNGzZMBw4c0HPPPac777zT8m2mXTF//nytXr1aK1asUJs2bRyWK1WqVLZBrn///vriiy+0bdu2LOExL44fP66hQ4dq9erVWr58eb7by40rV67ohRde0IsvvqhnnnlGkZGR2Za7evWq+vXrpxo1auj55593+7gyZtIuXryowMBAp2XzElwztGvXTnXq1NGdd96pF154QTVq1LDfgmWMUUJCgj788EPt2LFDH3zwQZ77yaukpCT17dtXnTp10tChQ3Msn7Hz56effqouXbqoX79+Cg0NVUBAgIwxSkxM1K+//qq3335b69at06ZNm7IEpieeeEIDBgxQcHCwOnfubN8hVfo9oP/0008aOXKkunbtmu3Omc7ExsZq0KBBMsZo4sSJWc4PGzZM06ZN04ABAzRixAiFhYXJx+f3jxSpqanav3+/nnnmGVWqVEm9evXKVd/Zybhe06ZNU58+fTR06FCFhITI399fxhidPn1aW7Zs0fPPP6+tW7fqyy+/zLHNxYsXq3fv3mrevHmWtZ9/lfGYhocfftjp+jRPM8YoPj7efgvlqVOn9NVXX2nlypX67rvvctVWenq63nrrLT355JMaNGhQpscfNG7cWI0bN9akSZPUpEkTPfTQQ9m2kfH7evHixbrjjjuyLfPMM8+oVq1amjRpkl5++WX78W7duqlu3bp64YUX1L17d5dmiwEQ5AAUYjExMapfv77TEOdM6dKlVbx4cZduG8zJl19+qeHDh+vChQuaMWOGy8G2Q4cO2rx5sw4cOJDnRzj89NNPuueee7Rt2zY99thjeuaZZxyWnTBhgrZt26YtW7bkefvuc+fOqWrVqmrYsKG+/fZbp2Uz/lqekJCQY5DLzzPefH19NXXqVLVs2dLhh0Tp9w/6N954Y577yQtjjIYPH65Lly7pww8/dGnmMTQ0VDNmzFDNmjWdrk+86667dOONN2ru3LlZAlGPHj10++23a8KECZowYUK29WvWrJnl9jdnrl69qokTJ+o///mPwsLCtGzZMgUHB2cpV61aNT399NN66qmn9Nlnn2Xblq+vr3744Ycc3xeuaNKkiaZPn64WLVo4nO0cPHiwWrZsqZ49e+qHH35wel0/+eQT3X///br77rv10UcfOfxZSU1NVf/+/RUWFpYpeBQG7733noYNG5bl+EsvvaSGDRu63M7+/ft17733as2aNbr77rv1zjvv5Gk8MTExql27draPysgQHBysgQMH6ttvvy101xMoighyAAqtAwcOqEqVKnmuP23atFw/xPnvEhIS9Mgjj+irr75So0aN9OGHH+qGG25wuf7Zs2d17tw5l55P9XeXL1/WSy+9pBdffFHly5fXl19+qZ49ezosv3r1ak2aNEnvvvuuy7f2ZSfjltS/r2fLTs2aNVWiRAl98cUXTgPmhQsXtGzZsjyH6vXr16tNmzZq1aqVunfvrtDQUPssTVpamhISErR8+XKNGzdOjRs3VqNGjTLVP3/+vH09X3aCg4PzvJbr008/1WeffaalS5fm+IyzDDabTQMGDMixXOPGjdWgQQOtX78+U5DLeMj7d999p3Hjxql27dr2B4xLv4fxjOf3Pfroo/roo49yDJg//vijhgwZop9//ll9+vTRW2+9pfLly2db9rXXXtPTTz+te++9V7fccosqVqxonzFMSUnR4cOH9emnn2rQoEFas2ZNltubT506pfPnzzu8NhEREZnGW6xYMZdmOnv06KGyZctqw4YNDoPcDz/8oMGDB+uRRx6x36rsyMSJE/XDDz/ohx9+cHkTDmNMls1G/qpUqVIOr2tu9OnTR5UrV5YxRunp6Tpx4oTWr1+vcePGyc/PTyNHjnRaPy0tTe+8846eeuopeXt765133tGwYcPyfAv0gQMHFBUVlWP9qKiobO+gAJB7BDkAhVZSUpLD9VDuZozRhx9+qNGjR9tvOxo+fLjTLfazs2bNGqWkpCgoKChX9datW6chQ4Zo9+7d+te//qWJEyc6bePUqVMaMGCAOnfu7NIHXmdKly6tEydOuBS6SpcurZEjR2rixIlKT09Xhw4dFBwcnOmB4Pv27dOLL76o1NTUPAe5ESNG6I477tDcuXMdflAcNmyYHnvsMQ0YMEC//vprpnK33367Nm7c6LD9vn37avbs2bkeV1xcnEaMGKGHH35YHTp0yHV9V4SHh2fZ7XPhwoVavHixtm7d6nT92/33369q1aqpQ4cO6tOnT7ZlLl68qPHjx+uNN95Q1apV9e2336pdu3YO2zx58qSeeuopTZkyRY888ojDcg8/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0Tz1nZN77rnHNGvWLMvxtLQ006hRI3PzzTeb06dPO6y/du1a4+3tbd58881MxxMSEowk88YbbzjtPykpyVSsWNGMHTvWaTlJ5v33389yvEGDBqZly5bmypUrDuumpaWZfv36mUqVKpmLFy867Se3qlSpYp5++ulc13P03t61a5eRZP773/86rb9kyRIjyXzzzTeZji9YsMBIMt9++63T+jt27DDe3t5mypQpmY7PmDHD2Gw2p99zR+Lj402JEiVyvB7nzp0z1atXN926dct1H3+3fPlyI8nMnz/fabm3337b2Gw2s3379mzPN2rUyAwbNizf4zEm7++JnEyYMMGEhYVlOX777beb66+/3ly6dMlh3fT0dPPkk0+akiVLmmPHjmU616ZNm3x9L8LCwsyECRMcnv/yyy+NzWYzmzZtclgmNTXVtG7d2rRs2TLLubi4OCPJrF69Os9jBP5pmJED4NTLL7+sm266SbVr11aPHj0UGRmp/v372//CbrPZ9Prrr6tDhw664YYb1LlzZwUHB8sYoxMnTmjLli1atWqVRo8enesNITIeDNu+fXv16dNH1113nQIDA3Xx4kUdP35c3333nWJjY9WlSxctXLgwS/0BAwbo888/1/bt213azGLXrl2Sfp/hy2nnNR8fH919992ZZhqefvppLVq0SPXq1VPPnj1Vo0YN+3b0Z86c0f79+/Xll18qMDBQkyZNytReSkqK9u/fr9OnTzt9OHGGdu3aqVatWjmWy4mXl5feeOMNderUSbVq1VL37t1VpUoVBQUFKS0tTcePH9cvv/yihQsXqmnTpll24wsODtZDDz2kUaNGad26dapfv74CAgLsM4pXr15VfHy8PvvsM6WlpemJJ57I0zgnT56sdu3aqV69eurSpYtCQ0Ptt8dljHPFihXavHmzPv74Y5e3ii8oNWvW1GOPPabHHntMK1euVOPGjVWmTBn7dUtKStIvv/yizz//XO3bt88yI9elSxe1adNGHTt2VJ8+feyPH8hw/vx57d27VzNnzlT16tU1fPjwTPV37dqlMmXKuLRTZ1BQkAYMGGAfW0hIiMaNG6dnnnlGmzZtUtOmTVWhQoVMjx84evSovvjiC505c0aLFi3K17WSpDZt2ujOO+/UXXfdpV69eik6Otr+PjPG6MyZM9qyZYsWLlyoBx980OHP+/nz59260Yg7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AADgfi6vkWvdurUkafPmzZKk5cuX24/lJCEhQdLvIbB169ay2WxauXJlbseKIoAZOQAAAMD9XA5yMTExsv3x4dwYo7i4OMXFxeWqs8uXL2dqB9ceghwAAADgfi4HuYiICNlsNh09elRpaWkqW7asSpUq5VLd8+fP6/Tp0/L29lZYWFieB4vCjyAHAAAAuJ/LQe7AgQOSpGbNmmnTpk2655579Nprr7lUd+zYsXrllVfUsGFDbdq0KU8DRdHAGjkAAADA/XK92Un9+vVljNGSJUtcrrN48WLZbDY1aNAgt92hiGFGDgAAAHC/XAe5rl27SpJ2796tN954I8fy7777rn799VdJUrdu3XLbHYoYghwAAADgfrkOcu3bt1fdunVljNFTTz2lzz//3GHZr7/+WqNHj5bNZlPdunXVoUOHfA0WhR9BDgAAAHA/l9fI/dX777+vli1bKiUlRf369dM777yjXr16qXr16rLZbNq7d6/mzp2rmJgYGWNUrFgxvffee1aPHYUQa+QAAAAA98tTkLv55ps1e/ZsDRgwQCkpKVq3bp3WrVuXpZwxRr6+vvr00091880353uwKPyYkQMAAADcL9e3Vma46667tHHjRrVq1UrGmGy/WrRooQ0bNqh3795WjhmFGEEOAAAAcL88zchlqF+/vlauXKkjR45o7dq1SkhIkDFGISEhuvXWW1WlShWrxokigiAHAAAAuF++glyGypUrq1+/flY0hSKONXIAAACA+7l8a2XDhg31wgsvaOvWre4cD4o4+4ycSHIAAACAu7gc5H766Sc9//zzaty4sapUqaKHHnpIy5cvV2pqqjvHhyKGWysBAAAA93M5yL3//vvq3LmzihcvrsOHD+vdd99Vhw4dVL58efXp00ezZ89WUlKSO8eKIoAgBwAAALify0Hu/vvv14IFC3Tq1CnNmzdPgwcPVvny5ZWcnKwvvvhCAwcOVMWKFdWmTRu9+eabOnjwoDvHjUKKNXIAAACA+9mM+WMKJQ+MMdqwYYMWLFighQsXavfu3b83+sdszPXXX69u3bqpa9euaty4sTUjvgYlJycrKChISUlJCgwMLOjh5Mt1736tXaeTtWZgB7WoElzQwwEAAACKFFezQb6C3N/t2rXLHuo2bdqk9PR0e6gLCQlRly5d1K1bN7Vp00bFihWzqtsi71oKcjXf+VpxZ5L1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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from quantify_scheduler.backends.types.qblox import QbloxHardwareDistortionCorrection\n", "\n", "# Set the hardware distortions for the relevant flux line.\n", "hw_cfg[\"hardware_options\"][\"distortion_corrections\"] = {\n", " \"q0:fl-cl0.baseband\": QbloxHardwareDistortionCorrection(exp0_coeffs=[res.x[1], res.x[0]])\n", "}\n", "\n", "quantum_device.hardware_config(hw_cfg)\n", "\n", "cryoscope_ds = meas_ctrl.run(f\"Cryoscope Experiment A {cryoscope_kwargs['amplitude']}\")\n", "\n", "cryoscope_result = CryoscopeAnalysis(\n", " dataset=cryoscope_ds,\n", " label=\"Cryoscope\",\n", " settings_overwrite={\"mpl_transparent_background\": False},\n", " frequency_change_to_flux=frequency_change_to_flux,\n", ").run()\n", "cryoscope_result.display_figs_mpl()" ] } ], "metadata": { "files_to_bundle_in_zip_file": [ "configs/tuning_transmon_coupled_pair_hardware_config.json", "devices/transmon_device_2q.json" ], "jupytext": { "main_language": "python", "notebook_metadata_filter": "files_to_bundle_in_zip_file" }, "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.20" }, "widgets": { "application/vnd.jupyter.widget-state+json": { "state": { "09035dac8e1a426a829df1cffd9d0ad3": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "ProgressStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "16386dd3582d4505819d084096b7f5dc": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "2.0.0", "_view_name": "HTMLView", "description": "", "description_allow_html": false, "layout": "IPY_MODEL_4e69de007436446ab9e5bdbc1eb272b1", "placeholder": "​", "style": "IPY_MODEL_9128bb67699240d4940d96251a98b60c", "tabbable": null, "tooltip": null, "value": " [ elapsed time: 00:00 | time left: 00:00 ]  last batch size: 410" } }, "2d9f52fec0ea4f04a542d6c8488b1736": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "FloatProgressModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "2.0.0", "_view_name": "ProgressView", "bar_style": "success", "description": "", "description_allow_html": false, "layout": "IPY_MODEL_865fb496c6504ce291ab52e005f5f157", "max": 100.0, "min": 0.0, "orientation": "horizontal", "style": "IPY_MODEL_09035dac8e1a426a829df1cffd9d0ad3", "tabbable": null, "tooltip": null, "value": 100.0 } }, "42065277c3b542a9baa4ad66c42beff2": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "2.0.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border_bottom": null, "border_left": null, "border_right": null, "border_top": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "4a2ffef1e5614466bc6e4f3dc946cacc": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "FloatProgressModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "2.0.0", "_view_name": "ProgressView", "bar_style": "success", "description": "", "description_allow_html": false, "layout": "IPY_MODEL_ef9f882e3b294a06bb50464f45717b5b", "max": 100.0, "min": 0.0, "orientation": "horizontal", "style": "IPY_MODEL_bbbff6d597584a1f905e96f3f08b8b76", "tabbable": null, "tooltip": null, "value": 100.0 } }, "4d1506409d38447c849a5359cf619972": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "2.0.0", "_view_name": "HTMLView", "description": "", "description_allow_html": false, "layout": "IPY_MODEL_814e8ddbc2d3482d80216fed42c311b9", "placeholder": "​", "style": "IPY_MODEL_5c89def9df89421f93411e14124e4094", "tabbable": null, "tooltip": null, "value": "Completed: 100%" } }, "4e69de007436446ab9e5bdbc1eb272b1": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "2.0.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border_bottom": null, "border_left": null, "border_right": null, "border_top": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "59c6145528444af3877627e292f2b8d8": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "HTMLStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "StyleView", "background": null, "description_width": "", "font_size": null, "text_color": null } }, "5c89def9df89421f93411e14124e4094": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "HTMLStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "StyleView", "background": null, "description_width": "", "font_size": null, "text_color": null } }, "735825fe91a84becad5cbe453f5da745": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "2.0.0", "_view_name": "HTMLView", "description": "", "description_allow_html": false, "layout": "IPY_MODEL_d64fecfd46944c9eae19e078f5f122a8", "placeholder": "​", "style": "IPY_MODEL_59c6145528444af3877627e292f2b8d8", "tabbable": null, "tooltip": null, "value": "Completed: 100%" } }, "7474b53256c8453ca83a8b0a991671bc": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HBoxModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "2.0.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_735825fe91a84becad5cbe453f5da745", "IPY_MODEL_4a2ffef1e5614466bc6e4f3dc946cacc", "IPY_MODEL_db9e486f660e45b0aa3656c41f82905c" ], "layout": "IPY_MODEL_42065277c3b542a9baa4ad66c42beff2", "tabbable": null, "tooltip": null } }, "7580daf5664147b79b2008677bf23887": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HBoxModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "2.0.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_4d1506409d38447c849a5359cf619972", "IPY_MODEL_2d9f52fec0ea4f04a542d6c8488b1736", "IPY_MODEL_16386dd3582d4505819d084096b7f5dc" ], "layout": "IPY_MODEL_f236883ad8144849ba8bbf796c5bb7db", "tabbable": null, "tooltip": null } }, "814e8ddbc2d3482d80216fed42c311b9": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "2.0.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border_bottom": null, "border_left": null, "border_right": null, "border_top": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "819c3e1464c04044a2fe80b85a549fe0": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "2.0.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border_bottom": null, "border_left": null, "border_right": null, "border_top": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "865fb496c6504ce291ab52e005f5f157": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "2.0.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border_bottom": null, "border_left": null, "border_right": null, "border_top": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "9128bb67699240d4940d96251a98b60c": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "HTMLStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "StyleView", "background": null, "description_width": "", "font_size": null, "text_color": null } }, "a947366baed145da90034ababeb818b5": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "HTMLStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "StyleView", "background": null, "description_width": "", "font_size": null, "text_color": null } }, "bbbff6d597584a1f905e96f3f08b8b76": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "ProgressStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "d64fecfd46944c9eae19e078f5f122a8": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "2.0.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border_bottom": null, "border_left": null, "border_right": null, "border_top": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "db9e486f660e45b0aa3656c41f82905c": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "2.0.0", "_view_name": "HTMLView", "description": "", "description_allow_html": false, "layout": "IPY_MODEL_819c3e1464c04044a2fe80b85a549fe0", "placeholder": "​", "style": "IPY_MODEL_a947366baed145da90034ababeb818b5", "tabbable": null, "tooltip": null, "value": " [ elapsed time: 00:00 | time left: 00:00 ]  last batch size: 410" } }, "ef9f882e3b294a06bb50464f45717b5b": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "2.0.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border_bottom": null, "border_left": null, "border_right": null, "border_top": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "f236883ad8144849ba8bbf796c5bb7db": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "2.0.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border_bottom": null, "border_left": null, "border_right": null, "border_top": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } } }, "version_major": 2, "version_minor": 0 } } }, "nbformat": 4, "nbformat_minor": 5 }