From 0565d5eac3be7916f6954f584c5362d932e09da4 Mon Sep 17 00:00:00 2001 From: king-p3nguin Date: Sun, 7 Apr 2024 05:27:21 +0900 Subject: [PATCH 01/56] allow various parameterexpressions --- requirements/requirements-extra.txt | 4 +- tensorcircuit/abstractcircuit.py | 12 ++-- tensorcircuit/translation.py | 86 ++++++++++++++--------------- tests/test_circuit.py | 41 +++++++++----- 4 files changed, 77 insertions(+), 66 deletions(-) diff --git a/requirements/requirements-extra.txt b/requirements/requirements-extra.txt index 9475bddf..e5cd85a8 100644 --- a/requirements/requirements-extra.txt +++ b/requirements/requirements-extra.txt @@ -1,7 +1,7 @@ # extra dependencies for ci qiskit<1.0 -qiskit_aer<1.0 -# qiskit-nature +qiskit-aer<1.0 +qiskit-nature mitiq cirq torch diff --git a/tensorcircuit/abstractcircuit.py b/tensorcircuit/abstractcircuit.py index ac2b9116..2334aa39 100644 --- a/tensorcircuit/abstractcircuit.py +++ b/tensorcircuit/abstractcircuit.py @@ -4,21 +4,21 @@ # pylint: disable=invalid-name -from typing import Any, Callable, Dict, List, Optional, Sequence, Union, Tuple +import json +import logging from copy import deepcopy from functools import reduce from operator import add -import json -import logging +from typing import Any, Callable, Dict, List, Optional, Sequence, Tuple, Union import numpy as np import tensornetwork as tn from . import gates from .cons import backend, dtypestr -from .vis import qir2tex from .quantum import QuOperator from .utils import is_sequence +from .vis import qir2tex logger = logging.getLogger(__name__) @@ -756,7 +756,7 @@ def to_qiskit( :type enable_inputs: bool, defaults to False :return: A qiskit object of this circuit. """ - from .translation import qir2qiskit, perm_matrix + from .translation import perm_matrix, qir2qiskit qir = self.to_qir() if enable_instruction: @@ -887,7 +887,7 @@ def from_qiskit( n = qc.num_qubits return qiskit2tc( # type: ignore - qc.data, + qc, n, inputs, circuit_constructor=cls, diff --git a/tensorcircuit/translation.py b/tensorcircuit/translation.py index e297113d..fcef21d4 100644 --- a/tensorcircuit/translation.py +++ b/tensorcircuit/translation.py @@ -2,23 +2,26 @@ Circuit object translation in different packages """ -from typing import Any, Dict, List, Optional, Tuple, Union, Sequence -from copy import deepcopy import logging +from copy import deepcopy +from typing import Any, Dict, List, Optional, Sequence, Tuple, Union + import numpy as np logger = logging.getLogger(__name__) try: + import qiskit.quantum_info as qi + import symengine + import sympy from qiskit import QuantumCircuit + from qiskit.circuit import Parameter, ParameterExpression from qiskit.circuit.library import XXPlusYYGate + from qiskit.circuit.parametervector import ParameterVectorElement + from qiskit.circuit.quantumcircuitdata import CircuitInstruction from qiskit.extensions import UnitaryGate - import qiskit.quantum_info as qi from qiskit.extensions.exceptions import ExtensionError - from qiskit.circuit.quantumcircuitdata import CircuitInstruction - from qiskit.circuit.parametervector import ParameterVectorElement - from qiskit.circuit import Parameter, ParameterExpression except ImportError: logger.warning( "Please first ``pip install -U qiskit`` to enable related functionality in translation module" @@ -34,11 +37,10 @@ from . import gates from .circuit import Circuit -from .densitymatrix import DMCircuit2 from .cons import backend +from .densitymatrix import DMCircuit2 from .interfaces.tensortrans import tensor_to_numpy - Tensor = Any @@ -358,7 +360,7 @@ def _translate_qiskit_params( gate_info: CircuitInstruction, binding_params: Any ) -> List[float]: parameters = [] - for p in gate_info[0].params: + for p in gate_info.operation.params: if isinstance(p, ParameterVectorElement): parameters.append(binding_params[p.index]) elif isinstance(p, Parameter): @@ -367,30 +369,29 @@ def _translate_qiskit_params( if len(p.parameters) == 0: parameters.append(float(p)) continue - if len(p.parameters) != 1: - raise ValueError( - f"Can't translate parameter expression with more than 1 parameters: {p}" - ) - p_real = list(p.parameters)[0] - if not isinstance(p_real, ParameterVectorElement): - raise TypeError( - "Parameters in parameter expression should be ParameterVectorElement" - ) + # note "sym" != "sim" expr = p.sympify().simplify() - # only allow simple expressions like 1.0 * theta - if not expr.is_Mul: - raise ValueError(f"Unsupported parameter expression: {p}") - arg1, arg2 = expr.args - if arg1.is_number and arg2.is_symbol: - coeff = arg1 - elif arg1.is_symbol and arg2.is_number: - coeff = arg2 - else: - raise ValueError(f"Unsupported parameter expression: {p}") - # taking real part here because using complex type will result in a type error - # for tf backend when the binding parameter is real - parameters.append(float(coeff) * binding_params[p_real.index]) + if isinstance(expr, symengine.Expr): # qiskit uses symengine if available + expr = expr._sympy_() # sympy.Expr + + for free_symbol in expr.free_symbols: + # replace names: theta[0] -> theta_0 + # ParameterVector creates symbols with brackets like theta[0] + # but sympy.lambdify does not allow brackets in symbol names + free_symbol.name = free_symbol.name.replace("[", "_").replace("]", "") + + parameter_list = list(p.parameters) + sympy_symbols = [param._symbol_expr for param in parameter_list] + # replace names again: theta[0] -> theta_0 + sympy_symbols = [ + sympy.Symbol(str(symbol).replace("[", "_").replace("]", "")) + for symbol in sympy_symbols + ] + lam_f = sympy.lambdify(sympy_symbols, expr, modules=backend.name) + parameters.append( + lam_f(*[binding_params[param.index] for param in parameter_list]) + ) else: # numbers, arrays, etc. parameters.append(p) @@ -403,7 +404,7 @@ def ctrl_str2ctrl_state(ctrl_str: str, nctrl: int) -> List[int]: def qiskit2tc( - qcdata: List[CircuitInstruction], + qc: QuantumCircuit, n: int, inputs: Optional[List[float]] = None, is_dm: bool = False, @@ -412,19 +413,18 @@ def qiskit2tc( binding_params: Optional[Union[Sequence[float], Dict[Any, float]]] = None, ) -> Any: r""" - Generate a tensorcircuit circuit using the quantum circuit data in qiskit. + Generate a tensorcircuit circuit from the qiskit circuit. :Example: >>> qisc = QuantumCircuit(2) >>> qisc.h(0) >>> qisc.x(1) - >>> qc = tc.translation.qiskit2tc(qisc.data, 2) + >>> qc = tc.translation.qiskit2tc(qisc, 2) >>> qc.to_qir()[0]['gatef'] - h - :param qcdata: Quantum circuit data from qiskit. - :type qcdata: List[CircuitInstruction] + :param qc: A quantum circuit in qiskit. + :type qc: QuantumCircuit :param n: # of qubits :type n: int :param inputs: Input state of the circuit. Default is None. @@ -435,7 +435,7 @@ def qiskit2tc( :type circuit_params: Optional[Dict[str, Any]] :param binding_params: (variational) parameters for the circuit. Could be either a sequence or dictionary depending on the type of parameters in the Qiskit circuit. - For ``ParameterVectorElement`` use sequence. For ``Parameter`` use dictionary + For ``ParameterVectorElement`` use sequence. For ``Parameter`` use dictionary. :type binding_params: Optional[Union[Sequence[float], Dict[Any, float]]] :return: A quantum circuit in tensorcircuit :rtype: Any @@ -451,17 +451,17 @@ def qiskit2tc( if "nqubits" not in circuit_params: circuit_params["nqubits"] = n if ( - len(qcdata) > 0 - and qcdata[0][0].name == "initialize" + len(qc.data) > 0 + and qc.data[0][0].name == "initialize" and "inputs" not in circuit_params ): - circuit_params["inputs"] = perm_matrix(n) @ np.array(qcdata[0][0].params) + circuit_params["inputs"] = perm_matrix(n) @ np.array(qc.data[0][0].params) if inputs is not None: circuit_params["inputs"] = inputs tc_circuit: Any = Circ(**circuit_params) - for gate_info in qcdata: - idx = [qb.index for qb in gate_info[1]] + for gate_info in qc.data: + idx = [qc.find_bit(qb).index for qb in gate_info.qubits] gate_name = gate_info[0].name parameters = _translate_qiskit_params(gate_info, binding_params) if gate_name in [ diff --git a/tests/test_circuit.py b/tests/test_circuit.py index cb67eb36..b1d45dd6 100644 --- a/tests/test_circuit.py +++ b/tests/test_circuit.py @@ -1,8 +1,9 @@ # pylint: disable=invalid-name -import sys import os +import sys from functools import partial + import numpy as np import opt_einsum as oem import pytest @@ -975,6 +976,7 @@ def test_qir2cirq(backend): def test_qir2qiskit(backend): try: import qiskit.quantum_info as qi + from tensorcircuit.translation import perm_matrix except ImportError: pytest.skip("qiskit is not installed") @@ -1074,9 +1076,10 @@ def test_qir2qiskit(backend): def test_qiskit2tc(): try: - from qiskit import QuantumCircuit import qiskit.quantum_info as qi + from qiskit import QuantumCircuit from qiskit.circuit.library.standard_gates import MCXGate, SwapGate + from tensorcircuit.translation import perm_matrix except ImportError: pytest.skip("qiskit is not installed") @@ -1149,26 +1152,34 @@ def test_qiskit2tc(): @pytest.mark.parametrize("backend", [lf("tfb"), lf("jaxb")]) def test_qiskit2tc_parameterized(backend): try: - from qiskit.circuit import QuantumCircuit, Parameter - from qiskit.quantum_info import Operator + from qiskit.circuit import Parameter, ParameterVector, QuantumCircuit from qiskit.circuit.library import TwoLocal + from qiskit.quantum_info import Operator from qiskit_nature.second_q.circuit.library import UCCSD - from qiskit_nature.second_q.mappers import ParityMapper, QubitConverter + from qiskit_nature.second_q.mappers import ParityMapper except ImportError: pytest.skip("qiskit or qiskit-nature is not installed") from tensorcircuit.translation import perm_matrix mapper = ParityMapper() - converter = QubitConverter(mapper=mapper, two_qubit_reduction=True) - ansatz1 = UCCSD(2, [1, 1], converter) + ansatz1 = UCCSD(2, [1, 1], mapper) ansatz2 = TwoLocal(2, rotation_blocks="ry", entanglement_blocks="cz") ansatz3 = QuantumCircuit(1) ansatz3_param = Parameter("θ") ansatz3.rx(ansatz3_param, 0) - ansatz_list = [ansatz1, ansatz2, ansatz3] + ansatz4 = QuantumCircuit(1) + ansatz4_param = ParameterVector("φ", 3) + ansatz4.rx(2.0 * ansatz4_param[0] + 5.0, 0) + ansatz4.ry(ansatz4_param[0] * ansatz4_param[1] + ansatz4_param[2], 0) + ansatz4.rz( + np.exp(np.sin(ansatz4_param[0])) + + np.abs(ansatz4_param[1]) / np.arctan(ansatz4_param[2]), + 0, + ) + ansatz_list = [ansatz1, ansatz2, ansatz3, ansatz4] for ansatz in ansatz_list: n = ansatz.num_qubits - if ansatz in [ansatz1, ansatz2]: + if ansatz in [ansatz1, ansatz2, ansatz4]: params = np.random.rand(ansatz.num_parameters) else: params = {ansatz3_param: 0.618} @@ -1178,9 +1189,9 @@ def test_qiskit2tc_parameterized(backend): # test jit @tc.backend.jit - def get_unitary(_params): + def get_unitary(params): return tc.Circuit.from_qiskit( - ansatz, inputs=np.eye(2**n), binding_params=_params + ansatz, inputs=np.eye(2**n), binding_params=params ).state() tc_unitary = get_unitary(params) @@ -1191,10 +1202,10 @@ def get_unitary(_params): ) # test grad - def cost_fn(_params): - return tc.backend.real(tc.backend.sum(get_unitary(_params))) + def cost_fn(params): + return tc.backend.real(tc.backend.sum(get_unitary(params))) - if ansatz in [ansatz1, ansatz2]: + if ansatz in [ansatz1, ansatz2, ansatz4]: grad = tc.backend.grad(cost_fn)(tc.backend.convert_to_tensor(params)) assert np.sum(np.isnan(grad)) == 0 else: @@ -1208,8 +1219,8 @@ def cost_fn(_params): @pytest.mark.parametrize("backend", [lf("npb"), lf("tfb"), lf("jaxb")]) def test_qiskit_vs_tc_intialization(backend): try: - from qiskit import QuantumCircuit import qiskit.quantum_info as qi + from qiskit import QuantumCircuit except ImportError: pytest.skip("qiskit is not installed") From 908e5e7fd810720b1ef5824ad43054e7adfad19e Mon Sep 17 00:00:00 2001 From: king-p3nguin Date: Sun, 7 Apr 2024 16:46:27 +0900 Subject: [PATCH 02/56] support pytorch backend (kind of) --- tensorcircuit/translation.py | 12 +++++++++++- tests/test_circuit.py | 17 +++++++++-------- 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/tensorcircuit/translation.py b/tensorcircuit/translation.py index fcef21d4..17629db4 100644 --- a/tensorcircuit/translation.py +++ b/tensorcircuit/translation.py @@ -375,6 +375,16 @@ def _translate_qiskit_params( if isinstance(expr, symengine.Expr): # qiskit uses symengine if available expr = expr._sympy_() # sympy.Expr + if expr.is_algebraic_expr(): # numpy ufuncs are not used + lambdify_module_name = "numpy" + else: + if backend.name == "pytorch": + raise ValueError( + "pytorch backend does not support sympy lambdify with non-algebraic expressions" + ) + else: + lambdify_module_name = backend.name + for free_symbol in expr.free_symbols: # replace names: theta[0] -> theta_0 # ParameterVector creates symbols with brackets like theta[0] @@ -388,7 +398,7 @@ def _translate_qiskit_params( sympy.Symbol(str(symbol).replace("[", "_").replace("]", "")) for symbol in sympy_symbols ] - lam_f = sympy.lambdify(sympy_symbols, expr, modules=backend.name) + lam_f = sympy.lambdify(sympy_symbols, expr, modules=lambdify_module_name) parameters.append( lam_f(*[binding_params[param.index] for param in parameter_list]) ) diff --git a/tests/test_circuit.py b/tests/test_circuit.py index b1d45dd6..f395ed94 100644 --- a/tests/test_circuit.py +++ b/tests/test_circuit.py @@ -1149,7 +1149,7 @@ def test_qiskit2tc(): np.testing.assert_allclose(qis_unitary2, qis_unitary, atol=1e-5) -@pytest.mark.parametrize("backend", [lf("tfb"), lf("jaxb")]) +@pytest.mark.parametrize("backend", [lf("tfb"), lf("jaxb"), lf("torchb")]) def test_qiskit2tc_parameterized(backend): try: from qiskit.circuit import Parameter, ParameterVector, QuantumCircuit @@ -1171,11 +1171,12 @@ def test_qiskit2tc_parameterized(backend): ansatz4_param = ParameterVector("φ", 3) ansatz4.rx(2.0 * ansatz4_param[0] + 5.0, 0) ansatz4.ry(ansatz4_param[0] * ansatz4_param[1] + ansatz4_param[2], 0) - ansatz4.rz( - np.exp(np.sin(ansatz4_param[0])) - + np.abs(ansatz4_param[1]) / np.arctan(ansatz4_param[2]), - 0, - ) + if tc.backend.name != "pytorch": # pytorch backend with ufuncs is not supported + ansatz4.rz( + np.exp(np.sin(ansatz4_param[0])) + + np.abs(ansatz4_param[1]) / np.arctan(ansatz4_param[2]), + 0, + ) ansatz_list = [ansatz1, ansatz2, ansatz3, ansatz4] for ansatz in ansatz_list: n = ansatz.num_qubits @@ -1196,7 +1197,7 @@ def get_unitary(params): tc_unitary = get_unitary(params) tc_unitary = np.reshape(tc_unitary, [2**n, 2**n]) - p_mat = perm_matrix(n) + p_mat = tc.array_to_tensor(perm_matrix(n)) np.testing.assert_allclose( p_mat @ tc_unitary @ p_mat, qiskit_unitary, atol=1e-5 ) @@ -1207,7 +1208,7 @@ def cost_fn(params): if ansatz in [ansatz1, ansatz2, ansatz4]: grad = tc.backend.grad(cost_fn)(tc.backend.convert_to_tensor(params)) - assert np.sum(np.isnan(grad)) == 0 + assert tc.backend.sum(tc.num_to_tensor(np.isnan(grad))) == 0 else: # tf only supports tf tensor as input grad = tc.backend.grad(cost_fn)( From 77721d401b78785ba4a52f221f2bad7e94725ec5 Mon Sep 17 00:00:00 2001 From: king-p3nguin Date: Sun, 7 Apr 2024 21:54:12 +0900 Subject: [PATCH 03/56] use math for pytorch backend --- tensorcircuit/translation.py | 4 +--- tests/test_circuit.py | 11 +++++------ 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/tensorcircuit/translation.py b/tensorcircuit/translation.py index 17629db4..992eed39 100644 --- a/tensorcircuit/translation.py +++ b/tensorcircuit/translation.py @@ -379,9 +379,7 @@ def _translate_qiskit_params( lambdify_module_name = "numpy" else: if backend.name == "pytorch": - raise ValueError( - "pytorch backend does not support sympy lambdify with non-algebraic expressions" - ) + lambdify_module_name = "math" else: lambdify_module_name = backend.name diff --git a/tests/test_circuit.py b/tests/test_circuit.py index f395ed94..16bc4844 100644 --- a/tests/test_circuit.py +++ b/tests/test_circuit.py @@ -1171,12 +1171,11 @@ def test_qiskit2tc_parameterized(backend): ansatz4_param = ParameterVector("φ", 3) ansatz4.rx(2.0 * ansatz4_param[0] + 5.0, 0) ansatz4.ry(ansatz4_param[0] * ansatz4_param[1] + ansatz4_param[2], 0) - if tc.backend.name != "pytorch": # pytorch backend with ufuncs is not supported - ansatz4.rz( - np.exp(np.sin(ansatz4_param[0])) - + np.abs(ansatz4_param[1]) / np.arctan(ansatz4_param[2]), - 0, - ) + ansatz4.rz( + np.exp(np.sin(ansatz4_param[0])) + + np.abs(ansatz4_param[1]) / np.arctan(ansatz4_param[2]), + 0, + ) ansatz_list = [ansatz1, ansatz2, ansatz3, ansatz4] for ansatz in ansatz_list: n = ansatz.num_qubits From 8738dc993dfd2a375382286e341c6519d6b760b9 Mon Sep 17 00:00:00 2001 From: refraction-ray Date: Mon, 8 Apr 2024 09:54:48 +0800 Subject: [PATCH 04/56] update changelog --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b5318889..3f072c9a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ ## Unreleased +### Added + +- Add support for parameter expression in qiskit translation + ## 0.12.0 ### Added From 93d1d3beec6aaae12180a5ea2e7a14f0e58463dd Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Mon, 8 Apr 2024 01:57:27 +0000 Subject: [PATCH 05/56] docs: update README.md [skip ci] --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index cc532ff7..845a6750 100644 --- a/README.md +++ b/README.md @@ -297,7 +297,7 @@ TensorCircuit is open source, released under the Apache License, Version 2.0. ztzhu
ztzhu

💻 Rabqubit
Rabqubit

💡 - Kazuki Tsuoka
Kazuki Tsuoka

💻 + Kazuki Tsuoka
Kazuki Tsuoka

