6780 lines (6779 with data), 1.2 MB
{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "pXQzH0nC5JtP"
},
"source": [
"# **Project #16 - Health AI 5**\n",
"\n",
"# **Group 17**\n",
"\n",
"# Chirayu Tripathi, Sakshi Pandey, Shikhar Panwar, Pranav Gautam, Vishrut Mehta\n",
"\n",
"# **Summary**\n",
"--------------\n",
"### Project Summary\n",
"\n",
"**Project description**\n",
"1. Contextualization:\n",
"In the evolving landscape of data-driven decision-making, the ability to effectively analyze and interpret complex datasets has become paramount. This project situates itself within this context, aiming to harness advanced data processing and augmentation techniques to glean deeper insights from hematological data. The project's focus is on addressing common challenges encountered in medical data analysis, including class imbalance and the need for robust model training.\n",
"\n",
"2. Problem:\n",
"The central problem tackled in this project is the effective analysis and prediction using a hematological dataset. Specifically, the project confronts issues such as class imbalance and the limitations of conventional modeling techniques when dealing with complex, real-world medical data. The goal is to enhance the predictability and reliability of the models used for such analyses.\n",
"\n",
"3. Proposed Approach:\n",
"To address these challenges, the project adopted a multi-faceted approach involving exploratory data analysis, preprocessing, and advanced data augmentation techniques. Initial steps included descriptive statistical analysis, handling missing values, and normalization of the data. Subsequently, to address class imbalance and enhance the dataset, methods like SMOTE-NC and Variational Auto Encoder (VAE) based sampling were employed.\n",
"\n",
"4. Impact:\n",
"The application of these sophisticated data augmentation techniques significantly improved the performance of predictive models. By creating a more balanced and representative dataset, the project was able to enhance the model's accuracy and generalizability. This, in turn, could potentially lead to more reliable medical analyses and decision-making processes.\n",
"\n",
"**Objective**\n",
"The objective of the project was twofold: firstly, to manage and preprocess a complex hematological dataset effectively, and secondly, to improve the performance of predictive models used for analyzing such data. This was achieved by addressing specific challenges like class imbalance and the need for a more representative dataset, thereby enhancing the model's ability to generalize to new, unseen data.\n",
"\n",
"**Dataset**\n",
"The dataset at the core of this project is a comprehensive collection of hematological measurements. It includes 3000 samples with 11 features each, encompassing various blood parameters like Hematocrit, Hemoglobin, and Erythrocyte counts, along with demographic data like age and sex. Notably, the dataset was subjected to preprocessing steps such as Min-Max normalization and missing value analysis, although no missing values were found. The initial exploration of the dataset provided vital insights into its structure and inherent patterns.\n",
"\n",
"**Approach**\n",
"The approach was methodical and data-centric, starting with a thorough exploratory analysis followed by preprocessing steps like normalization and duplicate removal. To tackle class imbalance, SMOTE-NC was used, increasing the dataset size and enhancing class representation. Further, VAE-based sampling methods were employed to generate new data points, capturing the underlying distributions of the classes more effectively. These augmentation techniques not only balanced the dataset but also introduced variability, making the models more robust and less prone to overfitting.\n",
"\n",
"**Conclusions**\n",
"The project's results were promising, showcasing a notable improvement in model performance. The use of SMOTE-NC improved model accuracy by 3%, while the VAE-based sampling methods led to an additional 10% improvement over SMOTE-NC and a 13% improvement compared to no augmentation. These results underscore the effectiveness of the chosen data augmentation techniques in enhancing the predictability and reliability of models dealing with complex medical datasets. The project demonstrates the potential of advanced data processing techniques in transforming the landscape of medical data analysis, paving the way for more accurate and reliable medical predictions and decisions.\n",
"\n",
"\n",
"\n",
"--------------\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "4QtyPFlLu7QI"
},
"source": [
"Demo Video Link: https://youtu.be/GvqRZv7iH84"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "4-2gAMhODVL3"
},
"source": [
"# I. Preparation"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "0RQHWBdeDVL4"
},
"source": [
"Chapters are consisted consiering the expected orders of the processes. However, depending on your project, you may change the orders with why the corresponding orders are changed."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "UoRfgjS2yekq"
},
"source": [
"**Import all necessary libraries here:** You do not have to get this right or complete from the first shot, you can include all you feel will be relevant but you can add more as you need them."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "nmdPxJ2Q7W7p"
},
"source": [
"**Connect to your Google Account:** You are required to use Google Colab. Hence the first thing you will do is connect to your account and mount your landing Google Drive folder."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "u8uC2haXDVL6",
"outputId": "cbcd5f74-4720-4855-9542-53d7268a41b0"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Drive already mounted at /content/drive; to attempt to forcibly remount, call drive.mount(\"/content/drive\", force_remount=True).\n"
]
}
],
"source": [
"from google.colab import drive\n",
"drive.mount('/content/drive')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 1000
},
"id": "Oj6ocUAuqTig",
"outputId": "e6b487ea-aeb7-4142-be8a-c5fc24fb620a"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Collecting deep_tabular_augmentation\n",
" Downloading deep_tabular_augmentation-0.5.3.tar.gz (6.8 kB)\n",
" Preparing metadata (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
"Building wheels for collected packages: deep_tabular_augmentation\n",
" Building wheel for deep_tabular_augmentation (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
" Created wheel for deep_tabular_augmentation: filename=deep_tabular_augmentation-0.5.3-py3-none-any.whl size=7912 sha256=1d98055879af56f61376455bfe5d94362b923444124b8c026acca75c7482afe4\n",
" Stored in directory: /root/.cache/pip/wheels/38/f0/a1/8f6374b13b851c6fd151c4e5fd7bc0fb2b45f41acc9ecc9f59\n",
"Successfully built deep_tabular_augmentation\n",
"Installing collected packages: deep_tabular_augmentation\n",
"Successfully installed deep_tabular_augmentation-0.5.3\n",
"Collecting mlprep-ls\n",
" Downloading mlprep_ls-0.3.0-py3-none-any.whl (5.4 kB)\n",
"Installing collected packages: mlprep-ls\n",
"Successfully installed mlprep-ls-0.3.0\n",
"Collecting aif360[all]\n",
" Downloading aif360-0.5.0-py3-none-any.whl (214 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m214.1/214.1 kB\u001b[0m \u001b[31m1.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hRequirement already satisfied: numpy>=1.16 in /usr/local/lib/python3.10/dist-packages (from aif360[all]) (1.23.5)\n",
"Requirement already satisfied: scipy>=1.2.0 in /usr/local/lib/python3.10/dist-packages (from aif360[all]) (1.11.3)\n",
"Requirement already satisfied: pandas>=0.24.0 in /usr/local/lib/python3.10/dist-packages (from aif360[all]) (1.5.3)\n",
"Requirement already satisfied: scikit-learn>=1.0 in /usr/local/lib/python3.10/dist-packages (from aif360[all]) (1.2.2)\n",
"Requirement already satisfied: matplotlib in /usr/local/lib/python3.10/dist-packages (from aif360[all]) (3.7.1)\n",
"Requirement already satisfied: seaborn in /usr/local/lib/python3.10/dist-packages (from aif360[all]) (0.12.2)\n",
"Collecting jinja2<3.1.0 (from aif360[all])\n",
" Downloading Jinja2-3.0.3-py3-none-any.whl (133 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m133.6/133.6 kB\u001b[0m \u001b[31m7.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hCollecting ipympl (from aif360[all])\n",
" Downloading ipympl-0.9.3-py2.py3-none-any.whl (511 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m511.6/511.6 kB\u001b[0m \u001b[31m6.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hCollecting adversarial-robustness-toolbox>=1.0.0 (from aif360[all])\n",
" Downloading adversarial_robustness_toolbox-1.16.0-py3-none-any.whl (1.6 MB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.6/1.6 MB\u001b[0m \u001b[31m12.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hRequirement already satisfied: pytest>=3.5 in /usr/local/lib/python3.10/dist-packages (from aif360[all]) (7.4.3)\n",
"Requirement already satisfied: torch in /usr/local/lib/python3.10/dist-packages (from aif360[all]) (2.1.0+cu118)\n",
"Collecting BlackBoxAuditing (from aif360[all])\n",
" Downloading BlackBoxAuditing-0.1.54.tar.gz (2.6 MB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m2.6/2.6 MB\u001b[0m \u001b[31m20.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25h Preparing metadata (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
"Requirement already satisfied: tensorflow>=1.13.1 in /usr/local/lib/python3.10/dist-packages (from aif360[all]) (2.14.0)\n",
"Collecting sphinx<2 (from aif360[all])\n",
" Downloading Sphinx-1.8.6-py2.py3-none-any.whl (3.1 MB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m3.1/3.1 MB\u001b[0m \u001b[31m31.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hCollecting tempeh (from aif360[all])\n",
" Downloading tempeh-0.1.12-py3-none-any.whl (39 kB)\n",
"Requirement already satisfied: cvxpy>=1.0 in /usr/local/lib/python3.10/dist-packages (from aif360[all]) (1.3.2)\n",
"Collecting jupyter (from aif360[all])\n",
" Downloading jupyter-1.0.0-py2.py3-none-any.whl (2.7 kB)\n",
"Requirement already satisfied: tqdm in /usr/local/lib/python3.10/dist-packages (from aif360[all]) (4.66.1)\n",
"Collecting igraph[plotting] (from aif360[all])\n",
" Downloading igraph-0.11.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.3 MB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m3.3/3.3 MB\u001b[0m \u001b[31m42.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hCollecting fairlearn~=0.7 (from aif360[all])\n",
" Downloading fairlearn-0.9.0-py3-none-any.whl (231 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m231.5/231.5 kB\u001b[0m \u001b[31m24.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hRequirement already satisfied: rpy2 in /usr/local/lib/python3.10/dist-packages (from aif360[all]) (3.4.2)\n",
"Collecting lime (from aif360[all])\n",
" Downloading lime-0.2.0.1.tar.gz (275 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m275.7/275.7 kB\u001b[0m \u001b[31m33.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25h Preparing metadata (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
"Requirement already satisfied: lightgbm in /usr/local/lib/python3.10/dist-packages (from aif360[all]) (4.1.0)\n",
"Collecting sphinx-rtd-theme (from aif360[all])\n",
" Downloading sphinx_rtd_theme-2.0.0-py2.py3-none-any.whl (2.8 MB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m2.8/2.8 MB\u001b[0m \u001b[31m51.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hCollecting scikit-learn>=1.0 (from aif360[all])\n",
" Downloading scikit_learn-1.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (30.5 MB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m30.5/30.5 MB\u001b[0m \u001b[31m22.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hRequirement already satisfied: six in /usr/local/lib/python3.10/dist-packages (from adversarial-robustness-toolbox>=1.0.0->aif360[all]) (1.16.0)\n",
"Requirement already satisfied: setuptools in /usr/local/lib/python3.10/dist-packages (from adversarial-robustness-toolbox>=1.0.0->aif360[all]) (67.7.2)\n",
"Requirement already satisfied: osqp>=0.4.1 in /usr/local/lib/python3.10/dist-packages (from cvxpy>=1.0->aif360[all]) (0.6.2.post8)\n",
"Requirement already satisfied: ecos>=2 in /usr/local/lib/python3.10/dist-packages (from cvxpy>=1.0->aif360[all]) (2.0.12)\n",
"Requirement already satisfied: scs>=1.1.6 in /usr/local/lib/python3.10/dist-packages (from cvxpy>=1.0->aif360[all]) (3.2.4)\n",
"Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.10/dist-packages (from jinja2<3.1.0->aif360[all]) (2.1.3)\n",
"Requirement already satisfied: python-dateutil>=2.8.1 in /usr/local/lib/python3.10/dist-packages (from pandas>=0.24.0->aif360[all]) (2.8.2)\n",
"Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.10/dist-packages (from pandas>=0.24.0->aif360[all]) (2023.3.post1)\n",
"Requirement already satisfied: iniconfig in /usr/local/lib/python3.10/dist-packages (from pytest>=3.5->aif360[all]) (2.0.0)\n",
"Requirement already satisfied: packaging in /usr/local/lib/python3.10/dist-packages (from pytest>=3.5->aif360[all]) (23.2)\n",
"Requirement already satisfied: pluggy<2.0,>=0.12 in /usr/local/lib/python3.10/dist-packages (from pytest>=3.5->aif360[all]) (1.3.0)\n",
"Requirement already satisfied: exceptiongroup>=1.0.0rc8 in /usr/local/lib/python3.10/dist-packages (from pytest>=3.5->aif360[all]) (1.1.3)\n",
"Requirement already satisfied: tomli>=1.0.0 in /usr/local/lib/python3.10/dist-packages (from pytest>=3.5->aif360[all]) (2.0.1)\n",
"Requirement already satisfied: joblib>=1.0.0 in /usr/local/lib/python3.10/dist-packages (from scikit-learn>=1.0->aif360[all]) (1.3.2)\n",
"Requirement already satisfied: threadpoolctl>=2.0.0 in /usr/local/lib/python3.10/dist-packages (from scikit-learn>=1.0->aif360[all]) (3.2.0)\n",
"Requirement already satisfied: Pygments>=2.0 in /usr/local/lib/python3.10/dist-packages (from sphinx<2->aif360[all]) (2.16.1)\n",
"Collecting docutils<0.18,>=0.11 (from sphinx<2->aif360[all])\n",
" Downloading docutils-0.17.1-py2.py3-none-any.whl (575 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m575.5/575.5 kB\u001b[0m \u001b[31m58.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hRequirement already satisfied: snowballstemmer>=1.1 in /usr/local/lib/python3.10/dist-packages (from sphinx<2->aif360[all]) (2.2.0)\n",
"Requirement already satisfied: babel!=2.0,>=1.3 in /usr/local/lib/python3.10/dist-packages (from sphinx<2->aif360[all]) (2.13.1)\n",
"Requirement already satisfied: alabaster<0.8,>=0.7 in /usr/local/lib/python3.10/dist-packages (from sphinx<2->aif360[all]) (0.7.13)\n",
"Requirement already satisfied: imagesize in /usr/local/lib/python3.10/dist-packages (from sphinx<2->aif360[all]) (1.4.1)\n",
"Requirement already satisfied: requests>=2.0.0 in /usr/local/lib/python3.10/dist-packages (from sphinx<2->aif360[all]) (2.31.0)\n",
"Collecting sphinxcontrib-websupport (from sphinx<2->aif360[all])\n",
" Downloading sphinxcontrib_websupport-1.2.6-py3-none-any.whl (37 kB)\n",
"Requirement already satisfied: absl-py>=1.0.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow>=1.13.1->aif360[all]) (1.4.0)\n",
"Requirement already satisfied: astunparse>=1.6.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow>=1.13.1->aif360[all]) (1.6.3)\n",
"Requirement already satisfied: flatbuffers>=23.5.26 in /usr/local/lib/python3.10/dist-packages (from tensorflow>=1.13.1->aif360[all]) (23.5.26)\n",
"Requirement already satisfied: gast!=0.5.0,!=0.5.1,!=0.5.2,>=0.2.1 in /usr/local/lib/python3.10/dist-packages (from tensorflow>=1.13.1->aif360[all]) (0.5.4)\n",
"Requirement already satisfied: google-pasta>=0.1.1 in /usr/local/lib/python3.10/dist-packages (from tensorflow>=1.13.1->aif360[all]) (0.2.0)\n",
"Requirement already satisfied: h5py>=2.9.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow>=1.13.1->aif360[all]) (3.9.0)\n",
"Requirement already satisfied: libclang>=13.0.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow>=1.13.1->aif360[all]) (16.0.6)\n",
"Requirement already satisfied: ml-dtypes==0.2.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow>=1.13.1->aif360[all]) (0.2.0)\n",
"Requirement already satisfied: opt-einsum>=2.3.2 in /usr/local/lib/python3.10/dist-packages (from tensorflow>=1.13.1->aif360[all]) (3.3.0)\n",
"Requirement already satisfied: protobuf!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<5.0.0dev,>=3.20.3 in /usr/local/lib/python3.10/dist-packages (from tensorflow>=1.13.1->aif360[all]) (3.20.3)\n",
"Requirement already satisfied: termcolor>=1.1.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow>=1.13.1->aif360[all]) (2.3.0)\n",
"Requirement already satisfied: typing-extensions>=3.6.6 in /usr/local/lib/python3.10/dist-packages (from tensorflow>=1.13.1->aif360[all]) (4.5.0)\n",
"Requirement already satisfied: wrapt<1.15,>=1.11.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow>=1.13.1->aif360[all]) (1.14.1)\n",
"Requirement already satisfied: tensorflow-io-gcs-filesystem>=0.23.1 in /usr/local/lib/python3.10/dist-packages (from tensorflow>=1.13.1->aif360[all]) (0.34.0)\n",
"Requirement already satisfied: grpcio<2.0,>=1.24.3 in /usr/local/lib/python3.10/dist-packages (from tensorflow>=1.13.1->aif360[all]) (1.59.2)\n",
"Requirement already satisfied: tensorboard<2.15,>=2.14 in /usr/local/lib/python3.10/dist-packages (from tensorflow>=1.13.1->aif360[all]) (2.14.1)\n",
"Requirement already satisfied: tensorflow-estimator<2.15,>=2.14.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow>=1.13.1->aif360[all]) (2.14.0)\n",
"Requirement already satisfied: keras<2.15,>=2.14.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow>=1.13.1->aif360[all]) (2.14.0)\n",
"Requirement already satisfied: networkx in /usr/local/lib/python3.10/dist-packages (from BlackBoxAuditing->aif360[all]) (3.2.1)\n",
"Collecting texttable>=1.6.2 (from igraph[plotting]->aif360[all])\n",
" Downloading texttable-1.7.0-py2.py3-none-any.whl (10 kB)\n",
"Collecting cairocffi>=1.2.0 (from igraph[plotting]->aif360[all])\n",
" Downloading cairocffi-1.6.1-py3-none-any.whl (75 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m75.1/75.1 kB\u001b[0m \u001b[31m11.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hRequirement already satisfied: ipython<9 in /usr/local/lib/python3.10/dist-packages (from ipympl->aif360[all]) (7.34.0)\n",
"Requirement already satisfied: ipython-genutils in /usr/local/lib/python3.10/dist-packages (from ipympl->aif360[all]) (0.2.0)\n",
"Requirement already satisfied: pillow in /usr/local/lib/python3.10/dist-packages (from ipympl->aif360[all]) (9.4.0)\n",
"Requirement already satisfied: traitlets<6 in /usr/local/lib/python3.10/dist-packages (from ipympl->aif360[all]) (5.7.1)\n",
"Requirement already satisfied: ipywidgets<9,>=7.6.0 in /usr/local/lib/python3.10/dist-packages (from ipympl->aif360[all]) (7.7.1)\n",
"Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib->aif360[all]) (1.2.0)\n",
"Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.10/dist-packages (from matplotlib->aif360[all]) (0.12.1)\n",
"Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib->aif360[all]) (4.44.3)\n",
"Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib->aif360[all]) (1.4.5)\n",
"Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib->aif360[all]) (3.1.1)\n",
"Requirement already satisfied: notebook in /usr/local/lib/python3.10/dist-packages (from jupyter->aif360[all]) (6.5.5)\n",
"Collecting qtconsole (from jupyter->aif360[all])\n",
" Downloading qtconsole-5.5.1-py3-none-any.whl (123 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m123.4/123.4 kB\u001b[0m \u001b[31m17.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hRequirement already satisfied: jupyter-console in /usr/local/lib/python3.10/dist-packages (from jupyter->aif360[all]) (6.1.0)\n",
"Requirement already satisfied: nbconvert in /usr/local/lib/python3.10/dist-packages (from jupyter->aif360[all]) (6.5.4)\n",
"Requirement already satisfied: ipykernel in /usr/local/lib/python3.10/dist-packages (from jupyter->aif360[all]) (5.5.6)\n",
"Requirement already satisfied: scikit-image>=0.12 in /usr/local/lib/python3.10/dist-packages (from lime->aif360[all]) (0.19.3)\n",
"Requirement already satisfied: cffi>=1.10.0 in /usr/local/lib/python3.10/dist-packages (from rpy2->aif360[all]) (1.16.0)\n",
"Requirement already satisfied: tzlocal in /usr/local/lib/python3.10/dist-packages (from rpy2->aif360[all]) (5.2)\n",
"INFO: pip is looking at multiple versions of sphinx-rtd-theme to determine which version is compatible with other requirements. This could take a while.\n",
"Collecting sphinx-rtd-theme (from aif360[all])\n",
" Downloading sphinx_rtd_theme-1.3.0-py2.py3-none-any.whl (2.8 MB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m2.8/2.8 MB\u001b[0m \u001b[31m97.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hCollecting sphinxcontrib-jquery<5,>=4 (from sphinx-rtd-theme->aif360[all])\n",
" Downloading sphinxcontrib_jquery-4.1-py2.py3-none-any.whl (121 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m121.1/121.1 kB\u001b[0m \u001b[31m17.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hCollecting memory-profiler (from tempeh->aif360[all])\n",
" Downloading memory_profiler-0.61.0-py3-none-any.whl (31 kB)\n",
"Collecting shap (from tempeh->aif360[all])\n",
" Downloading shap-0.43.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (532 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m532.9/532.9 kB\u001b[0m \u001b[31m58.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hRequirement already satisfied: filelock in /usr/local/lib/python3.10/dist-packages (from torch->aif360[all]) (3.13.1)\n",
"Requirement already satisfied: sympy in /usr/local/lib/python3.10/dist-packages (from torch->aif360[all]) (1.12)\n",
"Requirement already satisfied: fsspec in /usr/local/lib/python3.10/dist-packages (from torch->aif360[all]) (2023.6.0)\n",
"Requirement already satisfied: triton==2.1.0 in /usr/local/lib/python3.10/dist-packages (from torch->aif360[all]) (2.1.0)\n",
"Requirement already satisfied: wheel<1.0,>=0.23.0 in /usr/local/lib/python3.10/dist-packages (from astunparse>=1.6.0->tensorflow>=1.13.1->aif360[all]) (0.41.3)\n",
"Requirement already satisfied: pycparser in /usr/local/lib/python3.10/dist-packages (from cffi>=1.10.0->rpy2->aif360[all]) (2.21)\n",
"Collecting jedi>=0.16 (from ipython<9->ipympl->aif360[all])\n",
" Downloading jedi-0.19.1-py2.py3-none-any.whl (1.6 MB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.6/1.6 MB\u001b[0m \u001b[31m92.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hRequirement already satisfied: decorator in /usr/local/lib/python3.10/dist-packages (from ipython<9->ipympl->aif360[all]) (4.4.2)\n",
"Requirement already satisfied: pickleshare in /usr/local/lib/python3.10/dist-packages (from ipython<9->ipympl->aif360[all]) (0.7.5)\n",
"Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /usr/local/lib/python3.10/dist-packages (from ipython<9->ipympl->aif360[all]) (3.0.41)\n",
"Requirement already satisfied: backcall in /usr/local/lib/python3.10/dist-packages (from ipython<9->ipympl->aif360[all]) (0.2.0)\n",
"Requirement already satisfied: matplotlib-inline in /usr/local/lib/python3.10/dist-packages (from ipython<9->ipympl->aif360[all]) (0.1.6)\n",
"Requirement already satisfied: pexpect>4.3 in /usr/local/lib/python3.10/dist-packages (from ipython<9->ipympl->aif360[all]) (4.8.0)\n",
"Requirement already satisfied: widgetsnbextension~=3.6.0 in /usr/local/lib/python3.10/dist-packages (from ipywidgets<9,>=7.6.0->ipympl->aif360[all]) (3.6.6)\n",
"Requirement already satisfied: jupyterlab-widgets>=1.0.0 in /usr/local/lib/python3.10/dist-packages (from ipywidgets<9,>=7.6.0->ipympl->aif360[all]) (3.0.9)\n",
"Requirement already satisfied: jupyter-client in /usr/local/lib/python3.10/dist-packages (from ipykernel->jupyter->aif360[all]) (6.1.12)\n",
"Requirement already satisfied: tornado>=4.2 in /usr/local/lib/python3.10/dist-packages (from ipykernel->jupyter->aif360[all]) (6.3.2)\n",
"Requirement already satisfied: qdldl in /usr/local/lib/python3.10/dist-packages (from osqp>=0.4.1->cvxpy>=1.0->aif360[all]) (0.1.7.post0)\n",
"Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests>=2.0.0->sphinx<2->aif360[all]) (3.3.2)\n",
"Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests>=2.0.0->sphinx<2->aif360[all]) (3.4)\n",
"Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests>=2.0.0->sphinx<2->aif360[all]) (2.0.7)\n",
"Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests>=2.0.0->sphinx<2->aif360[all]) (2023.7.22)\n",
"Requirement already satisfied: imageio>=2.4.1 in /usr/local/lib/python3.10/dist-packages (from scikit-image>=0.12->lime->aif360[all]) (2.31.6)\n",
"Requirement already satisfied: tifffile>=2019.7.26 in /usr/local/lib/python3.10/dist-packages (from scikit-image>=0.12->lime->aif360[all]) (2023.9.26)\n",
"Requirement already satisfied: PyWavelets>=1.1.1 in /usr/local/lib/python3.10/dist-packages (from scikit-image>=0.12->lime->aif360[all]) (1.4.1)\n",
"Requirement already satisfied: google-auth<3,>=1.6.3 in /usr/local/lib/python3.10/dist-packages (from tensorboard<2.15,>=2.14->tensorflow>=1.13.1->aif360[all]) (2.17.3)\n",
"Requirement already satisfied: google-auth-oauthlib<1.1,>=0.5 in /usr/local/lib/python3.10/dist-packages (from tensorboard<2.15,>=2.14->tensorflow>=1.13.1->aif360[all]) (1.0.0)\n",
"Requirement already satisfied: markdown>=2.6.8 in /usr/local/lib/python3.10/dist-packages (from tensorboard<2.15,>=2.14->tensorflow>=1.13.1->aif360[all]) (3.5.1)\n",
"Requirement already satisfied: tensorboard-data-server<0.8.0,>=0.7.0 in /usr/local/lib/python3.10/dist-packages (from tensorboard<2.15,>=2.14->tensorflow>=1.13.1->aif360[all]) (0.7.2)\n",
"Requirement already satisfied: werkzeug>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from tensorboard<2.15,>=2.14->tensorflow>=1.13.1->aif360[all]) (3.0.1)\n",
"Requirement already satisfied: psutil in /usr/local/lib/python3.10/dist-packages (from memory-profiler->tempeh->aif360[all]) (5.9.5)\n",
"Requirement already satisfied: lxml in /usr/local/lib/python3.10/dist-packages (from nbconvert->jupyter->aif360[all]) (4.9.3)\n",
"Requirement already satisfied: beautifulsoup4 in /usr/local/lib/python3.10/dist-packages (from nbconvert->jupyter->aif360[all]) (4.11.2)\n",
"Requirement already satisfied: bleach in /usr/local/lib/python3.10/dist-packages (from nbconvert->jupyter->aif360[all]) (6.1.0)\n",
"Requirement already satisfied: defusedxml in /usr/local/lib/python3.10/dist-packages (from nbconvert->jupyter->aif360[all]) (0.7.1)\n",
"Requirement already satisfied: entrypoints>=0.2.2 in /usr/local/lib/python3.10/dist-packages (from nbconvert->jupyter->aif360[all]) (0.4)\n",
"Requirement already satisfied: jupyter-core>=4.7 in /usr/local/lib/python3.10/dist-packages (from nbconvert->jupyter->aif360[all]) (5.5.0)\n",
"Requirement already satisfied: jupyterlab-pygments in /usr/local/lib/python3.10/dist-packages (from nbconvert->jupyter->aif360[all]) (0.2.2)\n",
"Requirement already satisfied: mistune<2,>=0.8.1 in /usr/local/lib/python3.10/dist-packages (from nbconvert->jupyter->aif360[all]) (0.8.4)\n",
"Requirement already satisfied: nbclient>=0.5.0 in /usr/local/lib/python3.10/dist-packages (from nbconvert->jupyter->aif360[all]) (0.9.0)\n",
"Requirement already satisfied: nbformat>=5.1 in /usr/local/lib/python3.10/dist-packages (from nbconvert->jupyter->aif360[all]) (5.9.2)\n",
"Requirement already satisfied: pandocfilters>=1.4.1 in /usr/local/lib/python3.10/dist-packages (from nbconvert->jupyter->aif360[all]) (1.5.0)\n",
"Requirement already satisfied: tinycss2 in /usr/local/lib/python3.10/dist-packages (from nbconvert->jupyter->aif360[all]) (1.2.1)\n",
"Requirement already satisfied: pyzmq<25,>=17 in /usr/local/lib/python3.10/dist-packages (from notebook->jupyter->aif360[all]) (23.2.1)\n",
"Requirement already satisfied: argon2-cffi in /usr/local/lib/python3.10/dist-packages (from notebook->jupyter->aif360[all]) (23.1.0)\n",
"Requirement already satisfied: nest-asyncio>=1.5 in /usr/local/lib/python3.10/dist-packages (from notebook->jupyter->aif360[all]) (1.5.8)\n",
"Requirement already satisfied: Send2Trash>=1.8.0 in /usr/local/lib/python3.10/dist-packages (from notebook->jupyter->aif360[all]) (1.8.2)\n",
"Requirement already satisfied: terminado>=0.8.3 in /usr/local/lib/python3.10/dist-packages (from notebook->jupyter->aif360[all]) (0.18.0)\n",
"Requirement already satisfied: prometheus-client in /usr/local/lib/python3.10/dist-packages (from notebook->jupyter->aif360[all]) (0.18.0)\n",
"Requirement already satisfied: nbclassic>=0.4.7 in /usr/local/lib/python3.10/dist-packages (from notebook->jupyter->aif360[all]) (1.0.0)\n",
"Collecting qtpy>=2.4.0 (from qtconsole->jupyter->aif360[all])\n",
" Downloading QtPy-2.4.1-py3-none-any.whl (93 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m93.5/93.5 kB\u001b[0m \u001b[31m12.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hCollecting slicer==0.0.7 (from shap->tempeh->aif360[all])\n",
" Downloading slicer-0.0.7-py3-none-any.whl (14 kB)\n",
"Requirement already satisfied: numba in /usr/local/lib/python3.10/dist-packages (from shap->tempeh->aif360[all]) (0.58.1)\n",
"Requirement already satisfied: cloudpickle in /usr/local/lib/python3.10/dist-packages (from shap->tempeh->aif360[all]) (2.2.1)\n",
"INFO: pip is looking at multiple versions of sphinxcontrib-websupport to determine which version is compatible with other requirements. This could take a while.\n",
"Collecting sphinxcontrib-websupport (from sphinx<2->aif360[all])\n",
" Downloading sphinxcontrib_websupport-1.2.5-py3-none-any.whl (37 kB)\n",
" Downloading sphinxcontrib_websupport-1.2.4-py2.py3-none-any.whl (39 kB)\n",
"Requirement already satisfied: sphinxcontrib-serializinghtml in /usr/local/lib/python3.10/dist-packages (from sphinxcontrib-websupport->sphinx<2->aif360[all]) (1.1.9)\n",
"Requirement already satisfied: mpmath>=0.19 in /usr/local/lib/python3.10/dist-packages (from sympy->torch->aif360[all]) (1.3.0)\n",
"Requirement already satisfied: cachetools<6.0,>=2.0.0 in /usr/local/lib/python3.10/dist-packages (from google-auth<3,>=1.6.3->tensorboard<2.15,>=2.14->tensorflow>=1.13.1->aif360[all]) (5.3.2)\n",
"Requirement already satisfied: pyasn1-modules>=0.2.1 in /usr/local/lib/python3.10/dist-packages (from google-auth<3,>=1.6.3->tensorboard<2.15,>=2.14->tensorflow>=1.13.1->aif360[all]) (0.3.0)\n",
"Requirement already satisfied: rsa<5,>=3.1.4 in /usr/local/lib/python3.10/dist-packages (from google-auth<3,>=1.6.3->tensorboard<2.15,>=2.14->tensorflow>=1.13.1->aif360[all]) (4.9)\n",
"Requirement already satisfied: requests-oauthlib>=0.7.0 in /usr/local/lib/python3.10/dist-packages (from google-auth-oauthlib<1.1,>=0.5->tensorboard<2.15,>=2.14->tensorflow>=1.13.1->aif360[all]) (1.3.1)\n",
"Requirement already satisfied: parso<0.9.0,>=0.8.3 in /usr/local/lib/python3.10/dist-packages (from jedi>=0.16->ipython<9->ipympl->aif360[all]) (0.8.3)\n",
"Requirement already satisfied: platformdirs>=2.5 in /usr/local/lib/python3.10/dist-packages (from jupyter-core>=4.7->nbconvert->jupyter->aif360[all]) (4.0.0)\n",
"Requirement already satisfied: jupyter-server>=1.8 in /usr/local/lib/python3.10/dist-packages (from nbclassic>=0.4.7->notebook->jupyter->aif360[all]) (1.24.0)\n",
"Requirement already satisfied: notebook-shim>=0.2.3 in /usr/local/lib/python3.10/dist-packages (from nbclassic>=0.4.7->notebook->jupyter->aif360[all]) (0.2.3)\n",
"Requirement already satisfied: fastjsonschema in /usr/local/lib/python3.10/dist-packages (from nbformat>=5.1->nbconvert->jupyter->aif360[all]) (2.19.0)\n",
"Requirement already satisfied: jsonschema>=2.6 in /usr/local/lib/python3.10/dist-packages (from nbformat>=5.1->nbconvert->jupyter->aif360[all]) (4.19.2)\n",
"Requirement already satisfied: ptyprocess>=0.5 in /usr/local/lib/python3.10/dist-packages (from pexpect>4.3->ipython<9->ipympl->aif360[all]) (0.7.0)\n",
"Requirement already satisfied: wcwidth in /usr/local/lib/python3.10/dist-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython<9->ipympl->aif360[all]) (0.2.10)\n",
"Requirement already satisfied: argon2-cffi-bindings in /usr/local/lib/python3.10/dist-packages (from argon2-cffi->notebook->jupyter->aif360[all]) (21.2.0)\n",
"Requirement already satisfied: soupsieve>1.2 in /usr/local/lib/python3.10/dist-packages (from beautifulsoup4->nbconvert->jupyter->aif360[all]) (2.5)\n",
"Requirement already satisfied: webencodings in /usr/local/lib/python3.10/dist-packages (from bleach->nbconvert->jupyter->aif360[all]) (0.5.1)\n",
"Requirement already satisfied: llvmlite<0.42,>=0.41.0dev0 in /usr/local/lib/python3.10/dist-packages (from numba->shap->tempeh->aif360[all]) (0.41.1)\n",
"INFO: pip is looking at multiple versions of sphinxcontrib-serializinghtml to determine which version is compatible with other requirements. This could take a while.\n",
"Collecting sphinxcontrib-serializinghtml (from sphinxcontrib-websupport->sphinx<2->aif360[all])\n",
" Downloading sphinxcontrib_serializinghtml-1.1.8-py3-none-any.whl (92 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m92.6/92.6 kB\u001b[0m \u001b[31m12.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25h Downloading sphinxcontrib_serializinghtml-1.1.7-py3-none-any.whl (92 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m92.6/92.6 kB\u001b[0m \u001b[31m14.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25h Downloading sphinxcontrib_serializinghtml-1.1.6-py3-none-any.whl (92 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m92.6/92.6 kB\u001b[0m \u001b[31m12.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25h Downloading sphinxcontrib_serializinghtml-1.1.5-py2.py3-none-any.whl (94 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m94.0/94.0 kB\u001b[0m \u001b[31m12.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hRequirement already satisfied: attrs>=22.2.0 in /usr/local/lib/python3.10/dist-packages (from jsonschema>=2.6->nbformat>=5.1->nbconvert->jupyter->aif360[all]) (23.1.0)\n",
"Requirement already satisfied: jsonschema-specifications>=2023.03.6 in /usr/local/lib/python3.10/dist-packages (from jsonschema>=2.6->nbformat>=5.1->nbconvert->jupyter->aif360[all]) (2023.11.1)\n",
"Requirement already satisfied: referencing>=0.28.4 in /usr/local/lib/python3.10/dist-packages (from jsonschema>=2.6->nbformat>=5.1->nbconvert->jupyter->aif360[all]) (0.31.0)\n",
"Requirement already satisfied: rpds-py>=0.7.1 in /usr/local/lib/python3.10/dist-packages (from jsonschema>=2.6->nbformat>=5.1->nbconvert->jupyter->aif360[all]) (0.13.0)\n",
"Requirement already satisfied: anyio<4,>=3.1.0 in /usr/local/lib/python3.10/dist-packages (from jupyter-server>=1.8->nbclassic>=0.4.7->notebook->jupyter->aif360[all]) (3.7.1)\n",
"Requirement already satisfied: websocket-client in /usr/local/lib/python3.10/dist-packages (from jupyter-server>=1.8->nbclassic>=0.4.7->notebook->jupyter->aif360[all]) (1.6.4)\n",
"Requirement already satisfied: pyasn1<0.6.0,>=0.4.6 in /usr/local/lib/python3.10/dist-packages (from pyasn1-modules>=0.2.1->google-auth<3,>=1.6.3->tensorboard<2.15,>=2.14->tensorflow>=1.13.1->aif360[all]) (0.5.0)\n",
"Requirement already satisfied: oauthlib>=3.0.0 in /usr/local/lib/python3.10/dist-packages (from requests-oauthlib>=0.7.0->google-auth-oauthlib<1.1,>=0.5->tensorboard<2.15,>=2.14->tensorflow>=1.13.1->aif360[all]) (3.2.2)\n",
"Requirement already satisfied: sniffio>=1.1 in /usr/local/lib/python3.10/dist-packages (from anyio<4,>=3.1.0->jupyter-server>=1.8->nbclassic>=0.4.7->notebook->jupyter->aif360[all]) (1.3.0)\n",
"Building wheels for collected packages: BlackBoxAuditing, lime\n",
" Building wheel for BlackBoxAuditing (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
" Created wheel for BlackBoxAuditing: filename=BlackBoxAuditing-0.1.54-py2.py3-none-any.whl size=1394752 sha256=c293ae3e07bfac730bc67b08164559bd397c9b118f0e69c025c8da69881de73d\n",
" Stored in directory: /root/.cache/pip/wheels/c0/4f/b1/80e1b0790df07536470758fe0a4f9ff8fa942fd9fe30bbb192\n",
" Building wheel for lime (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
" Created wheel for lime: filename=lime-0.2.0.1-py3-none-any.whl size=283834 sha256=b3d67beb6610dbd26ea750755c9ec510d7f4d0cd1c492a9fd30d7d2be5dbcfbe\n",
" Stored in directory: /root/.cache/pip/wheels/fd/a2/af/9ac0a1a85a27f314a06b39e1f492bee1547d52549a4606ed89\n",
"Successfully built BlackBoxAuditing lime\n",
"Installing collected packages: texttable, sphinxcontrib-serializinghtml, slicer, qtpy, memory-profiler, jinja2, jedi, igraph, docutils, sphinxcontrib-websupport, scikit-learn, cairocffi, sphinx, shap, lime, fairlearn, BlackBoxAuditing, aif360, adversarial-robustness-toolbox, tempeh, sphinxcontrib-jquery, qtconsole, sphinx-rtd-theme, jupyter, ipympl\n",
" Attempting uninstall: sphinxcontrib-serializinghtml\n",
" Found existing installation: sphinxcontrib-serializinghtml 1.1.9\n",
" Uninstalling sphinxcontrib-serializinghtml-1.1.9:\n",
" Successfully uninstalled sphinxcontrib-serializinghtml-1.1.9\n",
" Attempting uninstall: jinja2\n",
" Found existing installation: Jinja2 3.1.2\n",
" Uninstalling Jinja2-3.1.2:\n",
" Successfully uninstalled Jinja2-3.1.2\n",
" Attempting uninstall: docutils\n",
" Found existing installation: docutils 0.18.1\n",
" Uninstalling docutils-0.18.1:\n",
" Successfully uninstalled docutils-0.18.1\n",
" Attempting uninstall: scikit-learn\n",
" Found existing installation: scikit-learn 1.2.2\n",
" Uninstalling scikit-learn-1.2.2:\n",
" Successfully uninstalled scikit-learn-1.2.2\n",
" Attempting uninstall: sphinx\n",
" Found existing installation: Sphinx 5.0.2\n",
" Uninstalling Sphinx-5.0.2:\n",
" Successfully uninstalled Sphinx-5.0.2\n",
"\u001b[31mERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.\n",
"lida 0.0.10 requires fastapi, which is not installed.\n",
"lida 0.0.10 requires kaleido, which is not installed.\n",
"lida 0.0.10 requires python-multipart, which is not installed.\n",
"lida 0.0.10 requires uvicorn, which is not installed.\n",
"bigframes 0.13.0 requires scikit-learn>=1.2.2, but you have scikit-learn 1.1.3 which is incompatible.\n",
"sphinxcontrib-applehelp 1.0.7 requires Sphinx>=5, but you have sphinx 1.8.6 which is incompatible.\n",
"sphinxcontrib-devhelp 1.0.5 requires Sphinx>=5, but you have sphinx 1.8.6 which is incompatible.\n",
"sphinxcontrib-htmlhelp 2.0.4 requires Sphinx>=5, but you have sphinx 1.8.6 which is incompatible.\n",
"sphinxcontrib-qthelp 1.0.6 requires Sphinx>=5, but you have sphinx 1.8.6 which is incompatible.\u001b[0m\u001b[31m\n",
"\u001b[0mSuccessfully installed BlackBoxAuditing-0.1.54 adversarial-robustness-toolbox-1.16.0 aif360-0.5.0 cairocffi-1.6.1 docutils-0.17.1 fairlearn-0.9.0 igraph-0.11.3 ipympl-0.9.3 jedi-0.19.1 jinja2-3.0.3 jupyter-1.0.0 lime-0.2.0.1 memory-profiler-0.61.0 qtconsole-5.5.1 qtpy-2.4.1 scikit-learn-1.1.3 shap-0.43.0 slicer-0.0.7 sphinx-1.8.6 sphinx-rtd-theme-1.3.0 sphinxcontrib-jquery-4.1 sphinxcontrib-serializinghtml-1.1.5 sphinxcontrib-websupport-1.2.4 tempeh-0.1.12 texttable-1.7.0\n"
]
},
{
"data": {
"application/vnd.colab-display-data+json": {
"pip_warning": {
"packages": [
"sphinxcontrib"
]
}
}
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Requirement already satisfied: shap in /usr/local/lib/python3.10/dist-packages (0.43.0)\n",
"Requirement already satisfied: numpy in /usr/local/lib/python3.10/dist-packages (from shap) (1.23.5)\n",
"Requirement already satisfied: scipy in /usr/local/lib/python3.10/dist-packages (from shap) (1.11.3)\n",
"Requirement already satisfied: scikit-learn in /usr/local/lib/python3.10/dist-packages (from shap) (1.1.3)\n",
"Requirement already satisfied: pandas in /usr/local/lib/python3.10/dist-packages (from shap) (1.5.3)\n",
"Requirement already satisfied: tqdm>=4.27.0 in /usr/local/lib/python3.10/dist-packages (from shap) (4.66.1)\n",
"Requirement already satisfied: packaging>20.9 in /usr/local/lib/python3.10/dist-packages (from shap) (23.2)\n",
"Requirement already satisfied: slicer==0.0.7 in /usr/local/lib/python3.10/dist-packages (from shap) (0.0.7)\n",
"Requirement already satisfied: numba in /usr/local/lib/python3.10/dist-packages (from shap) (0.58.1)\n",
"Requirement already satisfied: cloudpickle in /usr/local/lib/python3.10/dist-packages (from shap) (2.2.1)\n",
"Requirement already satisfied: llvmlite<0.42,>=0.41.0dev0 in /usr/local/lib/python3.10/dist-packages (from numba->shap) (0.41.1)\n",
"Requirement already satisfied: python-dateutil>=2.8.1 in /usr/local/lib/python3.10/dist-packages (from pandas->shap) (2.8.2)\n",
"Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.10/dist-packages (from pandas->shap) (2023.3.post1)\n",
"Requirement already satisfied: joblib>=1.0.0 in /usr/local/lib/python3.10/dist-packages (from scikit-learn->shap) (1.3.2)\n",
"Requirement already satisfied: threadpoolctl>=2.0.0 in /usr/local/lib/python3.10/dist-packages (from scikit-learn->shap) (3.2.0)\n",
"Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-dateutil>=2.8.1->pandas->shap) (1.16.0)\n"
]
}
],
"source": [
"# once deep_tabular_augmentation installation is done, we need to manually update the commom.py file within the deep_tabular_augmentation directory to change \"from collections import Iterable\"\n",
"# to \"from from collections.abc import Iterable\"\n",
"!pip install deep_tabular_augmentation\n",
"!pip install mlprep-ls\n",
"!pip install 'aif360[all]'\n",
"!pip install shap"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "7fIt4jcFIm76"
},
"source": [
"### **Importing the necessary libraries and overview of the dataset**"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "jzu2P-TT5JtP"
},
"outputs": [],
"source": [
"# Example basic libraries to import\n",
"import numpy as np # For numerical operations\n",
"import pandas as pd # For data manipulation and analysis\n",
"import matplotlib.pyplot as plt # For data visualization\n",
"import seaborn as sns # For statistical data visualization\n",
"\n",
"# Example machine learning libraries to import\n",
"from sklearn.model_selection import train_test_split # For splitting data into training and testing sets\n",
"from sklearn.preprocessing import StandardScaler # For standardizing features\n",
"from sklearn.linear_model import LinearRegression # For linear regression modeling\n",
"from sklearn.tree import DecisionTreeClassifier # For decision tree classification\n",
"from sklearn.ensemble import RandomForestClassifier # For random forest classification\n",
"from sklearn.metrics import accuracy_score, mean_squared_error # For model evaluation\n",
"\n",
"import pandas as pd\n",
"import numpy as np\n",
"import random\n",
"import os\n",
"from sklearn.metrics import r2_score, mean_squared_error, mean_absolute_error\n",
"# from sklearn.metrics.pairwise import manhattan_distances\n",
"from sklearn.linear_model import LogisticRegression, LinearRegression\n",
"from sklearn.preprocessing import StandardScaler\n",
"from sklearn.metrics import roc_auc_score, roc_curve, precision_recall_curve, auc, confusion_matrix\n",
"from sklearn.ensemble import RandomForestClassifier, RandomForestRegressor\n",
"from sklearn.feature_selection import SelectKBest, f_regression, f_classif\n",
"from sklearn.model_selection import GridSearchCV, GroupKFold, cross_val_score, StratifiedGroupKFold\n",
"from sklearn.pipeline import Pipeline\n",
"import warnings\n",
"import joblib\n",
"from sklearn.model_selection import cross_val_predict, cross_validate\n",
"from datetime import datetime\n",
"from xgboost import XGBClassifier,XGBRegressor\n",
"from sklearn.model_selection import train_test_split\n",
"import shap\n",
"from aif360.datasets import StandardDataset\n",
"from aif360.metrics import BinaryLabelDatasetMetric\n",
"from aif360.algorithms.preprocessing import DisparateImpactRemover\n",
"from torch import optim\n",
"from functools import partial\n",
"import deep_tabular_augmentation as dta #/usr/local/lib/python3.10/dist-packages/deep_tabular_augmentation/common.py\n",
"import mlprepare as mlp\n",
"import torch\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "NrXYJAv95JtP"
},
"source": [
"### **Loading the data**\n",
"To load your dataset, you need to first upload the dataset to your Google drive. It is a good practice to first create a folder in your drive dedicated to datasets. For instance '/content/drive/Datasets/your-project-dataset.csv'\n",
"\n",
"Create such a folder, then upload your dataset to it.\n",
"\n",
"Then, load the dataset using read_csv() into a datadrame."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "JGb-Hk1B5JtP"
},
"outputs": [],
"source": [
"df = pd.read_csv('/content/drive/MyDrive/dataset_project5.csv')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "2MpTkCKNDVL-",
"outputId": "3069067f-abed-44f6-cfdd-250fc24788f5"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Descriptive Statistics:\n",
" HAEMATOCRIT HAEMOGLOBINS ERYTHROCYTE LEUCOCYTE THROMBOCYTE \\\n",
"count 3000.000000 3000.000000 3000.000000 3000.000000 3000.000000 \n",
"mean 39.249800 13.090467 4.734303 8.121800 256.353333 \n",
"std 5.614139 2.004291 0.724817 4.564886 110.472352 \n",
"min 14.600000 3.800000 1.930000 1.100000 10.000000 \n",
"25% 35.800000 11.900000 4.290000 5.300000 187.000000 \n",
"50% 39.500000 13.200000 4.740000 7.100000 257.000000 \n",
"75% 43.300000 14.500000 5.200000 9.700000 322.000000 \n",
"max 57.000000 18.800000 7.860000 41.100000 830.000000 \n",
"\n",
" MCH MCHC MCV AGE \n",
"count 3000.000000 3000.000000 3000.000000 3000.000000 \n",
"mean 27.774800 33.314867 83.279267 35.061000 \n",
"std 2.650355 1.213204 6.544982 15.687617 \n",
"min 14.900000 26.000000 54.000000 1.000000 \n",
"25% 26.600000 32.700000 80.400000 24.000000 \n",
"50% 28.300000 33.400000 84.400000 36.000000 \n",
"75% 29.500000 34.100000 87.400000 48.000000 \n",
"max 37.800000 37.400000 104.500000 60.000000 \n",
"\n",
"Missing Values:\n",
"HAEMATOCRIT 0\n",
"HAEMOGLOBINS 0\n",
"ERYTHROCYTE 0\n",
"LEUCOCYTE 0\n",
"THROMBOCYTE 0\n",
"MCH 0\n",
"MCHC 0\n",
"MCV 0\n",
"AGE 0\n",
"SEX 0\n",
"SOURCE 0\n",
"dtype: int64\n",
"Total Missing Values: 0\n"
]
}
],
"source": [
"# Get descriptive statistics\n",
"numerical_stats = df.describe()\n",
"\n",
"# Count missing values for every column\n",
"missing_values = df.isnull().sum()\n",
"\n",
"# Count total missing values in the entire DataFrame\n",
"total_missing = missing_values.sum()\n",
"\n",
"\n",
"print(\"Descriptive Statistics:\")\n",
"print(numerical_stats)\n",
"print(\"\\nMissing Values:\")\n",
"print(missing_values)\n",
"print(f\"Total Missing Values: {total_missing}\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "Yc601IPHvqBa"
},
"outputs": [],
"source": [
"import pandas as pd\n",
"from sklearn.preprocessing import MinMaxScaler\n",
"\n",
"df = pd.read_csv('/content/drive/MyDrive/dataset_project5.csv')\n",
"\n",
"# Remove duplicate rows\n",
"columns_to_check = ['HAEMATOCRIT', 'HAEMOGLOBINS', 'ERYTHROCYTE', 'LEUCOCYTE', 'THROMBOCYTE', 'MCH', 'MCHC', 'MCV', 'AGE', 'SEX', 'SOURCE']\n",
"df_no_duplicates = df.drop_duplicates(subset=columns_to_check)\n",
"\n",
"\n",
"columns_to_normalize = ['HAEMATOCRIT', 'HAEMOGLOBINS', 'ERYTHROCYTE', 'LEUCOCYTE', 'THROMBOCYTE', 'MCH', 'MCHC', 'MCV', 'AGE']\n",
"\n",
"# Create a MinMaxScaler object\n",
"scaler = MinMaxScaler()\n",
"\n",
"# Apply the MinMaxScaler to the selected columns in the df without duplicates\n",
"df_no_duplicates[columns_to_normalize] = scaler.fit_transform(df_no_duplicates[columns_to_normalize])\n",
"\n",
"# Save the normalized df without duplicates to a new CSV file\n",
"df_no_duplicates.to_csv('normalized_data.csv', index=False)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 831
},
"id": "K7192q-Vvx8T",
"outputId": "ed125aa4-57f7-4ad3-e81e-6763becb3213"
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABdEAAARBCAYAAADKRMn9AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd3hUZfr/8fe0THonCS1BehfFQizYUBaxo2sBQdddXZd1VdR1XV27YlnbfkVXXRZ1LfwW68qiiKxgARTBgjTpAUJ6bzPJzPn9MZmRkARCMsmZJJ/Xdc01M+ecOeeeEPLM3Oc+92MxDMNAREREREREREREREQasZodgIiIiIiIiIiIiIhIqFISXURERERERERERESkGUqii4iIiIiIiIiIiIg0Q0l0EREREREREREREZFmKIkuIiIiIiIiIiIiItIMJdFFRERERERERERERJqhJLqIiIiIiIiIiIiISDOURBcRERERERERERERaYaS6CIiIiIiIiIiIiIizVASXTqtfv36cdVVV5kdRpf3+OOP079/f2w2G2PGjDE7HBERCXEanzuGxmcREekIGtc7hsZ1kdCnJLqEhJdffhmLxcI333zT5PpTTz2VkSNHtvk4ixYt4t57723zfrqLjz/+mD/+8Y+ceOKJzJs3j4cffrjZba+66iqio6ObXW+xWPj973/f5LqNGzdisVgIDw+npKSkyW1OPfVULBZLk7ehQ4cGtvP/LlksFr744otG+zEMg759+2KxWDjnnHOaPFZJSQnh4eFYLBY2btwYWH7vvfc2G8P+t1NPPbXB/hYuXMgvfvELkpKSCA8PZ/Dgwdx6660UFhY2+/NatmwZF110EWlpaYSFhZGSksK5557LO++8E9hm586dDY5rtVpJTExk0qRJrFy5stE+/fEXFBSwbNmyFr0Xi8XSbIwi0vVpfA5N3XF8rqys5IEHHmD06NFERkYSFxfHySefzKuvvophGE3G5nK5+L//+z9OOukkEhISCAsLo1evXpx33nm8+eabeDyewLb+MfWvf/1rsz8rvy+//JILL7yQ1NRUnE4n/fr147rrriMrK6vRtgd+drBarfTs2ZNzzjmHVatWNdi2qRj2H6/XrFnTaP9N/ft6vV5effVVjj/+eBITE4mJiWHw4MFMnz690TFFpHvRuB6aDndcb27cDQ8PD2x34Pc9m81GSkoKF198ceA7bklJCT179uTEE09scixdtWoVVquVSy65pMXfHXfu3Bk49ltvvdXsezhw7Drw80RERASjR4/m6aefxuv1NrmfwsJCbrvtNoYMGUJ4eDiJiYlMnDiRhQsXNvvzKysr47777uPII48kOjqaiIgIRo4cye233052djYrV67EarVyxx13NPn6Rx99FIvFwpw5c1r08+jXrx9w6FxCTk5OszFL6LCbHYBIa23evBmr9fDOAy1atIg5c+ZoQG+h//3vf1itVubOnUtYWFi7Hee1114jLS2N4uJi3nrrLX796183uV2fPn2YPXt2o+VxcXGNloWHh/PGG29w0kknNVi+fPly9uzZg9PpbDaeBQsWYLFYSEtL4/XXX+fBBx8E4KKLLmLgwIGB7SoqKrj++uu58MILueiiiwLLU1NTA49vvfVWnnjiCY488khuv/12EhMTWbt2Lc8++yzz589n6dKlDBkypMHx77nnHu6//34GDRrEddddR0ZGBoWFhSxatIgpU6bw+uuvc8UVVwS2v/zyyzn77LPxeDz89NNPPPfcc5x22mmsXr2aUaNGNfkehw0bxr/+9a8Gy+644w6io6O58847m/3ZiIgcisbn9tfdxufc3FzOOOMMNm7cyGWXXcbvf/97ampqePvtt5kxYwaLFi3i9ddfx2azBV6Tn5/PpEmTWLNmDRMnTuSuu+4iMTGRnJwcPvnkE6644gq2bt3KX/7yl8P6mfzf//0fN954I/379+eGG26gZ8+ebNy4kX/84x/8v//3/1i0aBEnnHBCo9c9//zzREdH4/V62b17Ny+99BLjx4/n66+/bnHF4b333ssHH3xwyO3+8Ic/MGfOHM4//3ymTp2K3W5n8+bNfPjhh/Tv359x48Yd1nsWke5N43r7O9xx3el08o9//KPR8v3HQb8//OEPHHvssdTW1vLDDz/w97//nWXLlvHjjz+SlpbG008/zWWXXcZLL73EtddeG3hdXV0dv/3tb8nIyODll1/m/PPPb7DfJ554gj179vDUU081WN6jRw927tzZwnfe0P6fJwoKCnjjjTe4+eabyc/P56GHHmqw7ebNmznjjDPIz8/n6quv5phjjqGkpITXX3+dc889l1tvvZXHH3+8wWu2b9/OhAkTyMrK4pJLLuHaa68lLCyMH374gblz5/Luu+/y008/cd111/HEE08wbdo0RowYEXj9rl27uP/++7nkkkuYNGlSo+/Tv/71rznuuOMa/BwPPFng/zxwoPj4+Fb9zKSDGSIhYN68eQZgrF69usn1p5xyijFixIg2H2fmzJmGmb/2FRUVph27Na6++mojKiqqRdvOmDHjoNsCxsyZMxst93q9Rr9+/YxZs2YZF154oXHqqac2+fqW/g74f5cuuugiIzk52aitrW2w/je/+Y0xduxYIyMjw5g8eXKT+xg/frxx0UUXGTfffLNxxBFHNHus/Px8AzDuueeeJte/8cYbBmBceumlRl1dXYN1X331lREZGWmMGjWqQYwLFiwwAOPiiy823G53o31+9NFHxgcffGAYhmHs2LHDAIzHH3+8wTYffvihARjXX399g+X33HOPARj5+flNxjtixAjjlFNOafb9ikj3o/E5NHW38XnixImG1Wo13n///Ub7vfXWWw3AeOSRR5p8zdtvv91kPKtXrzZee+21wPPmxtT9ffHFF4bVajVOPvlko7KyssG6rVu3GqmpqUbPnj2NoqKiwPLmxt4ff/zRAIw///nPB43h008/NQBjzJgxBmCsWbOmwX4O/PfNyckxLBaL8Zvf/KZR/F6v18jNzW32/YlI16dxPTQFc1z3848fCxYsaLD8+eefNwDj0UcfDSybNGmSkZCQYOTk5ASW/fWvfzUAY9GiRU3uf/LkyUZGRsZhHftg76Gp373q6mojIyPDiImJafB92u12GyNHjjQiIyONVatWNXhNXV2dcemllxqAMX/+/MDy2tpa48gjjzQiIyONzz//vFFMpaWlgTG5pKTE6Nmzp3HiiScaXq83sM25555rxMXFGdnZ2U2+r6ioKGPGjBlNrjvUd3HpHNTORTqtA3uz1dbWct999zFo0CDCw8NJSkripJNOYsmSJYDvkqE5c+YANNmqorKykltuuYW+ffvidDoZMmQIf/3rXxtd1lRdXc0f/vAHkpOTiYmJ4bzzzmPv3r1YLJYGZ9r9l+ts2LCBK664goSEhEDV1Q8//MBVV11F//79CQ8PJy0tjV/96leN2nv49/HTTz8xbdo04uLi6NGjB3/5y18wDIPdu3dz/vnnExsbS1paGk888USLfnZ1dXU88MADDBgwIHAZ8p///GdcLldgG4vFwrx586isrAz8rF5++eUW7f9wfPnll+zcuZPLLruMyy67jM8++4w9e/a0eb+XX345hYWFgX9/ALfbzVtvvdWgivtAWVlZfP7554F4duzYwYoVK1oVw3333UdCQgIvvvhio6qA4447jttvv51169Y1uMztL3/5C4mJifzzn//E4XA02ufEiRObbUPjd/LJJwOwbdu2VsUtItIWGp81Ph/M4Y7Pq1atYvHixVx11VWcd955jdbPnj2bQYMG8eijj1JdXQ3AypUrWbx4Mddee22DK8X2d8wxxzB16tTDiv2BBx7AYrHwyiuvEBkZ2WDdgAEDeOyxx9i3bx8vvPDCIfeVlpYGgN3esguDb7jhBhISEg5Z1bljxw4Mw+DEE09stM5isZCSktKi44mI+Glc7xrjul9T3xWfe+45XC4Xs2bNAmD37t3ce++9XHrppUyaNKndYjmU8PBwjj32WMrLy8nLywssf/vtt/nxxx/505/+xPHHH9/gNTabjRdeeIH4+PgGvydvv/0233//PXfeeWejq+EAYmNjA9XucXFxPPPMM3z55ZeBiv93332XDz74gEceeYSePXu2w7uVzkDtXCSklJaWUlBQ0Gh5bW3tIV977733Mnv27MAlNGVlZXzzzTesXbuWM888k+uuu47s7GyWLFnS6LIbwzA477zz+PTTT7nmmmsYM2YMixcv5rbbbmPv3r0NLlG66qqr+Pe//82VV17JuHHjWL58OZMnT242rksuuYRBgwbx8MMPBz4YLFmyhO3bt3P11VeTlpbG+vXrefHFF1m/fj2rVq1q1If60ksvZdiwYTzyyCP897//5cEHHyQxMZEXXniB008/nUcffZTXX3+dW2+9lWOPPZbx48cf9Gf161//mldeeYWLL76YW265ha+++orZs2ezceNG3n33XQD+9a9/8eKLL/L1118HBo6mLk8+UFP/fgfz+uuvM2DAAI499lhGjhxJZGQkb775JrfddlujbT0eT5P7j4iIICoqqsGyfv36kZmZyZtvvhkY+D/88ENKS0u57LLL+Nvf/tZkPG+++SZRUVGcc845REREMGDAAF5//fUWvff9bdmyhc2bN3PVVVcRGxvb5DbTp0/nnnvuYeHChVx22WVs2bKFTZs28atf/YqYmJjDOt7+/JfPJSQktHofIiL70/is8dms8dnfvmT69OlNxmm327niiiu47777+PLLL5kwYULgNdOmTTus93wwVVVVLF26lJNPPpkjjjiiyW0uvfRSrr32WhYuXMif/vSnBuuKiooAX7/yvXv38sADDxAeHs4vf/nLFh0/NjaWm2++mbvvvpu1a9dy9NFHN7ldRkYG4GtNd8kllzRK9ouIgMb1rjquh4WFNfvd06+p74r9+vXjvvvu47bbbuOqq67iueeew2638/TTTx8yjoMpLy9vMs79TyIcin++kP3bnRzqs0FcXBznn38+r7zyClu3bmXgwIH85z//AeDKK69s0XEvueQSJk+ezO23384ZZ5zBjTfeyAknnMB1113X4tib4v88sD+73a52Lp2FKfXvIgfwX1Z2sNuBl/ZkZGQ0uFTmyCOPbLY9h19zl5W99957BmA8+OCDDZZffPHFhsViMbZu3WoYhmGsWbPGAIybbrqpwXZXXXVVo7Ye/st1Lr/88kbHq6qqarTszTffNADjs88+a7SPa6+9NrCsrq7O6NOnj2GxWBpculxcXGxEREQ0e/mQ33fffWcAxq9//esGy/2XQ//vf/8LLGvppWL+bQ/1b3jg5eJut9tISkoy7rzzzsCyK664wjjyyCMb7f+UU05pdr/XXXddYLv9L1F89tlnjZiYmMDP+5JLLjFOO+00wzCMZtu5jBo1ypg6dWrg+Z///OcmLzs3jIO3c/H/Tj311FMH/bnFxsYaRx99tGEYhvH++++36DV+/su+77vvPiM/P9/IyckxPv/8c+PYY49t8vI5tXMRkcOl8Vnjs59Z4/MFF1xgAEZxcXGz7/Gdd94xAONvf/ubYRiGceGFFxqAUVJS0mC76upqIz8/P3Dbf5+Haufi//e58cYbm43DMAxj9OjRRmJiYuC5/3flwFt8fLzx0UcfNXjtwdq5LFiwwCgpKTESEhKM8847L7C+qd+F6dOnG4CRkJBgXHjhhcZf//pXY+PGjQeNW0S6B43rXXtcnzhxYmA7//jxz3/+08jPzzeys7ONjz76yBg4cKBhsViMr7/+usF+a2trjTFjxhiJiYkGYLzwwgsHjaMl7VwOdmuqncvQoUMDY/SmTZuM2267zQAa/b6NGTPGiIuLO2h8Tz75pAEY//nPfwzDMIyjjjrqkK850M6dO42oqCgjMTHRcDgcxrp16w66fUvauTR1GzJkyGHFJeZRJbqElDlz5jB48OBGy2+55RY8Hs9BXxsfH8/69evZsmULgwYNOqzjLlq0CJvNxh/+8IdGx33rrbf48MMP+f3vf89HH30EwO9+97sG291www3NXnL129/+ttGyiIiIwOOamhoqKioCkzytXbs2cImV3/4TedlsNo455hj27NnDNddcE1geHx/PkCFD2L59+yHfKxC4VGv/9/rXv/6V//73v5x22mkH3UdzwsPDm53w6swzz2y07MMPP6SwsJDLL788sOzyyy/n3HPPZf369Q0m8QDfGfKXXnqp0X769OnT5DF/+ctfctNNN7Fw4UJ+8YtfsHDhwmYr0MF3ud+6desaTI52+eWX8/DDD7N48eKDVj4cqLy8HOCQFeUxMTGUlZUBBO4Ptwr9nnvu4Z577gk8j46O5oknnuDiiy8+rP2IiDRH47PGZ7PG55aMp/51B46nB07c9fe//52bb7458HzEiBH8+OOPze73cOPwr/cff39vv/02sbGxGIbB3r17ef7555kyZQoff/xxi692i4uL46abbuKee+7h22+/5aijjmpyu3nz5nHcccfxz3/+k3fffZd3332XW2+9ldNPP51XX32V3r17t+h4ItJ1aVzvmuN6cnJyo2W/+tWvGjzv0aMH//rXvzj22GMbLLfb7bz44oscd9xxjBs3jt/85jetim1/d999d6OfMcDjjz/Ol19+2Wj5pk2b6NGjR4Nl5513HnPnzm2wrLy8vEXjMTT8bHC437MzMjK45557+OMf/8jtt9/OyJEjD+v1TfF/HtjfgVftSehSEl1CynHHHccxxxzTaHlCQsIhL0O+//77Of/88xk8eDAjR47kF7/4BVdeeSWjR48+5HF37dpFr169Gv1RHTZsWGC9/95qtTa6jHfgwIHN7rupS36Lioq47777mD9/foPeXuC7tO5A6enpDZ7HxcURHh7eaJCMi4tr1N/tQP73cGDMaWlpxMfHB95ra9hsNiZMmNDi7V977TWOOOIInE4nW7duBXw9RSMjI3n99dd5+OGHG2wfFRV1WPvv0aMHEyZM4I033qCqqgqPx3PQxPJrr71GVFQU/fv3D8QTHh5Ov379eP311w8rie7/XfJ/6W5OeXl5oD+pfzA91GsOdO2113LJJZdQU1PD//73P/72t78d8sOviMjh0Pis8dms8Xn/8bS5S50PTHD77ysqKoiLiwtsN2XKlMAX4JYkipqL42Ca+2I/fvz4Br8XF198MYMGDeKGG25gzZo1LY7jxhtv5Kmn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+c1vjJ07dzaKwf+7sv8tKirKyMzMNP7973832Lapcf3TTz81AGPBggXN7nv/f9+ysjLjmWeeMSZOnGj06dPHcDgcRkxMjJGZmWm89NJLzf6sRKR70LjeNcb1g41XO3bsMAzj4OOHYRjGqaeeasTGxholJSUNlu//ueBgJk+ebGRkZDS57lDHbur9Huxn6v8ufuD37ry8PGPWrFnGwIEDDafTacTHxxsTJkww/vOf/zQbd3FxsXH33Xcbo0aNMiIjI43w8HBj5MiRxh133GHs27fvsN/L/qKiohr8X9lfU58H9r99+umnh9y/mM9iGK24llFEGvjuu+846qijeO2115g6darZ4YiIiAgan0VERLoSjesiYib1RBc5TAf2wARfnzOr1cr48eNNiEhEREQ0PouIiHQdGtdFJNSoJ7rIYXrsscdYs2YNp512Gna7nQ8//JAPP/yQa6+9lr59+5odnoiISLek8VlERKTr0LguIqFG7VxEDtOSJUu477772LBhAxUVFaSnp3PllVdy5513YrfrvJSIiIgZND6LiIh0HRrXRSTUKIkuIiIiIiIiIiIiItIM9UQXEREREREREREREWmGroEBvF4v2dnZxMTEYLFYzA5HREQEAMMwKC8vp1evXlitOu+9P43dIiISijR2N09jt4iIhKKWjt1KogPZ2dmamEJERELW7t276dOnj9lhhBSN3SIiEso0djemsVtERELZocZuJdGBmJgYwPfDio2NNTkaERERn7KyMvr27RsYp+RnGrtFRCQUaexunsZuEREJRS0du5VEh8ClZLGxsRrMRUQk5OiS58Y0douISCjT2N2Yxm4REQllhxq71aRNRERERERERERERKQZSqKLiIiIiIiIiIiIiDRDSXQRERERERERERERkWYoiS4iIiIiIiIiIiIi0gwl0UVEREREREREREREmqEkuoiIiIiIiIiIiIhIM5REFxERERERERERERFphpLoIiIiIiIiIiIiIiLNUBJdRERERERERERERKQZSqKLiIiIiIiIiIiIiDRDSXQRERERERERERERkWYoiS4iIiIiIiIiIiIi0gwl0UVEREREREREREREmqEkuoiIiIiIiIiIiIhIM5REFxERERERERERERFphpLoIiIiIiIiIiIiIiLNUBJdRERERERERERERKQZSqKLiIiIiIiIiIiIiDTD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IiIiIiIicggqootEma9+9at84QtfOOD+t99+G8MwaGpq2u/+8vJyEhISqKmpOeB7Tj/9dAzDOODyzW9+s3ebnvuWLVu23/d2dHSQk5ODYRi8/fbbB+z7G9/4Bna7neeee+6AfR3qcvvtt/du+8QTTzBjxgySk5NJS0vjtNNOY+HChQf8HNM0+f3vf8/MmTNJTU0lMzOT6dOnc9999+H1egG4/fbbe3+G3W5n2LBhXHfddTQ0NOy3rxEjRnDffff1HsvDXQ72nEVEZHCLhTF64cKFnHbaaaSlpZGcnMyMGTN4/PHHD/p8nn/+ec4888z/n737Do+qTP8//jkzmfTeQRKadFAUV4miroogoouKBRcQFNeGDRBddq2gYsW22FYEXAs/2a+66lrAhquABTsgWIAAqZQkpE47vz8mMxCSQBImmWTm/bquuZac88w595m413POnXvuR0lJSYqKilKfPn102WWX6dtvv/WNWbRokRITEw/4uTRlTt9/7o2KitKAAQP07LPP1hm3/2c8efJkGYah++67r864N954Q4Zh1Nn2z3/+U0ceeaTvfuGoo47S3LlzDxg7ACA0eeeX/V9nnHGGJM+zo3dbdHS0Bg0apOeee06StGLFCtlsNn322Wd1jllRUaEePXro/PPPP+jz5qJFixq9f/Ce/9FHH63zc2Px7MvlcumRRx7RoEGDFBkZqaSkJI0aNUqff/55vbF2u10PPPCAjjzySEVHRys1NVUnnHCCFi5cqOLiYmVmZuree++t974LL7xQQ4cOVVZW1gGvcfLkyZIazxMsWbKkqb8uoF0giQ50YJ999pmqqqp0/vnna/HixQ2O+ctf/qL8/Pw6rwceeKDOmKysLC1cuLDOttdff12xsbENHrOyslJLlizRzTffrOeff963fd9zPProo4qPj6+z7aabbpIk3XTTTbryyit10UUX6YcfftCXX36pYcOGacyYMfrHP/5R51wTJ07UjTfeqDFjxujjjz/Wd999p9tuu03/+c9/tGzZMt+4AQMGKD8/X7m5uVq4cKHee+89XX311Q3Gf/zxx9eJ68ILL9QZZ5xRZ9vxxx/fyKcOAMDBBWKOfuKJJzRmzBidcMIJ+uKLL/TDDz9o3Lhxuuqqq3xzsNctt9yiiy66SIMHD9abb76pDRs26OWXX1aPHj00a9asJl9nc+Z0SdqwYYPy8/O1bt06XXnllbr66qv14YcfHvAckZGRuv/++7V79+5Gxzz//PO68cYbdf311+u7777T559/rptvvlnl5eVNvhYAQGjZ/xkwPz9fr7zyim//7NmzlZ+fr59++kkTJkzQX/7yF7377rs6+eSTdd1112ny5MmqqKjwjb/55psVFRWlxYsX1znmjBkzfM+r3tdFF13U7Hgbi8fLNE2NGzdOs2fP1g033KD169frk08+UVZWlv74xz/qjTfe8I212+0aOXKk7rvvPl1xxRVauXKlvvzyS02dOlVPPPGEtm/frmeffVZ33XWXfvzxR9/7li5dqrfffluLFy/WN99847ue//u//5O0d57Pz8/XY4895nvfwoUL633WDRUmAO2aCaBdmTRpkjlmzJh62z/++GNTkrl7927ftsmTJ5t//etfzXfffdfs3bt3vfecfPLJ5g033HDA80kyb731VjM+Pt6srKz0bT/99NPN2267zZRkfvzxx3Xes2jRInPo0KFmSUmJGR0dbebm5tY77sKFC82EhIR621etWmVKMh9//PF6+6ZPn27abDbf8f7f//t/piTzjTfeqDfW7XabJSUlpmma5h133GEeeeSR9Y6VlJRUZ1vXrl3NRx55pN6xGvvMAQDYV3ueo3Nzc02bzWZOnz693nEef/xxU5K5evVq0zT3zsWPPfZYg+d1u92+fzc2n+97nKbM6Q19RqZpmj179jQfeOAB38/7f8aTJk0yzzrrLLNv377mzJkzfdtff/11c99HmTFjxpiTJ09uME4AAPZ3sGfAhp4dk5OTzWnTppmmaZpVVVVmv379zKlTp5qmaZofffSRGR4ebn799df1jtXQ86ppNj43NnT+g8Vjmqa5ZMkSU5L55ptv1jveeeedZ6akpJjl5eWmaZrm/fffb1osFvObb76pN9Zut/vGTZ482TzqqKNMu91uFhUVmWlpaQ3ePxzoWiSZr7/+er3tQEdDJTrQQe3Zs0dLly7VhAkTdPrpp6u0tFT/+9//WnSsIUOGqFu3br6/Hufm5urTTz/VxIkTGxy/YMECTZgwQQkJCRo1alSjXxNvyCuvvKLY2FhdeeWV9fbNmDFDDofDF8dLL72kPn36aMyYMfXGGoahhISEBs+xefNmvf/++woPD29yXAAA+Esg5uh///vfcjgc9SrOJU8LttjYWF91nXcuvuaaaxo85/5tUhrTnDl9f6Zp6r333lNubq6OO+64A57HarXq3nvv1RNPPKFt27Y1OCYzM1OrV6/Wli1bmhQ7AABN5Xa79X//93/avXu37xkzMjJSL7zwgp599ln95z//0WWXXaa//e1vGjJkSEDikaSXX35ZvXv31tlnn13vPTNmzNDOnTu1fPlySZ5n7eHDh+uoo46qN9ZmsykmJkaS9Nhjj2nnzp2aM2eOrrnmGg0cOFDXXXddK10Z0L6RRAfaobfffluxsbF1XqNGjaozZsmSJerVq5cGDBggq9WqcePGacGCBfWO9eSTT9Y71ksvvVRv3GWXXeZrzbJo0SKdeeaZSktLqzful19+0erVq31fP5swYYIWLlwo0zSbdG0bN25Uz549G0xwd+7cWfHx8dq4caPvXH369GnScX/88UfFxsYqKipK3bt319q1a3XLLbc06b0AADRVe52jN27cqISEBHXq1Kne+8PDw9WjRw/f/Lpx40b16NFDYWFhvjHz5s2rE0dpaelBP4vmzOleXbp0UWxsrMLDwzV69GjdcccdOumkkw56rnPPPVeDBw/WHXfc0eD+O+64Q4mJierWrZv69OmjyZMn69VXX5Xb7T7osQEAoamhOX3fHuC33HKLYmNjFRERofPPP19JSUm6/PLLffuPOeYYzZo1S+edd55SUlL097//vUVxeOfGfV+5ubn1xh0sno0bN6pfv34NnsO7fd9n7b59+x40tvj4eC1cuFD33nuvli1bpoULFzb5j+37uvjii5t0jUB7FnbwIQDa2imnnKKnnnqqzrYvvvhCEyZM8P38/PPP1/l5woQJOvnkk/XEE08oLi7Ot338+PH1JvOMjIx655wwYYL++te/6vfff9eiRYv0+OOPNxjb888/r5EjRyo1NVWSdOaZZ2rKlCn66KOPdNpppzXp+pqacG/qOEnq06eP3nzzTVVXV+vFF1/Ud999x1/IAQB+157n6ENx2WWX6U9/+pPvWlpjrpak//3vf4qLi1NNTY2+/PJLXXvttUpOTm50HZN93X///Tr11FMbrLbv1KmTVq1apZ9++kmffvqpVq5cqUmTJum5557Te++9J4uF2iEAQF0NzenJycm+f8+cOVOTJ09Wfn6+Zs6cqWuuuUaHH354nfG33XabZs+erb/+9a91/jjdHN65cV9//OMf641rSjytMX+feuqpGjp0qAYPHqyuXbs2+X37euSRRzR8+PA62zp37tyiYwGBQhIdaIdiYmLqTYb7fn153bp1Wr16tb788ss61dYul0tLlizRX/7yF9+2hISEesdqSEpKis466yxNmTJF1dXVGjVqlPbs2VNnjMvl0uLFi1VQUFDnBsHlcun5559vUhK9d+/e+uyzz2S32+tVruXl5amsrEy9e/f2jf35558PekzJU2Xnvc777rtPo0eP1l133aU5c+Y06f0AADRFe52je/furdLSUuXl5dV7KLXb7frtt990yimnSJJ69eqlzz77TA6HQzabTZKUmJioxMTERtulNKQ5c7pX9+7dlZiYKMmzKPgXX3yhe+65p0lJ9JNOOkkjR47UrFmzNHny5AbHDBw4UAMHDtQ111yjq666SieeeKJWrFjhu3YAALwamtP3lZqaqsMPP1yHH364li5dqkGDBumYY45R//79fWO8z8UtTaBLdefG/Y/bnHh69+6t9evXN3gO7/aWPGt74zmUa8zMzGzSPQ/QnlGSAXRACxYs0EknnaTvv/9e3333ne81ffr0Br8u3lSXXXaZPvnkE11yySWyWq319r/zzjvas2ePvv322zrnfeWVV/Taa6+ppKTkoOcYN26cysvL9cwzz9Tb99BDD8lms2ns2LGSpD//+c/auHGj/vOf/9Qba5rmAb9qfuutt+qhhx5SXl7eQWMCAMBfAjVHjx07VjabTQ8//HC9fU8//bQqKip08cUXS/J8pbq8vFxPPvlki+ORmjenN8ZqtaqqqqrJ57zvvvv01ltvadWqVQcd600qVFRUNPn4AAA0JCsrSxdddJFmzZoV6FAkNRzPuHHj9Msvv+itt96qN/7hhx9WSkqKTj/9dEmeZ+0PPvhA3377bb2xDoeDuRNoAJXoQAfjcDj0r3/9S7Nnz9bAgQPr7Lv88ss1b948rV27VgMGDJAkVVZWqqCgoM64iIgIJSUl1Tv2GWecoeLiYsXHxzd47gULFmj06NE68sgj62zv37+/pk2bppdeeklTp049YPw5OTm64YYbNHPmTNntdp1zzjlyOBx68cUX9dhjj+nRRx9VVlaWJOnCCy/U66+/rosvvli33nqrRowYobS0NP3444965JFHdN111+mcc85p9DxHHHGE7r33Xv3jH/84YEwAAPhDIOfo7OxsPfDAA5oxY4YiIyM1ceJE2Ww2/ec//9Hf/vY3zZgxw7eAZ05OjmbMmKEZM2Zoy5YtOu+885SVlaX8/HwtWLBAhmHUaX/icrn03Xff1YuzOXO6V1FRkaqrq33tXP71r3/p/PPPb9oHLGnQoEEaP358vZY2V199tTp37qxTTz1VXbp0UX5+vu6++26lpaUpJyenyccHAISOmpqaevNwWFiYr3Xp/m644QYNHDhQX3/9tY455pi2CPGA9o9n3LhxWrp0qSZNmqQHH3xQp512msrKyjR//ny9+eabWrp0qW/B0BtvvFH//e9/ddppp2nOnDkaNmyY4uLi9PXXX+v+++/XggULNHjwYL/FWlJSUu+zjouL88UDdARUogMdzKeffqqdO3fq3HPPrbevX79+6tevX51Kt3/+85/q1KlTnZe3Em1/hmEoNTW1wQXCCgsL9d///rfBijKLxaJzzz23yRV2jz76qJ588km98sorGjhwoI455hh9+umneuONN+r0MTcMQy+//LLmzZunN954QyeffLKOOOII3XnnnRozZoxGjhx5wPNMmzZNzz33nLZu3dqkuAAAOBSBmqO9brzxRr3++uv63//+p2OOOUYDBw7Uyy+/rKeeekoPPfRQnbEPPfSQXn75ZX377bc666yz1KtXL11wwQVyu91atWpVnWR9eXm5jjrqqDqvs88+W1LT53SvPn36qFOnTjr88MN1yy236Morr9QTTzxx4A92P7Nnz663YOjw4cO1evVqXXDBBerdu7fGjh2ryMhIffjhh0pJSWnW8QEAoeG9996rNw8PGzas0fH9+/fXiBEjdPvtt7dhlI3bPx7DMPTqq6/qb3/7mx555BH16dNHJ554orZs2aJPPvmkTgFaRESEli9frptvvlnPPPOMhg4dqj/84Q96/PHHdf3119crBjhUl156ab3PurnzPxBohtnc1YAAAAAAAAAAAAgRVKIDAAAAAAAAANAIkugAAAAAAAAAADSCJDoAAAAAAAAAAI0giQ4AAAAAAAAAQCNIogMAAAAAAAAA0AiS6AAAAAAAAAAANIIkOgAAAAAAAAAAjSCJDgAAAAAAAABAI0iiAwAAAAAAAADQCJLoAAAAAAAAAAA0giQ6AAAAAAAAAACNIIkOAAAAAAAAAEAjSKIDAAAAAAAAANAIkugAAAAAAAAAADSCJDoAAAAAAAAAAI0giQ4AAAAAAAAAQCNIogMAAAAAAAAA0AiS6AgJ3bp10+TJkwMdRtB78MEH1aNHD1mtVg0ePDjQ4QAA2gHm4LbBHAwAAAC0HpLo6HAWLVokwzD09ddfN7j/j3/8owYOHHjI53nnnXd05513HvJxQsWyZct0880364QTTtDChQt17733Njp28uTJio2NPeDxvL/nxl6rV6+WJG3evFmGYeihhx5q8DgPPfSQDMPQ5s2b6+17/fXXNWrUKKWmpio8PFydO3fWhRdeqI8++qje2NzcXF111VXq1q2bIiIilJ6ernPOOUeff/55o9dQWFiom266SX379lV0dLRiYmI0ZMgQ3X333SopKdGSJUtkGIaeeeaZBt9/9dVXy2az6dxzzz3gZ+F9/fGPf/R9vo2NiYyMPODnDgAHwhzcPjVlDv7kk0+aNJcYhiGpZb/rbt261TlOTEyMjj32WL3wwguNxt6c+XXfa3jxxRcbPN4JJ5wgwzAOGltkZKR69eqlmTNnateuXfWOY5qm/vWvf+mkk05SYmKioqOjNWjQIM2ePVsVFRWNXs+B7i0cDocGDRqknj17qqqqqt57N2/erOjoaF1wwQVN/l198sknvnuhxl733Xdfo/ECAACgacICHQDQFjZs2CCLpXl/M3rnnXc0f/58HuKb6KOPPpLFYtGCBQsUHh7ut+POnj1b3bt3r7f98MMPb/ExTdPUZZddpkWLFumoo47S9OnTlZmZqfz8fL3++us67bTT9Pnnn+v444+XJH3++ec688wzJUmXX365+vfvr4KCAi1atEgnnniiHnvsMV133XV1zvHVV1/pzDPPVHl5uSZMmKAhQ4ZIkr7++mvdd999+vTTT7Vs2TItXrxYf/3rX3XOOecoIyPD9/4vv/xSzz77rGbMmKEJEyZo7Nixvn3l5eW6+uqrde655+q8887zbd/3/REREXruuefqXbvVam3x5wYALcEc3PqaMgf369dP//rXv+psmzVrlmJjY/X3v//db7EMHjxYM2bMkCTl5+frueee06RJk1RTU6O//OUvdca2ZH6VpMjISL388suaMGFCne2bN2/WypUrG/2D8b6xVVdXa82aNXr00Ue1YsUKffnll75xLpdLf/7zn/Xqq6/qxBNP1J133qno6Gj973//01133aWlS5fqgw8+qDPvNvXe4tlnn9UJJ5ygOXPm1Ptjx7XXXqvw8HA9/vjjGjNmTJ19L7zwgpYvX17vd9ivXz9fQv7iiy/2fZ77Ouqooxr8PAAAANAMJtDBLFy40JRkfvXVVw3uP/nkk80BAwYc8nmmTp1qBvL/IuXl5QE7d0tceumlZkxMTJPGTpo06aBjD/Z79tq0aZMpyXzwwQcb3P/ggw+aksxNmzbV23bjjTeabre73nteeOEF84svvjBN0zR37dplZmZmmhkZGeavv/5aZ1xlZaV54oknmhaLxfz8889923fv3m0edthhZkZGhrl+/fp6xy8oKDDnzJnjiz86Otq8+OKLffudTqc5ePBgs1u3bmZFRUW99xcXF5uSzDvuuKPBa27K5wsALcEc3D41Zw7e14ABA8yTTz65wX0t+V137drVHD16dJ1tRUVFZmxsrNmvX78621syv3788cemJPO8884zw8LCzOLi4jrvu+eee8yMjAxz2LBhTYrNNE3zpptuMiWZGzdu9G279957TUnmTTfdVG/8m2++aVosFvOMM86os7059xZXX321abPZzJ9++sm3/9///rcpyXzyySfrvdc0D/z/iYPdCwEAAODQ0c4FIWH/fqwOh0N33XWXevXqpcjISKWkpGjYsGFavny5JE87jPnz50tSva83S1JFRYVmzJihrKwsRUREqE+fPnrooYdkmmad81ZVVen6669Xamqq4uLi9Kc//Unbt2+XYRh1quvuvPNOGYahdevW6c9//rOSkpI0bNgwSdIPP/ygyZMnq0ePHoqMjFRmZqYuu+wy7dy5s865vMfYuHGjJkyYoISEBKWlpem2226TaZraunWrxowZo/j4eGVmZurhhx9u0mfndDo1Z84c9ezZUxEREerWrZv+9re/qaamxjfGMAwtXLhQFRUVvs9q0aJFTTp+W6uqqtLcuXPVt29fX6uX/U2cOFHHHnusJOmZZ55RQUGBHnzwQfXs2bPOuKioKC1evFiGYWj27Nm+7c8884y2b9+uefPmqW/fvvWOn5GRoVtvvVWS57/NO++8U6+88orvv7/HH39c3333nZ566ilFR0f77doBIBCYg0N7Dk5LS1Pfvn3122+/1dnekvnVa8yYMYqIiNDSpUvrbH/55Zd14YUXNutbV5mZmZKksDDPF3Srqqr04IMPqnfv3po7d2698WeffbYmTZqk9957z9darrn3FnPnzlVqaqquuuoqmaap8vJy3XjjjcrJydFVV13V5NgBAADQdmjngg6rtLRUO3bsqLfd4XAc9L133nmn5s6dq8svv1zHHnusysrK9PXXX+ubb77R6aefriuvvFJ5eXkNfm3WNE396U9/0scff6wpU6Zo8ODBev/99zVz5kxt375djzzyiG/s5MmT9eqrr2rixIkaOnSoVqxYodGjRzca1wUXXKBevXrp3nvv9SUDli9frt9//12XXnqpMjMztXbtWj377LNau3atVq9eXe9B7aKLLlK/fv1033336b///a/uvvtuJScn65lnntGpp56q+++/Xy+99JJuuukm/eEPf9BJJ510wM/q8ssv1+LFi3X++edrxowZ+uKLLzR37lytX79er7/+uiTpX//6l5599ll9+eWXvhYi3lYoh6qh37NhGEpJSWnR8T777DPt2rVLN954Y5Mest966y1FRkbqwgsvbHB/9+7dNWzYMH300UeqqqpSVFSU3nzzTUVFRen8889vUkzTpk3TSy+9pKuvvlrvvfeebr/9do0bN05nnHFGs65tfw39/yM8PFzx8fGHdFwAYA4OjTlYOrTfteT5Q8C2bduUlJRUZ3tL5lev6OhojRkzRq+88oquvvpqSdL333+vtWvX6rnnntMPP/zQ4DEdDofvWqqrq/Xtt99q3rx5Oumkk3yt4z777DPt3r1bN9xwgy+xvr9LLrlECxcu1Ntvv62hQ4c2+94iISFBjz/+uC644AI999xzWrdunQoLC/Xuu+82mIBvqsrKygZ/V4mJiY1eCwAAAJooYDXwQAt5v158oFdDX+GdNGmS7+cjjzyywa/07quxr82+8cYbpiTz7rvvrrP9/PPPNw3D8H0lec2aNb6v9e5r8uTJ9Vpx3HHHHaakOi09vCorK+tte+WVV0xJ5qefflrvGFdccYVvm9PpNLt06WIahmHed999vu27d+82o6Ki6nwmDfnuu+9MSebll19eZ7v3q88fffSRb1tzWog0p51LQ6+IiAjfuOa2c3nsscdMSebrr7/epFgTExPNI4888oBjrr/+elOS+cMPP5imaZpJSUkHfc/+vvjiC9NisZjJyclmYmKiWVBQ0OjYprRzaeyzGzlyZLPiAoB9MQd3/Dl4X01p59Lc3/WIESPM4uJis7i42Pzxxx/NiRMnmpLMqVOn1hnbkvnV285l6dKl5ttvv20ahmHm5uaapmmaM2fONHv06GGaZuOtZhq6hhNOOMHcsWOHb9yjjz560PuEXbt2+drKmGbz7y28zjrrLDMhIcG0Wq3mrFmzDji2Ke1cGnutWrWqWXEBAACgPkoS0GHNnz9fvXv3rrd9xowZcrlcB3xvYmKi1q5dq19++UW9evVq1nnfeecdWa1WXX/99fXO++9//1vvvvuurr32Wr333nuSpGuuuabOuOuuu67Rr1k39BXefSuvqqurVV5erqFDh0qSvvnmG5144ol1xl9++eW+f1utVh1zzDHatm2bpkyZ4tuemJioPn366Pfffz/otUrS9OnT613rQw89pP/+97865ZRTDniMQ9XQ7/lQFscsKyuTJMXFxTVp/J49ew461rvfe+yysrImH9/r2GOP1VVXXaUnn3xSTz31VJ3FyloiMjJSb731Vr3tqamph3RcAJCYg6XQmIOl5v+uly1bprS0tDrbLr30Uj344IN1trVkft3XiBEjlJycrCVLluimm27SkiVLdMkllxzweMcdd5zuvvtuSVJNTY2+//57Pfjgg/rTn/6kDz74QFFRUdqzZ0+dczclrubeW3jNnz9fffv2VVZWlm677bZmvbchV1xxhS644IJ62/v373/IxwYAAAh1JNHRYR177LE65phj6m1PSkpq8Kus+5o9e7bGjBmj3r17a+DAgTrjjDM0ceJEHXHEEQc975YtW9S5c+d6D0r9+vXz7ff+r8Vi8X092Ovwww9v9Nj7j5WkXbt26a677tKSJUtUVFRUZ19paWm98dnZ2XV+TkhIUGRkZL3kaUJCQr2ervvzXsP+MWdmZioxMdF3ra2psd9zc3m/Hu1tZeJ9SD6YuLi4g47d/4E7Pj6+ycff1x/+8AdJ8sv1Wq1WDR8+/JCPAwANYQ4OjTlYav7v2puodrlc+umnn3T33Xdr9+7dCg8PrzOuJfPrvmw2my644AK9/PLLOvbYY7V161b9+c9/PuDxUlNT68yNo0ePVp8+fXT++efrueee03XXXec714Fia2jeP9h7GpKdna309HQNGDCgzh9sWqpXr17M/QAAAK2EhUURkk466ST99ttvev755zVw4EA999xzOvroo329RAOloQeoCy+8UP/85z911VVX6bXXXtOyZct8FXZut7ve+IaqtBur3Db3W4StMYfSn7O1RUZGSvIs6tWQysrKOuO8C33++OOPTTp+v379tGHDhjqLuO3vhx9+kM1m81VU9u3bVxs3bpTdbm/aRQBACGEO9giGObgh3kT1yJEjNWPGDL344ot644039Nhjj9UZ15L5dX9//vOf9d133+nOO+/UkUce2aKK69NOO02S9Omnn/ri8p77QHFJeyu8m3tvAQAAgI6HJDpCVnJysi699FK98sor2rp1q4444gjdeeedvv2NPbR27dpVeXl59aqNfv75Z99+7/+63W5t2rSpzrhff/21yTHu3r1bH374of7617/qrrvu0rnnnqvTTz9dPXr0aPIxDoX3Gn755Zc62wsLC1VSUuK71kBKS0tTdHS0NmzY0OD+DRs2KDo62lcFOGzYMCUlJemVV145aMsBSTrrrLNUXV2tpUuXNrh/8+bN+t///qdTTz3Vl4A5++yzVVVVpf/7v/9r4VUBQHBjDj64jjAHN8Xo0aN18skn695771VFRYVve0vm1/0NGzZM2dnZ+uSTTw5ahd4Yp9MpSSovL/cdMzExUS+//HKj9wkvvPCC7xq872nOvQUAAAA6HpLoCEn7f4U6NjZWhx9+eJ1qqJiYGElSSUlJnbFnnnmmXC6X/vGPf9TZ/sgjj8gwDI0aNUqSNHLkSEnSk08+WWfcE0880eQ4vdVr+1erPfroo00+xqE488wzGzzfvHnzJHkejAPNarVqxIgReuutt5Sbm1tnX25urt566y2NGDHC91lGR0frlltu0fr163XLLbc0WAn44osv6ssvv5QkXXnllUpPT9fMmTPr9a+trq7WpZdeKtM0dfvtt/u2X3XVVerUqZNmzJihjRs31jt+UVGRrycrAIQa5uCm6QhzcFPdcsst2rlzp/75z3/6trVkft2fYRh6/PHHdccdd2jixIktis27fsiRRx4pyXOfcNNNN2nDhg36+9//Xm/8f//7Xy1atEgjR4709cdv7r0FAAAAOh56oiMk9e/fX3/84x81ZMgQJScn6+uvv9a///1vXXvttb4xQ4YMkSRdf/31GjlypKxWq8aNG6ezzz5bp5xyiv7+979r8+bNOvLII7Vs2TL95z//0Y033qiePXv63j927Fg9+uij2rlzp4YOHaoVK1b4kqpN+Xp2fHy8TjrpJD3wwANyOBw67LDDtGzZsnqVda3lyCOP1KRJk/Tss8+qpKREJ598sr788kstXrxY55xzziEtaOZwOBpMJCcnJ9dZCO7dd9/1VRju6/jjj/dVA957770aOnSojj76aF1xxRXq1q2bNm/erGeffVaGYejee++t896ZM2dq7dq1evjhh/Xxxx/r/PPPV2ZmpgoKCvTGG2/oyy+/1MqVKyVJKSkp+ve//63Ro0fr6KOP1uWXX67+/furoKBAixYt0q+//qrHHntMxx9/vO/4SUlJev3113XmmWdq8ODBmjBhgu+/p2+++UavvPKKcnJyWvzZNYXT6dSLL77Y4L5zzz3Xl6ACgLbGHNw0rTkHt7VRo0Zp4MCBmjdvnqZOnSqbzdai+bUhY8aM0ZgxY5oUx/bt231zo91u1/fff69nnnlGqampuu6663zj/vrXv+rbb7/V/fffr1WrVmns2LGKiorSZ599phdffFH9+vXT4sWL6xy7OfcWreWbb75pcO7v2bNnq993AAAABD0T6GAWLlxoSjK/+uqrBveffPLJ5oABA+ps69q1qzlp0iTfz3fffbd57LHHmomJiWZUVJTZt29f85577jHtdrtvjNPpNK+77jozLS3NNAzD3Pf/Lnv27DGnTZtmdu7c2bTZbGavXr3MBx980HS73XXOW1FRYU6dOtVMTk42Y2NjzXPOOcfcsGGDKcm87777fOPuuOMOU5JZXFxc73q2bdtmnnvuuWZiYqKZkJBgXnDBBWZeXp4pybzjjjsOeoxJkyaZMTExTfqcGuJwOMy77rrL7N69u2mz2cysrCxz1qxZZnV1dZPO05BJkyaZkhp89ezZ0zTNvb/nxl4LFy6sc8z169ebF110kZmenm6GhYWZ6enp5rhx48z169c3Gse///1vc8SIEWZycrIZFhZmdurUybzooovMTz75pN7YTZs2mX/5y1/M7Oxs02azmampqeaf/vQn83//+1+jx8/LyzOnTZtm9u7d24yMjDSjo6PNIUOGmPfcc49ZWlpab/zB/tv2Ki4urvf739eBPl9J5qZNmw54fABoDHNwx5+D9zVgwADz5JNPbnBfS3/Xo0ePbnD8okWLGpy/mzO/fvzxx6Ykc+nSpQe8rsZi23cutFgsZnp6unnxxRebv/76a71juFwuc+HCheYJJ5xgxsfHm5GRkeaAAQPMu+66yywvL2/03M25t/DG1dhntq+pU6fW+f/BvjZt2nTAeX/f//8BAACgZQzTbOKqRgD84rvvvtNRRx2lF198UePHjw90OAAAhAzmYAAA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ut/555+v8ePHKz8/v83n13y77LLLJKnd8y+99NLeXWQAANqwuznIMAzdeeed2rhxowzD0NKlS1vd//jjj9dNN93U4ufm+3o8Hg0bNkz333+/TNNsdd/nn39eRx55pBISEpScnKzjjjtOb731VosxzfN8enq6GhsbW5z74osvor/rh+Obb16vVwcffLCefvrpVr//s88+06mnnqr09HR5PB6NHDlSDz/8sEKhUKuxu3v9cOWVV2rkyJHy+/0t7jN79my5XC6dccYZe7zOUuT1UFvnTj755Nb/4AAAAID9QBEd6IHuuusubd++vcXthhtuiPlxnnrqKU2YMEG5ubn6z3/+oxUrVujJJ59UVVWV/vjHP0qSTNPUhRdeqLvuuks33nijioqK9OGHHyo/P1/HH3+8Xn/99ejj+f1+TZw4UQ888ICuueYaffbZZ1q0aJEmT56sxx57TFu3btXTTz+t3/3ud1q2bFn0fq+88oreeustPf/881qyZEn0Of3nP/+RJK1atSp67NFHH43e79lnn211Hdr78AEAgL3x/TnlkUceUUpKSotjv/rVr2J+zKuvvlrbt2/XqlWrdPvtt2vatGl68sknW4z51a9+pWuvvVYXXHCBvvnmGy1atEjHHHOMzjzzTP35z39u9ZjJycl67bXXWhx75plnNGDAgDYzNM+lK1as0LXXXqvrrrtO8+bNi55/7bXXdNxxx6l///764IMPtHLlSt1444265557dOGFF7Yo+u/p9cOMGTNUU1Oj6dOnR+9TWVmpq6++Wr/97W81a9asFte0f//+rV7bNDv55JNbzfX//Oc/Y/sHAAAAAOyJCaDbmTRpknnmmWe2eW7gwIHmjBkz2r3vBx98YEoyKyoqdnvfzZs3my6Xy7zpppvafJzm+7/00kumJPONN95oNeacc84xMzMzzdraWtM0TfP3v/+9abPZzCVLlrQa6/f7o+Muu+wyc/To0abf7zfLysrMPn36mI8++mhMz0WS+dprr7WZHQCAjvDss8+aqamprY5v2LDBlGR+9dVXrc4dd9xx5o033tjuz6Zpmocffrh59tlnR39esGCBKcn805/+1Orxpk6dajqdTrO4uNg0ze/mxjvuuMOcMGFCdFx9fb2Zmppq/va3vzW//xagvbl0yJAh5oMPPmiapmnW1taamZmZ5jnnnNPq97/xxhumJPOll14yTXPvXz+8//77ptPpND///HPTNCOvbY488kgzEAi0uk97r21293oIAAAA6EisRAfQpldeeUV+v1+33nprm+fT0tIkSbNmzdKwYcN0+umntxrzy1/+Ujt37tTcuXMlSS+++KImTJig0aNHtxrrdDqVmJgoSXr00Ue1c+dO3X333br++ut1yCGH7NNKegAAuhPTNPXxxx9r5cqVcrlc0eP//Oc/lZSUpGuvvbbVfX75y18qEAhEv53V7JJLLtHHH3+s4uJiSdJ//vMfDRo0SIcffvgeM8yZM0fFxcUaN26cJOndd9/Vzp0721xlf/rpp2vYsGHR1d97+/rhxz/+sa6//npNmjRJr7zyil5++WW98MILcjgcu80HAAAAWIEiOtAD3XbbbUpKSmpx+/jjj2N6jDVr1iglJUV9+/bd7bjVq1dr+PDhbZ5rPr569eroYxYUFOzxd6ekpOjZZ5/Vfffdp3fffVfPPvtsi/6te+tnP/tZq+vQXEwAAKCzHXXUUXs1Hz/++ONKSkqS2+3Wscceq3A4rP/+7/+Onl+9erWGDBnSorDeLC8vTykpKdG5tll2drZOOeUUPffcc5Kkv/3tb7riiivazdq/f38lJSXJ5XLptNNO0/Tp03XsscdGf7+kduf7goKCFnP93rx+kKT7779fknThhRfqvvvu26vXCD/01ltvtbrGbe2tAgAAAOwPlnoAPdAtt9wS3WCzWb9+/WJ6DNM097pwbbax+dn+jJOkE044QePHj9eoUaM0cODAvb7f982YMUMTJkxocSwvL2+fHgsAgFj961//alV4vuiii1qNu+iii/Sb3/xGFRUVmj59uo466igdddRRLcbEMoc2u+KKK3TjjTfq4osv1oIFC/TKK6+0+6H6xx9/rOTkZPl8Pi1atEhTpkxRRkaGrrvuupgyxPL6wev16le/+pVuvvlm3XjjjXv3pH7gxz/+sZ544okWxzIyMvbpsQAAAID2UEQHeqCsrCwdeOCBbZ5LSUmRJFVVVUW/Ut2ssrJSqampkqRhw4apqqpK27dv3+1qsmHDhqmoqKjNc83Hhw0bFv1z5cqVe/08HA7Hfn2tOzc3t93rAABAZ8vPz281D3m93lbjUlNTo+NefvllHXjggRo/fnz0g+Bhw4bpk08+kd/vb7Uafdu2baquro7Otd93yimn6JprrtGVV16p008/XZmZme1mHTx4cPR1wcEHH6yFCxfq3nvv1XXXXRd97KKiolbF/ebjI0aMiGbdm9cPzRwOh+x2+z5940ySEhMTmesBAADQ6WjnAvQyQ4cOlc1m0+LFi1scX79+vaqqqqJvlM877zy5XC49+OCDbT5OZWWlpMhXsNesWaM333yz1Zg//vGPyszM1IknnihJ+vnPf6733ntPX331VauxgUBAdXV1+/PUAADo9pKSknTjjTfqV7/6VXTl94UXXqja2lo99dRTrcY/9NBDcjqdOvfcc1udczgcuvTSS/Xhhx/utpVLW+x2uxoaGiRJJ510kjIyMvTHP/6x1bg33nhDa9as0c9+9jNJe//6AQAAAOhOWIkOdFNVVVVaunRpi2PNK8xqampUUlLS4lxCQoJSUlKUnJysq666Sr/85S/lcDg0cuRIbd68WbfddpvGjx8fXWGWn5+vGTNmaMqUKaqurtall16qQYMGacuWLXrhhReUlJSkP/7xj7rwwgv1yiuvaNKkSfrDH/6gn/zkJ6qurtbMmTP1xhtv6JVXXoluGHrTTTfp7bff1k9+8hPdfffdOuaYY5ScnKwvv/xSv//97/XMM89o1KhRHXaNKisrW12H5OTkaB4AAOLRtddeq7vvvlv/+c9/dN5556mwsFA33nijbrnlFvn9fp111lkKBAL6xz/+oUcffVSPPPKI8vPz23ysu+++W7fccstuV6FLUllZmRobG6PtXP7+97/rvPPOkxRZ7f3UU0/pwgsv1DXXXKMpU6YoJSVF8+bN0y233KLzzjtP559/vqS9f/3QUXw+X6u53uFwKCsrq8N+BwAAAEARHeimPvzwQ40ePbrFsSuvvFKSNG3aNE2bNq3FuWuvvVZPPvmkJOnRRx/VAw88oNtuu02bNm1Sbm6uTjzxRN17770tvk59/fXXa9iwYXrooYd09tlnq6GhQYMGDdJPf/pTTZ06VZJkGIZefvllPfLII5oxY4auv/56eTweFRYW6sMPP9TRRx8dfTy32625c+dqxowZeuqpp/SrX/1KCQkJGj58uP77v/9bhxxySIdeo8svv7zVsfvvv1+//vWvO/T3AADQkTIyMnTppZfqzjvv1DnnnCObzaZHHnlEhx56qB5//HHdcccdstvtOvzww/X666/r9NNPb/exXC7XXhWUDzroIEmRAnR+fr6uvfZa3XnnndHz5513nj744APde++9+tGPfqTGxkYNHTpUv/nNb3TTTTfF/Pqho8yZM6dV25iDDjoopvZxAAAAwJ4Y5r7sUgQAAAAAAAAAQC9AT3QAAAAAAAAAANpBER0AAAAAAAAAgHZQRAcAAAAAAAAAoB0U0QEAAAAAAAAAaAdFdAAAAAAAAAAA2kERHQAAAAAAAACAdlBEBwAAAAAAAACgHRTRAQAAAAAAAABoB0V0AAAAAAAAAADaQREdAAAAAAAAAIB2UEQHAAAAAAAAAKAd/w9mItcERC7aWQAAAABJRU5ErkJggg==",
"text/plain": [
"<Figure size 1500x1100 with 5 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"#visualize the numerical data columns\n",
"\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"\n",
"\n",
"df = pd.read_csv('normalized_data.csv')\n",
"\n",
"numerical_columns = ['HAEMATOCRIT', 'HAEMOGLOBINS', 'ERYTHROCYTE', 'LEUCOCYTE', 'THROMBOCYTE']\n",
"\n",
"\n",
"numbins = 20\n",
"\n",
"colors = ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd']\n",
"\n",
"plt.figure(figsize=(15, 11))\n",
"for i, column in enumerate(numerical_columns, 1):\n",
" plt.subplot(2, 3, i)\n",
" plt.title(f'Histogram of {column}')\n",
" sns.histplot(df[column], bins=numbins, kde=True, color=colors[i-1])\n",
" plt.xlabel(column)\n",
" plt.ylabel('Frequency')\n",
"\n",
"plt.tight_layout()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "OVQnSG5g_9uX"
},
"source": [
"### **Exploratory Data Analysis - Understand and connect with the Dataset**\n",
"\n",
"\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "P5niLKHkDVL-"
},
"source": [
"**OBSERVATIONS**\n",
"\n",
"\n",
"---\n",
"\n",
"\n",
"**Descriptive Statistics:**\n",
"The dataset contains 3,000 entries.\n",
"\n",
"Key hematological parameters such as Hematocrit, Hemoglobin, Erythrocyte, Leucocyte, and Thrombocyte are measured.\n",
"\n",
"Hematocrit values range from 14.6 to 57.0, with a mean of 39.25.\n",
"\n",
"Hemoglobin levels vary between 3.8 and 18.8, with an average of 13.09.\n",
"\n",
"Erythrocyte count spans from 1.93 to 7.86, with a mean of 4.73.\n",
"\n",
"Leucocyte count shows a wide range from 1.1 to 41.1, averaging at 8.12.\n",
"\n",
"Thrombocyte count ranges from 10 to 830, with an average of 256.35.\n",
"\n",
"Mean Corpuscular Hemoglobin (MCH), Mean Corpuscular Hemoglobin Concentration (MCHC), and Mean Corpuscular Volume (MCV) are also included, with their respective ranges and averages.\n",
"\n",
"The age of individuals in the dataset ranges from 1 to 60 years, with an average age of around 35 years.\n",
"\n",
"**Missing Values:**\n",
"There are no missing values in the dataset, indicating a complete dataset without gaps in data entry.\n",
"\n",
"**Data Integrity:**\n",
"The dataset appears to be well-structured and comprehensive for hematological analysis, given the range and completeness of the data.\n",
"This dataset seems well-suited for in-depth analysis of hematological parameters, particularly for understanding variations across different ages and sexes.\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "iLyu5wqDDVMC"
},
"source": [
"# IV. Tasks to do if Data Preprocessing is Relevant to your Project"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "qyBVTRDTyek0"
},
"source": [
"## **Choose Your Data Preprocessing Methods:**\n",
"\n",
"Numeric values(or features) in original data can be preprocessed by the methods below. One or more methods can be selected.\n",
"1. Standardization: This method involves transforming each value by subtracting the mean and dividing by the standard deviation of the dataset, thus achieving a zero mean and unit variance, commonly termed Z-score normalization.\n",
"2. Min-Max Normalization: This method rescales each value by subtracting the minimum value and dividing by the range of the dataset, thereby transforming the data to fit within a specified range, typically 0 to 1.\n",
"3. Mean Normalization: Similar to standardization, this method adjusts values to have a zero mean by subtracting the mean and dividing by the range, without altering the standard deviation.\n",
"4. Unit Vector Normalization: This approach normalizes data by dividing each value by its vector magnitude, resulting in a dataset where each value has a unit length.\n",
"\n",
"Codes in original data can be preprocessed by the below. However the encoded values should be handled separatedly comparing to numeric values.\n",
"- Encode categorical variables using methods like one-hot encoding or label encoding.\n",
"\n",
"Others are considered as below.\n",
"- Handle missing data by imputing or removing null values.\n",
"\n",
"Choose appropriate preprocessing methods considering the type of the values. List the methods that you will use providing a short derscription of each."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "fJ4eQKaY5JtQ"
},
"source": [
"**METHODS**\n",
"\n",
"\n",
"---\n",
"\n",
"\n",
"**Descriptive Statistics:**\n",
"\n",
"*Purpose:* To get a basic understanding of the dataset.\n",
"\n",
"*Description:* This involves computing summary statistics like mean, median, standard deviation, min, and max values for each numerical column. It helps in getting a quick overview of the distribution of data and identifying any potential anomalies or outliers.\n",
"\n",
"**Missing Value Handling:**\n",
"\n",
"*Purpose:* To check and address any missing data in the dataset.\n",
"\n",
"*Description:* This step involves counting the number of missing values in each column and the total missing values across the dataset. Depending on the findings, we would have decided on methods to handle missing values.However in our dataset, this was only a checking step as there were no missing values.\n",
"\n",
"**Duplicate Removal:**\n",
"\n",
"*Purpose:* To ensure the uniqueness of each data entry.\n",
"\n",
"*Description:* This method involves removing duplicate rows from the dataset to prevent skewing the data analysis or model training. In our dataset, we identified specific columns to check for duplicates and removed any rows where these column values were repeated. There were, however, no duplicates found.\n",
"\n",
"\n",
"**Min-Max Normalization:**\n",
"\n",
"Purpose: *italicized text* To rescale numerical features to a standard range.\n",
"\n",
"*Description: *This method transforms our dataset to fit within a specified range, typically [0, 1]. It is done by subtracting the minimum value of each feature and dividing by the range (max - min). This normalization is particularly useful for algorithms that are sensitive to the scale of the data, like gradient descent-based methods, and helps in speeding up the convergence.\n",
"\n",
"**Data Visualization (Histograms):**\n",
"\n",
"*Purpose:* To visually explore the distribution of data in each numerical column.\n",
"\n",
"*Description:* Histograms provide a graphical representation of the frequency distribution of numerical data. By plotting histograms, we can understand the skewness, identify outliers, and get a sense of the distribution shape for each variable. This is crucial for making informed decisions about further data preprocessing and analysis.\n",
"These preprocessing steps are fundamental for exploratory data analysis. Each step plays a crucial role in understanding, cleaning, and transforming the data into a format that can be effectively used for deriving insights or predictions.\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "vry1tI1YDVMD"
},
"source": [
"## Apply your Data Preprocessing Methods:\n",
"\n",
"Implement the chosen preprocessing method on the original data."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "HYutwnWeTVDT"
},
"outputs": [],
"source": [
"# Get descriptive statistics\n",
"numerical_stats = df.describe()\n",
"\n",
"# Count missing values for every column\n",
"missing_values = df.isnull().sum()\n",
"\n",
"# Count total missing values in the entire DataFrame\n",
"total_missing = missing_values.sum()\n",
"\n",
"\n",
"print(\"Descriptive Statistics:\")\n",
"print(numerical_stats)\n",
"print(\"\\nMissing Values:\")\n",
"print(missing_values)\n",
"print(f\"Total Missing Values: {total_missing}\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "HVfOJFG-DVMD"
},
"outputs": [],
"source": [
"# drop duplicates.\n",
"# normalize the data.\n",
"\n",
"import pandas as pd\n",
"from sklearn.preprocessing import MinMaxScaler\n",
"\n",
"df = pd.read_csv('/content/drive/MyDrive/dataset_project5.csv')\n",
"\n",
"# Remove duplicate rows\n",
"columns_to_check = ['HAEMATOCRIT', 'HAEMOGLOBINS', 'ERYTHROCYTE', 'LEUCOCYTE', 'THROMBOCYTE', 'MCH', 'MCHC', 'MCV', 'AGE', 'SEX', 'SOURCE']\n",
"df_no_duplicates = df.drop_duplicates(subset=columns_to_check)\n",
"\n",
"\n",
"columns_to_normalize = ['HAEMATOCRIT', 'HAEMOGLOBINS', 'ERYTHROCYTE', 'LEUCOCYTE', 'THROMBOCYTE', 'MCH', 'MCHC', 'MCV', 'AGE']\n",
"\n",
"# Create a MinMaxScaler object\n",
"scaler = MinMaxScaler()\n",
"\n",
"# Apply the MinMaxScaler to the selected columns in the df without duplicates\n",
"df_no_duplicates[columns_to_normalize] = scaler.fit_transform(df_no_duplicates[columns_to_normalize])\n",
"\n",
"# Save the normalized df without duplicates to a new CSV file\n",
"df_no_duplicates.to_csv('normalized_data.csv', index=False)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 831
},
"id": "tNPOS0S4Tja2",
"outputId": "ed125aa4-57f7-4ad3-e81e-6763becb3213"
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABdEAAARBCAYAAADKRMn9AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd3hUZfr/8fe0THonCS1BehfFQizYUBaxo2sBQdddXZd1VdR1XV27YlnbfkVXXRZ1LfwW68qiiKxgARTBgjTpAUJ6bzPJzPn9MZmRkARCMsmZJJ/Xdc01M+ecOeeeEPLM3Oc+92MxDMNAREREREREREREREQasZodgIiIiIiIiIiIiIhIqFISXURERERERERERESkGUqii4iIiIiIiIiIiIg0Q0l0EREREREREREREZFmKIkuIiIiIiIiIiIiItIMJdFFRERERERERERERJqhJLqIiIiIiIiIiIiISDOURBcRERERERERERERaYaS6CIiIiIiIiIiIiIizVASXTqtfv36cdVVV5kdRpf3+OOP079/f2w2G2PGjDE7HBERCXEanzuGxmcREekIGtc7hsZ1kdCnJLqEhJdffhmLxcI333zT5PpTTz2VkSNHtvk4ixYt4t57723zfrqLjz/+mD/+8Y+ceOKJzJs3j4cffrjZba+66iqio6ObXW+xWPj973/f5LqNGzdisVgIDw+npKSkyW1OPfVULBZLk7ehQ4cGtvP/LlksFr744otG+zEMg759+2KxWDjnnHOaPFZJSQnh4eFYLBY2btwYWH7vvfc2G8P+t1NPPbXB/hYuXMgvfvELkpKSCA8PZ/Dgwdx6660UFhY2+/NatmwZF110EWlpaYSFhZGSksK5557LO++8E9hm586dDY5rtVpJTExk0qRJrFy5stE+/fEXFBSwbNmyFr0Xi8XSbIwi0vVpfA5N3XF8rqys5IEHHmD06NFERkYSFxfHySefzKuvvophGE3G5nK5+L//+z9OOukkEhISCAsLo1evXpx33nm8+eabeDyewLb+MfWvf/1rsz8rvy+//JILL7yQ1NRUnE4n/fr147rrriMrK6vRtgd+drBarfTs2ZNzzjmHVatWNdi2qRj2H6/XrFnTaP9N/ft6vV5effVVjj/+eBITE4mJiWHw4MFMnz690TFFpHvRuB6aDndcb27cDQ8PD2x34Pc9m81GSkoKF198ceA7bklJCT179uTEE09scixdtWoVVquVSy65pMXfHXfu3Bk49ltvvdXsezhw7Drw80RERASjR4/m6aefxuv1NrmfwsJCbrvtNoYMGUJ4eDiJiYlMnDiRhQsXNvvzKysr47777uPII48kOjqaiIgIRo4cye233052djYrV67EarVyxx13NPn6Rx99FIvFwpw5c1r08+jXrx9w6FxCTk5OszFL6LCbHYBIa23evBmr9fDOAy1atIg5c+ZoQG+h//3vf1itVubOnUtYWFi7Hee1114jLS2N4uJi3nrrLX796183uV2fPn2YPXt2o+VxcXGNloWHh/PGG29w0kknNVi+fPly9uzZg9PpbDaeBQsWYLFYSEtL4/XXX+fBBx8E4KKLLmLgwIGB7SoqKrj++uu58MILueiiiwLLU1NTA49vvfVWnnjiCY488khuv/12EhMTWbt2Lc8++yzz589n6dKlDBkypMHx77nnHu6//34GDRrEddddR0ZGBoWFhSxatIgpU6bw+uuvc8UVVwS2v/zyyzn77LPxeDz89NNPPPfcc5x22mmsXr2aUaNGNfkehw0bxr/+9a8Gy+644w6io6O58847m/3ZiIgcisbn9tfdxufc3FzOOOMMNm7cyGWXXcbvf/97ampqePvtt5kxYwaLFi3i9ddfx2azBV6Tn5/PpEmTWLNmDRMnTuSuu+4iMTGRnJwcPvnkE6644gq2bt3KX/7yl8P6mfzf//0fN954I/379+eGG26gZ8+ebNy4kX/84x/8v//3/1i0aBEnnHBCo9c9//zzREdH4/V62b17Ny+99BLjx4/n66+/bnHF4b333ssHH3xwyO3+8Ic/MGfOHM4//3ymTp2K3W5n8+bNfPjhh/Tv359x48Yd1nsWke5N43r7O9xx3el08o9//KPR8v3HQb8//OEPHHvssdTW1vLDDz/w97//nWXLlvHjjz+SlpbG008/zWWXXcZLL73EtddeG3hdXV0dv/3tb8nIyODll1/m/PPPb7DfJ554gj179vDUU081WN6jRw927tzZwnfe0P6fJwoKCnjjjTe4+eabyc/P56GHHmqw7ebNmznjjDPIz8/n6quv5phjjqGkpITXX3+dc889l1tvvZXHH3+8wWu2b9/OhAkTyMrK4pJLLuHaa68lLCyMH374gblz5/Luu+/y008/cd111/HEE08wbdo0RowYEXj9rl27uP/++7nkkkuYNGlSo+/Tv/71rznuuOMa/BwPPFng/zxwoPj4+Fb9zKSDGSIhYN68eQZgrF69usn1p5xyijFixIg2H2fmzJmGmb/2FRUVph27Na6++mojKiqqRdvOmDHjoNsCxsyZMxst93q9Rr9+/YxZs2YZF154oXHqqac2+fqW/g74f5cuuugiIzk52aitrW2w/je/+Y0xduxYIyMjw5g8eXKT+xg/frxx0UUXGTfffLNxxBFHNHus/Px8AzDuueeeJte/8cYbBmBceumlRl1dXYN1X331lREZGWmMGjWqQYwLFiwwAOPiiy823G53o31+9NFHxgcffGAYhmHs2LHDAIzHH3+8wTYffvihARjXX399g+X33HOPARj5+flNxjtixAjjlFNOafb9ikj3o/E5NHW38XnixImG1Wo13n///Ub7vfXWWw3AeOSRR5p8zdtvv91kPKtXrzZee+21wPPmxtT9ffHFF4bVajVOPvlko7KyssG6rVu3GqmpqUbPnj2NoqKiwPLmxt4ff/zRAIw///nPB43h008/NQBjzJgxBmCsWbOmwX4O/PfNyckxLBaL8Zvf/KZR/F6v18jNzW32/YlI16dxPTQFc1z3848fCxYsaLD8+eefNwDj0UcfDSybNGmSkZCQYOTk5ASW/fWvfzUAY9GiRU3uf/LkyUZGRsZhHftg76Gp373q6mojIyPDiImJafB92u12GyNHjjQiIyONVatWNXhNXV2dcemllxqAMX/+/MDy2tpa48gjjzQiIyONzz//vFFMpaWlgTG5pKTE6Nmzp3HiiScaXq83sM25555rxMXFGdnZ2U2+r6ioKGPGjBlNrjvUd3HpHNTORTqtA3uz1dbWct999zFo0CDCw8NJSkripJNOYsmSJYDvkqE5c+YANNmqorKykltuuYW+ffvidDoZMmQIf/3rXxtd1lRdXc0f/vAHkpOTiYmJ4bzzzmPv3r1YLJYGZ9r9l+ts2LCBK664goSEhEDV1Q8//MBVV11F//79CQ8PJy0tjV/96leN2nv49/HTTz8xbdo04uLi6NGjB3/5y18wDIPdu3dz/vnnExsbS1paGk888USLfnZ1dXU88MADDBgwIHAZ8p///GdcLldgG4vFwrx586isrAz8rF5++eUW7f9wfPnll+zcuZPLLruMyy67jM8++4w9e/a0eb+XX345hYWFgX9/ALfbzVtvvdWgivtAWVlZfP7554F4duzYwYoVK1oVw3333UdCQgIvvvhio6qA4447jttvv51169Y1uMztL3/5C4mJifzzn//E4XA02ufEiRObbUPjd/LJJwOwbdu2VsUtItIWGp81Ph/M4Y7Pq1atYvHixVx11VWcd955jdbPnj2bQYMG8eijj1JdXQ3AypUrWbx4Mddee22DK8X2d8wxxzB16tTDiv2BBx7AYrHwyiuvEBkZ2WDdgAEDeOyxx9i3bx8vvPDCIfeVlpYGgN3esguDb7jhBhISEg5Z1bljxw4Mw+DEE09stM5isZCSktKi44mI+Glc7xrjul9T3xWfe+45XC4Xs2bNAmD37t3ce++9XHrppUyaNKndYjmU8PBwjj32WMrLy8nLywssf/vtt/nxxx/505/+xPHHH9/gNTabjRdeeIH4+PgGvydvv/0233//PXfeeWejq+EAYmNjA9XucXFxPPPMM3z55ZeBiv93332XDz74gEceeYSePXu2w7uVzkDtXCSklJaWUlBQ0Gh5bW3tIV977733Mnv27MAlNGVlZXzzzTesXbuWM888k+uuu47s7GyWLFnS6LIbwzA477zz+PTTT7nmmmsYM2YMixcv5rbbbmPv3r0NLlG66qqr+Pe//82VV17JuHHjWL58OZMnT242rksuuYRBgwbx8MMPBz4YLFmyhO3bt3P11VeTlpbG+vXrefHFF1m/fj2rVq1q1If60ksvZdiwYTzyyCP897//5cEHHyQxMZEXXniB008/nUcffZTXX3+dW2+9lWOPPZbx48cf9Gf161//mldeeYWLL76YW265ha+++orZs2ezceNG3n33XQD+9a9/8eKLL/L1118HBo6mLk8+UFP/fgfz+uuvM2DAAI499lhGjhxJZGQkb775JrfddlujbT0eT5P7j4iIICoqqsGyfv36kZmZyZtvvhkY+D/88ENKS0u57LLL+Nvf/tZkPG+++SZRUVGcc845REREMGDAAF5//fUWvff9bdmyhc2bN3PVVVcRGxvb5DbTp0/nnnvuYeHChVx22WVs2bKFTZs28atf/YqYmJjDOt7+/JfPJSQktHofIiL70/is8dms8dnfvmT69OlNxmm327niiiu47777+PLLL5kwYULgNdOmTTus93wwVVVVLF26lJNPPpkjjjiiyW0uvfRSrr32WhYuXMif/vSnBuuKiooAX7/yvXv38sADDxAeHs4vf/nLFh0/NjaWm2++mbvvvpu1a9dy9NFHN7ldRkYG4GtNd8kllzRK9ouIgMb1rjquh4WFNfvd06+p74r9+vXjvvvu47bbbuOqq67iueeew2638/TTTx8yjoMpLy9vMs79TyIcin++kP3bnRzqs0FcXBznn38+r7zyClu3bmXgwIH85z//AeDKK69s0XEvueQSJk+ezO23384ZZ5zBjTfeyAknnMB1113X4tib4v88sD+73a52Lp2FKfXvIgfwX1Z2sNuBl/ZkZGQ0uFTmyCOPbLY9h19zl5W99957BmA8+OCDDZZffPHFhsViMbZu3WoYhmGsWbPGAIybbrqpwXZXXXVVo7Ye/st1Lr/88kbHq6qqarTszTffNADjs88+a7SPa6+9NrCsrq7O6NOnj2GxWBpculxcXGxEREQ0e/mQ33fffWcAxq9//esGy/2XQ//vf/8LLGvppWL+bQ/1b3jg5eJut9tISkoy7rzzzsCyK664wjjyyCMb7f+UU05pdr/XXXddYLv9L1F89tlnjZiYmMDP+5JLLjFOO+00wzCMZtu5jBo1ypg6dWrg+Z///OcmLzs3jIO3c/H/Tj311FMH/bnFxsYaRx99tGEYhvH++++36DV+/su+77vvPiM/P9/IyckxPv/8c+PYY49t8vI5tXMRkcOl8Vnjs59Z4/MFF1xgAEZxcXGz7/Gdd94xAONvf/ubYRiGceGFFxqAUVJS0mC76upqIz8/P3Dbf5+Haufi//e58cYbm43DMAxj9OjRRmJiYuC5/3flwFt8fLzx0UcfNXjtwdq5LFiwwCgpKTESEhKM8847L7C+qd+F6dOnG4CRkJBgXHjhhcZf//pXY+PGjQeNW0S6B43rXXtcnzhxYmA7//jxz3/+08jPzzeys7ONjz76yBg4cKBhsViMr7/+usF+a2trjTFjxhiJiYkGYLzwwgsHjaMl7VwOdmuqncvQoUMDY/SmTZuM2267zQAa/b6NGTPGiIuLO2h8Tz75pAEY//nPfwzDMIyjjjrqkK850M6dO42oqCgjMTHRcDgcxrp16w66fUvauTR1GzJkyGHFJeZRJbqElDlz5jB48OBGy2+55RY8Hs9BXxsfH8/69evZsmULgwYNOqzjLlq0CJvNxh/+8IdGx33rrbf48MMP+f3vf89HH30EwO9+97sG291www3NXnL129/+ttGyiIiIwOOamhoqKioCkzytXbs2cImV3/4TedlsNo455hj27NnDNddcE1geHx/PkCFD2L59+yHfKxC4VGv/9/rXv/6V//73v5x22mkH3UdzwsPDm53w6swzz2y07MMPP6SwsJDLL788sOzyyy/n3HPPZf369Q0m8QDfGfKXXnqp0X769OnT5DF/+ctfctNNN7Fw4UJ+8YtfsHDhwmYr0MF3ud+6desaTI52+eWX8/DDD7N48eKDVj4cqLy8HOCQFeUxMTGUlZUBBO4Ptwr9nnvu4Z577gk8j46O5oknnuDiiy8+rP2IiDRH47PGZ7PG55aMp/51B46nB07c9fe//52bb7458HzEiBH8+OOPze73cOPwr/cff39vv/02sbGxGIbB3r17ef7555kyZQoff/xxi692i4uL46abbuKee+7h22+/5aijjmpyu3nz5nHcccfxz3/+k3fffZd3332XW2+9ldNPP51XX32V3r17t+h4ItJ1aVzvmuN6cnJyo2W/+tWvGjzv0aMH//rXvzj22GMbLLfb7bz44oscd9xxjBs3jt/85jetim1/d999d6OfMcDjjz/Ol19+2Wj5pk2b6NGjR4Nl5513HnPnzm2wrLy8vEXjMTT8bHC437MzMjK45557+OMf/8jtt9/OyJEjD+v1TfF/HtjfgVftSehSEl1CynHHHccxxxzTaHlCQsIhL0O+//77Of/88xk8eDAjR47kF7/4BVdeeSWjR48+5HF37dpFr169Gv1RHTZsWGC9/95qtTa6jHfgwIHN7rupS36Lioq47777mD9/foPeXuC7tO5A6enpDZ7HxcURHh7eaJCMi4tr1N/tQP73cGDMaWlpxMfHB95ra9hsNiZMmNDi7V977TWOOOIInE4nW7duBXw9RSMjI3n99dd5+OGHG2wfFRV1WPvv0aMHEyZM4I033qCqqgqPx3PQxPJrr71GVFQU/fv3D8QTHh5Ov379eP311w8rie7/XfJ/6W5OeXl5oD+pfzA91GsOdO2113LJJZdQU1PD//73P/72t78d8sOviMjh0Pis8dms8Xn/8bS5S50PTHD77ysqKoiLiwtsN2XKlMAX4JYkipqL42Ca+2I/fvz4Br8XF198MYMGDeKGG25gzZo1LY7jxhtv5Kmn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+c1vjJ07dzaKwf+7sv8tKirKyMzMNP7973832Lapcf3TTz81AGPBggXN7nv/f9+ysjLjmWeeMSZOnGj06dPHcDgcRkxMjJGZmWm89NJLzf6sRKR70LjeNcb1g41XO3bsMAzj4OOHYRjGqaeeasTGxholJSUNlu//ueBgJk+ebGRkZDS57lDHbur9Huxn6v8ufuD37ry8PGPWrFnGwIEDDafTacTHxxsTJkww/vOf/zQbd3FxsXH33Xcbo0aNMiIjI43w8HBj5MiRxh133GHs27fvsN/L/qKiohr8X9lfU58H9r99+umnh9y/mM9iGK24llFEGvjuu+846qijeO2115g6darZ4YiIiAgan0VERLoSjesiYib1RBc5TAf2wARfnzOr1cr48eNNiEhEREQ0PouIiHQdGtdFJNSoJ7rIYXrsscdYs2YNp512Gna7nQ8//JAPP/yQa6+9lr59+5odnoiISLek8VlERKTr0LguIqFG7VxEDtOSJUu477772LBhAxUVFaSnp3PllVdy5513YrfrvJSIiIgZND6LiIh0HRrXRSTUKIkuIiIiIiIiIiIiItIM9UQXEREREREREREREWmGroEBvF4v2dnZxMTEYLFYzA5HREQEAMMwKC8vp1evXlitOu+9P43dIiISijR2N09jt4iIhKKWjt1KogPZ2dmamEJERELW7t276dOnj9lhhBSN3SIiEso0djemsVtERELZocZuJdGBmJgYwPfDio2NNTkaERERn7KyMvr27RsYp+RnGrtFRCQUaexunsZuEREJRS0du5VEh8ClZLGxsRrMRUQk5OiS58Y0douISCjT2N2Yxm4REQllhxq71aRNRERERERERERERKQZSqKLiIiIiIiIiIiIiDRDSXQRERERERERERERkWYoiS4iIiIiIiIiIiIi0gwl0UVEREREREREREREmqEkuoiIiIiIiIiIiIhIM5REFxERERERERERERFphpLoIiIiIiIiIiIiIiLNUBJdRERERERERERERKQZSqKLiIiIiIiIiIiIiDRDSXQRERERERERERERkWYoiS4iIiIiIiIiIiIi0gwl0UVEREREREREREREmqEkuoiIiIiIiIiIiIhIM5REFxERERERERERERFphpLoIiIiIiIiIiIiIiLNUBJdRERERERERERERKQZSqKLiIiIiIiIiIiIiDTD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IiIiIiIicggqootEma9+9at84QtfOOD+t99+G8MwaGpq2u/+8vJyEhISqKmpOeB7Tj/9dAzDOODyzW9+s3ebnvuWLVu23/d2dHSQk5ODYRi8/fbbB+z7G9/4Bna7neeee+6AfR3qcvvtt/du+8QTTzBjxgySk5NJS0vjtNNOY+HChQf8HNM0+f3vf8/MmTNJTU0lMzOT6dOnc9999+H1egG4/fbbe3+G3W5n2LBhXHfddTQ0NOy3rxEjRnDffff1HsvDXQ72nEVEZHCLhTF64cKFnHbaaaSlpZGcnMyMGTN4/PHHD/p8nn/+ec4888z/n737Do+qTP8//jkzmfTeQRKadFAUV4miroogoouKBRcQFNeGDRBddq2gYsW22FYEXAs/2a+66lrAhquABTsgWIAAqZQkpE47vz8mMxCSQBImmWTm/bquuZac88w595m413POnXvuR0lJSYqKilKfPn102WWX6dtvv/WNWbRokRITEw/4uTRlTt9/7o2KitKAAQP07LPP1hm3/2c8efJkGYah++67r864N954Q4Zh1Nn2z3/+U0ceeaTvfuGoo47S3LlzDxg7ACA0eeeX/V9nnHGGJM+zo3dbdHS0Bg0apOeee06StGLFCtlsNn322Wd1jllRUaEePXro/PPPP+jz5qJFixq9f/Ce/9FHH63zc2Px7MvlcumRRx7RoEGDFBkZqaSkJI0aNUqff/55vbF2u10PPPCAjjzySEVHRys1NVUnnHCCFi5cqOLiYmVmZuree++t974LL7xQQ4cOVVZW1gGvcfLkyZIazxMsWbKkqb8uoF0giQ50YJ999pmqqqp0/vnna/HixQ2O+ctf/qL8/Pw6rwceeKDOmKysLC1cuLDOttdff12xsbENHrOyslJLlizRzTffrOeff963fd9zPProo4qPj6+z7aabbpIk3XTTTbryyit10UUX6YcfftCXX36pYcOGacyYMfrHP/5R51wTJ07UjTfeqDFjxujjjz/Wd999p9tuu03/+c9/tGzZMt+4AQMGKD8/X7m5uVq4cKHee+89XX311Q3Gf/zxx9eJ68ILL9QZZ5xRZ9vxxx/fyKcOAMDBBWKOfuKJJzRmzBidcMIJ+uKLL/TDDz9o3Lhxuuqqq3xzsNctt9yiiy66SIMHD9abb76pDRs26OWXX1aPHj00a9asJl9nc+Z0SdqwYYPy8/O1bt06XXnllbr66qv14YcfHvAckZGRuv/++7V79+5Gxzz//PO68cYbdf311+u7777T559/rptvvlnl5eVNvhYAQGjZ/xkwPz9fr7zyim//7NmzlZ+fr59++kkTJkzQX/7yF7377rs6+eSTdd1112ny5MmqqKjwjb/55psVFRWlxYsX1znmjBkzfM+r3tdFF13U7Hgbi8fLNE2NGzdOs2fP1g033KD169frk08+UVZWlv74xz/qjTfe8I212+0aOXKk7rvvPl1xxRVauXKlvvzyS02dOlVPPPGEtm/frmeffVZ33XWXfvzxR9/7li5dqrfffluLFy/WN99847ue//u//5O0d57Pz8/XY4895nvfwoUL633WDRUmAO2aCaBdmTRpkjlmzJh62z/++GNTkrl7927ftsmTJ5t//etfzXfffdfs3bt3vfecfPLJ5g033HDA80kyb731VjM+Pt6srKz0bT/99NPN2267zZRkfvzxx3Xes2jRInPo0KFmSUmJGR0dbebm5tY77sKFC82EhIR621etWmVKMh9//PF6+6ZPn27abDbf8f7f//t/piTzjTfeqDfW7XabJSUlpmma5h133GEeeeSR9Y6VlJRUZ1vXrl3NRx55pN6xGvvMAQDYV3ueo3Nzc02bzWZOnz693nEef/xxU5K5evVq0zT3zsWPPfZYg+d1u92+fzc2n+97nKbM6Q19RqZpmj179jQfeOAB38/7f8aTJk0yzzrrLLNv377mzJkzfdtff/11c99HmTFjxpiTJ09uME4AAPZ3sGfAhp4dk5OTzWnTppmmaZpVVVVmv379zKlTp5qmaZofffSRGR4ebn799df1jtXQ86ppNj43NnT+g8Vjmqa5ZMkSU5L55ptv1jveeeedZ6akpJjl5eWmaZrm/fffb1osFvObb76pN9Zut/vGTZ482TzqqKNMu91uFhUVmWlpaQ3ePxzoWiSZr7/+er3tQEdDJTrQQe3Zs0dLly7VhAkTdPrpp6u0tFT/+9//WnSsIUOGqFu3br6/Hufm5urTTz/VxIkTGxy/YMECTZgwQQkJCRo1alSjXxNvyCuvvKLY2FhdeeWV9fbNmDFDDofDF8dLL72kPn36aMyYMfXGGoahhISEBs+xefNmvf/++woPD29yXAAA+Esg5uh///vfcjgc9SrOJU8LttjYWF91nXcuvuaaaxo85/5tUhrTnDl9f6Zp6r333lNubq6OO+64A57HarXq3nvv1RNPPKFt27Y1OCYzM1OrV6/Wli1bmhQ7AABN5Xa79X//93/avXu37xkzMjJSL7zwgp599ln95z//0WWXXaa//e1vGjJkSEDikaSXX35ZvXv31tlnn13vPTNmzNDOnTu1fPlySZ5n7eHDh+uoo46qN9ZmsykmJkaS9Nhjj2nnzp2aM2eOrrnmGg0cOFDXXXddK10Z0L6RRAfaobfffluxsbF1XqNGjaozZsmSJerVq5cGDBggq9WqcePGacGCBfWO9eSTT9Y71ksvvVRv3GWXXeZrzbJo0SKdeeaZSktLqzful19+0erVq31fP5swYYIWLlwo0zSbdG0bN25Uz549G0xwd+7cWfHx8dq4caPvXH369GnScX/88UfFxsYqKipK3bt319q1a3XLLbc06b0AADRVe52jN27cqISEBHXq1Kne+8PDw9WjRw/f/Lpx40b16NFDYWFhvjHz5s2rE0dpaelBP4vmzOleXbp0UWxsrMLDwzV69GjdcccdOumkkw56rnPPPVeDBw/WHXfc0eD+O+64Q4mJierWrZv69OmjyZMn69VXX5Xb7T7osQEAoamhOX3fHuC33HKLYmNjFRERofPPP19JSUm6/PLLffuPOeYYzZo1S+edd55SUlL097//vUVxeOfGfV+5ubn1xh0sno0bN6pfv34NnsO7fd9n7b59+x40tvj4eC1cuFD33nuvli1bpoULFzb5j+37uvjii5t0jUB7FnbwIQDa2imnnKKnnnqqzrYvvvhCEyZM8P38/PPP1/l5woQJOvnkk/XEE08oLi7Ot338+PH1JvOMjIx655wwYYL++te/6vfff9eiRYv0+OOPNxjb888/r5EjRyo1NVWSdOaZZ2rKlCn66KOPdNpppzXp+pqacG/qOEnq06eP3nzzTVVXV+vFF1/Ud999x1/IAQB+157n6ENx2WWX6U9/+pPvWlpjrpak//3vf4qLi1NNTY2+/PJLXXvttUpOTm50HZN93X///Tr11FMbrLbv1KmTVq1apZ9++kmffvqpVq5cqUmTJum5557Te++9J4uF2iEAQF0NzenJycm+f8+cOVOTJ09Wfn6+Zs6cqWuuuUaHH354nfG33XabZs+erb/+9a91/jjdHN65cV9//OMf641rSjytMX+feuqpGjp0qAYPHqyuXbs2+X37euSRRzR8+PA62zp37tyiYwGBQhIdaIdiYmLqTYb7fn153bp1Wr16tb788ss61dYul0tLlizRX/7yF9+2hISEesdqSEpKis466yxNmTJF1dXVGjVqlPbs2VNnjMvl0uLFi1VQUFDnBsHlcun5559vUhK9d+/e+uyzz2S32+tVruXl5amsrEy9e/f2jf35558PekzJU2Xnvc777rtPo0eP1l133aU5c+Y06f0AADRFe52je/furdLSUuXl5dV7KLXb7frtt990yimnSJJ69eqlzz77TA6HQzabTZKUmJioxMTERtulNKQ5c7pX9+7dlZiYKMmzKPgXX3yhe+65p0lJ9JNOOkkjR47UrFmzNHny5AbHDBw4UAMHDtQ111yjq666SieeeKJWrFjhu3YAALwamtP3lZqaqsMPP1yHH364li5dqkGDBumYY45R//79fWO8z8UtTaBLdefG/Y/bnHh69+6t9evXN3gO7/aWPGt74zmUa8zMzGzSPQ/QnlGSAXRACxYs0EknnaTvv/9e3333ne81ffr0Br8u3lSXXXaZPvnkE11yySWyWq319r/zzjvas2ePvv322zrnfeWVV/Taa6+ppKTkoOcYN26cysvL9cwzz9Tb99BDD8lms2ns2LGSpD//+c/auHGj/vOf/9Qba5rmAb9qfuutt+qhhx5SXl7eQWMCAMBfAjVHjx07VjabTQ8//HC9fU8//bQqKip08cUXS/J8pbq8vFxPPvlki+ORmjenN8ZqtaqqqqrJ57zvvvv01ltvadWqVQcd600qVFRUNPn4AAA0JCsrSxdddJFmzZoV6FAkNRzPuHHj9Msvv+itt96qN/7hhx9WSkqKTj/9dEmeZ+0PPvhA3377bb2xDoeDuRNoAJXoQAfjcDj0r3/9S7Nnz9bAgQPr7Lv88ss1b948rV27VgMGDJAkVVZWqqCgoM64iIgIJSUl1Tv2GWecoeLiYsXHxzd47gULFmj06NE68sgj62zv37+/pk2bppdeeklTp049YPw5OTm64YYbNHPmTNntdp1zzjlyOBx68cUX9dhjj+nRRx9VVlaWJOnCCy/U66+/rosvvli33nqrRowYobS0NP3444965JFHdN111+mcc85p9DxHHHGE7r33Xv3jH/84YEwAAPhDIOfo7OxsPfDAA5oxY4YiIyM1ceJE2Ww2/ec//9Hf/vY3zZgxw7eAZ05OjmbMmKEZM2Zoy5YtOu+885SVlaX8/HwtWLBAhmHUaX/icrn03Xff1YuzOXO6V1FRkaqrq33tXP71r3/p/PPPb9oHLGnQoEEaP358vZY2V199tTp37qxTTz1VXbp0UX5+vu6++26lpaUpJyenyccHAISOmpqaevNwWFiYr3Xp/m644QYNHDhQX3/9tY455pi2CPGA9o9n3LhxWrp0qSZNmqQHH3xQp512msrKyjR//ny9+eabWrp0qW/B0BtvvFH//e9/ddppp2nOnDkaNmyY4uLi9PXXX+v+++/XggULNHjwYL/FWlJSUu+zjouL88UDdARUogMdzKeffqqdO3fq3HPPrbevX79+6tevX51Kt3/+85/q1KlTnZe3Em1/hmEoNTW1wQXCCgsL9d///rfBijKLxaJzzz23yRV2jz76qJ588km98sorGjhwoI455hh9+umneuONN+r0MTcMQy+//LLmzZunN954QyeffLKOOOII3XnnnRozZoxGjhx5wPNMmzZNzz33nLZu3dqkuAAAOBSBmqO9brzxRr3++uv63//+p2OOOUYDBw7Uyy+/rKeeekoPPfRQnbEPPfSQXn75ZX377bc666yz1KtXL11wwQVyu91atWpVnWR9eXm5jjrqqDqvs88+W1LT53SvPn36qFOnTjr88MN1yy236Morr9QTTzxx4A92P7Nnz663YOjw4cO1evVqXXDBBerdu7fGjh2ryMhIffjhh0pJSWnW8QEAoeG9996rNw8PGzas0fH9+/fXiBEjdPvtt7dhlI3bPx7DMPTqq6/qb3/7mx555BH16dNHJ554orZs2aJPPvmkTgFaRESEli9frptvvlnPPPOMhg4dqj/84Q96/PHHdf3119crBjhUl156ab3PurnzPxBohtnc1YAAAAAAAAAAAAgRVKIDAAAAAAAAANAIkugAAAAAAAAAADSCJDoAAAAAAAAAAI0giQ4AAAAAAAAAQCNIogMAAAAAAAAA0AiS6AAAAAAAAAAANIIkOgAAAAAAAAAAjSCJDgAAAAAAAABAI0iiAwAAAAAAAADQCJLoAAAAAAAAAAA0giQ6AAAAAAAAAACNIIkOAAAAAAAAAEAjSKIDAAAAAAAAANAIkugAAAAAAAAAADSCJDoAAAAAAAAAAI0giQ4AAAAAAAAAQCNIogMAAAAAAAAA0AiS6AgJ3bp10+TJkwMdRtB78MEH1aNHD1mtVg0ePDjQ4QAA2gHm4LbBHAwAAAC0HpLo6HAWLVokwzD09ddfN7j/j3/8owYOHHjI53nnnXd05513HvJxQsWyZct0880364QTTtDChQt17733Njp28uTJio2NPeDxvL/nxl6rV6+WJG3evFmGYeihhx5q8DgPPfSQDMPQ5s2b6+17/fXXNWrUKKWmpio8PFydO3fWhRdeqI8++qje2NzcXF111VXq1q2bIiIilJ6ernPOOUeff/55o9dQWFiom266SX379lV0dLRiYmI0ZMgQ3X333SopKdGSJUtkGIaeeeaZBt9/9dVXy2az6dxzzz3gZ+F9/fGPf/R9vo2NiYyMPODnDgAHwhzcPjVlDv7kk0+aNJcYhiGpZb/rbt261TlOTEyMjj32WL3wwguNxt6c+XXfa3jxxRcbPN4JJ5wgwzAOGltkZKR69eqlmTNnateuXfWOY5qm/vWvf+mkk05SYmKioqOjNWjQIM2ePVsVFRWNXs+B7i0cDocGDRqknj17qqqqqt57N2/erOjoaF1wwQVN/l198sknvnuhxl733Xdfo/ECAACgacICHQDQFjZs2CCLpXl/M3rnnXc0f/58HuKb6KOPPpLFYtGCBQsUHh7ut+POnj1b3bt3r7f98MMPb/ExTdPUZZddpkWLFumoo47S9OnTlZmZqfz8fL3++us67bTT9Pnnn+v444+XJH3++ec688wzJUmXX365+vfvr4KCAi1atEgnnniiHnvsMV133XV1zvHVV1/pzDPPVHl5uSZMmKAhQ4ZIkr7++mvdd999+vTTT7Vs2TItXrxYf/3rX3XOOecoIyPD9/4vv/xSzz77rGbMmKEJEyZo7Nixvn3l5eW6+uqrde655+q8887zbd/3/REREXruuefqXbvVam3x5wYALcEc3PqaMgf369dP//rXv+psmzVrlmJjY/X3v//db7EMHjxYM2bMkCTl5+frueee06RJk1RTU6O//OUvdca2ZH6VpMjISL388suaMGFCne2bN2/WypUrG/2D8b6xVVdXa82aNXr00Ue1YsUKffnll75xLpdLf/7zn/Xqq6/qxBNP1J133qno6Gj973//01133aWlS5fqgw8+qDPvNvXe4tlnn9UJJ5ygOXPm1Ptjx7XXXqvw8HA9/vjjGjNmTJ19L7zwgpYvX17vd9ivXz9fQv7iiy/2fZ77Ouqooxr8PAAAANAMJtDBLFy40JRkfvXVVw3uP/nkk80BAwYc8nmmTp1qBvL/IuXl5QE7d0tceumlZkxMTJPGTpo06aBjD/Z79tq0aZMpyXzwwQcb3P/ggw+aksxNmzbV23bjjTeabre73nteeOEF84svvjBN0zR37dplZmZmmhkZGeavv/5aZ1xlZaV54oknmhaLxfz8889923fv3m0edthhZkZGhrl+/fp6xy8oKDDnzJnjiz86Otq8+OKLffudTqc5ePBgs1u3bmZFRUW99xcXF5uSzDvuuKPBa27K5wsALcEc3D41Zw7e14ABA8yTTz65wX0t+V137drVHD16dJ1tRUVFZmxsrNmvX78621syv3788cemJPO8884zw8LCzOLi4jrvu+eee8yMjAxz2LBhTYrNNE3zpptuMiWZGzdu9G279957TUnmTTfdVG/8m2++aVosFvOMM86os7059xZXX321abPZzJ9++sm3/9///rcpyXzyySfrvdc0D/z/iYPdCwEAAODQ0c4FIWH/fqwOh0N33XWXevXqpcjISKWkpGjYsGFavny5JE87jPnz50tSva83S1JFRYVmzJihrKwsRUREqE+fPnrooYdkmmad81ZVVen6669Xamqq4uLi9Kc//Unbt2+XYRh1quvuvPNOGYahdevW6c9//rOSkpI0bNgwSdIPP/ygyZMnq0ePHoqMjFRmZqYuu+wy7dy5s865vMfYuHGjJkyYoISEBKWlpem2226TaZraunWrxowZo/j4eGVmZurhhx9u0mfndDo1Z84c9ezZUxEREerWrZv+9re/qaamxjfGMAwtXLhQFRUVvs9q0aJFTTp+W6uqqtLcuXPVt29fX6uX/U2cOFHHHnusJOmZZ55RQUGBHnzwQfXs2bPOuKioKC1evFiGYWj27Nm+7c8884y2b9+uefPmqW/fvvWOn5GRoVtvvVWS57/NO++8U6+88orvv7/HH39c3333nZ566ilFR0f77doBIBCYg0N7Dk5LS1Pfvn3122+/1dnekvnVa8yYMYqIiNDSpUvrbH/55Zd14YUXNutbV5mZmZKksDDPF3Srqqr04IMPqnfv3po7d2698WeffbYmTZqk9957z9darrn3FnPnzlVqaqquuuoqmaap8vJy3XjjjcrJydFVV13V5NgBAADQdmjngg6rtLRUO3bsqLfd4XAc9L133nmn5s6dq8svv1zHHnusysrK9PXXX+ubb77R6aefriuvvFJ5eXkNfm3WNE396U9/0scff6wpU6Zo8ODBev/99zVz5kxt375djzzyiG/s5MmT9eqrr2rixIkaOnSoVqxYodGjRzca1wUXXKBevXrp3nvv9SUDli9frt9//12XXnqpMjMztXbtWj377LNau3atVq9eXe9B7aKLLlK/fv1033336b///a/uvvtuJScn65lnntGpp56q+++/Xy+99JJuuukm/eEPf9BJJ510wM/q8ssv1+LFi3X++edrxowZ+uKLLzR37lytX79er7/+uiTpX//6l5599ll9+eWXvhYi3lYoh6qh37NhGEpJSWnR8T777DPt2rVLN954Y5Mest966y1FRkbqwgsvbHB/9+7dNWzYMH300UeqqqpSVFSU3nzzTUVFRen8889vUkzTpk3TSy+9pKuvvlrvvfeebr/9do0bN05nnHFGs65tfw39/yM8PFzx8fGHdFwAYA4OjTlYOrTfteT5Q8C2bduUlJRUZ3tL5lev6OhojRkzRq+88oquvvpqSdL333+vtWvX6rnnntMPP/zQ4DEdDofvWqqrq/Xtt99q3rx5Oumkk3yt4z777DPt3r1bN9xwgy+xvr9LLrlECxcu1Ntvv62hQ4c2+94iISFBjz/+uC644AI999xzWrdunQoLC/Xuu+82mIBvqsrKygZ/V4mJiY1eCwAAAJooYDXwQAt5v158oFdDX+GdNGmS7+cjjzyywa/07quxr82+8cYbpiTz7rvvrrP9/PPPNw3D8H0lec2aNb6v9e5r8uTJ9Vpx3HHHHaakOi09vCorK+tte+WVV0xJ5qefflrvGFdccYVvm9PpNLt06WIahmHed999vu27d+82o6Ki6nwmDfnuu+9MSebll19eZ7v3q88fffSRb1tzWog0p51LQ6+IiAjfuOa2c3nsscdMSebrr7/epFgTExPNI4888oBjrr/+elOS+cMPP5imaZpJSUkHfc/+vvjiC9NisZjJyclmYmKiWVBQ0OjYprRzaeyzGzlyZLPiAoB9MQd3/Dl4X01p59Lc3/WIESPM4uJis7i42Pzxxx/NiRMnmpLMqVOn1hnbkvnV285l6dKl5ttvv20ahmHm5uaapmmaM2fONHv06GGaZuOtZhq6hhNOOMHcsWOHb9yjjz560PuEXbt2+drKmGbz7y28zjrrLDMhIcG0Wq3mrFmzDji2Ke1cGnutWrWqWXEBAACgPkoS0GHNnz9fvXv3rrd9xowZcrlcB3xvYmKi1q5dq19++UW9evVq1nnfeecdWa1WXX/99fXO++9//1vvvvuurr32Wr333nuSpGuuuabOuOuuu67Rr1k39BXefSuvqqurVV5erqFDh0qSvvnmG5144ol1xl9++eW+f1utVh1zzDHatm2bpkyZ4tuemJioPn366Pfffz/otUrS9OnT613rQw89pP/+97865ZRTDniMQ9XQ7/lQFscsKyuTJMXFxTVp/J49ew461rvfe+yysrImH9/r2GOP1VVXXaUnn3xSTz31VJ3FyloiMjJSb731Vr3tqamph3RcAJCYg6XQmIOl5v+uly1bprS0tDrbLr30Uj344IN1trVkft3XiBEjlJycrCVLluimm27SkiVLdMkllxzweMcdd5zuvvtuSVJNTY2+//57Pfjgg/rTn/6kDz74QFFRUdqzZ0+dczclrubeW3jNnz9fffv2VVZWlm677bZmvbchV1xxhS644IJ62/v373/IxwYAAAh1JNHRYR177LE65phj6m1PSkpq8Kus+5o9e7bGjBmj3r17a+DAgTrjjDM0ceJEHXHEEQc975YtW9S5c+d6D0r9+vXz7ff+r8Vi8X092Ovwww9v9Nj7j5WkXbt26a677tKSJUtUVFRUZ19paWm98dnZ2XV+TkhIUGRkZL3kaUJCQr2ervvzXsP+MWdmZioxMdF3ra2psd9zc3m/Hu1tZeJ9SD6YuLi4g47d/4E7Pj6+ycff1x/+8AdJ8sv1Wq1WDR8+/JCPAwANYQ4OjTlYav7v2puodrlc+umnn3T33Xdr9+7dCg8PrzOuJfPrvmw2my644AK9/PLLOvbYY7V161b9+c9/PuDxUlNT68yNo0ePVp8+fXT++efrueee03XXXec714Fia2jeP9h7GpKdna309HQNGDCgzh9sWqpXr17M/QAAAK2EhUURkk466ST99ttvev755zVw4EA999xzOvroo329RAOloQeoCy+8UP/85z911VVX6bXXXtOyZct8FXZut7ve+IaqtBur3Db3W4StMYfSn7O1RUZGSvIs6tWQysrKOuO8C33++OOPTTp+v379tGHDhjqLuO3vhx9+kM1m81VU9u3bVxs3bpTdbm/aRQBACGEO9giGObgh3kT1yJEjNWPGDL344ot644039Nhjj9UZ15L5dX9//vOf9d133+nOO+/UkUce2aKK69NOO02S9Omnn/ri8p77QHFJeyu8m3tvAQAAgI6HJDpCVnJysi699FK98sor2rp1q4444gjdeeedvv2NPbR27dpVeXl59aqNfv75Z99+7/+63W5t2rSpzrhff/21yTHu3r1bH374of7617/qrrvu0rnnnqvTTz9dPXr0aPIxDoX3Gn755Zc62wsLC1VSUuK71kBKS0tTdHS0NmzY0OD+DRs2KDo62lcFOGzYMCUlJemVV145aMsBSTrrrLNUXV2tpUuXNrh/8+bN+t///qdTTz3Vl4A5++yzVVVVpf/7v/9r4VUBQHBjDj64jjAHN8Xo0aN18skn695771VFRYVve0vm1/0NGzZM2dnZ+uSTTw5ahd4Yp9MpSSovL/cdMzExUS+//HKj9wkvvPCC7xq872nOvQUAAAA6HpLoCEn7f4U6NjZWhx9+eJ1qqJiYGElSSUlJnbFnnnmmXC6X/vGPf9TZ/sgjj8gwDI0aNUqSNHLkSEnSk08+WWfcE0880eQ4vdVr+1erPfroo00+xqE488wzGzzfvHnzJHkejAPNarVqxIgReuutt5Sbm1tnX25urt566y2NGDHC91lGR0frlltu0fr163XLLbc0WAn44osv6ssvv5QkXXnllUpPT9fMmTPr9a+trq7WpZdeKtM0dfvtt/u2X3XVVerUqZNmzJihjRs31jt+UVGRrycrAIQa5uCm6QhzcFPdcsst2rlzp/75z3/6trVkft2fYRh6/PHHdccdd2jixIktis27fsiRRx4pyXOfcNNNN2nDhg36+9//Xm/8f//7Xy1atEgjR4709cdv7r0FAAAAOh56oiMk9e/fX3/84x81ZMgQJScn6+uvv9a///1vXXvttb4xQ4YMkSRdf/31GjlypKxWq8aNG6ezzz5bp5xyiv7+979r8+bNOvLII7Vs2TL95z//0Y033qiePXv63j927Fg9+uij2rlzp4YOHaoVK1b4kqpN+Xp2fHy8TjrpJD3wwANyOBw67LDDtGzZsnqVda3lyCOP1KRJk/Tss8+qpKREJ598sr788kstXrxY55xzziEtaOZwOBpMJCcnJ9dZCO7dd9/1VRju6/jjj/dVA957770aOnSojj76aF1xxRXq1q2bNm/erGeffVaGYejee++t896ZM2dq7dq1evjhh/Xxxx/r/PPPV2ZmpgoKCvTGG2/oyy+/1MqVKyVJKSkp+ve//63Ro0fr6KOP1uWXX67+/furoKBAixYt0q+//qrHHntMxx9/vO/4SUlJev3113XmmWdq8ODBmjBhgu+/p2+++UavvPKKcnJyWvzZNYXT6dSLL77Y4L5zzz3Xl6ACgLbGHNw0rTkHt7VRo0Zp4MCBmjdvnqZOnSqbzdai+bUhY8aM0ZgxY5oUx/bt231zo91u1/fff69nnnlGqampuu6663zj/vrXv+rbb7/V/fffr1WrVmns2LGKiorSZ599phdffFH9+vXT4sWL6xy7OfcWreWbb75pcO7v2bNnq993AAAABD0T6GAWLlxoSjK/+uqrBveffPLJ5oABA+ps69q1qzlp0iTfz3fffbd57LHHmomJiWZUVJTZt29f85577jHtdrtvjNPpNK+77jozLS3NNAzD3Pf/Lnv27DGnTZtmdu7c2bTZbGavXr3MBx980HS73XXOW1FRYU6dOtVMTk42Y2NjzXPOOcfcsGGDKcm87777fOPuuOMOU5JZXFxc73q2bdtmnnvuuWZiYqKZkJBgXnDBBWZeXp4pybzjjjsOeoxJkyaZMTExTfqcGuJwOMy77rrL7N69u2mz2cysrCxz1qxZZnV1dZPO05BJkyaZkhp89ezZ0zTNvb/nxl4LFy6sc8z169ebF110kZmenm6GhYWZ6enp5rhx48z169c3Gse///1vc8SIEWZycrIZFhZmdurUybzooovMTz75pN7YTZs2mX/5y1/M7Oxs02azmampqeaf/vQn83//+1+jx8/LyzOnTZtm9u7d24yMjDSjo6PNIUOGmPfcc49ZWlpab/zB/tv2Ki4urvf739eBPl9J5qZNmw54fABoDHNwx5+D9zVgwADz5JNPbnBfS3/Xo0ePbnD8okWLGpy/mzO/fvzxx6Ykc+nSpQe8rsZi23cutFgsZnp6unnxxRebv/76a71juFwuc+HCheYJJ5xgxsfHm5GRkeaAAQPMu+66yywvL2/03M25t/DG1dhntq+pU6fW+f/BvjZt2nTAeX/f//8BAACgZQzTbOKqRgD84rvvvtNRRx2lF198UePHjw90OAAAhAzmYAAA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ut/555+v8ePHKz8/v83n13y77LLLJKnd8y+99NLeXWQAANqwuznIMAzdeeed2rhxowzD0NKlS1vd//jjj9dNN93U4ufm+3o8Hg0bNkz333+/TNNsdd/nn39eRx55pBISEpScnKzjjjtOb731VosxzfN8enq6GhsbW5z74osvor/rh+Obb16vVwcffLCefvrpVr//s88+06mnnqr09HR5PB6NHDlSDz/8sEKhUKuxu3v9cOWVV2rkyJHy+/0t7jN79my5XC6dccYZe7zOUuT1UFvnTj755Nb/4AAAAID9QBEd6IHuuusubd++vcXthhtuiPlxnnrqKU2YMEG5ubn6z3/+oxUrVujJJ59UVVWV/vjHP0qSTNPUhRdeqLvuuks33nijioqK9OGHHyo/P1/HH3+8Xn/99ejj+f1+TZw4UQ888ICuueYaffbZZ1q0aJEmT56sxx57TFu3btXTTz+t3/3ud1q2bFn0fq+88oreeustPf/881qyZEn0Of3nP/+RJK1atSp67NFHH43e79lnn211Hdr78AEAgL3x/TnlkUceUUpKSotjv/rVr2J+zKuvvlrbt2/XqlWrdPvtt2vatGl68sknW4z51a9+pWuvvVYXXHCBvvnmGy1atEjHHHOMzjzzTP35z39u9ZjJycl67bXXWhx75plnNGDAgDYzNM+lK1as0LXXXqvrrrtO8+bNi55/7bXXdNxxx6l///764IMPtHLlSt1444265557dOGFF7Yo+u/p9cOMGTNUU1Oj6dOnR+9TWVmpq6++Wr/97W81a9asFte0f//+rV7bNDv55JNbzfX//Oc/Y/sHAAAAAOyJCaDbmTRpknnmmWe2eW7gwIHmjBkz2r3vBx98YEoyKyoqdnvfzZs3my6Xy7zpppvafJzm+7/00kumJPONN95oNeacc84xMzMzzdraWtM0TfP3v/+9abPZzCVLlrQa6/f7o+Muu+wyc/To0abf7zfLysrMPn36mI8++mhMz0WS+dprr7WZHQCAjvDss8+aqamprY5v2LDBlGR+9dVXrc4dd9xx5o033tjuz6Zpmocffrh59tlnR39esGCBKcn805/+1Orxpk6dajqdTrO4uNg0ze/mxjvuuMOcMGFCdFx9fb2Zmppq/va3vzW//xagvbl0yJAh5oMPPmiapmnW1taamZmZ5jnnnNPq97/xxhumJPOll14yTXPvXz+8//77ptPpND///HPTNCOvbY488kgzEAi0uk97r21293oIAAAA6EisRAfQpldeeUV+v1+33nprm+fT0tIkSbNmzdKwYcN0+umntxrzy1/+Ujt37tTcuXMlSS+++KImTJig0aNHtxrrdDqVmJgoSXr00Ue1c+dO3X333br++ut1yCGH7NNKegAAuhPTNPXxxx9r5cqVcrlc0eP//Oc/lZSUpGuvvbbVfX75y18qEAhEv53V7JJLLtHHH3+s4uJiSdJ//vMfDRo0SIcffvgeM8yZM0fFxcUaN26cJOndd9/Vzp0721xlf/rpp2vYsGHR1d97+/rhxz/+sa6//npNmjRJr7zyil5++WW98MILcjgcu80HAAAAWIEiOtAD3XbbbUpKSmpx+/jjj2N6jDVr1iglJUV9+/bd7bjVq1dr+PDhbZ5rPr569eroYxYUFOzxd6ekpOjZZ5/Vfffdp3fffVfPPvtsi/6te+tnP/tZq+vQXEwAAKCzHXXUUXs1Hz/++ONKSkqS2+3Wscceq3A4rP/+7/+Onl+9erWGDBnSorDeLC8vTykpKdG5tll2drZOOeUUPffcc5Kkv/3tb7riiivazdq/f38lJSXJ5XLptNNO0/Tp03XsscdGf7+kduf7goKCFnP93rx+kKT7779fknThhRfqvvvu26vXCD/01ltvtbrGbe2tAgAAAOwPlnoAPdAtt9wS3WCzWb9+/WJ6DNM097pwbbax+dn+jJOkE044QePHj9eoUaM0cODAvb7f982YMUMTJkxocSwvL2+fHgsAgFj961//alV4vuiii1qNu+iii/Sb3/xGFRUVmj59uo466igdddRRLcbEMoc2u+KKK3TjjTfq4osv1oIFC/TKK6+0+6H6xx9/rOTkZPl8Pi1atEhTpkxRRkaGrrvuupgyxPL6wev16le/+pVuvvlm3XjjjXv3pH7gxz/+sZ544okWxzIyMvbpsQAAAID2UEQHeqCsrCwdeOCBbZ5LSUmRJFVVVUW/Ut2ssrJSqampkqRhw4apqqpK27dv3+1qsmHDhqmoqKjNc83Hhw0bFv1z5cqVe/08HA7Hfn2tOzc3t93rAABAZ8vPz281D3m93lbjUlNTo+NefvllHXjggRo/fnz0g+Bhw4bpk08+kd/vb7Uafdu2baquro7Otd93yimn6JprrtGVV16p008/XZmZme1mHTx4cPR1wcEHH6yFCxfq3nvv1XXXXRd97KKiolbF/ebjI0aMiGbdm9cPzRwOh+x2+z5940ySEhMTmesBAADQ6WjnAvQyQ4cOlc1m0+LFi1scX79+vaqqqqJvlM877zy5XC49+OCDbT5OZWWlpMhXsNesWaM333yz1Zg//vGPyszM1IknnihJ+vnPf6733ntPX331VauxgUBAdXV1+/PUAADo9pKSknTjjTfqV7/6VXTl94UXXqja2lo99dRTrcY/9NBDcjqdOvfcc1udczgcuvTSS/Xhhx/utpVLW+x2uxoaGiRJJ510kjIyMvTHP/6x1bg33nhDa9as0c9+9jNJe//6AQAAAOhOWIkOdFNVVVVaunRpi2PNK8xqampUUlLS4lxCQoJSUlKUnJysq666Sr/85S/lcDg0cuRIbd68WbfddpvGjx8fXWGWn5+vGTNmaMqUKaqurtall16qQYMGacuWLXrhhReUlJSkP/7xj7rwwgv1yiuvaNKkSfrDH/6gn/zkJ6qurtbMmTP1xhtv6JVXXoluGHrTTTfp7bff1k9+8hPdfffdOuaYY5ScnKwvv/xSv//97/XMM89o1KhRHXaNKisrW12H5OTkaB4AAOLRtddeq7vvvlv/+c9/dN5556mwsFA33nijbrnlFvn9fp111lkKBAL6xz/+oUcffVSPPPKI8vPz23ysu+++W7fccstuV6FLUllZmRobG6PtXP7+97/rvPPOkxRZ7f3UU0/pwgsv1DXXXKMpU6YoJSVF8+bN0y233KLzzjtP559/vqS9f/3QUXw+X6u53uFwKCsrq8N+BwAAAEARHeimPvzwQ40ePbrFsSuvvFKSNG3aNE2bNq3FuWuvvVZPPvmkJOnRRx/VAw88oNtuu02bNm1Sbm6uTjzxRN17770tvk59/fXXa9iwYXrooYd09tlnq6GhQYMGDdJPf/pTTZ06VZJkGIZefvllPfLII5oxY4auv/56eTweFRYW6sMPP9TRRx8dfTy32625c+dqxowZeuqpp/SrX/1KCQkJGj58uP77v/9bhxxySIdeo8svv7zVsfvvv1+//vWvO/T3AADQkTIyMnTppZfqzjvv1DnnnCObzaZHHnlEhx56qB5//HHdcccdstvtOvzww/X666/r9NNPb/exXC7XXhWUDzroIEmRAnR+fr6uvfZa3XnnndHz5513nj744APde++9+tGPfqTGxkYNHTpUv/nNb3TTTTfF/Pqho8yZM6dV25iDDjoopvZxAAAAwJ4Y5r7sUgQAAAAAAAAAQC9AT3QAAAAAAAAAANpBER0AAAAAAAAAgHZQRAcAAAAAAAAAoB0U0QEAAAAAAAAAaAdFdAAAAAAAAAAA2kERHQAAAAAAAACAdlBEBwAAAAAAAACgHRTRAQAAAAAAAABoB0V0AAAAAAAAAADaQREdAAAAAAAAAIB2UEQHAAAAAAAAAKAd/w9mItcERC7aWQAAAABJRU5ErkJggg==",
"text/plain": [
"<Figure size 1500x1100 with 5 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"#visualize the numerical data columns\n",
"\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"\n",
"\n",
"df = pd.read_csv('normalized_data.csv')\n",
"\n",
"numerical_columns = ['HAEMATOCRIT', 'HAEMOGLOBINS', 'ERYTHROCYTE', 'LEUCOCYTE', 'THROMBOCYTE']\n",
"\n",
"\n",
"numbins = 20\n",
"\n",
"colors = ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd']\n",
"\n",
"plt.figure(figsize=(15, 11))\n",
"for i, column in enumerate(numerical_columns, 1):\n",
" plt.subplot(2, 3, i)\n",
" plt.title(f'Histogram of {column}')\n",
" sns.histplot(df[column], bins=numbins, kde=True, color=colors[i-1])\n",
" plt.xlabel(column)\n",
" plt.ylabel('Frequency')\n",
"\n",
"plt.tight_layout()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "D3fvYCz9DVMJ"
},
"source": [
"## Show your Preprocssed Data:\n",
"\n",
"Show your preprocessed data comparing to the original data"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "faOIx_qHT_wf"
},
"source": [
"No duplicated or missing fields were found in the dataset. Min-Max normalization has transformed the numerical features into a uniform scale ranging from 0 to 1, facilitating better comparability and typically improving the performance of machine learning algorithms. The data is now normalized to have mean of 0 and std of 1. The categorical variables ('SEX' and 'SOURCE') are not affected by this normalization process."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "Xv2gEk-IDVMJ"
},
"outputs": [],
"source": [
"df_preprocessed = pd.read_csv('normalized_data.csv')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 423
},
"id": "0RIfRYHaDVMJ",
"outputId": "25157e97-7226-4c8c-e437-3e0d91ab77dc"
},
"outputs": [
{
"data": {
"text/html": [
"\n",
" <div id=\"df-9a2fa7be-a9b3-4469-b59f-5d14e4ff2347\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>HAEMATOCRIT</th>\n",
" <th>HAEMOGLOBINS</th>\n",
" <th>ERYTHROCYTE</th>\n",
" <th>LEUCOCYTE</th>\n",
" <th>THROMBOCYTE</th>\n",
" <th>MCH</th>\n",
" <th>MCHC</th>\n",
" <th>MCV</th>\n",
" <th>AGE</th>\n",
" <th>SEX</th>\n",
" <th>SOURCE</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0.483491</td>\n",
" <td>0.533333</td>\n",
" <td>0.458685</td>\n",
" <td>0.1300</td>\n",
" <td>0.365854</td>\n",
" <td>0.458515</td>\n",
" <td>0.666667</td>\n",
" <td>0.425743</td>\n",
" <td>0.0</td>\n",
" <td>F</td>\n",
" <td>out</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0.681604</td>\n",
" <td>0.733333</td>\n",
" <td>0.583474</td>\n",
" <td>0.2900</td>\n",
" <td>0.395122</td>\n",
" <td>0.550218</td>\n",
" <td>0.701754</td>\n",
" <td>0.528713</td>\n",
" <td>0.0</td>\n",
" <td>F</td>\n",
" <td>out</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>0.445755</td>\n",
" <td>0.500000</td>\n",
" <td>0.473862</td>\n",
" <td>0.3025</td>\n",
" <td>0.359756</td>\n",
" <td>0.388646</td>\n",
" <td>0.675439</td>\n",
" <td>0.330693</td>\n",
" <td>0.0</td>\n",
" <td>F</td>\n",
" <td>out</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>0.577830</td>\n",
" <td>0.660000</td>\n",
" <td>0.514334</td>\n",
" <td>0.2350</td>\n",
" <td>0.434146</td>\n",
" <td>0.550218</td>\n",
" <td>0.789474</td>\n",
" <td>0.485149</td>\n",
" <td>0.0</td>\n",
" <td>F</td>\n",
" <td>out</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>0.384434</td>\n",
" <td>0.406667</td>\n",
" <td>0.387858</td>\n",
" <td>0.5250</td>\n",
" <td>0.393902</td>\n",
" <td>0.371179</td>\n",
" <td>0.526316</td>\n",
" <td>0.376238</td>\n",
" <td>0.0</td>\n",
" <td>M</td>\n",
" <td>out</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2995</th>\n",
" <td>0.761792</td>\n",
" <td>0.846667</td>\n",
" <td>0.618887</td>\n",
" <td>0.1775</td>\n",
" <td>0.345122</td>\n",
" <td>0.637555</td>\n",
" <td>0.807018</td>\n",
" <td>0.590099</td>\n",
" <td>1.0</td>\n",
" <td>M</td>\n",
" <td>out</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2996</th>\n",
" <td>0.740566</td>\n",
" <td>0.746667</td>\n",
" <td>0.549747</td>\n",
" <td>0.1450</td>\n",
" <td>0.263415</td>\n",
" <td>0.611354</td>\n",
" <td>0.578947</td>\n",
" <td>0.685149</td>\n",
" <td>1.0</td>\n",
" <td>M</td>\n",
" <td>out</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2997</th>\n",
" <td>0.497642</td>\n",
" <td>0.533333</td>\n",
" <td>0.330523</td>\n",
" <td>0.2125</td>\n",
" <td>0.373171</td>\n",
" <td>0.672489</td>\n",
" <td>0.622807</td>\n",
" <td>0.748515</td>\n",
" <td>1.0</td>\n",
" <td>M</td>\n",
" <td>out</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2998</th>\n",
" <td>0.634434</td>\n",
" <td>0.626667</td>\n",
" <td>0.490725</td>\n",
" <td>0.2075</td>\n",
" <td>0.343902</td>\n",
" <td>0.541485</td>\n",
" <td>0.508772</td>\n",
" <td>0.627723</td>\n",
" <td>1.0</td>\n",
" <td>M</td>\n",
" <td>out</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2999</th>\n",
" <td>0.650943</td>\n",
" <td>0.666667</td>\n",
" <td>0.421585</td>\n",
" <td>0.1350</td>\n",
" <td>0.226829</td>\n",
" <td>0.711790</td>\n",
" <td>0.587719</td>\n",
" <td>0.817822</td>\n",
" <td>1.0</td>\n",
" <td>M</td>\n",
" <td>out</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>3000 rows × 11 columns</p>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-9a2fa7be-a9b3-4469-b59f-5d14e4ff2347')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-9a2fa7be-a9b3-4469-b59f-5d14e4ff2347 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-9a2fa7be-a9b3-4469-b59f-5d14e4ff2347');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
"<div id=\"df-c356b500-21fc-4365-b43b-4ca4923e188c\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-c356b500-21fc-4365-b43b-4ca4923e188c')\"\n",
" title=\"Suggest charts\"\n",
" style=\"display:none;\">\n",
"\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <g>\n",
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
" </g>\n",
"</svg>\n",
" </button>\n",
"\n",
"<style>\n",
" .colab-df-quickchart {\n",
" --bg-color: #E8F0FE;\n",
" --fill-color: #1967D2;\n",
" --hover-bg-color: #E2EBFA;\n",
" --hover-fill-color: #174EA6;\n",
" --disabled-fill-color: #AAA;\n",
" --disabled-bg-color: #DDD;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-quickchart {\n",
" --bg-color: #3B4455;\n",
" --fill-color: #D2E3FC;\n",
" --hover-bg-color: #434B5C;\n",
" --hover-fill-color: #FFFFFF;\n",
" --disabled-bg-color: #3B4455;\n",
" --disabled-fill-color: #666;\n",
" }\n",
"\n",
" .colab-df-quickchart {\n",
" background-color: var(--bg-color);\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: var(--fill-color);\n",
" height: 32px;\n",
" padding: 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-quickchart:hover {\n",
" background-color: var(--hover-bg-color);\n",
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: var(--button-hover-fill-color);\n",
" }\n",
"\n",
" .colab-df-quickchart-complete:disabled,\n",
" .colab-df-quickchart-complete:disabled:hover {\n",
" background-color: var(--disabled-bg-color);\n",
" fill: var(--disabled-fill-color);\n",
" box-shadow: none;\n",
" }\n",
"\n",
" .colab-df-spinner {\n",
" border: 2px solid var(--fill-color);\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" animation:\n",
" spin 1s steps(1) infinite;\n",
" }\n",
"\n",
" @keyframes spin {\n",
" 0% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" border-left-color: var(--fill-color);\n",
" }\n",
" 20% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 30% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 40% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 60% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 80% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" 90% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" }\n",
"</style>\n",
"\n",
" <script>\n",
" async function quickchart(key) {\n",
" const quickchartButtonEl =\n",
" document.querySelector('#' + key + ' button');\n",
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
" try {\n",
" const charts = await google.colab.kernel.invokeFunction(\n",
" 'suggestCharts', [key], {});\n",
" } catch (error) {\n",
" console.error('Error during call to suggestCharts:', error);\n",
" }\n",
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
" }\n",
" (() => {\n",
" let quickchartButtonEl =\n",
" document.querySelector('#df-c356b500-21fc-4365-b43b-4ca4923e188c button');\n",
" quickchartButtonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
" })();\n",
" </script>\n",
"</div>\n",
" </div>\n",
" </div>\n"
],
"text/plain": [
" HAEMATOCRIT HAEMOGLOBINS ERYTHROCYTE LEUCOCYTE THROMBOCYTE \\\n",
"0 0.483491 0.533333 0.458685 0.1300 0.365854 \n",
"1 0.681604 0.733333 0.583474 0.2900 0.395122 \n",
"2 0.445755 0.500000 0.473862 0.3025 0.359756 \n",
"3 0.577830 0.660000 0.514334 0.2350 0.434146 \n",
"4 0.384434 0.406667 0.387858 0.5250 0.393902 \n",
"... ... ... ... ... ... \n",
"2995 0.761792 0.846667 0.618887 0.1775 0.345122 \n",
"2996 0.740566 0.746667 0.549747 0.1450 0.263415 \n",
"2997 0.497642 0.533333 0.330523 0.2125 0.373171 \n",
"2998 0.634434 0.626667 0.490725 0.2075 0.343902 \n",
"2999 0.650943 0.666667 0.421585 0.1350 0.226829 \n",
"\n",
" MCH MCHC MCV AGE SEX SOURCE \n",
"0 0.458515 0.666667 0.425743 0.0 F out \n",
"1 0.550218 0.701754 0.528713 0.0 F out \n",
"2 0.388646 0.675439 0.330693 0.0 F out \n",
"3 0.550218 0.789474 0.485149 0.0 F out \n",
"4 0.371179 0.526316 0.376238 0.0 M out \n",
"... ... ... ... ... .. ... \n",
"2995 0.637555 0.807018 0.590099 1.0 M out \n",
"2996 0.611354 0.578947 0.685149 1.0 M out \n",
"2997 0.672489 0.622807 0.748515 1.0 M out \n",
"2998 0.541485 0.508772 0.627723 1.0 M out \n",
"2999 0.711790 0.587719 0.817822 1.0 M out \n",
"\n",
"[3000 rows x 11 columns]"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_preprocessed"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "lbSS7zJNTqAa"
},
"outputs": [],
"source": [
"df_original = pd.read_csv('/content/drive/MyDrive/dataset_project5.csv')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 423
},
"id": "ldhzcm-NTwmc",
"outputId": "9a43a2b6-988e-4300-c48b-2ad48fa87113"
},
"outputs": [
{
"data": {
"text/html": [
"\n",
" <div id=\"df-cf37290a-aa90-43d3-85d8-2034f1ba5deb\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>HAEMATOCRIT</th>\n",
" <th>HAEMOGLOBINS</th>\n",
" <th>ERYTHROCYTE</th>\n",
" <th>LEUCOCYTE</th>\n",
" <th>THROMBOCYTE</th>\n",
" <th>MCH</th>\n",
" <th>MCHC</th>\n",
" <th>MCV</th>\n",
" <th>AGE</th>\n",
" <th>SEX</th>\n",
" <th>SOURCE</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>35.1</td>\n",
" <td>11.8</td>\n",
" <td>4.65</td>\n",
" <td>6.3</td>\n",
" <td>310</td>\n",
" <td>25.4</td>\n",
" <td>33.6</td>\n",
" <td>75.5</td>\n",
" <td>1</td>\n",
" <td>F</td>\n",
" <td>out</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>43.5</td>\n",
" <td>14.8</td>\n",
" <td>5.39</td>\n",
" <td>12.7</td>\n",
" <td>334</td>\n",
" <td>27.5</td>\n",
" <td>34.0</td>\n",
" <td>80.7</td>\n",
" <td>1</td>\n",
" <td>F</td>\n",
" <td>out</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>33.5</td>\n",
" <td>11.3</td>\n",
" <td>4.74</td>\n",
" <td>13.2</td>\n",
" <td>305</td>\n",
" <td>23.8</td>\n",
" <td>33.7</td>\n",
" <td>70.7</td>\n",
" <td>1</td>\n",
" <td>F</td>\n",
" <td>out</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>39.1</td>\n",
" <td>13.7</td>\n",
" <td>4.98</td>\n",
" <td>10.5</td>\n",
" <td>366</td>\n",
" <td>27.5</td>\n",
" <td>35.0</td>\n",
" <td>78.5</td>\n",
" <td>1</td>\n",
" <td>F</td>\n",
" <td>out</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>30.9</td>\n",
" <td>9.9</td>\n",
" <td>4.23</td>\n",
" <td>22.1</td>\n",
" <td>333</td>\n",
" <td>23.4</td>\n",
" <td>32.0</td>\n",
" <td>73.0</td>\n",
" <td>1</td>\n",
" <td>M</td>\n",
" <td>out</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2995</th>\n",
" <td>46.9</td>\n",
" <td>16.5</td>\n",
" <td>5.60</td>\n",
" <td>8.2</td>\n",
" <td>293</td>\n",
" <td>29.5</td>\n",
" <td>35.2</td>\n",
" <td>83.8</td>\n",
" <td>60</td>\n",
" <td>M</td>\n",
" <td>out</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2996</th>\n",
" <td>46.0</td>\n",
" <td>15.0</td>\n",
" <td>5.19</td>\n",
" <td>6.9</td>\n",
" <td>226</td>\n",
" <td>28.9</td>\n",
" <td>32.6</td>\n",
" <td>88.6</td>\n",
" <td>60</td>\n",
" <td>M</td>\n",
" <td>out</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2997</th>\n",
" <td>35.7</td>\n",
" <td>11.8</td>\n",
" <td>3.89</td>\n",
" <td>9.6</td>\n",
" <td>316</td>\n",
" <td>30.3</td>\n",
" <td>33.1</td>\n",
" <td>91.8</td>\n",
" <td>60</td>\n",
" <td>M</td>\n",
" <td>out</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2998</th>\n",
" <td>41.5</td>\n",
" <td>13.2</td>\n",
" <td>4.84</td>\n",
" <td>9.4</td>\n",
" <td>292</td>\n",
" <td>27.3</td>\n",
" <td>31.8</td>\n",
" <td>85.7</td>\n",
" <td>60</td>\n",
" <td>M</td>\n",
" <td>out</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2999</th>\n",
" <td>42.2</td>\n",
" <td>13.8</td>\n",
" <td>4.43</td>\n",
" <td>6.5</td>\n",
" <td>196</td>\n",
" <td>31.2</td>\n",
" <td>32.7</td>\n",
" <td>95.3</td>\n",
" <td>60</td>\n",
" <td>M</td>\n",
" <td>out</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>3000 rows × 11 columns</p>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-cf37290a-aa90-43d3-85d8-2034f1ba5deb')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-cf37290a-aa90-43d3-85d8-2034f1ba5deb button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-cf37290a-aa90-43d3-85d8-2034f1ba5deb');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
"<div id=\"df-8066a509-7ebe-4822-b102-a51eb20f0e35\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-8066a509-7ebe-4822-b102-a51eb20f0e35')\"\n",
" title=\"Suggest charts\"\n",
" style=\"display:none;\">\n",
"\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <g>\n",
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
" </g>\n",
"</svg>\n",
" </button>\n",
"\n",
"<style>\n",
" .colab-df-quickchart {\n",
" --bg-color: #E8F0FE;\n",
" --fill-color: #1967D2;\n",
" --hover-bg-color: #E2EBFA;\n",
" --hover-fill-color: #174EA6;\n",
" --disabled-fill-color: #AAA;\n",
" --disabled-bg-color: #DDD;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-quickchart {\n",
" --bg-color: #3B4455;\n",
" --fill-color: #D2E3FC;\n",
" --hover-bg-color: #434B5C;\n",
" --hover-fill-color: #FFFFFF;\n",
" --disabled-bg-color: #3B4455;\n",
" --disabled-fill-color: #666;\n",
" }\n",
"\n",
" .colab-df-quickchart {\n",
" background-color: var(--bg-color);\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: var(--fill-color);\n",
" height: 32px;\n",
" padding: 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-quickchart:hover {\n",
" background-color: var(--hover-bg-color);\n",
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: var(--button-hover-fill-color);\n",
" }\n",
"\n",
" .colab-df-quickchart-complete:disabled,\n",
" .colab-df-quickchart-complete:disabled:hover {\n",
" background-color: var(--disabled-bg-color);\n",
" fill: var(--disabled-fill-color);\n",
" box-shadow: none;\n",
" }\n",
"\n",
" .colab-df-spinner {\n",
" border: 2px solid var(--fill-color);\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" animation:\n",
" spin 1s steps(1) infinite;\n",
" }\n",
"\n",
" @keyframes spin {\n",
" 0% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" border-left-color: var(--fill-color);\n",
" }\n",
" 20% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 30% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 40% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 60% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 80% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" 90% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" }\n",
"</style>\n",
"\n",
" <script>\n",
" async function quickchart(key) {\n",
" const quickchartButtonEl =\n",
" document.querySelector('#' + key + ' button');\n",
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
" try {\n",
" const charts = await google.colab.kernel.invokeFunction(\n",
" 'suggestCharts', [key], {});\n",
" } catch (error) {\n",
" console.error('Error during call to suggestCharts:', error);\n",
" }\n",
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
" }\n",
" (() => {\n",
" let quickchartButtonEl =\n",
" document.querySelector('#df-8066a509-7ebe-4822-b102-a51eb20f0e35 button');\n",
" quickchartButtonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
" })();\n",
" </script>\n",
"</div>\n",
" </div>\n",
" </div>\n"
],
"text/plain": [
" HAEMATOCRIT HAEMOGLOBINS ERYTHROCYTE LEUCOCYTE THROMBOCYTE MCH \\\n",
"0 35.1 11.8 4.65 6.3 310 25.4 \n",
"1 43.5 14.8 5.39 12.7 334 27.5 \n",
"2 33.5 11.3 4.74 13.2 305 23.8 \n",
"3 39.1 13.7 4.98 10.5 366 27.5 \n",
"4 30.9 9.9 4.23 22.1 333 23.4 \n",
"... ... ... ... ... ... ... \n",
"2995 46.9 16.5 5.60 8.2 293 29.5 \n",
"2996 46.0 15.0 5.19 6.9 226 28.9 \n",
"2997 35.7 11.8 3.89 9.6 316 30.3 \n",
"2998 41.5 13.2 4.84 9.4 292 27.3 \n",
"2999 42.2 13.8 4.43 6.5 196 31.2 \n",
"\n",
" MCHC MCV AGE SEX SOURCE \n",
"0 33.6 75.5 1 F out \n",
"1 34.0 80.7 1 F out \n",
"2 33.7 70.7 1 F out \n",
"3 35.0 78.5 1 F out \n",
"4 32.0 73.0 1 M out \n",
"... ... ... ... .. ... \n",
"2995 35.2 83.8 60 M out \n",
"2996 32.6 88.6 60 M out \n",
"2997 33.1 91.8 60 M out \n",
"2998 31.8 85.7 60 M out \n",
"2999 32.7 95.3 60 M out \n",
"\n",
"[3000 rows x 11 columns]"
]
},
"execution_count": 128,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_original"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "YMu0z-3TDVMJ"
},
"source": [
"# V. Preparation of Learning Data"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "aQoQ-T1KDVMJ"
},
"source": [
"## Split the Data:\n",
"Divide the dataset into learning, training and testing datasets."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "ttUE0p-cDVMK"
},
"outputs": [],
"source": [
"df = pd.read_csv('/content/normalized_data.csv')\n",
"df['SEX'] = df['SEX'].apply(lambda x: 1 if x == 'M' else 0)\n",
"df['SOURCE'] = df['SOURCE'].apply(lambda x: 1 if x == 'out' else 0)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "5tVP_cQvDVMK"
},
"outputs": [],
"source": [
"x_train, x_test, y_train, y_test = train_test_split(df[['HAEMATOCRIT','HAEMOGLOBINS', 'ERYTHROCYTE', 'LEUCOCYTE','THROMBOCYTE', 'MCH','MCHC',\t'MCV'\t,'AGE', 'SEX']], df['SOURCE'], test_size = .25)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "2TULcNcFDVMK"
},
"source": [
"# VI. Tasks to do if Data Augmentation is Relevant to your Project"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "96ioEfPeDVMK"
},
"source": [
"## Select your Data Augmentation Methods:\n",
"\n",
"There are the diverse kinds of Data Augmentation methods. The below are some methods that you might utilize.\n",
"1. Feature Crossing: This method combines multiple features to form a new composite feature, facilitating the capture of complex interactions between variables that may be predictive of outcomes.\n",
"2. Polynomial Features: This method entails generating additional features by elevating existing features to various powers and creating interaction terms, enhancing the model's ability to discern intricate patterns in the data.\n",
"3. Sample Interpolation: This method produces new data points by interpolating between existing samples, thus enriching the dataset with a broader spectrum of variations and nuances.\n",
"4. Adding Noise: This process introduces stochastic variations to the data, aiding in the development of more resilient models by reducing the likelihood of overfitting to the training dataset.\n",
"5. Random Sampling with Replacement: This method involves creating augmented datasets by randomly selecting and potentially reselecting samples from the original dataset, thereby amplifying the heterogeneity and representativeness of the training data.\n",
"\n",
"Choose appropriate Data Augmentation methods based on the nature of the data and the problem at hand.\n",
"List the methods that you will use providing a short derscription of each."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "0YO_M818DVMK"
},
"source": [
"**SMOTE-NC (Synthetic Minority Over-sampling Technique for Nominal and Continuous variables)**\n",
"\n",
"**Purpose**: To balance the dataset by generating synthetic samples, particularly useful when dealing with imbalanced classes.\n",
"\n",
"**Description**: This method is an extension of the standard SMOTE, designed to handle a mix of nominal (categorical) and continuous features. It synthesizes new samples for the minority class by interpolating between existing minority samples for continuous features, while using the most frequent category for nominal features. This approach enhances the representation of underrepresented classes in the dataset, potentially leading to better model performance, especially in classification tasks.\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "TEWbc3SWDVMK"
},
"source": [
"**Sampling Without Noise**\n",
"\n",
"In this augmentation technique we utilize the Variational Auto Encoder to identify the underlying distribution of both the prediction classes (In and Out) separately after which we sample some data points out of this distribution and create a new dataset.\n",
"\n",
"**Purpose:** To generate new, diverse samples based on the underlying distribution of the data.\n",
"\n",
"**Description:** This method employs a Variational Auto Encoder (VAE) to learn the distribution of the data for each class ('In' and 'Out'). After training, the VAE is used to sample new data points from these distributions. This technique helps in creating a dataset that captures the inherent variability of each class without introducing additional noise, thereby enriching the dataset and potentially improving the robustness of predictive models."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "VPvLzpVMwpRX"
},
"source": [
"**Sampling With Noise**\n",
"\n",
"In this augmentation technique we utilize the Variational Auto Encoder to identify the underlying distribution of both the prediction classes (In and Out) separately after which we sample some data points out of this distribution while also adding some noise to make our model more robust towards the unseen data.\n",
"\n",
"**Purpose:** To augment the dataset with new samples that include stochastic variations.\n",
"\n",
"**Description:** Similar to the previous method, this approach also uses a Variational Auto Encoder. However, in this case, after identifying the underlying distribution of each class, the method introduces random noise to the sampled data points. This process generates a dataset that not only reflects the original data’s variability but also includes additional randomness. This augmentation is particularly useful for enhancing the model's generalizability and reducing overfitting, as it trains the model to handle data with variations that might be encountered in real-world scenarios."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "PkVe_HvOPmz3"
},
"source": [
"**Architecture of Variational Auto Encoder**"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "moIUAoqzPeS8"
},
"source": [
""
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "Z8QIMeJsDVML"
},
"source": [
"## Apply Data Augmentation Methods:\n",
"\n",
"Implement the Data Augmentation methods."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "estmir-p5Ed1",
"outputId": "60805ccd-9f0e-4eee-c45a-21d7168f7dd3"
},
"outputs": [
{
"data": {
"text/plain": [
"1 1874\n",
"0 1126\n",
"Name: SOURCE, dtype: int64"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['SOURCE'].value_counts()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "AzON-o9hDVML"
},
"outputs": [],
"source": [
"# Technique - 1 (Using SMOTENC)\n",
"\n",
"import pandas as pd\n",
"from imblearn.over_sampling import SMOTENC\n",
"\n",
"# Load your dataset\n",
"data = pd.read_csv(\"/content/drive/MyDrive/dataset_project5.csv\")\n",
"\n",
"# Encode 'SEX' column\n",
"data['SEX'] = data['SEX'].apply(lambda x: 1 if x == 'M' else 0)\n",
"\n",
"# Specify the index of the categorical feature ('SEX' in this case)\n",
"categorical_indices = [9] # Index 9 corresponds to the 'SEX' column\n",
"\n",
"# Separate your features (X) and the target variable (y)\n",
"X = data.drop(columns=['SOURCE'])\n",
"y = data['SOURCE']\n",
"\n",
"# Apply SMOTENC to generate synthetic samples\n",
"smotenc = SMOTENC(sampling_strategy='auto', categorical_features=categorical_indices, random_state=42)\n",
"X_resampled, y_resampled = smotenc.fit_resample(X, y)\n",
"\n",
"# Create a new DataFrame from the resampled data\n",
"new_data = pd.concat([X_resampled, y_resampled], axis=1)\n",
"\n",
"# Decode 'SEX' column\n",
"data['SEX'] = data['SEX'].apply(lambda x: 'M' if x == 1 else 'F')\n",
"new_data['SEX'] = new_data['SEX'].apply(lambda x: 'M' if x == 1 else 'F')\n",
"\n",
"# Append the new data to the existing dataset\n",
"augmented_data = pd.concat([data, new_data[:]], ignore_index=True)\n",
"\n",
"# Save the new dataset to a CSV file\n",
"# df = pd.concat([data,augmented_data],axis=0)\n",
"augmented_data.to_csv(\"augmented_dataset_nc.csv\", index=False)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "Na2DQdvO4zsQ"
},
"outputs": [],
"source": [
"# Technique - 2 (Using Sampling with and without noise)\n",
"def augment(df,target):\n",
" device = 'cuda' if torch.cuda.is_available() else 'cpu'\n",
" X_train, X_test, y_train, y_test = mlp.split_df(df, dep_var='SOURCE', test_size=0.3, split_mode='random')\n",
"\n",
" x_scaler = StandardScaler()\n",
"\n",
" X_train_scaled = x_scaler.fit_transform(X_train)\n",
"\n",
" X_test_scaled = x_scaler.transform(X_test)\n",
"\n",
" X_train_fraud = X_train_scaled[np.where(y_train==target)[0]]\n",
" X_test_fraud = X_test_scaled[np.where(y_test==target)[0]]\n",
"\n",
" datasets = dta.create_datasets(X_train_fraud, y_train.values[np.where(y_train==target)], X_test_fraud, y_test.values[np.where(y_test==target)])\n",
" data = dta.DataBunch(*dta.create_loaders(datasets, bs=1024, device=device))\n",
"\n",
" D_in = X_train_fraud.shape[1]\n",
" VAE_arch = [50, 12, 12]\n",
" target_name = 'SOURCE'\n",
" target_class = target\n",
" df_cols = list(df.columns)\n",
"\n",
" model = dta.Autoencoder(D_in, VAE_arch, latent_dim=5).to(device)\n",
" opt = optim.Adam(model.parameters(), lr=0.01)\n",
" loss_func = dta.customLoss()\n",
"\n",
" learn = dta.Learner(model, opt, loss_func, data, target_name, target_class, df_cols)\n",
"\n",
" run = dta.Runner(cb_funcs=[dta.LR_Find, dta.Recorder])\n",
"\n",
" run.fit(100, learn)\n",
"\n",
" sched = dta.combine_scheds([0.3, 0.7], [dta.sched_cos(0.01, 0.1), dta.sched_cos(0.1, 0.01)])\n",
"\n",
"\n",
" cbfs = [partial(dta.LossTracker, show_every=50), dta.Recorder, partial(dta.ParamScheduler, 'lr', sched)]\n",
" model = dta.Autoencoder(D_in, VAE_arch, latent_dim=20).to(device)\n",
" opt = optim.Adam(model.parameters(), lr=0.01)\n",
" learn = dta.Learner(model, opt, loss_func, data, target_name, target_class, df_cols)\n",
" run = dta.Runner(cb_funcs=cbfs)\n",
" run.fit(400, learn)\n",
"\n",
" df_fake = run.predict_df(learn, no_samples=1000, scaler=x_scaler)\n",
" std_list = list(df[df['SOURCE']==0][df_cols].std()/10)\n",
" df_fake_with_noise = run.predict_with_noise_df(learn, no_samples=1000, mu=0, sigma=std_list, scaler=x_scaler)\n",
" # df_fake_with_noise.head()\n",
" return df_fake, df_fake_with_noise"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "_AAMhZvE1mqN",
"outputId": "c1c67b5a-636e-4afe-f076-8039b8c2ad1b"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"epoch: 50\n",
"train loss is: 4.7901482582092285\n",
"validation loss is: 1.4795019626617432\n",
"epoch: 100\n",
"train loss is: 1.6484171152114868\n",
"validation loss is: 1.2771100997924805\n",
"epoch: 150\n",
"train loss is: 1.3784812688827515\n",
"validation loss is: 1.2328296899795532\n",
"epoch: 200\n",
"train loss is: 1.2864429950714111\n",
"validation loss is: 1.2202953100204468\n",
"epoch: 250\n",
"train loss is: 1.2400563955307007\n",
"validation loss is: 1.2139017581939697\n",
"epoch: 300\n",
"train loss is: 1.2121505737304688\n",
"validation loss is: 1.210039496421814\n",
"epoch: 350\n",
"train loss is: 1.1934934854507446\n",
"validation loss is: 1.2074527740478516\n",
"epoch: 400\n",
"train loss is: 1.1801522970199585\n",
"validation loss is: 1.2056119441986084\n"
]
}
],
"source": [
"df = pd.read_csv('/content/drive/MyDrive/dataset_project5.csv')\n",
"df['SEX'] = df['SEX'].apply(lambda x: 1 if x == 'M' else 0)\n",
"df['SOURCE'] = df['SOURCE'].apply(lambda x: 1 if x == 'out' else 0)\n",
"# training variational auto encoder and getting newly generated data from it.\n",
"df_fake_0, df_fake_with_noise_0 = augment(df, 0)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "E9tsoTp91mqO",
"outputId": "15148668-a8c3-4f65-88f1-3f45f19ea7c1"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"epoch: 50\n",
"train loss is: 4.319601535797119\n",
"validation loss is: 1.2296693325042725\n",
"epoch: 100\n",
"train loss is: 1.2216730117797852\n",
"validation loss is: 0.9293572902679443\n",
"epoch: 150\n",
"train loss is: 1.0578830242156982\n",
"validation loss is: 0.9278787970542908\n",
"epoch: 200\n",
"train loss is: 1.0036784410476685\n",
"validation loss is: 0.927238941192627\n",
"epoch: 250\n",
"train loss is: 0.977380096912384\n",
"validation loss is: 0.9270079731941223\n",
"epoch: 300\n",
"train loss is: 0.9602593779563904\n",
"validation loss is: 0.9268302917480469\n",
"epoch: 350\n",
"train loss is: 0.9491775631904602\n",
"validation loss is: 0.9266623258590698\n",
"epoch: 400\n",
"train loss is: 0.940941333770752\n",
"validation loss is: 0.9265474677085876\n"
]
}
],
"source": [
"# training variational auto encoder and getting newly generated data from it.\n",
"df_fake_1, df_fake_with_noise_1 = augment(df, 1)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "xChdAqPSw-4r"
},
"outputs": [],
"source": [
"df_fake_1['SEX'], df_fake_with_noise_1['SEX'] = df_fake_1['SEX'].apply(lambda x: round(x)), df_fake_with_noise_1['SEX'].apply(lambda x: round(x))\n",
"df_fake_0['SEX'], df_fake_with_noise_0['SEX'] = df_fake_0['SEX'].apply(lambda x: round(x)), df_fake_with_noise_0['SEX'].apply(lambda x: round(x))"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "j6E_bKN7DVML"
},
"source": [
"## Show your Augmented Data:\n",
"\n",
"Show your generated new data comparing to original data"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 320
},
"id": "uzFKifXsDVML",
"outputId": "78333e41-fdda-4e12-de38-d368cf468816"
},
"outputs": [
{
"data": {
"text/html": [
"\n",
" <div id=\"df-15685d42-28f0-4d34-beca-a291789af58c\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>HAEMATOCRIT</th>\n",
" <th>HAEMOGLOBINS</th>\n",
" <th>ERYTHROCYTE</th>\n",
" <th>LEUCOCYTE</th>\n",
" <th>THROMBOCYTE</th>\n",
" <th>MCH</th>\n",
" <th>MCHC</th>\n",
" <th>MCV</th>\n",
" <th>AGE</th>\n",
" <th>SEX</th>\n",
" <th>SOURCE</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>3000.000000</td>\n",
" <td>3000.000000</td>\n",
" <td>3000.000000</td>\n",
" <td>3000.000000</td>\n",
" <td>3000.000000</td>\n",
" <td>3000.000000</td>\n",
" <td>3000.000000</td>\n",
" <td>3000.000000</td>\n",
" <td>3000.000000</td>\n",
" <td>3000.000000</td>\n",
" <td>3000.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>39.249800</td>\n",
" <td>13.090467</td>\n",
" <td>4.734303</td>\n",
" <td>8.121800</td>\n",
" <td>256.353333</td>\n",
" <td>27.774800</td>\n",
" <td>33.314867</td>\n",
" <td>83.279267</td>\n",
" <td>35.061000</td>\n",
" <td>0.510000</td>\n",
" <td>0.624667</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>5.614139</td>\n",
" <td>2.004291</td>\n",
" <td>0.724817</td>\n",
" <td>4.564886</td>\n",
" <td>110.472352</td>\n",
" <td>2.650355</td>\n",
" <td>1.213204</td>\n",
" <td>6.544982</td>\n",
" <td>15.687617</td>\n",
" <td>0.499983</td>\n",
" <td>0.484290</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>14.600000</td>\n",
" <td>3.800000</td>\n",
" <td>1.930000</td>\n",
" <td>1.100000</td>\n",
" <td>10.000000</td>\n",
" <td>14.900000</td>\n",
" <td>26.000000</td>\n",
" <td>54.000000</td>\n",
" <td>1.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>35.800000</td>\n",
" <td>11.900000</td>\n",
" <td>4.290000</td>\n",
" <td>5.300000</td>\n",
" <td>187.000000</td>\n",
" <td>26.600000</td>\n",
" <td>32.700000</td>\n",
" <td>80.400000</td>\n",
" <td>24.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>39.500000</td>\n",
" <td>13.200000</td>\n",
" <td>4.740000</td>\n",
" <td>7.100000</td>\n",
" <td>257.000000</td>\n",
" <td>28.300000</td>\n",
" <td>33.400000</td>\n",
" <td>84.400000</td>\n",
" <td>36.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>43.300000</td>\n",
" <td>14.500000</td>\n",
" <td>5.200000</td>\n",
" <td>9.700000</td>\n",
" <td>322.000000</td>\n",
" <td>29.500000</td>\n",
" <td>34.100000</td>\n",
" <td>87.400000</td>\n",
" <td>48.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>57.000000</td>\n",
" <td>18.800000</td>\n",
" <td>7.860000</td>\n",
" <td>41.100000</td>\n",
" <td>830.000000</td>\n",
" <td>37.800000</td>\n",
" <td>37.400000</td>\n",
" <td>104.500000</td>\n",
" <td>60.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-15685d42-28f0-4d34-beca-a291789af58c')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-15685d42-28f0-4d34-beca-a291789af58c button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-15685d42-28f0-4d34-beca-a291789af58c');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
"<div id=\"df-dd64c284-e5b8-45be-894e-8d0b52e8cae0\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-dd64c284-e5b8-45be-894e-8d0b52e8cae0')\"\n",
" title=\"Suggest charts\"\n",
" style=\"display:none;\">\n",
"\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <g>\n",
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
" </g>\n",
"</svg>\n",
" </button>\n",
"\n",
"<style>\n",
" .colab-df-quickchart {\n",
" --bg-color: #E8F0FE;\n",
" --fill-color: #1967D2;\n",
" --hover-bg-color: #E2EBFA;\n",
" --hover-fill-color: #174EA6;\n",
" --disabled-fill-color: #AAA;\n",
" --disabled-bg-color: #DDD;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-quickchart {\n",
" --bg-color: #3B4455;\n",
" --fill-color: #D2E3FC;\n",
" --hover-bg-color: #434B5C;\n",
" --hover-fill-color: #FFFFFF;\n",
" --disabled-bg-color: #3B4455;\n",
" --disabled-fill-color: #666;\n",
" }\n",
"\n",
" .colab-df-quickchart {\n",
" background-color: var(--bg-color);\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: var(--fill-color);\n",
" height: 32px;\n",
" padding: 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-quickchart:hover {\n",
" background-color: var(--hover-bg-color);\n",
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: var(--button-hover-fill-color);\n",
" }\n",
"\n",
" .colab-df-quickchart-complete:disabled,\n",
" .colab-df-quickchart-complete:disabled:hover {\n",
" background-color: var(--disabled-bg-color);\n",
" fill: var(--disabled-fill-color);\n",
" box-shadow: none;\n",
" }\n",
"\n",
" .colab-df-spinner {\n",
" border: 2px solid var(--fill-color);\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" animation:\n",
" spin 1s steps(1) infinite;\n",
" }\n",
"\n",
" @keyframes spin {\n",
" 0% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" border-left-color: var(--fill-color);\n",
" }\n",
" 20% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 30% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 40% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 60% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 80% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" 90% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" }\n",
"</style>\n",
"\n",
" <script>\n",
" async function quickchart(key) {\n",
" const quickchartButtonEl =\n",
" document.querySelector('#' + key + ' button');\n",
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
" try {\n",
" const charts = await google.colab.kernel.invokeFunction(\n",
" 'suggestCharts', [key], {});\n",
" } catch (error) {\n",
" console.error('Error during call to suggestCharts:', error);\n",
" }\n",
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
" }\n",
" (() => {\n",
" let quickchartButtonEl =\n",
" document.querySelector('#df-dd64c284-e5b8-45be-894e-8d0b52e8cae0 button');\n",
" quickchartButtonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
" })();\n",
" </script>\n",
"</div>\n",
" </div>\n",
" </div>\n"
],
"text/plain": [
" HAEMATOCRIT HAEMOGLOBINS ERYTHROCYTE LEUCOCYTE THROMBOCYTE \\\n",
"count 3000.000000 3000.000000 3000.000000 3000.000000 3000.000000 \n",
"mean 39.249800 13.090467 4.734303 8.121800 256.353333 \n",
"std 5.614139 2.004291 0.724817 4.564886 110.472352 \n",
"min 14.600000 3.800000 1.930000 1.100000 10.000000 \n",
"25% 35.800000 11.900000 4.290000 5.300000 187.000000 \n",
"50% 39.500000 13.200000 4.740000 7.100000 257.000000 \n",
"75% 43.300000 14.500000 5.200000 9.700000 322.000000 \n",
"max 57.000000 18.800000 7.860000 41.100000 830.000000 \n",
"\n",
" MCH MCHC MCV AGE SEX \\\n",
"count 3000.000000 3000.000000 3000.000000 3000.000000 3000.000000 \n",
"mean 27.774800 33.314867 83.279267 35.061000 0.510000 \n",
"std 2.650355 1.213204 6.544982 15.687617 0.499983 \n",
"min 14.900000 26.000000 54.000000 1.000000 0.000000 \n",
"25% 26.600000 32.700000 80.400000 24.000000 0.000000 \n",
"50% 28.300000 33.400000 84.400000 36.000000 1.000000 \n",
"75% 29.500000 34.100000 87.400000 48.000000 1.000000 \n",
"max 37.800000 37.400000 104.500000 60.000000 1.000000 \n",
"\n",
" SOURCE \n",
"count 3000.000000 \n",
"mean 0.624667 \n",
"std 0.484290 \n",
"min 0.000000 \n",
"25% 0.000000 \n",
"50% 1.000000 \n",
"75% 1.000000 \n",
"max 1.000000 "
]
},
"execution_count": 47,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df = pd.read_csv('/content/drive/MyDrive/dataset_project5.csv')\n",
"df['SEX'] = df['SEX'].apply(lambda x: 1 if x == 'M' else 0)\n",
"df['SOURCE'] = df['SOURCE'].apply(lambda x: 1 if x == 'out' else 0)\n",
"df.describe()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 300
},
"id": "YamKScUe7EMI",
"outputId": "b1ddc360-3637-4a90-ee69-bfdc8722421b"
},
"outputs": [
{
"data": {
"text/html": [
"\n",
" <div id=\"df-9cae05ec-bf49-40a8-b7b1-a36aa6cf3888\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>HAEMATOCRIT</th>\n",
" <th>HAEMOGLOBINS</th>\n",
" <th>ERYTHROCYTE</th>\n",
" <th>LEUCOCYTE</th>\n",
" <th>THROMBOCYTE</th>\n",
" <th>MCH</th>\n",
" <th>MCHC</th>\n",
" <th>MCV</th>\n",
" <th>AGE</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>3748.000000</td>\n",
" <td>3748.000000</td>\n",
" <td>3748.000000</td>\n",
" <td>3748.000000</td>\n",
" <td>3748.000000</td>\n",
" <td>3748.000000</td>\n",
" <td>3748.000000</td>\n",
" <td>3748.000000</td>\n",
" <td>3748.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>38.908037</td>\n",
" <td>12.979661</td>\n",
" <td>4.690431</td>\n",
" <td>8.146612</td>\n",
" <td>247.483458</td>\n",
" <td>27.790884</td>\n",
" <td>33.323695</td>\n",
" <td>83.310417</td>\n",
" <td>35.545358</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>5.599284</td>\n",
" <td>1.994607</td>\n",
" <td>0.719609</td>\n",
" <td>4.653235</td>\n",
" <td>114.571778</td>\n",
" <td>2.576238</td>\n",
" <td>1.181944</td>\n",
" <td>6.358552</td>\n",
" <td>15.593749</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>14.600000</td>\n",
" <td>3.800000</td>\n",
" <td>1.930000</td>\n",
" <td>1.100000</td>\n",
" <td>10.000000</td>\n",
" <td>14.900000</td>\n",
" <td>26.000000</td>\n",
" <td>54.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>35.400000</td>\n",
" <td>11.724087</td>\n",
" <td>4.244771</td>\n",
" <td>5.200000</td>\n",
" <td>168.000000</td>\n",
" <td>26.700000</td>\n",
" <td>32.700000</td>\n",
" <td>80.500000</td>\n",
" <td>25.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>39.200000</td>\n",
" <td>13.100000</td>\n",
" <td>4.690000</td>\n",
" <td>7.100000</td>\n",
" <td>251.000000</td>\n",
" <td>28.300000</td>\n",
" <td>33.400000</td>\n",
" <td>84.400000</td>\n",
" <td>36.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>42.900000</td>\n",
" <td>14.400000</td>\n",
" <td>5.152500</td>\n",
" <td>9.800000</td>\n",
" <td>318.000000</td>\n",
" <td>29.476046</td>\n",
" <td>34.100000</td>\n",
" <td>87.346737</td>\n",
" <td>49.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>57.000000</td>\n",
" <td>18.800000</td>\n",
" <td>7.860000</td>\n",
" <td>41.100000</td>\n",
" <td>830.000000</td>\n",
" <td>37.800000</td>\n",
" <td>37.400000</td>\n",
" <td>104.500000</td>\n",
" <td>60.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-9cae05ec-bf49-40a8-b7b1-a36aa6cf3888')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-9cae05ec-bf49-40a8-b7b1-a36aa6cf3888 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-9cae05ec-bf49-40a8-b7b1-a36aa6cf3888');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
"<div id=\"df-36ccf28c-cd77-4fdc-983f-96713f12b497\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-36ccf28c-cd77-4fdc-983f-96713f12b497')\"\n",
" title=\"Suggest charts\"\n",
" style=\"display:none;\">\n",
"\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <g>\n",
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
" </g>\n",
"</svg>\n",
" </button>\n",
"\n",
"<style>\n",
" .colab-df-quickchart {\n",
" --bg-color: #E8F0FE;\n",
" --fill-color: #1967D2;\n",
" --hover-bg-color: #E2EBFA;\n",
" --hover-fill-color: #174EA6;\n",
" --disabled-fill-color: #AAA;\n",
" --disabled-bg-color: #DDD;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-quickchart {\n",
" --bg-color: #3B4455;\n",
" --fill-color: #D2E3FC;\n",
" --hover-bg-color: #434B5C;\n",
" --hover-fill-color: #FFFFFF;\n",
" --disabled-bg-color: #3B4455;\n",
" --disabled-fill-color: #666;\n",
" }\n",
"\n",
" .colab-df-quickchart {\n",
" background-color: var(--bg-color);\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: var(--fill-color);\n",
" height: 32px;\n",
" padding: 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-quickchart:hover {\n",
" background-color: var(--hover-bg-color);\n",
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: var(--button-hover-fill-color);\n",
" }\n",
"\n",
" .colab-df-quickchart-complete:disabled,\n",
" .colab-df-quickchart-complete:disabled:hover {\n",
" background-color: var(--disabled-bg-color);\n",
" fill: var(--disabled-fill-color);\n",
" box-shadow: none;\n",
" }\n",
"\n",
" .colab-df-spinner {\n",
" border: 2px solid var(--fill-color);\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" animation:\n",
" spin 1s steps(1) infinite;\n",
" }\n",
"\n",
" @keyframes spin {\n",
" 0% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" border-left-color: var(--fill-color);\n",
" }\n",
" 20% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 30% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 40% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 60% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 80% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" 90% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" }\n",
"</style>\n",
"\n",
" <script>\n",
" async function quickchart(key) {\n",
" const quickchartButtonEl =\n",
" document.querySelector('#' + key + ' button');\n",
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
" try {\n",
" const charts = await google.colab.kernel.invokeFunction(\n",
" 'suggestCharts', [key], {});\n",
" } catch (error) {\n",
" console.error('Error during call to suggestCharts:', error);\n",
" }\n",
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
" }\n",
" (() => {\n",
" let quickchartButtonEl =\n",
" document.querySelector('#df-36ccf28c-cd77-4fdc-983f-96713f12b497 button');\n",
" quickchartButtonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
" })();\n",
" </script>\n",
"</div>\n",
" </div>\n",
" </div>\n"
],
"text/plain": [
" HAEMATOCRIT HAEMOGLOBINS ERYTHROCYTE LEUCOCYTE THROMBOCYTE \\\n",
"count 3748.000000 3748.000000 3748.000000 3748.000000 3748.000000 \n",
"mean 38.908037 12.979661 4.690431 8.146612 247.483458 \n",
"std 5.599284 1.994607 0.719609 4.653235 114.571778 \n",
"min 14.600000 3.800000 1.930000 1.100000 10.000000 \n",
"25% 35.400000 11.724087 4.244771 5.200000 168.000000 \n",
"50% 39.200000 13.100000 4.690000 7.100000 251.000000 \n",
"75% 42.900000 14.400000 5.152500 9.800000 318.000000 \n",
"max 57.000000 18.800000 7.860000 41.100000 830.000000 \n",
"\n",
" MCH MCHC MCV AGE \n",
"count 3748.000000 3748.000000 3748.000000 3748.000000 \n",
"mean 27.790884 33.323695 83.310417 35.545358 \n",
"std 2.576238 1.181944 6.358552 15.593749 \n",
"min 14.900000 26.000000 54.000000 1.000000 \n",
"25% 26.700000 32.700000 80.500000 25.000000 \n",
"50% 28.300000 33.400000 84.400000 36.000000 \n",
"75% 29.476046 34.100000 87.346737 49.000000 \n",
"max 37.800000 37.400000 104.500000 60.000000 "
]
},
"execution_count": 48,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Data after SMOTE-NC\n",
"new_data.describe()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 320
},
"id": "PjjC0rn_7rb3",
"outputId": "6ced5f07-e443-466e-dc61-f7cdc9f0fe74"
},
"outputs": [
{
"data": {
"text/html": [
"\n",
" <div id=\"df-fb462d2c-6f6c-4e33-a648-2e26c344f83b\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>HAEMATOCRIT</th>\n",
" <th>HAEMOGLOBINS</th>\n",
" <th>ERYTHROCYTE</th>\n",
" <th>LEUCOCYTE</th>\n",
" <th>THROMBOCYTE</th>\n",
" <th>MCH</th>\n",
" <th>MCHC</th>\n",
" <th>MCV</th>\n",
" <th>AGE</th>\n",
" <th>SEX</th>\n",
" <th>SOURCE</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>1126.000000</td>\n",
" <td>1126.000000</td>\n",
" <td>1126.000000</td>\n",
" <td>1126.000000</td>\n",
" <td>1126.000000</td>\n",
" <td>1126.000000</td>\n",
" <td>1126.000000</td>\n",
" <td>1126.000000</td>\n",
" <td>1126.000000</td>\n",
" <td>1126.000000</td>\n",
" <td>1126.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>37.541563</td>\n",
" <td>12.514121</td>\n",
" <td>4.548943</td>\n",
" <td>8.419716</td>\n",
" <td>210.713144</td>\n",
" <td>27.648046</td>\n",
" <td>33.297957</td>\n",
" <td>82.942274</td>\n",
" <td>36.547957</td>\n",
" <td>0.519538</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>5.854355</td>\n",
" <td>2.067833</td>\n",
" <td>0.772000</td>\n",
" <td>5.499211</td>\n",
" <td>123.979792</td>\n",
" <td>2.621360</td>\n",
" <td>1.257908</td>\n",
" <td>6.400749</td>\n",
" <td>15.894902</td>\n",
" <td>0.499840</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>16.700000</td>\n",
" <td>4.600000</td>\n",
" <td>2.150000</td>\n",
" <td>1.100000</td>\n",
" <td>10.000000</td>\n",
" <td>14.900000</td>\n",
" <td>26.400000</td>\n",
" <td>54.000000</td>\n",
" <td>1.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>33.300000</td>\n",
" <td>11.100000</td>\n",
" <td>4.030000</td>\n",
" <td>4.700000</td>\n",
" <td>111.000000</td>\n",
" <td>26.500000</td>\n",
" <td>32.700000</td>\n",
" <td>80.225000</td>\n",
" <td>25.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>38.000000</td>\n",
" <td>12.600000</td>\n",
" <td>4.570000</td>\n",
" <td>7.100000</td>\n",
" <td>205.500000</td>\n",
" <td>28.200000</td>\n",
" <td>33.400000</td>\n",
" <td>83.950000</td>\n",
" <td>38.000000</td>\n",
" <td>1.000000</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>41.800000</td>\n",
" <td>14.000000</td>\n",
" <td>5.030000</td>\n",
" <td>10.200000</td>\n",
" <td>288.000000</td>\n",
" <td>29.400000</td>\n",
" <td>34.100000</td>\n",
" <td>87.100000</td>\n",
" <td>50.000000</td>\n",
" <td>1.000000</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>54.000000</td>\n",
" <td>17.900000</td>\n",
" <td>7.610000</td>\n",
" <td>41.100000</td>\n",
" <td>830.000000</td>\n",
" <td>33.200000</td>\n",
" <td>37.100000</td>\n",
" <td>98.100000</td>\n",
" <td>60.000000</td>\n",
" <td>1.000000</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-fb462d2c-6f6c-4e33-a648-2e26c344f83b')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-fb462d2c-6f6c-4e33-a648-2e26c344f83b button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-fb462d2c-6f6c-4e33-a648-2e26c344f83b');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
"<div id=\"df-fb7878a4-d27a-4e2e-837e-4e6a7261b17b\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-fb7878a4-d27a-4e2e-837e-4e6a7261b17b')\"\n",
" title=\"Suggest charts\"\n",
" style=\"display:none;\">\n",
"\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <g>\n",
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
" </g>\n",
"</svg>\n",
" </button>\n",
"\n",
"<style>\n",
" .colab-df-quickchart {\n",
" --bg-color: #E8F0FE;\n",
" --fill-color: #1967D2;\n",
" --hover-bg-color: #E2EBFA;\n",
" --hover-fill-color: #174EA6;\n",
" --disabled-fill-color: #AAA;\n",
" --disabled-bg-color: #DDD;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-quickchart {\n",
" --bg-color: #3B4455;\n",
" --fill-color: #D2E3FC;\n",
" --hover-bg-color: #434B5C;\n",
" --hover-fill-color: #FFFFFF;\n",
" --disabled-bg-color: #3B4455;\n",
" --disabled-fill-color: #666;\n",
" }\n",
"\n",
" .colab-df-quickchart {\n",
" background-color: var(--bg-color);\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: var(--fill-color);\n",
" height: 32px;\n",
" padding: 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-quickchart:hover {\n",
" background-color: var(--hover-bg-color);\n",
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: var(--button-hover-fill-color);\n",
" }\n",
"\n",
" .colab-df-quickchart-complete:disabled,\n",
" .colab-df-quickchart-complete:disabled:hover {\n",
" background-color: var(--disabled-bg-color);\n",
" fill: var(--disabled-fill-color);\n",
" box-shadow: none;\n",
" }\n",
"\n",
" .colab-df-spinner {\n",
" border: 2px solid var(--fill-color);\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" animation:\n",
" spin 1s steps(1) infinite;\n",
" }\n",
"\n",
" @keyframes spin {\n",
" 0% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" border-left-color: var(--fill-color);\n",
" }\n",
" 20% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 30% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 40% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 60% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 80% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" 90% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" }\n",
"</style>\n",
"\n",
" <script>\n",
" async function quickchart(key) {\n",
" const quickchartButtonEl =\n",
" document.querySelector('#' + key + ' button');\n",
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
" try {\n",
" const charts = await google.colab.kernel.invokeFunction(\n",
" 'suggestCharts', [key], {});\n",
" } catch (error) {\n",
" console.error('Error during call to suggestCharts:', error);\n",
" }\n",
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
" }\n",
" (() => {\n",
" let quickchartButtonEl =\n",
" document.querySelector('#df-fb7878a4-d27a-4e2e-837e-4e6a7261b17b button');\n",
" quickchartButtonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
" })();\n",
" </script>\n",
"</div>\n",
" </div>\n",
" </div>\n"
],
"text/plain": [
" HAEMATOCRIT HAEMOGLOBINS ERYTHROCYTE LEUCOCYTE THROMBOCYTE \\\n",
"count 1126.000000 1126.000000 1126.000000 1126.000000 1126.000000 \n",
"mean 37.541563 12.514121 4.548943 8.419716 210.713144 \n",
"std 5.854355 2.067833 0.772000 5.499211 123.979792 \n",
"min 16.700000 4.600000 2.150000 1.100000 10.000000 \n",
"25% 33.300000 11.100000 4.030000 4.700000 111.000000 \n",
"50% 38.000000 12.600000 4.570000 7.100000 205.500000 \n",
"75% 41.800000 14.000000 5.030000 10.200000 288.000000 \n",
"max 54.000000 17.900000 7.610000 41.100000 830.000000 \n",
"\n",
" MCH MCHC MCV AGE SEX SOURCE \n",
"count 1126.000000 1126.000000 1126.000000 1126.000000 1126.000000 1126.0 \n",
"mean 27.648046 33.297957 82.942274 36.547957 0.519538 0.0 \n",
"std 2.621360 1.257908 6.400749 15.894902 0.499840 0.0 \n",
"min 14.900000 26.400000 54.000000 1.000000 0.000000 0.0 \n",
"25% 26.500000 32.700000 80.225000 25.000000 0.000000 0.0 \n",
"50% 28.200000 33.400000 83.950000 38.000000 1.000000 0.0 \n",
"75% 29.400000 34.100000 87.100000 50.000000 1.000000 0.0 \n",
"max 33.200000 37.100000 98.100000 60.000000 1.000000 0.0 "
]
},
"execution_count": 49,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Original data for class label 0\n",
"df[df['SOURCE'] == 0.0].describe()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 300
},
"id": "AVuLosHuDVMM",
"outputId": "e5af0999-70f0-461f-a5cb-f794ed66c77d"
},
"outputs": [
{
"data": {
"text/html": [
"\n",
" <div id=\"df-b794c572-f19d-4a61-8da9-33e4940f383f\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>HAEMATOCRIT</th>\n",
" <th>HAEMOGLOBINS</th>\n",
" <th>ERYTHROCYTE</th>\n",
" <th>LEUCOCYTE</th>\n",
" <th>THROMBOCYTE</th>\n",
" <th>MCH</th>\n",
" <th>MCHC</th>\n",
" <th>MCV</th>\n",
" <th>AGE</th>\n",
" <th>SEX</th>\n",
" <th>SOURCE</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>1000.000000</td>\n",
" <td>1000.000000</td>\n",
" <td>1000.000000</td>\n",
" <td>1000.000000</td>\n",
" <td>1000.000000</td>\n",
" <td>1000.000000</td>\n",
" <td>1000.000000</td>\n",
" <td>1000.000000</td>\n",
" <td>1000.000000</td>\n",
" <td>1000.0</td>\n",
" <td>1000.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>37.691578</td>\n",
" <td>12.556738</td>\n",
" <td>4.573488</td>\n",
" <td>8.435874</td>\n",
" <td>211.609192</td>\n",
" <td>27.592972</td>\n",
" <td>33.282280</td>\n",
" <td>82.813362</td>\n",
" <td>36.067398</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>0.030052</td>\n",
" <td>0.011280</td>\n",
" <td>0.000551</td>\n",
" <td>0.087378</td>\n",
" <td>1.433894</td>\n",
" <td>0.016070</td>\n",
" <td>0.004731</td>\n",
" <td>0.033680</td>\n",
" <td>0.008971</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>37.597477</td>\n",
" <td>12.524315</td>\n",
" <td>4.571867</td>\n",
" <td>8.033860</td>\n",
" <td>207.398560</td>\n",
" <td>27.564791</td>\n",
" <td>33.265923</td>\n",
" <td>82.758568</td>\n",
" <td>36.038414</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>37.669081</td>\n",
" <td>12.548130</td>\n",
" <td>4.573057</td>\n",
" <td>8.383973</td>\n",
" <td>210.465427</td>\n",
" <td>27.580337</td>\n",
" <td>33.278926</td>\n",
" <td>82.787371</td>\n",
" <td>36.060491</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>37.688297</td>\n",
" <td>12.555507</td>\n",
" <td>4.573419</td>\n",
" <td>8.445603</td>\n",
" <td>211.510651</td>\n",
" <td>27.588729</td>\n",
" <td>33.281816</td>\n",
" <td>82.802765</td>\n",
" <td>36.067719</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>37.712235</td>\n",
" <td>12.564118</td>\n",
" <td>4.573872</td>\n",
" <td>8.491009</td>\n",
" <td>212.569447</td>\n",
" <td>27.601890</td>\n",
" <td>33.285499</td>\n",
" <td>82.831158</td>\n",
" <td>36.073178</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>37.795452</td>\n",
" <td>12.598121</td>\n",
" <td>4.575488</td>\n",
" <td>8.681541</td>\n",
" <td>216.759949</td>\n",
" <td>27.665201</td>\n",
" <td>33.298271</td>\n",
" <td>82.969360</td>\n",
" <td>36.097458</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-b794c572-f19d-4a61-8da9-33e4940f383f')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-b794c572-f19d-4a61-8da9-33e4940f383f button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-b794c572-f19d-4a61-8da9-33e4940f383f');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
"<div id=\"df-0f2d5280-9641-472f-b72d-c07fb74599d4\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-0f2d5280-9641-472f-b72d-c07fb74599d4')\"\n",
" title=\"Suggest charts\"\n",
" style=\"display:none;\">\n",
"\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <g>\n",
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
" </g>\n",
"</svg>\n",
" </button>\n",
"\n",
"<style>\n",
" .colab-df-quickchart {\n",
" --bg-color: #E8F0FE;\n",
" --fill-color: #1967D2;\n",
" --hover-bg-color: #E2EBFA;\n",
" --hover-fill-color: #174EA6;\n",
" --disabled-fill-color: #AAA;\n",
" --disabled-bg-color: #DDD;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-quickchart {\n",
" --bg-color: #3B4455;\n",
" --fill-color: #D2E3FC;\n",
" --hover-bg-color: #434B5C;\n",
" --hover-fill-color: #FFFFFF;\n",
" --disabled-bg-color: #3B4455;\n",
" --disabled-fill-color: #666;\n",
" }\n",
"\n",
" .colab-df-quickchart {\n",
" background-color: var(--bg-color);\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: var(--fill-color);\n",
" height: 32px;\n",
" padding: 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-quickchart:hover {\n",
" background-color: var(--hover-bg-color);\n",
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: var(--button-hover-fill-color);\n",
" }\n",
"\n",
" .colab-df-quickchart-complete:disabled,\n",
" .colab-df-quickchart-complete:disabled:hover {\n",
" background-color: var(--disabled-bg-color);\n",
" fill: var(--disabled-fill-color);\n",
" box-shadow: none;\n",
" }\n",
"\n",
" .colab-df-spinner {\n",
" border: 2px solid var(--fill-color);\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" animation:\n",
" spin 1s steps(1) infinite;\n",
" }\n",
"\n",
" @keyframes spin {\n",
" 0% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" border-left-color: var(--fill-color);\n",
" }\n",
" 20% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 30% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 40% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 60% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 80% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" 90% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" }\n",
"</style>\n",
"\n",
" <script>\n",
" async function quickchart(key) {\n",
" const quickchartButtonEl =\n",
" document.querySelector('#' + key + ' button');\n",
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
" try {\n",
" const charts = await google.colab.kernel.invokeFunction(\n",
" 'suggestCharts', [key], {});\n",
" } catch (error) {\n",
" console.error('Error during call to suggestCharts:', error);\n",
" }\n",
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
" }\n",
" (() => {\n",
" let quickchartButtonEl =\n",
" document.querySelector('#df-0f2d5280-9641-472f-b72d-c07fb74599d4 button');\n",
" quickchartButtonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
" })();\n",
" </script>\n",
"</div>\n",
" </div>\n",
" </div>\n"
],
"text/plain": [
" HAEMATOCRIT HAEMOGLOBINS ERYTHROCYTE LEUCOCYTE THROMBOCYTE \\\n",
"count 1000.000000 1000.000000 1000.000000 1000.000000 1000.000000 \n",
"mean 37.691578 12.556738 4.573488 8.435874 211.609192 \n",
"std 0.030052 0.011280 0.000551 0.087378 1.433894 \n",
"min 37.597477 12.524315 4.571867 8.033860 207.398560 \n",
"25% 37.669081 12.548130 4.573057 8.383973 210.465427 \n",
"50% 37.688297 12.555507 4.573419 8.445603 211.510651 \n",
"75% 37.712235 12.564118 4.573872 8.491009 212.569447 \n",
"max 37.795452 12.598121 4.575488 8.681541 216.759949 \n",
"\n",
" MCH MCHC MCV AGE SEX SOURCE \n",
"count 1000.000000 1000.000000 1000.000000 1000.000000 1000.0 1000.0 \n",
"mean 27.592972 33.282280 82.813362 36.067398 1.0 0.0 \n",
"std 0.016070 0.004731 0.033680 0.008971 0.0 0.0 \n",
"min 27.564791 33.265923 82.758568 36.038414 1.0 0.0 \n",
"25% 27.580337 33.278926 82.787371 36.060491 1.0 0.0 \n",
"50% 27.588729 33.281816 82.802765 36.067719 1.0 0.0 \n",
"75% 27.601890 33.285499 82.831158 36.073178 1.0 0.0 \n",
"max 27.665201 33.298271 82.969360 36.097458 1.0 0.0 "
]
},
"execution_count": 51,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Data after sampling without noise for class label 0.\n",
"# standard deviation is close to 0 as there is no noise.\n",
"df_fake_0.describe()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 320
},
"id": "fQMLCmiDz1SY",
"outputId": "2ea26545-4bff-43b6-ab11-8aa73fdb911a"
},
"outputs": [
{
"data": {
"text/html": [
"\n",
" <div id=\"df-63d10403-f16f-4e37-b3ee-d5488507738a\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>HAEMATOCRIT</th>\n",
" <th>HAEMOGLOBINS</th>\n",
" <th>ERYTHROCYTE</th>\n",
" <th>LEUCOCYTE</th>\n",
" <th>THROMBOCYTE</th>\n",
" <th>MCH</th>\n",
" <th>MCHC</th>\n",
" <th>MCV</th>\n",
" <th>AGE</th>\n",
" <th>SEX</th>\n",
" <th>SOURCE</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>1000.000000</td>\n",
" <td>1000.000000</td>\n",
" <td>1000.000000</td>\n",
" <td>1000.000000</td>\n",
" <td>1000.000000</td>\n",
" <td>1000.000000</td>\n",
" <td>1000.000000</td>\n",
" <td>1000.000000</td>\n",
" <td>1000.000000</td>\n",
" <td>1000.000000</td>\n",
" <td>1000.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>37.662089</td>\n",
" <td>12.555137</td>\n",
" <td>4.572358</td>\n",
" <td>8.454860</td>\n",
" <td>212.318633</td>\n",
" <td>27.604432</td>\n",
" <td>33.291638</td>\n",
" <td>82.841772</td>\n",
" <td>36.141786</td>\n",
" <td>0.595000</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>0.620590</td>\n",
" <td>0.207448</td>\n",
" <td>0.074826</td>\n",
" <td>0.561878</td>\n",
" <td>12.471202</td>\n",
" <td>0.257505</td>\n",
" <td>0.125038</td>\n",
" <td>0.644292</td>\n",
" <td>1.543714</td>\n",
" <td>0.491138</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>35.163205</td>\n",
" <td>11.853868</td>\n",
" <td>4.354375</td>\n",
" <td>6.513469</td>\n",
" <td>175.321506</td>\n",
" <td>26.768720</td>\n",
" <td>32.934284</td>\n",
" <td>80.757715</td>\n",
" <td>30.416181</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>37.267010</td>\n",
" <td>12.411733</td>\n",
" <td>4.523622</td>\n",
" <td>8.080136</td>\n",
" <td>203.689106</td>\n",
" <td>27.435646</td>\n",
" <td>33.209024</td>\n",
" <td>82.426987</td>\n",
" <td>35.207396</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>37.652640</td>\n",
" <td>12.552012</td>\n",
" <td>4.570830</td>\n",
" <td>8.465731</td>\n",
" <td>212.776320</td>\n",
" <td>27.598721</td>\n",
" <td>33.293315</td>\n",
" <td>82.850601</td>\n",
" <td>36.158275</td>\n",
" <td>1.000000</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>38.075914</td>\n",
" <td>12.692385</td>\n",
" <td>4.623792</td>\n",
" <td>8.829926</td>\n",
" <td>221.172927</td>\n",
" <td>27.776133</td>\n",
" <td>33.374922</td>\n",
" <td>83.288431</td>\n",
" <td>37.190904</td>\n",
" <td>1.000000</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>39.522850</td>\n",
" <td>13.145649</td>\n",
" <td>4.790977</td>\n",
" <td>10.180801</td>\n",
" <td>251.593054</td>\n",
" <td>28.303622</td>\n",
" <td>33.660253</td>\n",
" <td>85.084603</td>\n",
" <td>40.573997</td>\n",
" <td>1.000000</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-63d10403-f16f-4e37-b3ee-d5488507738a')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-63d10403-f16f-4e37-b3ee-d5488507738a button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-63d10403-f16f-4e37-b3ee-d5488507738a');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
"<div id=\"df-bb9dfc3c-4bce-4e38-82a1-b0e7aae00fcc\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-bb9dfc3c-4bce-4e38-82a1-b0e7aae00fcc')\"\n",
" title=\"Suggest charts\"\n",
" style=\"display:none;\">\n",
"\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <g>\n",
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
" </g>\n",
"</svg>\n",
" </button>\n",
"\n",
"<style>\n",
" .colab-df-quickchart {\n",
" --bg-color: #E8F0FE;\n",
" --fill-color: #1967D2;\n",
" --hover-bg-color: #E2EBFA;\n",
" --hover-fill-color: #174EA6;\n",
" --disabled-fill-color: #AAA;\n",
" --disabled-bg-color: #DDD;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-quickchart {\n",
" --bg-color: #3B4455;\n",
" --fill-color: #D2E3FC;\n",
" --hover-bg-color: #434B5C;\n",
" --hover-fill-color: #FFFFFF;\n",
" --disabled-bg-color: #3B4455;\n",
" --disabled-fill-color: #666;\n",
" }\n",
"\n",
" .colab-df-quickchart {\n",
" background-color: var(--bg-color);\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: var(--fill-color);\n",
" height: 32px;\n",
" padding: 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-quickchart:hover {\n",
" background-color: var(--hover-bg-color);\n",
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: var(--button-hover-fill-color);\n",
" }\n",
"\n",
" .colab-df-quickchart-complete:disabled,\n",
" .colab-df-quickchart-complete:disabled:hover {\n",
" background-color: var(--disabled-bg-color);\n",
" fill: var(--disabled-fill-color);\n",
" box-shadow: none;\n",
" }\n",
"\n",
" .colab-df-spinner {\n",
" border: 2px solid var(--fill-color);\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" animation:\n",
" spin 1s steps(1) infinite;\n",
" }\n",
"\n",
" @keyframes spin {\n",
" 0% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" border-left-color: var(--fill-color);\n",
" }\n",
" 20% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 30% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 40% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 60% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 80% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" 90% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" }\n",
"</style>\n",
"\n",
" <script>\n",
" async function quickchart(key) {\n",
" const quickchartButtonEl =\n",
" document.querySelector('#' + key + ' button');\n",
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
" try {\n",
" const charts = await google.colab.kernel.invokeFunction(\n",
" 'suggestCharts', [key], {});\n",
" } catch (error) {\n",
" console.error('Error during call to suggestCharts:', error);\n",
" }\n",
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
" }\n",
" (() => {\n",
" let quickchartButtonEl =\n",
" document.querySelector('#df-bb9dfc3c-4bce-4e38-82a1-b0e7aae00fcc button');\n",
" quickchartButtonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
" })();\n",
" </script>\n",
"</div>\n",
" </div>\n",
" </div>\n"
],
"text/plain": [
" HAEMATOCRIT HAEMOGLOBINS ERYTHROCYTE LEUCOCYTE THROMBOCYTE \\\n",
"count 1000.000000 1000.000000 1000.000000 1000.000000 1000.000000 \n",
"mean 37.662089 12.555137 4.572358 8.454860 212.318633 \n",
"std 0.620590 0.207448 0.074826 0.561878 12.471202 \n",
"min 35.163205 11.853868 4.354375 6.513469 175.321506 \n",
"25% 37.267010 12.411733 4.523622 8.080136 203.689106 \n",
"50% 37.652640 12.552012 4.570830 8.465731 212.776320 \n",
"75% 38.075914 12.692385 4.623792 8.829926 221.172927 \n",
"max 39.522850 13.145649 4.790977 10.180801 251.593054 \n",
"\n",
" MCH MCHC MCV AGE SEX SOURCE \n",
"count 1000.000000 1000.000000 1000.000000 1000.000000 1000.000000 1000.0 \n",
"mean 27.604432 33.291638 82.841772 36.141786 0.595000 0.0 \n",
"std 0.257505 0.125038 0.644292 1.543714 0.491138 0.0 \n",
"min 26.768720 32.934284 80.757715 30.416181 0.000000 0.0 \n",
"25% 27.435646 33.209024 82.426987 35.207396 0.000000 0.0 \n",
"50% 27.598721 33.293315 82.850601 36.158275 1.000000 0.0 \n",
"75% 27.776133 33.374922 83.288431 37.190904 1.000000 0.0 \n",
"max 28.303622 33.660253 85.084603 40.573997 1.000000 0.0 "
]
},
"execution_count": 52,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Data after sampling with noise for class label 0.\n",
"# standard deviation is increased as we have added noise.\n",
"df_fake_with_noise_0.describe()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 320
},
"id": "SeWF3TMezyFl",
"outputId": "24fc628f-f882-4d82-b176-f9b7fff013c9"
},
"outputs": [
{
"data": {
"text/html": [
"\n",
" <div id=\"df-5e48e65d-2835-4e9a-9e1f-920a3b6d25d4\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>HAEMATOCRIT</th>\n",
" <th>HAEMOGLOBINS</th>\n",
" <th>ERYTHROCYTE</th>\n",
" <th>LEUCOCYTE</th>\n",
" <th>THROMBOCYTE</th>\n",
" <th>MCH</th>\n",
" <th>MCHC</th>\n",
" <th>MCV</th>\n",
" <th>AGE</th>\n",
" <th>SEX</th>\n",
" <th>SOURCE</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>1874.000000</td>\n",
" <td>1874.000000</td>\n",
" <td>1874.000000</td>\n",
" <td>1874.000000</td>\n",
" <td>1874.000000</td>\n",
" <td>1874.000000</td>\n",
" <td>1874.000000</td>\n",
" <td>1874.000000</td>\n",
" <td>1874.000000</td>\n",
" <td>1874.000000</td>\n",
" <td>1874.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>40.276201</td>\n",
" <td>13.436766</td>\n",
" <td>4.845678</td>\n",
" <td>7.942796</td>\n",
" <td>283.776414</td>\n",
" <td>27.850961</td>\n",
" <td>33.325027</td>\n",
" <td>83.481750</td>\n",
" <td>34.167556</td>\n",
" <td>0.504269</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>5.203109</td>\n",
" <td>1.882612</td>\n",
" <td>0.670936</td>\n",
" <td>3.887929</td>\n",
" <td>91.125347</td>\n",
" <td>2.665422</td>\n",
" <td>1.185757</td>\n",
" <td>6.623586</td>\n",
" <td>15.497505</td>\n",
" <td>0.500115</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>14.600000</td>\n",
" <td>3.800000</td>\n",
" <td>1.930000</td>\n",
" <td>1.100000</td>\n",
" <td>25.000000</td>\n",
" <td>15.900000</td>\n",
" <td>26.000000</td>\n",
" <td>54.100000</td>\n",
" <td>1.000000</td>\n",
" <td>0.000000</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>36.900000</td>\n",
" <td>12.300000</td>\n",
" <td>4.420000</td>\n",
" <td>5.600000</td>\n",
" <td>227.000000</td>\n",
" <td>26.800000</td>\n",
" <td>32.700000</td>\n",
" <td>80.525000</td>\n",
" <td>24.000000</td>\n",
" <td>0.000000</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>40.500000</td>\n",
" <td>13.500000</td>\n",
" <td>4.830000</td>\n",
" <td>7.200000</td>\n",
" <td>279.000000</td>\n",
" <td>28.400000</td>\n",
" <td>33.400000</td>\n",
" <td>84.600000</td>\n",
" <td>34.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>44.100000</td>\n",
" <td>14.800000</td>\n",
" <td>5.270000</td>\n",
" <td>9.400000</td>\n",
" <td>332.000000</td>\n",
" <td>29.500000</td>\n",
" <td>34.100000</td>\n",
" <td>87.600000</td>\n",
" <td>47.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>57.000000</td>\n",
" <td>18.800000</td>\n",
" <td>7.860000</td>\n",
" <td>40.900000</td>\n",
" <td>803.000000</td>\n",
" <td>37.800000</td>\n",
" <td>37.400000</td>\n",
" <td>104.500000</td>\n",
" <td>60.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-5e48e65d-2835-4e9a-9e1f-920a3b6d25d4')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-5e48e65d-2835-4e9a-9e1f-920a3b6d25d4 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-5e48e65d-2835-4e9a-9e1f-920a3b6d25d4');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
"<div id=\"df-fd4a6765-614c-4978-9b90-ae3720627d5c\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-fd4a6765-614c-4978-9b90-ae3720627d5c')\"\n",
" title=\"Suggest charts\"\n",
" style=\"display:none;\">\n",
"\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <g>\n",
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
" </g>\n",
"</svg>\n",
" </button>\n",
"\n",
"<style>\n",
" .colab-df-quickchart {\n",
" --bg-color: #E8F0FE;\n",
" --fill-color: #1967D2;\n",
" --hover-bg-color: #E2EBFA;\n",
" --hover-fill-color: #174EA6;\n",
" --disabled-fill-color: #AAA;\n",
" --disabled-bg-color: #DDD;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-quickchart {\n",
" --bg-color: #3B4455;\n",
" --fill-color: #D2E3FC;\n",
" --hover-bg-color: #434B5C;\n",
" --hover-fill-color: #FFFFFF;\n",
" --disabled-bg-color: #3B4455;\n",
" --disabled-fill-color: #666;\n",
" }\n",
"\n",
" .colab-df-quickchart {\n",
" background-color: var(--bg-color);\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: var(--fill-color);\n",
" height: 32px;\n",
" padding: 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-quickchart:hover {\n",
" background-color: var(--hover-bg-color);\n",
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: var(--button-hover-fill-color);\n",
" }\n",
"\n",
" .colab-df-quickchart-complete:disabled,\n",
" .colab-df-quickchart-complete:disabled:hover {\n",
" background-color: var(--disabled-bg-color);\n",
" fill: var(--disabled-fill-color);\n",
" box-shadow: none;\n",
" }\n",
"\n",
" .colab-df-spinner {\n",
" border: 2px solid var(--fill-color);\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" animation:\n",
" spin 1s steps(1) infinite;\n",
" }\n",
"\n",
" @keyframes spin {\n",
" 0% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" border-left-color: var(--fill-color);\n",
" }\n",
" 20% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 30% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 40% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 60% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 80% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" 90% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" }\n",
"</style>\n",
"\n",
" <script>\n",
" async function quickchart(key) {\n",
" const quickchartButtonEl =\n",
" document.querySelector('#' + key + ' button');\n",
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
" try {\n",
" const charts = await google.colab.kernel.invokeFunction(\n",
" 'suggestCharts', [key], {});\n",
" } catch (error) {\n",
" console.error('Error during call to suggestCharts:', error);\n",
" }\n",
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
" }\n",
" (() => {\n",
" let quickchartButtonEl =\n",
" document.querySelector('#df-fd4a6765-614c-4978-9b90-ae3720627d5c button');\n",
" quickchartButtonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
" })();\n",
" </script>\n",
"</div>\n",
" </div>\n",
" </div>\n"
],
"text/plain": [
" HAEMATOCRIT HAEMOGLOBINS ERYTHROCYTE LEUCOCYTE THROMBOCYTE \\\n",
"count 1874.000000 1874.000000 1874.000000 1874.000000 1874.000000 \n",
"mean 40.276201 13.436766 4.845678 7.942796 283.776414 \n",
"std 5.203109 1.882612 0.670936 3.887929 91.125347 \n",
"min 14.600000 3.800000 1.930000 1.100000 25.000000 \n",
"25% 36.900000 12.300000 4.420000 5.600000 227.000000 \n",
"50% 40.500000 13.500000 4.830000 7.200000 279.000000 \n",
"75% 44.100000 14.800000 5.270000 9.400000 332.000000 \n",
"max 57.000000 18.800000 7.860000 40.900000 803.000000 \n",
"\n",
" MCH MCHC MCV AGE SEX SOURCE \n",
"count 1874.000000 1874.000000 1874.000000 1874.000000 1874.000000 1874.0 \n",
"mean 27.850961 33.325027 83.481750 34.167556 0.504269 1.0 \n",
"std 2.665422 1.185757 6.623586 15.497505 0.500115 0.0 \n",
"min 15.900000 26.000000 54.100000 1.000000 0.000000 1.0 \n",
"25% 26.800000 32.700000 80.525000 24.000000 0.000000 1.0 \n",
"50% 28.400000 33.400000 84.600000 34.000000 1.000000 1.0 \n",
"75% 29.500000 34.100000 87.600000 47.000000 1.000000 1.0 \n",
"max 37.800000 37.400000 104.500000 60.000000 1.000000 1.0 "
]
},
"execution_count": 53,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Original data for class label 1\n",
"df[df['SOURCE'] == 1].describe()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 320
},
"id": "OrSrXhKIw_Vq",
"outputId": "5c424054-af4d-40c9-9d2e-d1fbf76fdc25"
},
"outputs": [
{
"data": {
"text/html": [
"\n",
" <div id=\"df-a7ef587c-9f4e-4909-a7e4-e7d4f574e009\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>HAEMATOCRIT</th>\n",
" <th>HAEMOGLOBINS</th>\n",
" <th>ERYTHROCYTE</th>\n",
" <th>LEUCOCYTE</th>\n",
" <th>THROMBOCYTE</th>\n",
" <th>MCH</th>\n",
" <th>MCHC</th>\n",
" <th>MCV</th>\n",
" <th>AGE</th>\n",
" <th>SEX</th>\n",
" <th>SOURCE</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>1000.000000</td>\n",
" <td>1000.000000</td>\n",
" <td>1000.000000</td>\n",
" <td>1000.000000</td>\n",
" <td>1000.000000</td>\n",
" <td>1000.000000</td>\n",
" <td>1000.000000</td>\n",
" <td>1000.000000</td>\n",
" <td>1000.000000</td>\n",
" <td>1000.000000</td>\n",
" <td>1000.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>40.216854</td>\n",
" <td>13.415316</td>\n",
" <td>4.833044</td>\n",
" <td>8.046908</td>\n",
" <td>284.453888</td>\n",
" <td>27.875683</td>\n",
" <td>33.319103</td>\n",
" <td>83.568192</td>\n",
" <td>34.162788</td>\n",
" <td>0.245000</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>0.087998</td>\n",
" <td>0.033476</td>\n",
" <td>0.008451</td>\n",
" <td>0.032536</td>\n",
" <td>0.697243</td>\n",
" <td>0.018672</td>\n",
" <td>0.008205</td>\n",
" <td>0.031637</td>\n",
" <td>0.154405</td>\n",
" <td>0.430302</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>39.987663</td>\n",
" <td>13.325507</td>\n",
" <td>4.808911</td>\n",
" <td>8.010986</td>\n",
" <td>283.293762</td>\n",
" <td>27.826084</td>\n",
" <td>33.290928</td>\n",
" <td>83.490578</td>\n",
" <td>33.694611</td>\n",
" <td>0.000000</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>40.137992</td>\n",
" <td>13.385909</td>\n",
" <td>4.825674</td>\n",
" <td>8.025556</td>\n",
" <td>283.887665</td>\n",
" <td>27.859785</td>\n",
" <td>33.312329</td>\n",
" <td>83.541677</td>\n",
" <td>34.028809</td>\n",
" <td>0.000000</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>40.229898</td>\n",
" <td>13.419669</td>\n",
" <td>4.834643</td>\n",
" <td>8.031082</td>\n",
" <td>284.139084</td>\n",
" <td>27.877051</td>\n",
" <td>33.321566</td>\n",
" <td>83.567989</td>\n",
" <td>34.207241</td>\n",
" <td>0.000000</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>40.283043</td>\n",
" <td>13.440155</td>\n",
" <td>4.839051</td>\n",
" <td>8.060173</td>\n",
" <td>285.069855</td>\n",
" <td>27.888342</td>\n",
" <td>33.325429</td>\n",
" <td>83.588396</td>\n",
" <td>34.268323</td>\n",
" <td>0.000000</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>40.464432</td>\n",
" <td>13.507359</td>\n",
" <td>4.856427</td>\n",
" <td>8.201407</td>\n",
" <td>286.786041</td>\n",
" <td>27.933434</td>\n",
" <td>33.336052</td>\n",
" <td>83.672638</td>\n",
" <td>34.586533</td>\n",
" <td>1.000000</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-a7ef587c-9f4e-4909-a7e4-e7d4f574e009')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-a7ef587c-9f4e-4909-a7e4-e7d4f574e009 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-a7ef587c-9f4e-4909-a7e4-e7d4f574e009');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
"<div id=\"df-3b34eefb-8c84-4cdc-b589-71f57c24cd88\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-3b34eefb-8c84-4cdc-b589-71f57c24cd88')\"\n",
" title=\"Suggest charts\"\n",
" style=\"display:none;\">\n",
"\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <g>\n",
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
" </g>\n",
"</svg>\n",
" </button>\n",
"\n",
"<style>\n",
" .colab-df-quickchart {\n",
" --bg-color: #E8F0FE;\n",
" --fill-color: #1967D2;\n",
" --hover-bg-color: #E2EBFA;\n",
" --hover-fill-color: #174EA6;\n",
" --disabled-fill-color: #AAA;\n",
" --disabled-bg-color: #DDD;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-quickchart {\n",
" --bg-color: #3B4455;\n",
" --fill-color: #D2E3FC;\n",
" --hover-bg-color: #434B5C;\n",
" --hover-fill-color: #FFFFFF;\n",
" --disabled-bg-color: #3B4455;\n",
" --disabled-fill-color: #666;\n",
" }\n",
"\n",
" .colab-df-quickchart {\n",
" background-color: var(--bg-color);\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: var(--fill-color);\n",
" height: 32px;\n",
" padding: 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-quickchart:hover {\n",
" background-color: var(--hover-bg-color);\n",
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: var(--button-hover-fill-color);\n",
" }\n",
"\n",
" .colab-df-quickchart-complete:disabled,\n",
" .colab-df-quickchart-complete:disabled:hover {\n",
" background-color: var(--disabled-bg-color);\n",
" fill: var(--disabled-fill-color);\n",
" box-shadow: none;\n",
" }\n",
"\n",
" .colab-df-spinner {\n",
" border: 2px solid var(--fill-color);\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" animation:\n",
" spin 1s steps(1) infinite;\n",
" }\n",
"\n",
" @keyframes spin {\n",
" 0% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" border-left-color: var(--fill-color);\n",
" }\n",
" 20% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 30% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 40% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 60% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 80% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" 90% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" }\n",
"</style>\n",
"\n",
" <script>\n",
" async function quickchart(key) {\n",
" const quickchartButtonEl =\n",
" document.querySelector('#' + key + ' button');\n",
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
" try {\n",
" const charts = await google.colab.kernel.invokeFunction(\n",
" 'suggestCharts', [key], {});\n",
" } catch (error) {\n",
" console.error('Error during call to suggestCharts:', error);\n",
" }\n",
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
" }\n",
" (() => {\n",
" let quickchartButtonEl =\n",
" document.querySelector('#df-3b34eefb-8c84-4cdc-b589-71f57c24cd88 button');\n",
" quickchartButtonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
" })();\n",
" </script>\n",
"</div>\n",
" </div>\n",
" </div>\n"
],
"text/plain": [
" HAEMATOCRIT HAEMOGLOBINS ERYTHROCYTE LEUCOCYTE THROMBOCYTE \\\n",
"count 1000.000000 1000.000000 1000.000000 1000.000000 1000.000000 \n",
"mean 40.216854 13.415316 4.833044 8.046908 284.453888 \n",
"std 0.087998 0.033476 0.008451 0.032536 0.697243 \n",
"min 39.987663 13.325507 4.808911 8.010986 283.293762 \n",
"25% 40.137992 13.385909 4.825674 8.025556 283.887665 \n",
"50% 40.229898 13.419669 4.834643 8.031082 284.139084 \n",
"75% 40.283043 13.440155 4.839051 8.060173 285.069855 \n",
"max 40.464432 13.507359 4.856427 8.201407 286.786041 \n",
"\n",
" MCH MCHC MCV AGE SEX SOURCE \n",
"count 1000.000000 1000.000000 1000.000000 1000.000000 1000.000000 1000.0 \n",
"mean 27.875683 33.319103 83.568192 34.162788 0.245000 1.0 \n",
"std 0.018672 0.008205 0.031637 0.154405 0.430302 0.0 \n",
"min 27.826084 33.290928 83.490578 33.694611 0.000000 1.0 \n",
"25% 27.859785 33.312329 83.541677 34.028809 0.000000 1.0 \n",
"50% 27.877051 33.321566 83.567989 34.207241 0.000000 1.0 \n",
"75% 27.888342 33.325429 83.588396 34.268323 0.000000 1.0 \n",
"max 27.933434 33.336052 83.672638 34.586533 1.000000 1.0 "
]
},
"execution_count": 54,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Data after sampling without noise for class label 1.\n",
"# Standard deviation is close to 0 as there is no noise.\n",
"df_fake_1.describe()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 320
},
"id": "AWrtmV7Az6VK",
"outputId": "27304b53-7c1c-4d6b-b84e-94180ca39543"
},
"outputs": [
{
"data": {
"text/html": [
"\n",
" <div id=\"df-1aca87c5-e28c-42de-9e7d-3cd63b154d46\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>HAEMATOCRIT</th>\n",
" <th>HAEMOGLOBINS</th>\n",
" <th>ERYTHROCYTE</th>\n",
" <th>LEUCOCYTE</th>\n",
" <th>THROMBOCYTE</th>\n",
" <th>MCH</th>\n",
" <th>MCHC</th>\n",
" <th>MCV</th>\n",
" <th>AGE</th>\n",
" <th>SEX</th>\n",
" <th>SOURCE</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>1000.000000</td>\n",
" <td>1000.000000</td>\n",
" <td>1000.000000</td>\n",
" <td>1000.000000</td>\n",
" <td>1000.000000</td>\n",
" <td>1000.000000</td>\n",
" <td>1000.000000</td>\n",
" <td>1000.000000</td>\n",
" <td>1000.000000</td>\n",
" <td>1000.000000</td>\n",
" <td>1000.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>40.188590</td>\n",
" <td>13.412338</td>\n",
" <td>4.834505</td>\n",
" <td>8.044774</td>\n",
" <td>284.275092</td>\n",
" <td>27.881097</td>\n",
" <td>33.316171</td>\n",
" <td>83.531105</td>\n",
" <td>34.210489</td>\n",
" <td>0.400000</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>0.607709</td>\n",
" <td>0.207808</td>\n",
" <td>0.076941</td>\n",
" <td>0.554329</td>\n",
" <td>12.547600</td>\n",
" <td>0.263354</td>\n",
" <td>0.128016</td>\n",
" <td>0.666597</td>\n",
" <td>1.567858</td>\n",
" <td>0.490143</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>38.127552</td>\n",
" <td>12.819483</td>\n",
" <td>4.606318</td>\n",
" <td>6.185785</td>\n",
" <td>240.913358</td>\n",
" <td>26.994655</td>\n",
" <td>32.893042</td>\n",
" <td>81.045250</td>\n",
" <td>29.452025</td>\n",
" <td>0.000000</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>39.766086</td>\n",
" <td>13.266816</td>\n",
" <td>4.782196</td>\n",
" <td>7.696967</td>\n",
" <td>276.409171</td>\n",
" <td>27.700514</td>\n",
" <td>33.235614</td>\n",
" <td>83.091202</td>\n",
" <td>33.201880</td>\n",
" <td>0.000000</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>40.180577</td>\n",
" <td>13.411705</td>\n",
" <td>4.835508</td>\n",
" <td>8.035788</td>\n",
" <td>284.793601</td>\n",
" <td>27.891187</td>\n",
" <td>33.310343</td>\n",
" <td>83.532637</td>\n",
" <td>34.181047</td>\n",
" <td>0.000000</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>40.585769</td>\n",
" <td>13.551773</td>\n",
" <td>4.887126</td>\n",
" <td>8.418266</td>\n",
" <td>292.703723</td>\n",
" <td>28.056815</td>\n",
" <td>33.399496</td>\n",
" <td>83.986594</td>\n",
" <td>35.215226</td>\n",
" <td>1.000000</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>41.995533</td>\n",
" <td>14.107801</td>\n",
" <td>5.061759</td>\n",
" <td>9.739467</td>\n",
" <td>333.690281</td>\n",
" <td>28.763847</td>\n",
" <td>33.795522</td>\n",
" <td>85.844335</td>\n",
" <td>39.519481</td>\n",
" <td>1.000000</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-1aca87c5-e28c-42de-9e7d-3cd63b154d46')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-1aca87c5-e28c-42de-9e7d-3cd63b154d46 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-1aca87c5-e28c-42de-9e7d-3cd63b154d46');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
"<div id=\"df-6bc91f85-de2a-44cf-8980-bded70bef8c4\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-6bc91f85-de2a-44cf-8980-bded70bef8c4')\"\n",
" title=\"Suggest charts\"\n",
" style=\"display:none;\">\n",
"\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <g>\n",
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
" </g>\n",
"</svg>\n",
" </button>\n",
"\n",
"<style>\n",
" .colab-df-quickchart {\n",
" --bg-color: #E8F0FE;\n",
" --fill-color: #1967D2;\n",
" --hover-bg-color: #E2EBFA;\n",
" --hover-fill-color: #174EA6;\n",
" --disabled-fill-color: #AAA;\n",
" --disabled-bg-color: #DDD;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-quickchart {\n",
" --bg-color: #3B4455;\n",
" --fill-color: #D2E3FC;\n",
" --hover-bg-color: #434B5C;\n",
" --hover-fill-color: #FFFFFF;\n",
" --disabled-bg-color: #3B4455;\n",
" --disabled-fill-color: #666;\n",
" }\n",
"\n",
" .colab-df-quickchart {\n",
" background-color: var(--bg-color);\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: var(--fill-color);\n",
" height: 32px;\n",
" padding: 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-quickchart:hover {\n",
" background-color: var(--hover-bg-color);\n",
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: var(--button-hover-fill-color);\n",
" }\n",
"\n",
" .colab-df-quickchart-complete:disabled,\n",
" .colab-df-quickchart-complete:disabled:hover {\n",
" background-color: var(--disabled-bg-color);\n",
" fill: var(--disabled-fill-color);\n",
" box-shadow: none;\n",
" }\n",
"\n",
" .colab-df-spinner {\n",
" border: 2px solid var(--fill-color);\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" animation:\n",
" spin 1s steps(1) infinite;\n",
" }\n",
"\n",
" @keyframes spin {\n",
" 0% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" border-left-color: var(--fill-color);\n",
" }\n",
" 20% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 30% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 40% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 60% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 80% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" 90% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" }\n",
"</style>\n",
"\n",
" <script>\n",
" async function quickchart(key) {\n",
" const quickchartButtonEl =\n",
" document.querySelector('#' + key + ' button');\n",
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
" try {\n",
" const charts = await google.colab.kernel.invokeFunction(\n",
" 'suggestCharts', [key], {});\n",
" } catch (error) {\n",
" console.error('Error during call to suggestCharts:', error);\n",
" }\n",
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
" }\n",
" (() => {\n",
" let quickchartButtonEl =\n",
" document.querySelector('#df-6bc91f85-de2a-44cf-8980-bded70bef8c4 button');\n",
" quickchartButtonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
" })();\n",
" </script>\n",
"</div>\n",
" </div>\n",
" </div>\n"
],
"text/plain": [
" HAEMATOCRIT HAEMOGLOBINS ERYTHROCYTE LEUCOCYTE THROMBOCYTE \\\n",
"count 1000.000000 1000.000000 1000.000000 1000.000000 1000.000000 \n",
"mean 40.188590 13.412338 4.834505 8.044774 284.275092 \n",
"std 0.607709 0.207808 0.076941 0.554329 12.547600 \n",
"min 38.127552 12.819483 4.606318 6.185785 240.913358 \n",
"25% 39.766086 13.266816 4.782196 7.696967 276.409171 \n",
"50% 40.180577 13.411705 4.835508 8.035788 284.793601 \n",
"75% 40.585769 13.551773 4.887126 8.418266 292.703723 \n",
"max 41.995533 14.107801 5.061759 9.739467 333.690281 \n",
"\n",
" MCH MCHC MCV AGE SEX SOURCE \n",
"count 1000.000000 1000.000000 1000.000000 1000.000000 1000.000000 1000.0 \n",
"mean 27.881097 33.316171 83.531105 34.210489 0.400000 1.0 \n",
"std 0.263354 0.128016 0.666597 1.567858 0.490143 0.0 \n",
"min 26.994655 32.893042 81.045250 29.452025 0.000000 1.0 \n",
"25% 27.700514 33.235614 83.091202 33.201880 0.000000 1.0 \n",
"50% 27.891187 33.310343 83.532637 34.181047 0.000000 1.0 \n",
"75% 28.056815 33.399496 83.986594 35.215226 1.000000 1.0 \n",
"max 28.763847 33.795522 85.844335 39.519481 1.000000 1.0 "
]
},
"execution_count": 55,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Data after sampling with noise for class label 1.\n",
"# standard deviation is increased as we have added noise.\n",
"df_fake_with_noise_1.describe()"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "5JNPphFADVMM"
},
"source": [
"# VII. Tasks to do if Feature Selection is Relevant to your Project"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "qAw1YCuEDVMM"
},
"source": [
"## Choose Your Feature Selection Methods:\n",
"\n",
"There are various feature selection methods, and the choice depends on the dataset and the problem. Common techniques include:\n",
" \n",
"- Filter Methods: Evaluate features based on statistical measures, such as correlation, information gain, or chi-square.\n",
"- Wrapper Methods: Use a specific machine learning algorithm to evaluate subsets of features based on their impact on model performance.\n",
"- Embedded Methods: Feature selection is integrated into the model training process, as seen in regularization techniques.\n",
" \n",
"List the methods you will use providing a short derscription of each."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "k7Y_pXy2DVMM"
},
"source": [
"The feature selection we used SelectKbest in scikit learn library, it recommended using all features for training."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "8jaWxPmrDVMN"
},
"source": [
"## Apply Feature Selection Methods:\n",
"\n",
"Implement the chosen feature selection methods on the training data. This involves ranking or scoring features based on their relevance to the target variable.\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "uQkxx5-9DVMN"
},
"outputs": [],
"source": [
"# function to train the model with 5 fold nested cross validation accompanied with grid search CV for feature selection and hyperparameter selection\n",
"\n",
"import warnings\n",
"warnings.filterwarnings(\"ignore\")\n",
"def train_model(model_name, type, X_train, y_train,scoring):\n",
"\n",
" if model_name == 'xgb':\n",
"\n",
" if type == 'regression':\n",
" kbest = SelectKBest(f_regression)\n",
" model = XGBRegressor(tree_method='gpu_hist', gpu_id=0)\n",
" # model = XGBRegressor()\n",
"\n",
" else:\n",
" kbest = SelectKBest(f_classif)\n",
" # model = XGBClassifier(tree_method='gpu_hist', gpu_id=0)\n",
" model = XGBClassifier()\n",
"\n",
" pipeline = Pipeline([('kbest', kbest), ('xgb', model)])\n",
" param_grid = {\n",
" 'xgb__max_depth': [3,4,6,7,8],\n",
" 'xgb__n_estimators': [1,5,10,15,20,30,35,40,45,50],\n",
" 'xgb__learning_rate': [0.1],#, 0.01,0.02, 0.05],\n",
" # 'kbest__k': [10,15,'all']\n",
" 'kbest__k': ['all']\n",
" }\n",
"\n",
"\n",
" elif model_name == 'rf':\n",
" if type == 'regression':\n",
" kbest = SelectKBest(f_regression)\n",
" model = RandomForestRegressor(n_jobs=-1, random_state=0)\n",
"\n",
" else:\n",
" kbest = SelectKBest(f_classif)\n",
" model = RandomForestClassifier(n_jobs=-1, random_state=0, class_weight='balanced')\n",
" pipeline = Pipeline([ ('kbest', kbest), ('rf', model)])\n",
" param_grid = {\n",
" 'rf__n_estimators': [1,5,10,15,20,30,35,40,45,50],\n",
" 'rf__max_features': ['sqrt','log2'],\n",
" 'rf__max_depth' : [3,4,6,7,8],\n",
" 'kbest__k': [5,10,15,'all']\n",
" }\n",
"\n",
" elif model_name == 'linear':\n",
" scaler = StandardScaler()\n",
" # X_train = scalar.fit_transform(X_train)\n",
" # X_test = scaler.transform(X_test)\n",
" if type == 'regression':\n",
" kbest = SelectKBest(f_regression)\n",
" model = LinearRegression()\n",
" #\n",
" pipeline = Pipeline([ ('transformer', scaler), ('kbest', kbest), ('li', model)])\n",
" param_grid = {\n",
" 'kbest__k': [10,15,'all']\n",
" }\n",
" else:\n",
" kbest = SelectKBest(f_classif)\n",
" model = LogisticRegression(class_weight='balanced', solver = 'liblinear') #('transformer', scalar),\n",
" pipeline = Pipeline([ ('transformer', scaler), ('kbest', kbest), ('li', model)])\n",
" param_grid = {\n",
" # 'li__penalty': ['l1','l2'],\n",
" 'li__C': [0.5, 0.8, 1],\n",
" 'kbest__k': [10,15,'all']\n",
" }\n",
"\n",
" # else:\n",
" if type == 'regression':\n",
" # metrics = [get_r2, get_rmse, get_mae]\n",
" metrics = {'get_r2':get_r2, 'get_rmse':get_rmse, 'get_mae':get_mae}\n",
"\n",
" else:\n",
" # metrics = [get_auroc, get_auprc, get_sens, get_spec, get_ppv, get_npv, get_acc]\n",
" metrics = {'get_auroc': get_auroc, 'get_auprc': get_auprc, 'get_sens': get_sens, 'get_spec': get_spec, 'get_ppv':get_ppv, 'get_npv': get_npv, 'get_acc': get_acc}\n",
" # gkf = GroupKFold(n_splits=5)\n",
"\n",
"\n",
"\n",
"\n",
" print('--- Initiating grid search ---')\n",
"\n",
"\n",
" rf_cv = GridSearchCV(estimator=pipeline, param_grid=param_grid, refit = 'get_auroc', scoring = metrics, cv= 5)\n",
" rf_cv.fit(x_train, y_train)\n",
" # print(rf_cv)\n",
" res = {'get_auroc': [], 'get_auprc': [], 'get_sens': [], 'get_spec': [], 'get_ppv':[], 'get_npv': [], 'get_acc': []}\n",
" for i in range(5):\n",
" for metric in res:\n",
" res[metric].append(rf_cv.cv_results_[f'split{i}_test_{metric}'][rf_cv.best_index_])\n",
"\n",
" for metric in res:\n",
" print(metric[4:], sum(res[metric])/len(res[metric]))\n",
"\n",
"\n",
"\n",
" return rf_cv"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "SNnzF_IIDVMN"
},
"source": [
"## Evaluate Models Performance:\n",
"\n",
"Train your machine learning models using the selected features and evaluate their performance on the testing set. Measure metrics such as accuracy, precision, recall, and F1 score."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "U3unV0AWDVMN"
},
"outputs": [],
"source": [
"# functions for metric calculations\n",
"def youden_threshold(fpr, tpr, thresholds):\n",
"\n",
" idx = np.argmax(tpr - fpr)\n",
" return thresholds[idx]\n",
"\n",
"\n",
"def get_mae(clf, X, y_true):\n",
" # print(clf.best_params_)\n",
" y_pred = clf.predict(X)\n",
" return mean_absolute_error(y_true, y_pred)\n",
"\n",
"def get_auroc(clf, X, y_true):\n",
" # print(clf.best_params_)\n",
" y_pred_score = clf.predict_proba(X)[:,1]\n",
" auroc = roc_auc_score(y_true, y_pred_score)\n",
" return auroc\n",
"\n",
"def get_auprc(clf, X, y_true):\n",
" # print(clf.best_params_)\n",
" y_pred_score = clf.predict_proba(X)[:,1]\n",
" pr, re, thresh = precision_recall_curve(y_true, y_pred_score)\n",
" auprc = auc(re, pr)\n",
" return auprc\n",
"\n",
"def get_sens(clf, X, y_true):\n",
" # print(clf.best_params_)\n",
" y_pred_score = clf.predict_proba(X)[:,1]\n",
" fpr, tpr, thresholds = roc_curve(y_true, y_pred_score)\n",
" J = youden_threshold(fpr, tpr, thresholds)\n",
" y_pred_class = (y_pred_score >= J).astype('int')\n",
" cm = confusion_matrix(y_true, y_pred_class)\n",
" # print(cm)\n",
" tn = cm[0, 0]\n",
" fn = cm[1, 0]\n",
" tp = cm[1, 1]\n",
" fp = cm[0, 1]\n",
"\n",
" sens = tp / (tp + fn)\n",
" return sens\n",
"\n",
"def get_spec(clf, X, y_true):\n",
" # print(clf.best_params_)\n",
" y_pred_score = clf.predict_proba(X)[:,1]\n",
" fpr, tpr, thresholds = roc_curve(y_true, y_pred_score)\n",
" J = youden_threshold(fpr, tpr, thresholds)\n",
" y_pred_class = (y_pred_score >= J).astype('int')\n",
" cm = confusion_matrix(y_true, y_pred_class)\n",
" # print(cm)\n",
" tn = cm[0, 0]\n",
" fn = cm[1, 0]\n",
" tp = cm[1, 1]\n",
" fp = cm[0, 1]\n",
"\n",
" spec = tn / (tn + fp)\n",
" return spec\n",
"\n",
"\n",
"def get_ppv(clf, X, y_true):\n",
" # print(clf.best_params_)\n",
" y_pred_score = clf.predict_proba(X)[:,1]\n",
" fpr, tpr, thresholds = roc_curve(y_true, y_pred_score)\n",
" J = youden_threshold(fpr, tpr, thresholds)\n",
" y_pred_class = (y_pred_score >= J).astype('int')\n",
" cm = confusion_matrix(y_true, y_pred_class)\n",
" # print(cm)\n",
"\n",
" tn = cm[0, 0]\n",
" fn = cm[1, 0]\n",
" tp = cm[1, 1]\n",
" fp = cm[0, 1]\n",
"\n",
" ppv = tp / (tp + fp)\n",
" # print(tp,fp,ppv)\n",
" return ppv\n",
"\n",
"def get_npv(clf, X, y_true):\n",
" # print(clf.best_params_)\n",
" y_pred_score = clf.predict_proba(X)[:,1]\n",
" fpr, tpr, thresholds = roc_curve(y_true, y_pred_score)\n",
" J = youden_threshold(fpr, tpr, thresholds)\n",
" y_pred_class = (y_pred_score >= J).astype('int')\n",
" cm = confusion_matrix(y_true, y_pred_class)\n",
" # print(cm)\n",
" tn = cm[0, 0]\n",
" fn = cm[1, 0]\n",
" tp = cm[1, 1]\n",
" fp = cm[0, 1]\n",
" npv = tn / (tn + fn)\n",
" return npv\n",
"\n",
"\n",
"def get_acc(clf, X, y_true):\n",
" # print(clf.best_params_)\n",
" y_pred_score = clf.predict_proba(X)[:,1]\n",
" fpr, tpr, thresholds = roc_curve(y_true, y_pred_score)\n",
" J = youden_threshold(fpr, tpr, thresholds)\n",
" y_pred_class = (y_pred_score >= J).astype('int')\n",
" cm = confusion_matrix(y_true, y_pred_class)\n",
" # print(cm)\n",
" tn = cm[0, 0]\n",
" fn = cm[1, 0]\n",
" tp = cm[1, 1]\n",
" fp = cm[0, 1]\n",
" acc = (tp + tn) / (tp + fp + fn + tn)\n",
" return acc\n",
"\n",
"def get_metrics_classification( y_true, y_pred_score):\n",
" # y_pred_score = clf.predict_proba(X)[:,1]\n",
" # print(y_pred_score)\n",
" fpr, tpr, thresholds = roc_curve(y_true, y_pred_score)\n",
" J = youden_threshold(fpr, tpr, thresholds)\n",
" y_pred_class = (y_pred_score >= J).astype('int')\n",
" # print(y_pred_class)\n",
" # y_pred_class = y_pred_score\n",
" # Score-based metrics\n",
" auroc = roc_auc_score(y_true, y_pred_score)\n",
"\n",
" pr, re, thresh = precision_recall_curve(y_true, y_pred_score)\n",
" auprc = auc(re, pr)\n",
"\n",
" # Class-based metrics\n",
" cm = confusion_matrix(y_true, y_pred_class)\n",
" # print(cm)\n",
" tn = cm[0, 0]\n",
" fn = cm[1, 0]\n",
" tp = cm[1, 1]\n",
" fp = cm[0, 1]\n",
"\n",
" sens = tp / (tp + fn)\n",
" spec = tn / (tn + fp)\n",
" ppv = tp / (tp + fp)\n",
" npv = tn / (tn + fn)\n",
" acc = (tp + tn) / (tp + fp + fn + tn)\n",
" # print(ppv)\n",
" # print(tp)\n",
" # print(tp + fp)\n",
" return np.array([auroc, auprc, sens, spec, ppv, npv, acc])"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "hXkDu77V_4mn"
},
"source": [
"### Model Training Without any agmentation"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "iKzEiX2qDVMN"
},
"outputs": [],
"source": [
"# without any augmentation\n",
"df = pd.read_csv('/content/normalized_data.csv')\n",
"df['SEX'] = df['SEX'].apply(lambda x: 1 if x == 'M' else 0)\n",
"df['SOURCE'] = df['SOURCE'].apply(lambda x: 1 if x == 'out' else 0)\n",
"x_train, x_test, y_train, y_test = train_test_split(df[['HAEMATOCRIT','HAEMOGLOBINS', 'ERYTHROCYTE', 'LEUCOCYTE','THROMBOCYTE', 'MCH','MCHC',\t'MCV'\t,'AGE', 'SEX']], df['SOURCE'], test_size = .25)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "nKV1GC0fzHIZ",
"outputId": "6f81dbe5-3ce0-4bb7-eb12-02939d6250f4"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"--- Initiating grid search ---\n",
"auroc 0.7944022430899065\n",
"auprc 0.8319472702091131\n",
"sens 0.8011152043705987\n",
"spec 0.6857570573139435\n",
"ppv 0.8114184059856255\n",
"npv 0.6751588475273455\n",
"acc 0.7582222222222222\n"
]
}
],
"source": [
"CV_rfc = train_model('xgb','classification', x_train, y_train, 'roc_auc')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "gxZUDC5zAf6x",
"outputId": "45ca40bc-04d6-42f3-a4a5-ad3d4f17efef"
},
"outputs": [
{
"data": {
"text/plain": [
"{'kbest__k': 'all',\n",
" 'xgb__learning_rate': 0.1,\n",
" 'xgb__max_depth': 3,\n",
" 'xgb__n_estimators': 30}"
]
},
"execution_count": 67,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"CV_rfc.best_params_ #feature selection using grid search"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "JYSa7ZIs79Ci",
"outputId": "e5efb303-79df-44f5-95b8-0d996f5a729c"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Test Scores:\n",
"auroc: 0.7226392151858829\n",
"auprc: 0.8629987914836647\n",
"sens: 0.9262472885032538\n",
"spec: 0.5190311418685121\n",
"ppv: 0.7544169611307421\n",
"npv: 0.8152173913043478\n",
"acc: 0.7693333333333333\n"
]
}
],
"source": [
"# best_model = CV_rfc.best_estimator_\n",
"bst = XGBClassifier(n_estimators=30, max_depth=3, learning_rate= 0.1)\n",
"bst.fit(x_train, y_train)\n",
"# y_pred = CV_rfc.predict_proba(X_test)[:, 1]\n",
"y_pred = bst.predict(x_test)\n",
"res = get_metrics_classification( y_test, y_pred)\n",
"print('Test Scores:')\n",
"print('auroc: ', res[0])\n",
"print('auprc: ', res[1])\n",
"print('sens: ', res[2])\n",
"print('spec: ', res[3])\n",
"print('ppv: ', res[4])\n",
"print('npv: ', res[5])\n",
"print('acc: ', res[6])"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "2NJ7nOVY__al"
},
"source": [
"### Model Training With SMOTE-NC"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "GwnDSJyN70w5"
},
"outputs": [],
"source": [
"# With SMOTE-NC\n",
"\n",
"df = pd.read_csv('augmented_dataset_nc.csv')\n",
"\n",
"# Remove duplicate rows\n",
"columns_to_check = ['HAEMATOCRIT', 'HAEMOGLOBINS', 'ERYTHROCYTE', 'LEUCOCYTE', 'THROMBOCYTE', 'MCH', 'MCHC', 'MCV', 'AGE', 'SEX', 'SOURCE']\n",
"df_no_duplicates = df.drop_duplicates(subset=columns_to_check)\n",
"# print(df.drop_duplicates())\n",
"\n",
"columns_to_normalize = ['HAEMATOCRIT', 'HAEMOGLOBINS', 'ERYTHROCYTE', 'LEUCOCYTE', 'THROMBOCYTE', 'MCH', 'MCHC', 'MCV', 'AGE']\n",
"\n",
"# Create a MinMaxScaler object\n",
"scaler = MinMaxScaler()\n",
"\n",
"# Apply the MinMaxScaler to the selected columns in the df without duplicates\n",
"df_no_duplicates[columns_to_normalize] = scaler.fit_transform(df_no_duplicates[columns_to_normalize])\n",
"\n",
"# Save the normalized df without duplicates to a new CSV file\n",
"df_no_duplicates.to_csv('normalized_augmented_data.csv', index=False)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "Yr9AAYFX7YwF"
},
"outputs": [],
"source": [
"df = pd.read_csv('/content/normalized_augmented_data.csv')\n",
"df['SEX'] = df['SEX'].apply(lambda x: 1 if x == 'M' else 0)\n",
"df['SOURCE'] = df['SOURCE'].apply(lambda x: 1 if x == 'out' else 0)\n",
"x_train, x_test, y_train, y_test = train_test_split(df[['HAEMATOCRIT','HAEMOGLOBINS', 'ERYTHROCYTE', 'LEUCOCYTE','THROMBOCYTE', 'MCH','MCHC',\t'MCV'\t,'AGE', 'SEX']], df['SOURCE'], test_size = .25)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "-KBADiBDDKcW",
"outputId": "2cffdaef-3b37-40ba-c281-943e0bdcc6b4"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"--- Initiating grid search ---\n",
"auroc 0.8420249393333112\n",
"auprc 0.810301745680116\n",
"sens 0.8141181154611811\n",
"spec 0.7352255129694154\n",
"ppv 0.7455092000903913\n",
"npv 0.8073213439891103\n",
"acc 0.7737400681403008\n"
]
}
],
"source": [
"CV_rfc = train_model('xgb','classification', x_train, y_train, 'roc_auc')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "y_qonr0-DKcX",
"outputId": "ddabd7d9-6349-40c6-c6de-d5bba212a42f"
},
"outputs": [
{
"data": {
"text/plain": [
"{'kbest__k': 'all',\n",
" 'xgb__learning_rate': 0.1,\n",
" 'xgb__max_depth': 8,\n",
" 'xgb__n_estimators': 50}"
]
},
"execution_count": 76,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"CV_rfc.best_params_"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "FAmi-69mDKcY",
"outputId": "e958f77f-d2d2-40e4-e6f4-692d35ae64ae"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Test Scores:\n",
"auroc: 0.7571049136786189\n",
"auprc: 0.834962990917363\n",
"sens: 0.7808764940239044\n",
"spec: 0.7333333333333333\n",
"ppv: 0.7716535433070866\n",
"npv: 0.7435897435897436\n",
"acc: 0.7588046958377801\n"
]
}
],
"source": [
"# best_model = CV_rfc.best_estimator_\n",
"bst = XGBClassifier(n_estimators=50, max_depth=8, learning_rate= 0.1)\n",
"bst.fit(x_train, y_train)\n",
"y_pred = bst.predict(x_test)\n",
"res = get_metrics_classification( y_test, y_pred)\n",
"print('Test Scores:')\n",
"print('auroc: ', res[0])\n",
"print('auprc: ', res[1])\n",
"print('sens: ', res[2])\n",
"print('spec: ', res[3])\n",
"print('ppv: ', res[4])\n",
"print('npv: ', res[5])\n",
"print('acc: ', res[6])"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "tax_UgDyBFZE"
},
"source": [
"### Model Training With Sampling (noise and without noise)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "s2anHlEgBE0j"
},
"outputs": [],
"source": [
"#without noise\n",
"df = pd.read_csv('/content/drive/MyDrive/dataset_project5.csv')\n",
"df['SEX'] = df['SEX'].apply(lambda x: 1 if x == 'M' else 0)\n",
"df['SOURCE'] = df['SOURCE'].apply(lambda x: 1 if x == 'out' else 0)\n",
"df_merged = pd.concat([df,df_fake_1, df_fake_0])\n",
"df_merged.sample(frac=1)\n",
"\n",
"x_train, x_test, y_train, y_test = train_test_split(df_merged[['HAEMATOCRIT','HAEMOGLOBINS', 'ERYTHROCYTE', 'LEUCOCYTE','THROMBOCYTE', 'MCH','MCHC',\t'MCV'\t,'AGE', 'SEX']], df_merged['SOURCE'], test_size = .25)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "mh9hH7OBBa5D",
"outputId": "51e5fad9-8432-4325-fde4-f53722ade058"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"--- Initiating grid search ---\n",
"auroc 0.9294320413885633\n",
"auprc 0.9421321127954705\n",
"sens 0.9014378145219266\n",
"spec 0.806085408564076\n",
"ppv 0.8616527653326476\n",
"npv 0.8652307060905852\n",
"acc 0.8605333333333334\n"
]
}
],
"source": [
"# without noise\n",
"CV_rfc = train_model('xgb','classification', x_train, y_train, 'roc_auc')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "83FzYYMR1mqR",
"outputId": "ce07ec10-0749-4f16-c20b-dd8cbcdf8111"
},
"outputs": [
{
"data": {
"text/plain": [
"{'kbest__k': 'all',\n",
" 'xgb__learning_rate': 0.1,\n",
" 'xgb__max_depth': 4,\n",
" 'xgb__n_estimators': 45}"
]
},
"execution_count": 109,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"CV_rfc.best_params_"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "iRuj7agE1mqS",
"outputId": "0366a4ab-e0b7-40e7-a0a7-6c93b981f4a3"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Test Scores:\n",
"auroc: 0.8556421373175603\n",
"auprc: 0.9143753947699507\n",
"sens: 0.931787175989086\n",
"spec: 0.7794970986460348\n",
"ppv: 0.8569636135508155\n",
"npv: 0.8896247240618101\n",
"acc: 0.8688\n"
]
}
],
"source": [
"# without noise\n",
"bst = XGBClassifier(n_estimators=45, max_depth=4, learning_rate= 0.1)\n",
"bst.fit(x_train, y_train)\n",
"y_pred = bst.predict(x_test)\n",
"res = get_metrics_classification( y_test, y_pred)\n",
"print('Test Scores:')\n",
"print('auroc: ', res[0])\n",
"print('auprc: ', res[1])\n",
"print('sens: ', res[2])\n",
"print('spec: ', res[3])\n",
"print('ppv: ', res[4])\n",
"print('npv: ', res[5])\n",
"print('acc: ', res[6])"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "cXQgIG-RDC8X"
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "EWGiyNSj1mqS"
},
"outputs": [],
"source": [
"# with noise\n",
"df = pd.read_csv('/content/drive/MyDrive/dataset_project5.csv')\n",
"df['SEX'] = df['SEX'].apply(lambda x: 1 if x == 'M' else 0)\n",
"df['SOURCE'] = df['SOURCE'].apply(lambda x: 1 if x == 'out' else 0)\n",
"df_merged = pd.concat([df,df_fake_with_noise_0, df_fake_with_noise_1])\n",
"df_merged.sample(frac=1)\n",
"\n",
"x_train, x_test, y_train, y_test = train_test_split(df_merged[['HAEMATOCRIT','HAEMOGLOBINS', 'ERYTHROCYTE', 'LEUCOCYTE','THROMBOCYTE', 'MCH','MCHC',\t'MCV'\t,'AGE', 'SEX']], df_merged['SOURCE'], test_size = .25)\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "IkSV4nHICk2g",
"outputId": "34603fa3-f4d3-4ce2-b50f-4e21d3b74ae0"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"--- Initiating grid search ---\n",
"auroc 0.931916651006499\n",
"auprc 0.9446991307054204\n",
"sens 0.9112545189661685\n",
"spec 0.8003938087774294\n",
"ppv 0.8609848282722009\n",
"npv 0.8720084482416229\n",
"acc 0.8640000000000001\n"
]
}
],
"source": [
"# with noise\n",
"CV_rfc = train_model('xgb','classification', x_train, y_train, 'roc_auc')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "5UfpgthICFwV",
"outputId": "a5ce80bc-75fb-41ef-cc82-f3630aa288a0"
},
"outputs": [
{
"data": {
"text/plain": [
"{'kbest__k': 'all',\n",
" 'xgb__learning_rate': 0.1,\n",
" 'xgb__max_depth': 4,\n",
" 'xgb__n_estimators': 45}"
]
},
"execution_count": 96,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"CV_rfc.best_params_"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "Zlz1gFWhCFwX",
"outputId": "12b85dbb-3bfa-4ace-945b-314880c05e8b"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Test Scores:\n",
"auroc: 0.8405156131956686\n",
"auprc: 0.9032869595708124\n",
"sens: 0.9196675900277008\n",
"spec: 0.7613636363636364\n",
"ppv: 0.8405063291139241\n",
"npv: 0.8739130434782608\n",
"acc: 0.8528\n"
]
}
],
"source": [
"# with noise\n",
"bst = XGBClassifier(n_estimators=45, max_depth=4, learning_rate= 0.1)\n",
"bst.fit(x_train, y_train)\n",
"\n",
"y_pred = bst.predict(x_test)\n",
"res = get_metrics_classification( y_test, y_pred)\n",
"print('Test Scores:')\n",
"print('auroc: ', res[0])\n",
"print('auprc: ', res[1])\n",
"print('sens: ', res[2])\n",
"print('spec: ', res[3])\n",
"print('ppv: ', res[4])\n",
"print('npv: ', res[5])\n",
"print('acc: ', res[6])"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "VyQ1ljZiBaZP"
},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "ywAuWpSODVMN"
},
"source": [
"## Compare Models Performance:\n",
"\n",
"Provide a comparative analysis of the relative performance of the used models."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "IY3iZcW-EQfs"
},
"source": [
"Our primary metric of evaluation is AUROC, and we have calculated other metrics such as AUPRC, Senstivity, Specificity, PPV, NPV, and accuracy.\n",
"The original model without any augmentation performed poor compared to the other 3 models with its metric being -\n",
"\n",
"Test Scores:\n",
"1. auroc: 0.7226392151858829\n",
"2. auprc: 0.8629987914836647\n",
"3. sens: 0.9262472885032538\n",
"4. spec: 0.5190311418685121\n",
"5. ppv: 0.7544169611307421\n",
"6. npv: 0.8152173913043478\n",
"7. acc: 0.7693333333333333\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "3bOwwhlIFXxW"
},
"source": [
"The SMOTE-NC, although a oversampling technique gave better results because count of class 0(In) is 1126 compared to 1874 of class 1 (out) in the original dataset. After oversampling the length of dataset becomes 3748 and yields the following test metric values.\n",
"\n",
"Test Scores:\n",
"1. auroc: 0.7571049136786189\n",
"2. auprc: 0.834962990917363\n",
"3. sens: 0.7808764940239044\n",
"4. spec: 0.7333333333333333\n",
"5. ppv: 0.7716535433070866\n",
"6. npv: 0.7435897435897436\n",
"7. acc: 0.7588046958377801"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "_-bw5dUqGOhE"
},
"source": [
"The Second and Third augmentation technique (sampling with and without noise) outperforms both the previous results (with and without SMOTE-NC). There are cases where second augmentation technique performs poor compared to the third augmentation because of overfitting on low variance (no noise) data, while the third augmentation includes some noise which makes it robust on unseen test data.\n",
"\n",
"Test Scores (Second Augmentation Technique):\n",
"1. auroc: 0.8556421373175603\n",
"2. auprc: 0.9143753947699507\n",
"3. sens: 0.931787175989086\n",
"4. spec: 0.7794970986460348\n",
"5. ppv: 0.8569636135508155\n",
"6. npv: 0.8896247240618101\n",
"7. acc: 0.8688\n",
"\n",
"\n",
"Test Scores (Third Augmentation Technique):\n",
"1. auroc: 0.8405156131956686\n",
"2. auprc: 0.9032869595708124\n",
"3. sens: 0.9196675900277008\n",
"4. spec: 0.7613636363636364\n",
"5. ppv: 0.8405063291139241\n",
"6. npv: 0.8739130434782608\n",
"7. acc: 0.8528\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "pPam09d4DVMO",
"outputId": "f7443406-0ce4-494b-8e0e-62d70ae23ac9"
},
"outputs": [
{
"data": {
"text/plain": [
"1 1874\n",
"0 1126\n",
"Name: SOURCE, dtype: int64"
]
},
"execution_count": 114,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['SOURCE'].value_counts()"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "nnwPwgjB8DwS"
},
"source": [
"# **IX. Conclusion and Final Recommendations**"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "P7yR_gIYDVMT"
},
"source": [
"Please describe how your methods showed better results than others considering your relevant methods."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "iJZScpLJH-29"
},
"source": [
"The application of SMOTE-NC and Variational Auto Encoder (VAE) based sampling techniques significantly improved the performance of our model, each contributing uniquely to handling the challenges posed by our dataset.\n",
"\n",
"SMOTE-NC: This method effectively addressed the issue of class imbalance by generating additional data for the 'in' class, which was underrepresented in the original dataset. By augmenting the dataset size to 3748 samples, SMOTE-NC improved model performance by 3%. This enhancement is attributed to the more balanced class representation, which allowed the model to learn from a dataset that more accurately reflects the real-world distribution of classes.\n",
"\n",
"Sampling Using Variational Auto Encoder: The second and third augmentation techniques, which involved sampling from the underlying distributions of class 'in' and class 'out', further improved the dataset. By leveraging a VAE to understand and replicate the data distribution, we were able to create a more representative and diverse dataset of 5000 data points. This approach led to an additional performance improvement of approximately 10% compared to using SMOTE-NC alone, and 13% in comparison to the scenario with no augmentation.\n",
"\n",
"The superior performance achieved with the VAE-based sampling methods can be attributed to the generation of new, diverse, and yet representative samples that captured the nuances of both classes. This enabled the model to learn from a richer and more complex dataset, enhancing its ability to generalize and perform accurately on unseen data.\n",
"\n",
"In summary, while SMOTE-NC effectively tackled class imbalance, the VAE-based sampling methods provided a more nuanced augmentation by capturing the underlying distributional characteristics of each class. The combined use of these techniques resulted in a robust and well-performing model, demonstrating the efficacy of targeted data augmentation strategies in machine learning."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "ThUumf_6DVMT"
},
"source": [
"### Recommendation - 1 (Model Interpretability)\n",
"Observing the prime features which are responsible for driving the predictions is neccesary.\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 44
},
"id": "EtzU8j4S2xLT",
"outputId": "dc996057-27fd-444e-96eb-dd7c226ee2e6"
},
"outputs": [
{
"data": {
"text/html": [
"<div align='center'><img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAWCAYAAAA1vze2AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAdxJREFUeNq0Vt1Rg0AQJjcpgBJiBWIFkgoMFYhPPAIVECogPuYpdJBYgXQQrMCUkA50V7+d2ZwXuXPGm9khHLu3f9+3l1nkWNvtNqfHLgpfQ1EUS3tz5nAQ0+NIsiAZSc6eDlI8M3J00B/mDuUKDk6kfOebAgW3pkdD0pFcODGW4gKKvOrAUm04MA4QDt1OEIXU9hDigfS5rC1eS5T90gltck1Xrizo257kgySZcNRzgCSxCvgiE9nckPJo2b/B2AcEkk2OwL8bD8gmOKR1GPbaCUqxEgTq0tLvgb6zfo7+DgYGkkWL2tqLDV4RSITfbHPPfJKIrWz4nJQTMPAWA7IbD6imcNaDeDfgk+4No+wZr40BL3g9eQJJCFqRQ54KiSt72lsLpE3o3MCBSxDuq4yOckU2hKXRuwBH3OyMR4g1UpyTYw6mlmBqNdUXRM1NfyF5EPI6JkcpIDBIX8jX6DR/6ckAZJ0wEAdLR8DEk6OfC1Pp8BKo6TQIwPJbvJ6toK5lmuvJoRtfK6Ym1iRYIarRo2UyYHvRN5qpakR3yoizWrouoyuXXQqI185LCw07op5ZyCRGL99h24InP0e9xdQukEKVmhzrqZuRIfwISB//cP3Wk3f8f/yR+BRgAHu00HjLcEQBAAAAAElFTkSuQmCC' /></div><script charset='utf-8'>/*! For license information please see bundle.js.LICENSE.txt */\n",
"(()=>{var e={486:function(e,t,n){var r;e=n.nmd(e),function(){var a,i=\"Expected a function\",o=\"__lodash_hash_undefined__\",u=\"__lodash_placeholder__\",l=32,s=128,c=1/0,f=9007199254740991,p=NaN,d=4294967295,h=[[\"ary\",s],[\"bind\",1],[\"bindKey\",2],[\"curry\",8],[\"curryRight\",16],[\"flip\",512],[\"partial\",l],[\"partialRight\",64],[\"rearg\",256]],v=\"[object Arguments]\",g=\"[object Array]\",y=\"[object Boolean]\",m=\"[object Date]\",b=\"[object Error]\",_=\"[object Function]\",w=\"[object GeneratorFunction]\",x=\"[object Map]\",k=\"[object Number]\",S=\"[object Object]\",E=\"[object Promise]\",C=\"[object RegExp]\",T=\"[object Set]\",M=\"[object String]\",N=\"[object Symbol]\",P=\"[object WeakMap]\",z=\"[object ArrayBuffer]\",L=\"[object DataView]\",O=\"[object Float32Array]\",A=\"[object Float64Array]\",F=\"[object Int8Array]\",D=\"[object Int16Array]\",R=\"[object Int32Array]\",j=\"[object Uint8Array]\",U=\"[object Uint8ClampedArray]\",I=\"[object Uint16Array]\",$=\"[object Uint32Array]\",B=/\\b__p \\+= '';/g,W=/\\b(__p \\+=) '' \\+/g,V=/(__e\\(.*?\\)|\\b__t\\)) \\+\\n'';/g,H=/&(?:amp|lt|gt|quot|#39);/g,q=/[&<>\"']/g,Q=RegExp(H.source),Y=RegExp(q.source),G=/<%-([\\s\\S]+?)%>/g,K=/<%([\\s\\S]+?)%>/g,Z=/<%=([\\s\\S]+?)%>/g,X=/\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,J=/^\\w*$/,ee=/[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g,te=/[\\\\^$.*+?()[\\]{}|]/g,ne=RegExp(te.source),re=/^\\s+/,ae=/\\s/,ie=/\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/,oe=/\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/,ue=/,? & /,le=/[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g,se=/[()=,{}\\[\\]\\/\\s]/,ce=/\\\\(\\\\)?/g,fe=/\\$\\{([^\\\\}]*(?:\\\\.[^\\\\}]*)*)\\}/g,pe=/\\w*$/,de=/^[-+]0x[0-9a-f]+$/i,he=/^0b[01]+$/i,ve=/^\\[object .+?Constructor\\]$/,ge=/^0o[0-7]+$/i,ye=/^(?:0|[1-9]\\d*)$/,me=/[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g,be=/($^)/,_e=/['\\n\\r\\u2028\\u2029\\\\]/g,we=\"\\\\ud800-\\\\udfff\",xe=\"\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff\",ke=\"\\\\u2700-\\\\u27bf\",Se=\"a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff\",Ee=\"A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde\",Ce=\"\\\\ufe0e\\\\ufe0f\",Te=\"\\\\xac\\\\xb1\\\\xd7\\\\xf7\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf\\\\u2000-\\\\u206f \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\",Me=\"[\"+we+\"]\",Ne=\"[\"+Te+\"]\",Pe=\"[\"+xe+\"]\",ze=\"\\\\d+\",Le=\"[\"+ke+\"]\",Oe=\"[\"+Se+\"]\",Ae=\"[^\"+we+Te+ze+ke+Se+Ee+\"]\",Fe=\"\\\\ud83c[\\\\udffb-\\\\udfff]\",De=\"[^\"+we+\"]\",Re=\"(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}\",je=\"[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]\",Ue=\"[\"+Ee+\"]\",Ie=\"\\\\u200d\",$e=\"(?:\"+Oe+\"|\"+Ae+\")\",Be=\"(?:\"+Ue+\"|\"+Ae+\")\",We=\"(?:['’](?:d|ll|m|re|s|t|ve))?\",Ve=\"(?:['’](?:D|LL|M|RE|S|T|VE))?\",He=\"(?:\"+Pe+\"|\"+Fe+\")?\",qe=\"[\"+Ce+\"]?\",Qe=qe+He+\"(?:\"+Ie+\"(?:\"+[De,Re,je].join(\"|\")+\")\"+qe+He+\")*\",Ye=\"(?:\"+[Le,Re,je].join(\"|\")+\")\"+Qe,Ge=\"(?:\"+[De+Pe+\"?\",Pe,Re,je,Me].join(\"|\")+\")\",Ke=RegExp(\"['’]\",\"g\"),Ze=RegExp(Pe,\"g\"),Xe=RegExp(Fe+\"(?=\"+Fe+\")|\"+Ge+Qe,\"g\"),Je=RegExp([Ue+\"?\"+Oe+\"+\"+We+\"(?=\"+[Ne,Ue,\"$\"].join(\"|\")+\")\",Be+\"+\"+Ve+\"(?=\"+[Ne,Ue+$e,\"$\"].join(\"|\")+\")\",Ue+\"?\"+$e+\"+\"+We,Ue+\"+\"+Ve,\"\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])\",\"\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])\",ze,Ye].join(\"|\"),\"g\"),et=RegExp(\"[\"+Ie+we+xe+Ce+\"]\"),tt=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,nt=[\"Array\",\"Buffer\",\"DataView\",\"Date\",\"Error\",\"Float32Array\",\"Float64Array\",\"Function\",\"Int8Array\",\"Int16Array\",\"Int32Array\",\"Map\",\"Math\",\"Object\",\"Promise\",\"RegExp\",\"Set\",\"String\",\"Symbol\",\"TypeError\",\"Uint8Array\",\"Uint8ClampedArray\",\"Uint16Array\",\"Uint32Array\",\"WeakMap\",\"_\",\"clearTimeout\",\"isFinite\",\"parseInt\",\"setTimeout\"],rt=-1,at={};at[O]=at[A]=at[F]=at[D]=at[R]=at[j]=at[U]=at[I]=at[$]=!0,at[v]=at[g]=at[z]=at[y]=at[L]=at[m]=at[b]=at[_]=at[x]=at[k]=at[S]=at[C]=at[T]=at[M]=at[P]=!1;var it={};it[v]=it[g]=it[z]=it[L]=it[y]=it[m]=it[O]=it[A]=it[F]=it[D]=it[R]=it[x]=it[k]=it[S]=it[C]=it[T]=it[M]=it[N]=it[j]=it[U]=it[I]=it[$]=!0,it[b]=it[_]=it[P]=!1;var ot={\"\\\\\":\"\\\\\",\"'\":\"'\",\"\\n\":\"n\",\"\\r\":\"r\",\"\\u2028\":\"u2028\",\"\\u2029\":\"u2029\"},ut=parseFloat,lt=parseInt,st=\"object\"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,ct=\"object\"==typeof self&&self&&self.Object===Object&&self,ft=st||ct||Function(\"return this\")(),pt=t&&!t.nodeType&&t,dt=pt&&e&&!e.nodeType&&e,ht=dt&&dt.exports===pt,vt=ht&&st.process,gt=function(){try{return dt&&dt.require&&dt.require(\"util\").types||vt&&vt.binding&&vt.binding(\"util\")}catch(e){}}(),yt=gt&>.isArrayBuffer,mt=gt&>.isDate,bt=gt&>.isMap,_t=gt&>.isRegExp,wt=gt&>.isSet,xt=gt&>.isTypedArray;function kt(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}function St(e,t,n,r){for(var a=-1,i=null==e?0:e.length;++a<i;){var o=e[a];t(r,o,n(o),e)}return r}function Et(e,t){for(var n=-1,r=null==e?0:e.length;++n<r&&!1!==t(e[n],n,e););return e}function Ct(e,t){for(var n=null==e?0:e.length;n--&&!1!==t(e[n],n,e););return e}function Tt(e,t){for(var n=-1,r=null==e?0:e.length;++n<r;)if(!t(e[n],n,e))return!1;return!0}function Mt(e,t){for(var n=-1,r=null==e?0:e.length,a=0,i=[];++n<r;){var o=e[n];t(o,n,e)&&(i[a++]=o)}return i}function Nt(e,t){return!(null==e||!e.length)&&Ut(e,t,0)>-1}function Pt(e,t,n){for(var r=-1,a=null==e?0:e.length;++r<a;)if(n(t,e[r]))return!0;return!1}function zt(e,t){for(var n=-1,r=null==e?0:e.length,a=Array(r);++n<r;)a[n]=t(e[n],n,e);return a}function Lt(e,t){for(var n=-1,r=t.length,a=e.length;++n<r;)e[a+n]=t[n];return e}function Ot(e,t,n,r){var a=-1,i=null==e?0:e.length;for(r&&i&&(n=e[++a]);++a<i;)n=t(n,e[a],a,e);return n}function At(e,t,n,r){var a=null==e?0:e.length;for(r&&a&&(n=e[--a]);a--;)n=t(n,e[a],a,e);return n}function Ft(e,t){for(var n=-1,r=null==e?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}var Dt=Wt(\"length\");function Rt(e,t,n){var r;return n(e,(function(e,n,a){if(t(e,n,a))return r=n,!1})),r}function jt(e,t,n,r){for(var a=e.length,i=n+(r?1:-1);r?i--:++i<a;)if(t(e[i],i,e))return i;return-1}function Ut(e,t,n){return t==t?function(e,t,n){for(var r=n-1,a=e.length;++r<a;)if(e[r]===t)return r;return-1}(e,t,n):jt(e,$t,n)}function It(e,t,n,r){for(var a=n-1,i=e.length;++a<i;)if(r(e[a],t))return a;return-1}function $t(e){return e!=e}function Bt(e,t){var n=null==e?0:e.length;return n?qt(e,t)/n:p}function Wt(e){return function(t){return null==t?a:t[e]}}function Vt(e){return function(t){return null==e?a:e[t]}}function Ht(e,t,n,r,a){return a(e,(function(e,a,i){n=r?(r=!1,e):t(n,e,a,i)})),n}function qt(e,t){for(var n,r=-1,i=e.length;++r<i;){var o=t(e[r]);o!==a&&(n=n===a?o:n+o)}return n}function Qt(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}function Yt(e){return e?e.slice(0,pn(e)+1).replace(re,\"\"):e}function Gt(e){return function(t){return e(t)}}function Kt(e,t){return zt(t,(function(t){return e[t]}))}function Zt(e,t){return e.has(t)}function Xt(e,t){for(var n=-1,r=e.length;++n<r&&Ut(t,e[n],0)>-1;);return n}function Jt(e,t){for(var n=e.length;n--&&Ut(t,e[n],0)>-1;);return n}var en=Vt({À:\"A\",Á:\"A\",Â:\"A\",Ã:\"A\",Ä:\"A\",Å:\"A\",à:\"a\",á:\"a\",â:\"a\",ã:\"a\",ä:\"a\",å:\"a\",Ç:\"C\",ç:\"c\",Ð:\"D\",ð:\"d\",È:\"E\",É:\"E\",Ê:\"E\",Ë:\"E\",è:\"e\",é:\"e\",ê:\"e\",ë:\"e\",Ì:\"I\",Í:\"I\",Î:\"I\",Ï:\"I\",ì:\"i\",í:\"i\",î:\"i\",ï:\"i\",Ñ:\"N\",ñ:\"n\",Ò:\"O\",Ó:\"O\",Ô:\"O\",Õ:\"O\",Ö:\"O\",Ø:\"O\",ò:\"o\",ó:\"o\",ô:\"o\",õ:\"o\",ö:\"o\",ø:\"o\",Ù:\"U\",Ú:\"U\",Û:\"U\",Ü:\"U\",ù:\"u\",ú:\"u\",û:\"u\",ü:\"u\",Ý:\"Y\",ý:\"y\",ÿ:\"y\",Æ:\"Ae\",æ:\"ae\",Þ:\"Th\",þ:\"th\",ß:\"ss\",Ā:\"A\",Ă:\"A\",Ą:\"A\",ā:\"a\",ă:\"a\",ą:\"a\",Ć:\"C\",Ĉ:\"C\",Ċ:\"C\",Č:\"C\",ć:\"c\",ĉ:\"c\",ċ:\"c\",č:\"c\",Ď:\"D\",Đ:\"D\",ď:\"d\",đ:\"d\",Ē:\"E\",Ĕ:\"E\",Ė:\"E\",Ę:\"E\",Ě:\"E\",ē:\"e\",ĕ:\"e\",ė:\"e\",ę:\"e\",ě:\"e\",Ĝ:\"G\",Ğ:\"G\",Ġ:\"G\",Ģ:\"G\",ĝ:\"g\",ğ:\"g\",ġ:\"g\",ģ:\"g\",Ĥ:\"H\",Ħ:\"H\",ĥ:\"h\",ħ:\"h\",Ĩ:\"I\",Ī:\"I\",Ĭ:\"I\",Į:\"I\",İ:\"I\",ĩ:\"i\",ī:\"i\",ĭ:\"i\",į:\"i\",ı:\"i\",Ĵ:\"J\",ĵ:\"j\",Ķ:\"K\",ķ:\"k\",ĸ:\"k\",Ĺ:\"L\",Ļ:\"L\",Ľ:\"L\",Ŀ:\"L\",Ł:\"L\",ĺ:\"l\",ļ:\"l\",ľ:\"l\",ŀ:\"l\",ł:\"l\",Ń:\"N\",Ņ:\"N\",Ň:\"N\",Ŋ:\"N\",ń:\"n\",ņ:\"n\",ň:\"n\",ŋ:\"n\",Ō:\"O\",Ŏ:\"O\",Ő:\"O\",ō:\"o\",ŏ:\"o\",ő:\"o\",Ŕ:\"R\",Ŗ:\"R\",Ř:\"R\",ŕ:\"r\",ŗ:\"r\",ř:\"r\",Ś:\"S\",Ŝ:\"S\",Ş:\"S\",Š:\"S\",ś:\"s\",ŝ:\"s\",ş:\"s\",š:\"s\",Ţ:\"T\",Ť:\"T\",Ŧ:\"T\",ţ:\"t\",ť:\"t\",ŧ:\"t\",Ũ:\"U\",Ū:\"U\",Ŭ:\"U\",Ů:\"U\",Ű:\"U\",Ų:\"U\",ũ:\"u\",ū:\"u\",ŭ:\"u\",ů:\"u\",ű:\"u\",ų:\"u\",Ŵ:\"W\",ŵ:\"w\",Ŷ:\"Y\",ŷ:\"y\",Ÿ:\"Y\",Ź:\"Z\",Ż:\"Z\",Ž:\"Z\",ź:\"z\",ż:\"z\",ž:\"z\",IJ:\"IJ\",ij:\"ij\",Œ:\"Oe\",œ:\"oe\",ʼn:\"'n\",ſ:\"s\"}),tn=Vt({\"&\":\"&\",\"<\":\"<\",\">\":\">\",'\"':\""\",\"'\":\"'\"});function nn(e){return\"\\\\\"+ot[e]}function rn(e){return et.test(e)}function an(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}function on(e,t){return function(n){return e(t(n))}}function un(e,t){for(var n=-1,r=e.length,a=0,i=[];++n<r;){var o=e[n];o!==t&&o!==u||(e[n]=u,i[a++]=n)}return i}function ln(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}function sn(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=[e,e]})),n}function cn(e){return rn(e)?function(e){for(var t=Xe.lastIndex=0;Xe.test(e);)++t;return t}(e):Dt(e)}function fn(e){return rn(e)?function(e){return e.match(Xe)||[]}(e):function(e){return e.split(\"\")}(e)}function pn(e){for(var t=e.length;t--&&ae.test(e.charAt(t)););return t}var dn=Vt({\"&\":\"&\",\"<\":\"<\",\">\":\">\",\""\":'\"',\"'\":\"'\"}),hn=function e(t){var n,r=(t=null==t?ft:hn.defaults(ft.Object(),t,hn.pick(ft,nt))).Array,ae=t.Date,we=t.Error,xe=t.Function,ke=t.Math,Se=t.Object,Ee=t.RegExp,Ce=t.String,Te=t.TypeError,Me=r.prototype,Ne=xe.prototype,Pe=Se.prototype,ze=t[\"__core-js_shared__\"],Le=Ne.toString,Oe=Pe.hasOwnProperty,Ae=0,Fe=(n=/[^.]+$/.exec(ze&&ze.keys&&ze.keys.IE_PROTO||\"\"))?\"Symbol(src)_1.\"+n:\"\",De=Pe.toString,Re=Le.call(Se),je=ft._,Ue=Ee(\"^\"+Le.call(Oe).replace(te,\"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g,\"$1.*?\")+\"$\"),Ie=ht?t.Buffer:a,$e=t.Symbol,Be=t.Uint8Array,We=Ie?Ie.allocUnsafe:a,Ve=on(Se.getPrototypeOf,Se),He=Se.create,qe=Pe.propertyIsEnumerable,Qe=Me.splice,Ye=$e?$e.isConcatSpreadable:a,Ge=$e?$e.iterator:a,Xe=$e?$e.toStringTag:a,et=function(){try{var e=li(Se,\"defineProperty\");return e({},\"\",{}),e}catch(e){}}(),ot=t.clearTimeout!==ft.clearTimeout&&t.clearTimeout,st=ae&&ae.now!==ft.Date.now&&ae.now,ct=t.setTimeout!==ft.setTimeout&&t.setTimeout,pt=ke.ceil,dt=ke.floor,vt=Se.getOwnPropertySymbols,gt=Ie?Ie.isBuffer:a,Dt=t.isFinite,Vt=Me.join,vn=on(Se.keys,Se),gn=ke.max,yn=ke.min,mn=ae.now,bn=t.parseInt,_n=ke.random,wn=Me.reverse,xn=li(t,\"DataView\"),kn=li(t,\"Map\"),Sn=li(t,\"Promise\"),En=li(t,\"Set\"),Cn=li(t,\"WeakMap\"),Tn=li(Se,\"create\"),Mn=Cn&&new Cn,Nn={},Pn=Di(xn),zn=Di(kn),Ln=Di(Sn),On=Di(En),An=Di(Cn),Fn=$e?$e.prototype:a,Dn=Fn?Fn.valueOf:a,Rn=Fn?Fn.toString:a;function jn(e){if(eu(e)&&!Wo(e)&&!(e instanceof Bn)){if(e instanceof $n)return e;if(Oe.call(e,\"__wrapped__\"))return Ri(e)}return new $n(e)}var Un=function(){function e(){}return function(t){if(!Jo(t))return{};if(He)return He(t);e.prototype=t;var n=new e;return e.prototype=a,n}}();function In(){}function $n(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=a}function Bn(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=d,this.__views__=[]}function Wn(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function Vn(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function Hn(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function qn(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new Hn;++t<n;)this.add(e[t])}function Qn(e){var t=this.__data__=new Vn(e);this.size=t.size}function Yn(e,t){var n=Wo(e),r=!n&&Bo(e),a=!n&&!r&&Qo(e),i=!n&&!r&&!a&&lu(e),o=n||r||a||i,u=o?Qt(e.length,Ce):[],l=u.length;for(var s in e)!t&&!Oe.call(e,s)||o&&(\"length\"==s||a&&(\"offset\"==s||\"parent\"==s)||i&&(\"buffer\"==s||\"byteLength\"==s||\"byteOffset\"==s)||vi(s,l))||u.push(s);return u}function Gn(e){var t=e.length;return t?e[Hr(0,t-1)]:a}function Kn(e,t){return zi(Ca(e),ir(t,0,e.length))}function Zn(e){return zi(Ca(e))}function Xn(e,t,n){(n!==a&&!Uo(e[t],n)||n===a&&!(t in e))&&rr(e,t,n)}function Jn(e,t,n){var r=e[t];Oe.call(e,t)&&Uo(r,n)&&(n!==a||t in e)||rr(e,t,n)}function er(e,t){for(var n=e.length;n--;)if(Uo(e[n][0],t))return n;return-1}function tr(e,t,n,r){return cr(e,(function(e,a,i){t(r,e,n(e),i)})),r}function nr(e,t){return e&&Ta(t,Pu(t),e)}function rr(e,t,n){\"__proto__\"==t&&et?et(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}function ar(e,t){for(var n=-1,i=t.length,o=r(i),u=null==e;++n<i;)o[n]=u?a:Eu(e,t[n]);return o}function ir(e,t,n){return e==e&&(n!==a&&(e=e<=n?e:n),t!==a&&(e=e>=t?e:t)),e}function or(e,t,n,r,i,o){var u,l=1&t,s=2&t,c=4&t;if(n&&(u=i?n(e,r,i,o):n(e)),u!==a)return u;if(!Jo(e))return e;var f=Wo(e);if(f){if(u=function(e){var t=e.length,n=new e.constructor(t);return t&&\"string\"==typeof e[0]&&Oe.call(e,\"index\")&&(n.index=e.index,n.input=e.input),n}(e),!l)return Ca(e,u)}else{var p=fi(e),d=p==_||p==w;if(Qo(e))return _a(e,l);if(p==S||p==v||d&&!i){if(u=s||d?{}:di(e),!l)return s?function(e,t){return Ta(e,ci(e),t)}(e,function(e,t){return e&&Ta(t,zu(t),e)}(u,e)):function(e,t){return Ta(e,si(e),t)}(e,nr(u,e))}else{if(!it[p])return i?e:{};u=function(e,t,n){var r,a=e.constructor;switch(t){case z:return wa(e);case y:case m:return new a(+e);case L:return function(e,t){var n=t?wa(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}(e,n);case O:case A:case F:case D:case R:case j:case U:case I:case $:return xa(e,n);case x:return new a;case k:case M:return new a(e);case C:return function(e){var t=new e.constructor(e.source,pe.exec(e));return t.lastIndex=e.lastIndex,t}(e);case T:return new a;case N:return r=e,Dn?Se(Dn.call(r)):{}}}(e,p,l)}}o||(o=new Qn);var h=o.get(e);if(h)return h;o.set(e,u),iu(e)?e.forEach((function(r){u.add(or(r,t,n,r,e,o))})):tu(e)&&e.forEach((function(r,a){u.set(a,or(r,t,n,a,e,o))}));var g=f?a:(c?s?ti:ei:s?zu:Pu)(e);return Et(g||e,(function(r,a){g&&(r=e[a=r]),Jn(u,a,or(r,t,n,a,e,o))})),u}function ur(e,t,n){var r=n.length;if(null==e)return!r;for(e=Se(e);r--;){var i=n[r],o=t[i],u=e[i];if(u===a&&!(i in e)||!o(u))return!1}return!0}function lr(e,t,n){if(\"function\"!=typeof e)throw new Te(i);return Ti((function(){e.apply(a,n)}),t)}function sr(e,t,n,r){var a=-1,i=Nt,o=!0,u=e.length,l=[],s=t.length;if(!u)return l;n&&(t=zt(t,Gt(n))),r?(i=Pt,o=!1):t.length>=200&&(i=Zt,o=!1,t=new qn(t));e:for(;++a<u;){var c=e[a],f=null==n?c:n(c);if(c=r||0!==c?c:0,o&&f==f){for(var p=s;p--;)if(t[p]===f)continue e;l.push(c)}else i(t,f,r)||l.push(c)}return l}jn.templateSettings={escape:G,evaluate:K,interpolate:Z,variable:\"\",imports:{_:jn}},jn.prototype=In.prototype,jn.prototype.constructor=jn,$n.prototype=Un(In.prototype),$n.prototype.constructor=$n,Bn.prototype=Un(In.prototype),Bn.prototype.constructor=Bn,Wn.prototype.clear=function(){this.__data__=Tn?Tn(null):{},this.size=0},Wn.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},Wn.prototype.get=function(e){var t=this.__data__;if(Tn){var n=t[e];return n===o?a:n}return Oe.call(t,e)?t[e]:a},Wn.prototype.has=function(e){var t=this.__data__;return Tn?t[e]!==a:Oe.call(t,e)},Wn.prototype.set=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=Tn&&t===a?o:t,this},Vn.prototype.clear=function(){this.__data__=[],this.size=0},Vn.prototype.delete=function(e){var t=this.__data__,n=er(t,e);return!(n<0||(n==t.length-1?t.pop():Qe.call(t,n,1),--this.size,0))},Vn.prototype.get=function(e){var t=this.__data__,n=er(t,e);return n<0?a:t[n][1]},Vn.prototype.has=function(e){return er(this.__data__,e)>-1},Vn.prototype.set=function(e,t){var n=this.__data__,r=er(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this},Hn.prototype.clear=function(){this.size=0,this.__data__={hash:new Wn,map:new(kn||Vn),string:new Wn}},Hn.prototype.delete=function(e){var t=oi(this,e).delete(e);return this.size-=t?1:0,t},Hn.prototype.get=function(e){return oi(this,e).get(e)},Hn.prototype.has=function(e){return oi(this,e).has(e)},Hn.prototype.set=function(e,t){var n=oi(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this},qn.prototype.add=qn.prototype.push=function(e){return this.__data__.set(e,o),this},qn.prototype.has=function(e){return this.__data__.has(e)},Qn.prototype.clear=function(){this.__data__=new Vn,this.size=0},Qn.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},Qn.prototype.get=function(e){return this.__data__.get(e)},Qn.prototype.has=function(e){return this.__data__.has(e)},Qn.prototype.set=function(e,t){var n=this.__data__;if(n instanceof Vn){var r=n.__data__;if(!kn||r.length<199)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new Hn(r)}return n.set(e,t),this.size=n.size,this};var cr=Pa(mr),fr=Pa(br,!0);function pr(e,t){var n=!0;return cr(e,(function(e,r,a){return n=!!t(e,r,a)})),n}function dr(e,t,n){for(var r=-1,i=e.length;++r<i;){var o=e[r],u=t(o);if(null!=u&&(l===a?u==u&&!uu(u):n(u,l)))var l=u,s=o}return s}function hr(e,t){var n=[];return cr(e,(function(e,r,a){t(e,r,a)&&n.push(e)})),n}function vr(e,t,n,r,a){var i=-1,o=e.length;for(n||(n=hi),a||(a=[]);++i<o;){var u=e[i];t>0&&n(u)?t>1?vr(u,t-1,n,r,a):Lt(a,u):r||(a[a.length]=u)}return a}var gr=za(),yr=za(!0);function mr(e,t){return e&&gr(e,t,Pu)}function br(e,t){return e&&yr(e,t,Pu)}function _r(e,t){return Mt(t,(function(t){return Ko(e[t])}))}function wr(e,t){for(var n=0,r=(t=ga(t,e)).length;null!=e&&n<r;)e=e[Fi(t[n++])];return n&&n==r?e:a}function xr(e,t,n){var r=t(e);return Wo(e)?r:Lt(r,n(e))}function kr(e){return null==e?e===a?\"[object Undefined]\":\"[object Null]\":Xe&&Xe in Se(e)?function(e){var t=Oe.call(e,Xe),n=e[Xe];try{e[Xe]=a;var r=!0}catch(e){}var i=De.call(e);return r&&(t?e[Xe]=n:delete e[Xe]),i}(e):function(e){return De.call(e)}(e)}function Sr(e,t){return e>t}function Er(e,t){return null!=e&&Oe.call(e,t)}function Cr(e,t){return null!=e&&t in Se(e)}function Tr(e,t,n){for(var i=n?Pt:Nt,o=e[0].length,u=e.length,l=u,s=r(u),c=1/0,f=[];l--;){var p=e[l];l&&t&&(p=zt(p,Gt(t))),c=yn(p.length,c),s[l]=!n&&(t||o>=120&&p.length>=120)?new qn(l&&p):a}p=e[0];var d=-1,h=s[0];e:for(;++d<o&&f.length<c;){var v=p[d],g=t?t(v):v;if(v=n||0!==v?v:0,!(h?Zt(h,g):i(f,g,n))){for(l=u;--l;){var y=s[l];if(!(y?Zt(y,g):i(e[l],g,n)))continue e}h&&h.push(g),f.push(v)}}return f}function Mr(e,t,n){var r=null==(e=Si(e,t=ga(t,e)))?e:e[Fi(Yi(t))];return null==r?a:kt(r,e,n)}function Nr(e){return eu(e)&&kr(e)==v}function Pr(e,t,n,r,i){return e===t||(null==e||null==t||!eu(e)&&!eu(t)?e!=e&&t!=t:function(e,t,n,r,i,o){var u=Wo(e),l=Wo(t),s=u?g:fi(e),c=l?g:fi(t),f=(s=s==v?S:s)==S,p=(c=c==v?S:c)==S,d=s==c;if(d&&Qo(e)){if(!Qo(t))return!1;u=!0,f=!1}if(d&&!f)return o||(o=new Qn),u||lu(e)?Xa(e,t,n,r,i,o):function(e,t,n,r,a,i,o){switch(n){case L:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case z:return!(e.byteLength!=t.byteLength||!i(new Be(e),new Be(t)));case y:case m:case k:return Uo(+e,+t);case b:return e.name==t.name&&e.message==t.message;case C:case M:return e==t+\"\";case x:var u=an;case T:var l=1&r;if(u||(u=ln),e.size!=t.size&&!l)return!1;var s=o.get(e);if(s)return s==t;r|=2,o.set(e,t);var c=Xa(u(e),u(t),r,a,i,o);return o.delete(e),c;case N:if(Dn)return Dn.call(e)==Dn.call(t)}return!1}(e,t,s,n,r,i,o);if(!(1&n)){var h=f&&Oe.call(e,\"__wrapped__\"),_=p&&Oe.call(t,\"__wrapped__\");if(h||_){var w=h?e.value():e,E=_?t.value():t;return o||(o=new Qn),i(w,E,n,r,o)}}return!!d&&(o||(o=new Qn),function(e,t,n,r,i,o){var u=1&n,l=ei(e),s=l.length;if(s!=ei(t).length&&!u)return!1;for(var c=s;c--;){var f=l[c];if(!(u?f in t:Oe.call(t,f)))return!1}var p=o.get(e),d=o.get(t);if(p&&d)return p==t&&d==e;var h=!0;o.set(e,t),o.set(t,e);for(var v=u;++c<s;){var g=e[f=l[c]],y=t[f];if(r)var m=u?r(y,g,f,t,e,o):r(g,y,f,e,t,o);if(!(m===a?g===y||i(g,y,n,r,o):m)){h=!1;break}v||(v=\"constructor\"==f)}if(h&&!v){var b=e.constructor,_=t.constructor;b==_||!(\"constructor\"in e)||!(\"constructor\"in t)||\"function\"==typeof b&&b instanceof b&&\"function\"==typeof _&&_ instanceof _||(h=!1)}return o.delete(e),o.delete(t),h}(e,t,n,r,i,o))}(e,t,n,r,Pr,i))}function zr(e,t,n,r){var i=n.length,o=i,u=!r;if(null==e)return!o;for(e=Se(e);i--;){var l=n[i];if(u&&l[2]?l[1]!==e[l[0]]:!(l[0]in e))return!1}for(;++i<o;){var s=(l=n[i])[0],c=e[s],f=l[1];if(u&&l[2]){if(c===a&&!(s in e))return!1}else{var p=new Qn;if(r)var d=r(c,f,s,e,t,p);if(!(d===a?Pr(f,c,3,r,p):d))return!1}}return!0}function Lr(e){return!(!Jo(e)||(t=e,Fe&&Fe in t))&&(Ko(e)?Ue:ve).test(Di(e));var t}function Or(e){return\"function\"==typeof e?e:null==e?nl:\"object\"==typeof e?Wo(e)?jr(e[0],e[1]):Rr(e):fl(e)}function Ar(e){if(!_i(e))return vn(e);var t=[];for(var n in Se(e))Oe.call(e,n)&&\"constructor\"!=n&&t.push(n);return t}function Fr(e,t){return e<t}function Dr(e,t){var n=-1,a=Ho(e)?r(e.length):[];return cr(e,(function(e,r,i){a[++n]=t(e,r,i)})),a}function Rr(e){var t=ui(e);return 1==t.length&&t[0][2]?xi(t[0][0],t[0][1]):function(n){return n===e||zr(n,e,t)}}function jr(e,t){return yi(e)&&wi(t)?xi(Fi(e),t):function(n){var r=Eu(n,e);return r===a&&r===t?Cu(n,e):Pr(t,r,3)}}function Ur(e,t,n,r,i){e!==t&&gr(t,(function(o,u){if(i||(i=new Qn),Jo(o))!function(e,t,n,r,i,o,u){var l=Ei(e,n),s=Ei(t,n),c=u.get(s);if(c)Xn(e,n,c);else{var f=o?o(l,s,n+\"\",e,t,u):a,p=f===a;if(p){var d=Wo(s),h=!d&&Qo(s),v=!d&&!h&&lu(s);f=s,d||h||v?Wo(l)?f=l:qo(l)?f=Ca(l):h?(p=!1,f=_a(s,!0)):v?(p=!1,f=xa(s,!0)):f=[]:ru(s)||Bo(s)?(f=l,Bo(l)?f=gu(l):Jo(l)&&!Ko(l)||(f=di(s))):p=!1}p&&(u.set(s,f),i(f,s,r,o,u),u.delete(s)),Xn(e,n,f)}}(e,t,u,n,Ur,r,i);else{var l=r?r(Ei(e,u),o,u+\"\",e,t,i):a;l===a&&(l=o),Xn(e,u,l)}}),zu)}function Ir(e,t){var n=e.length;if(n)return vi(t+=t<0?n:0,n)?e[t]:a}function $r(e,t,n){t=t.length?zt(t,(function(e){return Wo(e)?function(t){return wr(t,1===e.length?e[0]:e)}:e})):[nl];var r=-1;t=zt(t,Gt(ii()));var a=Dr(e,(function(e,n,a){var i=zt(t,(function(t){return t(e)}));return{criteria:i,index:++r,value:e}}));return function(e,t){var r=e.length;for(e.sort((function(e,t){return function(e,t,n){for(var r=-1,a=e.criteria,i=t.criteria,o=a.length,u=n.length;++r<o;){var l=ka(a[r],i[r]);if(l)return r>=u?l:l*(\"desc\"==n[r]?-1:1)}return e.index-t.index}(e,t,n)}));r--;)e[r]=e[r].value;return e}(a)}function Br(e,t,n){for(var r=-1,a=t.length,i={};++r<a;){var o=t[r],u=wr(e,o);n(u,o)&&Kr(i,ga(o,e),u)}return i}function Wr(e,t,n,r){var a=r?It:Ut,i=-1,o=t.length,u=e;for(e===t&&(t=Ca(t)),n&&(u=zt(e,Gt(n)));++i<o;)for(var l=0,s=t[i],c=n?n(s):s;(l=a(u,c,l,r))>-1;)u!==e&&Qe.call(u,l,1),Qe.call(e,l,1);return e}function Vr(e,t){for(var n=e?t.length:0,r=n-1;n--;){var a=t[n];if(n==r||a!==i){var i=a;vi(a)?Qe.call(e,a,1):la(e,a)}}return e}function Hr(e,t){return e+dt(_n()*(t-e+1))}function qr(e,t){var n=\"\";if(!e||t<1||t>f)return n;do{t%2&&(n+=e),(t=dt(t/2))&&(e+=e)}while(t);return n}function Qr(e,t){return Mi(ki(e,t,nl),e+\"\")}function Yr(e){return Gn(Uu(e))}function Gr(e,t){var n=Uu(e);return zi(n,ir(t,0,n.length))}function Kr(e,t,n,r){if(!Jo(e))return e;for(var i=-1,o=(t=ga(t,e)).length,u=o-1,l=e;null!=l&&++i<o;){var s=Fi(t[i]),c=n;if(\"__proto__\"===s||\"constructor\"===s||\"prototype\"===s)return e;if(i!=u){var f=l[s];(c=r?r(f,s,l):a)===a&&(c=Jo(f)?f:vi(t[i+1])?[]:{})}Jn(l,s,c),l=l[s]}return e}var Zr=Mn?function(e,t){return Mn.set(e,t),e}:nl,Xr=et?function(e,t){return et(e,\"toString\",{configurable:!0,enumerable:!1,value:Ju(t),writable:!0})}:nl;function Jr(e){return zi(Uu(e))}function ea(e,t,n){var a=-1,i=e.length;t<0&&(t=-t>i?0:i+t),(n=n>i?i:n)<0&&(n+=i),i=t>n?0:n-t>>>0,t>>>=0;for(var o=r(i);++a<i;)o[a]=e[a+t];return o}function ta(e,t){var n;return cr(e,(function(e,r,a){return!(n=t(e,r,a))})),!!n}function na(e,t,n){var r=0,a=null==e?r:e.length;if(\"number\"==typeof t&&t==t&&a<=2147483647){for(;r<a;){var i=r+a>>>1,o=e[i];null!==o&&!uu(o)&&(n?o<=t:o<t)?r=i+1:a=i}return a}return ra(e,t,nl,n)}function ra(e,t,n,r){var i=0,o=null==e?0:e.length;if(0===o)return 0;for(var u=(t=n(t))!=t,l=null===t,s=uu(t),c=t===a;i<o;){var f=dt((i+o)/2),p=n(e[f]),d=p!==a,h=null===p,v=p==p,g=uu(p);if(u)var y=r||v;else y=c?v&&(r||d):l?v&&d&&(r||!h):s?v&&d&&!h&&(r||!g):!h&&!g&&(r?p<=t:p<t);y?i=f+1:o=f}return yn(o,4294967294)}function aa(e,t){for(var n=-1,r=e.length,a=0,i=[];++n<r;){var o=e[n],u=t?t(o):o;if(!n||!Uo(u,l)){var l=u;i[a++]=0===o?0:o}}return i}function ia(e){return\"number\"==typeof e?e:uu(e)?p:+e}function oa(e){if(\"string\"==typeof e)return e;if(Wo(e))return zt(e,oa)+\"\";if(uu(e))return Rn?Rn.call(e):\"\";var t=e+\"\";return\"0\"==t&&1/e==-1/0?\"-0\":t}function ua(e,t,n){var r=-1,a=Nt,i=e.length,o=!0,u=[],l=u;if(n)o=!1,a=Pt;else if(i>=200){var s=t?null:qa(e);if(s)return ln(s);o=!1,a=Zt,l=new qn}else l=t?[]:u;e:for(;++r<i;){var c=e[r],f=t?t(c):c;if(c=n||0!==c?c:0,o&&f==f){for(var p=l.length;p--;)if(l[p]===f)continue e;t&&l.push(f),u.push(c)}else a(l,f,n)||(l!==u&&l.push(f),u.push(c))}return u}function la(e,t){return null==(e=Si(e,t=ga(t,e)))||delete e[Fi(Yi(t))]}function sa(e,t,n,r){return Kr(e,t,n(wr(e,t)),r)}function ca(e,t,n,r){for(var a=e.length,i=r?a:-1;(r?i--:++i<a)&&t(e[i],i,e););return n?ea(e,r?0:i,r?i+1:a):ea(e,r?i+1:0,r?a:i)}function fa(e,t){var n=e;return n instanceof Bn&&(n=n.value()),Ot(t,(function(e,t){return t.func.apply(t.thisArg,Lt([e],t.args))}),n)}function pa(e,t,n){var a=e.length;if(a<2)return a?ua(e[0]):[];for(var i=-1,o=r(a);++i<a;)for(var u=e[i],l=-1;++l<a;)l!=i&&(o[i]=sr(o[i]||u,e[l],t,n));return ua(vr(o,1),t,n)}function da(e,t,n){for(var r=-1,i=e.length,o=t.length,u={};++r<i;){var l=r<o?t[r]:a;n(u,e[r],l)}return u}function ha(e){return qo(e)?e:[]}function va(e){return\"function\"==typeof e?e:nl}function ga(e,t){return Wo(e)?e:yi(e,t)?[e]:Ai(yu(e))}var ya=Qr;function ma(e,t,n){var r=e.length;return n=n===a?r:n,!t&&n>=r?e:ea(e,t,n)}var ba=ot||function(e){return ft.clearTimeout(e)};function _a(e,t){if(t)return e.slice();var n=e.length,r=We?We(n):new e.constructor(n);return e.copy(r),r}function wa(e){var t=new e.constructor(e.byteLength);return new Be(t).set(new Be(e)),t}function xa(e,t){var n=t?wa(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}function ka(e,t){if(e!==t){var n=e!==a,r=null===e,i=e==e,o=uu(e),u=t!==a,l=null===t,s=t==t,c=uu(t);if(!l&&!c&&!o&&e>t||o&&u&&s&&!l&&!c||r&&u&&s||!n&&s||!i)return 1;if(!r&&!o&&!c&&e<t||c&&n&&i&&!r&&!o||l&&n&&i||!u&&i||!s)return-1}return 0}function Sa(e,t,n,a){for(var i=-1,o=e.length,u=n.length,l=-1,s=t.length,c=gn(o-u,0),f=r(s+c),p=!a;++l<s;)f[l]=t[l];for(;++i<u;)(p||i<o)&&(f[n[i]]=e[i]);for(;c--;)f[l++]=e[i++];return f}function Ea(e,t,n,a){for(var i=-1,o=e.length,u=-1,l=n.length,s=-1,c=t.length,f=gn(o-l,0),p=r(f+c),d=!a;++i<f;)p[i]=e[i];for(var h=i;++s<c;)p[h+s]=t[s];for(;++u<l;)(d||i<o)&&(p[h+n[u]]=e[i++]);return p}function Ca(e,t){var n=-1,a=e.length;for(t||(t=r(a));++n<a;)t[n]=e[n];return t}function Ta(e,t,n,r){var i=!n;n||(n={});for(var o=-1,u=t.length;++o<u;){var l=t[o],s=r?r(n[l],e[l],l,n,e):a;s===a&&(s=e[l]),i?rr(n,l,s):Jn(n,l,s)}return n}function Ma(e,t){return function(n,r){var a=Wo(n)?St:tr,i=t?t():{};return a(n,e,ii(r,2),i)}}function Na(e){return Qr((function(t,n){var r=-1,i=n.length,o=i>1?n[i-1]:a,u=i>2?n[2]:a;for(o=e.length>3&&\"function\"==typeof o?(i--,o):a,u&&gi(n[0],n[1],u)&&(o=i<3?a:o,i=1),t=Se(t);++r<i;){var l=n[r];l&&e(t,l,r,o)}return t}))}function Pa(e,t){return function(n,r){if(null==n)return n;if(!Ho(n))return e(n,r);for(var a=n.length,i=t?a:-1,o=Se(n);(t?i--:++i<a)&&!1!==r(o[i],i,o););return n}}function za(e){return function(t,n,r){for(var a=-1,i=Se(t),o=r(t),u=o.length;u--;){var l=o[e?u:++a];if(!1===n(i[l],l,i))break}return t}}function La(e){return function(t){var n=rn(t=yu(t))?fn(t):a,r=n?n[0]:t.charAt(0),i=n?ma(n,1).join(\"\"):t.slice(1);return r[e]()+i}}function Oa(e){return function(t){return Ot(Ku(Bu(t).replace(Ke,\"\")),e,\"\")}}function Aa(e){return function(){var t=arguments;switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3]);case 5:return new e(t[0],t[1],t[2],t[3],t[4]);case 6:return new e(t[0],t[1],t[2],t[3],t[4],t[5]);case 7:return new e(t[0],t[1],t[2],t[3],t[4],t[5],t[6])}var n=Un(e.prototype),r=e.apply(n,t);return Jo(r)?r:n}}function Fa(e){return function(t,n,r){var i=Se(t);if(!Ho(t)){var o=ii(n,3);t=Pu(t),n=function(e){return o(i[e],e,i)}}var u=e(t,n,r);return u>-1?i[o?t[u]:u]:a}}function Da(e){return Ja((function(t){var n=t.length,r=n,o=$n.prototype.thru;for(e&&t.reverse();r--;){var u=t[r];if(\"function\"!=typeof u)throw new Te(i);if(o&&!l&&\"wrapper\"==ri(u))var l=new $n([],!0)}for(r=l?r:n;++r<n;){var s=ri(u=t[r]),c=\"wrapper\"==s?ni(u):a;l=c&&mi(c[0])&&424==c[1]&&!c[4].length&&1==c[9]?l[ri(c[0])].apply(l,c[3]):1==u.length&&mi(u)?l[s]():l.thru(u)}return function(){var e=arguments,r=e[0];if(l&&1==e.length&&Wo(r))return l.plant(r).value();for(var a=0,i=n?t[a].apply(this,e):r;++a<n;)i=t[a].call(this,i);return i}}))}function Ra(e,t,n,i,o,u,l,c,f,p){var d=t&s,h=1&t,v=2&t,g=24&t,y=512&t,m=v?a:Aa(e);return function s(){for(var b=arguments.length,_=r(b),w=b;w--;)_[w]=arguments[w];if(g)var x=ai(s),k=function(e,t){for(var n=e.length,r=0;n--;)e[n]===t&&++r;return r}(_,x);if(i&&(_=Sa(_,i,o,g)),u&&(_=Ea(_,u,l,g)),b-=k,g&&b<p){var S=un(_,x);return Va(e,t,Ra,s.placeholder,n,_,S,c,f,p-b)}var E=h?n:this,C=v?E[e]:e;return b=_.length,c?_=function(e,t){for(var n=e.length,r=yn(t.length,n),i=Ca(e);r--;){var o=t[r];e[r]=vi(o,n)?i[o]:a}return e}(_,c):y&&b>1&&_.reverse(),d&&f<b&&(_.length=f),this&&this!==ft&&this instanceof s&&(C=m||Aa(C)),C.apply(E,_)}}function ja(e,t){return function(n,r){return function(e,t,n,r){return mr(e,(function(e,a,i){t(r,n(e),a,i)})),r}(n,e,t(r),{})}}function Ua(e,t){return function(n,r){var i;if(n===a&&r===a)return t;if(n!==a&&(i=n),r!==a){if(i===a)return r;\"string\"==typeof n||\"string\"==typeof r?(n=oa(n),r=oa(r)):(n=ia(n),r=ia(r)),i=e(n,r)}return i}}function Ia(e){return Ja((function(t){return t=zt(t,Gt(ii())),Qr((function(n){var r=this;return e(t,(function(e){return kt(e,r,n)}))}))}))}function $a(e,t){var n=(t=t===a?\" \":oa(t)).length;if(n<2)return n?qr(t,e):t;var r=qr(t,pt(e/cn(t)));return rn(t)?ma(fn(r),0,e).join(\"\"):r.slice(0,e)}function Ba(e){return function(t,n,i){return i&&\"number\"!=typeof i&&gi(t,n,i)&&(n=i=a),t=pu(t),n===a?(n=t,t=0):n=pu(n),function(e,t,n,a){for(var i=-1,o=gn(pt((t-e)/(n||1)),0),u=r(o);o--;)u[a?o:++i]=e,e+=n;return u}(t,n,i=i===a?t<n?1:-1:pu(i),e)}}function Wa(e){return function(t,n){return\"string\"==typeof t&&\"string\"==typeof n||(t=vu(t),n=vu(n)),e(t,n)}}function Va(e,t,n,r,i,o,u,s,c,f){var p=8&t;t|=p?l:64,4&(t&=~(p?64:l))||(t&=-4);var d=[e,t,i,p?o:a,p?u:a,p?a:o,p?a:u,s,c,f],h=n.apply(a,d);return mi(e)&&Ci(h,d),h.placeholder=r,Ni(h,e,t)}function Ha(e){var t=ke[e];return function(e,n){if(e=vu(e),(n=null==n?0:yn(du(n),292))&&Dt(e)){var r=(yu(e)+\"e\").split(\"e\");return+((r=(yu(t(r[0]+\"e\"+(+r[1]+n)))+\"e\").split(\"e\"))[0]+\"e\"+(+r[1]-n))}return t(e)}}var qa=En&&1/ln(new En([,-0]))[1]==c?function(e){return new En(e)}:ul;function Qa(e){return function(t){var n=fi(t);return n==x?an(t):n==T?sn(t):function(e,t){return zt(t,(function(t){return[t,e[t]]}))}(t,e(t))}}function Ya(e,t,n,o,c,f,p,d){var h=2&t;if(!h&&\"function\"!=typeof e)throw new Te(i);var v=o?o.length:0;if(v||(t&=-97,o=c=a),p=p===a?p:gn(du(p),0),d=d===a?d:du(d),v-=c?c.length:0,64&t){var g=o,y=c;o=c=a}var m=h?a:ni(e),b=[e,t,n,o,c,g,y,f,p,d];if(m&&function(e,t){var n=e[1],r=t[1],a=n|r,i=a<131,o=r==s&&8==n||r==s&&256==n&&e[7].length<=t[8]||384==r&&t[7].length<=t[8]&&8==n;if(!i&&!o)return e;1&r&&(e[2]=t[2],a|=1&n?0:4);var l=t[3];if(l){var c=e[3];e[3]=c?Sa(c,l,t[4]):l,e[4]=c?un(e[3],u):t[4]}(l=t[5])&&(c=e[5],e[5]=c?Ea(c,l,t[6]):l,e[6]=c?un(e[5],u):t[6]),(l=t[7])&&(e[7]=l),r&s&&(e[8]=null==e[8]?t[8]:yn(e[8],t[8])),null==e[9]&&(e[9]=t[9]),e[0]=t[0],e[1]=a}(b,m),e=b[0],t=b[1],n=b[2],o=b[3],c=b[4],!(d=b[9]=b[9]===a?h?0:e.length:gn(b[9]-v,0))&&24&t&&(t&=-25),t&&1!=t)_=8==t||16==t?function(e,t,n){var i=Aa(e);return function o(){for(var u=arguments.length,l=r(u),s=u,c=ai(o);s--;)l[s]=arguments[s];var f=u<3&&l[0]!==c&&l[u-1]!==c?[]:un(l,c);return(u-=f.length)<n?Va(e,t,Ra,o.placeholder,a,l,f,a,a,n-u):kt(this&&this!==ft&&this instanceof o?i:e,this,l)}}(e,t,d):t!=l&&33!=t||c.length?Ra.apply(a,b):function(e,t,n,a){var i=1&t,o=Aa(e);return function t(){for(var u=-1,l=arguments.length,s=-1,c=a.length,f=r(c+l),p=this&&this!==ft&&this instanceof t?o:e;++s<c;)f[s]=a[s];for(;l--;)f[s++]=arguments[++u];return kt(p,i?n:this,f)}}(e,t,n,o);else var _=function(e,t,n){var r=1&t,a=Aa(e);return function t(){return(this&&this!==ft&&this instanceof t?a:e).apply(r?n:this,arguments)}}(e,t,n);return Ni((m?Zr:Ci)(_,b),e,t)}function Ga(e,t,n,r){return e===a||Uo(e,Pe[n])&&!Oe.call(r,n)?t:e}function Ka(e,t,n,r,i,o){return Jo(e)&&Jo(t)&&(o.set(t,e),Ur(e,t,a,Ka,o),o.delete(t)),e}function Za(e){return ru(e)?a:e}function Xa(e,t,n,r,i,o){var u=1&n,l=e.length,s=t.length;if(l!=s&&!(u&&s>l))return!1;var c=o.get(e),f=o.get(t);if(c&&f)return c==t&&f==e;var p=-1,d=!0,h=2&n?new qn:a;for(o.set(e,t),o.set(t,e);++p<l;){var v=e[p],g=t[p];if(r)var y=u?r(g,v,p,t,e,o):r(v,g,p,e,t,o);if(y!==a){if(y)continue;d=!1;break}if(h){if(!Ft(t,(function(e,t){if(!Zt(h,t)&&(v===e||i(v,e,n,r,o)))return h.push(t)}))){d=!1;break}}else if(v!==g&&!i(v,g,n,r,o)){d=!1;break}}return o.delete(e),o.delete(t),d}function Ja(e){return Mi(ki(e,a,Wi),e+\"\")}function ei(e){return xr(e,Pu,si)}function ti(e){return xr(e,zu,ci)}var ni=Mn?function(e){return Mn.get(e)}:ul;function ri(e){for(var t=e.name+\"\",n=Nn[t],r=Oe.call(Nn,t)?n.length:0;r--;){var a=n[r],i=a.func;if(null==i||i==e)return a.name}return t}function ai(e){return(Oe.call(jn,\"placeholder\")?jn:e).placeholder}function ii(){var e=jn.iteratee||rl;return e=e===rl?Or:e,arguments.length?e(arguments[0],arguments[1]):e}function oi(e,t){var n,r,a=e.__data__;return(\"string\"==(r=typeof(n=t))||\"number\"==r||\"symbol\"==r||\"boolean\"==r?\"__proto__\"!==n:null===n)?a[\"string\"==typeof t?\"string\":\"hash\"]:a.map}function ui(e){for(var t=Pu(e),n=t.length;n--;){var r=t[n],a=e[r];t[n]=[r,a,wi(a)]}return t}function li(e,t){var n=function(e,t){return null==e?a:e[t]}(e,t);return Lr(n)?n:a}var si=vt?function(e){return null==e?[]:(e=Se(e),Mt(vt(e),(function(t){return qe.call(e,t)})))}:hl,ci=vt?function(e){for(var t=[];e;)Lt(t,si(e)),e=Ve(e);return t}:hl,fi=kr;function pi(e,t,n){for(var r=-1,a=(t=ga(t,e)).length,i=!1;++r<a;){var o=Fi(t[r]);if(!(i=null!=e&&n(e,o)))break;e=e[o]}return i||++r!=a?i:!!(a=null==e?0:e.length)&&Xo(a)&&vi(o,a)&&(Wo(e)||Bo(e))}function di(e){return\"function\"!=typeof e.constructor||_i(e)?{}:Un(Ve(e))}function hi(e){return Wo(e)||Bo(e)||!!(Ye&&e&&e[Ye])}function vi(e,t){var n=typeof e;return!!(t=null==t?f:t)&&(\"number\"==n||\"symbol\"!=n&&ye.test(e))&&e>-1&&e%1==0&&e<t}function gi(e,t,n){if(!Jo(n))return!1;var r=typeof t;return!!(\"number\"==r?Ho(n)&&vi(t,n.length):\"string\"==r&&t in n)&&Uo(n[t],e)}function yi(e,t){if(Wo(e))return!1;var n=typeof e;return!(\"number\"!=n&&\"symbol\"!=n&&\"boolean\"!=n&&null!=e&&!uu(e))||J.test(e)||!X.test(e)||null!=t&&e in Se(t)}function mi(e){var t=ri(e),n=jn[t];if(\"function\"!=typeof n||!(t in Bn.prototype))return!1;if(e===n)return!0;var r=ni(n);return!!r&&e===r[0]}(xn&&fi(new xn(new ArrayBuffer(1)))!=L||kn&&fi(new kn)!=x||Sn&&fi(Sn.resolve())!=E||En&&fi(new En)!=T||Cn&&fi(new Cn)!=P)&&(fi=function(e){var t=kr(e),n=t==S?e.constructor:a,r=n?Di(n):\"\";if(r)switch(r){case Pn:return L;case zn:return x;case Ln:return E;case On:return T;case An:return P}return t});var bi=ze?Ko:vl;function _i(e){var t=e&&e.constructor;return e===(\"function\"==typeof t&&t.prototype||Pe)}function wi(e){return e==e&&!Jo(e)}function xi(e,t){return function(n){return null!=n&&n[e]===t&&(t!==a||e in Se(n))}}function ki(e,t,n){return t=gn(t===a?e.length-1:t,0),function(){for(var a=arguments,i=-1,o=gn(a.length-t,0),u=r(o);++i<o;)u[i]=a[t+i];i=-1;for(var l=r(t+1);++i<t;)l[i]=a[i];return l[t]=n(u),kt(e,this,l)}}function Si(e,t){return t.length<2?e:wr(e,ea(t,0,-1))}function Ei(e,t){if((\"constructor\"!==t||\"function\"!=typeof e[t])&&\"__proto__\"!=t)return e[t]}var Ci=Pi(Zr),Ti=ct||function(e,t){return ft.setTimeout(e,t)},Mi=Pi(Xr);function Ni(e,t,n){var r=t+\"\";return Mi(e,function(e,t){var n=t.length;if(!n)return e;var r=n-1;return t[r]=(n>1?\"& \":\"\")+t[r],t=t.join(n>2?\", \":\" \"),e.replace(ie,\"{\\n/* [wrapped with \"+t+\"] */\\n\")}(r,function(e,t){return Et(h,(function(n){var r=\"_.\"+n[0];t&n[1]&&!Nt(e,r)&&e.push(r)})),e.sort()}(function(e){var t=e.match(oe);return t?t[1].split(ue):[]}(r),n)))}function Pi(e){var t=0,n=0;return function(){var r=mn(),i=16-(r-n);if(n=r,i>0){if(++t>=800)return arguments[0]}else t=0;return e.apply(a,arguments)}}function zi(e,t){var n=-1,r=e.length,i=r-1;for(t=t===a?r:t;++n<t;){var o=Hr(n,i),u=e[o];e[o]=e[n],e[n]=u}return e.length=t,e}var Li,Oi,Ai=(Li=Oo((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(\"\"),e.replace(ee,(function(e,n,r,a){t.push(r?a.replace(ce,\"$1\"):n||e)})),t}),(function(e){return 500===Oi.size&&Oi.clear(),e})),Oi=Li.cache,Li);function Fi(e){if(\"string\"==typeof e||uu(e))return e;var t=e+\"\";return\"0\"==t&&1/e==-1/0?\"-0\":t}function Di(e){if(null!=e){try{return Le.call(e)}catch(e){}try{return e+\"\"}catch(e){}}return\"\"}function Ri(e){if(e instanceof Bn)return e.clone();var t=new $n(e.__wrapped__,e.__chain__);return t.__actions__=Ca(e.__actions__),t.__index__=e.__index__,t.__values__=e.__values__,t}var ji=Qr((function(e,t){return qo(e)?sr(e,vr(t,1,qo,!0)):[]})),Ui=Qr((function(e,t){var n=Yi(t);return qo(n)&&(n=a),qo(e)?sr(e,vr(t,1,qo,!0),ii(n,2)):[]})),Ii=Qr((function(e,t){var n=Yi(t);return qo(n)&&(n=a),qo(e)?sr(e,vr(t,1,qo,!0),a,n):[]}));function $i(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var a=null==n?0:du(n);return a<0&&(a=gn(r+a,0)),jt(e,ii(t,3),a)}function Bi(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var i=r-1;return n!==a&&(i=du(n),i=n<0?gn(r+i,0):yn(i,r-1)),jt(e,ii(t,3),i,!0)}function Wi(e){return null!=e&&e.length?vr(e,1):[]}function Vi(e){return e&&e.length?e[0]:a}var Hi=Qr((function(e){var t=zt(e,ha);return t.length&&t[0]===e[0]?Tr(t):[]})),qi=Qr((function(e){var t=Yi(e),n=zt(e,ha);return t===Yi(n)?t=a:n.pop(),n.length&&n[0]===e[0]?Tr(n,ii(t,2)):[]})),Qi=Qr((function(e){var t=Yi(e),n=zt(e,ha);return(t=\"function\"==typeof t?t:a)&&n.pop(),n.length&&n[0]===e[0]?Tr(n,a,t):[]}));function Yi(e){var t=null==e?0:e.length;return t?e[t-1]:a}var Gi=Qr(Ki);function Ki(e,t){return e&&e.length&&t&&t.length?Wr(e,t):e}var Zi=Ja((function(e,t){var n=null==e?0:e.length,r=ar(e,t);return Vr(e,zt(t,(function(e){return vi(e,n)?+e:e})).sort(ka)),r}));function Xi(e){return null==e?e:wn.call(e)}var Ji=Qr((function(e){return ua(vr(e,1,qo,!0))})),eo=Qr((function(e){var t=Yi(e);return qo(t)&&(t=a),ua(vr(e,1,qo,!0),ii(t,2))})),to=Qr((function(e){var t=Yi(e);return t=\"function\"==typeof t?t:a,ua(vr(e,1,qo,!0),a,t)}));function no(e){if(!e||!e.length)return[];var t=0;return e=Mt(e,(function(e){if(qo(e))return t=gn(e.length,t),!0})),Qt(t,(function(t){return zt(e,Wt(t))}))}function ro(e,t){if(!e||!e.length)return[];var n=no(e);return null==t?n:zt(n,(function(e){return kt(t,a,e)}))}var ao=Qr((function(e,t){return qo(e)?sr(e,t):[]})),io=Qr((function(e){return pa(Mt(e,qo))})),oo=Qr((function(e){var t=Yi(e);return qo(t)&&(t=a),pa(Mt(e,qo),ii(t,2))})),uo=Qr((function(e){var t=Yi(e);return t=\"function\"==typeof t?t:a,pa(Mt(e,qo),a,t)})),lo=Qr(no),so=Qr((function(e){var t=e.length,n=t>1?e[t-1]:a;return n=\"function\"==typeof n?(e.pop(),n):a,ro(e,n)}));function co(e){var t=jn(e);return t.__chain__=!0,t}function fo(e,t){return t(e)}var po=Ja((function(e){var t=e.length,n=t?e[0]:0,r=this.__wrapped__,i=function(t){return ar(t,e)};return!(t>1||this.__actions__.length)&&r instanceof Bn&&vi(n)?((r=r.slice(n,+n+(t?1:0))).__actions__.push({func:fo,args:[i],thisArg:a}),new $n(r,this.__chain__).thru((function(e){return t&&!e.length&&e.push(a),e}))):this.thru(i)})),ho=Ma((function(e,t,n){Oe.call(e,n)?++e[n]:rr(e,n,1)})),vo=Fa($i),go=Fa(Bi);function yo(e,t){return(Wo(e)?Et:cr)(e,ii(t,3))}function mo(e,t){return(Wo(e)?Ct:fr)(e,ii(t,3))}var bo=Ma((function(e,t,n){Oe.call(e,n)?e[n].push(t):rr(e,n,[t])})),_o=Qr((function(e,t,n){var a=-1,i=\"function\"==typeof t,o=Ho(e)?r(e.length):[];return cr(e,(function(e){o[++a]=i?kt(t,e,n):Mr(e,t,n)})),o})),wo=Ma((function(e,t,n){rr(e,n,t)}));function xo(e,t){return(Wo(e)?zt:Dr)(e,ii(t,3))}var ko=Ma((function(e,t,n){e[n?0:1].push(t)}),(function(){return[[],[]]})),So=Qr((function(e,t){if(null==e)return[];var n=t.length;return n>1&&gi(e,t[0],t[1])?t=[]:n>2&&gi(t[0],t[1],t[2])&&(t=[t[0]]),$r(e,vr(t,1),[])})),Eo=st||function(){return ft.Date.now()};function Co(e,t,n){return t=n?a:t,t=e&&null==t?e.length:t,Ya(e,s,a,a,a,a,t)}function To(e,t){var n;if(\"function\"!=typeof t)throw new Te(i);return e=du(e),function(){return--e>0&&(n=t.apply(this,arguments)),e<=1&&(t=a),n}}var Mo=Qr((function(e,t,n){var r=1;if(n.length){var a=un(n,ai(Mo));r|=l}return Ya(e,r,t,n,a)})),No=Qr((function(e,t,n){var r=3;if(n.length){var a=un(n,ai(No));r|=l}return Ya(t,r,e,n,a)}));function Po(e,t,n){var r,o,u,l,s,c,f=0,p=!1,d=!1,h=!0;if(\"function\"!=typeof e)throw new Te(i);function v(t){var n=r,i=o;return r=o=a,f=t,l=e.apply(i,n)}function g(e){var n=e-c;return c===a||n>=t||n<0||d&&e-f>=u}function y(){var e=Eo();if(g(e))return m(e);s=Ti(y,function(e){var n=t-(e-c);return d?yn(n,u-(e-f)):n}(e))}function m(e){return s=a,h&&r?v(e):(r=o=a,l)}function b(){var e=Eo(),n=g(e);if(r=arguments,o=this,c=e,n){if(s===a)return function(e){return f=e,s=Ti(y,t),p?v(e):l}(c);if(d)return ba(s),s=Ti(y,t),v(c)}return s===a&&(s=Ti(y,t)),l}return t=vu(t)||0,Jo(n)&&(p=!!n.leading,u=(d=\"maxWait\"in n)?gn(vu(n.maxWait)||0,t):u,h=\"trailing\"in n?!!n.trailing:h),b.cancel=function(){s!==a&&ba(s),f=0,r=c=o=s=a},b.flush=function(){return s===a?l:m(Eo())},b}var zo=Qr((function(e,t){return lr(e,1,t)})),Lo=Qr((function(e,t,n){return lr(e,vu(t)||0,n)}));function Oo(e,t){if(\"function\"!=typeof e||null!=t&&\"function\"!=typeof t)throw new Te(i);var n=function(){var r=arguments,a=t?t.apply(this,r):r[0],i=n.cache;if(i.has(a))return i.get(a);var o=e.apply(this,r);return n.cache=i.set(a,o)||i,o};return n.cache=new(Oo.Cache||Hn),n}function Ao(e){if(\"function\"!=typeof e)throw new Te(i);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}Oo.Cache=Hn;var Fo=ya((function(e,t){var n=(t=1==t.length&&Wo(t[0])?zt(t[0],Gt(ii())):zt(vr(t,1),Gt(ii()))).length;return Qr((function(r){for(var a=-1,i=yn(r.length,n);++a<i;)r[a]=t[a].call(this,r[a]);return kt(e,this,r)}))})),Do=Qr((function(e,t){var n=un(t,ai(Do));return Ya(e,l,a,t,n)})),Ro=Qr((function(e,t){var n=un(t,ai(Ro));return Ya(e,64,a,t,n)})),jo=Ja((function(e,t){return Ya(e,256,a,a,a,t)}));function Uo(e,t){return e===t||e!=e&&t!=t}var Io=Wa(Sr),$o=Wa((function(e,t){return e>=t})),Bo=Nr(function(){return arguments}())?Nr:function(e){return eu(e)&&Oe.call(e,\"callee\")&&!qe.call(e,\"callee\")},Wo=r.isArray,Vo=yt?Gt(yt):function(e){return eu(e)&&kr(e)==z};function Ho(e){return null!=e&&Xo(e.length)&&!Ko(e)}function qo(e){return eu(e)&&Ho(e)}var Qo=gt||vl,Yo=mt?Gt(mt):function(e){return eu(e)&&kr(e)==m};function Go(e){if(!eu(e))return!1;var t=kr(e);return t==b||\"[object DOMException]\"==t||\"string\"==typeof e.message&&\"string\"==typeof e.name&&!ru(e)}function Ko(e){if(!Jo(e))return!1;var t=kr(e);return t==_||t==w||\"[object AsyncFunction]\"==t||\"[object Proxy]\"==t}function Zo(e){return\"number\"==typeof e&&e==du(e)}function Xo(e){return\"number\"==typeof e&&e>-1&&e%1==0&&e<=f}function Jo(e){var t=typeof e;return null!=e&&(\"object\"==t||\"function\"==t)}function eu(e){return null!=e&&\"object\"==typeof e}var tu=bt?Gt(bt):function(e){return eu(e)&&fi(e)==x};function nu(e){return\"number\"==typeof e||eu(e)&&kr(e)==k}function ru(e){if(!eu(e)||kr(e)!=S)return!1;var t=Ve(e);if(null===t)return!0;var n=Oe.call(t,\"constructor\")&&t.constructor;return\"function\"==typeof n&&n instanceof n&&Le.call(n)==Re}var au=_t?Gt(_t):function(e){return eu(e)&&kr(e)==C},iu=wt?Gt(wt):function(e){return eu(e)&&fi(e)==T};function ou(e){return\"string\"==typeof e||!Wo(e)&&eu(e)&&kr(e)==M}function uu(e){return\"symbol\"==typeof e||eu(e)&&kr(e)==N}var lu=xt?Gt(xt):function(e){return eu(e)&&Xo(e.length)&&!!at[kr(e)]},su=Wa(Fr),cu=Wa((function(e,t){return e<=t}));function fu(e){if(!e)return[];if(Ho(e))return ou(e)?fn(e):Ca(e);if(Ge&&e[Ge])return function(e){for(var t,n=[];!(t=e.next()).done;)n.push(t.value);return n}(e[Ge]());var t=fi(e);return(t==x?an:t==T?ln:Uu)(e)}function pu(e){return e?(e=vu(e))===c||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0}function du(e){var t=pu(e),n=t%1;return t==t?n?t-n:t:0}function hu(e){return e?ir(du(e),0,d):0}function vu(e){if(\"number\"==typeof e)return e;if(uu(e))return p;if(Jo(e)){var t=\"function\"==typeof e.valueOf?e.valueOf():e;e=Jo(t)?t+\"\":t}if(\"string\"!=typeof e)return 0===e?e:+e;e=Yt(e);var n=he.test(e);return n||ge.test(e)?lt(e.slice(2),n?2:8):de.test(e)?p:+e}function gu(e){return Ta(e,zu(e))}function yu(e){return null==e?\"\":oa(e)}var mu=Na((function(e,t){if(_i(t)||Ho(t))Ta(t,Pu(t),e);else for(var n in t)Oe.call(t,n)&&Jn(e,n,t[n])})),bu=Na((function(e,t){Ta(t,zu(t),e)})),_u=Na((function(e,t,n,r){Ta(t,zu(t),e,r)})),wu=Na((function(e,t,n,r){Ta(t,Pu(t),e,r)})),xu=Ja(ar),ku=Qr((function(e,t){e=Se(e);var n=-1,r=t.length,i=r>2?t[2]:a;for(i&&gi(t[0],t[1],i)&&(r=1);++n<r;)for(var o=t[n],u=zu(o),l=-1,s=u.length;++l<s;){var c=u[l],f=e[c];(f===a||Uo(f,Pe[c])&&!Oe.call(e,c))&&(e[c]=o[c])}return e})),Su=Qr((function(e){return e.push(a,Ka),kt(Ou,a,e)}));function Eu(e,t,n){var r=null==e?a:wr(e,t);return r===a?n:r}function Cu(e,t){return null!=e&&pi(e,t,Cr)}var Tu=ja((function(e,t,n){null!=t&&\"function\"!=typeof t.toString&&(t=De.call(t)),e[t]=n}),Ju(nl)),Mu=ja((function(e,t,n){null!=t&&\"function\"!=typeof t.toString&&(t=De.call(t)),Oe.call(e,t)?e[t].push(n):e[t]=[n]}),ii),Nu=Qr(Mr);function Pu(e){return Ho(e)?Yn(e):Ar(e)}function zu(e){return Ho(e)?Yn(e,!0):function(e){if(!Jo(e))return function(e){var t=[];if(null!=e)for(var n in Se(e))t.push(n);return t}(e);var t=_i(e),n=[];for(var r in e)(\"constructor\"!=r||!t&&Oe.call(e,r))&&n.push(r);return n}(e)}var Lu=Na((function(e,t,n){Ur(e,t,n)})),Ou=Na((function(e,t,n,r){Ur(e,t,n,r)})),Au=Ja((function(e,t){var n={};if(null==e)return n;var r=!1;t=zt(t,(function(t){return t=ga(t,e),r||(r=t.length>1),t})),Ta(e,ti(e),n),r&&(n=or(n,7,Za));for(var a=t.length;a--;)la(n,t[a]);return n})),Fu=Ja((function(e,t){return null==e?{}:function(e,t){return Br(e,t,(function(t,n){return Cu(e,n)}))}(e,t)}));function Du(e,t){if(null==e)return{};var n=zt(ti(e),(function(e){return[e]}));return t=ii(t),Br(e,n,(function(e,n){return t(e,n[0])}))}var Ru=Qa(Pu),ju=Qa(zu);function Uu(e){return null==e?[]:Kt(e,Pu(e))}var Iu=Oa((function(e,t,n){return t=t.toLowerCase(),e+(n?$u(t):t)}));function $u(e){return Gu(yu(e).toLowerCase())}function Bu(e){return(e=yu(e))&&e.replace(me,en).replace(Ze,\"\")}var Wu=Oa((function(e,t,n){return e+(n?\"-\":\"\")+t.toLowerCase()})),Vu=Oa((function(e,t,n){return e+(n?\" \":\"\")+t.toLowerCase()})),Hu=La(\"toLowerCase\"),qu=Oa((function(e,t,n){return e+(n?\"_\":\"\")+t.toLowerCase()})),Qu=Oa((function(e,t,n){return e+(n?\" \":\"\")+Gu(t)})),Yu=Oa((function(e,t,n){return e+(n?\" \":\"\")+t.toUpperCase()})),Gu=La(\"toUpperCase\");function Ku(e,t,n){return e=yu(e),(t=n?a:t)===a?function(e){return tt.test(e)}(e)?function(e){return e.match(Je)||[]}(e):function(e){return e.match(le)||[]}(e):e.match(t)||[]}var Zu=Qr((function(e,t){try{return kt(e,a,t)}catch(e){return Go(e)?e:new we(e)}})),Xu=Ja((function(e,t){return Et(t,(function(t){t=Fi(t),rr(e,t,Mo(e[t],e))})),e}));function Ju(e){return function(){return e}}var el=Da(),tl=Da(!0);function nl(e){return e}function rl(e){return Or(\"function\"==typeof e?e:or(e,1))}var al=Qr((function(e,t){return function(n){return Mr(n,e,t)}})),il=Qr((function(e,t){return function(n){return Mr(e,n,t)}}));function ol(e,t,n){var r=Pu(t),a=_r(t,r);null!=n||Jo(t)&&(a.length||!r.length)||(n=t,t=e,e=this,a=_r(t,Pu(t)));var i=!(Jo(n)&&\"chain\"in n&&!n.chain),o=Ko(e);return Et(a,(function(n){var r=t[n];e[n]=r,o&&(e.prototype[n]=function(){var t=this.__chain__;if(i||t){var n=e(this.__wrapped__);return(n.__actions__=Ca(this.__actions__)).push({func:r,args:arguments,thisArg:e}),n.__chain__=t,n}return r.apply(e,Lt([this.value()],arguments))})})),e}function ul(){}var ll=Ia(zt),sl=Ia(Tt),cl=Ia(Ft);function fl(e){return yi(e)?Wt(Fi(e)):function(e){return function(t){return wr(t,e)}}(e)}var pl=Ba(),dl=Ba(!0);function hl(){return[]}function vl(){return!1}var gl,yl=Ua((function(e,t){return e+t}),0),ml=Ha(\"ceil\"),bl=Ua((function(e,t){return e/t}),1),_l=Ha(\"floor\"),wl=Ua((function(e,t){return e*t}),1),xl=Ha(\"round\"),kl=Ua((function(e,t){return e-t}),0);return jn.after=function(e,t){if(\"function\"!=typeof t)throw new Te(i);return e=du(e),function(){if(--e<1)return t.apply(this,arguments)}},jn.ary=Co,jn.assign=mu,jn.assignIn=bu,jn.assignInWith=_u,jn.assignWith=wu,jn.at=xu,jn.before=To,jn.bind=Mo,jn.bindAll=Xu,jn.bindKey=No,jn.castArray=function(){if(!arguments.length)return[];var e=arguments[0];return Wo(e)?e:[e]},jn.chain=co,jn.chunk=function(e,t,n){t=(n?gi(e,t,n):t===a)?1:gn(du(t),0);var i=null==e?0:e.length;if(!i||t<1)return[];for(var o=0,u=0,l=r(pt(i/t));o<i;)l[u++]=ea(e,o,o+=t);return l},jn.compact=function(e){for(var t=-1,n=null==e?0:e.length,r=0,a=[];++t<n;){var i=e[t];i&&(a[r++]=i)}return a},jn.concat=function(){var e=arguments.length;if(!e)return[];for(var t=r(e-1),n=arguments[0],a=e;a--;)t[a-1]=arguments[a];return Lt(Wo(n)?Ca(n):[n],vr(t,1))},jn.cond=function(e){var t=null==e?0:e.length,n=ii();return e=t?zt(e,(function(e){if(\"function\"!=typeof e[1])throw new Te(i);return[n(e[0]),e[1]]})):[],Qr((function(n){for(var r=-1;++r<t;){var a=e[r];if(kt(a[0],this,n))return kt(a[1],this,n)}}))},jn.conforms=function(e){return function(e){var t=Pu(e);return function(n){return ur(n,e,t)}}(or(e,1))},jn.constant=Ju,jn.countBy=ho,jn.create=function(e,t){var n=Un(e);return null==t?n:nr(n,t)},jn.curry=function e(t,n,r){var i=Ya(t,8,a,a,a,a,a,n=r?a:n);return i.placeholder=e.placeholder,i},jn.curryRight=function e(t,n,r){var i=Ya(t,16,a,a,a,a,a,n=r?a:n);return i.placeholder=e.placeholder,i},jn.debounce=Po,jn.defaults=ku,jn.defaultsDeep=Su,jn.defer=zo,jn.delay=Lo,jn.difference=ji,jn.differenceBy=Ui,jn.differenceWith=Ii,jn.drop=function(e,t,n){var r=null==e?0:e.length;return r?ea(e,(t=n||t===a?1:du(t))<0?0:t,r):[]},jn.dropRight=function(e,t,n){var r=null==e?0:e.length;return r?ea(e,0,(t=r-(t=n||t===a?1:du(t)))<0?0:t):[]},jn.dropRightWhile=function(e,t){return e&&e.length?ca(e,ii(t,3),!0,!0):[]},jn.dropWhile=function(e,t){return e&&e.length?ca(e,ii(t,3),!0):[]},jn.fill=function(e,t,n,r){var i=null==e?0:e.length;return i?(n&&\"number\"!=typeof n&&gi(e,t,n)&&(n=0,r=i),function(e,t,n,r){var i=e.length;for((n=du(n))<0&&(n=-n>i?0:i+n),(r=r===a||r>i?i:du(r))<0&&(r+=i),r=n>r?0:hu(r);n<r;)e[n++]=t;return e}(e,t,n,r)):[]},jn.filter=function(e,t){return(Wo(e)?Mt:hr)(e,ii(t,3))},jn.flatMap=function(e,t){return vr(xo(e,t),1)},jn.flatMapDeep=function(e,t){return vr(xo(e,t),c)},jn.flatMapDepth=function(e,t,n){return n=n===a?1:du(n),vr(xo(e,t),n)},jn.flatten=Wi,jn.flattenDeep=function(e){return null!=e&&e.length?vr(e,c):[]},jn.flattenDepth=function(e,t){return null!=e&&e.length?vr(e,t=t===a?1:du(t)):[]},jn.flip=function(e){return Ya(e,512)},jn.flow=el,jn.flowRight=tl,jn.fromPairs=function(e){for(var t=-1,n=null==e?0:e.length,r={};++t<n;){var a=e[t];r[a[0]]=a[1]}return r},jn.functions=function(e){return null==e?[]:_r(e,Pu(e))},jn.functionsIn=function(e){return null==e?[]:_r(e,zu(e))},jn.groupBy=bo,jn.initial=function(e){return null!=e&&e.length?ea(e,0,-1):[]},jn.intersection=Hi,jn.intersectionBy=qi,jn.intersectionWith=Qi,jn.invert=Tu,jn.invertBy=Mu,jn.invokeMap=_o,jn.iteratee=rl,jn.keyBy=wo,jn.keys=Pu,jn.keysIn=zu,jn.map=xo,jn.mapKeys=function(e,t){var n={};return t=ii(t,3),mr(e,(function(e,r,a){rr(n,t(e,r,a),e)})),n},jn.mapValues=function(e,t){var n={};return t=ii(t,3),mr(e,(function(e,r,a){rr(n,r,t(e,r,a))})),n},jn.matches=function(e){return Rr(or(e,1))},jn.matchesProperty=function(e,t){return jr(e,or(t,1))},jn.memoize=Oo,jn.merge=Lu,jn.mergeWith=Ou,jn.method=al,jn.methodOf=il,jn.mixin=ol,jn.negate=Ao,jn.nthArg=function(e){return e=du(e),Qr((function(t){return Ir(t,e)}))},jn.omit=Au,jn.omitBy=function(e,t){return Du(e,Ao(ii(t)))},jn.once=function(e){return To(2,e)},jn.orderBy=function(e,t,n,r){return null==e?[]:(Wo(t)||(t=null==t?[]:[t]),Wo(n=r?a:n)||(n=null==n?[]:[n]),$r(e,t,n))},jn.over=ll,jn.overArgs=Fo,jn.overEvery=sl,jn.overSome=cl,jn.partial=Do,jn.partialRight=Ro,jn.partition=ko,jn.pick=Fu,jn.pickBy=Du,jn.property=fl,jn.propertyOf=function(e){return function(t){return null==e?a:wr(e,t)}},jn.pull=Gi,jn.pullAll=Ki,jn.pullAllBy=function(e,t,n){return e&&e.length&&t&&t.length?Wr(e,t,ii(n,2)):e},jn.pullAllWith=function(e,t,n){return e&&e.length&&t&&t.length?Wr(e,t,a,n):e},jn.pullAt=Zi,jn.range=pl,jn.rangeRight=dl,jn.rearg=jo,jn.reject=function(e,t){return(Wo(e)?Mt:hr)(e,Ao(ii(t,3)))},jn.remove=function(e,t){var n=[];if(!e||!e.length)return n;var r=-1,a=[],i=e.length;for(t=ii(t,3);++r<i;){var o=e[r];t(o,r,e)&&(n.push(o),a.push(r))}return Vr(e,a),n},jn.rest=function(e,t){if(\"function\"!=typeof e)throw new Te(i);return Qr(e,t=t===a?t:du(t))},jn.reverse=Xi,jn.sampleSize=function(e,t,n){return t=(n?gi(e,t,n):t===a)?1:du(t),(Wo(e)?Kn:Gr)(e,t)},jn.set=function(e,t,n){return null==e?e:Kr(e,t,n)},jn.setWith=function(e,t,n,r){return r=\"function\"==typeof r?r:a,null==e?e:Kr(e,t,n,r)},jn.shuffle=function(e){return(Wo(e)?Zn:Jr)(e)},jn.slice=function(e,t,n){var r=null==e?0:e.length;return r?(n&&\"number\"!=typeof n&&gi(e,t,n)?(t=0,n=r):(t=null==t?0:du(t),n=n===a?r:du(n)),ea(e,t,n)):[]},jn.sortBy=So,jn.sortedUniq=function(e){return e&&e.length?aa(e):[]},jn.sortedUniqBy=function(e,t){return e&&e.length?aa(e,ii(t,2)):[]},jn.split=function(e,t,n){return n&&\"number\"!=typeof n&&gi(e,t,n)&&(t=n=a),(n=n===a?d:n>>>0)?(e=yu(e))&&(\"string\"==typeof t||null!=t&&!au(t))&&!(t=oa(t))&&rn(e)?ma(fn(e),0,n):e.split(t,n):[]},jn.spread=function(e,t){if(\"function\"!=typeof e)throw new Te(i);return t=null==t?0:gn(du(t),0),Qr((function(n){var r=n[t],a=ma(n,0,t);return r&&Lt(a,r),kt(e,this,a)}))},jn.tail=function(e){var t=null==e?0:e.length;return t?ea(e,1,t):[]},jn.take=function(e,t,n){return e&&e.length?ea(e,0,(t=n||t===a?1:du(t))<0?0:t):[]},jn.takeRight=function(e,t,n){var r=null==e?0:e.length;return r?ea(e,(t=r-(t=n||t===a?1:du(t)))<0?0:t,r):[]},jn.takeRightWhile=function(e,t){return e&&e.length?ca(e,ii(t,3),!1,!0):[]},jn.takeWhile=function(e,t){return e&&e.length?ca(e,ii(t,3)):[]},jn.tap=function(e,t){return t(e),e},jn.throttle=function(e,t,n){var r=!0,a=!0;if(\"function\"!=typeof e)throw new Te(i);return Jo(n)&&(r=\"leading\"in n?!!n.leading:r,a=\"trailing\"in n?!!n.trailing:a),Po(e,t,{leading:r,maxWait:t,trailing:a})},jn.thru=fo,jn.toArray=fu,jn.toPairs=Ru,jn.toPairsIn=ju,jn.toPath=function(e){return Wo(e)?zt(e,Fi):uu(e)?[e]:Ca(Ai(yu(e)))},jn.toPlainObject=gu,jn.transform=function(e,t,n){var r=Wo(e),a=r||Qo(e)||lu(e);if(t=ii(t,4),null==n){var i=e&&e.constructor;n=a?r?new i:[]:Jo(e)&&Ko(i)?Un(Ve(e)):{}}return(a?Et:mr)(e,(function(e,r,a){return t(n,e,r,a)})),n},jn.unary=function(e){return Co(e,1)},jn.union=Ji,jn.unionBy=eo,jn.unionWith=to,jn.uniq=function(e){return e&&e.length?ua(e):[]},jn.uniqBy=function(e,t){return e&&e.length?ua(e,ii(t,2)):[]},jn.uniqWith=function(e,t){return t=\"function\"==typeof t?t:a,e&&e.length?ua(e,a,t):[]},jn.unset=function(e,t){return null==e||la(e,t)},jn.unzip=no,jn.unzipWith=ro,jn.update=function(e,t,n){return null==e?e:sa(e,t,va(n))},jn.updateWith=function(e,t,n,r){return r=\"function\"==typeof r?r:a,null==e?e:sa(e,t,va(n),r)},jn.values=Uu,jn.valuesIn=function(e){return null==e?[]:Kt(e,zu(e))},jn.without=ao,jn.words=Ku,jn.wrap=function(e,t){return Do(va(t),e)},jn.xor=io,jn.xorBy=oo,jn.xorWith=uo,jn.zip=lo,jn.zipObject=function(e,t){return da(e||[],t||[],Jn)},jn.zipObjectDeep=function(e,t){return da(e||[],t||[],Kr)},jn.zipWith=so,jn.entries=Ru,jn.entriesIn=ju,jn.extend=bu,jn.extendWith=_u,ol(jn,jn),jn.add=yl,jn.attempt=Zu,jn.camelCase=Iu,jn.capitalize=$u,jn.ceil=ml,jn.clamp=function(e,t,n){return n===a&&(n=t,t=a),n!==a&&(n=(n=vu(n))==n?n:0),t!==a&&(t=(t=vu(t))==t?t:0),ir(vu(e),t,n)},jn.clone=function(e){return or(e,4)},jn.cloneDeep=function(e){return or(e,5)},jn.cloneDeepWith=function(e,t){return or(e,5,t=\"function\"==typeof t?t:a)},jn.cloneWith=function(e,t){return or(e,4,t=\"function\"==typeof t?t:a)},jn.conformsTo=function(e,t){return null==t||ur(e,t,Pu(t))},jn.deburr=Bu,jn.defaultTo=function(e,t){return null==e||e!=e?t:e},jn.divide=bl,jn.endsWith=function(e,t,n){e=yu(e),t=oa(t);var r=e.length,i=n=n===a?r:ir(du(n),0,r);return(n-=t.length)>=0&&e.slice(n,i)==t},jn.eq=Uo,jn.escape=function(e){return(e=yu(e))&&Y.test(e)?e.replace(q,tn):e},jn.escapeRegExp=function(e){return(e=yu(e))&&ne.test(e)?e.replace(te,\"\\\\$&\"):e},jn.every=function(e,t,n){var r=Wo(e)?Tt:pr;return n&&gi(e,t,n)&&(t=a),r(e,ii(t,3))},jn.find=vo,jn.findIndex=$i,jn.findKey=function(e,t){return Rt(e,ii(t,3),mr)},jn.findLast=go,jn.findLastIndex=Bi,jn.findLastKey=function(e,t){return Rt(e,ii(t,3),br)},jn.floor=_l,jn.forEach=yo,jn.forEachRight=mo,jn.forIn=function(e,t){return null==e?e:gr(e,ii(t,3),zu)},jn.forInRight=function(e,t){return null==e?e:yr(e,ii(t,3),zu)},jn.forOwn=function(e,t){return e&&mr(e,ii(t,3))},jn.forOwnRight=function(e,t){return e&&br(e,ii(t,3))},jn.get=Eu,jn.gt=Io,jn.gte=$o,jn.has=function(e,t){return null!=e&&pi(e,t,Er)},jn.hasIn=Cu,jn.head=Vi,jn.identity=nl,jn.includes=function(e,t,n,r){e=Ho(e)?e:Uu(e),n=n&&!r?du(n):0;var a=e.length;return n<0&&(n=gn(a+n,0)),ou(e)?n<=a&&e.indexOf(t,n)>-1:!!a&&Ut(e,t,n)>-1},jn.indexOf=function(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var a=null==n?0:du(n);return a<0&&(a=gn(r+a,0)),Ut(e,t,a)},jn.inRange=function(e,t,n){return t=pu(t),n===a?(n=t,t=0):n=pu(n),function(e,t,n){return e>=yn(t,n)&&e<gn(t,n)}(e=vu(e),t,n)},jn.invoke=Nu,jn.isArguments=Bo,jn.isArray=Wo,jn.isArrayBuffer=Vo,jn.isArrayLike=Ho,jn.isArrayLikeObject=qo,jn.isBoolean=function(e){return!0===e||!1===e||eu(e)&&kr(e)==y},jn.isBuffer=Qo,jn.isDate=Yo,jn.isElement=function(e){return eu(e)&&1===e.nodeType&&!ru(e)},jn.isEmpty=function(e){if(null==e)return!0;if(Ho(e)&&(Wo(e)||\"string\"==typeof e||\"function\"==typeof e.splice||Qo(e)||lu(e)||Bo(e)))return!e.length;var t=fi(e);if(t==x||t==T)return!e.size;if(_i(e))return!Ar(e).length;for(var n in e)if(Oe.call(e,n))return!1;return!0},jn.isEqual=function(e,t){return Pr(e,t)},jn.isEqualWith=function(e,t,n){var r=(n=\"function\"==typeof n?n:a)?n(e,t):a;return r===a?Pr(e,t,a,n):!!r},jn.isError=Go,jn.isFinite=function(e){return\"number\"==typeof e&&Dt(e)},jn.isFunction=Ko,jn.isInteger=Zo,jn.isLength=Xo,jn.isMap=tu,jn.isMatch=function(e,t){return e===t||zr(e,t,ui(t))},jn.isMatchWith=function(e,t,n){return n=\"function\"==typeof n?n:a,zr(e,t,ui(t),n)},jn.isNaN=function(e){return nu(e)&&e!=+e},jn.isNative=function(e){if(bi(e))throw new we(\"Unsupported core-js use. Try https://npms.io/search?q=ponyfill.\");return Lr(e)},jn.isNil=function(e){return null==e},jn.isNull=function(e){return null===e},jn.isNumber=nu,jn.isObject=Jo,jn.isObjectLike=eu,jn.isPlainObject=ru,jn.isRegExp=au,jn.isSafeInteger=function(e){return Zo(e)&&e>=-9007199254740991&&e<=f},jn.isSet=iu,jn.isString=ou,jn.isSymbol=uu,jn.isTypedArray=lu,jn.isUndefined=function(e){return e===a},jn.isWeakMap=function(e){return eu(e)&&fi(e)==P},jn.isWeakSet=function(e){return eu(e)&&\"[object WeakSet]\"==kr(e)},jn.join=function(e,t){return null==e?\"\":Vt.call(e,t)},jn.kebabCase=Wu,jn.last=Yi,jn.lastIndexOf=function(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var i=r;return n!==a&&(i=(i=du(n))<0?gn(r+i,0):yn(i,r-1)),t==t?function(e,t,n){for(var r=n+1;r--;)if(e[r]===t)return r;return r}(e,t,i):jt(e,$t,i,!0)},jn.lowerCase=Vu,jn.lowerFirst=Hu,jn.lt=su,jn.lte=cu,jn.max=function(e){return e&&e.length?dr(e,nl,Sr):a},jn.maxBy=function(e,t){return e&&e.length?dr(e,ii(t,2),Sr):a},jn.mean=function(e){return Bt(e,nl)},jn.meanBy=function(e,t){return Bt(e,ii(t,2))},jn.min=function(e){return e&&e.length?dr(e,nl,Fr):a},jn.minBy=function(e,t){return e&&e.length?dr(e,ii(t,2),Fr):a},jn.stubArray=hl,jn.stubFalse=vl,jn.stubObject=function(){return{}},jn.stubString=function(){return\"\"},jn.stubTrue=function(){return!0},jn.multiply=wl,jn.nth=function(e,t){return e&&e.length?Ir(e,du(t)):a},jn.noConflict=function(){return ft._===this&&(ft._=je),this},jn.noop=ul,jn.now=Eo,jn.pad=function(e,t,n){e=yu(e);var r=(t=du(t))?cn(e):0;if(!t||r>=t)return e;var a=(t-r)/2;return $a(dt(a),n)+e+$a(pt(a),n)},jn.padEnd=function(e,t,n){e=yu(e);var r=(t=du(t))?cn(e):0;return t&&r<t?e+$a(t-r,n):e},jn.padStart=function(e,t,n){e=yu(e);var r=(t=du(t))?cn(e):0;return t&&r<t?$a(t-r,n)+e:e},jn.parseInt=function(e,t,n){return n||null==t?t=0:t&&(t=+t),bn(yu(e).replace(re,\"\"),t||0)},jn.random=function(e,t,n){if(n&&\"boolean\"!=typeof n&&gi(e,t,n)&&(t=n=a),n===a&&(\"boolean\"==typeof t?(n=t,t=a):\"boolean\"==typeof e&&(n=e,e=a)),e===a&&t===a?(e=0,t=1):(e=pu(e),t===a?(t=e,e=0):t=pu(t)),e>t){var r=e;e=t,t=r}if(n||e%1||t%1){var i=_n();return yn(e+i*(t-e+ut(\"1e-\"+((i+\"\").length-1))),t)}return Hr(e,t)},jn.reduce=function(e,t,n){var r=Wo(e)?Ot:Ht,a=arguments.length<3;return r(e,ii(t,4),n,a,cr)},jn.reduceRight=function(e,t,n){var r=Wo(e)?At:Ht,a=arguments.length<3;return r(e,ii(t,4),n,a,fr)},jn.repeat=function(e,t,n){return t=(n?gi(e,t,n):t===a)?1:du(t),qr(yu(e),t)},jn.replace=function(){var e=arguments,t=yu(e[0]);return e.length<3?t:t.replace(e[1],e[2])},jn.result=function(e,t,n){var r=-1,i=(t=ga(t,e)).length;for(i||(i=1,e=a);++r<i;){var o=null==e?a:e[Fi(t[r])];o===a&&(r=i,o=n),e=Ko(o)?o.call(e):o}return e},jn.round=xl,jn.runInContext=e,jn.sample=function(e){return(Wo(e)?Gn:Yr)(e)},jn.size=function(e){if(null==e)return 0;if(Ho(e))return ou(e)?cn(e):e.length;var t=fi(e);return t==x||t==T?e.size:Ar(e).length},jn.snakeCase=qu,jn.some=function(e,t,n){var r=Wo(e)?Ft:ta;return n&&gi(e,t,n)&&(t=a),r(e,ii(t,3))},jn.sortedIndex=function(e,t){return na(e,t)},jn.sortedIndexBy=function(e,t,n){return ra(e,t,ii(n,2))},jn.sortedIndexOf=function(e,t){var n=null==e?0:e.length;if(n){var r=na(e,t);if(r<n&&Uo(e[r],t))return r}return-1},jn.sortedLastIndex=function(e,t){return na(e,t,!0)},jn.sortedLastIndexBy=function(e,t,n){return ra(e,t,ii(n,2),!0)},jn.sortedLastIndexOf=function(e,t){if(null!=e&&e.length){var n=na(e,t,!0)-1;if(Uo(e[n],t))return n}return-1},jn.startCase=Qu,jn.startsWith=function(e,t,n){return e=yu(e),n=null==n?0:ir(du(n),0,e.length),t=oa(t),e.slice(n,n+t.length)==t},jn.subtract=kl,jn.sum=function(e){return e&&e.length?qt(e,nl):0},jn.sumBy=function(e,t){return e&&e.length?qt(e,ii(t,2)):0},jn.template=function(e,t,n){var r=jn.templateSettings;n&&gi(e,t,n)&&(t=a),e=yu(e),t=_u({},t,r,Ga);var i,o,u=_u({},t.imports,r.imports,Ga),l=Pu(u),s=Kt(u,l),c=0,f=t.interpolate||be,p=\"__p += '\",d=Ee((t.escape||be).source+\"|\"+f.source+\"|\"+(f===Z?fe:be).source+\"|\"+(t.evaluate||be).source+\"|$\",\"g\"),h=\"//# sourceURL=\"+(Oe.call(t,\"sourceURL\")?(t.sourceURL+\"\").replace(/\\s/g,\" \"):\"lodash.templateSources[\"+ ++rt+\"]\")+\"\\n\";e.replace(d,(function(t,n,r,a,u,l){return r||(r=a),p+=e.slice(c,l).replace(_e,nn),n&&(i=!0,p+=\"' +\\n__e(\"+n+\") +\\n'\"),u&&(o=!0,p+=\"';\\n\"+u+\";\\n__p += '\"),r&&(p+=\"' +\\n((__t = (\"+r+\")) == null ? '' : __t) +\\n'\"),c=l+t.length,t})),p+=\"';\\n\";var v=Oe.call(t,\"variable\")&&t.variable;if(v){if(se.test(v))throw new we(\"Invalid `variable` option passed into `_.template`\")}else p=\"with (obj) {\\n\"+p+\"\\n}\\n\";p=(o?p.replace(B,\"\"):p).replace(W,\"$1\").replace(V,\"$1;\"),p=\"function(\"+(v||\"obj\")+\") {\\n\"+(v?\"\":\"obj || (obj = {});\\n\")+\"var __t, __p = ''\"+(i?\", __e = _.escape\":\"\")+(o?\", __j = Array.prototype.join;\\nfunction print() { __p += __j.call(arguments, '') }\\n\":\";\\n\")+p+\"return __p\\n}\";var g=Zu((function(){return xe(l,h+\"return \"+p).apply(a,s)}));if(g.source=p,Go(g))throw g;return g},jn.times=function(e,t){if((e=du(e))<1||e>f)return[];var n=d,r=yn(e,d);t=ii(t),e-=d;for(var a=Qt(r,t);++n<e;)t(n);return a},jn.toFinite=pu,jn.toInteger=du,jn.toLength=hu,jn.toLower=function(e){return yu(e).toLowerCase()},jn.toNumber=vu,jn.toSafeInteger=function(e){return e?ir(du(e),-9007199254740991,f):0===e?e:0},jn.toString=yu,jn.toUpper=function(e){return yu(e).toUpperCase()},jn.trim=function(e,t,n){if((e=yu(e))&&(n||t===a))return Yt(e);if(!e||!(t=oa(t)))return e;var r=fn(e),i=fn(t);return ma(r,Xt(r,i),Jt(r,i)+1).join(\"\")},jn.trimEnd=function(e,t,n){if((e=yu(e))&&(n||t===a))return e.slice(0,pn(e)+1);if(!e||!(t=oa(t)))return e;var r=fn(e);return ma(r,0,Jt(r,fn(t))+1).join(\"\")},jn.trimStart=function(e,t,n){if((e=yu(e))&&(n||t===a))return e.replace(re,\"\");if(!e||!(t=oa(t)))return e;var r=fn(e);return ma(r,Xt(r,fn(t))).join(\"\")},jn.truncate=function(e,t){var n=30,r=\"...\";if(Jo(t)){var i=\"separator\"in t?t.separator:i;n=\"length\"in t?du(t.length):n,r=\"omission\"in t?oa(t.omission):r}var o=(e=yu(e)).length;if(rn(e)){var u=fn(e);o=u.length}if(n>=o)return e;var l=n-cn(r);if(l<1)return r;var s=u?ma(u,0,l).join(\"\"):e.slice(0,l);if(i===a)return s+r;if(u&&(l+=s.length-l),au(i)){if(e.slice(l).search(i)){var c,f=s;for(i.global||(i=Ee(i.source,yu(pe.exec(i))+\"g\")),i.lastIndex=0;c=i.exec(f);)var p=c.index;s=s.slice(0,p===a?l:p)}}else if(e.indexOf(oa(i),l)!=l){var d=s.lastIndexOf(i);d>-1&&(s=s.slice(0,d))}return s+r},jn.unescape=function(e){return(e=yu(e))&&Q.test(e)?e.replace(H,dn):e},jn.uniqueId=function(e){var t=++Ae;return yu(e)+t},jn.upperCase=Yu,jn.upperFirst=Gu,jn.each=yo,jn.eachRight=mo,jn.first=Vi,ol(jn,(gl={},mr(jn,(function(e,t){Oe.call(jn.prototype,t)||(gl[t]=e)})),gl),{chain:!1}),jn.VERSION=\"4.17.21\",Et([\"bind\",\"bindKey\",\"curry\",\"curryRight\",\"partial\",\"partialRight\"],(function(e){jn[e].placeholder=jn})),Et([\"drop\",\"take\"],(function(e,t){Bn.prototype[e]=function(n){n=n===a?1:gn(du(n),0);var r=this.__filtered__&&!t?new Bn(this):this.clone();return r.__filtered__?r.__takeCount__=yn(n,r.__takeCount__):r.__views__.push({size:yn(n,d),type:e+(r.__dir__<0?\"Right\":\"\")}),r},Bn.prototype[e+\"Right\"]=function(t){return this.reverse()[e](t).reverse()}})),Et([\"filter\",\"map\",\"takeWhile\"],(function(e,t){var n=t+1,r=1==n||3==n;Bn.prototype[e]=function(e){var t=this.clone();return t.__iteratees__.push({iteratee:ii(e,3),type:n}),t.__filtered__=t.__filtered__||r,t}})),Et([\"head\",\"last\"],(function(e,t){var n=\"take\"+(t?\"Right\":\"\");Bn.prototype[e]=function(){return this[n](1).value()[0]}})),Et([\"initial\",\"tail\"],(function(e,t){var n=\"drop\"+(t?\"\":\"Right\");Bn.prototype[e]=function(){return this.__filtered__?new Bn(this):this[n](1)}})),Bn.prototype.compact=function(){return this.filter(nl)},Bn.prototype.find=function(e){return this.filter(e).head()},Bn.prototype.findLast=function(e){return this.reverse().find(e)},Bn.prototype.invokeMap=Qr((function(e,t){return\"function\"==typeof e?new Bn(this):this.map((function(n){return Mr(n,e,t)}))})),Bn.prototype.reject=function(e){return this.filter(Ao(ii(e)))},Bn.prototype.slice=function(e,t){e=du(e);var n=this;return n.__filtered__&&(e>0||t<0)?new Bn(n):(e<0?n=n.takeRight(-e):e&&(n=n.drop(e)),t!==a&&(n=(t=du(t))<0?n.dropRight(-t):n.take(t-e)),n)},Bn.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},Bn.prototype.toArray=function(){return this.take(d)},mr(Bn.prototype,(function(e,t){var n=/^(?:filter|find|map|reject)|While$/.test(t),r=/^(?:head|last)$/.test(t),i=jn[r?\"take\"+(\"last\"==t?\"Right\":\"\"):t],o=r||/^find/.test(t);i&&(jn.prototype[t]=function(){var t=this.__wrapped__,u=r?[1]:arguments,l=t instanceof Bn,s=u[0],c=l||Wo(t),f=function(e){var t=i.apply(jn,Lt([e],u));return r&&p?t[0]:t};c&&n&&\"function\"==typeof s&&1!=s.length&&(l=c=!1);var p=this.__chain__,d=!!this.__actions__.length,h=o&&!p,v=l&&!d;if(!o&&c){t=v?t:new Bn(this);var g=e.apply(t,u);return g.__actions__.push({func:fo,args:[f],thisArg:a}),new $n(g,p)}return h&&v?e.apply(this,u):(g=this.thru(f),h?r?g.value()[0]:g.value():g)})})),Et([\"pop\",\"push\",\"shift\",\"sort\",\"splice\",\"unshift\"],(function(e){var t=Me[e],n=/^(?:push|sort|unshift)$/.test(e)?\"tap\":\"thru\",r=/^(?:pop|shift)$/.test(e);jn.prototype[e]=function(){var e=arguments;if(r&&!this.__chain__){var a=this.value();return t.apply(Wo(a)?a:[],e)}return this[n]((function(n){return t.apply(Wo(n)?n:[],e)}))}})),mr(Bn.prototype,(function(e,t){var n=jn[t];if(n){var r=n.name+\"\";Oe.call(Nn,r)||(Nn[r]=[]),Nn[r].push({name:t,func:n})}})),Nn[Ra(a,2).name]=[{name:\"wrapper\",func:a}],Bn.prototype.clone=function(){var e=new Bn(this.__wrapped__);return e.__actions__=Ca(this.__actions__),e.__dir__=this.__dir__,e.__filtered__=this.__filtered__,e.__iteratees__=Ca(this.__iteratees__),e.__takeCount__=this.__takeCount__,e.__views__=Ca(this.__views__),e},Bn.prototype.reverse=function(){if(this.__filtered__){var e=new Bn(this);e.__dir__=-1,e.__filtered__=!0}else(e=this.clone()).__dir__*=-1;return e},Bn.prototype.value=function(){var e=this.__wrapped__.value(),t=this.__dir__,n=Wo(e),r=t<0,a=n?e.length:0,i=function(e,t,n){for(var r=-1,a=n.length;++r<a;){var i=n[r],o=i.size;switch(i.type){case\"drop\":e+=o;break;case\"dropRight\":t-=o;break;case\"take\":t=yn(t,e+o);break;case\"takeRight\":e=gn(e,t-o)}}return{start:e,end:t}}(0,a,this.__views__),o=i.start,u=i.end,l=u-o,s=r?u:o-1,c=this.__iteratees__,f=c.length,p=0,d=yn(l,this.__takeCount__);if(!n||!r&&a==l&&d==l)return fa(e,this.__actions__);var h=[];e:for(;l--&&p<d;){for(var v=-1,g=e[s+=t];++v<f;){var y=c[v],m=y.iteratee,b=y.type,_=m(g);if(2==b)g=_;else if(!_){if(1==b)continue e;break e}}h[p++]=g}return h},jn.prototype.at=po,jn.prototype.chain=function(){return co(this)},jn.prototype.commit=function(){return new $n(this.value(),this.__chain__)},jn.prototype.next=function(){this.__values__===a&&(this.__values__=fu(this.value()));var e=this.__index__>=this.__values__.length;return{done:e,value:e?a:this.__values__[this.__index__++]}},jn.prototype.plant=function(e){for(var t,n=this;n instanceof In;){var r=Ri(n);r.__index__=0,r.__values__=a,t?i.__wrapped__=r:t=r;var i=r;n=n.__wrapped__}return i.__wrapped__=e,t},jn.prototype.reverse=function(){var e=this.__wrapped__;if(e instanceof Bn){var t=e;return this.__actions__.length&&(t=new Bn(this)),(t=t.reverse()).__actions__.push({func:fo,args:[Xi],thisArg:a}),new $n(t,this.__chain__)}return this.thru(Xi)},jn.prototype.toJSON=jn.prototype.valueOf=jn.prototype.value=function(){return fa(this.__wrapped__,this.__actions__)},jn.prototype.first=jn.prototype.head,Ge&&(jn.prototype[Ge]=function(){return this}),jn}();ft._=hn,(r=function(){return hn}.call(t,n,t,e))===a||(e.exports=r)}.call(this)},448:(e,t,n)=>{\"use strict\";var r=n(294),a=n(840);function i(e){for(var t=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+e,n=1;n<arguments.length;n++)t+=\"&args[]=\"+encodeURIComponent(arguments[n]);return\"Minified React error #\"+e+\"; visit \"+t+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}var o=new Set,u={};function l(e,t){s(e,t),s(e+\"Capture\",t)}function s(e,t){for(u[e]=t,e=0;e<t.length;e++)o.add(t[e])}var c=!(\"undefined\"==typeof window||void 0===window.document||void 0===window.document.createElement),f=Object.prototype.hasOwnProperty,p=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,d={},h={};function v(e,t,n,r,a,i,o){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=a,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=i,this.removeEmptyString=o}var g={};\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach((function(e){g[e]=new v(e,0,!1,e,null,!1,!1)})),[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach((function(e){var t=e[0];g[t]=new v(t,1,!1,e[1],null,!1,!1)})),[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach((function(e){g[e]=new v(e,2,!1,e.toLowerCase(),null,!1,!1)})),[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach((function(e){g[e]=new v(e,2,!1,e,null,!1,!1)})),\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach((function(e){g[e]=new v(e,3,!1,e.toLowerCase(),null,!1,!1)})),[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach((function(e){g[e]=new v(e,3,!0,e,null,!1,!1)})),[\"capture\",\"download\"].forEach((function(e){g[e]=new v(e,4,!1,e,null,!1,!1)})),[\"cols\",\"rows\",\"size\",\"span\"].forEach((function(e){g[e]=new v(e,6,!1,e,null,!1,!1)})),[\"rowSpan\",\"start\"].forEach((function(e){g[e]=new v(e,5,!1,e.toLowerCase(),null,!1,!1)}));var y=/[\\-:]([a-z])/g;function m(e){return e[1].toUpperCase()}function b(e,t,n,r){var a=g.hasOwnProperty(t)?g[t]:null;(null!==a?0!==a.type:r||!(2<t.length)||\"o\"!==t[0]&&\"O\"!==t[0]||\"n\"!==t[1]&&\"N\"!==t[1])&&(function(e,t,n,r){if(null==t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case\"function\":case\"symbol\":return!0;case\"boolean\":return!r&&(null!==n?!n.acceptsBooleans:\"data-\"!==(e=e.toLowerCase().slice(0,5))&&\"aria-\"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,a,r)&&(n=null),r||null===a?function(e){return!!f.call(h,e)||!f.call(d,e)&&(p.test(e)?h[e]=!0:(d[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,\"\"+n)):a.mustUseProperty?e[a.propertyName]=null===n?3!==a.type&&\"\":n:(t=a.attributeName,r=a.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(a=a.type)||4===a&&!0===n?\"\":\"\"+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach((function(e){var t=e.replace(y,m);g[t]=new v(t,1,!1,e,null,!1,!1)})),\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach((function(e){var t=e.replace(y,m);g[t]=new v(t,1,!1,e,\"http://www.w3.org/1999/xlink\",!1,!1)})),[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach((function(e){var t=e.replace(y,m);g[t]=new v(t,1,!1,e,\"http://www.w3.org/XML/1998/namespace\",!1,!1)})),[\"tabIndex\",\"crossOrigin\"].forEach((function(e){g[e]=new v(e,1,!1,e.toLowerCase(),null,!1,!1)})),g.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1),[\"src\",\"href\",\"action\",\"formAction\"].forEach((function(e){g[e]=new v(e,1,!1,e.toLowerCase(),null,!0,!0)}));var _=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,w=Symbol.for(\"react.element\"),x=Symbol.for(\"react.portal\"),k=Symbol.for(\"react.fragment\"),S=Symbol.for(\"react.strict_mode\"),E=Symbol.for(\"react.profiler\"),C=Symbol.for(\"react.provider\"),T=Symbol.for(\"react.context\"),M=Symbol.for(\"react.forward_ref\"),N=Symbol.for(\"react.suspense\"),P=Symbol.for(\"react.suspense_list\"),z=Symbol.for(\"react.memo\"),L=Symbol.for(\"react.lazy\");Symbol.for(\"react.scope\"),Symbol.for(\"react.debug_trace_mode\");var O=Symbol.for(\"react.offscreen\");Symbol.for(\"react.legacy_hidden\"),Symbol.for(\"react.cache\"),Symbol.for(\"react.tracing_marker\");var A=Symbol.iterator;function F(e){return null===e||\"object\"!=typeof e?null:\"function\"==typeof(e=A&&e[A]||e[\"@@iterator\"])?e:null}var D,R=Object.assign;function j(e){if(void 0===D)try{throw Error()}catch(e){var t=e.stack.trim().match(/\\n( *(at )?)/);D=t&&t[1]||\"\"}return\"\\n\"+D+e}var U=!1;function I(e,t){if(!e||U)return\"\";U=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,\"props\",{set:function(){throw Error()}}),\"object\"==typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(e){var r=e}Reflect.construct(e,[],t)}else{try{t.call()}catch(e){r=e}e.call(t.prototype)}else{try{throw Error()}catch(e){r=e}e()}}catch(t){if(t&&r&&\"string\"==typeof t.stack){for(var a=t.stack.split(\"\\n\"),i=r.stack.split(\"\\n\"),o=a.length-1,u=i.length-1;1<=o&&0<=u&&a[o]!==i[u];)u--;for(;1<=o&&0<=u;o--,u--)if(a[o]!==i[u]){if(1!==o||1!==u)do{if(o--,0>--u||a[o]!==i[u]){var l=\"\\n\"+a[o].replace(\" at new \",\" at \");return e.displayName&&l.includes(\"<anonymous>\")&&(l=l.replace(\"<anonymous>\",e.displayName)),l}}while(1<=o&&0<=u);break}}}finally{U=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:\"\")?j(e):\"\"}function $(e){switch(e.tag){case 5:return j(e.type);case 16:return j(\"Lazy\");case 13:return j(\"Suspense\");case 19:return j(\"SuspenseList\");case 0:case 2:case 15:return I(e.type,!1);case 11:return I(e.type.render,!1);case 1:return I(e.type,!0);default:return\"\"}}function B(e){if(null==e)return null;if(\"function\"==typeof e)return e.displayName||e.name||null;if(\"string\"==typeof e)return e;switch(e){case k:return\"Fragment\";case x:return\"Portal\";case E:return\"Profiler\";case S:return\"StrictMode\";case N:return\"Suspense\";case P:return\"SuspenseList\"}if(\"object\"==typeof e)switch(e.$$typeof){case T:return(e.displayName||\"Context\")+\".Consumer\";case C:return(e._context.displayName||\"Context\")+\".Provider\";case M:var t=e.render;return(e=e.displayName)||(e=\"\"!==(e=t.displayName||t.name||\"\")?\"ForwardRef(\"+e+\")\":\"ForwardRef\"),e;case z:return null!==(t=e.displayName||null)?t:B(e.type)||\"Memo\";case L:t=e._payload,e=e._init;try{return B(e(t))}catch(e){}}return null}function W(e){var t=e.type;switch(e.tag){case 24:return\"Cache\";case 9:return(t.displayName||\"Context\")+\".Consumer\";case 10:return(t._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return e=(e=t.render).displayName||e.name||\"\",t.displayName||(\"\"!==e?\"ForwardRef(\"+e+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return t;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return B(t);case 8:return t===S?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";case 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"==typeof t)return t.displayName||t.name||null;if(\"string\"==typeof t)return t}return null}function V(e){switch(typeof e){case\"boolean\":case\"number\":case\"string\":case\"undefined\":case\"object\":return e;default:return\"\"}}function H(e){var t=e.type;return(e=e.nodeName)&&\"input\"===e.toLowerCase()&&(\"checkbox\"===t||\"radio\"===t)}function q(e){e._valueTracker||(e._valueTracker=function(e){var t=H(e)?\"checked\":\"value\",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=\"\"+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&\"function\"==typeof n.get&&\"function\"==typeof n.set){var a=n.get,i=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(e){r=\"\"+e,i.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=\"\"+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function Q(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r=\"\";return e&&(r=H(e)?e.checked?\"true\":\"false\":e.value),(e=r)!==n&&(t.setValue(e),!0)}function Y(e){if(void 0===(e=e||(\"undefined\"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function G(e,t){var n=t.checked;return R({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function K(e,t){var n=null==t.defaultValue?\"\":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=V(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:\"checkbox\"===t.type||\"radio\"===t.type?null!=t.checked:null!=t.value}}function Z(e,t){null!=(t=t.checked)&&b(e,\"checked\",t,!1)}function X(e,t){Z(e,t);var n=V(t.value),r=t.type;if(null!=n)\"number\"===r?(0===n&&\"\"===e.value||e.value!=n)&&(e.value=\"\"+n):e.value!==\"\"+n&&(e.value=\"\"+n);else if(\"submit\"===r||\"reset\"===r)return void e.removeAttribute(\"value\");t.hasOwnProperty(\"value\")?ee(e,t.type,n):t.hasOwnProperty(\"defaultValue\")&&ee(e,t.type,V(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function J(e,t,n){if(t.hasOwnProperty(\"value\")||t.hasOwnProperty(\"defaultValue\")){var r=t.type;if(!(\"submit\"!==r&&\"reset\"!==r||void 0!==t.value&&null!==t.value))return;t=\"\"+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}\"\"!==(n=e.name)&&(e.name=\"\"),e.defaultChecked=!!e._wrapperState.initialChecked,\"\"!==n&&(e.name=n)}function ee(e,t,n){\"number\"===t&&Y(e.ownerDocument)===e||(null==n?e.defaultValue=\"\"+e._wrapperState.initialValue:e.defaultValue!==\"\"+n&&(e.defaultValue=\"\"+n))}var te=Array.isArray;function ne(e,t,n,r){if(e=e.options,t){t={};for(var a=0;a<n.length;a++)t[\"$\"+n[a]]=!0;for(n=0;n<e.length;n++)a=t.hasOwnProperty(\"$\"+e[n].value),e[n].selected!==a&&(e[n].selected=a),a&&r&&(e[n].defaultSelected=!0)}else{for(n=\"\"+V(n),t=null,a=0;a<e.length;a++){if(e[a].value===n)return e[a].selected=!0,void(r&&(e[a].defaultSelected=!0));null!==t||e[a].disabled||(t=e[a])}null!==t&&(t.selected=!0)}}function re(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(i(91));return R({},t,{value:void 0,defaultValue:void 0,children:\"\"+e._wrapperState.initialValue})}function ae(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(i(92));if(te(n)){if(1<n.length)throw Error(i(93));n=n[0]}t=n}null==t&&(t=\"\"),n=t}e._wrapperState={initialValue:V(n)}}function ie(e,t){var n=V(t.value),r=V(t.defaultValue);null!=n&&((n=\"\"+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=\"\"+r)}function oe(e){var t=e.textContent;t===e._wrapperState.initialValue&&\"\"!==t&&null!==t&&(e.value=t)}function ue(e){switch(e){case\"svg\":return\"http://www.w3.org/2000/svg\";case\"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function le(e,t){return null==e||\"http://www.w3.org/1999/xhtml\"===e?ue(t):\"http://www.w3.org/2000/svg\"===e&&\"foreignObject\"===t?\"http://www.w3.org/1999/xhtml\":e}var se,ce,fe=(ce=function(e,t){if(\"http://www.w3.org/2000/svg\"!==e.namespaceURI||\"innerHTML\"in e)e.innerHTML=t;else{for((se=se||document.createElement(\"div\")).innerHTML=\"<svg>\"+t.valueOf().toString()+\"</svg>\",t=se.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},\"undefined\"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction((function(){return ce(e,t)}))}:ce);function pe(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var de={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},he=[\"Webkit\",\"ms\",\"Moz\",\"O\"];function ve(e,t,n){return null==t||\"boolean\"==typeof t||\"\"===t?\"\":n||\"number\"!=typeof t||0===t||de.hasOwnProperty(e)&&de[e]?(\"\"+t).trim():t+\"px\"}function ge(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf(\"--\"),a=ve(n,t[n],r);\"float\"===n&&(n=\"cssFloat\"),r?e.setProperty(n,a):e[n]=a}}Object.keys(de).forEach((function(e){he.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),de[t]=de[e]}))}));var ye=R({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function me(e,t){if(t){if(ye[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(i(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(i(60));if(\"object\"!=typeof t.dangerouslySetInnerHTML||!(\"__html\"in t.dangerouslySetInnerHTML))throw Error(i(61))}if(null!=t.style&&\"object\"!=typeof t.style)throw Error(i(62))}}function be(e,t){if(-1===e.indexOf(\"-\"))return\"string\"==typeof t.is;switch(e){case\"annotation-xml\":case\"color-profile\":case\"font-face\":case\"font-face-src\":case\"font-face-uri\":case\"font-face-format\":case\"font-face-name\":case\"missing-glyph\":return!1;default:return!0}}var _e=null;function we(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var xe=null,ke=null,Se=null;function Ee(e){if(e=ba(e)){if(\"function\"!=typeof xe)throw Error(i(280));var t=e.stateNode;t&&(t=wa(t),xe(e.stateNode,e.type,t))}}function Ce(e){ke?Se?Se.push(e):Se=[e]:ke=e}function Te(){if(ke){var e=ke,t=Se;if(Se=ke=null,Ee(e),t)for(e=0;e<t.length;e++)Ee(t[e])}}function Me(e,t){return e(t)}function Ne(){}var Pe=!1;function ze(e,t,n){if(Pe)return e(t,n);Pe=!0;try{return Me(e,t,n)}finally{Pe=!1,(null!==ke||null!==Se)&&(Ne(),Te())}}function Le(e,t){var n=e.stateNode;if(null===n)return null;var r=wa(n);if(null===r)return null;n=r[t];e:switch(t){case\"onClick\":case\"onClickCapture\":case\"onDoubleClick\":case\"onDoubleClickCapture\":case\"onMouseDown\":case\"onMouseDownCapture\":case\"onMouseMove\":case\"onMouseMoveCapture\":case\"onMouseUp\":case\"onMouseUpCapture\":case\"onMouseEnter\":(r=!r.disabled)||(r=!(\"button\"===(e=e.type)||\"input\"===e||\"select\"===e||\"textarea\"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&\"function\"!=typeof n)throw Error(i(231,t,typeof n));return n}var Oe=!1;if(c)try{var Ae={};Object.defineProperty(Ae,\"passive\",{get:function(){Oe=!0}}),window.addEventListener(\"test\",Ae,Ae),window.removeEventListener(\"test\",Ae,Ae)}catch(ce){Oe=!1}function Fe(e,t,n,r,a,i,o,u,l){var s=Array.prototype.slice.call(arguments,3);try{t.apply(n,s)}catch(e){this.onError(e)}}var De=!1,Re=null,je=!1,Ue=null,Ie={onError:function(e){De=!0,Re=e}};function $e(e,t,n,r,a,i,o,u,l){De=!1,Re=null,Fe.apply(Ie,arguments)}function Be(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!=(4098&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function We(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&null!==(e=e.alternate)&&(t=e.memoizedState),null!==t)return t.dehydrated}return null}function Ve(e){if(Be(e)!==e)throw Error(i(188))}function He(e){return null!==(e=function(e){var t=e.alternate;if(!t){if(null===(t=Be(e)))throw Error(i(188));return t!==e?null:e}for(var n=e,r=t;;){var a=n.return;if(null===a)break;var o=a.alternate;if(null===o){if(null!==(r=a.return)){n=r;continue}break}if(a.child===o.child){for(o=a.child;o;){if(o===n)return Ve(a),e;if(o===r)return Ve(a),t;o=o.sibling}throw Error(i(188))}if(n.return!==r.return)n=a,r=o;else{for(var u=!1,l=a.child;l;){if(l===n){u=!0,n=a,r=o;break}if(l===r){u=!0,r=a,n=o;break}l=l.sibling}if(!u){for(l=o.child;l;){if(l===n){u=!0,n=o,r=a;break}if(l===r){u=!0,r=o,n=a;break}l=l.sibling}if(!u)throw Error(i(189))}}if(n.alternate!==r)throw Error(i(190))}if(3!==n.tag)throw Error(i(188));return n.stateNode.current===n?e:t}(e))?qe(e):null}function qe(e){if(5===e.tag||6===e.tag)return e;for(e=e.child;null!==e;){var t=qe(e);if(null!==t)return t;e=e.sibling}return null}var Qe=a.unstable_scheduleCallback,Ye=a.unstable_cancelCallback,Ge=a.unstable_shouldYield,Ke=a.unstable_requestPaint,Ze=a.unstable_now,Xe=a.unstable_getCurrentPriorityLevel,Je=a.unstable_ImmediatePriority,et=a.unstable_UserBlockingPriority,tt=a.unstable_NormalPriority,nt=a.unstable_LowPriority,rt=a.unstable_IdlePriority,at=null,it=null,ot=Math.clz32?Math.clz32:function(e){return 0===(e>>>=0)?32:31-(ut(e)/lt|0)|0},ut=Math.log,lt=Math.LN2,st=64,ct=4194304;function ft(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return 4194240&e;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return 130023424&e;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function pt(e,t){var n=e.pendingLanes;if(0===n)return 0;var r=0,a=e.suspendedLanes,i=e.pingedLanes,o=268435455&n;if(0!==o){var u=o&~a;0!==u?r=ft(u):0!=(i&=o)&&(r=ft(i))}else 0!=(o=n&~a)?r=ft(o):0!==i&&(r=ft(i));if(0===r)return 0;if(0!==t&&t!==r&&0==(t&a)&&((a=r&-r)>=(i=t&-t)||16===a&&0!=(4194240&i)))return t;if(0!=(4&r)&&(r|=16&n),0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0<t;)a=1<<(n=31-ot(t)),r|=e[n],t&=~a;return r}function dt(e,t){switch(e){case 1:case 2:case 4:return t+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;default:return-1}}function ht(e){return 0!=(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function vt(){var e=st;return 0==(4194240&(st<<=1))&&(st=64),e}function gt(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function yt(e,t,n){e.pendingLanes|=t,536870912!==t&&(e.suspendedLanes=0,e.pingedLanes=0),(e=e.eventTimes)[t=31-ot(t)]=n}function mt(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-ot(n),a=1<<r;a&t|e[r]&t&&(e[r]|=t),n&=~a}}var bt=0;function _t(e){return 1<(e&=-e)?4<e?0!=(268435455&e)?16:536870912:4:1}var wt,xt,kt,St,Et,Ct=!1,Tt=[],Mt=null,Nt=null,Pt=null,zt=new Map,Lt=new Map,Ot=[],At=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit\".split(\" \");function Ft(e,t){switch(e){case\"focusin\":case\"focusout\":Mt=null;break;case\"dragenter\":case\"dragleave\":Nt=null;break;case\"mouseover\":case\"mouseout\":Pt=null;break;case\"pointerover\":case\"pointerout\":zt.delete(t.pointerId);break;case\"gotpointercapture\":case\"lostpointercapture\":Lt.delete(t.pointerId)}}function Dt(e,t,n,r,a,i){return null===e||e.nativeEvent!==i?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:i,targetContainers:[a]},null!==t&&null!==(t=ba(t))&&xt(t),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==a&&-1===t.indexOf(a)&&t.push(a),e)}function Rt(e){var t=ma(e.target);if(null!==t){var n=Be(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=We(n)))return e.blockedOn=t,void Et(e.priority,(function(){kt(n)}))}else if(3===t&&n.stateNode.current.memoizedState.isDehydrated)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function jt(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Gt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=ba(n))&&xt(t),e.blockedOn=n,!1;var r=new(n=e.nativeEvent).constructor(n.type,n);_e=r,n.target.dispatchEvent(r),_e=null,t.shift()}return!0}function Ut(e,t,n){jt(e)&&n.delete(t)}function It(){Ct=!1,null!==Mt&&jt(Mt)&&(Mt=null),null!==Nt&&jt(Nt)&&(Nt=null),null!==Pt&&jt(Pt)&&(Pt=null),zt.forEach(Ut),Lt.forEach(Ut)}function $t(e,t){e.blockedOn===t&&(e.blockedOn=null,Ct||(Ct=!0,a.unstable_scheduleCallback(a.unstable_NormalPriority,It)))}function Bt(e){function t(t){return $t(t,e)}if(0<Tt.length){$t(Tt[0],e);for(var n=1;n<Tt.length;n++){var r=Tt[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==Mt&&$t(Mt,e),null!==Nt&&$t(Nt,e),null!==Pt&&$t(Pt,e),zt.forEach(t),Lt.forEach(t),n=0;n<Ot.length;n++)(r=Ot[n]).blockedOn===e&&(r.blockedOn=null);for(;0<Ot.length&&null===(n=Ot[0]).blockedOn;)Rt(n),null===n.blockedOn&&Ot.shift()}var Wt=_.ReactCurrentBatchConfig,Vt=!0;function Ht(e,t,n,r){var a=bt,i=Wt.transition;Wt.transition=null;try{bt=1,Qt(e,t,n,r)}finally{bt=a,Wt.transition=i}}function qt(e,t,n,r){var a=bt,i=Wt.transition;Wt.transition=null;try{bt=4,Qt(e,t,n,r)}finally{bt=a,Wt.transition=i}}function Qt(e,t,n,r){if(Vt){var a=Gt(e,t,n,r);if(null===a)Vr(e,t,r,Yt,n),Ft(e,r);else if(function(e,t,n,r,a){switch(t){case\"focusin\":return Mt=Dt(Mt,e,t,n,r,a),!0;case\"dragenter\":return Nt=Dt(Nt,e,t,n,r,a),!0;case\"mouseover\":return Pt=Dt(Pt,e,t,n,r,a),!0;case\"pointerover\":var i=a.pointerId;return zt.set(i,Dt(zt.get(i)||null,e,t,n,r,a)),!0;case\"gotpointercapture\":return i=a.pointerId,Lt.set(i,Dt(Lt.get(i)||null,e,t,n,r,a)),!0}return!1}(a,e,t,n,r))r.stopPropagation();else if(Ft(e,r),4&t&&-1<At.indexOf(e)){for(;null!==a;){var i=ba(a);if(null!==i&&wt(i),null===(i=Gt(e,t,n,r))&&Vr(e,t,r,Yt,n),i===a)break;a=i}null!==a&&r.stopPropagation()}else Vr(e,t,r,null,n)}}var Yt=null;function Gt(e,t,n,r){if(Yt=null,null!==(e=ma(e=we(r))))if(null===(t=Be(e)))e=null;else if(13===(n=t.tag)){if(null!==(e=We(t)))return e;e=null}else if(3===n){if(t.stateNode.current.memoizedState.isDehydrated)return 3===t.tag?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null);return Yt=e,null}function Kt(e){switch(e){case\"cancel\":case\"click\":case\"close\":case\"contextmenu\":case\"copy\":case\"cut\":case\"auxclick\":case\"dblclick\":case\"dragend\":case\"dragstart\":case\"drop\":case\"focusin\":case\"focusout\":case\"input\":case\"invalid\":case\"keydown\":case\"keypress\":case\"keyup\":case\"mousedown\":case\"mouseup\":case\"paste\":case\"pause\":case\"play\":case\"pointercancel\":case\"pointerdown\":case\"pointerup\":case\"ratechange\":case\"reset\":case\"resize\":case\"seeked\":case\"submit\":case\"touchcancel\":case\"touchend\":case\"touchstart\":case\"volumechange\":case\"change\":case\"selectionchange\":case\"textInput\":case\"compositionstart\":case\"compositionend\":case\"compositionupdate\":case\"beforeblur\":case\"afterblur\":case\"beforeinput\":case\"blur\":case\"fullscreenchange\":case\"focus\":case\"hashchange\":case\"popstate\":case\"select\":case\"selectstart\":return 1;case\"drag\":case\"dragenter\":case\"dragexit\":case\"dragleave\":case\"dragover\":case\"mousemove\":case\"mouseout\":case\"mouseover\":case\"pointermove\":case\"pointerout\":case\"pointerover\":case\"scroll\":case\"toggle\":case\"touchmove\":case\"wheel\":case\"mouseenter\":case\"mouseleave\":case\"pointerenter\":case\"pointerleave\":return 4;case\"message\":switch(Xe()){case Je:return 1;case et:return 4;case tt:case nt:return 16;case rt:return 536870912;default:return 16}default:return 16}}var Zt=null,Xt=null,Jt=null;function en(){if(Jt)return Jt;var e,t,n=Xt,r=n.length,a=\"value\"in Zt?Zt.value:Zt.textContent,i=a.length;for(e=0;e<r&&n[e]===a[e];e++);var o=r-e;for(t=1;t<=o&&n[r-t]===a[i-t];t++);return Jt=a.slice(e,1<t?1-t:void 0)}function tn(e){var t=e.keyCode;return\"charCode\"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function nn(){return!0}function rn(){return!1}function an(e){function t(t,n,r,a,i){for(var o in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=a,this.target=i,this.currentTarget=null,e)e.hasOwnProperty(o)&&(t=e[o],this[o]=t?t(a):a[o]);return this.isDefaultPrevented=(null!=a.defaultPrevented?a.defaultPrevented:!1===a.returnValue)?nn:rn,this.isPropagationStopped=rn,this}return R(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():\"unknown\"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=nn)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():\"unknown\"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=nn)},persist:function(){},isPersistent:nn}),t}var on,un,ln,sn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},cn=an(sn),fn=R({},sn,{view:0,detail:0}),pn=an(fn),dn=R({},fn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:En,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return\"movementX\"in e?e.movementX:(e!==ln&&(ln&&\"mousemove\"===e.type?(on=e.screenX-ln.screenX,un=e.screenY-ln.screenY):un=on=0,ln=e),on)},movementY:function(e){return\"movementY\"in e?e.movementY:un}}),hn=an(dn),vn=an(R({},dn,{dataTransfer:0})),gn=an(R({},fn,{relatedTarget:0})),yn=an(R({},sn,{animationName:0,elapsedTime:0,pseudoElement:0})),mn=R({},sn,{clipboardData:function(e){return\"clipboardData\"in e?e.clipboardData:window.clipboardData}}),bn=an(mn),_n=an(R({},sn,{data:0})),wn={Esc:\"Escape\",Spacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},xn={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},kn={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function Sn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=kn[e])&&!!t[e]}function En(){return Sn}var Cn=R({},fn,{key:function(e){if(e.key){var t=wn[e.key]||e.key;if(\"Unidentified\"!==t)return t}return\"keypress\"===e.type?13===(e=tn(e))?\"Enter\":String.fromCharCode(e):\"keydown\"===e.type||\"keyup\"===e.type?xn[e.keyCode]||\"Unidentified\":\"\"},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:En,charCode:function(e){return\"keypress\"===e.type?tn(e):0},keyCode:function(e){return\"keydown\"===e.type||\"keyup\"===e.type?e.keyCode:0},which:function(e){return\"keypress\"===e.type?tn(e):\"keydown\"===e.type||\"keyup\"===e.type?e.keyCode:0}}),Tn=an(Cn),Mn=an(R({},dn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Nn=an(R({},fn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:En})),Pn=an(R({},sn,{propertyName:0,elapsedTime:0,pseudoElement:0})),zn=R({},dn,{deltaX:function(e){return\"deltaX\"in e?e.deltaX:\"wheelDeltaX\"in e?-e.wheelDeltaX:0},deltaY:function(e){return\"deltaY\"in e?e.deltaY:\"wheelDeltaY\"in e?-e.wheelDeltaY:\"wheelDelta\"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),Ln=an(zn),On=[9,13,27,32],An=c&&\"CompositionEvent\"in window,Fn=null;c&&\"documentMode\"in document&&(Fn=document.documentMode);var Dn=c&&\"TextEvent\"in window&&!Fn,Rn=c&&(!An||Fn&&8<Fn&&11>=Fn),jn=String.fromCharCode(32),Un=!1;function In(e,t){switch(e){case\"keyup\":return-1!==On.indexOf(t.keyCode);case\"keydown\":return 229!==t.keyCode;case\"keypress\":case\"mousedown\":case\"focusout\":return!0;default:return!1}}function $n(e){return\"object\"==typeof(e=e.detail)&&\"data\"in e?e.data:null}var Bn=!1,Wn={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Vn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return\"input\"===t?!!Wn[e.type]:\"textarea\"===t}function Hn(e,t,n,r){Ce(r),0<(t=qr(t,\"onChange\")).length&&(n=new cn(\"onChange\",\"change\",null,n,r),e.push({event:n,listeners:t}))}var qn=null,Qn=null;function Yn(e){jr(e,0)}function Gn(e){if(Q(_a(e)))return e}function Kn(e,t){if(\"change\"===e)return t}var Zn=!1;if(c){var Xn;if(c){var Jn=\"oninput\"in document;if(!Jn){var er=document.createElement(\"div\");er.setAttribute(\"oninput\",\"return;\"),Jn=\"function\"==typeof er.oninput}Xn=Jn}else Xn=!1;Zn=Xn&&(!document.documentMode||9<document.documentMode)}function tr(){qn&&(qn.detachEvent(\"onpropertychange\",nr),Qn=qn=null)}function nr(e){if(\"value\"===e.propertyName&&Gn(Qn)){var t=[];Hn(t,Qn,e,we(e)),ze(Yn,t)}}function rr(e,t,n){\"focusin\"===e?(tr(),Qn=n,(qn=t).attachEvent(\"onpropertychange\",nr)):\"focusout\"===e&&tr()}function ar(e){if(\"selectionchange\"===e||\"keyup\"===e||\"keydown\"===e)return Gn(Qn)}function ir(e,t){if(\"click\"===e)return Gn(t)}function or(e,t){if(\"input\"===e||\"change\"===e)return Gn(t)}var ur=\"function\"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t};function lr(e,t){if(ur(e,t))return!0;if(\"object\"!=typeof e||null===e||\"object\"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var a=n[r];if(!f.call(t,a)||!ur(e[a],t[a]))return!1}return!0}function sr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function cr(e,t){var n,r=sr(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=sr(r)}}function fr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?fr(e,t.parentNode):\"contains\"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function pr(){for(var e=window,t=Y();t instanceof e.HTMLIFrameElement;){try{var n=\"string\"==typeof t.contentWindow.location.href}catch(e){n=!1}if(!n)break;t=Y((e=t.contentWindow).document)}return t}function dr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(\"input\"===t&&(\"text\"===e.type||\"search\"===e.type||\"tel\"===e.type||\"url\"===e.type||\"password\"===e.type)||\"textarea\"===t||\"true\"===e.contentEditable)}function hr(e){var t=pr(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&fr(n.ownerDocument.documentElement,n)){if(null!==r&&dr(n))if(t=r.start,void 0===(e=r.end)&&(e=t),\"selectionStart\"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if((e=(t=n.ownerDocument||document)&&t.defaultView||window).getSelection){e=e.getSelection();var a=n.textContent.length,i=Math.min(r.start,a);r=void 0===r.end?i:Math.min(r.end,a),!e.extend&&i>r&&(a=r,r=i,i=a),a=cr(n,i);var o=cr(n,r);a&&o&&(1!==e.rangeCount||e.anchorNode!==a.node||e.anchorOffset!==a.offset||e.focusNode!==o.node||e.focusOffset!==o.offset)&&((t=t.createRange()).setStart(a.node,a.offset),e.removeAllRanges(),i>r?(e.addRange(t),e.extend(o.node,o.offset)):(t.setEnd(o.node,o.offset),e.addRange(t)))}for(t=[],e=n;e=e.parentNode;)1===e.nodeType&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(\"function\"==typeof n.focus&&n.focus(),n=0;n<t.length;n++)(e=t[n]).element.scrollLeft=e.left,e.element.scrollTop=e.top}}var vr=c&&\"documentMode\"in document&&11>=document.documentMode,gr=null,yr=null,mr=null,br=!1;function _r(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;br||null==gr||gr!==Y(r)||(r=\"selectionStart\"in(r=gr)&&dr(r)?{start:r.selectionStart,end:r.selectionEnd}:{anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},mr&&lr(mr,r)||(mr=r,0<(r=qr(yr,\"onSelect\")).length&&(t=new cn(\"onSelect\",\"select\",null,t,n),e.push({event:t,listeners:r}),t.target=gr)))}function wr(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n[\"Webkit\"+e]=\"webkit\"+t,n[\"Moz\"+e]=\"moz\"+t,n}var xr={animationend:wr(\"Animation\",\"AnimationEnd\"),animationiteration:wr(\"Animation\",\"AnimationIteration\"),animationstart:wr(\"Animation\",\"AnimationStart\"),transitionend:wr(\"Transition\",\"TransitionEnd\")},kr={},Sr={};function Er(e){if(kr[e])return kr[e];if(!xr[e])return e;var t,n=xr[e];for(t in n)if(n.hasOwnProperty(t)&&t in Sr)return kr[e]=n[t];return e}c&&(Sr=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete xr.animationend.animation,delete xr.animationiteration.animation,delete xr.animationstart.animation),\"TransitionEvent\"in window||delete xr.transitionend.transition);var Cr=Er(\"animationend\"),Tr=Er(\"animationiteration\"),Mr=Er(\"animationstart\"),Nr=Er(\"transitionend\"),Pr=new Map,zr=\"abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\" \");function Lr(e,t){Pr.set(e,t),l(t,[e])}for(var Or=0;Or<zr.length;Or++){var Ar=zr[Or];Lr(Ar.toLowerCase(),\"on\"+(Ar[0].toUpperCase()+Ar.slice(1)))}Lr(Cr,\"onAnimationEnd\"),Lr(Tr,\"onAnimationIteration\"),Lr(Mr,\"onAnimationStart\"),Lr(\"dblclick\",\"onDoubleClick\"),Lr(\"focusin\",\"onFocus\"),Lr(\"focusout\",\"onBlur\"),Lr(Nr,\"onTransitionEnd\"),s(\"onMouseEnter\",[\"mouseout\",\"mouseover\"]),s(\"onMouseLeave\",[\"mouseout\",\"mouseover\"]),s(\"onPointerEnter\",[\"pointerout\",\"pointerover\"]),s(\"onPointerLeave\",[\"pointerout\",\"pointerover\"]),l(\"onChange\",\"change click focusin focusout input keydown keyup selectionchange\".split(\" \")),l(\"onSelect\",\"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\" \")),l(\"onBeforeInput\",[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]),l(\"onCompositionEnd\",\"compositionend focusout keydown keypress keyup mousedown\".split(\" \")),l(\"onCompositionStart\",\"compositionstart focusout keydown keypress keyup mousedown\".split(\" \")),l(\"onCompositionUpdate\",\"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \"));var Fr=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),Dr=new Set(\"cancel close invalid load scroll toggle\".split(\" \").concat(Fr));function Rr(e,t,n){var r=e.type||\"unknown-event\";e.currentTarget=n,function(e,t,n,r,a,o,u,l,s){if($e.apply(this,arguments),De){if(!De)throw Error(i(198));var c=Re;De=!1,Re=null,je||(je=!0,Ue=c)}}(r,t,void 0,e),e.currentTarget=null}function jr(e,t){t=0!=(4&t);for(var n=0;n<e.length;n++){var r=e[n],a=r.event;r=r.listeners;e:{var i=void 0;if(t)for(var o=r.length-1;0<=o;o--){var u=r[o],l=u.instance,s=u.currentTarget;if(u=u.listener,l!==i&&a.isPropagationStopped())break e;Rr(a,u,s),i=l}else for(o=0;o<r.length;o++){if(l=(u=r[o]).instance,s=u.currentTarget,u=u.listener,l!==i&&a.isPropagationStopped())break e;Rr(a,u,s),i=l}}}if(je)throw e=Ue,je=!1,Ue=null,e}function Ur(e,t){var n=t[va];void 0===n&&(n=t[va]=new Set);var r=e+\"__bubble\";n.has(r)||(Wr(t,e,2,!1),n.add(r))}function Ir(e,t,n){var r=0;t&&(r|=4),Wr(n,e,r,t)}var $r=\"_reactListening\"+Math.random().toString(36).slice(2);function Br(e){if(!e[$r]){e[$r]=!0,o.forEach((function(t){\"selectionchange\"!==t&&(Dr.has(t)||Ir(t,!1,e),Ir(t,!0,e))}));var t=9===e.nodeType?e:e.ownerDocument;null===t||t[$r]||(t[$r]=!0,Ir(\"selectionchange\",!1,t))}}function Wr(e,t,n,r){switch(Kt(t)){case 1:var a=Ht;break;case 4:a=qt;break;default:a=Qt}n=a.bind(null,t,n,e),a=void 0,!Oe||\"touchstart\"!==t&&\"touchmove\"!==t&&\"wheel\"!==t||(a=!0),r?void 0!==a?e.addEventListener(t,n,{capture:!0,passive:a}):e.addEventListener(t,n,!0):void 0!==a?e.addEventListener(t,n,{passive:a}):e.addEventListener(t,n,!1)}function Vr(e,t,n,r,a){var i=r;if(0==(1&t)&&0==(2&t)&&null!==r)e:for(;;){if(null===r)return;var o=r.tag;if(3===o||4===o){var u=r.stateNode.containerInfo;if(u===a||8===u.nodeType&&u.parentNode===a)break;if(4===o)for(o=r.return;null!==o;){var l=o.tag;if((3===l||4===l)&&((l=o.stateNode.containerInfo)===a||8===l.nodeType&&l.parentNode===a))return;o=o.return}for(;null!==u;){if(null===(o=ma(u)))return;if(5===(l=o.tag)||6===l){r=i=o;continue e}u=u.parentNode}}r=r.return}ze((function(){var r=i,a=we(n),o=[];e:{var u=Pr.get(e);if(void 0!==u){var l=cn,s=e;switch(e){case\"keypress\":if(0===tn(n))break e;case\"keydown\":case\"keyup\":l=Tn;break;case\"focusin\":s=\"focus\",l=gn;break;case\"focusout\":s=\"blur\",l=gn;break;case\"beforeblur\":case\"afterblur\":l=gn;break;case\"click\":if(2===n.button)break e;case\"auxclick\":case\"dblclick\":case\"mousedown\":case\"mousemove\":case\"mouseup\":case\"mouseout\":case\"mouseover\":case\"contextmenu\":l=hn;break;case\"drag\":case\"dragend\":case\"dragenter\":case\"dragexit\":case\"dragleave\":case\"dragover\":case\"dragstart\":case\"drop\":l=vn;break;case\"touchcancel\":case\"touchend\":case\"touchmove\":case\"touchstart\":l=Nn;break;case Cr:case Tr:case Mr:l=yn;break;case Nr:l=Pn;break;case\"scroll\":l=pn;break;case\"wheel\":l=Ln;break;case\"copy\":case\"cut\":case\"paste\":l=bn;break;case\"gotpointercapture\":case\"lostpointercapture\":case\"pointercancel\":case\"pointerdown\":case\"pointermove\":case\"pointerout\":case\"pointerover\":case\"pointerup\":l=Mn}var c=0!=(4&t),f=!c&&\"scroll\"===e,p=c?null!==u?u+\"Capture\":null:u;c=[];for(var d,h=r;null!==h;){var v=(d=h).stateNode;if(5===d.tag&&null!==v&&(d=v,null!==p&&null!=(v=Le(h,p))&&c.push(Hr(h,v,d))),f)break;h=h.return}0<c.length&&(u=new l(u,s,null,n,a),o.push({event:u,listeners:c}))}}if(0==(7&t)){if(l=\"mouseout\"===e||\"pointerout\"===e,(!(u=\"mouseover\"===e||\"pointerover\"===e)||n===_e||!(s=n.relatedTarget||n.fromElement)||!ma(s)&&!s[ha])&&(l||u)&&(u=a.window===a?a:(u=a.ownerDocument)?u.defaultView||u.parentWindow:window,l?(l=r,null!==(s=(s=n.relatedTarget||n.toElement)?ma(s):null)&&(s!==(f=Be(s))||5!==s.tag&&6!==s.tag)&&(s=null)):(l=null,s=r),l!==s)){if(c=hn,v=\"onMouseLeave\",p=\"onMouseEnter\",h=\"mouse\",\"pointerout\"!==e&&\"pointerover\"!==e||(c=Mn,v=\"onPointerLeave\",p=\"onPointerEnter\",h=\"pointer\"),f=null==l?u:_a(l),d=null==s?u:_a(s),(u=new c(v,h+\"leave\",l,n,a)).target=f,u.relatedTarget=d,v=null,ma(a)===r&&((c=new c(p,h+\"enter\",s,n,a)).target=d,c.relatedTarget=f,v=c),f=v,l&&s)e:{for(p=s,h=0,d=c=l;d;d=Qr(d))h++;for(d=0,v=p;v;v=Qr(v))d++;for(;0<h-d;)c=Qr(c),h--;for(;0<d-h;)p=Qr(p),d--;for(;h--;){if(c===p||null!==p&&c===p.alternate)break e;c=Qr(c),p=Qr(p)}c=null}else c=null;null!==l&&Yr(o,u,l,c,!1),null!==s&&null!==f&&Yr(o,f,s,c,!0)}if(\"select\"===(l=(u=r?_a(r):window).nodeName&&u.nodeName.toLowerCase())||\"input\"===l&&\"file\"===u.type)var g=Kn;else if(Vn(u))if(Zn)g=or;else{g=ar;var y=rr}else(l=u.nodeName)&&\"input\"===l.toLowerCase()&&(\"checkbox\"===u.type||\"radio\"===u.type)&&(g=ir);switch(g&&(g=g(e,r))?Hn(o,g,n,a):(y&&y(e,u,r),\"focusout\"===e&&(y=u._wrapperState)&&y.controlled&&\"number\"===u.type&&ee(u,\"number\",u.value)),y=r?_a(r):window,e){case\"focusin\":(Vn(y)||\"true\"===y.contentEditable)&&(gr=y,yr=r,mr=null);break;case\"focusout\":mr=yr=gr=null;break;case\"mousedown\":br=!0;break;case\"contextmenu\":case\"mouseup\":case\"dragend\":br=!1,_r(o,n,a);break;case\"selectionchange\":if(vr)break;case\"keydown\":case\"keyup\":_r(o,n,a)}var m;if(An)e:{switch(e){case\"compositionstart\":var b=\"onCompositionStart\";break e;case\"compositionend\":b=\"onCompositionEnd\";break e;case\"compositionupdate\":b=\"onCompositionUpdate\";break e}b=void 0}else Bn?In(e,n)&&(b=\"onCompositionEnd\"):\"keydown\"===e&&229===n.keyCode&&(b=\"onCompositionStart\");b&&(Rn&&\"ko\"!==n.locale&&(Bn||\"onCompositionStart\"!==b?\"onCompositionEnd\"===b&&Bn&&(m=en()):(Xt=\"value\"in(Zt=a)?Zt.value:Zt.textContent,Bn=!0)),0<(y=qr(r,b)).length&&(b=new _n(b,e,null,n,a),o.push({event:b,listeners:y}),(m||null!==(m=$n(n)))&&(b.data=m))),(m=Dn?function(e,t){switch(e){case\"compositionend\":return $n(t);case\"keypress\":return 32!==t.which?null:(Un=!0,jn);case\"textInput\":return(e=t.data)===jn&&Un?null:e;default:return null}}(e,n):function(e,t){if(Bn)return\"compositionend\"===e||!An&&In(e,t)?(e=en(),Jt=Xt=Zt=null,Bn=!1,e):null;switch(e){case\"paste\":default:return null;case\"keypress\":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case\"compositionend\":return Rn&&\"ko\"!==t.locale?null:t.data}}(e,n))&&0<(r=qr(r,\"onBeforeInput\")).length&&(a=new _n(\"onBeforeInput\",\"beforeinput\",null,n,a),o.push({event:a,listeners:r}),a.data=m)}jr(o,t)}))}function Hr(e,t,n){return{instance:e,listener:t,currentTarget:n}}function qr(e,t){for(var n=t+\"Capture\",r=[];null!==e;){var a=e,i=a.stateNode;5===a.tag&&null!==i&&(a=i,null!=(i=Le(e,n))&&r.unshift(Hr(e,i,a)),null!=(i=Le(e,t))&&r.push(Hr(e,i,a))),e=e.return}return r}function Qr(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function Yr(e,t,n,r,a){for(var i=t._reactName,o=[];null!==n&&n!==r;){var u=n,l=u.alternate,s=u.stateNode;if(null!==l&&l===r)break;5===u.tag&&null!==s&&(u=s,a?null!=(l=Le(n,i))&&o.unshift(Hr(n,l,u)):a||null!=(l=Le(n,i))&&o.push(Hr(n,l,u))),n=n.return}0!==o.length&&e.push({event:t,listeners:o})}var Gr=/\\r\\n?/g,Kr=/\\u0000|\\uFFFD/g;function Zr(e){return(\"string\"==typeof e?e:\"\"+e).replace(Gr,\"\\n\").replace(Kr,\"\")}function Xr(e,t,n){if(t=Zr(t),Zr(e)!==t&&n)throw Error(i(425))}function Jr(){}var ea=null,ta=null;function na(e,t){return\"textarea\"===e||\"noscript\"===e||\"string\"==typeof t.children||\"number\"==typeof t.children||\"object\"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var ra=\"function\"==typeof setTimeout?setTimeout:void 0,aa=\"function\"==typeof clearTimeout?clearTimeout:void 0,ia=\"function\"==typeof Promise?Promise:void 0,oa=\"function\"==typeof queueMicrotask?queueMicrotask:void 0!==ia?function(e){return ia.resolve(null).then(e).catch(ua)}:ra;function ua(e){setTimeout((function(){throw e}))}function la(e,t){var n=t,r=0;do{var a=n.nextSibling;if(e.removeChild(n),a&&8===a.nodeType)if(\"/$\"===(n=a.data)){if(0===r)return e.removeChild(a),void Bt(t);r--}else\"$\"!==n&&\"$?\"!==n&&\"$!\"!==n||r++;n=a}while(n);Bt(t)}function sa(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break;if(8===t){if(\"$\"===(t=e.data)||\"$!\"===t||\"$?\"===t)break;if(\"/$\"===t)return null}}return e}function ca(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if(\"$\"===n||\"$!\"===n||\"$?\"===n){if(0===t)return e;t--}else\"/$\"===n&&t++}e=e.previousSibling}return null}var fa=Math.random().toString(36).slice(2),pa=\"__reactFiber$\"+fa,da=\"__reactProps$\"+fa,ha=\"__reactContainer$\"+fa,va=\"__reactEvents$\"+fa,ga=\"__reactListeners$\"+fa,ya=\"__reactHandles$\"+fa;function ma(e){var t=e[pa];if(t)return t;for(var n=e.parentNode;n;){if(t=n[ha]||n[pa]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=ca(e);null!==e;){if(n=e[pa])return n;e=ca(e)}return t}n=(e=n).parentNode}return null}function ba(e){return!(e=e[pa]||e[ha])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function _a(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(i(33))}function wa(e){return e[da]||null}var xa=[],ka=-1;function Sa(e){return{current:e}}function Ea(e){0>ka||(e.current=xa[ka],xa[ka]=null,ka--)}function Ca(e,t){ka++,xa[ka]=e.current,e.current=t}var Ta={},Ma=Sa(Ta),Na=Sa(!1),Pa=Ta;function za(e,t){var n=e.type.contextTypes;if(!n)return Ta;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var a,i={};for(a in n)i[a]=t[a];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=i),i}function La(e){return null!=e.childContextTypes}function Oa(){Ea(Na),Ea(Ma)}function Aa(e,t,n){if(Ma.current!==Ta)throw Error(i(168));Ca(Ma,t),Ca(Na,n)}function Fa(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,\"function\"!=typeof r.getChildContext)return n;for(var a in r=r.getChildContext())if(!(a in t))throw Error(i(108,W(e)||\"Unknown\",a));return R({},n,r)}function Da(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Ta,Pa=Ma.current,Ca(Ma,e),Ca(Na,Na.current),!0}function Ra(e,t,n){var r=e.stateNode;if(!r)throw Error(i(169));n?(e=Fa(e,t,Pa),r.__reactInternalMemoizedMergedChildContext=e,Ea(Na),Ea(Ma),Ca(Ma,e)):Ea(Na),Ca(Na,n)}var ja=null,Ua=!1,Ia=!1;function $a(e){null===ja?ja=[e]:ja.push(e)}function Ba(){if(!Ia&&null!==ja){Ia=!0;var e=0,t=bt;try{var n=ja;for(bt=1;e<n.length;e++){var r=n[e];do{r=r(!0)}while(null!==r)}ja=null,Ua=!1}catch(t){throw null!==ja&&(ja=ja.slice(e+1)),Qe(Je,Ba),t}finally{bt=t,Ia=!1}}return null}var Wa=[],Va=0,Ha=null,qa=0,Qa=[],Ya=0,Ga=null,Ka=1,Za=\"\";function Xa(e,t){Wa[Va++]=qa,Wa[Va++]=Ha,Ha=e,qa=t}function Ja(e,t,n){Qa[Ya++]=Ka,Qa[Ya++]=Za,Qa[Ya++]=Ga,Ga=e;var r=Ka;e=Za;var a=32-ot(r)-1;r&=~(1<<a),n+=1;var i=32-ot(t)+a;if(30<i){var o=a-a%5;i=(r&(1<<o)-1).toString(32),r>>=o,a-=o,Ka=1<<32-ot(t)+a|n<<a|r,Za=i+e}else Ka=1<<i|n<<a|r,Za=e}function ei(e){null!==e.return&&(Xa(e,1),Ja(e,1,0))}function ti(e){for(;e===Ha;)Ha=Wa[--Va],Wa[Va]=null,qa=Wa[--Va],Wa[Va]=null;for(;e===Ga;)Ga=Qa[--Ya],Qa[Ya]=null,Za=Qa[--Ya],Qa[Ya]=null,Ka=Qa[--Ya],Qa[Ya]=null}var ni=null,ri=null,ai=!1,ii=null;function oi(e,t){var n=Ls(5,null,null,0);n.elementType=\"DELETED\",n.stateNode=t,n.return=e,null===(t=e.deletions)?(e.deletions=[n],e.flags|=16):t.push(n)}function ui(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,ni=e,ri=sa(t.firstChild),!0);case 6:return null!==(t=\"\"===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,ni=e,ri=null,!0);case 13:return null!==(t=8!==t.nodeType?null:t)&&(n=null!==Ga?{id:Ka,overflow:Za}:null,e.memoizedState={dehydrated:t,treeContext:n,retryLane:1073741824},(n=Ls(18,null,null,0)).stateNode=t,n.return=e,e.child=n,ni=e,ri=null,!0);default:return!1}}function li(e){return 0!=(1&e.mode)&&0==(128&e.flags)}function si(e){if(ai){var t=ri;if(t){var n=t;if(!ui(e,t)){if(li(e))throw Error(i(418));t=sa(n.nextSibling);var r=ni;t&&ui(e,t)?oi(r,n):(e.flags=-4097&e.flags|2,ai=!1,ni=e)}}else{if(li(e))throw Error(i(418));e.flags=-4097&e.flags|2,ai=!1,ni=e}}}function ci(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;ni=e}function fi(e){if(e!==ni)return!1;if(!ai)return ci(e),ai=!0,!1;var t;if((t=3!==e.tag)&&!(t=5!==e.tag)&&(t=\"head\"!==(t=e.type)&&\"body\"!==t&&!na(e.type,e.memoizedProps)),t&&(t=ri)){if(li(e))throw pi(),Error(i(418));for(;t;)oi(e,t),t=sa(t.nextSibling)}if(ci(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(i(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if(\"/$\"===n){if(0===t){ri=sa(e.nextSibling);break e}t--}else\"$\"!==n&&\"$!\"!==n&&\"$?\"!==n||t++}e=e.nextSibling}ri=null}}else ri=ni?sa(e.stateNode.nextSibling):null;return!0}function pi(){for(var e=ri;e;)e=sa(e.nextSibling)}function di(){ri=ni=null,ai=!1}function hi(e){null===ii?ii=[e]:ii.push(e)}var vi=_.ReactCurrentBatchConfig;function gi(e,t){if(e&&e.defaultProps){for(var n in t=R({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}var yi=Sa(null),mi=null,bi=null,_i=null;function wi(){_i=bi=mi=null}function xi(e){var t=yi.current;Ea(yi),e._currentValue=t}function ki(e,t,n){for(;null!==e;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,null!==r&&(r.childLanes|=t)):null!==r&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function Si(e,t){mi=e,_i=bi=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(0!=(e.lanes&t)&&(_u=!0),e.firstContext=null)}function Ei(e){var t=e._currentValue;if(_i!==e)if(e={context:e,memoizedValue:t,next:null},null===bi){if(null===mi)throw Error(i(308));bi=e,mi.dependencies={lanes:0,firstContext:e}}else bi=bi.next=e;return t}var Ci=null;function Ti(e){null===Ci?Ci=[e]:Ci.push(e)}function Mi(e,t,n,r){var a=t.interleaved;return null===a?(n.next=n,Ti(t)):(n.next=a.next,a.next=n),t.interleaved=n,Ni(e,r)}function Ni(e,t){e.lanes|=t;var n=e.alternate;for(null!==n&&(n.lanes|=t),n=e,e=e.return;null!==e;)e.childLanes|=t,null!==(n=e.alternate)&&(n.childLanes|=t),n=e,e=e.return;return 3===n.tag?n.stateNode:null}var Pi=!1;function zi(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Li(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Oi(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Ai(e,t,n){var r=e.updateQueue;if(null===r)return null;if(r=r.shared,0!=(2&Nl)){var a=r.pending;return null===a?t.next=t:(t.next=a.next,a.next=t),r.pending=t,Ni(e,n)}return null===(a=r.interleaved)?(t.next=t,Ti(r)):(t.next=a.next,a.next=t),r.interleaved=t,Ni(e,n)}function Fi(e,t,n){if(null!==(t=t.updateQueue)&&(t=t.shared,0!=(4194240&n))){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,mt(e,n)}}function Di(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var a=null,i=null;if(null!==(n=n.firstBaseUpdate)){do{var o={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};null===i?a=i=o:i=i.next=o,n=n.next}while(null!==n);null===i?a=i=t:i=i.next=t}else a=i=t;return n={baseState:r.baseState,firstBaseUpdate:a,lastBaseUpdate:i,shared:r.shared,effects:r.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function Ri(e,t,n,r){var a=e.updateQueue;Pi=!1;var i=a.firstBaseUpdate,o=a.lastBaseUpdate,u=a.shared.pending;if(null!==u){a.shared.pending=null;var l=u,s=l.next;l.next=null,null===o?i=s:o.next=s,o=l;var c=e.alternate;null!==c&&(u=(c=c.updateQueue).lastBaseUpdate)!==o&&(null===u?c.firstBaseUpdate=s:u.next=s,c.lastBaseUpdate=l)}if(null!==i){var f=a.baseState;for(o=0,c=s=l=null,u=i;;){var p=u.lane,d=u.eventTime;if((r&p)===p){null!==c&&(c=c.next={eventTime:d,lane:0,tag:u.tag,payload:u.payload,callback:u.callback,next:null});e:{var h=e,v=u;switch(p=t,d=n,v.tag){case 1:if(\"function\"==typeof(h=v.payload)){f=h.call(d,f,p);break e}f=h;break e;case 3:h.flags=-65537&h.flags|128;case 0:if(null==(p=\"function\"==typeof(h=v.payload)?h.call(d,f,p):h))break e;f=R({},f,p);break e;case 2:Pi=!0}}null!==u.callback&&0!==u.lane&&(e.flags|=64,null===(p=a.effects)?a.effects=[u]:p.push(u))}else d={eventTime:d,lane:p,tag:u.tag,payload:u.payload,callback:u.callback,next:null},null===c?(s=c=d,l=f):c=c.next=d,o|=p;if(null===(u=u.next)){if(null===(u=a.shared.pending))break;u=(p=u).next,p.next=null,a.lastBaseUpdate=p,a.shared.pending=null}}if(null===c&&(l=f),a.baseState=l,a.firstBaseUpdate=s,a.lastBaseUpdate=c,null!==(t=a.shared.interleaved)){a=t;do{o|=a.lane,a=a.next}while(a!==t)}else null===i&&(a.shared.lanes=0);Rl|=o,e.lanes=o,e.memoizedState=f}}function ji(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var r=e[t],a=r.callback;if(null!==a){if(r.callback=null,r=n,\"function\"!=typeof a)throw Error(i(191,a));a.call(r)}}}var Ui=(new r.Component).refs;function Ii(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:R({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var $i={isMounted:function(e){return!!(e=e._reactInternals)&&Be(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=ts(),a=ns(e),i=Oi(r,a);i.payload=t,null!=n&&(i.callback=n),null!==(t=Ai(e,i,a))&&(rs(t,e,a,r),Fi(t,e,a))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=ts(),a=ns(e),i=Oi(r,a);i.tag=1,i.payload=t,null!=n&&(i.callback=n),null!==(t=Ai(e,i,a))&&(rs(t,e,a,r),Fi(t,e,a))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=ts(),r=ns(e),a=Oi(n,r);a.tag=2,null!=t&&(a.callback=t),null!==(t=Ai(e,a,r))&&(rs(t,e,r,n),Fi(t,e,r))}};function Bi(e,t,n,r,a,i,o){return\"function\"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,i,o):!(t.prototype&&t.prototype.isPureReactComponent&&lr(n,r)&&lr(a,i))}function Wi(e,t,n){var r=!1,a=Ta,i=t.contextType;return\"object\"==typeof i&&null!==i?i=Ei(i):(a=La(t)?Pa:Ma.current,i=(r=null!=(r=t.contextTypes))?za(e,a):Ta),t=new t(n,i),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=$i,e.stateNode=t,t._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=a,e.__reactInternalMemoizedMaskedChildContext=i),t}function Vi(e,t,n,r){e=t.state,\"function\"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),\"function\"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&$i.enqueueReplaceState(t,t.state,null)}function Hi(e,t,n,r){var a=e.stateNode;a.props=n,a.state=e.memoizedState,a.refs=Ui,zi(e);var i=t.contextType;\"object\"==typeof i&&null!==i?a.context=Ei(i):(i=La(t)?Pa:Ma.current,a.context=za(e,i)),a.state=e.memoizedState,\"function\"==typeof(i=t.getDerivedStateFromProps)&&(Ii(e,t,i,n),a.state=e.memoizedState),\"function\"==typeof t.getDerivedStateFromProps||\"function\"==typeof a.getSnapshotBeforeUpdate||\"function\"!=typeof a.UNSAFE_componentWillMount&&\"function\"!=typeof a.componentWillMount||(t=a.state,\"function\"==typeof a.componentWillMount&&a.componentWillMount(),\"function\"==typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount(),t!==a.state&&$i.enqueueReplaceState(a,a.state,null),Ri(e,n,a,r),a.state=e.memoizedState),\"function\"==typeof a.componentDidMount&&(e.flags|=4194308)}function qi(e,t,n){if(null!==(e=n.ref)&&\"function\"!=typeof e&&\"object\"!=typeof e){if(n._owner){if(n=n._owner){if(1!==n.tag)throw Error(i(309));var r=n.stateNode}if(!r)throw Error(i(147,e));var a=r,o=\"\"+e;return null!==t&&null!==t.ref&&\"function\"==typeof t.ref&&t.ref._stringRef===o?t.ref:(t=function(e){var t=a.refs;t===Ui&&(t=a.refs={}),null===e?delete t[o]:t[o]=e},t._stringRef=o,t)}if(\"string\"!=typeof e)throw Error(i(284));if(!n._owner)throw Error(i(290,e))}return e}function Qi(e,t){throw e=Object.prototype.toString.call(t),Error(i(31,\"[object Object]\"===e?\"object with keys {\"+Object.keys(t).join(\", \")+\"}\":e))}function Yi(e){return(0,e._init)(e._payload)}function Gi(e){function t(t,n){if(e){var r=t.deletions;null===r?(t.deletions=[n],t.flags|=16):r.push(n)}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function a(e,t){return(e=As(e,t)).index=0,e.sibling=null,e}function o(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.flags|=2,n):r:(t.flags|=2,n):(t.flags|=1048576,n)}function u(t){return e&&null===t.alternate&&(t.flags|=2),t}function l(e,t,n,r){return null===t||6!==t.tag?((t=js(n,e.mode,r)).return=e,t):((t=a(t,n)).return=e,t)}function s(e,t,n,r){var i=n.type;return i===k?f(e,t,n.props.children,r,n.key):null!==t&&(t.elementType===i||\"object\"==typeof i&&null!==i&&i.$$typeof===L&&Yi(i)===t.type)?((r=a(t,n.props)).ref=qi(e,t,n),r.return=e,r):((r=Fs(n.type,n.key,n.props,null,e.mode,r)).ref=qi(e,t,n),r.return=e,r)}function c(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Us(n,e.mode,r)).return=e,t):((t=a(t,n.children||[])).return=e,t)}function f(e,t,n,r,i){return null===t||7!==t.tag?((t=Ds(n,e.mode,r,i)).return=e,t):((t=a(t,n)).return=e,t)}function p(e,t,n){if(\"string\"==typeof t&&\"\"!==t||\"number\"==typeof t)return(t=js(\"\"+t,e.mode,n)).return=e,t;if(\"object\"==typeof t&&null!==t){switch(t.$$typeof){case w:return(n=Fs(t.type,t.key,t.props,null,e.mode,n)).ref=qi(e,null,t),n.return=e,n;case x:return(t=Us(t,e.mode,n)).return=e,t;case L:return p(e,(0,t._init)(t._payload),n)}if(te(t)||F(t))return(t=Ds(t,e.mode,n,null)).return=e,t;Qi(e,t)}return null}function d(e,t,n,r){var a=null!==t?t.key:null;if(\"string\"==typeof n&&\"\"!==n||\"number\"==typeof n)return null!==a?null:l(e,t,\"\"+n,r);if(\"object\"==typeof n&&null!==n){switch(n.$$typeof){case w:return n.key===a?s(e,t,n,r):null;case x:return n.key===a?c(e,t,n,r):null;case L:return d(e,t,(a=n._init)(n._payload),r)}if(te(n)||F(n))return null!==a?null:f(e,t,n,r,null);Qi(e,n)}return null}function h(e,t,n,r,a){if(\"string\"==typeof r&&\"\"!==r||\"number\"==typeof r)return l(t,e=e.get(n)||null,\"\"+r,a);if(\"object\"==typeof r&&null!==r){switch(r.$$typeof){case w:return s(t,e=e.get(null===r.key?n:r.key)||null,r,a);case x:return c(t,e=e.get(null===r.key?n:r.key)||null,r,a);case L:return h(e,t,n,(0,r._init)(r._payload),a)}if(te(r)||F(r))return f(t,e=e.get(n)||null,r,a,null);Qi(t,r)}return null}function v(a,i,u,l){for(var s=null,c=null,f=i,v=i=0,g=null;null!==f&&v<u.length;v++){f.index>v?(g=f,f=null):g=f.sibling;var y=d(a,f,u[v],l);if(null===y){null===f&&(f=g);break}e&&f&&null===y.alternate&&t(a,f),i=o(y,i,v),null===c?s=y:c.sibling=y,c=y,f=g}if(v===u.length)return n(a,f),ai&&Xa(a,v),s;if(null===f){for(;v<u.length;v++)null!==(f=p(a,u[v],l))&&(i=o(f,i,v),null===c?s=f:c.sibling=f,c=f);return ai&&Xa(a,v),s}for(f=r(a,f);v<u.length;v++)null!==(g=h(f,a,v,u[v],l))&&(e&&null!==g.alternate&&f.delete(null===g.key?v:g.key),i=o(g,i,v),null===c?s=g:c.sibling=g,c=g);return e&&f.forEach((function(e){return t(a,e)})),ai&&Xa(a,v),s}function g(a,u,l,s){var c=F(l);if(\"function\"!=typeof c)throw Error(i(150));if(null==(l=c.call(l)))throw Error(i(151));for(var f=c=null,v=u,g=u=0,y=null,m=l.next();null!==v&&!m.done;g++,m=l.next()){v.index>g?(y=v,v=null):y=v.sibling;var b=d(a,v,m.value,s);if(null===b){null===v&&(v=y);break}e&&v&&null===b.alternate&&t(a,v),u=o(b,u,g),null===f?c=b:f.sibling=b,f=b,v=y}if(m.done)return n(a,v),ai&&Xa(a,g),c;if(null===v){for(;!m.done;g++,m=l.next())null!==(m=p(a,m.value,s))&&(u=o(m,u,g),null===f?c=m:f.sibling=m,f=m);return ai&&Xa(a,g),c}for(v=r(a,v);!m.done;g++,m=l.next())null!==(m=h(v,a,g,m.value,s))&&(e&&null!==m.alternate&&v.delete(null===m.key?g:m.key),u=o(m,u,g),null===f?c=m:f.sibling=m,f=m);return e&&v.forEach((function(e){return t(a,e)})),ai&&Xa(a,g),c}return function e(r,i,o,l){if(\"object\"==typeof o&&null!==o&&o.type===k&&null===o.key&&(o=o.props.children),\"object\"==typeof o&&null!==o){switch(o.$$typeof){case w:e:{for(var s=o.key,c=i;null!==c;){if(c.key===s){if((s=o.type)===k){if(7===c.tag){n(r,c.sibling),(i=a(c,o.props.children)).return=r,r=i;break e}}else if(c.elementType===s||\"object\"==typeof s&&null!==s&&s.$$typeof===L&&Yi(s)===c.type){n(r,c.sibling),(i=a(c,o.props)).ref=qi(r,c,o),i.return=r,r=i;break e}n(r,c);break}t(r,c),c=c.sibling}o.type===k?((i=Ds(o.props.children,r.mode,l,o.key)).return=r,r=i):((l=Fs(o.type,o.key,o.props,null,r.mode,l)).ref=qi(r,i,o),l.return=r,r=l)}return u(r);case x:e:{for(c=o.key;null!==i;){if(i.key===c){if(4===i.tag&&i.stateNode.containerInfo===o.containerInfo&&i.stateNode.implementation===o.implementation){n(r,i.sibling),(i=a(i,o.children||[])).return=r,r=i;break e}n(r,i);break}t(r,i),i=i.sibling}(i=Us(o,r.mode,l)).return=r,r=i}return u(r);case L:return e(r,i,(c=o._init)(o._payload),l)}if(te(o))return v(r,i,o,l);if(F(o))return g(r,i,o,l);Qi(r,o)}return\"string\"==typeof o&&\"\"!==o||\"number\"==typeof o?(o=\"\"+o,null!==i&&6===i.tag?(n(r,i.sibling),(i=a(i,o)).return=r,r=i):(n(r,i),(i=js(o,r.mode,l)).return=r,r=i),u(r)):n(r,i)}}var Ki=Gi(!0),Zi=Gi(!1),Xi={},Ji=Sa(Xi),eo=Sa(Xi),to=Sa(Xi);function no(e){if(e===Xi)throw Error(i(174));return e}function ro(e,t){switch(Ca(to,t),Ca(eo,e),Ca(Ji,Xi),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:le(null,\"\");break;default:t=le(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}Ea(Ji),Ca(Ji,t)}function ao(){Ea(Ji),Ea(eo),Ea(to)}function io(e){no(to.current);var t=no(Ji.current),n=le(t,e.type);t!==n&&(Ca(eo,e),Ca(Ji,n))}function oo(e){eo.current===e&&(Ea(Ji),Ea(eo))}var uo=Sa(0);function lo(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||\"$?\"===n.data||\"$!\"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!=(128&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var so=[];function co(){for(var e=0;e<so.length;e++)so[e]._workInProgressVersionPrimary=null;so.length=0}var fo=_.ReactCurrentDispatcher,po=_.ReactCurrentBatchConfig,ho=0,vo=null,go=null,yo=null,mo=!1,bo=!1,_o=0,wo=0;function xo(){throw Error(i(321))}function ko(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!ur(e[n],t[n]))return!1;return!0}function So(e,t,n,r,a,o){if(ho=o,vo=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,fo.current=null===e||null===e.memoizedState?uu:lu,e=n(r,a),bo){o=0;do{if(bo=!1,_o=0,25<=o)throw Error(i(301));o+=1,yo=go=null,t.updateQueue=null,fo.current=su,e=n(r,a)}while(bo)}if(fo.current=ou,t=null!==go&&null!==go.next,ho=0,yo=go=vo=null,mo=!1,t)throw Error(i(300));return e}function Eo(){var e=0!==_o;return _o=0,e}function Co(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===yo?vo.memoizedState=yo=e:yo=yo.next=e,yo}function To(){if(null===go){var e=vo.alternate;e=null!==e?e.memoizedState:null}else e=go.next;var t=null===yo?vo.memoizedState:yo.next;if(null!==t)yo=t,go=e;else{if(null===e)throw Error(i(310));e={memoizedState:(go=e).memoizedState,baseState:go.baseState,baseQueue:go.baseQueue,queue:go.queue,next:null},null===yo?vo.memoizedState=yo=e:yo=yo.next=e}return yo}function Mo(e,t){return\"function\"==typeof t?t(e):t}function No(e){var t=To(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=go,a=r.baseQueue,o=n.pending;if(null!==o){if(null!==a){var u=a.next;a.next=o.next,o.next=u}r.baseQueue=a=o,n.pending=null}if(null!==a){o=a.next,r=r.baseState;var l=u=null,s=null,c=o;do{var f=c.lane;if((ho&f)===f)null!==s&&(s=s.next={lane:0,action:c.action,hasEagerState:c.hasEagerState,eagerState:c.eagerState,next:null}),r=c.hasEagerState?c.eagerState:e(r,c.action);else{var p={lane:f,action:c.action,hasEagerState:c.hasEagerState,eagerState:c.eagerState,next:null};null===s?(l=s=p,u=r):s=s.next=p,vo.lanes|=f,Rl|=f}c=c.next}while(null!==c&&c!==o);null===s?u=r:s.next=l,ur(r,t.memoizedState)||(_u=!0),t.memoizedState=r,t.baseState=u,t.baseQueue=s,n.lastRenderedState=r}if(null!==(e=n.interleaved)){a=e;do{o=a.lane,vo.lanes|=o,Rl|=o,a=a.next}while(a!==e)}else null===a&&(n.lanes=0);return[t.memoizedState,n.dispatch]}function Po(e){var t=To(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=n.dispatch,a=n.pending,o=t.memoizedState;if(null!==a){n.pending=null;var u=a=a.next;do{o=e(o,u.action),u=u.next}while(u!==a);ur(o,t.memoizedState)||(_u=!0),t.memoizedState=o,null===t.baseQueue&&(t.baseState=o),n.lastRenderedState=o}return[o,r]}function zo(){}function Lo(e,t){var n=vo,r=To(),a=t(),o=!ur(r.memoizedState,a);if(o&&(r.memoizedState=a,_u=!0),r=r.queue,Vo(Fo.bind(null,n,r,e),[e]),r.getSnapshot!==t||o||null!==yo&&1&yo.memoizedState.tag){if(n.flags|=2048,Uo(9,Ao.bind(null,n,r,a,t),void 0,null),null===Pl)throw Error(i(349));0!=(30&ho)||Oo(n,t,a)}return a}function Oo(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},null===(t=vo.updateQueue)?(t={lastEffect:null,stores:null},vo.updateQueue=t,t.stores=[e]):null===(n=t.stores)?t.stores=[e]:n.push(e)}function Ao(e,t,n,r){t.value=n,t.getSnapshot=r,Do(t)&&Ro(e)}function Fo(e,t,n){return n((function(){Do(t)&&Ro(e)}))}function Do(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!ur(e,n)}catch(e){return!0}}function Ro(e){var t=Ni(e,1);null!==t&&rs(t,e,1,-1)}function jo(e){var t=Co();return\"function\"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Mo,lastRenderedState:e},t.queue=e,e=e.dispatch=nu.bind(null,vo,e),[t.memoizedState,e]}function Uo(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=vo.updateQueue)?(t={lastEffect:null,stores:null},vo.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function Io(){return To().memoizedState}function $o(e,t,n,r){var a=Co();vo.flags|=e,a.memoizedState=Uo(1|t,n,void 0,void 0===r?null:r)}function Bo(e,t,n,r){var a=To();r=void 0===r?null:r;var i=void 0;if(null!==go){var o=go.memoizedState;if(i=o.destroy,null!==r&&ko(r,o.deps))return void(a.memoizedState=Uo(t,n,i,r))}vo.flags|=e,a.memoizedState=Uo(1|t,n,i,r)}function Wo(e,t){return $o(8390656,8,e,t)}function Vo(e,t){return Bo(2048,8,e,t)}function Ho(e,t){return Bo(4,2,e,t)}function qo(e,t){return Bo(4,4,e,t)}function Qo(e,t){return\"function\"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function Yo(e,t,n){return n=null!=n?n.concat([e]):null,Bo(4,4,Qo.bind(null,t,e),n)}function Go(){}function Ko(e,t){var n=To();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&ko(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Zo(e,t){var n=To();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&ko(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Xo(e,t,n){return 0==(21&ho)?(e.baseState&&(e.baseState=!1,_u=!0),e.memoizedState=n):(ur(n,t)||(n=vt(),vo.lanes|=n,Rl|=n,e.baseState=!0),t)}function Jo(e,t){var n=bt;bt=0!==n&&4>n?n:4,e(!0);var r=po.transition;po.transition={};try{e(!1),t()}finally{bt=n,po.transition=r}}function eu(){return To().memoizedState}function tu(e,t,n){var r=ns(e);n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},ru(e)?au(t,n):null!==(n=Mi(e,t,n,r))&&(rs(n,e,r,ts()),iu(n,t,r))}function nu(e,t,n){var r=ns(e),a={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(ru(e))au(t,a);else{var i=e.alternate;if(0===e.lanes&&(null===i||0===i.lanes)&&null!==(i=t.lastRenderedReducer))try{var o=t.lastRenderedState,u=i(o,n);if(a.hasEagerState=!0,a.eagerState=u,ur(u,o)){var l=t.interleaved;return null===l?(a.next=a,Ti(t)):(a.next=l.next,l.next=a),void(t.interleaved=a)}}catch(e){}null!==(n=Mi(e,t,a,r))&&(rs(n,e,r,a=ts()),iu(n,t,r))}}function ru(e){var t=e.alternate;return e===vo||null!==t&&t===vo}function au(e,t){bo=mo=!0;var n=e.pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function iu(e,t,n){if(0!=(4194240&n)){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,mt(e,n)}}var ou={readContext:Ei,useCallback:xo,useContext:xo,useEffect:xo,useImperativeHandle:xo,useInsertionEffect:xo,useLayoutEffect:xo,useMemo:xo,useReducer:xo,useRef:xo,useState:xo,useDebugValue:xo,useDeferredValue:xo,useTransition:xo,useMutableSource:xo,useSyncExternalStore:xo,useId:xo,unstable_isNewReconciler:!1},uu={readContext:Ei,useCallback:function(e,t){return Co().memoizedState=[e,void 0===t?null:t],e},useContext:Ei,useEffect:Wo,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,$o(4194308,4,Qo.bind(null,t,e),n)},useLayoutEffect:function(e,t){return $o(4194308,4,e,t)},useInsertionEffect:function(e,t){return $o(4,2,e,t)},useMemo:function(e,t){var n=Co();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Co();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=tu.bind(null,vo,e),[r.memoizedState,e]},useRef:function(e){return e={current:e},Co().memoizedState=e},useState:jo,useDebugValue:Go,useDeferredValue:function(e){return Co().memoizedState=e},useTransition:function(){var e=jo(!1),t=e[0];return e=Jo.bind(null,e[1]),Co().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=vo,a=Co();if(ai){if(void 0===n)throw Error(i(407));n=n()}else{if(n=t(),null===Pl)throw Error(i(349));0!=(30&ho)||Oo(r,t,n)}a.memoizedState=n;var o={value:n,getSnapshot:t};return a.queue=o,Wo(Fo.bind(null,r,o,e),[e]),r.flags|=2048,Uo(9,Ao.bind(null,r,o,n,t),void 0,null),n},useId:function(){var e=Co(),t=Pl.identifierPrefix;if(ai){var n=Za;t=\":\"+t+\"R\"+(n=(Ka&~(1<<32-ot(Ka)-1)).toString(32)+n),0<(n=_o++)&&(t+=\"H\"+n.toString(32)),t+=\":\"}else t=\":\"+t+\"r\"+(n=wo++).toString(32)+\":\";return e.memoizedState=t},unstable_isNewReconciler:!1},lu={readContext:Ei,useCallback:Ko,useContext:Ei,useEffect:Vo,useImperativeHandle:Yo,useInsertionEffect:Ho,useLayoutEffect:qo,useMemo:Zo,useReducer:No,useRef:Io,useState:function(){return No(Mo)},useDebugValue:Go,useDeferredValue:function(e){return Xo(To(),go.memoizedState,e)},useTransition:function(){return[No(Mo)[0],To().memoizedState]},useMutableSource:zo,useSyncExternalStore:Lo,useId:eu,unstable_isNewReconciler:!1},su={readContext:Ei,useCallback:Ko,useContext:Ei,useEffect:Vo,useImperativeHandle:Yo,useInsertionEffect:Ho,useLayoutEffect:qo,useMemo:Zo,useReducer:Po,useRef:Io,useState:function(){return Po(Mo)},useDebugValue:Go,useDeferredValue:function(e){var t=To();return null===go?t.memoizedState=e:Xo(t,go.memoizedState,e)},useTransition:function(){return[Po(Mo)[0],To().memoizedState]},useMutableSource:zo,useSyncExternalStore:Lo,useId:eu,unstable_isNewReconciler:!1};function cu(e,t){try{var n=\"\",r=t;do{n+=$(r),r=r.return}while(r);var a=n}catch(e){a=\"\\nError generating stack: \"+e.message+\"\\n\"+e.stack}return{value:e,source:t,stack:a,digest:null}}function fu(e,t,n){return{value:e,source:null,stack:null!=n?n:null,digest:null!=t?t:null}}function pu(e,t){try{console.error(t.value)}catch(e){setTimeout((function(){throw e}))}}var du=\"function\"==typeof WeakMap?WeakMap:Map;function hu(e,t,n){(n=Oi(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Hl||(Hl=!0,ql=r),pu(0,t)},n}function vu(e,t,n){(n=Oi(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if(\"function\"==typeof r){var a=t.value;n.payload=function(){return r(a)},n.callback=function(){pu(0,t)}}var i=e.stateNode;return null!==i&&\"function\"==typeof i.componentDidCatch&&(n.callback=function(){pu(0,t),\"function\"!=typeof r&&(null===Ql?Ql=new Set([this]):Ql.add(this));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:\"\"})}),n}function gu(e,t,n){var r=e.pingCache;if(null===r){r=e.pingCache=new du;var a=new Set;r.set(t,a)}else void 0===(a=r.get(t))&&(a=new Set,r.set(t,a));a.has(n)||(a.add(n),e=Cs.bind(null,e,t,n),t.then(e,e))}function yu(e){do{var t;if((t=13===e.tag)&&(t=null===(t=e.memoizedState)||null!==t.dehydrated),t)return e;e=e.return}while(null!==e);return null}function mu(e,t,n,r,a){return 0==(1&e.mode)?(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,1===n.tag&&(null===n.alternate?n.tag=17:((t=Oi(-1,1)).tag=2,Ai(n,t,1))),n.lanes|=1),e):(e.flags|=65536,e.lanes=a,e)}var bu=_.ReactCurrentOwner,_u=!1;function wu(e,t,n,r){t.child=null===e?Zi(t,null,n,r):Ki(t,e.child,n,r)}function xu(e,t,n,r,a){n=n.render;var i=t.ref;return Si(t,a),r=So(e,t,n,r,i,a),n=Eo(),null===e||_u?(ai&&n&&ei(t),t.flags|=1,wu(e,t,r,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~a,Hu(e,t,a))}function ku(e,t,n,r,a){if(null===e){var i=n.type;return\"function\"!=typeof i||Os(i)||void 0!==i.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Fs(n.type,null,r,t,t.mode,a)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=i,Su(e,t,i,r,a))}if(i=e.child,0==(e.lanes&a)){var o=i.memoizedProps;if((n=null!==(n=n.compare)?n:lr)(o,r)&&e.ref===t.ref)return Hu(e,t,a)}return t.flags|=1,(e=As(i,r)).ref=t.ref,e.return=t,t.child=e}function Su(e,t,n,r,a){if(null!==e){var i=e.memoizedProps;if(lr(i,r)&&e.ref===t.ref){if(_u=!1,t.pendingProps=r=i,0==(e.lanes&a))return t.lanes=e.lanes,Hu(e,t,a);0!=(131072&e.flags)&&(_u=!0)}}return Tu(e,t,n,r,a)}function Eu(e,t,n){var r=t.pendingProps,a=r.children,i=null!==e?e.memoizedState:null;if(\"hidden\"===r.mode)if(0==(1&t.mode))t.memoizedState={baseLanes:0,cachePool:null,transitions:null},Ca(Al,Ol),Ol|=n;else{if(0==(1073741824&n))return e=null!==i?i.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,Ca(Al,Ol),Ol|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=null!==i?i.baseLanes:n,Ca(Al,Ol),Ol|=r}else null!==i?(r=i.baseLanes|n,t.memoizedState=null):r=n,Ca(Al,Ol),Ol|=r;return wu(e,t,a,n),t.child}function Cu(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function Tu(e,t,n,r,a){var i=La(n)?Pa:Ma.current;return i=za(t,i),Si(t,a),n=So(e,t,n,r,i,a),r=Eo(),null===e||_u?(ai&&r&&ei(t),t.flags|=1,wu(e,t,n,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~a,Hu(e,t,a))}function Mu(e,t,n,r,a){if(La(n)){var i=!0;Da(t)}else i=!1;if(Si(t,a),null===t.stateNode)Vu(e,t),Wi(t,n,r),Hi(t,n,r,a),r=!0;else if(null===e){var o=t.stateNode,u=t.memoizedProps;o.props=u;var l=o.context,s=n.contextType;s=\"object\"==typeof s&&null!==s?Ei(s):za(t,s=La(n)?Pa:Ma.current);var c=n.getDerivedStateFromProps,f=\"function\"==typeof c||\"function\"==typeof o.getSnapshotBeforeUpdate;f||\"function\"!=typeof o.UNSAFE_componentWillReceiveProps&&\"function\"!=typeof o.componentWillReceiveProps||(u!==r||l!==s)&&Vi(t,o,r,s),Pi=!1;var p=t.memoizedState;o.state=p,Ri(t,r,o,a),l=t.memoizedState,u!==r||p!==l||Na.current||Pi?(\"function\"==typeof c&&(Ii(t,n,c,r),l=t.memoizedState),(u=Pi||Bi(t,n,u,r,p,l,s))?(f||\"function\"!=typeof o.UNSAFE_componentWillMount&&\"function\"!=typeof o.componentWillMount||(\"function\"==typeof o.componentWillMount&&o.componentWillMount(),\"function\"==typeof o.UNSAFE_componentWillMount&&o.UNSAFE_componentWillMount()),\"function\"==typeof o.componentDidMount&&(t.flags|=4194308)):(\"function\"==typeof o.componentDidMount&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=l),o.props=r,o.state=l,o.context=s,r=u):(\"function\"==typeof o.componentDidMount&&(t.flags|=4194308),r=!1)}else{o=t.stateNode,Li(e,t),u=t.memoizedProps,s=t.type===t.elementType?u:gi(t.type,u),o.props=s,f=t.pendingProps,p=o.context,l=\"object\"==typeof(l=n.contextType)&&null!==l?Ei(l):za(t,l=La(n)?Pa:Ma.current);var d=n.getDerivedStateFromProps;(c=\"function\"==typeof d||\"function\"==typeof o.getSnapshotBeforeUpdate)||\"function\"!=typeof o.UNSAFE_componentWillReceiveProps&&\"function\"!=typeof o.componentWillReceiveProps||(u!==f||p!==l)&&Vi(t,o,r,l),Pi=!1,p=t.memoizedState,o.state=p,Ri(t,r,o,a);var h=t.memoizedState;u!==f||p!==h||Na.current||Pi?(\"function\"==typeof d&&(Ii(t,n,d,r),h=t.memoizedState),(s=Pi||Bi(t,n,s,r,p,h,l)||!1)?(c||\"function\"!=typeof o.UNSAFE_componentWillUpdate&&\"function\"!=typeof o.componentWillUpdate||(\"function\"==typeof o.componentWillUpdate&&o.componentWillUpdate(r,h,l),\"function\"==typeof o.UNSAFE_componentWillUpdate&&o.UNSAFE_componentWillUpdate(r,h,l)),\"function\"==typeof o.componentDidUpdate&&(t.flags|=4),\"function\"==typeof o.getSnapshotBeforeUpdate&&(t.flags|=1024)):(\"function\"!=typeof o.componentDidUpdate||u===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),\"function\"!=typeof o.getSnapshotBeforeUpdate||u===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=h),o.props=r,o.state=h,o.context=l,r=s):(\"function\"!=typeof o.componentDidUpdate||u===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),\"function\"!=typeof o.getSnapshotBeforeUpdate||u===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),r=!1)}return Nu(e,t,n,r,i,a)}function Nu(e,t,n,r,a,i){Cu(e,t);var o=0!=(128&t.flags);if(!r&&!o)return a&&Ra(t,n,!1),Hu(e,t,i);r=t.stateNode,bu.current=t;var u=o&&\"function\"!=typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&o?(t.child=Ki(t,e.child,null,i),t.child=Ki(t,null,u,i)):wu(e,t,u,i),t.memoizedState=r.state,a&&Ra(t,n,!0),t.child}function Pu(e){var t=e.stateNode;t.pendingContext?Aa(0,t.pendingContext,t.pendingContext!==t.context):t.context&&Aa(0,t.context,!1),ro(e,t.containerInfo)}function zu(e,t,n,r,a){return di(),hi(a),t.flags|=256,wu(e,t,n,r),t.child}var Lu,Ou,Au,Fu,Du={dehydrated:null,treeContext:null,retryLane:0};function Ru(e){return{baseLanes:e,cachePool:null,transitions:null}}function ju(e,t,n){var r,a=t.pendingProps,o=uo.current,u=!1,l=0!=(128&t.flags);if((r=l)||(r=(null===e||null!==e.memoizedState)&&0!=(2&o)),r?(u=!0,t.flags&=-129):null!==e&&null===e.memoizedState||(o|=1),Ca(uo,1&o),null===e)return si(t),null!==(e=t.memoizedState)&&null!==(e=e.dehydrated)?(0==(1&t.mode)?t.lanes=1:\"$!\"===e.data?t.lanes=8:t.lanes=1073741824,null):(l=a.children,e=a.fallback,u?(a=t.mode,u=t.child,l={mode:\"hidden\",children:l},0==(1&a)&&null!==u?(u.childLanes=0,u.pendingProps=l):u=Rs(l,a,0,null),e=Ds(e,a,n,null),u.return=t,e.return=t,u.sibling=e,t.child=u,t.child.memoizedState=Ru(n),t.memoizedState=Du,e):Uu(t,l));if(null!==(o=e.memoizedState)&&null!==(r=o.dehydrated))return function(e,t,n,r,a,o,u){if(n)return 256&t.flags?(t.flags&=-257,Iu(e,t,u,r=fu(Error(i(422))))):null!==t.memoizedState?(t.child=e.child,t.flags|=128,null):(o=r.fallback,a=t.mode,r=Rs({mode:\"visible\",children:r.children},a,0,null),(o=Ds(o,a,u,null)).flags|=2,r.return=t,o.return=t,r.sibling=o,t.child=r,0!=(1&t.mode)&&Ki(t,e.child,null,u),t.child.memoizedState=Ru(u),t.memoizedState=Du,o);if(0==(1&t.mode))return Iu(e,t,u,null);if(\"$!\"===a.data){if(r=a.nextSibling&&a.nextSibling.dataset)var l=r.dgst;return r=l,Iu(e,t,u,r=fu(o=Error(i(419)),r,void 0))}if(l=0!=(u&e.childLanes),_u||l){if(null!==(r=Pl)){switch(u&-u){case 4:a=2;break;case 16:a=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:a=32;break;case 536870912:a=268435456;break;default:a=0}0!==(a=0!=(a&(r.suspendedLanes|u))?0:a)&&a!==o.retryLane&&(o.retryLane=a,Ni(e,a),rs(r,e,a,-1))}return gs(),Iu(e,t,u,r=fu(Error(i(421))))}return\"$?\"===a.data?(t.flags|=128,t.child=e.child,t=Ms.bind(null,e),a._reactRetry=t,null):(e=o.treeContext,ri=sa(a.nextSibling),ni=t,ai=!0,ii=null,null!==e&&(Qa[Ya++]=Ka,Qa[Ya++]=Za,Qa[Ya++]=Ga,Ka=e.id,Za=e.overflow,Ga=t),(t=Uu(t,r.children)).flags|=4096,t)}(e,t,l,a,r,o,n);if(u){u=a.fallback,l=t.mode,r=(o=e.child).sibling;var s={mode:\"hidden\",children:a.children};return 0==(1&l)&&t.child!==o?((a=t.child).childLanes=0,a.pendingProps=s,t.deletions=null):(a=As(o,s)).subtreeFlags=14680064&o.subtreeFlags,null!==r?u=As(r,u):(u=Ds(u,l,n,null)).flags|=2,u.return=t,a.return=t,a.sibling=u,t.child=a,a=u,u=t.child,l=null===(l=e.child.memoizedState)?Ru(n):{baseLanes:l.baseLanes|n,cachePool:null,transitions:l.transitions},u.memoizedState=l,u.childLanes=e.childLanes&~n,t.memoizedState=Du,a}return e=(u=e.child).sibling,a=As(u,{mode:\"visible\",children:a.children}),0==(1&t.mode)&&(a.lanes=n),a.return=t,a.sibling=null,null!==e&&(null===(n=t.deletions)?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=a,t.memoizedState=null,a}function Uu(e,t){return(t=Rs({mode:\"visible\",children:t},e.mode,0,null)).return=e,e.child=t}function Iu(e,t,n,r){return null!==r&&hi(r),Ki(t,e.child,null,n),(e=Uu(t,t.pendingProps.children)).flags|=2,t.memoizedState=null,e}function $u(e,t,n){e.lanes|=t;var r=e.alternate;null!==r&&(r.lanes|=t),ki(e.return,t,n)}function Bu(e,t,n,r,a){var i=e.memoizedState;null===i?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:a}:(i.isBackwards=t,i.rendering=null,i.renderingStartTime=0,i.last=r,i.tail=n,i.tailMode=a)}function Wu(e,t,n){var r=t.pendingProps,a=r.revealOrder,i=r.tail;if(wu(e,t,r.children,n),0!=(2&(r=uo.current)))r=1&r|2,t.flags|=128;else{if(null!==e&&0!=(128&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&$u(e,n,t);else if(19===e.tag)$u(e,n,t);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(Ca(uo,r),0==(1&t.mode))t.memoizedState=null;else switch(a){case\"forwards\":for(n=t.child,a=null;null!==n;)null!==(e=n.alternate)&&null===lo(e)&&(a=n),n=n.sibling;null===(n=a)?(a=t.child,t.child=null):(a=n.sibling,n.sibling=null),Bu(t,!1,a,n,i);break;case\"backwards\":for(n=null,a=t.child,t.child=null;null!==a;){if(null!==(e=a.alternate)&&null===lo(e)){t.child=a;break}e=a.sibling,a.sibling=n,n=a,a=e}Bu(t,!0,n,null,i);break;case\"together\":Bu(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function Vu(e,t){0==(1&t.mode)&&null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2)}function Hu(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),Rl|=t.lanes,0==(n&t.childLanes))return null;if(null!==e&&t.child!==e.child)throw Error(i(153));if(null!==t.child){for(n=As(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=As(e,e.pendingProps)).return=t;n.sibling=null}return t.child}function qu(e,t){if(!ai)switch(e.tailMode){case\"hidden\":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case\"collapsed\":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function Qu(e){var t=null!==e.alternate&&e.alternate.child===e.child,n=0,r=0;if(t)for(var a=e.child;null!==a;)n|=a.lanes|a.childLanes,r|=14680064&a.subtreeFlags,r|=14680064&a.flags,a.return=e,a=a.sibling;else for(a=e.child;null!==a;)n|=a.lanes|a.childLanes,r|=a.subtreeFlags,r|=a.flags,a.return=e,a=a.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function Yu(e,t,n){var r=t.pendingProps;switch(ti(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Qu(t),null;case 1:case 17:return La(t.type)&&Oa(),Qu(t),null;case 3:return r=t.stateNode,ao(),Ea(Na),Ea(Ma),co(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(fi(t)?t.flags|=4:null===e||e.memoizedState.isDehydrated&&0==(256&t.flags)||(t.flags|=1024,null!==ii&&(us(ii),ii=null))),Ou(e,t),Qu(t),null;case 5:oo(t);var a=no(to.current);if(n=t.type,null!==e&&null!=t.stateNode)Au(e,t,n,r,a),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!r){if(null===t.stateNode)throw Error(i(166));return Qu(t),null}if(e=no(Ji.current),fi(t)){r=t.stateNode,n=t.type;var o=t.memoizedProps;switch(r[pa]=t,r[da]=o,e=0!=(1&t.mode),n){case\"dialog\":Ur(\"cancel\",r),Ur(\"close\",r);break;case\"iframe\":case\"object\":case\"embed\":Ur(\"load\",r);break;case\"video\":case\"audio\":for(a=0;a<Fr.length;a++)Ur(Fr[a],r);break;case\"source\":Ur(\"error\",r);break;case\"img\":case\"image\":case\"link\":Ur(\"error\",r),Ur(\"load\",r);break;case\"details\":Ur(\"toggle\",r);break;case\"input\":K(r,o),Ur(\"invalid\",r);break;case\"select\":r._wrapperState={wasMultiple:!!o.multiple},Ur(\"invalid\",r);break;case\"textarea\":ae(r,o),Ur(\"invalid\",r)}for(var l in me(n,o),a=null,o)if(o.hasOwnProperty(l)){var s=o[l];\"children\"===l?\"string\"==typeof s?r.textContent!==s&&(!0!==o.suppressHydrationWarning&&Xr(r.textContent,s,e),a=[\"children\",s]):\"number\"==typeof s&&r.textContent!==\"\"+s&&(!0!==o.suppressHydrationWarning&&Xr(r.textContent,s,e),a=[\"children\",\"\"+s]):u.hasOwnProperty(l)&&null!=s&&\"onScroll\"===l&&Ur(\"scroll\",r)}switch(n){case\"input\":q(r),J(r,o,!0);break;case\"textarea\":q(r),oe(r);break;case\"select\":case\"option\":break;default:\"function\"==typeof o.onClick&&(r.onclick=Jr)}r=a,t.updateQueue=r,null!==r&&(t.flags|=4)}else{l=9===a.nodeType?a:a.ownerDocument,\"http://www.w3.org/1999/xhtml\"===e&&(e=ue(n)),\"http://www.w3.org/1999/xhtml\"===e?\"script\"===n?((e=l.createElement(\"div\")).innerHTML=\"<script><\\/script>\",e=e.removeChild(e.firstChild)):\"string\"==typeof r.is?e=l.createElement(n,{is:r.is}):(e=l.createElement(n),\"select\"===n&&(l=e,r.multiple?l.multiple=!0:r.size&&(l.size=r.size))):e=l.createElementNS(e,n),e[pa]=t,e[da]=r,Lu(e,t,!1,!1),t.stateNode=e;e:{switch(l=be(n,r),n){case\"dialog\":Ur(\"cancel\",e),Ur(\"close\",e),a=r;break;case\"iframe\":case\"object\":case\"embed\":Ur(\"load\",e),a=r;break;case\"video\":case\"audio\":for(a=0;a<Fr.length;a++)Ur(Fr[a],e);a=r;break;case\"source\":Ur(\"error\",e),a=r;break;case\"img\":case\"image\":case\"link\":Ur(\"error\",e),Ur(\"load\",e),a=r;break;case\"details\":Ur(\"toggle\",e),a=r;break;case\"input\":K(e,r),a=G(e,r),Ur(\"invalid\",e);break;case\"option\":default:a=r;break;case\"select\":e._wrapperState={wasMultiple:!!r.multiple},a=R({},r,{value:void 0}),Ur(\"invalid\",e);break;case\"textarea\":ae(e,r),a=re(e,r),Ur(\"invalid\",e)}for(o in me(n,a),s=a)if(s.hasOwnProperty(o)){var c=s[o];\"style\"===o?ge(e,c):\"dangerouslySetInnerHTML\"===o?null!=(c=c?c.__html:void 0)&&fe(e,c):\"children\"===o?\"string\"==typeof c?(\"textarea\"!==n||\"\"!==c)&&pe(e,c):\"number\"==typeof c&&pe(e,\"\"+c):\"suppressContentEditableWarning\"!==o&&\"suppressHydrationWarning\"!==o&&\"autoFocus\"!==o&&(u.hasOwnProperty(o)?null!=c&&\"onScroll\"===o&&Ur(\"scroll\",e):null!=c&&b(e,o,c,l))}switch(n){case\"input\":q(e),J(e,r,!1);break;case\"textarea\":q(e),oe(e);break;case\"option\":null!=r.value&&e.setAttribute(\"value\",\"\"+V(r.value));break;case\"select\":e.multiple=!!r.multiple,null!=(o=r.value)?ne(e,!!r.multiple,o,!1):null!=r.defaultValue&&ne(e,!!r.multiple,r.defaultValue,!0);break;default:\"function\"==typeof a.onClick&&(e.onclick=Jr)}switch(n){case\"button\":case\"input\":case\"select\":case\"textarea\":r=!!r.autoFocus;break e;case\"img\":r=!0;break e;default:r=!1}}r&&(t.flags|=4)}null!==t.ref&&(t.flags|=512,t.flags|=2097152)}return Qu(t),null;case 6:if(e&&null!=t.stateNode)Fu(e,t,e.memoizedProps,r);else{if(\"string\"!=typeof r&&null===t.stateNode)throw Error(i(166));if(n=no(to.current),no(Ji.current),fi(t)){if(r=t.stateNode,n=t.memoizedProps,r[pa]=t,(o=r.nodeValue!==n)&&null!==(e=ni))switch(e.tag){case 3:Xr(r.nodeValue,n,0!=(1&e.mode));break;case 5:!0!==e.memoizedProps.suppressHydrationWarning&&Xr(r.nodeValue,n,0!=(1&e.mode))}o&&(t.flags|=4)}else(r=(9===n.nodeType?n:n.ownerDocument).createTextNode(r))[pa]=t,t.stateNode=r}return Qu(t),null;case 13:if(Ea(uo),r=t.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(ai&&null!==ri&&0!=(1&t.mode)&&0==(128&t.flags))pi(),di(),t.flags|=98560,o=!1;else if(o=fi(t),null!==r&&null!==r.dehydrated){if(null===e){if(!o)throw Error(i(318));if(!(o=null!==(o=t.memoizedState)?o.dehydrated:null))throw Error(i(317));o[pa]=t}else di(),0==(128&t.flags)&&(t.memoizedState=null),t.flags|=4;Qu(t),o=!1}else null!==ii&&(us(ii),ii=null),o=!0;if(!o)return 65536&t.flags?t:null}return 0!=(128&t.flags)?(t.lanes=n,t):((r=null!==r)!=(null!==e&&null!==e.memoizedState)&&r&&(t.child.flags|=8192,0!=(1&t.mode)&&(null===e||0!=(1&uo.current)?0===Fl&&(Fl=3):gs())),null!==t.updateQueue&&(t.flags|=4),Qu(t),null);case 4:return ao(),Ou(e,t),null===e&&Br(t.stateNode.containerInfo),Qu(t),null;case 10:return xi(t.type._context),Qu(t),null;case 19:if(Ea(uo),null===(o=t.memoizedState))return Qu(t),null;if(r=0!=(128&t.flags),null===(l=o.rendering))if(r)qu(o,!1);else{if(0!==Fl||null!==e&&0!=(128&e.flags))for(e=t.child;null!==e;){if(null!==(l=lo(e))){for(t.flags|=128,qu(o,!1),null!==(r=l.updateQueue)&&(t.updateQueue=r,t.flags|=4),t.subtreeFlags=0,r=n,n=t.child;null!==n;)e=r,(o=n).flags&=14680066,null===(l=o.alternate)?(o.childLanes=0,o.lanes=e,o.child=null,o.subtreeFlags=0,o.memoizedProps=null,o.memoizedState=null,o.updateQueue=null,o.dependencies=null,o.stateNode=null):(o.childLanes=l.childLanes,o.lanes=l.lanes,o.child=l.child,o.subtreeFlags=0,o.deletions=null,o.memoizedProps=l.memoizedProps,o.memoizedState=l.memoizedState,o.updateQueue=l.updateQueue,o.type=l.type,e=l.dependencies,o.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return Ca(uo,1&uo.current|2),t.child}e=e.sibling}null!==o.tail&&Ze()>Wl&&(t.flags|=128,r=!0,qu(o,!1),t.lanes=4194304)}else{if(!r)if(null!==(e=lo(l))){if(t.flags|=128,r=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),qu(o,!0),null===o.tail&&\"hidden\"===o.tailMode&&!l.alternate&&!ai)return Qu(t),null}else 2*Ze()-o.renderingStartTime>Wl&&1073741824!==n&&(t.flags|=128,r=!0,qu(o,!1),t.lanes=4194304);o.isBackwards?(l.sibling=t.child,t.child=l):(null!==(n=o.last)?n.sibling=l:t.child=l,o.last=l)}return null!==o.tail?(t=o.tail,o.rendering=t,o.tail=t.sibling,o.renderingStartTime=Ze(),t.sibling=null,n=uo.current,Ca(uo,r?1&n|2:1&n),t):(Qu(t),null);case 22:case 23:return ps(),r=null!==t.memoizedState,null!==e&&null!==e.memoizedState!==r&&(t.flags|=8192),r&&0!=(1&t.mode)?0!=(1073741824&Ol)&&(Qu(t),6&t.subtreeFlags&&(t.flags|=8192)):Qu(t),null;case 24:case 25:return null}throw Error(i(156,t.tag))}function Gu(e,t){switch(ti(t),t.tag){case 1:return La(t.type)&&Oa(),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return ao(),Ea(Na),Ea(Ma),co(),0!=(65536&(e=t.flags))&&0==(128&e)?(t.flags=-65537&e|128,t):null;case 5:return oo(t),null;case 13:if(Ea(uo),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(i(340));di()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return Ea(uo),null;case 4:return ao(),null;case 10:return xi(t.type._context),null;case 22:case 23:return ps(),null;default:return null}}Lu=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Ou=function(){},Au=function(e,t,n,r){var a=e.memoizedProps;if(a!==r){e=t.stateNode,no(Ji.current);var i,o=null;switch(n){case\"input\":a=G(e,a),r=G(e,r),o=[];break;case\"select\":a=R({},a,{value:void 0}),r=R({},r,{value:void 0}),o=[];break;case\"textarea\":a=re(e,a),r=re(e,r),o=[];break;default:\"function\"!=typeof a.onClick&&\"function\"==typeof r.onClick&&(e.onclick=Jr)}for(c in me(n,r),n=null,a)if(!r.hasOwnProperty(c)&&a.hasOwnProperty(c)&&null!=a[c])if(\"style\"===c){var l=a[c];for(i in l)l.hasOwnProperty(i)&&(n||(n={}),n[i]=\"\")}else\"dangerouslySetInnerHTML\"!==c&&\"children\"!==c&&\"suppressContentEditableWarning\"!==c&&\"suppressHydrationWarning\"!==c&&\"autoFocus\"!==c&&(u.hasOwnProperty(c)?o||(o=[]):(o=o||[]).push(c,null));for(c in r){var s=r[c];if(l=null!=a?a[c]:void 0,r.hasOwnProperty(c)&&s!==l&&(null!=s||null!=l))if(\"style\"===c)if(l){for(i in l)!l.hasOwnProperty(i)||s&&s.hasOwnProperty(i)||(n||(n={}),n[i]=\"\");for(i in s)s.hasOwnProperty(i)&&l[i]!==s[i]&&(n||(n={}),n[i]=s[i])}else n||(o||(o=[]),o.push(c,n)),n=s;else\"dangerouslySetInnerHTML\"===c?(s=s?s.__html:void 0,l=l?l.__html:void 0,null!=s&&l!==s&&(o=o||[]).push(c,s)):\"children\"===c?\"string\"!=typeof s&&\"number\"!=typeof s||(o=o||[]).push(c,\"\"+s):\"suppressContentEditableWarning\"!==c&&\"suppressHydrationWarning\"!==c&&(u.hasOwnProperty(c)?(null!=s&&\"onScroll\"===c&&Ur(\"scroll\",e),o||l===s||(o=[])):(o=o||[]).push(c,s))}n&&(o=o||[]).push(\"style\",n);var c=o;(t.updateQueue=c)&&(t.flags|=4)}},Fu=function(e,t,n,r){n!==r&&(t.flags|=4)};var Ku=!1,Zu=!1,Xu=\"function\"==typeof WeakSet?WeakSet:Set,Ju=null;function el(e,t){var n=e.ref;if(null!==n)if(\"function\"==typeof n)try{n(null)}catch(n){Es(e,t,n)}else n.current=null}function tl(e,t,n){try{n()}catch(n){Es(e,t,n)}}var nl=!1;function rl(e,t,n){var r=t.updateQueue;if(null!==(r=null!==r?r.lastEffect:null)){var a=r=r.next;do{if((a.tag&e)===e){var i=a.destroy;a.destroy=void 0,void 0!==i&&tl(t,n,i)}a=a.next}while(a!==r)}}function al(e,t){if(null!==(t=null!==(t=t.updateQueue)?t.lastEffect:null)){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function il(e){var t=e.ref;if(null!==t){var n=e.stateNode;e.tag,e=n,\"function\"==typeof t?t(e):t.current=e}}function ol(e){var t=e.alternate;null!==t&&(e.alternate=null,ol(t)),e.child=null,e.deletions=null,e.sibling=null,5===e.tag&&null!==(t=e.stateNode)&&(delete t[pa],delete t[da],delete t[va],delete t[ga],delete t[ya]),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function ul(e){return 5===e.tag||3===e.tag||4===e.tag}function ll(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||ul(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;5!==e.tag&&6!==e.tag&&18!==e.tag;){if(2&e.flags)continue e;if(null===e.child||4===e.tag)continue e;e.child.return=e,e=e.child}if(!(2&e.flags))return e.stateNode}}function sl(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!=(n=n._reactRootContainer)||null!==t.onclick||(t.onclick=Jr));else if(4!==r&&null!==(e=e.child))for(sl(e,t,n),e=e.sibling;null!==e;)sl(e,t,n),e=e.sibling}function cl(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(cl(e,t,n),e=e.sibling;null!==e;)cl(e,t,n),e=e.sibling}var fl=null,pl=!1;function dl(e,t,n){for(n=n.child;null!==n;)hl(e,t,n),n=n.sibling}function hl(e,t,n){if(it&&\"function\"==typeof it.onCommitFiberUnmount)try{it.onCommitFiberUnmount(at,n)}catch(e){}switch(n.tag){case 5:Zu||el(n,t);case 6:var r=fl,a=pl;fl=null,dl(e,t,n),pl=a,null!==(fl=r)&&(pl?(e=fl,n=n.stateNode,8===e.nodeType?e.parentNode.removeChild(n):e.removeChild(n)):fl.removeChild(n.stateNode));break;case 18:null!==fl&&(pl?(e=fl,n=n.stateNode,8===e.nodeType?la(e.parentNode,n):1===e.nodeType&&la(e,n),Bt(e)):la(fl,n.stateNode));break;case 4:r=fl,a=pl,fl=n.stateNode.containerInfo,pl=!0,dl(e,t,n),fl=r,pl=a;break;case 0:case 11:case 14:case 15:if(!Zu&&null!==(r=n.updateQueue)&&null!==(r=r.lastEffect)){a=r=r.next;do{var i=a,o=i.destroy;i=i.tag,void 0!==o&&(0!=(2&i)||0!=(4&i))&&tl(n,t,o),a=a.next}while(a!==r)}dl(e,t,n);break;case 1:if(!Zu&&(el(n,t),\"function\"==typeof(r=n.stateNode).componentWillUnmount))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(e){Es(n,t,e)}dl(e,t,n);break;case 21:dl(e,t,n);break;case 22:1&n.mode?(Zu=(r=Zu)||null!==n.memoizedState,dl(e,t,n),Zu=r):dl(e,t,n);break;default:dl(e,t,n)}}function vl(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new Xu),t.forEach((function(t){var r=Ns.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function gl(e,t){var n=t.deletions;if(null!==n)for(var r=0;r<n.length;r++){var a=n[r];try{var o=e,u=t,l=u;e:for(;null!==l;){switch(l.tag){case 5:fl=l.stateNode,pl=!1;break e;case 3:case 4:fl=l.stateNode.containerInfo,pl=!0;break e}l=l.return}if(null===fl)throw Error(i(160));hl(o,u,a),fl=null,pl=!1;var s=a.alternate;null!==s&&(s.return=null),a.return=null}catch(e){Es(a,t,e)}}if(12854&t.subtreeFlags)for(t=t.child;null!==t;)yl(t,e),t=t.sibling}function yl(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(gl(t,e),ml(e),4&r){try{rl(3,e,e.return),al(3,e)}catch(t){Es(e,e.return,t)}try{rl(5,e,e.return)}catch(t){Es(e,e.return,t)}}break;case 1:gl(t,e),ml(e),512&r&&null!==n&&el(n,n.return);break;case 5:if(gl(t,e),ml(e),512&r&&null!==n&&el(n,n.return),32&e.flags){var a=e.stateNode;try{pe(a,\"\")}catch(t){Es(e,e.return,t)}}if(4&r&&null!=(a=e.stateNode)){var o=e.memoizedProps,u=null!==n?n.memoizedProps:o,l=e.type,s=e.updateQueue;if(e.updateQueue=null,null!==s)try{\"input\"===l&&\"radio\"===o.type&&null!=o.name&&Z(a,o),be(l,u);var c=be(l,o);for(u=0;u<s.length;u+=2){var f=s[u],p=s[u+1];\"style\"===f?ge(a,p):\"dangerouslySetInnerHTML\"===f?fe(a,p):\"children\"===f?pe(a,p):b(a,f,p,c)}switch(l){case\"input\":X(a,o);break;case\"textarea\":ie(a,o);break;case\"select\":var d=a._wrapperState.wasMultiple;a._wrapperState.wasMultiple=!!o.multiple;var h=o.value;null!=h?ne(a,!!o.multiple,h,!1):d!==!!o.multiple&&(null!=o.defaultValue?ne(a,!!o.multiple,o.defaultValue,!0):ne(a,!!o.multiple,o.multiple?[]:\"\",!1))}a[da]=o}catch(t){Es(e,e.return,t)}}break;case 6:if(gl(t,e),ml(e),4&r){if(null===e.stateNode)throw Error(i(162));a=e.stateNode,o=e.memoizedProps;try{a.nodeValue=o}catch(t){Es(e,e.return,t)}}break;case 3:if(gl(t,e),ml(e),4&r&&null!==n&&n.memoizedState.isDehydrated)try{Bt(t.containerInfo)}catch(t){Es(e,e.return,t)}break;case 4:default:gl(t,e),ml(e);break;case 13:gl(t,e),ml(e),8192&(a=e.child).flags&&(o=null!==a.memoizedState,a.stateNode.isHidden=o,!o||null!==a.alternate&&null!==a.alternate.memoizedState||(Bl=Ze())),4&r&&vl(e);break;case 22:if(f=null!==n&&null!==n.memoizedState,1&e.mode?(Zu=(c=Zu)||f,gl(t,e),Zu=c):gl(t,e),ml(e),8192&r){if(c=null!==e.memoizedState,(e.stateNode.isHidden=c)&&!f&&0!=(1&e.mode))for(Ju=e,f=e.child;null!==f;){for(p=Ju=f;null!==Ju;){switch(h=(d=Ju).child,d.tag){case 0:case 11:case 14:case 15:rl(4,d,d.return);break;case 1:el(d,d.return);var v=d.stateNode;if(\"function\"==typeof v.componentWillUnmount){r=d,n=d.return;try{t=r,v.props=t.memoizedProps,v.state=t.memoizedState,v.componentWillUnmount()}catch(e){Es(r,n,e)}}break;case 5:el(d,d.return);break;case 22:if(null!==d.memoizedState){xl(p);continue}}null!==h?(h.return=d,Ju=h):xl(p)}f=f.sibling}e:for(f=null,p=e;;){if(5===p.tag){if(null===f){f=p;try{a=p.stateNode,c?\"function\"==typeof(o=a.style).setProperty?o.setProperty(\"display\",\"none\",\"important\"):o.display=\"none\":(l=p.stateNode,u=null!=(s=p.memoizedProps.style)&&s.hasOwnProperty(\"display\")?s.display:null,l.style.display=ve(\"display\",u))}catch(t){Es(e,e.return,t)}}}else if(6===p.tag){if(null===f)try{p.stateNode.nodeValue=c?\"\":p.memoizedProps}catch(t){Es(e,e.return,t)}}else if((22!==p.tag&&23!==p.tag||null===p.memoizedState||p===e)&&null!==p.child){p.child.return=p,p=p.child;continue}if(p===e)break e;for(;null===p.sibling;){if(null===p.return||p.return===e)break e;f===p&&(f=null),p=p.return}f===p&&(f=null),p.sibling.return=p.return,p=p.sibling}}break;case 19:gl(t,e),ml(e),4&r&&vl(e);case 21:}}function ml(e){var t=e.flags;if(2&t){try{e:{for(var n=e.return;null!==n;){if(ul(n)){var r=n;break e}n=n.return}throw Error(i(160))}switch(r.tag){case 5:var a=r.stateNode;32&r.flags&&(pe(a,\"\"),r.flags&=-33),cl(e,ll(e),a);break;case 3:case 4:var o=r.stateNode.containerInfo;sl(e,ll(e),o);break;default:throw Error(i(161))}}catch(t){Es(e,e.return,t)}e.flags&=-3}4096&t&&(e.flags&=-4097)}function bl(e,t,n){Ju=e,_l(e,t,n)}function _l(e,t,n){for(var r=0!=(1&e.mode);null!==Ju;){var a=Ju,i=a.child;if(22===a.tag&&r){var o=null!==a.memoizedState||Ku;if(!o){var u=a.alternate,l=null!==u&&null!==u.memoizedState||Zu;u=Ku;var s=Zu;if(Ku=o,(Zu=l)&&!s)for(Ju=a;null!==Ju;)l=(o=Ju).child,22===o.tag&&null!==o.memoizedState?kl(a):null!==l?(l.return=o,Ju=l):kl(a);for(;null!==i;)Ju=i,_l(i,t,n),i=i.sibling;Ju=a,Ku=u,Zu=s}wl(e)}else 0!=(8772&a.subtreeFlags)&&null!==i?(i.return=a,Ju=i):wl(e)}}function wl(e){for(;null!==Ju;){var t=Ju;if(0!=(8772&t.flags)){var n=t.alternate;try{if(0!=(8772&t.flags))switch(t.tag){case 0:case 11:case 15:Zu||al(5,t);break;case 1:var r=t.stateNode;if(4&t.flags&&!Zu)if(null===n)r.componentDidMount();else{var a=t.elementType===t.type?n.memoizedProps:gi(t.type,n.memoizedProps);r.componentDidUpdate(a,n.memoizedState,r.__reactInternalSnapshotBeforeUpdate)}var o=t.updateQueue;null!==o&&ji(t,o,r);break;case 3:var u=t.updateQueue;if(null!==u){if(n=null,null!==t.child)switch(t.child.tag){case 5:case 1:n=t.child.stateNode}ji(t,u,n)}break;case 5:var l=t.stateNode;if(null===n&&4&t.flags){n=l;var s=t.memoizedProps;switch(t.type){case\"button\":case\"input\":case\"select\":case\"textarea\":s.autoFocus&&n.focus();break;case\"img\":s.src&&(n.src=s.src)}}break;case 6:case 4:case 12:case 19:case 17:case 21:case 22:case 23:case 25:break;case 13:if(null===t.memoizedState){var c=t.alternate;if(null!==c){var f=c.memoizedState;if(null!==f){var p=f.dehydrated;null!==p&&Bt(p)}}}break;default:throw Error(i(163))}Zu||512&t.flags&&il(t)}catch(e){Es(t,t.return,e)}}if(t===e){Ju=null;break}if(null!==(n=t.sibling)){n.return=t.return,Ju=n;break}Ju=t.return}}function xl(e){for(;null!==Ju;){var t=Ju;if(t===e){Ju=null;break}var n=t.sibling;if(null!==n){n.return=t.return,Ju=n;break}Ju=t.return}}function kl(e){for(;null!==Ju;){var t=Ju;try{switch(t.tag){case 0:case 11:case 15:var n=t.return;try{al(4,t)}catch(e){Es(t,n,e)}break;case 1:var r=t.stateNode;if(\"function\"==typeof r.componentDidMount){var a=t.return;try{r.componentDidMount()}catch(e){Es(t,a,e)}}var i=t.return;try{il(t)}catch(e){Es(t,i,e)}break;case 5:var o=t.return;try{il(t)}catch(e){Es(t,o,e)}}}catch(e){Es(t,t.return,e)}if(t===e){Ju=null;break}var u=t.sibling;if(null!==u){u.return=t.return,Ju=u;break}Ju=t.return}}var Sl,El=Math.ceil,Cl=_.ReactCurrentDispatcher,Tl=_.ReactCurrentOwner,Ml=_.ReactCurrentBatchConfig,Nl=0,Pl=null,zl=null,Ll=0,Ol=0,Al=Sa(0),Fl=0,Dl=null,Rl=0,jl=0,Ul=0,Il=null,$l=null,Bl=0,Wl=1/0,Vl=null,Hl=!1,ql=null,Ql=null,Yl=!1,Gl=null,Kl=0,Zl=0,Xl=null,Jl=-1,es=0;function ts(){return 0!=(6&Nl)?Ze():-1!==Jl?Jl:Jl=Ze()}function ns(e){return 0==(1&e.mode)?1:0!=(2&Nl)&&0!==Ll?Ll&-Ll:null!==vi.transition?(0===es&&(es=vt()),es):0!==(e=bt)?e:e=void 0===(e=window.event)?16:Kt(e.type)}function rs(e,t,n,r){if(50<Zl)throw Zl=0,Xl=null,Error(i(185));yt(e,n,r),0!=(2&Nl)&&e===Pl||(e===Pl&&(0==(2&Nl)&&(jl|=n),4===Fl&&ls(e,Ll)),as(e,r),1===n&&0===Nl&&0==(1&t.mode)&&(Wl=Ze()+500,Ua&&Ba()))}function as(e,t){var n=e.callbackNode;!function(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,a=e.expirationTimes,i=e.pendingLanes;0<i;){var o=31-ot(i),u=1<<o,l=a[o];-1===l?0!=(u&n)&&0==(u&r)||(a[o]=dt(u,t)):l<=t&&(e.expiredLanes|=u),i&=~u}}(e,t);var r=pt(e,e===Pl?Ll:0);if(0===r)null!==n&&Ye(n),e.callbackNode=null,e.callbackPriority=0;else if(t=r&-r,e.callbackPriority!==t){if(null!=n&&Ye(n),1===t)0===e.tag?function(e){Ua=!0,$a(e)}(ss.bind(null,e)):$a(ss.bind(null,e)),oa((function(){0==(6&Nl)&&Ba()})),n=null;else{switch(_t(r)){case 1:n=Je;break;case 4:n=et;break;case 16:default:n=tt;break;case 536870912:n=rt}n=Ps(n,is.bind(null,e))}e.callbackPriority=t,e.callbackNode=n}}function is(e,t){if(Jl=-1,es=0,0!=(6&Nl))throw Error(i(327));var n=e.callbackNode;if(ks()&&e.callbackNode!==n)return null;var r=pt(e,e===Pl?Ll:0);if(0===r)return null;if(0!=(30&r)||0!=(r&e.expiredLanes)||t)t=ys(e,r);else{t=r;var a=Nl;Nl|=2;var o=vs();for(Pl===e&&Ll===t||(Vl=null,Wl=Ze()+500,ds(e,t));;)try{bs();break}catch(t){hs(e,t)}wi(),Cl.current=o,Nl=a,null!==zl?t=0:(Pl=null,Ll=0,t=Fl)}if(0!==t){if(2===t&&0!==(a=ht(e))&&(r=a,t=os(e,a)),1===t)throw n=Dl,ds(e,0),ls(e,r),as(e,Ze()),n;if(6===t)ls(e,r);else{if(a=e.current.alternate,0==(30&r)&&!function(e){for(var t=e;;){if(16384&t.flags){var n=t.updateQueue;if(null!==n&&null!==(n=n.stores))for(var r=0;r<n.length;r++){var a=n[r],i=a.getSnapshot;a=a.value;try{if(!ur(i(),a))return!1}catch(e){return!1}}}if(n=t.child,16384&t.subtreeFlags&&null!==n)n.return=t,t=n;else{if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}(a)&&(2===(t=ys(e,r))&&0!==(o=ht(e))&&(r=o,t=os(e,o)),1===t))throw n=Dl,ds(e,0),ls(e,r),as(e,Ze()),n;switch(e.finishedWork=a,e.finishedLanes=r,t){case 0:case 1:throw Error(i(345));case 2:case 5:xs(e,$l,Vl);break;case 3:if(ls(e,r),(130023424&r)===r&&10<(t=Bl+500-Ze())){if(0!==pt(e,0))break;if(((a=e.suspendedLanes)&r)!==r){ts(),e.pingedLanes|=e.suspendedLanes&a;break}e.timeoutHandle=ra(xs.bind(null,e,$l,Vl),t);break}xs(e,$l,Vl);break;case 4:if(ls(e,r),(4194240&r)===r)break;for(t=e.eventTimes,a=-1;0<r;){var u=31-ot(r);o=1<<u,(u=t[u])>a&&(a=u),r&=~o}if(r=a,10<(r=(120>(r=Ze()-r)?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*El(r/1960))-r)){e.timeoutHandle=ra(xs.bind(null,e,$l,Vl),r);break}xs(e,$l,Vl);break;default:throw Error(i(329))}}}return as(e,Ze()),e.callbackNode===n?is.bind(null,e):null}function os(e,t){var n=Il;return e.current.memoizedState.isDehydrated&&(ds(e,t).flags|=256),2!==(e=ys(e,t))&&(t=$l,$l=n,null!==t&&us(t)),e}function us(e){null===$l?$l=e:$l.push.apply($l,e)}function ls(e,t){for(t&=~Ul,t&=~jl,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-ot(t),r=1<<n;e[n]=-1,t&=~r}}function ss(e){if(0!=(6&Nl))throw Error(i(327));ks();var t=pt(e,0);if(0==(1&t))return as(e,Ze()),null;var n=ys(e,t);if(0!==e.tag&&2===n){var r=ht(e);0!==r&&(t=r,n=os(e,r))}if(1===n)throw n=Dl,ds(e,0),ls(e,t),as(e,Ze()),n;if(6===n)throw Error(i(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,xs(e,$l,Vl),as(e,Ze()),null}function cs(e,t){var n=Nl;Nl|=1;try{return e(t)}finally{0===(Nl=n)&&(Wl=Ze()+500,Ua&&Ba())}}function fs(e){null!==Gl&&0===Gl.tag&&0==(6&Nl)&&ks();var t=Nl;Nl|=1;var n=Ml.transition,r=bt;try{if(Ml.transition=null,bt=1,e)return e()}finally{bt=r,Ml.transition=n,0==(6&(Nl=t))&&Ba()}}function ps(){Ol=Al.current,Ea(Al)}function ds(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,aa(n)),null!==zl)for(n=zl.return;null!==n;){var r=n;switch(ti(r),r.tag){case 1:null!=(r=r.type.childContextTypes)&&Oa();break;case 3:ao(),Ea(Na),Ea(Ma),co();break;case 5:oo(r);break;case 4:ao();break;case 13:case 19:Ea(uo);break;case 10:xi(r.type._context);break;case 22:case 23:ps()}n=n.return}if(Pl=e,zl=e=As(e.current,null),Ll=Ol=t,Fl=0,Dl=null,Ul=jl=Rl=0,$l=Il=null,null!==Ci){for(t=0;t<Ci.length;t++)if(null!==(r=(n=Ci[t]).interleaved)){n.interleaved=null;var a=r.next,i=n.pending;if(null!==i){var o=i.next;i.next=a,r.next=o}n.pending=r}Ci=null}return e}function hs(e,t){for(;;){var n=zl;try{if(wi(),fo.current=ou,mo){for(var r=vo.memoizedState;null!==r;){var a=r.queue;null!==a&&(a.pending=null),r=r.next}mo=!1}if(ho=0,yo=go=vo=null,bo=!1,_o=0,Tl.current=null,null===n||null===n.return){Fl=1,Dl=t,zl=null;break}e:{var o=e,u=n.return,l=n,s=t;if(t=Ll,l.flags|=32768,null!==s&&\"object\"==typeof s&&\"function\"==typeof s.then){var c=s,f=l,p=f.tag;if(0==(1&f.mode)&&(0===p||11===p||15===p)){var d=f.alternate;d?(f.updateQueue=d.updateQueue,f.memoizedState=d.memoizedState,f.lanes=d.lanes):(f.updateQueue=null,f.memoizedState=null)}var h=yu(u);if(null!==h){h.flags&=-257,mu(h,u,l,0,t),1&h.mode&&gu(o,c,t),s=c;var v=(t=h).updateQueue;if(null===v){var g=new Set;g.add(s),t.updateQueue=g}else v.add(s);break e}if(0==(1&t)){gu(o,c,t),gs();break e}s=Error(i(426))}else if(ai&&1&l.mode){var y=yu(u);if(null!==y){0==(65536&y.flags)&&(y.flags|=256),mu(y,u,l,0,t),hi(cu(s,l));break e}}o=s=cu(s,l),4!==Fl&&(Fl=2),null===Il?Il=[o]:Il.push(o),o=u;do{switch(o.tag){case 3:o.flags|=65536,t&=-t,o.lanes|=t,Di(o,hu(0,s,t));break e;case 1:l=s;var m=o.type,b=o.stateNode;if(0==(128&o.flags)&&(\"function\"==typeof m.getDerivedStateFromError||null!==b&&\"function\"==typeof b.componentDidCatch&&(null===Ql||!Ql.has(b)))){o.flags|=65536,t&=-t,o.lanes|=t,Di(o,vu(o,l,t));break e}}o=o.return}while(null!==o)}ws(n)}catch(e){t=e,zl===n&&null!==n&&(zl=n=n.return);continue}break}}function vs(){var e=Cl.current;return Cl.current=ou,null===e?ou:e}function gs(){0!==Fl&&3!==Fl&&2!==Fl||(Fl=4),null===Pl||0==(268435455&Rl)&&0==(268435455&jl)||ls(Pl,Ll)}function ys(e,t){var n=Nl;Nl|=2;var r=vs();for(Pl===e&&Ll===t||(Vl=null,ds(e,t));;)try{ms();break}catch(t){hs(e,t)}if(wi(),Nl=n,Cl.current=r,null!==zl)throw Error(i(261));return Pl=null,Ll=0,Fl}function ms(){for(;null!==zl;)_s(zl)}function bs(){for(;null!==zl&&!Ge();)_s(zl)}function _s(e){var t=Sl(e.alternate,e,Ol);e.memoizedProps=e.pendingProps,null===t?ws(e):zl=t,Tl.current=null}function ws(e){var t=e;do{var n=t.alternate;if(e=t.return,0==(32768&t.flags)){if(null!==(n=Yu(n,t,Ol)))return void(zl=n)}else{if(null!==(n=Gu(n,t)))return n.flags&=32767,void(zl=n);if(null===e)return Fl=6,void(zl=null);e.flags|=32768,e.subtreeFlags=0,e.deletions=null}if(null!==(t=t.sibling))return void(zl=t);zl=t=e}while(null!==t);0===Fl&&(Fl=5)}function xs(e,t,n){var r=bt,a=Ml.transition;try{Ml.transition=null,bt=1,function(e,t,n,r){do{ks()}while(null!==Gl);if(0!=(6&Nl))throw Error(i(327));n=e.finishedWork;var a=e.finishedLanes;if(null===n)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(i(177));e.callbackNode=null,e.callbackPriority=0;var o=n.lanes|n.childLanes;if(function(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0<n;){var a=31-ot(n),i=1<<a;t[a]=0,r[a]=-1,e[a]=-1,n&=~i}}(e,o),e===Pl&&(zl=Pl=null,Ll=0),0==(2064&n.subtreeFlags)&&0==(2064&n.flags)||Yl||(Yl=!0,Ps(tt,(function(){return ks(),null}))),o=0!=(15990&n.flags),0!=(15990&n.subtreeFlags)||o){o=Ml.transition,Ml.transition=null;var u=bt;bt=1;var l=Nl;Nl|=4,Tl.current=null,function(e,t){if(ea=Vt,dr(e=pr())){if(\"selectionStart\"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{var r=(n=(n=e.ownerDocument)&&n.defaultView||window).getSelection&&n.getSelection();if(r&&0!==r.rangeCount){n=r.anchorNode;var a=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch(e){n=null;break e}var u=0,l=-1,s=-1,c=0,f=0,p=e,d=null;t:for(;;){for(var h;p!==n||0!==a&&3!==p.nodeType||(l=u+a),p!==o||0!==r&&3!==p.nodeType||(s=u+r),3===p.nodeType&&(u+=p.nodeValue.length),null!==(h=p.firstChild);)d=p,p=h;for(;;){if(p===e)break t;if(d===n&&++c===a&&(l=u),d===o&&++f===r&&(s=u),null!==(h=p.nextSibling))break;d=(p=d).parentNode}p=h}n=-1===l||-1===s?null:{start:l,end:s}}else n=null}n=n||{start:0,end:0}}else n=null;for(ta={focusedElem:e,selectionRange:n},Vt=!1,Ju=t;null!==Ju;)if(e=(t=Ju).child,0!=(1028&t.subtreeFlags)&&null!==e)e.return=t,Ju=e;else for(;null!==Ju;){t=Ju;try{var v=t.alternate;if(0!=(1024&t.flags))switch(t.tag){case 0:case 11:case 15:case 5:case 6:case 4:case 17:break;case 1:if(null!==v){var g=v.memoizedProps,y=v.memoizedState,m=t.stateNode,b=m.getSnapshotBeforeUpdate(t.elementType===t.type?g:gi(t.type,g),y);m.__reactInternalSnapshotBeforeUpdate=b}break;case 3:var _=t.stateNode.containerInfo;1===_.nodeType?_.textContent=\"\":9===_.nodeType&&_.documentElement&&_.removeChild(_.documentElement);break;default:throw Error(i(163))}}catch(e){Es(t,t.return,e)}if(null!==(e=t.sibling)){e.return=t.return,Ju=e;break}Ju=t.return}v=nl,nl=!1}(e,n),yl(n,e),hr(ta),Vt=!!ea,ta=ea=null,e.current=n,bl(n,e,a),Ke(),Nl=l,bt=u,Ml.transition=o}else e.current=n;if(Yl&&(Yl=!1,Gl=e,Kl=a),0===(o=e.pendingLanes)&&(Ql=null),function(e){if(it&&\"function\"==typeof it.onCommitFiberRoot)try{it.onCommitFiberRoot(at,e,void 0,128==(128&e.current.flags))}catch(e){}}(n.stateNode),as(e,Ze()),null!==t)for(r=e.onRecoverableError,n=0;n<t.length;n++)r((a=t[n]).value,{componentStack:a.stack,digest:a.digest});if(Hl)throw Hl=!1,e=ql,ql=null,e;0!=(1&Kl)&&0!==e.tag&&ks(),0!=(1&(o=e.pendingLanes))?e===Xl?Zl++:(Zl=0,Xl=e):Zl=0,Ba()}(e,t,n,r)}finally{Ml.transition=a,bt=r}return null}function ks(){if(null!==Gl){var e=_t(Kl),t=Ml.transition,n=bt;try{if(Ml.transition=null,bt=16>e?16:e,null===Gl)var r=!1;else{if(e=Gl,Gl=null,Kl=0,0!=(6&Nl))throw Error(i(331));var a=Nl;for(Nl|=4,Ju=e.current;null!==Ju;){var o=Ju,u=o.child;if(0!=(16&Ju.flags)){var l=o.deletions;if(null!==l){for(var s=0;s<l.length;s++){var c=l[s];for(Ju=c;null!==Ju;){var f=Ju;switch(f.tag){case 0:case 11:case 15:rl(8,f,o)}var p=f.child;if(null!==p)p.return=f,Ju=p;else for(;null!==Ju;){var d=(f=Ju).sibling,h=f.return;if(ol(f),f===c){Ju=null;break}if(null!==d){d.return=h,Ju=d;break}Ju=h}}}var v=o.alternate;if(null!==v){var g=v.child;if(null!==g){v.child=null;do{var y=g.sibling;g.sibling=null,g=y}while(null!==g)}}Ju=o}}if(0!=(2064&o.subtreeFlags)&&null!==u)u.return=o,Ju=u;else e:for(;null!==Ju;){if(0!=(2048&(o=Ju).flags))switch(o.tag){case 0:case 11:case 15:rl(9,o,o.return)}var m=o.sibling;if(null!==m){m.return=o.return,Ju=m;break e}Ju=o.return}}var b=e.current;for(Ju=b;null!==Ju;){var _=(u=Ju).child;if(0!=(2064&u.subtreeFlags)&&null!==_)_.return=u,Ju=_;else e:for(u=b;null!==Ju;){if(0!=(2048&(l=Ju).flags))try{switch(l.tag){case 0:case 11:case 15:al(9,l)}}catch(e){Es(l,l.return,e)}if(l===u){Ju=null;break e}var w=l.sibling;if(null!==w){w.return=l.return,Ju=w;break e}Ju=l.return}}if(Nl=a,Ba(),it&&\"function\"==typeof it.onPostCommitFiberRoot)try{it.onPostCommitFiberRoot(at,e)}catch(e){}r=!0}return r}finally{bt=n,Ml.transition=t}}return!1}function Ss(e,t,n){e=Ai(e,t=hu(0,t=cu(n,t),1),1),t=ts(),null!==e&&(yt(e,1,t),as(e,t))}function Es(e,t,n){if(3===e.tag)Ss(e,e,n);else for(;null!==t;){if(3===t.tag){Ss(t,e,n);break}if(1===t.tag){var r=t.stateNode;if(\"function\"==typeof t.type.getDerivedStateFromError||\"function\"==typeof r.componentDidCatch&&(null===Ql||!Ql.has(r))){t=Ai(t,e=vu(t,e=cu(n,e),1),1),e=ts(),null!==t&&(yt(t,1,e),as(t,e));break}}t=t.return}}function Cs(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=ts(),e.pingedLanes|=e.suspendedLanes&n,Pl===e&&(Ll&n)===n&&(4===Fl||3===Fl&&(130023424&Ll)===Ll&&500>Ze()-Bl?ds(e,0):Ul|=n),as(e,t)}function Ts(e,t){0===t&&(0==(1&e.mode)?t=1:(t=ct,0==(130023424&(ct<<=1))&&(ct=4194304)));var n=ts();null!==(e=Ni(e,t))&&(yt(e,t,n),as(e,n))}function Ms(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),Ts(e,n)}function Ns(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,a=e.memoizedState;null!==a&&(n=a.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(i(314))}null!==r&&r.delete(t),Ts(e,n)}function Ps(e,t){return Qe(e,t)}function zs(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Ls(e,t,n,r){return new zs(e,t,n,r)}function Os(e){return!(!(e=e.prototype)||!e.isReactComponent)}function As(e,t){var n=e.alternate;return null===n?((n=Ls(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=14680064&e.flags,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Fs(e,t,n,r,a,o){var u=2;if(r=e,\"function\"==typeof e)Os(e)&&(u=1);else if(\"string\"==typeof e)u=5;else e:switch(e){case k:return Ds(n.children,a,o,t);case S:u=8,a|=8;break;case E:return(e=Ls(12,n,t,2|a)).elementType=E,e.lanes=o,e;case N:return(e=Ls(13,n,t,a)).elementType=N,e.lanes=o,e;case P:return(e=Ls(19,n,t,a)).elementType=P,e.lanes=o,e;case O:return Rs(n,a,o,t);default:if(\"object\"==typeof e&&null!==e)switch(e.$$typeof){case C:u=10;break e;case T:u=9;break e;case M:u=11;break e;case z:u=14;break e;case L:u=16,r=null;break e}throw Error(i(130,null==e?e:typeof e,\"\"))}return(t=Ls(u,n,t,a)).elementType=e,t.type=r,t.lanes=o,t}function Ds(e,t,n,r){return(e=Ls(7,e,r,t)).lanes=n,e}function Rs(e,t,n,r){return(e=Ls(22,e,r,t)).elementType=O,e.lanes=n,e.stateNode={isHidden:!1},e}function js(e,t,n){return(e=Ls(6,e,null,t)).lanes=n,e}function Us(e,t,n){return(t=Ls(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Is(e,t,n,r,a){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=gt(0),this.expirationTimes=gt(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=gt(0),this.identifierPrefix=r,this.onRecoverableError=a,this.mutableSourceEagerHydrationData=null}function $s(e,t,n,r,a,i,o,u,l){return e=new Is(e,t,n,u,l),1===t?(t=1,!0===i&&(t|=8)):t=0,i=Ls(3,null,null,t),e.current=i,i.stateNode=e,i.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},zi(i),e}function Bs(e){if(!e)return Ta;e:{if(Be(e=e._reactInternals)!==e||1!==e.tag)throw Error(i(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break e;case 1:if(La(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break e}}t=t.return}while(null!==t);throw Error(i(171))}if(1===e.tag){var n=e.type;if(La(n))return Fa(e,n,t)}return t}function Ws(e,t,n,r,a,i,o,u,l){return(e=$s(n,r,!0,e,0,i,0,u,l)).context=Bs(null),n=e.current,(i=Oi(r=ts(),a=ns(n))).callback=null!=t?t:null,Ai(n,i,a),e.current.lanes=a,yt(e,a,r),as(e,r),e}function Vs(e,t,n,r){var a=t.current,i=ts(),o=ns(a);return n=Bs(n),null===t.context?t.context=n:t.pendingContext=n,(t=Oi(i,o)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),null!==(e=Ai(a,t,o))&&(rs(e,a,o,i),Fi(e,a,o)),o}function Hs(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function qs(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function Qs(e,t){qs(e,t),(e=e.alternate)&&qs(e,t)}Sl=function(e,t,n){if(null!==e)if(e.memoizedProps!==t.pendingProps||Na.current)_u=!0;else{if(0==(e.lanes&n)&&0==(128&t.flags))return _u=!1,function(e,t,n){switch(t.tag){case 3:Pu(t),di();break;case 5:io(t);break;case 1:La(t.type)&&Da(t);break;case 4:ro(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,a=t.memoizedProps.value;Ca(yi,r._currentValue),r._currentValue=a;break;case 13:if(null!==(r=t.memoizedState))return null!==r.dehydrated?(Ca(uo,1&uo.current),t.flags|=128,null):0!=(n&t.child.childLanes)?ju(e,t,n):(Ca(uo,1&uo.current),null!==(e=Hu(e,t,n))?e.sibling:null);Ca(uo,1&uo.current);break;case 19:if(r=0!=(n&t.childLanes),0!=(128&e.flags)){if(r)return Wu(e,t,n);t.flags|=128}if(null!==(a=t.memoizedState)&&(a.rendering=null,a.tail=null,a.lastEffect=null),Ca(uo,uo.current),r)break;return null;case 22:case 23:return t.lanes=0,Eu(e,t,n)}return Hu(e,t,n)}(e,t,n);_u=0!=(131072&e.flags)}else _u=!1,ai&&0!=(1048576&t.flags)&&Ja(t,qa,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Vu(e,t),e=t.pendingProps;var a=za(t,Ma.current);Si(t,n),a=So(null,t,r,e,a,n);var o=Eo();return t.flags|=1,\"object\"==typeof a&&null!==a&&\"function\"==typeof a.render&&void 0===a.$$typeof?(t.tag=1,t.memoizedState=null,t.updateQueue=null,La(r)?(o=!0,Da(t)):o=!1,t.memoizedState=null!==a.state&&void 0!==a.state?a.state:null,zi(t),a.updater=$i,t.stateNode=a,a._reactInternals=t,Hi(t,r,e,n),t=Nu(null,t,r,!0,o,n)):(t.tag=0,ai&&o&&ei(t),wu(null,t,a,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Vu(e,t),e=t.pendingProps,r=(a=r._init)(r._payload),t.type=r,a=t.tag=function(e){if(\"function\"==typeof e)return Os(e)?1:0;if(null!=e){if((e=e.$$typeof)===M)return 11;if(e===z)return 14}return 2}(r),e=gi(r,e),a){case 0:t=Tu(null,t,r,e,n);break e;case 1:t=Mu(null,t,r,e,n);break e;case 11:t=xu(null,t,r,e,n);break e;case 14:t=ku(null,t,r,gi(r.type,e),n);break e}throw Error(i(306,r,\"\"))}return t;case 0:return r=t.type,a=t.pendingProps,Tu(e,t,r,a=t.elementType===r?a:gi(r,a),n);case 1:return r=t.type,a=t.pendingProps,Mu(e,t,r,a=t.elementType===r?a:gi(r,a),n);case 3:e:{if(Pu(t),null===e)throw Error(i(387));r=t.pendingProps,a=(o=t.memoizedState).element,Li(e,t),Ri(t,r,null,n);var u=t.memoizedState;if(r=u.element,o.isDehydrated){if(o={element:r,isDehydrated:!1,cache:u.cache,pendingSuspenseBoundaries:u.pendingSuspenseBoundaries,transitions:u.transitions},t.updateQueue.baseState=o,t.memoizedState=o,256&t.flags){t=zu(e,t,r,n,a=cu(Error(i(423)),t));break e}if(r!==a){t=zu(e,t,r,n,a=cu(Error(i(424)),t));break e}for(ri=sa(t.stateNode.containerInfo.firstChild),ni=t,ai=!0,ii=null,n=Zi(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|4096,n=n.sibling}else{if(di(),r===a){t=Hu(e,t,n);break e}wu(e,t,r,n)}t=t.child}return t;case 5:return io(t),null===e&&si(t),r=t.type,a=t.pendingProps,o=null!==e?e.memoizedProps:null,u=a.children,na(r,a)?u=null:null!==o&&na(r,o)&&(t.flags|=32),Cu(e,t),wu(e,t,u,n),t.child;case 6:return null===e&&si(t),null;case 13:return ju(e,t,n);case 4:return ro(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=Ki(t,null,r,n):wu(e,t,r,n),t.child;case 11:return r=t.type,a=t.pendingProps,xu(e,t,r,a=t.elementType===r?a:gi(r,a),n);case 7:return wu(e,t,t.pendingProps,n),t.child;case 8:case 12:return wu(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,a=t.pendingProps,o=t.memoizedProps,u=a.value,Ca(yi,r._currentValue),r._currentValue=u,null!==o)if(ur(o.value,u)){if(o.children===a.children&&!Na.current){t=Hu(e,t,n);break e}}else for(null!==(o=t.child)&&(o.return=t);null!==o;){var l=o.dependencies;if(null!==l){u=o.child;for(var s=l.firstContext;null!==s;){if(s.context===r){if(1===o.tag){(s=Oi(-1,n&-n)).tag=2;var c=o.updateQueue;if(null!==c){var f=(c=c.shared).pending;null===f?s.next=s:(s.next=f.next,f.next=s),c.pending=s}}o.lanes|=n,null!==(s=o.alternate)&&(s.lanes|=n),ki(o.return,n,t),l.lanes|=n;break}s=s.next}}else if(10===o.tag)u=o.type===t.type?null:o.child;else if(18===o.tag){if(null===(u=o.return))throw Error(i(341));u.lanes|=n,null!==(l=u.alternate)&&(l.lanes|=n),ki(u,n,t),u=o.sibling}else u=o.child;if(null!==u)u.return=o;else for(u=o;null!==u;){if(u===t){u=null;break}if(null!==(o=u.sibling)){o.return=u.return,u=o;break}u=u.return}o=u}wu(e,t,a.children,n),t=t.child}return t;case 9:return a=t.type,r=t.pendingProps.children,Si(t,n),r=r(a=Ei(a)),t.flags|=1,wu(e,t,r,n),t.child;case 14:return a=gi(r=t.type,t.pendingProps),ku(e,t,r,a=gi(r.type,a),n);case 15:return Su(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:gi(r,a),Vu(e,t),t.tag=1,La(r)?(e=!0,Da(t)):e=!1,Si(t,n),Wi(t,r,a),Hi(t,r,a,n),Nu(null,t,r,!0,e,n);case 19:return Wu(e,t,n);case 22:return Eu(e,t,n)}throw Error(i(156,t.tag))};var Ys=\"function\"==typeof reportError?reportError:function(e){console.error(e)};function Gs(e){this._internalRoot=e}function Ks(e){this._internalRoot=e}function Zs(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType)}function Xs(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||\" react-mount-point-unstable \"!==e.nodeValue))}function Js(){}function ec(e,t,n,r,a){var i=n._reactRootContainer;if(i){var o=i;if(\"function\"==typeof a){var u=a;a=function(){var e=Hs(o);u.call(e)}}Vs(t,o,e,a)}else o=function(e,t,n,r,a){if(a){if(\"function\"==typeof r){var i=r;r=function(){var e=Hs(o);i.call(e)}}var o=Ws(t,r,e,0,null,!1,0,\"\",Js);return e._reactRootContainer=o,e[ha]=o.current,Br(8===e.nodeType?e.parentNode:e),fs(),o}for(;a=e.lastChild;)e.removeChild(a);if(\"function\"==typeof r){var u=r;r=function(){var e=Hs(l);u.call(e)}}var l=$s(e,0,!1,null,0,!1,0,\"\",Js);return e._reactRootContainer=l,e[ha]=l.current,Br(8===e.nodeType?e.parentNode:e),fs((function(){Vs(t,l,n,r)})),l}(n,t,e,a,r);return Hs(o)}Ks.prototype.render=Gs.prototype.render=function(e){var t=this._internalRoot;if(null===t)throw Error(i(409));Vs(e,t,null,null)},Ks.prototype.unmount=Gs.prototype.unmount=function(){var e=this._internalRoot;if(null!==e){this._internalRoot=null;var t=e.containerInfo;fs((function(){Vs(null,e,null,null)})),t[ha]=null}},Ks.prototype.unstable_scheduleHydration=function(e){if(e){var t=St();e={blockedOn:null,target:e,priority:t};for(var n=0;n<Ot.length&&0!==t&&t<Ot[n].priority;n++);Ot.splice(n,0,e),0===n&&Rt(e)}},wt=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var n=ft(t.pendingLanes);0!==n&&(mt(t,1|n),as(t,Ze()),0==(6&Nl)&&(Wl=Ze()+500,Ba()))}break;case 13:fs((function(){var t=Ni(e,1);if(null!==t){var n=ts();rs(t,e,1,n)}})),Qs(e,1)}},xt=function(e){if(13===e.tag){var t=Ni(e,134217728);null!==t&&rs(t,e,134217728,ts()),Qs(e,134217728)}},kt=function(e){if(13===e.tag){var t=ns(e),n=Ni(e,t);null!==n&&rs(n,e,t,ts()),Qs(e,t)}},St=function(){return bt},Et=function(e,t){var n=bt;try{return bt=e,t()}finally{bt=n}},xe=function(e,t,n){switch(t){case\"input\":if(X(e,n),t=n.name,\"radio\"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll(\"input[name=\"+JSON.stringify(\"\"+t)+'][type=\"radio\"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var a=wa(r);if(!a)throw Error(i(90));Q(r),X(r,a)}}}break;case\"textarea\":ie(e,n);break;case\"select\":null!=(t=n.value)&&ne(e,!!n.multiple,t,!1)}},Me=cs,Ne=fs;var tc={usingClientEntryPoint:!1,Events:[ba,_a,wa,Ce,Te,cs]},nc={findFiberByHostInstance:ma,bundleType:0,version:\"18.2.0\",rendererPackageName:\"react-dom\"},rc={bundleType:nc.bundleType,version:nc.version,rendererPackageName:nc.rendererPackageName,rendererConfig:nc.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:_.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=He(e))?null:e.stateNode},findFiberByHostInstance:nc.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:\"18.2.0-next-9e3b772b8-20220608\"};if(\"undefined\"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var ac=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!ac.isDisabled&&ac.supportsFiber)try{at=ac.inject(rc),it=ac}catch(ce){}}t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=tc,t.createPortal=function(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!Zs(t))throw Error(i(200));return function(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:x,key:null==r?null:\"\"+r,children:e,containerInfo:t,implementation:n}}(e,t,null,n)},t.createRoot=function(e,t){if(!Zs(e))throw Error(i(299));var n=!1,r=\"\",a=Ys;return null!=t&&(!0===t.unstable_strictMode&&(n=!0),void 0!==t.identifierPrefix&&(r=t.identifierPrefix),void 0!==t.onRecoverableError&&(a=t.onRecoverableError)),t=$s(e,1,!1,null,0,n,0,r,a),e[ha]=t.current,Br(8===e.nodeType?e.parentNode:e),new Gs(t)},t.findDOMNode=function(e){if(null==e)return null;if(1===e.nodeType)return e;var t=e._reactInternals;if(void 0===t){if(\"function\"==typeof e.render)throw Error(i(188));throw e=Object.keys(e).join(\",\"),Error(i(268,e))}return null===(e=He(t))?null:e.stateNode},t.flushSync=function(e){return fs(e)},t.hydrate=function(e,t,n){if(!Xs(t))throw Error(i(200));return ec(null,e,t,!0,n)},t.hydrateRoot=function(e,t,n){if(!Zs(e))throw Error(i(405));var r=null!=n&&n.hydratedSources||null,a=!1,o=\"\",u=Ys;if(null!=n&&(!0===n.unstable_strictMode&&(a=!0),void 0!==n.identifierPrefix&&(o=n.identifierPrefix),void 0!==n.onRecoverableError&&(u=n.onRecoverableError)),t=Ws(t,null,e,1,null!=n?n:null,a,0,o,u),e[ha]=t.current,Br(e),r)for(e=0;e<r.length;e++)a=(a=(n=r[e])._getVersion)(n._source),null==t.mutableSourceEagerHydrationData?t.mutableSourceEagerHydrationData=[n,a]:t.mutableSourceEagerHydrationData.push(n,a);return new Ks(t)},t.render=function(e,t,n){if(!Xs(t))throw Error(i(200));return ec(null,e,t,!1,n)},t.unmountComponentAtNode=function(e){if(!Xs(e))throw Error(i(40));return!!e._reactRootContainer&&(fs((function(){ec(null,null,e,!1,(function(){e._reactRootContainer=null,e[ha]=null}))})),!0)},t.unstable_batchedUpdates=cs,t.unstable_renderSubtreeIntoContainer=function(e,t,n,r){if(!Xs(n))throw Error(i(200));if(null==e||void 0===e._reactInternals)throw Error(i(38));return ec(e,t,n,!1,r)},t.version=\"18.2.0-next-9e3b772b8-20220608\"},935:(e,t,n)=>{\"use strict\";!function e(){if(\"undefined\"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&\"function\"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),e.exports=n(448)},408:(e,t)=>{\"use strict\";var n=Symbol.for(\"react.element\"),r=Symbol.for(\"react.portal\"),a=Symbol.for(\"react.fragment\"),i=Symbol.for(\"react.strict_mode\"),o=Symbol.for(\"react.profiler\"),u=Symbol.for(\"react.provider\"),l=Symbol.for(\"react.context\"),s=Symbol.for(\"react.forward_ref\"),c=Symbol.for(\"react.suspense\"),f=Symbol.for(\"react.memo\"),p=Symbol.for(\"react.lazy\"),d=Symbol.iterator,h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},v=Object.assign,g={};function y(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||h}function m(){}function b(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||h}y.prototype.isReactComponent={},y.prototype.setState=function(e,t){if(\"object\"!=typeof e&&\"function\"!=typeof e&&null!=e)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,e,t,\"setState\")},y.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,\"forceUpdate\")},m.prototype=y.prototype;var _=b.prototype=new m;_.constructor=b,v(_,y.prototype),_.isPureReactComponent=!0;var w=Array.isArray,x=Object.prototype.hasOwnProperty,k={current:null},S={key:!0,ref:!0,__self:!0,__source:!0};function E(e,t,r){var a,i={},o=null,u=null;if(null!=t)for(a in void 0!==t.ref&&(u=t.ref),void 0!==t.key&&(o=\"\"+t.key),t)x.call(t,a)&&!S.hasOwnProperty(a)&&(i[a]=t[a]);var l=arguments.length-2;if(1===l)i.children=r;else if(1<l){for(var s=Array(l),c=0;c<l;c++)s[c]=arguments[c+2];i.children=s}if(e&&e.defaultProps)for(a in l=e.defaultProps)void 0===i[a]&&(i[a]=l[a]);return{$$typeof:n,type:e,key:o,ref:u,props:i,_owner:k.current}}function C(e){return\"object\"==typeof e&&null!==e&&e.$$typeof===n}var T=/\\/+/g;function M(e,t){return\"object\"==typeof e&&null!==e&&null!=e.key?function(e){var t={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+e.replace(/[=:]/g,(function(e){return t[e]}))}(\"\"+e.key):t.toString(36)}function N(e,t,a,i,o){var u=typeof e;\"undefined\"!==u&&\"boolean\"!==u||(e=null);var l=!1;if(null===e)l=!0;else switch(u){case\"string\":case\"number\":l=!0;break;case\"object\":switch(e.$$typeof){case n:case r:l=!0}}if(l)return o=o(l=e),e=\"\"===i?\".\"+M(l,0):i,w(o)?(a=\"\",null!=e&&(a=e.replace(T,\"$&/\")+\"/\"),N(o,t,a,\"\",(function(e){return e}))):null!=o&&(C(o)&&(o=function(e,t){return{$$typeof:n,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(o,a+(!o.key||l&&l.key===o.key?\"\":(\"\"+o.key).replace(T,\"$&/\")+\"/\")+e)),t.push(o)),1;if(l=0,i=\"\"===i?\".\":i+\":\",w(e))for(var s=0;s<e.length;s++){var c=i+M(u=e[s],s);l+=N(u,t,a,c,o)}else if(c=function(e){return null===e||\"object\"!=typeof e?null:\"function\"==typeof(e=d&&e[d]||e[\"@@iterator\"])?e:null}(e),\"function\"==typeof c)for(e=c.call(e),s=0;!(u=e.next()).done;)l+=N(u=u.value,t,a,c=i+M(u,s++),o);else if(\"object\"===u)throw t=String(e),Error(\"Objects are not valid as a React child (found: \"+(\"[object Object]\"===t?\"object with keys {\"+Object.keys(e).join(\", \")+\"}\":t)+\"). If you meant to render a collection of children, use an array instead.\");return l}function P(e,t,n){if(null==e)return e;var r=[],a=0;return N(e,r,\"\",\"\",(function(e){return t.call(n,e,a++)})),r}function z(e){if(-1===e._status){var t=e._result;(t=t()).then((function(t){0!==e._status&&-1!==e._status||(e._status=1,e._result=t)}),(function(t){0!==e._status&&-1!==e._status||(e._status=2,e._result=t)})),-1===e._status&&(e._status=0,e._result=t)}if(1===e._status)return e._result.default;throw e._result}var L={current:null},O={transition:null},A={ReactCurrentDispatcher:L,ReactCurrentBatchConfig:O,ReactCurrentOwner:k};t.Children={map:P,forEach:function(e,t,n){P(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return P(e,(function(){t++})),t},toArray:function(e){return P(e,(function(e){return e}))||[]},only:function(e){if(!C(e))throw Error(\"React.Children.only expected to receive a single React element child.\");return e}},t.Component=y,t.Fragment=a,t.Profiler=o,t.PureComponent=b,t.StrictMode=i,t.Suspense=c,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=A,t.cloneElement=function(e,t,r){if(null==e)throw Error(\"React.cloneElement(...): The argument must be a React element, but you passed \"+e+\".\");var a=v({},e.props),i=e.key,o=e.ref,u=e._owner;if(null!=t){if(void 0!==t.ref&&(o=t.ref,u=k.current),void 0!==t.key&&(i=\"\"+t.key),e.type&&e.type.defaultProps)var l=e.type.defaultProps;for(s in t)x.call(t,s)&&!S.hasOwnProperty(s)&&(a[s]=void 0===t[s]&&void 0!==l?l[s]:t[s])}var s=arguments.length-2;if(1===s)a.children=r;else if(1<s){l=Array(s);for(var c=0;c<s;c++)l[c]=arguments[c+2];a.children=l}return{$$typeof:n,type:e.type,key:i,ref:o,props:a,_owner:u}},t.createContext=function(e){return(e={$$typeof:l,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null}).Provider={$$typeof:u,_context:e},e.Consumer=e},t.createElement=E,t.createFactory=function(e){var t=E.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:s,render:e}},t.isValidElement=C,t.lazy=function(e){return{$$typeof:p,_payload:{_status:-1,_result:e},_init:z}},t.memo=function(e,t){return{$$typeof:f,type:e,compare:void 0===t?null:t}},t.startTransition=function(e){var t=O.transition;O.transition={};try{e()}finally{O.transition=t}},t.unstable_act=function(){throw Error(\"act(...) is not supported in production builds of React.\")},t.useCallback=function(e,t){return L.current.useCallback(e,t)},t.useContext=function(e){return L.current.useContext(e)},t.useDebugValue=function(){},t.useDeferredValue=function(e){return L.current.useDeferredValue(e)},t.useEffect=function(e,t){return L.current.useEffect(e,t)},t.useId=function(){return L.current.useId()},t.useImperativeHandle=function(e,t,n){return L.current.useImperativeHandle(e,t,n)},t.useInsertionEffect=function(e,t){return L.current.useInsertionEffect(e,t)},t.useLayoutEffect=function(e,t){return L.current.useLayoutEffect(e,t)},t.useMemo=function(e,t){return L.current.useMemo(e,t)},t.useReducer=function(e,t,n){return L.current.useReducer(e,t,n)},t.useRef=function(e){return L.current.useRef(e)},t.useState=function(e){return L.current.useState(e)},t.useSyncExternalStore=function(e,t,n){return L.current.useSyncExternalStore(e,t,n)},t.useTransition=function(){return L.current.useTransition()},t.version=\"18.2.0\"},294:(e,t,n)=>{\"use strict\";e.exports=n(408)},53:(e,t)=>{\"use strict\";function n(e,t){var n=e.length;e.push(t);e:for(;0<n;){var r=n-1>>>1,a=e[r];if(!(0<i(a,t)))break e;e[r]=t,e[n]=a,n=r}}function r(e){return 0===e.length?null:e[0]}function a(e){if(0===e.length)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,a=e.length,o=a>>>1;r<o;){var u=2*(r+1)-1,l=e[u],s=u+1,c=e[s];if(0>i(l,n))s<a&&0>i(c,l)?(e[r]=c,e[s]=n,r=s):(e[r]=l,e[u]=n,r=u);else{if(!(s<a&&0>i(c,n)))break e;e[r]=c,e[s]=n,r=s}}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if(\"object\"==typeof performance&&\"function\"==typeof performance.now){var o=performance;t.unstable_now=function(){return o.now()}}else{var u=Date,l=u.now();t.unstable_now=function(){return u.now()-l}}var s=[],c=[],f=1,p=null,d=3,h=!1,v=!1,g=!1,y=\"function\"==typeof setTimeout?setTimeout:null,m=\"function\"==typeof clearTimeout?clearTimeout:null,b=\"undefined\"!=typeof setImmediate?setImmediate:null;function _(e){for(var t=r(c);null!==t;){if(null===t.callback)a(c);else{if(!(t.startTime<=e))break;a(c),t.sortIndex=t.expirationTime,n(s,t)}t=r(c)}}function w(e){if(g=!1,_(e),!v)if(null!==r(s))v=!0,O(x);else{var t=r(c);null!==t&&A(w,t.startTime-e)}}function x(e,n){v=!1,g&&(g=!1,m(C),C=-1),h=!0;var i=d;try{for(_(n),p=r(s);null!==p&&(!(p.expirationTime>n)||e&&!N());){var o=p.callback;if(\"function\"==typeof o){p.callback=null,d=p.priorityLevel;var u=o(p.expirationTime<=n);n=t.unstable_now(),\"function\"==typeof u?p.callback=u:p===r(s)&&a(s),_(n)}else a(s);p=r(s)}if(null!==p)var l=!0;else{var f=r(c);null!==f&&A(w,f.startTime-n),l=!1}return l}finally{p=null,d=i,h=!1}}\"undefined\"!=typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);var k,S=!1,E=null,C=-1,T=5,M=-1;function N(){return!(t.unstable_now()-M<T)}function P(){if(null!==E){var e=t.unstable_now();M=e;var n=!0;try{n=E(!0,e)}finally{n?k():(S=!1,E=null)}}else S=!1}if(\"function\"==typeof b)k=function(){b(P)};else if(\"undefined\"!=typeof MessageChannel){var z=new MessageChannel,L=z.port2;z.port1.onmessage=P,k=function(){L.postMessage(null)}}else k=function(){y(P,0)};function O(e){E=e,S||(S=!0,k())}function A(e,n){C=y((function(){e(t.unstable_now())}),n)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){v||h||(v=!0,O(x))},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"):T=0<e?Math.floor(1e3/e):5},t.unstable_getCurrentPriorityLevel=function(){return d},t.unstable_getFirstCallbackNode=function(){return r(s)},t.unstable_next=function(e){switch(d){case 1:case 2:case 3:var t=3;break;default:t=d}var n=d;d=t;try{return e()}finally{d=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=function(){},t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=d;d=e;try{return t()}finally{d=n}},t.unstable_scheduleCallback=function(e,a,i){var o=t.unstable_now();switch(i=\"object\"==typeof i&&null!==i&&\"number\"==typeof(i=i.delay)&&0<i?o+i:o,e){case 1:var u=-1;break;case 2:u=250;break;case 5:u=1073741823;break;case 4:u=1e4;break;default:u=5e3}return e={id:f++,callback:a,priorityLevel:e,startTime:i,expirationTime:u=i+u,sortIndex:-1},i>o?(e.sortIndex=i,n(c,e),null===r(s)&&e===r(c)&&(g?(m(C),C=-1):g=!0,A(w,i-o))):(e.sortIndex=u,n(s,e),v||h||(v=!0,O(x))),e},t.unstable_shouldYield=N,t.unstable_wrapCallback=function(e){var t=d;return function(){var n=d;d=t;try{return e.apply(this,arguments)}finally{d=n}}}},840:(e,t,n)=>{\"use strict\";e.exports=n(53)}},t={};function n(r){var a=t[r];if(void 0!==a)return a.exports;var i=t[r]={id:r,loaded:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.loaded=!0,i.exports}n.g=function(){if(\"object\"==typeof globalThis)return globalThis;try{return this||new Function(\"return this\")()}catch(e){if(\"object\"==typeof window)return window}}(),n.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{\"use strict\";var e=n(294),t=n(935);const r=Math.sqrt(50),a=Math.sqrt(10),i=Math.sqrt(2);function o(e,t,n){const u=(t-e)/Math.max(0,n),l=Math.floor(Math.log10(u)),s=u/Math.pow(10,l),c=s>=r?10:s>=a?5:s>=i?2:1;let f,p,d;return l<0?(d=Math.pow(10,-l)/c,f=Math.round(e*d),p=Math.round(t*d),f/d<e&&++f,p/d>t&&--p,d=-d):(d=Math.pow(10,l)*c,f=Math.round(e/d),p=Math.round(t/d),f*d<e&&++f,p*d>t&&--p),p<f&&.5<=n&&n<2?o(e,t,2*n):[f,p,d]}function u(e,t,n){return o(e=+e,t=+t,n=+n)[2]}function l(e,t,n){n=+n;const r=(t=+t)<(e=+e),a=r?u(t,e,n):u(e,t,n);return(r?-1:1)*(a<0?1/-a:a)}function s(e,t){return null==e||null==t?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function c(e,t){return null==e||null==t?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function f(e){let t,n,r;function a(e,r,a=0,i=e.length){if(a<i){if(0!==t(r,r))return i;do{const t=a+i>>>1;n(e[t],r)<0?a=t+1:i=t}while(a<i)}return a}return 2!==e.length?(t=s,n=(t,n)=>s(e(t),n),r=(t,n)=>e(t)-n):(t=e===s||e===c?e:p,n=e,r=e),{left:a,center:function(e,t,n=0,i=e.length){const o=a(e,t,n,i-1);return o>n&&r(e[o-1],t)>-r(e[o],t)?o-1:o},right:function(e,r,a=0,i=e.length){if(a<i){if(0!==t(r,r))return i;do{const t=a+i>>>1;n(e[t],r)<=0?a=t+1:i=t}while(a<i)}return a}}}function p(){return 0}const d=f(s),h=d.right,v=(d.left,f((function(e){return null===e?NaN:+e})).center,h);function g(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function y(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function m(){}var b=.7,_=1/b,w=\"\\\\s*([+-]?\\\\d+)\\\\s*\",x=\"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",k=\"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",S=/^#([0-9a-f]{3,8})$/,E=new RegExp(`^rgb\\\\(${w},${w},${w}\\\\)$`),C=new RegExp(`^rgb\\\\(${k},${k},${k}\\\\)$`),T=new RegExp(`^rgba\\\\(${w},${w},${w},${x}\\\\)$`),M=new RegExp(`^rgba\\\\(${k},${k},${k},${x}\\\\)$`),N=new RegExp(`^hsl\\\\(${x},${k},${k}\\\\)$`),P=new RegExp(`^hsla\\\\(${x},${k},${k},${x}\\\\)$`),z={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function L(){return this.rgb().formatHex()}function O(){return this.rgb().formatRgb()}function A(e){var t,n;return e=(e+\"\").trim().toLowerCase(),(t=S.exec(e))?(n=t[1].length,t=parseInt(t[1],16),6===n?F(t):3===n?new j(t>>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===n?D(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===n?D(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|240&t,((15&t)<<4|15&t)/255):null):(t=E.exec(e))?new j(t[1],t[2],t[3],1):(t=C.exec(e))?new j(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=T.exec(e))?D(t[1],t[2],t[3],t[4]):(t=M.exec(e))?D(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=N.exec(e))?V(t[1],t[2]/100,t[3]/100,1):(t=P.exec(e))?V(t[1],t[2]/100,t[3]/100,t[4]):z.hasOwnProperty(e)?F(z[e]):\"transparent\"===e?new j(NaN,NaN,NaN,0):null}function F(e){return new j(e>>16&255,e>>8&255,255&e,1)}function D(e,t,n,r){return r<=0&&(e=t=n=NaN),new j(e,t,n,r)}function R(e,t,n,r){return 1===arguments.length?((a=e)instanceof m||(a=A(a)),a?new j((a=a.rgb()).r,a.g,a.b,a.opacity):new j):new j(e,t,n,null==r?1:r);var a}function j(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}function U(){return`#${W(this.r)}${W(this.g)}${W(this.b)}`}function I(){const e=$(this.opacity);return`${1===e?\"rgb(\":\"rgba(\"}${B(this.r)}, ${B(this.g)}, ${B(this.b)}${1===e?\")\":`, ${e})`}`}function $(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function B(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function W(e){return((e=B(e))<16?\"0\":\"\")+e.toString(16)}function V(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new Q(e,t,n,r)}function H(e){if(e instanceof Q)return new Q(e.h,e.s,e.l,e.opacity);if(e instanceof m||(e=A(e)),!e)return new Q;if(e instanceof Q)return e;var t=(e=e.rgb()).r/255,n=e.g/255,r=e.b/255,a=Math.min(t,n,r),i=Math.max(t,n,r),o=NaN,u=i-a,l=(i+a)/2;return u?(o=t===i?(n-r)/u+6*(n<r):n===i?(r-t)/u+2:(t-n)/u+4,u/=l<.5?i+a:2-i-a,o*=60):u=l>0&&l<1?0:o,new Q(o,u,l,e.opacity)}function q(e,t,n,r){return 1===arguments.length?H(e):new Q(e,t,n,null==r?1:r)}function Q(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}function Y(e){return(e=(e||0)%360)<0?e+360:e}function G(e){return Math.max(0,Math.min(1,e||0))}function K(e,t,n){return 255*(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)}function Z(e,t,n,r,a){var i=e*e,o=i*e;return((1-3*e+3*i-o)*t+(4-6*i+3*o)*n+(1+3*e+3*i-3*o)*r+o*a)/6}g(m,A,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:L,formatHex:L,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return H(this).formatHsl()},formatRgb:O,toString:O}),g(j,R,y(m,{brighter(e){return e=null==e?_:Math.pow(_,e),new j(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=null==e?b:Math.pow(b,e),new j(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new j(B(this.r),B(this.g),B(this.b),$(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:U,formatHex:U,formatHex8:function(){return`#${W(this.r)}${W(this.g)}${W(this.b)}${W(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:I,toString:I})),g(Q,q,y(m,{brighter(e){return e=null==e?_:Math.pow(_,e),new Q(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=null==e?b:Math.pow(b,e),new Q(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+360*(this.h<0),t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,a=2*n-r;return new j(K(e>=240?e-240:e+120,a,r),K(e,a,r),K(e<120?e+240:e-120,a,r),this.opacity)},clamp(){return new Q(Y(this.h),G(this.s),G(this.l),$(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=$(this.opacity);return`${1===e?\"hsl(\":\"hsla(\"}${Y(this.h)}, ${100*G(this.s)}%, ${100*G(this.l)}%${1===e?\")\":`, ${e})`}`}}));const X=e=>()=>e;function J(e,t){var n=t-e;return n?function(e,t){return function(n){return e+n*t}}(e,n):X(isNaN(e)?t:e)}const ee=function e(t){var n=function(e){return 1==(e=+e)?J:function(t,n){return n-t?function(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}(t,n,e):X(isNaN(t)?n:t)}}(t);function r(e,t){var r=n((e=R(e)).r,(t=R(t)).r),a=n(e.g,t.g),i=n(e.b,t.b),o=J(e.opacity,t.opacity);return function(t){return e.r=r(t),e.g=a(t),e.b=i(t),e.opacity=o(t),e+\"\"}}return r.gamma=e,r}(1);function te(e){return function(t){var n,r,a=t.length,i=new Array(a),o=new Array(a),u=new Array(a);for(n=0;n<a;++n)r=R(t[n]),i[n]=r.r||0,o[n]=r.g||0,u[n]=r.b||0;return i=e(i),o=e(o),u=e(u),r.opacity=1,function(e){return r.r=i(e),r.g=o(e),r.b=u(e),r+\"\"}}}function ne(e,t){var n,r=t?t.length:0,a=e?Math.min(r,e.length):0,i=new Array(a),o=new Array(r);for(n=0;n<a;++n)i[n]=ce(e[n],t[n]);for(;n<r;++n)o[n]=t[n];return function(e){for(n=0;n<a;++n)o[n]=i[n](e);return o}}function re(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function ae(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function ie(e,t){var n,r={},a={};for(n in null!==e&&\"object\"==typeof e||(e={}),null!==t&&\"object\"==typeof t||(t={}),t)n in e?r[n]=ce(e[n],t[n]):a[n]=t[n];return function(e){for(n in r)a[n]=r[n](e);return a}}te((function(e){var t=e.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,t-1):Math.floor(n*t),a=e[r],i=e[r+1],o=r>0?e[r-1]:2*a-i,u=r<t-1?e[r+2]:2*i-a;return Z((n-r/t)*t,o,a,i,u)}})),te((function(e){var t=e.length;return function(n){var r=Math.floor(((n%=1)<0?++n:n)*t),a=e[(r+t-1)%t],i=e[r%t],o=e[(r+1)%t],u=e[(r+2)%t];return Z((n-r/t)*t,a,i,o,u)}}));var oe=/[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,ue=new RegExp(oe.source,\"g\");function le(e,t){var n,r,a,i=oe.lastIndex=ue.lastIndex=0,o=-1,u=[],l=[];for(e+=\"\",t+=\"\";(n=oe.exec(e))&&(r=ue.exec(t));)(a=r.index)>i&&(a=t.slice(i,a),u[o]?u[o]+=a:u[++o]=a),(n=n[0])===(r=r[0])?u[o]?u[o]+=r:u[++o]=r:(u[++o]=null,l.push({i:o,x:ae(n,r)})),i=ue.lastIndex;return i<t.length&&(a=t.slice(i),u[o]?u[o]+=a:u[++o]=a),u.length<2?l[0]?function(e){return function(t){return e(t)+\"\"}}(l[0].x):function(e){return function(){return e}}(t):(t=l.length,function(e){for(var n,r=0;r<t;++r)u[(n=l[r]).i]=n.x(e);return u.join(\"\")})}function se(e,t){t||(t=[]);var n,r=e?Math.min(t.length,e.length):0,a=t.slice();return function(i){for(n=0;n<r;++n)a[n]=e[n]*(1-i)+t[n]*i;return a}}function ce(e,t){var n,r,a=typeof t;return null==t||\"boolean\"===a?X(t):(\"number\"===a?ae:\"string\"===a?(n=A(t))?(t=n,ee):le:t instanceof A?ee:t instanceof Date?re:(r=t,!ArrayBuffer.isView(r)||r instanceof DataView?Array.isArray(t)?ne:\"function\"!=typeof t.valueOf&&\"function\"!=typeof t.toString||isNaN(t)?ie:ae:se))(e,t)}function fe(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}function pe(e){return+e}var de=[0,1];function he(e){return e}function ve(e,t){return(t-=e=+e)?function(n){return(n-e)/t}:(n=isNaN(t)?NaN:.5,function(){return n});var n}function ge(e,t,n){var r=e[0],a=e[1],i=t[0],o=t[1];return a<r?(r=ve(a,r),i=n(o,i)):(r=ve(r,a),i=n(i,o)),function(e){return i(r(e))}}function ye(e,t,n){var r=Math.min(e.length,t.length)-1,a=new Array(r),i=new Array(r),o=-1;for(e[r]<e[0]&&(e=e.slice().reverse(),t=t.slice().reverse());++o<r;)a[o]=ve(e[o],e[o+1]),i[o]=n(t[o],t[o+1]);return function(t){var n=v(e,t,1,r)-1;return i[n](a[n](t))}}function me(e,t){return t.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function be(){return function(){var e,t,n,r,a,i,o=de,u=de,l=ce,s=he;function c(){var e,t,n,l=Math.min(o.length,u.length);return s!==he&&(e=o[0],t=o[l-1],e>t&&(n=e,e=t,t=n),s=function(n){return Math.max(e,Math.min(t,n))}),r=l>2?ye:ge,a=i=null,f}function f(t){return null==t||isNaN(t=+t)?n:(a||(a=r(o.map(e),u,l)))(e(s(t)))}return f.invert=function(n){return s(t((i||(i=r(u,o.map(e),ae)))(n)))},f.domain=function(e){return arguments.length?(o=Array.from(e,pe),c()):o.slice()},f.range=function(e){return arguments.length?(u=Array.from(e),c()):u.slice()},f.rangeRound=function(e){return u=Array.from(e),l=fe,c()},f.clamp=function(e){return arguments.length?(s=!!e||he,c()):s!==he},f.interpolate=function(e){return arguments.length?(l=e,c()):l},f.unknown=function(e){return arguments.length?(n=e,f):n},function(n,r){return e=n,t=r,c()}}()(he,he)}function _e(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e)}return this}var we,xe=/^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;function ke(e){if(!(t=xe.exec(e)))throw new Error(\"invalid format: \"+e);var t;return new Se({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}function Se(e){this.fill=void 0===e.fill?\" \":e.fill+\"\",this.align=void 0===e.align?\">\":e.align+\"\",this.sign=void 0===e.sign?\"-\":e.sign+\"\",this.symbol=void 0===e.symbol?\"\":e.symbol+\"\",this.zero=!!e.zero,this.width=void 0===e.width?void 0:+e.width,this.comma=!!e.comma,this.precision=void 0===e.precision?void 0:+e.precision,this.trim=!!e.trim,this.type=void 0===e.type?\"\":e.type+\"\"}function Ee(e,t){if((n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf(\"e\"))<0)return null;var n,r=e.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+e.slice(n+1)]}function Ce(e){return(e=Ee(Math.abs(e)))?e[1]:NaN}function Te(e,t){var n=Ee(e,t);if(!n)return e+\"\";var r=n[0],a=n[1];return a<0?\"0.\"+new Array(-a).join(\"0\")+r:r.length>a+1?r.slice(0,a+1)+\".\"+r.slice(a+1):r+new Array(a-r.length+2).join(\"0\")}ke.prototype=Se.prototype,Se.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?\"0\":\"\")+(void 0===this.width?\"\":Math.max(1,0|this.width))+(this.comma?\",\":\"\")+(void 0===this.precision?\"\":\".\"+Math.max(0,0|this.precision))+(this.trim?\"~\":\"\")+this.type};const Me={\"%\":(e,t)=>(100*e).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+\"\",d:function(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString(\"en\").replace(/,/g,\"\"):e.toString(10)},e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>Te(100*e,t),r:Te,s:function(e,t){var n=Ee(e,t);if(!n)return e+\"\";var r=n[0],a=n[1],i=a-(we=3*Math.max(-8,Math.min(8,Math.floor(a/3))))+1,o=r.length;return i===o?r:i>o?r+new Array(i-o+1).join(\"0\"):i>0?r.slice(0,i)+\".\"+r.slice(i):\"0.\"+new Array(1-i).join(\"0\")+Ee(e,Math.max(0,t+i-1))[0]},X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function Ne(e){return e}var Pe,ze,Le,Oe=Array.prototype.map,Ae=[\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];function Fe(e){var t=e.domain;return e.ticks=function(e){var n=t();return function(e,t,n){if(!((n=+n)>0))return[];if((e=+e)==(t=+t))return[e];const r=t<e,[a,i,u]=r?o(t,e,n):o(e,t,n);if(!(i>=a))return[];const l=i-a+1,s=new Array(l);if(r)if(u<0)for(let e=0;e<l;++e)s[e]=(i-e)/-u;else for(let e=0;e<l;++e)s[e]=(i-e)*u;else if(u<0)for(let e=0;e<l;++e)s[e]=(a+e)/-u;else for(let e=0;e<l;++e)s[e]=(a+e)*u;return s}(n[0],n[n.length-1],null==e?10:e)},e.tickFormat=function(e,n){var r=t();return function(e,t,n,r){var a,i=l(e,t,n);switch((r=ke(null==r?\",f\":r)).type){case\"s\":var o=Math.max(Math.abs(e),Math.abs(t));return null!=r.precision||isNaN(a=function(e,t){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(Ce(t)/3)))-Ce(Math.abs(e)))}(i,o))||(r.precision=a),Le(r,o);case\"\":case\"e\":case\"g\":case\"p\":case\"r\":null!=r.precision||isNaN(a=function(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,Ce(t)-Ce(e))+1}(i,Math.max(Math.abs(e),Math.abs(t))))||(r.precision=a-(\"e\"===r.type));break;case\"f\":case\"%\":null!=r.precision||isNaN(a=function(e){return Math.max(0,-Ce(Math.abs(e)))}(i))||(r.precision=a-2*(\"%\"===r.type))}return ze(r)}(r[0],r[r.length-1],null==e?10:e,n)},e.nice=function(n){null==n&&(n=10);var r,a,i=t(),o=0,l=i.length-1,s=i[o],c=i[l],f=10;for(c<s&&(a=s,s=c,c=a,a=o,o=l,l=a);f-- >0;){if((a=u(s,c,n))===r)return i[o]=s,i[l]=c,t(i);if(a>0)s=Math.floor(s/a)*a,c=Math.ceil(c/a)*a;else{if(!(a<0))break;s=Math.ceil(s*a)/a,c=Math.floor(c*a)/a}r=a}return e},e}function De(){var e=be();return e.copy=function(){return me(e,De())},_e.apply(e,arguments),Fe(e)}Pe=function(e){var t,n,r=void 0===e.grouping||void 0===e.thousands?Ne:(t=Oe.call(e.grouping,Number),n=e.thousands+\"\",function(e,r){for(var a=e.length,i=[],o=0,u=t[0],l=0;a>0&&u>0&&(l+u+1>r&&(u=Math.max(1,r-l)),i.push(e.substring(a-=u,a+u)),!((l+=u+1)>r));)u=t[o=(o+1)%t.length];return i.reverse().join(n)}),a=void 0===e.currency?\"\":e.currency[0]+\"\",i=void 0===e.currency?\"\":e.currency[1]+\"\",o=void 0===e.decimal?\".\":e.decimal+\"\",u=void 0===e.numerals?Ne:function(e){return function(t){return t.replace(/[0-9]/g,(function(t){return e[+t]}))}}(Oe.call(e.numerals,String)),l=void 0===e.percent?\"%\":e.percent+\"\",s=void 0===e.minus?\"−\":e.minus+\"\",c=void 0===e.nan?\"NaN\":e.nan+\"\";function f(e){var t=(e=ke(e)).fill,n=e.align,f=e.sign,p=e.symbol,d=e.zero,h=e.width,v=e.comma,g=e.precision,y=e.trim,m=e.type;\"n\"===m?(v=!0,m=\"g\"):Me[m]||(void 0===g&&(g=12),y=!0,m=\"g\"),(d||\"0\"===t&&\"=\"===n)&&(d=!0,t=\"0\",n=\"=\");var b=\"$\"===p?a:\"#\"===p&&/[boxX]/.test(m)?\"0\"+m.toLowerCase():\"\",_=\"$\"===p?i:/[%p]/.test(m)?l:\"\",w=Me[m],x=/[defgprs%]/.test(m);function k(e){var a,i,l,p=b,k=_;if(\"c\"===m)k=w(e)+k,e=\"\";else{var S=(e=+e)<0||1/e<0;if(e=isNaN(e)?c:w(Math.abs(e),g),y&&(e=function(e){e:for(var t,n=e.length,r=1,a=-1;r<n;++r)switch(e[r]){case\".\":a=t=r;break;case\"0\":0===a&&(a=r),t=r;break;default:if(!+e[r])break e;a>0&&(a=0)}return a>0?e.slice(0,a)+e.slice(t+1):e}(e)),S&&0==+e&&\"+\"!==f&&(S=!1),p=(S?\"(\"===f?f:s:\"-\"===f||\"(\"===f?\"\":f)+p,k=(\"s\"===m?Ae[8+we/3]:\"\")+k+(S&&\"(\"===f?\")\":\"\"),x)for(a=-1,i=e.length;++a<i;)if(48>(l=e.charCodeAt(a))||l>57){k=(46===l?o+e.slice(a+1):e.slice(a))+k,e=e.slice(0,a);break}}v&&!d&&(e=r(e,1/0));var E=p.length+e.length+k.length,C=E<h?new Array(h-E+1).join(t):\"\";switch(v&&d&&(e=r(C+e,C.length?h-k.length:1/0),C=\"\"),n){case\"<\":e=p+e+k+C;break;case\"=\":e=p+C+e+k;break;case\"^\":e=C.slice(0,E=C.length>>1)+p+e+k+C.slice(E);break;default:e=C+p+e+k}return u(e)}return g=void 0===g?6:/[gprs]/.test(m)?Math.max(1,Math.min(21,g)):Math.max(0,Math.min(20,g)),k.toString=function(){return e+\"\"},k}return{format:f,formatPrefix:function(e,t){var n=f(((e=ke(e)).type=\"f\",e)),r=3*Math.max(-8,Math.min(8,Math.floor(Ce(t)/3))),a=Math.pow(10,-r),i=Ae[8+r/3];return function(e){return n(a*e)+i}}}}({thousands:\",\",grouping:[3],currency:[\"$\",\"\"]}),ze=Pe.format,Le=Pe.formatPrefix;var Re=n(486);const je={colors:{RdBu:[\"rgb(255, 13, 87)\",\"rgb(30, 136, 229)\"],GnPR:[\"rgb(24, 196, 93)\",\"rgb(124, 82, 255)\"],CyPU:[\"#0099C6\",\"#990099\"],PkYg:[\"#DD4477\",\"#66AA00\"],DrDb:[\"#B82E2E\",\"#316395\"],LpLb:[\"#994499\",\"#22AA99\"],YlDp:[\"#AAAA11\",\"#6633CC\"],OrId:[\"#E67300\",\"#3E0099\"]},gray:\"#777\"};function Ue(e){return Ue=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},Ue(e)}function Ie(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(e,(void 0,a=function(e,t){if(\"object\"!==Ue(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,\"string\");if(\"object\"!==Ue(r))return r;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return String(e)}(r.key),\"symbol\"===Ue(a)?a:String(a)),r)}var a}function $e(e,t){return $e=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},$e(e,t)}function Be(e){if(void 0===e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e}function We(e){return We=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},We(e)}var Ve=function(t){!function(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function\");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,\"prototype\",{writable:!1}),t&&$e(e,t)}(u,t);var n,r,a,i,o=(a=u,i=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,t=We(a);if(i){var n=We(this).constructor;e=Reflect.construct(t,arguments,n)}else e=t.apply(this,arguments);return function(e,t){if(t&&(\"object\"===Ue(t)||\"function\"==typeof t))return t;if(void 0!==t)throw new TypeError(\"Derived constructors may only return object or undefined\");return Be(e)}(this,e)});function u(){var e;return function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,u),(e=o.call(this)).width=100,window.lastSimpleListInstance=Be(e),e.effectFormat=ze(\".2\"),e}return n=u,(r=[{key:\"render\",value:function(){var t=this,n=void 0;\"string\"==typeof this.props.plot_cmap?this.props.plot_cmap in je.colors?n=je.colors[this.props.plot_cmap]:(console.log(\"Invalid color map name, reverting to default.\"),n=je.colors.RdBu):Array.isArray(this.props.plot_cmap)&&(n=this.props.plot_cmap),console.log(this.props.features,this.props.features),this.scale=De().domain([0,(0,Re.max)((0,Re.map)(this.props.features,(function(e){return Math.abs(e.effect)})))]).range([0,this.width]);var r=(0,Re.reverse)((0,Re.sortBy)(Object.keys(this.props.features),(function(e){return Math.abs(t.props.features[e].effect)}))).map((function(r){var a,i,o=t.props.features[r],u=t.props.featureNames[r],l={width:t.scale(Math.abs(o.effect)),height:\"20px\",background:o.effect<0?n[0]:n[1],display:\"inline-block\"},s={lineHeight:\"20px\",display:\"inline-block\",width:t.width+40,verticalAlign:\"top\",marginRight:\"5px\",textAlign:\"right\"},c={lineHeight:\"20px\",display:\"inline-block\",width:t.width+40,verticalAlign:\"top\",marginLeft:\"5px\"};return o.effect<0?(i=e.createElement(\"span\",{style:c},u),s.width=40+t.width-t.scale(Math.abs(o.effect)),s.textAlign=\"right\",s.color=\"#999\",s.fontSize=\"13px\",a=e.createElement(\"span\",{style:s},t.effectFormat(o.effect))):(s.textAlign=\"right\",a=e.createElement(\"span\",{style:s},u),c.width=40,c.textAlign=\"left\",c.color=\"#999\",c.fontSize=\"13px\",i=e.createElement(\"span\",{style:c},t.effectFormat(o.effect))),e.createElement(\"div\",{key:r,style:{marginTop:\"2px\"}},a,e.createElement(\"div\",{style:l}),i)}));return e.createElement(\"span\",null,r)}}])&&Ie(n.prototype,r),Object.defineProperty(n,\"prototype\",{writable:!1}),u}(e.Component);Ve.defaultProps={plot_cmap:\"RdBu\"};const He=Ve;function qe(){}function Qe(e){return null==e?qe:function(){return this.querySelector(e)}}function Ye(){return[]}function Ge(e){return function(t){return t.matches(e)}}var Ke=Array.prototype.find;function Ze(){return this.firstElementChild}var Xe=Array.prototype.filter;function Je(){return Array.from(this.children)}function et(e){return new Array(e.length)}function tt(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}function nt(e,t,n,r,a,i){for(var o,u=0,l=t.length,s=i.length;u<s;++u)(o=t[u])?(o.__data__=i[u],r[u]=o):n[u]=new tt(e,i[u]);for(;u<l;++u)(o=t[u])&&(a[u]=o)}function rt(e,t,n,r,a,i,o){var u,l,s,c=new Map,f=t.length,p=i.length,d=new Array(f);for(u=0;u<f;++u)(l=t[u])&&(d[u]=s=o.call(l,l.__data__,u,t)+\"\",c.has(s)?a[u]=l:c.set(s,l));for(u=0;u<p;++u)s=o.call(e,i[u],u,i)+\"\",(l=c.get(s))?(r[u]=l,l.__data__=i[u],c.delete(s)):n[u]=new tt(e,i[u]);for(u=0;u<f;++u)(l=t[u])&&c.get(d[u])===l&&(a[u]=l)}function at(e){return e.__data__}function it(e){return\"object\"==typeof e&&\"length\"in e?e:Array.from(e)}function ot(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}tt.prototype={constructor:tt,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,t){return this._parent.insertBefore(e,t)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}};var ut=\"http://www.w3.org/1999/xhtml\";const lt={svg:\"http://www.w3.org/2000/svg\",xhtml:ut,xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"};function st(e){var t=e+=\"\",n=t.indexOf(\":\");return n>=0&&\"xmlns\"!==(t=e.slice(0,n))&&(e=e.slice(n+1)),lt.hasOwnProperty(t)?{space:lt[t],local:e}:e}function ct(e){return function(){this.removeAttribute(e)}}function ft(e){return function(){this.removeAttributeNS(e.space,e.local)}}function pt(e,t){return function(){this.setAttribute(e,t)}}function dt(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function ht(e,t){return function(){var n=t.apply(this,arguments);null==n?this.removeAttribute(e):this.setAttribute(e,n)}}function vt(e,t){return function(){var n=t.apply(this,arguments);null==n?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}}function gt(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function yt(e){return function(){this.style.removeProperty(e)}}function mt(e,t,n){return function(){this.style.setProperty(e,t,n)}}function bt(e,t,n){return function(){var r=t.apply(this,arguments);null==r?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function _t(e){return function(){delete this[e]}}function wt(e,t){return function(){this[e]=t}}function xt(e,t){return function(){var n=t.apply(this,arguments);null==n?delete this[e]:this[e]=n}}function kt(e){return e.trim().split(/^|\\s+/)}function St(e){return e.classList||new Et(e)}function Et(e){this._node=e,this._names=kt(e.getAttribute(\"class\")||\"\")}function Ct(e,t){for(var n=St(e),r=-1,a=t.length;++r<a;)n.add(t[r])}function Tt(e,t){for(var n=St(e),r=-1,a=t.length;++r<a;)n.remove(t[r])}function Mt(e){return function(){Ct(this,e)}}function Nt(e){return function(){Tt(this,e)}}function Pt(e,t){return function(){(t.apply(this,arguments)?Ct:Tt)(this,e)}}function zt(){this.textContent=\"\"}function Lt(e){return function(){this.textContent=e}}function Ot(e){return function(){var t=e.apply(this,arguments);this.textContent=null==t?\"\":t}}function At(){this.innerHTML=\"\"}function Ft(e){return function(){this.innerHTML=e}}function Dt(e){return function(){var t=e.apply(this,arguments);this.innerHTML=null==t?\"\":t}}function Rt(){this.nextSibling&&this.parentNode.appendChild(this)}function jt(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function Ut(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===ut&&t.documentElement.namespaceURI===ut?t.createElement(e):t.createElementNS(n,e)}}function It(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function $t(e){var t=st(e);return(t.local?It:Ut)(t)}function Bt(){return null}function Wt(){var e=this.parentNode;e&&e.removeChild(this)}function Vt(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function Ht(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function qt(e){return function(){var t=this.__on;if(t){for(var n,r=0,a=-1,i=t.length;r<i;++r)n=t[r],e.type&&n.type!==e.type||n.name!==e.name?t[++a]=n:this.removeEventListener(n.type,n.listener,n.options);++a?t.length=a:delete this.__on}}}function Qt(e,t,n){return function(){var r,a=this.__on,i=function(e){return function(t){e.call(this,t,this.__data__)}}(t);if(a)for(var o=0,u=a.length;o<u;++o)if((r=a[o]).type===e.type&&r.name===e.name)return this.removeEventListener(r.type,r.listener,r.options),this.addEventListener(r.type,r.listener=i,r.options=n),void(r.value=t);this.addEventListener(e.type,i,n),r={type:e.type,name:e.name,value:t,listener:i,options:n},a?a.push(r):this.__on=[r]}}function Yt(e,t,n){var r=gt(e),a=r.CustomEvent;\"function\"==typeof a?a=new a(t,n):(a=r.document.createEvent(\"Event\"),n?(a.initEvent(t,n.bubbles,n.cancelable),a.detail=n.detail):a.initEvent(t,!1,!1)),e.dispatchEvent(a)}function Gt(e,t){return function(){return Yt(this,e,t)}}function Kt(e,t){return function(){return Yt(this,e,t.apply(this,arguments))}}Et.prototype={add:function(e){this._names.indexOf(e)<0&&(this._names.push(e),this._node.setAttribute(\"class\",this._names.join(\" \")))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute(\"class\",this._names.join(\" \")))},contains:function(e){return this._names.indexOf(e)>=0}};var Zt=[null];function Xt(e,t){this._groups=e,this._parents=t}function Jt(e){return\"string\"==typeof e?new Xt([[document.querySelector(e)]],[document.documentElement]):new Xt([[e]],Zt)}function en(e){return e}Xt.prototype=function(){return new Xt([[document.documentElement]],Zt)}.prototype={constructor:Xt,select:function(e){\"function\"!=typeof e&&(e=Qe(e));for(var t=this._groups,n=t.length,r=new Array(n),a=0;a<n;++a)for(var i,o,u=t[a],l=u.length,s=r[a]=new Array(l),c=0;c<l;++c)(i=u[c])&&(o=e.call(i,i.__data__,c,u))&&(\"__data__\"in i&&(o.__data__=i.__data__),s[c]=o);return new Xt(r,this._parents)},selectAll:function(e){e=\"function\"==typeof e?function(e){return function(){return null==(t=e.apply(this,arguments))?[]:Array.isArray(t)?t:Array.from(t);var t}}(e):function(e){return null==e?Ye:function(){return this.querySelectorAll(e)}}(e);for(var t=this._groups,n=t.length,r=[],a=[],i=0;i<n;++i)for(var o,u=t[i],l=u.length,s=0;s<l;++s)(o=u[s])&&(r.push(e.call(o,o.__data__,s,u)),a.push(o));return new Xt(r,a)},selectChild:function(e){return this.select(null==e?Ze:function(e){return function(){return Ke.call(this.children,e)}}(\"function\"==typeof e?e:Ge(e)))},selectChildren:function(e){return this.selectAll(null==e?Je:function(e){return function(){return Xe.call(this.children,e)}}(\"function\"==typeof e?e:Ge(e)))},filter:function(e){\"function\"!=typeof e&&(e=function(e){return function(){return this.matches(e)}}(e));for(var t=this._groups,n=t.length,r=new Array(n),a=0;a<n;++a)for(var i,o=t[a],u=o.length,l=r[a]=[],s=0;s<u;++s)(i=o[s])&&e.call(i,i.__data__,s,o)&&l.push(i);return new Xt(r,this._parents)},data:function(e,t){if(!arguments.length)return Array.from(this,at);var n,r=t?rt:nt,a=this._parents,i=this._groups;\"function\"!=typeof e&&(n=e,e=function(){return n});for(var o=i.length,u=new Array(o),l=new Array(o),s=new Array(o),c=0;c<o;++c){var f=a[c],p=i[c],d=p.length,h=it(e.call(f,f&&f.__data__,c,a)),v=h.length,g=l[c]=new Array(v),y=u[c]=new Array(v);r(f,p,g,y,s[c]=new Array(d),h,t);for(var m,b,_=0,w=0;_<v;++_)if(m=g[_]){for(_>=w&&(w=_+1);!(b=y[w])&&++w<v;);m._next=b||null}}return(u=new Xt(u,a))._enter=l,u._exit=s,u},enter:function(){return new Xt(this._enter||this._groups.map(et),this._parents)},exit:function(){return new Xt(this._exit||this._groups.map(et),this._parents)},join:function(e,t,n){var r=this.enter(),a=this,i=this.exit();return\"function\"==typeof e?(r=e(r))&&(r=r.selection()):r=r.append(e+\"\"),null!=t&&(a=t(a))&&(a=a.selection()),null==n?i.remove():n(i),r&&a?r.merge(a).order():a},merge:function(e){for(var t=e.selection?e.selection():e,n=this._groups,r=t._groups,a=n.length,i=r.length,o=Math.min(a,i),u=new Array(a),l=0;l<o;++l)for(var s,c=n[l],f=r[l],p=c.length,d=u[l]=new Array(p),h=0;h<p;++h)(s=c[h]||f[h])&&(d[h]=s);for(;l<a;++l)u[l]=n[l];return new Xt(u,this._parents)},selection:function(){return this},order:function(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var r,a=e[t],i=a.length-1,o=a[i];--i>=0;)(r=a[i])&&(o&&4^r.compareDocumentPosition(o)&&o.parentNode.insertBefore(r,o),o=r);return this},sort:function(e){function t(t,n){return t&&n?e(t.__data__,n.__data__):!t-!n}e||(e=ot);for(var n=this._groups,r=n.length,a=new Array(r),i=0;i<r;++i){for(var o,u=n[i],l=u.length,s=a[i]=new Array(l),c=0;c<l;++c)(o=u[c])&&(s[c]=o);s.sort(t)}return new Xt(a,this._parents).order()},call:function(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this},nodes:function(){return Array.from(this)},node:function(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],a=0,i=r.length;a<i;++a){var o=r[a];if(o)return o}return null},size:function(){let e=0;for(const t of this)++e;return e},empty:function(){return!this.node()},each:function(e){for(var t=this._groups,n=0,r=t.length;n<r;++n)for(var a,i=t[n],o=0,u=i.length;o<u;++o)(a=i[o])&&e.call(a,a.__data__,o,i);return this},attr:function(e,t){var n=st(e);if(arguments.length<2){var r=this.node();return n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}return this.each((null==t?n.local?ft:ct:\"function\"==typeof t?n.local?vt:ht:n.local?dt:pt)(n,t))},style:function(e,t,n){return arguments.length>1?this.each((null==t?yt:\"function\"==typeof t?bt:mt)(e,t,null==n?\"\":n)):function(e,t){return e.style.getPropertyValue(t)||gt(e).getComputedStyle(e,null).getPropertyValue(t)}(this.node(),e)},property:function(e,t){return arguments.length>1?this.each((null==t?_t:\"function\"==typeof t?xt:wt)(e,t)):this.node()[e]},classed:function(e,t){var n=kt(e+\"\");if(arguments.length<2){for(var r=St(this.node()),a=-1,i=n.length;++a<i;)if(!r.contains(n[a]))return!1;return!0}return this.each((\"function\"==typeof t?Pt:t?Mt:Nt)(n,t))},text:function(e){return arguments.length?this.each(null==e?zt:(\"function\"==typeof e?Ot:Lt)(e)):this.node().textContent},html:function(e){return arguments.length?this.each(null==e?At:(\"function\"==typeof e?Dt:Ft)(e)):this.node().innerHTML},raise:function(){return this.each(Rt)},lower:function(){return this.each(jt)},append:function(e){var t=\"function\"==typeof e?e:$t(e);return this.select((function(){return this.appendChild(t.apply(this,arguments))}))},insert:function(e,t){var n=\"function\"==typeof e?e:$t(e),r=null==t?Bt:\"function\"==typeof t?t:Qe(t);return this.select((function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)}))},remove:function(){return this.each(Wt)},clone:function(e){return this.select(e?Ht:Vt)},datum:function(e){return arguments.length?this.property(\"__data__\",e):this.node().__data__},on:function(e,t,n){var r,a,i=function(e){return e.trim().split(/^|\\s+/).map((function(e){var t=\"\",n=e.indexOf(\".\");return n>=0&&(t=e.slice(n+1),e=e.slice(0,n)),{type:e,name:t}}))}(e+\"\"),o=i.length;if(!(arguments.length<2)){for(u=t?Qt:qt,r=0;r<o;++r)this.each(u(i[r],t,n));return this}var u=this.node().__on;if(u)for(var l,s=0,c=u.length;s<c;++s)for(r=0,l=u[s];r<o;++r)if((a=i[r]).type===l.type&&a.name===l.name)return l.value},dispatch:function(e,t){return this.each((\"function\"==typeof t?Kt:Gt)(e,t))},[Symbol.iterator]:function*(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r,a=e[t],i=0,o=a.length;i<o;++i)(r=a[i])&&(yield r)}};var tn=1,nn=2,rn=3,an=4,on=1e-6;function un(e){return\"translate(\"+e+\",0)\"}function ln(e){return\"translate(0,\"+e+\")\"}function sn(e){return t=>+e(t)}function cn(e,t){return t=Math.max(0,e.bandwidth()-2*t)/2,e.round()&&(t=Math.round(t)),n=>+e(n)+t}function fn(){return!this.__axis}function pn(e,t){var n=[],r=null,a=null,i=6,o=6,u=3,l=\"undefined\"!=typeof window&&window.devicePixelRatio>1?0:.5,s=e===tn||e===an?-1:1,c=e===an||e===nn?\"x\":\"y\",f=e===tn||e===rn?un:ln;function p(p){var d=null==r?t.ticks?t.ticks.apply(t,n):t.domain():r,h=null==a?t.tickFormat?t.tickFormat.apply(t,n):en:a,v=Math.max(i,0)+u,g=t.range(),y=+g[0]+l,m=+g[g.length-1]+l,b=(t.bandwidth?cn:sn)(t.copy(),l),_=p.selection?p.selection():p,w=_.selectAll(\".domain\").data([null]),x=_.selectAll(\".tick\").data(d,t).order(),k=x.exit(),S=x.enter().append(\"g\").attr(\"class\",\"tick\"),E=x.select(\"line\"),C=x.select(\"text\");w=w.merge(w.enter().insert(\"path\",\".tick\").attr(\"class\",\"domain\").attr(\"stroke\",\"currentColor\")),x=x.merge(S),E=E.merge(S.append(\"line\").attr(\"stroke\",\"currentColor\").attr(c+\"2\",s*i)),C=C.merge(S.append(\"text\").attr(\"fill\",\"currentColor\").attr(c,s*v).attr(\"dy\",e===tn?\"0em\":e===rn?\"0.71em\":\"0.32em\")),p!==_&&(w=w.transition(p),x=x.transition(p),E=E.transition(p),C=C.transition(p),k=k.transition(p).attr(\"opacity\",on).attr(\"transform\",(function(e){return isFinite(e=b(e))?f(e+l):this.getAttribute(\"transform\")})),S.attr(\"opacity\",on).attr(\"transform\",(function(e){var t=this.parentNode.__axis;return f((t&&isFinite(t=t(e))?t:b(e))+l)}))),k.remove(),w.attr(\"d\",e===an||e===nn?o?\"M\"+s*o+\",\"+y+\"H\"+l+\"V\"+m+\"H\"+s*o:\"M\"+l+\",\"+y+\"V\"+m:o?\"M\"+y+\",\"+s*o+\"V\"+l+\"H\"+m+\"V\"+s*o:\"M\"+y+\",\"+l+\"H\"+m),x.attr(\"opacity\",1).attr(\"transform\",(function(e){return f(b(e)+l)})),E.attr(c+\"2\",s*i),C.attr(c,s*v).text(h),_.filter(fn).attr(\"fill\",\"none\").attr(\"font-size\",10).attr(\"font-family\",\"sans-serif\").attr(\"text-anchor\",e===nn?\"start\":e===an?\"end\":\"middle\"),_.each((function(){this.__axis=b}))}return p.scale=function(e){return arguments.length?(t=e,p):t},p.ticks=function(){return n=Array.from(arguments),p},p.tickArguments=function(e){return arguments.length?(n=null==e?[]:Array.from(e),p):n.slice()},p.tickValues=function(e){return arguments.length?(r=null==e?null:Array.from(e),p):r&&r.slice()},p.tickFormat=function(e){return arguments.length?(a=e,p):a},p.tickSize=function(e){return arguments.length?(i=o=+e,p):i},p.tickSizeInner=function(e){return arguments.length?(i=+e,p):i},p.tickSizeOuter=function(e){return arguments.length?(o=+e,p):o},p.tickPadding=function(e){return arguments.length?(u=+e,p):u},p.offset=function(e){return arguments.length?(l=+e,p):l},p}function dn(e){return pn(rn,e)}function hn(e){return function(){return e}}function vn(e){this._context=e}function gn(e){return new vn(e)}Array.prototype.slice,vn.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t)}}};const yn=Math.PI,mn=2*yn,bn=1e-6,_n=mn-bn;function wn(e){this._+=e[0];for(let t=1,n=e.length;t<n;++t)this._+=arguments[t]+e[t]}class xn{constructor(e){this._x0=this._y0=this._x1=this._y1=null,this._=\"\",this._append=null==e?wn:function(e){let t=Math.floor(e);if(!(t>=0))throw new Error(`invalid digits: ${e}`);if(t>15)return wn;const n=10**t;return function(e){this._+=e[0];for(let t=1,r=e.length;t<r;++t)this._+=Math.round(arguments[t]*n)/n+e[t]}}(e)}moveTo(e,t){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}`}closePath(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(e,t){this._append`L${this._x1=+e},${this._y1=+t}`}quadraticCurveTo(e,t,n,r){this._append`Q${+e},${+t},${this._x1=+n},${this._y1=+r}`}bezierCurveTo(e,t,n,r,a,i){this._append`C${+e},${+t},${+n},${+r},${this._x1=+a},${this._y1=+i}`}arcTo(e,t,n,r,a){if(e=+e,t=+t,n=+n,r=+r,(a=+a)<0)throw new Error(`negative radius: ${a}`);let i=this._x1,o=this._y1,u=n-e,l=r-t,s=i-e,c=o-t,f=s*s+c*c;if(null===this._x1)this._append`M${this._x1=e},${this._y1=t}`;else if(f>bn)if(Math.abs(c*u-l*s)>bn&&a){let p=n-i,d=r-o,h=u*u+l*l,v=p*p+d*d,g=Math.sqrt(h),y=Math.sqrt(f),m=a*Math.tan((yn-Math.acos((h+f-v)/(2*g*y)))/2),b=m/y,_=m/g;Math.abs(b-1)>bn&&this._append`L${e+b*s},${t+b*c}`,this._append`A${a},${a},0,0,${+(c*p>s*d)},${this._x1=e+_*u},${this._y1=t+_*l}`}else this._append`L${this._x1=e},${this._y1=t}`}arc(e,t,n,r,a,i){if(e=+e,t=+t,i=!!i,(n=+n)<0)throw new Error(`negative radius: ${n}`);let o=n*Math.cos(r),u=n*Math.sin(r),l=e+o,s=t+u,c=1^i,f=i?r-a:a-r;null===this._x1?this._append`M${l},${s}`:(Math.abs(this._x1-l)>bn||Math.abs(this._y1-s)>bn)&&this._append`L${l},${s}`,n&&(f<0&&(f=f%mn+mn),f>_n?this._append`A${n},${n},0,1,${c},${e-o},${t-u}A${n},${n},0,1,${c},${this._x1=l},${this._y1=s}`:f>bn&&this._append`A${n},${n},0,${+(f>=yn)},${c},${this._x1=e+n*Math.cos(a)},${this._y1=t+n*Math.sin(a)}`)}rect(e,t,n,r){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}h${n=+n}v${+r}h${-n}Z`}toString(){return this._}}function kn(e){return e[0]}function Sn(e){return e[1]}function En(e,t){var n=hn(!0),r=null,a=gn,i=null,o=function(e){let t=3;return e.digits=function(n){if(!arguments.length)return t;if(null==n)t=null;else{const e=Math.floor(n);if(!(e>=0))throw new RangeError(`invalid digits: ${n}`);t=e}return e},()=>new xn(t)}(u);function u(u){var l,s,c,f=(u=function(e){return\"object\"==typeof e&&\"length\"in e?e:Array.from(e)}(u)).length,p=!1;for(null==r&&(i=a(c=o())),l=0;l<=f;++l)!(l<f&&n(s=u[l],l,u))===p&&((p=!p)?i.lineStart():i.lineEnd()),p&&i.point(+e(s,l,u),+t(s,l,u));if(c)return i=null,c+\"\"||null}return e=\"function\"==typeof e?e:void 0===e?kn:hn(e),t=\"function\"==typeof t?t:void 0===t?Sn:hn(t),u.x=function(t){return arguments.length?(e=\"function\"==typeof t?t:hn(+t),u):e},u.y=function(e){return arguments.length?(t=\"function\"==typeof e?e:hn(+e),u):t},u.defined=function(e){return arguments.length?(n=\"function\"==typeof e?e:hn(!!e),u):n},u.curve=function(e){return arguments.length?(a=e,null!=r&&(i=a(r)),u):a},u.context=function(e){return arguments.length?(null==e?r=i=null:i=a(r=e),u):r},u}function Cn(e){return Cn=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},Cn(e)}function Tn(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(e,(void 0,a=function(e,t){if(\"object\"!==Cn(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,\"string\");if(\"object\"!==Cn(r))return r;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return String(e)}(r.key),\"symbol\"===Cn(a)?a:String(a)),r)}var a}function Mn(e,t){return Mn=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Mn(e,t)}function Nn(e){if(void 0===e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e}function Pn(e){return Pn=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},Pn(e)}var zn=function(t){!function(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function\");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,\"prototype\",{writable:!1}),t&&Mn(e,t)}(u,t);var n,r,a,i,o=(a=u,i=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,t=Pn(a);if(i){var n=Pn(this).constructor;e=Reflect.construct(t,arguments,n)}else e=t.apply(this,arguments);return function(e,t){if(t&&(\"object\"===Cn(t)||\"function\"==typeof t))return t;if(void 0!==t)throw new TypeError(\"Derived constructors may only return object or undefined\");return Nn(e)}(this,e)});function u(){var e;return function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,u),e=o.call(this),window.lastAdditiveForceVisualizer=Nn(e),e.effectFormat=ze(\".2\"),e.redraw=(0,Re.debounce)((function(){return e.draw()}),200),e}return n=u,(r=[{key:\"componentDidMount\",value:function(){var e=this;this.mainGroup=this.svg.append(\"g\"),this.axisElement=this.mainGroup.append(\"g\").attr(\"transform\",\"translate(0,35)\").attr(\"class\",\"force-bar-axis\"),this.onTopGroup=this.svg.append(\"g\"),this.baseValueTitle=this.svg.append(\"text\"),this.joinPointLine=this.svg.append(\"line\"),this.joinPointLabelOutline=this.svg.append(\"text\"),this.joinPointLabel=this.svg.append(\"text\"),this.joinPointTitleLeft=this.svg.append(\"text\"),this.joinPointTitleLeftArrow=this.svg.append(\"text\"),this.joinPointTitle=this.svg.append(\"text\"),this.joinPointTitleRightArrow=this.svg.append(\"text\"),this.joinPointTitleRight=this.svg.append(\"text\"),this.hoverLabelBacking=this.svg.append(\"text\").attr(\"x\",10).attr(\"y\",20).attr(\"text-anchor\",\"middle\").attr(\"font-size\",12).attr(\"stroke\",\"#fff\").attr(\"fill\",\"#fff\").attr(\"stroke-width\",\"4\").attr(\"stroke-linejoin\",\"round\").text(\"\").on(\"mouseover\",(function(){e.hoverLabel.attr(\"opacity\",1),e.hoverLabelBacking.attr(\"opacity\",1)})).on(\"mouseout\",(function(){e.hoverLabel.attr(\"opacity\",0),e.hoverLabelBacking.attr(\"opacity\",0)})),this.hoverLabel=this.svg.append(\"text\").attr(\"x\",10).attr(\"y\",20).attr(\"text-anchor\",\"middle\").attr(\"font-size\",12).attr(\"fill\",\"#0f0\").text(\"\").on(\"mouseover\",(function(){e.hoverLabel.attr(\"opacity\",1),e.hoverLabelBacking.attr(\"opacity\",1)})).on(\"mouseout\",(function(){e.hoverLabel.attr(\"opacity\",0),e.hoverLabelBacking.attr(\"opacity\",0)}));var t=void 0;\"string\"==typeof this.props.plot_cmap?this.props.plot_cmap in je.colors?t=je.colors[this.props.plot_cmap]:(console.log(\"Invalid color map name, reverting to default.\"),t=je.colors.RdBu):Array.isArray(this.props.plot_cmap)&&(t=this.props.plot_cmap),this.colors=t.map((function(e){return q(e)})),this.brighterColors=[1.45,1.6].map((function(t,n){return e.colors[n].brighter(t)})),this.colors.map((function(t,n){var r=e.svg.append(\"linearGradient\").attr(\"id\",\"linear-grad-\"+n).attr(\"x1\",\"0%\").attr(\"y1\",\"0%\").attr(\"x2\",\"0%\").attr(\"y2\",\"100%\");r.append(\"stop\").attr(\"offset\",\"0%\").attr(\"stop-color\",t).attr(\"stop-opacity\",.6),r.append(\"stop\").attr(\"offset\",\"100%\").attr(\"stop-color\",t).attr(\"stop-opacity\",0);var a=e.svg.append(\"linearGradient\").attr(\"id\",\"linear-backgrad-\"+n).attr(\"x1\",\"0%\").attr(\"y1\",\"0%\").attr(\"x2\",\"0%\").attr(\"y2\",\"100%\");a.append(\"stop\").attr(\"offset\",\"0%\").attr(\"stop-color\",t).attr(\"stop-opacity\",.5),a.append(\"stop\").attr(\"offset\",\"100%\").attr(\"stop-color\",t).attr(\"stop-opacity\",0)})),this.tickFormat=ze(\",.4\"),this.scaleCentered=De(),this.axis=dn().scale(this.scaleCentered).tickSizeInner(4).tickSizeOuter(0).tickFormat((function(t){return e.tickFormat(e.invLinkFunction(t))})).tickPadding(-18),window.addEventListener(\"resize\",this.redraw),window.setTimeout(this.redraw,50)}},{key:\"componentDidUpdate\",value:function(){this.draw()}},{key:\"draw\",value:function(){var e=this;(0,Re.each)(this.props.featureNames,(function(t,n){e.props.features[n]&&(e.props.features[n].name=t)})),\"identity\"===this.props.link?this.invLinkFunction=function(t){return e.props.baseValue+t}:\"logit\"===this.props.link?this.invLinkFunction=function(t){return 1/(1+Math.exp(-(e.props.baseValue+t)))}:console.log(\"ERROR: Unrecognized link function: \",this.props.link);var t=this.svg.node().parentNode.offsetWidth;if(0==t)return setTimeout((function(){return e.draw(e.props)}),500);this.svg.style(\"height\",\"150px\"),this.svg.style(\"width\",t+\"px\");var n=(0,Re.sortBy)(this.props.features,(function(e){return-1/(e.effect+1e-10)})),r=(0,Re.sum)((0,Re.map)(n,(function(e){return Math.abs(e.effect)}))),a=(0,Re.sum)((0,Re.map)((0,Re.filter)(n,(function(e){return e.effect>0})),(function(e){return e.effect})))||0,i=(0,Re.sum)((0,Re.map)((0,Re.filter)(n,(function(e){return e.effect<0})),(function(e){return-e.effect})))||0;this.domainSize=3*Math.max(a,i);var o=De().domain([0,this.domainSize]).range([0,t]),u=t/2-o(i);this.scaleCentered.domain([-this.domainSize/2,this.domainSize/2]).range([0,t]).clamp(!0),this.axisElement.attr(\"transform\",\"translate(0,50)\").call(this.axis);var l,s,c,f=0;for(l=0;l<n.length;++l)n[l].x=f,n[l].effect<0&&void 0===s&&(s=f,c=l),f+=Math.abs(n[l].effect);void 0===s&&(s=f,c=l);var p=En().x((function(e){return e[0]})).y((function(e){return e[1]})),d=function(t){return void 0!==t.value&&null!==t.value&&\"\"!==t.value?t.name+\" = \"+(isNaN(t.value)?t.value:e.tickFormat(t.value)):t.name};n=this.props.hideBars?[]:n;var h=this.mainGroup.selectAll(\".force-bar-blocks\").data(n);h.enter().append(\"path\").attr(\"class\",\"force-bar-blocks\").merge(h).attr(\"d\",(function(e,t){var n=o(e.x)+u,r=o(Math.abs(e.effect)),a=e.effect<0?-4:4,i=a;return t===c&&(a=0),t===c-1&&(i=0),p([[n,56],[n+r,56],[n+r+i,64.5],[n+r,73],[n,73],[n+a,64.5]])})).attr(\"fill\",(function(t){return t.effect>0?e.colors[0]:e.colors[1]})).on(\"mouseover\",(function(t){if(o(Math.abs(t.effect))<o(r)/50||o(Math.abs(t.effect))<10){var n=o(t.x)+u,a=o(Math.abs(t.effect));e.hoverLabel.attr(\"opacity\",1).attr(\"x\",n+a/2).attr(\"y\",50.5).attr(\"fill\",t.effect>0?e.colors[0]:e.colors[1]).text(d(t)),e.hoverLabelBacking.attr(\"opacity\",1).attr(\"x\",n+a/2).attr(\"y\",50.5).text(d(t))}})).on(\"mouseout\",(function(){e.hoverLabel.attr(\"opacity\",0),e.hoverLabelBacking.attr(\"opacity\",0)})),h.exit().remove();var v=(0,Re.filter)(n,(function(e){return o(Math.abs(e.effect))>o(r)/50&&o(Math.abs(e.effect))>10})),g=this.onTopGroup.selectAll(\".force-bar-labels\").data(v);if(g.exit().remove(),g=g.enter().append(\"text\").attr(\"class\",\"force-bar-labels\").attr(\"font-size\",\"12px\").attr(\"y\",98).merge(g).text((function(t){return void 0!==t.value&&null!==t.value&&\"\"!==t.value?t.name+\" = \"+(isNaN(t.value)?t.value:e.tickFormat(t.value)):t.name})).attr(\"fill\",(function(t){return t.effect>0?e.colors[0]:e.colors[1]})).attr(\"stroke\",(function(e){return e.textWidth=Math.max(this.getComputedTextLength(),o(Math.abs(e.effect))-10),e.innerTextWidth=this.getComputedTextLength(),\"none\"})),this.filteredData=v,n.length>0){f=s+o.invert(5);for(var y=c;y<n.length;++y)n[y].textx=f,f+=o.invert(n[y].textWidth+10);f=s-o.invert(5);for(var m=c-1;m>=0;--m)n[m].textx=f,f-=o.invert(n[m].textWidth+10)}g.attr(\"x\",(function(e){return o(e.textx)+u+(e.effect>0?-e.textWidth/2:e.textWidth/2)})).attr(\"text-anchor\",\"middle\"),v=(0,Re.filter)(v,(function(n){return o(n.textx)+u>e.props.labelMargin&&o(n.textx)+u<t-e.props.labelMargin})),this.filteredData2=v;var b=v.slice(),_=(0,Re.findIndex)(n,v[0])-1;_>=0&&b.unshift(n[_]);var w=this.mainGroup.selectAll(\".force-bar-labelBacking\").data(v);w.enter().append(\"path\").attr(\"class\",\"force-bar-labelBacking\").attr(\"stroke\",\"none\").attr(\"opacity\",.2).merge(w).attr(\"d\",(function(e){return p([[o(e.x)+o(Math.abs(e.effect))+u,73],[(e.effect>0?o(e.textx):o(e.textx)+e.textWidth)+u+5,83],[(e.effect>0?o(e.textx):o(e.textx)+e.textWidth)+u+5,104],[(e.effect>0?o(e.textx)-e.textWidth:o(e.textx))+u-5,104],[(e.effect>0?o(e.textx)-e.textWidth:o(e.textx))+u-5,83],[o(e.x)+u,73]])})).attr(\"fill\",(function(e){return\"url(#linear-backgrad-\".concat(e.effect>0?0:1,\")\")})),w.exit().remove();var x=this.mainGroup.selectAll(\".force-bar-labelDividers\").data(v.slice(0,-1));x.enter().append(\"rect\").attr(\"class\",\"force-bar-labelDividers\").attr(\"height\",\"21px\").attr(\"width\",\"1px\").attr(\"y\",83).merge(x).attr(\"x\",(function(e){return(e.effect>0?o(e.textx):o(e.textx)+e.textWidth)+u+4.5})).attr(\"fill\",(function(e){return\"url(#linear-grad-\".concat(e.effect>0?0:1,\")\")})),x.exit().remove();var k=this.mainGroup.selectAll(\".force-bar-labelLinks\").data(v.slice(0,-1));k.enter().append(\"line\").attr(\"class\",\"force-bar-labelLinks\").attr(\"y1\",73).attr(\"y2\",83).attr(\"stroke-opacity\",.5).attr(\"stroke-width\",1).merge(k).attr(\"x1\",(function(e){return o(e.x)+o(Math.abs(e.effect))+u})).attr(\"x2\",(function(e){return(e.effect>0?o(e.textx):o(e.textx)+e.textWidth)+u+5})).attr(\"stroke\",(function(t){return t.effect>0?e.colors[0]:e.colors[1]})),k.exit().remove();var S=this.mainGroup.selectAll(\".force-bar-blockDividers\").data(n.slice(0,-1));S.enter().append(\"path\").attr(\"class\",\"force-bar-blockDividers\").attr(\"stroke-width\",2).attr(\"fill\",\"none\").merge(S).attr(\"d\",(function(e){var t=o(e.x)+o(Math.abs(e.effect))+u;return p([[t,56],[t+(e.effect<0?-4:4),64.5],[t,73]])})).attr(\"stroke\",(function(t,n){return c===n+1||Math.abs(t.effect)<1e-8?\"#rgba(0,0,0,0)\":t.effect>0?e.brighterColors[0]:e.brighterColors[1]})),S.exit().remove(),this.joinPointLine.attr(\"x1\",o(s)+u).attr(\"x2\",o(s)+u).attr(\"y1\",50).attr(\"y2\",56).attr(\"stroke\",\"#F2F2F2\").attr(\"stroke-width\",1).attr(\"opacity\",1),this.joinPointLabelOutline.attr(\"x\",o(s)+u).attr(\"y\",45).attr(\"color\",\"#fff\").attr(\"text-anchor\",\"middle\").attr(\"font-weight\",\"bold\").attr(\"stroke\",\"#fff\").attr(\"stroke-width\",6).text(ze(\",.2f\")(this.invLinkFunction(s-i))).attr(\"opacity\",1),console.log(\"joinPoint\",s,u,50,i),this.joinPointLabel.attr(\"x\",o(s)+u).attr(\"y\",45).attr(\"text-anchor\",\"middle\").attr(\"font-weight\",\"bold\").attr(\"fill\",\"#000\").text(ze(\",.2f\")(this.invLinkFunction(s-i))).attr(\"opacity\",1),this.joinPointTitle.attr(\"x\",o(s)+u).attr(\"y\",28).attr(\"text-anchor\",\"middle\").attr(\"font-size\",\"12\").attr(\"fill\",\"#000\").text(this.props.outNames[0]).attr(\"opacity\",.5),this.props.hideBars||(this.joinPointTitleLeft.attr(\"x\",o(s)+u-16).attr(\"y\",12).attr(\"text-anchor\",\"end\").attr(\"font-size\",\"13\").attr(\"fill\",this.colors[0]).text(\"higher\").attr(\"opacity\",1),this.joinPointTitleRight.attr(\"x\",o(s)+u+16).attr(\"y\",12).attr(\"text-anchor\",\"start\").attr(\"font-size\",\"13\").attr(\"fill\",this.colors[1]).text(\"lower\").attr(\"opacity\",1),this.joinPointTitleLeftArrow.attr(\"x\",o(s)+u+7).attr(\"y\",8).attr(\"text-anchor\",\"end\").attr(\"font-size\",\"13\").attr(\"fill\",this.colors[0]).text(\"→\").attr(\"opacity\",1),this.joinPointTitleRightArrow.attr(\"x\",o(s)+u-7).attr(\"y\",14).attr(\"text-anchor\",\"start\").attr(\"font-size\",\"13\").attr(\"fill\",this.colors[1]).text(\"←\").attr(\"opacity\",1)),this.props.hideBaseValueLabel||this.baseValueTitle.attr(\"x\",this.scaleCentered(0)).attr(\"y\",28).attr(\"text-anchor\",\"middle\").attr(\"font-size\",\"12\").attr(\"fill\",\"#000\").text(\"base value\").attr(\"opacity\",.5)}},{key:\"componentWillUnmount\",value:function(){window.removeEventListener(\"resize\",this.redraw)}},{key:\"render\",value:function(){var t=this;return e.createElement(\"svg\",{ref:function(e){return t.svg=Jt(e)},style:{userSelect:\"none\",display:\"block\",fontFamily:\"arial\",sansSerif:!0}},e.createElement(\"style\",{dangerouslySetInnerHTML:{__html:\"\\n .force-bar-axis path {\\n fill: none;\\n opacity: 0.4;\\n }\\n .force-bar-axis paths {\\n display: none;\\n }\\n .tick line {\\n stroke: #000;\\n stroke-width: 1px;\\n opacity: 0.4;\\n }\\n .tick text {\\n fill: #000;\\n opacity: 0.5;\\n font-size: 12px;\\n padding: 0px;\\n }\"}}))}}])&&Tn(n.prototype,r),Object.defineProperty(n,\"prototype\",{writable:!1}),u}(e.Component);zn.defaultProps={plot_cmap:\"RdBu\"};const Ln=zn,On=1e3,An=6e4,Fn=36e5,Dn=864e5,Rn=6048e5,jn=31536e6,Un=new Date,In=new Date;function $n(e,t,n,r){function a(t){return e(t=0===arguments.length?new Date:new Date(+t)),t}return a.floor=t=>(e(t=new Date(+t)),t),a.ceil=n=>(e(n=new Date(n-1)),t(n,1),e(n),n),a.round=e=>{const t=a(e),n=a.ceil(e);return e-t<n-e?t:n},a.offset=(e,n)=>(t(e=new Date(+e),null==n?1:Math.floor(n)),e),a.range=(n,r,i)=>{const o=[];if(n=a.ceil(n),i=null==i?1:Math.floor(i),!(n<r&&i>0))return o;let u;do{o.push(u=new Date(+n)),t(n,i),e(n)}while(u<n&&n<r);return o},a.filter=n=>$n((t=>{if(t>=t)for(;e(t),!n(t);)t.setTime(t-1)}),((e,r)=>{if(e>=e)if(r<0)for(;++r<=0;)for(;t(e,-1),!n(e););else for(;--r>=0;)for(;t(e,1),!n(e););})),n&&(a.count=(t,r)=>(Un.setTime(+t),In.setTime(+r),e(Un),e(In),Math.floor(n(Un,In))),a.every=e=>(e=Math.floor(e),isFinite(e)&&e>0?e>1?a.filter(r?t=>r(t)%e==0:t=>a.count(0,t)%e==0):a:null)),a}const Bn=$n((()=>{}),((e,t)=>{e.setTime(+e+t)}),((e,t)=>t-e));Bn.every=e=>(e=Math.floor(e),isFinite(e)&&e>0?e>1?$n((t=>{t.setTime(Math.floor(t/e)*e)}),((t,n)=>{t.setTime(+t+n*e)}),((t,n)=>(n-t)/e)):Bn:null),Bn.range;const Wn=$n((e=>{e.setTime(e-e.getMilliseconds())}),((e,t)=>{e.setTime(+e+t*On)}),((e,t)=>(t-e)/On),(e=>e.getUTCSeconds())),Vn=(Wn.range,$n((e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*On)}),((e,t)=>{e.setTime(+e+t*An)}),((e,t)=>(t-e)/An),(e=>e.getMinutes()))),Hn=(Vn.range,$n((e=>{e.setUTCSeconds(0,0)}),((e,t)=>{e.setTime(+e+t*An)}),((e,t)=>(t-e)/An),(e=>e.getUTCMinutes()))),qn=(Hn.range,$n((e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*On-e.getMinutes()*An)}),((e,t)=>{e.setTime(+e+t*Fn)}),((e,t)=>(t-e)/Fn),(e=>e.getHours()))),Qn=(qn.range,$n((e=>{e.setUTCMinutes(0,0,0)}),((e,t)=>{e.setTime(+e+t*Fn)}),((e,t)=>(t-e)/Fn),(e=>e.getUTCHours()))),Yn=(Qn.range,$n((e=>e.setHours(0,0,0,0)),((e,t)=>e.setDate(e.getDate()+t)),((e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*An)/Dn),(e=>e.getDate()-1))),Gn=(Yn.range,$n((e=>{e.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCDate(e.getUTCDate()+t)}),((e,t)=>(t-e)/Dn),(e=>e.getUTCDate()-1))),Kn=(Gn.range,$n((e=>{e.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCDate(e.getUTCDate()+t)}),((e,t)=>(t-e)/Dn),(e=>Math.floor(e/Dn))));function Zn(e){return $n((t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)}),((e,t)=>{e.setDate(e.getDate()+7*t)}),((e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*An)/Rn))}Kn.range;const Xn=Zn(0),Jn=Zn(1),er=Zn(2),tr=Zn(3),nr=Zn(4),rr=Zn(5),ar=Zn(6);function ir(e){return $n((t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCDate(e.getUTCDate()+7*t)}),((e,t)=>(t-e)/Rn))}Xn.range,Jn.range,er.range,tr.range,nr.range,rr.range,ar.range;const or=ir(0),ur=ir(1),lr=ir(2),sr=ir(3),cr=ir(4),fr=ir(5),pr=ir(6),dr=(or.range,ur.range,lr.range,sr.range,cr.range,fr.range,pr.range,$n((e=>{e.setDate(1),e.setHours(0,0,0,0)}),((e,t)=>{e.setMonth(e.getMonth()+t)}),((e,t)=>t.getMonth()-e.getMonth()+12*(t.getFullYear()-e.getFullYear())),(e=>e.getMonth()))),hr=(dr.range,$n((e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)}),((e,t)=>t.getUTCMonth()-e.getUTCMonth()+12*(t.getUTCFullYear()-e.getUTCFullYear())),(e=>e.getUTCMonth()))),vr=(hr.range,$n((e=>{e.setMonth(0,1),e.setHours(0,0,0,0)}),((e,t)=>{e.setFullYear(e.getFullYear()+t)}),((e,t)=>t.getFullYear()-e.getFullYear()),(e=>e.getFullYear())));vr.every=e=>isFinite(e=Math.floor(e))&&e>0?$n((t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)}),((t,n)=>{t.setFullYear(t.getFullYear()+n*e)})):null,vr.range;const gr=$n((e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)}),((e,t)=>t.getUTCFullYear()-e.getUTCFullYear()),(e=>e.getUTCFullYear()));function yr(e,t,n,r,a,i){const o=[[Wn,1,On],[Wn,5,5e3],[Wn,15,15e3],[Wn,30,3e4],[i,1,An],[i,5,3e5],[i,15,9e5],[i,30,18e5],[a,1,Fn],[a,3,108e5],[a,6,216e5],[a,12,432e5],[r,1,Dn],[r,2,1728e5],[n,1,Rn],[t,1,2592e6],[t,3,7776e6],[e,1,jn]];function u(t,n,r){const a=Math.abs(n-t)/r,i=f((([,,e])=>e)).right(o,a);if(i===o.length)return e.every(l(t/jn,n/jn,r));if(0===i)return Bn.every(Math.max(l(t,n,r),1));const[u,s]=o[a/o[i-1][2]<o[i][2]/a?i-1:i];return u.every(s)}return[function(e,t,n){const r=t<e;r&&([e,t]=[t,e]);const a=n&&\"function\"==typeof n.range?n:u(e,t,n),i=a?a.range(e,+t+1):[];return r?i.reverse():i},u]}gr.every=e=>isFinite(e=Math.floor(e))&&e>0?$n((t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)}),((t,n)=>{t.setUTCFullYear(t.getUTCFullYear()+n*e)})):null,gr.range;const[mr,br]=yr(gr,hr,or,Kn,Qn,Hn),[_r,wr]=yr(vr,dr,Xn,Yn,qn,Vn);function xr(e){if(0<=e.y&&e.y<100){var t=new Date(-1,e.m,e.d,e.H,e.M,e.S,e.L);return t.setFullYear(e.y),t}return new Date(e.y,e.m,e.d,e.H,e.M,e.S,e.L)}function kr(e){if(0<=e.y&&e.y<100){var t=new Date(Date.UTC(-1,e.m,e.d,e.H,e.M,e.S,e.L));return t.setUTCFullYear(e.y),t}return new Date(Date.UTC(e.y,e.m,e.d,e.H,e.M,e.S,e.L))}function Sr(e,t,n){return{y:e,m:t,d:n,H:0,M:0,S:0,L:0}}var Er,Cr,Tr,Mr={\"-\":\"\",_:\" \",0:\"0\"},Nr=/^\\s*\\d+/,Pr=/^%/,zr=/[\\\\^$*+?|[\\]().{}]/g;function Lr(e,t,n){var r=e<0?\"-\":\"\",a=(r?-e:e)+\"\",i=a.length;return r+(i<n?new Array(n-i+1).join(t)+a:a)}function Or(e){return e.replace(zr,\"\\\\$&\")}function Ar(e){return new RegExp(\"^(?:\"+e.map(Or).join(\"|\")+\")\",\"i\")}function Fr(e){return new Map(e.map(((e,t)=>[e.toLowerCase(),t])))}function Dr(e,t,n){var r=Nr.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function Rr(e,t,n){var r=Nr.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function jr(e,t,n){var r=Nr.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function Ur(e,t,n){var r=Nr.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function Ir(e,t,n){var r=Nr.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function $r(e,t,n){var r=Nr.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function Br(e,t,n){var r=Nr.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function Wr(e,t,n){var r=/^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(t.slice(n,n+6));return r?(e.Z=r[1]?0:-(r[2]+(r[3]||\"00\")),n+r[0].length):-1}function Vr(e,t,n){var r=Nr.exec(t.slice(n,n+1));return r?(e.q=3*r[0]-3,n+r[0].length):-1}function Hr(e,t,n){var r=Nr.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function qr(e,t,n){var r=Nr.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function Qr(e,t,n){var r=Nr.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function Yr(e,t,n){var r=Nr.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function Gr(e,t,n){var r=Nr.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function Kr(e,t,n){var r=Nr.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function Zr(e,t,n){var r=Nr.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function Xr(e,t,n){var r=Nr.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function Jr(e,t,n){var r=Pr.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function ea(e,t,n){var r=Nr.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function ta(e,t,n){var r=Nr.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function na(e,t){return Lr(e.getDate(),t,2)}function ra(e,t){return Lr(e.getHours(),t,2)}function aa(e,t){return Lr(e.getHours()%12||12,t,2)}function ia(e,t){return Lr(1+Yn.count(vr(e),e),t,3)}function oa(e,t){return Lr(e.getMilliseconds(),t,3)}function ua(e,t){return oa(e,t)+\"000\"}function la(e,t){return Lr(e.getMonth()+1,t,2)}function sa(e,t){return Lr(e.getMinutes(),t,2)}function ca(e,t){return Lr(e.getSeconds(),t,2)}function fa(e){var t=e.getDay();return 0===t?7:t}function pa(e,t){return Lr(Xn.count(vr(e)-1,e),t,2)}function da(e){var t=e.getDay();return t>=4||0===t?nr(e):nr.ceil(e)}function ha(e,t){return e=da(e),Lr(nr.count(vr(e),e)+(4===vr(e).getDay()),t,2)}function va(e){return e.getDay()}function ga(e,t){return Lr(Jn.count(vr(e)-1,e),t,2)}function ya(e,t){return Lr(e.getFullYear()%100,t,2)}function ma(e,t){return Lr((e=da(e)).getFullYear()%100,t,2)}function ba(e,t){return Lr(e.getFullYear()%1e4,t,4)}function _a(e,t){var n=e.getDay();return Lr((e=n>=4||0===n?nr(e):nr.ceil(e)).getFullYear()%1e4,t,4)}function wa(e){var t=e.getTimezoneOffset();return(t>0?\"-\":(t*=-1,\"+\"))+Lr(t/60|0,\"0\",2)+Lr(t%60,\"0\",2)}function xa(e,t){return Lr(e.getUTCDate(),t,2)}function ka(e,t){return Lr(e.getUTCHours(),t,2)}function Sa(e,t){return Lr(e.getUTCHours()%12||12,t,2)}function Ea(e,t){return Lr(1+Gn.count(gr(e),e),t,3)}function Ca(e,t){return Lr(e.getUTCMilliseconds(),t,3)}function Ta(e,t){return Ca(e,t)+\"000\"}function Ma(e,t){return Lr(e.getUTCMonth()+1,t,2)}function Na(e,t){return Lr(e.getUTCMinutes(),t,2)}function Pa(e,t){return Lr(e.getUTCSeconds(),t,2)}function za(e){var t=e.getUTCDay();return 0===t?7:t}function La(e,t){return Lr(or.count(gr(e)-1,e),t,2)}function Oa(e){var t=e.getUTCDay();return t>=4||0===t?cr(e):cr.ceil(e)}function Aa(e,t){return e=Oa(e),Lr(cr.count(gr(e),e)+(4===gr(e).getUTCDay()),t,2)}function Fa(e){return e.getUTCDay()}function Da(e,t){return Lr(ur.count(gr(e)-1,e),t,2)}function Ra(e,t){return Lr(e.getUTCFullYear()%100,t,2)}function ja(e,t){return Lr((e=Oa(e)).getUTCFullYear()%100,t,2)}function Ua(e,t){return Lr(e.getUTCFullYear()%1e4,t,4)}function Ia(e,t){var n=e.getUTCDay();return Lr((e=n>=4||0===n?cr(e):cr.ceil(e)).getUTCFullYear()%1e4,t,4)}function $a(){return\"+0000\"}function Ba(){return\"%\"}function Wa(e){return+e}function Va(e){return Math.floor(+e/1e3)}function Ha(e){return new Date(e)}function qa(e){return e instanceof Date?+e:+new Date(+e)}function Qa(e,t,n,r,a,i,o,u,l,s){var c=be(),f=c.invert,p=c.domain,d=s(\".%L\"),h=s(\":%S\"),v=s(\"%I:%M\"),g=s(\"%I %p\"),y=s(\"%a %d\"),m=s(\"%b %d\"),b=s(\"%B\"),_=s(\"%Y\");function w(e){return(l(e)<e?d:u(e)<e?h:o(e)<e?v:i(e)<e?g:r(e)<e?a(e)<e?y:m:n(e)<e?b:_)(e)}return c.invert=function(e){return new Date(f(e))},c.domain=function(e){return arguments.length?p(Array.from(e,qa)):p().map(Ha)},c.ticks=function(t){var n=p();return e(n[0],n[n.length-1],null==t?10:t)},c.tickFormat=function(e,t){return null==t?w:s(t)},c.nice=function(e){var n=p();return e&&\"function\"==typeof e.range||(e=t(n[0],n[n.length-1],null==e?10:e)),e?p(function(e,t){var n,r=0,a=(e=e.slice()).length-1,i=e[r],o=e[a];return o<i&&(n=r,r=a,a=n,n=i,i=o,o=n),e[r]=t.floor(i),e[a]=t.ceil(o),e}(n,e)):c},c.copy=function(){return me(c,Qa(e,t,n,r,a,i,o,u,l,s))},c}function Ya(){return _e.apply(Qa(_r,wr,vr,dr,Xn,Yn,qn,Vn,Wn,Cr).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function Ga(e,t){var n=\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if(\"string\"==typeof e)return Ka(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(e):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Ka(e,t):void 0}}(e))||t&&e&&\"number\"==typeof e.length){n&&(e=n);var r=0,a=function(){};return{s:a,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:a}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var i,o=!0,u=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){u=!0,i=e},f:function(){try{o||null==n.return||n.return()}finally{if(u)throw i}}}}function Ka(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Za(e){return Za=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},Za(e)}function Xa(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(e,(void 0,a=function(e,t){if(\"object\"!==Za(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,\"string\");if(\"object\"!==Za(r))return r;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return String(e)}(r.key),\"symbol\"===Za(a)?a:String(a)),r)}var a}function Ja(e,t){return Ja=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Ja(e,t)}function ei(e){if(void 0===e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e}function ti(e){return ti=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},ti(e)}Er=function(e){var t=e.dateTime,n=e.date,r=e.time,a=e.periods,i=e.days,o=e.shortDays,u=e.months,l=e.shortMonths,s=Ar(a),c=Fr(a),f=Ar(i),p=Fr(i),d=Ar(o),h=Fr(o),v=Ar(u),g=Fr(u),y=Ar(l),m=Fr(l),b={a:function(e){return o[e.getDay()]},A:function(e){return i[e.getDay()]},b:function(e){return l[e.getMonth()]},B:function(e){return u[e.getMonth()]},c:null,d:na,e:na,f:ua,g:ma,G:_a,H:ra,I:aa,j:ia,L:oa,m:la,M:sa,p:function(e){return a[+(e.getHours()>=12)]},q:function(e){return 1+~~(e.getMonth()/3)},Q:Wa,s:Va,S:ca,u:fa,U:pa,V:ha,w:va,W:ga,x:null,X:null,y:ya,Y:ba,Z:wa,\"%\":Ba},_={a:function(e){return o[e.getUTCDay()]},A:function(e){return i[e.getUTCDay()]},b:function(e){return l[e.getUTCMonth()]},B:function(e){return u[e.getUTCMonth()]},c:null,d:xa,e:xa,f:Ta,g:ja,G:Ia,H:ka,I:Sa,j:Ea,L:Ca,m:Ma,M:Na,p:function(e){return a[+(e.getUTCHours()>=12)]},q:function(e){return 1+~~(e.getUTCMonth()/3)},Q:Wa,s:Va,S:Pa,u:za,U:La,V:Aa,w:Fa,W:Da,x:null,X:null,y:Ra,Y:Ua,Z:$a,\"%\":Ba},w={a:function(e,t,n){var r=d.exec(t.slice(n));return r?(e.w=h.get(r[0].toLowerCase()),n+r[0].length):-1},A:function(e,t,n){var r=f.exec(t.slice(n));return r?(e.w=p.get(r[0].toLowerCase()),n+r[0].length):-1},b:function(e,t,n){var r=y.exec(t.slice(n));return r?(e.m=m.get(r[0].toLowerCase()),n+r[0].length):-1},B:function(e,t,n){var r=v.exec(t.slice(n));return r?(e.m=g.get(r[0].toLowerCase()),n+r[0].length):-1},c:function(e,n,r){return S(e,t,n,r)},d:qr,e:qr,f:Xr,g:Br,G:$r,H:Yr,I:Yr,j:Qr,L:Zr,m:Hr,M:Gr,p:function(e,t,n){var r=s.exec(t.slice(n));return r?(e.p=c.get(r[0].toLowerCase()),n+r[0].length):-1},q:Vr,Q:ea,s:ta,S:Kr,u:Rr,U:jr,V:Ur,w:Dr,W:Ir,x:function(e,t,r){return S(e,n,t,r)},X:function(e,t,n){return S(e,r,t,n)},y:Br,Y:$r,Z:Wr,\"%\":Jr};function x(e,t){return function(n){var r,a,i,o=[],u=-1,l=0,s=e.length;for(n instanceof Date||(n=new Date(+n));++u<s;)37===e.charCodeAt(u)&&(o.push(e.slice(l,u)),null!=(a=Mr[r=e.charAt(++u)])?r=e.charAt(++u):a=\"e\"===r?\" \":\"0\",(i=t[r])&&(r=i(n,a)),o.push(r),l=u+1);return o.push(e.slice(l,u)),o.join(\"\")}}function k(e,t){return function(n){var r,a,i=Sr(1900,void 0,1);if(S(i,e,n+=\"\",0)!=n.length)return null;if(\"Q\"in i)return new Date(i.Q);if(\"s\"in i)return new Date(1e3*i.s+(\"L\"in i?i.L:0));if(t&&!(\"Z\"in i)&&(i.Z=0),\"p\"in i&&(i.H=i.H%12+12*i.p),void 0===i.m&&(i.m=\"q\"in i?i.q:0),\"V\"in i){if(i.V<1||i.V>53)return null;\"w\"in i||(i.w=1),\"Z\"in i?(a=(r=kr(Sr(i.y,0,1))).getUTCDay(),r=a>4||0===a?ur.ceil(r):ur(r),r=Gn.offset(r,7*(i.V-1)),i.y=r.getUTCFullYear(),i.m=r.getUTCMonth(),i.d=r.getUTCDate()+(i.w+6)%7):(a=(r=xr(Sr(i.y,0,1))).getDay(),r=a>4||0===a?Jn.ceil(r):Jn(r),r=Yn.offset(r,7*(i.V-1)),i.y=r.getFullYear(),i.m=r.getMonth(),i.d=r.getDate()+(i.w+6)%7)}else(\"W\"in i||\"U\"in i)&&(\"w\"in i||(i.w=\"u\"in i?i.u%7:\"W\"in i?1:0),a=\"Z\"in i?kr(Sr(i.y,0,1)).getUTCDay():xr(Sr(i.y,0,1)).getDay(),i.m=0,i.d=\"W\"in i?(i.w+6)%7+7*i.W-(a+5)%7:i.w+7*i.U-(a+6)%7);return\"Z\"in i?(i.H+=i.Z/100|0,i.M+=i.Z%100,kr(i)):xr(i)}}function S(e,t,n,r){for(var a,i,o=0,u=t.length,l=n.length;o<u;){if(r>=l)return-1;if(37===(a=t.charCodeAt(o++))){if(a=t.charAt(o++),!(i=w[a in Mr?t.charAt(o++):a])||(r=i(e,n,r))<0)return-1}else if(a!=n.charCodeAt(r++))return-1}return r}return b.x=x(n,b),b.X=x(r,b),b.c=x(t,b),_.x=x(n,_),_.X=x(r,_),_.c=x(t,_),{format:function(e){var t=x(e+=\"\",b);return t.toString=function(){return e},t},parse:function(e){var t=k(e+=\"\",!1);return t.toString=function(){return e},t},utcFormat:function(e){var t=x(e+=\"\",_);return t.toString=function(){return e},t},utcParse:function(e){var t=k(e+=\"\",!0);return t.toString=function(){return e},t}}}({dateTime:\"%x, %X\",date:\"%-m/%-d/%Y\",time:\"%-I:%M:%S %p\",periods:[\"AM\",\"PM\"],days:[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],shortDays:[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],months:[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"],shortMonths:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"]}),Cr=Er.format,Tr=Er.parse,Er.utcFormat,Er.utcParse;var ni=function(t){!function(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function\");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,\"prototype\",{writable:!1}),t&&Ja(e,t)}(u,t);var n,r,a,i,o=(a=u,i=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,t=ti(a);if(i){var n=ti(this).constructor;e=Reflect.construct(t,arguments,n)}else e=t.apply(this,arguments);return function(e,t){if(t&&(\"object\"===Za(t)||\"function\"==typeof t))return t;if(void 0!==t)throw new TypeError(\"Derived constructors may only return object or undefined\");return ei(e)}(this,e)});function u(){var e;return function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,u),e=o.call(this),window.lastAdditiveForceArrayVisualizer=ei(e),e.topOffset=28,e.leftOffset=80,e.height=350,e.effectFormat=ze(\".2\"),e.redraw=(0,Re.debounce)((function(){return e.draw()}),200),e}return n=u,(r=[{key:\"componentDidMount\",value:function(){var e=this;this.mainGroup=this.svg.append(\"g\"),this.onTopGroup=this.svg.append(\"g\"),this.xaxisElement=this.onTopGroup.append(\"g\").attr(\"transform\",\"translate(0,35)\").attr(\"class\",\"force-bar-array-xaxis\"),this.yaxisElement=this.onTopGroup.append(\"g\").attr(\"transform\",\"translate(0,35)\").attr(\"class\",\"force-bar-array-yaxis\"),this.hoverGroup1=this.svg.append(\"g\"),this.hoverGroup2=this.svg.append(\"g\"),this.baseValueTitle=this.svg.append(\"text\"),this.hoverLine=this.svg.append(\"line\"),this.hoverxOutline=this.svg.append(\"text\").attr(\"text-anchor\",\"middle\").attr(\"font-weight\",\"bold\").attr(\"fill\",\"#fff\").attr(\"stroke\",\"#fff\").attr(\"stroke-width\",\"6\").attr(\"font-size\",\"12px\"),this.hoverx=this.svg.append(\"text\").attr(\"text-anchor\",\"middle\").attr(\"font-weight\",\"bold\").attr(\"fill\",\"#000\").attr(\"font-size\",\"12px\"),this.hoverxTitle=this.svg.append(\"text\").attr(\"text-anchor\",\"middle\").attr(\"opacity\",.6).attr(\"font-size\",\"12px\"),this.hoveryOutline=this.svg.append(\"text\").attr(\"text-anchor\",\"end\").attr(\"font-weight\",\"bold\").attr(\"fill\",\"#fff\").attr(\"stroke\",\"#fff\").attr(\"stroke-width\",\"6\").attr(\"font-size\",\"12px\"),this.hovery=this.svg.append(\"text\").attr(\"text-anchor\",\"end\").attr(\"font-weight\",\"bold\").attr(\"fill\",\"#000\").attr(\"font-size\",\"12px\"),this.xlabel=this.wrapper.select(\".additive-force-array-xlabel\"),this.ylabel=this.wrapper.select(\".additive-force-array-ylabel\");var t=void 0;\"string\"==typeof this.props.plot_cmap?this.props.plot_cmap in je.colors?t=je.colors[this.props.plot_cmap]:(console.log(\"Invalid color map name, reverting to default.\"),t=je.colors.RdBu):Array.isArray(this.props.plot_cmap)&&(t=this.props.plot_cmap),this.colors=t.map((function(e){return q(e)})),this.brighterColors=[1.45,1.6].map((function(t,n){return e.colors[n].brighter(t)}));var n=ze(\",.4\");null!=this.props.ordering_keys&&null!=this.props.ordering_keys_time_format?(this.parseTime=Tr(this.props.ordering_keys_time_format),this.formatTime=Cr(this.props.ordering_keys_time_format),this.xtickFormat=function(e){return\"object\"==Za(e)?this.formatTime(e):n(e)}):(this.parseTime=null,this.formatTime=null,this.xtickFormat=n),this.xscale=De(),this.xaxis=dn().scale(this.xscale).tickSizeInner(4).tickSizeOuter(0).tickFormat((function(t){return e.xtickFormat(t)})).tickPadding(-18),this.ytickFormat=n,this.yscale=De(),this.yaxis=pn(an,undefined).scale(this.yscale).tickSizeInner(4).tickSizeOuter(0).tickFormat((function(t){return e.ytickFormat(e.invLinkFunction(t))})).tickPadding(2),this.xlabel.node().onchange=function(){return e.internalDraw()},this.ylabel.node().onchange=function(){return e.internalDraw()},this.svg.on(\"mousemove\",(function(t){return e.mouseMoved(t)})),this.svg.on(\"click\",(function(){return alert(\"This original index of the sample you clicked is \"+e.nearestExpIndex)})),this.svg.on(\"mouseout\",(function(t){return e.mouseOut(t)})),window.addEventListener(\"resize\",this.redraw),window.setTimeout(this.redraw,50)}},{key:\"componentDidUpdate\",value:function(){this.draw()}},{key:\"mouseOut\",value:function(){this.hoverLine.attr(\"display\",\"none\"),this.hoverx.attr(\"display\",\"none\"),this.hoverxOutline.attr(\"display\",\"none\"),this.hoverxTitle.attr(\"display\",\"none\"),this.hovery.attr(\"display\",\"none\"),this.hoveryOutline.attr(\"display\",\"none\"),this.hoverGroup1.attr(\"display\",\"none\"),this.hoverGroup2.attr(\"display\",\"none\")}},{key:\"mouseMoved\",value:function(e){var t,n,r=this;this.hoverLine.attr(\"display\",\"\"),this.hoverx.attr(\"display\",\"\"),this.hoverxOutline.attr(\"display\",\"\"),this.hoverxTitle.attr(\"display\",\"\"),this.hovery.attr(\"display\",\"\"),this.hoveryOutline.attr(\"display\",\"\"),this.hoverGroup1.attr(\"display\",\"\"),this.hoverGroup2.attr(\"display\",\"\");var a=function(e,t){if(e=function(e){let t;for(;t=e.sourceEvent;)e=t;return e}(e),void 0===t&&(t=e.currentTarget),t){var n=t.ownerSVGElement||t;if(n.createSVGPoint){var r=n.createSVGPoint();return r.x=e.clientX,r.y=e.clientY,[(r=r.matrixTransform(t.getScreenCTM().inverse())).x,r.y]}if(t.getBoundingClientRect){var a=t.getBoundingClientRect();return[e.clientX-a.left-t.clientLeft,e.clientY-a.top-t.clientTop]}}return[e.pageX,e.pageY]}(e,this.svg.node())[0];if(this.props.explanations){for(t=0;t<this.currExplanations.length;++t)(!n||Math.abs(n.xmapScaled-a)>Math.abs(this.currExplanations[t].xmapScaled-a))&&(n=this.currExplanations[t]);this.nearestExpIndex=n.origInd,this.hoverLine.attr(\"x1\",n.xmapScaled).attr(\"x2\",n.xmapScaled).attr(\"y1\",0+this.topOffset).attr(\"y2\",this.height),this.hoverx.attr(\"x\",n.xmapScaled).attr(\"y\",this.topOffset-5).text(this.xtickFormat(n.xmap)),this.hoverxOutline.attr(\"x\",n.xmapScaled).attr(\"y\",this.topOffset-5).text(this.xtickFormat(n.xmap)),this.hoverxTitle.attr(\"x\",n.xmapScaled).attr(\"y\",this.topOffset-18).text(n.count>1?n.count+\" averaged samples\":\"\"),this.hovery.attr(\"x\",this.leftOffset-6).attr(\"y\",n.joinPointy).text(this.ytickFormat(this.invLinkFunction(n.joinPoint))),this.hoveryOutline.attr(\"x\",this.leftOffset-6).attr(\"y\",n.joinPointy).text(this.ytickFormat(this.invLinkFunction(n.joinPoint)));for(var i,o,u=[],l=this.currPosOrderedFeatures.length-1;l>=0;--l){var s=this.currPosOrderedFeatures[l],c=n.features[s];o=5+(c.posyTop+c.posyBottom)/2,(!i||o-i>=15)&&c.posyTop-c.posyBottom>=6&&(u.push(c),i=o)}var f=[];i=void 0;var p,d=Ga(this.currNegOrderedFeatures);try{for(d.s();!(p=d.n()).done;){var h=p.value,v=n.features[h];o=5+(v.negyTop+v.negyBottom)/2,(!i||i-o>=15)&&v.negyTop-v.negyBottom>=6&&(f.push(v),i=o)}}catch(e){d.e(e)}finally{d.f()}var g=function(e){var t=\"\";return null!==e.value&&void 0!==e.value&&(t=\" = \"+(isNaN(e.value)?e.value:r.ytickFormat(e.value))),n.count>1?\"mean(\"+r.props.featureNames[e.ind]+\")\"+t:r.props.featureNames[e.ind]+t},y=this.hoverGroup1.selectAll(\".pos-values\").data(u);y.enter().append(\"text\").attr(\"class\",\"pos-values\").merge(y).attr(\"x\",n.xmapScaled+5).attr(\"y\",(function(e){return 4+(e.posyTop+e.posyBottom)/2})).attr(\"text-anchor\",\"start\").attr(\"font-size\",12).attr(\"stroke\",\"#fff\").attr(\"fill\",\"#fff\").attr(\"stroke-width\",\"4\").attr(\"stroke-linejoin\",\"round\").attr(\"opacity\",1).text(g),y.exit().remove();var m=this.hoverGroup2.selectAll(\".pos-values\").data(u);m.enter().append(\"text\").attr(\"class\",\"pos-values\").merge(m).attr(\"x\",n.xmapScaled+5).attr(\"y\",(function(e){return 4+(e.posyTop+e.posyBottom)/2})).attr(\"text-anchor\",\"start\").attr(\"font-size\",12).attr(\"fill\",this.colors[0]).text(g),m.exit().remove();var b=this.hoverGroup1.selectAll(\".neg-values\").data(f);b.enter().append(\"text\").attr(\"class\",\"neg-values\").merge(b).attr(\"x\",n.xmapScaled+5).attr(\"y\",(function(e){return 4+(e.negyTop+e.negyBottom)/2})).attr(\"text-anchor\",\"start\").attr(\"font-size\",12).attr(\"stroke\",\"#fff\").attr(\"fill\",\"#fff\").attr(\"stroke-width\",\"4\").attr(\"stroke-linejoin\",\"round\").attr(\"opacity\",1).text(g),b.exit().remove();var _=this.hoverGroup2.selectAll(\".neg-values\").data(f);_.enter().append(\"text\").attr(\"class\",\"neg-values\").merge(_).attr(\"x\",n.xmapScaled+5).attr(\"y\",(function(e){return 4+(e.negyTop+e.negyBottom)/2})).attr(\"text-anchor\",\"start\").attr(\"font-size\",12).attr(\"fill\",this.colors[1]).text(g),_.exit().remove()}}},{key:\"draw\",value:function(){var e=this;if(this.props.explanations&&0!==this.props.explanations.length){(0,Re.each)(this.props.explanations,(function(e,t){return e.origInd=t}));var t,n={},r={},a={},i=Ga(this.props.explanations);try{for(i.s();!(t=i.n()).done;){var o=t.value;for(var u in o.features)void 0===n[u]&&(n[u]=0,r[u]=0,a[u]=0),o.features[u].effect>0?n[u]+=o.features[u].effect:r[u]-=o.features[u].effect,null!==o.features[u].value&&void 0!==o.features[u].value&&(a[u]+=1)}}catch(e){i.e(e)}finally{i.f()}this.usedFeatures=(0,Re.sortBy)((0,Re.keys)(n),(function(e){return-(n[e]+r[e])})),console.log(\"found \",this.usedFeatures.length,\" used features\"),this.posOrderedFeatures=(0,Re.sortBy)(this.usedFeatures,(function(e){return n[e]})),this.negOrderedFeatures=(0,Re.sortBy)(this.usedFeatures,(function(e){return-r[e]})),this.singleValueFeatures=(0,Re.filter)(this.usedFeatures,(function(e){return a[e]>0}));var l=[\"sample order by similarity\",\"sample order by output value\",\"original sample ordering\"].concat(this.singleValueFeatures.map((function(t){return e.props.featureNames[t]})));null!=this.props.ordering_keys&&l.unshift(\"sample order by key\");var s=this.xlabel.selectAll(\"option\").data(l);s.enter().append(\"option\").merge(s).attr(\"value\",(function(e){return e})).text((function(e){return e})),s.exit().remove();var c=this.props.outNames[0]?this.props.outNames[0]:\"model output value\";(l=(0,Re.map)(this.usedFeatures,(function(t){return[e.props.featureNames[t],e.props.featureNames[t]+\" effects\"]}))).unshift([\"model output value\",c]);var f=this.ylabel.selectAll(\"option\").data(l);f.enter().append(\"option\").merge(f).attr(\"value\",(function(e){return e[0]})).text((function(e){return e[1]})),f.exit().remove(),this.ylabel.style(\"top\",(this.height-10-this.topOffset)/2+this.topOffset+\"px\").style(\"left\",10-this.ylabel.node().offsetWidth/2+\"px\"),this.internalDraw()}}},{key:\"internalDraw\",value:function(){var e,t,n=this,r=Ga(this.props.explanations);try{for(r.s();!(e=r.n()).done;){var a,i=e.value,o=Ga(this.usedFeatures);try{for(o.s();!(a=o.n()).done;){var u=a.value;i.features.hasOwnProperty(u)||(i.features[u]={effect:0,value:0}),i.features[u].ind=u}}catch(e){o.e(e)}finally{o.f()}}}catch(e){r.e(e)}finally{r.f()}var l=this.xlabel.node().value,s=\"sample order by key\"===l&&null!=this.props.ordering_keys_time_format;if(this.xscale=s?Ya():De(),this.xaxis.scale(this.xscale),\"sample order by similarity\"===l)t=(0,Re.sortBy)(this.props.explanations,(function(e){return e.simIndex})),(0,Re.each)(t,(function(e,t){return e.xmap=t}));else if(\"sample order by output value\"===l)t=(0,Re.sortBy)(this.props.explanations,(function(e){return-e.outValue})),(0,Re.each)(t,(function(e,t){return e.xmap=t}));else if(\"original sample ordering\"===l)t=(0,Re.sortBy)(this.props.explanations,(function(e){return e.origInd})),(0,Re.each)(t,(function(e,t){return e.xmap=t}));else if(\"sample order by key\"===l)t=this.props.explanations,s?(0,Re.each)(t,(function(e,t){return e.xmap=n.parseTime(n.props.ordering_keys[t])})):(0,Re.each)(t,(function(e,t){return e.xmap=n.props.ordering_keys[t]})),t=(0,Re.sortBy)(t,(function(e){return e.xmap}));else{var c=(0,Re.findKey)(this.props.featureNames,(function(e){return e===l}));(0,Re.each)(this.props.explanations,(function(e,t){return e.xmap=e.features[c].value}));var f=(0,Re.sortBy)(this.props.explanations,(function(e){return e.xmap})),p=(0,Re.map)(f,(function(e){return e.xmap}));if(\"string\"==typeof p[0])return void alert(\"Ordering by category names is not yet supported.\");var d,h,v=(0,Re.min)(p),g=((0,Re.max)(p)-v)/100;t=[];for(var y=0;y<f.length;++y){var m=f[y];if(d&&!h&&m.xmap-d.xmap<=g||h&&m.xmap-h.xmap<=g){h||((h=(0,Re.cloneDeep)(d)).count=1);var b,_=Ga(this.usedFeatures);try{for(_.s();!(b=_.n()).done;){var w=b.value;h.features[w].effect+=m.features[w].effect,h.features[w].value+=m.features[w].value}}catch(e){_.e(e)}finally{_.f()}h.count+=1}else if(d)if(h){var x,k=Ga(this.usedFeatures);try{for(k.s();!(x=k.n()).done;){var S=x.value;h.features[S].effect/=h.count,h.features[S].value/=h.count}}catch(e){k.e(e)}finally{k.f()}t.push(h),h=void 0}else t.push(d);d=m}d.xmap-t[t.length-1].xmap>g&&t.push(d)}this.currUsedFeatures=this.usedFeatures,this.currPosOrderedFeatures=this.posOrderedFeatures,this.currNegOrderedFeatures=this.negOrderedFeatures;var E=this.ylabel.node().value;if(\"model output value\"!==E){var C=t;t=(0,Re.cloneDeep)(t);for(var T=(0,Re.findKey)(this.props.featureNames,(function(e){return e===E})),M=0;M<t.length;++M){var N=t[M].features[T];t[M].features={},t[M].features[T]=N,C[M].remapped_version=t[M]}this.currUsedFeatures=[T],this.currPosOrderedFeatures=[T],this.currNegOrderedFeatures=[T]}this.currExplanations=t,\"identity\"===this.props.link?this.invLinkFunction=function(e){return n.props.baseValue+e}:\"logit\"===this.props.link?this.invLinkFunction=function(e){return 1/(1+Math.exp(-(n.props.baseValue+e)))}:console.log(\"ERROR: Unrecognized link function: \",this.props.link),this.predValues=(0,Re.map)(t,(function(e){return(0,Re.sum)((0,Re.map)(e.features,(function(e){return e.effect})))}));var P=this.wrapper.node().offsetWidth;if(0==P)return setTimeout((function(){return n.draw(t)}),500);this.svg.style(\"height\",this.height+\"px\"),this.svg.style(\"width\",P+\"px\");var z=(0,Re.map)(t,(function(e){return e.xmap}));this.xscale.domain([(0,Re.min)(z),(0,Re.max)(z)]).range([this.leftOffset,P]).clamp(!0),this.xaxisElement.attr(\"transform\",\"translate(0,\"+this.topOffset+\")\").call(this.xaxis);for(var L=0;L<this.currExplanations.length;++L)this.currExplanations[L].xmapScaled=this.xscale(this.currExplanations[L].xmap);for(var O=t.length,A=0,F=0;F<O;++F){var D=t[F].features,R=(0,Re.sum)((0,Re.map)((0,Re.filter)(D,(function(e){return e.effect>0})),(function(e){return e.effect})))||0,j=(0,Re.sum)((0,Re.map)((0,Re.filter)(D,(function(e){return e.effect<0})),(function(e){return-e.effect})))||0;A=Math.max(A,2.2*Math.max(R,j))}this.yscale.domain([-A/2,A/2]).range([this.height-10,this.topOffset]),this.yaxisElement.attr(\"transform\",\"translate(\"+this.leftOffset+\",0)\").call(this.yaxis);for(var U=0;U<O;++U){var I,$=t[U].features,B=-((0,Re.sum)((0,Re.map)((0,Re.filter)($,(function(e){return e.effect<0})),(function(e){return-e.effect})))||0),W=void 0,V=Ga(this.currPosOrderedFeatures);try{for(V.s();!(I=V.n()).done;)$[W=I.value].posyTop=this.yscale(B),$[W].effect>0&&(B+=$[W].effect),$[W].posyBottom=this.yscale(B),$[W].ind=W}catch(e){V.e(e)}finally{V.f()}var H,q=B,Q=Ga(this.currNegOrderedFeatures);try{for(Q.s();!(H=Q.n()).done;)$[W=H.value].negyTop=this.yscale(B),$[W].effect<0&&(B-=$[W].effect),$[W].negyBottom=this.yscale(B)}catch(e){Q.e(e)}finally{Q.f()}t[U].joinPoint=q,t[U].joinPointy=this.yscale(q)}var Y=En().x((function(e){return e[0]})).y((function(e){return e[1]})),G=this.mainGroup.selectAll(\".force-bar-array-area-pos\").data(this.currUsedFeatures);G.enter().append(\"path\").attr(\"class\",\"force-bar-array-area-pos\").merge(G).attr(\"d\",(function(e){var n=(0,Re.map)((0,Re.range)(O),(function(n){return[t[n].xmapScaled,t[n].features[e].posyTop]})),r=(0,Re.map)((0,Re.rangeRight)(O),(function(n){return[t[n].xmapScaled,t[n].features[e].posyBottom]}));return Y(n.concat(r))})).attr(\"fill\",this.colors[0]),G.exit().remove();var K=this.mainGroup.selectAll(\".force-bar-array-area-neg\").data(this.currUsedFeatures);K.enter().append(\"path\").attr(\"class\",\"force-bar-array-area-neg\").merge(K).attr(\"d\",(function(e){var n=(0,Re.map)((0,Re.range)(O),(function(n){return[t[n].xmapScaled,t[n].features[e].negyTop]})),r=(0,Re.map)((0,Re.rangeRight)(O),(function(n){return[t[n].xmapScaled,t[n].features[e].negyBottom]}));return Y(n.concat(r))})).attr(\"fill\",this.colors[1]),K.exit().remove();var Z=this.mainGroup.selectAll(\".force-bar-array-divider-pos\").data(this.currUsedFeatures);Z.enter().append(\"path\").attr(\"class\",\"force-bar-array-divider-pos\").merge(Z).attr(\"d\",(function(e){var n=(0,Re.map)((0,Re.range)(O),(function(n){return[t[n].xmapScaled,t[n].features[e].posyBottom]}));return Y(n)})).attr(\"fill\",\"none\").attr(\"stroke-width\",1).attr(\"stroke\",(function(){return n.colors[0].brighter(1.2)})),Z.exit().remove();var X=this.mainGroup.selectAll(\".force-bar-array-divider-neg\").data(this.currUsedFeatures);X.enter().append(\"path\").attr(\"class\",\"force-bar-array-divider-neg\").merge(X).attr(\"d\",(function(e){var n=(0,Re.map)((0,Re.range)(O),(function(n){return[t[n].xmapScaled,t[n].features[e].negyTop]}));return Y(n)})).attr(\"fill\",\"none\").attr(\"stroke-width\",1).attr(\"stroke\",(function(){return n.colors[1].brighter(1.5)})),X.exit().remove();for(var J=function(e,t,n,r,a){var i,o,u,l;\"pos\"===a?(i=e[n].features[t].posyBottom,o=e[n].features[t].posyTop):(i=e[n].features[t].negyBottom,o=e[n].features[t].negyTop);for(var s=n+1;s<=r;++s)\"pos\"===a?(u=e[s].features[t].posyBottom,l=e[s].features[t].posyTop):(u=e[s].features[t].negyBottom,l=e[s].features[t].negyTop),u>i&&(i=u),l<o&&(o=l);return{top:i,bottom:o}},ee=[],te=0,ne=[\"pos\",\"neg\"];te<ne.length;te++){var re,ae=ne[te],ie=Ga(this.currUsedFeatures);try{for(ie.s();!(re=ie.n()).done;)for(var oe=re.value,ue=0,le=0,se=0,ce={top:0,bottom:0},fe=void 0;le<O-1;){for(;se<100&&le<O-1;)++le,se=t[le].xmapScaled-t[ue].xmapScaled;for(ce=J(t,oe,ue,le,ae);ce.bottom-ce.top<20&&ue<le;)++ue,ce=J(t,oe,ue,le,ae);if(se=t[le].xmapScaled-t[ue].xmapScaled,ce.bottom-ce.top>=20&&se>=100){for(;le<O-1;){if(++le,!((fe=J(t,oe,ue,le,ae)).bottom-fe.top>20)){--le;break}ce=fe}se=t[le].xmapScaled-t[ue].xmapScaled,ee.push([(t[le].xmapScaled+t[ue].xmapScaled)/2,(ce.top+ce.bottom)/2,this.props.featureNames[oe]]);var pe=t[le].xmapScaled;for(ue=le;pe+100>t[ue].xmapScaled&&ue<O-1;)++ue;le=ue}}}catch(e){ie.e(e)}finally{ie.f()}}var de=this.onTopGroup.selectAll(\".force-bar-array-flabels\").data(ee);de.enter().append(\"text\").attr(\"class\",\"force-bar-array-flabels\").merge(de).attr(\"x\",(function(e){return e[0]})).attr(\"y\",(function(e){return e[1]+4})).text((function(e){return e[2]})),de.exit().remove()}},{key:\"componentWillUnmount\",value:function(){window.removeEventListener(\"resize\",this.redraw)}},{key:\"render\",value:function(){var t=this;return e.createElement(\"div\",{ref:function(e){return t.wrapper=Jt(e)},style:{textAlign:\"center\"}},e.createElement(\"style\",{dangerouslySetInnerHTML:{__html:\"\\n .force-bar-array-wrapper {\\n text-align: center;\\n }\\n .force-bar-array-xaxis path {\\n fill: none;\\n opacity: 0.4;\\n }\\n .force-bar-array-xaxis .domain {\\n opacity: 0;\\n }\\n .force-bar-array-xaxis paths {\\n display: none;\\n }\\n .force-bar-array-yaxis path {\\n fill: none;\\n opacity: 0.4;\\n }\\n .force-bar-array-yaxis paths {\\n display: none;\\n }\\n .tick line {\\n stroke: #000;\\n stroke-width: 1px;\\n opacity: 0.4;\\n }\\n .tick text {\\n fill: #000;\\n opacity: 0.5;\\n font-size: 12px;\\n padding: 0px;\\n }\\n .force-bar-array-flabels {\\n font-size: 12px;\\n fill: #fff;\\n text-anchor: middle;\\n }\\n .additive-force-array-xlabel {\\n background: none;\\n border: 1px solid #ccc;\\n opacity: 0.5;\\n margin-bottom: 0px;\\n font-size: 12px;\\n font-family: arial;\\n margin-left: 80px;\\n max-width: 300px;\\n }\\n .additive-force-array-xlabel:focus {\\n outline: none;\\n }\\n .additive-force-array-ylabel {\\n position: relative;\\n top: 0px;\\n left: 0px;\\n transform: rotate(-90deg);\\n background: none;\\n border: 1px solid #ccc;\\n opacity: 0.5;\\n margin-bottom: 0px;\\n font-size: 12px;\\n font-family: arial;\\n max-width: 150px;\\n }\\n .additive-force-array-ylabel:focus {\\n outline: none;\\n }\\n .additive-force-array-hoverLine {\\n stroke-width: 1px;\\n stroke: #fff;\\n opacity: 1;\\n }\"}}),e.createElement(\"select\",{className:\"additive-force-array-xlabel\"}),e.createElement(\"div\",{style:{height:\"0px\",textAlign:\"left\"}},e.createElement(\"select\",{className:\"additive-force-array-ylabel\"})),e.createElement(\"svg\",{ref:function(e){return t.svg=Jt(e)},style:{userSelect:\"none\",display:\"block\",fontFamily:\"arial\",sansSerif:!0}}))}}])&&Xa(n.prototype,r),Object.defineProperty(n,\"prototype\",{writable:!1}),u}(e.Component);ni.defaultProps={plot_cmap:\"RdBu\",ordering_keys:null,ordering_keys_time_format:null};const ri=ni;window.SHAP={SimpleListVisualizer:He,AdditiveForceVisualizer:Ln,AdditiveForceArrayVisualizer:ri,React:e,ReactDom:t}})()})();\n",
"</script>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"shap.initjs()\n",
"explainer = shap.TreeExplainer(bst)\n",
"shap_values = explainer.shap_values(x_train.to_numpy())"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 557
},
"id": "9G4FLcML2xLU",
"outputId": "c045c376-7b12-42b2-9f11-651c047a00d6"
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAxYAAAIcCAYAAABrUjh1AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB4aUlEQVR4nO3de3zP9f//8fvbjrZhzofmPEvOtEwsTHIe5hDKuUiUQ0jok1OlcipFNoWcCoXNWXKonDIRKslhoQhj2Nhm9vr90W/vr7f3e7PtNTbcrpeLS+35er5er8fr+T7e36+TxTAMQwAAAABgQq7sLgAAAADA/Y9gAQAAAMA0ggUAAAAA0wgWAAAAAEwjWAAAAAAwjWABAAAAwDSCBQAAAADTCBYAAAAATCNYAAAAADCNYIEcKSwsTDdu3MjuMgAAAJBOBAsAAAAAphEsAAAAAJhGsAAAAABgGsECAAAAgGkECwAAAACmESwAAAAAmEawAAAAAGAawQIAAACAaQQLAAAAAKYRLAAAAACYRrAAAAAAYBrBAgAAAIBpBAsAAAAAphEsAAAAAJhGsAAAAABgGsECAAAAgGkECwAAAACmESwAAAAAmEawAAAAAGAawQIAAACAaQQLAAAAAKYRLAAAAACYRrAAAAAAYBrBAgAAAIBpBAsAAAAAphEsAAAAAJhGsAAAAABgmsUwDCO7iwBuZ5mclN0lAAAA5DjGMOfsLiFV7LEAAAAAYBrBAgAAAIBpBAsAAAAAphEsAAAAAJhGsAAAAABgGsECAAAAgGkECwAAAACmESwAAAAAmJZld9jw9/dPd9+IiAhJUuvWrdWxY0eNGDHCYb/g4GDlzp1bS5cutbaNHTtWq1evtv6dK1cu5cuXT1WqVFGPHj1Uo0YNh8tKTEzU8uXLtXHjRh0/flyJiYkqUqSIAgIC1K1bN/n4+KS6TeXKlbOp4VbPPfecjhw5IkmKjIy0toeGhmr27Nk2fT09PVWkSBEFBQXp+eefV758+eyW9+eff2rhwoXau3evoqOjlTt3blWoUEEtW7ZUy5Yt5eTk5LCOc+fO6csvv9TOnTv1zz//6MaNGypUqJBq1Kih4OBgPf744+rdu7eOHTumL7/8UiVLlrRbxvr16/Xmm2+qUaNG2rx5s8P1OBIZGanIyEj169cv1T5OTk7avXt3upcJAACA+0uWBYvx48fb/L1v3z6tWLFCISEhqlmzps20/Pnz69KlS6bW98Ybb8jDw0M3btzQ8ePHtWLFCu3YsUOffvqpatWqZdM3OjpaAwcO1B9//KGAgAD17dtXHh4eOnLkiFavXq3Vq1frnXfeUcOGDe3W4+bmpuPHj+vXX39V5cqVbab9/vvvOnLkiNzc3JSQkOCwzn79+qlEiRKSpKtXryoyMlJz5szRjz/+qIULFypXrv/bafT1119r0qRJypMnj4KDg1W6dGldvXpVmzdv1vjx47VhwwZNnjxZuXPntlnHjz/+qNGjRysxMVGNGzdWSEiI3NzcdObMGW3dulX9+/fXhx9+qHHjxun555/XmDFj9Nlnn9ms+8KFC5o0aZLKlSuncePG2Y3Fli1btGXLFvXq1Utly5ZN9XFp2rSp6tWrZ9d+67oAAADw4MmyYNGiRQubv2/evKkVK1aoWrVqdtMkmQ4WjRs3lre3t/XvWrVqaejQoVqwYIFNsDAMQ2+88Yb++OMPjRo1Su3atbNZznPPPaeXXnpJo0eP1vz581W+fHmb6TVq1NDhw4e1atUqu2AREREhb29vVaxYUbt27XJYZ926dVWpUiXr3506ddLw4cO1ZcsWHTlyRBUrVpQk7dq1S++//758fX316aef2mxbt27dNHPmTM2ZM0cTJ060CXHHjh3TiBEjlC9fPs2bN8/uS3+/fv20bt06ubm5qUyZMhowYICmTp2qhQsXqnv37tZ+77zzjmJjY/Xxxx8rd+7cdo/ZqVOntGXLFgUEBKS5d6pixYoOH28AAAA82B6Yn5Fr164tSTp58qRN+w8//KB9+/apcePGdqFCknx8fDRy5EglJCQoNDTUbrqLi4uaN2+uDRs22OyVSExM1IYNG9S8eXM5O2csnxUqVMi67BSffPKJJOntt9+2CRUpXn75ZVWpUkVr167V0aNHre2zZs1SQkKC3nzzTYd7EiwWi1q0aKEnnnhCktSlSxfVqlVLs2bN0vHjxyVJq1ev1g8//KDevXvbhCAAAAAgvbI9WCQmJiomJsbhv+Tk5HQv5/Tp05Jkd97Cd999J0kKCQlJdd569eqpaNGi2r59uxITE+2mt27dWlevXtWWLVusbVu2bNGVK1fUunXrNOuKjY21bs/p06cVHh6uVatWqUaNGipXrpwk6e+//9bhw4dVrVo1uz0mKSwWi9q0aSNJ1vMfEhIStH37dhUtWlR169ZNs45blzNmzBg5OztrzJgxOnPmjKZMmaKKFSvqhRdeSNcy0hIfH+/wsYyNjTW9bAAAAORcWXYoVGaFh4crPDw81ekpX75vd/nyZUmynmPx4YcfSpKaN29u0+/YsWOSZD3kyBGLxSI/Pz/98MMPOnnypHx9fW2m+/n5qWLFilq1apWaNWsm6b/DoB577DFVqFAhze3r37+/XVuDBg00YcIEWSyWdNcoSY899pgkWfdYnDp1SomJifLz80tzvts98sgjGjJkiN555x1169ZNCQkJGjt2bIb3vDgSGhrqcM9PYGCg9TECAADAgyfbg0WDBg307LPPOpz21ltvpTpf+/btbf728vLSoEGD1LFjR5v2uLg46/S0pExP7Zf11q1ba/LkyTp79qwkac+ePRo+fHiay5SkESNGqFSpUtZl//LLL1q2bJlGjBihqVOnysXFJd01enp62tSY8t87zedISEiIvvvuO+3atUsDBgywC1OZFRISosaNG9u158+fP0uWDwAAgJwp24NFyiVfHXF1dU11vg8++ECenp66du2atm7dqnXr1jm8MtOtX8YdXd41xZ2+pDdr1kwffvih9VK3Li4uatq0aarLS1G5cmWb8xaefvppFShQQJ988onCw8PVoUMHu8CQmtsDSMp/U9ozqmrVqtq1a5eqVq2aqfkdKVWqVKqPJwAAAB5c2X6ORWbVqlVLAQEBCgoK0rhx49S2bVvNmjVL27dvt+mXcs7C4cOH01xeymVjU/Yu3C5v3rxq0KCBVq9erVWrVqlBgwbKmzdvpmp/8sknJf3ffS/SW2PK9JS9CyVLlpSrq6v1PhoAAABAdrlvg8XtXnnlFeXJk0fTpk3TzZs3re1BQUGSpJUrV6Y6744dO/Tvv/+qbt26ae4ladOmjU6fPq2///77jidtpyUpKUmSdO3aNUn/nfPg5+enAwcO6MSJEw7nMQzDei5Kyja5ubmpXr16Onv2bKqXuwUAAADuhQcmWOTNm1edO3dWVFSUNmzYYG1v0KCBqlevrm+//dbhSeL//POP3n33Xbm5uemll15Kcx21a9dWv3799PLLL1svb5sZW7dulWR7svYrr7wiSXrzzTcVExNjN09YWJgOHjyoFi1a2Jww/tJLL8nNzU0TJkxQVFSUw/WtX79ee/bsyXS9AAAAwJ1k+zkWWalz585avHixPvvsMzVt2lROTk6yWCx6//33NXDgQE2YMEGbNm1SvXr15O7urqNHj2rVqlVKSkrSO++8c8cTmHPlyqUXX3wxQzXt2LHD+oU/Li5O+/fv18aNG1W0aFF17tzZ2q9u3boaNmyYpkyZoo4dO9rdefvAgQMKCAjQyJEjbZbv6+ur999/X6NHj9Zzzz2nxo0bq0qVKnJzc9PZs2e1bds2HTlyRNOnT89Q3Zl1+PBhrV271uG0hg0bysPD457UAQAAgHvrgQoW+fLlU8eOHTVv3jytW7dOrVq1kvTfDenmzp2rb775Rhs3btSnn36qGzduqHDhwmratKm6d+8uHx+fu1LTrFmzrP/v5OSkIkWKqF27durTp48KFChg07dTp06qXr26Fi1apA0bNig6Olq5c+dWhQoV9NZbb6lly5ZycnKyW0dgYKCWLVumL7/8Ujt27NCWLVuUlJSkwoULq3r16nrttdfSvFt2VtqwYYPNHqNbrVixgmABAADwgLIYhmFkdxHA7SyTk7K7BAAAgBzHGJZz9ws8MOdYAAAAAMg+BAsAAAAAphEsAAAAAJhGsAAAAABgGsECAAAAgGkECwAAAACmESwAAAAAmJZzL4SLh1po3jnq1auXXFxcsrsUAAAApAN7LAAAAACYRrAAAAAAYBrBAgAAAIBpBAsAAAAAphEsAAAAAJhGsAAAAABgGsECAAAAgGkECwAAAACmESwAAAAAmEawAAAAAGAawQIAAACAaQQLAAAAAKZZDMMwsrsI4HaWyUnZXQKQIxjDnLO7BAAA0oU9FgAAAABMI1gAAAAAMI1gAQAAAMA0ggUAAAAA0wgWAAAAAEwjWAAAAAAwjWABAAAAwDSCBQAAAADT7vmdlyIjI9WvX79Upzs5OWn37t2SJH9/f5tpLi4uKlq0qJ566im98MIL8vb21r///qtOnTqpaNGiWrhwoVxcXOyW+c4772jFihUaPny4Jk2alK46a9WqpbCwMIWGhmr27NmaP3++KlWqlOr2DBo0SN26dbO2p6d2R/7++28tWLBAu3fv1rlz5+Ti4qKyZcvqmWeeUYcOHeTq6upwvitXrmjJkiX64YcfdPLkScXHx6tAgQKqXLmymjdvrqCgII0YMUJbt25VWFiYatSoYbeM/fv3q2/fvmrYsKE2b96crnGSpIiICElS69at0+y3Zs0aFS1aNN3LBQAAwP0j227p2rRpU9WrV8+uPVcu250ofn5+6tq1q6T/vjzv3r1bX375pXbv3q1FixapaNGiGjZsmMaOHatZs2bp1VdftZl/586dWrFihYKDg1WvXj3lyZPHZvqcOXMUFRWl8ePH27QXKFDA9DbeqfbbQ9DWrVs1evRoOTk5qWXLlvLz81N8fLy2b9+uqVOnas2aNZo+fboKFixoM9+hQ4c0dOhQXbp0SfXr11ezZs3k6emp8+fPa/v27Xr99dc1YsQIjRw5Uvv379fYsWP15ZdfKnfu3NZlxMfHa+zYsfL29taoUaPUsGFDm3Xs27dPK1asUEhIiGrWrGkzLX/+/Lp06ZIkKSAgQC1btnQ4Hvny5cvUOAIAACDny7ZgUbFiRbVo0eKO/YoUKWLTr3Pnzho2bJi2bt2q77//Xk8//bRatWqlLVu2aOHChWrYsKGqVq0qSYqNjdXbb7+tYsWKaejQofLy8pKPj4/N8leuXKmoqKh01ZJR6ak9xdGjRzV69Gh5e3srNDTUps4uXbpoxYoVeueddzRy5EiFhobKYrFIki5cuKDXXntNCQkJDvdEvPjii9q5c6euXLmi/Pnza9SoURo2bJimT5+uESNGWPtNnz5dp0+f1uTJk+Xt7W03Hjdv3tSKFStUrVo1h2OVEixKlSp1V8YSAAAAOdt9eY5F7dq1JUmnTp2yto0ePVp58uTRmDFjFB8fL0maMmWKzp07pzFjxsjLyytbar2do9olKTQ0VAkJCRo5cqRd+JGkkJAQNW7cWD///LN+/PFHa/uCBQt08eJFvfrqqw4Pb5KkJ598Uk2bNpUkNWzYUC1atNDXX3+tn376SdJ/h3MtW7ZMLVu2tNtTAQAAAKRHtgWL+Ph4xcTE2P2LjY2947ynT5+WJOXNm9faVqBAAb3xxhs6efKkPvnkE/34449atWqVOnbsqCeeeMJ0vbGxsZmu9061JyQkaPv27SpatKgCAwNTnbdt27aSZHP+w+bNm+Xi4qJWrVqlu4bhw4erSJEiGj9+vM6fP68JEyaoSJEiGj58eIa2xZHExESH43T16lXTywYAAEDOlW2HQoWGhio0NNSuPTAwUB9++KH176SkJMXExEiSrl69qp07d2rZsmXy8PCw+3W9cePGatasmZYsWaJ169apVKlSGjhwYJbU279//wzPk97aT506pcTERPn5+aW5vMcee0zSf4dNSVJcXJzOnDkjX19fubu7p7uuPHny6H//+59eeeUVdenSRZcvX9bHH3+cJXt1wsPDFR4ebtderlw5LV261PTyAQAAkDNlW7BIObTndvnz57f5e9euXXb9KlasqDfeeMPhCdavv/669uzZo+joaE2bNi1DX7jTMmLECJUqVcqu/c8//7QJQpmpPWWvx52+2Ht6etr0j4uLs2nPiDp16igkJMR6QnadOnUyvAxHGjRooGeffdau3cPDI0uWDwAAgJwp24JFqVKlFBAQcMd+VapU0csvvyzDMHT27FktXrxY586dk7Oz49Lz5s2r0qVLKzo6WtWqVcuyeitXruzwcrNOTk6ma08JFHc6rColSKT0TwkU165dS/+G3KJatWrWE7KzSpEiRdL1uAIAAODBkuNP3vb29lZAQIDq1Kmjtm3bavbs2XJyctKIESOsJ2nnVOmtvWTJknJ1ddWRI0fSXN7hw4clSb6+vpL+CxbFixdXVFRUjh8LAAAAPNhyfLC4Xb58+fTyyy/r77//1uLFi7O7nAxJrXY3NzfVrVtX//77r3bs2JHq/CtXrpQkBQUFWduCgoJ048YNrV279q7VDQAAANzJfRcsJKlFixZ65JFHtHDhwgxflSm7pVb7Sy+9JFdXV7377rv6559/7OYLDw/Xt99+q1q1aumpp56ytnfv3l358+fX9OnTdeDAAYfr3LVrlzZs2JD1GwMAAAD8f9l2jsXhw4dT/ZW9YcOGaZ7s6+zsrF69euntt9/WV199pRdffPFulZnlUqu9QoUKmjBhgt566y117txZrVq1st55e8eOHdqxY4f8/Pw0ceJE683xJKlQoUKaNm2ahg4dqhdffFENGjRQrVq1rHfe3rlzp/bv36833njjnmzfyZMnU31ca9eurUKFCt2TOgAAAHBvZVuw2LBhQ6q/oq9YseKOVxFq1aqVPvvsMy1atEidO3fOMTfAS4/Uan/66afl5+enBQsWaPv27Vq5cqVcXFxUtmxZDRkyRB06dJCbm5vd8qpUqaKlS5dqyZIl+uGHHzRr1iwlJCSoQIECqlKliqZMmaIGDRrck23bvXu3du/e7XDajBkzCBYAAAAPKIthGEZ2FwHczjI5KbtLAHIEY1i2/f4DAECG3JfnWAAAAADIWQgWAAAAAEwjWAAAAAAwjWABAAAAwDSCBQAAAADTCBYAAAAATCNYAAAAADCNC6QjRwrNO0e9evWSi4tLdpcCAACAdGCPBQAAAADTCBYAAAAATCNYAAAAADCNYAEAAADANIIFAAAAANMIFgAAAABMI1gAAAAAMI1gAQAAAMA0ggUAAAAA0wgWAAAAAEwjWAAAAAAwjWABAAAAwDSLYRhGdhcB3M4yOSm7S8BDwhjmnN0lAADwQGCPBQAAAADTCBYAAAAATCNYAAAAADCNYAEAAADANIIFAAAAANMIFgAAAABMI1gAAAAAMI1gAQAAAMC0B+7OUJGRkerXr58GDRqkbt26pdknNU5OTtq9e7ck6Z9//lHr1q3VqlUrjR071mH/4OBgSdKqVavspv32229aunSp9u3bpwsXLshisahEiRIKCAhQ+/btVaZMGZv+sbGx+uqrr7RlyxadOnVKN2/eVIkSJRQYGKiuXbuqYMGCDmtISkrSmjVrtGHDBh05ckSxsbHy9PSUr6+vgoKC1LZtW61cuVKTJ09W//791bt3b7tlXL58Wc8++6zc3NyUN29eHT58ONUxutWYMWMUHBys4OBgnTlzJtV+48ePV4sWLdK1TAAAANxfHrhgkRFNmzZVvXr17Npz5cqaHTlhYWGaPXu2vL291axZM5UtW1bJyck6fvy4Nm7cqKVLl2rz5s3y9PSUJP3111969dVXdebMGQUFBalNmzZydnbWwYMH9eWXXyoiIkLTpk1TtWrVbNZz6dIlvfbaazp48KCqVKmiLl26qFChQrp69ar27dunadOmaf/+/Zo4caK2bdum2bNn66mnnlKFChVslvP+++/r4sWL+vTTT5WUlKSLFy9ap8XExGjq1KmqWbOmQkJCbOa7tZ6iRYtqwIABDsejevXqpsYTAAAAOddDHSwqVqx4135BDw8PV1hYmPz9/TV58mR5eXnZTB84cKBmz54twzAkSfHx8RoyZIjOnTunadOmKTAw0Nq3Xbt26tixo/r376+hQ4fqq6++su65MAxDI0aM0MGDBzVs2DB17tzZZj1du3bVyZMntWnTJlksFr311lvq3LmzxowZo/nz58vZ+b+nwObNm7Vx40Z16dJF/v7+dtvzzz//aOrUqXrkkUfSHDNPT0/2SgAAADyEOMfiLrhx44ZmzpwpDw8PTZw40S5USJK7u7teffVV67SVK1fq5MmT6tKli02oSFGpUiUNGDBAly5d0oIFC6ztP/zwg37++Wc988wzdqEiRalSpayHPhUvXlyvvfaajhw5otmzZ0v6b2/Ee++9p9KlS6e6twEAAABIy0MdLOLj4xUTE2P3LzY21tRyf/nlF0VHR6thw4bKnz9/uubZvHmzpP/2TqQmODhYzs7O1r6S9N13391xvtu1adNGTz31lObNm6dff/1V7733ni5fvqxx48bJ3d093ctxJDk52eGYxsTEWPfOAAAA4MHzUB8KFRoaqtDQULv2wMBAffjhh5le7tGjRyVJfn5+6Z7n2LFj8vT0VMmSJVPt4+7urjJlyujo0aO6du2aPDw8dOzYsQyvS5JGjx6tTp06adCgQYqJiVHv3r1VpUqVDC3DkaioKDVu3NjhtE2bNsnb29v0OgAAAJDzPNTBIiQkxOGX4PTuZUhNXFycJDk8BCo1sbGxKlSo0B37pZzoHRsbKw8PD+u6UtrTq1ChQho+fLjefPNNlS9fXn379s3Q/KkpUaKERo8e7XBaRsYDAAAA95eHOliUKlVKAQEBWbIsi8Vi/f+UL/kpX/rTw8vLK12HYN0eWlLWde3aNeXNmzfd65P+72pOjz32mPUkbrPc3d2zbEwBAABw/3ioz7FIDzc3N0n/nY+RmuvXr1v7SZKvr68k6Y8//kj3esqXL6+4uDidOnUq1T7x8fGKiopSiRIl5OHhYZ0vo+sCAAAAshrB4g68vb3l4eGhEydOOJx+6dIlxcTEqESJEta26tWrq2DBgtq2bZtiYmLStZ6goCBJ/10dKjWrV69WUlKSta8kNWrU6I7zAQAAAHcbweIOnJyc9NRTT+nYsWPatWuX3fRFixZJkho2bGhtc3FxUf/+/RUXF6dRo0Y5PCQqISFBM2bMsB7+1LZtW5UsWVKLFi3Sjh077PofPnxYM2bMUP78+W3uKF6/fn3VqlVLGzZs0LJlyxxuw6lTpzR37twMbTcAAACQEQ/sORZ79uxRQkKCXbu3t7fKlCkj6b8v62vXrnU4f8OGDa2HG7366quKjIzUoEGD1KpVKz366KNKSEjQnj17tGPHDtWqVUvBwcE287dp00b//vuvZs+erZCQEDVt2lTlypVTcnKyoqKitGnTJl28eFE9e/aUJOXOnVtTp07Vq6++qsGDB6tRo0Z6/PHH5eTkpF9//VVr166Vh4eHJk+ebHOSt8Vi0fvvv68hQ4bo/fff19q1a1W/fn0VLFhQV69e1f79+/X9999b92zcbXFxcamOqa+vb4avXgUAAID7g8V4wG4uEBkZqX79+qU6vXTp0ho5cmSafSRpxYoVNpd+PX/+vObMmaMdO3bo3LlzcnJyUqlSpdSkSRM999xzcnV1dbic3377TUuWLNG+fft04cIFWSwW+fj4KCAgQB06dFCpUqVs+sfGxurLL7/Uli1bdOrUKSUnJ6tYsWJ66qmn1LVr11SvHJWUlKTVq1dr48aN+uOPPxQbGysvLy9VqFBBTz/9tIKDg+3uUfHPP/+odevWatWqlcaOHZvmeKSnb3BwsM6cOZPqMnr37q3+/funuZ4UlslJ6eoHmGUMe2B/XwEA4J564IIFHgwEC9wrBAsAALIG51gAAAAAMI1gAQAAAMA0ggUAAAAA0wgWAAAAAEwjWAAAAAAwjWABAAAAwDSCBQAAAADTuIA7cqTQvHPUq1cvubi4ZHcpAAAASAf2WAAAAAAwjWABAAAAwDSCBQAAAADTCBYAAAAATCNYAAAAADCNYAEAAADANIIFAAAAANMIFgAAAABMI1gAAAAAMI1gAQAAAMA0ggUAAAAA0wgWAAAAAEyzGIZhZHcRwO0sk5OyuwTkMMYw5+wuAQAApIE9FgAAAABMI1gAAAAAMI1gAQAAAMA0ggUAAAAA0wgWAAAAAEwjWAAAAAAwjWABAAAAwDSCBQAAAADTMnzHqcjISPXr10+DBg1St27dHPbx9/dXYGCgPvzwQ7tp06dP1/z581WyZEmtWLHC4fyrVq3SuHHjUq3Bx8dHK1eulCT9888/at26tSSlus6kpCQ1a9ZMMTExKl68uFatWmXX588//9TChQu1d+9eRUdHK3fu3KpQoYJatmypli1bysnJyWEtFy5c0JIlS7Rz506dPn1a169fV968eeXr66u6desqODhY3t7e1v5jx47V6tWrtWnTJpt2R2JjY/XVV19py5YtOnXqlG7evKkSJUooMDBQXbt2VcGCBW363zoWKZydnVWoUCFVqlRJ3bt3V5UqVWymBwcHK3fu3Fq6dKldjZ6engoPD7erM+Xxee+999S4cWObsVi4cKF27Nihs2fPymKxqECBAqpYsaKeeeYZNWrUKM3tBQAAwP3rnt7KNikpSWvWrJGPj49OnTqlvXv36vHHH0+1f+fOnVWpUiW7dg8PD7s2Nzc37dy5UxcuXFChQoVspm3btk0xMTFyc3NzuJ6vv/5akyZNUp48eRQcHKzSpUvr6tWr2rx5s8aPH68NGzZo8uTJyp07t818O3bs0KhRoxQfH6+goCC1aNFCXl5eiomJ0cGDBzVz5kytWLFCy5cvT8/w2Pjrr7/06quv6syZMwoKClKbNm3k7OysgwcP6ssvv1RERISmTZumatWq2c0bEBCgli1bSpISExN18uRJrVixQtu2bdPnn39uFy5SExcXp88//1xDhw69Y98zZ86oR48eiouLU7NmzdShQwdJsj7Oq1atIlgAAAA8wO5psPjxxx8VHR2tTz/9VKNHj1ZERESawaJGjRo2v4inJTAwUFu3btWaNWvUo0cPm2kRERGqUKGCbt68qevXr9tM27Vrl95//335+vrq008/tfl1vlu3bpo5c6bmzJmjiRMnavz48dZpx44d0+uvv658+fJp7ty5Klu2rF1N0dHR+uqrr9JV/63i4+M1ZMgQnTt3TtOmTVNgYKB1Wrt27dSxY0f1799fQ4cO1VdffWW356JUqVJq0aKFTVv16tU1dOhQrV+/Pt3BolKlSvrmm2/03HPPqXjx4mn2XbBggS5evKjJkyerYcOGdtMvXLiQrnUCAADg/nRPz7EIDw/XI488In9/fzVr1kzfffedYmNjs2TZBQoUUL169ewOc7pw4YJ27dql4OBgh/N98sknkqS3337b4aFJL7/8sqpUqaK1a9fq6NGj1vZZs2YpPj5e//vf/xyGCkkqWLCgBgwYkOFtWblypU6ePKkuXbrYhIoUlSpV0oABA3Tp0iUtWLAgXcssXLiwJMnFxSXddQwYMEA3btzQzJkz79j31KlTkqTatWs7nH77XiQAAAA8WDIdLOLj4xUTE+PwnyMXLlzQjh071LJlS1ksFgUHBys+Pl4bN25MdR3Xrl1zuPzb9zqkaN26taKionTgwAFr2+rVq5UrVy67X/Al6e+//9bhw4dVrVo1lS9f3uEyLRaL2rRpI0navHmzJCkhIUHbt29X8eLFVadOnVTrz6yU9bRr1y7VPsHBwXJ2drb2vVViYqJ1rM6fP6/IyEhNmjRJ7u7uDschNY8++qiaNWum9evX68iRI2n29fHxkSStWLFChmGkex0AAAB4MGT6UKjQ0FCFhoamu//q1auVnJxsPfa/QoUK8vPzU3h4eKpfoG899OhWHTt21IgRI+zaAwMDVbBgQa1atcp67kFERISeeuoph3sjjh07JkmqWLFimrU/9thjkmTdY3Hq1CklJiaqQoUKdn0TEhLsgo+Xl5ecndM/1MeOHZOnp6dKliyZah93d3eVKVNGR48e1bVr12zOOwkPD1d4eLhN/6JFi2rGjBkOa07Lyy+/rE2bNunjjz/Wxx9/nGq/559/XmvXrtW0adO0ePFi1axZU5UqVVLNmjWt4wcAAIAHV6aDRUhISKrnPzg6/CciIkI1a9bUI488Ym0LDg7WlClTdOzYMYd7DPr06aMaNWrYtRctWtThep2dndWiRQstX75cQ4cO1eHDh3Xy5Em99tprDvvHxcVJ+u+Lf1o8PT0lyXrYVsp/U9pvtXLlSk2aNMmmbf78+Q5PQk9NbGxsug4durWuW4NFgwYN9Oyzz0r674T5U6dO6csvv9Rrr72mGTNm3DFI3apEiRLq0KGDvvzyS+3Zs0dPPPGEw34+Pj768ssvtWDBAn3//fdav3691q9fL0ny9fXVmDFjCBgAAAAPsEwHi1KlSikgICBdffft26eTJ0+qRYsW1mPxJalKlSrKlSuXwsPDHX75L1++fLrXkSI4OFgLFizQ5s2bFRkZqcKFC+vJJ5902Pf2wJCa2wNIyn9T2m/VsGFDlSlTRpK0Zs0arV27NkP1pyw/PeeepBaMihQpYjduDRo0UPv27fXee+9p3rx5GarnhRdeUEREhD7++GN98cUXqfYrUaKERowYoREjRujChQvav3+/1qxZox9++EGDBw/W0qVLlS9fvgytGwAAAPeHe3LydsphObNmzVJISIj1X69evZScnKx169YpKSkpS9ZVrlw5ValSRcuWLdOmTZvSvAdFyl6Sw4cPp7nMlOm+vr6SpJIlS8rV1VV//vmnXd+iRYsqICBAAQEBNntnMqJ8+fKKi4uzCWG3i4+PV1RUlEqUKOHw8ru3K168uMqUKaNDhw6leo5Kary9vdW9e3f99ttv+vbbb9M1T6FChdS4cWNNmzZNzZo1U3R0tLZv356h9QIAAOD+cdeDRVxcnL777jsFBATovffes/v34osv6tKlS9q2bVuWrbN169Y6ePCgrl27ZnfDuFs98sgj8vPz04EDB3TixAmHfQzDsAajoKAgSf/dM6NevXo6c+aMdu3alWV1p0hZT8pNAB1ZvXq1kpKSrH3TIyW8Xbt2LcM1Pf/88ypUqJA+/fTTDIfAlMvbnjt3LsPrBQAAwP3hrgeLjRs36vr162rfvr0aN25s969nz55yd3dXRERElq2zSZMm6tOnj4YNG6ZSpUql2feVV16RJL355psOr2gVFhamgwcPqkWLFjYnPvfr10/u7u6aMGFCqqEks9q2bauSJUtq0aJF2rFjh930w4cPa8aMGcqfP3+qdz+/3fHjx/XXX3+pSJEidve9SA93d3f17dtXp06dcnjH9MjISMXHx9u1Jycn64cffpD0394kAAAAPJju+g3ywsPD5e7urrp16zqcnjJt27ZtOnfunIoUKWKdtn//fiUmJjqcr3nz5rJYLA6neXl56aWXXkpXfXXr1tWwYcM0ZcoUdezY0e7O2wcOHFBAQIBGjhxpM1/58uX1wQcfaNSoUerSpYuCgoJUrVo1eXp66tKlS/rtt9+0bds2eXl5KW/evHbrXbRokcM7gT/xxBOqXr26pk6dqldffVWDBw9Wo0aN9Pjjj8vJyUm//vqr1q5dKw8PD02ePNnhSd4nT560ntuRlJSk06dPa/ny5bp586ZeffXVdI2LI23atNGiRYv022+/2U1buHChfvnlFz311FOqWLGivLy8FB0drc2bN+v333+Xv7+/w3tyAAAA4MFwV4PFsWPHdOjQIQUFBcnd3T3Vfo0aNdLmzZu1evVq9e7d29qe1l2rmzRpkqFLuKalU6dOql69uhYtWqQNGzYoOjpauXPnVoUKFfTWW2+lep5G3bp19fXXX2vJkiXasWOHduzYofj4eOXNm1fly5fXgAEDFBwc7PBSt3PnznVYi7Ozs6pXr66yZcvqq6++0pdffqktW7Zo+/btSk5OVrFixdSpUyd17do11StH7d69W7t375b033048uTJo0qVKqlr166m7rvh5OSkV155RcOHD7eb9sILL2jTpk3at2+fdu3apcuXLyt37twqW7asBg8erGeffVa5ct3T+zECAADgHrIY3M0MOZBlctaczI8HhzHsru9gBQAAJvATMgAAAADTCBYAAAAATCNYAAAAADCNYAEAAADANIIFAAAAANMIFgAAAABMI1gAAAAAMI0LwyNHCs07R7169ZKLi0t2lwIAAIB0YI8FAAAAANMIFgAAAABMI1gAAAAAMI1gAQAAAMA0ggUAAAAA0wgWAAAAAEwjWAAAAAAwjWABAAAAwDSCBQAAAADTCBYAAAAATCNYAAAAADDNYhiGkd1FALezTE7K7hLggDHMObtLAAAAORR7LAAAAACYRrAAAAAAYBrBAgAAAIBpBAsAAAAAphEsAAAAAJhGsAAAAABgGsECAAAAgGkECwAAAACmcberh8yVK1fUvHlzJSQkaNy4cWrZsqXDfgkJCYqIiNB3332no0eP6urVq8qdO7dKlSolf39/tW7dWmXKlLH2X7VqlcaNG5fqen18fLRy5cos3hoAAADkFASLh8y6deuUmJioRx55RBEREQ6DxenTpzVkyBCdOHFCtWrV0nPPPadChQrp2rVrOnLkiCIiIrRw4UKtXr1aRYoUsZm3c+fOqlSpkt0yPTw87to2AQAAIPsRLB4y4eHh8vf3V4MGDTRlyhSdPn1aPj4+1unx8fEaPHiwTp8+rUmTJikoKMhuGQkJCVq8eLEsFovdtBo1aqhx48Z3dRsAAACQ83COxUPk8OHDOnLkiFq2bKlmzZrJyclJERERNn1WrlypqKgodevWzWGokCQ3Nzf16tVLhQsXvhdlAwAA4D5AsHiIhIeHy8PDQ08//bS8vb311FNPac2aNUpOTrb22bx5sySpbdu2mVrHtWvXFBMTY/fv+vXrWbEJAAAAyKE4FOohkZCQoPXr16tRo0bKnTu3JKlly5basmWLdu7cqXr16kmSjh07Jk9PTz3yyCM289+8eVNXr161aXN3d5e7u7tN2/jx4x2uv2PHjhoxYkRWbQ4AAAByGILFQ2LLli26evWqWrVqZW0LDAxU/vz5FRERYQ0WsbGxKlSokN38J06cUOfOnW3aBg0apG7dutm09enTRzVq1LCbv2jRolmwFQAAAMipCBYPifDwcOXPn19FihTRqVOnrO116tTRpk2bFBMTI29vb3l5eSk2NtZu/kceeUQzZsyQJP3555/68MMPHa6nfPnyCggIuCvbAAAAgJyLYPEQ+PvvvxUZGSnDMNSuXTuHfdauXavnnntO5cuX188//6y///7b5nCo3LlzWwODk5PTPakbAAAA9w+CxUNg1apVMgxDb775pry8vOymf/rpp4qIiNBzzz2nRo0a6eeff9bKlSs1YMCAbKgWAAAA9yOCxQMuOTlZq1atkq+vb6pXejp+/LjCwsL066+/qm3btvr666+1YMECVapUKdVLzgIAAAC3Ilg84Hbt2qV///1Xbdq0SbVPo0aNFBYWpvDwcI0aNUoffvihhgwZouHDh+vxxx9XnTp1VLBgQcXFxSkqKkrffvutnJycHJ6QvX//fiUmJjpcT/PmzR3eVA8AAAD3P4LFAy48PFzSf+EhNb6+vipVqpQ2btyo1157TT4+PlqwYIEiIiL03XffaeHChYqNjVXu3LlVsmRJtWnTRm3atFGZMmXslvXVV1+lup4mTZrI2ZmnHAAAwIPIYhiGkd1FALezTE7K7hLggDGMYAgAABzjztsAAAAATCNYAAAAADCNYAEAAADANIIFAAAAANMIFgAAAABMI1gAAAAAMI1gAQAAAMA0LkqPHCk07xz16tVLLi4u2V0KAAAA0oE9FgAAAABMI1gAAAAAMI1gAQAAAMA0ggUAAAAA0wgWAAAAAEwjWAAAAAAwjWABAAAAwDSCBQAAAADTCBYAAAAATCNYAAAAADCNYAEAAADANIIFAAAAANMshmEY2V0EcDvL5KTsLuGBZgxzzu4SAADAA4Y9FgAAAABMI1gAAAAAMI1gAQAAAMA0ggUAAAAA0wgWAAAAAEwjWAAAAAAwjWABAAAAwDSCBQAAAADTuEvWQ+b06dP64osv9PPPP+vs2bNydXVVwYIFVblyZQUHB8vf31+SFBwcrDNnzqS6nPHjx6tFixaKj49Xly5ddPXqVS1dulQFChSw6Xf8+HF17dpVlSpVUlhYmHLlIssCAAA8iAgWD5HffvtNffv2lbOzs1q2bKly5copISFBp06d0q5du+Th4WENFpJUtGhRDRgwwOGyqlevLklyd3fXmDFj1LdvX02cOFGTJk2y9klKStKYMWPk5OSksWPHEioAAAAeYASLh8js2bMVHx+vxYsXy8/Pz276hQsXbP729PRUixYt7rjcGjVqqHPnzlq8eLHWr1+vZs2aSZLmzJmj33//Xa+//rp8fHyyZiMAAACQI/ET8kPk5MmTypcvn8NQIUmFChXK9LL79++vUqVKadKkSbpw4YIOHz6sOXPm6IknnlDHjh0zvVwAAADcHwgWDxEfHx9dvnxZmzdvTlf/5ORkxcTEOPxnGIZNX3d3d40bN06xsbGaMGGCxowZIzc3N7311luyWCx3Y3MAAACQg1iM278h4oF14MAB9e3bV0lJSSpVqpSqV6+uypUr6/HHH1fZsmVt+t7p5O1NmzbJ29vbrn369OmaP3++JGn06NEKCQnJVK2WyUmZmg/pYwzjKEgAAJC1+HbxEKlWrZoWLlyohQsXaseOHVq1apVWrVolSapZs6bGjBljcy5EiRIlNHr0aIfL8vLyctieP39+SZKTk5OefPLJLN4CAAAA5FTssXiInTlzRnv37lV4eLj27dun8uXLa+HChXJxcVFwcLBy586tpUuXpnt5J06cUNeuXeXj46OoqCjVrl1bH3/8caZqY4/F3cUeCwAAkNU4x+IhVrx4cbVq1UphYWGqXr26jh07pl9//TVTy7p586bGjBkji8WiyZMnq0ePHtq5c6dWrlyZtUUDAAAgRyJYQBaLRVWqVJEknTt3LlPLmDdvnn777Te98sorKlmypPr06aPy5ctr2rRpOnv2bFaWCwAAgByIYPEQ2bVrl5KS7A8xio+P165duyRJ5cqVy/By//zzT3322WeqVauWOnXqJElycXHR2LFjFR8fr3feecdc4QAAAMjxOND6ITJ16lRdvnxZ9evXl6+vr9zd3fXvv/9q/fr1OnnypFq2bClfX19r/7i4OK1du9bhsnx9feXn52e9u7azs7P1UKgUjz32mHr06KE5c+Zo5cqVatu27d3eRAAAAGQTTt5+iOzatUvbtm3T/v37de7cOcXGxsrLy0u+vr5q0aKFgoODlSvXfzux7nS52d69e6t///6aNWuWPvvsM40YMcLhjfBu3Lihrl276uzZs1qyZImKFSuWrlo5efvu4uRtAACQ1QgWyJEIFncXwQIAAGQ1zrEAAAAAYBrBAgAAAIBpBAsAAAAAphEsAAAAAJhGsAAAAABgGsECAAAAgGkECwAAAACmcTF75EiheeeoV69ecnFxye5SAAAAkA7ssQAAAABgGsECAAAAgGkECwAAAACmESwAAAAAmEawAAAAAGAawQIAAACAaQQLAAAAAKYRLAAAAACYRrAAAAAAYBrBAgAAAIBpBAsAAAAAphEsAAAAAJhmMQzDyO4igNtZJidldwkPHGOYc3aXAAAAHmDssQAAAABgGsECAAAAgGkECwAAAACmESwAAAAAmEawAAAAAGAawQIAAACAaQQLAAAAAKYRLAAAAACYRrB4AEVGRsrf31/+/v56//33Hfa5ePGi6tSpI39/f/Xt29du+m+//aaxY8eqTZs2qlevngIDA/Xss89qypQpioqK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+vfvr+TkZIeHebzzzjvavn27nn32WT377LOqU6eOXF1d9ddff2nt2rV6/PHHHV6D/XaBgYEqVqyYhg4dqqioKPn4+Gj//v1asGCBqlatqoMHD1r7Ojs7a/LkyXr++edVu3ZtvfDCC3J2dta8efNUsGBBnThxwuZXwEGDBunbb7/V8OHDtXnzZjVq1Eh58+bVyZMn9d1331n35GSn8uXLa9y4cTp06JAef/xx7d27V3PmzFHFihVtLh/coUMHjRw5Us2bN1e7du105coVLV682HpC9606duyoTp06af78+frzzz/VunVr5c+fX0eOHNGGDRusX1afeOIJ5cqVS++8844uXbokT09PlS1bVgEBAanW+9FHH6lBgwZ66qmnrJdBXb16tTZs2KDnnnsu1XvmZKdHH31Uw4cP1wcffKD69eurU6dO1svNxsbGatGiRdYvoBUrVtSAAQP0ySefqFGjRmrfvr3OnTunTz75RNWrV7e7zv+nn36qwMBA1a9fX927d1fNmjWVnJys48ePKzw8XN27d7feuyAjMjLOffv21ZQpUxQSEqJBgwbJ1dVVX3/9tcNDZipVqqQ8efJo5syZ8vDwkLe3t4oUKWI94Vj6LzAEBASoX79+ypMnjxYvXqw9e/bof//7n81x96+88oq++uorNW7cWP369VNiYqIWLFjg8JDHzDzXskJISIimTZumFi1aqG/fvnJ1ddW3336rAwcO2J33V7lyZfXt21dhYWFq3LixQkJCdP78ec2YMUM1a9bU3r17s3TPS8GCBeXr66uvvvpK5cuXV9GiReXp6ang4GB5eXmpZ8+e+uyzz9SlSxc1bNhQf/75p+bOnatq1arpl19+sS7HyclJ06ZN07PPPqvatWurT58+1vtIFSxYUCdPnrRZb0bfFw3D0Pr169WsWbNMXw7XoSy7vhRwD6V1iTvddqnQFKldXvTgwYPG888/b5QoUcJwcXExihQpYjz55JPG+PHjjejoaGu/qKgoo0OHDkahQoWM3LlzG0888YSxfPly05cyNYz/Lo/o7Ozs8JJvji43u3PnTuO1114z/P39jSJFihjOzs5Gvnz5jDp16hhTpkwx4uPjbfo3aNDA8PT0dFiPYfzfpR9TLqXZoUMHQ5Jx4MCBVOcxDMPw8/Mz8uXLZ73saenSpY3KlSunOU96JCQkGAUKFDAkGS+++KLDPhl5PBy1GYZh7Nq1y6hbt67h5uZmFCxY0OjTp49x6dKlVJ9Dq1evNpo0aWLkz5/fcHV1NXx8fIxmzZoZn376qU2/1C43Gxsba3h6ehrDhg1L91ik9dwICwszHnvsMcPNzc0oVqyY0adPHyM6OjrV+g3DMFq1amVIMipUqJDqOuPi4ozx48cbVapUMdzd3Q0vLy+jYsWKxosvvmjs2rXLbjtTu9TkL7/8YjRt2tTw9vY2vLy8jAYNGhjff/99qq+PpUuXGlWrVjVcXV2NkiVLGmPHjjWWL19ud/lcw/jvErUfffSR4e/vb3h4eBgeHh6Gr6+v8dxzzxkbNmxIddvSqj2r3ldSLte5d+9eIygoyPDw8DC8vb2Nrl27GmfPnrXpm5SUZLz77rtG+fLlDVdXV6NUqVLG8OHDjd9++83hJStv3rxpfPLJJ0bNmjWN3LlzG15eXkbVqlWNsWPH2vSbN2+e8dhjjxkuLi5pPh9utX//fqNNmzbW53fFihWN999/3+byrKlt853G6XapvSbTulRnapdfDQsLM2rUqGG4ubkZefLkMRo3bmx8//33dv1u3rxpvP3220apUqUMV1dXo3LlysbChQtTreX8+fPGsGHDjAoVKhhubm5Gvnz5jCpVqhgDBw60uSR2Ri+5mt5xNgzDWLNmjVG9enXD1dXVKF68uPH6668bhw8fdjhGa9asMWrWrGm4ubkZkqyXF731EqcfffSR4evra7i6uhq+vr7Ghx9+6LDGefPmGX5+foaLi4tRpkwZ4/333ze+++47h5dKzehzLbXnT1qXYnV0CdwVK1YYtWrVMjw8PIyCBQsanTp1Mv766y+HfZOSkoyxY8caJUuWNFxdXY2qVasaS5YsMYYOHWpIMv7999871mcY9s/v1J6vu3fvNurWrWt4eHgYkmyet1evXjVeeOEFo0CBAkbu3LmNwMBAY/v27amu95tvvrE+B3x8fIw333zT2Lhxo8Oxysj74tatWw1JxurVqx1ua2ZZDOMenAkF4I769eunjRs36o8//rD5tbJnz57aunWrw7uJImeaN2+eevXqpRMnTtjcOfejjz7S6NGjrVf3Sa/UnhsPgylTpmjYsGHauXOn6tSpk93lpEuZMmVUpkwZm7t6A9ll69atCgoK0ty5c9N1B/aHSXBwsDZv3qwrV67clYsz5GQhISE6deqU9uzZk6V7bDjHAsghxo8fr+joaM2dOze7S8FdcP36db333nsaPnx4hkKF9HA8NxITE+3OX4mNjdWMGTNUsGBBm3uYAEBGODon8cCBA1q3bp0aNWr00IWKffv2KTw8XFOmTMnyE/A5xwLIIYoUKaLLly9ndxm4S3Lnzq0zZ85kat6H4blx/PhxNW/eXJ07d1bZsmV15swZffHFFzpx4oQ+/fRTu3tCAEB6ffHFF5o/f75atmypwoUL6/DhwwoLC5Orq6vGjx+f3eXdcynnDN0NBAsAQLYrXLiw6tSpo0WLFuncuXNydnZW1apV9d577+nZZ5/N7vIA3Mdq1aqlFStWaPr06bp48aLy5MmjRo0aacyYMdYrhyFrcI4FAAAAANM4xwIAAACAaQQLAAAAAKYRLAAAAACYRrAAAAAAYBrBAgAAAIBpBAsAAAAAphEsAAAAAJhGsAAAAABgGsECAAAAgGn/D5G4ROWO7VeTAAAAAElFTkSuQmCC",
"text/plain": [
"<Figure size 800x550 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"shap.summary_plot(shap_values, plot_type = 'bar', feature_names = x_train.columns,show=False)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 557
},
"id": "hK1X7EmT2xLT",
"outputId": "e8883051-6af2-44e1-8284-e46d130ce4ff"
},
"outputs": [
{
"data": {
"image/png": "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NdWRTmubELsq3c5DpNvjynvmz5/PJZdcwlVXXcX555+/2WXaY5om8+bNA2DdunWceuqpnHLKKdxxxx1Zlx83bhwAr7zySsa8r7/+mhdffJHPPvuMqqoqlFJ07dqVkSNH8qMf/YjevXunLR8MBnn++eeZOXMmq1evxrIsunbtyqhRozjvvPMoKirK2oZEIsGrr77K9OnTWbx4McFgEL/fT//+/RkzZgw//OEPmTx5Mvfeey+XXXYZF110UcY26uvrOeuss3C73eTm5rJo0aJ2z1Frt99+O+PGjWPcuHGsX7++3eXuvPNOTj755A5tUwixZ3j3j5/z9QurMZRCK4VtJG/QpZqDWZEu5nJhGAauUDgV7Lcor2/kzp99w70vD8fhlpydEGLr7HFB/9Y44YQTOPzwwzOmG8b2+TB9/PHHeeKJJ8jPz+fEE0+kT58+2LbNsmXLePPNN3nxxReZMWMGfr8fgJUrV3LllVeyfv16xowZw2mnnYbD4WDhwoU899xzTJ06lQceeIBhw4al7ae2tpZrr72WhQsXMnToUM4991yKi4tpbGzks88+44EHHmDBggX8+c9/5r333uOJJ57giCOOYMCAAWnbufvuu6mpqeHRRx8lkUhQU1OTmldXV8f999/P/vvvz/jx49PWa92esrIyLr/88qznY/jw4d/rfAohdi9aa75+YXWykqclY23bWC5ncpz+PWAwmsiyOj7/3Sc0ro7Q55f70O+8/hnLRIMJbNWxg3XH4jTk+HHFE7hjsbR5htYo26LfbbX4ozGOtEMcc2IeA3IVniIXX663OWSol55d2hkBSIg9lIzU0zF7ddA/aNCgHZZ5njJlCo8//jgHHXQQ9957L4FAIG3+r3/9a5544gl0c6YrEolwzTXXUFFRwQMPPMCoUaNSy55++umceeaZXHbZZVx33XU8//zzqYy/1pobb7yRhQsXcv3113POOeek7ee8885j1apVvP322yil+N3vfsc555zD7bffzn/+8x8cjuRbYMaMGbz55puce+65HHTQQRnHs27dOu6//366deu22XPm9/slmy+EAODpU97KmGYAtm2jTXPr+95ZFlZlELNLXvp0rWHWomTZ0MiBYBporbGrgxg1DdjVYRKBHIxYBLV4NRHbC6W51D3/DYn5a8ivXY2V76OpwoldbWEGHDiP74k7F2pmrCLS0ESF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XjBMM2AE0eL14mgWVYE9E5HqOk9/WVPQLyIichJRg5rgstpokJHGkfAI8q02wjxu8i1W2t7SsaK7J1Kj+ZTKUyK6JikiInIStlrhNBjXlH3RMViAcI+bHLsdt91Oi6sSK7p7IiInpaBfRESkBLrMvYhuL11AtsNBljOMiM7xjDpwek/IFJHTZxqhl6omIyODRx99lCFDhtC1a1e+++47AFJTU3n66afZunXrae1f6T0iIiIl1GxsC5qNbVHR3RCRambPnj3069eP3bt307p1a37//XeysrIASEhIYPbs2ezcuZN///vfpW5DQb+IiIiIVFnVYXrOv//972RmZrJhwwbq1q1L3bp1A9aPHj2aZcuWnVYbSu8REREREalAK1asYNq0abRv3x4jxElMy5Yt2b1792m1oZF+EREREamyqsNIf25uLnXq1Cl2fWZm5mm3oZF+EREREZEK1L59e7744oti1y9atIiuXbueVhsK+kVERESkyqoOs/fMmDGDt99+m8cee4z09HQAfD4fW7duZcKECaxZs4abb775tNpQeo+IiEhxRv4Llv549PU/LoV/Xl1x/RGRIKalikX4IVx99dXs3LmTf/zjH9xzzz0ADB06FNM0sVgsPPzww4wePfq02lDQLyIiEsqmXYEBP8C/3oMHr4JqkEMsIpXLPffcw4QJE3j33XfZunUrPp+PVq1acemll9KyZcvT3r+CfhERkVA6zAhdHncVpL91RrsiIsWr6jfy5uTk0KdPHyZNmsSUKVNOO42nOMrpFxERORUZeRXdAxGpRiIiItixY0fIqTrLkoJ+EREREamyTIsRcqlKhg4dyscff1yubSjoFxERERGpQPfeey+bN29mwoQJfPXVV+zdu5fU1NSg5XQop19ERKSKSM/z0nyOSXo+9GkIn11pxVLF85lFTls1+Bvo0KEDAJs2beKtt4q/Z8jr9Za6DQX9IiIiVUBmroe454++/mIfWJ/yYt6mr3KRqu6+++4r95x+/U8hIiJSBcQ8H7r8w60eLk7U17nUXFUtfz+UmTNnlnsbyukXERGpwq5ZVtE9EJGqQEMDIiIiVdgRT0X3QKRiVfV5+gEefPDBk9YxDIN777231G0o6BcREanCSn9bn0j1YBpVP3HlROk9hmFgmqaCfjk1e/bs4b///S8//vgjBw4cwOFwUKtWLTp06MCIESPo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0UUX8dlnn50wBak0JkyYwP/+9z8uu+wyrrvuOlwuF2+++SaDBg3ivffeC+rz8X744QeysrI499xzT6nd559/niNHjnDDDTcQFhbGs88+y5gxY3jnnXeYNGkSV155JaNHj2bFihU899xz1K1bl3/84x8B+8jOzqZ///707NmTRx55hC1btvDCCy+wdu1a1q9f7z9JzM/P54knnmDs2LGMGjWKyMhIvv/+e1555RW++uqroPSse+65h4cffpj27dtz880306BBA7Zt28a7777Lgw8+SN++fbn77rt5+OGHmTx5sv8zqVev3gnf886dOzn33HNJT09n6tSptG7dms8//5xHHnmEr7/+mk8++QSbLfBrcOLEidjtdm677Tby8/OZNWsWo0ePZvPmzSGDxlDuvPNOvF4v06dPJz8/n6eeeorBgwfz+uuv8+c//5nJkydz1VVXsWDBAu677z5atGgRcFXrhRde4KabbqJt27bcd999QMHv6ejRo5k9ezaTJ0/21501axY333wzXbp04eGHHyYnJ4cnn3ySunXrBvUrPT2d888/n127dnH99dfToUMH9u/fzwsvvEDPnj1Zt24dzZo1K9F7PN3jfDLt2rXjmWee4eabb2bMmDH+/5+ioqIC6i1ZsoTt27dz0003Ub9+fZYsWcIDDzzAzp07mTt37im/l5L+rp133nnMnj2br776iqFDh55yOyIVwhSRGuubb74x7Xa7CZitW7c2r7vuOvOFF14wN23aFLJ+s2bNTOCky+HDhwO227t3r2m1Ws3777/fXzZr1iwTCNkWYA4ePNg8fPiwefjwYXPz5s3m008/bdrtdjM2NtY8ePDgCd/XZZddZjqdTjM1NTWg/OqrrzZtNlvA9llZWUHbHzhwwKxVq5Z58cUXB5RPnDjRPP6/zX79+pnNmjUL2seOHTtMIOA9v/feeyZgzp49O6Cu2+02u3fvbjZv3tz0+XwnfG+vvvqqCZiLFy8OWvfZZ5+ZgDl37tygsoYNG5ppaWn+8o0bN5qAaRiG+e677wbsp1u3bmb9+vWD3idgTp8+PaC86D3deOON/jKfz2fm5OQE9e/ll182AXP+/Pn+sm+//dYEzAsvvNDMzc0NqO/z+fzHI9R7O5k//elPJmB+8MEHAeW33XabCZgvv/yyv+z+++83AXP48OEBn8F3331nAuadd9550vbm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BhEZGclzzz1HZmamvzwzM5PnnnuOqKgo/1OYBw0aRHh4OM8//3zA1Jh79uwJuppksVi46qqr+O6771i4cGHItkuTn36qx7koda3ovoQiTz31VNC+S/KZr1y5kh9//NH/2jRNHn/8cYCA38lT+TstSbtr167FZrNxwQUXFFtHpLLRSL9IDXbzzTeTkpLCyJEj6dSpExEREezevZu33nqLzZs3c80119CpU6dS7/9///sfubm5jB07ttg6Y8eO5bXXXuO///1v0E2ip2vixInceuutPPbYY7Rp04ZevXoFrO/duzf169fn1ltvJSkpicaNG7NhwwbmzZtHp06d+Pnnn0/axuTJk3nqqacYM2YM06dPx+FwsHDhwpAnU0XTdP7f//0fP/74I5dccgm1a9dmz549rFmzhq1bt540D9lqtXLppZeyaNEiXC5XwJWL8la7dm3ee+899u3bR//+/f1TdtarVy/geQSXXXYZ7777LgMGDOCaa67B7XazaNGioDnbAc4991zuuOMOHnvsMbp168b48eOpX78+O3bsYOHChXz33XfExcXRvn17oqOjeeGFF4iIiCAuLo66dev6bw4O5eGHH2blypWMHj2aqVOnkpiYyBdffMH8+fPp27dv0ElgZRAXF8fjjz/OTTfdRM+ePf3z1r/22mts3bqV2bNn+2/Ijo+P55///Ce33XYb559/Ptdccw05OTm8+OKLtG7dmvXr1wfs+6GHHuLrr7/m8ssv5/LLL6dXr144HA527tzJ8uXL6d69e8AzHkrqVI7zlVdeyd13383kyZP5/fffSUhI4KOPPgo5DXCtWrVITEzk7bffplWrVtSrV4/IyEhGjBjhr9OlSxcGDBjATTfdRIMGDVi8eDGrVq1iwoQJnHfeef56p/J3erLfNdM0+eijjxg6dGipr9iJVIgKmTNIRCqFjz/+2Jw6darZuXNns1atWqbVajUTEhLM/v37m6+88orp9XoD6jdr1szs0KFDsfsrmo6vaMrOHj16mDabLWjqzGPl5eWZ0dHRZps2bfxlFE6deLoOHDhg2mw2EzD/9a9/hayzceNGc8iQIWZcXJwZFRVl9uvXz/ziiy9CTi1Y3HSDH3zwgdmlSxfT4XCYDRo0MG+//Xbz999/L3a6wddff93s3bu3GR0dbTqdTrNZs2bmmDFjzLfffrtE76tomsuFCxcGlJ9oys5Q0w82a9bM7NevX1B50fSVO3bs8JcVTXm4bds2c+TIkWZ0dLQZFRVljhw50tyyZUvQPubMmWO2a9fOdDqdZv369c1JkyaZKSkpQdMyFnnrrbfM888/34yKijIjIiLMs846y5w+fXrA1JcffPCB2bVrV9PpdJpAyL4fb/v27ebVV19t1qlTx7Tb7WaLFi3Mu+66K2CKy+Le88mO0/GKpuw8dprMIsW97+J+p9577z3zvPPOMyMiIsyIiAjzvPPOM99///2Q7b744otmmzZtTIfDYbZq1cp85pln/FO7Ht+X7Oxs88EHHzQ7duxohoWFmVFRUWbbtm3NG264wVy7dq2/3qlOkVrS42yaprl27Vrz/PPPN51Op1mrVi1z0qRJ5pEjR0Ieo2+//dY8//zzzYiICBPwT7t57FSbb731ltmpUyfT4XCYjRs3Nu+9914zPz8/qN1T+Ts90e/a559/bgLmsmXLSnRsRCoLwzRLeaeWiIhUmKFDh5Kdnc2XX355Rtrr378/SUlJJCUlnZH2RE4kKSmJFi1acP/99wc99bq8jRkzht27d/P9999XmhvQRUpCOf0iIlXQU089xZo1a0o1t7qIlM769etZvHgxTz31lAJ+qXKU0y8iUgV16NCh3Kc5FJFAXbt2DZpyVqSq0Ei/iIiIiEg1p5x+EREREZFqTiP9IiIiIiLVnIJ+EREREZFqTkG/iIiIiEg1p6BfRERERKSaU9AvIiIiIlLNKegXEREREanmFPSLiIiIiFRzCvpFRERERKo5Bf0iIiIiItXc/wPbiDCxoJN9ogAAAABJRU5ErkJggg==",
"text/plain": [
"<Figure size 800x550 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"shap.summary_plot(shap_values, x_train.to_numpy(),feature_names = x_train.columns)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 617
},
"id": "5GLJL_LY2xLU",
"outputId": "67c8065e-1cfb-46c3-f59d-10ecf6f48e55"
},
"outputs": [
{
"data": {
"image/png": "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KlCgAI888ohD+ebNm0lISKBBgwYEBQUBttGx6OhofH197UZ6YmNjHa598eJF/v33X0qWLOlyiuHhw4c5f/489erVS2mTkXjSQ0mTiIiIiIhBdu7cSfHixe2m2JUtW5Zq1aqxbNkyu/2Y/v77bzp27EjHjh0ZNGgQAG+88QYTJ050Otr0999/ExERkbL5a2pu95kmX19fSpcu7VC+a9cuALu6c+fOsXjxYurUqcM999yTUr58+XI8PDwoUqQIfn5+XLp0if379+Pp6UndunUB255LW7duTdmr6dy5c/zzzz+ULFmSatWq3VI86aHNbUVEREREDLJz506nU/C6du3KokWLiI2NBeDkyZOEhYVRu3ZtpkyZktKuWLFidO3alZkzZ3L06FG7a8ybN4/Q0FAeeuihrL2JTFK6dGmuXbvGrl27WLNmDUeOHKF06dI89dRT5M+fH7A932Qymdi5cydr164lPDyce++9l0ceecThOavMZLImL6khIiIiIiJ3hCtXrlC2bFk+/vhjXnjhhQyfHxcXR+nSpXnrrbd49dVXsyBC96KRJhERERGRO0zevHl54403GDVqFBaLJcPnT58+HS8vL15++eUsiM79aKRJREREREQkFRppEhERERERSYWSJhERERERkVQoaRIREREREUmFkiYREREREZFUKGkSERERERFJhZImEREREZEcIDIykgcffJDIyEijQ3E7SppERERERHKAyMhIVq1apaTJAEqaREREREREUqGkSUREREREJBVKmkRERERERFKhpElEREREJAcICgqifv36BAUFGR2K2zFZrVar0UGIiIiIiIjcqTTSJCIiIiKSQ+zatcvoENySkiYRERERkRwiKSnJ6BDckpImEREREZEcokCBAkaH4JaUNImIiIiI5BD58+c3OgS3pKRJRERERCSHOHz4sNEhuCUlTSIiIiIiIqnQkuMiIiIiIjnElStXyJs3r9FhuB2NNImIiIiI5BBRUVFGh+CWlDSJiIiIiOQQFy5cMDoEt6SkSUREREQkhzCZTEaH4Jb0TJOIiIiIiEgqNNIkIiIiIpJD7Nmzx+gQ3JKSJhERERGRHCIhIcHoENySkiYRERERkRwiX758RofglpQ0iYiIiIjkEMHBwUaH4JaUNImIiIiI5BAHDx40OgS3pKRJREREREQkFUqaRERERERyiFKlShkd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oovK3K/oN5z279+v/fv3u20vKprq168vm82mxMRE5efnKzg4WFdccYU6d+5c4nNWAAAAOIOiCZVWdGvdokWLtGjRIrftixcvLlfRdO4sU5ExY8Zo2rRpys7OVmBgoD766CPNnDlT999/v+699163/hMmTNCbb76p+fPna8qUKcXty5YtU1RUlPr163chp1cj/Pz81KtXrzJvcWzWrJnb+d50003lOn7Dhg3LfRshAAAAXNmsouXEgBowatQoff3110pISJCfn1+5FiDIyMhQdHS05syZo7vvvrtC4+bm5qp169Z65JFH9OCDD7psy8nJUWZmpubMmaO5c+cqLS1NERERFRoHAAAAdQ/35aDGJScnKzIyUldddVW5+oeEhOjhhx/W3Llz5XA4KjTmokWLZLfbdf/997ttmz9/viIjIzV37twKHRsAAAB1GzNNqFHbtm3ToUOHJEkNGjSo1Ip7VSU5OVlJSUnFf/ft25cfewUAAEAxiiYAAAAAKAO35wEAAABAGSiaAAAAAKAMFE0AAAAAUAaKJgAAAAAoA0UTAAAAAJSBogkAAAAAykDRBAAAAABloGgCAAAAgDJQNAEAAABAGf4fTyrsPCSSHP4AAAAASUVORK5CYII=",
"text/plain": [
"<Figure size 800x650 with 3 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"shap.plots._waterfall.waterfall_legacy(explainer.expected_value, shap_values[5], feature_names = x_train.columns)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "eNInGTZiDVMU"
},
"source": [
"### Recommendation - 2 (AI Fairness)\n",
"As we are creating synthetic data, it is important to make sure that the dataset is not biased towards a specific gender. We observed that sampling without noise produced highly unfair data."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "StsoDFcM2lVL",
"outputId": "d8ee9d11-ff8e-4963-b293-7081476a6e49"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Initial Disparate Impact: 0.8622409003490278\n",
"New Disparate Impact after Mitigation: 0.8622409003490278\n"
]
}
],
"source": [
"import pandas as pd\n",
"from aif360.datasets import StandardDataset\n",
"from aif360.metrics import BinaryLabelDatasetMetric\n",
"from aif360.algorithms.preprocessing import DisparateImpactRemover\n",
"\n",
"# Import your dataset\n",
"dataset = df_merged\n",
"\n",
"# Create the 'PROTECTED_CLASS' column based on 'SEX'\n",
"dataset['PROTECTED_CLASS'] = dataset['SEX'].astype(int)\n",
"\n",
"# Create a StandardDataset for AIF360\n",
"privileged_groups = [{'PROTECTED_CLASS': 0}]\n",
"unprivileged_groups = [{'PROTECTED_CLASS': 1}]\n",
"dataset_aif360 = StandardDataset(\n",
" df=dataset,\n",
" label_name='SOURCE',\n",
" favorable_classes=[1], # 'In' is considered favorable\n",
" protected_attribute_names=['PROTECTED_CLASS'],\n",
" privileged_classes=[[1]],\n",
")\n",
"\n",
"# Calculate and display the initial disparate impact\n",
"privileged_metric = BinaryLabelDatasetMetric(\n",
" dataset_aif360,\n",
" unprivileged_groups=unprivileged_groups,\n",
" privileged_groups=privileged_groups,\n",
")\n",
"initial_disparate_impact = privileged_metric.disparate_impact()\n",
"print(\"Initial Disparate Impact:\", initial_disparate_impact)\n",
"\n",
"# If bias is detected, you can use the Disparate Impact Remover mitigation technique\n",
"di_remover = DisparateImpactRemover(repair_level=0.1)\n",
"dataset_transf = di_remover.fit_transform(dataset_aif360)\n",
"\n",
"# Calculate and display the new disparate impact after mitigation\n",
"new_privileged_metric = BinaryLabelDatasetMetric(\n",
" dataset_transf,\n",
" unprivileged_groups=unprivileged_groups,\n",
" privileged_groups=privileged_groups,\n",
")\n",
"new_disparate_impact = new_privileged_metric.disparate_impact()\n",
"print(\"New Disparate Impact after Mitigation:\", new_disparate_impact)"
]
}
],
"metadata": {
"accelerator": "GPU",
"colab": {
"collapsed_sections": [
"CpUDXvUEDVL_",
"YKT7BbqDDVL_",
"hh1TqXuGDVL_",
"iVYWlt2eDVMA",
"-_0zRAhgDVMA",
"8jaWxPmrDVMN",
"hXkDu77V_4mn",
"2NJ7nOVY__al",
"ywAuWpSODVMN",
"ALm29MtcDVMO"
],
"gpuType": "T4",
"provenance": []
},
"kernelspec": {
"display_name": "Python 3",
"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.8.5"
}
},
"nbformat": 4,
"nbformat_minor": 0
}