{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# A small example, with structure only\n", "This example is included to illustrate that it is possible to use some of the functionality of the toolbox on models where you only have the model structure and not the analytical expressions.\n", "\n", "The example illustrates sensor placement analysis of the model in\n", "\n", "\"_Structural analysis for the sensor location problem in fault detection and isolation_\" by C. Commault, J. Dion and S.Y. Agha, Proceedings of Safeprocess'06 Beijing, China.\n", "\n", "Important note. To compare results, there is an important difference in that in the approach used in this toolbox, in contrast to the Commault et.al. paper, fault signals are not considered measurable." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import faultdiagnosistoolbox as fdt\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First define the model, of type `MatrixStruc`, indicating that only the adjacency matrices are provided." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Model: Example from Commault et.al\n", "\n", " Type:Structural, static\n", "\n", " Variables and equations\n", " 7 unknown variables\n", " 3 known variables\n", " 4 fault variables\n", " 10 equations, including 0 differential constraints\n", "\n", " Degree of redundancy: 3\n", " Degree of redundancy of MTES set: 1\n", "\n", "\n", " Model validation finished with 0 errors and 0 warnings.\n" ] } ], "source": [ "model_def = {'type': 'MatrixStruc',\n", " 'X': [[0, 0, 0, 0, 1, 0, 0],\n", " [0, 0, 0, 0, 0, 0, 1],\n", " [0, 0, 0, 0, 0, 1, 0],\n", " [1, 0, 0, 0, 1, 0, 1],\n", " [0, 1, 0, 0, 0, 1, 0],\n", " [1, 1, 1, 0, 0, 0, 0],\n", " [1, 1, 0, 1, 0, 0, 0],\n", " [0, 0, 1, 0, 0, 0, 0],\n", " [0, 0, 1, 1, 0, 0, 0],\n", " [0, 0, 0, 1, 0, 0, 0]],\n", " 'F': [[1, 0, 0, 0],\n", " [0, 1, 0, 0],\n", " [0, 0, 0, 1],\n", " [0, 0, 0, 0],\n", " [0, 0, 1, 0],\n", " [0, 0, 0, 0],\n", " [0, 0, 0, 0],\n", " [0, 0, 0, 0],\n", " [0, 0, 0, 0],\n", " [0, 0, 0, 0]],\n", " 'Z': [[0, 0, 0],\n", " [0, 0, 0],\n", " [0, 0, 0],\n", " [0, 0, 0],\n", " [0, 0, 0],\n", " [0, 0, 0],\n", " [0, 0, 0],\n", " [1, 0, 0],\n", " [0, 1, 0],\n", " [0, 0, 1]]}\n", "\n", "model = fdt.DiagnosisModel(model_def, name='Example from Commault et.al')\n", "model.Lint()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Plot the model structure and initial fault isolability performance of the model" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[1, 1, 0, 0],\n", " [1, 1, 0, 0],\n", " [0, 0, 1, 1],\n", " [0, 0, 1, 1]])" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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lJTo7rvvltPpVFRUlGdBLtOyZUstWLBACQkJmjdvnqZMmSKXy6XExESFhYVp/vz5Vfbh+eefr1mzZmnKlCm6/PLLdd5550mSNm7cqMGDB+uCCy7Q9OnT9fPPP2vevHnq27evPv3003L7+xMSEtS5c2fNmjWr3Iq1un788cdybUFBQQoPD5fD4dA///lP9ejRQ/fcc49ee+01SdJjjz2mL774Qps3b/Zs9WRmZmrLli0aPXq02rRpo5ycHC1YsED9+/fXjh07dO6553pNY/LkyYqJidGMGTP04YcfatGiRYqMjNSWLVvUrl07zZo1S2+++abmzJmj7t27a+zYsV6f/9e//qXDhw8rKSlJJSUlSklJ0YABA5Sdne3pz4o8+eSTevTRRzVq1CiNHz9eP/zwg+bNm6err75a27dvr3Rrr6rvTXKHyKBBg3TllVdq7ty5Ovfcc2WM0U033aS3335bd955p3r16qX169froYce0oEDB/Tss896TaMmy39FXn/9dV1wwQXq06dPlcOVGT9+vJYtW6aRI0dq2rRp+uijjzR79mz973//U3p6utewX331lW699VZNmDBBt912m+bOnav4+Hj9/e9/1yOPPKJ7773XMw+jRo3Szp071aTJr9sbpaWlGjx4sK6++mo9/fTTWrFihSZNmqTQ0FD95S9/0ZgxY3TzzTfr73//u8aOHau4uDh16NBBkvT1118rIyNDCQkJ6tChg77//nstXLhQ/fr1044dO9S6detqzW9lWrRooQULFmjixIkaMWKEbr75ZklSjx49Kv3M0aNH1a9fPx04cEATJkxQu3bttGXLFiUnJysvL0/PPffcWY3X3/NajjkDS5YsMZJMZmamMcaYgoICI8nMmTOn0s/k5+eboKAgc/3115vS0lJP+wsvvGAkmX/+85+etnHjxpnY2Fivzx89etTr9fHjx0337t3NgAEDvNolGUlm27ZtnrZ9+/aZ4OBgM2LEiHLzsHfvXk9bv379TL9+/Tyv9+7daySZJUuWeNqSkpJMRd21c+dOI8ksWLDAq/2mm24y7du3Ny6Xq3ynnFK30+n0qmfhwoVGkomJiTHFxcWe9uTk5HK1n9o/xhgze/Zs43A4zL59+05bf9m8hoeHm/z8/ArfO7kfjDHmD3/4gzn33HPNrl27zJw5c4wkk5GRUeV8GmPM22+/bSSZ1NRUr/ZevXqZli1bmoMHD3raPvvsM9OkSRMzduxYT9tjjz1mJJk//OEPp51WZcaNG+dZVk59DBo0yGvYsu9h+fLl5sMPPzQBAQFm6tSpXsNU1P9bt241ksy//vUvT1vZcjdo0CCvZSIuLs44HA5zzz33eNp++eUX06ZNmwqXyZCQEPPNN9942j/66CMjydx///2etrJ+KpOTk2MCAgLMk08+6VVndna2CQwMLNd+qsq+t7K+/POf/+zVnpGRYSSZJ554wqt95MiRxuFwmK+++srTVtPl/1RFRUVGkhk2bFiV81QmKyvLSDLjx4/3an/wwQeNJLNp0yZPW2xsrJFktmzZ4mlbv36953s5+f9b2Ty8/fbbnray/po1a5anraCgwISEhBiHw2FWrVrlaf/yyy+NJPPYY4952kpKSrzWoca4lwun02lmzpzpaatoHWfMr9/jqTWdvM794Ycfyk23Ko8//rgJDQ01u3bt8mr/85//bAICAsz+/fvParzVndfK1lFnqka7RkNCQhQUFKTNmzeroKCgwmE2btyo48ePa+rUqV6/jO666y6Fh4efdl99SEiI598FBQUqKirSVVddpU8//bTcsHFxcerdu7fndbt27TRs2DCtX79epaWlZzp71XLhhRfqiiuu0IoVKzxthw4d0ltvvaUxY8ZU6zT2a6+91mur54orrpDk3toOCwsr1/7111972k7unyNHjujHH39Unz59ZIwpt2umKrfccotn98XpvPDCC4qIiNDIkSP16KOP6vbbb69w93B15OXlKSsrS4mJiV5b1D169NB1112nN998s9xn7rnnnrOaVpng4GBt2LCh3OOpp57yGu7uu+/WoEGDNHnyZN1+++3q2LGjZs2a5TXMyf1/4sQJHTx4UJ06dVJkZGSFy+idd97ptUxcccUVMsbozjvv9LQFBATosssu8/qeywwfPlznn3++5/Vvf/tbXXHFFRX2U5nXXntNLpdLo0aN0o8//uh5xMTEqHPnznr77ber6K3TmzhxotfrN998UwEBAZoyZYpX+7Rp02SM0VtvveXVXpPl/1TFxcWS5PW5qpT12wMPPFCuVknl1k/dunVTXFxcuZoGDBigdu3aVavWk084ioyMVJcuXRQaGqpRo0Z52rt06aLIyEivzzudTs86tLS0VAcPHlTTpk3VpUuXCpe12pCamqqrrrpKzZo1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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "_, ax = plt.subplots(num=10)\n", "model.PlotModel(ax=ax, verbose=True)\n", "\n", "_, ax = plt.subplots(num=20)\n", "model.IsolabilityAnalysis(ax=ax)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The fault isolation properties can also be directly seen in an extended Dulmage-Mendelsohn decomposition." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "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7u0PP/yAdevWIT4+Hnv37sW8efPw6KOPYtOmTarU05F8+uhWpL60tDQUFRWpOnd33XXXobCwECaTCTt37kRqairy8/M7vbmWlJRg4cKF2LdvH4KCgjr1d7dl6tSptutDhgzBDTfcgOjoaGzfvh0PPvhgp9djtVqRlJSElStXAgCGDx+OoqIirF+/HqmpqZ1eT0fiiNWJ8PBwaDQanD9/3uH+8+fPo0+fPipV5V0WLFiAnJwc5OXlddrhG9ui0+kQFxeHkSNHIjMzE0OHDsWaNWs6vY4jR46grKwMI0aMQGBgIAIDA5Gfn49XXnkFgYGBsFgsnV5Tc1dddRUGDBiAU6dOqfL7IyMjW/2xu/7661WdnugobKxO6HQ6jBw5Evv377fdZ7VasX//flXn77yBEAILFizArl278PHHHyM2NlbtkhxYrVbU1dV1+u+dMGECvv76axQWFtqWpKQkzJo1C4WFhdBoNJ1eU3NVVVX4/vvvERkZqcrvHzduXKvN8r777jtER0erUk9H4lSAC4sXL0ZqaiqSkpIwevRorF69GmazGffff3+n11JVVeUw0iguLkZhYSF69OiB/v37d2otaWlp2LJlC/7+978jJCTENuccFhaG4ODgTq1l+fLlmDp1Kvr374/Kykps2bIFBw4cwN69ezu1DgAICQlpNc9sNBrRs2dPVeaflyxZgttuuw3R0dE4e/YsMjIyoNFocO+993Z6LQCwaNEijB07FitXrsTMmTNRUFCAN954A2+88YYq9XQotTdL8Havvvqq6N+/v9DpdGL06NHi888/V6WOvLw8AaDVkpqa2um1tFUHAJGVldXptTzwwAMiOjpa6HQ60atXLzFhwgTx4Ycfdnodzqi5udU999wjIiMjhU6nE1dffbW45557xKlTp1SppUl2drZITEwUer1eJCQkiDfeeEPVejoKDxtIRKQwzrESESmMjZWISGFsrERECmNjJSJSGBsrEZHC2FiJiBTGxkpEpDA2ViIihbGxks9w95Q0Tz75JIYNG+YyM2fOHEyfPv2K6iJqiY2VFHXbbbdhypQpbf7bp59+CkmS8NVXX3m07tLSUodD4RF5KzZWUtSDDz6Iffv24d///nerf8vKykJSUpLb54Gqr68HAPTp0wd6vV6ROok6EhsrKerWW29Fr169sHHjRof7q6qqsGPHDkyfPh333nsvrr76ahgMBgwePBjvvvuuQzY5ORkLFixAeno6wsPDMXnyZACtpwKWLVuGAQMGwGAw4JprrsGKFSvQ0NDQqqbXX38dUVFRMBgMmDlzpu1UMm2xWq3IzMxEbGwsgoODMXToUOzcudP27xcvXsSsWbPQq1cvBAcHIz4+HllZWR48UuTP2FhJUYGBgbjvvvuwceNGND++z44dO2CxWDB79myMHDkSu3fvRlFRER5++GH89re/bXVa8U2bNkGn0+HgwYNYv359m78rJCQEGzduxPHjx7FmzRq8+eabePnllx0yp06dwvbt25GdnY3c3FwcO3YM8+fPd1p/ZmYm3n77baxfvx7ffPMNFi1ahNmzZyM/Px8AsGLFChw/fhx79uzBt99+i3Xr1iE8PNzTh4v8lcpH1yI/9O233woAIi8vz3bfTTfdJGbPnt1mftq0aeJ//ud/bLfHjx8vhg8f3iqHy5yd9oUXXhAjR4603c7IyBAajUb8+9//tt23Z88eERAQIEpLS4UQQqSmpoo77rhDCCFEbW2tMBgM4tChQw7rffDBB8W9994rhBDitttuE/fff7/TGoiEEIIHuibFJSQkYOzYsXjrrbeQnJyMU6dO4dNPP8VTTz0Fi8WClStXYvv27fjpp59QX1+Puro6GAwGh3WMHDnysr9n27ZteOWVV/D999+jqqoKjY2NCA0Ndcj0798fV199te32mDFjYLVaceLEiVan2Dl16hSqq6vx61//2uH++vp6DB8+HAAwb9483HXXXTh69CgmTZqE6dOnY+zYsW49PuT/OBVAHeLBBx/EX//6V1RWViIrKwvXXnstxo8fjxdeeAFr1qzBsmXLkJeXh8LCQkyePNn2BVUTo9Hocv3/+Mc/MGvWLKSkpCAnJwfHjh3D448/3mo97qiqqgIA7N692+H0KsePH7fNs06dOhU//vgjFi1ahLNnz2LChAlYsmSJx7+T/BNHrNQhZs6ciYULF2LLli14++23MW/ePEiShIMHD+KOO+7A7NmzAchfFn333Xdun1H10KFDiI6OxuOPP26778cff2yVO3PmDM6ePYu+ffsCAD7//HMEBATguuuua5UdOHAg9Ho9zpw5g/Hjxzv93b169UJqaipSU1Nx0003YenSpXjxxRfdqp/8GxsrdYhu3brhnnvuwfLly1FRUYE5c+YAAOLj47Fz504cOnQI3bt3x0svvYTz58+73Vjj4+Nx5swZbN26FaNGjcLu3buxa9euVrmgoCCkpqbixRdfREVFBR599FHMnDmzzTPthoSEYMmSJVi0aBGsVituvPFGmEwmHDx4EKGhoUhNTcUTTzyBkSNHYtCgQairq0NOTg6uv/56jx4j8l+cCqAO8+CDD+LixYuYPHmybcT4hz/8ASNGjMDkyZORnJyMPn36eLTn0+23345FixZhwYIFGDZsGA4dOoQVK1a0ysXFxeHOO+9ESkoKJk2ahCFDhuDPf/6z0/U+/fTTWLFiBTIzM3H99ddjypQp2L17t+1MtDqdDsuXL8eQIUNw8803Q6PRYOvWrW7XT/6N57wiIlIYR6xERApjYyUiUhgbKxGRwthYiYgUxsZKRKQwNlYiIoWxsRIRKYyNlYhIYWysREQKY2MlIlIYGysRkcL+P/GgHQq8GgElAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "_, ax = plt.subplots(num=30)\n", "model.PlotDM(eqclass=True, fault=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Since all faults are not uniquely isolable, it is interesting to see which additional sensors are needed to achieve full isolability. This cna be computed using the `SensorPlacementIsolability` class method" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Found 2 sensor sets\n", "[['x5', 'x6'], ['x6', 'x7']]\n" ] } ], "source": [ "sensSets, _ = model.SensorPlacementIsolability()\n", "print(f\"Found {len(sensSets)} sensor sets\")\n", "print(sensSets)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's add the first solution and verify that we get full isolability." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAcIAAAGzCAYAAAC8ZhchAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAu+ElEQVR4nO3de1xUdf7H8fcwxkDIRVBDUtHQNDOttbZFK80sMzW1xHXTEDfTDDXLLkv7aNMu2qZtkaarm6tu6sMWC7xUuvow7aIV1tJSbmomSmZRKpc0UOH7+2N+zDpyEWWQy/f1fDzmgfPlO+d8zneO5z3nNjiMMUYAAFjKr7YLAACgNhGEAACrEYQAAKsRhAAAqxGEAACrEYQAAKsRhAAAqxGEAACrEYQAAKvVqSBMSEhQmzZtzum1DodDEyZMOGO/xYsXy+FwKCsry9PWq1cv9erVy/M8KytLDodDixcvPqdaGoqaGIf09HR1795dQUFBcjgcysjI8Nm04TZ16lQ5HA6fTpP3rWGqzja3LvDVNuqsgrA0RLZv316tmdZHb7/9tqZOnVrbZZyzulD/iRMnFBcXp8OHD+vFF1/Ua6+9pujo6Bqb3+bNm8t86ElISJDD4Sj3ERAQUGO11Gfn+33zlT179mjcuHG65JJLFBAQoJCQEPXo0UPJycn65Zdfaru8OunYsWOaOnWqNm/eXC+mW56pU6eedbg3qplS6q67775bw4cPl8vlqrBPdHS0fvnlF11wwQWetrfffluvvPJKrYfJuTqX+ssbh+rYs2eP9u3bp7/97W8aM2aMT6Z5Llwul1599dUy7U6nsxaqqfvqyvt2Nt566y3FxcXJ5XIpPj5enTt31vHjx/XBBx/okUce0ZdffqkFCxbUdpl1zrFjxzRt2jRJ8jpKVlen6yvWBaHT6TzjBs/2vYOTJ0+qpKRE/v7+Ph2HnJwcSVJYWJjPpnn06FEFBQWd1WsaNWqkkSNH+qyGhu5s3rdzeT98be/evRo+fLiio6O1adMmtWjRwvO7xMREff3113rrrbdqsULUNdU+R/j9999r9OjRatmypVwul1q0aKFBgwZ5HY6SpLlz5+ryyy+Xy+VSVFSUEhMTlZube8bpz5o1S927d1dERIQCAwPVrVs3rVy5ssL+y5YtU4cOHRQQEKBu3brpvffe8/p9eecIT3f6ceeEhAS98sorkuR1KM0YozZt2mjQoEFlplFYWKjQ0FCNGzeu0uUrPbeZkpKiTp06KTAwULGxscrMzJQkzZ8/X+3atVNAQIB69epVpu73339fcXFxat26tVwul1q1aqUHH3zQ69BPRfWfuqyzZs3SSy+9pJiYGLlcLu3YsaPMOOTk5KhZs2bq1auXTv2jJV9//bWCgoL029/+tsLlTEhIUM+ePSVJcXFxcjgcXp8MN23apOuvv15BQUEKCwvToEGD9N///tdrGqXnvnbs2KG77rpLTZo00XXXXVfp+J4LY4xuvPFGNWvWzBMCknT8+HFdccUViomJ0dGjRyVJ+/bt0/33368OHTooMDBQERERiouLK/M+la53H3zwgSZNmqRmzZopLCxM48aN0/Hjx5Wbm6v4+Hg1adJETZo00aOPPuo1xqe+Ty+++KKio6MVGBionj176osvvqjSci1dulTdunVTYGCgwsPDNXz4cGVnZ1f6msret4SEBDVu3Fh79uzRbbfdpuDgYI0YMUKSOxCnTJmiVq1ayeVyqUOHDpo1a5ZO/2M31V3/y/P888/r559/1sKFC71CsFS7du30wAMPeJ6fPHlSTz/9tGfdb9OmjR5//HEVFRV5va5NmzYaMGCANm/erKuvvlqBgYG64oorPIf73nzzTV1xxRWebc+///3vMmPZuHFj7d+/XwMGDFDjxo118cUXe/5vZmZmqnfv3goKClJ0dLSWL1/u9frDhw/r4Ycf1hVXXKHGjRsrJCRE/fr10+eff+7Vr6JtXOmpgooOT2ZlZalZs2aSpGnTpnm2E2c6ipSbm6vJkyd73ut27drpz3/+s0pKSs55ulVdVl+p9h7hnXfeqS+//FITJ05UmzZtlJOTow0bNmj//v2e47RTp07VtGnT1KdPH40fP147d+7UvHnzlJ6erg8//LDSQ2/Jycm6/fbbNWLECB0/flwrVqxQXFyc1q5dq/79+3v13bJli15//XVNmjRJLpdLc+fO1a233qpPPvlEnTt3PudlHDdunL777jtt2LBBr732mqfd4XBo5MiRev7553X48GGFh4d7frdmzRrl5+dXac/j/fff1+rVq5WYmChJmjFjhgYMGKBHH31Uc+fO1f33368jR47o+eef1+9//3tt2rTJ89qUlBQdO3ZM48ePV0REhD755BPNnj1b3377rVJSUiqt/1SLFi1SYWGhxo4dK5fLpfDwcM+KXKp58+aaN2+e4uLiNHv2bE2aNEklJSVKSEhQcHCw5s6dW+kYXnzxxZo+fbomTZqka665RhdddJEkaePGjerXr58uueQSTZ06Vb/88otmz56tHj166LPPPitzvD8uLk7t27fX9OnTy2xYq+qnn34q0+bv76+QkBA5HA79/e9/V5cuXXTffffpzTfflCQ9+eST+vLLL7V582bPXk96erq2bt2q4cOHq2XLlsrKytK8efPUq1cv7dixQxdeeKHXPCZOnKjIyEhNmzZNH330kRYsWKCwsDBt3bpVrVu31vTp0/X2229r5syZ6ty5s+Lj471e/49//EMFBQVKTExUYWGhkpOT1bt3b2VmZnrGszzPPvusnnjiCQ0bNkxjxozRjz/+qNmzZ+uGG27Qv//97wr39ip73yR3iPTt21fXXXedZs2apQsvvFDGGN1+++169913dc899+jKK6/U+vXr9cgjj+jAgQN68cUXveZRnfW/PGvWrNEll1yi7t27V9qv1JgxY7RkyRINHTpUU6ZM0ccff6wZM2bov//9r1JTU736fv3117rrrrs0btw4jRw5UrNmzdLAgQP117/+VY8//rjuv/9+zzIMGzZMO3fulJ/f//Y3iouL1a9fP91www16/vnntWzZMk2YMEFBQUH64x//qBEjRuiOO+7QX//6V8XHxys2NlZt27aVJH3zzTdKS0tTXFyc2rZtqx9++EHz589Xz549tWPHDkVFRVVpeSvSrFkzzZs3T+PHj9eQIUN0xx13SJK6dOlS4WuOHTumnj176sCBAxo3bpxat26trVu3KikpSQcPHtRLL710TtOt6WUtw5yFRYsWGUkmPT3dGGPMkSNHjCQzc+bMCl+Tk5Nj/P39zS233GKKi4s97XPmzDGSzN///ndP26hRo0x0dLTX648dO+b1/Pjx46Zz586md+/eXu2SjCSzfft2T9u+fftMQECAGTJkSJll2Lt3r6etZ8+epmfPnp7ne/fuNZLMokWLPG2JiYmmvOHauXOnkWTmzZvn1X777bebNm3amJKSkrKDclrdLpfLq5758+cbSSYyMtLk5+d72pOSksrUfvr4GGPMjBkzjMPhMPv27Ttj/aXLGhISYnJycsr93anjYIwxv/vd78yFF15odu3aZWbOnGkkmbS0tEqX0xhj3n33XSPJpKSkeLVfeeWVpnnz5ubQoUOets8//9z4+fmZ+Ph4T9uTTz5pJJnf/e53Z5xXRUaNGuVZV05/9O3b16tv6fuwdOlS89FHHxmn02kmT57s1ae88d+2bZuRZP7xj3942krXu759+3qtE7GxscbhcJj77rvP03by5EnTsmXLctfJwMBA8+2333raP/74YyPJPPjgg5620nEqlZWVZZxOp3n22We96szMzDSNGjUq0366it630rH8wx/+4NWelpZmJJlnnnnGq33o0KHG4XCYr7/+2tNW3fX/dHl5eUaSGTRoUKXLVCojI8NIMmPGjPFqf/jhh40ks2nTJk9bdHS0kWS2bt3qaVu/fr3nfTn1/1vpMrz77ruettLxmj59uqftyJEjJjAw0DgcDrNixQpP+1dffWUkmSeffNLTVlhY6LUNNca9XrhcLvPUU0952srbxhnzv/fx9JpO3eb++OOPZeZbmaefftoEBQWZXbt2ebX/4Q9/ME6n0+zfv/+cplvVZa1oG3W2qnVoNDAwUP7+/tq8ebOOHDlSbp+NGzfq+PHjmjx5stcno3vvvVchISFnPFYfGBjo+feRI0eUl5en66+/Xp999lmZvrGxserWrZvneevWrTVo0CCtX79excXFZ7t4VXLppZfq2muv1bJlyzxthw8f1jvvvKMRI0ZU6TL2m266yWuv59prr5Xk3tsODg4u0/7NN9942k4dn6NHj+qnn35S9+7dZYwpc2imMnfeeafn8MWZzJkzR6GhoRo6dKieeOIJ3X333eUeHq6KgwcPKiMjQwkJCV571F26dNHNN9+st99+u8xr7rvvvnOaV6mAgABt2LChzOO5557z6jd27Fj17dtXEydO1N13362YmBhNnz7dq8+p43/ixAkdOnRI7dq1U1hYWLnr6D333OO1Tlx77bUyxuiee+7xtDmdTl199dVe73OpwYMH6+KLL/Y8//Wvf61rr7223HEq9eabb6qkpETDhg3TTz/95HlERkaqffv2evfddysZrTMbP3681/O3335bTqdTkyZN8mqfMmWKjDF65513vNqrs/6fLj8/X5K8XleZ0nF76KGHytQqqcz2qVOnToqNjS1TU+/evdW6desq1XrqBUdhYWHq0KGDgoKCNGzYME97hw4dFBYW5vV6l8vl2YYWFxfr0KFDaty4sTp06FDuunY+pKSk6Prrr1eTJk281q0+ffqouLi4zKmpqjrfy1qtQ6Mul0t//vOfNWXKFF100UX6zW9+owEDBig+Pl6RkZGS3OdQJPcbeyp/f39dcsklnt9XZO3atXrmmWeUkZHhdcy+vIBp3759mbZLL71Ux44d048//uipydfi4+M1YcIE7du3T9HR0UpJSdGJEyd09913V+n1p/4HkqTQ0FBJUqtWrcptP/VDx/79+/WnP/1Jq1evLvNhJC8vr8rLUHr4pSrCw8P18ssvKy4uThdddJFefvnlKr/2dBWtH5J02WWXaf369WUuwDibWsvjdDrVp0+fKvVduHChYmJitHv3bm3dutUr+CTpl19+0YwZM7Ro0SIdOHDA61BteeN/Nu91eR8uK1rH//nPf1a4DLt375YxptzXSqrWVcGNGjVSy5Ytvdr27dunqKioMmF02WWXeX5/quqs/6cLCQmRJBUUFFSp/n379snPz0/t2rXzao+MjFRYWJjPaw0ICCjzgTM0NFQtW7Yss007fR0oKSlRcnKy5s6dq71793p9uI+IiDjjstaE3bt36z//+U+FH6JPPcd+Ns73slb7HOHkyZM1cOBApaWlaf369XriiSc0Y8YMbdq0SVdddVW1pv3+++/r9ttv1w033KC5c+eqRYsWuuCCC7Ro0aIyJ5Jr0/Dhw/Xggw9q2bJlevzxx7V06VJdffXV5W7cy1PRVawVtZdubIuLi3XzzTfr8OHDeuyxx9SxY0cFBQXpwIEDSkhIKHOOrzKnb+DPZP369ZLc/9G//fZbn14JeiZnW2t1bN682fMBLDMz02tvQHKf81u0aJEmT56s2NhYhYaGyuFwaPjw4eWO/9m81+Ycz3+erqSkRA6HQ++8806582ncuPE5T/vUT+7n6lzX//KEhIQoKiqqyhcQlarqFxBUt9bqvH769Ol64okn9Pvf/15PP/20wsPD5efnp8mTJ3utaxUtS00cFSspKdHNN9+sRx99tNzfX3rppec03aouq6/45PaJmJgYTZkyRVOmTNHu3bt15ZVX6oUXXtDSpUs9N97u3LlTl1xyiec1x48f1969eyv9ZP7GG28oICBA69ev97rvb9GiReX23717d5m2Xbt26cILL6zyYb+KVPYfJTw8XP3799eyZcs0YsQIffjhh3rppZeqNb+qyMzM1K5du7RkyRKviyo2bNhQpq8vv2lk3bp1evXVV/Xoo49q2bJlGjVqlD7++GM1anT2q9Op68fpvvrqKzVt2rTWLsc/ePCgJk6cqFtuuUX+/v56+OGH1bdvX6+byVeuXKlRo0bphRde8LQVFhZW6Yroc1HROl7ZDcQxMTEyxqht27bnvGE6G9HR0dq4caMKCgq89gq/+uorz+9r0oABA7RgwQJt27atzAeX8motKSnR7t27PXuskvTDDz8oNze3Tn1xwMqVK3XjjTdq4cKFXu25ublq2rSp53mTJk087ac609E36ey3EzExMfr555/PeITlbKdb1WX1lWp9lDt27JgKCwu92mJiYhQcHOz5FN2nTx/5+/vr5Zdf9vp0s3DhQuXl5ZW58vNUTqdTDofD65NMVlaW0tLSyu2/bds2r+PH2dnZWrVqlW655ZZq3yxdujGuaAN39913a8eOHXrkkUfkdDo1fPjwas2vKkqX6dRxNcYoOTm5TN8z1V9Vubm5GjNmjH79619r+vTpevXVV/XZZ5+VOXdWVS1atNCVV16pJUuWeNX2xRdf6F//+pduu+22atVbHffee69KSkq0cOFCLViwQI0aNdI999zjNd5Op7PMp/7Zs2fX2DnptLQ0HThwwPP8k08+0ccff6x+/fpV+Jo77rhDTqdT06ZNK1OrMUaHDh3yaY233XabiouLNWfOHK/2F198UQ6Ho9JafeHRRx9VUFCQxowZox9++KHM7/fs2eP5P1K6fp3+wfUvf/mLJFW6fTrfylvXUlJSvNYHyb0NluR1fq64uLhKXyBQepVzVbcTw4YN07Zt2zxHiE6Vm5urkydPnnG6eXl5+uqrr7xOJVR1WX2lWnuEu3bt0k033aRhw4apU6dOatSokVJTU/XDDz94gqBZs2ZKSkrStGnTdOutt+r222/Xzp07NXfuXF1zzTWV3l7Qv39//eUvf9Gtt96qu+66Szk5OXrllVfUrl07/ec//ynTv3Pnzurbt6/X7ROSPN9oUB2lF+FMmjRJffv2LRN2/fv3V0REhFJSUtSvXz81b9682vM8k44dOyomJkYPP/ywDhw4oJCQEL3xxhvlnkM5U/1V9cADD+jQoUPauHGjnE6nbr31Vo0ZM0bPPPOMBg0apK5du571NGfOnKl+/fopNjZW99xzj+f2idDQ0Br5Jp+TJ09q6dKl5f5uyJAhCgoK0qJFi/TWW29p8eLFnnNgs2fP1siRIzVv3jzPZfIDBgzQa6+9ptDQUHXq1Enbtm3Txo0ba+ycTbt27XTddddp/PjxKioq0ksvvaSIiIgKD01J7g3jM888o6SkJGVlZWnw4MEKDg7W3r17lZqaqrFjx+rhhx/2WY0DBw7UjTfeqD/+8Y/KyspS165d9a9//UurVq3S5MmTPRvqmhITE6Ply5frt7/9rS677DKvb5bZunWrUlJSlJCQIEnq2rWrRo0apQULFig3N1c9e/bUJ598oiVLlmjw4MG68cYba7TWszFgwAA99dRTGj16tLp3767MzEwtW7bM60ibJF1++eX6zW9+o6SkJM9tXStWrPCEUmUCAwPVqVMnvf7667r00ksVHh6uzp07V3j72SOPPKLVq1drwIABSkhIULdu3XT06FFlZmZq5cqVysrKUtOmTSudbmpqqkaPHq1FixZ53peqLqvPnM0lpqffPvHTTz+ZxMRE07FjRxMUFGRCQ0PNtddea/75z3+Wee2cOXNMx44dzQUXXGAuuugiM378eHPkyBGvPuXdPrFw4ULTvn1743K5TMeOHc2iRYvKXB5u3B8dTGJiolm6dKmn/1VXXeV1qfCpy3C2t0+cPHnSTJw40TRr1sw4HI5yb0W4//77jSSzfPnyigfxNKV1n6p0/qffllLeZew7duwwffr0MY0bNzZNmzY19957r/n888+rXH9F8ypvHFatWmUkmRdeeMGrX35+vomOjjZdu3Y1x48fr3BZK7oM3xhjNm7caHr06GECAwNNSEiIGThwoNmxY4dXn9L3/ccff6xwHmdS2e0TpetFdna2CQ0NNQMHDizz+iFDhpigoCDzzTffGGPcl7+PHj3aNG3a1DRu3Nj07dvXfPXVVyY6OtqMGjXK87rT/++caZlGjRplgoKCPM9PfZ9eeOEF06pVK+Nyucz1119vPv/883Knebo33njDXHfddSYoKMgEBQWZjh07msTERLNz585Kx6yy2ydOrfFUBQUF5sEHHzRRUVHmggsuMO3btzczZ84scztRddf/yuzatcvce++9pk2bNsbf398EBwebHj16mNmzZ5vCwkJPvxMnTphp06aZtm3bmgsuuMC0atXKJCUlefUxxn37RP/+/cvMp6rLUNF49ezZ01x++eVl2k+fX2FhoZkyZYpp0aKFCQwMND169DDbtm0rs/0yxpg9e/aYPn36GJfLZS666CLz+OOPmw0bNpzx9gljjNm6davp1q2b8ff3r9ItDwUFBSYpKcm0a9fO+Pv7m6ZNm5ru3bubWbNmeW0PKppu6f+NU7dXVV1WX90+4TDGR2fkoQcffFALFy7U999/X+ZGaqA6srKy1LZtW82cOdOne28A6tifYarPCgsLtXTpUt15552EIADUI9Z96bav5eTkaOPGjVq5cqUOHTrk9R2GAIC6jyCsph07dmjEiBFq3ry5Xn75ZV155ZW1XRIA4CxwjhAAYDXOEQIArEYQAgCsVqfPEZaUlOi7775TcHCwT78iDABwfhhjVFBQoKioqGp/L21NqdNB+N1335X5VncAQP2TnZ1d5i+V1BV1OghLv7A3Ozvb8+dVAAD1R35+vlq1alXlvxFZG+p0EJYeDg0JCSEIAaAeq8unt+rmAVsAAM4TghAAYDWCEABgNYIQAGA1ghAAYDWCEABgNYIQAGA1ghAAYDWCEABgNYIQAGA1ghAAYDWCEABgNYIQAGA1ghAAYDWCEABgNYIQAGA1ghAAYDWCEABgNYIQAGA1ghAAYDWCEABgNYIQAGA1ghAAYDWCEABgNYIQAGA1ghAAYDWCEABgNYIQAGA1ghAAYDWCEABgNYIQAGA1ghAAYDWCEABgNYIQAGA1ghAAYDWCEABgNYIQAGC1RrVdQENTWCilpEhpadKhQ1JEhDR4sBQXJwUE1HZ1AIDT+WyP0BijsWPHKjw8XA6HQxkZGb6adL2xerUUFSXFx7uDcMsW98/4eHf7mjW1XSEA4HQ+C8J169Zp8eLFWrt2rQ4ePKj8/HwNHDhQUVFRcjgcSktL89Ws6qTVq917frm57uclJd4/c3OlQYPc/QAAdYfPgnDPnj1q0aKFunfvrsjISB09elRdu3bVK6+84qtZ1FmFhVJCgvvfxpTfp7Q9IcHdHwBQN/jkHGFCQoKWLFkiSXI4HIqOjlZWVpb69evni8nXeSkp0pEjZ+5njLvfypXSyJE1XxcA4Mx8EoTJycmKiYnRggULlJ6eLqfTeU7TKSoqUlFRked5fn6+L8qrcWlpkp/f/w6DVsbPT0pNJQgBoK7wyaHR0NBQBQcHy+l0KjIyUs2aNTun6cyYMUOhoaGeR6tWrXxRXo07dKhqISi5+x0+XLP1AACqrk7dR5iUlKS8vDzPIzs7u7ZLqpKICPeeXlX4+Unh4TVbDwCg6upUELpcLoWEhHg96oPBg89uj3DIkBotBwBwFupUENZXcXFSkyaSw1F5P4fD3W/o0PNTFwDgzGosCH/++WdlZGR4bqzfu3evMjIytH///pqaZa0JCJD+/6LZCsOwtH3JEr5hBgDqkhoLwu3bt+uqq67SVVddJUl66KGHdNVVV+lPf/pTTc2yVg0c6L56NCzM/bz0nGHpz7AwadUqdz8AQN3hMKaiW8BrX35+vkJDQ5WXl1dvzhcWFrrvE0xNdV8dGh7uPic4dCh7ggDsUx+24wQhAKDG1IftOBfLAACsRhACAKxGEAIArEYQAgCsRhACAKxGEAIArEYQAgCsRhACAKxGEAIArEYQAgCsRhACAKxGEAIArEYQAgCsRhACAKxGEAIArEYQAgCsRhACAKxGEAIArEYQAgCsRhACAKxGEAIArEYQAgCsRhACAKxGEAIArEYQAgCsRhACAKxGEAIArEYQAgCsRhACAKxGEAIArEYQAgCsRhACAKxGEAIArEYQAgCsRhACAKxGEAIArEYQAgCsRhACAKxGEAIArEYQAgCsRhACAKxGEAIArEYQAgCsRhACAKxGEAIArEYQAgCsRhACAKxGEAIArEYQAgCsRhACAKxGEAIArEYQAgCsRhACAKxGEAIArEYQAgCsRhACAKxGEAIArEYQAgCsRhACAKxGEAIArEYQAgCsRhACAKxGEAIArEYQAgCsRhACAKxGEAIArEYQAgCsRhACAKxGEAIArEYQAgCsRhACAKxGEAIArEYQAgCsRhACAKxGEAIArEYQAgCsRhACAKxGEAIArNaotgsAqqOwUEpJkdLSpEOHpIgIafBgKS5OCgio7eoA1Ac+2yM0xmjs2LEKDw+Xw+FQRkaGryYNlGv1aikqSoqPdwfhli3un/Hx7vY1a2q7QgD1gc+CcN26dVq8eLHWrl2rgwcPas2aNbrmmmsUHBys5s2ba/Dgwdq5c6evZgfLrV7t3vPLzXU/Lynx/pmbKw0a5O4HAJXxWRDu2bNHLVq0UPfu3RUZGakPP/xQiYmJ+uijj7RhwwadOHFCt9xyi44ePeqrWcJShYVSQoL738aU36e0PSHB3R8AKuKTc4QJCQlasmSJJMnhcCg6OlpZWVlefRYvXqzmzZvr008/1Q033OCL2cJSKSnSkSNn7meMu9/KldLIkTVfF4D6ySdBmJycrJiYGC1YsEDp6elyOp1l+uTl5UmSwsPDK5xOUVGRioqKPM/z8/N9UR4amLQ0yc/vf4dBK+PnJ6WmEoQAKuaTQ6OhoaEKDg6W0+lUZGSkmjVr5vX7kpISTZ48WT169FDnzp0rnM6MGTMUGhrqebRq1coX5aGBOXSoaiEoufsdPlyz9QCo387LfYSJiYn64osvtGLFikr7JSUlKS8vz/PIzs4+H+WhnomIcO/pVYWfn1TJQQgAqPkgnDBhgtauXat3331XLVu2rLSvy+VSSEiI1wM43eDBZ7dHOGRIjZYDoJ6rsSA0xmjChAlKTU3Vpk2b1LZt25qaFSwTFyc1aSI5HJX3czjc/YYOPT91AaifaiwIExMTtXTpUi1fvlzBwcH6/vvv9f333+uXX36pqVnCEgEB0v9fpFxhGJa2L1nCN8wAqFyNBeG8efOUl5enXr16qUWLFp7H66+/XlOzhEUGDnRfPRoW5n5ees6w9GdYmLRqlbsfAFTGYUxFtyTXvvz8fIWGhiovL4/zhShXYaH7PsHUVPfVoeHh7nOCQ4eyJwjUBfVhO04QAgBqTH3YjvNnmAAAViMIAQBWIwgBAFYjCAEAViMIAQBWIwgBAFYjCAEAViMIAQBWIwgBAFYjCAEAViMIAQBWIwgBAFYjCAEAViMIAQBWIwgBAFYjCAEAViMIAQBWIwgBAFYjCAEAViMIAQBWIwgBAFYjCAEAViMIAQBWIwgBAFYjCAEAViMIAQBWIwgBAFYjCAEAViMIAQBWIwgBAFYjCAEAViMIAQBWIwgBAFYjCAEAViMIAQBWIwgBAFYjCAEAViMIAQBWIwgBAFYjCAEAViMIAQBWIwgBAFYjCAEAViMIAQBWIwgBAFYjCAEAViMIAQBWIwgBAFYjCAEAViMIAQBWIwgBAFYjCAEAViMIAQBWIwgBAFYjCAEAViMIAQBWIwgBAFYjCAEAViMIAQBWIwgBAFYjCAEAViMIAQBWIwgBAFYjCAEAViMIAQBWIwgBAFYjCAEAViMIAQBWIwgBAFYjCAEAViMIAQBWIwgBAFYjCAEAViMIAQBWIwgBAFYjCAEAViMIAQBWIwgBAFYjCAEAVmtU2wUAqD8KC6WUFCktTTp0SIqIkAYPluLipICA2q4OODc+2yM0xmjs2LEKDw+Xw+FQRkaGryYNoA5YvVqKipLi491BuGWL+2d8vLt9zZrarhA4Nz4LwnXr1mnx4sVau3atDh48qPfff19dunRRSEiIQkJCFBsbq3feecdXswNwHq1e7d7zy811Py8p8f6ZmysNGuTuB9Q3PgvCPXv2qEWLFurevbsiIyPVpk0bPffcc/r000+1fft29e7dW4MGDdKXX37pq1kCOA8KC6WEBPe/jSm/T2l7QoK7P1Cf+OQcYUJCgpYsWSJJcjgcio6OVlZWllefZ599VvPmzdNHH32kyy+/3BezBXAepKRIR46cuZ8x7n4rV0ojR9Z8XYCv+CQIk5OTFRMTowULFig9PV1Op9Pr98XFxUpJSdHRo0cVGxtb4XSKiopUVFTkeZ6fn++L8gBUQ1qa5Of3v8OglfHzk1JTCULULz4JwtDQUAUHB8vpdCoyMtLTnpmZqdjYWBUWFqpx48ZKTU1Vp06dKpzOjBkzNG3aNF+UBMBHDh2qWghK7n6HD9dsPYCv1eh9hB06dFBGRoY+/vhjjR8/XqNGjdKOHTsq7J+UlKS8vDzPIzs7uybLA1AFERHuPb2q8POTwsNrth7A12r0PkJ/f3+1a9dOktStWzelp6crOTlZ8+fPL7e/y+WSy+WqyZIAnKXBg6U336xa35ISaciQGi0H8Lnz+s0yJSUlXucAAdR9cXFSkyaSw1F5P4fD3W/o0PNTF+ArNbZHmJSUpH79+ql169YqKCjQ8uXLtXnzZq1fv76mZgmgBgQESEuWuO8TdDjKv4WiNCSXLOEbZlD/1NgeYU5OjuLj49WhQwfddNNNSk9P1/r163XzzTfX1CwB1JCBA91Xj4aFuZ+XnjMs/RkWJq1a5e4H1DcOYyq6Rbb25efnKzQ0VHl5eQoJCantcgDrFRa67xNMTXVfHRoe7j4nOHQoe4IoX33YjhOEAIAaUx+24/wZJgCA1QhCAIDVCEIAgNUIQgCA1QhCAIDVCEIAgNUIQgCA1QhCAIDVCEIAgNUIQgCA1QhCAIDVCEIAgNUIQgCA1QhCAIDVCEIAgNUIQgCA1QhCAIDVCEIAgNUIQgCA1QhCAIDVCEIAgNUIQgCA1QhCAIDVCEIAgNUIQgCA1QhCAIDVCEIAgNUIQgCA1QhCAIDVCEIAgNUIQgCA1QhCAIDVCEIAgNUIQgCA1QhCAIDVCEIAgNUIQgCA1QhCAIDVCEIAgNUIQgCA1QhCAIDVCEIAgNUIQgCA1QhCAIDVCEIAgNUIQgCA1QhCAIDVCEIAgNUIQgCA1QhCAIDVCEIAgNUIQgCA1QhCAIDVCEIAgNUIQgCA1QhCAIDVCEIAgNUIQgCA1QhCAIDVCEIAgNUIQgCA1QhCAIDVCEIAgNUIQgCA1QhCAIDVCEIAgNUIQgCA1QhCAIDVCEIAgNUIQgCA1QhCAIDVCEIAgNUIQgCA1QhCAIDVCEIAgNUIQgCA1QhCAIDVCEIAgNUa1XYBAICKFRZKKSlSWpp06JAUESENHizFxUkBAbVdXcPgsz1CY4zGjh2r8PBwORwOZWRk+GrSAGCl1aulqCgpPt4dhFu2uH/Gx7vb16yp7QobBp8F4bp167R48WKtXbtWBw8eVOfOnT2/e+655+RwODR58mRfzQ4AGrTVq917frm57uclJd4/c3OlQYPc/VA9Pjs0umfPHrVo0ULdu3f3ak9PT9f8+fPVpUsXX80KABq0wkIpIcH9b2PK72OM5HC4+333HYdJq8Mne4QJCQmaOHGi9u/fL4fDoTZt2kiSfv75Z40YMUJ/+9vf1KRJE1/MCgAavJQU6ciRikOwlDHufitXnp+6GiqfBGFycrKeeuoptWzZUgcPHlR6erokKTExUf3791efPn2qNJ2ioiLl5+d7PQDANmlpkl8Vt85+flJqao2W0+D55NBoaGiogoOD5XQ6FRkZKUlasWKFPvvsM08oVsWMGTM0bdo0X5QEAPXWoUP/Oxd4JiUl0uHDNVtPQ1cj9xFmZ2frgQce0LJlyxRwFgeuk5KSlJeX53lkZ2fXRHkAUKdFRJzdHmF4eM3W09DVyH2En376qXJycvSrX/3K01ZcXKz33ntPc+bMUVFRkZxOZ5nXuVwuuVyumigJAOqNwYOlN9+sWt+SEmnIkBotp8GrkSC86aablJmZ6dU2evRodezYUY899li5IQgAcIuLkx54wH2LRGUXzDgcUliYNHTo+aqsYaqRIAwODva6j1CSgoKCFBERUaYdAOAtIEBassR9n6DDUX4YOhzun0uWcOtEdfFdowBQBw0c6L56NCzM/bz0nGHpz7AwadUqdz9Uj8OYM92pUnvy8/MVGhqqvLw8hYSE1HY5AHDeFRa67xNMTXVfHRoe7j4nOHRo/dgTrA/bcYIQAFBj6sN2nEOjAACrEYQAAKsRhAAAqxGEAACrEYQAAKsRhAAAqxGEAACrEYQAAKsRhAAAqxGEAACrEYQAAKsRhAAAqxGEAACrEYQAAKsRhAAAqxGEAACrEYQAAKsRhAAAqxGEAACrEYQAAKsRhAAAqxGEAACrEYQAAKsRhAAAqxGEAACrEYQAAKsRhAAAqxGEAACrEYQAAKsRhAAAqxGEAACrEYQAAKsRhAAAqxGEAACrEYQAAKsRhAAAqxGEAACrNartAipjjJEk5efn13IlAIBzUbr9Lt2e10V1OggLCgokSa1atarlSgAA1VFQUKDQ0NDaLqNcDlOHY7qkpETfffedgoOD5XA4arucs5Kfn69WrVopOztbISEhtV1Og8d4n1+M9/lXX8fcGKOCggJFRUXJz69uno2r03uEfn5+atmyZW2XUS0hISH1aqWt7xjv84vxPv/q45jX1T3BUnUzngEAOE8IQgCA1QjCGuJyufTkk0/K5XLVdilWYLzPL8b7/GPMa06dvlgGAICaxh4hAMBqBCEAwGoEIQDAagQhAMBqBKEPGGM0duxYhYeHy+FwKCMjo7ZLavAY8/OL8T6/GO/ziyD0gXXr1mnx4sVau3atDh48qPz8fA0cOFBRUVFyOBxKS0ur7RIbnNPHfM2aNbrmmmsUHBys5s2ba/Dgwdq5c2dtl9lgnD7e77//vrp06eL5lpPY2Fi98847tV1mg3H6eHfu3Nnzu+eee04Oh0OTJ0+uvQIbGILQB/bs2aMWLVqoe/fuioyM1NGjR9W1a1e98sortV1ag3X6mH/44YdKTEzURx99pA0bNujEiRO65ZZbdPTo0doutUE4fbzbtGmj5557Tp9++qm2b9+u3r17a9CgQfryyy9ru9QG4fTxbtTI/W2Y6enpmj9/vrp06VLLFTYwBtUyatQoI8nziI6O9vq9JJOamlortTVUZxpzY4zJyckxksyWLVvOf4ENTFXG2xhjmjRpYl599dXzW1wDVNF4FxQUmPbt25sNGzaYnj17mgceeKBW62xI6vSXbtcHycnJiomJ0YIFC5Seni6n01nbJTV4VRnzvLw8SVJ4ePj5Lq/BOdN4FxcXKyUlRUePHlVsbGwtVdlwVDTeiYmJ6t+/v/r06aNnnnmmlqtsWAjCagoNDVVwcLCcTqciIyNruxwrnGnMS0pKNHnyZPXo0cPr3ArOTUXjnZmZqdjYWBUWFqpx48ZKTU1Vp06darHShqG88V6xYoU+++wzpaen13J1DRNBiAYnMTFRX3zxhT744IPaLqVB69ChgzIyMpSXl6eVK1dq1KhR2rJlC2HoY9nZ2XrggQe0YcMGBQQE1HY5DRJBiAZlwoQJWrt2rd577716/7cs6zp/f3+1a9dOktStWzelp6crOTlZ8+fPr+XKGpZPP/1UOTk5+tWvfuVpKy4u1nvvvac5c+aoqKiIUzLVRBCiQTDGaOLEiUpNTdXmzZvVtm3b2i7JOiUlJSoqKqrtMhqcm266SZmZmV5to0ePVseOHfXYY48Rgj5AENaAn3/+WV9//bXn+d69e5WRkaHw8HC1bt26FitruBITE7V8+XKtWrVKwcHB+v777yW5z7cEBgbWcnUNT1JSkvr166fWrVuroKBAy5cv1+bNm7V+/fraLq3BCQ4OLnOuOygoSBEREZwD9xGCsAZs375dN954o+f5Qw89JEkaNWqUFi9eXEtVNWzz5s2TJPXq1curfdGiRUpISDj/BTVwOTk5io+P18GDBxUaGqouXbpo/fr1uvnmm2u7NOCs8fcIAQBW45tlAABWIwgBAFYjCAEAViMIAQBWIwgBAFYjCAEAViMIAQBWIwgBAFYjCAEAViMIAQBWIwgBAFb7PyAGv1xV5GKRAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "model2 = model.copy()\n", "model2.AddSensors(sensSets[0])\n", "_, ax = plt.subplots(num=30)\n", "_ = model2.IsolabilityAnalysis(ax=ax)" ] } ], "metadata": { "kernelspec": { "display_name": "fdt_312", "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.12.2" } }, "nbformat": 4, "nbformat_minor": 2 }