💻 ⚠️ 📖 From fb13030c460ae2f1ab35f47179fd169467dbed85 Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Mon, 8 Apr 2024 01:57:28 +0000 Subject: [PATCH 06/56] docs: update .all-contributorsrc [skip ci] --- .all-contributorsrc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 4b928ff4..2afd3367 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -307,7 +307,9 @@ "avatar_url": "https://avatars.githubusercontent.com/u/103920010?v=4", "profile": "https://github.com/king-p3nguin", "contributions": [ - "code" + "code", + "test", + "doc" ] } ], From 5c0c768ebaeb6ee82f82581cd79d37231b1709a3 Mon Sep 17 00:00:00 2001 From: king-p3nguin Date: Tue, 9 Apr 2024 09:01:33 +0900 Subject: [PATCH 07/56] fix dep warnings --- tensorcircuit/backends/jax_backend.py | 13 +++++++------ tensorcircuit/compiler/qiskit_compiler.py | 13 +++++++------ tensorcircuit/translation.py | 12 +++++------- tests/test_circuit.py | 4 +++- 4 files changed, 22 insertions(+), 20 deletions(-) diff --git a/tensorcircuit/backends/jax_backend.py b/tensorcircuit/backends/jax_backend.py index 581d8be7..f19c23ce 100644 --- a/tensorcircuit/backends/jax_backend.py +++ b/tensorcircuit/backends/jax_backend.py @@ -4,15 +4,16 @@ # pylint: disable=invalid-name -from functools import partial import logging import warnings +from functools import partial from typing import Any, Callable, Optional, Sequence, Tuple, Union import numpy as np -from scipy.sparse import coo_matrix import tensornetwork +from scipy.sparse import coo_matrix from tensornetwork.backends.jax import jax_backend + from .abstract_backend import ExtendedBackend logger = logging.getLogger(__name__) @@ -196,8 +197,8 @@ def __init__(self) -> None: "Jax not installed, please switch to a different " "backend or install Jax." ) - from jax.experimental import sparse import jax.scipy + from jax.experimental import sparse try: import optax @@ -419,7 +420,7 @@ def searchsorted(self, a: Tensor, v: Tensor, side: str = "left") -> Tensor: return jnp.searchsorted(a, v, side) def tree_map(self, f: Callable[..., Any], *pytrees: Any) -> Any: - return libjax.tree_map(f, *pytrees) + return libjax.tree_util.tree_map(f, *pytrees) def tree_flatten(self, pytree: Any) -> Tuple[Any, Any]: return libjax.tree_util.tree_flatten(pytree) # type: ignore @@ -630,7 +631,7 @@ def is_sparse(self, a: Tensor) -> bool: return isinstance(a, sparse.BCOO) # type: ignore def device(self, a: Tensor) -> str: - dev = a.device() + dev = a.devices() return self._dev2str(dev) def device_move(self, a: Tensor, dev: Any) -> Tensor: @@ -757,7 +758,7 @@ def wrapper( gs = list(gs) for i, (j, g) in enumerate(zip(argnums_list, gs)): if j not in vectorized_argnums: # type: ignore - gs[i] = libjax.tree_map(partial(jnp.sum, axis=0), g) + gs[i] = libjax.tree_util.tree_map(partial(jnp.sum, axis=0), g) if isinstance(argnums, int): gs = gs[0] else: diff --git a/tensorcircuit/compiler/qiskit_compiler.py b/tensorcircuit/compiler/qiskit_compiler.py index e54dd1a4..1f946359 100644 --- a/tensorcircuit/compiler/qiskit_compiler.py +++ b/tensorcircuit/compiler/qiskit_compiler.py @@ -2,8 +2,8 @@ compiler interface via qiskit """ -from typing import Any, Dict, Optional import re +from typing import Any, Dict, Optional from ..abstractcircuit import AbstractCircuit from ..circuit import Circuit @@ -71,7 +71,7 @@ def _get_positional_logical_mapping_from_qiskit(qc: Any) -> Dict[int, int]: positional_logical_mapping = {} for inst in qc.data: if inst[0].name == "measure": - positional_logical_mapping[i] = inst[1][0].index + positional_logical_mapping[i] = qc.find_bit(inst[1][0]).index i += 1 return positional_logical_mapping @@ -95,16 +95,17 @@ def _get_logical_physical_mapping_from_qiskit( for inst in qc_after.data: if inst[0].name == "measure": if qc_before is None: - logical_q = inst[2][0].index + logical_q = qc_after.find_bit(inst[2][0]).index else: for instb in qc_before.data: if ( instb[0].name == "measure" - and instb[2][0].index == inst[2][0].index + and qc_before.find_bit(instb[2][0]).index + == qc_after.find_bit(inst[2][0]).index ): - logical_q = instb[1][0].index + logical_q = qc_before.find_bit(instb[1][0]).index break - logical_physical_mapping[logical_q] = inst[1][0].index + logical_physical_mapping[logical_q] = qc_after.find_bit(inst[1][0]).index return logical_physical_mapping diff --git a/tensorcircuit/translation.py b/tensorcircuit/translation.py index 992eed39..c6ca1e0e 100644 --- a/tensorcircuit/translation.py +++ b/tensorcircuit/translation.py @@ -17,11 +17,10 @@ import sympy from qiskit import QuantumCircuit from qiskit.circuit import Parameter, ParameterExpression - from qiskit.circuit.library import XXPlusYYGate + from qiskit.circuit.exceptions import CircuitError + from qiskit.circuit.library import HamiltonianGate, UnitaryGate, XXPlusYYGate from qiskit.circuit.parametervector import ParameterVectorElement from qiskit.circuit.quantumcircuitdata import CircuitInstruction - from qiskit.extensions import UnitaryGate - from qiskit.extensions.exceptions import ExtensionError except ImportError: logger.warning( "Please first ``pip install -U qiskit`` to enable related functionality in translation module" @@ -311,9 +310,8 @@ def qir2qiskit( # Error can be presented if theta is actually complex in this procedure. exp_op = qi.Operator(unitary) index_reversed = [x for x in index[::-1]] - qiskit_circ.hamiltonian( - exp_op, time=theta, qubits=index_reversed, label=qis_name - ) + gate = HamiltonianGate(data=exp_op, time=theta, label=qis_name) + qiskit_circ.append(gate, index_reversed) elif gate_name == "multicontrol": unitary = backend.numpy(backend.convert_to_tensor(parameters["unitary"])) ctrl_str = "".join(map(str, parameters["ctrl"]))[::-1] @@ -344,7 +342,7 @@ def qir2qiskit( qop = qi.Operator(gatem) try: qiskit_circ.unitary(qop, index[::-1], label=qis_name) - except (ExtensionError, ValueError) as _: + except (CircuitError, ValueError) as _: logger.warning( "omit non unitary gate in tensorcircuit when transforming to qiskit: %s" % gate_name diff --git a/tests/test_circuit.py b/tests/test_circuit.py index 16bc4844..81f20762 100644 --- a/tests/test_circuit.py +++ b/tests/test_circuit.py @@ -1078,6 +1078,7 @@ def test_qiskit2tc(): try: import qiskit.quantum_info as qi from qiskit import QuantumCircuit + from qiskit.circuit.library import HamiltonianGate from qiskit.circuit.library.standard_gates import MCXGate, SwapGate from tensorcircuit.translation import perm_matrix @@ -1090,7 +1091,8 @@ def test_qiskit2tc(): zz = np.array([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]]) exp_op = qi.Operator(zz) for i in range(n): - qisc.hamiltonian(exp_op, time=np.random.uniform(), qubits=[i, (i + 1) % n]) + gate = HamiltonianGate(exp_op, time=np.random.uniform()) + qisc.append(gate, [i, (i + 1) % n]) qisc.fredkin(1, 2, 3) qisc.cswap(1, 2, 3) qisc.swap(0, 1) From 3a748305ca123ab074055f18cf63aa0afbf7bf5f Mon Sep 17 00:00:00 2001 From: king-p3nguin Date: Tue, 9 Apr 2024 09:49:09 +0900 Subject: [PATCH 08/56] fix test --- tensorcircuit/backends/jax_backend.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tensorcircuit/backends/jax_backend.py b/tensorcircuit/backends/jax_backend.py index f19c23ce..33be28fd 100644 --- a/tensorcircuit/backends/jax_backend.py +++ b/tensorcircuit/backends/jax_backend.py @@ -631,7 +631,7 @@ def is_sparse(self, a: Tensor) -> bool: return isinstance(a, sparse.BCOO) # type: ignore def device(self, a: Tensor) -> str: - dev = a.devices() + (dev,) = a.devices() return self._dev2str(dev) def device_move(self, a: Tensor, dev: Any) -> Tensor: From be721a24e1fe617c31499c223d6ec9213975cebd Mon Sep 17 00:00:00 2001 From: refraction-ray Date: Tue, 9 Apr 2024 16:45:13 +0800 Subject: [PATCH 09/56] fix some bug when qiskit or cirq is not installed --- tensorcircuit/results/qem/qem_methods.py | 3 ++- tensorcircuit/translation.py | 1 + tests/test_torchnn.py | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/tensorcircuit/results/qem/qem_methods.py b/tensorcircuit/results/qem/qem_methods.py index 7328b3bb..68199e49 100644 --- a/tensorcircuit/results/qem/qem_methods.py +++ b/tensorcircuit/results/qem/qem_methods.py @@ -14,7 +14,6 @@ logger = logging.getLogger(__name__) import numpy as np -import cirq try: from mitiq import zne, ddd @@ -205,6 +204,8 @@ def dd_rule(slack_length: int, spacing: int = -1) -> Any: return dd_sequence if isinstance(rule, list): + import cirq + gates = [] for i in rule: gates.append(getattr(cirq, i)) diff --git a/tensorcircuit/translation.py b/tensorcircuit/translation.py index 992eed39..70276c58 100644 --- a/tensorcircuit/translation.py +++ b/tensorcircuit/translation.py @@ -27,6 +27,7 @@ "Please first ``pip install -U qiskit`` to enable related functionality in translation module" ) CircuitInstruction = Any + QuantumCircuit = Any try: import cirq diff --git a/tests/test_torchnn.py b/tests/test_torchnn.py index 6acb7b17..88549248 100644 --- a/tests/test_torchnn.py +++ b/tests/test_torchnn.py @@ -14,7 +14,7 @@ try: import torch except ImportError: - pytest.skip("torch is not installed") + pytest.skip("torch is not installed", allow_module_level=True) @pytest.mark.parametrize("backend", [lf("tfb"), lf("jaxb"), lf("torchb")]) From a7dc3cb13b512eefd6debcce596a109a8a6a99e3 Mon Sep 17 00:00:00 2001 From: refraction-ray Date: Tue, 9 Apr 2024 17:27:50 +0800 Subject: [PATCH 10/56] give specific reason on disable tf2.16+ --- tests/test_keras.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/test_keras.py b/tests/test_keras.py index 187a316e..3564f828 100644 --- a/tests/test_keras.py +++ b/tests/test_keras.py @@ -129,6 +129,9 @@ def qf(inputs, param): def test_keras_layer_inputs_dict(tfb): + # https://github.com/tensorflow/tensorflow/issues/65306 + # keras3 for tf2.16+ fails to accept complex valued input for keras layers + # which is vital for quantum applications n = 3 p = 0.1 K = tc.backend From 7bd91c0d0e54bcd3bee4cded970c4fc9f1cadca1 Mon Sep 17 00:00:00 2001 From: refraction-ray Date: Wed, 10 Apr 2024 14:24:23 +0800 Subject: [PATCH 11/56] warning to info with no cirq --- tensorcircuit/translation.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tensorcircuit/translation.py b/tensorcircuit/translation.py index 42a2fe57..73b973b6 100644 --- a/tensorcircuit/translation.py +++ b/tensorcircuit/translation.py @@ -31,7 +31,7 @@ try: import cirq except ImportError: - logger.warning( + logger.info( "Please first ``pip install -U cirq`` to enable related functionality in translation module" ) From 229b018fdbe6d1fe582a49d21563392b6a48e7b3 Mon Sep 17 00:00:00 2001 From: Gopal Dahale Date: Wed, 29 May 2024 23:49:40 +0530 Subject: [PATCH 12/56] vqe noisyopt --- examples/vqe_noisyopt.py | 194 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 194 insertions(+) create mode 100644 examples/vqe_noisyopt.py diff --git a/examples/vqe_noisyopt.py b/examples/vqe_noisyopt.py new file mode 100644 index 00000000..8fa06bd3 --- /dev/null +++ b/examples/vqe_noisyopt.py @@ -0,0 +1,194 @@ +""" +VQE with finite measurement shot noise +""" + +from functools import partial +import numpy as np +from scipy import optimize +import optax +import tensorcircuit as tc +from tensorcircuit import experimental as E +from noisyopt import minimizeCompass, minimizeSPSA +from tabulate import tabulate + +seed = 42 +np.random.seed(seed) + +K = tc.set_backend("jax") +# note this script only supports jax backend + +n = 6 +nlayers = 4 + +result = { + "Algorithm / Optimization": ["Without Shot Noise", "With Shot Noise"], + "Gradient Free": [], + "Gradient based": [], +} + +# We use OBC 1D TFIM Hamiltonian in this script + +ps = [] +for i in range(n): + l = [0 for _ in range(n)] + l[i] = 1 + ps.append(l) + # X_i +for i in range(n - 1): + l = [0 for _ in range(n)] + l[i] = 3 + l[i + 1] = 3 + ps.append(l) + # Z_i Z_i+1 +w = [-1.0 for _ in range(n)] + [1.0 for _ in range(n - 1)] + + +def generate_circuit(param): + # construct the circuit ansatz + c = tc.Circuit(n) + for i in range(n): + c.H(i) + for j in range(nlayers): + for i in range(n - 1): + c.rzz(i, i + 1, theta=param[i, j, 0]) + for i in range(n): + c.rx(i, theta=param[i, j, 1]) + return c + + +def ps2xyz(psi): + # ps2xyz([1, 2, 2, 0]) = {"x": [0], "y": [1, 2], "z": []} + xyz = {"x": [], "y": [], "z": []} + for i, j in enumerate(psi): + if j == 1: + xyz["x"].append(i) + if j == 2: + xyz["y"].append(i) + if j == 3: + xyz["z"].append(i) + return xyz + + +@partial(K.jit, static_argnums=(2)) +def exp_val(param, key, shots=1024): + # expectation with shot noise + # ps, w: H = \sum_i w_i ps_i + # describing the system Hamiltonian as a weighted sum of Pauli string + c = generate_circuit(param) + if isinstance(shots, int): + shots = [shots for _ in range(len(ps))] + loss = 0 + for psi, wi, shot in zip(ps, w, shots): + key, subkey = K.random_split(key) + xyz = ps2xyz(psi) + loss += wi * c.sample_expectation_ps(**xyz, shots=shot, random_generator=subkey) + return K.real(loss) + + +@K.jit +def exp_val_analytical(param): + param = param.reshape(n, nlayers, 2) + c = generate_circuit(param) + loss = 0 + for psi, wi in zip(ps, w): + xyz = ps2xyz(psi) + loss += wi * c.expectation_ps(**xyz) + return K.real(loss) + + +# 0. Exact result + +hm = tc.quantum.PauliStringSum2COO(ps, w, numpy=True) +hm = K.to_dense(hm) +e, v = np.linalg.eigh(hm) +exact_gs_energy = e[0] +print("==================================================================") +print("Exact ground state energy: ", exact_gs_energy) +print("==================================================================") + +# 1.1 VQE with numerically exact expectation: gradient free + +print(">>> VQE without shot noise") + + +r = minimizeSPSA( + func=exp_val_analytical, + x0=np.random.uniform(size=[n * nlayers * 2]), + niter=6000, + paired=False, +) + +print(r) +print(">> Converged as (Gradient Free) :", exp_val_analytical(r.x)) +result["Gradient Free"].append(exp_val_analytical(r.x)) + +# 1.2 VQE with numerically exact expectation: gradient based + +exponential_decay_scheduler = optax.exponential_decay( + init_value=1e-2, transition_steps=500, decay_rate=0.9 +) +opt = K.optimizer(optax.adam(exponential_decay_scheduler)) +param = K.implicit_randn([n, nlayers, 2], stddev=0.1) # zeros stall the gradient +exp_val_grad_analytical = K.jit(K.value_and_grad(exp_val_analytical)) +for i in range(1000): + e, g = exp_val_grad_analytical(param) + param = opt.update(g, param) + if i % 100 == 99: + print(e) + +print(">> Converged as (Gradient based):", exp_val_grad_analytical(param)[0]) +result["Gradient based"].append(exp_val_grad_analytical(param)[0]) + +# 2.1 VQE with finite shot noise: gradient free + +print("==================================================================") +print(">>> VQE with shot noise") + + +rkey = K.get_random_state(42) + + +def exp_val_wrapper(param): + param = param.reshape(n, nlayers, 2) + global rkey + rkey, skey = K.random_split(rkey) + # maintain stateless randomness in scipy optimize interface + return exp_val(param, skey, shots=1024) + + +r = minimizeSPSA( + func=exp_val_wrapper, + x0=np.random.uniform(size=[n * nlayers * 2]), + niter=6000, + paired=False, +) +print(r) +print(">> Converged as (Gradient Free) :", exp_val_wrapper(r["x"])) +result["Gradient Free"].append(exp_val_wrapper(r["x"])) + +# 2.2 VQE with finite shot noise: gradient based + +exponential_decay_scheduler = optax.exponential_decay( + init_value=1e-2, transition_steps=500, decay_rate=0.9 +) +opt = K.optimizer(optax.adam(exponential_decay_scheduler)) +param = K.implicit_randn([n, nlayers, 2], stddev=0.1) # zeros stall the gradient +exp_grad = E.parameter_shift_grad_v2(exp_val, argnums=0, random_argnums=1) +rkey = K.get_random_state(42) + +for i in range(1000): + rkey, skey = K.random_split(rkey) + g = exp_grad(param, skey) + param = opt.update(g, param) + if i % 100 == 99: + rkey, skey = K.random_split(rkey) + print(exp_val(param, skey)) + +# the real energy position after optimization +print(">> Converged as (Gradient based):", exp_val_analytical(param)) +result["Gradient based"].append(exp_val_analytical(param)) + +print("==================================================================") +print(">>> Benchmark") +print(">> Exact ground state energy: ", exact_gs_energy) +print(tabulate(result, headers="keys")) From 6eec70232d2ba67b79f9ef9db5cc37a4e8b1ca9a Mon Sep 17 00:00:00 2001 From: Kazuki Tsuoka Date: Thu, 30 May 2024 13:03:50 +0900 Subject: [PATCH 13/56] update quantum.py --- tensorcircuit/quantum.py | 621 +++++++++++++++++++-------------------- 1 file changed, 306 insertions(+), 315 deletions(-) diff --git a/tensorcircuit/quantum.py b/tensorcircuit/quantum.py index 0d57362a..67a14b25 100644 --- a/tensorcircuit/quantum.py +++ b/tensorcircuit/quantum.py @@ -10,10 +10,10 @@ # pylint: disable=invalid-name -import os -from functools import reduce, partial import logging -from operator import or_, mul, matmul +import os +from functools import partial, reduce +from operator import matmul, mul, or_ from typing import ( Any, Callable, @@ -28,20 +28,19 @@ ) import numpy as np -from tensornetwork.network_components import AbstractNode, Node, Edge, connect -from tensornetwork.network_components import CopyNode -from tensornetwork.network_operations import get_all_nodes, copy, reachable -from tensornetwork.network_operations import get_subgraph_dangling, remove_node - -try: - import tensorflow as tf -except ImportError: - pass +from tensornetwork.network_components import AbstractNode, CopyNode, Edge, Node, connect +from tensornetwork.network_operations import ( + copy, + get_all_nodes, + get_subgraph_dangling, + reachable, + remove_node, +) -from .cons import backend, contractor, dtypestr, npdtype, rdtypestr from .backends import get_backend -from .utils import is_m1mac, arg_alias -from .gates import Gate +from .cons import backend, contractor, dtypestr, npdtype, rdtypestr +from .gates import Gate, num_to_tensor +from .utils import arg_alias Tensor = Any Graph = Any @@ -1162,318 +1161,310 @@ def quimb2qop(qb_mpo: Any) -> QuOperator: return qop -try: +def heisenberg_hamiltonian( + g: Graph, + hzz: float = 1.0, + hxx: float = 1.0, + hyy: float = 1.0, + hz: float = 0.0, + hx: float = 0.0, + hy: float = 0.0, + sparse: bool = True, + numpy: bool = False, +) -> Tensor: + """ + Generate Heisenberg Hamiltonian with possible external fields. + Currently requires tensorflow installed - def _id(x: Any) -> Any: - return x + :Example: - if is_m1mac(): - compiled_jit = _id - else: - compiled_jit = partial(get_backend("tensorflow").jit, jit_compile=True) - - def heisenberg_hamiltonian( - g: Graph, - hzz: float = 1.0, - hxx: float = 1.0, - hyy: float = 1.0, - hz: float = 0.0, - hx: float = 0.0, - hy: float = 0.0, - sparse: bool = True, - numpy: bool = False, - ) -> Tensor: - """ - Generate Heisenberg Hamiltonian with possible external fields. - Currently requires tensorflow installed + >>> g = tc.templates.graphs.Line1D(6) + >>> h = qu.heisenberg_hamiltonian(g, sparse=False) + >>> tc.backend.eigh(h)[0][:10] + array([-11.2111025, -8.4721365, -8.472136 , -8.472136 , -6. , + -5.123106 , -5.123106 , -5.1231055, -5.1231055, -5.1231055], + dtype=float32) + + :param g: input circuit graph + :type g: Graph + :param hzz: zz coupling, default is 1.0 + :type hzz: float + :param hxx: xx coupling, default is 1.0 + :type hxx: float + :param hyy: yy coupling, default is 1.0 + :type hyy: float + :param hz: External field on z direction, default is 0.0 + :type hz: float + :param hx: External field on y direction, default is 0.0 + :type hx: float + :param hy: External field on x direction, default is 0.0 + :type hy: float + :param sparse: Whether to return sparse Hamiltonian operator, default is True. + :type sparse: bool, defalts True + :param numpy: whether return the matrix in numpy or tensorflow form + :type numpy: bool, defaults False, + + :return: Hamiltonian measurements + :rtype: Tensor + """ + n = len(g.nodes) + ls = [] + weight = [] + for e in g.edges: + if hzz != 0: + r = [0 for _ in range(n)] + r[e[0]] = 3 + r[e[1]] = 3 + ls.append(r) + weight.append(hzz) + if hxx != 0: + r = [0 for _ in range(n)] + r[e[0]] = 1 + r[e[1]] = 1 + ls.append(r) + weight.append(hxx) + if hyy != 0: + r = [0 for _ in range(n)] + r[e[0]] = 2 + r[e[1]] = 2 + ls.append(r) + weight.append(hyy) + for node in g.nodes: + if hz != 0: + r = [0 for _ in range(n)] + r[node] = 3 + ls.append(r) + weight.append(hz) + if hx != 0: + r = [0 for _ in range(n)] + r[node] = 1 + ls.append(r) + weight.append(hx) + if hy != 0: + r = [0 for _ in range(n)] + r[node] = 2 + ls.append(r) + weight.append(hy) + ls = tf.constant(ls) + weight = tf.constant(weight) + ls = get_backend("tensorflow").cast(ls, dtypestr) + weight = get_backend("tensorflow").cast(weight, dtypestr) + if sparse: + r = PauliStringSum2COO_numpy(ls, weight) + if numpy: + return r + return backend.coo_sparse_matrix_from_numpy(r) + return PauliStringSum2Dense(ls, weight, numpy=numpy) - :Example: - >>> g = tc.templates.graphs.Line1D(6) - >>> h = qu.heisenberg_hamiltonian(g, sparse=False) - >>> tc.backend.eigh(h)[0][:10] - array([-11.2111025, -8.4721365, -8.472136 , -8.472136 , -6. , - -5.123106 , -5.123106 , -5.1231055, -5.1231055, -5.1231055], - dtype=float32) - - :param g: input circuit graph - :type g: Graph - :param hzz: zz coupling, default is 1.0 - :type hzz: float - :param hxx: xx coupling, default is 1.0 - :type hxx: float - :param hyy: yy coupling, default is 1.0 - :type hyy: float - :param hz: External field on z direction, default is 0.0 - :type hz: float - :param hx: External field on y direction, default is 0.0 - :type hx: float - :param hy: External field on x direction, default is 0.0 - :type hy: float - :param sparse: Whether to return sparse Hamiltonian operator, default is True. - :type sparse: bool, defalts True - :param numpy: whether return the matrix in numpy or tensorflow form - :type numpy: bool, defaults False, - - :return: Hamiltonian measurements - :rtype: Tensor - """ - n = len(g.nodes) - ls = [] - weight = [] - for e in g.edges: - if hzz != 0: - r = [0 for _ in range(n)] - r[e[0]] = 3 - r[e[1]] = 3 - ls.append(r) - weight.append(hzz) - if hxx != 0: - r = [0 for _ in range(n)] - r[e[0]] = 1 - r[e[1]] = 1 - ls.append(r) - weight.append(hxx) - if hyy != 0: - r = [0 for _ in range(n)] - r[e[0]] = 2 - r[e[1]] = 2 - ls.append(r) - weight.append(hyy) - for node in g.nodes: - if hz != 0: - r = [0 for _ in range(n)] - r[node] = 3 - ls.append(r) - weight.append(hz) - if hx != 0: - r = [0 for _ in range(n)] - r[node] = 1 - ls.append(r) - weight.append(hx) - if hy != 0: - r = [0 for _ in range(n)] - r[node] = 2 - ls.append(r) - weight.append(hy) - ls = tf.constant(ls) - weight = tf.constant(weight) - ls = get_backend("tensorflow").cast(ls, dtypestr) - weight = get_backend("tensorflow").cast(weight, dtypestr) - if sparse: - r = PauliStringSum2COO_numpy(ls, weight) - if numpy: - return r - return backend.coo_sparse_matrix_from_numpy(r) - return PauliStringSum2Dense(ls, weight, numpy=numpy) - - def PauliStringSum2Dense( - ls: Sequence[Sequence[int]], - weight: Optional[Sequence[float]] = None, - numpy: bool = False, - ) -> Tensor: - """ - Generate dense matrix from Pauli string sum. - Currently requires tensorflow installed. - - - :param ls: 2D Tensor, each row is for a Pauli string, - e.g. [1, 0, 0, 3, 2] is for :math:`X_0Z_3Y_4` - :type ls: Sequence[Sequence[int]] - :param weight: 1D Tensor, each element corresponds the weight for each Pauli string - defaults to None (all Pauli strings weight 1.0) - :type weight: Optional[Sequence[float]], optional - :param numpy: default False. If True, return numpy coo - else return backend compatible sparse tensor - :type numpy: bool - :return: the tensorflow dense matrix - :rtype: Tensor - """ - sparsem = PauliStringSum2COO_numpy(ls, weight) - if numpy: - return sparsem.todense() - sparsem = backend.coo_sparse_matrix_from_numpy(sparsem) - densem = backend.to_dense(sparsem) - return densem - - # already implemented as backend method - # - # def _tf2numpy_sparse(a: Tensor) -> Tensor: - # return get_backend("numpy").coo_sparse_matrix( - # indices=a.indices, - # values=a.values, - # shape=a.get_shape(), - # ) - - # def _numpy2tf_sparse(a: Tensor) -> Tensor: - # return get_backend("tensorflow").coo_sparse_matrix( - # indices=np.array([a.row, a.col]).T, - # values=a.data, - # shape=a.shape, - # ) - - def PauliStringSum2COO( - ls: Sequence[Sequence[int]], - weight: Optional[Sequence[float]] = None, - numpy: bool = False, - ) -> Tensor: - """ - Generate sparse tensor from Pauli string sum. - Currently requires tensorflow installed - - :param ls: 2D Tensor, each row is for a Pauli string, - e.g. [1, 0, 0, 3, 2] is for :math:`X_0Z_3Y_4` - :type ls: Sequence[Sequence[int]] - :param weight: 1D Tensor, each element corresponds the weight for each Pauli string - defaults to None (all Pauli strings weight 1.0) - :type weight: Optional[Sequence[float]], optional - :param numpy: default False. If True, return numpy coo - else return backend compatible sparse tensor - :type numpy: bool - :return: the scipy coo sparse matrix - :rtype: Tensor - """ - # numpy version is 3* faster! - - nterms = len(ls) - # n = len(ls[0]) - # s = 0b1 << n - if weight is None: - weight = [1.0 for _ in range(nterms)] - if not (isinstance(weight, tf.Tensor) or isinstance(weight, tf.Variable)): - weight = tf.constant(weight, dtype=getattr(tf, dtypestr)) - # rsparse = get_backend("numpy").coo_sparse_matrix( - # indices=np.array([[0, 0]], dtype=np.int64), - # values=np.array([0.0], dtype=getattr(np, dtypestr)), - # shape=(s, s), - # ) - rsparses = [ - get_backend("tensorflow").numpy(PauliString2COO(ls[i], weight[i])) # type: ignore - for i in range(nterms) - ] - rsparse = _dc_sum(rsparses) - # auto transformed into csr format!! +def PauliStringSum2Dense( + ls: Sequence[Sequence[int]], + weight: Optional[Sequence[float]] = None, + numpy: bool = False, +) -> Tensor: + """ + Generate dense matrix from Pauli string sum. + Currently requires tensorflow installed. - # for i in range(nterms): - # rsparse += get_backend("tensorflow").numpy(PauliString2COO(ls[i], weight[i])) # type: ignore - rsparse = rsparse.tocoo() - if numpy: - return rsparse - return backend.coo_sparse_matrix_from_numpy(rsparse) - def _dc_sum(l: List[Any]) -> Any: - """ - For the sparse sum, the speed is determined by the non zero terms, - so the DC way to do the sum can indeed bring some speed advantage (several times) + :param ls: 2D Tensor, each row is for a Pauli string, + e.g. [1, 0, 0, 3, 2] is for :math:`X_0Z_3Y_4` + :type ls: Sequence[Sequence[int]] + :param weight: 1D Tensor, each element corresponds the weight for each Pauli string + defaults to None (all Pauli strings weight 1.0) + :type weight: Optional[Sequence[float]], optional + :param numpy: default False. If True, return numpy coo + else return backend compatible sparse tensor + :type numpy: bool + :return: the tensorflow dense matrix + :rtype: Tensor + """ + sparsem = PauliStringSum2COO_numpy(ls, weight) + if numpy: + return sparsem.todense() + sparsem = backend.coo_sparse_matrix_from_numpy(sparsem) + densem = backend.to_dense(sparsem) + return densem + + +# already implemented as backend method +# +# def _tf2numpy_sparse(a: Tensor) -> Tensor: +# return get_backend("numpy").coo_sparse_matrix( +# indices=a.indices, +# values=a.values, +# shape=a.get_shape(), +# ) + +# def _numpy2tf_sparse(a: Tensor) -> Tensor: +# return get_backend("tensorflow").coo_sparse_matrix( +# indices=np.array([a.row, a.col]).T, +# values=a.data, +# shape=a.shape, +# ) + + +def PauliStringSum2COO( + ls: Sequence[Sequence[int]], + weight: Optional[Sequence[float]] = None, + numpy: bool = False, +) -> Tensor: + """ + Generate sparse tensor from Pauli string sum. + Currently requires tensorflow installed + + :param ls: 2D Tensor, each row is for a Pauli string, + e.g. [1, 0, 0, 3, 2] is for :math:`X_0Z_3Y_4` + :type ls: Sequence[Sequence[int]] + :param weight: 1D Tensor, each element corresponds the weight for each Pauli string + defaults to None (all Pauli strings weight 1.0) + :type weight: Optional[Sequence[float]], optional + :param numpy: default False. If True, return numpy coo + else return backend compatible sparse tensor + :type numpy: bool + :return: the scipy coo sparse matrix + :rtype: Tensor + """ + # numpy version is 3* faster! + + nterms = len(ls) + # n = len(ls[0]) + # s = 0b1 << n + if weight is None: + weight = [1.0 for _ in range(nterms)] + if not (isinstance(weight, tf.Tensor) or isinstance(weight, tf.Variable)): + weight = tf.constant(weight, dtype=getattr(tf, dtypestr)) + # rsparse = get_backend("numpy").coo_sparse_matrix( + # indices=np.array([[0, 0]], dtype=np.int64), + # values=np.array([0.0], dtype=getattr(np, dtypestr)), + # shape=(s, s), + # ) + rsparses = [ + get_backend("tensorflow").numpy(PauliString2COO(ls[i], weight[i])) # type: ignore + for i in range(nterms) + ] + rsparse = _dc_sum(rsparses) + # auto transformed into csr format!! + + # for i in range(nterms): + # rsparse += get_backend("tensorflow").numpy(PauliString2COO(ls[i], weight[i])) # type: ignore + rsparse = rsparse.tocoo() + if numpy: + return rsparse + return backend.coo_sparse_matrix_from_numpy(rsparse) - :param l: _description_ - :type l: List[Any] - :return: _description_ - :rtype: Any - """ - n = len(l) - if n > 2: - return _dc_sum(l[: n // 2]) + _dc_sum(l[n // 2 :]) - else: - return sum(l) - PauliStringSum2COO_numpy = partial(PauliStringSum2COO, numpy=True) +def _dc_sum(l: List[Any]) -> Any: + """ + For the sparse sum, the speed is determined by the non zero terms, + so the DC way to do the sum can indeed bring some speed advantage (several times) - def PauliStringSum2COO_tf( - ls: Sequence[Sequence[int]], weight: Optional[Sequence[float]] = None - ) -> Tensor: - """ - Generate tensorflow sparse matrix from Pauli string sum - - :param ls: 2D Tensor, each row is for a Pauli string, - e.g. [1, 0, 0, 3, 2] is for :math:`X_0Z_3Y_4` - :type ls: Sequence[Sequence[int]] - :param weight: 1D Tensor, each element corresponds the weight for each Pauli string - defaults to None (all Pauli strings weight 1.0) - :type weight: Optional[Sequence[float]], optional - :return: the tensorflow coo sparse matrix - :rtype: Tensor - """ - nterms = len(ls) - n = len(ls[0]) - s = 0b1 << n - if weight is None: - weight = [1.0 for _ in range(nterms)] - if not (isinstance(weight, tf.Tensor) or isinstance(weight, tf.Variable)): - weight = tf.constant(weight, dtype=getattr(tf, dtypestr)) - rsparse = tf.SparseTensor( - indices=tf.constant([[0, 0]], dtype=tf.int64), - values=tf.constant([0.0], dtype=weight.dtype), # type: ignore - dense_shape=(s, s), - ) - for i in range(nterms): - rsparse = tf.sparse.add(rsparse, PauliString2COO(ls[i], weight[i])) # type: ignore - # very slow sparse.add? - return rsparse + :param l: _description_ + :type l: List[Any] + :return: _description_ + :rtype: Any + """ + n = len(l) + if n > 2: + return _dc_sum(l[: n // 2]) + _dc_sum(l[n // 2 :]) + else: + return sum(l) - @compiled_jit - def PauliString2COO(l: Sequence[int], weight: Optional[float] = None) -> Tensor: - """ - Generate tensorflow sparse matrix from Pauli string sum - - :param l: 1D Tensor representing for a Pauli string, - e.g. [1, 0, 0, 3, 2] is for :math:`X_0Z_3Y_4` - :type l: Sequence[int] - :param weight: the weight for the Pauli string - defaults to None (all Pauli strings weight 1.0) - :type weight: Optional[float], optional - :return: the tensorflow sparse matrix - :rtype: Tensor - """ - n = len(l) - one = tf.constant(0b1, dtype=tf.int64) - idx_x = tf.constant(0b0, dtype=tf.int64) - idx_y = tf.constant(0b0, dtype=tf.int64) - idx_z = tf.constant(0b0, dtype=tf.int64) - i = tf.constant(0, dtype=tf.int64) - for j in l: - # i, j from enumerate is python, non jittable when cond using tensor - if j == 1: # xi - idx_x += tf.bitwise.left_shift(one, n - i - 1) - elif j == 2: # yi - idx_y += tf.bitwise.left_shift(one, n - i - 1) - elif j == 3: # zi - idx_z += tf.bitwise.left_shift(one, n - i - 1) - i += 1 - - if weight is None: - weight = tf.constant(1.0, dtype=tf.complex64) - return ps2coo_core(idx_x, idx_y, idx_z, weight, n) - - @compiled_jit - def ps2coo_core( - idx_x: Tensor, idx_y: Tensor, idx_z: Tensor, weight: Tensor, nqubits: int - ) -> Tuple[Tensor, Tensor]: - dtype = weight.dtype - s = 0b1 << nqubits - idx1 = tf.cast(tf.range(s), dtype=tf.int64) - idx2 = (idx1 ^ idx_x) ^ (idx_y) - indices = tf.transpose(tf.stack([idx1, idx2])) - tmp = idx1 & (idx_y | idx_z) - e = idx1 * 0 - ny = 0 - for i in range(nqubits): - # if tmp[i] is power of 2 (non zero), then e[i] = 1 - e ^= tf.bitwise.right_shift(tmp, i) & 0b1 - # how many 1 contained in idx_y - ny += tf.bitwise.right_shift(idx_y, i) & 0b1 - ny = tf.math.mod(ny, 4) - values = ( - tf.cast((1 - 2 * e), dtype) - * tf.math.pow(tf.constant(-1.0j, dtype=dtype), tf.cast(ny, dtype)) - * weight - ) - return tf.SparseTensor(indices=indices, values=values, dense_shape=(s, s)) # type: ignore -except (NameError, ImportError): - logger.info( - "tensorflow is not installed, and sparse Hamiltonian generation utilities are disabled" +PauliStringSum2COO_numpy = partial(PauliStringSum2COO, numpy=True) + + +def PauliStringSum2COO_tf( + ls: Sequence[Sequence[int]], weight: Optional[Sequence[float]] = None +) -> Tensor: + """ + Generate tensorflow sparse matrix from Pauli string sum + + :param ls: 2D Tensor, each row is for a Pauli string, + e.g. [1, 0, 0, 3, 2] is for :math:`X_0Z_3Y_4` + :type ls: Sequence[Sequence[int]] + :param weight: 1D Tensor, each element corresponds the weight for each Pauli string + defaults to None (all Pauli strings weight 1.0) + :type weight: Optional[Sequence[float]], optional + :return: the tensorflow coo sparse matrix + :rtype: Tensor + """ + nterms = len(ls) + n = len(ls[0]) + s = 0b1 << n + if weight is None: + weight = [1.0 for _ in range(nterms)] + if not (isinstance(weight, tf.Tensor) or isinstance(weight, tf.Variable)): + weight = tf.constant(weight, dtype=getattr(tf, dtypestr)) + rsparse = tf.SparseTensor( + indices=tf.constant([[0, 0]], dtype=tf.int64), + values=tf.constant([0.0], dtype=weight.dtype), # type: ignore + dense_shape=(s, s), + ) + for i in range(nterms): + rsparse = tf.sparse.add(rsparse, PauliString2COO(ls[i], weight[i])) # type: ignore + # very slow sparse.add? + return rsparse + + +def PauliString2COO(l: Sequence[int], weight: Optional[float] = None) -> Tensor: + """ + Generate tensorflow sparse matrix from Pauli string sum + + :param l: 1D Tensor representing for a Pauli string, + e.g. [1, 0, 0, 3, 2] is for :math:`X_0Z_3Y_4` + :type l: Sequence[int] + :param weight: the weight for the Pauli string + defaults to None (all Pauli strings weight 1.0) + :type weight: Optional[float], optional + :return: the tensorflow sparse matrix + :rtype: Tensor + """ + n = len(l) + one = num_to_tensor(0b1, dtype="int64") + idx_x = num_to_tensor(0b0, dtype="int64") + idx_y = num_to_tensor(0b0, dtype="int64") + idx_z = num_to_tensor(0b0, dtype="int64") + i = num_to_tensor(0, dtype="int64") + for j in l: + # i, j from enumerate is python, non jittable when cond using tensor + if j == 1: # xi + idx_x += tf.bitwise.left_shift(one, n - i - 1) + elif j == 2: # yi + idx_y += tf.bitwise.left_shift(one, n - i - 1) + elif j == 3: # zi + idx_z += tf.bitwise.left_shift(one, n - i - 1) + i += 1 + + if weight is None: + weight = tf.constant(1.0, dtype=tf.complex64) + return ps2coo_core(idx_x, idx_y, idx_z, weight, n) + + +def ps2coo_core( + idx_x: Tensor, idx_y: Tensor, idx_z: Tensor, weight: Tensor, nqubits: int +) -> Tuple[Tensor, Tensor]: + dtype = weight.dtype + s = 0b1 << nqubits + idx1 = tf.cast(tf.range(s), dtype=tf.int64) + idx2 = (idx1 ^ idx_x) ^ (idx_y) + indices = tf.transpose(tf.stack([idx1, idx2])) + tmp = idx1 & (idx_y | idx_z) + e = idx1 * 0 + ny = 0 + for i in range(nqubits): + # if tmp[i] is power of 2 (non zero), then e[i] = 1 + e ^= tf.bitwise.right_shift(tmp, i) & 0b1 + # how many 1 contained in idx_y + ny += tf.bitwise.right_shift(idx_y, i) & 0b1 + ny = tf.math.mod(ny, 4) + values = ( + tf.cast((1 - 2 * e), dtype) + * tf.math.pow(tf.constant(-1.0j, dtype=dtype), tf.cast(ny, dtype)) + * weight ) + return tf.SparseTensor(indices=indices, values=values, dense_shape=(s, s)) # type: ignore + # some quantum quatities below From 1b297d5fdcfc9db0842229629de27127ec08a2e5 Mon Sep 17 00:00:00 2001 From: Kazuki Tsuoka Date: Thu, 30 May 2024 13:42:24 +0900 Subject: [PATCH 14/56] update quantum.py & test --- tensorcircuit/quantum.py | 43 +++++++++++++++++++--------------------- tests/test_quantum.py | 7 ++++--- 2 files changed, 24 insertions(+), 26 deletions(-) diff --git a/tensorcircuit/quantum.py b/tensorcircuit/quantum.py index 67a14b25..33fe8163 100644 --- a/tensorcircuit/quantum.py +++ b/tensorcircuit/quantum.py @@ -1245,8 +1245,8 @@ def heisenberg_hamiltonian( r[node] = 2 ls.append(r) weight.append(hy) - ls = tf.constant(ls) - weight = tf.constant(weight) + ls = num_to_tensor(ls) + weight = num_to_tensor(weight) ls = get_backend("tensorflow").cast(ls, dtypestr) weight = get_backend("tensorflow").cast(weight, dtypestr) if sparse: @@ -1332,22 +1332,18 @@ def PauliStringSum2COO( # s = 0b1 << n if weight is None: weight = [1.0 for _ in range(nterms)] - if not (isinstance(weight, tf.Tensor) or isinstance(weight, tf.Variable)): - weight = tf.constant(weight, dtype=getattr(tf, dtypestr)) + weight = num_to_tensor(weight) # rsparse = get_backend("numpy").coo_sparse_matrix( # indices=np.array([[0, 0]], dtype=np.int64), # values=np.array([0.0], dtype=getattr(np, dtypestr)), # shape=(s, s), # ) - rsparses = [ - get_backend("tensorflow").numpy(PauliString2COO(ls[i], weight[i])) # type: ignore - for i in range(nterms) - ] + rsparses = [backend.numpy(PauliString2COO(ls[i], weight[i])) for i in range(nterms)] # type: ignore rsparse = _dc_sum(rsparses) # auto transformed into csr format!! # for i in range(nterms): - # rsparse += get_backend("tensorflow").numpy(PauliString2COO(ls[i], weight[i])) # type: ignore + # rsparse += get_backend("tensorflow").numpy(PauliString2COO(ls[i], weight[i])) rsparse = rsparse.tocoo() if numpy: return rsparse @@ -1389,6 +1385,8 @@ def PauliStringSum2COO_tf( :return: the tensorflow coo sparse matrix :rtype: Tensor """ + import tensorflow as tf + nterms = len(ls) n = len(ls[0]) s = 0b1 << n @@ -1409,7 +1407,7 @@ def PauliStringSum2COO_tf( def PauliString2COO(l: Sequence[int], weight: Optional[float] = None) -> Tensor: """ - Generate tensorflow sparse matrix from Pauli string sum + Generate sparse matrix from Pauli string sum :param l: 1D Tensor representing for a Pauli string, e.g. [1, 0, 0, 3, 2] is for :math:`X_0Z_3Y_4` @@ -1429,41 +1427,40 @@ def PauliString2COO(l: Sequence[int], weight: Optional[float] = None) -> Tensor: for j in l: # i, j from enumerate is python, non jittable when cond using tensor if j == 1: # xi - idx_x += tf.bitwise.left_shift(one, n - i - 1) + idx_x += backend.left_shift(one, n - i - 1) elif j == 2: # yi - idx_y += tf.bitwise.left_shift(one, n - i - 1) + idx_y += backend.left_shift(one, n - i - 1) elif j == 3: # zi - idx_z += tf.bitwise.left_shift(one, n - i - 1) + idx_z += backend.left_shift(one, n - i - 1) i += 1 if weight is None: - weight = tf.constant(1.0, dtype=tf.complex64) + weight = num_to_tensor(1.0, dtype="complex64") return ps2coo_core(idx_x, idx_y, idx_z, weight, n) def ps2coo_core( idx_x: Tensor, idx_y: Tensor, idx_z: Tensor, weight: Tensor, nqubits: int ) -> Tuple[Tensor, Tensor]: - dtype = weight.dtype s = 0b1 << nqubits - idx1 = tf.cast(tf.range(s), dtype=tf.int64) + idx1 = num_to_tensor(backend.arange(s), dtype="int64") idx2 = (idx1 ^ idx_x) ^ (idx_y) - indices = tf.transpose(tf.stack([idx1, idx2])) + indices = backend.transpose(backend.stack([idx1, idx2])) tmp = idx1 & (idx_y | idx_z) e = idx1 * 0 ny = 0 for i in range(nqubits): # if tmp[i] is power of 2 (non zero), then e[i] = 1 - e ^= tf.bitwise.right_shift(tmp, i) & 0b1 + e ^= backend.right_shift(tmp, i) & 0b1 # how many 1 contained in idx_y - ny += tf.bitwise.right_shift(idx_y, i) & 0b1 - ny = tf.math.mod(ny, 4) + ny += backend.right_shift(idx_y, i) & 0b1 + ny = backend.mod(ny, 4) values = ( - tf.cast((1 - 2 * e), dtype) - * tf.math.pow(tf.constant(-1.0j, dtype=dtype), tf.cast(ny, dtype)) + num_to_tensor(1 - 2 * e) + * ((num_to_tensor(-1.0j) ** num_to_tensor(ny))) * weight ) - return tf.SparseTensor(indices=indices, values=values, dense_shape=(s, s)) # type: ignore + return backend.coo_sparse_matrix(indices=indices, values=values, shape=(s, s)) # type: ignore # some quantum quatities below diff --git a/tests/test_quantum.py b/tests/test_quantum.py index 2009fbe6..63ff755e 100644 --- a/tests/test_quantum.py +++ b/tests/test_quantum.py @@ -1,13 +1,13 @@ # pylint: disable=invalid-name -from functools import partial import os import sys +from functools import partial import numpy as np import pytest -from pytest_lazyfixture import lazy_fixture as lf import tensornetwork as tn +from pytest_lazyfixture import lazy_fixture as lf thisfile = os.path.abspath(__file__) modulepath = os.path.dirname(os.path.dirname(thisfile)) @@ -312,7 +312,8 @@ def test_extract_from_measure(backend): np.testing.assert_allclose(r, 1, atol=1e-5) -def test_heisenberg_ham(tfb): +@pytest.mark.parametrize("backend", [lf("npb"), lf("tfb"), lf("jaxb")]) +def test_heisenberg_ham(backend): g = tc.templates.graphs.Line1D(6) h = tc.quantum.heisenberg_hamiltonian(g, sparse=False) e, _ = tc.backend.eigh(h) From 45c5b6e17b29cd1f51cd07bbd32e54e54808b24c Mon Sep 17 00:00:00 2001 From: Kazuki Tsuoka Date: Thu, 30 May 2024 14:05:31 +0900 Subject: [PATCH 15/56] fix: fix failed test --- tests/test_templates.py | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/tests/test_templates.py b/tests/test_templates.py index 25f22b08..79e2b176 100644 --- a/tests/test_templates.py +++ b/tests/test_templates.py @@ -1,7 +1,8 @@ # pylint: disable=invalid-name -import sys import os +import sys + import numpy as np import pytest from pytest_lazyfixture import lazy_fixture as lf @@ -160,10 +161,6 @@ def test_operator_measurement(backend): ) dense = tc.array_to_tensor(np.kron(tc.gates._x_matrix, np.eye(2))) sparse = tc.quantum.PauliString2COO([1, 0]) - if tc.backend.name == "jax": - sparse = tc.backend.coo_sparse_matrix( - sparse.indices, sparse.values, sparse.shape - ) for h in [dense, sparse, mpo]: From 846715af3eca8f0b737a367ddd689a2b4aa50896 Mon Sep 17 00:00:00 2001 From: Kazuki Tsuoka Date: Thu, 30 May 2024 15:15:20 +0900 Subject: [PATCH 16/56] chore: change example --- examples/hamiltonian_building.py | 91 ++++++++++++++++++++++++++++---- tensorcircuit/quantum.py | 2 - 2 files changed, 81 insertions(+), 12 deletions(-) diff --git a/examples/hamiltonian_building.py b/examples/hamiltonian_building.py index e00c6a7e..91ce33a7 100644 --- a/examples/hamiltonian_building.py +++ b/examples/hamiltonian_building.py @@ -3,36 +3,86 @@ """ import time + +import jax import numpy as np import quimb +import scipy +import tensorflow as tf +import torch + import tensorcircuit as tc +tc.set_dtype("complex128") nwires = 20 -# tc outperforms quimb in large nwires +# tc with numpy backend outperforms quimb in large nwires + +print("--------------------") +# 1.1 tc approach for TFIM (numpy backend) -# 1. tc approach for TFIM +tc.set_backend("numpy") +print("hamiltonian building with tc (numpy backend)") +print("numpy version: ", np.__version__) +print("scipy version: ", scipy.__version__) g = tc.templates.graphs.Line1D(nwires, pbc=False) -time0 = time.time() -h1 = tc.quantum.heisenberg_hamiltonian( +time0 = time.perf_counter() +h11 = tc.quantum.heisenberg_hamiltonian( g, hzz=1, hxx=0, hyy=0, hz=0, hx=-1, hy=0, sparse=True, numpy=True ) -time1 = time.time() +time1 = time.perf_counter() + +print("tc (numpy) time: ", time1 - time0) +print("--------------------") + +# 1.2 tc approach for TFIM (jax backend) + +tc.set_backend("jax") +print("hamiltonian building with tc (jax backend)") +print("jax version: ", jax.__version__) + +g = tc.templates.graphs.Line1D(nwires, pbc=False) +time0 = time.perf_counter() +h12 = tc.quantum.heisenberg_hamiltonian( + g, hzz=1, hxx=0, hyy=0, hz=0, hx=-1, hy=0, sparse=True +) +time1 = time.perf_counter() + +print("tc (jax) time: ", time1 - time0) +print("--------------------") + +# 1.3 tc approach for TFIM (tensorflow backend) + +tc.set_backend("tensorflow") +print("hamiltonian building with tc (tensorflow backend)") +print("tensorflow version: ", tf.__version__) + +g = tc.templates.graphs.Line1D(nwires, pbc=False) +time0 = time.perf_counter() +h13 = tc.quantum.heisenberg_hamiltonian( + g, hzz=1, hxx=0, hyy=0, hz=0, hx=-1, hy=0, sparse=True +) +time1 = time.perf_counter() + +print("tc (tensorflow) time: ", time1 - time0) +print("--------------------") -print("tc time: ", time1 - time0) # 2. quimb approach for TFIM -builder = quimb.tensor.tensor_gen.SpinHam() +print("hamiltonian building with quimb") +print("quimb version: ", quimb.__version__) + +builder = quimb.tensor.SpinHam1D() # spin operator instead of Pauli matrix builder += 4, "Z", "Z" builder += -2, "X" -time0 = time.time() +time0 = time.perf_counter() h2 = builder.build_sparse(nwires) h2 = h2.tocoo() -time1 = time.time() +time1 = time.perf_counter() print("quimb time: ", time1 - time0) @@ -43,4 +93,25 @@ def assert_equal(h1, h2): np.testing.assert_allclose(h1.data, h2.data, atol=1e-5) -assert_equal(h1, h2) +# numpy +assert_equal(h11, h2) + +# jax +scipy_coo = scipy.sparse.coo_matrix( + ( + h12.data, + (h12.indices[:, 0], h12.indices[:, 1]), + ), + shape=h12.shape, +) +assert_equal(scipy_coo, h2) + +# tensorflow +scipy_coo = scipy.sparse.coo_matrix( + ( + h13.values, + (h13.indices[:, 0], h13.indices[:, 1]), + ), + shape=h13.shape, +) +assert_equal(scipy_coo, h2) diff --git a/tensorcircuit/quantum.py b/tensorcircuit/quantum.py index 33fe8163..eb3d6637 100644 --- a/tensorcircuit/quantum.py +++ b/tensorcircuit/quantum.py @@ -1247,8 +1247,6 @@ def heisenberg_hamiltonian( weight.append(hy) ls = num_to_tensor(ls) weight = num_to_tensor(weight) - ls = get_backend("tensorflow").cast(ls, dtypestr) - weight = get_backend("tensorflow").cast(weight, dtypestr) if sparse: r = PauliStringSum2COO_numpy(ls, weight) if numpy: From 313ddd39a8d4acb77fb20927e171d2af3d0d1f9c Mon Sep 17 00:00:00 2001 From: Kazuki Tsuoka Date: Thu, 30 May 2024 15:21:38 +0900 Subject: [PATCH 17/56] lint: fix lint --- tensorcircuit/quantum.py | 1 - 1 file changed, 1 deletion(-) diff --git a/tensorcircuit/quantum.py b/tensorcircuit/quantum.py index eb3d6637..9662e97b 100644 --- a/tensorcircuit/quantum.py +++ b/tensorcircuit/quantum.py @@ -37,7 +37,6 @@ remove_node, ) -from .backends import get_backend from .cons import backend, contractor, dtypestr, npdtype, rdtypestr from .gates import Gate, num_to_tensor from .utils import arg_alias From 0366583144590a7c2dea89524c062bc3f5b9ac54 Mon Sep 17 00:00:00 2001 From: Gopal Dahale Date: Thu, 30 May 2024 12:35:38 +0530 Subject: [PATCH 18/56] Added compass. Kept inital parameters same for all --- examples/vqe_noisyopt.py | 69 ++++++++++++++++++++++++++++------------ 1 file changed, 49 insertions(+), 20 deletions(-) diff --git a/examples/vqe_noisyopt.py b/examples/vqe_noisyopt.py index 8fa06bd3..2c59026b 100644 --- a/examples/vqe_noisyopt.py +++ b/examples/vqe_noisyopt.py @@ -9,7 +9,7 @@ import tensorcircuit as tc from tensorcircuit import experimental as E from noisyopt import minimizeCompass, minimizeSPSA -from tabulate import tabulate +from tabulate import tabulate # pip install tabulate seed = 42 np.random.seed(seed) @@ -20,10 +20,14 @@ n = 6 nlayers = 4 +# initial value of the parameters +initial_value = np.random.uniform(size=[n * nlayers * 2]) + result = { "Algorithm / Optimization": ["Without Shot Noise", "With Shot Noise"], - "Gradient Free": [], - "Gradient based": [], + "SPSA (Gradient Free)": [], + "Compass Search (Gradient Free)": [], + "Adam (Gradient based)": [], } # We use OBC 1D TFIM Hamiltonian in this script @@ -113,14 +117,26 @@ def exp_val_analytical(param): r = minimizeSPSA( func=exp_val_analytical, - x0=np.random.uniform(size=[n * nlayers * 2]), + x0=initial_value, niter=6000, paired=False, ) print(r) -print(">> Converged as (Gradient Free) :", exp_val_analytical(r.x)) -result["Gradient Free"].append(exp_val_analytical(r.x)) +print(">> SPSA converged as:", exp_val_analytical(r.x)) +result["SPSA (Gradient Free)"].append(exp_val_analytical(r.x)) + +r = minimizeCompass( + func=exp_val_analytical, + x0=initial_value, + deltatol=0.1, + feps=1e-3, + paired=False, +) + +print(r) +print(">> Compass converged as:", exp_val_analytical(r.x)) +result["Compass Search (Gradient Free)"].append(exp_val_analytical(r.x)) # 1.2 VQE with numerically exact expectation: gradient based @@ -128,16 +144,16 @@ def exp_val_analytical(param): init_value=1e-2, transition_steps=500, decay_rate=0.9 ) opt = K.optimizer(optax.adam(exponential_decay_scheduler)) -param = K.implicit_randn([n, nlayers, 2], stddev=0.1) # zeros stall the gradient +param = initial_value.reshape((n, nlayers, 2)) # zeros stall the gradient exp_val_grad_analytical = K.jit(K.value_and_grad(exp_val_analytical)) for i in range(1000): e, g = exp_val_grad_analytical(param) param = opt.update(g, param) if i % 100 == 99: - print(e) + print(f"Expectation value at iteration {i}: {e}") -print(">> Converged as (Gradient based):", exp_val_grad_analytical(param)[0]) -result["Gradient based"].append(exp_val_grad_analytical(param)[0]) +print(">> Adam converged as:", exp_val_grad_analytical(param)[0]) +result["Adam (Gradient based)"].append(exp_val_grad_analytical(param)[0]) # 2.1 VQE with finite shot noise: gradient free @@ -145,7 +161,7 @@ def exp_val_analytical(param): print(">>> VQE with shot noise") -rkey = K.get_random_state(42) +rkey = K.get_random_state(seed) def exp_val_wrapper(param): @@ -158,13 +174,26 @@ def exp_val_wrapper(param): r = minimizeSPSA( func=exp_val_wrapper, - x0=np.random.uniform(size=[n * nlayers * 2]), + x0=initial_value, niter=6000, paired=False, ) print(r) -print(">> Converged as (Gradient Free) :", exp_val_wrapper(r["x"])) -result["Gradient Free"].append(exp_val_wrapper(r["x"])) +print(">> SPSA converged as:", exp_val_wrapper(r["x"])) +result["SPSA (Gradient Free)"].append(exp_val_wrapper(r["x"])) + +r = minimizeCompass( + func=exp_val_wrapper, + x0=initial_value, + deltatol=0.1, + feps=1e-2, + paired=False, +) + +print(r) +print(">> Compass converged as:", exp_val_wrapper(r["x"])) +result["Compass Search (Gradient Free)"].append(exp_val_wrapper(r["x"])) + # 2.2 VQE with finite shot noise: gradient based @@ -172,9 +201,9 @@ def exp_val_wrapper(param): init_value=1e-2, transition_steps=500, decay_rate=0.9 ) opt = K.optimizer(optax.adam(exponential_decay_scheduler)) -param = K.implicit_randn([n, nlayers, 2], stddev=0.1) # zeros stall the gradient +param = initial_value.reshape((n, nlayers, 2)) # zeros stall the gradient exp_grad = E.parameter_shift_grad_v2(exp_val, argnums=0, random_argnums=1) -rkey = K.get_random_state(42) +rkey = K.get_random_state(seed) for i in range(1000): rkey, skey = K.random_split(rkey) @@ -182,13 +211,13 @@ def exp_val_wrapper(param): param = opt.update(g, param) if i % 100 == 99: rkey, skey = K.random_split(rkey) - print(exp_val(param, skey)) + print(f"Expectation value at iteration {i}: {exp_val(param, skey)}") # the real energy position after optimization -print(">> Converged as (Gradient based):", exp_val_analytical(param)) -result["Gradient based"].append(exp_val_analytical(param)) +print(">> Adam converged as:", exp_val_analytical(param)) +result["Adam (Gradient based)"].append(exp_val_analytical(param)) print("==================================================================") print(">>> Benchmark") print(">> Exact ground state energy: ", exact_gs_energy) -print(tabulate(result, headers="keys")) +print(tabulate(result, headers="keys", tablefmt="github")) From 856c6500df9f067a8be3798f1df48a07aa329171 Mon Sep 17 00:00:00 2001 From: refraction-ray Date: Thu, 30 May 2024 15:51:05 +0800 Subject: [PATCH 19/56] jit the paulistrsum --- examples/hamiltonian_building.py | 19 ++++++++++++-- requirements/requirements-extra.txt | 2 +- tensorcircuit/quantum.py | 39 ++++++++++++++++++++++------- 3 files changed, 48 insertions(+), 12 deletions(-) diff --git a/examples/hamiltonian_building.py b/examples/hamiltonian_building.py index 91ce33a7..80385265 100644 --- a/examples/hamiltonian_building.py +++ b/examples/hamiltonian_building.py @@ -9,14 +9,12 @@ import quimb import scipy import tensorflow as tf -import torch import tensorcircuit as tc tc.set_dtype("complex128") nwires = 20 -# tc with numpy backend outperforms quimb in large nwires print("--------------------") @@ -51,6 +49,14 @@ time1 = time.perf_counter() print("tc (jax) time: ", time1 - time0) + +time0 = time.perf_counter() +h12 = tc.quantum.heisenberg_hamiltonian( + g, hzz=1, hxx=0, hyy=0, hz=0, hx=-1, hy=0, sparse=True +) +time1 = time.perf_counter() + +print("tc (jax) time (after jit): ", time1 - time0) print("--------------------") # 1.3 tc approach for TFIM (tensorflow backend) @@ -67,6 +73,15 @@ time1 = time.perf_counter() print("tc (tensorflow) time: ", time1 - time0) + +time0 = time.perf_counter() +h13 = tc.quantum.heisenberg_hamiltonian( + g, hzz=1, hxx=0, hyy=0, hz=0, hx=-1, hy=0, sparse=True +) +time1 = time.perf_counter() + +print("tc (tensorflow) time (after jit): ", time1 - time0) + print("--------------------") diff --git a/requirements/requirements-extra.txt b/requirements/requirements-extra.txt index e5cd85a8..63e1f992 100644 --- a/requirements/requirements-extra.txt +++ b/requirements/requirements-extra.txt @@ -4,7 +4,7 @@ qiskit-aer<1.0 qiskit-nature mitiq cirq -torch +torch==2.2.2 # jupyter mthree==1.1.0 openfermion diff --git a/tensorcircuit/quantum.py b/tensorcircuit/quantum.py index 9662e97b..a2c54bb6 100644 --- a/tensorcircuit/quantum.py +++ b/tensorcircuit/quantum.py @@ -1330,12 +1330,21 @@ def PauliStringSum2COO( if weight is None: weight = [1.0 for _ in range(nterms)] weight = num_to_tensor(weight) + ls = num_to_tensor(ls) # rsparse = get_backend("numpy").coo_sparse_matrix( # indices=np.array([[0, 0]], dtype=np.int64), # values=np.array([0.0], dtype=getattr(np, dtypestr)), # shape=(s, s), # ) - rsparses = [backend.numpy(PauliString2COO(ls[i], weight[i])) for i in range(nterms)] # type: ignore + global PauliString2COO_jit + if backend.name not in PauliString2COO_jit: + PauliString2COO_jit[backend.name] = backend.jit( + PauliString2COO, jit_compile=True + ) + rsparses = [ + backend.numpy(PauliString2COO_jit[backend.name](ls[i], weight[i])) # type: ignore + for i in range(nterms) + ] rsparse = _dc_sum(rsparses) # auto transformed into csr format!! @@ -1372,6 +1381,7 @@ def PauliStringSum2COO_tf( ) -> Tensor: """ Generate tensorflow sparse matrix from Pauli string sum + [deprecated] :param ls: 2D Tensor, each row is for a Pauli string, e.g. [1, 0, 0, 3, 2] is for :math:`X_0Z_3Y_4` @@ -1416,19 +1426,27 @@ def PauliString2COO(l: Sequence[int], weight: Optional[float] = None) -> Tensor: :rtype: Tensor """ n = len(l) + l = backend.cast(l, dtype="int64") one = num_to_tensor(0b1, dtype="int64") idx_x = num_to_tensor(0b0, dtype="int64") idx_y = num_to_tensor(0b0, dtype="int64") idx_z = num_to_tensor(0b0, dtype="int64") i = num_to_tensor(0, dtype="int64") - for j in l: - # i, j from enumerate is python, non jittable when cond using tensor - if j == 1: # xi - idx_x += backend.left_shift(one, n - i - 1) - elif j == 2: # yi - idx_y += backend.left_shift(one, n - i - 1) - elif j == 3: # zi - idx_z += backend.left_shift(one, n - i - 1) + # for j in l: + for j in range(n): + oh = backend.onehot(l[j], 4) + s = backend.left_shift(one, n - i - 1) + oh = backend.cast(oh, dtype="int64") + idx_x += oh[1] * s + idx_y += oh[2] * s + idx_z += oh[3] * s + + # if j == 1: # xi + # idx_x += backend.left_shift(one, n - i - 1) + # elif j == 2: # yi + # idx_y += backend.left_shift(one, n - i - 1) + # elif j == 3: # zi + # idx_z += backend.left_shift(one, n - i - 1) i += 1 if weight is None: @@ -1436,6 +1454,9 @@ def PauliString2COO(l: Sequence[int], weight: Optional[float] = None) -> Tensor: return ps2coo_core(idx_x, idx_y, idx_z, weight, n) +PauliString2COO_jit = {"numpy": PauliString2COO} + + def ps2coo_core( idx_x: Tensor, idx_y: Tensor, idx_z: Tensor, weight: Tensor, nqubits: int ) -> Tuple[Tensor, Tensor]: From f0d561b21c1b72943014ac87ff763e0ddbaac0d5 Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Thu, 30 May 2024 08:12:29 +0000 Subject: [PATCH 20/56] docs: update README.md [skip ci] --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 845a6750..dbdfb554 100644 --- a/README.md +++ b/README.md @@ -297,7 +297,7 @@ TensorCircuit is open source, released under the Apache License, Version 2.0. ztzhu
ztzhu

