diff --git a/docs/tutorials/calibrating_armonk.ipynb b/docs/tutorials/calibrating_armonk.ipynb
index af9a71cea6..2858e89e1e 100644
--- a/docs/tutorials/calibrating_armonk.ipynb
+++ b/docs/tutorials/calibrating_armonk.ipynb
@@ -18,7 +18,7 @@
},
{
"cell_type": "code",
- "execution_count": 1,
+ "execution_count": 2,
"id": "e3836dba",
"metadata": {},
"outputs": [],
@@ -29,14 +29,14 @@
"import qiskit.pulse as pulse\n",
"from qiskit.circuit import Parameter\n",
"\n",
- "from qiskit_experiments.calibration_management.backend_calibrations import BackendCalibrations\n",
+ "from qiskit_experiments.calibration_management.calibrations import Calibrations\n",
"\n",
"from qiskit import IBMQ, schedule"
]
},
{
"cell_type": "code",
- "execution_count": 2,
+ "execution_count": 3,
"id": "87e1101f",
"metadata": {},
"outputs": [],
@@ -48,7 +48,7 @@
},
{
"cell_type": "code",
- "execution_count": 3,
+ "execution_count": 4,
"id": "e3f6f6c1",
"metadata": {},
"outputs": [],
@@ -66,14 +66,14 @@
},
{
"cell_type": "code",
- "execution_count": 4,
+ "execution_count": 5,
"id": "ca0c1462",
"metadata": {},
"outputs": [],
"source": [
- "def setup_cals(backend) -> BackendCalibrations:\n",
+ "def setup_cals(backend) -> Calibrations:\n",
" \"\"\"A function to instantiate calibrations and add a couple of template schedules.\"\"\"\n",
- " cals = BackendCalibrations(backend)\n",
+ " cals = Calibrations.from_backend(backend)\n",
"\n",
" dur = Parameter(\"dur\")\n",
" amp = Parameter(\"amp\")\n",
@@ -97,7 +97,7 @@
" \n",
" return cals\n",
"\n",
- "def add_parameter_guesses(cals: BackendCalibrations):\n",
+ "def add_parameter_guesses(cals: Calibrations):\n",
" \"\"\"Add guesses for the parameter values to the calibrations.\"\"\"\n",
" for sched in [\"xp\", \"x90p\"]:\n",
" cals.add_parameter_value(80, \"σ\", schedule=sched)\n",
@@ -116,7 +116,7 @@
},
{
"cell_type": "code",
- "execution_count": 5,
+ "execution_count": 6,
"id": "a2f9d7e5",
"metadata": {},
"outputs": [],
@@ -135,7 +135,7 @@
},
{
"cell_type": "code",
- "execution_count": 6,
+ "execution_count": 7,
"id": "48895a9f",
"metadata": {},
"outputs": [],
@@ -145,13 +145,13 @@
},
{
"cell_type": "code",
- "execution_count": 7,
+ "execution_count": 8,
"id": "bd83e088",
"metadata": {},
"outputs": [],
"source": [
"library = FixedFrequencyTransmon(default_values={\"duration\": 320})\n",
- "cals = BackendCalibrations(backend, library)"
+ "cals = Calibrations.from_backend(backend, library)"
]
},
{
@@ -166,7 +166,7 @@
},
{
"cell_type": "code",
- "execution_count": 8,
+ "execution_count": 9,
"id": "908ff764",
"metadata": {},
"outputs": [],
@@ -184,7 +184,7 @@
},
{
"cell_type": "code",
- "execution_count": 9,
+ "execution_count": 10,
"id": "fa22b8a4",
"metadata": {},
"outputs": [
@@ -222,112 +222,112 @@
"
\n",
" \n",
" 0 | \n",
- " meas_lo_freq | \n",
- " (0,) | \n",
- " None | \n",
- " 6.993371e+09 | \n",
+ " duration | \n",
+ " () | \n",
+ " x | \n",
+ " 3.200000e+02 | \n",
" default | \n",
" True | \n",
- " 2021-11-03 16:40:00.882285+0100 | \n",
+ " 2021-12-07 14:11:16.088611+0100 | \n",
" None | \n",
"
\n",
" \n",
" 1 | \n",
- " qubit_lo_freq | \n",
- " (0,) | \n",
- " None | \n",
- " 4.971589e+09 | \n",
+ " β | \n",
+ " () | \n",
+ " x | \n",
+ " 0.000000e+00 | \n",
" default | \n",
" True | \n",
- " 2021-11-03 16:40:00.882258+0100 | \n",
+ " 2021-12-07 14:11:16.088696+0100 | \n",
" None | \n",
"
\n",
" \n",
" 2 | \n",
- " σ | \n",
- " () | \n",
- " x | \n",
- " 8.000000e+01 | \n",
+ " meas_freq | \n",
+ " (0,) | \n",
+ " None | \n",
+ " 6.993371e+09 | \n",
" default | \n",
" True | \n",
- " 2021-11-03 16:40:00.882474+0100 | \n",
+ " 2021-12-07 14:11:16.298667+0100 | \n",
" None | \n",
"
\n",
" \n",
" 3 | \n",
- " duration | \n",
+ " β | \n",
" () | \n",
" sx | \n",
- " 3.200000e+02 | \n",
+ " 0.000000e+00 | \n",
" default | \n",
" True | \n",
- " 2021-11-03 16:40:00.882528+0100 | \n",
+ " 2021-12-07 14:11:16.088738+0100 | \n",
" None | \n",
"
\n",
" \n",
" 4 | \n",
- " β | \n",
+ " duration | \n",
" () | \n",
- " x | \n",
- " 0.000000e+00 | \n",
+ " sx | \n",
+ " 3.200000e+02 | \n",
" default | \n",
" True | \n",
- " 2021-11-03 16:40:00.882483+0100 | \n",
+ " 2021-12-07 14:11:16.088757+0100 | \n",
" None | \n",
"
\n",
" \n",
" 5 | \n",
- " amp | \n",
+ " σ | \n",
" () | \n",
" x | \n",
- " 5.000000e-01 | \n",
+ " 8.000000e+01 | \n",
" default | \n",
" True | \n",
- " 2021-11-03 16:40:00.882460+0100 | \n",
+ " 2021-12-07 14:11:16.088718+0100 | \n",
" None | \n",
"
\n",
" \n",
" 6 | \n",
- " σ | \n",
+ " amp | \n",
" () | \n",
- " sx | \n",
- " 8.000000e+01 | \n",
+ " x | \n",
+ " 5.000000e-01 | \n",
" default | \n",
" True | \n",
- " 2021-11-03 16:40:00.882520+0100 | \n",
+ " 2021-12-07 14:11:16.088669+0100 | \n",
" None | \n",
"
\n",
" \n",
" 7 | \n",
- " amp | \n",
- " () | \n",
- " sx | \n",
- " 2.500000e-01 | \n",
+ " drive_freq | \n",
+ " (0,) | \n",
+ " None | \n",
+ " 4.971650e+09 | \n",
" default | \n",
" True | \n",
- " 2021-11-03 16:40:00.882499+0100 | \n",
+ " 2021-12-07 14:11:16.298640+0100 | \n",
" None | \n",
"
\n",
" \n",
" 8 | \n",
- " β | \n",
+ " σ | \n",
" () | \n",
" sx | \n",
- " 0.000000e+00 | \n",
+ " 8.000000e+01 | \n",
" default | \n",
" True | \n",
- " 2021-11-03 16:40:00.882507+0100 | \n",
+ " 2021-12-07 14:11:16.088794+0100 | \n",
" None | \n",
"
\n",
" \n",
" 9 | \n",
- " duration | \n",
+ " amp | \n",
" () | \n",
- " x | \n",
- " 3.200000e+02 | \n",
+ " sx | \n",
+ " 2.500000e-01 | \n",
" default | \n",
" True | \n",
- " 2021-11-03 16:40:00.882491+0100 | \n",
+ " 2021-12-07 14:11:16.088776+0100 | \n",
" None | \n",
"
\n",
" \n",
@@ -335,32 +335,32 @@
""
],
"text/plain": [
- " parameter qubits schedule value group valid \\\n",
- "0 meas_lo_freq (0,) None 6.993371e+09 default True \n",
- "1 qubit_lo_freq (0,) None 4.971589e+09 default True \n",
- "2 σ () x 8.000000e+01 default True \n",
- "3 duration () sx 3.200000e+02 default True \n",
- "4 β () x 0.000000e+00 default True \n",
- "5 amp () x 5.000000e-01 default True \n",
- "6 σ () sx 8.000000e+01 default True \n",
- "7 amp () sx 2.500000e-01 default True \n",
- "8 β () sx 0.000000e+00 default True \n",
- "9 duration () x 3.200000e+02 default True \n",
+ " parameter qubits schedule value group valid \\\n",
+ "0 duration () x 3.200000e+02 default True \n",
+ "1 β () x 0.000000e+00 default True \n",
+ "2 meas_freq (0,) None 6.993371e+09 default True \n",
+ "3 β () sx 0.000000e+00 default True \n",
+ "4 duration () sx 3.200000e+02 default True \n",
+ "5 σ () x 8.000000e+01 default True \n",
+ "6 amp () x 5.000000e-01 default True \n",
+ "7 drive_freq (0,) None 4.971650e+09 default True \n",
+ "8 σ () sx 8.000000e+01 default True \n",
+ "9 amp () sx 2.500000e-01 default True \n",
"\n",
" date_time exp_id \n",
- "0 2021-11-03 16:40:00.882285+0100 None \n",
- "1 2021-11-03 16:40:00.882258+0100 None \n",
- "2 2021-11-03 16:40:00.882474+0100 None \n",
- "3 2021-11-03 16:40:00.882528+0100 None \n",
- "4 2021-11-03 16:40:00.882483+0100 None \n",
- "5 2021-11-03 16:40:00.882460+0100 None \n",
- "6 2021-11-03 16:40:00.882520+0100 None \n",
- "7 2021-11-03 16:40:00.882499+0100 None \n",
- "8 2021-11-03 16:40:00.882507+0100 None \n",
- "9 2021-11-03 16:40:00.882491+0100 None "
+ "0 2021-12-07 14:11:16.088611+0100 None \n",
+ "1 2021-12-07 14:11:16.088696+0100 None \n",
+ "2 2021-12-07 14:11:16.298667+0100 None \n",
+ "3 2021-12-07 14:11:16.088738+0100 None \n",
+ "4 2021-12-07 14:11:16.088757+0100 None \n",
+ "5 2021-12-07 14:11:16.088718+0100 None \n",
+ "6 2021-12-07 14:11:16.088669+0100 None \n",
+ "7 2021-12-07 14:11:16.298640+0100 None \n",
+ "8 2021-12-07 14:11:16.088794+0100 None \n",
+ "9 2021-12-07 14:11:16.088776+0100 None "
]
},
- "execution_count": 9,
+ "execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
@@ -371,7 +371,7 @@
},
{
"cell_type": "code",
- "execution_count": 10,
+ "execution_count": 11,
"id": "502aef29",
"metadata": {},
"outputs": [],
@@ -384,18 +384,18 @@
},
{
"cell_type": "code",
- "execution_count": 11,
+ "execution_count": 12,
"id": "91184061",
"metadata": {},
"outputs": [
{
"data": {
- "image/png": "iVBORw0KGgoAAAANSUhEUgAAATYAAAB7CAYAAAD+DayvAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAWHUlEQVR4nO3deVhV5drH8e9mnlFQARlUEGdNAQMHFCccsChD0tIyNRRnssGccMpMPaivQ9prWr5aCVqJhie1ADVPJYdMxAE5ioIzzigzvH9w3IWAbHXjhsX9ua6uC579rGfda7f9sYZnra0qLi4uRgghFERP1wUIIYS2SbAJIRRHgk0IoTgSbEIIxZFgE0IojgSbEEJxJNiEEIojwSaEUBwJNiGE4kiwCSEUR4JNCKE4EmxCCMWRYBNCKI4EmxBCcSTYhBCKI8EmhFAcCTYhhOJIsAkhFEeCTQihOAa6LkCI2uLkyZOV9lm1ahUTJkx4ZJ8WLVpoqyTFkj02IaqR1atX67oERZBgE0IojgSbEEJxJNiEqEa2bdum6xIUQYJNCKE4EmxCK86cOcPgwYOxt7fHwsICZ2dnXn75ZfLy8nRdWo0SFBSk6xIUQaZ71CKnfoa7V6tm7KCpA/Bp6883C09hbmrF1RsXOJi4i4StxRgZVs06tc2yATTvqesqdGPKlCkcOXLkma+3ffv2LF++XOvjSrDVInevwq0M7Y975951zl08xazXvqXghjW3AWOc6NVyLPevwNo9c0g6ewBXh3bs/fcmjA1NCew8gSE9p6nHOHv5GOt2TiX1QiJGhqb06vA6b/adh4F+SSpevpHGZz+8R/LZg+TmZ9PIrjXz34rGytxW+xtUCx05coT4+Hhdl6E1EmziqVmZ29LYrjURUaMZ6DOWZs5euDRoiUqlUvdJOrMfT/c+bJ11ibOXk5ixvj8N6rrQs8Nr3My6ytRPuzOy30Lmv7WT2/euMfuLQIwMTRneZzY5efd5b11POjbvz4b3TmJiZM6pjAQM9I10uNVVY/z48bouQRHkHJvQiqWhcbRz8+Pbg8sZu6w9wXPt2Lx3PsXFxQDYWDnwao8PMDQwopmTJwN8Qvjx8BcA7EvYhJvDcwzsNAZDAyPqWTsytMeH7Pv3JgB+O7GLvPxsxgeuwNzUGn19A1o18sHMxFJXm1tlKrvrQGhG9tiEVlib12NU/4WM6r+QnLz7xP8ZybJtb1PP2hEAu7qNSu3B2dVtzMGkbwG4dOMsyWm/8NKsOurXiymmqKgQKDkMtbdxRV9f+R/Xbt26sX//fl2XUeMp/5MinjkTIzP6dhzBjl9W8p+LR7A0s+HKzXMUFxerw+3KzTTqWTsBJaHXwb03H436odzx7G0ac/nmWQqLCtHX039m26EL165d03UJiiCHouKp3b1/k89jPuTs5WMUFOZTWFjAgaPbSbt8jDZNfAG4cecSkXFLKCjMJ/XCH8T89r/4e70JQB/PN0jJSOCfv28gLz+HoqIiLl0/w+GT/wTg+ZYBGOobsTY6jHvZtyksLOD4uV+5n3NXZ9ssqjfZYxNPzcDAiFtZV5n75SBu3L2Evp4BdnUbMy7wf+j+3GA27UmmbRNfbty9RPA8e4wMTHi562R6dngNABsre5aOjWV9zDQ27J5ObkE29nUbE+AzBgBTI3OWjPmZdTunMuITd/IL82ji0Ja5I3bocrOrRKtWrXRdgiJIsImnZmpkztTgzx/ZR6XSI/TFZYS+uKzc1xvZtWL+W9EVLu9g68qcEd89VZ01wfbt23VdQpWxtrbm9u3bz2RdcigqRDUye/ZsXZdQqSZNmhAWFsaWLVtISEjg6NGjHDp0iHXr1jFq1Cjq1KlTZhk3NzeSkpKYNm1a2QGrgASbENVIVFSUrkuoULt27di1axepqalERETw2muv4enpSdu2benUqRMhISGsX7+eCxcusG7dOurXrw+UhFpsbCzOzs70798fA4OqP1CUYNOhoqIili5diru7OyYmJjz33HPEx8fTvHlzQkJCdF2e1rzhP4fFY/bpugzxhFQqFTNnziQhIYGAgADy8vLYsmULb7/9Nj4+PrRr1w4/Pz/CwsLYu3cvZmZmhISEkJycTGhoqDrUDhw4wIABAygoKKjymuUcmw6NGjWKb7/9llmzZuHp6cmhQ4cYOnQo165d45133tF1eUKgUqnYsGEDI0aMAEqe8BseHs7169fL9I2Pj2f58uU0b96cVatW0bt3b9asWQPAgQMH6N+/P/fu3Xsmdcsem458/fXXfPHFF0RHR/Puu+/So0cPZsyYQadOnSgoKMDDw0PXJT62w6d+JGyN71OPs/ibEfwjarT690krO5F4+qenHrcmqG73a86fP58RI0aQlZVFv379mDBhQrmh9nenTp1i7Nix3Lp1S922YsWKZxZqIMGmMwsXLqRfv3507969VHvTpk0xNDSkXbt2OqrsyRQXF7M2Oow3/Odqfezh/nNYGx2m9XGro+TkZF2XoObt7c20adMoLCwkMDCQH3/8UaPlHpxTq1OnDmlpaQCsXLmSunXrVmG1pcmhqA5kZGRw7NgxwsLK/mM9f/48rVu3xtjYuNJx/n6LkiaWjo3lOTe/x1pGUwkpeygozKO9Ww+tj+3p3odl2Tf5I/VnOjStuucKxcfH0XGo9ut/oLz/3w9btmxZpf2WLSt/yoy2LV++HH19fRYvXszPP/+s0TJ/v1Bw4MABAgICiImJoWvXrkyfPp333nuvVP/4+PjH+hw/uPe4MrLHpgMZGSXPDrK3ty/Vnp2dTXx8fI08DD107Hs6uPdWf0gLCvP56qeFvLW4OS/OtOSNj93Yf7TksdeJp39i4v948/LsugTNqc9Hm4dwM6viB8Xp6enRvmkvDh37/llsigA8PDzw8fHh5s2bzJkzR6NlHg61/v37c/fuXXVQjxw5EhMTkyqs+i+yx6YD9erVAyAlJYUBAwao2xcvXsylS5fw9PTUaBxN/3o9kPBN1TyPDSD1QiI9PV5X/77xnzP59fhOZg2LoolDWzJvX+Du/RsAGBkYM+HlVTRt2IHb9zJZsDmYNTsmM+P1ryscv4lDW345VrUTdLt396P408d7Tx+HJt8rumzZskqviEdERGirJDU/P79S5/eGDBkCwJdffkl2dnaly5cXag/OqSUkJJCQkICXlxf+/v5ER/81Ebt79+7ExcVpd2OQYNMJV1dX2rVrx8KFC7GxscHR0ZFt27YRExMDoHGwVSd3s29iZmwFlARu9KHVzBy2FdeGJecK69dxon6dkpve2zTpql7OxsqeYL/3+UfkyEeOb25ipQ5GJZs7V/vnKJ+El5cXAHv37q2076NC7YF9+/bh5eWFl5dXqWCrKhJsOqCnp0dUVBRjxowhNDQUW1tb3nzzTcaPH8/06dNr3IUDAEvTutzPvQPArXvXyMm7h2O9ZuX2Tcn4Nxt2T+fMxT/Jzb9PMcVk52Y9cvx7OXewNLPRet3VTXBwsK5LAKB169YA/Pnnn4/sp0moAerHjj8Yt6pJsOlIs2bNiI2NLdU2fPhwWrVqhampqY6qenJujh04d+U4AHXM62NiaMaFzNM41Xcv0/ejLUPo1jaIWcOjMDex4tfju5i18YVHjp92+RhNHTtUSe3VScuWLTlx4oSuyyAiIgIrKysyMzMf2W/Lli2VhhqUBNuCBQs4fvx4VZRbhgRbNZKQkICPj4+uy3giXVq/xKodE4GSq7UvdB7H+h/ep0FdFxrbtVafY3Nt2I77OXcwN7HGzNiSqzfP803sokeOXVRUxB+pP/Fu8MZnsSkC+OSTTzTqN3z4cBYsWMDIkSMfOU/t1KlTzJo1S1vlVUqCrZrIysoiJSWFcePG6bqUCmXevsisjQM5d+U4Oxdkoa9vwOUbaUxc6Y1z/RZcv32JP/8Tx3NufuQX5HI/9y5hq7tSWFSAjaU9zg1aci/nFs2dO7L79/Vs+WkBzg1aYGpkAcDqHZMZH7gCgBPnfiVsjS9NHT3wbhGAuYk1v53Yxf/tnUNTRw91v0+jw0jJSCjV9sCjXhPacfr0aV599VVdl1GGTPeoJiwsLCgsLGTixIm6LqVCVmY2LA75iZYupfcqPd37EDEunvA3tvHlj7M5nZFIbn42W2aco0f7oSwdG8vMYZHYWNqzbNwB6ls7M/31r9n5URZhr3yGYz139i4ppqAgj1Pph3m56yRaNerEsnEHKCjI47Nd7/Jip3Fk52ap206lH+Z0RmKZtgce9Vp15ufnp+sSFEGCTWjMyNAES7Oys8eP/CeWsDW+nL96gohx+zlx/lc8m/UBwMO9N8fP/avcNkCjvv29R1NMscZjVjRuTfDpp5/qugRFkGATT8XGyoGNH6SwdEwsiaf3cebiUbKyb6mnfpibWJOVfavcNkDjvo8zZkXj1gShoaG6LkER5BybKOPGnct8tGVIqTYbS3tmDPumTF8jA2Og5PYvn5YDSbtyDHMTa/XUj3u5d7AwrYOeSr9MG6BxX03bHihv3JqgKiar1kayxybKsLGy5x+hcaX+Ky/UgFJfqJKc9gsOtm60atSJP/77NI4/Tu+jpYtPuW2Axn0fZ8yKxhW1hwSb0FhBYT7vr+vNmUt/Mm19X06c/42kswcYt9yTyas6Y2vtSEsXb9ydPDA0NCFsjS96evq0cHm+3DZA476att24c5ktP31U4fpE7aAqftwbDkWNVZX3iipBHSfwGlJ5vyelyb2immjRooVWxvm7h+8VfVaq6l5R2WMTohqJjIzUdQmKIBcPahHLBrquoHqrDu9PeHi4Tu4Xbd++/WMvc+b8JQBcXRxK/VzV69WEBFst0rzqntEoarjly5c/9jLTPvkMgEUfhJT6uTqQQ1EhhOJIsAlRjTz4VifxdCTYhKhGntXzypROgk2IauThby0TT0aCTQihOBJsQgjFkekeQjwjmtwxEB4eXiV3FtQ2sscmRDWi6Xd4ikeTYBNCKI4EmxBCcSTYhBCKI8EmhFAcCTYhhOJIsAkhFEeCTaEmT56Mk5MTBgYyVVFUP3FxcbRu3ZqmTZsyevRoCgsLtTq+BJtCDR48mISEBF2XIUQZRUVFjB49mqioKFJTU7lz5w6bN2/W6jok2BSqa9eu2Nvb67oMIco4fPgwDRs2pFWrVgCMGjWK7du3a3UdEmxCiGcqIyMDZ2dn9e8uLi6kp6drdR1yAkYIoZGMy9fYvnt/mfYVG7eX+dnYyJA3X+mLqYlxmf7P4ovxZI9NCKERJ/v6NLSz5dLV61y6el3d/vDPl65ex7Nts3JDDcDZ2bnUHtr58+dxcnLSaq0SbEIIjb3QqzN1rS0f2aeVeyO82jav8HUvLy8yMjI4fvw4AJ9//jmDBg3Sap0SbAo1ZswYnJycKCwsxMnJifHjx+u6JKEAJsZGDA7wQ1XB6xZmpgzq2w2VqqIeoK+vz/r16wkKCsLNzQ0LCwuGDx+u1Trlm+BroeLi4kd+8ISoTEzsr+z//WiZ9jcG+dPKvfGzL+ghssdWC8X9eoQt3++lQMuTIkXt4e/bEfv6NqXavNo1rxahBhJsOpGbm6uzdefk5nHg96PkFxRioK+vszpEzWZgoM+rA3ugr18SITbWlrzQs5OOq/pLtQm2OXPmoFKpOHbsGAEBAVhYWODg4MCSJUsA2L17Nx4eHpiZmdGhQwcOHjxYavlDhw7Rt29frK2tMTU1xdfXt0yfhIQEgoODcXFxwdTUlKZNmzJx4kRu375dql9qaipBQUHY29tjbGyMo6MjL774Itevl1z9iYuLQ6VSERcXV2q58tr9/Pzw8vJiz549dOzYERMTE+bNmwdAeno6I0aMUK+nZcuWrF+/XhtvZ4X+lZjM/ZxcenXxqNL1COVzaGCLv68XKiB4YA+MjY10XZJatZvHNnjwYEaPHk1YWBibNm3i/fff5/r16+zatYuZM2diaWnJjBkzCAwMJC0tDUtLS/bs2cPAgQPp2bMnGzduxNjYmNWrV9OrVy8OHjxIx44dAUhLS6Nt27YMGzYMa2trUlNT+fjjj0lMTOSXX35R1xAQEICVlRUrV67Ezs6Oy5cvs3fvXrKzs59om86dO0dISAgzZszA3d0dc3NzLl68iLe3NxYWFixatAhHR0diYmIICQnh3r17TJ48udJxp33y2RPVA7B60/dPvKwQD1u7JfqZrGfRByEa9at2wTZ58mTGjh0LgK+vL9HR0URERJCSkkLjxo0BMDU1pVevXuzZs4dXXnmFCRMm4OXlRUxMDHp6JTuhffv2pU2bNoSHhxMTEwNAUFBQqXV16dKFZs2a0a1bN44cOUL79u3JzMwkJSWF77//nsDAQHXf4ODgJ96mzMxMdu3ahbe3t7otJCSE7OxsEhMT1bc+9enThzt37jB37lzGjh2LsXH584CEEI9W7YJtwIAB6p+NjY1xdXWlsLBQHWrw17f9pKenk5qayunTp5kyZQpFRUUUFRWp+/Xu3ZuNGzeqf8/KymLRokVs3bqV9PT0Uue6Tp06Rfv27bG1tcXV1ZVp06Zx5coVunXr9tTfGuTg4FAq1ABiYmLw9/enXr16FBQUqNv79evHhg0bOHr0qHpPsyKa/vWCknNri9d+jYujHSOC+j3eBghRw1S7YLOxKX2lxcjICBMTkzJtADk5OVy5cgWA8ePHVzhXKzs7G1NTU0aOHMnu3buZM2cOHh4eWFpakp6ezqBBg9SHmSqVin379jFv3jxmzpzJtWvX1PPAPvjggyeaJuHg4FCm7cqVK0RGRhIZGVnuMpmZmZWO+ySHoif/c/6pDmGF0KUaeyj6uGxtbYGSiw8BAQHl9jE2NiYnJ4fvvvuO2bNnM3XqVPVrD184AGjSpAkbN26kuLiY5ORkNmzYwIcffki9evUYPXq0Omgfvrr54OLCw8oLQ1tbW55//nlmz55d7jLu7u7ltgshKlfjg6158+a4urqSlJREeHh4hf1yc3MpKCjA0NCwVPuGDRsqXEalUtGmTRsiIiJYu3YtSUlJADRq1AiApKQk+vbtq+6/c+dOjeseMGAAsbGxtGjRAgsLC42X+ztN/3rF/usPftx/mPFvvISzQ4MnWpcQNUmNDzaVSsXatWsJCAggMDCQYcOG0aBBA65du0ZiYiL5+fksWbIEa2trOnfuzNKlS7Gzs6Nhw4ZERkby22+/lRrv6NGjTJo0ieDgYPVeU1RUFNnZ2eoQc3BwoEePHixatAhbW1scHR3ZsWMH+/eXffJBRebPn4+3tzddunRh0qRJuLm5cffuXU6ePElcXBw//PCDVt6fB/PWWri5SKiJWqPazGN7Gn369OHQoUPo6ekRGhqKv78/YWFhJCcn0717d3W/r776ik6dOjFlyhSGDh1Kfn4+W7duLTWWvb09jRs3ZsWKFbz00ksMHjyYpKQkIiMjS13Y2Lx5M76+vrzzzjsMHTqU4uJiVq5cqXHNjo6OJCQk0LlzZ+bOnYu/vz+jRo1i586d9O7d++nflP+6cfsupibGMm9N1Cpyr2gtUFRUpJ4GI0RtIMEmhFAc+TMuhFAcCTYhhOJIsAkhFEeCTQihOBJsQgjFkWATQiiOBJsQQnEk2IQQiiPBJoRQHAk2IYTiSLAJIRRHgk0IoTgSbEIIxZFgE0IojgSbEEJxJNiEEIojwSaEUBwJNiGE4kiwCSEUR4JNCKE4EmxCCMWRYBNCKI4EmxBCcSTYhBCKI8EmhFAcCTYhhOJIsAkhFOf/AdwAy42apMnpAAAAAElFTkSuQmCC\n",
+ "image/png": "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\n",
"text/plain": [
"