{ "cells": [ { "cell_type": "markdown", "id": "7ce24a16", "metadata": {}, "source": [ "# Tutorial 4) Generic Tuning Interface" ] }, { "cell_type": "markdown", "id": "40f72389-5530-47b4-897f-af83d2bc3093", "metadata": {}, "source": [ "## Motivation\n", "\n", "So far, the tutorials have focused on parameter sweeps along predefined dimensions. While these sweeps do not need to be linear, all parameter values must still be known in advance before compiling the QUA program.\n", "\n", "However, many practical optimization problems require **adaptive and non-linear exploration** of parameter space, where future values depend on previous measurement results.\n", "\n", "Quantum Machines hardware provides a solution via *input streams*, which allow parameters to be updated dynamically during program execution. (See the [official documentation](https://docs.quantum-machines.co/latest/docs/Guides/features/#input-streams) for more details.)\n", "\n", "The `GenericTuningInterface` in Arbok builds on this feature to enable adaptive tuning workflows with minimal changes to existing measurement definitions.\n", "\n", "In this tutorial, we demonstrate a real-world example: optimizing the initialization and readout of two different spin parity states. The underlying physics is not essential here—the focus is on how the interface enables flexible and scalable optimization." ] }, { "cell_type": "markdown", "id": "8c3bec4d-a16a-4790-a91a-aeea668b3315", "metadata": {}, "source": [ "## The `GenericTuningInterface`" ] }, { "cell_type": "markdown", "id": "04cc8382-e34a-4b0a-b1e9-8250639e52d5", "metadata": {}, "source": [ "### Creating the driver and a measurement\n", "\n", "As in previous tutorials, we begin by creating a `Device` and initializing the corresponding driver. The device configuration defines the hardware setup, while the driver provides the interface to the Quantum Machines backend." ] }, { "cell_type": "code", "execution_count": 1, "id": "b2a00b7f", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2026-04-06 05:21:50,115 - qm - INFO - Starting session: fbee7913-cacc-49d9-94b1-bbdb933f55fc\n" ] } ], "source": [ "import numpy as np\n", "from rich import print as rprint\n", "from arbok_driver import ArbokDriver, Device, Measurement\n", "from arbok_driver.examples.configurations.hardware import opx1000_config\n", "from arbok_driver.examples.configurations.sequence import (\n", " device_config, parity_init_conf, parity_read_conf\n", ")\n", "\n", "mock_device = Device(\n", " name = 'mock_device',\n", " opx_config = opx1000_config,\n", " divider_config = {},\n", " master_config = device_config\n", ")\n", "\n", "qm_driver = ArbokDriver('qm_driver', mock_device)" ] }, { "cell_type": "markdown", "id": "b4587919-b614-4436-a860-5f0fa8b5a108", "metadata": {}, "source": [ "Next, we construct a measurement consisting of four subsequences:\n", "- initialization (even parity)\n", "- readout (even parity)\n", "- initialization (odd parity)\n", "- readout (odd parity)\n", "\n", "At this stage, the even and odd branches are identical apart from their naming. The goal of the optimization will be to maximize the distinguishability between these two cases." ] }, { "cell_type": "code", "execution_count": 2, "id": "c51c3e31-ff52-46ba-b263-6c4e00925c51", "metadata": {}, "outputs": [], "source": [ "mock_measurement = Measurement(qm_driver, 'mock_measurement')\n", "\n", "mock_measurement.add_subsequences_from_dict({\n", " 'parity_init_even': {'config': parity_init_conf},\n", " 'parity_read_even': {'config': parity_read_conf},\n", " 'parity_init_odd': {'config': parity_init_conf},\n", " 'parity_read_odd': {'config': parity_read_conf}\n", "})" ] }, { "cell_type": "code", "execution_count": 3, "id": "94adb0a0-c799-4718-bd49-ed26fb4af00b", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Declared 1-dimensional parameter sweep of size 100 [100]\n" ] } ], "source": [ "mock_measurement.set_sweeps(\n", " {mock_measurement.iteration: np.arange(100)}\n", ")" ] }, { "cell_type": "code", "execution_count": 4, "id": "f6cee50d-9e5f-46d7-b7ed-9c77182dc80e", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Registered 16 gettables for measurement\n" ] } ], "source": [ "mock_measurement.register_gettables()" ] }, { "cell_type": "markdown", "id": "cd1dc7e3", "metadata": {}, "source": [ "### Initializing the interface\n", "\n", "To construct the tuning interface, only the parameter configuration needs to be defined at initialization.\n", "\n", "**Parameter configuration** \n", " A dictionary describing which parameters should be tuned. Each entry maps a high-level tuning parameter to one or more underlying QUA variables, along with scaling factors and bounds." ] }, { "cell_type": "code", "execution_count": 5, "id": "bbe97e48", "metadata": {}, "outputs": [], "source": [ "#[g.full_name for g in mock_measurement.available_gettables]" ] }, { "cell_type": "markdown", "id": "fe0ff41b", "metadata": {}, "source": [ "The parameter dictionary defines how high-level tuning parameters map to underlying QUA variables.\n", "\n", "Each entry consists of:\n", "- `qua_vars`: a mapping from QUA parameters to scaling factors \n", "- `bounds`: the allowed range for the parameter during optimization \n", "\n", "This allows multiple physical parameters to be controlled simultaneously through a single tuning variable. For example, the `read_detuning` parameter modifies both readout branches in a coordinated way, including sign inversion where required.\n", "\n", "To inspect available parameters, use:" ] }, { "cell_type": "code", "execution_count": 6, "id": "ba27f969", "metadata": { "scrolled": true }, "outputs": [], "source": [ "#mock_measurement.print_readable_snapshot()" ] }, { "cell_type": "code", "execution_count": 7, "id": "6b7ce496", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
Adding input stream for t_ramp_over_crossing (t_ramp_init)\n",
       "
\n" ], "text/plain": [ "Adding input stream for t_ramp_over_crossing \u001b[1m(\u001b[0mt_ramp_init\u001b[1m)\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
Adding input stream for v_read_P1 (read_detuning)\n",
       "
\n" ], "text/plain": [ "Adding input stream for v_read_P1 \u001b[1m(\u001b[0mread_detuning\u001b[1m)\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
        Adding v_read_P2 to v_read_P1  input stream (factor: -1) (read_detuning)\n",
       "
\n" ], "text/plain": [ " Adding v_read_P2 to v_read_P1 input stream \u001b[1m(\u001b[0mfactor: \u001b[1;36m-1\u001b[0m\u001b[1m)\u001b[0m \u001b[1m(\u001b[0mread_detuning\u001b[1m)\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
        Adding v_read_P1 to v_read_P1  input stream (factor: 1) (read_detuning)\n",
       "
\n" ], "text/plain": [ " Adding v_read_P1 to v_read_P1 input stream \u001b[1m(\u001b[0mfactor: \u001b[1;36m1\u001b[0m\u001b[1m)\u001b[0m \u001b[1m(\u001b[0mread_detuning\u001b[1m)\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
        Adding v_read_P2 to v_read_P1  input stream (factor: -1) (read_detuning)\n",
       "
\n" ], "text/plain": [ " Adding v_read_P2 to v_read_P1 input stream \u001b[1m(\u001b[0mfactor: \u001b[1;36m-1\u001b[0m\u001b[1m)\u001b[0m \u001b[1m(\u001b[0mread_detuning\u001b[1m)\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "tuning_interface = mock_measurement.initialize_tuning_interface(\n", " parameter_dicts = {\n", " 't_ramp_init': {\n", " 'qua_vars': {mock_measurement.parity_init_odd.arbok_params.t_ramp_over_crossing: 1},\n", " 'bounds': (25, 1e4)\n", " },\n", " 'read_detuning': {\n", " 'qua_vars': {\n", " mock_measurement.parity_read_even.arbok_params.v_read['P1']: 1,\n", " mock_measurement.parity_read_even.arbok_params.v_read['P2']: -1,\n", " mock_measurement.parity_read_odd.arbok_params.v_read['P1']: 1,\n", " mock_measurement.parity_read_odd.arbok_params.v_read['P2']: -1,\n", " },\n", " 'bounds': (-0.01, 0.01)\n", " },\n", " },\n", " verbose = True\n", ")" ] }, { "cell_type": "markdown", "id": "fc581c5e-8cae-4552-b62e-edff01f3fd1b", "metadata": {}, "source": [ "The resulting QUA program differs from a standard measurement in that selected parameters are replaced by variables connected to input streams. This enables values to be updated dynamically at runtime without recompilation." ] }, { "cell_type": "code", "execution_count": 8, "id": "e90fdca7", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n",
       "# Single QUA script generated at 2026-04-06 05:21:53.054700\n",
       "# QUA library version: 1.2.5\n",
       "\n",
       "\n",
       "from qm import CompilerOptionArguments\n",
       "from qm.qua import *\n",
       "\n",
       "with program() as prog:\n",
       "    v1 = declare(int, )\n",
       "    v2 = declare(int, value=0)\n",
       "    v3 = declare(int, )\n",
       "    input_stream_mock_measurement_int_input_stream = declare_input_stream(int, 'mock_measurement_int_input_stream',\n",
       "size=1)\n",
       "    v4 = declare(fixed, )\n",
       "    input_stream_mock_measurement_fixed_input_stream = declare_input_stream(fixed, \n",
       "'mock_measurement_fixed_input_stream', size=1)\n",
       "    v5 = declare(fixed, )\n",
       "    v6 = declare(fixed, )\n",
       "    v7 = declare(fixed, )\n",
       "    v8 = declare(fixed, )\n",
       "    v9 = declare(fixed, )\n",
       "    v10 = declare(fixed, )\n",
       "    v11 = declare(bool, )\n",
       "    v12 = declare(bool, )\n",
       "    v13 = declare(fixed, )\n",
       "    v14 = declare(fixed, )\n",
       "    v15 = declare(fixed, )\n",
       "    v16 = declare(fixed, )\n",
       "    v17 = declare(fixed, )\n",
       "    v18 = declare(fixed, )\n",
       "    v19 = declare(bool, )\n",
       "    v20 = declare(bool, )\n",
       "    v21 = declare(int, )\n",
       "    with infinite_loop_():\n",
       "        pause()\n",
       "        assign(v2, 0)\n",
       "        advance_input_stream(input_stream_mock_measurement_int_input_stream)\n",
       "        assign(v3, input_stream_mock_measurement_int_input_stream[0])\n",
       "        advance_input_stream(input_stream_mock_measurement_fixed_input_stream)\n",
       "        assign(v4, input_stream_mock_measurement_fixed_input_stream[0])\n",
       "        assign(v21, 0)\n",
       "        with while_((v21<100)):\n",
       "            assign(v1, (0+(1*v21)))\n",
       "            align()\n",
       "            align(\"P1\", \"J1\", \"P2\", \"P7\", \"J7\", \"P8\")\n",
       "            play(\"unit_ramp\"*amp(0.06), \"P1\", duration=250)\n",
       "            play(\"unit_ramp\"*amp(-0.085), \"J1\", duration=250)\n",
       "            play(\"unit_ramp\"*amp(-0.06), \"P2\", duration=250)\n",
       "            play(\"unit_ramp\"*amp(-0.07), \"P7\", duration=250)\n",
       "            play(\"unit_ramp\"*amp(-0.05), \"J7\", duration=250)\n",
       "            play(\"unit_ramp\"*amp(0.07), \"P8\", duration=250)\n",
       "            align(\"P1\", \"J1\", \"P2\", \"P7\", \"J7\", \"P8\")\n",
       "            wait(50000, \"P1\", \"J1\", \"P2\", \"P7\", \"J7\", \"P8\")\n",
       "            align(\"P1\", \"J1\", \"P2\", \"P7\", \"J7\", \"P8\")\n",
       "            play(\"unit_ramp\"*amp(-0.0165), \"P1\", duration=250)\n",
       "            play(\"unit_ramp\"*amp(0.035), \"J1\", duration=250)\n",
       "            play(\"unit_ramp\"*amp(0.0165), \"P2\", duration=250)\n",
       "            play(\"unit_ramp\"*amp(0.099), \"P7\", duration=250)\n",
       "            play(\"unit_ramp\"*amp(0.117), \"J7\", duration=250)\n",
       "            play(\"unit_ramp\"*amp(-0.099), \"P8\", duration=250)\n",
       "            align(\"P1\", \"J1\", \"P2\", \"P7\", \"J7\", \"P8\")\n",
       "            wait(9571, \"P1\", \"J1\", \"P2\", \"P7\", \"J7\", \"P8\")\n",
       "            align(\"P1\", \"J1\", \"P2\", \"P7\", \"J7\", \"P8\")\n",
       "            play(\"unit_ramp\"*amp(-0.03), \"P1\", duration=141)\n",
       "            play(\"unit_ramp\"*amp(0.03), \"P2\", duration=141)\n",
       "            play(\"unit_ramp\"*amp(-0.02), \"P7\", duration=141)\n",
       "            play(\"unit_ramp\"*amp(0.02), \"P8\", duration=141)\n",
       "            align(\"P1\", \"J1\", \"P2\", \"P7\", \"J7\", \"P8\")\n",
       "            wait(250, \"P1\", \"J1\", \"P2\", \"P7\", \"J7\", \"P8\")\n",
       "            ramp_to_zero(\"P1\")\n",
       "            ramp_to_zero(\"J1\")\n",
       "            ramp_to_zero(\"P2\")\n",
       "            ramp_to_zero(\"P7\")\n",
       "            ramp_to_zero(\"J7\")\n",
       "            ramp_to_zero(\"P8\")\n",
       "            align(\"P1\", \"J1\", \"P2\", \"P7\", \"J7\", \"P8\")\n",
       "            align()\n",
       "            align(\"P1\", \"J1\", \"P2\", \"P7\", \"J7\", \"P8\", \"SET1\", \"SET2\")\n",
       "            wait(25000, \"P1\", \"J1\", \"P2\", \"P7\", \"J7\", \"P8\", \"SET1\", \"SET2\")\n",
       "            align(\"P1\", \"J1\", \"P2\", \"P7\", \"J7\", \"P8\")\n",
       "            play(\"unit_ramp\"*amp(0.023), \"P1\", duration=6250)\n",
       "            play(\"unit_ramp\"*amp(-0.02), \"J1\", duration=6250)\n",
       "            play(\"unit_ramp\"*amp(-0.023), \"P2\", duration=6250)\n",
       "            play(\"unit_ramp\"*amp(-0.0325), \"P7\", duration=6250)\n",
       "            play(\"unit_ramp\"*amp(0.005), \"J7\", duration=6250)\n",
       "            play(\"unit_ramp\"*amp(0.0325), \"P8\", duration=6250)\n",
       "            align(\"P1\", \"J1\", \"P2\", \"P7\", \"J7\", \"P8\")\n",
       "            wait(25000, \"P1\", \"J1\", \"P2\", \"P7\", \"J7\", \"P8\", \"SET1\", \"SET2\")\n",
       "            align(\"P1\", \"J1\", \"P2\", \"P7\", \"J7\", \"P8\", \"SET1\", \"SET2\")\n",
       "            measure(\"measure\", \"SET1\", integration.full(\"x_const\", v5, \"\"))\n",
       "            measure(\"measure\", \"SET2\", integration.full(\"x_const\", v6, \"\"))\n",
       "            align(\"P1\", \"J1\", \"P2\", \"P7\", \"J7\", \"P8\", \"SET1\", \"SET2\")\n",
       "            wait(5000, \"P1\", \"J1\", \"P2\", \"P7\", \"J7\", \"P8\", \"SET1\", \"SET2\")\n",
       "            align(\"P1\", \"J1\", \"P2\", \"P7\", \"J7\", \"P8\")\n",
       "            play(\"unit_ramp\"*amp((v4-0.023)), \"P1\", duration=250)\n",
       "            play(\"unit_ramp\"*amp(((v4*-1)--0.023)), \"P2\", duration=250)\n",
       "            play(\"unit_ramp\"*amp(-0.0025000000000000022), \"P7\", duration=250)\n",
       "            play(\"unit_ramp\"*amp(0.0025000000000000022), \"P8\", duration=250)\n",
       "            align(\"P1\", \"J1\", \"P2\", \"P7\", \"J7\", \"P8\")\n",
       "            wait(25000, \"P1\", \"J1\", \"P2\", \"P7\", \"J7\", \"P8\", \"SET1\", \"SET2\")\n",
       "            align(\"P1\", \"J1\", \"P2\", \"P7\", \"J7\", \"P8\", \"SET1\", \"SET2\")\n",
       "            measure(\"measure\", \"SET1\", integration.full(\"x_const\", v7, \"\"))\n",
       "            measure(\"measure\", \"SET2\", integration.full(\"x_const\", v8, \"\"))\n",
       "            align(\"P1\", \"J1\", \"P2\", \"P7\", \"J7\", \"P8\", \"SET1\", \"SET2\")\n",
       "            align()\n",
       "            assign(v9, (v5-v7))\n",
       "            assign(v10, (v6-v8))\n",
       "            assign(v11, (v9>0.001))\n",
       "            assign(v12, (v10>-0.001))\n",
       "            align(\"P1\", \"J1\", \"P2\", \"P7\", \"J7\", \"P8\", \"SET1\", \"SET2\")\n",
       "            wait(5000, \"P1\", \"J1\", \"P2\", \"P7\", \"J7\", \"P8\", \"SET1\", \"SET2\")\n",
       "            ramp_to_zero(\"P1\")\n",
       "            ramp_to_zero(\"J1\")\n",
       "            ramp_to_zero(\"P2\")\n",
       "            ramp_to_zero(\"P7\")\n",
       "            ramp_to_zero(\"J7\")\n",
       "            ramp_to_zero(\"P8\")\n",
       "            align(\"P1\", \"J1\", \"P2\", \"P7\", \"J7\", \"P8\")\n",
       "            wait(1000, \"P1\", \"J1\", \"P2\", \"P7\", \"J7\", \"P8\", \"SET1\", \"SET2\")\n",
       "            align(\"P1\", \"J1\", \"P2\", \"P7\", \"J7\", \"P8\", \"SET1\", \"SET2\")\n",
       "            align()\n",
       "            align(\"P1\", \"J1\", \"P2\", \"P7\", \"J7\", \"P8\")\n",
       "            play(\"unit_ramp\"*amp(0.06), \"P1\", duration=250)\n",
       "            play(\"unit_ramp\"*amp(-0.085), \"J1\", duration=250)\n",
       "            play(\"unit_ramp\"*amp(-0.06), \"P2\", duration=250)\n",
       "            play(\"unit_ramp\"*amp(-0.07), \"P7\", duration=250)\n",
       "            play(\"unit_ramp\"*amp(-0.05), \"J7\", duration=250)\n",
       "            play(\"unit_ramp\"*amp(0.07), \"P8\", duration=250)\n",
       "            align(\"P1\", \"J1\", \"P2\", \"P7\", \"J7\", \"P8\")\n",
       "            wait(50000, \"P1\", \"J1\", \"P2\", \"P7\", \"J7\", \"P8\")\n",
       "            align(\"P1\", \"J1\", \"P2\", \"P7\", \"J7\", \"P8\")\n",
       "            play(\"unit_ramp\"*amp(-0.0165), \"P1\", duration=250)\n",
       "            play(\"unit_ramp\"*amp(0.035), \"J1\", duration=250)\n",
       "            play(\"unit_ramp\"*amp(0.0165), \"P2\", duration=250)\n",
       "            play(\"unit_ramp\"*amp(0.099), \"P7\", duration=250)\n",
       "            play(\"unit_ramp\"*amp(0.117), \"J7\", duration=250)\n",
       "            play(\"unit_ramp\"*amp(-0.099), \"P8\", duration=250)\n",
       "            align(\"P1\", \"J1\", \"P2\", \"P7\", \"J7\", \"P8\")\n",
       "            wait(9571, \"P1\", \"J1\", \"P2\", \"P7\", \"J7\", \"P8\")\n",
       "            align(\"P1\", \"J1\", \"P2\", \"P7\", \"J7\", \"P8\")\n",
       "            play(\"unit_ramp\"*amp(-0.03), \"P1\", duration=v3)\n",
       "            play(\"unit_ramp\"*amp(0.03), \"P2\", duration=v3)\n",
       "            play(\"unit_ramp\"*amp(-0.02), \"P7\", duration=v3)\n",
       "            play(\"unit_ramp\"*amp(0.02), \"P8\", duration=v3)\n",
       "            align(\"P1\", \"J1\", \"P2\", \"P7\", \"J7\", \"P8\")\n",
       "            wait(250, \"P1\", \"J1\", \"P2\", \"P7\", \"J7\", \"P8\")\n",
       "            ramp_to_zero(\"P1\")\n",
       "            ramp_to_zero(\"J1\")\n",
       "            ramp_to_zero(\"P2\")\n",
       "            ramp_to_zero(\"P7\")\n",
       "            ramp_to_zero(\"J7\")\n",
       "            ramp_to_zero(\"P8\")\n",
       "            align(\"P1\", \"J1\", \"P2\", \"P7\", \"J7\", \"P8\")\n",
       "            align()\n",
       "            align(\"P1\", \"J1\", \"P2\", \"P7\", \"J7\", \"P8\", \"SET1\", \"SET2\")\n",
       "            wait(25000, \"P1\", \"J1\", \"P2\", \"P7\", \"J7\", \"P8\", \"SET1\", \"SET2\")\n",
       "            align(\"P1\", \"J1\", \"P2\", \"P7\", \"J7\", \"P8\")\n",
       "            play(\"unit_ramp\"*amp(0.023), \"P1\", duration=6250)\n",
       "            play(\"unit_ramp\"*amp(-0.02), \"J1\", duration=6250)\n",
       "            play(\"unit_ramp\"*amp(-0.023), \"P2\", duration=6250)\n",
       "            play(\"unit_ramp\"*amp(-0.0325), \"P7\", duration=6250)\n",
       "            play(\"unit_ramp\"*amp(0.005), \"J7\", duration=6250)\n",
       "            play(\"unit_ramp\"*amp(0.0325), \"P8\", duration=6250)\n",
       "            align(\"P1\", \"J1\", \"P2\", \"P7\", \"J7\", \"P8\")\n",
       "            wait(25000, \"P1\", \"J1\", \"P2\", \"P7\", \"J7\", \"P8\", \"SET1\", \"SET2\")\n",
       "            align(\"P1\", \"J1\", \"P2\", \"P7\", \"J7\", \"P8\", \"SET1\", \"SET2\")\n",
       "            measure(\"measure\", \"SET1\", integration.full(\"x_const\", v13, \"\"))\n",
       "            measure(\"measure\", \"SET2\", integration.full(\"x_const\", v14, \"\"))\n",
       "            align(\"P1\", \"J1\", \"P2\", \"P7\", \"J7\", \"P8\", \"SET1\", \"SET2\")\n",
       "            wait(5000, \"P1\", \"J1\", \"P2\", \"P7\", \"J7\", \"P8\", \"SET1\", \"SET2\")\n",
       "            align(\"P1\", \"J1\", \"P2\", \"P7\", \"J7\", \"P8\")\n",
       "            play(\"unit_ramp\"*amp((v4-0.023)), \"P1\", duration=250)\n",
       "            play(\"unit_ramp\"*amp(((v4*-1)--0.023)), \"P2\", duration=250)\n",
       "            play(\"unit_ramp\"*amp(-0.0025000000000000022), \"P7\", duration=250)\n",
       "            play(\"unit_ramp\"*amp(0.0025000000000000022), \"P8\", duration=250)\n",
       "            align(\"P1\", \"J1\", \"P2\", \"P7\", \"J7\", \"P8\")\n",
       "            wait(25000, \"P1\", \"J1\", \"P2\", \"P7\", \"J7\", \"P8\", \"SET1\", \"SET2\")\n",
       "            align(\"P1\", \"J1\", \"P2\", \"P7\", \"J7\", \"P8\", \"SET1\", \"SET2\")\n",
       "            measure(\"measure\", \"SET1\", integration.full(\"x_const\", v15, \"\"))\n",
       "            measure(\"measure\", \"SET2\", integration.full(\"x_const\", v16, \"\"))\n",
       "            align(\"P1\", \"J1\", \"P2\", \"P7\", \"J7\", \"P8\", \"SET1\", \"SET2\")\n",
       "            align()\n",
       "            assign(v17, (v13-v15))\n",
       "            assign(v18, (v14-v16))\n",
       "            assign(v19, (v17>0.001))\n",
       "            assign(v20, (v18>-0.001))\n",
       "            align(\"P1\", \"J1\", \"P2\", \"P7\", \"J7\", \"P8\", \"SET1\", \"SET2\")\n",
       "            wait(5000, \"P1\", \"J1\", \"P2\", \"P7\", \"J7\", \"P8\", \"SET1\", \"SET2\")\n",
       "            ramp_to_zero(\"P1\")\n",
       "            ramp_to_zero(\"J1\")\n",
       "            ramp_to_zero(\"P2\")\n",
       "            ramp_to_zero(\"P7\")\n",
       "            ramp_to_zero(\"J7\")\n",
       "            ramp_to_zero(\"P8\")\n",
       "            align(\"P1\", \"J1\", \"P2\", \"P7\", \"J7\", \"P8\")\n",
       "            wait(1000, \"P1\", \"J1\", \"P2\", \"P7\", \"J7\", \"P8\", \"SET1\", \"SET2\")\n",
       "            align(\"P1\", \"J1\", \"P2\", \"P7\", \"J7\", \"P8\", \"SET1\", \"SET2\")\n",
       "            align()\n",
       "            r2 = declare_stream()\n",
       "            save(v5, r2)\n",
       "            r3 = declare_stream()\n",
       "            save(v6, r3)\n",
       "            r4 = declare_stream()\n",
       "            save(v7, r4)\n",
       "            r5 = declare_stream()\n",
       "            save(v8, r5)\n",
       "            r6 = declare_stream()\n",
       "            save(v9, r6)\n",
       "            r7 = declare_stream()\n",
       "            save(v10, r7)\n",
       "            r8 = declare_stream()\n",
       "            save(v11, r8)\n",
       "            r9 = declare_stream()\n",
       "            save(v12, r9)\n",
       "            r10 = declare_stream()\n",
       "            save(v13, r10)\n",
       "            r11 = declare_stream()\n",
       "            save(v14, r11)\n",
       "            r12 = declare_stream()\n",
       "            save(v15, r12)\n",
       "            r13 = declare_stream()\n",
       "            save(v16, r13)\n",
       "            r14 = declare_stream()\n",
       "            save(v17, r14)\n",
       "            r15 = declare_stream()\n",
       "            save(v18, r15)\n",
       "            r16 = declare_stream()\n",
       "            save(v19, r16)\n",
       "            r17 = declare_stream()\n",
       "            save(v20, r17)\n",
       "            align()\n",
       "            assign(v2, (v2+1))\n",
       "            r1 = declare_stream()\n",
       "            save(v2, r1)\n",
       "            align()\n",
       "            assign(v21, (v21+1))\n",
       "    with stream_processing():\n",
       "        r1.buffer(1).save(\"qm_driver_mock_measurement_shots\")\n",
       "        r2.buffer(100).save(\"qm_driver_mock_measurement_parity_read_even_ref__p1p2\")\n",
       "        r3.buffer(100).save(\"qm_driver_mock_measurement_parity_read_even_ref__p7p8\")\n",
       "        r4.buffer(100).save(\"qm_driver_mock_measurement_parity_read_even_read__p1p2\")\n",
       "        r5.buffer(100).save(\"qm_driver_mock_measurement_parity_read_even_read__p7p8\")\n",
       "        r6.buffer(100).save(\"qm_driver_mock_measurement_parity_read_even_diff__p1p2\")\n",
       "        r7.buffer(100).save(\"qm_driver_mock_measurement_parity_read_even_diff__p7p8\")\n",
       "        r8.buffer(100).save(\"qm_driver_mock_measurement_parity_read_even_state__p1p2\")\n",
       "        r9.buffer(100).save(\"qm_driver_mock_measurement_parity_read_even_state__p7p8\")\n",
       "        r10.buffer(100).save(\"qm_driver_mock_measurement_parity_read_odd_ref__p1p2\")\n",
       "        r11.buffer(100).save(\"qm_driver_mock_measurement_parity_read_odd_ref__p7p8\")\n",
       "        r12.buffer(100).save(\"qm_driver_mock_measurement_parity_read_odd_read__p1p2\")\n",
       "        r13.buffer(100).save(\"qm_driver_mock_measurement_parity_read_odd_read__p7p8\")\n",
       "        r14.buffer(100).save(\"qm_driver_mock_measurement_parity_read_odd_diff__p1p2\")\n",
       "        r15.buffer(100).save(\"qm_driver_mock_measurement_parity_read_odd_diff__p7p8\")\n",
       "        r16.buffer(100).save(\"qm_driver_mock_measurement_parity_read_odd_state__p1p2\")\n",
       "        r17.buffer(100).save(\"qm_driver_mock_measurement_parity_read_odd_state__p7p8\")\n",
       "\n",
       "config = None\n",
       "\n",
       "loaded_config = None\n",
       "\n",
       "\n",
       "
\n" ], "text/plain": [ "\n", "# Single QUA script generated at \u001b[1;36m2026\u001b[0m-\u001b[1;36m04\u001b[0m-\u001b[1;36m06\u001b[0m \u001b[1;92m05:21:53\u001b[0m.\u001b[1;36m054700\u001b[0m\n", "# QUA library version: \u001b[1;36m1.2\u001b[0m.\u001b[1;36m5\u001b[0m\n", "\n", "\n", "from qm import CompilerOptionArguments\n", "from qm.qua import *\n", "\n", "with \u001b[1;35mprogram\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m as prog:\n", " v1 = \u001b[1;35mdeclare\u001b[0m\u001b[1m(\u001b[0mint, \u001b[1m)\u001b[0m\n", " v2 = \u001b[1;35mdeclare\u001b[0m\u001b[1m(\u001b[0mint, \u001b[33mvalue\u001b[0m=\u001b[1;36m0\u001b[0m\u001b[1m)\u001b[0m\n", " v3 = \u001b[1;35mdeclare\u001b[0m\u001b[1m(\u001b[0mint, \u001b[1m)\u001b[0m\n", " input_stream_mock_measurement_int_input_stream = \u001b[1;35mdeclare_input_stream\u001b[0m\u001b[1m(\u001b[0mint, \u001b[32m'mock_measurement_int_input_stream'\u001b[0m,\n", "\u001b[33msize\u001b[0m=\u001b[1;36m1\u001b[0m\u001b[1m)\u001b[0m\n", " v4 = \u001b[1;35mdeclare\u001b[0m\u001b[1m(\u001b[0mfixed, \u001b[1m)\u001b[0m\n", " input_stream_mock_measurement_fixed_input_stream = \u001b[1;35mdeclare_input_stream\u001b[0m\u001b[1m(\u001b[0mfixed, \n", "\u001b[32m'mock_measurement_fixed_input_stream'\u001b[0m, \u001b[33msize\u001b[0m=\u001b[1;36m1\u001b[0m\u001b[1m)\u001b[0m\n", " v5 = \u001b[1;35mdeclare\u001b[0m\u001b[1m(\u001b[0mfixed, \u001b[1m)\u001b[0m\n", " v6 = \u001b[1;35mdeclare\u001b[0m\u001b[1m(\u001b[0mfixed, \u001b[1m)\u001b[0m\n", " v7 = \u001b[1;35mdeclare\u001b[0m\u001b[1m(\u001b[0mfixed, \u001b[1m)\u001b[0m\n", " v8 = \u001b[1;35mdeclare\u001b[0m\u001b[1m(\u001b[0mfixed, \u001b[1m)\u001b[0m\n", " v9 = \u001b[1;35mdeclare\u001b[0m\u001b[1m(\u001b[0mfixed, \u001b[1m)\u001b[0m\n", " v10 = \u001b[1;35mdeclare\u001b[0m\u001b[1m(\u001b[0mfixed, \u001b[1m)\u001b[0m\n", " v11 = \u001b[1;35mdeclare\u001b[0m\u001b[1m(\u001b[0mbool, \u001b[1m)\u001b[0m\n", " v12 = \u001b[1;35mdeclare\u001b[0m\u001b[1m(\u001b[0mbool, \u001b[1m)\u001b[0m\n", " v13 = \u001b[1;35mdeclare\u001b[0m\u001b[1m(\u001b[0mfixed, \u001b[1m)\u001b[0m\n", " v14 = \u001b[1;35mdeclare\u001b[0m\u001b[1m(\u001b[0mfixed, \u001b[1m)\u001b[0m\n", " v15 = \u001b[1;35mdeclare\u001b[0m\u001b[1m(\u001b[0mfixed, \u001b[1m)\u001b[0m\n", " v16 = \u001b[1;35mdeclare\u001b[0m\u001b[1m(\u001b[0mfixed, \u001b[1m)\u001b[0m\n", " v17 = \u001b[1;35mdeclare\u001b[0m\u001b[1m(\u001b[0mfixed, \u001b[1m)\u001b[0m\n", " v18 = \u001b[1;35mdeclare\u001b[0m\u001b[1m(\u001b[0mfixed, \u001b[1m)\u001b[0m\n", " v19 = \u001b[1;35mdeclare\u001b[0m\u001b[1m(\u001b[0mbool, \u001b[1m)\u001b[0m\n", " v20 = \u001b[1;35mdeclare\u001b[0m\u001b[1m(\u001b[0mbool, \u001b[1m)\u001b[0m\n", " v21 = \u001b[1;35mdeclare\u001b[0m\u001b[1m(\u001b[0mint, \u001b[1m)\u001b[0m\n", " with \u001b[1;35minfinite_loop_\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m:\n", " \u001b[1;35mpause\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m\n", " \u001b[1;35massign\u001b[0m\u001b[1m(\u001b[0mv2, \u001b[1;36m0\u001b[0m\u001b[1m)\u001b[0m\n", " \u001b[1;35madvance_input_stream\u001b[0m\u001b[1m(\u001b[0minput_stream_mock_measurement_int_input_stream\u001b[1m)\u001b[0m\n", " \u001b[1;35massign\u001b[0m\u001b[1m(\u001b[0mv3, input_stream_mock_measurement_int_input_stream\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1m]\u001b[0m\u001b[1m)\u001b[0m\n", " \u001b[1;35madvance_input_stream\u001b[0m\u001b[1m(\u001b[0minput_stream_mock_measurement_fixed_input_stream\u001b[1m)\u001b[0m\n", " \u001b[1;35massign\u001b[0m\u001b[1m(\u001b[0mv4, input_stream_mock_measurement_fixed_input_stream\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1m]\u001b[0m\u001b[1m)\u001b[0m\n", " \u001b[1;35massign\u001b[0m\u001b[1m(\u001b[0mv21, \u001b[1;36m0\u001b[0m\u001b[1m)\u001b[0m\n", " with \u001b[1;35mwhile_\u001b[0m\u001b[1m(\u001b[0m\u001b[1m(\u001b[0mv21\u001b[1m<\u001b[0m\u001b[1;36m100\u001b[0m\u001b[1;39m)\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m:\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35massign\u001b[0m\u001b[1;39m(\u001b[0m\u001b[39mv1, \u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m0\u001b[0m\u001b[39m+\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m1\u001b[0m\u001b[39m*v21\u001b[0m\u001b[1;39m)\u001b[0m\u001b[1;39m)\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35malign\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35malign\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mplay\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"unit_ramp\"\u001b[0m\u001b[39m*\u001b[0m\u001b[1;35mamp\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m0.06\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[33mduration\u001b[0m\u001b[39m=\u001b[0m\u001b[1;36m250\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mplay\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"unit_ramp\"\u001b[0m\u001b[39m*\u001b[0m\u001b[1;35mamp\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m-0.085\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[33mduration\u001b[0m\u001b[39m=\u001b[0m\u001b[1;36m250\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mplay\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"unit_ramp\"\u001b[0m\u001b[39m*\u001b[0m\u001b[1;35mamp\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m-0.06\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[33mduration\u001b[0m\u001b[39m=\u001b[0m\u001b[1;36m250\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mplay\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"unit_ramp\"\u001b[0m\u001b[39m*\u001b[0m\u001b[1;35mamp\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m-0.07\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[33mduration\u001b[0m\u001b[39m=\u001b[0m\u001b[1;36m250\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mplay\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"unit_ramp\"\u001b[0m\u001b[39m*\u001b[0m\u001b[1;35mamp\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m-0.05\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[33mduration\u001b[0m\u001b[39m=\u001b[0m\u001b[1;36m250\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mplay\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"unit_ramp\"\u001b[0m\u001b[39m*\u001b[0m\u001b[1;35mamp\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m0.07\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[39m, \u001b[0m\u001b[33mduration\u001b[0m\u001b[39m=\u001b[0m\u001b[1;36m250\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35malign\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mwait\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m50000\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35malign\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mplay\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"unit_ramp\"\u001b[0m\u001b[39m*\u001b[0m\u001b[1;35mamp\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m-0.0165\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[33mduration\u001b[0m\u001b[39m=\u001b[0m\u001b[1;36m250\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mplay\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"unit_ramp\"\u001b[0m\u001b[39m*\u001b[0m\u001b[1;35mamp\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m0.035\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[33mduration\u001b[0m\u001b[39m=\u001b[0m\u001b[1;36m250\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mplay\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"unit_ramp\"\u001b[0m\u001b[39m*\u001b[0m\u001b[1;35mamp\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m0.0165\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[33mduration\u001b[0m\u001b[39m=\u001b[0m\u001b[1;36m250\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mplay\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"unit_ramp\"\u001b[0m\u001b[39m*\u001b[0m\u001b[1;35mamp\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m0.099\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[33mduration\u001b[0m\u001b[39m=\u001b[0m\u001b[1;36m250\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mplay\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"unit_ramp\"\u001b[0m\u001b[39m*\u001b[0m\u001b[1;35mamp\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m0.117\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[33mduration\u001b[0m\u001b[39m=\u001b[0m\u001b[1;36m250\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mplay\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"unit_ramp\"\u001b[0m\u001b[39m*\u001b[0m\u001b[1;35mamp\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m-0.099\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[39m, \u001b[0m\u001b[33mduration\u001b[0m\u001b[39m=\u001b[0m\u001b[1;36m250\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35malign\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mwait\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m9571\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35malign\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mplay\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"unit_ramp\"\u001b[0m\u001b[39m*\u001b[0m\u001b[1;35mamp\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m-0.03\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[33mduration\u001b[0m\u001b[39m=\u001b[0m\u001b[1;36m141\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mplay\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"unit_ramp\"\u001b[0m\u001b[39m*\u001b[0m\u001b[1;35mamp\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m0.03\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[33mduration\u001b[0m\u001b[39m=\u001b[0m\u001b[1;36m141\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mplay\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"unit_ramp\"\u001b[0m\u001b[39m*\u001b[0m\u001b[1;35mamp\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m-0.02\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[33mduration\u001b[0m\u001b[39m=\u001b[0m\u001b[1;36m141\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mplay\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"unit_ramp\"\u001b[0m\u001b[39m*\u001b[0m\u001b[1;35mamp\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m0.02\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[39m, \u001b[0m\u001b[33mduration\u001b[0m\u001b[39m=\u001b[0m\u001b[1;36m141\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35malign\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mwait\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m250\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mramp_to_zero\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mramp_to_zero\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"J1\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mramp_to_zero\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mramp_to_zero\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mramp_to_zero\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"J7\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mramp_to_zero\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35malign\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35malign\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35malign\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"SET1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"SET2\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mwait\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m25000\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"SET1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"SET2\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35malign\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mplay\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"unit_ramp\"\u001b[0m\u001b[39m*\u001b[0m\u001b[1;35mamp\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m0.023\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[33mduration\u001b[0m\u001b[39m=\u001b[0m\u001b[1;36m6250\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mplay\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"unit_ramp\"\u001b[0m\u001b[39m*\u001b[0m\u001b[1;35mamp\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m-0.02\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[33mduration\u001b[0m\u001b[39m=\u001b[0m\u001b[1;36m6250\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mplay\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"unit_ramp\"\u001b[0m\u001b[39m*\u001b[0m\u001b[1;35mamp\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m-0.023\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[33mduration\u001b[0m\u001b[39m=\u001b[0m\u001b[1;36m6250\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mplay\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"unit_ramp\"\u001b[0m\u001b[39m*\u001b[0m\u001b[1;35mamp\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m-0.0325\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[33mduration\u001b[0m\u001b[39m=\u001b[0m\u001b[1;36m6250\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mplay\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"unit_ramp\"\u001b[0m\u001b[39m*\u001b[0m\u001b[1;35mamp\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m0.005\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[33mduration\u001b[0m\u001b[39m=\u001b[0m\u001b[1;36m6250\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mplay\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"unit_ramp\"\u001b[0m\u001b[39m*\u001b[0m\u001b[1;35mamp\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m0.0325\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[39m, \u001b[0m\u001b[33mduration\u001b[0m\u001b[39m=\u001b[0m\u001b[1;36m6250\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35malign\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mwait\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m25000\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"SET1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"SET2\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35malign\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"SET1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"SET2\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mmeasure\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"measure\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"SET1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[1;35mintegration.full\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"x_const\"\u001b[0m\u001b[39m, v5, \u001b[0m\u001b[32m\"\"\u001b[0m\u001b[1;39m)\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mmeasure\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"measure\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"SET2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[1;35mintegration.full\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"x_const\"\u001b[0m\u001b[39m, v6, \u001b[0m\u001b[32m\"\"\u001b[0m\u001b[1;39m)\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35malign\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"SET1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"SET2\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mwait\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m5000\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"SET1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"SET2\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35malign\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mplay\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"unit_ramp\"\u001b[0m\u001b[39m*\u001b[0m\u001b[1;35mamp\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;39m(\u001b[0m\u001b[39mv4-\u001b[0m\u001b[1;36m0.023\u001b[0m\u001b[1;39m)\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[33mduration\u001b[0m\u001b[39m=\u001b[0m\u001b[1;36m250\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mplay\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"unit_ramp\"\u001b[0m\u001b[39m*\u001b[0m\u001b[1;35mamp\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;39m(\u001b[0m\u001b[39mv4*\u001b[0m\u001b[1;36m-1\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m-\u001b[0m\u001b[1;36m-0.023\u001b[0m\u001b[1;39m)\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[33mduration\u001b[0m\u001b[39m=\u001b[0m\u001b[1;36m250\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mplay\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"unit_ramp\"\u001b[0m\u001b[39m*\u001b[0m\u001b[1;35mamp\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m-0.0025000000000000022\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[33mduration\u001b[0m\u001b[39m=\u001b[0m\u001b[1;36m250\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mplay\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"unit_ramp\"\u001b[0m\u001b[39m*\u001b[0m\u001b[1;35mamp\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m0.0025000000000000022\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[39m, \u001b[0m\u001b[33mduration\u001b[0m\u001b[39m=\u001b[0m\u001b[1;36m250\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35malign\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mwait\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m25000\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"SET1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"SET2\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35malign\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"SET1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"SET2\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mmeasure\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"measure\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"SET1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[1;35mintegration.full\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"x_const\"\u001b[0m\u001b[39m, v7, \u001b[0m\u001b[32m\"\"\u001b[0m\u001b[1;39m)\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mmeasure\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"measure\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"SET2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[1;35mintegration.full\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"x_const\"\u001b[0m\u001b[39m, v8, \u001b[0m\u001b[32m\"\"\u001b[0m\u001b[1;39m)\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35malign\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"SET1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"SET2\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35malign\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35massign\u001b[0m\u001b[1;39m(\u001b[0m\u001b[39mv9, \u001b[0m\u001b[1;39m(\u001b[0m\u001b[39mv5-v7\u001b[0m\u001b[1;39m)\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35massign\u001b[0m\u001b[1;39m(\u001b[0m\u001b[39mv10, \u001b[0m\u001b[1;39m(\u001b[0m\u001b[39mv6-v8\u001b[0m\u001b[1;39m)\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35massign\u001b[0m\u001b[1;39m(\u001b[0m\u001b[39mv11, \u001b[0m\u001b[1;39m(\u001b[0m\u001b[39mv9>\u001b[0m\u001b[1;36m0.001\u001b[0m\u001b[1;39m)\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35massign\u001b[0m\u001b[1;39m(\u001b[0m\u001b[39mv12, \u001b[0m\u001b[1;39m(\u001b[0m\u001b[39mv10>\u001b[0m\u001b[1;36m-0.001\u001b[0m\u001b[1;39m)\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35malign\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"SET1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"SET2\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mwait\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m5000\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"SET1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"SET2\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mramp_to_zero\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mramp_to_zero\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"J1\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mramp_to_zero\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mramp_to_zero\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mramp_to_zero\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"J7\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mramp_to_zero\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35malign\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mwait\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m1000\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"SET1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"SET2\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35malign\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"SET1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"SET2\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35malign\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35malign\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mplay\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"unit_ramp\"\u001b[0m\u001b[39m*\u001b[0m\u001b[1;35mamp\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m0.06\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[33mduration\u001b[0m\u001b[39m=\u001b[0m\u001b[1;36m250\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mplay\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"unit_ramp\"\u001b[0m\u001b[39m*\u001b[0m\u001b[1;35mamp\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m-0.085\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[33mduration\u001b[0m\u001b[39m=\u001b[0m\u001b[1;36m250\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mplay\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"unit_ramp\"\u001b[0m\u001b[39m*\u001b[0m\u001b[1;35mamp\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m-0.06\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[33mduration\u001b[0m\u001b[39m=\u001b[0m\u001b[1;36m250\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mplay\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"unit_ramp\"\u001b[0m\u001b[39m*\u001b[0m\u001b[1;35mamp\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m-0.07\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[33mduration\u001b[0m\u001b[39m=\u001b[0m\u001b[1;36m250\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mplay\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"unit_ramp\"\u001b[0m\u001b[39m*\u001b[0m\u001b[1;35mamp\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m-0.05\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[33mduration\u001b[0m\u001b[39m=\u001b[0m\u001b[1;36m250\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mplay\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"unit_ramp\"\u001b[0m\u001b[39m*\u001b[0m\u001b[1;35mamp\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m0.07\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[39m, \u001b[0m\u001b[33mduration\u001b[0m\u001b[39m=\u001b[0m\u001b[1;36m250\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35malign\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mwait\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m50000\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35malign\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mplay\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"unit_ramp\"\u001b[0m\u001b[39m*\u001b[0m\u001b[1;35mamp\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m-0.0165\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[33mduration\u001b[0m\u001b[39m=\u001b[0m\u001b[1;36m250\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mplay\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"unit_ramp\"\u001b[0m\u001b[39m*\u001b[0m\u001b[1;35mamp\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m0.035\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[33mduration\u001b[0m\u001b[39m=\u001b[0m\u001b[1;36m250\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mplay\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"unit_ramp\"\u001b[0m\u001b[39m*\u001b[0m\u001b[1;35mamp\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m0.0165\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[33mduration\u001b[0m\u001b[39m=\u001b[0m\u001b[1;36m250\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mplay\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"unit_ramp\"\u001b[0m\u001b[39m*\u001b[0m\u001b[1;35mamp\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m0.099\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[33mduration\u001b[0m\u001b[39m=\u001b[0m\u001b[1;36m250\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mplay\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"unit_ramp\"\u001b[0m\u001b[39m*\u001b[0m\u001b[1;35mamp\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m0.117\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[33mduration\u001b[0m\u001b[39m=\u001b[0m\u001b[1;36m250\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mplay\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"unit_ramp\"\u001b[0m\u001b[39m*\u001b[0m\u001b[1;35mamp\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m-0.099\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[39m, \u001b[0m\u001b[33mduration\u001b[0m\u001b[39m=\u001b[0m\u001b[1;36m250\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35malign\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mwait\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m9571\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35malign\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mplay\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"unit_ramp\"\u001b[0m\u001b[39m*\u001b[0m\u001b[1;35mamp\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m-0.03\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[33mduration\u001b[0m\u001b[39m=\u001b[0m\u001b[35mv3\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mplay\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"unit_ramp\"\u001b[0m\u001b[39m*\u001b[0m\u001b[1;35mamp\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m0.03\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[33mduration\u001b[0m\u001b[39m=\u001b[0m\u001b[35mv3\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mplay\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"unit_ramp\"\u001b[0m\u001b[39m*\u001b[0m\u001b[1;35mamp\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m-0.02\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[33mduration\u001b[0m\u001b[39m=\u001b[0m\u001b[35mv3\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mplay\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"unit_ramp\"\u001b[0m\u001b[39m*\u001b[0m\u001b[1;35mamp\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m0.02\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[39m, \u001b[0m\u001b[33mduration\u001b[0m\u001b[39m=\u001b[0m\u001b[35mv3\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35malign\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mwait\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m250\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mramp_to_zero\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mramp_to_zero\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"J1\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mramp_to_zero\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mramp_to_zero\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mramp_to_zero\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"J7\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mramp_to_zero\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35malign\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35malign\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35malign\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"SET1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"SET2\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mwait\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m25000\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"SET1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"SET2\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35malign\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mplay\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"unit_ramp\"\u001b[0m\u001b[39m*\u001b[0m\u001b[1;35mamp\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m0.023\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[33mduration\u001b[0m\u001b[39m=\u001b[0m\u001b[1;36m6250\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mplay\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"unit_ramp\"\u001b[0m\u001b[39m*\u001b[0m\u001b[1;35mamp\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m-0.02\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[33mduration\u001b[0m\u001b[39m=\u001b[0m\u001b[1;36m6250\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mplay\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"unit_ramp\"\u001b[0m\u001b[39m*\u001b[0m\u001b[1;35mamp\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m-0.023\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[33mduration\u001b[0m\u001b[39m=\u001b[0m\u001b[1;36m6250\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mplay\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"unit_ramp\"\u001b[0m\u001b[39m*\u001b[0m\u001b[1;35mamp\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m-0.0325\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[33mduration\u001b[0m\u001b[39m=\u001b[0m\u001b[1;36m6250\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mplay\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"unit_ramp\"\u001b[0m\u001b[39m*\u001b[0m\u001b[1;35mamp\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m0.005\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[33mduration\u001b[0m\u001b[39m=\u001b[0m\u001b[1;36m6250\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mplay\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"unit_ramp\"\u001b[0m\u001b[39m*\u001b[0m\u001b[1;35mamp\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m0.0325\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[39m, \u001b[0m\u001b[33mduration\u001b[0m\u001b[39m=\u001b[0m\u001b[1;36m6250\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35malign\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mwait\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m25000\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"SET1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"SET2\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35malign\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"SET1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"SET2\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mmeasure\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"measure\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"SET1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[1;35mintegration.full\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"x_const\"\u001b[0m\u001b[39m, v13, \u001b[0m\u001b[32m\"\"\u001b[0m\u001b[1;39m)\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mmeasure\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"measure\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"SET2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[1;35mintegration.full\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"x_const\"\u001b[0m\u001b[39m, v14, \u001b[0m\u001b[32m\"\"\u001b[0m\u001b[1;39m)\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35malign\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"SET1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"SET2\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mwait\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m5000\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"SET1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"SET2\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35malign\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mplay\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"unit_ramp\"\u001b[0m\u001b[39m*\u001b[0m\u001b[1;35mamp\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;39m(\u001b[0m\u001b[39mv4-\u001b[0m\u001b[1;36m0.023\u001b[0m\u001b[1;39m)\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[33mduration\u001b[0m\u001b[39m=\u001b[0m\u001b[1;36m250\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mplay\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"unit_ramp\"\u001b[0m\u001b[39m*\u001b[0m\u001b[1;35mamp\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;39m(\u001b[0m\u001b[39mv4*\u001b[0m\u001b[1;36m-1\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m-\u001b[0m\u001b[1;36m-0.023\u001b[0m\u001b[1;39m)\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[33mduration\u001b[0m\u001b[39m=\u001b[0m\u001b[1;36m250\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mplay\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"unit_ramp\"\u001b[0m\u001b[39m*\u001b[0m\u001b[1;35mamp\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m-0.0025000000000000022\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[33mduration\u001b[0m\u001b[39m=\u001b[0m\u001b[1;36m250\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mplay\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"unit_ramp\"\u001b[0m\u001b[39m*\u001b[0m\u001b[1;35mamp\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m0.0025000000000000022\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[39m, \u001b[0m\u001b[33mduration\u001b[0m\u001b[39m=\u001b[0m\u001b[1;36m250\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35malign\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mwait\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m25000\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"SET1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"SET2\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35malign\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"SET1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"SET2\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mmeasure\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"measure\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"SET1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[1;35mintegration.full\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"x_const\"\u001b[0m\u001b[39m, v15, \u001b[0m\u001b[32m\"\"\u001b[0m\u001b[1;39m)\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35mmeasure\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"measure\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"SET2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[1;35mintegration.full\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"x_const\"\u001b[0m\u001b[39m, v16, \u001b[0m\u001b[32m\"\"\u001b[0m\u001b[1;39m)\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35malign\u001b[0m\u001b[1;39m(\u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"J7\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"SET1\"\u001b[0m\u001b[39m, \u001b[0m\u001b[32m\"SET2\"\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35malign\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35massign\u001b[0m\u001b[1;39m(\u001b[0m\u001b[39mv17, \u001b[0m\u001b[1;39m(\u001b[0m\u001b[39mv13-v15\u001b[0m\u001b[1;39m)\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35massign\u001b[0m\u001b[1;39m(\u001b[0m\u001b[39mv18, \u001b[0m\u001b[1;39m(\u001b[0m\u001b[39mv14-v16\u001b[0m\u001b[1;39m)\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35massign\u001b[0m\u001b[1;39m(\u001b[0m\u001b[39mv19, \u001b[0m\u001b[1;39m(\u001b[0m\u001b[39mv17>\u001b[0m\u001b[1;36m0.001\u001b[0m\u001b[1;39m)\u001b[0m\u001b[1;39m)\u001b[0m\n", "\u001b[39m \u001b[0m\u001b[1;35massign\u001b[0m\u001b[1;39m(\u001b[0m\u001b[39mv20, \u001b[0m\u001b[1;39m(\u001b[0m\u001b[39mv18\u001b[0m\u001b[1m>\u001b[0m\u001b[1;36m-0.001\u001b[0m\u001b[1m)\u001b[0m\u001b[1m)\u001b[0m\n", " \u001b[1;35malign\u001b[0m\u001b[1m(\u001b[0m\u001b[32m\"P1\"\u001b[0m, \u001b[32m\"J1\"\u001b[0m, \u001b[32m\"P2\"\u001b[0m, \u001b[32m\"P7\"\u001b[0m, \u001b[32m\"J7\"\u001b[0m, \u001b[32m\"P8\"\u001b[0m, \u001b[32m\"SET1\"\u001b[0m, \u001b[32m\"SET2\"\u001b[0m\u001b[1m)\u001b[0m\n", " \u001b[1;35mwait\u001b[0m\u001b[1m(\u001b[0m\u001b[1;36m5000\u001b[0m, \u001b[32m\"P1\"\u001b[0m, \u001b[32m\"J1\"\u001b[0m, \u001b[32m\"P2\"\u001b[0m, \u001b[32m\"P7\"\u001b[0m, \u001b[32m\"J7\"\u001b[0m, \u001b[32m\"P8\"\u001b[0m, \u001b[32m\"SET1\"\u001b[0m, \u001b[32m\"SET2\"\u001b[0m\u001b[1m)\u001b[0m\n", " \u001b[1;35mramp_to_zero\u001b[0m\u001b[1m(\u001b[0m\u001b[32m\"P1\"\u001b[0m\u001b[1m)\u001b[0m\n", " \u001b[1;35mramp_to_zero\u001b[0m\u001b[1m(\u001b[0m\u001b[32m\"J1\"\u001b[0m\u001b[1m)\u001b[0m\n", " \u001b[1;35mramp_to_zero\u001b[0m\u001b[1m(\u001b[0m\u001b[32m\"P2\"\u001b[0m\u001b[1m)\u001b[0m\n", " \u001b[1;35mramp_to_zero\u001b[0m\u001b[1m(\u001b[0m\u001b[32m\"P7\"\u001b[0m\u001b[1m)\u001b[0m\n", " \u001b[1;35mramp_to_zero\u001b[0m\u001b[1m(\u001b[0m\u001b[32m\"J7\"\u001b[0m\u001b[1m)\u001b[0m\n", " \u001b[1;35mramp_to_zero\u001b[0m\u001b[1m(\u001b[0m\u001b[32m\"P8\"\u001b[0m\u001b[1m)\u001b[0m\n", " \u001b[1;35malign\u001b[0m\u001b[1m(\u001b[0m\u001b[32m\"P1\"\u001b[0m, \u001b[32m\"J1\"\u001b[0m, \u001b[32m\"P2\"\u001b[0m, \u001b[32m\"P7\"\u001b[0m, \u001b[32m\"J7\"\u001b[0m, \u001b[32m\"P8\"\u001b[0m\u001b[1m)\u001b[0m\n", " \u001b[1;35mwait\u001b[0m\u001b[1m(\u001b[0m\u001b[1;36m1000\u001b[0m, \u001b[32m\"P1\"\u001b[0m, \u001b[32m\"J1\"\u001b[0m, \u001b[32m\"P2\"\u001b[0m, \u001b[32m\"P7\"\u001b[0m, \u001b[32m\"J7\"\u001b[0m, \u001b[32m\"P8\"\u001b[0m, \u001b[32m\"SET1\"\u001b[0m, \u001b[32m\"SET2\"\u001b[0m\u001b[1m)\u001b[0m\n", " \u001b[1;35malign\u001b[0m\u001b[1m(\u001b[0m\u001b[32m\"P1\"\u001b[0m, \u001b[32m\"J1\"\u001b[0m, \u001b[32m\"P2\"\u001b[0m, \u001b[32m\"P7\"\u001b[0m, \u001b[32m\"J7\"\u001b[0m, \u001b[32m\"P8\"\u001b[0m, \u001b[32m\"SET1\"\u001b[0m, \u001b[32m\"SET2\"\u001b[0m\u001b[1m)\u001b[0m\n", " \u001b[1;35malign\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m\n", " r2 = \u001b[1;35mdeclare_stream\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m\n", " \u001b[1;35msave\u001b[0m\u001b[1m(\u001b[0mv5, r2\u001b[1m)\u001b[0m\n", " r3 = \u001b[1;35mdeclare_stream\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m\n", " \u001b[1;35msave\u001b[0m\u001b[1m(\u001b[0mv6, r3\u001b[1m)\u001b[0m\n", " r4 = \u001b[1;35mdeclare_stream\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m\n", " \u001b[1;35msave\u001b[0m\u001b[1m(\u001b[0mv7, r4\u001b[1m)\u001b[0m\n", " r5 = \u001b[1;35mdeclare_stream\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m\n", " \u001b[1;35msave\u001b[0m\u001b[1m(\u001b[0mv8, r5\u001b[1m)\u001b[0m\n", " r6 = \u001b[1;35mdeclare_stream\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m\n", " \u001b[1;35msave\u001b[0m\u001b[1m(\u001b[0mv9, r6\u001b[1m)\u001b[0m\n", " r7 = \u001b[1;35mdeclare_stream\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m\n", " \u001b[1;35msave\u001b[0m\u001b[1m(\u001b[0mv10, r7\u001b[1m)\u001b[0m\n", " r8 = \u001b[1;35mdeclare_stream\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m\n", " \u001b[1;35msave\u001b[0m\u001b[1m(\u001b[0mv11, r8\u001b[1m)\u001b[0m\n", " r9 = \u001b[1;35mdeclare_stream\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m\n", " \u001b[1;35msave\u001b[0m\u001b[1m(\u001b[0mv12, r9\u001b[1m)\u001b[0m\n", " r10 = \u001b[1;35mdeclare_stream\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m\n", " \u001b[1;35msave\u001b[0m\u001b[1m(\u001b[0mv13, r10\u001b[1m)\u001b[0m\n", " r11 = \u001b[1;35mdeclare_stream\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m\n", " \u001b[1;35msave\u001b[0m\u001b[1m(\u001b[0mv14, r11\u001b[1m)\u001b[0m\n", " r12 = \u001b[1;35mdeclare_stream\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m\n", " \u001b[1;35msave\u001b[0m\u001b[1m(\u001b[0mv15, r12\u001b[1m)\u001b[0m\n", " r13 = \u001b[1;35mdeclare_stream\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m\n", " \u001b[1;35msave\u001b[0m\u001b[1m(\u001b[0mv16, r13\u001b[1m)\u001b[0m\n", " r14 = \u001b[1;35mdeclare_stream\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m\n", " \u001b[1;35msave\u001b[0m\u001b[1m(\u001b[0mv17, r14\u001b[1m)\u001b[0m\n", " r15 = \u001b[1;35mdeclare_stream\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m\n", " \u001b[1;35msave\u001b[0m\u001b[1m(\u001b[0mv18, r15\u001b[1m)\u001b[0m\n", " r16 = \u001b[1;35mdeclare_stream\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m\n", " \u001b[1;35msave\u001b[0m\u001b[1m(\u001b[0mv19, r16\u001b[1m)\u001b[0m\n", " r17 = \u001b[1;35mdeclare_stream\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m\n", " \u001b[1;35msave\u001b[0m\u001b[1m(\u001b[0mv20, r17\u001b[1m)\u001b[0m\n", " \u001b[1;35malign\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m\n", " \u001b[1;35massign\u001b[0m\u001b[1m(\u001b[0mv2, \u001b[1m(\u001b[0mv2+\u001b[1;36m1\u001b[0m\u001b[1m)\u001b[0m\u001b[1m)\u001b[0m\n", " r1 = \u001b[1;35mdeclare_stream\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m\n", " \u001b[1;35msave\u001b[0m\u001b[1m(\u001b[0mv2, r1\u001b[1m)\u001b[0m\n", " \u001b[1;35malign\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m\n", " \u001b[1;35massign\u001b[0m\u001b[1m(\u001b[0mv21, \u001b[1m(\u001b[0mv21+\u001b[1;36m1\u001b[0m\u001b[1m)\u001b[0m\u001b[1m)\u001b[0m\n", " with \u001b[1;35mstream_processing\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m:\n", " \u001b[1;35mr1.buffer\u001b[0m\u001b[1m(\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1m)\u001b[0m\u001b[1;35m.save\u001b[0m\u001b[1m(\u001b[0m\u001b[32m\"qm_driver_mock_measurement_shots\"\u001b[0m\u001b[1m)\u001b[0m\n", " \u001b[1;35mr2.buffer\u001b[0m\u001b[1m(\u001b[0m\u001b[1;36m100\u001b[0m\u001b[1m)\u001b[0m\u001b[1;35m.save\u001b[0m\u001b[1m(\u001b[0m\u001b[32m\"qm_driver_mock_measurement_parity_read_even_ref__p1p2\"\u001b[0m\u001b[1m)\u001b[0m\n", " \u001b[1;35mr3.buffer\u001b[0m\u001b[1m(\u001b[0m\u001b[1;36m100\u001b[0m\u001b[1m)\u001b[0m\u001b[1;35m.save\u001b[0m\u001b[1m(\u001b[0m\u001b[32m\"qm_driver_mock_measurement_parity_read_even_ref__p7p8\"\u001b[0m\u001b[1m)\u001b[0m\n", " \u001b[1;35mr4.buffer\u001b[0m\u001b[1m(\u001b[0m\u001b[1;36m100\u001b[0m\u001b[1m)\u001b[0m\u001b[1;35m.save\u001b[0m\u001b[1m(\u001b[0m\u001b[32m\"qm_driver_mock_measurement_parity_read_even_read__p1p2\"\u001b[0m\u001b[1m)\u001b[0m\n", " \u001b[1;35mr5.buffer\u001b[0m\u001b[1m(\u001b[0m\u001b[1;36m100\u001b[0m\u001b[1m)\u001b[0m\u001b[1;35m.save\u001b[0m\u001b[1m(\u001b[0m\u001b[32m\"qm_driver_mock_measurement_parity_read_even_read__p7p8\"\u001b[0m\u001b[1m)\u001b[0m\n", " \u001b[1;35mr6.buffer\u001b[0m\u001b[1m(\u001b[0m\u001b[1;36m100\u001b[0m\u001b[1m)\u001b[0m\u001b[1;35m.save\u001b[0m\u001b[1m(\u001b[0m\u001b[32m\"qm_driver_mock_measurement_parity_read_even_diff__p1p2\"\u001b[0m\u001b[1m)\u001b[0m\n", " \u001b[1;35mr7.buffer\u001b[0m\u001b[1m(\u001b[0m\u001b[1;36m100\u001b[0m\u001b[1m)\u001b[0m\u001b[1;35m.save\u001b[0m\u001b[1m(\u001b[0m\u001b[32m\"qm_driver_mock_measurement_parity_read_even_diff__p7p8\"\u001b[0m\u001b[1m)\u001b[0m\n", " \u001b[1;35mr8.buffer\u001b[0m\u001b[1m(\u001b[0m\u001b[1;36m100\u001b[0m\u001b[1m)\u001b[0m\u001b[1;35m.save\u001b[0m\u001b[1m(\u001b[0m\u001b[32m\"qm_driver_mock_measurement_parity_read_even_state__p1p2\"\u001b[0m\u001b[1m)\u001b[0m\n", " \u001b[1;35mr9.buffer\u001b[0m\u001b[1m(\u001b[0m\u001b[1;36m100\u001b[0m\u001b[1m)\u001b[0m\u001b[1;35m.save\u001b[0m\u001b[1m(\u001b[0m\u001b[32m\"qm_driver_mock_measurement_parity_read_even_state__p7p8\"\u001b[0m\u001b[1m)\u001b[0m\n", " \u001b[1;35mr10.buffer\u001b[0m\u001b[1m(\u001b[0m\u001b[1;36m100\u001b[0m\u001b[1m)\u001b[0m\u001b[1;35m.save\u001b[0m\u001b[1m(\u001b[0m\u001b[32m\"qm_driver_mock_measurement_parity_read_odd_ref__p1p2\"\u001b[0m\u001b[1m)\u001b[0m\n", " \u001b[1;35mr11.buffer\u001b[0m\u001b[1m(\u001b[0m\u001b[1;36m100\u001b[0m\u001b[1m)\u001b[0m\u001b[1;35m.save\u001b[0m\u001b[1m(\u001b[0m\u001b[32m\"qm_driver_mock_measurement_parity_read_odd_ref__p7p8\"\u001b[0m\u001b[1m)\u001b[0m\n", " \u001b[1;35mr12.buffer\u001b[0m\u001b[1m(\u001b[0m\u001b[1;36m100\u001b[0m\u001b[1m)\u001b[0m\u001b[1;35m.save\u001b[0m\u001b[1m(\u001b[0m\u001b[32m\"qm_driver_mock_measurement_parity_read_odd_read__p1p2\"\u001b[0m\u001b[1m)\u001b[0m\n", " \u001b[1;35mr13.buffer\u001b[0m\u001b[1m(\u001b[0m\u001b[1;36m100\u001b[0m\u001b[1m)\u001b[0m\u001b[1;35m.save\u001b[0m\u001b[1m(\u001b[0m\u001b[32m\"qm_driver_mock_measurement_parity_read_odd_read__p7p8\"\u001b[0m\u001b[1m)\u001b[0m\n", " \u001b[1;35mr14.buffer\u001b[0m\u001b[1m(\u001b[0m\u001b[1;36m100\u001b[0m\u001b[1m)\u001b[0m\u001b[1;35m.save\u001b[0m\u001b[1m(\u001b[0m\u001b[32m\"qm_driver_mock_measurement_parity_read_odd_diff__p1p2\"\u001b[0m\u001b[1m)\u001b[0m\n", " \u001b[1;35mr15.buffer\u001b[0m\u001b[1m(\u001b[0m\u001b[1;36m100\u001b[0m\u001b[1m)\u001b[0m\u001b[1;35m.save\u001b[0m\u001b[1m(\u001b[0m\u001b[32m\"qm_driver_mock_measurement_parity_read_odd_diff__p7p8\"\u001b[0m\u001b[1m)\u001b[0m\n", " \u001b[1;35mr16.buffer\u001b[0m\u001b[1m(\u001b[0m\u001b[1;36m100\u001b[0m\u001b[1m)\u001b[0m\u001b[1;35m.save\u001b[0m\u001b[1m(\u001b[0m\u001b[32m\"qm_driver_mock_measurement_parity_read_odd_state__p1p2\"\u001b[0m\u001b[1m)\u001b[0m\n", " \u001b[1;35mr17.buffer\u001b[0m\u001b[1m(\u001b[0m\u001b[1;36m100\u001b[0m\u001b[1m)\u001b[0m\u001b[1;35m.save\u001b[0m\u001b[1m(\u001b[0m\u001b[32m\"qm_driver_mock_measurement_parity_read_odd_state__p7p8\"\u001b[0m\u001b[1m)\u001b[0m\n", "\n", "config = \u001b[3;35mNone\u001b[0m\n", "\n", "loaded_config = \u001b[3;35mNone\u001b[0m\n", "\n", "\n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "rprint(mock_measurement.get_qua_program_as_str())" ] }, { "cell_type": "markdown", "id": "71b28fcc-cd86-4f1f-b47e-0e11c31717d9", "metadata": {}, "source": [ "The interface is now ready for execution. In this tutorial, we operate in mock mode, but the same workflow applies to real hardware.\n", "\n", "Parameter sets can be evaluated using `run_parameter_set`, which:\n", "- streams the provided values into the program\n", "- executes the measurement\n", "- returns the recorded data and the used parameters" ] }, { "cell_type": "code", "execution_count": 9, "id": "2c802ebe-6c7d-4431-932a-99b675c3e5b3", "metadata": { "scrolled": true }, "outputs": [], "source": [ "qm_driver.is_mock = True\n", "mock_measurement.mock_steps = 0\n", "# mock_measurement.tuning_interface.compile_connect_and_run( host_ip = 'xxx.xxx.xxx.xxx')" ] }, { "cell_type": "markdown", "id": "ce9d89dd-adfb-44ff-b52e-02b233d05de7", "metadata": {}, "source": [ "### The first steps" ] }, { "cell_type": "markdown", "id": "1ffb86c7-f686-4a91-84ba-0728135e483b", "metadata": {}, "source": [ "The tuning interface is now ready to be used. Values to be measured can now be inserted the following way via `run_parameter_set`:" ] }, { "cell_type": "code", "execution_count": 14, "id": "d641b2d6-d299-475f-b280-57f9c08fe4a1", "metadata": {}, "outputs": [], "source": [ "step_dict = {\n", " mock_measurement.parity_init_odd.arbok_params.t_ramp_over_crossing: 100,\n", " mock_measurement.parity_read_even.arbok_params.v_read['P1']: 0.1\n", " }\n", "gettable_results, saved_params = tuning_interface.run_parameter_set(step_dict)" ] }, { "cell_type": "markdown", "id": "987d4161-3a32-4a33-8e13-52af4f81c64a", "metadata": {}, "source": [ "## Cross-entropy sampling\n", "\n", "Exploring high-dimensional parameter spaces manually is often impractical. To address this, the interface includes a cross-entropy sampling algorithm for automated optimization.\n", "\n", "A key feature of the updated API is that the **cost function is provided as a simple callable**, allowing users to define optimization objectives in a lightweight and flexible way.\n", "\n", "The method operates iteratively:\n", "1. Generate a population of random parameter sets within the defined bounds.\n", "2. Evaluate their performance using the user-defined cost function.\n", "3. Select the top-performing fraction (`select_frac`).\n", "4. Shrink the parameter bounds based on these elite samples.\n", "5. Repeat for subsequent populations.\n", "\n", "This approach efficiently concentrates the search around promising regions of parameter space while maintaining robustness against local minima." ] }, { "cell_type": "code", "execution_count": 11, "id": "f214dd77", "metadata": {}, "outputs": [], "source": [ "def cost_strategy(gettables: dict) -> float:\n", " cost = np.mean(\n", " gettables[mock_measurement.parity_read_even.p1p2.diff__p1p2])\n", " cost -= np.mean(\n", " gettables[mock_measurement.parity_read_odd.p1p2.diff__p1p2])\n", " return cost" ] }, { "cell_type": "code", "execution_count": null, "id": "ef50322a-f74f-4f8f-bca2-26786dc6e44b", "metadata": { "scrolled": true }, "outputs": [], "source": [ "dataset = tuning_interface.run_cross_entropy_sampler(\n", " populations = [20, 10, 10],\n", " cost_strategy = cost_strategy,\n", " select_frac = 0.25,\n", " plot_histograms = True,\n", " sampling_params_to_plot = [('t_ramp_init', 'read_detuning')]\n", ")\n", "dataset" ] }, { "cell_type": "markdown", "id": "71e7c314-bd5b-4dbc-a55b-93c60d4692bd", "metadata": {}, "source": [ "## Summary\n", "\n", "In this tutorial, we introduced the `GenericTuningInterface`, a flexible framework for adaptive parameter optimization in quantum experiments.\n", "\n", "By leveraging input streams, the interface enables dynamic parameter updates during execution, removing the need for predefined sweeps. This allows efficient exploration of high-dimensional and non-linear parameter spaces.\n", "\n", "We demonstrated how to:\n", "- define a custom cost function via `CostStrategy`,\n", "- map high-level tuning parameters to underlying QUA variables,\n", "- execute parameter updates in real time,\n", "- and perform automated optimization using cross-entropy sampling.\n", "\n", "The interface provides a scalable and extensible approach to experiment tuning, combining hardware-efficient execution with flexible software abstractions. It is particularly well suited for complex experiments where performance depends on many interdependent parameters." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.13.5" } }, "nbformat": 4, "nbformat_minor": 5 }