💻 Rabqubit
Rabqubit

💡 - Kazuki Tsuoka
Kazuki Tsuoka

💻 ⚠️ 📖 + Kazuki Tsuoka
Kazuki Tsuoka

💻 ⚠️ 📖 💡 From 14609aa7b9da6f2edc05d47f280d313bf9b91b38 Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Thu, 30 May 2024 08:12:30 +0000 Subject: [PATCH 21/56] docs: update .all-contributorsrc [skip ci] --- .all-contributorsrc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 2afd3367..fb02e2fa 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -309,7 +309,8 @@ "contributions": [ "code", "test", - "doc" + "doc", + "example" ] } ], From 05f6c445af3d110a3f0507f615464bb47cfa4626 Mon Sep 17 00:00:00 2001 From: refraction-ray Date: Thu, 30 May 2024 16:32:49 +0800 Subject: [PATCH 22/56] lint the example --- examples/vqe_noisyopt.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/examples/vqe_noisyopt.py b/examples/vqe_noisyopt.py index 2c59026b..8bd18948 100644 --- a/examples/vqe_noisyopt.py +++ b/examples/vqe_noisyopt.py @@ -4,12 +4,11 @@ from functools import partial import numpy as np -from scipy import optimize import optax -import tensorcircuit as tc -from tensorcircuit import experimental as E from noisyopt import minimizeCompass, minimizeSPSA from tabulate import tabulate # pip install tabulate +import tensorcircuit as tc +from tensorcircuit import experimental as E seed = 42 np.random.seed(seed) From d554eb3ece84ab04b00babf60096f5ece17b62ab Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Thu, 30 May 2024 08:34:29 +0000 Subject: [PATCH 23/56] docs: update README.md [skip ci] --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index dbdfb554..224e1a67 100644 --- a/README.md +++ b/README.md @@ -298,6 +298,7 @@ TensorCircuit is open source, released under the Apache License, Version 2.0. ztzhu
ztzhu

💻 Rabqubit
Rabqubit

💡 Kazuki Tsuoka
Kazuki Tsuoka

💻 ⚠️ 📖 💡 + Gopal Ramesh Dahale
Gopal Ramesh Dahale

