From 538f5f38430726cc1ff4f1b68999afdced6b1f51 Mon Sep 17 00:00:00 2001 From: Joseph Hellerstein Date: Fri, 19 Jan 2024 16:35:37 -0800 Subject: [PATCH] Include parameter checks; control parameters are kP, kI, kF, kD --- .../archive/Analysis-of-Hepatitus-B.ipynb | 683 ++++++++++++++++++ .../archive/siso_closed_loop_designer.py | 2 +- src/controlSBML/constants.py | 22 +- src/controlSBML/control_sbml.py | 127 ++-- src/controlSBML/siso_closed_loop_designer.py | 42 +- src/controlSBML/util.py | 57 +- tests/test_control_sbml.py | 46 +- tests/test_siso_closed_loop_designer.py | 4 +- todo.txt | 1 + 9 files changed, 847 insertions(+), 137 deletions(-) create mode 100644 examples/archive/Analysis-of-Hepatitus-B.ipynb diff --git a/examples/archive/Analysis-of-Hepatitus-B.ipynb b/examples/archive/Analysis-of-Hepatitus-B.ipynb new file mode 100644 index 0000000..8cbe216 --- /dev/null +++ b/examples/archive/Analysis-of-Hepatitus-B.ipynb @@ -0,0 +1,683 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "a4c67fb0-0b0d-46da-873f-73b0525b8d78", + "metadata": {}, + "source": [ + "# ANALYSIS OF IMMUNE RESPONSE TO HEPATITUS B" + ] + }, + { + "cell_type": "markdown", + "id": "60e744a2-8a3a-49b3-a97b-dd60911ce0c1", + "metadata": {}, + "source": [ + "The progression of the Hepatitus B viron infection is modelled in detail in \"Mathematical model of immune response to hepatitis B\n", + "Author links open overlay panelF\". Fatehi Chenar, Y.N. Kyrychko, K.B. Blyuss in the Journal of Theorectical Biology, June, 2018. The model involves several cell types with complex interactions between them. A key element of the model is that **refractory cells (R)** (cells that are resistant to Hepatitus B) increase in number during the course of the infection and following it. Here, the level of R cells can be explained by the number of CD8+ effector cells (``E``) Cells." + ] + }, + { + "cell_type": "markdown", + "id": "0a75f0b1-1864-443b-bb71-a7ee5d5b14bc", + "metadata": {}, + "source": [ + "\n", + "\"Markdown" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "44eb1429-8298-46be-811f-b132707b75d9", + "metadata": {}, + "outputs": [], + "source": [ + "from controlSBML import ControlSBML\n", + "\n", + "import control\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "import pandas as pd" + ] + }, + { + "cell_type": "markdown", + "id": "e3fbc880-28d5-4708-b14a-434fae5e786a", + "metadata": {}, + "source": [ + "# 1. Problem Statement" + ] + }, + { + "cell_type": "markdown", + "id": "c0fb6205-fd27-49f0-bd8e-d9f7439df0e8", + "metadata": {}, + "source": [ + "The biological problem we address is to show that ``R`` cells can be effectively regulated by ``E`` cells. That is, given a setpoint for ``R`` cells, we can addjust the level of ``E`` cells to achieve that setpoint.\n", + "* Regulate ``R`` to a setpoint\n", + "* Avoid oscillations" + ] + }, + { + "cell_type": "markdown", + "id": "a1ef151c-dbac-452d-b95f-ce5ff63cae0a", + "metadata": {}, + "source": [ + "# 2. System Definition" + ] + }, + { + "cell_type": "markdown", + "id": "7a5284a3-f0e6-4579-9a70-f91ebd634c58", + "metadata": {}, + "source": [ + "A system is defined by its inputs, outputs, and operating point. The latter refers to the range of inputs over which the system operates." + ] + }, + { + "cell_type": "markdown", + "id": "a6070214-e5cb-452d-bffe-0ebbebbf1bef", + "metadata": {}, + "source": [ + "Here is a plot of the floating species." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "2c398ec3-2b15-4717-9de5-5038b191139b", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "URL = \"https://www.ebi.ac.uk/biomodels/services/download/get-files/MODEL1911110001/4/FatehiChenar2018.xml\"\n", + "INPUT_NAME = \"E\"\n", + "OUTPUT_NAME = \"R\"\n", + "CTLSB = ControlSBML(URL, figsize=(5, 5), times=np.linspace(0, 10, 1000), markers=False,\n", + " save_path=\"data.csv\", input_names=[INPUT_NAME], output_names=[OUTPUT_NAME]) # Specify default value of options\n", + "_ = CTLSB.plotModel(figsize=(5,5), times=np.linspace(0, 10, 1000), markers=False, is_fixed_input_species=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "3bb4cbe7-3ae1-4918-a1e3-145e87cf33b9", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "// Created by libAntimony v2.13.2\n", + "function Function_for_Uninfected_To_Refractory_IFN(phi_1, T, F_1, F_2)\n", + " phi_1*T*(F_1 + F_2);\n", + "end\n", + "\n", + "Function_for_Uninfected_To_Refractory_IFN is \"Function_for_Uninfected_To_Refractory_IFN\"\n", + "\n", + "function Function_for_Uninfected_Death(d, T)\n", + " d*(1 - T);\n", + "end\n", + "\n", + "Function_for_Uninfected_Death is \"Function_for_Uninfected_Death\"\n", + "\n", + "function Function_for_Uninfected_Infection(beta, V, T)\n", + " beta*V*T;\n", + "end\n", + "\n", + "Function_for_Uninfected_Infection is \"Function_for_Uninfected_Infection\"\n", + "\n", + "function Function_for_Infected_Killing_Immune(mu_1, s_1, F_1, s_2, F_2, N, mu_2, s_1_prime, s_2_prime, E, I)\n", + " (mu_1*(1 + s_1*F_1 + s_2*F_2)*N + mu_2*(1 + s_1_prime*F_1 + s_2_prime*F_2)*E)*I;\n", + "end\n", + "\n", + "Function_for_Infected_Killing_Immune is \"Function_for_Infected_Killing_Immune\"\n", + "\n", + "function Function_for_IFN_AB_Production_Infected(p_1, I)\n", + " p_1*I;\n", + "end\n", + "\n", + "Function_for_IFN_AB_Production_Infected is \"Function_for_IFN_AB_Production_Infected\"\n", + "\n", + "function Function_for_HBV_S_CTL_Proliferation_Antigen(alpha, I, E)\n", + " alpha*I*E;\n", + "end\n", + "\n", + "Function_for_HBV_S_CTL_Proliferation_Antigen is \"Function_for_HBV_S_CTL_Proliferation_Antigen\"\n", + "\n", + "function Function_for_Antibody_Turnover(d_a, A)\n", + " d_a*(1 - A);\n", + "end\n", + "\n", + "Function_for_Antibody_Turnover is \"Function_for_Antibody_Turnover\"\n", + "\n", + "function Function_for_IFN_G_Production_CTLs(p_2, E)\n", + " p_2*E;\n", + "end\n", + "\n", + "Function_for_IFN_G_Production_CTLs is \"Function_for_IFN_G_Production_CTLs\"\n", + "\n", + "function Function_for_NK_Cells_Proliferaton(N)\n", + " N*(1 - N);\n", + "end\n", + "\n", + "Function_for_NK_Cells_Proliferaton is \"Function_for_NK_Cells_Proliferaton\"\n", + "\n", + "function Function_for_HBV_S_CTL_Proliferation(r_e, E)\n", + " r_e*E*(1 - E);\n", + "end\n", + "\n", + "Function_for_HBV_S_CTL_Proliferation is \"Function_for_HBV_S_CTL_Proliferation\"\n", + "\n", + "function Function_for_Antibody_Production_Virus(q, V)\n", + " q*V;\n", + "end\n", + "\n", + "Function_for_Antibody_Production_Virus is \"Function_for_Antibody_Production_Virus\"\n", + "\n", + "function Function_for_Virus_Production(I, p, s_3, F_1, s_4, F_2)\n", + " I*p/(1 + s_3*F_1 + s_4*F_2);\n", + "end\n", + "\n", + "Function_for_Virus_Production is \"Function_for_Virus_Production\"\n", + "\n", + "function Function_for_NK_Cells_Production_IFN(q_1, F_1, q_2, F_2, N)\n", + " (q_1*F_1 + q_2*F_2)*N;\n", + "end\n", + "\n", + "Function_for_NK_Cells_Production_IFN is \"Function_for_NK_Cells_Production_IFN\"\n", + "\n", + "function Function_for_Infected_To_Refractory(psi_2, I, F_2)\n", + " psi_2*I*F_2;\n", + "end\n", + "\n", + "Function_for_Infected_To_Refractory is \"Function_for_Infected_To_Refractory\"\n", + "\n", + "function Function_for_IFN_G_Production_NK(p_3, N)\n", + " p_3*N;\n", + "end\n", + "\n", + "Function_for_IFN_G_Production_NK is \"Function_for_IFN_G_Production_NK\"\n", + "\n", + "\n", + "model *FatehiChenar2018___Mathematical_model_of_immune_response_to_hepatitis_B()\n", + "\n", + " // Compartments and Species:\n", + " compartment compartment_;\n", + " species T in compartment_, I in compartment_, F_1 in compartment_, F_2 in compartment_;\n", + " species N in compartment_, E in compartment_, R in compartment_, V in compartment_;\n", + " species A in compartment_;\n", + "\n", + " // Reactions:\n", + " Uninfected_Death: => T; compartment_*Function_for_Uninfected_Death(d, T);\n", + " Uninfected_Infection: T => I; compartment_*Function_for_Uninfected_Infection(beta, V, T);\n", + " Refractory_To_Uninfected: R => T; compartment_*rho*R;\n", + " Uninfected_To_Refractory_IFN: T => R; compartment_*Function_for_Uninfected_To_Refractory_IFN(psi_1, T, F_1, F_2);\n", + " Infected_Death: I => ; compartment_*delta*I;\n", + " Infected_Killing_Immune: I => ; compartment_*Function_for_Infected_Killing_Immune(mu_1, s_1, F_1, s_2, F_2, N, mu_2, s_1_prime, s_2_prime, E, I);\n", + " IFN_AB_Production_Infected: => F_1; compartment_*Function_for_IFN_AB_Production_Infected(p_1, I);\n", + " IFN_AB_Degradation: F_1 => ; compartment_*delta_1*F_1;\n", + " IFN_G_Production_CTLs: => F_2; compartment_*Function_for_IFN_G_Production_CTLs(p_2, E);\n", + " IFN_G_Production_NK: => F_2; compartment_*Function_for_IFN_G_Production_NK(p_3, N);\n", + " IFN_G_Degradation: F_2 => ; compartment_*delta_2*F_2;\n", + " NK_Cells_Proliferaton: => N; compartment_*Function_for_NK_Cells_Proliferaton(N);\n", + " NK_Cells_Production_IFN: => N; compartment_*Function_for_NK_Cells_Production_IFN(q_1, F_1, q_2, F_2, N);\n", + " HBV_S_CTL_Proliferation: => E; compartment_*Function_for_HBV_S_CTL_Proliferation(r_e, E);\n", + " HBV_S_CTL_Proliferation_Antigen: => E; compartment_*Function_for_HBV_S_CTL_Proliferation_Antigen(alpha, I, E);\n", + " Infected_To_Refractory: I => R; compartment_*Function_for_Infected_To_Refractory(psi_2, I, F_2);\n", + " Virus_Production: => V; compartment_*Function_for_Virus_Production(I, p, s_3, F_1, s_4, F_2);\n", + " Virus_Clearance_Natural: V => ; compartment_*c*V;\n", + " Virus_Clearance_Antibodies: V + A => ; compartment_*k*V*A;\n", + " Antibody_Turnover: => A; compartment_*Function_for_Antibody_Turnover(d_a, A);\n", + " Antibody_Production_Virus: => A; compartment_*Function_for_Antibody_Production_Virus(q, V);\n", + "\n", + " // Species initializations:\n", + " T = 0.9;\n", + " I = 0;\n", + " F_1 = 0;\n", + " F_2 = 0;\n", + " N = 0.1;\n", + " E = 0.2;\n", + " R = 0;\n", + " V = 0.4;\n", + " A = 0.1;\n", + "\n", + " // Compartment initializations:\n", + " compartment_ = 1;\n", + "\n", + " // Variable initializations:\n", + " d = 0.003;\n", + " beta = 7;\n", + " rho = 5;\n", + " psi_1 = 14;\n", + " delta = 0.56;\n", + " mu_1 = 5;\n", + " s_1 = 1.5;\n", + " s_2 = 0.6;\n", + " mu_2 = 0.14;\n", + " s_1_prime = 1.9;\n", + " s_2_prime = 2;\n", + " psi_2 = 21;\n", + " p_1 = 1;\n", + " delta_1 = 4.9;\n", + " p_2 = 0.5;\n", + " p_3 = 3;\n", + " delta_2 = 5.16;\n", + " q_1 = 0.8;\n", + " q_2 = 0.6;\n", + " r_e = 0.5;\n", + " alpha = 1;\n", + " p = 20;\n", + " s_3 = 1.7;\n", + " s_4 = 1;\n", + " c = 0.67;\n", + " k = 8;\n", + " d_a = 0.332;\n", + " q = 5;\n", + "\n", + " // Other declarations:\n", + " const compartment_, d, beta, rho, psi_1, delta, mu_1, s_1, s_2, mu_2, s_1_prime;\n", + " const s_2_prime, psi_2, p_1, delta_1, p_2, p_3, delta_2, q_1, q_2, r_e;\n", + " const alpha, p, s_3, s_4, c, k, d_a, q;\n", + "\n", + " // Unit definitions:\n", + " unit volume = 1e-3 litre;\n", + " unit substance = 1e-3 mole;\n", + "\n", + " // Display Names:\n", + " compartment_ is \"compartment\";\n", + "\n", + " // CV terms:\n", + " compartment_ hypernym \"http://identifiers.org/ncit/C13041\"\n", + " T identity \"http://identifiers.org/cl/CL:0000182\"\n", + " I part \"http://identifiers.org/ncit/C14215\"\n", + " I identity \"http://identifiers.org/bto/BTO:0000152\"\n", + " F_1 identity \"http://identifiers.org/pr/PR:000025848\"\n", + " F_2 identity \"http://identifiers.org/pr/PR:000024990\"\n", + " N identity \"http://identifiers.org/cl/CL:0000623\"\n", + " E hypernym \"http://identifiers.org/cl/CL:0000910\"\n", + " R identity \"http://identifiers.org/cl/CL:0000182\"\n", + " R property \"http://identifiers.org/ncit/C38014\"\n", + " V identity \"http://identifiers.org/ncit/C14215\"\n", + " A identity \"http://identifiers.org/ncit/C62795\"\n", + " Uninfected_Death identity \"http://identifiers.org/go/GO:0008219\"\n", + " Uninfected_Infection hypernym \"http://identifiers.org/go/GO:0046718\"\n", + " Refractory_To_Uninfected property \"http://identifiers.org/efo/0001460\"\n", + " Refractory_To_Uninfected property \"http://identifiers.org/ncit/C75958\"\n", + " Uninfected_To_Refractory_IFN property \"http://identifiers.org/ncit/C75958\"\n", + " Uninfected_To_Refractory_IFN property \"http://identifiers.org/ncit/C20493\"\n", + " Uninfected_To_Refractory_IFN property \"http://identifiers.org/ncit/C38014\"\n", + " Infected_Death identity \"http://identifiers.org/go/GO:0008219\"\n", + " Infected_Killing_Immune property \"http://identifiers.org/go/GO:0006955\"\n", + " Infected_Killing_Immune property \"http://identifiers.org/go/GO:0001906\"\n", + " IFN_AB_Production_Infected identity \"http://identifiers.org/go/GO:0032606\"\n", + " IFN_AB_Degradation hypernym \"http://identifiers.org/sbo/SBO:0000179\"\n", + " IFN_G_Production_CTLs hypernym \"http://identifiers.org/go/GO:0032609\"\n", + " IFN_G_Production_NK hypernym \"http://identifiers.org/go/GO:0032609\"\n", + " IFN_G_Degradation hypernym \"http://identifiers.org/sbo/SBO:0000179\"\n", + " NK_Cells_Proliferaton identity \"http://identifiers.org/go/GO:0001787\"\n", + " NK_Cells_Production_IFN hypernym \"http://identifiers.org/go/GO:0032819\"\n", + " HBV_S_CTL_Proliferation hypernym \"http://identifiers.org/go/GO:0045065\"\n", + " HBV_S_CTL_Proliferation_Antigen hypernym \"http://identifiers.org/go/GO:0045065\"\n", + " Infected_To_Refractory property \"http://identifiers.org/ncit/C38014\"\n", + " Infected_To_Refractory property \"http://identifiers.org/ncit/C75958\"\n", + " Virus_Production hypernym \"http://identifiers.org/go/GO:0046753\"\n", + " Virus_Clearance_Natural hypernym \"http://identifiers.org/sbo/SBO:0000179\"\n", + " Virus_Clearance_Antibodies property \"http://identifiers.org/ncit/C62795\"\n", + " Virus_Clearance_Antibodies property \"http://identifiers.org/ncit/C95533\"\n", + " Antibody_Turnover hypernym \"http://identifiers.org/go/GO:0048305\"\n", + " Antibody_Production_Virus identity \"http://identifiers.org/go/GO:0048305\"\n", + "end\n", + "\n", + "FatehiChenar2018___Mathematical_model_of_immune_response_to_hepatitis_B is \"FatehiChenar2018 - Mathematical model of immune response to hepatitis B\"\n", + "\n", + "FatehiChenar2018___Mathematical_model_of_immune_response_to_hepatitis_B description \"http://identifiers.org/pubmed/29574141\"\n", + "FatehiChenar2018___Mathematical_model_of_immune_response_to_hepatitis_B origin \"http://identifiers.org/doi/10.1109/ISB.2012.6314119\"\n", + "FatehiChenar2018___Mathematical_model_of_immune_response_to_hepatitis_B origin \"http://identifiers.org/pubmed/8599114\"\n", + "FatehiChenar2018___Mathematical_model_of_immune_response_to_hepatitis_B origin \"http://identifiers.org/pubmed/8633078\"\n", + "FatehiChenar2018___Mathematical_model_of_immune_response_to_hepatitis_B model_entity_is \"http://identifiers.org/biomodels.db/MODEL1911110001\",\n", + " \"http://identifiers.org/biomodels.db/BIOMD0000000848\"\n", + "FatehiChenar2018___Mathematical_model_of_immune_response_to_hepatitis_B property \"http://identifiers.org/go/GO:0006955\"\n", + "FatehiChenar2018___Mathematical_model_of_immune_response_to_hepatitis_B property \"http://identifiers.org/mamo/MAMO_0000046\"\n", + "FatehiChenar2018___Mathematical_model_of_immune_response_to_hepatitis_B property \"http://identifiers.org/ncit/C3097\"\n", + "\n" + ] + } + ], + "source": [ + "print(CTLSB.getAntimony())" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "3751371d-9e75-4628-ab29-1424b884e1d2", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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ue0LL7wgYmJihBDSbcgBiM2bNzf63TfddJOYN2+exbxPP/1UBAUFCSGE2Lhxo1AqlZfc3vyc+++/X9x8880W855++mnRu3dv8+vOnTuLBx54wPzaZDIJf39/sXTpUiGEEB988IHo1KmTqKurM7dZunSpACAyMzOFEEKMGjVKTJ48udEaiKh18cgIkZ3o16+f+blKpUKnTp3Qt29f87yAgAAAwOnTp636XB8fH0yaNAnJyckYNWoU3n33XRQWFprf37NnD15++WVzPxM3Nzc89NBDKCwsRG1tLXbv3o3Q0FB079690c8/cOAAhg4dajFv6NChOHz4MIxGY6Prp1AoEBgYaF6XAwcOoF+/fnBycjK3SUxMtPjMadOmYfXq1YiNjcUzzzyDbdu2WbUdiKj5GEaI7ISjo6PFa4VCYTHv3GkVk8lk9WevWLECaWlpGDJkCNasWYPu3bvj77//BiCdInnppZewe/du85SVlYXDhw/DyckJzs7O17BW5zW2ftasy4gRI5CXl4cnnngCp06dwk033XTJqRwiah0MI0TUIvr374/Zs2dj27ZtiI6OxhdffAEAGDBgAHJyctCtW7dLJqVSiX79+uHkyZM4dOhQo5/bq1cvbN261WLe1q1b0b17d3O/kqvp1asX9u7di/r6evO8c2HpQn5+fpg4cSI+++wzLFq06JJOsETUOhhGiOia5ObmYvbs2UhLS0NeXh5++eUXHD58GL169QIAzJ07F5988gleeukl7N+/HwcOHMDq1avx/PPPAwCGDRuGG264AXfffTc2bdqE3Nxc/Pzzz9iwYQMA4Mknn0RqaipeeeUVHDp0CKtWrcLixYutOmpx//33Q6FQ4KGHHkJ2djbWr1+Pt956y6LN3Llz8eOPP+LIkSPYv38/1q5da14HImpdDCNEdE1cXFxw8OBB3H333ejevTsefvhhTJ8+HY888ggAIDk5GWvXrsUvv/yCQYMGYfDgwXjnnXfQuXNn82d8++23GDRoEMaOHYvevXvjmWeeMfcHGTBgAL766iusXr0a0dHRmDt3Ll5++WVMmjSpyTW6ubnhf//7H7KystC/f38899xzeP311y3aqNVqzJ49G/369cMNN9wAlUqF1atXX/sGIqKrUgghhNxFEBERkf3ikREiIiKSFcMIERERyYphhIiIiGTFMEJERESyYhghIiIiWTGMEBERkawYRoiIiEhWDCNEREQkK4YRIiIikhXDCBEREcmKYYSIiIhk9f8BYnJdsbiplUAAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "ts = CTLSB.plotModel(is_plot=False)\n", + "df = ts[[INPUT_NAME, OUTPUT_NAME]]\n", + "df.plot()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "baf834a5-5336-41f3-82ea-936931de7f9b", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "TIMES = np.linspace(0, 40000, 10000)\n", + "_ = CTLSB.plotStaircaseResponse(initial_value=0, num_step=3, final_value=10, times=TIMES)" + ] + }, + { + "cell_type": "markdown", + "id": "6b230c61-9cf9-43f6-b24a-cd139749e074", + "metadata": {}, + "source": [ + "# 3. System Identification" + ] + }, + { + "cell_type": "markdown", + "id": "edd3f772-e8fe-4738-ad3c-7c707dc2c86e", + "metadata": {}, + "source": [ + "System identification describes the system as a transfer function for the operating point specified in system definition. In our system, the input is ``pIRS`` and the output is ``pmTORC1``. ``pIRS`` is varied over the operating region of [20, 25]. The method ``plotTransferFunctionFit`` estimates to transfer function and plots the fit. It returns a Timeseries (a dataframe with the data plotted) and an AntimonyBuilder (the Antimony code run to produce the fitting data)." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "96a29907-4b17-4155-9411-7208d90bc31f", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "_ = CTLSB.plotTransferFunctionFit(num_numerator=2, num_denominator=3, initial_value=0, final_value=10,\n", + " times=TIMES)" + ] + }, + { + "cell_type": "markdown", + "id": "1377d100-84c6-4fa4-b05e-cb6aaa1ebc36", + "metadata": {}, + "source": [ + "We can obtain the transfer function object." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "5c794ff7-0209-4ec9-868c-a838b576ce92", + "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$$\\frac{0.03829 s + 0.0924}{0.1349 s + 0.1073}$$" + ], + "text/plain": [ + "TransferFunction(array([0.03828729, 0.09239841]), array([0.13489993, 0.10725159]))" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "TRANSFER_FUNCTION = CTLSB.getOpenLoopTransferFunction()\n", + "TRANSFER_FUNCTION" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "4a188fb3-3c76-486e-b8c7-ca3ef8d7f3d4", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(array([-0.79504556+0.j]), array([-2.41329179+0.j]))" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "TRANSFER_FUNCTION.poles(), TRANSFER_FUNCTION.zeros()" + ] + }, + { + "cell_type": "markdown", + "id": "7d5f09e4-76b4-4efb-9434-4543ec764276", + "metadata": {}, + "source": [ + "This suggests that all closed loop poles are real and the branch from -0.795 to -2.4132. Thus, a high gain proportional controller will be stable and unbiased." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "abc3c44b-2f22-4b14-b429-10a23cf937b1", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.8960990303848614" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "TRANSFER_FUNCTION.bandwidth()" + ] + }, + { + "cell_type": "markdown", + "id": "aadbde66-84fe-4fdb-bf5c-fd2aed984838", + "metadata": {}, + "source": [ + "# 4. Testbed Construction and Design" + ] + }, + { + "cell_type": "markdown", + "id": "b9121547-3d8f-49e5-b722-497b87a42f6d", + "metadata": {}, + "source": [ + "The nature of this system greatly simplifies design. First, we analyze the root locus plot. The is one pole and one zero. We see that a proportional controller is always stable and non-oscillating." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "05154ae4-e453-43fe-80f5-27525d296da4", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlAAAAHHCAYAAABwaWYjAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABEFElEQVR4nO3deXgUZbr38V93yMKWBMxGJOwcIa9IHJAYxAEkkiA44CgCooEMgiLIgaBAUFlVFGaQYVGUke0MKoKDh1EnQwwgo0TAII4goCgYBBKWkLQEzdb1/pFDjy0B0t1JN01/P9dVl+mq56m6q8D0TdVTz20yDMMQAAAAqs3s6QAAAAC8DQkUAACAg0igAAAAHEQCBQAA4CASKAAAAAeRQAEAADiIBAoAAMBBJFAAAAAOIoECAABwEAkUAACAg0igALjVypUrZTKZbEudOnV0/fXXa/jw4Tp27FitHvurr77SjBkzdOTIkWq1nzFjhkwmk06fPl2rcQHwPnU8HQAA3zRr1iy1bNlSP//8sz799FOtXLlSH3/8sfbu3augoKBaOeZXX32lmTNnqkePHmrRokWtHAOAbyCBAuARffr0UefOnSVJDz/8sMLCwvTiiy9q48aNuv/++z0cHQBcHo/wAFwVbr/9dknSt99+a7d+8+bNuv3221W/fn2Fhoaqf//+2r9//0X9P//8c/Xp00fBwcFq0KCBevXqpU8//dS2feXKlRo4cKAkqWfPnrZHiFu3bnU59urGeOzYMY0YMULR0dEKDAxUy5YtNXr0aJWWlkr6zyPDX7vw2POXjx4/++wzJSUlKSwsTHXr1lXLli31hz/8weVzAVA93IECcFW4kBw0atTItu7DDz9Unz591KpVK82YMUM//fSTFi1apNtuu027d++2PYbbt2+fbr/9dgUHB2vSpEny9/fXq6++qh49euijjz5SfHy8fvvb32rcuHFauHChpk6dqvbt20uS7b/Oqm6Mx48fV5cuXVRYWKhRo0apXbt2OnbsmNavX6/z588rICCg2sc8efKkevfurfDwcE2ZMkWhoaE6cuSI/va3v7l0LgAcYACAG61YscKQZHz44YfGqVOnjKNHjxrr1683wsPDjcDAQOPo0aO2tnFxcUZERIRx5swZ27ovvvjCMJvNRkpKim3dgAEDjICAAOPbb7+1rTt+/LjRsGFD47e//a1t3bp16wxJxpYtW6oV6/Tp0w1JxqlTpy7ZproxpqSkGGaz2di1a9dF+7BarXbH+7UL1+zw4cOGYRjGhg0bDElV7guAe/AID4BHJCYmKjw8XDExMbrvvvtUv359bdy4UU2bNpUknThxQnv27NHw4cPVuHFjW7+bbrpJd955pz744ANJUkVFhTZt2qQBAwaoVatWtnZNmjTRAw88oI8//lgWi6VWzqG6MVqtVr377ru6++67beO+fqmqx3aXExoaKkl67733VFZW5vwJAHAaCRQAj1iyZIkyMzO1fv163XXXXTp9+rQCAwNt27///ntJ0g033HBR3/bt2+v06dMqLi7WqVOndP78+Uu2s1qtOnr0aK2cgyMxWiwW3XjjjTVy3O7du+vee+/VzJkzFRYWpv79+2vFihUqKSmpkf0DuDISKAAe0aVLFyUmJuree+/Vxo0bdeONN+qBBx7QuXPnPB2ax1zqTlRFRcVF7davX6/s7GyNHTtWx44d0x/+8Ad16tTJp68f4E4kUAA8zs/PT3PmzNHx48e1ePFiSVLz5s0lSQcPHryo/YEDBxQWFqb69esrPDxc9erVu2Q7s9msmJgYSY4/KrsSR2IMDg7W3r17L7u/CwPoCwsL7dZfuNP1a7feequee+45ffbZZ1qzZo327dunt956y4kzAeAoEigAV4UePXqoS5cuWrBggX7++Wc1adJEcXFxWrVqlV1CsXfvXm3atEl33XWXpMrkq3fv3vrf//1fu9f88/Pz9cYbb6hbt24KDg6WJNWvX1/SxQmKs6obo9ls1oABA/T3v/9dn3322UX7MQxDktS6dWtJ0rZt22zbiouLtWrVKrv2Z8+etfW5IC4uTpJ4jAe4icn49f+FAFCLVq5cqdTUVO3ateuiAdXr16/XwIED9corr+jRRx+1TRHQpk0bjRgxwjZFQHl5uXJyctSyZUtJldMYxMfHKzQ0VI899pjq1KmjV199VceOHbNNYyBJeXl5atq0qW655RY9+uijCgwM1B133KGIiIgqY50xY4Zmzpyp9PR01atXz26b2WzW1KlTqx3jsWPH1LlzZ1ksFo0aNUrt27fXiRMntG7dOn388ccKDQ1VWVmZ2rRpo/Pnz+vJJ5+Un5+fli9frrp16yonJ0eHDx9WixYttGDBAr388su655571Lp1a/34449atmyZbVD7hWMCqEWe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nVdTXEminBpEfs8991Q5/bnJZFJQUJDatGmjBx54QDfccIPTgVUlLS1Nw4YNU+fOndWlSxctWLBAxcXFtmfdKSkpuv766zVnzhxJ0n//93+re/fu+tOf/qS+ffvqrbfe0meffabXXnvNFu/48eP17LPPqm3btmrZsqWeeeYZRUdHa8CAATUaOwAANSL2d9L9q6WMyfZTGQRHVyZPsb/zXGxOqrAaVb5td+FzhbV2JgxwewIVEhKid999V6GhoerUqZMkaffu3SosLFTv3r21du1avfjii8rKytJtt93mdHC/NmjQIJ06dUrTpk1TXl6e4uLilJGRYRsEnpuba3cxunbtqjfeeENPP/20pk6dqrZt2+rdd9/VjTfeaGszadIkFRcXa9SoUSosLFS3bt2UkZFhGxwJAMBVJ/Z3Uru+0vfbpXP5UoNIqXlXr7vzdMGEO//rkttqawoDSSorK3O6r1PzQE2ZMkUWi0WLFy+2JSxWq1X//d//rYYNG+q5557To48+qn379unjjz92OjhvwTxQAAB4n6KiIoWGhjr1/e1UAhUeHq5PPvlE//Vf9hnj119/ra5du+r06dP68ssvdfvtt6uwsNDR3XsdEigAALxPYWGhGjVq5NT3t1MP/8rLy3XgwIGL1h84cMD2amJQUFCV46QAAACuBhdyFmc4NQbqoYce0ogRIzR16lTbZHi7du3S888/r5SUFEnSRx99pP/3//6f04EBAADUpl9Ob+AopxKol156SZGRkZo7d65tnqXIyEhNmDBBkydPliT17t1bycnJTgcGAABQm1y5A+VyMeELdeB8eewPY6AAAPA+Z8+eVePGjT1TTJiEAQAAeKNfzlzuKKcTqPXr1+vtt99Wbm6uSktL7bbt3r3b6YAAAADcoby83Om+Tr2Ft3DhQqWmpioyMlKff/65unTpouuuu07fffedrXI7AADA1cyVmcid6vnyyy/rtdde06JFixQQEKBJkyYpMzNT48aNU1FRkdPBAAAAuIvbE6jc3Fx17dpVklS3bl39+OOPkiqnN3jzzTedDgYAAMBdXCnl4lQCFRUVpYKCAklSs2bN9Omnn0qSDh8+LBdf6gMAAHCLOnWcf5fOqQTqjjvu0MaNGyVJqampmjBhgu68804NGjRI99xzj9PBAAAAeAOn5oGyWq2yWq22zO2tt97S9u3b1bZtWz3y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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "_ = control.rlocus(TRANSFER_FUNCTION, xlim=[-15, 0], grid=False)" + ] + }, + { + "cell_type": "markdown", + "id": "8e27d588-5748-45bc-a4c3-32fdfafcd4d4", + "metadata": {}, + "source": [ + "Now, we analyze the settling times for different setpoints and gains." + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "id": "151697b6-4a99-40a7-b2b0-affe1b21bcf0", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAARUAAADvCAYAAADckEApAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA3QUlEQVR4nO2deVxU5f7HPzMDDAzMMLILCKLiAu7mQikuIWA3U9NcUzLTVLLrcrXrrcQ2KWn53euaVm6VmqlZ5pq75YaKiiCZ4YYCIrLDADPf3x/HGRg2QQYODt/363VeM+d5vuc533M48+H7LOd5JEREYBiGMRFSsR1gGMa8YFFhGMaksKgwDGNSWFQYhjEpLCoMw5gUFhWGYUwKiwrDMCaFRYVhGJPCosIwjElhUakjDh8+DIlEgsOHD4vtiklZuHAhJBIJ0tLSxHaFaaA0KlH5448/sHDhQmRkZIjtSpXcuXMHCxcuRExMTK3K2bZtG0aNGoUWLVpAoVCgTZs2mDNnToO//qpYsWIFXnrpJXh5eUEikeCVV16p1DYjIwNTpkyBs7MzbG1t0b9/f5w7d65C259//hldu3aFtbU1vLy8EBERgeLi4lqV2WihRkRUVBQBoMTExDo/l1arpfz8fNJqtTU+9syZMwSA1qxZUysfHB0dqUOHDvTuu+/S6tWr6c033yQrKytq27Yt5eXlPVaZERERBIDu3btXK98eF29vb3JwcKDQ0FCysLCgsLCwCu20Wi09/fTTZGtrSwsXLqSlS5eSn58fKZVK+vPPP41sd+3aRRKJhPr370+rVq2iGTNmkFQqpalTpz52mY0ZFpUGiKlE5dChQ+XS1q1bRwBo9erVj1Wm2KJy/fp10ul0RERka2tbqahs3ryZANCWLVsMaampqaRWq2nMmDFGtn5+ftSpUycqKioypL399tskkUgoPj7+scpszDR4UcnKyqJ//vOf5O3tTVZWVuTs7ExBQUF09uxZI7uTJ09SSEgIqVQqsrGxocDAQDp+/LghX/9jKLvpBQYAhYeH07fffkutW7cmuVxOXbt2pSNHjpTz6dy5cxQaGkpKpZJsbW1pwIABdOLECSObQ4cOEQCjH3bfvn3J39+fLl++TP369SMbGxtyd3enTz75pNxxZTe9wOTm5lJ8fPxj/6izsrIIAM2ePfuxjq9IVK5fv04tW7Ykf39/Sk5ONrrW6OhoCggIIGtra2revDmtWLGiXJk3btww+vFWl6pE5aWXXiJXV9dykeKUKVNIoVBQQUEBERFdvnyZANCyZcuM7JKSkggAffDBBzUus7HT4NtUpk6dihUrVmD48OFYvnw5/vWvf8HGxgbx8fEGm4MHDyIwMBBZWVmIiIjAokWLkJGRgQEDBuD06dMAgBdffBFjxowBAHzxxRfYsGEDNmzYAGdnZ0M5R44cwcyZM/Hyyy/j/fffx/379xEaGorY2FiDzeXLl9GnTx9cuHAB8+bNw7vvvovExET069cPp06deuT1PHjwAKGhoejUqRM+++wztG3bFm+99RZ2794NAGjXrh3ef/99AMCUKVMMfgYGBgIATp8+jXbt2mHp0qWPdT+Tk5MBAE5OTo91fFmuXbuGwMBAKJVKHD58GK6uroa8Bw8e4LnnnkO3bt2wePFieHp6Ytq0afjmm2+MypgwYQLatWtnEn/0nD9/Hl27doVUavyI9+jRA3l5efjzzz8NdgDw1FNPGdm5u7vD09PTkF+TMhs9Yqvao7C3t6fw8PBK83U6Hfn6+lJISIghLCYiysvLIx8fHxo4cKAhrarqDx5GBNHR0Ya0GzdukLW1NQ0bNsyQNnToULKysqJr164Z0u7cuUNKpZICAwMNaZVFKgBo/fr1hjSNRkNubm40fPhwQ1pV1R99uREREZXek6qYNGkSyWSyx24DKB2pxMfHk7u7O3Xv3p3S09ON7PTX+tlnnxnSNBoNde7cmVxcXKiwsLCcbU2pKlKxtbWlV199tVz6r7/+SgBoz549RFTyTNy8ebOcbffu3alXr141LrOx0+AjFbVajVOnTuHOnTsV5sfExODq1asYO3Ys7t+/j7S0NKSlpSE3NxfPPvssjh49Cp1OV61zBQQEoFu3boZ9Ly8vDBkyBHv37oVWq4VWq8W+ffswdOhQtGjRwmDXtGlTjB07FsePH0dWVlaV57Czs8PLL79s2LeyskKPHj3w999/V8vHfv36gYiwcOHCatmX5vvvv8fXX3+NOXPmwNfXt8bHlyY2NhZ9+/ZF8+bN8dtvv6FJkyblbCwsLPD6668b9q2srPD6668jNTUVZ8+eNaQfPnwYZOK5wvLz8yGXy8ulW1tbG/JLf1Zmq8+vSZmNnQYvKosXL0ZsbCyaNWuGHj16YOHChUY/wKtXrwIAwsLC4OzsbLR99dVX0Gg0yMzMrNa5KvqhtW7dGnl5ebh37x7u3buHvLw8tGnTppxdu3btoNPpcOvWrSrP4enpCYlEYpTWpEkTPHjwoFo+Pi7Hjh3DpEmTEBISgo8++qjW5Q0ePBhKpRJ79+6FSqWq0Mbd3R22trZGaa1btwYAXL9+vdY+VIWNjQ00Gk259IKCAkN+6c/KbPX5NSmzsdPgRWXkyJH4+++/sWTJEri7uyMqKgr+/v6GNgh9FBIVFYX9+/dXuNnZ2Yl5CUbIZLIK0039n7o0Fy5cwAsvvID27dvjxx9/hIWFRa3LHD58OK5du4bvvvvOBB6anqZNm+Lu3bvl0vVp7u7uBrvS6WVt9XY1KbOxU/unqx5o2rQppk+fjunTpyM1NRVdu3bFRx99hEGDBqFly5YAAJVKhaCgoCrLKRshlEUf9ZTmzz//hEKhMDToKhQKJCQklLO7cuUKpFIpmjVrVt3Lemw/a8K1a9cQGhoKFxcX7Nq1y2QCGxUVBQsLC0yfPh1KpRJjx44tZ3Pnzh3k5uYaRSv6xszmzZubxI/K6Ny5M44dOwadTmfUsHrq1CkoFApDxNS5c2cAQHR0NHr06GHk++3btzFlypQal9nYadCRilarLVd1cXFxgbu7uyEM7datG1q2bIlPP/0UOTk55cq4d++e4bv+4a5sROmJEyeMRkfeunULO3bsQHBwMGQyGWQyGYKDg7Fjxw6j8D0lJQXff/89evfuXWlVoCZU5WdeXh6uXLlSrWHyycnJCA4OhlQqxd69e416umqLRCLBqlWrMGLECISFheHnn38uZ1NcXIwvv/zSsF9YWIgvv/wSzs7ORm1XN2/exJUrV0zmGwCMGDECKSkp2LZtmyEtLS0NW7ZsweDBgw1tI/7+/mjbti1WrVoFrVZrsF2xYgUkEglGjBhR4zIbOw06UsnOzoanpydGjBiBTp06wc7ODr/99hvOnDmDzz77DAAglUrx1VdfYdCgQfD398fEiRPh4eGBpKQkHDp0CCqVCr/88gsAGB7kt99+G6NHj4alpSUGDx5s+BG3b98eISEhePPNNyGXy7F8+XIAwHvvvWfw6cMPP8T+/fvRu3dvTJ8+HRYWFvjyyy+h0WiwePFik1x3y5YtoVarsXLlSiiVStja2qJnz57w8fHB6dOn0b9/f0RERDyysTY0NBR///035s2bh+PHj+P48eOGPFdXVwwcONCw/8orr2DdunVITEysdhQhlUrx7bffYujQoRg5ciR27dqFAQMGGPLd3d3xySef4Pr162jdujU2b96MmJgYrFq1CpaWlga7CRMm4MiRI9WqAv7yyy+4cOECAKCoqAgXL17Ehx9+CAB44YUX0LFjRwCCAPTq1QsTJ05EXFwcnJycsHz5cmi1WqO/JyBEXS+88AKCg4MxevRoxMbGYunSpXjttdeMurprUmajRtzOp6rRaDQ0d+5c6tSpk2GgWadOnWj58uXlbM+fP08vvvgiOTo6klwuJ29vbxo5ciQdOHDAyO6DDz4gDw8PkkqllQ5+8/X1JblcTl26dKlwVOq5c+coJCSE7OzsSKFQUP/+/emPP/4wsqlq8FtZwsLCyNvb2yhtx44d5OfnRxYWFkbdyzXpUkYFg+j0W9++fY1shw8fTjY2NvTgwYMqy6xo8FteXh717duX7Ozs6OTJk0bXWnrwm7e3Ny1durRcmTXpUg4LC6v0msp2waenp9OkSZPI0dGRFAoF9e3bl86cOVNhudu3b6fOnTuTXC4nT09Peuedd4y6vR+nzMaKhIjX/QGEcD48PPyxB5U96bi6umLChAmIiooySXn9+vVDWlqa0cBBpnHQoNtUmPrh8uXLyM/Px1tvvSW2K4wZ0KDbVJj6wd/f/5GD9himunCkwjCMSRG1TUWn1eLSsmW4vnMnCtLSYOPiAp8hQ9B+6lSTjtVgGKb+ELX6E//11/hr82b0WrQI9q1aIT02FiffeQdWSiXalHo/hmGYJwdRReVeTAw8BgyAR9++AAA7Dw/c2LUL9y9dEtMthmFqgaii4ty5M/7asgVZ169D1bw5Hly5gnvnz6PLvHkV2ms0GqMXuoqLi5GYkABnD49yc1wwjCkhnQ65KSnw7dIFMhO8O2XOiHp3/F57DUU5Odj5/POQyGQgrRad/vlP+Dz/fIX2kZGRRiMXrQAU1pOvDAMA8adPo2337mK70aARtaH2+q5diPnsM3SeMwfqVq3w4MoVnP34Y3SdNw8thg4tZ182Ukm7cwct27XDxehoNCk14xjDmJqcu3fh3qMHdDduQO3lJbY7DRpRI5WYzz6D36RJaP7ccwAAdevWyL1zB3FffVWhqMjlcqOXtooevkDo3rQpHPm1c6YOyQKgApDF1exHIuodKs7Ph6TMH0kik4GqOVMbwzRYIiOB7t0BpRJwcQGGDgXKTplRUACEhwOOjoCdHTB8OJCSYmxz8ybwj38ACoVQzty5QNn1iA4fBrp2BeRyoFUrYO3aOrywRyOqqHj064fYVauQdOQIcpKScOu333Bl3Tp4PvusmG4xTO05ckQQjJMngf37gaIiIDgYyM0tsZk1C/jlF2DLFsH+zh3gxRdL8rVaQVAKC4E//gDWrRMEY8GCEpvERMGmf38gJgaYORN47TVg7956utAKEPNtxsKcHIpetIi2P/ssberShXaEhFDM//0fFWs01To+7eEyCmlJSeUz9+0j2rqVSKT1aRjzIvPWLSJA+HwcUlOJACL9ki8ZGUSWlkSl1hCi+HjBRr/cy65dRFIp0cNlT4iIaMUKIpWKSP8bmTePqOyb76NGEYWEPJ6fJkDUNhVLW1t0mz8f3ebPN33hM2YI4ebRo0CfPqYvn3miICIUFxcbTcRUGplMBgsLi0eO5M7OzgZKvSdVtp2vUvSTjTk4CJ9nzwrRS+nZCtu2Bby8gBMngF69hM8OHYDSnRAhIcC0acDly0CXLoJN2RkPQ0KEiEUkzL/DnWd2aPQUFhbi7t27yMvLq9JOoVCgadOmsLKyqtSmnZ8fskvtV2eyLOh0wo/8mWeA9u2FtORkwMoKUKuNbV1dhTy9TdleTf3+o2yysoD8fECEybjNV1T43SEGwsToiYmJkMlkcHd3h5WVVblohIhQWFiIe/fuITExEb6+vpUOpoyPi4PSw8OwX60oJTwciI0FSs28Z86Yr6jo4UilUVNYWAidTodmzZpBoVBUamdjYwNLS0vcuHEDhYWFhrV8yqJUKms2D/EbbwA7dwrVcE/PknQ3N6EBNiPDOFpJSRHy9DYPV9g0ytfn6T/L9hilpAAqlShRCmDOUx9wpMKUojqvcZj0VQ8iQVC2bwcOHgR8fIzzu3UDLC2BAwdK0hIShC7kgABhPyAAuHQJSE0tsdm/XxAMP78Sm9Jl6G30ZYiA+UcqDCMG4eHA998DO3YIY1X0bSD29kIEYW8PTJoEzJ4tNN6qVELnQkCA0EgLCF3Qfn7A+PHA4sVCGe+8I5Str3ZNnQosXQrMmwe8+qogYD/8APz6qzjXDXOOVPRw9YcRgxUrhB6ffv2Apk1Lts2bS2y++AJ4/nlh0FtgoFCVKbX8B2Qyoeokkwli8/LLwIQJwPvvl9j4+AgCsn8/0KkT8NlnwFdfCT1AImG+kQpXfxgxqc4/M2trYNkyYasMb29g166qy+nXDzh/vkbu1SUcqTAMY1LMV1Q4UmFKQdX451IdG+bRmK+o6OEHpVGjXwnxUQPfStuUXj2RqTncpsKYNTKZDGq1GqkPu2UVCkWFg9/y8vKQmpoKtVoNmUwmhqtmg/mKih6OVBo9bg8HiqWWHu9RAWq12mDLPD7mKyocqTAPkUgkaNq0KVxcXFBUVFShjaWlJUcoJsJ8RUUPRyrMQ2QyGQtHPWC+DbUcqTCMKJivqOjhSIVh6hXzFRWOVBhGFMxXVPRwpMIw9Yr5igpHKgwjCuYrKgzDiIL5iwpXfximXjFfUeHqD8OIgvmKih6OVBimXjFfUeFIhWFEwXxFRQ9HKgxTr5ivqHCkwjCiYL6ioocjFYapV0R/SzkvJQUxn3+OO8eOQVtQADsvL/T68EM46peHfFw4UmEYURBVVAozM7H/5Zfh2qMH+q1cCWsHB2TfuAGrmqwA9yg4UmGYekVUUYn7+mso3NzQ66OPDGl2pZeGrA0cqTCMKIgqKrcPHULTZ57BsVmzkBodDYWLC3xHj0arl16q0F6j0UCj0Rj2s3NyHn0SjlQYpl4RtaE25/ZtXN28GUpvb/RftQq+o0bhbGQk/v7ppwrtIyMjYW9vb9jatW1beeEcqTBicvQoMHgw4O4uPItln+lXXhHSS2+hocY26enAuHHCkqhqtbBMatl/pBcvAn36CAuTNWsmLI8qMuL2/uh0cPDzQ+eZM+HQrh1ajRyJliNG4OoPP1RoPn/+fGRmZhq2+CtXHn0OjlQYMcjNFZYhrWr1wdBQ4O7dkm3jRuP8ceOAy5eFJU137hSEasqUkvysLGG9ZW9v4OxZICoKWLgQWLWqTi6puoha/bF2doZ9y5ZGafYtWuDW/v0V2svlcsj1C1MDKKqq+sORCiMmgwYJW1XI5cL6yRURHw/s2QOcOQM89ZSQtmQJ8NxzwKefChHQd98BhYXAN98AVlaAvz8QEwN8/rmx+NQzokYqzl26ICsx0Sgt6/p12Lq7m+4kHKkwJiQ7OxtZWVmGrXQbX405fBhwcQHatAGmTQPu3y/JO3FCqPLoBQUAgoIAqRQ4darEJjBQEBQ9ISFAQgLw4MHj+1VLRBWVthMmIO3iRVxetQrZN27g+s6d+OvHH+E7ZoyYbjFMpbTz8zNq14uMjHy8gkJDgfXrgQMHgE8+AY4cESIbrVbIT04WBKc0FhaAg4OQp7dxdTW20e/rbURA1OqPY4cOCPzvfxHzf/+HSytWwM7TE93eegs+zz9f+8K5+sPUAfFxcVB6eBj2S1fHa8To0SXfO3QAOnYEWrYUopdnn62dkyIj+ohaj3794NGvX92dgKs/jAlRKpVQmXJwpp4WLQAnJ+CvvwRRcXMDyq6oWFws9Ajp22Hc3ICUFGMb/b6IKy2a77s/HKkwTxK3bwttKk2bCvsBAUBGhtCro+fgQUCnA3r2LLE5ehQoveri/v1CG02TJvXmelnMV1T0cKTCiEFOjtATExMj7CcmCt9v3hTy5s4FTp4Erl8X2lWGDAFatRIaWgGgXTuh3WXyZOD0aeD334E33hCqTfqOjLFjhUbaSZOErufNm4H//heYPbv+r7c09ASTlpREACgtKal85tNPEwFE27fXu1+M+ZF56xYRIHxWh0OHhOev7BYWRpSXRxQcTOTsTGRpSeTtTTR5MlFysnEZ9+8TjRlDZGdHpFIRTZxIlJ1tbHPhAlHv3kRyOZGHB9HHH5vgamuH6G0qdQ5HKowY9OtX9bO3d++jy3BwAL7/vmqbjh2BY8dq5FpdY77VH25TYRhRMF9R0cORCsPUK+YrKhypMIwomK+o6OFIhWHqFfMVFY5UGEYUzFdU9HCkwjD1ivmKCkcqDCMK5isqejhSYZh6xfxFhWGYesV8RYWrPwwjCuYrKnq4+sMw9Yr5igpHKgwjCuYrKno4UmGYesV8RYUjFYYRBfMVFT0cqTBMvWK+osKRCsOIgvmKih6OVBimXjFfUeFIhWFEwfxFJT9fXD8YppFhvqLStavwuXu3uH4wTCPDfEVl1Cjh89dfhSURGIapF8xXVLp0EZaRzM8Hdu4U2xuGaTSYr6hIJCXRyubN4vrCMI0I8xUVoERUdu8GsrLE9YVhGgkNRlQur16N7/39cTYy0nSFduggrCur0QA//2y6chnmURw9CgweLCxRKpEAP/1knE8ELFggrJ1sYwMEBQFXrxrbpKcD48YBKhWgVgvLm5ZtH7x4EejTB7C2Bpo1AxYvrsurqhYmF5XigoIaH3P/0iX8tWUL1K1bm9YZrgIxYpGbC3TqBCxbVnH+4sXA//4HrFwJnDoF2NoK6yiX/v2MGyeskbx/v9AuePQoMGVKSX5WFhAcDHh7Cwu5R0UBCxcCq1bV6aU9ElOtn1qs0VDcmjW0tU+fGh1XmJNDPw8aRHf/+IP2h4VR9KJF1T62yrWU9cTGCmvYWloSPXhQI98YRk+N11IuTdk1vXU6Ijc3oqiokrSMDGE95I0bhf24OOG4M2dKbHbvJpJIiPTP+/LlRE2aEGk0JTZvvUXUpk3NfTQhNYpUtIWFiPniC+wZORL7xo3DrQMHAADXtm/Hz8HBSNiwAW0nTKiRqEV/+CHcAwPhFhDwSFuNRoOsrCzDll2drmJ/f2ErKiofgjJMDcnOzjZ6BjUaTc0LSUwEkpOFKo8ee3ugZ0/gxAlh/8QJocrz1FMlNkFBgFQqRDZ6m8BAwMqqxCYkBEhIAB48eLQfzz0HZGaW7H/8MZCRUbJ//z7g51fTq6tZ9efikiW4unkzbN3dkZuUhOOzZ+NURAQS1q9Hl3nz8MK+ffB77bVql3d91y6kx8ej86xZ1bKPjIyEvb29YWvXtm31TsRVIMZEtPPzM3oGIx+nDTA5Wfh0dTVOd3UtyUtOBlxcjPMtLIRF20vbVFRG6XNUxd69QnujnkWLhHYcPcXFgkDVEIuaGN/ctw8BixbBc8AAZFy9il3DhoG0Wgzatg2SGr5rk3v3Ls59/DH6r14NmVxerWPmz5+P2bNnG/bTk5Ph06bNow8cOVJoFPvtN0F9HR1r5CvD6ImPi4PSw8OwL6/ms9sgKfuyrYlevq2RqOQnJ8PB3x8AoPb1hczKCm0nTKixoABAelwcCu7fx56XXjKkkVaL1Oho/LlxI0adPw+pTGZ0jFwuN/ojFlV3pGybNkKj2YULwPbtQA2iKYYpjVKphEqlql0hbm7CZ0qK0PujJyUF6Ny5xCY11fi44mIhktAf7+YmHFMa/b7eRgRqVP0hnQ5SS0vDvkQmg4VC8VgnduvVC8/99BMGbd1q2Bz8/dH8+ecxaOvWcoJSa7gKxDQUfHyEH/3DNkkAQk/OqVOAvm0xIEBo3zh7tsTm4EFApxPaXvQ2R48K7YV69u8X/ok2afJoPySS8m/zm+Dt/hpFKkSEk2+/DenDhiFtYSFOv/deOWEJ/O9/H1mWpa0t1L6+xs4oFJDb25dLNwkjRwL/+Y/wh7l3D3B2Nv05GEZPTg7w118l+4mJQEyM0Cbi5QXMnAl8+CHg6yuIzLvvCmNahg4V7Nu1A0JDgcmThW7noiLgjTeA0aMFOwAYOxZ47z1h/MpbbwGxscB//wt88UX1fCQCXnkF0Ef/BQXA1KlC9zZg3N5SA2okKi2GDDHa93n++cc6qSi0bAl06yYo/9atws1jmLoiOhro379kX98WGBYGrF0LzJsnjGWZMkWISHr3BvbsEQax6fnuO0FInn1W6PUZPlwY26LH3h7Ytw8IDxeebScnoe2w9FiWqggLM95/+eXyNjXszQUACdGTOzXa/Tt34OThgbSkJDjq1bsqoqKEP2a/fsChQ3XuH2M+ZN2+DVWzZsi6dQsqT0+x3WnQNJhh+vXCyJHC55Ej1etyYximxjQuUfH2Fhq5iIAffxTbG4YxSxqXqADcC8QwdUzjExX9uJjjx4GkJHF9YRgzpPGJiqcn8MwzwvctW8T1hWHMkMYnKgBXgRimDmmcojJ8uDBy8ORJ4MYNsb1hGLOicYqKu7vwyjjAVSCGMTGNU1QArgIxTB3ReEXlxReFoc/R0cDff4vtDcOYDY1XVFxdS97N4GiFYUxG4xUVQHjjE2BRYRgT0rhF5cUXhSn6LlwA4uPF9oZhzILGLSoODsJEwQCwaZO4vjCMmdC4RQUoqQJt2mSyOToZpjHDovLCC8LEOH/+KczMxTBMrWBRUamAf/xD+M5VIIapNSwqADBmjPDJVSCGqTUsKoCwUpudHXDzpvA+EMMwjw2LCgDY2JTMYs5VIIapFSwqevS9QD/8AGi14vrCME8wLCp6Bg4UFmBKThYWaGIY5rFgUdFjZSXMswJwFYhhagGLSmn0VaAffzReSpJhmGrDolKafv2Et5fT04HffhPbG+ZJZuHCkrWK9VvbtiX5BQXCyoKOjkLP4/Dh5Rdbv3lTGEOlUAAuLsDcucIi7Q0cFpXSyGQls+1v3CiuL8yTj78/cPduyXb8eEnerFnAL78IMw8eOQLcuSO84KpHqxUEpbAQ+OMPYN06YbnUBQvq/TJqDD3BpCUlEQBKS0oyXaHHjxMBREolUV6e6cplnmgyb90iAoTP6hARQdSpU8V5GRlElpZEW7aUpMXHC8/diRPC/q5dRFIpUXJyic2KFUQqFZFG8ziXUG+IGqlcXr0ae0aOxA/du2Nrnz44OmMGshITxXQJCAgAmjUDsrOB3bvF9YVpcGRnZyMrK8uwaTSayo2vXhXmQ27RAhg3TqjOAMDZs0KbXVBQiW3btoCXF3DihLB/4gTQoYNQHdcTEgJkZQGXL5v+wkyIqKKSeuYMWo8Zg+CNGzFg9WroiotxcPJkFOflieeUVGr85jLDlKKdnx/s7e0NW2RkZMWGPXsK1ZU9e4AVK4DERKBPH+GfVXKy0NuoVhsf4+passZ3crKxoOjz9XkNGAsxT95/1Sqj/V4ffYRtffogPS4OLk89JZJXEEQlKgrYuVN4CJRK8XxhGhTxcXFQengY9uVyecWGgwaVfO/YURAZb29hcKWNTR17KS6iikpZirKzAQBW9vYV5ms0GqNwMzsnp8ryjs+Zg6xKJrW2srdH0Nq1hv0T//kPHuhnfyNCX1tb2ObmIqZ/f6T4+iKkVMPt6fffR9r58+XKJJ0OuqIidHzzTeSnpKAoNxe3Dx1CblISSKczlC18EEAExw4dDHk5t25Bk5lZ6UuNqpYtIZVKQUTIT0lBYVZWeR8eHmvn6QmphfDnLUhPr9BWj627O6SWlgAATUYGCjMzK7VVuLlBZmUFACjMyoImI6NyWxcXyB7+6Aqzs6u0tXFygszaGgBQlJsLzYMHldpaOzjAQqEQbPPyoElPr9RW3qQJLB/aFufno+D+/cpt1WpY2tmh38qVsPP0rNBGqVRCpVJVWkalqNVA69bAX38JAy0LC4GMDONoJSUFcHMTvru5AadPG5eh7x3S2zRQGoyokE6Hs598AucuXaD29a3QJjIyEu+9955h31oiqbLM7Js3kfHnnxXmWTs6Gu3n3LplZPu3jQ065ObCKSEBf5Y5T+7t25WWCwC/z5lTpV+lSTl1qtq2D2pQl65MTCsi+/r1atvm6NsFqmN7+3a1bXPv3Km2bV4Nwv/8lBTkV9f23j3k37sHXV102+bkANeuAePHA926AZaWwIEDJQMuExKENpeAAGE/IAD46CMgNVXoTgaA/fuFqTr8/EzvnwmREDWMd/1Pv/8+7h47hoEbNkBRiRKXjVTSk5Ph06YN0pKS4OjuXs4+7eJFFOfmVliW1NLSqIp1PzbWECkBgCwxEc7jxoEsLHBv1y64DBxYct74eGjS05F88iSubduGwlL/ga3s7WHfogUUbm6wVCqhfeiv1MoKEqlU2CwsIH343b51a8gsLQGJBHnJySU+6IXs4RgHCQD7Vq0gtbSERCJBbnJySURRylby8FPdurUhoshLTkZBFf/N7Vu2NEQUeampKEhLq9RW5eMDi4fhe35aGvJTU1GZtCubN4elrS0AIVrKu3u3JLOMUNt5ecHqYTWz4MED5FUmMhIJbD09IX8YzWoyMpCblFSpv7YeHrBu0gSAEFll37pVuW3TprB2cICDv7/hGvVk3b4NVbNmyLp1C6pKohgj/vUvYPBgocpz5w4QESFMAhYXBzg7A9OmAbt2Ce0uKhUwY4Zw3B9/CJ9aLdC5s9DQu3ix0I4yfjzw2mvAokWPPr+INIhI5cyHH+LOkSMIWreuUkEBhPpr6Tps0SOqP04dO1bbB8f27Y0TAgKAjz+G5NIluJR5EK0dHHD+00+R8nCaBFsPD7QeOxZewcGwrUDcmEbI7dvCPD337wsi0ru3MK2Gs7OQ/8UXQqfA8OGARiP07CxfXnK8TCa06U2bJjyLtrZAWBjw/vviXE8NEDVSISJEf/QRbh84gGfXroXK27tGx9+/cwdOHh6VRiq1ZtEi4O23hTrwvn0AgFu//YZTCxagMDMTMhsbdJg6FW0mTDBEBYx5UuNIpREjaqQS/cEHuL5rFwKXLIGlQoH8e/cAAJZKJSweNtqJyqhRgqgcOADt7ds4+/XX+OuHHwAADv7+ePqTT6Dy8RHZSYZpWIgqKlcfLuJ14JVXjNJ7ffghWgwbJoJHZWjZEujeHThzBglDhuCvggJAIoHfpEnoEB7O0QnDVICoojK2gY8MBIDsp5+G8swZOMXHw6pTJzwdFQX33r3FdothGiz8QmElEBHi167Fgb17QQBc8vMx6IsvWFAY5hGwqFRAcV4efp87F+ejopAnlSLLywsAYHvwoMieMUzDh0WlDFk3bmDv2LG4uXs3JBYW6Paf/0AVESFkrl/PS3gwzCNgUSlF0uHD2DtqFDKvXoW1kxOe/eYbtBk3DpIRI4RVDBMSgOhosd1kmAYNiwqEVwQuLV+OI+HhKMrOhlPnzgjdsgUu3boJBipVyRIeGzaI5ifDPAk0elEpys3FsVmzcGnZMgCA76hReHbNGij071voGT9e+Ny0ieevZZgqaBDD9MUi59YtHJkxA5lXr0JqaYnuCxagZekp/UoTHCy82JWaCuzdCzz/fP06yzBPCI02Ukk+eRJ7SrefrF1buaAAgIUFMHas8J2rQAxTKY1OVIgIV9avx6EpU1CYmQmH9u0R+sMPcO7c+dEH66tAO3YIc2EwDFOORiUqWo0GJ99+G+c++QSk1cJnyBAMXL8eirLT9lVGly7CXBYajbA2EMMw5Wg0opKXmorfwsKQuGMHJFIpur71Fnp99JFhHpFqIZGURCvr19eNowzzhNMoRCXtwgXsHTkS9y9dgpVKhf6rVqHthAmQPGLmuAp5+WVhHoxjxwD99JMMwxgwe1G5tn07fgsLQ/69e7D39UXI5s1w00/Z9zh4egozegHAypWmcZJhzAizFRVdcTHORkbi1DvvQFdUBM+gIAR/9x2UD9/jqRVTpwqf69YBYi4nwjANELMVlUvLliHh228BAB3Cw9Hniy8M86XWmuBgwMcHyMwEHs4JwzCMgNmKStqFCwCAzrNno8P06ZBITXipUinw+uvC96VL+SVDhimF2YqK/odeZxNRv/qqsCjUuXOG+WsZhjFjUdHP523SCKU0zs4lbSsffMDRCsM8xHxFRb8i4ON0G1eXuXMBuRz4/XdhlC3DMOYrKvrI4bHGolSXpk2B2bOF7zNm8NB9hoEZi4ohUqmr6o+ed94BWrQQFo8aMYK7mJlGj/mKSn1EKgCgUABbtworyB04ADzzDHD8OLexMALLlgHNmwszB/bsWX7RdTPEbEUF9dGmoqdzZ2D3bsDJSVgvt08fwN8f+Oc/gW+/BU6cAO7eLfGJaRxs3ixUjyMihF7CTp2E5U1TU8X2rE4x20ma6rz3pyx9+gAXLwoP0IYNwntBZd8NkkiEqSmbNAHUasDOTmjotbYu/2lpKVTdZLKSrTr7+ut9uLC74XtFaZV9r21+dYXclHamLCs4GHi4WHyt+PxzYPJkYOJEYX/lSuDXX4FvvgH+/e/al99AMVtRQX2LCiA03K5aBURFCZHLiRNC5HL9utDmotMJo3AzM+vPJ6bmJCRUKirZ2dlAVpZhXy6XQ17Rm+6FhcDZs8D8+SVpUikQFCQ8F2aM2YoKiVnVsLcHRo8WNj1FRcCDB8ZbXh5QUCDMz6LRlHwvKACKiwGttmTT6aq3T1SyAeJ9fxSmtDP1OatYx7udnx+yS+1HRERg4cKF5Q3T0oS/R9m5elxdgStXqufHE4rZioookUpVWFoKc9yWnVCbeaKIj4uD0sPDsF9hlNLIMVtR0UcqDUZUGLNAqVRCpVI92tDJSWjnSkkxTk9JAdzc6sa5BkKD+MX9+f332DFwIDZ16YK9o0cj7eLFWpepb6itl94fhimLlRXQrZswzECPTifs12Y+nycA0UXlxu7dOLd4MdpPn45BW7ZA3aYNDr3+Ogru369dwfU1ToVhKmP2bGD1amHenfh4YNo0IDe3pDfITBFdVK6sW4eWI0ag5bBhsG/VCj0iImBhbY1r27bVqtx6G1HLMJUxahTw6afAggXCWKaYGGDPnvKNt2aGqG0q2sJCpMfFwW/yZEOaRCqFW69ehvlQSqPRaKDRaAz7mQ+79u7cvYv8Mr09aXl5yC4sxN3UVBTdvl1HV8A0FnLu3gUA6Graq/jGG8LWiBBVVDQZGSCtFtaOjkbp1o6OyEpMLGcfGRmJ9957z7Bv9fCz41NPVX4SXkmQMSHxKSlQm2JKUjPmier9mT9/Pmbr3woGUFxcjMSEBDh7eEBappqTnZ0NPz8/xMXFQWmK0ZFmBN+biqnqvpBOh9yUFPh26SKSd08OooqKXK2GRCYr1yhbcP8+rJ2cyttXMHrRoZKW9KyHVSMPD4/qdQE2IvjeVMwj7wtHKNVC1FZMmZUVHPz8kHLypCGNdDoknzoFp06dRPSMYZjHRfTqT9uwMJz4z3/g4O8Pxw4dkLBhA4rz89Fi2DCxXWMY5jEQXVS8Bw1CQXo6Li5dioK0NDRp2xb9v/wSNhVUf2qCXC5HREQED6OuAL43FcP3xTRIiKr7lhXDMMyj4ZFhDMOYFBYVhmFMCosKwzAmhUWFYRiTYraismzZMjRv3hzW1tbo2bMnTpvZLOZHjx7F4MGD4e7uDolEgp9++skon4iwYMECNG3aFDY2NggKCsLVq1eNbNLT0zFu3DioVCqo1WpMmjQJOTk5RjYXL15Enz59YG1tjWbNmmHx4sV1fWm1IjIyEt27d4dSqYSLiwuGDh2KhIQEI5uCggKEh4fD0dERdnZ2GD58OFLKzHty8+ZN/OMf/4BCoYCLiwvmzp2L4uJiI5vDhw+ja9eukMvlaNWqFdauXVvXl/dkQGbIpk2byMrKir755hu6fPkyTZ48mdRqNaWkpIjtmsnYtWsXvf3227Rt2zYCQNu3bzfK//jjj8ne3p5++uknunDhAr3wwgvk4+ND+fn5BpvQ0FDq1KkTnTx5ko4dO0atWrWiMWPGGPIzMzPJ1dWVxo0bR7GxsbRx40aysbGhL7/8sr4us8aEhITQmjVrKDY2lmJiYui5554jLy8vysnJMdhMnTqVmjVrRgcOHKDo6Gjq1asXPf3004b84uJiat++PQUFBdH58+dp165d5OTkRPPnzzfY/P3336RQKGj27NkUFxdHS5YsIZlMRnv27KnX622ImKWo9OjRg8LDww37Wq2W3N3dKTIyUkSv6o6yoqLT6cjNzY2ioqIMaRkZGSSXy2njxo1ERBQXF0cA6MyZMwab3bt3k0QioaSkJCIiWr58OTVp0oQ0Go3B5q233qI2bdrU8RWZjtTUVAJAR44cISLhPlhaWtKWLVsMNvHx8QSATpw4QUSCYEulUkpOTjbYrFixglQqleFezJs3j/z9/Y3ONWrUKAoJCanrS2rwmF31p7CwEGfPnkVQUJAhTSqVIigoCCfMfBZzPYmJiUhOTja6B/b29ujZs6fhHpw4cQJqtRpPlXrDOygoCFKpFKdOnTLYBAYGwsrKymATEhKChIQEPHjwoJ6upnZkPly5wMHBAQBw9uxZFBUVGd2btm3bwsvLy+jedOjQAa6l5j0JCQlBVlYWLl++bLApXYbeprE8Y1VhdqKSlpYGrVZr9EAAgKurK5KTk0Xyqn7RX2dV9yA5ORkuZSbhtrCwgIODg5FNRWWUPkdDRqfTYebMmXjmmWfQvn17AILfVlZWUKvVRrZl782jrrsym6ysLOTn59fF5TwxiD5Mn2HqivDwcMTGxuL48eNiu9KoMLtIxcnJCTKZrFxrfkpKCtzMfBZzPfrrrOoeuLm5IbXM8pvFxcVIT083sqmojNLnaKi88cYb2LlzJw4dOgRPT09DupubGwoLC5GRkWFkX/bePOq6K7NRqVSwsbEx9eU8UZidqFhZWaFbt244UGoWc51OhwMHDiDAzGcx1+Pj4wM3Nzeje5CVlYVTp04Z7kFAQAAyMjJw9uxZg83Bgweh0+nQs2dPg83Ro0dRVFRksNm/fz/atGmDJk2a1NPV1AwiwhtvvIHt27fj4MGD8PHxMcrv1q0bLC0tje5NQkICbt68aXRvLl26ZCS6+/fvh0qlgp+fn8GmdBl6m8byjFWJ2C3FdcGmTZtILpfT2rVrKS4ujqZMmUJqtdqoNf9JJzs7m86fP0/nz58nAPT555/T+fPn6caNG0QkdCmr1WrasWMHXbx4kYYMGVJhl3KXLl3o1KlTdPz4cfL19TXqUs7IyCBXV1caP348xcbG0qZNm0ihUDToLuVp06aRvb09HT58mO7evWvY8vLyDDZTp04lLy8vOnjwIEVHR1NAQAAFBAQY8vVdysHBwRQTE0N79uwhZ2fnCruU586dS/Hx8bRs2TLuUn6IWYoKEdGSJUvIy8uLrKysqEePHnTy5EmxXTIphw4dIgDltrCwMCISupXfffddcnV1JblcTs8++ywlJCQYlXH//n0aM2YM2dnZkUqlookTJ1J2draRzYULF6h3794kl8vJw8ODPv744/q6xMeionsCgNasWWOwyc/Pp+nTp1OTJk1IoVDQsGHD6O7du0blXL9+nQYNGkQ2Njbk5OREc+bMoaKiIiObQ4cOUefOncnKyopatGhhdI7GDE99wDCMSTG7NhWGYcSFRYVhGJPCosIwjElhUWEYxqSwqDAMY1JYVBiGMSksKgzDmBQWFYZhTAqLSgPhlVdewdChQ0U7//jx47Fo0aJ6Ode///1vzJgxo17OxdQ/PKK2HpBIJFXmR0REYNasWSCicvN81AcXLlzAgAEDcOPGDdjZ2dX5+dLS0tCiRQvExMSgRYsWdX4+pn5hUakHSk9otHnzZixYsMBoMmY7O7t6+TFXxmuvvQYLCwusXLmy3s750ksvoXnz5oiKiqq3czL1A1d/6gE3NzfDZm9vD4lEYpRmZ2dXrvrTr18/zJgxAzNnzkSTJk3g6uqK1atXIzc3FxMnToRSqUSrVq2we/duo3PFxsZi0KBBsLOzg6urK8aPH4+0tLRKfdNqtfjxxx8xePBgo/Tly5fD19cX1tbWcHV1xYgRIwx5Op0OkZGR8PHxgY2NDTp16oQff/zR6PjLly/j+eefh0qlglKpRJ8+fXDt2jVD/uDBg7Fp06bHuZ1MA4dFpQGzbt06ODk54fTp05gxYwamTZuGl156CU8//TTOnTuH4OBgjB8/Hnl5eQCAjIwMDBgwAF26dEF0dDT27NmDlJQUjBw5stJzXLx4EZmZmUZz1UZHR+PNN9/E+++/j4SEBOzZsweBgYGG/MjISKxfvx4rV67E5cuXMWvWLLz88ss4cuQIACApKQmBgYGQy+U4ePAgzp49i1dffdVoiYsePXrg9u3buH79uonvGiM6Ir4h3ShZs2YN2dvbl0sPCwujIUOGGPb79u1LvXv3NuwXFxeTra0tjR8/3pB29+5do1ngP/jgAwoODjYq99atWwSg3LQHerZv304ymYx0Op0hbevWraRSqSgrK6ucfUFBASkUCvrjjz+M0idNmmSYi2X+/Pnk4+NDhYWFldwFYfkPAHT48OFKbZgnE56jtgHTsWNHw3eZTAZHR0d06NDBkKafeFk/Q9mFCxdw6NChCttnrl27htatW5dLz8/Ph1wuN2pMHjhwILy9vdGiRQuEhoYiNDQUw4YNg0KhwF9//YW8vDwMHDjQqJzCwkJ06dIFABATE4M+ffrA0tKy0mvTT7moj7IY84FFpQFT9kcpkUiM0vRCoNPpAAA5OTkYPHgwPvnkk3JlNW3atMJzODk5IS8vD4WFhYalOJRKJc6dO4fDhw9j3759WLBgARYuXIgzZ84YVjD89ddf4eHhYVSWXC4HgGrN0Zqeng4AcHZ2fqQt82TBomJGdO3aFVu3bkXz5s1hYVG9P23nzp0BAHFxcYbvgLBcR1BQEIKCghAREQG1Wo2DBw9i4MCBkMvluHnzJvr27VthmR07dsS6detQVFRUabQSGxsLS0tL+Pv71+gamYYPN9SaEeHh4UhPT8eYMWNw5swZXLt2DXv37sXEiROh1WorPMbZ2Rldu3Y1WsZi586d+N///oeYmBjcuHED69evh06nQ5s2baBUKvGvf/0Ls2bNwrp163Dt2jWcO3cOS5Yswbp16wAIM9lnZWVh9OjRiI6OxtWrV7FhwwajbvRjx46hT58+jX7meXOERcWMcHd3x++//w6tVovg4GB06NABM2fOhFqthlRa+Z/6tddew3fffWfYV6vV2LZtGwYMGIB27dph5cqV2LhxoyGq+OCDD/Duu+8iMjIS7dq1Q2hoKH799VfDzPWOjo44ePAgcnJy0LdvX3Tr1g2rV682ilo2bdqEyZMn19GdYMSEB78xyM/PR5s2bbB58+Z6WWJi9+7dmDNnDi5evFjtahrz5MCRCgMbGxusX7++ykFypiQ3Nxdr1qxhQTFTOFJhGMakcKTCMIxJYVFhGMaksKgwDGNSWFQYhjEpLCoMw5gUFhWGYUwKiwrDMCaFRYVhGJPCosIwjEn5f9Erlv8lML7eAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAARUAAADvCAYAAADckEApAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABALElEQVR4nO2deVhUZfvHv8PADDsjO6KgKCKoKZJ7IioCbq+ae7nUW5Zp5ZaW9RYuKZpppa9Lmpn6mqil2c/cSHDLDVBUBHHFhVVABNkGZu7fH48zMGyCDpxheD7XNddwnnPPc+5zGL48632LiIjA4XA4WsJAaAc4HI5+wUWFw+FoFS4qHA5Hq3BR4XA4WoWLCofD0SpcVDgcjlbhosLhcLQKFxUOh6NVuKhwOBytwkWljjh+/DhEIhGOHz8utCta5a233oK5ubnQbnB0mEYlKmfOnMGCBQuQnZ0ttCvVkpycjAULFiAmJkYr9e3atQs9evSAmZkZZDIZevbsifDwcK3UXd8sWbIE//rXv+Dg4ACRSIQFCxZUaZuUlIQxY8ZAJpPB0tISw4YNw507dyq13bx5Mzw9PWFsbAx3d3esWbPmpetstFAjYsWKFQSA7t69W+fXUigUVFBQQAqFotafjYyMJAC0ZcuWl/YjODiYRCIRjR49mjZs2EBr1qyh999/n7Zt2/ZC9U2ePJnMzMxe2q8XBQA5OjpSYGAgAaDg4OBK7XJzc8nd3Z3s7e1p+fLltGrVKmrevDk1a9aMMjIyNGw3bNhAAGjkyJG0ceNGmjhxIgGgZcuWvXCdjRkuKjqItkTl7NmzJBKJaNWqVdpxjIQXFdXv7tGjR9WKyvLlywkAXbhwQV0WHx9PYrGY5s+fry7Lz88nGxsbGjx4sMbn33zzTTIzM6OsrKxa19nY0XlRycnJoRkzZpCrqytJJBKys7Mjf39/io6O1rA7d+4cBQYGkqWlJZmYmJCvry+dPn1afT44OJgAVHipvqQAaPr06fS///2P2rRpQ1KplDp37kwnTpyo4NPFixcpKCiILCwsyMzMjPr160dnz57VsImIiCAAFBERoS7r06cPtWvXjq5du0Z+fn5kYmJCTZs2peXLl1f4XPmXSmDy8vIoPj6eHj169NxnN3bsWHJyciKFQkFKpZJyc3Of+5nnUZmoXLp0iWxtbalPnz7qa7i6utLgwYPpyJEj1LFjR5JKpeTp6Um///57hTpv3bpFt27dqpUfzxOVLl26UJcuXSqUBwQEUKtWrdTHf/31FwGgv/76S8PuzJkzBIC2b99e6zobOzo/pjJ16lSsX78eI0eOxLp16/DJJ5/AxMQE8fHxapvw8HD4+voiJycHwcHBWLp0KbKzs9GvXz9cuHABAPD6669j/PjxAIDvvvsO27dvx/bt22FnZ6eu58SJE5g5cyYmTJiARYsWITMzE0FBQYiNjVXbXLt2Db1798bly5cxb948fPnll7h79y78/Pxw/vz5597P48ePERQUhI4dO2LlypVo27YtPv30Uxw6dAgA4OnpiUWLFgEA3nvvPbWfvr6+AIALFy7A09MT//3vf597rWPHjqFLly5YvXo17OzsYGFhAScnpxp9tqZERkaiX79+8Pb2xqFDhzQGcW/evImxY8di4MCBCAkJgaGhIUaPHo2wsDCNOvr374/+/ftrzSelUokrV67g1VdfrXCua9euuH37NnJzcwEAly5dAoAKtj4+PjAwMFCfr02djR6hVe15WFlZ0fTp06s8r1Qqyd3dnQIDA0mpVKrL8/PzqWXLljRgwAB1WXXdHzxrEURFRanL7t27R8bGxjRixAh12fDhw0kikdDt27fVZcnJyWRhYUG+vr7qsqpaKgA0xjOKiorI0dGRRo4cqS6rrvujqreq/9AqsrKyCADZ2NiQubk5rVixgnbt2kVBQUEEgDZs2FDt56uibEvl9OnTZGlpSYMHD6bCwkINO1dXVwKg0TJ58uQJOTk5kbe3dwVbV1fXWvlRXUtFdW7RokUVzq1du5YA0PXr14mIaPr06SQWiyu9hp2dHY0bN67WdTZ2dL6lIpPJcP78eSQnJ1d6PiYmBjdv3sQbb7yBzMxMZGRkICMjA3l5eejfvz9OnjwJpVJZo2v16NEDPj4+6mMXFxcMGzYMR44cgUKhgEKhwNGjRzF8+HC4ubmp7ZycnPDGG2/g9OnTyMnJqfYa5ubmmDBhgvpYIpGga9euNZ5B8PPzAxFVO+sBAE+fPgUAZGZm4qeffsInn3yCMWPG4K+//oKXlxe+/vrrGl2vKiIiIhAYGIj+/ftj7969kEqlFWyaNm2KESNGqI8tLS0xadIkXLp0CampqeryxMREJCYmvpQ/ZSkoKACASn0yNjbWsCkoKIBEIqm0HmNjYw27mtbZ2NF5Ufnmm28QGxuL5s2bo2vXrliwYIHGH+DNmzcBAJMnT4adnZ3G66effkJRURGePHlSo2u5u7tXKGvTpg3y8/Px6NEjPHr0CPn5+fDw8Khg5+npCaVSiQcPHlR7jWbNmkEkEmmUNWnSBI8fP66RjzXFxMQEAGBkZIRRo0apyw0MDDB27Fg8fPgQ9+/ff6G6CwsLMXjwYHh7e2P37t1V/lG2bt26wr22adMGALQqIuVR3XtRUVGFc4WFhRo2JiYmkMvlldZTWFioYVfTOhs7hkI78DzGjBmD3r17Y9++fTh69ChWrFiB5cuXY+/evRg4cKC6FbJixQp06tSp0jp0abGWWCyutJy0HNXT2toaxsbGkMlkFa5pb28PgI3vuLi41LpuqVSKQYMGYf/+/Th8+DCGDBmiFZ+1hbW1NaRSKVJSUiqcU5U1bdoUAGtlKhQKpKenq58LAMjlcmRmZqrtalNnY0fnRQVgv/hp06Zh2rRpSE9PR+fOnbFkyRIMHDgQrVq1AsCa1v7+/tXWU/6/ZnlUrZ6y3LhxA6ampuoBXVNTUyQkJFSwu379OgwMDNC8efOa3tYL+1kTDAwM0KlTJ0RGRkIul2u0JlRdybKD1LX1b8eOHRg2bBhGjx6NQ4cOwc/Pr4LdrVu3QEQa93Pjxg0AQIsWLV7o2jXBwMAAHTp0QFRUVIVz58+fh5ubGywsLABA/Y8oKioKgwYNUttFRUVBqVSqz9emzsaOTnd/FApFha6Lvb09mjZtqm6G+vj4oFWrVvj222/V4whlefTokfpnMzMzAKhyRe3Zs2dx8eJF9fGDBw+wf/9+BAQEQCwWQywWIyAgAPv379dovqelpeHXX3/Fa6+9BktLyxe93Rr5mZ+fj+vXryMjI+O59YwdOxYKhQJbt25VlxUWFmLHjh3w8vJ6qf+sEokEe/fuRZcuXTB06FD1LFtZkpOTsW/fPvVxTk4Otm3bhk6dOsHR0VFdfvv2bdy+ffuFfamMUaNGITIyUkMEEhISEB4ejtGjR6vL+vXrB2tra6xfv17j8+vXr4epqSkGDx5c6zobPQIPFFfL48ePyczMjCZPnkyrVq2ijRs30pgxYwgArVy5Um0XERFBxsbG5OLiQsHBwbRx40YKDg4mX19fGjJkiNruwoULBIAGDRpE27Zto507d9LTp0+JiM3+tG/fnmxtbWnRokW0fPlycnV1JWNjY7p8+bK6jtjYWDIzMyNnZ2dasmQJLV++nNzc3EgqldK5c+c0fEIV61TKM3nyZI3ZD7lcTjKZjDw8POinn36inTt30p07dzTqfd7sDxGbAWvXrh0ZGRnRJ598QqtXr6YuXbqQWCymgwcPatiqZqaeR/l1Kk+ePCEfHx+ytramq1evqstdXV2pTZs2JJPJ6LPPPqPvvvuOOnToQAYGBnT48GGNOmsz+7Nt2zZavHgxzZ8/nwBQ3759afHixbR48WJKTExU2+Xk5FCrVq3I3t6evvnmG/ruu++oefPm1LRpU0pPT9eoUzV7M2rUKNq0aRNNmjSJANCSJUs07GpTZ2NGp0WlqKiI5s6dSx07dlQvNOvYsSOtW7eugu2lS5fo9ddfJxsbG5JKpeTq6kpjxoyhY8eOadgtXryYnJ2dycDAoMrFb+7u7iSVSsnb21tDFFRcvHiRAgMDydzcnExNTalv37505swZDZuXERUiov3795OXlxcZGhpqTC/XRlSIiNLS0mjy5MlkbW1NUqmUunXrVuGPmojIx8eHHB0dn1tfZYvfMjIyyMvLixwdHenmzZtEpLn47ZVXXiGpVEpt27alPXv2VKizNqKiEr/KXuV/Vw8ePKBRo0aRpaUlmZub05AhQ9T+lWfjxo3k4eFBEomEWrVqRd99953GEoUXqbOxIiLieX8ANk4wffp0rS4Mayjk5ubC2toa33//PaZPn66VOlu0aIH27dvjwIEDWqmP03DQ6TEVTv1w8uRJODs7Y8qUKUK7wtEDuKhwMHjwYCQmJla53oTDqQ1cVDgcjlYRdExFqVDg6tq1SDxwAIUZGTCxt0fLYcPQfupUrazV4HA49Y+gi9/iN2/GrV270H3pUli1bo2s2Fic+89/ILGwgEeZ/TEcDqfhIKioPIqJgXO/fnDu0wcAYO7sjHsHDyLz6lUh3eJwOC+BoKJi16kTbu3Zg5zERFi2aIHH16/j0aVL8J43r1L7oqIijQ1dJSUluJuQADtnZxgY8OEhTt1BSiXy0tLg7u0NsWGD2N0iGII+Ha9330Xx06c4MGQIRGIxSKFAxxkz0LKKDWohISFYuHCh+lgCoPL9pRxO3RB/4QLadukitBs6jaADtYkHDyJm5Up0mjMHstat8fj6dUQvW4bO8+bBbfjwCvblWyoZyclo5emJK1FRaOLgUI+ecxobT1NS0LRrVyjv3YPsBXZ2NyYEbanErFwJr3feQYtnu0NlbdogLzkZcT/9VKmoSKVSjSA5xc82EDZ1coIN33bOqUNyAFgCyOHd7Oci6BMqKSiAqNwvSSQWg2oYqY3D0WmSkoAJEwAbG8DEBOjQASgbOoEI+OorwMmJnff3B8qH38jKAt58E7C0BGQy4J13gPK78a9cAXr3BoyNgebNgW++qfNbqw5BRcXZzw+xGzci6cQJPE1KwoO//8b1rVvRTItBkDkcQXj8GOjVCzAyAg4dAuLigJUrgSZNSm2++QZYvRrYsAE4fx4wMwMCA4FnkeQAMEG5dg0ICwMOHABOngTee6/0fE4OEBAAuLoC0dHAihXAggXAxo31dqsVEHI3o/zpU4paupT29e9Pod7etD8wkGK+/55Kiopq9PmMpCQCQBlJSRVPHj1K9NtvRDVIZcHhPI8nDx4QAey9Jnz6KdFrr1V9XqkkcnQkWrGitCw7m0gqJdq5kx3HxREBRJGRpTaHDhGJRESq7/y6dURNmhCV/Zv59FMiD4+a+VkH6HTog+dRrai0acN+ISdP1r9jHJ1DqVSSXC6ngoKCSl9yubzSUAcqVKLyMC6Onjx5on6VzyKgxtOTaOZMolGjiOzsiDp1Itq4sfT87dvs+3npkubnfH2JPv6Y/bx5M5FMpnm+uJhILCbau5cdT5xINGyYpk14OKu7TCK0+kR/J9xVYzU8skOjRy6XIyUlBfn5+dXamZqawsnJqdqNlZ5eXiib3Sc4OLjyzAZ37gDr1wOzZwOffw5ERgIffwxIJMDkyYAqm0D5WUsHh9JzqalAmbi5AABDQ8DaWtOmZcuKdajOle1u1RP6KyqqvUN80LdRo1QqcffuXYjFYjRt2hQSiaTCvjIiglwux6NHj3D37l24u7tXuZgyPi4OFs7O6uPKUnY8uzDw6qvA0qXs2NsbiI1l4yeTJ2vl3nQV/RcV3lJp1MjlciiVSjRv3hympqZV2pmYmMDIyAj37t2DXC5X5/Ipj4WFRc3iEDs5AV5emmWensDvv7OfVTF609KYrYq0NECVFcLREUhP16yjpITNCKk+7+jIPlMW1XGZOMD1if5Ouqv+0/CWCgeo0TYOrW716NULKJ914cYNNksDsC6LoyNw7Fjp+ZwcNgvUowc77tEDyM5mszoqwsPZd7pbt1KbkyeB4uJSm7AwwMNDkK4PoM+iwlsqHCGZNQs4d451f27dAn79lU3zqsJ1ikTAzJnA118Df/4JXL0KTJoENG0KqBZ+enoCQUHAlCnAhQvAP/8AH34IjBvH7ADgjTfYOM0777Cp5127gB9+YGM5AqG/3R8+UMsRki5dgH37gPnzgUWLWMvk++/ZuhMV8+YBeXls3Ul2NvDaa8Dhw2wRm4odO5iQ9O/PvtMjR7K1LSqsrICjR5lY+fgAtrZsQV3ZtSz1jP6KCh+o5QjNkCHsVRUiEROcRYuqtrG2Zq2c6njlFeDUqRfzsQ7g3R8Oh6NV9FdU+EAtpwxUg38uNbHhPB/9FRXeUuEAMDIyAoDnLnwra6P6DOfF0P8xFS4qjRqxWAyZTIb0Z+s9TE1NK138lp+fj/T0dMhkMojFYiFc1Rv0V1R494fzDFUy+PTyC8nKIZPJNBLHc14M/RUV3lLhPEMkEsHJyQn29vYoLrtIrAxGRka8haIl9FdUeEuFUw6xWMyFox7gA7UcDkercFHhcDhaRX9FhXd/OBxB0F9R4S0VDkcQ9F9UeEuFw6lX9FdU+C5lDkcQ9FdUVNG5Nm5k28s5HE69oL+i8sUXgIUFcPw4237OhYXDqRf0V1RefZUFr7G0ZMIyaFDFzG4cDkfr6K+oAED37qXCcvIkFxYOpx7Qb1EBWIDgsDAWdu/UKS4sHE4do/+iAgBdu2oKy8CBQG7u8z/H4XBqTeMQFYAFIlYJy+nTXFg4nDpCcFHJT0vDmU8/xW89e2JX5874a/hwZMbG1s3FunQB/v4bkMlYuoOgIJZrhcPhaA1BQx/InzxB2IQJcOjaFX4bNsDY2hq59+5BUpMMcC/Kq68yYRkwADhzhgnL4cOl61o4HM5LIaioxG3eDFNHR3RfskRdZt6sWd1f2MeHCYu/P3D2LBAYyITFyqrur83h6DmCisrDiAg49eqFU7NmIT0qCqb29nAfNw6tR4+u1L6oqAhFRUXq49znzOKcnjMHOXfuVHpOYmUF/2PHmLCcO4dcLy+c9fZGSSVBj8XGxgjcuVN9fGHRImRculT5RUUiDNq7V30YvXw50s6dq9LHwF27IJZIAAAx33+P5BMnqrT137pV3Yq7un49Hhw9WqVt340bYWJnBwCI37IFd//8s0pb3zVr1GKesGMHbv/2W5W2vVasgFXr1gCA27//joT//a9K2+5ffw3rdu0AAIkHDiBu8+YqbV/9z39g7+MDAHgQFoar69ZVaes9dy6cevYEACSfOoWYVauqtG0/bRpsO3aEPCcHj6KiEL9lC4uaTwRSKtU/A4Bj9+6wcndH61Gj6ra1rOcIKipPHz7EzV270HbyZLR77z1kXb2K6JAQGBgZwU2V+rEMISEhWLhwofrYuFwA4/Lk3r+P7Bs3Kj1nbGMDeHuzXLb9+8MiORmds7IQ4eqK4nLRwQzLJfbOe/iwynpF5fLx5icnV2kLQGNvUn5qarW2VGZzZEF6erW2ypKSUttHj6q1Vcjl6p8LMzOrty0j6oVZWdXalhQWqn8uevKketsy0e7lOTnV2haX+Wciz82t1vb0zJlVniuPSnib9evHReUlEJGAyU5CO3aEdfv2CNixQ10WtXQpMmNjEVhJVrbyLZWs1FS09PBARlISbFS5ZcuQceUKSqpYnm9gZAT7V19lB5cvQ+nnB4PsbMg9PfH4++9BFhZqW5GBARxUCbEBZMXHQ56dXeV9OaoSbAN4nJCAoqysKm3tu3aFwTMRy755E4UZGVXa2vn4qFs1T27fRkE1gZztOneGWCoFAOQkJiI/JaVKW9uOHdXCmXv/PvKSkqq0tenQAUbm5gCAp0lJeHr/fpW21l5ekDzrUualpCA3MbFKW1nbtjB+llA8Py2tyhYmAFi5u8PYxgbpUVG4uXs3ko8f1xCl8ogMDCCxtISBRAKIRDAwMoKBkRHERkYwkEhgYGgIkVgMiYUFjCwt0WnWLJja22vUkfPwISybN0fOgwewrI8uegNGUFH5w98fTj17oluZtI83Q0MR++OPGBER8dzPZyYnw9bZuUpRqRWXL7N8tZmZpUv8n33JOboDESEpIgKxGzYg69o1dbmRpSVsO3aEtZcXLFxcYN68OUzs7CCVyWBkbl6hBVlbuKjUHEG7P3be3si5e1ejLCcxEWYvKxAvQseOQHg4E5aoKDY7FBbGhUWHyL51C9EhIeoxKrFUihZDh6LF4MGw8/FRt/g4wiKoqLSdNAlHJ0zAtY0b4RIYiMyrV3Hrt9/QdcECYRx65RUmLP36AdHRbBA3LIwlyeYIhkIuR+z69YjbvBmkUMBAIkHbSZPQdtIkNjbG0SkE7f4AQNLx44j5/nvk3rsH82bN0HbSpCpnf8qj1e5PWWJjmbA8esQGc//+mwuLQGTfuIEzn32G7IQEAGwQtfO8eTBv3rxe/eDdn5ojeN4fZz8/OPv5Ce2GJu3bl7ZYLl1iXaK//wb4f8V6Q6lQ4PrWrbiyejWUxcWQymToEhwMl4AAoV3jPAfBl+nrLO3bAxERgL09EBPDukKZmUJ71SgozMzE8alTEbNyJZTFxWjapw8G/fEHF5QGAheV6mjXjgmLgwMTlv79gWqmfDkvT3p0NA6NGoXUM2cgNjZG14UL0WftWvVCPo7uw0XleXh5lQqLatqZC4vWIaUScZs349jbb6MgPR2Wbm4IDA1F61GjIHrOIkeObsFFpSZ4erKQlI6OwJUrpYO4HK1QlJ2NEx9+iJhVq0AKBVwHD0ZgaChk7u5Cu8Z5Abio1JS2bVmLxdERuHqVCUs1K1o5NSPjyhUcGjUKySdOwEAiQdfgYPRcvhxGZmZCu8Z5Qbio1Ia2bVmLxcmpdNqZC8sLQUS4uXs3/p44EfkpKTB3cUHgr7+i9Zgx+tndWbaMJbgruxepsBCYPp3NKpqbAyNHAmlpmp+7fx8YPBgwNWWTBnPnAmX2dQFg38nOnQGpFGjdGvjllzq+merholJbPDzYL7FpU+DaNS4sL4CiqAgXgoMRuXAhlCUlaO7vj6Ddu9HE01No1+qGyEjgxx/Z4sqyzJoF/N//AXv2ACdOAMnJwOuvl55XKJigyOUs9s/WrUwwvvqq1ObuXWbTty+bTJg5E3j3XeDIkXq4sSqgBkxGUhIBoIykpPq/+I0bRE2bso3zXl5Eqan170MDJC8lhQ6PHUs7vLzo1/bt6dqmTaRUKoV267k8efCACGDvtSE3l8jdnSgsjKhPH6IZM1h5djaRkRHRnj2ltvHx7Pt09iw7PniQyMBA87u1fj2RpSVRURE7njePqF07zWuOHUsUGFg7P7UIb6m8KO7urMXi7AzExbH/FKmpQnul06RHReHwmDHIvHoVEktL+G3YAK93321Q3Z3c3Fzk5OSoX2V3zVfK9OmsJeHvr1keHQ0UF2uWt20LuLiwwGEAe+/Qgc08qggMZCFQVZspz56tWHdgYGkdAsBF5WVQCUuzZkB8PBOWakIMNFaICAn/+x+OvfMOCjMzIfPwQNDu3XDq1Uto12qNp5cXrKys1K+QkJCqjUNDgYsXgcpsUlMBiYTFSy6Lg0PpP6fUVE1BUZ1XnavOJicHKCio8X1pE8GX6Td4WrdmwtK3L3D9OnuPiGCDuRyUFBbiwsKFSHwWAMl18GB0W7gQhiYmAnv2YsTHxcHC2Vl9LH0Ws6YCDx4AM2awDanGxvXknW7AWyraoFUrJizNmwMJCbzF8oynSUkImzABiX/+CZFYjM7z5qHn8uUNVlAAwMLCApaWlupXlaISHc0G8Dt3BgwN2evECWD1avazgwMbgC0f7CstjS1bANh7+dkg1fHzbCwtAYGeMxcVbeHmxoTFxYUJi58fG81vpKSeO4cjY8bgcXw8pE2aoN+mTWg7eXKDGj95Kfr3Z+uZYmJKX6++Crz5ZunPRkYsnKmKhAQ2hayKHNijB6uj7OxiWBgTDC+vUpuydahsykQfrHcEGyLWAoLO/lTFnTtErq5sFN/dnejhQ6E9qleUSiXF/fwz/dq+Pe3w8qJDo0fTU136/bwgLzz7U5aysz9ERFOnErm4EIWHE0VFEfXowV4qSkqI2rcnCgggiokhOnyYyM6OaP78Ups7d4hMTYnmzmWzR2vXEonFzFYguKjUBXfvlgpL69ZEL/NFbEAU5+XRqTlzaIeXF+3w8qKzn39OxQUFQrulFepEVAoKiKZNI2rShAnDiBFEKSman0lMJBo4kMjEhMjWlmjOHKLiYk2biAiiTp2IJBIiNzeiLVte3EctIHiQppehzoI0aYPERDa2kphYOuaix8F9cu/fx6kZM5B94wZEhobw+ewzuI8bpzfdHR6kqebwMZW6okULJiQtWgC3b7MxlgcPhPWpjkg+fRqHx45F9o0bMLaxQf+ff0ab8eP1RlA4tYOLSl3i6spG/Fu2LBWWalJaNDSICPFbtuDEBx+gOCcHNh07ImjPHnVSME7jhItKXePiwlosbm7AnTt6IywlhYU4+9lnuPTttyClEq1GjoT/L7/AtPxCLE6jg4tKfaASllat2AYwPz/g3j2hvXph8lJS8PekSUg8cAAisRg+n3+OrgsXqhOdcRo3XFTqi+bNKwpLNRn7dJVHFy/iyNixyLp2DVKZDP02bYLHm2/y8ROOGi4q9UmzZkxYWrdmgtLAhOXWnj049vbbbP9OmzYI3L1bIx0shwNwUal/VMLi7s66QH5+rOWiwyiLixH59de4sGABi38SEICAHTtgXmYPDIejgouKEDg7s02HZYWlmoTkQlKYlYXwKVNwc+dOAMArH3+M11atUid053DKw0VFKJydWYulTRs2G6SDwvI4Ph5Hxo5FemQkDM3M4LtmDdq//z4fP+FUCxcVIWnalAmLhwdbGNenD1vPogPcO3wYRydORF5ysjp+bLN+/YR2i9MA4KIiNE5OrCvUti3w8CFrsdy6JZg7pFTi8g8/4J85c6AoKIBTr14ICg2FVevWgvnEaVhwUdEFdERY5Lm5OPHhh7i2cSMAwPPtt9Fn/XpIrKzq3RdOw0VnROXapk34tV07RFcXnk+fcXRkXSFPTyApiXWFbt6st8vnJCbi6BtvqPPv9Fi2DN6ffAIDsbjefODoB1oXlZLCwlp/JvPqVdzasweyNm207U7DwsGBtVi8vFiAJz8/4MaNOr9s8qlTODJuHHLu3IGJgwMGbN+OlkOH1vl1OfqJ1kRFIZcj/pdf8GdAQK0+V5yXhzOffopuCxfyZjZQKizt2pUKS0JCnVyKiBD38884MW0ainNzYdupE4J27YJN+/Z1cj1O46BWoqKQyxHz3Xc4PGYMjr75Jh48C2N3e98+/BkQgITt29F20qRaORD19ddo6usLxxqEvysqKtJIj5D79GmtrtVgsLcHwsOB9u1ZrFs/PxZUW4uUFBbizKefImblSvWGwP5btsDEzk6r1+HoMIMGAU+elB4vW6YZMzczszRsZS2oVTT9K2vW4NaePXDs3h0ZMTE4PXs23IYPR+aVK/CeNw8ugYG16oMnHjyIrPh4BO3aVSP7kJAQLFy4UH1srM/rJVTCoop16ufHWjBayOKXl5KCkx9/jMdxcXoZUIlTQ44cAcrmLVq6FBgzpjRtSEnJC7WSa9VSuX/0KHosXYre33+Pvps2gRQKkEKBgXv3osWgQbUSlLyUFFxctgw9ly+HuKqI5OWYP38+njx5on7Fa/m/t85hZ8eE5ZVXWIR0P7/SJFIvSHp0NI6MHYvHcXHqgNQ8oFIjpXzQRy0FgaxVS6UgNRXW7doBAGTu7hBLJGg7adILfSGz4uJQmJmJw6NHq8tIoUB6VBRu7NyJsZcuVRApqVSqkRKhWF+7P2WxtWXC4u/PorD37cuip3foUOuqbu3Zg6ivv4aypAQyDw/4rlnD9+9wtE6tRIWUShgYGamPRWLxC+8BcezeHYP++EOj7NwXX8DSzQ1e77zDpzLLYmPDhGTAAJbxrl8/4O+/gY4da/RxZXExopctw83QUACAS2Agun/9Nd+/09gRidirfNlLUjtRIcK5L76AwbNgPAq5HBcWLqzw5fT94Yfn1mVkZgaZu7umM6amkFpZVSjnALC2ZkISEABERTFhOXYM6NSp2o8VZmbi9OzZSI+KAkQidJwxo8HlL+bUEUTAW28BqtZ/YSEwdSpgZsaOn5cnugpqJSpuw4ZpHLccMuSFLsp5QZo0YYmiAgKAyMjSFkvnzpWaZ8XH4+RHHyE/JQWGZmbo9c03cPbzq1+fObrL5MmaxxMmVLSp5WwuAPAUHQ2RJ0+AwEDg/Hk2Uh8WxjLeleHeoUM495//QFFYCAtXV/iuWQOrVq2E8VcP4Ck6ao7OLNPn1AIrK+DoUZbaMjubDeJeuAAAUCoUiPn+e/zzySdQFBbCqVcvBO7cyQWFU2/UqvvD0SEsLdk6g4EDgX/+AQYMQPG+ffjnt9+QfOIEALYhsOOsWXzQm1OvcFFpyFhYAIcOAYMHA6dOAYGBkDdrBnGTJui2aBFa8DEvjgDw7k9Dx8ICKV98gXQLCxiVlKDvgwcYOGsWFxSOYHBRacAQEeI2b0bEnDmIcHZGloMDjBQKWH7wAWu5cDgCwEWlgVJSUIAz8+YhZtUqgAgtxoyB1fXrbNA2L4+NtTwbW+Fw6hMuKg2QvORkhE2ahHsHD0JkaIguX36JrgsWQCyTAX/+ydax5OWxXagREUK7y2lkcFFpYKRHR+PIuHHqDYH9N2/W3GFsYgLs3w8EBQH5+WwQ91mICg6nPuCi0oC4tXs3wv/9bxRmZqJJ27YI2r0b9uUWvQEAjI2BfftYS6WgABgyhK1r4XDqAS4qDQBlcTEiFy/GhYULoSwpgUtQEAZs3w6z6lYRGxsDe/cyQSksBP71L+Dw4fpzmtNo4aKi4xQ+fswyBIaGqjcE9vr225rtMJZKgd9+Y4JSVAQMGwYcPFj3TnMaNVxUdJjsGzdKMwSamsJ3zRq0e++92u0wlkqBPXuAESMAuZy9HzhQd05zGj1cVHSUB3//jaNvvIG8pCSYN2+OgJ070axv3xerTCIBdu0CRo5kwvL662yWiFN3hIQAXbqwVc/29sDw4RVDMxYWAtOns3g55ubs95OWpmlz/z4bbDc1ZfXMncvCPJbl+HG2U10qBVq3Bn75pQ5v7PlwUdExSKnE1XXrcGrGDJQUFMChe3cEhoZC9rIZAo2MgJ07gdGjgeJiYNQooFyQLI4WOXGCCca5c2wXeXFx6VS/ilmzgP/7P9aSPHGCZU94/fXS8woFExS5HDhzBti6lQnGV1+V2ty9y2z69mWRAWfOBN59l+0LEwpqwGQkJREAykhKEtoVrVCcl0cnZ8ygHV5etMPLiyKXLiVFcbGWL1JMNG4cEUBkaEj022/arV9PefLgARHA3l+E9HT2zE+cYMfZ2URGRkR79pTaxMczm7Nn2fHBg0QGBkSpqaU269cTWVoSFRWx43nziNq107zW2LFEgYEv5qcW4C0VHSEvORlHJ0zAg7AwGBgaotvixXh1/nwYGGp5z6ehIbB9O/DGG6wZPXYs+0/JqRG5ubkaaWKKahodTZUKw9qavUdHs9aLv3+pTdu2gIsLcPYsOz57lsUidnAotQkMBHJySgOgnz2rWYfKRlWHAHBR0QHSo6JweMwYZCckwNjGBv23bEGrss1gbWNoCGzbBkycyJrY48ezMRfOc/H08oKVlZX6FVKTNL1KJeuW9OrFcjkBQGoqG+tSpcNQ4eDAzqlsygqK6rzqXHU2OTlsjZIA8NAHAnNz925ELVkCKilBEy8v+K5eDTMnp7q/sFgMbNnC3n/5hbVcFAr2zqmS+Lg4WJTJQCCtSXqZ6dOB2Fjg9Ok69Ex34KIiEMriYkSHhODmsxaC68CB6LZ4MQxNTOrPCbEY2LwZMDAAfv6ZtVyUyspjlXIAABYWFrC0tKz5Bz78kE3hnzwJlA1D6ejIBmCzszVbK2lp7JzK5llEP43zqnOq9/IzRmlpLIhXfX6XysC7PwKgXtC2axdb0DZzJnquWFG/gqLCwADYtInNGCiVLNDx1q3174e+QcQEZd8+lrepZUvN8z4+bEau7L6shAQ2haxKAdyjB8tOmZ5eahMWxgRDlY60R4+Ke7vCwkrrEALBhoi1QEOc/cm6fp3+GDCAdnh50a4uXehBeLjQLjEUCqL332ezDyIR0ebNQnukU9R69ueDD4isrIiOHydKSSl95eeX2kydSuTiQhQeThQVRdSjB3upKCkhat+eKCCAKCaG6PBhIjs7ovnzS23u3CEyNSWaO5fNHq1dSyQWM1uB4KJSj9w/epR2+fjQDi8v2h8YSNk3bwrtkiYKBftjYP9niTZtEtojnaHWoqJ6huVfW7aU2hQUEE2bRtSkCROGESOY8JQlMZFo4EAiExMiW1uiOXPYsoCyREQQdepEJJEQublpXkMAeIqOeoCUSsRu2ICra9cCABx79ECvb7+FtPzIvy5ABHz8MfDf/7LjH38E3ntPWJ90AJ6io+bwgdo6pjgvD+e++AIPwsIAAB4TJsB77lztrz/RFiIRsHo1G8T94Qfg/ffZrNAHHwjtGaeBoKPfbP3gaVISTn74IbJv3ICBoSG6BAfX7foTbSESAd99x4Rl1Spg2jQ2iDt9utCecRoAXFTqiLTISJyeNQtFjx/D2MYGvX/4AXbe3kK7VXNEIuDbb5mwrFjBZjIUCtY14nCqgYtKHXBz1y5ELV0KKimBdbt26P3DD/WzoE3biETA8uVMWJYtA2bMYMIya5bQnnF0GEFF5dqmTXgQFoacu3chNjaGXadO6DR7NizLz+k3EHRiQZu2EYmApUuZsCxZAsyezYTlk0+E9oyjowgqKumRkWgzfjysO3QAlZTg8g8/IHzKFAz588+aRTbTIQqzsnB69mykR0aqI7R5vftu7QIq6SoiEbB4MROWRYtYTA+FAvj0U6E94+gggopK340bNY67L1mCvb17IysurvKAzjrK44QEnPzwQ+QlJ8PQzAy9vvkGzn5+QrulXUQiYOFCtgJ3wQLgs8+YsHz+udCecXQMnRpTKc7NBQBIrKwqPV9UVKSx1Tz36dN68as6HoSF4ez8+SgpKIC5iwv6rFkDq5cNqKTLBAczYfnqK+CLL5iwfPml0F5xdAid2ftDSiWily+Hnbc3ZO7uldqEhIRobDv3bNu2nr0shZRKXFm7FqdmzkRJQQEce/ZE4M6d+i0oKr78ko2vAExcvvySLZrjcADozIraC4sWIeXUKQzYvh2mqh2Y5SjfUslKTUVLD496X1FbnJeHc59/jgd//w0A8Jg0Cd5z5ujugra6YsUKYN489vPcuWymSB/GkCqBr6itOTrxVxD59ddIPnEC/lu3VikoAItdUTZ+RbEA3R+NBW1GRugaHAy3ESPq3Q+dYO5cFmx5xgwmMEVFwPff662wcGqGoKJCRIhasgQPjx1D/19+gbmO/wfQWNBma8sWtHXqJLRbwvLxx0xYpk5ly/uLioB169i4C6dRIqioRC1ejMSDB+G7Zg2MTE1R8OgRAMDIwgKGxsZCulaBm6GhiAoJUS9o8129utpWVaPi/feZsPz732wDYlER8NNPbAqa0+gQVFRUi8SOvfWWRnn3r7/WmS6FQi5H9LJluKVa0DZ4MLotWqRzoic4b73FYq5OmsTCU8rlLNhTYxtn4ggrKm+oIoLrKIVZWTg9axbSo6IAkQidZs2C57//rR8L2uqCN95gwjJ+PPDrr6zF8uuvrIzTaOAd3yp4fP06SzkaFQUjc3P0WbsWXu+8wwXleYwaxRLDSyTA77+z45qmseDoBVxUKuH+0aM4OmEC8pKTYe7igoBff4Vznz5Cu9VwGDoU2L8fMDZmGfiGDxcsXQSn/uGiUgbVgrbTs2ZB8WxBW1BoKKxatRLatYZHUBCLIm9qChw+DAwZopnyk6O3cFF5RnFeHk7NmoXYdesAAG0nT4bf+vVVbhng1ID+/ZmgmJuziPIDBwLPtmJw9BcuKgCePnyIsAkT8PDvv2FgZITuS5ag87x5jW+FbF3QuzdLGWFlBZw6xZKUZ2cL7RWnDmn0opJ24QKOjB2L7Bs3YGxrC/+tW+E2fLjQbukX3buz3DTW1sC5cyz3b1aW0F5x6ohGLSo3Q0MRPmUKirKzYd2uHYJ274Ztx45Cu6Wf+PiwLpCdHUtO3rcv8GyxI0e/aJSiopDLcWHhQkQuXgwqKUGLIUPgv20bTMsnuuZol44dgePHWarOK1cAPz8gOVlorzhaptGJSmFWFsLffRe3du9mC9pmz0aPZcv4Ctn6wssLOHECcHYG4uKA114D7twR2iuOFmlUoqJa0PYoOpotaFu3ji9oE4I2bYDTp4FWrYC7d5mwxMYK7RVHSzQaUbl/5Ih6QZuFqysCdu6Es6+v0G41Xlq0YMLSoQOQkgL4+rJBXE6DR+9FhZRKXPnvf3F69mwoCgrg1KsXi9Dm5ia0axxHR9YV6tEDePyYzQo9C3zFabjotaioF7StXw8AaPvWW+izbh1f0KZLNGnC1rEMGMBW3A4ezPYOcRoseisqecnJmgvali5FZ13OYdyYMTNje4RGjmQhE0aPBrZsEdorzguit6Jy+YcfNBe0DRsmtEuc6pBKgdBQFuhJqWTvy5fzgNoNEL0VFVUUOe+5c/mCtoaCoSGLGDdnDjv+7DMWVa64WFi/OLVCb0WFlEoA4N2dhoYqMfwPP7A4t5s2sR3OOTlCe8apIXorKir4GpQGyscfA3/8wUInHD3K1rIkJgrtFacG6K2oqFoqPF1EA2boUODkSTb1fPUq0Lkzi9HC0Wn0VlTwTFREPFVEw8bHB7hwAejala1lGTqUJTArLBTaM04V6O1fnDrxIm+pNHyaN2exWD7+mB2vWME2J4aHC+sXp1L0XlT4mIqeIJGwwdu9e1l36MYNFlnO3x84cgQoKRHaw8pZu5ZtSTA2Brp1Y60uPUdvRYV3f/SUESOA+Hhg2jQ2BX3sGIuH6+wMvP02m5KOjgaePBHaU2DXLmD2bCA4GLh4kbWuAgOB9HShPatT9Ha+lXd/9BiZjLUA5s0DVq5kuYXS01kSs19+KbWzsQEcHABbW/aytmard01M2KxS2XeJBDAyYu/9+wMWFi/v56pVwJQpTOwAYMMG4K+/gJ9/Zmtw9BS9FRXVSkzeUtFjXF1Z/uaVK4GICLY58cwZ1pJJSwMyM9mrtly/Dnh4VHoqNzdXY82MVCqFVCqtaCiXsxbT/PmlZQYGrLt29mztfWpA6K2o8CnlRoSREQuoHRBQWpaby9a1PHoEZGSwV1YWyz+Un1/6rvq5uJgJQXExi/5fBZ5eXiibDyA4OBgLFiyoaJiRASgUrKVUFgcHJlp6jN6KCvhAbePGwoLFatEy8XFxsHB2Vh9X2kpp5OitqBAfqOXUARYWFrC0tHy+oa0tIBazblhZ0tLY7JUeoxN/cTd+/RX7BwxAqLc3jowbh4wrV166Tj5QyxEUiYQt3Dt2rLRMqWTHPXoI51c9ILio3Dt0CBe/+Qbtp03DwD17IPPwQMT776PwRQbYysK7PxyhmT2bbYjcupUNHn/wAQtEpZoN0lMEF5XrW7ei1ahRaDViBKxat0bX4GAYGhvj9ktG/1IP1PLuD0coxo5lO66/+gro1AmIiWFpYPU8FYygYyoKuRxZcXHwmjJFXSYyMIBj9+7IuHy5gn1RURGKiorUx0+eTe0lp6SgQCUiz8jIz0euXI6U9HQUP3xYR3fAaSw8TUkBACjLfc+ey4cfslcjQlBRKcrOBikUMLax0Sg3trFBzt27FexDQkKwcOFC9bHk2fsrr75a9UWGDNGGqxwOACA+LQ0yFxeh3dBpGtTsz/z58zF79mz1cUlJCe4mJMDO2RkG5bo5ubm58PLyQlxcHCy0sTpSj+DPpnKqey6kVCIvLQ3u3t4CeddwEFRUpDIZRGJxhUHZwsxMGNvaVrSvZPWidRUj6TnPukbOzs41mwJsRPBnUznPfS68hVIjBB3FFEsksPbyQlqZJFKkVCL1/HkeV5bDaaAI3v1pO3kyzn7+OazbtYNNhw5I2L4dJQUFcBsxQmjXOBzOCyC4qLgOHIjCrCxc+e9/UZiRgSZt26Lvjz/CpJLuT22QSqUIDg7my6grgT+byuHPRTuIiHhiFQ6Hoz34yjAOh6NVuKhwOBytwkWFw+FoFS4qHA5Hq+itqKxduxYtWrSAsbExunXrhgt6FsX85MmTGDp0KJo2bQqRSIQ//vhD4zwR4auvvoKTkxNMTEzg7++PmzdvathkZWXhzTffhKWlJWQyGd555x08ffpUw+bKlSvo3bs3jI2N0bx5c3zzzTd1fWsvRUhICLp06QILCwvY29tj+PDhSEhI0LApLCzE9OnTYWNjA3Nzc4wcORJp5eKe3L9/H4MHD4apqSns7e0xd+5clJSL2H/8+HF07twZUqkUrVu3xi9l4+M2ZkgPCQ0NJYlEQj///DNdu3aNpkyZQjKZjNLS0oR2TWscPHiQvvjiC9q7dy8BoH379mmcX7ZsGVlZWdEff/xBly9fpn/961/UsmVLKigoUNsEBQVRx44d6dy5c3Tq1Clq3bo1jR8/Xn3+yZMn5ODgQG+++SbFxsbSzp07ycTEhH788cf6us1aExgYSFu2bKHY2FiKiYmhQYMGkYuLCz19+lRtM3XqVGrevDkdO3aMoqKiqHv37tSzZ0/1+ZKSEmrfvj35+/vTpUuX6ODBg2Rra0vz589X29y5c4dMTU1p9uzZFBcXR2vWrCGxWEyHDx+u1/vVRfRSVLp27UrTp09XHysUCmratCmFhIQI6FXdUV5UlEolOTo60ooVK9Rl2dnZJJVKaefOnUREFBcXRwAoMjJSbXPo0CESiUSUlJRERETr1q2jJk2aUFFRkdrm008/JQ8Pjzq+I+2Rnp5OAOjEiRNExJ6DkZER7dmzR20THx9PAOjs2bNExATbwMCAUlNT1Tbr168nS0tL9bOYN28etWvXTuNaY8eOpcDAwLq+JZ1H77o/crkc0dHR8Pf3V5cZGBjA398fZ/U8irmKu3fvIjU1VeMZWFlZoVu3bupncPbsWchkMrxaZoe3v78/DAwMcP78ebWNr68vJBKJ2iYwMBAJCQl4/PhxPd3Ny/HkWf4fa2trAEB0dDSKi4s1nk3btm3h4uKi8Ww6dOgAhzJxTwIDA5GTk4Nr166pbcrWobJpLN+x6tA7UcnIyIBCodD4QgCAg4MDUlNTBfKqflHdZ3XPIDU1Ffb29hrnDQ0NYW1trWFTWR1lr6HLKJVKzJw5E7169UL79u0BML8lEglkMpmGbfln87z7rsomJycHBQUFdXE7DQbBl+lzOHXF9OnTERsbi9OnTwvtSqNC71oqtra2EIvFFUbz09LS4KjnUcxVqO6zumfg6OiI9HLpN0tKSpCVlaVhU1kdZa+hq3z44Yc4cOAAIiIi0KxZM3W5o6Mj5HI5srOzNezLP5vn3XdVNpaWljAxMdH27TQo9E5UJBIJfHx8cKxMFHOlUoljx46hh55HMVfRsmVLODo6ajyDnJwcnD9/Xv0MevTogezsbERHR6ttwsPDoVQq0a1bN7XNyZMnUVxcrLYJCwuDh4cHmjRpUk93UzuICB9++CH27duH8PBwtGzZUuO8j48PjIyMNJ5NQkIC7t+/r/Fsrl69qiG6YWFhsLS0hJeXl9qmbB0qm8byHasWoUeK64LQ0FCSSqX0yy+/UFxcHL333nskk8k0RvMbOrm5uXTp0iW6dOkSAaBVq1bRpUuX6N69e0TEppRlMhnt37+frly5QsOGDat0Stnb25vOnz9Pp0+fJnd3d40p5ezsbHJwcKCJEydSbGwshYaGkqmpqU5PKX/wwQdkZWVFx48fp5SUFPUrPz9fbTN16lRycXGh8PBwioqKoh49elCPHj3U51VTygEBARQTE0OHDx8mOzu7SqeU586dS/Hx8bR27Vo+pfwMvRQVIqI1a9aQi4sLSSQS6tq1K507d05ol7RKREQEAajwmjx5MhGxaeUvv/ySHBwcSCqVUv/+/SkhIUGjjszMTBo/fjyZm5uTpaUlvf3225Sbm6thc/nyZXrttddIKpWSs7MzLVu2rL5u8YWo7JkAoC1btqhtCgoKaNq0adSkSRMyNTWlESNGUEpKikY9iYmJNHDgQDIxMSFbW1uaM2cOFRcXa9hERERQp06dSCKRkJubm8Y1GjM89AGHw9EqejemwuFwhIWLCofD0SpcVDgcjlbhosLhcLQKFxUOh6NVuKhwOBytwkWFw+FoFS4qHA5Hq3BR0RHeeustDB8+XLDrT5w4EUuXLq2Xa3322Wf46KOP6uVanPqHr6itB0QiUbXng4ODMWvWLBBRhTgf9cHly5fRr18/3Lt3D+bm5nV+vYyMDLi5uSEmJgZubm51fj1O/cJFpR4oG9Bo165d+OqrrzSCMZubm9fLH3NVvPvuuzA0NMSGDRvq7ZqjR49GixYtsGLFinq7Jqd+4N2fesDR0VH9srKygkgk0igzNzev0P3x8/PDRx99hJkzZ6JJkyZwcHDApk2bkJeXh7fffhsWFhZo3bo1Dh06pHGt2NhYDBw4EObm5nBwcMDEiRORkZFRpW8KhQK//fYbhg4dqlG+bt06uLu7w9jYGA4ODhg1apT6nFKpREhICFq2bAkTExN07NgRv/32m8bnr127hiFDhsDS0hIWFhbo3bs3bt++rT4/dOhQhIaGvsjj5Og4XFR0mK1bt8LW1hYXLlzARx99hA8++ACjR49Gz549cfHiRQQEBGDixInIz88HAGRnZ6Nfv37w9vZGVFQUDh8+jLS0NIwZM6bKa1y5cgVPnjzRiFUbFRWFjz/+GIsWLUJCQgIOHz4MX19f9fmQkBBs27YNGzZswLVr1zBr1ixMmDABJ06cAAAkJSXB19cXUqkU4eHhiI6Oxr///W+NFBddu3bFw4cPkZiYqOWnxhEcAXdIN0q2bNlCVlZWFconT55Mw4YNUx/36dOHXnvtNfVxSUkJmZmZ0cSJE9VlKSkpGlHgFy9eTAEBARr1PnjwgABUCHugYt++fSQWi0mpVKrLfv/9d7K0tKScnJwK9oWFhWRqakpnzpzRKH/nnXfUsVjmz59PLVu2JLlcXsVTYOk/ANDx48ertOE0THiMWh3mlVdeUf8sFothY2ODDh06qMtUgZdVEcouX76MiIiISsdnbt++jTZt2lQoLygogFQq1RhMHjBgAFxdXeHm5oagoCAEBQVhxIgRMDU1xa1bt5Cfn48BAwZo1COXy+Ht7Q0AiImJQe/evWFkZFTlvalCLqpaWRz9gYuKDlP+j1IkEmmUqYRAqVQCAJ4+fYqhQ4di+fLlFepycnKq9Bq2trbIz8+HXC5Xp+KwsLDAxYsXcfz4cRw9ehRfffUVFixYgMjISHUGw7/++gvOzs4adUmlUgCoUYzWrKwsAICdnd1zbTkNCy4qekTnzp3x+++/o0WLFjA0rNmvtlOnTgCAuLg49c8AS9fh7+8Pf39/BAcHQyaTITw8HAMGDIBUKsX9+/fRp0+fSut85ZVXsHXrVhQXF1fZWomNjYWRkRHatWtXq3vk6D58oFaPmD59OrKysjB+/HhERkbi9u3bOHLkCN5++20oFIpKP2NnZ4fOnTtrpLE4cOAAVq9ejZiYGNy7dw/btm2DUqmEh4cHLCws8Mknn2DWrFnYunUrbt++jYsXL2LNmjXYunUrABbJPicnB+PGjUNUVBRu3ryJ7du3a0yjnzp1Cr179270kef1ES4qekTTpk3xzz//QKFQICAgAB06dMDMmTMhk8lgYFD1r/rdd9/Fjh071McymQx79+5Fv3794OnpiQ0bNmDnzp3qVsXixYvx5ZdfIiQkBJ6enggKCsJff/2ljlxvY2OD8PBwPH36FH369IGPjw82bdqk0WoJDQ3FlClT6uhJcISEL37joKCgAB4eHti1a1e9pJg4dOgQ5syZgytXrtS4m8ZpOPCWCgcmJibYtm1btYvktEleXh62bNnCBUVP4S0VDoejVXhLhcPhaBUuKhwOR6twUeFwOFqFiwqHw9EqXFQ4HI5W4aLC4XC0ChcVDoejVbiocDgcrcJFhcPhaJX/BxHUW1MEoQIFAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "TIMES = np.linspace(0, 2000, 40000)\n", + "for kp in [1, 1000]:\n", + " for setpoint in [2, 4, 6]:\n", + " ts, builder = CTLSB.plotClosedLoop(setpoint=setpoint, kp=kp, kf=None, figsize=(2,2), \n", + " times=TIMES, ylim=[0, 8], title=\"setpoint: %d, kp: %d\" % (setpoint, kp))" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/src/controlSBML/archive/siso_closed_loop_designer.py b/src/controlSBML/archive/siso_closed_loop_designer.py index de6e316..8487661 100644 --- a/src/controlSBML/archive/siso_closed_loop_designer.py +++ b/src/controlSBML/archive/siso_closed_loop_designer.py @@ -38,7 +38,7 @@ ################################################################## def _calculateClosedLoopTf(sys_tf=None, kp=None, ki=None, kd=None, kf=None, sign=-1): # Construct the transfer functions - controller_tf = util.makePIDTransferFunction(kp=kp, ki=ki, kd=kd) + controller_tf = util.makePIDTransferFunction(kP=kp, kI=ki, kd=kd) # Filter if kf is not None: is_none = False diff --git a/src/controlSBML/constants.py b/src/controlSBML/constants.py index 195e19b..decf044 100644 --- a/src/controlSBML/constants.py +++ b/src/controlSBML/constants.py @@ -1,9 +1,9 @@ """Constants for Project.""" import collections -from docstring_expander.kwarg import Kwarg +from docstring_expander.kwarg import Kwarg # type: ignore import matplotlib.pyplot import numpy as np -import pandas as pd +import pandas as pd # type: ignore import os @@ -67,7 +67,7 @@ def equals(self, other): BIOMODELS_ZIP_FILENAME = "biomodels.zip" # Constants -END_TIME = 5 # Default endtime +END_TIME = 5.0 # Default endtime EVENT = "event" INPUT = "input" IN = "in" @@ -82,7 +82,7 @@ def equals(self, other): POINTS_PER_TIME = 10 SCORE = "score" SETPOINT = "setpoint" -START_TIME = 0 # Default start time +START_TIME = 0.0 # Default start time STATE = "state" STEP_VAL = 1 # Multiplier used for simulation input TIME = "time" @@ -112,13 +112,13 @@ def equals(self, other): O_YTICKLABELS = "yticklabels" # Control parameters -CP_KP = "kp" -CP_KI = "ki" -CP_KF = "kf" +CP_KP = "kP" +CP_KI = "kI" +CP_KF = "kF" CONTROL_PARAMETERS = [CP_KP, CP_KI, CP_KF] -KP_SPEC = "kp_spec" -KI_SPEC = "ki_spec" -KF_SPEC = "kf_spec" +KP_SPEC = "kP_spec" +KI_SPEC = "kI_spec" +KF_SPEC = "kF_spec" CONTROL_PARAMETER_SPECS = [KP_SPEC, KI_SPEC, KF_SPEC] # Default values of options @@ -191,7 +191,7 @@ def equals(self, other): ALL_KWARGS.extend(kwargs) # TimeSeries -MS_IN_SEC = 1000 +MS_IN_SEC = 1000.0 SEC_IN_MS = 1.0/MS_IN_SEC TIMESERIES_INDEX_NAME = "miliseconds" TIMES = np.linspace(0, 5, 50) diff --git a/src/controlSBML/control_sbml.py b/src/controlSBML/control_sbml.py index e82a043..ee9a1c3 100644 --- a/src/controlSBML/control_sbml.py +++ b/src/controlSBML/control_sbml.py @@ -29,15 +29,15 @@ _ = ctlsb.plotTransferFunctionFit() # Uses the same staircase function as above # Construct a SISO closed loop system and do a trail and error design - _ = ctlsb.plotClosedLoop(kp=1, ki=0.1, kf=0.5, setpoint=3) - _ = ctlsb.plotClosedLoop(kp=0.8, ki=0.2, kf=0.1, setpoint=5) + _ = ctlsb.plotClosedLoop(kP=1, kI=0.1, kF=0.5, setpoint=3) + _ = ctlsb.plotClosedLoop(kP=0.8, kI=0.2, kF=0.1, setpoint=5) # Automatically design - _ = ctlsb.plotSISOClosedLoopDesign(kp=True, ki=True, min_value=0, max_value=10, num_iteration=20, setpoint=4) + _ = ctlsb.plotSISOClosedLoopDesign(kP_spec=True, kI_spec=True, min_value=0, max_value=10, num_iteration=20, setpoint=4) param_dct = {kp: ctlsb.kp, ki: ctlsb.ki, kf: ctlsb.kf} # Explore variations on the design - new_param_dct = {n: v*1.1 for n, v param_dct.items() for n in ["kp", "ki", "kf"]} + new_param_dct = {n: v*1.1 for n, v param_dct.items() for n in ["kP", "kI", "kF"]} _ = ctlsb.plotClosedLoop(setpoint=5, **new_param_dct) # Do further trail and error @@ -47,6 +47,9 @@ is_plot: bool (if False, not plot is done. Default is True.) Follow matplotlib conventions for plot options: xlabel, ylabel, title, xlim, ylim, markers, etc. set: changes internal state of ControlSBML. No value is returned. Little computation is done. + +Many of the instance variables are set by the Options class dynamically, which is invisible to type checking. Check out +the use of the setOptions method. """ from controlSBML.sbml_system import SBMLSystem @@ -69,7 +72,7 @@ PLOT_KWARGS = list(set(cn.PLOT_KWARGS).union(cn.FIG_KWARGS)) SETPOINT = 1 C_SETPOINT = "setpoint" -TIMES = np.linspace(cn.START_TIME, cn.END_TIME, cn.POINTS_PER_TIME*(cn.END_TIME-cn.START_TIME)) +TIMES = np.linspace(cn.START_TIME, cn.END_TIME, int(cn.POINTS_PER_TIME*(cn.END_TIME-cn.START_TIME))) C_INITIAL_VALUE = "initial_value" C_FINAL_VALUE = "final_value" C_NUM_STEP = "num_step" @@ -169,6 +172,15 @@ def copy(self): ctlsb.setOptions(**persistent_options) return ctlsb + def _checkKwargs(self, **kwargs): + """ + Checks that the kwargs are valid. + """ + keys = set(kwargs.keys()) + diff = keys.difference(set(OPTIONS)) + if len(diff) > 0: + raise ValueError("Invalid kwargs: %s" % str(diff)) + def equals(self, other:object): if not isinstance(other, ControlSBML): return False @@ -184,8 +196,8 @@ def equals(self, other:object): def getAntimony(self): return self._roadrunner.getAntimony() - def getGrid(self, min_value:int=0, max_value:int=10, num_coordinate:int=10, kp_spec:bool=False, - ki_spec:bool=False, kf_spec:bool=False, is_random=True)->Grid: + def getGrid(self, min_value:int=0, max_value:int=10, num_coordinate:int=10, kP_spec:bool=False, + kI_spec:bool=False, kF_spec:bool=False, is_random=True)->Grid: """ Creates a grid of values for the control parameters based on the specified control design. @@ -206,9 +218,9 @@ def makeAxis(name, spec): grid.addAxis(name, min_value=min_value, max_value=max_value, num_coordinate=num_coordinate) return [spec] # - makeAxis(cn.CP_KP, kp_spec) - makeAxis(cn.CP_KI, ki_spec) - makeAxis(cn.CP_KF, kf_spec) + makeAxis(cn.CP_KP, kP_spec) + makeAxis(cn.CP_KI, kI_spec) + makeAxis(cn.CP_KF, kF_spec) return grid def getPossibleInputs(self): @@ -219,7 +231,7 @@ def getPossibleOutputs(self): sbml_system, _ = self.getSystem() return sbml_system.getValidOutputs() - def getInputName(self, option_set:OptionSet=None): + def getInputName(self, option_set:Optional[OptionSet]=None): """ Args: option_set: OptionSet @@ -228,12 +240,12 @@ def getInputName(self, option_set:OptionSet=None): str (Name of input) """ if option_set is None: - input_names = self.input_names + input_names = self.input_names # type: ignore else: - input_names = option_set.input_names + input_names = option_set.input_names # type: ignore return input_names[0] - def getOutputName(self, option_set:OptionSet=None): + def getOutputName(self, option_set:Optional[OptionSet]=None): """ Args: option_set: OptionSet @@ -242,12 +254,12 @@ def getOutputName(self, option_set:OptionSet=None): str (Name of output) """ if option_set is None: - output_names = self.output_names + output_names = self.output_names # type: ignore else: - output_names = option_set.output_names + output_names = option_set.output_names # type: ignore return output_names[0] - def getOptions(self, options:dict=None): + def getOptions(self, options:Optional[dict]=None): """ Gets current values of the persistent options @@ -259,8 +271,8 @@ def getOptions(self, options:dict=None): suptitle title writefig xlabel xlim xticklabels ylabel ylim yticklabels """ if options is None: - options = OPTIONS - return {k: getattr(self, k) for k in options} + option_lst = OPTIONS + return {k: getattr(self, k) for k in option_lst} def getOpenLoopTransferFunction(self): return self._fitter_result.transfer_function @@ -272,6 +284,7 @@ def getTimes(self): return self.times def getStaircase(self, **kwargs): + self._checkKwargs(**kwargs) option_set = self.getOptionSet(**kwargs) return Staircase(initial_value=option_set.initial_value, final_value=option_set.final_value, num_step=option_set.num_step, num_point=self._getNumpoint(option_set)) @@ -286,6 +299,7 @@ def getSystem(self, **kwargs): Returns: SBMLSystem, TranferFunctionBuilder """ + self._checkKwargs(**kwargs) option_set = self.getOptionSet(**kwargs) if option_set.input_names is None: input_names = [] @@ -318,6 +332,7 @@ def getClosedLoopTransferFunction(self, **kwargs): Returns: control.TransferFunction """ + self._checkKwargs(**kwargs) option_set = self.getOptionSet(**kwargs) sbml_system, _ = self.getSystem(**option_set) if len(sbml_system.input_names) != 1: @@ -327,9 +342,9 @@ def getClosedLoopTransferFunction(self, **kwargs): designer = SISOClosedLoopDesigner(sbml_system, self.getOpenLoopTransferFunction(), setpoint=option_set.setpoint, is_steady_state=sbml_system.is_steady_state, sign=option_set.sign) - kp = 0 - ki = 0 - kf = 0 + kP = 0 + kI = 0 + kF = 0 for parameter_name in CONTROL_PARAMETERS: parameter = getattr(self, parameter_name) if parameter is not None: @@ -337,7 +352,7 @@ def getClosedLoopTransferFunction(self, **kwargs): raise ValueError("Must assign float to kp, ki, and kf before using this method.") stmt = "%s = %f" % (parameter_name, parameter) exec(stmt) - designer.set(kp=kp, ki=ki, kf=kf) + designer.set(kp=kP, ki=kI, kf=kF) return designer.closed_loop_transfer_function def getParameterStr(self, parameters:List[str], **kwargs): @@ -491,7 +506,7 @@ def plotTransferFunctionFit(self, num_numerator:int=cn.DEFAULT_NUM_NUMERATOR, self._fitter_result = siso_transfer_function_builder.fitTransferFunction(num_numerator=num_numerator, num_denominator=num_denominator, staircase=staircase, fit_start_time=fit_start_time, fit_end_time=fit_end_time, times=option_set.times) - if self.is_plot: + if self.is_plot: # type: ignore siso_transfer_function_builder.plotFitterResult(self._fitter_result, **self._getPlotOptions(**option_set)) return self._fitter_result.time_series, self._fitter_result.antimony_builder @@ -505,6 +520,7 @@ def plotClosedLoop(self, **kwargs): Timeseries AntimonyBuilder """ + self._checkKwargs(**kwargs) option_set = self.getOptionSet(**kwargs) # Only consider the explicitly specified parameters for parameter_name in CONTROL_PARAMETERS: @@ -516,7 +532,7 @@ def plotClosedLoop(self, **kwargs): sbml_system, _ = self.getSystem(**option_set) response_ts, builder = sbml_system.simulateSISOClosedLoop(input_name=self.getInputName(option_set=option_set), output_name=self.getOutputName(option_set=option_set), - kp=option_set.kp, ki=option_set.ki, kf=option_set.kf, setpoint=option_set.setpoint, sign=option_set.sign, + kp=option_set.kP, ki=option_set.kI, kf=option_set.kF, setpoint=option_set.setpoint, sign=option_set.sign, times=option_set.times, is_steady_state=sbml_system.is_steady_state, inplace=False, initial_input_value=None, ) if (not "title" in plot_options) or (len(plot_options["title"]) == 0): @@ -525,8 +541,9 @@ def plotClosedLoop(self, **kwargs): sbml_system.plotSISOClosedLoop(response_ts, option_set.setpoint, **plot_options) return response_ts, builder - def plotGridDesign(self, grid:Grid=None, num_restart:int=1, is_greedy:bool=False, is_plot_grid:bool=False, - save_path:str="", num_process:int=-1, **kwargs): + def plotGridDesign(self, grid:Optional[Grid]=None, num_restart:Optional[int]=1, + is_greedy:Optional[bool]=False, is_plot_grid:Optional[bool]=False, + save_path:Optional[str]="", num_process:Optional[int]=-1, **kwargs): """ Plots the results of a closed loop design based a grid of values for the control parameters. Persists the closed loop design (kp, ki, kf) if a design is found. @@ -541,9 +558,10 @@ def plotGridDesign(self, grid:Grid=None, num_restart:int=1, is_greedy:bool=False Timeseries AntimonyBuilder """ + self._checkKwargs(**kwargs) option_set = self.getOptionSet(**kwargs) sbml_system, _ = self.getSystem(**option_set) - if len(save_path) == 0: + if len(save_path) == 0: # type: ignore save_path = self.save_path if save_path is not None: if os.path.isfile(save_path): @@ -553,41 +571,40 @@ def plotGridDesign(self, grid:Grid=None, num_restart:int=1, is_greedy:bool=False sign=option_set.sign, input_name=self.getInputName(option_set=option_set), output_name=self.getOutputName(option_set=option_set), save_path=save_path) - designer.designAlongGrid(grid, is_greedy=is_greedy, num_process=num_process) + designer.designAlongGrid(grid, is_greedy=is_greedy, num_process=num_process) # type: ignore if designer.residual_mse is None: msgs.warn("No design found!") return None, None - self.setOptions(kp=designer.kp, ki=designer.ki, kf=designer.kf) # Persist the design parameters - self.setOptions(kp=designer.kp, ki=designer.ki, kf=designer.kf) + self.setOptions(kP=designer.kp, kI=designer.ki, kF=designer.kf) _ = option_set.setdefault(cn.O_YLABEL, self.getOutputName(option_set=option_set)) response_ts, antimony_builder = self.plotClosedLoop( times=option_set.times, setpoint=option_set.setpoint, - sign=self.sign, - kp=self.kp, - ki=self.ki, - kf=self.kf, + sign=self.sign, # type: ignore + kP=self.kP, # type: ignore + kI=self.kI, # type: ignore + kF=self.kF, # type: ignore **self._getPlotOptions(**option_set)) return response_ts, antimony_builder - def plotDesign(self, kp_spec:bool=False, ki_spec:bool=False, kf_spec:bool=False, min_parameter_value:float=0, + def plotDesign(self, kP_spec:bool=False, kI_spec:bool=False, kF_spec:bool=False, min_parameter_value:float=0, max_parameter_value:float=10, num_restart:int=3, num_coordinate:int=3, is_greedy:bool=True, is_report:bool=False, num_process:int=-1, **kwargs): """ - Plots the results of a closed loop design. The design is specified by the parameters kp_spec, ki_spec, and kf_spec. + Plots the results of a closed loop design. The design is specified by the parameters kP_spec, kI_spec, and kF_spec. None or False: do not include the parameter True: include the parameter and find a value float: use this value for the parameter. - Persists the closed loop design (kp, ki, kf) if a design is found. + Persists the closed loop design (kP, kI, kF) if a design is found. Args: - kp_spec: float (specification of proportional gain) - ki_spec: float (specification of integral gain) - kf_spec: float (specification of filter gain) - min_parameter_value: float (minimum value for kp, ki, kf; may be a dictionary) - max_parameter_value: float (maximum value for kp, ki, kf; may be a dictionary) + kP_spec: float (specification of proportional gain) + kI_spec: float (specification of integral gain) + kF_spec: float (specification of filter gain) + min_parameter_value: float (minimum value for kP, kI, kF; may be a dictionary) + max_parameter_value: float (maximum value for kP, kI, kF; may be a dictionary) num_coordinate: int (number of coordinate descent iterations) is_greedy: bool (if True, use greedy algorithm) kwargs: dict (persistent options) @@ -596,6 +613,7 @@ def plotDesign(self, kp_spec:bool=False, ki_spec:bool=False, kf_spec:bool=False, Timeseries AntimonyBuilder """ + self._checkKwargs(**kwargs) option_set = self.getOptionSet(**kwargs) sbml_system, _ = self.getSystem(**option_set) designer = SISOClosedLoopDesigner(sbml_system, self.getOpenLoopTransferFunction(), @@ -603,27 +621,27 @@ def plotDesign(self, kp_spec:bool=False, ki_spec:bool=False, kf_spec:bool=False, sign=option_set.sign, input_name=self.getInputName(option_set=option_set), output_name=self.getOutputName(option_set=option_set), save_path=self.save_path) - designer.design(kp_spec=kp_spec, ki_spec=ki_spec, kf_spec=kf_spec, + designer.design(kp_spec=kP_spec, ki_spec=kI_spec, kf_spec=kF_spec, num_restart=num_restart, min_value=min_parameter_value, max_value=max_parameter_value, num_coordinate=num_coordinate, is_greedy=is_greedy, is_report=is_report, num_process=num_process) if designer.residual_mse is None: msgs.warn("No design found!") return None, None - self.setOptions(kp=designer.kp, ki=designer.ki, kf=designer.kf) + self.setOptions(kP=designer.kp, kI=designer.ki, kF=designer.kf) # Persist the design parameters - self.setOptions(kp=designer.kp, ki=designer.ki, kf=designer.kf) + self.setOptions(kP=designer.kp, kI=designer.ki, kF=designer.kf) _ = option_set.setdefault(cn.O_YLABEL, self.getOutputName(option_set=option_set)) response_ts, antimony_builder = self.plotClosedLoop( times=option_set.times, setpoint=option_set.setpoint, - sign=self.sign, - kp=self.kp, - ki=self.ki, - kf=self.kf, + sign=self.sign, # type: ignore + kP=self.kP, # type: ignore + kI=self.kI, # type: ignore + kF=self.kF, # type: ignore **self._getPlotOptions(**option_set)) return response_ts, antimony_builder - def plotDesignResult(self, save_path:str=None, **kwargs): + def plotDesignResult(self, save_path:Optional[str]=None, **kwargs): """ Plots the mean squared error of all points searched in the last design. @@ -632,6 +650,7 @@ def plotDesignResult(self, save_path:str=None, **kwargs): kwargs: dict (plot options) AntimonyBuilder """ + self._checkKwargs(**kwargs) if save_path is None: save_path = self.save_path option_set = self.getOptionSet(**kwargs) @@ -663,13 +682,13 @@ def _getOptions(options:dict)->Tuple[dict, dict]: return sim_opts, plot_fig_opts def _getStarttime(self, option_set:OptionSet)->float: - return option_set.times[0] + return option_set.times[0] # type: ignore def _getEndtime(self, option_set:OptionSet)->float: - return option_set.times[-1] + return option_set.times[-1] # type: ignore def _getNumpoint(self, option_set:OptionSet)->int: - return len(option_set.times) + return len(option_set.times) # type: ignore def _getPlotOptions(self, **kwargs)->dict: option_set = self.getOptionSet(**kwargs) diff --git a/src/controlSBML/siso_closed_loop_designer.py b/src/controlSBML/siso_closed_loop_designer.py index e281b36..2e1b09a 100644 --- a/src/controlSBML/siso_closed_loop_designer.py +++ b/src/controlSBML/siso_closed_loop_designer.py @@ -21,6 +21,10 @@ import pandas as pd import seaborn as sns +CP_KP = "kp" +CP_KI = "ki" +CP_KF = "kf" +CONTROL_PARAMETERS = [CP_KP, CP_KI, CP_KF] MAX_VALUE = 1e3 # Maximum value for a parameter MIN_VALUE = 0 # Minimum value for a paramete DEFAULT_INITIAL_VALUE = 1 # Default initial value for a parameter @@ -29,7 +33,7 @@ ABOVE_MAX_MULTIPLIER = 1e-3 LOWPASS_POLE = 1e4 # Pole for low pass filter # Column names -PARAMETER_DISPLAY_DCT = {cn.CP_KP: r'$k_p$', cn.CP_KI: r'$k_i$', cn.CP_KF: r'$k_f$'} +PARAMETER_DISPLAY_DCT = {CP_KP: r'$k_p$', CP_KI: r'$k_i$', CP_KF: r'$k_f$'} Workunit = collections.namedtuple("Workunit", "system input_name output_name setpoint times is_greedy num_restart is_report") @@ -39,7 +43,7 @@ def _calculateClosedLoopTransferFunction(open_loop_transfer_function=None, kp=No # Construct the transfer functions if open_loop_transfer_function is None: return None - controller_tf = util.makePIDTransferFunction(kp=kp, ki=ki, kd=kd) + controller_tf = util.makePIDTransferFunction(kP=kp, kI=ki, kD=kd) # Filter if kf is not None: filter_tf = control.TransferFunction([kf], [1, kf]) @@ -128,7 +132,7 @@ def set(self, kp=None, ki=None, kf=None): kd (float) kf (float) """ - value_dct = {cn.CP_KP: kp, "ki": ki, "kf": kf} + value_dct = {CP_KP: kp, CP_KI: ki, CP_KF: kf} for name, value in value_dct.items(): if value is None: continue @@ -143,7 +147,7 @@ def get(self): dict: {name: value} """ dct = {} - for name in cn.CONTROL_PARAMETERS: + for name in CONTROL_PARAMETERS: if self.__getattribute__(name) is not None: value = self.__getattribute__(name) dct[name] = value @@ -186,7 +190,7 @@ def makePlot(parameter_name1, parameter_name2, ax, vmin=None, vmax=None): # Find the parameters in the design result parameter_names = [] idx = list(self.design_result_df.index)[0] - for name in cn.CONTROL_PARAMETERS: + for name in CONTROL_PARAMETERS: if not name in self.design_result_df.columns: continue if not np.isnan(self.design_result_df.loc[idx, name]): @@ -268,14 +272,14 @@ def addAxis(grid, parameter_name, parameter_spec): msgs.warn(msg) # Initializations grid = Grid(min_value=min_value, max_value=max_value, num_coordinate=num_coordinate) - addAxis(grid, cn.CP_KP, kp_spec) - addAxis(grid, cn.CP_KI, ki_spec) - addAxis(grid, cn.CP_KF, kf_spec) + addAxis(grid, CP_KP, kp_spec) + addAxis(grid, CP_KI, ki_spec) + addAxis(grid, CP_KF, kf_spec) # return self.designAlongGrid(grid, is_greedy=is_greedy, num_restart=num_restart, is_report=is_report, num_process=num_process) - def simulateTransferFunction(self, transfer_function=None, period=None): + def oldsimulateTransferFunction(self, transfer_function=None, period=None): """ Simulates the closed loop transfer function based on the parameters of the object. @@ -312,7 +316,7 @@ def designAlongGrid(self, grid:Grid, is_greedy:bool=False, num_restart:int=1, """ point_evaluator = PointEvaluator(self.system.copy(), self.input_name, self.output_name, self.setpoint, self.times, is_greedy=is_greedy) - parallel_search = ParallelSearch(point_evaluator, grid.points, num_process=num_process, is_report=is_report) + parallel_search = ParallelSearch(point_evaluator, grid.points, num_process=num_process, is_report=is_report) # type: ignore search_results = [] for _ in range(num_restart): parallel_search.search() @@ -328,12 +332,12 @@ def designAlongGrid(self, grid:Grid, is_greedy:bool=False, num_restart:int=1, search_result_df = search_result_df.reset_index() # Record the result self.residual_mse = search_result_df.loc[0, cn.SCORE] - if cn.CP_KP in search_result_df.columns: - self.kp = search_result_df.loc[0, cn.CP_KP] - if cn.CP_KI in search_result_df.columns: - self.ki = search_result_df.loc[0, cn.CP_KI] - if cn.CP_KF in search_result_df.columns: - self.kf = search_result_df.loc[0, cn.CP_KF] + if CP_KP in search_result_df.columns: + self.kp = search_result_df.loc[0, CP_KP] + if CP_KI in search_result_df.columns: + self.ki = search_result_df.loc[0, CP_KI] + if CP_KF in search_result_df.columns: + self.kf = search_result_df.loc[0, CP_KF] # Save the results if self.save_path is not None: search_result_df.to_csv(self.save_path, index=False) @@ -352,7 +356,7 @@ def design_result_df(self): return None return self._design_result_df - def simulateTransferFunction(self, transfer_function=None, period=None): + def simulateTransferFunction(self, transfer_function=None, period=None)->tuple[np.array, np.array]: """ Simulates the closed loop transfer function based on the parameters of the object. @@ -411,9 +415,9 @@ def evaluate(self, is_plot=True, **kwargs): Timeseries (from simulation) AntimonyBuilder (from simulation) """ - param_dct = {n: None for n in cn.CONTROL_PARAMETERS} + param_dct = {n: None for n in CONTROL_PARAMETERS} param_dct.update(self.get()) - k_dct = {k: param_dct[k] for k in cn.CONTROL_PARAMETERS} + k_dct = {k: param_dct[k] for k in CONTROL_PARAMETERS} try: simulated_ts, antimony_builder = self.system.simulateSISOClosedLoop(setpoint=self.setpoint, start_time=self.start_time, end_time=self.end_time, num_point=self.num_point, diff --git a/src/controlSBML/util.py b/src/controlSBML/util.py index d557a96..38bcf18 100644 --- a/src/controlSBML/util.py +++ b/src/controlSBML/util.py @@ -1,15 +1,16 @@ import controlSBML.constants as cn import controlSBML as ctl -import control +import control # type: ignore from controlSBML.option_management.option_manager import OptionManager from controlSBML import msgs -from docstring_expander.expander import Expander +from docstring_expander.expander import Expander # type: ignore import matplotlib.pyplot as plt import numpy as np -import pandas as pd -import seaborn as sns +import pandas as pd # type: ignore +import seaborn as sns # type: ignore import urllib.request +from typing import Optional, List REPO_URL = "https://github.com/ModelEngineering/controlSBML/raw/main" @@ -174,8 +175,8 @@ def plotManyTS(*tss, ncol=1, names=None, **kwargs): mgr.doFigOpts() return PlotResult(ax=axes, fig=fig) -def makeSimulationTimes(start_time=cn.START_TIME, end_time=cn.END_TIME, - points_per_time=cn.POINTS_PER_TIME): +def makeSimulationTimes(start_time:Optional[float]=cn.START_TIME, end_time:Optional[float]=cn.END_TIME, + points_per_time:Optional[int]=cn.POINTS_PER_TIME)->np.ndarray: """ Constructs the times for a simulation using the simulation options. @@ -187,24 +188,26 @@ def makeSimulationTimes(start_time=cn.START_TIME, end_time=cn.END_TIME, Returns ------- - np.ndarray + np.ndarray-int """ - dt = 1.0/points_per_time - dt_ms = int(cn.MS_IN_SEC*dt) - start_ms = int(start_time*cn.MS_IN_SEC) - end_ms = int(end_time*cn.MS_IN_SEC) + dt = 1.0 / float(points_per_time) # type: ignore + dt_ms = int(cn.MS_IN_SEC * dt) + start_ms = int(start_time*float(cn.MS_IN_SEC)) # type: ignore + end_ms = int(end_time*cn.MS_IN_SEC) # type: ignore times = np.arange(start_ms, end_ms + dt_ms, dt_ms) - times = times/cn.MS_IN_SEC + times = [int(t/cn.MS_IN_SEC) for t in times] # type: ignore return np.array(times) -def makePIDTransferFunction(kp=None, ki=None, kd=None, name="controller", input_name=cn.IN, output_name=cn.OUT): +def makePIDTransferFunction(kP:Optional[float]=None, kI:Optional[float]=None, + kD:Optional[float]=None, name:Optional[str]="controller", + input_name:Optional[str]=cn.IN, output_name:Optional[str]=cn.OUT): """ Constructs a PID transfer function. Args: - kp: float - ki: float - kd: float + kP: float + kI: float + kD: float Raises: ValueError: must provide at least one of kp, ki, kd @@ -214,15 +217,15 @@ def makePIDTransferFunction(kp=None, ki=None, kd=None, name="controller", input_ """ is_none = True controller_tf = control.tf([0], [1], name=name, inputs=input_name, outputs=output_name) - if kp is not None: + if kP is not None: is_none = False - controller_tf += control.tf([kp], [1]) - if ki is not None: + controller_tf += control.tf([kP], [1]) + if kI is not None: is_none = False - controller_tf += control.tf([ki], [1, 0]) - if kd is not None: + controller_tf += control.tf([kI], [1, 0]) + if kD is not None: is_none = False - controller_tf += control.tf([kd, 0], [1]) + controller_tf += control.tf([kD, 0], [1]) if is_none: raise ValueError("At least one of kp, ki, kd, kf must be defined") controller_tf.name = name @@ -230,7 +233,7 @@ def makePIDTransferFunction(kp=None, ki=None, kd=None, name="controller", input_ controller_tf.output_labels = [output_name] return controller_tf -def mat2DF(mat, column_names=None, row_names=None): +def mat2DF(mat:np.array, column_names:Optional[List[str]]=None, row_names:Optional[List[str]]=None): """ Converts a numpy ndarray or array-like to a DataFrame. @@ -247,21 +250,21 @@ def mat2DF(mat, column_names=None, row_names=None): mat = np.reshape(mat, (len(mat), 1)) if column_names is None: if hasattr(mat, "colnames"): - column_names = mat.colnames + column_names = mat.colnames # type: ignore if column_names is not None: if len(column_names) == 0: column_names = None if row_names is None: if hasattr(mat, "rownames"): - if len(mat.rownames) > 0: - row_names = mat.rownames + if len(mat.rownames) > 0: # type: ignore + row_names = mat.rownames # type: ignore if row_names is not None: if len(row_names) == 0: row_names = None df = pd.DataFrame(mat, columns=column_names, index=row_names) return df -def ppMat(mat, column_names=None, row_names=None, is_print=True): +def ppMat(mat, column_names:Optional[List[str]]=None, row_names:Optional[List[str]]=None, is_print:Optional[bool]=True): """ Provides a pretty print for a matrix or DataFrame) diff --git a/tests/test_control_sbml.py b/tests/test_control_sbml.py index f3987c7..6f5a267 100644 --- a/tests/test_control_sbml.py +++ b/tests/test_control_sbml.py @@ -1,12 +1,12 @@ -from controlSBML.control_sbml import ControlSBML -from controlSBML import constants as cn -from controlSBML.sbml_system import SBMLSystem -from controlSBML.siso_transfer_function_builder import SISOTransferFunctionBuilder -from controlSBML.timeseries import Timeseries -from controlSBML.antimony_builder import AntimonyBuilder -from controlSBML.grid import Grid +from controlSBML.control_sbml import ControlSBML # type: ignore +from controlSBML import constants as cn # type: ignore +from controlSBML.sbml_system import SBMLSystem # type: ignore +from controlSBML.siso_transfer_function_builder import SISOTransferFunctionBuilder # type: ignore +from controlSBML.timeseries import Timeseries # type: ignore +from controlSBML.antimony_builder import AntimonyBuilder # type: ignore +from controlSBML.grid import Grid # type: ignore -import control +import control # type: ignore import matplotlib.pyplot as plt import numpy as np import os @@ -124,11 +124,11 @@ def testPlotTransferFunctionFit(self): self.assertTrue(isinstance(ts, Timeseries)) self.assertTrue(isinstance(builder, AntimonyBuilder)) - def testPlotSISOClosedLoopSystem(self): + def testPlotSISOClosedLoop(self): if IGNORE_TEST: return self.ctlsb.setSystem(input_name="S1", output_name="S3") - ts, builder = self.ctlsb.plotClosedLoop(setpoint=3, is_plot=IS_PLOT, kp=1, figsize=FIGSIZE, + ts, builder = self.ctlsb.plotClosedLoop(setpoint=3, is_plot=IS_PLOT, kP=1, figsize=FIGSIZE, times=np.linspace(0, 100, 1000)) self.assertTrue(isinstance(ts, Timeseries)) self.assertTrue(isinstance(builder, AntimonyBuilder)) @@ -138,11 +138,11 @@ def testPlotDesign(self): return setpoint = 5 self.ctlsb.setSystem(input_name="S1", output_name="S3") - ts, builder = self.ctlsb.plotDesign(setpoint=setpoint, sign=-1, kp_spec=True, ki_spec=True, figsize=FIGSIZE, is_plot=IS_PLOT, + ts, builder = self.ctlsb.plotDesign(setpoint=setpoint, sign=-1, kP_spec=True, kI_spec=True, figsize=FIGSIZE, is_plot=IS_PLOT, min_parameter_value=0.001, max_parameter_value=10, num_restart=2, - num_coordinate=5) - # Show that kp, ki are now the defaults - _ = self.ctlsb.plotClosedLoop(setpoint=setpoint, is_plot=IS_PLOT, kp=1, figsize=FIGSIZE, + num_coordinate=5, num_process=1) + # Show that kP, kI are now the defaults + _ = self.ctlsb.plotClosedLoop(setpoint=setpoint, is_plot=IS_PLOT, kP=1, figsize=FIGSIZE, times=np.linspace(0, 100, 1000)) self.assertTrue(isinstance(ts, Timeseries)) self.assertTrue(isinstance(builder, AntimonyBuilder)) @@ -161,7 +161,7 @@ def testPlotDesign1(self): return setpoint = 5 ctlsb = ControlSBML(LINEAR_MDL, final_value=10, input_names=["S1"], output_names=["S3"], save_path=CSV_FILE1) - _ = ctlsb.plotDesign(setpoint=setpoint, sign=-1, kp_spec=True, ki_spec=False, is_plot=IS_PLOT, + _ = ctlsb.plotDesign(setpoint=setpoint, sign=-1, kP_spec=True, kI_spec=False, is_plot=IS_PLOT, min_parameter_value=0.001, max_parameter_value=10, num_restart=1, num_coordinate=2) self.assertTrue(os.path.isfile(CSV_FILE1)) @@ -178,7 +178,7 @@ def testGetters(self): if IGNORE_TEST: return self.ctlsb.setSystem(input_name="S1", output_name="S3") - self.ctlsb.setOptions(kp=5, sign=-1) + self.ctlsb.setOptions(kP=5, sign=-1) self.ctlsb.plotTransferFunctionFit(is_plot=False) self.assertTrue(isinstance(self.ctlsb.getSystem()[0], SBMLSystem)) self.assertTrue(isinstance(self.ctlsb.getSystem()[1], SISOTransferFunctionBuilder)) @@ -208,18 +208,18 @@ def testFullAPI(self): _, builder = CTLSB.plotStaircaseResponse(initial_value=20, final_value=25, is_plot=IS_PLOT) _ = CTLSB.plotTransferFunctionFit(figsize=FIGSIZE, num_numerator=2, num_denominator=3, initial_value=20, final_value=25, fit_start_time=2000, is_plot=IS_PLOT) - _ = CTLSB.plotClosedLoop(setpoint=150, kp=1, kf=None, is_plot=IS_PLOT) - ts, builder = CTLSB.plotDesign(setpoint=150, kp_spec=True, ki_spec=True, kf_spec=False, + _ = CTLSB.plotClosedLoop(setpoint=150, kP=1, kF=None, is_plot=IS_PLOT) + ts, builder = CTLSB.plotDesign(setpoint=150, kP_spec=True, kI_spec=True, kF_spec=False, num_restart=1, is_plot=IS_PLOT) - _ = CTLSB.plotClosedLoop(setpoint=120, kp=0.002, ki=0.019, is_plot=IS_PLOT) - _ = CTLSB.plotClosedLoop(setpoint=150, kp=1, is_plot=IS_PLOT) + _ = CTLSB.plotClosedLoop(setpoint=120, kP=0.002, kI=0.019, is_plot=IS_PLOT) + _ = CTLSB.plotClosedLoop(setpoint=150, kP=1, is_plot=IS_PLOT) def testPlotDesignResult(self): if IGNORE_TEST: return setpoint = 5 ctlsb = ControlSBML(LINEAR_MDL, final_value=10, input_names=["S1"], output_names=["S3"], save_path=CSV_FILE2) - _ = ctlsb.plotDesign(setpoint=setpoint, sign=-1, kp_spec=True, ki_spec=True, is_plot=False, + _ = ctlsb.plotDesign(setpoint=setpoint, sign=-1, kP_spec=True, kI_spec=True, is_plot=False, min_parameter_value=0.001, max_parameter_value=10, num_restart=1, num_coordinate=4) plt.close('all') @@ -247,7 +247,7 @@ def testBug1(self): OUTPUT_NAME = "pmTORC1" ctlsb.setSystem(input_name=INPUT_NAME, output_name=OUTPUT_NAME) _ = ctlsb.plotTransferFunctionFit(num_numerator=1, num_denominator=2, initial_value=20, final_value=25, - time=2000, times=np.linspace(0, 10000, 100000), is_plot=IS_PLOT) + fit_start_time=2000, times=np.linspace(0, 10000, 100000), is_plot=IS_PLOT) def testGetPossibleInputs(self): if IGNORE_TEST: @@ -280,7 +280,7 @@ def testBug2(self): k3 = 0.5 """ ctlsb = ControlSBML(model) - with self.assertRaisesRegex(ValueError): + with self.assertRaises(ValueError): _ = ctlsb.plotTransferFunctionFit(num_numerator=1, num_denominator=2) diff --git a/tests/test_siso_closed_loop_designer.py b/tests/test_siso_closed_loop_designer.py index 4d83f4e..95180c7 100644 --- a/tests/test_siso_closed_loop_designer.py +++ b/tests/test_siso_closed_loop_designer.py @@ -317,7 +317,7 @@ def testBug3(self): ctlsb = ControlSBML(url, save_path=SAVE1_PATH) ctlsb.setOptions(input_names=[INPUT_NAME], output_names=[OUTPUT_NAME]) # - grid = ctlsb.getGrid(kp_spec=True, ki_spec=False, num_coordinate=2, is_random=False) + grid = ctlsb.getGrid(kP_spec=True, kI_spec=False, num_coordinate=2, is_random=False) axis = grid.getAxis("kp") axis.setMinValue(0.1) axis.setMaxValue(1.1) @@ -335,7 +335,7 @@ def testBug4(self): ctlsb = ControlSBML(url, save_path=SAVE1_PATH) ctlsb.setOptions(input_names=[INPUT_NAME], output_names=[OUTPUT_NAME]) # - grid = ctlsb.getGrid(kp_spec=True, ki_spec=False, num_coordinate=40, is_random=False) + grid = ctlsb.getGrid(kP_spec=True, kI_spec=False, num_coordinate=40, is_random=False) axis = grid.getAxis("kp") axis.setMinValue(0.1) axis.setMaxValue(10) diff --git a/todo.txt b/todo.txt index dc964a4..00de92c 100644 --- a/todo.txt +++ b/todo.txt @@ -1,3 +1,4 @@ +Use kP, kI, kF throughout, not just in control_sbml Update docs on REAMDE Create pypi version CTLSB.plotSBMLSystem - does a plot with multiple inputs and multiple outputs.