💡 From ebca718f989bc854aa8ee20b7748033014697a52 Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Thu, 30 May 2024 08:34:30 +0000 Subject: [PATCH 24/56] docs: update .all-contributorsrc [skip ci] --- .all-contributorsrc | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.all-contributorsrc b/.all-contributorsrc index fb02e2fa..3fec6727 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -312,6 +312,15 @@ "doc", "example" ] + }, + { + "login": "Gopal-Dahale", + "name": "Gopal Ramesh Dahale", + "avatar_url": "https://avatars.githubusercontent.com/u/49199003?v=4", + "profile": "https://gopal-dahale.github.io/", + "contributions": [ + "example" + ] } ], "contributorsPerLine": 6, From 54bd507be65708e9a97a05556fc94e826b8c260e Mon Sep 17 00:00:00 2001 From: refraction-ray Date: Thu, 30 May 2024 16:42:00 +0800 Subject: [PATCH 25/56] fix non tensor input --- tensorcircuit/quantum.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tensorcircuit/quantum.py b/tensorcircuit/quantum.py index a2c54bb6..23bb926c 100644 --- a/tensorcircuit/quantum.py +++ b/tensorcircuit/quantum.py @@ -1426,7 +1426,8 @@ def PauliString2COO(l: Sequence[int], weight: Optional[float] = None) -> Tensor: :rtype: Tensor """ n = len(l) - l = backend.cast(l, dtype="int64") + l = num_to_tensor(l, dtype="int64") + # l = backend.cast(l, dtype="int64") one = num_to_tensor(0b1, dtype="int64") idx_x = num_to_tensor(0b0, dtype="int64") idx_y = num_to_tensor(0b0, dtype="int64") From f0c1c80259cfdf1d51c932a1d19dbd50da408550 Mon Sep 17 00:00:00 2001 From: Kazuki Tsuoka Date: Fri, 31 May 2024 19:28:55 +0900 Subject: [PATCH 26/56] chore: add example --- examples/cotengra_setting_bench.py | 142 +++++++++++++++++++++++++++++ 1 file changed, 142 insertions(+) create mode 100644 examples/cotengra_setting_bench.py diff --git a/examples/cotengra_setting_bench.py b/examples/cotengra_setting_bench.py new file mode 100644 index 00000000..2ffee840 --- /dev/null +++ b/examples/cotengra_setting_bench.py @@ -0,0 +1,142 @@ +""" +Optimization for performance comparison with different cotengra settings. +(random layouts averaged). +""" + +import itertools +import sys +import warnings + +import cotengra as ctg +import networkx as nx +import numpy as np + +sys.path.insert(0, "../") +import tensorcircuit as tc + +try: + import kahypar +except ImportError: + print("kahypar not installed, please install it to run this script.") + exit() + + +# suppress the warning from cotengra +warnings.filterwarnings( + "ignore", + message="The inputs or output of this tree are not ordered." + "Costs will be accurate but actually contracting requires " + "ordered indices corresponding to array axes.", +) + +K = tc.set_backend("jax") + + +def generate_circuit(param, g, n, nlayers): + # construct the circuit ansatz + c = tc.Circuit(n) + for i in range(n): + c.H(i) + for j in range(nlayers): + c = tc.templates.blocks.QAOA_block(c, g, param[j, 0], param[j, 1]) + return c + + +def trigger_cotengra_optimization(n, nlayers, d): + g = nx.random_regular_graph(d, n) + + # define the loss function + def loss_f(params, n, nlayers): + + c = generate_circuit(params, g, n, nlayers) + + # calculate the loss function, max cut + loss = 0.0 + for e in g.edges: + loss += c.expectation_ps(z=[e[0], e[1]]) + + return K.real(loss) + + params = K.implicit_randn(shape=[nlayers, 2]) + + # run only once to trigger the compilation + K.jit( + K.value_and_grad(loss_f, argnums=0), + static_argnums=(1, 2), + )(params, n, nlayers) + + +# define the cotengra optimizer parameters +methods_args = [ # https://cotengra.readthedocs.io/en/latest/advanced.html#drivers + "greedy", + "kahypar", + "labels", + # "spinglass", # requires igraph + # "labelprop", # requires igraph + # "betweenness", # requires igraph + # "walktrap", # requires igraph + # "quickbb", # requires https://github.com/dechterlab/quickbb + # "flowcutter", # requires https://github.com/kit-algo/flow-cutter-pace17 +] + +optlib_args = [ # https://cotengra.readthedocs.io/en/latest/advanced.html#optimization-library + "optuna", # pip install optuna + "random", + # "baytune", # pip install baytune + # "nevergrad", # pip install nevergrad + # "chocolate", # pip install git+https://github.com/AIworx-Labs/chocolate@master + # "skopt", # pip install scikit-optimize +] + +post_processing_args = [ # https://cotengra.readthedocs.io/en/latest/advanced.html#slicing-and-subtree-reconfiguration + (None, None), + ("slicing_opts", {"target_size": 2**28}), + ("slicing_reconf_opts", {"target_size": 2**28}), + ("reconf_opts", {}), + ("simulated_annealing_opts", {}), +] + + +def get_optimizer(method, optlib, post_processing): + if post_processing[0] is None: + return ctg.HyperOptimizer( + methods=method, + optlib=optlib, + minimize="flops", + parallel=True, + max_time=30, + max_repeats=30, + progbar=True, + ) + else: + return ctg.HyperOptimizer( + methods=method, + optlib=optlib, + minimize="flops", + parallel=True, + max_time=30, + max_repeats=30, + progbar=True, + **{post_processing[0]: post_processing[1]}, + ) + + +if __name__ == "__main__": + # define the parameters + n = 20 + nlayers = 15 + d = 3 + + for method, optlib, post_processing in itertools.product( + methods_args, optlib_args, post_processing_args + ): + print(f"method: {method}, optlib: {optlib}, post_processing: {post_processing}") + tc.set_contractor( + "custom", + optimizer=get_optimizer(method, optlib, post_processing), + contraction_info=True, + preprocessing=True, + debug_level=2, # no computation + ) + trigger_cotengra_optimization(n, nlayers, d) + print("-------------------------") From 13b543ac5a2e98de91c0f88c25ffc6764f826a76 Mon Sep 17 00:00:00 2001 From: Kazuki Tsuoka Date: Fri, 31 May 2024 19:29:49 +0900 Subject: [PATCH 27/56] chore: comment change --- examples/cotengra_setting_bench.py | 1 - 1 file changed, 1 deletion(-) diff --git a/examples/cotengra_setting_bench.py b/examples/cotengra_setting_bench.py index 2ffee840..662a8b73 100644 --- a/examples/cotengra_setting_bench.py +++ b/examples/cotengra_setting_bench.py @@ -1,6 +1,5 @@ """ Optimization for performance comparison with different cotengra settings. -(random layouts averaged). """ import itertools From 9827b394961b7606021203bee8931a97645224fe Mon Sep 17 00:00:00 2001 From: Kazuki Tsuoka Date: Mon, 3 Jun 2024 14:41:24 +0900 Subject: [PATCH 28/56] feat: add more settings for cotengra benchmark example --- examples/cotengra_setting_bench.py | 70 ++++++++++++++++++++---------- 1 file changed, 47 insertions(+), 23 deletions(-) diff --git a/examples/cotengra_setting_bench.py b/examples/cotengra_setting_bench.py index 662a8b73..3143cc18 100644 --- a/examples/cotengra_setting_bench.py +++ b/examples/cotengra_setting_bench.py @@ -41,17 +41,16 @@ def generate_circuit(param, g, n, nlayers): return c -def trigger_cotengra_optimization(n, nlayers, d): - g = nx.random_regular_graph(d, n) +def trigger_cotengra_optimization(n, nlayers, graph): # define the loss function def loss_f(params, n, nlayers): - c = generate_circuit(params, g, n, nlayers) + c = generate_circuit(params, graph, n, nlayers) # calculate the loss function, max cut loss = 0.0 - for e in g.edges: + for e in graph.edges: loss += c.expectation_ps(z=[e[0], e[1]]) return K.real(loss) @@ -60,12 +59,28 @@ def loss_f(params, n, nlayers): # run only once to trigger the compilation K.jit( - K.value_and_grad(loss_f, argnums=0), + loss_f, static_argnums=(1, 2), )(params, n, nlayers) +# define the benchmark parameters +n = 10 +nlayers = 15 + # define the cotengra optimizer parameters +graph_args = { + "1D lattice": nx.convert_node_labels_to_integers( + nx.grid_graph((n, 1)) + ), # 1D lattice + "2D lattice": nx.convert_node_labels_to_integers( + nx.grid_graph((n // 5, n // (n // 5))) + ), # 2D lattice + "all-to-all connected": nx.convert_node_labels_to_integers( + nx.complete_graph(n) + ), # all-to-all connected +} + methods_args = [ # https://cotengra.readthedocs.io/en/latest/advanced.html#drivers "greedy", "kahypar", @@ -79,10 +94,10 @@ def loss_f(params, n, nlayers): ] optlib_args = [ # https://cotengra.readthedocs.io/en/latest/advanced.html#optimization-library - "optuna", # pip install optuna - "random", + # "optuna", # pip install optuna + "random", # default when no library is installed # "baytune", # pip install baytune - # "nevergrad", # pip install nevergrad + "nevergrad", # pip install nevergrad # "chocolate", # pip install git+https://github.com/AIworx-Labs/chocolate@master # "skopt", # pip install scikit-optimize ] @@ -95,47 +110,56 @@ def loss_f(params, n, nlayers): ("simulated_annealing_opts", {}), ] +minimize_args = [ # https://cotengra.readthedocs.io/en/main/advanced.html#objective + "flops", # minimize the total number of scalar operations + "size", # minimize the size of the largest intermediate tensor + "write", # minimize the sum of sizes of all intermediate tensors + "combo", # minimize the sum of FLOPS + α * WRITE where α is 64 +] + -def get_optimizer(method, optlib, post_processing): +def get_optimizer(method, optlib, post_processing, minimize): if post_processing[0] is None: return ctg.HyperOptimizer( methods=method, optlib=optlib, - minimize="flops", + minimize=minimize, parallel=True, max_time=30, - max_repeats=30, + max_repeats=128, progbar=True, ) else: return ctg.HyperOptimizer( methods=method, optlib=optlib, - minimize="flops", + minimize=minimize, parallel=True, max_time=30, - max_repeats=30, + max_repeats=128, progbar=True, **{post_processing[0]: post_processing[1]}, ) if __name__ == "__main__": - # define the parameters - n = 20 - nlayers = 15 - d = 3 - - for method, optlib, post_processing in itertools.product( - methods_args, optlib_args, post_processing_args + for graph, method, optlib, post_processing, minimize in itertools.product( + graph_args.keys(), + methods_args, + optlib_args, + post_processing_args, + minimize_args, ): - print(f"method: {method}, optlib: {optlib}, post_processing: {post_processing}") + print( + f"graph: {graph}, method: {method}, optlib: {optlib}, " + f"post_processing: {post_processing}, minimize: {minimize}" + ) tc.set_contractor( "custom", - optimizer=get_optimizer(method, optlib, post_processing), + optimizer=get_optimizer(method, optlib, post_processing, minimize), contraction_info=True, preprocessing=True, debug_level=2, # no computation ) - trigger_cotengra_optimization(n, nlayers, d) + trigger_cotengra_optimization(n, nlayers, graph_args[graph]) print("-------------------------") From ed378cb78a2c889c2bb8e3c0c72f3e0f47c28621 Mon Sep 17 00:00:00 2001 From: refraction-ray Date: Mon, 3 Jun 2024 15:31:40 +0800 Subject: [PATCH 29/56] improve cotengra benchmark example --- examples/cotengra_setting_bench.py | 31 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 17 deletions(-) diff --git a/examples/cotengra_setting_bench.py b/examples/cotengra_setting_bench.py index 3143cc18..d1b3f1b7 100644 --- a/examples/cotengra_setting_bench.py +++ b/examples/cotengra_setting_bench.py @@ -48,10 +48,7 @@ def loss_f(params, n, nlayers): c = generate_circuit(params, graph, n, nlayers) - # calculate the loss function, max cut - loss = 0.0 - for e in graph.edges: - loss += c.expectation_ps(z=[e[0], e[1]]) + loss = c.expectation_ps(z=[0, 1, 2], reuse=False) return K.real(loss) @@ -65,8 +62,8 @@ def loss_f(params, n, nlayers): # define the benchmark parameters -n = 10 -nlayers = 15 +n = 12 +nlayers = 12 # define the cotengra optimizer parameters graph_args = { @@ -84,7 +81,7 @@ def loss_f(params, n, nlayers): methods_args = [ # https://cotengra.readthedocs.io/en/latest/advanced.html#drivers "greedy", "kahypar", - "labels", + # "labels", # "spinglass", # requires igraph # "labelprop", # requires igraph # "betweenness", # requires igraph @@ -94,26 +91,26 @@ def loss_f(params, n, nlayers): ] optlib_args = [ # https://cotengra.readthedocs.io/en/latest/advanced.html#optimization-library - # "optuna", # pip install optuna - "random", # default when no library is installed + "optuna", # pip install optuna + # "random", # default when no library is installed # "baytune", # pip install baytune - "nevergrad", # pip install nevergrad + # "nevergrad", # pip install nevergrad # "chocolate", # pip install git+https://github.com/AIworx-Labs/chocolate@master # "skopt", # pip install scikit-optimize ] post_processing_args = [ # https://cotengra.readthedocs.io/en/latest/advanced.html#slicing-and-subtree-reconfiguration (None, None), - ("slicing_opts", {"target_size": 2**28}), - ("slicing_reconf_opts", {"target_size": 2**28}), + # ("slicing_opts", {"target_size": 2**28}), + # ("slicing_reconf_opts", {"target_size": 2**28}), ("reconf_opts", {}), ("simulated_annealing_opts", {}), ] minimize_args = [ # https://cotengra.readthedocs.io/en/main/advanced.html#objective - "flops", # minimize the total number of scalar operations - "size", # minimize the size of the largest intermediate tensor - "write", # minimize the sum of sizes of all intermediate tensors + # "flops", # minimize the total number of scalar operations + # "size", # minimize the size of the largest intermediate tensor + # "write", # minimize the sum of sizes of all intermediate tensors "combo", # minimize the sum of FLOPS + α * WRITE where α is 64 ] @@ -125,7 +122,7 @@ def get_optimizer(method, optlib, post_processing, minimize): optlib=optlib, minimize=minimize, parallel=True, - max_time=30, + max_time=60, max_repeats=128, progbar=True, ) @@ -135,7 +132,7 @@ def get_optimizer(method, optlib, post_processing, minimize): optlib=optlib, minimize=minimize, parallel=True, - max_time=30, + max_time=60, max_repeats=128, progbar=True, **{post_processing[0]: post_processing[1]}, From b5aee2e0772ea875c594929f0724a251c964917d Mon Sep 17 00:00:00 2001 From: king-p3nguin Date: Tue, 11 Jun 2024 02:48:04 +0900 Subject: [PATCH 30/56] change: add stabilizer simulation example --- examples/stabilizer_simulation.py | 162 ++++++++++++++++++++++++++++++ 1 file changed, 162 insertions(+) create mode 100644 examples/stabilizer_simulation.py diff --git a/examples/stabilizer_simulation.py b/examples/stabilizer_simulation.py new file mode 100644 index 00000000..8daa2abc --- /dev/null +++ b/examples/stabilizer_simulation.py @@ -0,0 +1,162 @@ +import numpy as np +import stim + +import tensorcircuit as tc + +np.random.seed(0) + +tc.set_dtype("complex128") + +clifford_one_qubit_gates = ["h", "x", "y", "z", "s"] +clifford_two_qubit_gates = ["cnot"] +clifford_gates = clifford_one_qubit_gates + clifford_two_qubit_gates + + +def genpair(num_qubits, count): + choice = list(range(num_qubits)) + for _ in range(count): + np.random.shuffle(choice) + x, y = choice[:2] + yield (x, y) + + +def random_clifford_circuit_with_mid_measurement(num_qubits, depth): + c = tc.Circuit(num_qubits) + for _ in range(depth): + for j, k in genpair(num_qubits, 2): + c.cnot(j, k) + for j in range(num_qubits): + getattr(c, np.random.choice(clifford_one_qubit_gates))(j) + measured_qubit = np.random.randint(0, num_qubits - 1) + sample, p = c.measure_reference(measured_qubit, with_prob=True) + # Check if there is a non-zero probability to measure "0" for post-selection + if (sample == "0" and p > 0.0) or (sample == "1" and p < 1.0): + c.mid_measurement(measured_qubit, keep=0) + c.measure_instruction(measured_qubit) + return c + + +def convert_tc_circuit_to_stim_circuit(tc_circuit): + stim_circuit = stim.Circuit() + for instruction in tc_circuit._qir: + gate_name = instruction["gate"].name + qubits = instruction.get("index", []) + if gate_name == "x": + stim_circuit.append("X", qubits) + elif gate_name == "y": + stim_circuit.append("Y", qubits) + elif gate_name == "z": + stim_circuit.append("Z", qubits) + elif gate_name == "h": + stim_circuit.append("H", qubits) + elif gate_name == "cnot": + stim_circuit.append("CNOT", qubits) + elif gate_name == "s": + stim_circuit.append("S", qubits) + else: + raise ValueError(f"Unsupported gate: {gate_name}") + for measurement in tc_circuit._extra_qir: + qubit = measurement["index"] + stim_circuit.append("M", qubit) + return stim_circuit + + +# ref: https://quantumcomputing.stackexchange.com/questions/16718/measuring-entanglement-entropy-using-a-stabilizer-circuit-simulator +def get_binary_matrix(z_stabilizers): + N = len(z_stabilizers) + binary_matrix = np.zeros((N, 2 * N)) + r = 0 # Row number + for row in z_stabilizers: + c = 0 # Column number + for i in row: + if i == 3: # Pauli Z + binary_matrix[r, N + c] = 1 + if i == 2: # Pauli Y + binary_matrix[r, N + c] = 1 + binary_matrix[r, c] = 1 + if i == 1: # Pauli X + binary_matrix[r, c] = 1 + c += 1 + r += 1 + + return binary_matrix + + +def get_bipartite_binary_matrix(binary_matrix, cut): + N = len(binary_matrix) + cutMatrix = np.zeros((N, 2 * cut)) + + cutMatrix[:, :cut] = binary_matrix[:, :cut] + cutMatrix[:, cut:] = binary_matrix[:, N : N + cut] + + return cutMatrix + + +# ref: https://gist.github.com/StuartGordonReid/eb59113cb29e529b8105?permalink_comment_id=3268301#gistcomment-3268301 +def gf2_rank(matrix): + n = len(matrix[0]) + rank = 0 + for col in range(n): + j = 0 + rows = [] + while j < len(matrix): + if matrix[j][col] == 1: + rows += [j] + j += 1 + if len(rows) >= 1: + for c in range(1, len(rows)): + for k in range(n): + matrix[rows[c]][k] = (matrix[rows[c]][k] + matrix[rows[0]][k]) % 2 + matrix.pop(rows[0]) + rank += 1 + for row in matrix: + if sum(row) > 0: + rank += 1 + return rank + + +# ref: https://quantumcomputing.stackexchange.com/questions/27795/exact-probabilities-of-outcomes-for-clifford-circuits-with-mid-circuit-measureme +def simulate_stim_circuit_with_mid_measurement(stim_circuit): + simulator = stim.TableauSimulator() + + for instruction in stim_circuit.flattened(): + if instruction.name == "M": + for t in instruction.targets_copy(): + expectaction = simulator.peek_z(t.value) + desired = 0 + if expectaction == -1: + desired = 1 + simulator.postselect_z(t.value, desired_value=desired) + else: + c = stim.Circuit() + c.append(instruction) + simulator.do_circuit(c) + + return simulator.current_inverse_tableau() ** -1 + + +if __name__ == "__main__": + num_qubits = 10 + depth = 8 + + tc_circuit = random_clifford_circuit_with_mid_measurement(num_qubits, depth) + print(tc_circuit.draw(output="text")) + + stim_circuit = convert_tc_circuit_to_stim_circuit(tc_circuit) + + # Entanglement entropy calculation using stabilizer formalism + stabilizer_tableau = simulate_stim_circuit_with_mid_measurement(stim_circuit) + zs = [stabilizer_tableau.z_output(k) for k in range(len(stabilizer_tableau))] + binary_matrix = get_binary_matrix(zs) + cut_matrix = get_bipartite_binary_matrix(binary_matrix, num_qubits // 2) + custom_entropy = (gf2_rank(cut_matrix.tolist()) - num_qubits // 2) * np.log(2) + print("Stim Entanglement Entropy:", custom_entropy) + + # Entanglement entropy calculation using TensorCircuit + state_vector = tc_circuit.wavefunction() + assert np.linalg.norm(state_vector) > 0 + state_vector /= np.linalg.norm(state_vector) + baseline_entropy = tc.quantum.entanglement_entropy(state_vector, num_qubits // 2) + print("TensorCircuit Entanglement Entropy:", baseline_entropy) + + np.testing.assert_allclose(custom_entropy, baseline_entropy, atol=1e-8) From 053641eb666b2d25991b42e2640d9b875a6d6747 Mon Sep 17 00:00:00 2001 From: king-p3nguin Date: Tue, 11 Jun 2024 03:11:54 +0900 Subject: [PATCH 31/56] change: add comments --- examples/stabilizer_simulation.py | 65 +++++++++++++++---------------- 1 file changed, 31 insertions(+), 34 deletions(-) diff --git a/examples/stabilizer_simulation.py b/examples/stabilizer_simulation.py index 8daa2abc..1c97fc57 100644 --- a/examples/stabilizer_simulation.py +++ b/examples/stabilizer_simulation.py @@ -56,8 +56,8 @@ def convert_tc_circuit_to_stim_circuit(tc_circuit): else: raise ValueError(f"Unsupported gate: {gate_name}") for measurement in tc_circuit._extra_qir: - qubit = measurement["index"] - stim_circuit.append("M", qubit) + qubits = measurement["index"] + stim_circuit.append("M", qubits) return stim_circuit @@ -65,31 +65,26 @@ def convert_tc_circuit_to_stim_circuit(tc_circuit): def get_binary_matrix(z_stabilizers): N = len(z_stabilizers) binary_matrix = np.zeros((N, 2 * N)) - r = 0 # Row number - for row in z_stabilizers: - c = 0 # Column number - for i in row: - if i == 3: # Pauli Z - binary_matrix[r, N + c] = 1 - if i == 2: # Pauli Y - binary_matrix[r, N + c] = 1 - binary_matrix[r, c] = 1 - if i == 1: # Pauli X - binary_matrix[r, c] = 1 - c += 1 - r += 1 - + for row_idx, row in enumerate(z_stabilizers): + for col_idx, col in enumerate(row): + if col == 3: # Pauli Z + binary_matrix[row_idx, N + col_idx] = 1 + if col == 2: # Pauli Y + binary_matrix[row_idx, N + col_idx] = 1 + binary_matrix[row_idx, col_idx] = 1 + if col == 1: # Pauli X + binary_matrix[row_idx, col_idx] = 1 return binary_matrix def get_bipartite_binary_matrix(binary_matrix, cut): N = len(binary_matrix) - cutMatrix = np.zeros((N, 2 * cut)) + bipartite_binary_matrix = np.zeros((N, 2 * cut)) - cutMatrix[:, :cut] = binary_matrix[:, :cut] - cutMatrix[:, cut:] = binary_matrix[:, N : N + cut] + bipartite_binary_matrix[:, :cut] = binary_matrix[:, :cut] + bipartite_binary_matrix[:, cut:] = binary_matrix[:, N : N + cut] - return cutMatrix + return bipartite_binary_matrix # ref: https://gist.github.com/StuartGordonReid/eb59113cb29e529b8105?permalink_comment_id=3268301#gistcomment-3268301 @@ -122,15 +117,16 @@ def simulate_stim_circuit_with_mid_measurement(stim_circuit): for instruction in stim_circuit.flattened(): if instruction.name == "M": for t in instruction.targets_copy(): - expectaction = simulator.peek_z(t.value) - desired = 0 - if expectaction == -1: - desired = 1 - simulator.postselect_z(t.value, desired_value=desired) + expectaction_value = simulator.peek_z(t.value) + desired_measurement_outcome = 0 + if expectaction_value == -1: # zero probability to measure "0" + desired_measurement_outcome = 1 + simulator.postselect_z( + t.value, + desired_value=desired_measurement_outcome, + ) else: - c = stim.Circuit() - c.append(instruction) - simulator.do_circuit(c) + simulator.do(instruction) return simulator.current_inverse_tableau() ** -1 @@ -148,15 +144,16 @@ def simulate_stim_circuit_with_mid_measurement(stim_circuit): stabilizer_tableau = simulate_stim_circuit_with_mid_measurement(stim_circuit) zs = [stabilizer_tableau.z_output(k) for k in range(len(stabilizer_tableau))] binary_matrix = get_binary_matrix(zs) - cut_matrix = get_bipartite_binary_matrix(binary_matrix, num_qubits // 2) - custom_entropy = (gf2_rank(cut_matrix.tolist()) - num_qubits // 2) * np.log(2) - print("Stim Entanglement Entropy:", custom_entropy) + bipartite_matrix = get_bipartite_binary_matrix(binary_matrix, num_qubits // 2) + stim_entropy = (gf2_rank(bipartite_matrix.tolist()) - num_qubits // 2) * np.log(2) + print("Stim Entanglement Entropy:", stim_entropy) # Entanglement entropy calculation using TensorCircuit state_vector = tc_circuit.wavefunction() assert np.linalg.norm(state_vector) > 0 + # Normalize the state vector because mid-measurement operation is not unitary state_vector /= np.linalg.norm(state_vector) - baseline_entropy = tc.quantum.entanglement_entropy(state_vector, num_qubits // 2) - print("TensorCircuit Entanglement Entropy:", baseline_entropy) + tc_entropy = tc.quantum.entanglement_entropy(state_vector, num_qubits // 2) + print("TensorCircuit Entanglement Entropy:", tc_entropy) - np.testing.assert_allclose(custom_entropy, baseline_entropy, atol=1e-8) + np.testing.assert_allclose(stim_entropy, tc_entropy, atol=1e-8) From 15aa34ad0bfe42d4c85e833544c5bb674817696d Mon Sep 17 00:00:00 2001 From: Kazuki Tsuoka Date: Thu, 13 Jun 2024 10:10:32 +0900 Subject: [PATCH 32/56] fix: fix entropy inconsistency --- examples/stabilizer_simulation.py | 61 ++++++++++++------------------- 1 file changed, 24 insertions(+), 37 deletions(-) diff --git a/examples/stabilizer_simulation.py b/examples/stabilizer_simulation.py index 1c97fc57..d957a6f9 100644 --- a/examples/stabilizer_simulation.py +++ b/examples/stabilizer_simulation.py @@ -7,8 +7,8 @@ tc.set_dtype("complex128") -clifford_one_qubit_gates = ["h", "x", "y", "z", "s"] -clifford_two_qubit_gates = ["cnot"] +clifford_one_qubit_gates = ["H", "X", "Y", "Z", "S"] +clifford_two_qubit_gates = ["CNOT"] clifford_gates = clifford_one_qubit_gates + clifford_two_qubit_gates @@ -22,42 +22,32 @@ def genpair(num_qubits, count): def random_clifford_circuit_with_mid_measurement(num_qubits, depth): c = tc.Circuit(num_qubits) + operation_list = [] for _ in range(depth): for j, k in genpair(num_qubits, 2): c.cnot(j, k) + operation_list.append(("CNOT", (j, k))) for j in range(num_qubits): - getattr(c, np.random.choice(clifford_one_qubit_gates))(j) + gate_name = np.random.choice(clifford_one_qubit_gates) + getattr(c, gate_name)(j) + operation_list.append((gate_name, (j,))) measured_qubit = np.random.randint(0, num_qubits - 1) sample, p = c.measure_reference(measured_qubit, with_prob=True) # Check if there is a non-zero probability to measure "0" for post-selection - if (sample == "0" and p > 0.0) or (sample == "1" and p < 1.0): + if (sample == "0" and not np.isclose(p, 0.0)) or ( + sample == "1" and not np.isclose(p, 1.0) + ): c.mid_measurement(measured_qubit, keep=0) - c.measure_instruction(measured_qubit) - return c + operation_list.append(("M", (measured_qubit,))) + return c, operation_list -def convert_tc_circuit_to_stim_circuit(tc_circuit): +def convert_operation_list_to_stim_circuit(operation_list): stim_circuit = stim.Circuit() - for instruction in tc_circuit._qir: - gate_name = instruction["gate"].name - qubits = instruction.get("index", []) - if gate_name == "x": - stim_circuit.append("X", qubits) - elif gate_name == "y": - stim_circuit.append("Y", qubits) - elif gate_name == "z": - stim_circuit.append("Z", qubits) - elif gate_name == "h": - stim_circuit.append("H", qubits) - elif gate_name == "cnot": - stim_circuit.append("CNOT", qubits) - elif gate_name == "s": - stim_circuit.append("S", qubits) - else: - raise ValueError(f"Unsupported gate: {gate_name}") - for measurement in tc_circuit._extra_qir: - qubits = measurement["index"] - stim_circuit.append("M", qubits) + for instruction in operation_list: + gate_name = instruction[0] + qubits = instruction[1] + stim_circuit.append(gate_name, qubits) return stim_circuit @@ -118,13 +108,8 @@ def simulate_stim_circuit_with_mid_measurement(stim_circuit): if instruction.name == "M": for t in instruction.targets_copy(): expectaction_value = simulator.peek_z(t.value) - desired_measurement_outcome = 0 - if expectaction_value == -1: # zero probability to measure "0" - desired_measurement_outcome = 1 - simulator.postselect_z( - t.value, - desired_value=desired_measurement_outcome, - ) + if expectaction_value != -1: # non-zero probability to measure "0" + simulator.postselect_z(t.value, desired_value=0) else: simulator.do(instruction) @@ -133,12 +118,14 @@ def simulate_stim_circuit_with_mid_measurement(stim_circuit): if __name__ == "__main__": num_qubits = 10 - depth = 8 + depth = 20 - tc_circuit = random_clifford_circuit_with_mid_measurement(num_qubits, depth) + tc_circuit, op_list = random_clifford_circuit_with_mid_measurement( + num_qubits, depth + ) print(tc_circuit.draw(output="text")) - stim_circuit = convert_tc_circuit_to_stim_circuit(tc_circuit) + stim_circuit = convert_operation_list_to_stim_circuit(op_list) # Entanglement entropy calculation using stabilizer formalism stabilizer_tableau = simulate_stim_circuit_with_mid_measurement(stim_circuit) From ca943aa81c7ac7157658f939e8dff5479d241c4b Mon Sep 17 00:00:00 2001 From: Kazuki Tsuoka Date: Thu, 13 Jun 2024 10:26:03 +0900 Subject: [PATCH 33/56] feat: allow tracing out any list of qubits in stim example --- examples/stabilizer_simulation.py | 32 +++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/examples/stabilizer_simulation.py b/examples/stabilizer_simulation.py index d957a6f9..f87cb866 100644 --- a/examples/stabilizer_simulation.py +++ b/examples/stabilizer_simulation.py @@ -67,14 +67,12 @@ def get_binary_matrix(z_stabilizers): return binary_matrix -def get_bipartite_binary_matrix(binary_matrix, cut): +def get_cut_binary_matrix(binary_matrix, cut): N = len(binary_matrix) - bipartite_binary_matrix = np.zeros((N, 2 * cut)) - - bipartite_binary_matrix[:, :cut] = binary_matrix[:, :cut] - bipartite_binary_matrix[:, cut:] = binary_matrix[:, N : N + cut] - - return bipartite_binary_matrix + new_indices = [i for i in range(N) if i not in set(cut)] + [ + i + N for i in range(N) if i not in set(cut) + ] + return binary_matrix[:, new_indices] # ref: https://gist.github.com/StuartGordonReid/eb59113cb29e529b8105?permalink_comment_id=3268301#gistcomment-3268301 @@ -107,8 +105,9 @@ def simulate_stim_circuit_with_mid_measurement(stim_circuit): for instruction in stim_circuit.flattened(): if instruction.name == "M": for t in instruction.targets_copy(): - expectaction_value = simulator.peek_z(t.value) - if expectaction_value != -1: # non-zero probability to measure "0" + expectaction_value = simulator.peek_z(t.value) # 1, 0, -1 + # there is a non-zero probability to measure "0" if expectaction_value is not -1 + if expectaction_value != -1: simulator.postselect_z(t.value, desired_value=0) else: simulator.do(instruction) @@ -117,8 +116,12 @@ def simulate_stim_circuit_with_mid_measurement(stim_circuit): if __name__ == "__main__": - num_qubits = 10 - depth = 20 + # Number of qubits + num_qubits = 8 + # Depth of the circuit + depth = 10 + # index list that is traced out to calculate the entanglement entropy + cut = [i for i in range(num_qubits // 2)] tc_circuit, op_list = random_clifford_circuit_with_mid_measurement( num_qubits, depth @@ -131,8 +134,8 @@ def simulate_stim_circuit_with_mid_measurement(stim_circuit): stabilizer_tableau = simulate_stim_circuit_with_mid_measurement(stim_circuit) zs = [stabilizer_tableau.z_output(k) for k in range(len(stabilizer_tableau))] binary_matrix = get_binary_matrix(zs) - bipartite_matrix = get_bipartite_binary_matrix(binary_matrix, num_qubits // 2) - stim_entropy = (gf2_rank(bipartite_matrix.tolist()) - num_qubits // 2) * np.log(2) + bipartite_matrix = get_cut_binary_matrix(binary_matrix, cut) + stim_entropy = (gf2_rank(bipartite_matrix.tolist()) - len(cut)) * np.log(2) print("Stim Entanglement Entropy:", stim_entropy) # Entanglement entropy calculation using TensorCircuit @@ -140,7 +143,8 @@ def simulate_stim_circuit_with_mid_measurement(stim_circuit): assert np.linalg.norm(state_vector) > 0 # Normalize the state vector because mid-measurement operation is not unitary state_vector /= np.linalg.norm(state_vector) - tc_entropy = tc.quantum.entanglement_entropy(state_vector, num_qubits // 2) + tc_entropy = tc.quantum.entanglement_entropy(state_vector, cut) print("TensorCircuit Entanglement Entropy:", tc_entropy) + # Check if the entanglement entropies are close np.testing.assert_allclose(stim_entropy, tc_entropy, atol=1e-8) From 596582f28f6249d55bfbd8949cf225ac3714addb Mon Sep 17 00:00:00 2001 From: Kazuki Tsuoka Date: Thu, 13 Jun 2024 10:37:04 +0900 Subject: [PATCH 34/56] fix: fix cut inconsistency --- examples/stabilizer_simulation.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/examples/stabilizer_simulation.py b/examples/stabilizer_simulation.py index f87cb866..aa50e821 100644 --- a/examples/stabilizer_simulation.py +++ b/examples/stabilizer_simulation.py @@ -69,8 +69,8 @@ def get_binary_matrix(z_stabilizers): def get_cut_binary_matrix(binary_matrix, cut): N = len(binary_matrix) - new_indices = [i for i in range(N) if i not in set(cut)] + [ - i + N for i in range(N) if i not in set(cut) + new_indices = [i for i in range(N) if i in set(cut)] + [ + i + N for i in range(N) if i in set(cut) ] return binary_matrix[:, new_indices] @@ -117,11 +117,11 @@ def simulate_stim_circuit_with_mid_measurement(stim_circuit): if __name__ == "__main__": # Number of qubits - num_qubits = 8 + num_qubits = 10 # Depth of the circuit - depth = 10 + depth = 30 # index list that is traced out to calculate the entanglement entropy - cut = [i for i in range(num_qubits // 2)] + cut = [i for i in range(num_qubits // 3)] tc_circuit, op_list = random_clifford_circuit_with_mid_measurement( num_qubits, depth @@ -134,8 +134,8 @@ def simulate_stim_circuit_with_mid_measurement(stim_circuit): stabilizer_tableau = simulate_stim_circuit_with_mid_measurement(stim_circuit) zs = [stabilizer_tableau.z_output(k) for k in range(len(stabilizer_tableau))] binary_matrix = get_binary_matrix(zs) - bipartite_matrix = get_cut_binary_matrix(binary_matrix, cut) - stim_entropy = (gf2_rank(bipartite_matrix.tolist()) - len(cut)) * np.log(2) + cur_matrix = get_cut_binary_matrix(binary_matrix, cut) + stim_entropy = (gf2_rank(cur_matrix.tolist()) - len(cut)) * np.log(2) print("Stim Entanglement Entropy:", stim_entropy) # Entanglement entropy calculation using TensorCircuit From 38fa725e20f233b10ea6cede3b584745b7d15903 Mon Sep 17 00:00:00 2001 From: refraction-ray Date: Fri, 14 Jun 2024 13:53:42 +0800 Subject: [PATCH 35/56] decrease the measurement probability --- examples/stabilizer_simulation.py | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/examples/stabilizer_simulation.py b/examples/stabilizer_simulation.py index aa50e821..699983bf 100644 --- a/examples/stabilizer_simulation.py +++ b/examples/stabilizer_simulation.py @@ -31,14 +31,15 @@ def random_clifford_circuit_with_mid_measurement(num_qubits, depth): gate_name = np.random.choice(clifford_one_qubit_gates) getattr(c, gate_name)(j) operation_list.append((gate_name, (j,))) - measured_qubit = np.random.randint(0, num_qubits - 1) - sample, p = c.measure_reference(measured_qubit, with_prob=True) - # Check if there is a non-zero probability to measure "0" for post-selection - if (sample == "0" and not np.isclose(p, 0.0)) or ( - sample == "1" and not np.isclose(p, 1.0) - ): - c.mid_measurement(measured_qubit, keep=0) - operation_list.append(("M", (measured_qubit,))) + if np.random.uniform() < 0.2: + measured_qubit = np.random.randint(0, num_qubits - 1) + sample, p = c.measure_reference(measured_qubit, with_prob=True) + # Check if there is a non-zero probability to measure "0" for post-selection + if (sample == "0" and not np.isclose(p, 0.0)) or ( + sample == "1" and not np.isclose(p, 1.0) + ): + c.mid_measurement(measured_qubit, keep=0) + operation_list.append(("M", (measured_qubit,))) return c, operation_list @@ -117,9 +118,9 @@ def simulate_stim_circuit_with_mid_measurement(stim_circuit): if __name__ == "__main__": # Number of qubits - num_qubits = 10 + num_qubits = 12 # Depth of the circuit - depth = 30 + depth = 24 # index list that is traced out to calculate the entanglement entropy cut = [i for i in range(num_qubits // 3)] From be7135490dd8a34d5386c4240a5552c284f120e2 Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Fri, 14 Jun 2024 05:55:33 +0000 Subject: [PATCH 36/56] docs: update README.md [skip ci] --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 224e1a67..d4bf0753 100644 --- a/README.md +++ b/README.md @@ -299,6 +299,7 @@ TensorCircuit is open source, released under the Apache License, Version 2.0. Rabqubit
Rabqubit

💡 Kazuki Tsuoka
Kazuki Tsuoka

💻 ⚠️ 📖 💡 Gopal Ramesh Dahale
Gopal Ramesh Dahale

💡 + Chanandellar Bong
Chanandellar Bong

💡 From 6bf45fd9ffdfd63a6193f9f1ed7a4a096b07e57f Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Fri, 14 Jun 2024 05:55:34 +0000 Subject: [PATCH 37/56] docs: update .all-contributorsrc [skip ci] --- .all-contributorsrc | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.all-contributorsrc b/.all-contributorsrc index 3fec6727..a625ed92 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -321,6 +321,15 @@ "contributions": [ "example" ] + }, + { + "login": "AbdullahKazi500", + "name": "Chanandellar Bong", + "avatar_url": "https://avatars.githubusercontent.com/u/75779966?v=4", + "profile": "https://github.com/AbdullahKazi500", + "contributions": [ + "example" + ] } ], "contributorsPerLine": 6, From 3bcda9a3eb964c3ea7cd44d24401998eb9e26767 Mon Sep 17 00:00:00 2001 From: refraction-ray Date: Fri, 14 Jun 2024 13:57:05 +0800 Subject: [PATCH 38/56] update --- README.md | 7 ------- 1 file changed, 7 deletions(-) diff --git a/README.md b/README.md index d4bf0753..c46b54c7 100644 --- a/README.md +++ b/README.md @@ -143,13 +143,6 @@ pip install tensorcircuit[tensorflow] Other optional dependencies include `[torch]`, `[jax]`, `[qiskit]` and `[cloud]`. -For the nightly build of tensorcircuit with new features, try: - -```python -pip uninstall tensorcircuit -pip install tensorcircuit-nightly -``` - We also have [Docker support](/docker). ## Advantages From 58835a31971b07f8a7ec566d714916386b187397 Mon Sep 17 00:00:00 2001 From: tencentqlab Date: Fri, 18 Apr 2025 15:48:45 +0800 Subject: [PATCH 39/56] Update LICENSE --- LICENSE | 265 ++++++++++++++------------------------------------------ 1 file changed, 64 insertions(+), 201 deletions(-) diff --git a/LICENSE b/LICENSE index d6456956..253d6ac1 100644 --- a/LICENSE +++ b/LICENSE @@ -1,202 +1,65 @@ +Tencent is pleased to support the open source community by making tensorcircuit available. - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. +Copyright (C) 2025 THL A29 Limited, a Tencent company. All rights reserved. + +tensorcircuit is licensed under the Apache License Version 2.0. + + +Terms of the Apache License Version 2.0: +-------------------------------------------------------------------- +Apache License + +Version 2.0, January 2004 + +http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. + +"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: + +You must give any other recipients of the Work or Derivative Works a copy of this License; and + +You must cause any modified files to carry prominent notices stating that You changed the files; and + +You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and + +If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. + +You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS From 4e6c1fd32004920bf27e11aa7958ea4066db4e15 Mon Sep 17 00:00:00 2001 From: mac Date: Tue, 29 Apr 2025 21:02:45 -0700 Subject: [PATCH 40/56] Add parametric waveform control and TQASM export support --- tensorcircuit/__init__.py | 3 +- tensorcircuit/abstractcircuit.py | 9 +++ tensorcircuit/basecircuit.py | 3 + tensorcircuit/circuit.py | 85 +++++++++++++++++++++++++++ tensorcircuit/waveforms.py | 85 +++++++++++++++++++++++++++ tests/test_parametric_waveform.py | 54 +++++++++++++++++ tests/test_waveform_types_to_tqasm.py | 48 +++++++++++++++ 7 files changed, 286 insertions(+), 1 deletion(-) create mode 100644 tensorcircuit/waveforms.py create mode 100644 tests/test_parametric_waveform.py create mode 100644 tests/test_waveform_types_to_tqasm.py diff --git a/tensorcircuit/__init__.py b/tensorcircuit/__init__.py index fb1c2e40..8092ec39 100644 --- a/tensorcircuit/__init__.py +++ b/tensorcircuit/__init__.py @@ -24,8 +24,9 @@ ) # prerun of set hooks from . import gates from . import basecircuit +from . import waveforms from .gates import Gate -from .circuit import Circuit, expectation +from .circuit import Circuit, expectation, Param from .mpscircuit import MPSCircuit from .densitymatrix import DMCircuit as DMCircuit_reference from .densitymatrix import DMCircuit2 diff --git a/tensorcircuit/abstractcircuit.py b/tensorcircuit/abstractcircuit.py index 2334aa39..7c2d119d 100644 --- a/tensorcircuit/abstractcircuit.py +++ b/tensorcircuit/abstractcircuit.py @@ -79,6 +79,14 @@ class AbstractCircuit: mpogates = mpogates gate_aliases = gate_aliases + def __init__(self, nqubits: int, *args, **kwargs): + self._nqubits = nqubits + self._qir = [] + self._extra_qir = [] + self.inputs = None + self.circuit_param = {} + self.is_mps = False + def apply_general_gate( self, gate: Union[Gate, QuOperator], @@ -114,6 +122,7 @@ def apply(self: "AbstractCircuit", *index: int, **vars: Any) -> None: gate_dict = { "gatef": gatef, "index": index, + "target": list(index), "name": localname, "split": split, "mpo": mpo, diff --git a/tensorcircuit/basecircuit.py b/tensorcircuit/basecircuit.py index 468c6a1b..cc9c5d7d 100644 --- a/tensorcircuit/basecircuit.py +++ b/tensorcircuit/basecircuit.py @@ -40,6 +40,9 @@ class BaseCircuit(AbstractCircuit): is_mps = False + def __init__(self, nqubits: int, *args, **kwargs): + super().__init__(nqubits, *args, **kwargs) + @staticmethod def all_zero_nodes(n: int, d: int = 2, prefix: str = "qb-") -> List[tn.Node]: l = [0.0 for _ in range(d)] diff --git a/tensorcircuit/circuit.py b/tensorcircuit/circuit.py index a293e3df..1bf1ead5 100644 --- a/tensorcircuit/circuit.py +++ b/tensorcircuit/circuit.py @@ -60,6 +60,11 @@ def __init__( ``max_singular_values`` and ``max_truncation_err``. :type split: Optional[Dict[str, Any]] """ + super().__init__( + nqubits=nqubits, inputs=inputs, mps_inputs=mps_inputs, split=split + ) + self.calibrations = [] + self.inputs = inputs self.mps_inputs = mps_inputs self.split = split @@ -111,6 +116,43 @@ def __init__( # self._qcode += str(self._nqubits) + "\n" self._qir: List[Dict[str, Any]] = [] self._extra_qir: List[Dict[str, Any]] = [] + + def add_calibration( + self, name: str, parameters: List[str], instructions: List[Dict] + ) -> None: + self.calibrations.append({ + "name": name, + "parameters": parameters, + "instructions": instructions + }) + + + def to_tqasm(self) -> str: + qasm_lines = [] + qasm_lines.append("OPENQASM 3;") + qasm_lines.append(f"qubit[{self._nqubits}] q;") + + for gate in self._qir: + gname = gate["name"] + targets = ", ".join(f"q[{i}]" for i in gate["target"]) + qasm_lines.append(f"{gname} {targets};") + + for cal in getattr(self, "calibrations", []): + pname = ", ".join(cal["parameters"]) + qasm_lines.append(f"\ndefcal {cal['name']}({pname}) {{") + for inst in cal["instructions"]: + if inst["type"] == "frame": + qasm_lines.append(f" frame {inst['frame']} = newframe({inst['qubit']});") + elif inst["type"] == "play": + args_str = ", ".join(str(x) for x in inst["args"]) + wf_type = inst["waveform_type"] + qasm_lines.append(f" play({inst['frame']}, {wf_type}({args_str}));") + qasm_lines.append("}") + + return "\n".join(qasm_lines) + + def calibrate(self, name: str, parameters: List["Param"]) -> "DefcalBuilder": + return DefcalBuilder(self, name, parameters) def replace_mps_inputs(self, mps_inputs: QuOperator) -> None: """ @@ -998,3 +1040,46 @@ def expectation( else: den = 1.0 return num / den + +class Param: + def __init__(self, name: str): + self.name = name + +class DefcalBuilder: + def __init__(self, circuit, name: str, parameters: List["Param"]): + self.circuit = circuit + self.name = name + self.parameters = parameters + self.instructions = [] + + def new_frame(self, frame_name: str, param: "Param"): + self.instructions.append({ + "type": "frame", + "frame": frame_name, + "qubit": param.name, + }) + return self + + def play(self, frame_name: str, waveform: Any, start_time: int = None): + if not hasattr(waveform, "__dataclass_fields__"): + raise TypeError("Unsupported waveform type") + + waveform_type = waveform.qasm_name() + args = list(waveform.__dict__.values()) + if start_time is not None: + args = [start_time] + args + + self.instructions.append({ + "type": "play", + "frame": frame_name, + "waveform_type": waveform_type, + "args": args, + }) + return self + + def build(self): + self.circuit.add_calibration( + name=self.name, + parameters=[p.name for p in self.parameters], + instructions=self.instructions, + ) \ No newline at end of file diff --git a/tensorcircuit/waveforms.py b/tensorcircuit/waveforms.py new file mode 100644 index 00000000..7bafc93e --- /dev/null +++ b/tensorcircuit/waveforms.py @@ -0,0 +1,85 @@ +from typing import List, Union +from dataclasses import dataclass + +ParamType = Union[float, str] + +__all__ = [ + "Gaussian", + "GaussianSquare", + "Drag", + "Constant", + "Sine", + "Cosine", + "CosineDrag", + "Flattop", +] + +@dataclass +class Gaussian: + amp: ParamType + duration: int + sigma: ParamType + def qasm_name(self) -> str: + return "gaussian" + +@dataclass +class GaussianSquare: + amp: ParamType + duration: int + sigma: ParamType + width: ParamType + def qasm_name(self) -> str: + return "gaussian_square" + +@dataclass +class Drag: + amp: ParamType + duration: int + sigma: ParamType + beta: ParamType + def qasm_name(self) -> str: + return "drag" + +@dataclass +class Constant: + amp: ParamType + duration: int + def qasm_name(self) -> str: + return "constant" + + +@dataclass +class Sine: + amp: ParamType + frequency: ParamType + duration: int + def qasm_name(self) -> str: + return "sine" + + +@dataclass +class Cosine: + amp: ParamType + frequency: ParamType + duration: int + def qasm_name(self) -> str: + return "cosine" + + +@dataclass +class CosineDrag: + amp: ParamType + duration: int + phase: ParamType + alpha: ParamType + def qasm_name(self) -> str: + return "cosine_drag" + + +@dataclass +class Flattop: + amp: ParamType + width: ParamType + duration: int + def qasm_name(self) -> str: + return "flattop" diff --git a/tests/test_parametric_waveform.py b/tests/test_parametric_waveform.py new file mode 100644 index 00000000..83bb3eca --- /dev/null +++ b/tests/test_parametric_waveform.py @@ -0,0 +1,54 @@ +import sys +import os + +# Add the directory containing your module to Python's search path +module_path = "/Users/mac/tensorcircuit" +sys.path.insert(0, module_path) + +from tensorcircuit import Circuit, Param, gates, waveforms +from tensorcircuit.cloud.apis import submit_task, get_device +import re + +print("✅ TEST FILE LOADED") + +def test_parametric_waveform(): + qc = Circuit(2) + + param0 = Param("param0") + param1 = Param("param1") + + builder = qc.calibrate("my_gate", [param0, param1]) + builder.new_frame("f0", param0) + builder.play("f0", waveforms.CosineDrag(10, 0.2, "0.5*PI", 0.01)) + builder.new_frame("f1", param1) + builder.play("f1", waveforms.CosineDrag(20, 0.01, "0", 0)) + builder.build() + + tqasm_code = qc.to_tqasm() + print(tqasm_code) + + assert "OPENQASM 3;" in tqasm_code + assert "defcal my_gate(param0, param1)" in tqasm_code + assert "frame f0 = newframe(param0);" in tqasm_code + assert "play(f0, cosine_drag(10, 0.2, 0.5*PI, 0.01));" in tqasm_code + assert "frame f1 = newframe(param1);" in tqasm_code + assert "play(f1, cosine_drag(20, 0.01, 0, 0));" in tqasm_code + assert re.search(r"defcal my_gate\([^\)]*\)\s*\{", tqasm_code) + + return + + + device_name = "tianxuan_s1" + d = get_device(device_name) + t = submit_task( + circuit=qc, + shots=8192, + device=d, + enable_qos_gate_decomposition=False, + enable_qos_qubit_mapping=False, + ) + rf = t.results() + print(rf) + + +test_parametric_waveform() diff --git a/tests/test_waveform_types_to_tqasm.py b/tests/test_waveform_types_to_tqasm.py new file mode 100644 index 00000000..f2587bfe --- /dev/null +++ b/tests/test_waveform_types_to_tqasm.py @@ -0,0 +1,48 @@ +import sys +import os + +# Add the directory containing your module to Python's search path +module_path = "/Users/mac/tensorcircuit" +sys.path.insert(0, module_path) + +from tensorcircuit import Circuit, Param, waveforms + +def test_waveform_types_to_tqasm_(): + test_cases = [ + (waveforms.CosineDrag, [10, 0.2, "PI/2", 0.01], "cosine_drag"), + (waveforms.Gaussian, [0.5, 20, 5], "gaussian"), + (waveforms.GaussianSquare, [0.5, 20, 5, 10], "gaussian_square"), + (waveforms.Drag, [0.4, 30, 10, 0.2], "drag"), + (waveforms.Flattop, [1.0, 5, 20], "flattop"), + (waveforms.Constant, [0.7, 15], "constant"), + (waveforms.Sine, [0.3, "2*PI", 10], "sine"), + (waveforms.Cosine, [0.6, "PI", 8], "cosine"), + ] + + failed = False + + for waveform_class, args, expected_name in test_cases: + qc = Circuit(1) + p = Param("q0") + + builder = qc.calibrate("test_gate", [p]) + builder.new_frame("f0", p) + builder.play("f0", waveform_class(*args)) + builder.build() + + qasm = qc.to_tqasm() + print(f"--- {expected_name} ---\n{qasm}\n") + + if f"play(f0, {expected_name}(" not in qasm: + print(f"❌ FAILED: waveform {waveform_class.__name__} expected '{expected_name}', but not found in QASM output.") + failed = True + else: + print(f"✅ PASSED: waveform {expected_name}") + + if failed: + raise AssertionError("Some waveform QASM outputs were incorrect.") + else: + print("All waveform QASM outputs passed.") + +if __name__ == "__main__": + test_waveform_types_to_tqasm_() \ No newline at end of file From d09396d8917ad590ceb100bb0a173f60fc4dbd28 Mon Sep 17 00:00:00 2001 From: mac Date: Tue, 29 Apr 2025 21:14:04 -0700 Subject: [PATCH 41/56] Update waveform classes with to_args methods --- tensorcircuit/circuit.py | 2 +- tensorcircuit/waveforms.py | 20 ++++++++++++++++---- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/tensorcircuit/circuit.py b/tensorcircuit/circuit.py index 1bf1ead5..470a70fb 100644 --- a/tensorcircuit/circuit.py +++ b/tensorcircuit/circuit.py @@ -1065,7 +1065,7 @@ def play(self, frame_name: str, waveform: Any, start_time: int = None): raise TypeError("Unsupported waveform type") waveform_type = waveform.qasm_name() - args = list(waveform.__dict__.values()) + args = waveform.to_args() if start_time is not None: args = [start_time] + args diff --git a/tensorcircuit/waveforms.py b/tensorcircuit/waveforms.py index 7bafc93e..7f6484a7 100644 --- a/tensorcircuit/waveforms.py +++ b/tensorcircuit/waveforms.py @@ -21,6 +21,8 @@ class Gaussian: sigma: ParamType def qasm_name(self) -> str: return "gaussian" + def to_args(self) -> List[ParamType]: + return [self.amp, self.duration, self.sigma] @dataclass class GaussianSquare: @@ -30,6 +32,8 @@ class GaussianSquare: width: ParamType def qasm_name(self) -> str: return "gaussian_square" + def to_args(self) -> List[ParamType]: + return [self.amp, self.duration, self.sigma, self.width] @dataclass class Drag: @@ -39,6 +43,8 @@ class Drag: beta: ParamType def qasm_name(self) -> str: return "drag" + def to_args(self) -> List[ParamType]: + return [self.amp, self.duration, self.sigma, self.beta] @dataclass class Constant: @@ -46,7 +52,8 @@ class Constant: duration: int def qasm_name(self) -> str: return "constant" - + def to_args(self) -> List[ParamType]: + return [self.amp, self.duration] @dataclass class Sine: @@ -55,7 +62,8 @@ class Sine: duration: int def qasm_name(self) -> str: return "sine" - + def to_args(self) -> List[ParamType]: + return [self.amp, self.frequency, self.duration] @dataclass class Cosine: @@ -64,7 +72,8 @@ class Cosine: duration: int def qasm_name(self) -> str: return "cosine" - + def to_args(self) -> List[ParamType]: + return [self.amp, self.frequency, self.duration] @dataclass class CosineDrag: @@ -74,7 +83,8 @@ class CosineDrag: alpha: ParamType def qasm_name(self) -> str: return "cosine_drag" - + def to_args(self) -> List[ParamType]: + return [self.amp, self.duration, self.phase, self.alpha] @dataclass class Flattop: @@ -83,3 +93,5 @@ class Flattop: duration: int def qasm_name(self) -> str: return "flattop" + def to_args(self) -> List[ParamType]: + return [self.amp, self.width, self.duration] From 5293c5567a2092559f82b71c32accea1fbc1a7ce Mon Sep 17 00:00:00 2001 From: walterxu Date: Wed, 30 Apr 2025 13:41:51 +0800 Subject: [PATCH 42/56] revise syntax mismatches. --- experiments/rabi.py | 59 +++++++++++++++++++++++++ tensorcircuit/backends/numpy_backend.py | 3 +- tensorcircuit/circuit.py | 6 +-- tensorcircuit/cloud/tencent.py | 4 +- tests/test_parametric_waveform.py | 23 ++++++---- 5 files changed, 81 insertions(+), 14 deletions(-) create mode 100644 experiments/rabi.py diff --git a/experiments/rabi.py b/experiments/rabi.py new file mode 100644 index 00000000..7a830639 --- /dev/null +++ b/experiments/rabi.py @@ -0,0 +1,59 @@ +import sys +import os + +# Add the directory containing your module to Python's search path +module_path = ".." +sys.path.insert(0, module_path) + +from tensorcircuit import Circuit, Param, gates, waveforms +from tensorcircuit.cloud.apis import submit_task, get_device, set_provider, set_token, list_devices +import re + +print("✅ TEST FILE LOADED") +set_token("xu1LTrkf0nP6sI8oh.bDPdk35RlOQZYy9hQPU6jK2J4d5AdINAOszCNPxTNGZ3-opBPhWcLcruYuSrvX8is1D9tKgw-O4Zg.Qf7fLp83AtSPP19jD6Na4piICkygomdfyxIjzhO6Zu-s5hgBu2709ZW=") +set_provider("tencent") +ds = list_devices() +print(ds) + +def test_parametric_waveform(): + qc = Circuit(2) + + param0 = Param("param0") + param1 = Param("param1") + + builder = qc.calibrate("my_gate", [param0, param1]) + builder.new_frame("f0", param0) + builder.play("f0", waveforms.CosineDrag(10, 0.2, "0.5*PI", 0.01)) + builder.new_frame("f1", param1) + builder.play("f1", waveforms.CosineDrag(20, 0.01, "0", 0)) + builder.build() + + tqasm_code = qc.to_tqasm() + tqasm_code = tqasm_code + '\nmygate q[0], q[1]' + print(tqasm_code) + + assert "TQASM 0.2;" in tqasm_code + assert "defcal my_gate param0, param1" in tqasm_code + assert "frame f0 = newframe(param0);" in tqasm_code + assert "play(f0, cosine_drag(10, 0.2, 0.5*PI, 0.01));" in tqasm_code + assert "frame f1 = newframe(param1);" in tqasm_code + assert "play(f1, cosine_drag(20, 0.01, 0, 0));" in tqasm_code + assert re.search(r"defcal my_gate [^\)]* \s*\{", tqasm_code) + + + #tc.cloud.apis.set_token("xu1LTrkf0nP6sI8oh.bDPdk35RlOQZYy9hQPU6jK2J4d5AdINAOszCNPxTNGZ3-opBPhWcLcruYuSrvX8is1D9tKgw-O4Zg.Qf7fLp83AtSPP19jD6Na4piICkygomdfyxIjzhO6Zu-s5hgBu2709ZW=") + #tc.cloud.apis.set_provider("tencent") + device_name = "tianji_m2" + d = get_device(device_name) + t = submit_task( + circuit=qc, + shots=8192, + device=d, + enable_qos_gate_decomposition=False, + enable_qos_qubit_mapping=False, + ) + rf = t.results() + print(rf) + + +test_parametric_waveform() diff --git a/tensorcircuit/backends/numpy_backend.py b/tensorcircuit/backends/numpy_backend.py index df3dc043..87052275 100644 --- a/tensorcircuit/backends/numpy_backend.py +++ b/tensorcircuit/backends/numpy_backend.py @@ -214,7 +214,8 @@ def imag(self, a: Tensor) -> Tensor: def cast(self, a: Tensor, dtype: str) -> Tensor: with warnings.catch_warnings(): - warnings.simplefilter("ignore", np.ComplexWarning) + #warnings.simplefilter("ignore", np.ComplexWarning) + warnings.simplefilter("ignore", DeprecationWarning) if isinstance(dtype, str): return a.astype(getattr(np, dtype)) return a.astype(dtype) diff --git a/tensorcircuit/circuit.py b/tensorcircuit/circuit.py index 470a70fb..69df3042 100644 --- a/tensorcircuit/circuit.py +++ b/tensorcircuit/circuit.py @@ -129,8 +129,8 @@ def add_calibration( def to_tqasm(self) -> str: qasm_lines = [] - qasm_lines.append("OPENQASM 3;") - qasm_lines.append(f"qubit[{self._nqubits}] q;") + qasm_lines.append("TQASM 0.2;") + qasm_lines.append(f"QREG q[{self._nqubits}];") for gate in self._qir: gname = gate["name"] @@ -139,7 +139,7 @@ def to_tqasm(self) -> str: for cal in getattr(self, "calibrations", []): pname = ", ".join(cal["parameters"]) - qasm_lines.append(f"\ndefcal {cal['name']}({pname}) {{") + qasm_lines.append(f"\ndefcal {cal['name']} {pname} {{") for inst in cal["instructions"]: if inst["type"] == "frame": qasm_lines.append(f" frame {inst['frame']} = newframe({inst['qubit']});") diff --git a/tensorcircuit/cloud/tencent.py b/tensorcircuit/cloud/tencent.py index fc37460a..2dfb11fa 100644 --- a/tensorcircuit/cloud/tencent.py +++ b/tensorcircuit/cloud/tencent.py @@ -213,7 +213,9 @@ def c2qasm(c: Any, compiling: bool) -> str: s = c.qasm() # nq = c.num_qubits else: - s = c.to_openqasm() + s = c.to_tqasm() + '\nmy_gate q[0], q[1];' + print(s) + #s = c.to_openqasm() # nq = c._nqubits # s = _free_pi(s) # tQuk translation now supports this # if measure is not None: # ad hoc partial measurement diff --git a/tests/test_parametric_waveform.py b/tests/test_parametric_waveform.py index 83bb3eca..7a830639 100644 --- a/tests/test_parametric_waveform.py +++ b/tests/test_parametric_waveform.py @@ -2,14 +2,18 @@ import os # Add the directory containing your module to Python's search path -module_path = "/Users/mac/tensorcircuit" +module_path = ".." sys.path.insert(0, module_path) from tensorcircuit import Circuit, Param, gates, waveforms -from tensorcircuit.cloud.apis import submit_task, get_device +from tensorcircuit.cloud.apis import submit_task, get_device, set_provider, set_token, list_devices import re print("✅ TEST FILE LOADED") +set_token("xu1LTrkf0nP6sI8oh.bDPdk35RlOQZYy9hQPU6jK2J4d5AdINAOszCNPxTNGZ3-opBPhWcLcruYuSrvX8is1D9tKgw-O4Zg.Qf7fLp83AtSPP19jD6Na4piICkygomdfyxIjzhO6Zu-s5hgBu2709ZW=") +set_provider("tencent") +ds = list_devices() +print(ds) def test_parametric_waveform(): qc = Circuit(2) @@ -25,20 +29,21 @@ def test_parametric_waveform(): builder.build() tqasm_code = qc.to_tqasm() + tqasm_code = tqasm_code + '\nmygate q[0], q[1]' print(tqasm_code) - assert "OPENQASM 3;" in tqasm_code - assert "defcal my_gate(param0, param1)" in tqasm_code + assert "TQASM 0.2;" in tqasm_code + assert "defcal my_gate param0, param1" in tqasm_code assert "frame f0 = newframe(param0);" in tqasm_code assert "play(f0, cosine_drag(10, 0.2, 0.5*PI, 0.01));" in tqasm_code assert "frame f1 = newframe(param1);" in tqasm_code assert "play(f1, cosine_drag(20, 0.01, 0, 0));" in tqasm_code - assert re.search(r"defcal my_gate\([^\)]*\)\s*\{", tqasm_code) + assert re.search(r"defcal my_gate [^\)]* \s*\{", tqasm_code) - return - - - device_name = "tianxuan_s1" + + #tc.cloud.apis.set_token("xu1LTrkf0nP6sI8oh.bDPdk35RlOQZYy9hQPU6jK2J4d5AdINAOszCNPxTNGZ3-opBPhWcLcruYuSrvX8is1D9tKgw-O4Zg.Qf7fLp83AtSPP19jD6Na4piICkygomdfyxIjzhO6Zu-s5hgBu2709ZW=") + #tc.cloud.apis.set_provider("tencent") + device_name = "tianji_m2" d = get_device(device_name) t = submit_task( circuit=qc, From 8df9d40142d8176d298eecfbe7061c50ff1da70e Mon Sep 17 00:00:00 2001 From: walterxu Date: Wed, 30 Apr 2025 13:55:38 +0800 Subject: [PATCH 43/56] test pass --- tests/test_parametric_waveform.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tests/test_parametric_waveform.py b/tests/test_parametric_waveform.py index 7a830639..66948262 100644 --- a/tests/test_parametric_waveform.py +++ b/tests/test_parametric_waveform.py @@ -18,8 +18,8 @@ def test_parametric_waveform(): qc = Circuit(2) - param0 = Param("param0") - param1 = Param("param1") + param0 = Param("a") + param1 = Param("b") builder = qc.calibrate("my_gate", [param0, param1]) builder.new_frame("f0", param0) @@ -33,10 +33,10 @@ def test_parametric_waveform(): print(tqasm_code) assert "TQASM 0.2;" in tqasm_code - assert "defcal my_gate param0, param1" in tqasm_code - assert "frame f0 = newframe(param0);" in tqasm_code + assert "defcal my_gate a, b" in tqasm_code + assert "frame f0 = newframe(a);" in tqasm_code assert "play(f0, cosine_drag(10, 0.2, 0.5*PI, 0.01));" in tqasm_code - assert "frame f1 = newframe(param1);" in tqasm_code + assert "frame f1 = newframe(b);" in tqasm_code assert "play(f1, cosine_drag(20, 0.01, 0, 0));" in tqasm_code assert re.search(r"defcal my_gate [^\)]* \s*\{", tqasm_code) From a57c36ff7df4552c74f34b2d097d1953ff752a94 Mon Sep 17 00:00:00 2001 From: walterxu Date: Wed, 30 Apr 2025 14:02:16 +0800 Subject: [PATCH 44/56] rabi base --- experiments/rabi.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/experiments/rabi.py b/experiments/rabi.py index 7a830639..66948262 100644 --- a/experiments/rabi.py +++ b/experiments/rabi.py @@ -18,8 +18,8 @@ def test_parametric_waveform(): qc = Circuit(2) - param0 = Param("param0") - param1 = Param("param1") + param0 = Param("a") + param1 = Param("b") builder = qc.calibrate("my_gate", [param0, param1]) builder.new_frame("f0", param0) @@ -33,10 +33,10 @@ def test_parametric_waveform(): print(tqasm_code) assert "TQASM 0.2;" in tqasm_code - assert "defcal my_gate param0, param1" in tqasm_code - assert "frame f0 = newframe(param0);" in tqasm_code + assert "defcal my_gate a, b" in tqasm_code + assert "frame f0 = newframe(a);" in tqasm_code assert "play(f0, cosine_drag(10, 0.2, 0.5*PI, 0.01));" in tqasm_code - assert "frame f1 = newframe(param1);" in tqasm_code + assert "frame f1 = newframe(b);" in tqasm_code assert "play(f1, cosine_drag(20, 0.01, 0, 0));" in tqasm_code assert re.search(r"defcal my_gate [^\)]* \s*\{", tqasm_code) From 354ef45d5287c51cb6e29e706eb85d5fc902d621 Mon Sep 17 00:00:00 2001 From: v_anyuhe Date: Wed, 30 Apr 2025 15:34:12 +0800 Subject: [PATCH 45/56] rabi --- experiments/rabi.py | 86 ++++++++++++++++++++++++++++++++++----------- 1 file changed, 65 insertions(+), 21 deletions(-) diff --git a/experiments/rabi.py b/experiments/rabi.py index 66948262..47839a99 100644 --- a/experiments/rabi.py +++ b/experiments/rabi.py @@ -1,5 +1,6 @@ import sys import os +import matplotlib.pyplot as plt # Add the directory containing your module to Python's search path module_path = ".." @@ -15,7 +16,7 @@ ds = list_devices() print(ds) -def test_parametric_waveform(): +def test_parametric_waveform(t): qc = Circuit(2) param0 = Param("a") @@ -23,26 +24,11 @@ def test_parametric_waveform(): builder = qc.calibrate("my_gate", [param0, param1]) builder.new_frame("f0", param0) - builder.play("f0", waveforms.CosineDrag(10, 0.2, "0.5*PI", 0.01)) - builder.new_frame("f1", param1) - builder.play("f1", waveforms.CosineDrag(20, 0.01, "0", 0)) + builder.play("f0", waveforms.CosineDrag(t, 0.2, 0.0, 0.01)) + builder.new_frame("f1", param0) + builder.play("f1", waveforms.CosineDrag(t, 0.2, 0.0, 0.01)) builder.build() - tqasm_code = qc.to_tqasm() - tqasm_code = tqasm_code + '\nmygate q[0], q[1]' - print(tqasm_code) - - assert "TQASM 0.2;" in tqasm_code - assert "defcal my_gate a, b" in tqasm_code - assert "frame f0 = newframe(a);" in tqasm_code - assert "play(f0, cosine_drag(10, 0.2, 0.5*PI, 0.01));" in tqasm_code - assert "frame f1 = newframe(b);" in tqasm_code - assert "play(f1, cosine_drag(20, 0.01, 0, 0));" in tqasm_code - assert re.search(r"defcal my_gate [^\)]* \s*\{", tqasm_code) - - - #tc.cloud.apis.set_token("xu1LTrkf0nP6sI8oh.bDPdk35RlOQZYy9hQPU6jK2J4d5AdINAOszCNPxTNGZ3-opBPhWcLcruYuSrvX8is1D9tKgw-O4Zg.Qf7fLp83AtSPP19jD6Na4piICkygomdfyxIjzhO6Zu-s5hgBu2709ZW=") - #tc.cloud.apis.set_provider("tencent") device_name = "tianji_m2" d = get_device(device_name) t = submit_task( @@ -53,7 +39,65 @@ def test_parametric_waveform(): enable_qos_qubit_mapping=False, ) rf = t.results() - print(rf) + return rf + +data = { + '00': [], + '01': [], + '10': [], + '11': [] +} +for i in range(1,5): + result = test_parametric_waveform(i) + print(i, result['00'], result['01'], result['10'], result['11']) + + for key in data: + data[key].append(result[key]) + + +plt.figure(figsize=(10, 6)) + +colors = ['blue', 'green', 'red', 'purple'] +marker_size = 4 + +# for idx, (state, values) in enumerate(data.items()): +# plt.plot( +# range(1, 5), +# values, +# marker='o', +# markersize=marker_size, +# linestyle='-', +# linewidth=1.2, +# color=colors[idx], +# label=state +# ) + +# plt.xlabel('Parameter i') +# plt.ylabel('Counts') +# plt.title('State Distribution by Parameter') +# plt.legend() +# plt.grid(True, alpha=0.3) + + +# 子图 +for idx, (state, values) in enumerate(data.items()): + plt.subplot(2, 2, idx+1) + + plt.plot( + range(1, 5), + values, + marker='o', + markersize=4, + linestyle='-', + linewidth=1.2, + color=colors[idx] + ) + + plt.xlabel('Parameter i') + plt.ylabel('Counts') + plt.title(f'State {state}') + plt.grid(True, alpha=0.3) -test_parametric_waveform() +plt.tight_layout() +plt.show() \ No newline at end of file From a14b7dd6477fa7429f6cd79d273c26985fbf73f1 Mon Sep 17 00:00:00 2001 From: v_anyuhe Date: Fri, 6 Jun 2025 16:40:03 +0800 Subject: [PATCH 46/56] add rabi test --- experiments/rabi.ipynb | 3185 ++++++++++++++++++++++++++++++++ experiments/rabi.py | 132 +- tensorcircuit/cloud/tencent.py | 2 +- 3 files changed, 3253 insertions(+), 66 deletions(-) create mode 100644 experiments/rabi.ipynb diff --git a/experiments/rabi.ipynb b/experiments/rabi.ipynb new file mode 100644 index 00000000..76cc10b7 --- /dev/null +++ b/experiments/rabi.ipynb @@ -0,0 +1,3185 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "import sys\n", + "import os\n", + "import matplotlib.pyplot as plt\n", + "\n", + "# Add the directory containing your module to Python's search path\n", + "module_path = \"..\"\n", + "sys.path.insert(0, module_path)\n", + "\n", + "from tensorcircuit import Circuit, Param, gates, waveforms\n", + "from tensorcircuit.cloud.apis import submit_task, get_device, set_provider, set_token, list_devices\n", + "import re" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "✅ TEST FILE LOADED\n", + "[tencent::tianji_m2, tencent::tianji_m1v15s4, tencent::tianji_m1v15s2, tencent::tianxuan_s2v20s2, tencent::simulator:tc, tencent::tianji_m2v15s3, tencent::tianxuan_s2, tencent::tianji_m1v15s1, tencent::tianji_s2, tencent::tianji_m2v14s4, tencent::tianxuan_s2v20s1, tencent::tianji_s2v6, tencent::tianji_m2v16s1, tencent::tianji_m2v14s2, tencent::tianji_m1v15s3, tencent::tianxuan_s1, tencent::tianji_m1, tencent::tianji_s2v7]\n" + ] + } + ], + "source": [ + "shots_const = 1000\n", + "\n", + "print(\"✅ TEST FILE LOADED\")\n", + "set_token(\"\")\n", + "set_provider(\"tencent\")\n", + "ds = list_devices()\n", + "print(ds)\n", + "\n", + "# TQASM 0.2;\n", + "# QREG a[1];\n", + "# defcal rabi_test a {\n", + "# frame drive_frame = newframe(a); \n", + "# play(drive_frame, cosine_drag($formatted_t, 0.2, 0.0, 0.0)); } \n", + "# rabi_test a[0];\n", + "# MEASZ a[0];" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "def gen_parametric_waveform_circuit(t):\n", + " qc = Circuit(2)\n", + "\n", + " param0 = Param(\"a\")\n", + "\n", + " builder = qc.calibrate(\"rabi_test\", [param0])\n", + " builder.new_frame(\"drive_frame\", param0)\n", + " builder.play(\"drive_frame\", waveforms.CosineDrag(t, 0.2, 0.0, 0.01))\n", + "\n", + " builder.build()\n", + " \n", + " tqasm_code = qc.to_tqasm()\n", + "\n", + " print(tqasm_code)\n", + " return qc\n", + "\n", + "\n", + "def run_circuit(qc):\n", + " device_name = \"tianji_m2\" \n", + " d = get_device(device_name)\n", + " t = submit_task(\n", + " circuit=qc,\n", + " shots=shots_const,\n", + " device=d,\n", + " enable_qos_gate_decomposition=False,\n", + " enable_qos_qubit_mapping=False,\n", + " )\n", + " rf = t.results()\n", + " return rf\n", + "\n", + "\n", + "\n", + "def exp_rabi():\n", + " result_lst = []\n", + " for t in range(1, 400, 2):\n", + " qc = gen_parametric_waveform_circuit(t)\n", + " result = run_circuit(qc)\n", + " result['duration'] = t\n", + " result_lst.append(result)\n", + " return result_lst\n", + "\n", + "\n", + "\n", + "def draw_rabi(result_lst):\n", + " data = {\n", + " 'duration': [],\n", + " '0': [],\n", + " '1': []\n", + " }\n", + " \n", + " for result in result_lst:\n", + " data['0'].append(int(result['0']) / shots_const)\n", + " data['1'].append(int(result['1']) / shots_const)\n", + " data['duration'].append(result['duration'])\n", + "\n", + "\n", + " \n", + "\n", + " plt.figure(figsize=(10,6))\n", + " plt.plot(data['duration'], data['0'], 'b-o', label='State |0>')\n", + " plt.plot(data['duration'], data['1'], 'r--s', label='State |1>')\n", + "\n", + "\n", + " plt.title('Rabi Oscillation Experiment')\n", + " plt.xlabel('Duration (dt)')\n", + " plt.ylabel('Probability')\n", + " plt.grid(alpha=0.3)\n", + " plt.legend()\n", + " plt.tight_layout()\n", + "\n", + "\n", + " plt.savefig('rabi.png', dpi=300)\n", + " plt.show()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(1, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(1, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(3, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(3, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(5, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(5, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(7, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(7, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(9, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(9, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(11, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(11, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(13, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(13, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(15, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(15, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(17, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(17, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(19, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(19, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(21, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(21, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(23, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(23, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(25, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(25, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(27, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(27, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(29, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(29, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(31, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(31, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(33, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(33, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(35, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(35, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(37, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(37, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(39, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(39, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(41, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(41, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(43, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(43, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(45, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(45, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(47, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(47, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(49, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(49, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(51, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(51, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(53, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(53, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(55, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(55, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(57, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(57, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(59, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(59, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(61, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(61, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(63, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(63, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(65, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(65, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(67, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(67, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(69, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(69, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(71, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(71, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(73, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(73, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(75, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(75, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(77, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(77, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(79, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(79, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(81, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(81, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(83, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(83, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(85, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(85, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(87, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(87, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(89, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(89, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(91, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(91, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(93, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(93, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(95, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(95, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(97, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(97, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(99, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(99, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(101, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(101, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(103, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(103, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(105, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(105, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(107, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(107, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(109, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(109, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(111, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(111, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(113, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(113, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(115, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(115, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(117, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(117, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(119, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(119, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(121, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(121, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(123, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(123, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(125, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(125, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(127, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(127, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(129, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(129, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(131, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(131, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(133, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(133, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(135, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(135, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(137, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(137, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(139, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(139, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(141, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(141, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(143, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(143, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(145, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(145, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(147, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(147, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(149, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(149, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(151, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(151, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(153, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(153, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(155, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(155, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(157, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(157, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(159, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(159, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(161, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(161, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(163, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(163, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(165, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(165, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(167, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(167, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(169, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(169, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(171, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(171, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(173, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(173, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(175, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(175, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(177, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(177, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(179, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(179, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(181, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(181, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(183, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(183, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(185, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(185, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(187, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(187, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(189, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(189, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(191, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(191, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(193, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(193, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(195, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(195, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(197, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(197, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(199, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(199, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(201, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(201, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(203, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(203, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(205, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(205, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(207, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(207, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(209, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(209, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(211, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(211, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(213, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(213, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(215, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(215, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(217, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(217, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(219, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(219, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(221, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(221, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(223, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(223, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(225, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(225, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(227, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(227, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(229, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(229, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(231, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(231, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(233, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(233, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(235, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(235, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(237, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(237, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(239, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(239, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(241, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(241, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(243, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(243, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(245, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(245, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(247, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(247, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(249, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(249, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(251, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(251, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(253, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(253, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(255, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(255, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(257, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(257, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(259, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(259, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(261, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(261, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(263, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(263, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(265, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(265, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(267, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(267, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(269, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(269, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(271, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(271, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(273, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(273, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(275, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(275, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(277, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(277, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(279, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(279, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(281, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(281, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(283, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(283, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(285, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(285, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(287, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(287, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(289, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(289, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(291, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(291, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(293, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(293, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(295, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(295, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(297, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(297, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(299, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(299, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(301, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(301, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(303, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(303, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(305, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(305, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(307, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(307, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(309, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(309, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(311, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(311, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(313, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(313, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(315, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(315, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(317, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(317, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(319, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(319, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(321, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(321, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(323, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(323, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(325, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(325, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(327, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(327, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(329, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(329, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(331, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(331, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(333, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(333, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(335, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(335, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(337, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(337, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(339, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(339, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(341, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(341, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(343, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(343, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(345, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(345, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(347, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(347, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(349, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(349, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(351, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(351, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(353, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(353, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(355, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(355, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(357, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(357, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(359, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(359, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(361, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(361, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(363, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(363, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(365, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(365, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(367, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(367, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(369, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(369, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(371, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(371, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(373, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(373, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(375, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(375, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(377, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(377, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(379, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(379, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(381, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(381, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(383, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(383, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(385, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(385, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(387, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(387, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(389, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(389, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(391, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(391, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(393, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(393, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(395, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(395, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(397, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(397, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(399, 0.2, 0.0, 0.01));\n", + "}\n", + "TQASM 0.2;\n", + "QREG q[2];\n", + "\n", + "defcal rabi_test a {\n", + " frame drive_frame = newframe(a);\n", + " play(drive_frame, cosine_drag(399, 0.2, 0.0, 0.01));\n", + "}\n", + "rabi_test q[0];\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA94AAAJOCAYAAABBfN/cAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAADkAElEQVR4nOzdeXwTdf4/8Nc0vbgLtOVqS7lvkHIJWAEFwQPBciiIgrviiVzL6urKKcp6oMX7p/sFVNSVxYjnoohUijcgolIqp4FSKKXc0JYm8/vjw7RJmmOSJplJ5vV8PPJIMpm0H5gmM+/P8X5LsizLICIiIiIiIqKgiNK6AURERERERESRjIE3ERERERERURAx8CYiIiIiIiIKIgbeREREREREREHEwJuIiIiIiIgoiBh4ExEREREREQURA28iIiIiIiKiIGLgTURERERERBREDLyJiIiIiIiIgoiBNxERhYUDBw5AkiQ888wzXvddsGABJEkKQav8N3jwYAwePLjyufLvW7lyZeW2YPw7cnJyIEkScnJyAvpzjSA9PR1TpkzRuhlERBSGGHgTEVHArVy5EpIkVd6io6PRokULTJkyBQUFBVo3r5pPPvkEI0aMQOPGjREfH4/27dtjzpw5OH78uNZN89vLL7/sEMTrweDBgx3+LuxvHTt21Lp5EWHnzp1YsGABDhw4oHVTiIjITrTWDSAiosi1aNEitGrVCqWlpfj++++xcuVKbN68Gb/99hvi4+OD9nsfffRR/OMf/1C175w5c7B06VL06NEDDz30EBo1aoRt27bhxRdfxH/+8x9s2LABHTp0CHgbv/jii4D/THsvv/wyEhMTq43QXnnllbhw4QJiY2OD+vvdSUlJwZIlS6ptb9CggQat8U1+fj6iovQ9ZrFz504sXLgQgwcPRnp6utbNISKiSxh4ExFR0Fx77bXo3bs3AODOO+9EYmIinnzySXz00UcYP3580H5vdHQ0oqO9n+LeffddLF26FDfffDPefvttmEymytemTJmCIUOGYNy4cdi2bZuqn+cLrQLfqKiooHZ6eNOgQQNMmjRJs9/vK1mWUVpailq1aiEuLk7r5hARUZjSd7ctERFFlMzMTADA3r17K7eVl5dj3rx56NWrFxo0aIA6deogMzMTGzdudPtznnvuObRs2RK1atXCoEGD8Ntvvzm8rnZt9MKFC9GwYUO89tprDkE3APTt2xcPPfQQfv31V6xZs6Zy++7duzFmzBg0bdoU8fHxSElJwS233IJTp045vH/VqlXo27cvateujYYNG+LKK690GOV2XuOt1ooVK3DVVVchOTkZcXFx6Ny5M1555RWHfdLT0/H777/j66+/rpzKrfwud2u8//vf/6JXr16oVasWEhMTMWnSpGrLAqZMmYK6deuioKAAo0ePRt26dZGUlIQ5c+bAarX6/G9x5cKFC+jYsSM6duyICxcuVG4vKSlBs2bNMGDAgMrfpbRn3759GD58OOrUqYPmzZtj0aJFkGXZ4efabDZkZ2ejS5cuiI+PR5MmTXD33XfjxIkT1f7vbrjhBnz++efo3bs3atWqhf/3//5f5Wv2MwiUJRWbN2/G9OnTkZSUhISEBNx9990oLy/HyZMncfvtt6Nhw4Zo2LAhHnzwwRq3a/Pmzejbty/i4+PRunVrvPnmmw7tGTduHABgyJAhlcee6/mJiLTHwJuIiEJGWXfasGHDym2nT5/Gv//9bwwePBhPPvkkFixYgGPHjmH48OHYvn17tZ/x5ptv4vnnn8f999+Phx9+GL/99huuuuoqHD161Ke27N69G/n5+Rg1ahTq16/vcp/bb78dgFgDDohOguHDh+P777/HAw88gJdeegl33XUX9u3bh5MnT1a+b+HChbjtttsQExODRYsWYeHChUhNTcVXX33lUxtdeeWVV9CyZUs88sgjWLp0KVJTU3HffffhpZdeqtwnOzsbKSkp6NixI9566y289dZb+Oc//+n2Z65cuRLjx4+HyWTCkiVLMHXqVJjNZlxxxRUO/y4AsFqtGD58OBo3boxnnnkGgwYNwtKlS/Haa6+par/VakVxcXG127lz5wAAtWrVwhtvvIE9e/Y4tPn+++/HqVOnsHLlSodOEqvVihEjRqBJkyZ46qmn0KtXL8yfPx/z5893+L133303/v73v2PgwIFYtmwZ7rjjDrz99tsYPnw4Ll686LBvfn4+JkyYgGHDhmHZsmW47LLLPP6bHnjgAezevRsLFy7EjTfeiNdeew1z587FyJEjYbVa8cQTT+CKK67A008/jbfeesvvdu3Zswdjx47FsGHDsHTpUjRs2BBTpkzB77//DkAsI5g+fToA4JFHHqk89p06dVJxZIiIKKhkIiKiAFuxYoUMQP7yyy/lY8eOyQcP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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "\n", + "data = exp_rabi()\n", + "draw_rabi(data)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "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.10.11" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/experiments/rabi.py b/experiments/rabi.py index 47839a99..824cfc3d 100644 --- a/experiments/rabi.py +++ b/experiments/rabi.py @@ -10,30 +10,45 @@ from tensorcircuit.cloud.apis import submit_task, get_device, set_provider, set_token, list_devices import re +shots_const = 1000 + print("✅ TEST FILE LOADED") -set_token("xu1LTrkf0nP6sI8oh.bDPdk35RlOQZYy9hQPU6jK2J4d5AdINAOszCNPxTNGZ3-opBPhWcLcruYuSrvX8is1D9tKgw-O4Zg.Qf7fLp83AtSPP19jD6Na4piICkygomdfyxIjzhO6Zu-s5hgBu2709ZW=") +set_token("") set_provider("tencent") ds = list_devices() print(ds) -def test_parametric_waveform(t): +# TQASM 0.2; +# QREG a[1]; +# defcal rabi_test a { +# frame drive_frame = newframe(a); +# play(drive_frame, cosine_drag($formatted_t, 0.2, 0.0, 0.0)); } +# rabi_test a[0]; +# MEASZ a[0]; + +def gen_parametric_waveform_circuit(t): qc = Circuit(2) param0 = Param("a") - param1 = Param("b") - builder = qc.calibrate("my_gate", [param0, param1]) - builder.new_frame("f0", param0) - builder.play("f0", waveforms.CosineDrag(t, 0.2, 0.0, 0.01)) - builder.new_frame("f1", param0) - builder.play("f1", waveforms.CosineDrag(t, 0.2, 0.0, 0.01)) + builder = qc.calibrate("rabi_test", [param0]) + builder.new_frame("drive_frame", param0) + builder.play("drive_frame", waveforms.CosineDrag(t, 0.2, 0.0, 0.01)) + builder.build() + + tqasm_code = qc.to_tqasm() + + print(tqasm_code) + return qc + +def run_circuit(qc): device_name = "tianji_m2" d = get_device(device_name) t = submit_task( circuit=qc, - shots=8192, + shots=shots_const, device=d, enable_qos_gate_decomposition=False, enable_qos_qubit_mapping=False, @@ -41,63 +56,50 @@ def test_parametric_waveform(t): rf = t.results() return rf -data = { - '00': [], - '01': [], - '10': [], - '11': [] -} -for i in range(1,5): - result = test_parametric_waveform(i) - print(i, result['00'], result['01'], result['10'], result['11']) - - for key in data: - data[key].append(result[key]) - -plt.figure(figsize=(10, 6)) - -colors = ['blue', 'green', 'red', 'purple'] -marker_size = 4 - -# for idx, (state, values) in enumerate(data.items()): -# plt.plot( -# range(1, 5), -# values, -# marker='o', -# markersize=marker_size, -# linestyle='-', -# linewidth=1.2, -# color=colors[idx], -# label=state -# ) - -# plt.xlabel('Parameter i') -# plt.ylabel('Counts') -# plt.title('State Distribution by Parameter') -# plt.legend() -# plt.grid(True, alpha=0.3) - - -# 子图 -for idx, (state, values) in enumerate(data.items()): - plt.subplot(2, 2, idx+1) - - plt.plot( - range(1, 5), - values, - marker='o', - markersize=4, - linestyle='-', - linewidth=1.2, - color=colors[idx] - ) + +def exp_rabi(): + result_lst = [] + for t in range(1, 4, 2): + qc = gen_parametric_waveform_circuit(t) + result = run_circuit(qc) + result['duration'] = t + result_lst.append(result) + return result_lst + + + +def draw_rabi(result_lst): + data = { + 'duration': [], + '0': [], + '1': [] + } - plt.xlabel('Parameter i') - plt.ylabel('Counts') - plt.title(f'State {state}') - plt.grid(True, alpha=0.3) + for result in result_lst: + data['0'].append(int(result['0']) / shots_const) + data['1'].append(int(result['1']) / shots_const) + data['duration'].append(result['duration']) + + + + + plt.figure(figsize=(10,6)) + plt.plot(data['duration'], data['0'], 'b-o', label='State |0>') + plt.plot(data['duration'], data['1'], 'r--s', label='State |1>') + + + plt.title('Rabi Oscillation Experiment') + plt.xlabel('Duration (dt)') + plt.ylabel('Probability') + plt.grid(alpha=0.3) + plt.legend() + plt.tight_layout() + + + plt.savefig('rabi.png', dpi=300) + plt.show() -plt.tight_layout() -plt.show() \ No newline at end of file +data = exp_rabi() +draw_rabi(data) diff --git a/tensorcircuit/cloud/tencent.py b/tensorcircuit/cloud/tencent.py index 2dfb11fa..888d3923 100644 --- a/tensorcircuit/cloud/tencent.py +++ b/tensorcircuit/cloud/tencent.py @@ -213,7 +213,7 @@ def c2qasm(c: Any, compiling: bool) -> str: s = c.qasm() # nq = c.num_qubits else: - s = c.to_tqasm() + '\nmy_gate q[0], q[1];' + s = c.to_tqasm() + '\nrabi_test q[0];' print(s) #s = c.to_openqasm() # nq = c._nqubits From 1e393311533c1400847add4e1d9ccbb15ffeee2d Mon Sep 17 00:00:00 2001 From: ruan-prog <1696257014@qq.com> Date: Wed, 9 Jul 2025 11:40:47 +0800 Subject: [PATCH 47/56] Update rabi.py --- experiments/rabi.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/experiments/rabi.py b/experiments/rabi.py index 824cfc3d..192ad193 100644 --- a/experiments/rabi.py +++ b/experiments/rabi.py @@ -33,9 +33,10 @@ def gen_parametric_waveform_circuit(t): builder = qc.calibrate("rabi_test", [param0]) builder.new_frame("drive_frame", param0) - builder.play("drive_frame", waveforms.CosineDrag(t, 0.2, 0.0, 0.01)) + builder.play("drive_frame", waveforms.CosineDrag(t, 0.2, 0.0, 0.0)) builder.build() + qc.add_calibration(builder, ['q[0]']) //'rabi_test q[0]' tqasm_code = qc.to_tqasm() From 001136b1f1cdcbb6483d0d18c2c7294ef8f2bc30 Mon Sep 17 00:00:00 2001 From: ruan-prog <1696257014@qq.com> Date: Wed, 9 Jul 2025 11:42:36 +0800 Subject: [PATCH 48/56] Update rabi.py --- experiments/rabi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/experiments/rabi.py b/experiments/rabi.py index 192ad193..1423ccd1 100644 --- a/experiments/rabi.py +++ b/experiments/rabi.py @@ -27,7 +27,7 @@ # MEASZ a[0]; def gen_parametric_waveform_circuit(t): - qc = Circuit(2) + qc = Circuit(1) param0 = Param("a") From cc8e3eeb4caac98882529d00d2a3b991a4c60451 Mon Sep 17 00:00:00 2001 From: ruan-prog <1696257014@qq.com> Date: Wed, 9 Jul 2025 11:57:38 +0800 Subject: [PATCH 49/56] Update circuit.py --- tensorcircuit/circuit.py | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/tensorcircuit/circuit.py b/tensorcircuit/circuit.py index 69df3042..d9c1ff53 100644 --- a/tensorcircuit/circuit.py +++ b/tensorcircuit/circuit.py @@ -64,6 +64,7 @@ def __init__( nqubits=nqubits, inputs=inputs, mps_inputs=mps_inputs, split=split ) self.calibrations = [] + self.calibration_invokes = [] self.inputs = inputs self.mps_inputs = mps_inputs @@ -117,7 +118,7 @@ def __init__( self._qir: List[Dict[str, Any]] = [] self._extra_qir: List[Dict[str, Any]] = [] - def add_calibration( + def def_calibration( self, name: str, parameters: List[str], instructions: List[Dict] ) -> None: self.calibrations.append({ @@ -126,6 +127,15 @@ def add_calibration( "instructions": instructions }) + def add_calibration( + self, name: str, parameters: List[str], instructions: List[Dict] + ) -> None: + self.calibration_invokes.append({ + "name": name, + "parameters": parameters, + "instructions": instructions + }) + def to_tqasm(self) -> str: qasm_lines = [] @@ -149,6 +159,10 @@ def to_tqasm(self) -> str: qasm_lines.append(f" play({inst['frame']}, {wf_type}({args_str}));") qasm_lines.append("}") + for cal in getattr(self, "calibration_invokes", []): + pname = ", ".join(cal["parameters"]) + qasm_lines.append(f"\n {cal['name']} {pname};") + return "\n".join(qasm_lines) def calibrate(self, name: str, parameters: List["Param"]) -> "DefcalBuilder": @@ -1078,8 +1092,8 @@ def play(self, frame_name: str, waveform: Any, start_time: int = None): return self def build(self): - self.circuit.add_calibration( + self.circuit.def_calibration( name=self.name, parameters=[p.name for p in self.parameters], instructions=self.instructions, - ) \ No newline at end of file + ) From f4bfba16d5fc499455b4e7c3ecdadc96d9f92202 Mon Sep 17 00:00:00 2001 From: ruan-prog <1696257014@qq.com> Date: Wed, 9 Jul 2025 11:58:47 +0800 Subject: [PATCH 50/56] Update tencent.py --- tensorcircuit/cloud/tencent.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tensorcircuit/cloud/tencent.py b/tensorcircuit/cloud/tencent.py index 888d3923..029e2486 100644 --- a/tensorcircuit/cloud/tencent.py +++ b/tensorcircuit/cloud/tencent.py @@ -213,7 +213,7 @@ def c2qasm(c: Any, compiling: bool) -> str: s = c.qasm() # nq = c.num_qubits else: - s = c.to_tqasm() + '\nrabi_test q[0];' + s = c.to_tqasm() print(s) #s = c.to_openqasm() # nq = c._nqubits From 95f1ab430298d1cd19980180169ea4bf8c7a5b37 Mon Sep 17 00:00:00 2001 From: v_anyuhe Date: Wed, 9 Jul 2025 12:06:49 +0800 Subject: [PATCH 51/56] update --- experiments/draw_rabi.py | 35 + experiments/rabi.ipynb | 2703 +++++---------------------------- experiments/rabi.png | Bin 0 -> 97857 bytes experiments/rabi.py | 2 +- experiments/rabi_grpc.sh | 16 + nohup.out | 2467 ++++++++++++++++++++++++++++++ tensorcircuit/circuit.py | 5 +- tensorcircuit/cloud/config.py | 2 +- 8 files changed, 2891 insertions(+), 2339 deletions(-) create mode 100644 experiments/draw_rabi.py create mode 100644 experiments/rabi.png create mode 100644 experiments/rabi_grpc.sh create mode 100644 nohup.out diff --git a/experiments/draw_rabi.py b/experiments/draw_rabi.py new file mode 100644 index 00000000..0c135b75 --- /dev/null +++ b/experiments/draw_rabi.py @@ -0,0 +1,35 @@ + +import csv +import matplotlib.pyplot as plt + +data = { + 'duration': [], + '0': [], + '1': [] +} +total_shots = 1000 + + +with open('rabi_data.csv') as f: + reader = csv.DictReader(f) + for row in reader: + data['duration'].append(float(row['duration'])) + data['0'].append(int(row['count0'])/total_shots) + data['1'].append(int(row['count1'])/total_shots) + + +plt.figure(figsize=(10,6)) +plt.plot(data['duration'], data['0'], 'b-o', label='State |0>') +plt.plot(data['duration'], data['1'], 'r--s', label='State |1>') + + +plt.title('Rabi Oscillation Experiment') +plt.xlabel('Duration (dt)') +plt.ylabel('Probability') +plt.grid(alpha=0.3) +plt.legend() +plt.tight_layout() + + +plt.savefig('rabi.png', dpi=300) +plt.show() \ No newline at end of file diff --git a/experiments/rabi.ipynb b/experiments/rabi.ipynb index 76cc10b7..820735a4 100644 --- a/experiments/rabi.ipynb +++ b/experiments/rabi.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 5, + "execution_count": 22, "metadata": {}, "outputs": [], "source": [ @@ -21,15 +21,17 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, + "execution_count": 23, + "metadata": { + "scrolled": true + }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "✅ TEST FILE LOADED\n", - "[tencent::tianji_m2, tencent::tianji_m1v15s4, tencent::tianji_m1v15s2, tencent::tianxuan_s2v20s2, tencent::simulator:tc, tencent::tianji_m2v15s3, tencent::tianxuan_s2, tencent::tianji_m1v15s1, tencent::tianji_s2, tencent::tianji_m2v14s4, tencent::tianxuan_s2v20s1, tencent::tianji_s2v6, tencent::tianji_m2v16s1, tencent::tianji_m2v14s2, tencent::tianji_m1v15s3, tencent::tianxuan_s1, tencent::tianji_m1, tencent::tianji_s2v7]\n" + "[tencent::tianji_m2, tencent::tianji_m1v15s4, tencent::tianji_m1v15s2, tencent::tianxuan_s2v20s2, tencent::tianji_m2v16s1, tencent::simulator:tc, tencent::tianji_m2v15s3, tencent::tianxuan_s2, tencent::tianji_s2, tencent::tianji_m2v14s4, tencent::tianxuan_s2v20s1, tencent::tianji_m1v15s1, tencent::tianji_s2v6, tencent::tianji_m1v15s3, tencent::tianji_m2v14s2, tencent::tianji_m1, tencent::tianxuan_s1, tencent::tianji_s2v7]\n" ] } ], @@ -37,7 +39,7 @@ "shots_const = 1000\n", "\n", "print(\"✅ TEST FILE LOADED\")\n", - "set_token(\"\")\n", + "set_token(\"xu1LTrkf0nP6sI8oh.bDPdk35RlOQZYy9hQPU6jK2J4d5AdINAOszCNPxTNGZ3-opBPhWcLcruYuSrvX8is1D9tKgw-O4Zg.Qf7fLp83AtSPP19jD6Na4piICkygomdfyxIjzhO6Zu-s5hgBu2709ZW=\")\n", "set_provider(\"tencent\")\n", "ds = list_devices()\n", "print(ds)\n", @@ -53,12 +55,12 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 20, "metadata": {}, "outputs": [], "source": [ "def gen_parametric_waveform_circuit(t):\n", - " qc = Circuit(2)\n", + " qc = Circuit(1)\n", "\n", " param0 = Param(\"a\")\n", "\n", @@ -70,7 +72,7 @@ " \n", " tqasm_code = qc.to_tqasm()\n", "\n", - " print(tqasm_code)\n", + " # print(tqasm_code)\n", " return qc\n", "\n", "\n", @@ -84,8 +86,8 @@ " enable_qos_gate_decomposition=False,\n", " enable_qos_qubit_mapping=False,\n", " )\n", - " rf = t.results()\n", - " return rf\n", + " rs = t.results()\n", + " return rs\n", "\n", "\n", "\n", @@ -134,7 +136,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 21, "metadata": {}, "outputs": [ { @@ -142,3010 +144,1038 @@ "output_type": "stream", "text": [ "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(1, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(1, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(3, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(3, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(5, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(5, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(7, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(7, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(9, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(9, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(11, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(11, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(13, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(13, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(15, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(15, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(17, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(17, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(19, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(19, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(21, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(21, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(23, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(23, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(25, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(25, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(27, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(27, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(29, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(29, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(31, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(31, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(33, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(33, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(35, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(35, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(37, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(37, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(39, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(39, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(41, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(41, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(43, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(43, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(45, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(45, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(47, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(47, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(49, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(49, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(51, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(51, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(53, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(53, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(55, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(55, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(57, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(57, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(59, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(59, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(61, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(61, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(63, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(63, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(65, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(65, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(67, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(67, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(69, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(69, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(71, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(71, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(73, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(73, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(75, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(75, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(77, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(77, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(79, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(79, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(81, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(81, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(83, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(83, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(85, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(85, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(87, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(87, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(89, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(89, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(91, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(91, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(93, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(93, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(95, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(95, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(97, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(97, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(99, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(99, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(101, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(101, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(103, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(103, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(105, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(105, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(107, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(107, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(109, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(109, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(111, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(111, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(113, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(113, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(115, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(115, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(117, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(117, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(119, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(119, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(121, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(121, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(123, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(123, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(125, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(125, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(127, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(127, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(129, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(129, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(131, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(131, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(133, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(133, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(135, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(135, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(137, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(137, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(139, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(139, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(141, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(141, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(143, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(143, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(145, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(145, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(147, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(147, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(149, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(149, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(151, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(151, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(153, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(153, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(155, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(155, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(157, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(157, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(159, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(159, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(161, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(161, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(163, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(163, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(165, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(165, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(167, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(167, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(169, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(169, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(171, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(171, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(173, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(173, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(175, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(175, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(177, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(177, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(179, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(179, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(181, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(181, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(183, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(183, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(185, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(185, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(187, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(187, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(189, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(189, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(191, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(191, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(193, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(193, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(195, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(195, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(197, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(197, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(199, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(199, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(201, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(201, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(203, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(203, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(205, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(205, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(207, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(207, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(209, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(209, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(211, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(211, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(213, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(213, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(215, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(215, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(217, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(217, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(219, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(219, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(221, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(221, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(223, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(223, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(225, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(225, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(227, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(227, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(229, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(229, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(231, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(231, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(233, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(233, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(235, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(235, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(237, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(237, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(239, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(239, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(241, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(241, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(243, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(243, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(245, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(245, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(247, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(247, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(249, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(249, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(251, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(251, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(253, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(253, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(255, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(255, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(257, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(257, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(259, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(259, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(261, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(261, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(263, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(263, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(265, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(265, 0.2, 0.0, 0.01));\n", - "}\n", - "rabi_test q[0];\n", - "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(267, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(267, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(1, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(269, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(269, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(3, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(271, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(271, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(5, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(273, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(273, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(7, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(275, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(275, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(9, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(277, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(277, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(11, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(279, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(279, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(13, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(281, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(281, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(15, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(283, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(283, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(17, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(285, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(285, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(19, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", - "\n", - "defcal rabi_test a {\n", - " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(287, 0.2, 0.0, 0.01));\n", - "}\n", - "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(287, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(21, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(289, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(23, 0.2, 0.0, 0.01));\n", "}\n", + "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(289, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(25, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(291, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(27, 0.2, 0.0, 0.01));\n", "}\n", + "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(291, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(29, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(293, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(31, 0.2, 0.0, 0.01));\n", "}\n", + "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(293, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(33, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(295, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(35, 0.2, 0.0, 0.01));\n", "}\n", + "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(295, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(37, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(297, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(39, 0.2, 0.0, 0.01));\n", "}\n", + "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(297, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(41, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(299, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(43, 0.2, 0.0, 0.01));\n", "}\n", + "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(299, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(45, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(301, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(47, 0.2, 0.0, 0.01));\n", "}\n", + "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(301, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(49, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(303, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(51, 0.2, 0.0, 0.01));\n", "}\n", + "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(303, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(53, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(305, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(55, 0.2, 0.0, 0.01));\n", "}\n", + "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(305, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(57, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(307, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(59, 0.2, 0.0, 0.01));\n", "}\n", + "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(307, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(61, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(309, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(63, 0.2, 0.0, 0.01));\n", "}\n", + "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(309, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(65, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(311, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(67, 0.2, 0.0, 0.01));\n", "}\n", + "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(311, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(69, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(313, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(71, 0.2, 0.0, 0.01));\n", "}\n", + "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(313, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(73, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(315, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(75, 0.2, 0.0, 0.01));\n", "}\n", + "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(315, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(77, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(317, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(79, 0.2, 0.0, 0.01));\n", "}\n", + "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(317, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(81, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(319, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(83, 0.2, 0.0, 0.01));\n", "}\n", + "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(319, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(85, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(321, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(87, 0.2, 0.0, 0.01));\n", "}\n", + "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(321, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(89, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(323, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(91, 0.2, 0.0, 0.01));\n", "}\n", + "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(323, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(93, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(325, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(95, 0.2, 0.0, 0.01));\n", "}\n", + "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(325, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(97, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(327, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(99, 0.2, 0.0, 0.01));\n", "}\n", + "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(327, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(101, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(329, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(103, 0.2, 0.0, 0.01));\n", "}\n", + "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(329, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(105, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(331, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(107, 0.2, 0.0, 0.01));\n", "}\n", + "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(331, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(109, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(333, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(111, 0.2, 0.0, 0.01));\n", "}\n", + "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(333, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(113, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(335, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(115, 0.2, 0.0, 0.01));\n", "}\n", + "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(335, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(117, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(337, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(119, 0.2, 0.0, 0.01));\n", "}\n", + "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(337, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(121, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(339, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(123, 0.2, 0.0, 0.01));\n", "}\n", + "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(339, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(125, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(341, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(127, 0.2, 0.0, 0.01));\n", "}\n", + "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(341, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(129, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(343, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(131, 0.2, 0.0, 0.01));\n", "}\n", + "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(343, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(133, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(345, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(135, 0.2, 0.0, 0.01));\n", "}\n", + "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(345, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(137, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(347, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(139, 0.2, 0.0, 0.01));\n", "}\n", + "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(347, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(141, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(349, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(143, 0.2, 0.0, 0.01));\n", "}\n", + "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(349, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(145, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(351, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(147, 0.2, 0.0, 0.01));\n", "}\n", + "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(351, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(149, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(353, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(151, 0.2, 0.0, 0.01));\n", "}\n", + "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(353, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(153, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(355, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(155, 0.2, 0.0, 0.01));\n", "}\n", + "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(355, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(157, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(357, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(159, 0.2, 0.0, 0.01));\n", "}\n", + "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(357, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(161, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(359, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(163, 0.2, 0.0, 0.01));\n", "}\n", + "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(359, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(165, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(361, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(167, 0.2, 0.0, 0.01));\n", "}\n", + "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(361, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(169, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(363, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(171, 0.2, 0.0, 0.01));\n", "}\n", + "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(363, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(173, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(365, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(175, 0.2, 0.0, 0.01));\n", "}\n", + "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(365, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(177, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(367, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(179, 0.2, 0.0, 0.01));\n", "}\n", + "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(367, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(181, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(369, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(183, 0.2, 0.0, 0.01));\n", "}\n", + "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(369, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(185, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(371, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(187, 0.2, 0.0, 0.01));\n", "}\n", + "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(371, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(189, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(373, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(191, 0.2, 0.0, 0.01));\n", "}\n", + "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(373, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(193, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(375, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(195, 0.2, 0.0, 0.01));\n", "}\n", + "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(375, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(197, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(377, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(199, 0.2, 0.0, 0.01));\n", "}\n", + "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(377, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(201, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(379, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(203, 0.2, 0.0, 0.01));\n", "}\n", + "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(379, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(205, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(381, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(207, 0.2, 0.0, 0.01));\n", "}\n", + "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(381, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(209, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(383, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(211, 0.2, 0.0, 0.01));\n", "}\n", + "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(383, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(213, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(385, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(215, 0.2, 0.0, 0.01));\n", "}\n", + "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(385, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(217, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(387, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(219, 0.2, 0.0, 0.01));\n", "}\n", + "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(387, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(221, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(389, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(223, 0.2, 0.0, 0.01));\n", "}\n", + "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(389, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(225, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(391, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(227, 0.2, 0.0, 0.01));\n", "}\n", + "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(391, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(229, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(393, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(231, 0.2, 0.0, 0.01));\n", "}\n", + "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(393, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(233, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(395, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(235, 0.2, 0.0, 0.01));\n", "}\n", + "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(395, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(237, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(397, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(239, 0.2, 0.0, 0.01));\n", "}\n", + "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(397, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(241, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(399, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(243, 0.2, 0.0, 0.01));\n", "}\n", + "rabi_test q[0];\n", "TQASM 0.2;\n", - "QREG q[2];\n", + "QREG q[1];\n", "\n", "defcal rabi_test a {\n", " frame drive_frame = newframe(a);\n", - " play(drive_frame, cosine_drag(399, 0.2, 0.0, 0.01));\n", + " play(drive_frame, cosine_drag(245, 0.2, 0.0, 0.01));\n", "}\n", "rabi_test q[0];\n" ] }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Fails at fetching url: http://111.230.11.154/cloud/quk/task/detail. Try again.\n" + ] + }, + { + "ename": "ValueError", + "evalue": "{\"code\": 0, \"status\": \"502 Bad Gateway\", \"desc\": \"\\u672a\\u77e5\\u9519\\u8bef\", \"Contents\": [\"\\u672a\\u77e5\\u5f02\\u5e38\", \"\\u5982\\u9700\\u5e2e\\u52a9\\u8bf7\\u7acb\\u5373\\u81f4\\u75358000\\u70ed\\u7ebf\\u6216\\u4f01\\u4e1a\\u5fae\\u4fe1 8000\\u52a9\\u624b\\uff08IT\\u4e1a\\u52a1\\uff09 \\uff0c7x24\\u5c0f\\u65f6\\u4e3a\\u60a8\\u670d\\u52a1\"], \"version\": \"3.0.30.217\"}", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)", + "File \u001b[0;32m~/tensorcircuit/experiments/../tensorcircuit/cloud/tencent.py:361\u001b[0m, in \u001b[0;36mget_task_details\u001b[0;34m(task, device, token, prettify)\u001b[0m\n\u001b[1;32m 360\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 361\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mresult\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;129;01min\u001b[39;00m \u001b[43mr\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mtask\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m]\u001b[49m:\n\u001b[1;32m 362\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcounts\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;129;01min\u001b[39;00m r[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtask\u001b[39m\u001b[38;5;124m\"\u001b[39m][\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mresult\u001b[39m\u001b[38;5;124m\"\u001b[39m]:\n", + "\u001b[0;31mKeyError\u001b[0m: 'task'", + "\nDuring handling of the above exception, another exception occurred:\n", + "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[21], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m data \u001b[38;5;241m=\u001b[39m \u001b[43mexp_rabi\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 2\u001b[0m draw_rabi(data)\n", + "Cell \u001b[0;32mIn[20], line 37\u001b[0m, in \u001b[0;36mexp_rabi\u001b[0;34m()\u001b[0m\n\u001b[1;32m 35\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m t \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(\u001b[38;5;241m1\u001b[39m, \u001b[38;5;241m400\u001b[39m, \u001b[38;5;241m2\u001b[39m):\n\u001b[1;32m 36\u001b[0m qc \u001b[38;5;241m=\u001b[39m gen_parametric_waveform_circuit(t)\n\u001b[0;32m---> 37\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[43mrun_circuit\u001b[49m\u001b[43m(\u001b[49m\u001b[43mqc\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 38\u001b[0m result[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mduration\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m=\u001b[39m t\n\u001b[1;32m 39\u001b[0m result_lst\u001b[38;5;241m.\u001b[39mappend(result)\n", + "Cell \u001b[0;32mIn[20], line 28\u001b[0m, in \u001b[0;36mrun_circuit\u001b[0;34m(qc)\u001b[0m\n\u001b[1;32m 20\u001b[0m d \u001b[38;5;241m=\u001b[39m get_device(device_name)\n\u001b[1;32m 21\u001b[0m t \u001b[38;5;241m=\u001b[39m submit_task(\n\u001b[1;32m 22\u001b[0m circuit\u001b[38;5;241m=\u001b[39mqc,\n\u001b[1;32m 23\u001b[0m shots\u001b[38;5;241m=\u001b[39mshots_const,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 26\u001b[0m enable_qos_qubit_mapping\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m,\n\u001b[1;32m 27\u001b[0m )\n\u001b[0;32m---> 28\u001b[0m rs \u001b[38;5;241m=\u001b[39m \u001b[43mt\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mresults\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 29\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m rs\n", + "File \u001b[0;32m~/tensorcircuit/experiments/../tensorcircuit/utils.py:155\u001b[0m, in \u001b[0;36marg_alias..wrapper\u001b[0;34m(*args, **kws)\u001b[0m\n\u001b[1;32m 153\u001b[0m kws[k] \u001b[38;5;241m=\u001b[39m kws[v]\n\u001b[1;32m 154\u001b[0m \u001b[38;5;28;01mdel\u001b[39;00m kws[v]\n\u001b[0;32m--> 155\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mf\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkws\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/tensorcircuit/experiments/../tensorcircuit/cloud/abstraction.py:431\u001b[0m, in \u001b[0;36mTask.results\u001b[0;34m(self, format, blocked, mitigated, calibriation_options, readout_mit, mitigation_options)\u001b[0m\n\u001b[1;32m 429\u001b[0m tries \u001b[38;5;241m+\u001b[39m\u001b[38;5;241m=\u001b[39m \u001b[38;5;241m1\u001b[39m\n\u001b[1;32m 430\u001b[0m s \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mstate()\n\u001b[0;32m--> 431\u001b[0m r \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mresults\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mformat\u001b[39;49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mformat\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mblocked\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmitigated\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m)\u001b[49m\n\u001b[1;32m 432\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m mitigated \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mFalse\u001b[39;00m:\n\u001b[1;32m 433\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m r \u001b[38;5;66;03m# type: ignore\u001b[39;00m\n", + "File \u001b[0;32m~/tensorcircuit/experiments/../tensorcircuit/utils.py:155\u001b[0m, in \u001b[0;36marg_alias..wrapper\u001b[0;34m(*args, **kws)\u001b[0m\n\u001b[1;32m 153\u001b[0m kws[k] \u001b[38;5;241m=\u001b[39m kws[v]\n\u001b[1;32m 154\u001b[0m \u001b[38;5;28;01mdel\u001b[39;00m kws[v]\n\u001b[0;32m--> 155\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mf\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkws\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/tensorcircuit/experiments/../tensorcircuit/cloud/abstraction.py:419\u001b[0m, in \u001b[0;36mTask.results\u001b[0;34m(self, format, blocked, mitigated, calibriation_options, readout_mit, mitigation_options)\u001b[0m\n\u001b[1;32m 417\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m s \u001b[38;5;241m!=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcompleted\u001b[39m\u001b[38;5;124m\"\u001b[39m:\n\u001b[1;32m 418\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m TaskUnfinished(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mid_, s)\n\u001b[0;32m--> 419\u001b[0m r \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdetails\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mresults\u001b[39m\u001b[38;5;124m\"\u001b[39m]\n\u001b[1;32m 420\u001b[0m r \u001b[38;5;241m=\u001b[39m counts\u001b[38;5;241m.\u001b[39msort_count(r) \u001b[38;5;66;03m# type: ignore\u001b[39;00m\n\u001b[1;32m 421\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n", + "File \u001b[0;32m~/tensorcircuit/experiments/../tensorcircuit/utils.py:155\u001b[0m, in \u001b[0;36marg_alias..wrapper\u001b[0;34m(*args, **kws)\u001b[0m\n\u001b[1;32m 153\u001b[0m kws[k] \u001b[38;5;241m=\u001b[39m kws[v]\n\u001b[1;32m 154\u001b[0m \u001b[38;5;28;01mdel\u001b[39;00m kws[v]\n\u001b[0;32m--> 155\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mf\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkws\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/tensorcircuit/experiments/../tensorcircuit/cloud/abstraction.py:336\u001b[0m, in \u001b[0;36mTask.details\u001b[0;34m(self, blocked, **kws)\u001b[0m\n\u001b[1;32m 333\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mapis\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m get_task_details\n\u001b[1;32m 335\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m blocked \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mFalse\u001b[39;00m:\n\u001b[0;32m--> 336\u001b[0m dt \u001b[38;5;241m=\u001b[39m \u001b[43mget_task_details\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkws\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 337\u001b[0m dt\u001b[38;5;241m.\u001b[39mupdate(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mmore_details)\n\u001b[1;32m 338\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m dt\n", + "File \u001b[0;32m~/tensorcircuit/experiments/../tensorcircuit/cloud/apis.py:402\u001b[0m, in \u001b[0;36mget_task_details\u001b[0;34m(taskid, token, prettify)\u001b[0m\n\u001b[1;32m 399\u001b[0m provider \u001b[38;5;241m=\u001b[39m device\u001b[38;5;241m.\u001b[39mprovider\n\u001b[1;32m 401\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m provider\u001b[38;5;241m.\u001b[39mname \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtencent\u001b[39m\u001b[38;5;124m\"\u001b[39m:\n\u001b[0;32m--> 402\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mtencent\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget_task_details\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtask\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdevice\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtoken\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mprettify\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;66;03m# type: ignore\u001b[39;00m\n\u001b[1;32m 403\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m provider\u001b[38;5;241m.\u001b[39mname \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mlocal\u001b[39m\u001b[38;5;124m\"\u001b[39m:\n\u001b[1;32m 404\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m local\u001b[38;5;241m.\u001b[39mget_task_details(task, device, token, prettify) \u001b[38;5;66;03m# type: ignore\u001b[39;00m\n", + "File \u001b[0;32m~/tensorcircuit/experiments/../tensorcircuit/cloud/tencent.py:398\u001b[0m, in \u001b[0;36mget_task_details\u001b[0;34m(task, device, token, prettify)\u001b[0m\n\u001b[1;32m 396\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m r \u001b[38;5;66;03m# type: ignore\u001b[39;00m\n\u001b[1;32m 397\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m:\n\u001b[0;32m--> 398\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(dumps(r))\n\u001b[1;32m 400\u001b[0m \u001b[38;5;66;03m# make the return at least contain the following terms across different providers\u001b[39;00m\n\u001b[1;32m 401\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 402\u001b[0m \u001b[38;5;124;03m'id': 'd947cd76-a961-4c22-b295-76287c9fdaa3',\u001b[39;00m\n\u001b[1;32m 403\u001b[0m \u001b[38;5;124;03m'state': 'completed',\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 415\u001b[0m \u001b[38;5;124;03m'111': 131}\u001b[39;00m\n\u001b[1;32m 416\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n", + "\u001b[0;31mValueError\u001b[0m: {\"code\": 0, \"status\": \"502 Bad Gateway\", \"desc\": \"\\u672a\\u77e5\\u9519\\u8bef\", \"Contents\": [\"\\u672a\\u77e5\\u5f02\\u5e38\", \"\\u5982\\u9700\\u5e2e\\u52a9\\u8bf7\\u7acb\\u5373\\u81f4\\u75358000\\u70ed\\u7ebf\\u6216\\u4f01\\u4e1a\\u5fae\\u4fe1 8000\\u52a9\\u624b\\uff08IT\\u4e1a\\u52a1\\uff09 \\uff0c7x24\\u5c0f\\u65f6\\u4e3a\\u60a8\\u670d\\u52a1\"], \"version\": \"3.0.30.217\"}" + ] + } + ], + "source": [ + "\n", + "data = exp_rabi()\n", + "draw_rabi(data)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA94AAAJOCAYAAABBfN/cAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAADkAElEQVR4nOzdeXwTdf4/8Nc0vbgLtOVqS7lvkHIJWAEFwQPBciiIgrviiVzL6urKKcp6oMX7p/sFVNSVxYjnoohUijcgolIqp4FSKKXc0JYm8/vjw7RJmmOSJplJ5vV8PPJIMpm0H5gmM+/P8X5LsizLICIiIiIiIqKgiNK6AURERERERESRjIE3ERERERERURAx8CYiIiIiIiIKIgbeREREREREREHEwJuIiIiIiIgoiBh4ExEREREREQURA28iIiIiIiKiIGLgTURERERERBREDLyJiIiIiIiIgoiBNxERhYUDBw5AkiQ888wzXvddsGABJEkKQav8N3jwYAwePLjyufLvW7lyZeW2YPw7cnJyIEkScnJyAvpzjSA9PR1TpkzRuhlERBSGGHgTEVHArVy5EpIkVd6io6PRokULTJkyBQUFBVo3r5pPPvkEI0aMQOPGjREfH4/27dtjzpw5OH78uNZN89vLL7/sEMTrweDBgx3+LuxvHTt21Lp5EWHnzp1YsGABDhw4oHVTiIjITrTWDSAiosi1aNEitGrVCqWlpfj++++xcuVKbN68Gb/99hvi4+OD9nsfffRR/OMf/1C175w5c7B06VL06NEDDz30EBo1aoRt27bhxRdfxH/+8x9s2LABHTp0CHgbv/jii4D/THsvv/wyEhMTq43QXnnllbhw4QJiY2OD+vvdSUlJwZIlS6ptb9CggQat8U1+fj6iovQ9ZrFz504sXLgQgwcPRnp6utbNISKiSxh4ExFR0Fx77bXo3bs3AODOO+9EYmIinnzySXz00UcYP3580H5vdHQ0oqO9n+LeffddLF26FDfffDPefvttmEymytemTJmCIUOGYNy4cdi2bZuqn+cLrQLfqKiooHZ6eNOgQQNMmjRJs9/vK1mWUVpailq1aiEuLk7r5hARUZjSd7ctERFFlMzMTADA3r17K7eVl5dj3rx56NWrFxo0aIA6deogMzMTGzdudPtznnvuObRs2RK1atXCoEGD8Ntvvzm8rnZt9MKFC9GwYUO89tprDkE3APTt2xcPPfQQfv31V6xZs6Zy++7duzFmzBg0bdoU8fHxSElJwS233IJTp045vH/VqlXo27cvateujYYNG+LKK690GOV2XuOt1ooVK3DVVVchOTkZcXFx6Ny5M1555RWHfdLT0/H777/j66+/rpzKrfwud2u8//vf/6JXr16oVasWEhMTMWnSpGrLAqZMmYK6deuioKAAo0ePRt26dZGUlIQ5c+bAarX6/G9x5cKFC+jYsSM6duyICxcuVG4vKSlBs2bNMGDAgMrfpbRn3759GD58OOrUqYPmzZtj0aJFkGXZ4efabDZkZ2ejS5cuiI+PR5MmTXD33XfjxIkT1f7vbrjhBnz++efo3bs3atWqhf/3//5f5Wv2MwiUJRWbN2/G9OnTkZSUhISEBNx9990oLy/HyZMncfvtt6Nhw4Zo2LAhHnzwwRq3a/Pmzejbty/i4+PRunVrvPnmmw7tGTduHABgyJAhlcee6/mJiLTHwJuIiEJGWXfasGHDym2nT5/Gv//9bwwePBhPPvkkFixYgGPHjmH48OHYvn17tZ/x5ptv4vnnn8f999+Phx9+GL/99huuuuoqHD161Ke27N69G/n5+Rg1ahTq16/vcp/bb78dgFgDDohOguHDh+P777/HAw88gJdeegl33XUX9u3bh5MnT1a+b+HChbjtttsQExODRYsWYeHChUhNTcVXX33lUxtdeeWVV9CyZUs88sgjWLp0KVJTU3HffffhpZdeqtwnOzsbKSkp6NixI9566y289dZb+Oc//+n2Z65cuRLjx4+HyWTCkiVLMHXqVJjNZlxxxRUO/y4AsFqtGD58OBo3boxnnnkGgwYNwtKlS/Haa6+par/VakVxcXG127lz5wAAtWrVwhtvvIE9e/Y4tPn+++/HqVOnsHLlSodOEqvVihEjRqBJkyZ46qmn0KtXL8yfPx/z5893+L133303/v73v2PgwIFYtmwZ7rjjDrz99tsYPnw4Ll686LBvfn4+JkyYgGHDhmHZsmW47LLLPP6bHnjgAezevRsLFy7EjTfeiNdeew1z587FyJEjYbVa8cQTT+CKK67A008/jbfeesvvdu3Zswdjx47FsGHDsHTpUjRs2BBTpkzB77//DkAsI5g+fToA4JFHHqk89p06dVJxZIiIKKhkIiKiAFuxYoUMQP7yyy/lY8eOyQcP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", + "image/png": "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DwCixNiMGTNw9OhRzJ8/P6iNJDKjpCQRdLOUGJE2lE7+Dh0Ai6du6u7dxZaBN5G+5eW5rod96y1g3jygRw/glVfESHZKSrnAunov4PfNwOoTwNWMuSkYTp/2/lplRln27q34e93ExMRg4MCBGDhwIKZOnYq7774b06dPx9ixY72+5+GHH8bXX3+NF154AS1atEC1atUwYsQIFBcX+/xZp0+fxr333osJEyaUey2UidD279+Pd955B2+//TZyc3Nx00034c477wzZz1NUKPB+99138d///hfXXHNN6b6OHTsiOTkZt956KwNvogpISgKGDQNefRWoVg3YsweoUqFPKBEFgxJ4d+zo5QAl8N64ETh3TnxwiUhffGWI/vFHkYPFS4bozp3FVqeViSgS1agRWd8XQLt27VzKh1WtWhV2tzq333//PcaOHYsbb7wRgAio97p1BkRFRZV7X1paGrZs2YIWLVqEpO3OTp06hY8++giLFy/Gt99+i549e2Ly5Mm46aabULt27ZD/fKCCgXd0dLTHguVNmzZFlJJshohUe+NfQJe7AIcDeOMNcQ//119iyQ4RacNv4J2SIu7MmzQBjh1j4E2kR4FkiPYSeP/+e2iaRqQnR48exU033YS//e1v6NixI2rVqoXffvsNzz33HIYNG1Z6XGpqKlatWoVevXohOjoa9erVQ8uWLWGz2TB06FBIkoSpU6eWVsByft/atWtxyy23IDo6GnFxcfjHP/6BK664AuPHj8fdd9+NGjVqYMuWLfj666/xyiuvqG57UVER8vLycODAAQDA9u3bAcBlPfkNN9yAPXv24Pbbb8ebb76J5s2bV/a/LGAVWuM9fvx4PPnkky4Z7y5cuICnn346JFnoiIyua1cxw6hqVaBtW7Fv82Zt20Rkdn4Db0kSd+TLlgGNGoWrWUQUJh06iI95YSEwfz6wZg3gNmBHFHxqSt6FINlfzZo10b17d7z00ku48sor0b59e0ydOhXjxo1zCYLnzJmDr7/+GsnJyejSpQsA4MUXX0S9evXQs2dPDB06FIMGDUJaWprL9581axb27t2L5s2blyZl69ixI7799lvs2LEDGRkZ6NKlC6ZNm4ZGAV5Tly9fji5dumDIkCEAgFtuuQVdunTB66+/XnrMa6+9hj179mDWrFmaBN1AACPemW4LTVeuXImkpCR06tQJgFgc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koTs7GzrMSO+lhh468T777+P6dOnY86cOdi3bx/S09MxePBglJSUaN20kHX99dejsLDQ+vXll19a75s2bRr+/e9/44MPPsDWrVvxv//9D1lZWRq21vguX76M9PR0LF261On9L730El599VW8/vrr2LVrFxo1aoTBgwejvLzces6ECRNw+PBhbNy4EZ9++im++OILPPDAA4H6FQzPUx8BwJAhQ+xeV6tWrbK7n33kX1u3bsUjjzyCr776Chs3bsTVq1dx++234/Lly9ZzPL2/VVdXY9iwYaisrMSOHTvwz3/+EytWrMCzzz6rxa9kKGr6BwAmT55s9zp66aWXrPexf/zLbDZj4cKF2Lt3L/bs2YOBAwdixIgROHz4MAC+fvTAUx8BfA3pye7du/HGG28gLS3N7rghX0sy6UKvXr3kRx55xPpzdXW13Lx5c3nBggUatip0zZkzR05PT3d63/nz5+UGDRrIH3zwgfVYfn6+DEDeuXNngFoY2gDIa9eutf5ssVjk5ORk+S9/+Yv12Pnz5+XIyEh51apVsizL8pEjR2QA8u7du63nrF+/XpYkST516lTA2h4qHPtIlmX5/vvvl0eMGOHyMeyjwCspKZEByFu3bpVlWd3723/+8x85LCxMLioqsp6zbNkyOSYmRq6oqAjsL2Bwjv0jy7J86623ylOnTnX5GPZP4DVr1kx+8803+frRMaWPZJmvIT0pKyuT27dvL2/cuNGuX4z6WuKMtw5UVlZi7969yMzMtB4LCwtDZmYmdu7cqWHLQtuxY8fQvHlzXHvttZgwYQIKCgoAAHv37sXVq1ft+uu6665Damoq+0sjJ06cQFFRkV2fNG3aFL1797b2yc6dOxEbG4uePXtaz8nMzERYWBh27doV8DaHqry8PCQmJqJjx454+OGHcfbsWet97KPAu3DhAgAgLi4OgLr3t507d6JLly5ISkqynjN48GBcvHjRbkaJ6s+xfxTvvvsu4uPjccMNN2DmzJm4cuWK9T72T+BUV1dj9erVuHz5MjIyMvj60SHHPlLwNaQPjzzyCIYNG2b3mgGMey0K17oBBJw5cwbV1dV2fzgAkJSUhO+++06jVoW23r17Y8WKFejYsSMKCwsxb9483HLLLTh06BCKiooQERGB2NhYu8ckJSWhqKhImwaHOOX/3dlrSLmvqKgIiYmJdveHh4cjLi6O/RYgQ4YMQVZWFtq0aYPjx49j1qxZGDp0KHbu3AmTycQ+CjCLxYLs7Gz07dsXN9xwAwCoen8rKipy+lpT7iPfcNY/AHDPPfegVatWaN68Ob799ls8/fTTOHr0KHJycgCwfwLh4MGDyMjIQHl5ORo3boy1a9eic+fOOHDgAF8/OuGqjwC+hvRi9erV2LdvH3bv3l3rPqNeixh4EzkxdOhQ6/dpaWno3bs3WrVqhTVr1iA6OlrDlhEFr7vvvtv6fZcuXZCWloa2bdsiLy8PgwYN0rBloemRRx7BoUOH7PJXkH646h/bnAddunRBSkoKBg0ahOPHj6Nt27aBbmZI6tixIw4cOIALFy7gww8/xP3334+tW7dq3Syy4aqPOnfuzNeQDvz000+YOnUqNm7ciKioKK2bEzBcaq4D8fHxMJlMtTL1FRcXIzk5WaNWka3Y2Fh06NABP/zwA5KTk1FZWYnz58/bncP+0o7y/+7uNZScnFwrWWFVVRVKS0vZbxq59tprER8fjx9++AEA+yiQpkyZgk8//RRbtmyB2Wy2Hlfz/pacnOz0tabcR/Xnqn+c6d27NwDYvY7YP/4VERGBdu3aoUePHliwYAHS09OxZMkSvn50xFUfOcPXUODt3bsXJSUl6N69O8LDwxEeHo6tW7fi1VdfRXh4OJKSkgz5WmLgrQMRERHo0aMHcnNzrccsFgtyc3Pt9qOQdi5duoTjx48jJSUFPXr0QIMGDez66+jRoygoKGB/aaRNmzZITk6265OLFy9i165d1j7JyMjA+fPnsXfvXus5mzdvhsVisV50KbB+/vlnnD17FikpKQDYR4EgyzKmTJmCtWvXYvPmzWjTpo3d/Wre3zIyMnDw4EG7QZKNGzciJibGupST6sZT/zhz4MABALB7HbF/AstisaCiooKvHx1T+sgZvoYCb9CgQTh48CAOHDhg/erZsycmTJhg/d6QryWts7uRsHr1ajkyMlJesWKFfOTIEfmBBx6QY2Nj7TL1UeA8/vjjcl5ennzixAl5+/btcmZmphwfHy+XlJTIsizLDz30kJyamipv3rxZ3rNnj5yRkSFnZGRo3GpjKysrk/fv3y/v379fBiC//PLL8v79++Uff/xRlmVZXrhwoRwbGyuvW7dO/vbbb+URI0bIbdq0kX/55RfrcwwZMkTu1q2bvGvXLvnLL7+U27dvL48fP16rX8lw3PVRWVmZ/MQTT8g7d+6UT5w4IW/atEnu3r273L59e7m8vNz6HOwj/3r44Yflpk2bynl5eXJhYaH168qVK9ZzPL2/VVVVyTfccIN8++23ywcOHJA3bNggJyQkyDNnztTiVzIUT/3zww8/yPPnz5f37NkjnzhxQl63bp187bXXyv369bM+B/vHv2bMmCFv3bpVPnHihPztt9/KM2bMkCVJkv/73//KsszXjx646yO+hvTLMdu8EV9LDLx15LXXXpNTU1PliIgIuVevXvJXX32ldZNC1rhx4+SUlBQ5IiJCbtGihTxu3Dj5hx9+sN7/yy+/yH/84x/lZs2ayQ0bNpRHjRolFxYWathi49uyZYsMoNbX/fffL8uyKCn2zDPPyElJSXJkZKQ8aNAg+ejRo3bPcfbsWXn8+PFy48aN5ZiYGHnSpElyWVmZBr+NMbnroytXrsi33367nJCQIDdo0EBu1aqVPHny5FqDi+wj/3LWPwDkt99+23qOmve3kydPykOHDpWjo6Pl+Ph4+fHHH5evXr0a4N/GeDz1T0FBgdyvXz85Li5OjoyMlNu1ayc/+eST8oULF+yeh/3jP7/73e/kVq1ayREREXJCQoI8aNAga9Aty3z96IG7PuJrSL8cA28jvpYkWZblwM2vExEREREREYUW7vEmIiIiIiIi8iMG3kRERERERER+xMCbiIiIiIiIyI8YeBMRERERERH5EQNvIiIiIiIiIj9i4E1ERERERETkRwy8iYiIiIiIiPyIgTcRERERERGRHzHwJiIiIqxYsQKxsbEB+beOHj2K5ORklJWV1as9lZWVaN26Nfbs2ePjFhIREfkWA28iIqIAmThxIiRJgiRJaNCgAZKSknDbbbfhrbfegsViCVg7WrdujcWLF9sdGzduHL7//vuA/PszZ87Eo48+iiZNmqh+zNy5c9G1a1e7YxEREXjiiSfw9NNP+7iFREREvsXAm4iIKICGDBmCwsJCnDx5EuvXr8eAAQMwdepUDB8+HFVVVXV+XlmW6/X46OhoJCYm1vnxahUUFODTTz/FxIkTffJ8EyZMwJdffonDhw/75PmIiIj8gYE3ERFRAEVGRiI5ORktWrRA9+7dMWvWLKxbtw7r16/HihUrAAAnT56EJEk4cOCA9XHnz5+HJEnIy8sDAOTl5UGSJKxfvx49evRAZGQkvvzySxw/fhwjRoxAUlISGjdujBtvvBGbNm2yPk///v3x448/Ytq0adbZd8D50u5ly5ahbdu2iIiIQMeOHfHOO+/Y3S9JEt58802MGjUKDRs2RPv27fHJJ5+4/f3XrFmD9PR0tGjRwu74ihUrkJqaioYNG2LUqFE4e/as3X3z5s3DN998Y22z8n/VrFkz9O3bF6tXr/b0X09ERKQZBt5EREQaGzhwINLT05GTk+P1Y2fMmIGFCxciPz8faWlpuHTpEu644w7k5uZi//79GDJkCO68804UFBQAAHJycmA2mzF//nwUFhaisLDQ6fOuXbsWU6dOxeOPP45Dhw7hwQcfxKRJk7Blyxa78+bNm4exY8fi22+/xR133IEJEyagtLTUZXu3bduGnj172h3btWsXfv/732PKlCk4cOAABgwYgOeee856/7hx4/D444/j+uuvt7Z53Lhx1vt79eqFbdu2ef1/R0REFCgMvImIiHTguuuuw8mTJ71+3Pz583Hbbbehbdu2iIuLQ3p6Oh588EHccMMNaN++Pf785z+jbdu21pnouLg4mEwmNGnSBMnJyUhOTnb6vIsWLcLEiRPxxz/+ER06dMD06dORlZWFRYsW2Z03ceJEjB8/Hu3atcMLL7yAS5cu4euvv3bZ3h9//BHNmze3O7ZkyRIMGTIETz31FDp06IDHHnsMgwcPtt4fHR2Nxo0bIzw83Nrm6Oho6/3NmzfHjz/+6PX/HRERUaAw8CYiItIBWZaty7694Th7fOnSJTzxxBPo1KkTYmNj0bhxY+Tn51tnvNXKz89H37597Y717dsX+fn5dsfS0tKs3zdq1AgxMTEoKSlx+by//PILoqKiav1bvXv3tjuWkZGhuq3R0dG4cuWK6vOJiIgCLVzrBhAREZEIPtu0aQMACAsT4+KyLFvvv3r1qtPHNWrUyO7nJ554Ahs3bsSiRYvQrl07REdHY8yYMaisrPRLuxs0aGD3syRJbjO0x8fH49y5cz5tQ2lpKRISEnz6nERERL7EGW8iIiKNbd68GQcPHsTo0aMBwBpE2u6/tk205s727dsxceJEjBo1Cl26dEFycnKtJewRERGorq52+zydOnXC9u3baz13586dVbXDlW7duuHIkSO1/q1du3bZHfvqq6/sfnbX5kOHDqFbt271ahcREZE/ccabiIgogCoqKlBUVITq6moUFxdjw4YNWLBgAYYPH4777rsPgFg63adPHyxcuBBt2rRBSUkJZs+erer527dvj5ycHNx5552QJAnPPPNMrRno1q1b44svvsDdd9+NyMhIxMfH13qeJ598EmPHjkW3bt2QmZmJf//738jJybHLkF4XgwcPxh/+8AdUV1fDZDIBAB577DH07dsXixYtwogRI/D5559jw4YNtdp84sQJHDhwAGazGU2aNEFkZCQAkbDtz3/+c73aRURE5E+c8SYiIgqgDRs2ICUlBa1bt8aQIUOwZcsWvPrqq1i3bp01EAWAt956C1VVVejRoweys7Ptsny78/LLL6NZs2a46aabcOedd2Lw4MHo3r273Tnz58/HyZMn0bZtW5dLtEeOHIklS5Zg0aJFuP766/HGG2/g7bffRv/+/ev8uwPA0KFDER4ebhfA9+nTB8uXL8eSJUuQnp6O//73v7UGGkaPHo0hQ4ZgwIABSEhIwKpVqwAAO3fuxIULFzBmzJh6tYuIiMifJNl2AxkRERGRny1duhSffPIJPv/883o/17hx45Ceno5Zs2b5oGVERET+waXmREREFFAPPvggzp8/j7KyMjRp0qTOz1NZWYkuXbpg2rRpPmwdERGR73HGm4iIiIiIiMiPuMebiIiIiIiIyI8YeBMRERERERH5EQNvIiIiIiIiIj9i4E1ERERERETkRwy8iYiIiIiIiPyIgTcRERERERGRHzHwJiIiIiIiIvIjBt5EREREREREfsTAm4iIiIiIiMiPGHgTERERERER+dH/By9hj+f04sliAAAAAElFTkSuQmCC", "text/plain": [ "
" ] @@ -3155,15 +1185,20 @@ } ], "source": [ - "\n", - "data = exp_rabi()\n", "draw_rabi(data)" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -3181,5 +1216,5 @@ } }, "nbformat": 4, - "nbformat_minor": 2 + "nbformat_minor": 4 } diff --git a/experiments/rabi.png b/experiments/rabi.png new file mode 100644 index 0000000000000000000000000000000000000000..57da7ca1963bafc27d6161622da1e1402513f9e6 GIT binary patch literal 97857 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 z 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 literal 0 HcmV?d00001 diff --git a/experiments/rabi.py b/experiments/rabi.py index 1423ccd1..142007f6 100644 --- a/experiments/rabi.py +++ b/experiments/rabi.py @@ -36,7 +36,7 @@ def gen_parametric_waveform_circuit(t): builder.play("drive_frame", waveforms.CosineDrag(t, 0.2, 0.0, 0.0)) builder.build() - qc.add_calibration(builder, ['q[0]']) //'rabi_test q[0]' + qc.add_calibration('rabi_test', ['q[0]']) tqasm_code = qc.to_tqasm() diff --git a/experiments/rabi_grpc.sh b/experiments/rabi_grpc.sh new file mode 100644 index 00000000..7e3e6b0b --- /dev/null +++ b/experiments/rabi_grpc.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +echo "duration,count0,count1" > rabi_data.csv + +for t in $(seq 1.0 2.0 400.0); do + formatted_t=$(printf "%.1f" $t) + ./GRPCtest 127.0.0.1:2023 60GmonTa 15 1000 1 "TQASM 0.2;\\QREG a[1];\\defcal rabi_test a {frame drive_frame = newframe(a); \\play(drive_frame, cosine_drag($formatted_t, 0.2, 0.0, 0.0)); \\} rabi_test a[0];\\MEASZ a[0];" > tmp.log + + count0=$(grep -A1 'key: "0"' tmp.log | grep 'value:' | awk '{print $NF}') + count1=$(grep -A1 'key: "1"' tmp.log | grep 'value:' | awk '{print $NF}') + + echo "$t,$count0,$count1" >> rabi_data.csv + echo "已采集 duration=$t 的数据: 0: $count0 , 1: $count1" + + rm tmp.log +done \ No newline at end of file diff --git a/nohup.out b/nohup.out new file mode 100644 index 00000000..9027e401 --- /dev/null +++ b/nohup.out @@ -0,0 +1,2467 @@ +[W 2025-06-06 18:35:36.833 ServerApp] A `_jupyter_server_extension_points` function was not found in notebook_shim. Instead, a `_jupyter_server_extension_paths` function was found and will be used for now. This function name will be deprecated in future releases of Jupyter Server. +[I 2025-06-06 18:35:36.834 ServerApp] jupyter_lsp | extension was successfully linked. +[I 2025-06-06 18:35:36.838 ServerApp] jupyter_server_terminals | extension was successfully linked. +[I 2025-06-06 18:35:36.841 ServerApp] jupyterlab | extension was successfully linked. +[I 2025-06-06 18:35:36.845 ServerApp] notebook | extension was successfully linked. +[I 2025-06-06 18:35:37.209 ServerApp] notebook_shim | extension was successfully linked. +[I 2025-06-06 18:35:37.250 ServerApp] notebook_shim | extension was successfully loaded. +[I 2025-06-06 18:35:37.252 ServerApp] jupyter_lsp | extension was successfully loaded. +[I 2025-06-06 18:35:37.253 ServerApp] jupyter_server_terminals | extension was successfully loaded. +[I 2025-06-06 18:35:37.255 LabApp] JupyterLab extension loaded from /Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/jupyterlab +[I 2025-06-06 18:35:37.255 LabApp] JupyterLab application directory is /Library/Frameworks/Python.framework/Versions/3.10/share/jupyter/lab +[I 2025-06-06 18:35:37.255 LabApp] Extension Manager is 'pypi'. +[I 2025-06-06 18:35:37.258 ServerApp] jupyterlab | extension was successfully loaded. +[I 2025-06-06 18:35:37.260 ServerApp] notebook | extension was successfully loaded. +[I 2025-06-06 18:35:37.261 ServerApp] Serving notebooks from local directory: /Users/yuanhe/tensorcircuit +[I 2025-06-06 18:35:37.261 ServerApp] Jupyter Server 2.12.5 is running at: +[I 2025-06-06 18:35:37.261 ServerApp] http://V_ANYUHE-MC0:8080/tree?token=dd8859251abd1568e7ad5fd9b9d3752eb044fe00d2629b01 +[I 2025-06-06 18:35:37.261 ServerApp] http://127.0.0.1:8080/tree?token=dd8859251abd1568e7ad5fd9b9d3752eb044fe00d2629b01 +[I 2025-06-06 18:35:37.261 ServerApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation). +[C 2025-06-06 18:35:37.265 ServerApp] + + To access the server, open this file in a browser: + file:///Users/yuanhe/Library/Jupyter/runtime/jpserver-11002-open.html + Or copy and paste one of these URLs: + http://V_ANYUHE-MC0:8080/tree?token=dd8859251abd1568e7ad5fd9b9d3752eb044fe00d2629b01 + http://127.0.0.1:8080/tree?token=dd8859251abd1568e7ad5fd9b9d3752eb044fe00d2629b01 +[I 2025-06-06 18:35:37.523 ServerApp] Skipped non-installed server(s): bash-language-server, dockerfile-language-server-nodejs, javascript-typescript-langserver, jedi-language-server, julia-language-server, pyright, python-language-server, python-lsp-server, r-languageserver, sql-language-server, texlab, typescript-language-server, unified-language-server, vscode-css-languageserver-bin, vscode-html-languageserver-bin, vscode-json-languageserver-bin, yaml-language-server +[I 2025-06-06 18:35:51.929 ServerApp] Kernel started: 49917d1f-ff43-4a11-89a9-94bf2d206d7d +[I 2025-06-06 18:35:52.390 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-06 18:37:08.420 ServerApp] 302 GET / (@10.96.56.35) 0.34ms +[I 2025-06-06 18:37:08.426 JupyterNotebookApp] 302 GET /tree? (@10.96.56.35) 0.37ms +[W 2025-06-06 18:37:17.452 ServerApp] 401 POST /login?next=%2Ftree%3F (@10.96.56.35) 0.91ms referer=http://10.96.56.18:8080/login?next=%2Ftree%3F +[W 2025-06-06 18:37:19.121 ServerApp] 401 POST /login?next=%2Ftree%3F (@10.96.56.35) 0.88ms referer=http://10.96.56.18:8080/login?next=%2Ftree%3F +[W 2025-06-06 18:37:30.322 ServerApp] 401 POST /login?next=%2Ftree%3F (@10.96.56.35) 0.91ms referer=http://10.96.56.18:8080/login?next=%2Ftree%3F +[W 2025-06-06 18:37:38.188 ServerApp] 401 POST /login?next=%2Ftree%3F (@10.96.56.35) 0.91ms referer=http://10.96.56.18:8080/login?next=%2Ftree%3F +[I 2025-06-06 18:37:51.836 ServerApp] Saving file at /experiments/rabi.ipynb +[I 2025-06-06 18:38:16.849 ServerApp] Kernel interrupted: 49917d1f-ff43-4a11-89a9-94bf2d206d7d +[I 2025-06-06 18:38:21.911 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:e26a9209-3bbf-4db4-b22f-5a2bbb453850 +[W 2025-06-06 18:38:36.795 ServerApp] 401 POST /login?next=%2Ftree%3F (@10.96.56.35) 0.95ms referer=http://10.96.56.18:8080/login?next=%2Ftree%3F +[I 2025-06-06 18:38:42.885 ServerApp] 302 GET / (@10.96.56.35) 0.35ms +[I 2025-06-06 18:38:42.891 JupyterNotebookApp] 302 GET /tree? (@10.96.56.35) 0.42ms +[W 2025-06-06 18:38:44.357 ServerApp] 401 POST /login?next=%2Ftree%3F (@10.96.56.35) 0.93ms referer=http://10.96.56.18:8080/login?next=%2Ftree%3F +[I 2025-06-06 18:39:55.928 ServerApp] User 8a3ac88ad2984ca1a9015545763aa000 logged in. +[I 2025-06-06 18:39:55.929 ServerApp] 302 POST /login?next=%2Ftree%3F (8a3ac88ad2984ca1a9015545763aa000@10.96.56.35) 1.14ms +[I 2025-06-06 18:40:10.278 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-06 18:42:10.243 ServerApp] Saving file at /experiments/rabi.ipynb +[I 2025-06-06 18:44:10.275 ServerApp] Saving file at /experiments/rabi.ipynb +[I 2025-06-06 18:46:10.308 ServerApp] Saving file at /experiments/rabi.ipynb +[I 2025-06-06 18:48:10.338 ServerApp] Saving file at /experiments/rabi.ipynb +[I 2025-06-06 18:50:00.936 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:cafbe407-8345-461e-b7cc-c01cf8ad8bd5 +[I 2025-06-06 18:50:00.950 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-06 18:50:00.950 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:cafbe407-8345-461e-b7cc-c01cf8ad8bd5 +[I 2025-06-06 18:51:06.475 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:cafbe407-8345-461e-b7cc-c01cf8ad8bd5 +[I 2025-06-06 18:52:18.733 ServerApp] Saving file at /experiments/rabi.ipynb +[I 2025-06-06 18:52:59.140 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-06 18:52:59.141 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:cafbe407-8345-461e-b7cc-c01cf8ad8bd5 +[I 2025-06-06 18:52:59.148 ServerApp] Replaying 16 buffered messages +[I 2025-06-06 18:53:37.941 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:cafbe407-8345-461e-b7cc-c01cf8ad8bd5 +[I 2025-06-06 18:53:37.952 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-06 18:53:37.952 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:cafbe407-8345-461e-b7cc-c01cf8ad8bd5 +[I 2025-06-06 18:54:34.164 ServerApp] 302 GET / (@10.96.56.17) 0.31ms +[I 2025-06-06 18:54:34.180 JupyterNotebookApp] 302 GET /tree? (@10.96.56.17) 0.38ms +[I 2025-06-06 18:55:01.779 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:cafbe407-8345-461e-b7cc-c01cf8ad8bd5 +[I 2025-06-06 18:55:03.755 ServerApp] User c83a602e3b2b49ab938fe23884616702 logged in. +[I 2025-06-06 18:55:03.755 ServerApp] 302 POST /login?next=%2Ftree%3F (c83a602e3b2b49ab938fe23884616702@10.96.56.17) 0.78ms +[I 2025-06-06 18:55:14.530 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-06 18:57:38.354 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:165040ce-03f4-44cf-ad52-8baf106e91c8 +[I 2025-06-06 19:10:19.624 ServerApp] Saving file at /experiments/rabi.ipynb +[I 2025-06-06 19:10:23.602 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-06 19:11:47.415 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:cafbe407-8345-461e-b7cc-c01cf8ad8bd5 +[I 2025-06-06 19:27:29.684 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-06 19:27:29.685 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:cafbe407-8345-461e-b7cc-c01cf8ad8bd5 +[I 2025-06-06 19:28:53.494 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:cafbe407-8345-461e-b7cc-c01cf8ad8bd5 +[I 2025-06-06 19:44:21.186 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-06 19:44:21.187 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:cafbe407-8345-461e-b7cc-c01cf8ad8bd5 +[I 2025-06-06 19:45:45.015 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:cafbe407-8345-461e-b7cc-c01cf8ad8bd5 +[I 2025-06-06 20:01:27.156 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-06 20:01:27.157 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:cafbe407-8345-461e-b7cc-c01cf8ad8bd5 +[I 2025-06-06 20:02:50.982 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:cafbe407-8345-461e-b7cc-c01cf8ad8bd5 +[I 2025-06-06 20:36:48.118 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-06 20:36:48.118 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:cafbe407-8345-461e-b7cc-c01cf8ad8bd5 +[I 2025-06-06 20:38:41.939 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:cafbe407-8345-461e-b7cc-c01cf8ad8bd5 +[I 2025-06-06 20:53:34.081 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-06 20:53:34.082 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:cafbe407-8345-461e-b7cc-c01cf8ad8bd5 +[I 2025-06-06 20:54:57.927 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:cafbe407-8345-461e-b7cc-c01cf8ad8bd5 +[I 2025-06-06 21:10:08.085 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-06 21:10:08.085 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:cafbe407-8345-461e-b7cc-c01cf8ad8bd5 +[I 2025-06-06 21:11:31.935 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:cafbe407-8345-461e-b7cc-c01cf8ad8bd5 +[I 2025-06-06 21:27:36.142 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-06 21:27:36.143 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:cafbe407-8345-461e-b7cc-c01cf8ad8bd5 +[I 2025-06-06 21:28:59.964 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:cafbe407-8345-461e-b7cc-c01cf8ad8bd5 +[I 2025-06-06 21:44:29.143 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-06 21:44:29.144 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:cafbe407-8345-461e-b7cc-c01cf8ad8bd5 +[I 2025-06-06 21:45:52.962 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:cafbe407-8345-461e-b7cc-c01cf8ad8bd5 +[I 2025-06-06 22:11:12.266 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-06 22:11:12.267 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:cafbe407-8345-461e-b7cc-c01cf8ad8bd5 +[I 2025-06-06 22:12:36.094 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:cafbe407-8345-461e-b7cc-c01cf8ad8bd5 +[I 2025-06-06 22:29:10.872 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-06 22:29:10.872 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:cafbe407-8345-461e-b7cc-c01cf8ad8bd5 +[I 2025-06-06 22:30:34.694 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:cafbe407-8345-461e-b7cc-c01cf8ad8bd5 +[I 2025-06-06 22:46:25.940 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-06 22:46:25.940 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:cafbe407-8345-461e-b7cc-c01cf8ad8bd5 +[W 2025-06-06 22:47:55.940 ServerApp] WebSocket ping timeout after 90000 ms. +[I 2025-06-06 22:48:00.951 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:cafbe407-8345-461e-b7cc-c01cf8ad8bd5 +[I 2025-06-06 23:13:39.608 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-06 23:13:39.608 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:cafbe407-8345-461e-b7cc-c01cf8ad8bd5 +[I 2025-06-06 23:15:33.427 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:cafbe407-8345-461e-b7cc-c01cf8ad8bd5 +[I 2025-06-06 23:30:16.059 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-06 23:30:16.060 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:cafbe407-8345-461e-b7cc-c01cf8ad8bd5 +[I 2025-06-06 23:31:39.886 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:cafbe407-8345-461e-b7cc-c01cf8ad8bd5 +[I 2025-06-06 23:56:47.677 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-06 23:56:47.677 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:cafbe407-8345-461e-b7cc-c01cf8ad8bd5 +[I 2025-06-06 23:58:41.510 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:cafbe407-8345-461e-b7cc-c01cf8ad8bd5 +[I 2025-06-07 00:13:43.477 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 00:13:43.477 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:cafbe407-8345-461e-b7cc-c01cf8ad8bd5 +[I 2025-06-07 00:15:07.326 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:cafbe407-8345-461e-b7cc-c01cf8ad8bd5 +[I 2025-06-07 00:31:37.153 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 00:31:37.153 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:cafbe407-8345-461e-b7cc-c01cf8ad8bd5 +[I 2025-06-07 00:33:00.980 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:cafbe407-8345-461e-b7cc-c01cf8ad8bd5 +[I 2025-06-07 00:47:38.096 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 00:47:38.096 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:cafbe407-8345-461e-b7cc-c01cf8ad8bd5 +[I 2025-06-07 00:49:01.918 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:cafbe407-8345-461e-b7cc-c01cf8ad8bd5 +[I 2025-06-07 01:14:31.482 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 01:14:31.483 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:cafbe407-8345-461e-b7cc-c01cf8ad8bd5 +[I 2025-06-07 01:16:25.337 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:cafbe407-8345-461e-b7cc-c01cf8ad8bd5 +[I 2025-06-07 01:31:42.282 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 01:31:42.282 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:cafbe407-8345-461e-b7cc-c01cf8ad8bd5 +[I 2025-06-07 01:33:06.106 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:cafbe407-8345-461e-b7cc-c01cf8ad8bd5 +[I 2025-06-07 01:47:43.929 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 01:47:43.929 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:cafbe407-8345-461e-b7cc-c01cf8ad8bd5 +[I 2025-06-07 01:49:07.753 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:cafbe407-8345-461e-b7cc-c01cf8ad8bd5 +[I 2025-06-07 01:58:44.349 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 01:58:44.350 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:cafbe407-8345-461e-b7cc-c01cf8ad8bd5 +[I 2025-06-07 02:00:08.169 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:cafbe407-8345-461e-b7cc-c01cf8ad8bd5 +[I 2025-06-07 02:14:46.790 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 02:14:46.791 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:cafbe407-8345-461e-b7cc-c01cf8ad8bd5 +[I 2025-06-07 02:16:10.617 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:cafbe407-8345-461e-b7cc-c01cf8ad8bd5 +[I 2025-06-07 02:38:57.986 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 02:40:21.808 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 03:11:24.434 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 03:11:24.436 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 03:12:48.265 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 03:28:20.248 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 03:28:20.249 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 03:29:44.071 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 03:45:04.969 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 03:45:04.970 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 03:46:28.793 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 04:01:15.983 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 04:01:15.984 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 04:02:39.806 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 04:19:18.817 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 04:19:18.817 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 04:20:42.666 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 04:37:13.963 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 04:37:13.963 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 04:38:37.798 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 04:56:42.180 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 04:56:42.181 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 04:58:06.005 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 05:12:31.225 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 05:12:31.226 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[W 2025-06-07 05:14:01.226 ServerApp] WebSocket ping timeout after 90001 ms. +[I 2025-06-07 05:14:06.229 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 05:28:57.331 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 05:28:57.332 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 05:30:21.155 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 05:57:53.539 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 05:57:53.540 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 05:59:47.379 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 06:16:33.320 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 06:16:33.320 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 06:17:57.141 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 06:33:49.999 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 06:33:49.999 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 06:35:13.823 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 06:59:11.973 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 06:59:11.974 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 07:00:35.797 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 07:16:51.986 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 07:16:51.987 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 07:18:15.806 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 07:35:25.686 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 07:35:25.687 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 07:36:49.509 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 07:58:22.890 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 07:58:22.891 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 07:59:46.716 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 08:15:27.488 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 08:15:27.489 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 08:16:51.309 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 08:34:00.188 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 08:34:00.201 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 08:35:54.309 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 09:00:49.218 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 09:00:49.219 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 09:02:13.039 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 09:19:12.732 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 09:19:12.732 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 09:20:36.556 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 09:37:40.318 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 09:37:40.318 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 09:39:04.139 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 09:59:29.541 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 09:59:29.542 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 10:00:53.404 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 10:16:22.231 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 10:16:22.231 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 10:17:46.051 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 10:32:53.211 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 10:32:53.212 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 10:34:17.032 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 11:08:41.760 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 11:08:41.761 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 11:10:35.578 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 11:27:19.697 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 11:27:19.698 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 11:28:43.517 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 11:45:40.860 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 11:45:40.861 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 11:47:04.688 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 12:01:27.545 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 12:01:27.545 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 12:02:51.368 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 12:18:18.700 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 12:18:18.700 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 12:19:42.524 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 12:34:03.435 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 12:34:03.436 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 12:35:27.280 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 12:46:37.059 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 12:46:37.059 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 12:48:00.879 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 13:04:23.710 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 13:04:23.710 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 13:05:47.530 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 13:21:34.852 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 13:21:34.852 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 13:22:58.672 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 13:47:14.061 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 13:47:14.062 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 13:49:07.892 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 14:05:43.730 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 14:05:43.730 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 14:07:07.555 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 14:23:28.433 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 14:23:28.433 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 14:24:52.255 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 14:40:49.050 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 14:40:49.050 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 14:42:12.895 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 15:05:16.299 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 15:05:16.299 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 15:06:40.123 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 15:22:19.293 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 15:22:19.293 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 15:23:43.114 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 15:40:45.972 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 15:40:45.973 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 15:42:09.796 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 16:06:05.097 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 16:06:05.097 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 16:07:28.917 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 16:23:09.644 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 16:23:09.644 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 16:25:03.518 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 16:41:49.729 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 16:41:49.729 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 16:43:13.553 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 17:07:00.089 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 17:07:00.089 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 17:08:23.910 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 17:23:07.768 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 17:23:07.768 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 17:24:31.594 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 17:40:50.739 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 17:40:50.740 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 17:42:14.564 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 17:51:41.548 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 17:51:41.549 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 17:53:05.368 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 18:09:11.095 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 18:09:11.096 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 18:10:34.906 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 18:40:27.685 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 18:40:27.685 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 18:42:21.497 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 19:20:18.158 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 19:20:18.159 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 19:21:41.986 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 19:37:33.558 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 19:37:33.558 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 19:38:57.384 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 19:53:27.356 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 19:53:27.356 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 19:54:51.190 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 20:10:11.161 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 20:10:11.162 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[W 2025-06-07 20:11:41.162 ServerApp] WebSocket ping timeout after 90001 ms. +[I 2025-06-07 20:11:46.163 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 20:26:14.204 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 20:26:14.204 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[W 2025-06-07 20:27:44.205 ServerApp] WebSocket ping timeout after 90001 ms. +[I 2025-06-07 20:27:49.208 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 20:42:17.219 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 20:42:17.219 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 20:43:41.040 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 21:09:39.832 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 21:09:39.833 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 21:11:33.664 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 21:41:42.294 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 21:41:42.294 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 21:43:06.114 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 22:12:00.982 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 22:12:00.983 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[W 2025-06-07 22:13:30.984 ServerApp] WebSocket ping timeout after 90001 ms. +[I 2025-06-07 22:13:35.986 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 22:29:43.721 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 22:29:43.721 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 22:31:07.544 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 22:47:46.817 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 22:47:46.817 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 22:49:10.639 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 23:13:36.152 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 23:13:36.153 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 23:14:59.972 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 23:29:46.208 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 23:29:46.210 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 23:31:10.031 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 23:45:38.873 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-07 23:45:38.875 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-07 23:47:02.694 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 00:13:03.263 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 00:13:03.264 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 00:14:57.080 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 00:31:29.816 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 00:31:29.817 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 00:32:53.639 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 00:48:33.510 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 00:48:33.510 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 00:49:57.338 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 00:58:36.528 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 00:58:36.529 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 01:00:00.348 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 01:16:43.902 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 01:16:43.903 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 01:18:07.731 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 01:34:39.553 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 01:34:39.554 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 01:36:03.377 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 01:50:27.280 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 01:50:27.281 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 01:51:51.106 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 02:16:48.464 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 02:16:48.466 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 02:18:12.285 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 02:32:54.196 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 02:32:54.197 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 02:34:18.015 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 02:56:27.904 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 02:56:27.904 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 02:58:21.730 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 03:14:04.897 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 03:14:04.899 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 03:15:28.724 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 03:33:45.311 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 03:33:45.312 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 03:35:09.130 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 03:49:38.931 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 03:49:38.932 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 03:51:02.750 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 04:05:36.601 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 04:05:36.601 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 04:07:00.420 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 04:22:12.427 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 04:22:12.428 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 04:23:36.252 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 04:38:34.419 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 04:38:34.420 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 04:39:58.242 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 04:54:41.219 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 04:54:41.219 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 04:56:05.043 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 05:12:39.911 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 05:12:39.911 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 05:14:03.731 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 05:29:26.885 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 05:29:26.886 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 05:30:50.725 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 05:57:20.757 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 05:57:20.757 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 05:58:44.583 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 06:18:22.900 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 06:18:22.901 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 06:19:46.719 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 06:36:30.562 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 06:36:30.562 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 06:37:54.391 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 06:53:42.653 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 06:53:42.653 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 06:55:06.476 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 07:10:33.267 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 07:10:33.267 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 07:11:57.089 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 07:26:20.873 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 07:26:20.874 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 07:27:44.698 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 07:43:58.879 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 07:43:58.879 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 07:45:22.701 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 08:02:23.533 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 08:02:23.534 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 08:03:47.356 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 08:21:04.205 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 08:21:04.205 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 08:22:28.060 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 08:39:03.982 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 08:39:03.983 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 08:40:27.803 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 08:55:08.653 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 08:55:08.654 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 08:56:32.475 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 09:18:26.225 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 09:18:26.226 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 09:19:50.050 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 09:36:18.797 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 09:36:18.798 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 09:37:42.620 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 09:54:59.804 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 09:54:59.805 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 09:56:23.627 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 10:20:21.819 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 10:20:21.820 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 10:21:45.644 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 10:36:50.989 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 10:36:50.990 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 10:38:14.811 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 10:54:07.695 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 10:54:07.695 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 10:55:31.552 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 11:23:01.868 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 11:23:01.869 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 11:24:55.707 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 11:46:14.668 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 11:46:14.669 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[W 2025-06-08 11:47:44.668 ServerApp] WebSocket ping timeout after 90000 ms. +[I 2025-06-08 11:47:49.673 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 12:04:18.858 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 12:04:18.859 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 12:05:42.678 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 12:21:48.563 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 12:21:48.564 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 12:23:42.385 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 12:40:45.823 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 12:40:45.823 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 12:42:09.649 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 12:59:10.526 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 12:59:10.526 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 13:00:34.350 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 13:24:07.419 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 13:24:07.420 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 13:25:31.237 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 13:41:34.008 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 13:41:34.009 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 13:42:57.830 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 13:58:47.578 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 13:58:47.578 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 14:00:11.428 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 14:25:06.709 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 14:25:06.710 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 14:26:30.527 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 14:43:06.983 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 14:43:06.984 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 14:45:00.825 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 15:08:56.164 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 15:08:56.165 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 15:10:19.991 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 15:26:08.822 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 15:26:08.823 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 15:27:32.644 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 15:44:06.420 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 15:44:06.421 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 15:45:30.246 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 16:00:03.768 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 16:00:03.769 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 16:01:27.590 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 16:26:22.959 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 16:26:22.960 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 16:27:46.779 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 16:42:23.007 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 16:42:23.007 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 16:43:46.833 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 17:01:02.707 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 17:01:02.708 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 17:02:26.533 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 17:28:20.207 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 17:28:20.208 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 17:29:44.024 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 17:45:43.282 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 17:45:43.283 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 17:47:07.106 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 18:01:30.984 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 18:01:30.984 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 18:02:54.796 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 18:28:19.340 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 18:28:19.340 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 18:30:13.160 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 18:45:15.687 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 18:45:15.688 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 18:46:39.516 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 19:02:33.411 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 19:02:33.412 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 19:03:57.234 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 19:30:20.609 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 19:30:20.609 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 19:31:44.439 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 19:59:42.784 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 19:59:42.785 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 20:01:06.604 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 20:30:18.936 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 20:30:18.937 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 20:32:12.757 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 20:49:16.528 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 20:49:16.529 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[W 2025-06-08 20:50:46.530 ServerApp] WebSocket ping timeout after 90002 ms. +[I 2025-06-08 20:50:47.996 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 21:05:10.669 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 21:05:10.670 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 21:06:34.491 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 21:32:27.142 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 21:32:27.142 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 21:33:50.961 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 21:49:55.605 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 21:49:55.606 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 21:51:19.432 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 22:08:20.107 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 22:08:20.107 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[W 2025-06-08 22:09:50.109 ServerApp] WebSocket ping timeout after 90002 ms. +[I 2025-06-08 22:09:55.109 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 22:32:23.380 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 22:32:23.381 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 22:33:47.204 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 22:49:29.034 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 22:49:29.035 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 22:50:52.869 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 23:05:32.828 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 23:05:32.828 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 23:06:56.648 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 23:32:30.516 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 23:32:30.516 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 23:34:24.340 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 23:50:37.471 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-08 23:50:37.471 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-08 23:52:01.297 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 00:07:04.098 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 00:07:04.099 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 00:08:27.920 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 00:36:14.687 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 00:36:14.688 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 00:38:08.514 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 00:52:49.482 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 00:52:49.482 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 00:54:13.307 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 01:09:46.034 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 01:09:46.035 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 01:11:09.854 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 01:34:29.864 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 01:34:29.865 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 01:36:23.699 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 01:51:42.312 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 01:51:42.313 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 01:53:06.130 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 02:09:11.301 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 02:09:11.302 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 02:12:20.541 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 02:26:44.538 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 02:26:44.539 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 02:28:08.360 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 02:44:28.172 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 02:44:28.173 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 02:45:51.992 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 03:01:18.261 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 03:01:18.262 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[W 2025-06-09 03:02:48.263 ServerApp] WebSocket ping timeout after 90001 ms. +[I 2025-06-09 03:02:53.266 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 03:18:49.628 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 03:18:49.628 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 03:20:13.460 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 03:35:25.377 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 03:35:25.378 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 03:36:49.224 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 03:51:40.538 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 03:51:40.539 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 03:53:04.386 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 04:13:23.765 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 04:13:23.766 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 04:15:17.592 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 04:30:53.284 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 04:30:53.285 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 04:32:17.107 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 04:46:55.960 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 04:46:55.960 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 04:48:19.786 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 05:03:11.577 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 05:03:11.578 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 05:04:35.404 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 05:19:03.356 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 05:19:03.357 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 05:20:27.180 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 05:34:49.908 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 05:34:49.909 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 05:36:13.739 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 05:52:43.421 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 05:52:43.421 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 05:54:07.247 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 06:18:10.133 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 06:18:10.134 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 06:19:33.960 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 06:36:12.807 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 06:36:12.808 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 06:37:36.630 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 06:52:44.620 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 06:52:44.621 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 06:54:08.446 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 07:10:58.294 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 07:10:58.296 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 07:12:22.115 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 07:29:08.957 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 07:29:08.957 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 07:30:32.797 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 07:47:46.589 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 07:47:46.590 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 07:49:10.406 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 08:19:42.347 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 08:19:42.347 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 08:21:36.176 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 08:55:18.221 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 08:55:18.222 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 08:57:17.584 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 09:18:58.605 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 09:18:58.606 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 09:20:22.431 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 09:20:56.685 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 09:21:36.152 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:165040ce-03f4-44cf-ad52-8baf106e91c8 +[I 2025-06-09 09:51:11.265 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 09:53:36.638 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 10:20:16.614 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 10:20:16.615 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 10:21:40.432 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 10:36:24.652 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 10:36:24.653 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 10:37:48.474 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 10:52:17.625 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 10:52:17.626 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 10:53:41.441 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 11:22:37.598 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 11:22:37.598 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 11:24:01.412 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 11:39:56.971 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 11:39:56.971 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 11:41:20.787 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 11:47:48.628 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 11:47:48.628 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 11:49:02.792 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 11:49:02.803 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 11:49:02.803 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 11:50:26.620 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 12:06:38.190 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 12:06:38.191 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 12:08:02.058 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 12:25:50.415 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 12:25:50.415 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 12:27:14.240 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 12:41:53.724 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 12:41:53.724 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 12:43:17.547 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 13:31:58.913 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 13:31:58.914 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 13:33:22.738 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 13:49:05.361 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 13:49:05.361 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 13:50:29.175 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 14:05:11.342 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 14:05:11.343 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 14:06:35.157 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 14:25:22.706 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 14:25:22.707 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[W 2025-06-09 14:26:52.706 ServerApp] WebSocket ping timeout after 90000 ms. +[I 2025-06-09 14:26:57.708 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 14:43:04.452 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 14:43:04.454 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 14:44:28.264 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 15:00:00.434 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 15:00:00.435 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 15:01:24.245 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:2cac7728-4025-4d0e-b927-88cb8258cca2 +[I 2025-06-09 15:22:36.901 ServerApp] 302 GET / (@10.96.56.32) 3.44ms +[I 2025-06-09 15:22:36.907 JupyterNotebookApp] 302 GET /tree? (@10.96.56.32) 1.65ms +[I 2025-06-09 15:23:47.599 ServerApp] User 463021115425478faae79675b159db20 logged in. +[I 2025-06-09 15:23:47.600 ServerApp] 302 POST /login?next=%2Ftree%3F (463021115425478faae79675b159db20@10.96.56.32) 5.47ms +[I 2025-06-09 15:24:01.964 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 15:26:01.906 ServerApp] Saving file at /experiments/rabi.ipynb +[I 2025-06-09 15:26:02.613 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 15:30:02.664 ServerApp] Saving file at /experiments/rabi.ipynb +[I 2025-06-09 15:32:03.667 ServerApp] Saving file at /experiments/rabi.ipynb +[I 2025-06-09 15:34:03.696 ServerApp] Saving file at /experiments/rabi.ipynb +[I 2025-06-09 15:36:03.724 ServerApp] Saving file at /experiments/rabi.ipynb +[I 2025-06-09 15:38:03.752 ServerApp] Saving file at /experiments/rabi.ipynb +[I 2025-06-09 15:40:03.780 ServerApp] Saving file at /experiments/rabi.ipynb +[I 2025-06-09 15:42:03.838 ServerApp] Saving file at /experiments/rabi.ipynb +[I 2025-06-09 15:43:03.252 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 15:44:04.682 ServerApp] Saving file at /experiments/rabi.ipynb +[I 2025-06-09 15:46:05.677 ServerApp] Saving file at /experiments/rabi.ipynb +[I 2025-06-09 15:48:06.702 ServerApp] Saving file at /experiments/rabi.ipynb +[I 2025-06-09 15:50:07.690 ServerApp] Saving file at /experiments/rabi.ipynb +[I 2025-06-09 15:58:18.929 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 16:25:25.268 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 16:41:38.843 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 17:00:04.309 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 17:26:27.017 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 17:43:00.339 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 17:49:54.208 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 18:16:45.519 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 18:24:44.584 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 19:08:32.774 ServerApp] Saving file at /experiments/rabi.ipynb +[I 2025-06-09 19:12:32.875 ServerApp] Saving file at /experiments/rabi.ipynb +[I 2025-06-09 19:18:32.941 ServerApp] Saving file at /experiments/rabi.ipynb +[I 2025-06-09 19:23:50.318 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 19:49:54.155 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 20:08:35.216 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 20:41:00.315 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 20:57:53.355 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 21:15:11.037 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 21:42:45.258 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 21:59:40.832 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 22:17:30.444 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 22:44:06.452 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 23:01:06.452 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 23:20:27.670 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 23:28:28.484 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-09 23:45:08.910 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-10 00:01:44.554 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-10 00:19:02.882 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-10 00:44:50.403 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-10 01:01:13.405 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-10 01:19:52.885 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-10 01:47:23.384 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-10 02:03:12.090 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-10 02:20:49.489 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-10 02:38:04.163 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-10 02:56:03.810 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-10 03:13:49.563 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-10 03:29:49.092 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-10 03:47:56.627 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-10 04:07:56.445 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-10 04:26:13.013 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[W 2025-06-10 04:27:43.015 ServerApp] WebSocket ping timeout after 90001 ms. +[I 2025-06-10 04:51:33.393 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-10 05:09:14.998 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-10 05:26:16.380 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-10 05:44:31.068 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-10 06:01:33.785 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-10 06:19:49.873 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-10 06:38:29.504 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-10 06:56:57.486 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-10 07:15:20.583 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[W 2025-06-10 07:16:50.585 ServerApp] WebSocket ping timeout after 90001 ms. +[I 2025-06-10 07:32:13.464 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-10 07:49:27.464 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[W 2025-06-10 07:50:57.464 ServerApp] WebSocket ping timeout after 90000 ms. +[I 2025-06-10 08:02:26.420 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-10 08:20:28.460 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-10 08:37:18.979 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-10 08:54:07.928 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-10 09:20:05.513 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-10 09:38:41.108 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-10 10:22:02.714 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-10 10:38:43.330 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-10 10:43:40.746 ServerApp] Saving file at /experiments/rabi.ipynb +[I 2025-06-10 10:57:39.550 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[W 2025-06-10 11:00:09.551 ServerApp] WebSocket ping timeout after 119994 ms. +[I 2025-06-10 11:08:53.019 ServerApp] Saving file at /experiments/rabi.ipynb +[I 2025-06-10 11:10:53.062 ServerApp] Saving file at /experiments/rabi.ipynb +[I 2025-06-10 11:12:53.118 ServerApp] Saving file at /experiments/rabi.ipynb +[I 2025-06-10 11:14:53.151 ServerApp] Saving file at /experiments/rabi.ipynb +[I 2025-06-10 11:16:53.196 ServerApp] Saving file at /experiments/rabi.ipynb +[I 2025-06-10 11:18:53.719 ServerApp] Saving file at /experiments/rabi.ipynb +[I 2025-06-10 11:20:54.753 ServerApp] Saving file at /experiments/rabi.ipynb +[I 2025-06-10 11:22:55.164 ServerApp] Saving file at /experiments/rabi.ipynb +[I 2025-06-10 11:23:20.070 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-10 11:24:55.212 ServerApp] Saving file at /experiments/rabi.ipynb +[I 2025-06-10 11:26:55.274 ServerApp] Saving file at /experiments/rabi.ipynb +[I 2025-06-10 11:40:56.837 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-10 11:49:51.131 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-10 11:55:41.766 ServerApp] Saving file at /experiments/rabi.ipynb +[I 2025-06-10 12:07:26.215 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-10 13:02:00.801 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-10 16:10:22.117 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-10 16:10:22.143 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-10 16:10:22.143 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-11 10:08:45.978 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-11 10:13:07.204 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-11 10:13:07.205 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 11:55:51.065 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 11:55:51.117 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-12 11:55:51.118 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 15:40:32.807 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 15:40:32.836 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-12 15:40:32.837 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 15:41:56.663 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 16:00:15.116 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-12 16:00:15.116 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 16:01:38.938 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 16:02:25.953 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-12 16:02:25.954 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 16:12:07.023 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 16:12:07.040 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-12 16:12:07.041 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 16:35:26.829 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 16:35:26.847 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-12 16:35:26.847 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 16:37:20.667 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 16:38:36.286 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-12 16:38:36.286 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 16:40:00.110 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 16:56:36.745 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-12 16:56:36.746 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 16:59:00.569 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 17:15:47.885 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-12 17:15:47.886 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[W 2025-06-12 17:18:17.887 ServerApp] WebSocket ping timeout after 119996 ms. +[I 2025-06-12 17:18:22.889 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 17:32:19.930 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-12 17:32:19.930 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 17:34:13.749 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 17:49:52.601 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-12 17:49:52.601 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 17:51:16.455 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 18:05:59.425 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-12 18:05:59.426 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 18:08:23.242 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 18:23:17.552 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-12 18:23:17.552 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 18:26:41.381 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 18:30:42.866 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-12 18:30:42.867 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 18:33:36.686 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 18:34:43.183 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-12 18:34:43.184 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 18:36:07.015 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 18:49:20.581 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-12 18:49:20.584 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 18:50:44.404 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 18:50:44.422 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-12 18:50:44.422 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 18:52:38.249 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 19:08:10.786 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-12 19:08:10.787 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 19:11:34.606 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 19:27:07.249 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-12 19:27:07.250 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 19:30:01.067 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 19:31:47.951 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-12 19:31:47.952 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 19:34:41.770 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 19:50:32.983 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-12 19:50:32.983 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 19:53:26.818 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 20:07:53.931 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-12 20:07:53.932 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 20:10:47.756 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 20:25:12.992 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-12 20:25:12.993 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 20:28:36.821 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 20:43:17.284 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-12 20:43:17.285 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 20:46:11.112 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 21:00:49.241 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-12 21:00:49.242 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 21:02:13.065 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 21:16:58.115 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-12 21:16:58.115 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 21:19:51.951 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 21:35:34.669 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-12 21:35:34.670 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 21:38:28.519 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 21:54:07.601 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-12 21:54:07.602 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 21:59:01.445 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 22:14:04.650 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-12 22:14:04.652 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 22:16:58.469 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 22:31:22.627 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-12 22:31:22.628 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 22:32:46.446 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 22:48:11.429 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-12 22:48:11.430 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 22:51:05.251 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 23:07:13.496 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-12 23:07:13.496 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 23:10:37.368 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 23:26:34.219 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-12 23:26:34.220 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 23:29:28.037 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 23:46:24.183 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-12 23:46:24.184 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-12 23:49:18.007 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 00:03:54.417 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 00:03:54.418 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 00:06:48.238 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 00:21:24.023 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 00:21:24.023 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 00:22:47.839 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 00:38:07.465 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 00:38:07.466 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 00:40:31.286 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 00:56:12.937 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 00:56:12.937 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 00:59:36.786 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 01:13:57.302 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 01:13:57.303 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 01:15:21.145 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 01:30:29.423 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 01:30:29.424 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 01:32:53.241 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 01:47:47.371 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 01:47:47.371 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 01:50:41.192 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 02:05:35.483 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 02:05:35.484 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 02:08:47.822 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 02:23:12.339 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 02:23:12.339 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 02:26:36.168 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 02:43:10.303 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 02:43:10.319 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 02:46:04.130 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 03:01:31.254 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 03:01:31.254 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 03:02:55.084 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 03:17:47.289 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 03:17:47.290 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 03:20:11.108 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 03:35:13.256 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 03:35:13.257 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 03:38:37.079 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 03:53:22.280 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 03:53:22.281 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 03:56:16.104 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 04:12:30.046 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 04:12:30.047 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 04:15:53.876 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 04:31:39.868 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 04:31:39.868 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 04:35:03.716 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 04:50:17.055 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 04:50:17.056 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 04:53:10.878 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 05:08:20.751 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 05:08:20.753 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 05:11:14.585 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 05:19:50.191 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 05:19:50.191 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 05:22:44.047 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 05:38:25.132 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 05:38:25.133 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 05:41:18.954 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 05:57:15.141 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 05:57:15.142 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 06:00:08.970 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 06:14:49.347 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 06:14:49.348 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 06:17:43.170 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 06:20:55.826 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 06:20:55.826 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 06:23:49.664 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 06:38:10.974 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 06:38:10.975 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 06:41:04.790 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 06:55:42.122 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 06:55:42.122 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 06:58:35.965 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 07:12:55.278 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 07:12:55.279 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 07:15:49.126 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 07:21:36.890 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 07:21:36.890 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 07:26:30.719 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 07:41:33.014 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 07:41:33.014 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 07:45:09.597 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 08:01:41.471 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 08:01:41.471 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 08:04:05.315 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 08:20:28.956 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 08:20:28.957 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 08:27:53.057 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 08:34:42.096 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 08:34:42.097 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 08:37:35.919 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 08:54:15.784 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 08:54:15.784 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 08:57:33.232 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 09:11:33.576 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 09:11:33.576 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 09:12:57.400 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 09:22:45.622 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 09:22:45.622 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[W 2025-06-13 09:26:15.623 ServerApp] WebSocket ping timeout after 119962 ms. +[I 2025-06-13 09:26:20.625 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 09:37:32.085 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 09:37:32.086 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 09:52:01.962 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 09:52:01.987 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 09:52:01.987 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 10:24:43.645 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 10:24:43.654 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 10:24:43.654 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 10:47:17.956 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 10:47:17.971 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 10:47:17.971 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 11:04:17.315 ServerApp] 302 GET / (@10.96.56.21) 4.14ms +[I 2025-06-13 11:04:18.612 ServerApp] 302 GET / (@10.96.56.21) 0.36ms +[I 2025-06-13 11:22:42.235 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 11:22:42.247 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 11:22:42.248 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 11:55:53.872 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 11:55:53.885 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 11:55:53.885 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 11:57:47.702 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 12:12:22.016 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 12:12:22.017 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 12:15:15.849 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 12:30:01.982 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 12:30:01.984 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 13:12:31.919 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 13:27:57.601 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 13:27:57.602 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 13:29:51.429 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 13:45:01.632 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 13:45:01.633 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 13:46:25.465 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 13:52:07.510 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 13:52:07.510 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 13:55:31.330 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 14:11:33.180 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 14:11:33.181 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 15:29:24.216 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 15:29:24.241 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 15:29:24.241 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 17:05:56.786 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 17:05:56.803 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 17:05:56.803 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 17:57:52.485 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 17:57:52.524 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 17:57:52.525 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 17:59:46.348 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 18:15:52.263 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 18:15:52.264 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 18:18:46.083 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 18:33:47.348 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 18:33:47.349 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 18:40:11.162 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 18:55:36.668 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 18:55:36.669 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 18:59:30.505 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 19:15:13.655 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 19:15:13.655 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 19:18:07.505 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 19:33:07.913 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 19:33:07.914 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 19:36:44.561 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 19:52:02.704 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 19:52:02.705 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 19:54:56.542 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 19:58:32.509 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 19:58:32.510 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 20:01:26.331 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 20:15:45.518 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 20:15:45.519 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 20:19:09.369 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 20:34:13.738 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 20:34:13.739 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 20:37:37.562 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 20:52:42.584 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 20:52:42.585 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 20:55:06.405 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 21:09:34.373 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 21:09:34.374 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 21:10:58.188 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 21:26:17.442 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 21:26:17.442 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 21:29:11.271 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 21:43:44.706 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 21:43:44.706 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 21:46:38.530 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 22:01:07.992 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 22:01:07.992 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 22:04:01.822 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 22:19:35.783 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 22:19:35.783 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 22:20:59.603 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 22:36:01.511 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 22:36:01.512 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 22:38:55.335 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 22:53:32.748 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 22:53:32.760 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 22:54:56.572 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 23:09:16.891 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 23:09:16.892 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 23:12:40.713 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 23:27:13.759 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 23:27:13.760 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 23:30:07.579 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 23:45:01.763 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-13 23:45:01.764 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-13 23:47:25.583 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 00:04:16.648 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 00:04:16.648 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 00:09:10.519 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 00:25:29.817 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 00:25:29.818 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 00:28:53.641 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 00:44:21.699 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 00:44:21.699 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 00:47:45.542 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 01:02:45.699 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 01:02:45.699 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 01:05:39.534 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 01:22:26.569 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 01:22:26.570 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 01:25:20.567 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 01:41:21.655 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 01:41:21.655 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 01:44:15.480 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 02:01:10.411 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 02:01:10.411 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 02:04:04.232 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 02:07:47.345 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 02:07:47.345 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 02:10:41.170 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 02:26:46.878 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 02:26:46.878 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 02:30:10.698 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 02:44:43.644 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 02:44:43.644 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 02:47:37.462 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 03:02:07.516 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 03:02:07.516 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 03:05:01.336 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 03:21:55.001 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 03:21:55.002 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 03:26:48.829 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 03:41:38.124 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 03:41:38.125 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 03:44:31.945 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 03:47:36.948 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 03:47:36.949 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 03:50:30.766 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 04:06:50.230 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 04:06:50.231 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 04:09:44.057 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 04:25:15.485 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 04:25:15.486 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 04:32:09.315 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 04:47:09.465 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 04:47:09.466 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 04:50:03.291 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 05:06:31.670 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 05:06:31.671 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 05:09:55.503 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 05:26:18.444 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 05:26:18.444 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 05:29:12.264 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 05:45:13.406 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 05:45:13.407 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 05:47:37.250 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 05:48:20.894 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 05:48:20.895 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 05:51:14.713 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 06:06:22.890 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 06:06:22.890 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 06:09:16.709 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 06:23:55.285 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 06:23:55.286 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[W 2025-06-14 06:27:55.287 ServerApp] WebSocket ping timeout after 119878 ms. +[I 2025-06-14 06:28:00.288 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 06:42:44.005 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 06:42:44.005 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 06:45:37.828 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 06:49:33.594 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 06:49:33.595 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 06:52:27.417 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 07:09:26.529 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 07:09:26.529 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 07:10:50.348 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 07:26:27.533 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 07:26:27.534 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 07:29:21.347 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 07:43:49.231 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 07:43:49.231 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 07:46:13.062 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 07:50:21.012 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 07:50:21.012 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 07:53:14.862 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 08:08:47.779 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 08:08:47.780 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 08:12:11.602 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 08:27:11.856 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 08:27:11.857 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 08:30:35.680 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 08:46:17.462 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 08:46:17.463 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 08:49:11.275 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 08:51:45.380 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 08:51:45.380 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 08:54:39.243 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 08:56:01.608 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 08:56:01.608 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 08:58:25.428 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 09:13:32.241 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 09:13:32.241 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 09:16:56.069 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 09:33:34.405 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 09:33:34.406 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 09:36:28.227 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 09:51:18.540 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 09:51:18.541 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 09:54:12.370 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 10:08:36.462 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 10:08:36.463 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 10:11:30.336 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 10:20:44.050 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 10:20:44.068 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 10:24:07.873 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 10:38:35.996 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 10:38:35.998 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 10:41:52.494 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 10:52:35.920 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 10:52:35.921 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 10:55:29.746 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 11:10:21.013 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 11:10:21.014 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 11:13:44.893 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 11:30:11.567 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 11:30:11.569 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 11:33:05.407 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 11:47:57.407 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 11:47:57.408 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 11:50:51.227 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 11:53:36.346 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 11:53:36.347 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 11:56:30.167 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 12:13:02.315 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 12:13:02.316 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 12:14:26.156 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 12:29:22.351 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 12:29:22.351 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 12:32:16.183 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 12:46:40.740 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 12:46:40.740 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 12:49:34.565 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 12:54:21.638 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 12:54:21.638 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 13:36:15.486 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 13:51:01.331 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 13:51:01.331 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 13:54:25.163 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 13:55:41.696 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 13:55:41.696 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 13:58:35.526 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 14:13:13.659 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 14:13:13.659 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 14:16:07.500 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 14:30:42.464 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 14:30:42.464 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 14:36:06.287 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 14:52:48.354 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 14:52:48.355 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 14:55:12.190 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 14:56:20.211 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 14:56:20.211 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 14:59:44.046 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 15:14:11.934 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 15:14:11.934 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 15:15:35.753 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 15:31:35.042 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 15:31:35.042 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 15:33:28.868 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 15:48:46.377 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 15:48:46.378 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 15:52:40.219 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 15:57:37.321 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 15:57:37.321 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 16:04:31.148 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 16:19:51.607 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 16:19:51.608 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[W 2025-06-14 16:23:51.607 ServerApp] WebSocket ping timeout after 119994 ms. +[I 2025-06-14 16:23:56.609 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 16:38:53.247 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 16:38:53.247 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 16:40:47.070 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 16:52:28.655 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 16:52:28.655 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 16:54:52.474 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 16:58:24.306 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 16:58:24.306 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 16:59:48.122 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 17:14:22.245 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 17:14:22.245 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 17:17:46.076 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 17:33:07.000 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 17:33:07.001 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 17:36:00.823 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 17:50:45.962 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 17:50:45.962 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 17:53:39.800 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 17:58:36.012 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 17:58:36.013 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 18:01:29.825 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 18:16:18.997 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 18:16:18.998 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 18:17:42.811 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 18:33:09.795 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 18:33:09.795 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 18:34:33.604 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 18:50:16.586 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 18:50:16.587 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 18:52:10.402 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 19:06:54.599 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 19:06:54.599 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 19:09:48.439 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 19:24:56.621 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 19:24:56.621 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[W 2025-06-14 19:28:56.623 ServerApp] WebSocket ping timeout after 119899 ms. +[I 2025-06-14 19:29:01.624 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 19:43:22.737 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 19:43:22.738 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 19:47:46.564 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 20:03:32.723 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 20:03:32.723 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 20:07:01.103 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 20:21:57.752 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 20:21:57.753 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 20:25:51.610 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 20:40:39.339 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 20:40:39.340 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 20:42:03.168 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 20:56:40.474 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 20:56:40.475 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 21:01:04.294 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 21:16:26.445 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 21:16:26.445 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 21:19:50.283 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 21:34:47.997 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 21:34:47.997 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 21:37:41.822 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 21:53:00.371 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 21:53:00.371 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 21:55:54.198 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 22:11:45.298 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 22:11:45.298 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 22:14:39.127 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 22:29:00.683 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 22:29:00.683 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 22:32:24.526 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 22:47:36.542 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 22:47:36.543 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 22:51:00.365 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 23:05:57.386 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 23:05:57.387 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 23:08:51.206 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 23:25:10.536 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 23:25:10.537 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 23:28:04.358 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 23:42:49.159 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-14 23:42:49.161 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-14 23:45:43.009 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 00:00:22.397 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 00:00:22.399 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 00:02:46.236 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 00:18:25.218 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 00:18:25.220 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 00:19:49.037 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 00:34:43.314 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 00:34:43.314 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 00:37:37.141 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 00:52:22.334 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 00:52:22.347 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 00:53:46.153 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 01:09:56.269 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 01:09:56.270 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[W 2025-06-15 01:11:26.269 ServerApp] WebSocket ping timeout after 90000 ms. +[I 2025-06-15 01:11:31.270 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 01:19:28.752 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 01:19:28.752 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 01:22:40.480 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 01:37:19.348 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 01:37:19.349 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 01:40:13.175 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 01:47:52.032 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 01:47:52.033 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 01:50:45.907 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 02:05:05.944 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 02:05:05.945 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 02:08:21.788 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 02:23:19.247 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 02:23:19.248 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 02:26:43.068 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 02:42:50.730 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 02:42:50.730 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 02:45:44.547 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 02:47:03.803 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 02:47:03.803 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 02:49:27.616 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 03:05:00.946 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 03:05:00.946 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 03:06:24.772 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 03:21:12.929 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 03:21:12.929 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 03:24:06.755 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 03:38:40.677 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 03:38:40.677 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 03:41:34.510 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 03:48:50.394 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 03:48:50.394 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 03:51:44.213 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 04:07:58.236 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 04:07:58.238 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 04:11:22.060 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 04:25:56.603 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 04:25:56.603 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 04:31:36.169 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 04:46:52.437 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 04:46:52.437 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 04:49:46.276 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 05:04:45.485 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 05:04:45.485 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 05:07:39.308 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 05:24:24.246 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 05:24:24.247 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 05:27:25.750 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 05:42:05.691 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 05:42:05.692 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 05:44:59.519 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 06:01:45.664 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 06:01:45.664 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 06:04:42.477 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 06:20:24.580 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 06:20:24.580 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 06:23:48.417 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 06:38:36.659 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 06:38:36.659 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 06:42:00.489 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 06:59:02.891 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 06:59:02.892 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 07:01:26.715 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 07:16:02.702 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 07:16:02.703 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 07:19:26.525 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 07:34:55.626 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 07:34:55.627 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 07:37:49.457 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 07:46:21.620 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 07:46:21.620 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 07:49:15.454 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 08:05:11.540 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 08:05:11.541 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 08:08:05.375 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 08:22:27.483 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 08:22:27.484 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 08:25:51.325 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 08:40:45.623 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 08:40:45.623 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 08:43:39.586 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 09:00:46.879 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 09:00:46.880 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 09:03:10.743 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 09:19:02.764 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 09:19:02.765 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 09:23:11.487 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 09:37:28.746 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 09:37:28.746 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 09:39:52.568 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 09:47:09.501 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 09:47:09.502 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 09:50:06.895 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 10:05:43.545 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 10:05:43.546 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 10:08:37.381 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 10:25:17.960 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 10:25:17.961 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 10:28:41.784 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 10:44:22.486 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 10:44:22.486 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 10:49:46.308 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 10:59:55.190 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 10:59:55.190 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 11:02:49.010 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 11:19:07.127 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 11:19:07.128 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 11:22:00.985 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 11:36:20.331 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 11:36:20.331 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 11:39:14.156 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 11:48:15.242 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 11:48:15.242 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 11:51:09.086 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 12:05:32.199 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 12:05:32.199 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 12:47:55.777 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 12:49:28.465 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 12:49:28.466 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 12:50:52.283 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 13:07:41.420 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 13:07:41.420 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 13:10:35.254 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 13:26:09.584 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 13:26:09.584 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 13:29:33.423 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 13:44:22.700 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 13:44:22.700 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 13:47:16.533 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 13:50:22.693 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 13:50:22.693 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 13:53:16.525 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 14:08:14.723 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 14:08:14.724 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 14:11:08.542 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 14:26:05.459 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 14:26:05.459 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 14:29:29.315 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 14:44:14.347 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 14:44:14.348 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 14:47:08.170 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 14:51:27.230 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 14:51:27.231 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 14:54:21.060 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 15:09:47.127 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 15:09:47.128 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 15:12:40.955 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 15:28:41.869 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 15:28:41.870 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 15:31:53.118 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 15:48:22.007 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 15:48:22.008 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 15:49:45.829 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 15:52:25.168 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 15:52:25.169 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 15:53:48.984 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 16:09:35.961 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 16:09:35.962 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 16:10:59.777 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 16:25:36.021 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 16:25:36.022 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 16:28:59.841 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 16:44:21.237 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 16:44:21.237 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 16:48:15.086 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 16:53:20.578 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 16:53:20.578 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 16:58:20.518 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 17:12:50.820 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 17:12:50.821 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 17:14:14.635 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 17:31:09.838 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 17:31:09.839 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 17:34:03.658 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 17:43:19.798 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 17:43:19.798 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 17:46:13.638 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 17:54:28.760 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 17:54:28.760 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 17:57:22.593 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 18:01:41.791 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 18:01:41.792 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 18:04:35.606 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 18:19:01.739 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 18:19:01.740 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 18:24:25.554 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 18:40:48.555 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 18:40:48.556 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 18:43:42.368 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 18:59:10.819 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 18:59:10.820 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 19:02:04.647 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 19:12:58.752 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 19:12:58.753 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 19:19:52.572 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 19:34:55.132 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 19:34:55.133 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 19:37:48.955 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 19:53:26.986 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 19:53:26.986 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 19:56:20.809 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 20:11:40.032 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 20:11:40.032 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[W 2025-06-15 20:13:10.036 ServerApp] WebSocket ping timeout after 90003 ms. +[I 2025-06-15 20:13:14.639 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 20:27:31.323 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 20:27:31.323 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 20:30:55.144 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 20:46:31.084 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 20:46:31.085 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 20:49:24.902 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 21:05:05.887 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 21:05:05.887 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 21:07:59.722 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 21:23:55.831 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 21:23:55.831 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 21:26:49.657 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 21:41:32.412 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 21:41:32.413 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 21:46:26.251 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 22:01:52.770 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 22:01:52.770 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 22:05:00.406 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 22:20:23.839 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 22:20:23.839 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 22:23:52.752 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 22:40:06.819 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 22:40:06.819 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 22:43:30.649 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 22:58:05.745 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 22:58:05.745 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 23:00:29.560 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 23:15:00.528 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 23:15:00.528 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 23:18:24.384 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 23:34:05.998 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 23:34:05.999 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 23:38:59.817 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 23:53:39.090 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-15 23:53:39.090 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-15 23:56:32.915 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 00:11:05.302 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 00:11:05.302 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 00:14:29.123 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 00:29:19.051 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 00:29:19.051 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 00:32:42.873 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 00:48:48.049 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 00:48:48.050 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 00:51:41.873 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 01:06:25.202 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 01:06:25.202 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 01:09:51.055 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 01:24:28.627 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 01:24:28.627 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 01:27:22.445 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 01:42:03.594 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 01:42:03.595 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 01:44:27.435 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 01:59:09.631 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 01:59:09.631 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 02:02:03.451 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 02:18:13.614 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 02:18:13.614 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 02:21:37.439 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 02:36:21.801 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 02:36:21.801 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 02:39:15.640 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 02:54:02.939 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 02:54:02.939 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 02:56:57.123 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 03:12:23.028 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 03:12:23.028 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 03:13:46.853 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 03:25:50.074 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 03:25:50.075 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[W 2025-06-16 03:29:20.074 ServerApp] WebSocket ping timeout after 119912 ms. +[I 2025-06-16 03:29:21.451 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 03:43:00.506 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 03:43:00.506 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 03:45:54.345 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 04:01:38.927 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 04:01:38.927 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 04:04:02.742 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 04:18:26.837 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 04:18:26.837 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 04:20:20.654 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 04:35:22.960 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 04:35:22.963 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 04:37:46.783 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 04:53:24.655 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 04:53:24.656 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 04:54:48.490 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 05:10:37.771 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 05:10:37.772 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 05:12:01.588 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 05:28:17.798 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 05:28:17.799 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 05:31:11.617 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 05:45:30.319 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 05:45:30.319 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 05:48:24.153 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 06:04:34.227 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 06:04:34.227 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 06:07:28.053 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 06:23:27.285 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 06:23:27.286 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 06:28:51.116 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 06:43:17.992 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 06:43:17.992 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 06:46:11.853 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 07:00:44.433 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 07:00:44.434 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 07:03:08.267 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 07:18:06.269 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 07:18:06.270 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 07:20:00.084 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 07:35:13.553 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 07:35:13.554 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 07:37:37.382 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 07:53:27.727 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 07:53:27.727 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 07:56:21.547 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 08:11:13.784 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 08:11:13.784 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 08:14:37.627 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 08:31:09.769 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 08:31:09.770 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 08:34:59.775 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 08:49:33.719 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 08:49:33.720 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 08:52:27.548 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 09:08:44.597 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 09:08:44.599 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 09:10:08.413 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 09:24:27.601 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 09:24:27.606 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 09:26:51.686 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 09:36:42.341 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 09:36:42.342 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 09:39:36.170 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 09:46:57.393 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 09:46:57.395 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 09:57:03.525 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 09:57:03.536 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 09:57:03.536 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 09:58:57.349 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 10:02:38.490 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 10:02:38.491 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 12:08:07.891 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 12:08:07.919 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 12:08:07.920 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 12:10:01.748 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 12:25:01.289 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 12:25:01.290 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 12:26:25.117 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 12:41:20.314 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 12:41:20.314 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 12:51:36.834 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 12:51:36.846 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 12:51:36.847 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 12:53:30.687 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 13:10:19.291 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 13:10:19.291 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 13:11:43.118 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 13:26:23.357 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 13:26:23.358 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 13:27:47.177 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 13:43:03.949 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 13:43:03.950 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 13:44:33.275 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 14:00:25.277 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 14:00:25.277 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 14:03:19.097 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 14:07:44.042 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 14:07:44.042 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 14:21:53.429 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 14:21:53.438 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 14:21:53.438 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 14:23:47.258 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 14:35:35.258 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 14:35:35.258 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 15:55:35.702 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 15:55:35.758 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 15:55:35.758 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 15:57:29.587 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 15:59:13.446 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 15:59:13.446 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 17:00:59.692 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 17:00:59.728 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 17:00:59.728 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 17:15:46.717 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 17:15:46.738 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 17:15:46.738 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 17:17:40.558 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 17:32:14.380 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 17:32:14.382 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 17:33:38.198 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 17:48:07.208 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 17:48:07.209 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 17:51:31.024 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 18:08:13.014 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 18:08:13.017 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 18:11:36.857 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 18:26:31.242 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 18:26:31.243 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 18:29:55.063 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 18:46:21.385 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 18:46:21.385 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 18:49:35.246 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 19:04:19.866 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 19:04:19.867 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 19:07:13.695 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 19:16:15.298 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 19:16:15.298 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 19:19:39.127 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 19:33:58.542 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 19:33:58.542 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 19:36:52.368 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 19:51:45.179 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 19:51:45.179 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 19:54:53.903 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 20:09:04.108 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 20:09:04.108 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 20:11:57.937 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 20:26:48.331 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 20:26:48.331 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 20:30:12.176 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 20:44:46.580 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 20:44:46.580 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 20:47:40.399 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 21:02:25.186 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 21:02:25.187 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[W 2025-06-16 21:07:55.186 ServerApp] WebSocket ping timeout after 119886 ms. +[I 2025-06-16 21:08:00.187 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 21:22:40.161 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 21:22:40.161 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 21:25:33.985 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 21:40:24.889 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 21:40:24.890 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 21:43:48.716 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 21:58:09.414 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 21:58:09.415 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 22:01:03.249 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 22:15:36.201 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 22:15:36.202 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 22:18:30.040 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 22:32:53.790 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 22:32:53.791 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 22:34:47.646 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 22:51:15.693 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 22:51:15.694 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 22:53:39.845 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 23:09:08.493 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 23:09:08.494 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 23:12:32.323 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 23:29:25.620 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 23:29:25.621 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 23:32:19.449 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 23:46:43.703 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-16 23:46:43.705 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-16 23:49:37.518 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 00:04:31.553 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 00:04:31.554 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 00:07:25.404 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 00:22:48.653 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 00:22:48.654 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 00:24:12.480 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 00:40:28.103 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 00:40:28.104 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 00:42:51.927 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 00:58:45.962 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 00:58:45.963 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 01:02:09.798 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 01:17:49.583 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 01:17:49.583 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 01:21:13.425 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 01:35:44.183 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 01:35:44.183 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 01:38:38.029 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 01:45:12.030 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 01:45:12.030 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 01:48:05.846 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 02:04:29.024 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 02:04:29.024 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 02:06:52.848 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 02:22:51.841 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 02:22:51.841 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 02:26:15.660 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 02:41:33.153 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 02:41:33.153 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 02:44:26.978 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 02:59:08.487 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 02:59:08.489 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[W 2025-06-17 03:02:08.514 ServerApp] WebSocket ping timeout after 90011 ms. +[I 2025-06-17 03:02:13.519 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 03:17:09.353 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 03:17:09.353 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 03:20:08.777 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 03:36:57.194 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 03:36:57.194 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 03:40:21.018 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 03:55:08.061 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 03:55:08.062 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 03:58:01.882 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 04:13:37.873 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 04:13:37.875 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 04:17:01.696 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 04:33:06.047 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 04:33:06.051 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 04:36:29.883 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 04:52:36.427 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 04:52:36.428 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 04:55:43.621 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 05:02:00.106 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 05:02:00.106 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 05:04:53.955 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 05:19:40.035 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 05:19:40.036 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 05:23:03.856 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 05:38:00.710 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 05:38:00.711 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 05:40:24.545 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 05:55:44.625 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 05:55:44.626 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 05:59:08.450 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 06:03:07.590 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 06:03:07.590 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 06:06:01.415 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 06:20:53.372 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 06:20:53.372 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 06:22:17.198 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 06:37:46.340 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 06:37:46.340 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 06:40:10.159 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 06:55:30.595 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 06:55:30.595 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 06:58:24.439 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 07:03:53.397 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 07:03:53.397 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 07:07:19.251 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 07:22:57.168 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 07:22:57.169 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 07:25:50.994 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 07:41:46.975 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 07:41:46.975 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 07:44:40.819 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 08:01:07.950 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 08:01:07.950 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 08:04:01.778 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 08:04:57.011 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 08:04:57.013 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 08:07:50.882 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 08:16:13.212 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 08:16:13.213 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 08:19:37.038 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 08:35:38.401 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 08:35:38.401 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 08:39:02.223 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 08:47:23.458 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 08:47:23.458 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 08:50:17.303 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 09:06:11.290 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 09:06:11.290 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[W 2025-06-17 09:09:11.291 ServerApp] WebSocket ping timeout after 119890 ms. +[I 2025-06-17 09:09:15.699 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 09:24:09.358 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 09:24:09.358 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 09:29:33.193 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 09:45:06.149 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 09:45:06.149 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 09:47:59.980 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 10:03:05.960 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 10:03:05.961 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 10:05:59.780 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 10:07:13.724 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 10:07:13.724 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 10:09:37.550 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 10:26:26.872 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 10:26:26.872 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 10:29:50.693 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 10:44:13.666 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 10:44:13.666 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 10:49:07.491 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 11:05:37.516 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 11:05:37.517 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 11:08:31.338 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 11:24:19.335 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 11:24:19.336 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 11:27:13.172 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 11:43:16.088 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 11:43:16.088 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 11:46:09.911 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 12:00:29.281 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 12:00:29.282 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 12:03:23.108 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 12:08:06.162 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 12:08:06.162 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 12:10:59.987 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 12:25:22.568 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 12:25:22.569 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 12:29:16.385 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 12:44:44.561 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 12:44:44.562 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 13:30:38.395 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 13:44:57.959 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 13:44:57.959 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 13:46:21.776 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 14:03:23.984 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 14:03:23.984 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 14:04:47.810 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 14:08:58.123 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 14:08:58.124 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 14:11:51.942 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 14:27:46.810 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 14:27:46.810 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 14:31:10.632 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 14:47:21.067 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 14:47:21.078 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 14:50:14.887 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 15:05:33.400 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 15:05:33.400 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 15:08:27.237 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 15:10:09.683 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 15:10:09.683 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 15:11:33.503 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 15:27:21.703 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 15:27:21.703 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 15:30:18.026 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 15:45:18.997 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 15:45:18.998 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 15:48:12.820 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 16:02:56.489 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 16:02:56.490 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 16:05:20.347 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 16:10:46.115 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 16:10:46.115 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 16:14:10.118 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 16:29:53.802 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 16:29:53.802 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 16:32:47.623 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 16:48:11.323 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 16:48:11.337 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 16:51:05.170 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 17:06:47.224 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 17:06:47.225 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 17:09:11.038 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 17:11:48.125 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 17:11:48.125 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 17:14:41.946 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 17:30:52.082 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 17:30:52.083 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 17:33:45.915 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 17:48:42.862 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 17:48:42.863 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 17:50:06.680 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 18:05:13.909 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 18:05:13.910 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 18:07:03.821 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 18:12:52.483 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 18:12:52.484 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 18:14:16.473 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 18:28:58.633 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 18:28:58.634 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 18:31:52.455 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 18:46:37.006 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 18:46:37.006 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 18:48:30.827 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 19:04:08.002 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 19:04:08.002 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 19:07:31.819 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 19:22:11.130 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 19:22:11.130 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 19:23:34.951 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 19:38:13.060 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 19:38:13.061 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 19:41:06.922 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 19:55:36.437 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 19:55:36.437 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 20:00:30.255 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 20:17:10.759 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 20:17:10.760 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 20:20:34.575 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 20:34:59.122 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 20:34:59.122 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 20:36:22.952 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 20:39:27.290 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 20:39:27.290 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 20:42:21.123 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 20:57:10.894 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 20:57:10.895 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 21:00:34.957 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 21:14:25.756 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 21:14:25.756 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 21:17:49.330 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 21:32:01.298 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 21:32:01.298 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 21:35:47.691 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 21:51:25.480 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 21:51:25.480 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 21:54:19.304 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 22:10:01.462 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 22:10:01.463 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[W 2025-06-17 22:13:31.464 ServerApp] WebSocket ping timeout after 119996 ms. +[I 2025-06-17 22:13:32.810 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 22:28:16.189 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 22:28:16.189 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 22:31:40.010 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 22:46:34.430 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 22:46:34.430 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 22:49:28.248 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 23:05:33.749 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 23:05:33.749 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 23:08:27.570 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 23:23:42.511 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 23:23:42.511 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 23:27:06.338 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 23:43:49.369 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-17 23:43:49.369 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-17 23:46:13.193 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 00:01:01.208 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 00:01:01.208 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 00:04:25.048 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 00:19:14.357 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 00:19:14.357 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 00:20:38.178 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 00:35:39.417 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 00:35:39.417 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 00:38:33.245 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 00:53:02.714 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 00:53:02.714 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 00:54:26.530 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 01:08:48.766 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 01:08:48.767 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 01:11:42.590 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 01:26:30.478 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 01:26:30.478 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 01:28:54.296 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 01:43:29.586 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 01:43:29.586 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 01:46:23.408 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 02:01:16.698 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 02:01:16.699 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 02:04:10.534 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 02:20:07.760 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 02:20:07.761 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 02:23:46.422 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 02:37:53.406 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 02:37:53.407 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 02:40:47.235 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 02:56:38.841 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 02:56:38.842 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 02:59:32.673 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 03:14:14.671 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 03:14:14.671 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 03:19:08.501 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 03:34:09.034 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 03:34:09.035 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 03:37:02.866 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 03:52:38.972 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 03:52:38.974 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 03:55:32.790 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 04:02:28.894 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 04:02:28.895 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 04:05:22.717 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 04:14:41.876 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 04:14:41.876 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 04:17:35.697 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 04:33:00.263 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 04:33:00.264 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 04:36:24.087 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 04:50:50.536 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 04:50:50.537 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 04:57:14.724 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 05:13:13.431 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 05:13:13.432 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 05:16:07.258 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 05:30:49.257 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 05:30:49.257 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 05:33:43.083 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 05:48:21.486 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 05:48:21.487 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 05:51:29.733 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 06:06:48.054 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 06:06:48.055 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 06:09:41.902 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 06:25:56.855 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 06:25:56.856 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 06:31:20.691 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 06:46:30.878 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 06:46:30.879 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 06:49:54.719 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 07:05:37.502 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 07:05:37.503 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 07:10:31.354 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 07:25:04.451 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 07:25:04.451 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 07:27:58.274 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 07:42:42.275 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 07:42:42.276 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 07:45:36.115 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 07:54:47.248 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 07:54:47.249 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 07:57:41.112 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 08:12:13.194 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 08:12:13.195 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 08:15:07.014 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 08:31:42.296 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 08:31:42.297 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 08:37:06.122 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 08:51:28.698 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 08:51:28.699 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 08:54:22.540 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 09:09:45.442 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 09:09:45.442 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 09:12:39.270 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 09:27:28.725 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 09:27:28.725 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 09:30:22.570 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 09:44:55.052 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 09:44:55.052 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 11:24:01.638 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 11:24:01.671 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 11:24:01.672 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 11:25:55.487 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 11:28:02.262 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 11:28:02.263 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 11:38:45.593 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 11:38:45.609 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 11:38:45.609 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 11:40:39.424 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 11:52:43.850 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 11:52:43.851 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 12:02:16.258 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 12:02:16.285 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 12:02:16.285 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 12:04:10.116 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 12:18:45.159 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 12:18:45.160 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 12:20:08.983 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 12:34:47.295 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 12:34:47.296 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 12:37:11.111 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 12:52:14.277 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 12:52:14.277 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 12:53:38.096 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 13:09:03.283 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 13:09:03.283 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 13:10:57.103 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 13:26:47.464 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 13:26:47.465 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 15:34:56.779 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 15:34:56.825 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 15:34:56.825 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 15:36:50.641 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 15:51:32.138 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 15:51:32.139 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 17:12:18.357 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 17:12:18.385 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 17:12:18.385 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 17:51:55.611 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 17:51:55.634 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 17:51:55.634 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 17:53:49.452 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 18:08:16.181 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 18:08:16.182 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 18:09:39.998 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 18:25:58.237 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 18:25:58.238 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 18:27:22.076 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 18:44:01.016 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 18:44:01.017 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[W 2025-06-18 18:45:31.016 ServerApp] WebSocket ping timeout after 90000 ms. +[I 2025-06-18 18:45:36.017 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 19:00:34.448 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 19:00:34.452 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 19:03:58.284 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 19:18:36.520 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 19:18:36.521 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 19:20:00.333 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 19:35:31.534 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 19:35:31.535 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 19:38:25.344 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 19:52:58.511 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 19:52:58.512 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 19:59:52.354 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 20:15:51.015 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 20:15:51.015 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 20:19:51.462 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 20:34:57.213 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 20:34:57.213 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 20:43:56.745 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 21:00:00.867 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 21:00:00.867 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 21:19:24.743 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 21:34:19.429 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 21:34:19.430 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 21:35:43.251 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 21:51:17.116 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 21:51:17.117 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 21:58:14.190 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 22:13:57.972 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 22:13:57.972 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 22:16:51.795 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 22:31:17.948 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 22:31:17.948 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 22:36:41.772 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 22:51:44.126 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 22:51:44.127 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 23:13:16.856 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 23:27:46.384 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 23:27:46.385 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 23:33:14.664 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 23:48:21.926 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-18 23:48:21.927 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-18 23:53:15.757 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 00:07:42.878 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-19 00:07:42.879 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[W 2025-06-19 00:09:12.879 ServerApp] WebSocket ping timeout after 90000 ms. +[I 2025-06-19 00:09:17.882 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 00:24:42.087 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-19 00:24:42.087 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 00:28:05.912 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 00:43:03.479 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-19 00:43:03.480 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 00:50:27.717 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 01:06:07.734 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-19 01:06:07.739 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 01:19:01.566 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 01:34:01.011 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-19 01:34:01.011 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 01:37:24.841 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 01:50:26.548 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-19 01:50:26.548 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 01:55:25.530 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 02:10:12.358 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-19 02:10:12.358 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 02:17:06.191 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 02:34:06.599 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-19 02:34:06.599 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 02:37:00.592 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 02:52:00.962 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-19 02:52:00.962 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[W 2025-06-19 02:55:30.963 ServerApp] WebSocket ping timeout after 119986 ms. +[I 2025-06-19 02:55:35.964 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 03:10:21.171 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-19 03:10:21.171 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 03:19:44.990 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 03:34:56.229 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-19 03:34:56.229 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 03:37:50.052 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 03:38:44.066 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-19 03:38:44.066 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 03:41:38.225 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 03:56:36.851 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-19 03:56:36.851 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[W 2025-06-19 04:00:06.852 ServerApp] WebSocket ping timeout after 119899 ms. +[I 2025-06-19 04:00:11.853 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 04:15:15.835 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-19 04:15:15.836 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 04:18:39.684 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 04:33:53.977 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-19 04:33:53.978 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 04:39:58.304 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 04:54:43.548 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-19 04:54:43.549 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 05:01:37.383 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 05:17:55.405 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-19 05:17:55.406 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 05:32:49.255 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 05:39:49.658 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-19 05:39:49.659 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 05:42:43.508 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 05:57:40.403 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-19 05:57:40.403 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 06:00:34.221 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 06:15:37.273 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-19 06:15:37.274 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 06:18:01.095 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 06:32:56.222 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-19 06:32:56.223 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 06:34:50.035 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 06:40:51.346 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-19 06:40:51.346 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 06:43:45.166 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 06:58:08.634 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-19 06:58:08.634 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 07:01:02.503 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 07:15:38.502 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-19 07:15:38.503 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 07:26:32.332 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 07:41:46.942 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-19 07:41:46.943 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 07:44:40.759 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 08:00:05.121 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-19 08:00:05.122 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 08:03:16.368 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 08:18:42.991 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-19 08:18:42.992 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 08:20:06.804 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 08:23:58.970 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-19 08:23:58.971 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 08:26:52.788 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 08:41:29.977 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-19 08:41:29.978 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 08:50:23.835 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 09:05:22.134 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-19 09:05:22.135 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 09:08:15.954 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 09:24:50.010 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-19 09:24:50.010 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 09:27:43.851 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 09:42:36.974 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-19 09:42:36.975 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[W 2025-06-19 09:46:06.975 ServerApp] WebSocket ping timeout after 119914 ms. +[I 2025-06-19 09:46:07.428 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 09:51:44.943 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-19 09:51:44.943 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 09:52:24.522 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 09:52:24.532 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-19 09:52:24.532 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 11:59:53.761 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 11:59:53.784 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-19 11:59:53.784 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 12:01:47.600 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 12:17:20.450 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-19 12:17:20.451 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 12:21:14.274 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 12:35:45.035 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-19 12:35:45.036 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 12:37:08.856 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 12:52:45.827 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-19 12:52:45.827 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 13:39:02.797 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-19 13:54:21.962 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-19 13:54:21.963 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-24 18:25:47.453 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-24 18:25:47.574 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-24 18:25:47.575 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[W 2025-06-25 12:30:17.576 ServerApp] WebSocket ping timeout after 1829994 ms. +[I 2025-06-25 12:30:22.583 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-25 13:22:31.091 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-25 13:22:31.091 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[W 2025-06-25 13:47:01.090 ServerApp] WebSocket ping timeout after 1079993 ms. +[I 2025-06-25 13:47:06.090 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-25 14:12:47.395 ServerApp] Connecting to kernel 49917d1f-ff43-4a11-89a9-94bf2d206d7d. +[I 2025-06-25 14:12:47.396 ServerApp] Restoring connection for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +[I 2025-06-25 17:45:11.236 ServerApp] Starting buffering for 49917d1f-ff43-4a11-89a9-94bf2d206d7d:d65157b4-8ef0-4001-9653-438fa52bd5cc +Task exception was never retrieved +future: .wrapper() done, defined at /Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/tornado/websocket.py:1086> exception=WebSocketClosedError()> +Traceback (most recent call last): + File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/tornado/websocket.py", line 1088, in wrapper + await fut +tornado.iostream.StreamClosedError: Stream is closed + +During handling of the above exception, another exception occurred: + +Traceback (most recent call last): + File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/tornado/websocket.py", line 1090, in wrapper + raise WebSocketClosedError() +tornado.websocket.WebSocketClosedError +Task exception was never retrieved +future: .wrapper() done, defined at /Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/tornado/websocket.py:1086> exception=WebSocketClosedError()> +Traceback (most recent call last): + File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/tornado/websocket.py", line 1088, in wrapper + await fut +tornado.iostream.StreamClosedError: Stream is closed + +During handling of the above exception, another exception occurred: + +Traceback (most recent call last): + File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/tornado/websocket.py", line 1090, in wrapper + raise WebSocketClosedError() +tornado.websocket.WebSocketClosedError diff --git a/tensorcircuit/circuit.py b/tensorcircuit/circuit.py index d9c1ff53..597552a3 100644 --- a/tensorcircuit/circuit.py +++ b/tensorcircuit/circuit.py @@ -128,12 +128,11 @@ def def_calibration( }) def add_calibration( - self, name: str, parameters: List[str], instructions: List[Dict] + self, name: str, parameters: List[str] ) -> None: self.calibration_invokes.append({ "name": name, - "parameters": parameters, - "instructions": instructions + "parameters": parameters }) diff --git a/tensorcircuit/cloud/config.py b/tensorcircuit/cloud/config.py index 5ad31e81..ca8928a2 100644 --- a/tensorcircuit/cloud/config.py +++ b/tensorcircuit/cloud/config.py @@ -1 +1 @@ -tencent_base_url = "https://quantum.tencent.com/cloud/quk/" +tencent_base_url = "http://111.230.11.154/cloud/quk/" From 01ad8687a8416dad7f669892c1646ed86f3abd98 Mon Sep 17 00:00:00 2001 From: tencentqlab Date: Tue, 15 Jul 2025 09:10:00 +0800 Subject: [PATCH 52/56] Create README.mk --- experiments/README.mk | 129 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 129 insertions(+) create mode 100644 experiments/README.mk diff --git a/experiments/README.mk b/experiments/README.mk new file mode 100644 index 00000000..7e28e08c --- /dev/null +++ b/experiments/README.mk @@ -0,0 +1,129 @@ +# 在 Tensorcircuit 中使用参数化波形完成 Rabi 实验 + +## 下载安装 +``` +git clone https://github.com/ruan-prog/tensorcircuit.git +cd tensorcircuit +git checkout rabi_test + +cd experiments +pip install -r requirements.txt +``` + +## 代码实现 + +在 rabi.py 文件中修改代码 +``` +vim rabi.py +``` + +#### 1. 配置量子云服务 + +```python +set_token("your_api_token") # 需替换为真实的量子云服务令牌 +``` + +#### 2. 自定义参数化波形 + + +```python +def gen_parametric_waveform_circuit(t): + """ + 参数: + t : 脉冲持续时间(dt) + + 返回: + Circuit: 包含自定义波形的量子电路 + """ + qc = Circuit(1) + + param0 = Param("a") + + builder = qc.calibrate("rabi_test", [param0]) + builder.new_frame("drive_frame", param0) + builder.play("drive_frame", waveforms.CosineDrag(t, 0.2, 0.0, 0.0)) + + builder.build() + qc.add_calibration('rabi_test', ['q[0]']) + + tqasm_code = qc.to_tqasm() + + print(tqasm_code) + return qc +``` + + +#### 3. 在量子设备中执行电路 + +通过以下输出获取可用的设备名称 +```python +ds = list_devices() +``` + +在其中一台设备上执行电路 +```python +def run_circuit(qc): + """ + 参数: + qc (Circuit): 待执行量子电路 + + 返回: + rf(Dict): 测量结果统计 + """ + device_name = "tianji_m2" + d = get_device(device_name) + t = submit_task( + circuit=qc, + shots=shots_const, + device=d, + enable_qos_gate_decomposition=False, + enable_qos_qubit_mapping=False, + ) + rf = t.results() + return rf +``` + +#### 4. Rabi 参数扫描 + +定义扫描周期,遍历不同的脉冲长度 +```python +def exp_rabi(): + result_lst = [] + for t in range(1, 400, 2): + qc = gen_parametric_waveform_circuit(t) + result = run_circuit(qc) + result['duration'] = t + result_lst.append(result) + return result_lst +``` + +#### 5. 绘制 Rabi 结果图 + +绘制 0/1 态的结果分布 +```python +def draw_rabi(result_lst): + data = { + 'duration': [], + '0': [], + '1': [] + } + + for result in result_lst: + data['0'].append(int(result['0']) / shots_const) + data['1'].append(int(result['1']) / shots_const) + data['duration'].append(result['duration']) + + plt.figure(figsize=(10,6)) + plt.plot(data['duration'], data['0'], 'b-o', label='State |0>') + plt.plot(data['duration'], data['1'], 'r--s', label='State |1>') + + plt.title('Rabi Oscillation Experiment') + plt.xlabel('Duration (dt)') + plt.ylabel('Probability') + plt.grid(alpha=0.3) + plt.legend() + plt.tight_layout() + + plt.savefig('rabi.png', dpi=300) + plt.show() +``` From 5dcf1286d20d3051fafa370cd4284ea79f7f50f5 Mon Sep 17 00:00:00 2001 From: tencentqlab Date: Tue, 15 Jul 2025 09:10:32 +0800 Subject: [PATCH 53/56] Rename README.mk to README.md --- experiments/{README.mk => README.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename experiments/{README.mk => README.md} (100%) diff --git a/experiments/README.mk b/experiments/README.md similarity index 100% rename from experiments/README.mk rename to experiments/README.md From ae25c78bed866a5b3b644344f1d92cc0a76041ef Mon Sep 17 00:00:00 2001 From: tencentqlab Date: Tue, 15 Jul 2025 09:12:51 +0800 Subject: [PATCH 54/56] Update README.md --- experiments/README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/experiments/README.md b/experiments/README.md index 7e28e08c..c22ec332 100644 --- a/experiments/README.md +++ b/experiments/README.md @@ -2,10 +2,8 @@ ## 下载安装 ``` -git clone https://github.com/ruan-prog/tensorcircuit.git +git clone https://github.com/tencent-quantum-lab/tensorcircuit.git cd tensorcircuit -git checkout rabi_test - cd experiments pip install -r requirements.txt ``` From f8fc17b464467520edb020f35f04769e7d132bfc Mon Sep 17 00:00:00 2001 From: tencentqlab Date: Tue, 15 Jul 2025 09:13:38 +0800 Subject: [PATCH 55/56] Create requirements.txt --- experiments/requirements.txt | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 experiments/requirements.txt diff --git a/experiments/requirements.txt b/experiments/requirements.txt new file mode 100644 index 00000000..7664be2d --- /dev/null +++ b/experiments/requirements.txt @@ -0,0 +1,2 @@ +matplotlib==3.8.2 +tensorcircuit==0.12.0 From 52dfa0f6e41d2d2d865d72fb1e74914f5b92da18 Mon Sep 17 00:00:00 2001 From: tencentqlab Date: Wed, 16 Jul 2025 11:07:26 +0800 Subject: [PATCH 56/56] Update config.py --- tensorcircuit/cloud/config.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tensorcircuit/cloud/config.py b/tensorcircuit/cloud/config.py index ca8928a2..5ad31e81 100644 --- a/tensorcircuit/cloud/config.py +++ b/tensorcircuit/cloud/config.py @@ -1 +1 @@ -tencent_base_url = "http://111.230.11.154/cloud/quk/" +tencent_base_url = "https://quantum.tencent.com/cloud/quk/"