Download this file

4484 lines (4483 with data), 733.0 kB

{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1. Build Regression Model with TF DenseFeatures"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Overview\n",
    "- Used preprocessed dataset from TF regression tutorial https://www.tensorflow.org/tutorials/keras/regression\n",
    "- Used TF feature column API and TF DenseFeatures instead of the methods used in tutorial"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Dataset Preprocessing From Tutorial"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import seaborn as sns\n",
    "import tensorflow as tf"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "dataset_path = tf.keras.utils.get_file(\"auto-mpg.data\", \"http://archive.ics.uci.edu/ml/machine-learning-databases/auto-mpg/auto-mpg.data\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<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>MPG</th>\n",
       "      <th>Cylinders</th>\n",
       "      <th>Displacement</th>\n",
       "      <th>Horsepower</th>\n",
       "      <th>Weight</th>\n",
       "      <th>Acceleration</th>\n",
       "      <th>ModelYear</th>\n",
       "      <th>Origin</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>393</th>\n",
       "      <td>27.0</td>\n",
       "      <td>4</td>\n",
       "      <td>140.0</td>\n",
       "      <td>86.0</td>\n",
       "      <td>2790.0</td>\n",
       "      <td>15.6</td>\n",
       "      <td>82</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>394</th>\n",
       "      <td>44.0</td>\n",
       "      <td>4</td>\n",
       "      <td>97.0</td>\n",
       "      <td>52.0</td>\n",
       "      <td>2130.0</td>\n",
       "      <td>24.6</td>\n",
       "      <td>82</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>395</th>\n",
       "      <td>32.0</td>\n",
       "      <td>4</td>\n",
       "      <td>135.0</td>\n",
       "      <td>84.0</td>\n",
       "      <td>2295.0</td>\n",
       "      <td>11.6</td>\n",
       "      <td>82</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>396</th>\n",
       "      <td>28.0</td>\n",
       "      <td>4</td>\n",
       "      <td>120.0</td>\n",
       "      <td>79.0</td>\n",
       "      <td>2625.0</td>\n",
       "      <td>18.6</td>\n",
       "      <td>82</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>397</th>\n",
       "      <td>31.0</td>\n",
       "      <td>4</td>\n",
       "      <td>119.0</td>\n",
       "      <td>82.0</td>\n",
       "      <td>2720.0</td>\n",
       "      <td>19.4</td>\n",
       "      <td>82</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      MPG  Cylinders  Displacement  Horsepower  Weight  Acceleration  \\\n",
       "393  27.0          4         140.0        86.0  2790.0          15.6   \n",
       "394  44.0          4          97.0        52.0  2130.0          24.6   \n",
       "395  32.0          4         135.0        84.0  2295.0          11.6   \n",
       "396  28.0          4         120.0        79.0  2625.0          18.6   \n",
       "397  31.0          4         119.0        82.0  2720.0          19.4   \n",
       "\n",
       "     ModelYear  Origin  \n",
       "393         82       1  \n",
       "394         82       2  \n",
       "395         82       1  \n",
       "396         82       1  \n",
       "397         82       1  "
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "column_names = ['MPG','Cylinders','Displacement','Horsepower','Weight',\n",
    "                'Acceleration', 'Model Year', 'Origin']\n",
    "raw_dataset = pd.read_csv(dataset_path, names=column_names,\n",
    "                      na_values = \"?\", comment='\\t',\n",
    "                      sep=\" \", skipinitialspace=True)\n",
    "raw_dataset.columns = ['MPG','Cylinders','Displacement','Horsepower','Weight',\n",
    "                'Acceleration', 'ModelYear', 'Origin']\n",
    "dataset = raw_dataset.copy()\n",
    "dataset.tail()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "MPG             0\n",
       "Cylinders       0\n",
       "Displacement    0\n",
       "Horsepower      6\n",
       "Weight          0\n",
       "Acceleration    0\n",
       "ModelYear       0\n",
       "Origin          0\n",
       "dtype: int64"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dataset.isna().sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "dataset = dataset.dropna()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "dataset['Origin'] = dataset['Origin'].map({1: 'USA', 2: 'Europe', 3: 'Japan'})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "#split 80 20 train test split\n",
    "train_dataset = dataset.sample(frac=0.8,random_state=0)\n",
    "test_dataset = dataset.drop(train_dataset.index)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['MPG', 'Cylinders', 'Displacement', 'Horsepower', 'Weight',\n",
       "       'Acceleration', 'ModelYear', 'Origin'],\n",
       "      dtype='object')"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_dataset.columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<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>MPG</th>\n",
       "      <th>Cylinders</th>\n",
       "      <th>Displacement</th>\n",
       "      <th>Horsepower</th>\n",
       "      <th>Weight</th>\n",
       "      <th>Acceleration</th>\n",
       "      <th>ModelYear</th>\n",
       "      <th>Origin</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>146</th>\n",
       "      <td>28.0</td>\n",
       "      <td>4</td>\n",
       "      <td>90.0</td>\n",
       "      <td>75.0</td>\n",
       "      <td>2125.0</td>\n",
       "      <td>14.5</td>\n",
       "      <td>74</td>\n",
       "      <td>USA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>282</th>\n",
       "      <td>22.3</td>\n",
       "      <td>4</td>\n",
       "      <td>140.0</td>\n",
       "      <td>88.0</td>\n",
       "      <td>2890.0</td>\n",
       "      <td>17.3</td>\n",
       "      <td>79</td>\n",
       "      <td>USA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>69</th>\n",
       "      <td>12.0</td>\n",
       "      <td>8</td>\n",
       "      <td>350.0</td>\n",
       "      <td>160.0</td>\n",
       "      <td>4456.0</td>\n",
       "      <td>13.5</td>\n",
       "      <td>72</td>\n",
       "      <td>USA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>378</th>\n",
       "      <td>38.0</td>\n",
       "      <td>4</td>\n",
       "      <td>105.0</td>\n",
       "      <td>63.0</td>\n",
       "      <td>2125.0</td>\n",
       "      <td>14.7</td>\n",
       "      <td>82</td>\n",
       "      <td>USA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>331</th>\n",
       "      <td>33.8</td>\n",
       "      <td>4</td>\n",
       "      <td>97.0</td>\n",
       "      <td>67.0</td>\n",
       "      <td>2145.0</td>\n",
       "      <td>18.0</td>\n",
       "      <td>80</td>\n",
       "      <td>Japan</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      MPG  Cylinders  Displacement  Horsepower  Weight  Acceleration  \\\n",
       "146  28.0          4          90.0        75.0  2125.0          14.5   \n",
       "282  22.3          4         140.0        88.0  2890.0          17.3   \n",
       "69   12.0          8         350.0       160.0  4456.0          13.5   \n",
       "378  38.0          4         105.0        63.0  2125.0          14.7   \n",
       "331  33.8          4          97.0        67.0  2145.0          18.0   \n",
       "\n",
       "     ModelYear Origin  \n",
       "146         74    USA  \n",
       "282         79    USA  \n",
       "69          72    USA  \n",
       "378         82    USA  \n",
       "331         80  Japan  "
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_dataset.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "train_labels = train_dataset['MPG']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<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>count</th>\n",
       "      <th>mean</th>\n",
       "      <th>std</th>\n",
       "      <th>min</th>\n",
       "      <th>25%</th>\n",
       "      <th>50%</th>\n",
       "      <th>75%</th>\n",
       "      <th>max</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Cylinders</th>\n",
       "      <td>314.0</td>\n",
       "      <td>5.477707</td>\n",
       "      <td>1.699788</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.00</td>\n",
       "      <td>4.0</td>\n",
       "      <td>8.00</td>\n",
       "      <td>8.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Displacement</th>\n",
       "      <td>314.0</td>\n",
       "      <td>195.318471</td>\n",
       "      <td>104.331589</td>\n",
       "      <td>68.0</td>\n",
       "      <td>105.50</td>\n",
       "      <td>151.0</td>\n",
       "      <td>265.75</td>\n",
       "      <td>455.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Horsepower</th>\n",
       "      <td>314.0</td>\n",
       "      <td>104.869427</td>\n",
       "      <td>38.096214</td>\n",
       "      <td>46.0</td>\n",
       "      <td>76.25</td>\n",
       "      <td>94.5</td>\n",
       "      <td>128.00</td>\n",
       "      <td>225.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Weight</th>\n",
       "      <td>314.0</td>\n",
       "      <td>2990.251592</td>\n",
       "      <td>843.898596</td>\n",
       "      <td>1649.0</td>\n",
       "      <td>2256.50</td>\n",
       "      <td>2822.5</td>\n",
       "      <td>3608.00</td>\n",
       "      <td>5140.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Acceleration</th>\n",
       "      <td>314.0</td>\n",
       "      <td>15.559236</td>\n",
       "      <td>2.789230</td>\n",
       "      <td>8.0</td>\n",
       "      <td>13.80</td>\n",
       "      <td>15.5</td>\n",
       "      <td>17.20</td>\n",
       "      <td>24.8</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ModelYear</th>\n",
       "      <td>314.0</td>\n",
       "      <td>75.898089</td>\n",
       "      <td>3.675642</td>\n",
       "      <td>70.0</td>\n",
       "      <td>73.00</td>\n",
       "      <td>76.0</td>\n",
       "      <td>79.00</td>\n",
       "      <td>82.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "              count         mean         std     min      25%     50%  \\\n",
       "Cylinders     314.0     5.477707    1.699788     3.0     4.00     4.0   \n",
       "Displacement  314.0   195.318471  104.331589    68.0   105.50   151.0   \n",
       "Horsepower    314.0   104.869427   38.096214    46.0    76.25    94.5   \n",
       "Weight        314.0  2990.251592  843.898596  1649.0  2256.50  2822.5   \n",
       "Acceleration  314.0    15.559236    2.789230     8.0    13.80    15.5   \n",
       "ModelYear     314.0    75.898089    3.675642    70.0    73.00    76.0   \n",
       "\n",
       "                  75%     max  \n",
       "Cylinders        8.00     8.0  \n",
       "Displacement   265.75   455.0  \n",
       "Horsepower     128.00   225.0  \n",
       "Weight        3608.00  5140.0  \n",
       "Acceleration    17.20    24.8  \n",
       "ModelYear       79.00    82.0  "
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_stats = train_dataset.describe()\n",
    "train_stats.pop(\"MPG\")\n",
    "train_stats = train_stats.transpose()\n",
    "train_stats"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "categorical_feature_list = ['Origin']\n",
    "# for the sake of this exercise treat Model Year and Cylinders as numerical but could process differently\n",
    "numerical_feature_list = ['Cylinders', 'Displacement', 'Horsepower', 'Weight',\n",
    "       'Acceleration', 'ModelYear']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "def norm(x):\n",
    "    return (x - train_stats['mean']) / train_stats['std']\n",
    "normed_train_data = norm(train_dataset[numerical_feature_list])\n",
    "normed_test_data = norm(test_dataset[numerical_feature_list])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "norm_train_data = pd.concat([ train_dataset[categorical_feature_list + ['MPG']],  normed_train_data], \n",
    "                            axis=1, sort=False)\n",
    "norm_test_data = pd.concat([ test_dataset[categorical_feature_list + ['MPG']], normed_test_data], axis=1, sort=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "norm_train_data.to_csv(\"mpg_train_data.csv\", index=False)\n",
    "norm_test_data.to_csv(\"mpg_test_data.csv\", index=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<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>Origin</th>\n",
       "      <th>MPG</th>\n",
       "      <th>Cylinders</th>\n",
       "      <th>Displacement</th>\n",
       "      <th>Horsepower</th>\n",
       "      <th>Weight</th>\n",
       "      <th>Acceleration</th>\n",
       "      <th>ModelYear</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>146</th>\n",
       "      <td>USA</td>\n",
       "      <td>28.0</td>\n",
       "      <td>-0.869348</td>\n",
       "      <td>-1.009459</td>\n",
       "      <td>-0.784052</td>\n",
       "      <td>-1.025303</td>\n",
       "      <td>-0.379759</td>\n",
       "      <td>-0.516397</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>282</th>\n",
       "      <td>USA</td>\n",
       "      <td>22.3</td>\n",
       "      <td>-0.869348</td>\n",
       "      <td>-0.530218</td>\n",
       "      <td>-0.442811</td>\n",
       "      <td>-0.118796</td>\n",
       "      <td>0.624102</td>\n",
       "      <td>0.843910</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>69</th>\n",
       "      <td>USA</td>\n",
       "      <td>12.0</td>\n",
       "      <td>1.483887</td>\n",
       "      <td>1.482595</td>\n",
       "      <td>1.447140</td>\n",
       "      <td>1.736877</td>\n",
       "      <td>-0.738281</td>\n",
       "      <td>-1.060519</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>378</th>\n",
       "      <td>USA</td>\n",
       "      <td>38.0</td>\n",
       "      <td>-0.869348</td>\n",
       "      <td>-0.865687</td>\n",
       "      <td>-1.099044</td>\n",
       "      <td>-1.025303</td>\n",
       "      <td>-0.308055</td>\n",
       "      <td>1.660094</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>331</th>\n",
       "      <td>Japan</td>\n",
       "      <td>33.8</td>\n",
       "      <td>-0.869348</td>\n",
       "      <td>-0.942365</td>\n",
       "      <td>-0.994047</td>\n",
       "      <td>-1.001603</td>\n",
       "      <td>0.875068</td>\n",
       "      <td>1.115971</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    Origin   MPG  Cylinders  Displacement  Horsepower    Weight  Acceleration  \\\n",
       "146    USA  28.0  -0.869348     -1.009459   -0.784052 -1.025303     -0.379759   \n",
       "282    USA  22.3  -0.869348     -0.530218   -0.442811 -0.118796      0.624102   \n",
       "69     USA  12.0   1.483887      1.482595    1.447140  1.736877     -0.738281   \n",
       "378    USA  38.0  -0.869348     -0.865687   -1.099044 -1.025303     -0.308055   \n",
       "331  Japan  33.8  -0.869348     -0.942365   -0.994047 -1.001603      0.875068   \n",
       "\n",
       "     ModelYear  \n",
       "146  -0.516397  \n",
       "282   0.843910  \n",
       "69   -1.060519  \n",
       "378   1.660094  \n",
       "331   1.115971  "
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "norm_train_data.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Load Preprocessed Dataset"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- Use TF Dataset API and Feature Column APIs instead"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "train_data = pd.read_csv(\"mpg_train_data.csv\" )\n",
    "test_data = pd.read_csv(\"mpg_test_data.csv\" )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "#adapted from https://www.tensorflow.org/tutorials/structured_data/feature_columns\n",
    "def df_to_dataset(df, predictor,  batch_size=32):\n",
    "    df = df.copy()\n",
    "    labels = df.pop(predictor)\n",
    "    ds = tf.data.Dataset.from_tensor_slices((dict(df), labels))\n",
    "    ds = ds.shuffle(buffer_size=len(df))\n",
    "    ds = ds.batch(batch_size)\n",
    "    return ds"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "PREDICTOR_FIELD = 'MPG'\n",
    "batch_size = 128\n",
    "train_ds = df_to_dataset(train_data, PREDICTOR_FIELD, batch_size=batch_size)\n",
    "test_ds = df_to_dataset(test_data, PREDICTOR_FIELD, batch_size=batch_size)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [],
   "source": [
    "sample_batch = next(iter(train_ds))[0]\n",
    "def demo(feature_column, example_batch):\n",
    "    feature_layer = tf.keras.layers.DenseFeatures(feature_column)\n",
    "    print(feature_layer(example_batch))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Convert Origin Categorical Feature to One Hot Encoded Feature"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [],
   "source": [
    "# only feature \n",
    "v_list = tf.feature_column.categorical_column_with_vocabulary_list(\"Origin\", \n",
    "                                                            train_data['Origin'].unique())\n",
    "one_hot_origin_feature = tf.feature_column.indicator_column(v_list)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Example categorical field:\n",
      "IndicatorColumn(categorical_column=VocabularyListCategoricalColumn(key='Origin', vocabulary_list=('USA', 'Japan', 'Europe'), dtype=tf.string, default_value=-1, num_oov_buckets=0))\n",
      "WARNING:tensorflow:Layer dense_features is casting an input tensor from dtype float64 to the layer's dtype of float32, which is new behavior in TensorFlow 2.  The layer has dtype float32 because it's dtype defaults to floatx.\n",
      "\n",
      "If you intended to run this layer in float32, you can safely ignore this warning. If in doubt, this warning is likely only an issue if you are porting a TensorFlow 1.X model to TensorFlow 2.\n",
      "\n",
      "To change all layers to have dtype float64 by default, call `tf.keras.backend.set_floatx('float64')`. To change just this layer, pass dtype='float64' to the layer constructor. If you are the author of this layer, you can disable autocasting by passing autocast=False to the base Layer constructor.\n",
      "\n",
      "WARNING:tensorflow:From /opt/conda/lib/python3.7/site-packages/tensorflow_core/python/feature_column/feature_column_v2.py:4267: IndicatorColumn._variable_shape (from tensorflow.python.feature_column.feature_column_v2) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "The old _FeatureColumn APIs are being deprecated. Please use the new FeatureColumn APIs instead.\n",
      "WARNING:tensorflow:From /opt/conda/lib/python3.7/site-packages/tensorflow_core/python/feature_column/feature_column_v2.py:4322: VocabularyListCategoricalColumn._num_buckets (from tensorflow.python.feature_column.feature_column_v2) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "The old _FeatureColumn APIs are being deprecated. Please use the new FeatureColumn APIs instead.\n",
      "tf.Tensor(\n",
      "[[1. 0. 0.]\n",
      " [1. 0. 0.]\n",
      " [1. 0. 0.]\n",
      " [1. 0. 0.]\n",
      " [1. 0. 0.]\n",
      " [0. 0. 1.]\n",
      " [1. 0. 0.]\n",
      " [1. 0. 0.]\n",
      " [0. 0. 1.]\n",
      " [1. 0. 0.]\n",
      " [1. 0. 0.]\n",
      " [0. 1. 0.]\n",
      " [0. 0. 1.]\n",
      " [1. 0. 0.]\n",
      " [1. 0. 0.]\n",
      " [0. 0. 1.]\n",
      " [1. 0. 0.]\n",
      " [1. 0. 0.]\n",
      " [1. 0. 0.]\n",
      " [1. 0. 0.]\n",
      " [1. 0. 0.]\n",
      " [1. 0. 0.]\n",
      " [1. 0. 0.]\n",
      " [1. 0. 0.]\n",
      " [0. 0. 1.]\n",
      " [0. 1. 0.]\n",
      " [1. 0. 0.]\n",
      " [0. 0. 1.]\n",
      " [1. 0. 0.]\n",
      " [0. 0. 1.]\n",
      " [0. 1. 0.]\n",
      " [1. 0. 0.]\n",
      " [1. 0. 0.]\n",
      " [1. 0. 0.]\n",
      " [0. 0. 1.]\n",
      " [1. 0. 0.]\n",
      " [1. 0. 0.]\n",
      " [1. 0. 0.]\n",
      " [1. 0. 0.]\n",
      " [1. 0. 0.]\n",
      " [0. 0. 1.]\n",
      " [1. 0. 0.]\n",
      " [1. 0. 0.]\n",
      " [1. 0. 0.]\n",
      " [1. 0. 0.]\n",
      " [1. 0. 0.]\n",
      " [1. 0. 0.]\n",
      " [1. 0. 0.]\n",
      " [0. 0. 1.]\n",
      " [1. 0. 0.]\n",
      " [0. 1. 0.]\n",
      " [1. 0. 0.]\n",
      " [0. 1. 0.]\n",
      " [0. 1. 0.]\n",
      " [1. 0. 0.]\n",
      " [1. 0. 0.]\n",
      " [1. 0. 0.]\n",
      " [1. 0. 0.]\n",
      " [1. 0. 0.]\n",
      " [0. 0. 1.]\n",
      " [1. 0. 0.]\n",
      " [0. 1. 0.]\n",
      " [0. 1. 0.]\n",
      " [1. 0. 0.]\n",
      " [1. 0. 0.]\n",
      " [1. 0. 0.]\n",
      " [1. 0. 0.]\n",
      " [1. 0. 0.]\n",
      " [1. 0. 0.]\n",
      " [1. 0. 0.]\n",
      " [1. 0. 0.]\n",
      " [0. 1. 0.]\n",
      " [0. 1. 0.]\n",
      " [0. 0. 1.]\n",
      " [1. 0. 0.]\n",
      " [0. 1. 0.]\n",
      " [1. 0. 0.]\n",
      " [0. 1. 0.]\n",
      " [1. 0. 0.]\n",
      " [0. 1. 0.]\n",
      " [0. 1. 0.]\n",
      " [1. 0. 0.]\n",
      " [1. 0. 0.]\n",
      " [0. 0. 1.]\n",
      " [0. 1. 0.]\n",
      " [1. 0. 0.]\n",
      " [1. 0. 0.]\n",
      " [1. 0. 0.]\n",
      " [1. 0. 0.]\n",
      " [1. 0. 0.]\n",
      " [1. 0. 0.]\n",
      " [0. 0. 1.]\n",
      " [0. 0. 1.]\n",
      " [1. 0. 0.]\n",
      " [1. 0. 0.]\n",
      " [1. 0. 0.]\n",
      " [1. 0. 0.]\n",
      " [1. 0. 0.]\n",
      " [1. 0. 0.]\n",
      " [0. 0. 1.]\n",
      " [0. 0. 1.]\n",
      " [1. 0. 0.]\n",
      " [1. 0. 0.]\n",
      " [0. 1. 0.]\n",
      " [1. 0. 0.]\n",
      " [0. 1. 0.]\n",
      " [0. 1. 0.]\n",
      " [1. 0. 0.]\n",
      " [0. 1. 0.]\n",
      " [1. 0. 0.]\n",
      " [0. 1. 0.]\n",
      " [1. 0. 0.]\n",
      " [0. 1. 0.]\n",
      " [0. 1. 0.]\n",
      " [1. 0. 0.]\n",
      " [1. 0. 0.]\n",
      " [1. 0. 0.]\n",
      " [1. 0. 0.]\n",
      " [1. 0. 0.]\n",
      " [0. 1. 0.]\n",
      " [0. 0. 1.]\n",
      " [0. 0. 1.]\n",
      " [0. 0. 1.]\n",
      " [1. 0. 0.]\n",
      " [1. 0. 0.]\n",
      " [1. 0. 0.]\n",
      " [1. 0. 0.]\n",
      " [0. 1. 0.]], shape=(128, 3), dtype=float32)\n"
     ]
    }
   ],
   "source": [
    "print(\"Example categorical field:\\n{}\".format(one_hot_origin_feature))\n",
    "demo(one_hot_origin_feature, sample_batch)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Create Numerical Features"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "NOTE: We do not use the normalizer function here because the dataset has already been normalized."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "#convert numerical features, these features have already been normalized\n",
    "def create_tf_numerical_feature_cols(numerical_col_list):\n",
    "    tf_numeric_col_list = []\n",
    "    for c in numerical_col_list:\n",
    "        tf_numeric_feature = tf.feature_column.numeric_column(\n",
    "                    key=c,  dtype=tf.float64)\n",
    "        tf_numeric_col_list.append(tf_numeric_feature)\n",
    "    return tf_numeric_col_list"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [],
   "source": [
    "tf_numerical_feature_list = create_tf_numerical_feature_cols(numerical_feature_list)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[NumericColumn(key='Cylinders', shape=(1,), default_value=None, dtype=tf.float64, normalizer_fn=None),\n",
       " NumericColumn(key='Displacement', shape=(1,), default_value=None, dtype=tf.float64, normalizer_fn=None),\n",
       " NumericColumn(key='Horsepower', shape=(1,), default_value=None, dtype=tf.float64, normalizer_fn=None),\n",
       " NumericColumn(key='Weight', shape=(1,), default_value=None, dtype=tf.float64, normalizer_fn=None),\n",
       " NumericColumn(key='Acceleration', shape=(1,), default_value=None, dtype=tf.float64, normalizer_fn=None),\n",
       " NumericColumn(key='ModelYear', shape=(1,), default_value=None, dtype=tf.float64, normalizer_fn=None)]"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tf_numerical_feature_list"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Example continuous field:\n",
      "NumericColumn(key='Cylinders', shape=(1,), default_value=None, dtype=tf.float64, normalizer_fn=None)\n",
      "\n",
      "WARNING:tensorflow:Layer dense_features_1 is casting an input tensor from dtype float64 to the layer's dtype of float32, which is new behavior in TensorFlow 2.  The layer has dtype float32 because it's dtype defaults to floatx.\n",
      "\n",
      "If you intended to run this layer in float32, you can safely ignore this warning. If in doubt, this warning is likely only an issue if you are porting a TensorFlow 1.X model to TensorFlow 2.\n",
      "\n",
      "To change all layers to have dtype float64 by default, call `tf.keras.backend.set_floatx('float64')`. To change just this layer, pass dtype='float64' to the layer constructor. If you are the author of this layer, you can disable autocasting by passing autocast=False to the base Layer constructor.\n",
      "\n",
      "tf.Tensor(\n",
      "[[ 0.30726957]\n",
      " [ 0.30726957]\n",
      " [ 1.4838872 ]\n",
      " [ 0.30726957]\n",
      " [ 0.30726957]\n",
      " [-0.86934805]\n",
      " [ 0.30726957]\n",
      " [ 1.4838872 ]\n",
      " [-0.86934805]\n",
      " [-0.86934805]\n",
      " [ 0.30726957]\n",
      " [-0.86934805]\n",
      " [-0.86934805]\n",
      " [ 1.4838872 ]\n",
      " [-0.86934805]\n",
      " [-0.86934805]\n",
      " [ 1.4838872 ]\n",
      " [ 1.4838872 ]\n",
      " [ 1.4838872 ]\n",
      " [ 1.4838872 ]\n",
      " [ 1.4838872 ]\n",
      " [ 0.30726957]\n",
      " [ 1.4838872 ]\n",
      " [ 0.30726957]\n",
      " [-0.86934805]\n",
      " [-0.86934805]\n",
      " [-0.86934805]\n",
      " [-0.86934805]\n",
      " [ 0.30726957]\n",
      " [-0.86934805]\n",
      " [-0.86934805]\n",
      " [ 1.4838872 ]\n",
      " [ 0.30726957]\n",
      " [ 1.4838872 ]\n",
      " [-0.86934805]\n",
      " [ 0.30726957]\n",
      " [ 1.4838872 ]\n",
      " [ 0.30726957]\n",
      " [ 1.4838872 ]\n",
      " [ 1.4838872 ]\n",
      " [-0.86934805]\n",
      " [ 1.4838872 ]\n",
      " [-0.86934805]\n",
      " [ 1.4838872 ]\n",
      " [ 0.30726957]\n",
      " [ 1.4838872 ]\n",
      " [ 1.4838872 ]\n",
      " [-0.86934805]\n",
      " [-0.86934805]\n",
      " [ 1.4838872 ]\n",
      " [ 0.30726957]\n",
      " [-0.86934805]\n",
      " [-0.86934805]\n",
      " [-0.86934805]\n",
      " [ 1.4838872 ]\n",
      " [ 0.30726957]\n",
      " [ 0.30726957]\n",
      " [ 0.30726957]\n",
      " [ 0.30726957]\n",
      " [-0.86934805]\n",
      " [ 1.4838872 ]\n",
      " [ 0.30726957]\n",
      " [-0.86934805]\n",
      " [ 0.30726957]\n",
      " [ 0.30726957]\n",
      " [ 1.4838872 ]\n",
      " [-0.86934805]\n",
      " [-0.86934805]\n",
      " [ 0.30726957]\n",
      " [-0.86934805]\n",
      " [ 0.30726957]\n",
      " [-0.86934805]\n",
      " [-0.86934805]\n",
      " [-0.86934805]\n",
      " [ 0.30726957]\n",
      " [-1.4576569 ]\n",
      " [ 0.30726957]\n",
      " [-0.86934805]\n",
      " [-0.86934805]\n",
      " [-0.86934805]\n",
      " [ 0.30726957]\n",
      " [-0.86934805]\n",
      " [ 1.4838872 ]\n",
      " [-0.86934805]\n",
      " [-0.86934805]\n",
      " [ 0.30726957]\n",
      " [ 1.4838872 ]\n",
      " [ 1.4838872 ]\n",
      " [-0.86934805]\n",
      " [-0.86934805]\n",
      " [ 0.30726957]\n",
      " [-0.86934805]\n",
      " [-0.86934805]\n",
      " [-0.86934805]\n",
      " [ 0.30726957]\n",
      " [ 0.30726957]\n",
      " [-0.86934805]\n",
      " [ 1.4838872 ]\n",
      " [ 1.4838872 ]\n",
      " [-0.86934805]\n",
      " [-0.86934805]\n",
      " [ 0.30726957]\n",
      " [ 0.30726957]\n",
      " [-0.86934805]\n",
      " [ 0.30726957]\n",
      " [-0.86934805]\n",
      " [-0.86934805]\n",
      " [ 1.4838872 ]\n",
      " [-0.86934805]\n",
      " [ 0.30726957]\n",
      " [-0.86934805]\n",
      " [-0.86934805]\n",
      " [-0.86934805]\n",
      " [-0.86934805]\n",
      " [ 0.30726957]\n",
      " [ 1.4838872 ]\n",
      " [-0.86934805]\n",
      " [ 1.4838872 ]\n",
      " [ 0.30726957]\n",
      " [-0.86934805]\n",
      " [-0.86934805]\n",
      " [-0.86934805]\n",
      " [-0.28103924]\n",
      " [ 1.4838872 ]\n",
      " [ 1.4838872 ]\n",
      " [ 1.4838872 ]\n",
      " [-0.86934805]\n",
      " [-0.86934805]], shape=(128, 1), dtype=float32)\n"
     ]
    }
   ],
   "source": [
    "# take first numerical feature\n",
    "test_cont_var1 = tf_numerical_feature_list[0]\n",
    "print(\"Example continuous field:\\n{}\\n\".format(test_cont_var1))\n",
    "demo(test_cont_var1, sample_batch)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Combine TF Features with DenseFeatures"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [],
   "source": [
    "feature_columns = [ one_hot_origin_feature ] + tf_numerical_feature_list"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[IndicatorColumn(categorical_column=VocabularyListCategoricalColumn(key='Origin', vocabulary_list=('USA', 'Japan', 'Europe'), dtype=tf.string, default_value=-1, num_oov_buckets=0)),\n",
       " NumericColumn(key='Cylinders', shape=(1,), default_value=None, dtype=tf.float64, normalizer_fn=None),\n",
       " NumericColumn(key='Displacement', shape=(1,), default_value=None, dtype=tf.float64, normalizer_fn=None),\n",
       " NumericColumn(key='Horsepower', shape=(1,), default_value=None, dtype=tf.float64, normalizer_fn=None),\n",
       " NumericColumn(key='Weight', shape=(1,), default_value=None, dtype=tf.float64, normalizer_fn=None),\n",
       " NumericColumn(key='Acceleration', shape=(1,), default_value=None, dtype=tf.float64, normalizer_fn=None),\n",
       " NumericColumn(key='ModelYear', shape=(1,), default_value=None, dtype=tf.float64, normalizer_fn=None)]"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "feature_columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [],
   "source": [
    "dense_feature_layer = tf.keras.layers.DenseFeatures(feature_columns)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Use same architecture as example\n",
    "def build_model(dense_feature_layer):\n",
    "    model = tf.keras.Sequential([\n",
    "    dense_feature_layer,\n",
    "    tf.keras.layers.Dense(64, activation='relu'),\n",
    "    tf.keras.layers.Dense(64, activation='relu'),\n",
    "    tf.keras.layers.Dense(1)\n",
    "    ])\n",
    "\n",
    "    optimizer = tf.keras.optimizers.RMSprop(0.001)\n",
    "\n",
    "    model.compile(loss='mse',\n",
    "                optimizer=optimizer,\n",
    "                metrics=['mae', 'mse'])\n",
    "    \n",
    "\n",
    "    return model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [],
   "source": [
    "model = build_model(dense_feature_layer)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [],
   "source": [
    "# validation split"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train for 3 steps\n",
      "Epoch 1/2000\n",
      "3/3 [==============================] - 1s 199ms/step - loss: 585.3821 - mae: 23.0968 - mse: 594.5055\n",
      "Epoch 2/2000\n",
      "3/3 [==============================] - 0s 8ms/step - loss: 574.6058 - mae: 22.5887 - mse: 571.0825\n",
      "Epoch 3/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 545.8865 - mae: 22.1524 - mse: 550.8449\n",
      "Epoch 4/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 530.4553 - mae: 21.7258 - mse: 531.0057\n",
      "Epoch 5/2000\n",
      "3/3 [==============================] - 0s 8ms/step - loss: 503.8924 - mae: 21.2703 - mse: 510.2128\n",
      "Epoch 6/2000\n",
      "3/3 [==============================] - 0s 8ms/step - loss: 496.5905 - mae: 20.7890 - mse: 488.6298\n",
      "Epoch 7/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 455.9064 - mae: 20.2625 - mse: 465.7529\n",
      "Epoch 8/2000\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 443.9649 - mae: 19.7280 - mse: 443.1337\n",
      "Epoch 9/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 425.1274 - mae: 19.1525 - mse: 418.9799\n",
      "Epoch 10/2000\n",
      "3/3 [==============================] - 0s 8ms/step - loss: 400.7790 - mae: 18.5370 - mse: 394.0287\n",
      "Epoch 11/2000\n",
      "3/3 [==============================] - 0s 8ms/step - loss: 369.3888 - mae: 17.8949 - mse: 368.7041\n",
      "Epoch 12/2000\n",
      "3/3 [==============================] - 0s 8ms/step - loss: 342.8452 - mae: 17.2311 - mse: 343.5887\n",
      "Epoch 13/2000\n",
      "3/3 [==============================] - 0s 8ms/step - loss: 315.7890 - mae: 16.5375 - mse: 318.3971\n",
      "Epoch 14/2000\n",
      "3/3 [==============================] - 0s 8ms/step - loss: 294.0952 - mae: 15.8151 - mse: 292.9583\n",
      "Epoch 15/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 266.5711 - mae: 15.0530 - mse: 267.3140\n",
      "Epoch 16/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 240.9918 - mae: 14.2604 - mse: 242.1907\n",
      "Epoch 17/2000\n",
      "3/3 [==============================] - 0s 8ms/step - loss: 216.5080 - mae: 13.4417 - mse: 217.2129\n",
      "Epoch 18/2000\n",
      "3/3 [==============================] - 0s 8ms/step - loss: 194.5078 - mae: 12.5964 - mse: 192.9444\n",
      "Epoch 19/2000\n",
      "3/3 [==============================] - 0s 8ms/step - loss: 169.6571 - mae: 11.7405 - mse: 169.3144\n",
      "Epoch 20/2000\n",
      "3/3 [==============================] - 0s 8ms/step - loss: 143.4581 - mae: 10.8984 - mse: 147.5415\n",
      "Epoch 21/2000\n",
      "3/3 [==============================] - ETA: 0s - loss: 135.8141 - mae: 10.4524 - mse: 135.81 - 0s 8ms/step - loss: 125.3692 - mae: 10.0776 - mse: 127.5220\n",
      "Epoch 22/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 109.8136 - mae: 9.2492 - mse: 108.6243\n",
      "Epoch 23/2000\n",
      "3/3 [==============================] - ETA: 0s - loss: 92.8122 - mae: 8.4186 - mse: 92.812 - 0s 8ms/step - loss: 90.7153 - mae: 8.4431 - mse: 91.6103\n",
      "Epoch 24/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 77.3159 - mae: 7.6655 - mse: 76.9331\n",
      "Epoch 25/2000\n",
      "3/3 [==============================] - 0s 8ms/step - loss: 63.2884 - mae: 6.9069 - mse: 63.8797\n",
      "Epoch 26/2000\n",
      "3/3 [==============================] - ETA: 0s - loss: 54.7122 - mae: 6.3390 - mse: 54.712 - 0s 8ms/step - loss: 51.0899 - mae: 6.2350 - mse: 53.3833\n",
      "Epoch 27/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 43.8263 - mae: 5.6502 - mse: 45.0143\n",
      "Epoch 28/2000\n",
      "3/3 [==============================] - 0s 8ms/step - loss: 38.4137 - mae: 5.1546 - mse: 38.5296\n",
      "Epoch 29/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 34.2481 - mae: 4.7481 - mse: 33.4797\n",
      "Epoch 30/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 29.7677 - mae: 4.3981 - mse: 29.5008\n",
      "Epoch 31/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 27.3373 - mae: 4.1821 - mse: 26.9773\n",
      "Epoch 32/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 24.9477 - mae: 4.0365 - mse: 25.1653\n",
      "Epoch 33/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 23.4353 - mae: 3.9030 - mse: 23.6679\n",
      "Epoch 34/2000\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 22.9886 - mae: 3.7960 - mse: 22.4155\n",
      "Epoch 35/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 21.8989 - mae: 3.6914 - mse: 21.3217\n",
      "Epoch 36/2000\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 20.5761 - mae: 3.5858 - mse: 20.2436\n",
      "Epoch 37/2000\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 19.5548 - mae: 3.4930 - mse: 19.2599\n",
      "Epoch 38/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 18.2483 - mae: 3.3847 - mse: 18.2140\n",
      "Epoch 39/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 17.3819 - mae: 3.3041 - mse: 17.3903\n",
      "Epoch 40/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 15.8858 - mae: 3.2119 - mse: 16.4883\n",
      "Epoch 41/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 15.3103 - mae: 3.1251 - mse: 15.6404\n",
      "Epoch 42/2000\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 15.0518 - mae: 3.0429 - mse: 14.8928\n",
      "Epoch 43/2000\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 13.7830 - mae: 2.9691 - mse: 14.2292\n",
      "Epoch 44/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 13.8347 - mae: 2.8899 - mse: 13.6046\n",
      "Epoch 45/2000\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 12.8786 - mae: 2.8209 - mse: 12.9365\n",
      "Epoch 46/2000\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 12.0197 - mae: 2.7410 - mse: 12.3174\n",
      "Epoch 47/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 11.4542 - mae: 2.6740 - mse: 11.8457\n",
      "Epoch 48/2000\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 10.7790 - mae: 2.6058 - mse: 11.3042\n",
      "Epoch 49/2000\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 11.2904 - mae: 2.5530 - mse: 10.9965\n",
      "Epoch 50/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 11.5568 - mae: 2.4975 - mse: 10.6270\n",
      "Epoch 51/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 9.7172 - mae: 2.4393 - mse: 10.1553\n",
      "Epoch 52/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 9.8445 - mae: 2.3767 - mse: 9.8364\n",
      "Epoch 53/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 9.4953 - mae: 2.3313 - mse: 9.5531\n",
      "Epoch 54/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 9.4217 - mae: 2.3044 - mse: 9.4062\n",
      "Epoch 55/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 8.9688 - mae: 2.2650 - mse: 9.2298\n",
      "Epoch 56/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 9.2789 - mae: 2.2440 - mse: 9.0522\n",
      "Epoch 57/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 9.4226 - mae: 2.2652 - mse: 9.5130\n",
      "Epoch 58/2000\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 9.0158 - mae: 2.1746 - mse: 8.6252\n",
      "Epoch 59/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 8.9102 - mae: 2.1745 - mse: 8.6284\n",
      "Epoch 60/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 8.4428 - mae: 2.1725 - mse: 8.7781\n",
      "Epoch 61/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 8.5132 - mae: 2.1343 - mse: 8.3563\n",
      "Epoch 62/2000\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 8.5507 - mae: 2.1092 - mse: 8.2538\n",
      "Epoch 63/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 8.4070 - mae: 2.0932 - mse: 8.2067\n",
      "Epoch 64/2000\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 8.1978 - mae: 2.0672 - mse: 8.0786\n",
      "Epoch 65/2000\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 7.9472 - mae: 2.0544 - mse: 7.9738\n",
      "Epoch 66/2000\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 8.0614 - mae: 2.0647 - mse: 7.9625\n",
      "Epoch 67/2000\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 8.2943 - mae: 2.0271 - mse: 7.9666\n",
      "Epoch 68/2000\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 7.6710 - mae: 2.0433 - mse: 7.8157\n",
      "Epoch 69/2000\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 7.9604 - mae: 2.0203 - mse: 7.6802\n",
      "Epoch 70/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 7.7547 - mae: 2.0114 - mse: 7.7436\n",
      "Epoch 71/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 7.7538 - mae: 2.0133 - mse: 7.7127\n",
      "Epoch 72/2000\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 8.0305 - mae: 2.0101 - mse: 7.6614\n",
      "Epoch 73/2000\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 7.3242 - mae: 1.9727 - mse: 7.4794\n",
      "Epoch 74/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 7.2032 - mae: 2.0033 - mse: 7.5519\n",
      "Epoch 75/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 7.9128 - mae: 1.9798 - mse: 7.5000\n",
      "Epoch 76/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 8.0712 - mae: 1.9744 - mse: 7.4833\n",
      "Epoch 77/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 7.6811 - mae: 1.9756 - mse: 7.4861\n",
      "Epoch 78/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 7.5958 - mae: 1.9613 - mse: 7.2936\n",
      "Epoch 79/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 7.4479 - mae: 1.9429 - mse: 7.2497\n",
      "Epoch 80/2000\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 7.1300 - mae: 1.9531 - mse: 7.2651\n",
      "Epoch 81/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 7.1703 - mae: 1.9365 - mse: 7.1995\n",
      "Epoch 82/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 7.5269 - mae: 1.9649 - mse: 7.2307\n",
      "Epoch 83/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 7.0747 - mae: 1.9255 - mse: 7.0952\n",
      "Epoch 84/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 7.2697 - mae: 1.9504 - mse: 7.2385\n",
      "Epoch 85/2000\n",
      "3/3 [==============================] - 0s 8ms/step - loss: 6.7345 - mae: 1.9004 - mse: 7.0723\n",
      "Epoch 86/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.8089 - mae: 1.9562 - mse: 7.2450\n",
      "Epoch 87/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.8581 - mae: 1.9540 - mse: 7.1739\n",
      "Epoch 88/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 7.3251 - mae: 1.9207 - mse: 7.0819\n",
      "Epoch 89/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 7.1417 - mae: 1.9316 - mse: 7.3287\n",
      "Epoch 90/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.9482 - mae: 1.9147 - mse: 7.0760\n",
      "Epoch 91/2000\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 6.9482 - mae: 1.9067 - mse: 6.9849\n",
      "Epoch 92/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 7.6852 - mae: 1.9425 - mse: 7.3410\n",
      "Epoch 93/2000\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 7.0067 - mae: 1.9155 - mse: 7.0058\n",
      "Epoch 94/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.6812 - mae: 1.8983 - mse: 6.9463\n",
      "Epoch 95/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 7.0309 - mae: 1.8912 - mse: 6.9202\n",
      "Epoch 96/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.8703 - mae: 1.8856 - mse: 6.8720\n",
      "Epoch 97/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.8351 - mae: 1.8838 - mse: 6.8540\n",
      "Epoch 98/2000\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 7.1849 - mae: 1.8881 - mse: 6.9856\n",
      "Epoch 99/2000\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 7.3012 - mae: 1.8810 - mse: 6.8760\n",
      "Epoch 100/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.9392 - mae: 1.8860 - mse: 6.8830\n",
      "Epoch 101/2000\n",
      "3/3 [==============================] - 0s 12ms/step - loss: 7.0547 - mae: 1.9027 - mse: 6.9497\n",
      "Epoch 102/2000\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 7.1103 - mae: 1.8934 - mse: 6.8656\n",
      "Epoch 103/2000\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 6.9369 - mae: 1.8769 - mse: 6.9223\n",
      "Epoch 104/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.7814 - mae: 1.8953 - mse: 6.9959\n",
      "Epoch 105/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.7724 - mae: 1.8566 - mse: 6.7088\n",
      "Epoch 106/2000\n",
      "3/3 [==============================] - 0s 8ms/step - loss: 6.5848 - mae: 1.8611 - mse: 6.7436\n",
      "Epoch 107/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 7.4694 - mae: 1.8862 - mse: 6.7859\n",
      "Epoch 108/2000\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 6.5204 - mae: 1.8635 - mse: 6.8004\n",
      "Epoch 109/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 7.1073 - mae: 1.8802 - mse: 6.7803\n",
      "Epoch 110/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.6102 - mae: 1.8712 - mse: 6.7075\n",
      "Epoch 111/2000\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 7.0358 - mae: 1.8641 - mse: 6.7502\n",
      "Epoch 112/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.4283 - mae: 1.8558 - mse: 6.6167\n",
      "Epoch 113/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.7455 - mae: 1.8403 - mse: 6.5516\n",
      "Epoch 114/2000\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 6.9360 - mae: 1.8447 - mse: 6.7677\n",
      "Epoch 115/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.9014 - mae: 1.9038 - mse: 7.0244\n",
      "Epoch 116/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.5749 - mae: 1.8568 - mse: 6.7466\n",
      "Epoch 117/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.9168 - mae: 1.8410 - mse: 6.5929\n",
      "Epoch 118/2000\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 6.3338 - mae: 1.8329 - mse: 6.6516\n",
      "Epoch 119/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.3857 - mae: 1.8451 - mse: 6.5571\n",
      "Epoch 120/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.5670 - mae: 1.8403 - mse: 6.6343\n",
      "Epoch 121/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.3706 - mae: 1.8155 - mse: 6.5242\n",
      "Epoch 122/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.3550 - mae: 1.8280 - mse: 6.4625\n",
      "Epoch 123/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 7.1061 - mae: 1.8600 - mse: 6.8148\n",
      "Epoch 124/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.9283 - mae: 1.8144 - mse: 6.4510\n",
      "Epoch 125/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.6522 - mae: 1.8161 - mse: 6.4268\n",
      "Epoch 126/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.4479 - mae: 1.8152 - mse: 6.4432\n",
      "Epoch 127/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.7081 - mae: 1.8422 - mse: 6.5147\n",
      "Epoch 128/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.5851 - mae: 1.8199 - mse: 6.4477\n",
      "Epoch 129/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.2978 - mae: 1.8190 - mse: 6.4157\n",
      "Epoch 130/2000\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 6.6583 - mae: 1.8203 - mse: 6.5203\n",
      "Epoch 131/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.0811 - mae: 1.8208 - mse: 6.3977\n",
      "Epoch 132/2000\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 6.5420 - mae: 1.8173 - mse: 6.4045\n",
      "Epoch 133/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.5767 - mae: 1.8140 - mse: 6.5334\n",
      "Epoch 134/2000\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 6.5169 - mae: 1.8300 - mse: 6.6346\n",
      "Epoch 135/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.5092 - mae: 1.8297 - mse: 6.4882\n",
      "Epoch 136/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.6308 - mae: 1.8452 - mse: 6.6794\n",
      "Epoch 137/2000\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 6.4223 - mae: 1.8118 - mse: 6.4209\n",
      "Epoch 138/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 5.9083 - mae: 1.8077 - mse: 6.3931\n",
      "Epoch 139/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.2590 - mae: 1.7878 - mse: 6.3605\n",
      "Epoch 140/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.0401 - mae: 1.7884 - mse: 6.3866\n",
      "Epoch 141/2000\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 6.3193 - mae: 1.7855 - mse: 6.2789\n",
      "Epoch 142/2000\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 7.0180 - mae: 1.7822 - mse: 6.2714\n",
      "Epoch 143/2000\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 6.6354 - mae: 1.8433 - mse: 6.4764\n",
      "Epoch 144/2000\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 6.4707 - mae: 1.7890 - mse: 6.2760\n",
      "Epoch 145/2000\n",
      "3/3 [==============================] - 0s 8ms/step - loss: 6.5675 - mae: 1.7960 - mse: 6.4465\n",
      "Epoch 146/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.0615 - mae: 1.7964 - mse: 6.2981\n",
      "Epoch 147/2000\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 6.2501 - mae: 1.8102 - mse: 6.3750\n",
      "Epoch 148/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.4839 - mae: 1.7919 - mse: 6.4012\n",
      "Epoch 149/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.1457 - mae: 1.7866 - mse: 6.2010\n",
      "Epoch 150/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.0410 - mae: 1.7875 - mse: 6.3815\n",
      "Epoch 151/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.1925 - mae: 1.7895 - mse: 6.2990\n",
      "Epoch 152/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.5071 - mae: 1.7646 - mse: 6.1655\n",
      "Epoch 153/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.0075 - mae: 1.7724 - mse: 6.3797\n",
      "Epoch 154/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 5.8193 - mae: 1.7660 - mse: 6.1626\n",
      "Epoch 155/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 5.9418 - mae: 1.7723 - mse: 6.2764\n",
      "Epoch 156/2000\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 6.1433 - mae: 1.7685 - mse: 6.1648\n",
      "Epoch 157/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.1104 - mae: 1.7679 - mse: 6.3274\n",
      "Epoch 158/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 5.7620 - mae: 1.7673 - mse: 6.1164\n",
      "Epoch 159/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.0829 - mae: 1.7818 - mse: 6.1666\n",
      "Epoch 160/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.4117 - mae: 1.7591 - mse: 6.1142\n",
      "Epoch 161/2000\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 6.4644 - mae: 1.7715 - mse: 6.2041\n",
      "Epoch 162/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 5.9909 - mae: 1.7907 - mse: 6.2320\n",
      "Epoch 163/2000\n",
      "3/3 [==============================] - 0s 11ms/step - loss: 6.1793 - mae: 1.7825 - mse: 6.2296\n",
      "Epoch 164/2000\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 5.9873 - mae: 1.7523 - mse: 6.1457\n",
      "Epoch 165/2000\n",
      "3/3 [==============================] - 0s 8ms/step - loss: 6.2946 - mae: 1.7799 - mse: 6.2261\n",
      "Epoch 166/2000\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 6.2775 - mae: 1.7831 - mse: 6.2734\n",
      "Epoch 167/2000\n",
      "3/3 [==============================] - 0s 8ms/step - loss: 6.1816 - mae: 1.7438 - mse: 6.0463\n",
      "Epoch 168/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.0167 - mae: 1.7617 - mse: 6.1526\n",
      "Epoch 169/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.4572 - mae: 1.7648 - mse: 6.1620\n",
      "Epoch 170/2000\n",
      "3/3 [==============================] - ETA: 0s - loss: 4.7807 - mae: 1.5834 - mse: 4.780 - 0s 10ms/step - loss: 6.1761 - mae: 1.7664 - mse: 6.1549\n",
      "Epoch 171/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.1865 - mae: 1.7833 - mse: 6.2049\n",
      "Epoch 172/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.8784 - mae: 1.7647 - mse: 6.1704\n",
      "Epoch 173/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.2366 - mae: 1.7535 - mse: 6.1110\n",
      "Epoch 174/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.0146 - mae: 1.7875 - mse: 6.2664\n",
      "Epoch 175/2000\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 6.1762 - mae: 1.7420 - mse: 5.9928\n",
      "Epoch 176/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.6635 - mae: 1.7789 - mse: 6.3199\n",
      "Epoch 177/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.3631 - mae: 1.7628 - mse: 6.0772\n",
      "Epoch 178/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.0742 - mae: 1.7460 - mse: 6.0985\n",
      "Epoch 179/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.1650 - mae: 1.7658 - mse: 6.0822\n",
      "Epoch 180/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.1875 - mae: 1.7366 - mse: 5.9497\n",
      "Epoch 181/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.2169 - mae: 1.7534 - mse: 5.9918\n",
      "Epoch 182/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.6478 - mae: 1.7546 - mse: 6.1283\n",
      "Epoch 183/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 5.7900 - mae: 1.7595 - mse: 6.0475\n",
      "Epoch 184/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 5.8844 - mae: 1.7637 - mse: 6.1431\n",
      "Epoch 185/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.1660 - mae: 1.7490 - mse: 5.9714\n",
      "Epoch 186/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.1022 - mae: 1.7434 - mse: 5.9563\n",
      "Epoch 187/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 5.8924 - mae: 1.7297 - mse: 5.8981\n",
      "Epoch 188/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.2900 - mae: 1.7343 - mse: 5.9562\n",
      "Epoch 189/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.5532 - mae: 1.7896 - mse: 6.2489\n",
      "Epoch 190/2000\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 5.8688 - mae: 1.7676 - mse: 5.9838\n",
      "Epoch 191/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 5.6497 - mae: 1.7255 - mse: 5.9006\n",
      "Epoch 192/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 5.9428 - mae: 1.7233 - mse: 5.9542\n",
      "Epoch 193/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 5.8974 - mae: 1.7222 - mse: 5.9369\n",
      "Epoch 194/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 5.9112 - mae: 1.7351 - mse: 5.9096\n",
      "Epoch 195/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 5.9357 - mae: 1.7279 - mse: 5.8833\n",
      "Epoch 196/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.2138 - mae: 1.7560 - mse: 6.0180\n",
      "Epoch 197/2000\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 5.9198 - mae: 1.7283 - mse: 5.9794\n",
      "Epoch 198/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 5.9006 - mae: 1.7275 - mse: 5.9857\n",
      "Epoch 199/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.0051 - mae: 1.7328 - mse: 6.0904\n",
      "Epoch 200/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 5.8725 - mae: 1.7351 - mse: 5.9403\n",
      "Epoch 201/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.0794 - mae: 1.7040 - mse: 5.8176\n",
      "Epoch 202/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 5.7613 - mae: 1.7200 - mse: 5.8300\n",
      "Epoch 203/2000\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 6.4408 - mae: 1.7787 - mse: 6.2403\n",
      "Epoch 204/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 5.9808 - mae: 1.7114 - mse: 5.9193\n",
      "Epoch 205/2000\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 5.9880 - mae: 1.7138 - mse: 5.8420\n",
      "Epoch 206/2000\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 5.5858 - mae: 1.7130 - mse: 5.8880\n",
      "Epoch 207/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 5.7301 - mae: 1.7344 - mse: 5.9319\n",
      "Epoch 208/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.1862 - mae: 1.7283 - mse: 6.0043\n",
      "Epoch 209/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 5.5220 - mae: 1.7293 - mse: 5.9897\n",
      "Epoch 210/2000\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 5.7023 - mae: 1.7106 - mse: 5.8372\n",
      "Epoch 211/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 5.9678 - mae: 1.7191 - mse: 5.8035\n",
      "Epoch 212/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 5.8807 - mae: 1.6991 - mse: 5.7652\n",
      "Epoch 213/2000\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 5.7437 - mae: 1.7258 - mse: 5.8507\n",
      "Epoch 214/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 5.8151 - mae: 1.7220 - mse: 6.1433\n",
      "Epoch 215/2000\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 6.2716 - mae: 1.7241 - mse: 5.9999\n",
      "Epoch 216/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 5.8397 - mae: 1.7134 - mse: 5.8159\n",
      "Epoch 217/2000\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 5.6889 - mae: 1.7072 - mse: 5.8050\n",
      "Epoch 218/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.2386 - mae: 1.7389 - mse: 5.9700\n",
      "Epoch 219/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 5.6640 - mae: 1.7172 - mse: 5.9544\n",
      "Epoch 220/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.0570 - mae: 1.7050 - mse: 5.7955\n",
      "Epoch 221/2000\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 6.0698 - mae: 1.7120 - mse: 5.7713\n",
      "Epoch 222/2000\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 5.7421 - mae: 1.6913 - mse: 5.7704\n"
     ]
    }
   ],
   "source": [
    "# No validation set b/c need to build separate TF dataset\n",
    "EPOCHS = 2000\n",
    "# Set to patience to 100 so it trains to end of epochs\n",
    "early_stop = tf.keras.callbacks.EarlyStopping(monitor='mse', patience=10)     \n",
    "history = model.fit(train_ds,   callbacks=[early_stop], epochs=EPOCHS,  verbose=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1/1 - 0s - loss: 5.9397 - mae: 1.9018 - mse: 5.9397\n"
     ]
    }
   ],
   "source": [
    "loss, mae, mse = model.evaluate(test_ds, verbose=2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [],
   "source": [
    "test_labels = test_data[PREDICTOR_FIELD].values"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "test_predictions = model.predict(test_ds).flatten()\n",
    "\n",
    "a = plt.axes(aspect='equal')\n",
    "plt.scatter(test_labels, test_predictions)\n",
    "plt.xlabel('True Values [MPG]')\n",
    "plt.ylabel('Predictions [MPG]')\n",
    "lims = [0, 50]\n",
    "plt.xlim(lims)\n",
    "plt.ylim(lims)\n",
    "_ = plt.plot(lims, lims)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Show Model Prediction Output"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [],
   "source": [
    "model_pred_outputs = {\n",
    "    \"pred\": test_predictions,\n",
    "    \"actual_value\": test_labels,\n",
    "}\n",
    "model_output_df = pd.DataFrame(model_pred_outputs)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<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>pred</th>\n",
       "      <th>actual_value</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>20.839663</td>\n",
       "      <td>15.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>30.319689</td>\n",
       "      <td>10.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>18.583944</td>\n",
       "      <td>9.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>30.072401</td>\n",
       "      <td>25.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>32.988171</td>\n",
       "      <td>19.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        pred  actual_value\n",
       "0  20.839663          15.0\n",
       "1  30.319689          10.0\n",
       "2  18.583944           9.0\n",
       "3  30.072401          25.0\n",
       "4  32.988171          19.0"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model_output_df.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 2. Model Evaluation "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Preparing Regression Output for Binary Scoring Model Evaluation"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- Create binary label for mileage prediction over 25 miles per gallon\n",
    "    - 0 = Not Fuel Efficient, < 25 MPG\n",
    "    - 1 = Fuel Efficient >= 25 MPG"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<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>pred</th>\n",
       "      <th>actual_value</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>20.839663</td>\n",
       "      <td>15.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>30.319689</td>\n",
       "      <td>10.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>18.583944</td>\n",
       "      <td>9.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>30.072401</td>\n",
       "      <td>25.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>32.988171</td>\n",
       "      <td>19.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        pred  actual_value\n",
       "0  20.839663          15.0\n",
       "1  30.319689          10.0\n",
       "2  18.583944           9.0\n",
       "3  30.072401          25.0\n",
       "4  32.988171          19.0"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Convert Regression Output to binary classification output\n",
    "model_output_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [],
   "source": [
    "def convert_to_binary(df, pred_field, actual_field):\n",
    "    df['score'] = df[pred_field].apply(lambda x: 1 if x>=25 else 0 )\n",
    "    df['label_value'] = df[actual_field].apply(lambda x: 1 if x>=25 else 0)\n",
    "    return df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<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>pred</th>\n",
       "      <th>actual_value</th>\n",
       "      <th>score</th>\n",
       "      <th>label_value</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>20.839663</td>\n",
       "      <td>15.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>30.319689</td>\n",
       "      <td>10.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>18.583944</td>\n",
       "      <td>9.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>30.072401</td>\n",
       "      <td>25.0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>32.988171</td>\n",
       "      <td>19.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        pred  actual_value  score  label_value\n",
       "0  20.839663          15.0      0            0\n",
       "1  30.319689          10.0      1            0\n",
       "2  18.583944           9.0      0            0\n",
       "3  30.072401          25.0      1            1\n",
       "4  32.988171          19.0      1            0"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "binary_df = convert_to_binary(model_output_df, 'pred', 'actual_value')\n",
    "binary_df.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Classification Common Model Evaluation Metrics"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.metrics import brier_score_loss, accuracy_score, f1_score, classification_report, roc_auc_score, roc_curve"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "              precision    recall  f1-score   support\n",
      "\n",
      "           0       0.51      0.54      0.52        41\n",
      "           1       0.46      0.43      0.44        37\n",
      "\n",
      "    accuracy                           0.49        78\n",
      "   macro avg       0.48      0.48      0.48        78\n",
      "weighted avg       0.49      0.49      0.49        78\n",
      "\n"
     ]
    }
   ],
   "source": [
    "print(classification_report(binary_df['label_value'], binary_df['score']))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.4861619861619862"
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#F1\n",
    "f1_score(binary_df['label_value'], binary_df['score'], average='weighted')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.4845088991430455"
      ]
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#AUC - area under the ROC curve\n",
    "roc_auc_score(binary_df['label_value'], binary_df['score'])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Brier Score"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0.63984055, 0.7273677 , 0.08202658, 0.10802052, 0.90688995,\n",
       "       0.59708992, 0.17010786, 0.12262666, 0.20686824, 0.48466274,\n",
       "       0.21875581, 0.82377467, 0.53842718, 0.24924377, 0.32144547,\n",
       "       0.72764235, 0.91161052, 0.24321754, 0.50343573, 0.92028677,\n",
       "       0.74997289, 0.12646407, 0.98721181, 0.17021378, 0.56310876,\n",
       "       0.85966708, 0.62865988, 0.33722862, 0.62492099, 0.40815499,\n",
       "       0.65274542, 0.30883971, 0.01071058, 0.8678821 , 0.12334513,\n",
       "       0.40803165, 0.74179083, 0.91860733, 0.2814972 , 0.5356407 ,\n",
       "       0.41105764, 0.33681037, 0.1811007 , 0.16204914, 0.09028951,\n",
       "       0.27544439, 0.82239872, 0.0450141 , 0.06412615, 0.85322593,\n",
       "       0.91366681, 0.67436885, 0.90712883, 0.27643937, 0.88069547,\n",
       "       0.45884956, 0.04134214, 0.73975312, 0.72330834, 0.44275507,\n",
       "       0.71376937, 0.69853622, 0.00582107, 0.84070373, 0.00988595,\n",
       "       0.34868655, 0.59928363, 0.1452982 , 0.09137412, 0.56005994,\n",
       "       0.95636292, 0.72252451, 0.05760047, 0.02081183, 0.82771759,\n",
       "       0.01368662, 0.63151811, 0.9429718 , 0.49583587, 0.07421305,\n",
       "       0.13772224, 0.7149784 , 0.86850646, 0.80028487, 0.29937771,\n",
       "       0.10234995, 0.50740118, 0.29525266, 0.51646542, 0.41637914,\n",
       "       0.53578371, 0.36553001, 0.87027022, 0.07157494, 0.23841116,\n",
       "       0.40403308, 0.96537963, 0.6482574 , 0.51317208, 0.63067597])"
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "random_predictions = np.random.random((100))\n",
    "random_predictions"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1,\n",
       "       0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1,\n",
       "       1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1,\n",
       "       0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1,\n",
       "       0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1])"
      ]
     },
     "execution_count": 47,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "random_labels = np.random.choice([0, 1], 100)\n",
    "random_labels"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- Convert probability to binary predictions"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [],
   "source": [
    "probability_prediction_df = pd.DataFrame({\"prob_prediction\": random_predictions,\n",
    "                \"binary_prediction\": np.array([ 1 if abs(x)>=0.5 else 0 for x in random_predictions], dtype=int),\n",
    "                                \"label\": random_labels})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<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>prob_prediction</th>\n",
       "      <th>binary_prediction</th>\n",
       "      <th>label</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.639841</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.727368</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.082027</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.108021</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.906890</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   prob_prediction  binary_prediction  label\n",
       "0         0.639841                  1      0\n",
       "1         0.727368                  1      1\n",
       "2         0.082027                  0      1\n",
       "3         0.108021                  0      0\n",
       "4         0.906890                  1      0"
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "probability_prediction_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [],
   "source": [
    "y_true = probability_prediction_df['label'].values \n",
    "y_pred = probability_prediction_df['binary_prediction'].values"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.53\n"
     ]
    }
   ],
   "source": [
    "acc = accuracy_score(y_true, y_pred)\n",
    "print(acc)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.321911857133992\n"
     ]
    }
   ],
   "source": [
    "bs_loss = brier_score_loss(y_true, probability_prediction_df['prob_prediction'])\n",
    "print(bs_loss)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Misclassified"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [],
   "source": [
    "missclassified_df = probability_prediction_df[probability_prediction_df['binary_prediction']!=probability_prediction_df['label']]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7f9c0571b150>"
      ]
     },
     "execution_count": 54,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "missclassified_df['prob_prediction'].plot(kind='hist')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3. Demographic Group Bias Analysis"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- Select groups to analyze\n",
    "- Prepare data \n",
    "- Analyze groups\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Select groups to analyze\n",
    "- Selected 'origin' field which gives the country of origin for the car."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [],
   "source": [
    "#combine binary df with original test df, order was not shuffled so can do"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [],
   "source": [
    "merged_binary_df = binary_df.assign(origin = test_data['Origin'].values)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<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>pred</th>\n",
       "      <th>actual_value</th>\n",
       "      <th>score</th>\n",
       "      <th>label_value</th>\n",
       "      <th>origin</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>20.839663</td>\n",
       "      <td>15.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>USA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>30.319689</td>\n",
       "      <td>10.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>USA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>18.583944</td>\n",
       "      <td>9.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>USA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>30.072401</td>\n",
       "      <td>25.0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>Japan</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>32.988171</td>\n",
       "      <td>19.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>USA</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        pred  actual_value  score  label_value origin\n",
       "0  20.839663          15.0      0            0    USA\n",
       "1  30.319689          10.0      1            0    USA\n",
       "2  18.583944           9.0      0            0    USA\n",
       "3  30.072401          25.0      1            1  Japan\n",
       "4  32.988171          19.0      1            0    USA"
      ]
     },
     "execution_count": 57,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "merged_binary_df.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Prepare Data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Aequitas\n",
    "from aequitas.preprocessing import preprocess_input_df\n",
    "from aequitas.group import Group\n",
    "from aequitas.plotting import Plot\n",
    "from aequitas.bias import Bias\n",
    "from aequitas.fairness import Fairness"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "model_id, score_thresholds 1 {'rank_abs': [35]}\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/opt/conda/lib/python3.7/site-packages/aequitas/group.py:30: FutureWarning: The pandas.np module is deprecated and will be removed from pandas in a future version. Import numpy directly instead\n",
      "  divide = lambda x, y: x / y if y != 0 else pd.np.nan\n"
     ]
    }
   ],
   "source": [
    "ae_df, _ = preprocess_input_df(merged_binary_df)\n",
    "g = Group()\n",
    "xtab, _ = g.get_crosstabs(ae_df)\n",
    "absolute_metrics = g.list_absolute_metrics(xtab)\n",
    "clean_xtab = xtab.fillna(-1)\n",
    "aqp = Plot()\n",
    "b = Bias()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Analyze Groups"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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yMhg9OjR1KlTh5o1a3Lttdeyd+9er2OVNPezzz5LUFAQYWFhnmPbtm1FxrZgwQLCw8Pp3LkzADNnzqRLly7UqFGDhg0b8uijj+Z7+8eRI0cYMGAAoaGhxMbG8t5773naOnToQK1atViwYEHRX2wBO3bs4IorrqB69eq0bt2axYsXF9nXWstjjz1GdHQ00dHRPProo1hrfRpLCqtXr56/Q5AyUP6cTfmrnFSQERERkfNG/fr1efLJJ7n99tu9tnfv3p133nmHunXrljjWfffdR+3atdm/fz8JCQksXbqUSZMmeeb5+OOPOXLkCIcPH+a6665jyJAhxY5X3NwTJkzghx9+YO3atezbt4/IyEjGjBlT5D2WNPfNN99Mamqq52jWrFmRcU2ZMoVbbrnF8/nEiRO8+uqrHD58mBUrVvDVV1/x0ksvedrvv/9+qlatyoEDB3j33Xe599572bBhg6d98ODBTJ06tdjvIq+hQ4fSuXNnkpKSeP755xk8eHCReylMmzaNuXPnkpiYyNq1a/nkk0/yzXUmY0lheu2usyl/zqb8VU4qyIiIiMh5Y+DAgdxwww1ER0cXaqtatSp/+tOf6N69O4GBgSWOtX37dm666SZCQkKoW7cuffv29RQeIiMjPatdrLUEBgayZcuWIscqae7t27dz9dVXU6dOHUJCQhgyZEi+IkdeZzp3cU6dOsWSJUvo2bOn59y9995Ljx49qFq1Kg0aNGD48OEsX74cgLS0NGbPns348eMJCwuje/fuXHfddbz99tue69u0acNXX31FRkZGifNv2rSJn3/+meeee45q1aoxaNAg2rdvz+zZs732nzlzJg8//DANGzakQYMGPPzww8yYMcOnsaQwFa+cTflzNuWvclJBRkRERMSLhx56iA8++IATJ06wd+9ePv/8c/r27ZuvT2RkJCEhIYwZM4a//vWvPs91xx13sHz5cvbt28eJEyd499136devX7HXFDf3ggULqFmzJu3atWPy5MlFjrF582YCAgJo2LBhkX2WLVtGu3btAFfRIzAwkLi4OE97x44d8xWP6tatS1BQEBs3biw2foANGzbQrFkzwsPDixyvYP+OHTt67XumY4mIiPhbFX8HICIiIlIR9ezZk//85z/UqFGD7Oxsbr31Vm644YZ8fY4dO0ZaWhozZ84kNjbW57ni4uJo3LgxDRo0IDAwkPbt2/P6668Xe01Rc990003cfffd1KlThxUrVjBo0CAiIyMZOnSo1zHyFjAKeuutt1i1ahXTp08HXG8BiYiIyNcnIiKClJQUz+eoqCjCw8M5duxYifdd1HhF7Z9TsH9ERASpqalYa894LCksKirK3yFIGSh/zqb8VU5aISMiIiJSQE5ODldffTUDBw4kLS2Nw4cPc/ToUR577LFCfUNDQxk9ejQjR47k4MGD7Nq1K9+GuqVx7733kp6eTlJSEmlpaQwcOLDEFTLe5gZo27Yt9evXJzAwkEsvvZSHHnqIjz/+2Ov1UVFR+Yopec2dO5fHH3+czz//nJiYGADCwsJITk7O1y85OTlfUScsLIyUlBQiIyNLjL804xXXPzk5mbCwMIwxZzyWFFba/79KxaT8OZvyVzmpICMiIiJSwJEjR9i9ezcPPPAAwcHBREdHc9ttt/HZZ5957Z+Tk+N5tKlx48b5NtQtjcTEREaNGkXNmjUJDg5mzJgxrFy5ksOHD5d4bd65vcnda8abli1bYq0tdO0XX3zBXXfdxYIFC2jfvr3nfFxcHFlZWWzevDlf7LmPNAGsWrWKU6dO0apVqxJjb9euHdu2bctXFCo4XsH+iYmJXvue6VhS2O7du/0dgpSB8udsyl/lpIKMiIiInDeysrJIT08nOzub7Oxs0tPT8725IiMjg/T0dMC1oW16errXYkVMTAxNmzZl8uTJZGVlcezYMWbOnOnZv2TRokWsWbOG7OxskpOT+ctf/kJUVBRt2rQpMrbi5r7ooouYNWsWx48fJzMzk0mTJlG/fn3PypS8Spp73rx5HD16FGstK1eu5LXXXuP666/3GlNQUBB9+vRh6dKlnnNLlixh+PDhzJ49m4svvjhf/9DQUAYOHMjTTz9NWloay5cvZ968efne0rRixQp69+5NcHAwADNmzKBJkyZe54+Li6NTp04899xzpKenM2fOHNauXcugQYO89h85ciSvvPIKe/fuZd++fbz88sue15uf6VgiIiJ+Z63VoUOHDh06dOioMEen1k2tr5555hkL5DueeeYZT3tsbGyh9u3bt1trrX3++edt3759PX3XrFlje/bsaSMjI210dLQdPHiwPXDggLXW2o8++si2atXKhoaG2piYGNuvXz+bmJhYbGzFzX348GE7bNgwW6tWLRsREWEvu+wyu2LFCs+1bdu2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\n",
      "text/plain": [
       "<Figure size 720x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "tpr = aqp.plot_group_metric(clean_xtab, 'tpr', min_group_size=0.05)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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/qb8+ZvyF55UkBEREZFqRQUZf0tNTQ11CFJByp2/KX/+pvyFJxVkRERERERERESqmAoyIiIiUq1ERUWFOgSphCZNmoQ6BKkg5c7flD9/U/7CkwoyIiIiUq2YWahDkEqoXbt2qEOQClLu/E358zflLzypICMiIiLVSlZWVqhDkErYsGFDqEOQClLu/E358zflLzypICMiIiIiIiIiUsVUkBEREZFqJSJCP574WUxMTKhDkApS7vxN+fM35S886SceERERqVZq1aoV6hCkEhISEkIdglSQcudvyp+/KX/hSQUZERERqVb2798f6hCkElauXBnqEKSClDt/U/78TfkLTyrIiIiIiIiIiIhUMRVkREREROSg0RpA/qXc+Zvy52/KX3gy51yoYxARERHJ17t3b5ecnBzqMERERETKZGZznXO9K3KtynAiIiJSrWRmZoY6BKmEdevWhToEqSDlzt+UP39T/sKTCjIiIiJSrWj2rr/t27cv1CFIBSl3/qb8+ZvyF55UkBERERERERERqWJaQ0ZERESqld4dE9ycB88LdRgiUt3VaYBd8o9QR1Ft7N+/n9q1a4c6DKkg5c+/tIaMiIiI1By5OaGOQET8YF9aqCOoVtLT00MdglSC8heeVJARERERERHxuR07doQ6BKkE5S88qSAjIiIiIiIiIlLFVJARERERERHxufj4+FCHIJWg/IUnFWRERERERER8LioqKtQhSCUof+FJWRcREZEa48MFa3hg2hyycnJpHFOHl286lQ7xDYr0y8nN5fbXZvPpwrWYGff8oSc39ju8zLbCPlu0jv9750cWrUvl1tO78fjlx+e3bUnbyw0TZ7B2ewaZOTmcdkQrnrzqRKIii/4+bPr81fzlze/JznEc074pL93Yj3q1o8psK2z8Z4vIys7l7kE9eG9eCmPfncf+7Bycg+tP6cJdZx8FwILV2xj64kxyHWRl53Jip+Y8dfVJ1K4VyUc/reG9eSk8f/0pB/bli0hIbdy4kcTExFCHIRWk/IUnzZARERGRGmFHxn6u+89XvDFiAAsfvpgbTz2cEZO+LbZv0uwVrNycxrJxlzH7/vMY8+5cUrbuLrOtsMOa1eeFG07h7rN7FGl7ZPp8Dm/RiJ8evoiFD13MvJStTEv+rUi/9H1ZDHv5a97/40CW/+MyYuvU4vGPfyqzrbA9+7N56rPFjDy9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wMaNG+nTpw8REREYYwr1/+WXX+jVqxchISE0b96cOXPOvFyrQ4cOBAYGsmDBgmLjzyshIYErr7ySmjVr0qpVK7755psi+5Z0bWczlhSWlJTk7RCkHJQ/Z1P+qiYVZEREROS8Ua9ePZ588kluv/32Qm379+9n5MiRvPTSSyQlJfHCCy8wfPhwDh065HGsv/71ryQkJJCUlMT8+fN58sknWbNmTb4+x48fJyUlhZSUFJ566qki4zp27Bh33303CQkJ7N69m+DgYG677bZC/V544QXq1KlT7DUeOXKEgQMHMmHCBI4ePUpsbCw333yzu3369OnMnTuX+Ph41q9fz2effca0adOKHG/q1KmMGjXKve/n58eQIUN48803C/XNysqif//+XHfddRw9epTp06czcuRItm7d6u5z/fXXFztfQcOGDaNz584kJiby3HPPMXjwYA4fPuyxb0nXdjZjiYiIeJ21Vps2bdq0adOmrdJsXZrVseX197//3d5yyy35ji1fvtxGRkbmOxYREWF/+umnEsf79ddfbXR0tP3oo4+stdbu2rXLAjYzM7NM8a1Zs8YGBQXlO7Zz507bqlUr+8UXX9j69esXee60adNst27d3PspKSk2ICDA/vLLL9Zaa7t162anTZvmbp8xY4a9+OKLPY6Vnp5uAwIC7N69ewu1bdu2zeZ+VTxjw4YNNjAw0Obk5LiPXX311fbJJ5907//66682ICDApqWlFXkNp23ZssVWr17dJiUluY91797dTpkyxWP/4q7tbMeSwvJ+duI8yp+zKX/OBay2ZfzOoxUyIiIiUiXExsbSunVr5s+fT3Z2NnPnzsXf358OHToUec7999/vvv2lbt26XHvttfnaGzVqRIMGDbjttts4cuRIqWNZunQpbdu2zXdszJgx/OMf/6BGjRrFnrtp0yY6duzo3g8MDKRZs2Zs2rTJY3vHjh3dbQVt27YNHx+fEm+ROi33e2fhYxs3bnTv161bFz8/P7Zs2VLieJs2baJp06YEBweXKt7iru1sx5LCPOVXnEP5czblr2pSQUZERESqBF9fX0aPHs3w4cPx9/dn+PDhTJs2jcDAwCLPmTx5MsnJyfzwww8MHDgQf39/ACIiIli1ahW7d+9mzZo1JCcnM2LEiFLFsX79esaPH88LL7zgPjZnzhyysrK48cYbSzw/JSWFkJCQfMdCQkJITk722B4SEkJKSorHL/vHjx/PV8AoSatWrahTpw4vvPACmZmZLFy4kCVLlnDy5El3n0OHDhEcHMzx48fLfS0l9c97bWc7lhRW1O174gzKn7Mpf1WTCjIiIiJSJXzzzTc89thjfP/992RkZLBkyRLuvPNO4uLiij3P19eX7t27s2/fPqZMmQJAUFAQsbGxVKtWjaioKF5//XUWLlxIUlISe/bsyfew37y2b99Ov379mDRpEj169AAgNTWVxx57jNdee61U1xEUFFTo4Y9JSUnuwkrB9qSkJIKCgjw+oDcsLOysChZ+fn7MnTuXzz//nOjoaF588UWGDBlSaIVNcnIyoaGh5b6WkvrnvbazHUtERMTbVJARERGRKiEuLo7LL7+c2NhYfHx8uOiii7j44otL/SaerKwsduzY4bHtdLHDWkvDhg3dD/pNSUlx99m9eze9e/fmqaeeyvcQ3W3btpGQkECPHj2Ijo5m4MCBHDx4kOjoaBISEgrN1bZtW+Lj4937qamp7Nixw30LVMH2+Pj4QrdHndaiRQustezfv79UnwHkvklpyZIlJCYm8vXXX7Nz5066du3qbj916hQjVVeqAAAXz0lEQVQZGRm0bNmyxLHatm3Lzp078xWFiou3uGs727GksIIrjMRZlD9nU/6qJhVkRERE5LyRlZVFWloa2dnZZGdnk5aWRlZWFgAXXXQRP/zwg3tFzLp16/jhhx88PkPm0KFDfPjhh6SkpJCdnc3XX3/NBx98QK9evQBYsWIFW7ZsIScnh8TERB566CGuuOKKIr9Q79+/n169evHAAw9w77335mtr164de/fuJS4ujri4OGbMmEFUVBRxcXFccMEFhca68cYb2bhxI7NnzyYtLY3x48fToUMHWrVqBcDo0aN56aWX2L9/PwcOHODFF1/0+ApwyF3x0rt3b5YsWeI+Zq0lLS2NjIwMANLS0khPT3e3r1+/nrS0NE6ePMnEiRM5ePBgvvHXrVtHr1693Ld3zZw5k8aNG3ucPyYmhk6dOvHss8+SlpbGnDlzWL9+PYMGDfLYv7hrO9uxpDD9g9DZlD9nU/6qqLI+DVibNm3atGnTpu2P2Dq2bGLL6plnnrFAvu2ZZ55xt7/22mu2WbNmNigoyDZp0sROnDjR3fbcc8/Zvn37WmutPXTokL388sttSEiIDQ4Otu3atbPTp093933//fdt48aNbc2aNW10dLQdNWqUPXjwYJFxjRs3zgI2MDAw3+bJd999V+gtS23atLGzZs1y7y9atMi2bNnSBgQE2J49e9pdu3a523JycuzYsWNtWFiYDQsLs2PHjs33VqSCPvvsM/d1W3vmDVJ5t0aNGrnbH330URsaGmoDAwNt37597bZt2/KN17NnTztv3jz3/vjx4+3w4cOLnH/Xrl22Z8+eNiAgwMbExNhFixa525YuXZrvcyrp2oobS0pWMJfiLMqfsyl/zkU53rJkcs8XERERqRzat29vN2zY4O0wqpTu3bvz2muv0blz53KNs2HDBkaPHs26devcx6655homTZpE69atyxum/MG2b99O8+bNvR2GlJHy52zKn3MZY9ZYa2PLcm61cx2MiIiISHl4evis/LF+/PHHczJO+/btmT9/fr5jCxcuPCdjyx/v9G1m4kzKn7Mpf1WTniEjIiIilUr16tW9HYKUg6fn3ogzKHfOpvw5m/JXNakgIyIiIpVKdspRb4cg5eDpzVDiDMqdsyl/zqb8VU0qyIiIiEil4puZ6u0QpBxOv9VKnEe5czblz9mUv6pJBRkRERERERERkQqmgoyIiIiInDNNmjTxdghSRsqdsyl/zqb8VU0qyIiIiIjIOXP48GFvhyBlpNw5m/LnbMpf1aSCjIiIiIicMykpKd4OQcpIuXM25c/ZlL+qSQUZERERkSrusssuY926deUeZ/369QwZMuQcRCQiInL+U0FGREREzhuvv/46sbGx+Pv7c+utt+Zry8jIYPDgwTRu3BhjDN9//32xYyUkJHDttdcSFhZGdHQ0Dz74oPstGJs3byY2NpawsDDCwsLo3bs3mzdvLnKskuZOT0/n3nvvJSoqitq1a3P99dezf/9+j2OVNPe4cePw8/MjKCjIve3cubPI2BYsWEBwcDCdO3cG4O2336ZLly7UqlWLBg0a8Nhjj+V7+8fRo0e58cYbCQwMpFGjRrz//vvutg4dOhAZGcmCBQuK/mALSEhI4Morr6RmzZq0atWKb775psi+1loef/xxwsPDCQ8P57HHHsNaW6axpLC6det6OwQpB+XP2ZS/qkkFGRERETlv1KtXjyeffJLbb7/dY3v37t2ZNWsW0dHRJY51//33U6dOHQ4ePEhcXBxLlixh8uTJ7nk+/fRTjh49ypEjR7jhhhsYOnRo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\n",
      "text/plain": [
       "<Figure size 720x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fpr = aqp.plot_group_metric(clean_xtab, 'fpr', min_group_size=0.05)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABGQAAAFSCAYAAAC0bwnSAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8GearUAAAgAElEQVR4nOzdd3hVVdbH8e9Kg5CE0DuGEkAMRZBBUETsoogiggVRFEdUbKOOOjoiDqOvZXRsYxtUEMEy4Iy9K4hiAaUXadJ7TUJL2+8f9ybe9OQGcnNyf5/nuc/knr3PPuuc9cxMWNlnb3POISIiIiIiIiIilSci1AGIiIiIiIiIiIQbFWRERERERERERCqZCjIiIiIiIiIiIpVMBRkRERERERERkUqmgoyIiIiIiIiISCVTQUZEREREREREpJKpICMiIiIiIiIiUslUkBERERERkSrHzFw5PyP8500IOHZOMWOP9bdfU+D4hCLG3W9mS8zscTNrWAm3LiJhIirUAYiIiIiIiBThgSKO3QokAk8Bewq0zSui/6Nm9qlzLruc1343YLzGwDnAbcBgMzvOObeznOOJiBSigoyIiIiIiFQ5zrmxBY/5Z8EkAk8659aUMsRKIAW4Gvh3OS//P+fchIDr1gR+ALoCN1J0sUhEpFz0ypKIiIiIiFRH44D9wN/MLK4iAznnDgKT/V//UNHARERABRkREREREameNgGPA02AOw/DeOb/z8zDMJaIiAoyIiIiIiJSbT0KbAVuN7OmwQ5iZrHA5f6v3x6OwEREtIaMiIiIiIhUS865dDO7H3gB3ytM15RySq4LzKyV/+dGwACgJfAN8PxhDlNEwpQKMiIiIiIiUp2NB24GrjKzp5xzC8twzvn+T6DPgXOdc3plSUQOC72yJCIiIiIi1ZZ/y+s78f3b59EynnaVc87w/QG7PfAWcAaaHSMih5EKMiIiIiIiUq055z4EvgLONrMzynFetnNuBXAZ8CMw0swGHqEwRSTMqCAjIiIiIiLh4A7AAY9Rzn8HOedygFv8Xx81s8jDHJuIhCEVZEREREREpNpzzs0FXge6ApcGcf6PwAdAB+CKwxudiIQjFWRERERERCRc3AscBJKDPH8Mvlk295tZzGGLSkTCkgoyIiIiIiISFpxz64EnK3D+XOC/QBIw6nDFJSLhyZxzoY5BRERERERERCSsaIaMiIiIiIiIiEglU0FGRERERERERKSSqSAjIiIiIiIiIlLJVJAREREREREREalkKsiIiIiIiIiIiFSyqFAHICIiIhKofv36rnXr1qEOQ4KUlZVFVJR+xfQi5c7blD9vU/686+eff97hnGsYzLnKuIiIiFQprVq1Ys6cOaEOQ4KUkZFBTExMqMOQICh33qb8eZvy511mtjbYc/XKkoiIiFQp2dnZoQ5BKmDv3r2hDkGCpNx5m/LnbcpfeFJBRkRERKoUFWS8Tf+o8C7lztuUP29T/sKTCjIiIiIiIiIiIpVMBRkRERGpUrSoobc1atQo1CFIkJQ7b1P+vE35C08qyIiIiEiVYmahDkEqQPnzLuXO25Q/b1P+wpMKMiIiIlKlZGZmhjoEqYCtW7eGOgQJknLnbcqftyl/4UkFGRERERERERGRSqaCjIiIiFQpkZGRoQ5BKqB27dqhDkGCpNx5m/LnbcpfeFJBRkRERKoUFWS8rV69eqEOQYKk3Hmb8udtyl94UkFGREREqpSMjIxQhyAVsGbNmlCHIEFS7rxN+fM25S88aV9JERERqVJ2bFjDLWd1DnUYIiKHXULd+vz9zemhDkNEqgjNkBEREZEqJScnK9QhiIgcEWm7dx6xsaOjo4/Y2HLkKX/hSQUZERERERERj0tKSgp1CFIByl94UkFGRERERETE49auXRvqEKQClL/wpIKMiIiIiIiIx2VmZoY6BKkA5S88qSAjIiIiIiIiIlLJVJARERERERHxuFatWoU6BKkA5S88qSAjIiIi1cZTny4kpmZsvmMPvv0N9Ro3AyC56x/401OT+fNz/+Ev/36X0Y+Mx8zy9R9x7z/4+1vTiYiMKvFanXqfwuDR9xQ6Pvrhf/Pg29/kO3b6xSO5+8V3uGf8ewy74+9E+nfTaJqUzKhxz5X7PkUkPO3atYtBgwYRFxdHUlISU6ZMydeWa8KECURGRhIfH5/3mT59er6x3nzzTTp27EhcXBxt27Zl5syZlXUbUoTA/En4KPk3DREREZFqIiIikqvv+yfP/vlqNv22HIDmbY/GOZfXp1ZCbdp368W29Wvo1OtkFnz3ZbHjnXvlTbzw1+vzHTtp4GXs2rqJZm065B3r0L03x/U7hyduHkbGoQNcfOv9nDLoCr54+2U2r11JVlYmyV3/wMr5sw/zHYtIdTN69GhiYmLYunUr8+bN49xzz6Vr166kpKSQmppKo0aN8vr27t2bb7/9tshxPv/8c+666y7eeustevbsyebNmyvrFqQYBfMn4UEzZERERCQs1KgVR40asaTt3pl3bOOqZfn69Dh1AEt+/IZv33+TXmcNKnasNp26sy91N3t3bM071rDZUXTvdzZfvPVyvr7N23Rg1aJfyDh0AICls7/luFPPzWv/ZfpH9D57cIXuTUSqv3379jFt2jTGjRtHfHw8ffr0YeDAgUyaNKncY91///2MGTOGXr16ERERQfPmzWnevPkRiFpESqKCjIiIiISFA+mpzPpkGn995QP++MAznD50JHUaNs7X5/gzL+DHz/7H/G8/p1XHrtSu17DIsZK7/IG1yxbmfTczLr51LFOffZDs7Kx8fdevWEKH7r2Iq12HiIhIuvU9i3qNmua1r1kyn/bHHn8Y71REqqPly5cTGRlJ+/bt84517dqVxYsXA9C4cf7/PZs7dy4NGjSgffv2jBs3jqws3/82ZWdnM2fOHLZv305ycjItWrTgxhtv5MCBA5V3M1JIwfxJeFBBRkRERKq93NeSpv3rIR69YQgLv/+aozqkcPeL/6Vhs6MA3+tLsfG1WTH/JzIzDjH/uy/oefrAIser06Bxvpk2p1w0glWLfmbj6l8L9V0x/ye+ff9Nrn/oRW5+fALbN67LV7RJ3b2D2vUalLpmjYiEt/T0dBITE/MdS0xMJC0tDSDf65d9+/Zl0aJFbNu2jWnTpvHGG2/w2GOPAbB161YyMzOZOnUqM2fOZN68ecydO5e///3vlXczUkhg/iR8qCAjIiIi1Ubanp3E1a6T9z0iIpLYuHjS9+7OO7ZzywZ++OQdXhl3G78tmU9Kr34A9Dr7QmLjExgz8RPGTPyElJ4n0/PM84u8TmbGQaJiYvK+J3c+juPPOJ8xEz/hlsdfo1Z8bcZM/IQateIAmPG/yfzjxot58k/D2bRmBVvXrc47NyqmBlmZmeQUmFkjIhIoPj6e1NTUfMdSU1NJSEgAYNu2bXnH27RpQ+vWrYmIiKBz586MGTOGqVOnAhAb61v4/KabbqJp06Y0aNCA2267jY8++qiS7kSKEpg/CR/6U4yIiIhUG7/+8gMnnjuED159GoATzrmINcsWkHnoIDE1Y2l9zLH8+sv3AMTGJVC/SXN2bdlAZHQ0x/XrzxM3Xcr2Tevyxrtn/Hu0SenG6sVz811n828raNPpuLzvL425Me/neo2bcfszb/K3K8/OO5ZQtz5pu3cSG1+b04dezaeTX8xra9KyTd4iwyIixWnfvj1ZWVmsWLGCdu3aATB//nxSUlJKPdfM8mZg1K1blxYtWhTaYU5EKp8KMiIiIlJtvPPCIwy+/m7uen4aOS6HPdu38Pqjvq2pzYyTBl7K4Bv+QlZmBhGRkcz56kMWzPqKbiefxfZN6/IVYwB+/vojjj9rUKGCzOIfv+GMS6/N94+cktzwf//GIozIyChmvvcGC7//Kq/t6B4nMv/bzw/D3YtIdRYXF8eFF17ImDFjGD9+PPPmzePdd99l1qxZAPleZ/r444/p3r07jRs3ZtmyZYwbN44hQ4bktV911VU888wznH322URHR/Pkk08yYMCASr8n+V3B19EkPJjeVRMREZGqpHFirLukV3KowyjV0JvHsGzOtyyY9VXpnYsRGRXFbU+/wXN3/5F9qXsOY3QiUlU99enC0jsVY9euXVx99dV8/vnn1K9fn4cffpjLLruMdevWccwxx7BkyRKOOuoo7rjjDiZNmkR6ejqNGzfm8ssv57777iM6OhqAzMxMbrnlFqZMmULNmjUZOnQojz76KDVr1jxctynllJGRQUzAq7DiHWb2s3OuR1DnqiAjIiIiVUnTugluaM9WoQ6jVHGJdTm6e29+/jr4dRcaNjuKhs2TWDJ75mGMTESqqoS69fn7m9OPyNgrV64kObnqF7OlaMqfd1WkIKNXlkRERKRKadCiVYX+glzZrrj7kVCHUKXoHxXepdyJiFQu7bIkIiIiVYoWmvS2GjVqhDoECZJy523Kn7cpf+FJBRkRERGpUvQOvbe1bNky1CFIkJQ7b1P+vE35C08qyIiIiEg+ZjbCzNLLec5YM1t0OK6fvW/34RhGQmTNmjWhDkGCpNx5m/LnbcpfeFJBRkRERAp6C2hTznP+AZx8OC4embXvcAwjIZKVlRXqECRIyp23KX/epvyFJy3qKyIiInnMLNo5dwA4UJ7znHPpQLlm1YiIiIiEM82QERERqcbMrIaZPWlmW83soJn9YGZ9/G39zMyZ2Tlm9pOZZQBnFfXKkpn9xT9Gupm9Zmb3m9magPZ8ryyZ2QQz+8DMbjGzjWa228xeNbNalXXvEhqtW7cOdQgSJOXO25Q/b1P+wpMKMiIiItXbo8DFwNVAN2Ah8ImZNQ3o8wjwV+Bo4MeCA5jZJcD9wL1Ad2ApcFsZrn0S0Ak43R/DIOCWYG9EvGH79u2hDkGCpNx5m/LnbcpfeFJBRkREpJoyszjgeuAu59yHzrmlwHXAVmB0QNexzrnPnHOrnXNF/UZ4CzDBOTfeObfcOfd/FFG4KUIqcL1zbqlz7jPgP8BpxcR6rZnNMbM55bhFqYLS0/Xmmlcpd96m/Hmb8heeVJARERGpvtoC0cB3uQecc9nA98AxAf1KK4IcDfxU4FhZCjJLnHOBqxRuAhoV1dE595JzrodzrkcZxvWkE088kblz51Z4nAULFnDCCScchohEREQklFSQERERqb7M/5+uiLbAY2XZ1qioMUqTWcQYR/x3j379+jF+/PgjfZlyef/990lISKBbt24ALFq0iLPOOosGDRpgZoX6x8fH5/tERkZy0003AdClSxfq1KnD+++/X+brr1mzhlNOOYVatWpx9NFH88UXXxTb1znHXXfdRf369alfvz533nknzrkyj9W0adOCQ4pHKHfepvx5m/IXnlSQERERqb5WAhlAn9wDZhYJ9AaWlGOcZUDPAscKfpcSvPDCCwwfPjzve3R0NEOHDuXll18usn96enreZ+vWrcTGxjJkyJC89mHDhvHiiy+W+fqXXnop3bp1Y+fOnTz44INcdNFFxa5X8NJLL/G///2P+fPns2DBAj744IN81yptLG3d6l3Knbcpf96m/IUnFWRERESqKefcPuB54GH/Tkod/d8bA8+VY6ingBFmdrWZtTOzO4HjCW7WTKXZvXs3AwYMoGHDhtStW5cBAwawYcOGvPZ+/frxl7/8hZ49e5KYmMj555/Prl278tqHDBlCkyZNSExMpG/fvixevDivbcSIEYwePZpzzz2XhIQEjj/+eFatWlVkHBkZGXz11VecfPLJecc6dOjAyJEjSUlJKfU+pk6dSqNGjTjppJPyxf7ll19y6NChUs9fvnw5v/zyCw888ACxsbEMHjyYzp07M23atCL7T5w4kdtvv50WLVrQvHlzbr/9diZMmFDmsbQwpXcpd96m/Hmb8heeVJARERGp3u4C3gZeBeYBXYCznXObyzqAc+5NYBzwMDAX385JLwAHD3u0h1FOTg5XXXUVa9euZd26dcTGxnLjjTfm6/Paa6/xyiuvsGnTJqKiorj55pvz2vr378+KFSvYtm0b3bt3Z9iwYfnOfeONN7j//vvZvXs3ycnJ3HvvvUXGsWLFCiIiImjRokVQ9zFx4kSuuOKKfK82NW/enOjoaH799ddSz1+8eDFt2rQhISEh71jXrl3zFZgK9u/atWuRfcs7loiIiBRPBRkREZFqzDl3yDl3q3OusXOuhnOul3PuW3/bdOecOed2FDhngnMuvsCxh5xzjZxz8c65K4AO+F6Jym0f65zrFPB9hHNuQIEx8vU50urXr8/gwYOpVasWCQkJ3HvvvcyYMSNfn+HDh9OpUyfi4uIYN24cb7/9NtnZ2QBcffXVJCQkUKNGDcaOHcv8+fPZu3dv3rkXXnghPXv2JCoqimHDhjFv3rwi49izZ0++AkZ5rFu3jhkzZnDllVcWaktISGDPnj2ljpGenk5iYmK+Y4mJiaSlpZWpf2JiIunp6TjnyjRW3bp1S41JqiblztuUP29T/sKTCjIiIiJSIjOrZWa3m1mKmXUws3uA84FXQh1bSfbv38+oUaNISkqidu3a9O3blz179uQVXABatmyZ93NSUhKZmZns2LGD7Oxs7r77btq2bUvt2rVp1aoVADt2/F67atKkSd7PtWrVKnbL0rp16xZb/CjNa6+9Rp8+fWjdunWhtrS0NOrUqVPqGPHx8aSmpuY7lpqaWmyRqGD/1NRU4uPjMbMyjRUfn6+WJx6i3Hmb8udtyl94UkFGRERESuOA/sA3+F5ZuhgY7pz7b0ijKsXjjz/Or7/+yo8//khqairffPMNQL4dg9avX5/387p164iOjqZBgwZMmTKFd999ly+++IK9e/eyZs2aQueWVbt27XDOsXHjxnKf+9prrxU5O2bTpk1kZGTQoUOHUsdISUlh9erV+YpC8+fPL3b9mpSUFObPn19k37KMFfhMxVuUO29T/rxN+QtPKsiIiIhIiZxzB5xzpzvn6jvnajnnujrnJoc6rtKkpaURGxtLnTp12LVrFw888EChPq+//jpLlixh//79jBkzhosuuojIyEjS0tKoUaMG9evXZ//+/dxzzz1BxxEdHc3pp5+e73Up5xwHDx4kIyMDgIMHDxZaoHfWrFls3Lgx3+5KuaZPn86pp55KjRo1AJgwYULeLJ6C2rdvz7HHHssDDzzAwYMH+e9//8uCBQsYPHhwkf2vuOIKnnjiCTZu3MimTZt4/PHHGTFiRFBjiYiISPFUkBEREZEqJTs6rsJjmBm33norBw4coEGDBvTq1Yuzzz67UL/hw4czYsQImjRpwsGDB3n66acBX1EiKSmJ5s2bc8wxx9CrV68KxTNq1CgmTZqU933t2rXExsbmzSyJjY0tNNtl4sSJXHjhhUW+WjR58mSuu+66vO/r16/nxBNPLPb6b775JnPmzKFu3brcfffdTJ06lYYNGwIwc+bMfFPlR40axXnnnUfnzp3p1KkT5557LqNGjSrTWAA1a9Ys62ORKka58zblz9uUv/BkwUy9FRERETlSevTo4ebMmRP0+d27d2fMmDFccMEFJfbr168fl19+Oddcc03Q1yqPPn368Mwzz9CtW7cKjbNw4UKuvfZavv/++7xjZ555Jk899RQdO3asaJgiIiJSDmb2s3OuRzDnaoaMiIiIVCkFX90pj8WLF7N06dIKFz2OhG+//fawxNW5c+d8xRiAzz77rMoUY1avXh3qECRIyp23KX/epvyFJxVkREREpFq46667OPPMM3nkkUdISkoKdThhKycnJ9QhSJCUO29T/rxN+QtPemVJREREqpTjOrZwP79aOa8RiYhUF1lWk6jj7w51GBKklStXkpycHOowJAh6ZUlERESqDUN/JRQRKa8odzDUIUgFtG3bNtQhSAioICMiIiIiIiISQlu2bAl1CBICKsiIiIiIiIiIhNC+fftCHYKEgAoyIiIiIiIiIiKVTAUZERERERERkRBq1qxZqEOQEIgKdQAiIiIih0urQU9SMyaKmjV+/xXnf49cQqumdUIYVdHe/WYZn/+0mmfvOIdDGVmcf+ebzFm2CYAdn9yZ12/WgvXc8cxn7En3Ldh57gnteGT0GUREGItWbePOf33OR08MC8k9iIjI4XHo0CFq1aoV6jCkkmmGjIiIiFQrUx8ayrzXrsv7lLcYk5VVObs8/fXFr7n7ij4AREZEcMdlJ/DF01cU6lc7rgYTx1zAkjdGM3fiKL5ftIHJny4AoFPbRsRER/L1z79VSswiUn3t2rWLQYMGERcXR1JSElOmTCm27+rVqxkwYAAJCQk0aNCAO++8M6hx5Hc7d+4MdQgSAirIiIiISLW3ZvMeGpz9aJHfc38eO346fUa9wvj3fmHl+l2cduNrdLn8ebpf+SKffL8y71zr/QBjx0/nhD++TIeLn2Xa10vy2n5cvIFTRk/kuBEvcdyIl/jwu+VFxjNz3loa1KlFi0a1AYiKiuD0nm2ok1CzUN9ObRvRrmV9AGrERNGtfRPWbtmb137pGZ0Y/97cCjwdEREYPXo0MTExbN26lcmTJ3P99dezePHiQv0yMjI444wzOPXUU9myZQsbNmzg8ssvL/c4IqJXlkRERKSaueiet/NeWYqKjGDOq9eWes7OvQfo2KoBY6/pB8DxI8dz7fndGTmwO0t+207f619l6RujaVg3DoAIM2b9eyS/rt3BCde+wkldk4iJjuS6Rz7koycuo2mDBDbvSOMPV/+bRZNvKFRomf7LGo5PaV7ue9u2ax/Tpi/lw39clnesd6eW3PLPT8o9lohIrn379jFt2jQWLVpEfHw8ffr0YeDAgUyaNImHH344X98JEybQrFkzbrvttrxjXbp0Kfc4kl+9evVCHYKEgAoyIiIiUq1MfWgondo2Ktc5NWOiGHpaCgBp+w4xb8UWrhrQDYBjWjfk2HZN+GHRBs47qQMAI8/ztXVIakD3Dk35YfEGoiIj+G3zbvrfNjlvXDNj5YZd9OiYf7HGDdtSOTqpQbliTNt3iIF3vsHtl/amW4emeceb1I9n6659ZGZlEx0VWa4xRUQAli9fTmRkJO3bt8871rVrV2bMmFGo7w8//ECrVq3o378/s2fPplOnTjzzzDN07ty5XONIflo/JjypICMiIiLVXlRkBDk5Lu/7wUNZ+drjYqMxMwAcRcttL8g5h/n/s0tyY755/qpS44mtEc3BjKxS++XafzCTAXe8wZk923L7ZSfkazuYkUV0VISKMSIStPT0dBITE/MdS0xMJC0trVDfDRs28PXXX/Pee+9x2mmn8dRTT3H++eezbNmyco0j+W3YsIHk5ORQhyGVTGvIiIiISLXXpF48mdk5rFy/C4Apny0stm/tuBoc264JEz+aB8CyNTuYv3JrvleMXv3Q17Zi/U7mrdjC8SktOKFzS1as35Vvgd3ZSzbiXOEST+e2jfh1XdkWcDx4KIvz7niDXp2a87drTynUvnTNdrokNy7TWCIiRYmPjyc1NTXfsdTUVBISEgr1jY2NpU+fPvTv35+YmBjuuOMOdu7cydKlS8s1johohoyIiIhUM4FryACM/8tAenRsxlO3ns0Zt0wiqUkipxzXqsQxJo+9kFGPfMA/3/yBqMgIJo0ZlLd+DECN6EhOvPYVduzdz4t3DaBRPV/be49ewp+f/Zxbn/yUjMxs2jSvy/uPXUrByTUD+rTnwYkzyclxRET4Gv9w9b/ZsC2V3WkHaTHwCc7ulcz4ewby8vu/MH3uGnam7ufTH1cBMOTUY7h3RF8APv1hFYP7dazoYxORMNa+fXuysrJYsWIF7dq1A2D+/PmkpKQU6tulSxe+++67Co8j+emVpfBkRf3VRkRERCRUenRs5sqyEG+oWO8HSPvyL8TXiqnQOKMefp+zeyUzqALFlIzMbHqO/DdfPH0FDerol3mRsNdrbNCnXnLJJZgZ48ePZ968eZxzzjnMmjWrUDHl119/pVu3brz33nuccsopPP300zz77LMsXbqUmJiYMo8jUl2Y2c/OuR7BnKtXlkRERKRKcWHy68nfR53KgUNlX0emKGu37OGh605TMUZEyLKapXcqwXPPPceBAwdo1KgRl156Kc8//zwpKSmsW7eO+Ph41q1bB0CHDh14/fXXue6666hbty7vvvsu7733HjExMSWOIyVbtWpVqEOQENAMGREREalSOnfu7BYuLH6NF6naVq5cqYUpPUq58zblz9uUP+/SDBkRERERqRKK241Kqj7lztuUP29T/sKTZsiIiIhIldKjRw83Z86cUIchIiIiUirNkBEREZFqIzMzM9QhSAVs2rQp1CFIkJQ7b1P+vE35C08qyIiIiEiVkpOTE+oQpAL2798f6hAkSMqdtyl/3qb8hScVZEREREREREREKpkKMiIiIlKl5G6dKt7UokWLUIcgQVLuvE358zblLzypICMiIiJVSnZ2dqhDkArQtHvvUu68TfnzNuUvPKkgIyIiIlWKCjLetmvXrlCHIEFS7rxN+fM25S88qSAjIiIiIiIiIlLJVJARERGRKiUqKirUIUgF1K9fP9QhSJCUO29T/rxN+QtPKsiIiIhIlWJmoQ5BKqBGjRqhDkGCpNx5m/LnbcpfeFJBRkRERKqUzMzMUIcgFbBp06ZQhyBBUu68TfnzNuUvPKkgIyIiIiIiIiJSyVSQERERkSolIkK/nnhZXFxcqEOQICl33qb8eZvyF570G4+IiIhUKdHR0aEOQSqgSZMmoQ5BgqTceZvy523KX3hSQUZERESqlEOHDoU6BKmAVatWhToECZJy523Kn7cpf+FJBRkRERERERERkUqmgoyIiIiIHDZaA8i7lDtvU/68TfkLT+acC3UMIiIiInl69Ojh5syZE+owREREREplZj8753oEc67KcCIiIlKlZGRkhDoEqYANGzaEOgQJknLnbcqftyl/4UkFGREREalSNHvX2w4ePBjqECRIyp23KX/epvyFJxVkREREREREREQqmdaQERERkSqlR9smbvb954c6DBEJdzVrY0MfC3UUZXbo0CFq1KgR6jAkSMqfd2kNGREREak+crJDHYGICBxMDXUE5ZKenh7qEKQClL/wpIKMiIiIiIiIx+3evTvUIUgFKH/hSQUZEREREREREZFKpoKMiIiIiBjXfJIAACAASURBVIiIxzVs2DDUIUgFKH/hSQUZERERERERj4uKigp1CFIByl94UtZFRESk2vhw3jrGvDObzOwc6sXV5NU/nkzrhrUL9cvOyeHm12fx6YL1mBl3nXss1/Q7utS2gj5buIF7p/7Ewg27uPH0Tvzj0l55bdtSD3D1+Oms37mPjOxsTunYnKcvP4GoyMJ/D3t/7lrufOsHsrIdx7VqwCvX9KNWjahS2wp66rOFZGblcMc5XXn3lzWM+98vHMrKxjm4qm8Hbu/fBYB5a3cw8uUZ5DjIzMrhhHaNeWb4idSIjuSj+et495c1vHhV3/I9fBEJqc2bN5OcnBzqMCRIyl940gwZERERqRZ27zvEiH9/zRs3nMaCB4dwzclHc8PEb4vsO3nWSlZtTWX5o5cw677zeeB/P7Nme1qpbQW1aZTAS1f35Y7+XQu1PfT+XI5uWpf5D17Egr8P4Zc123lnzm+F+qUfzOTaV7/hvVvPZsVjlxBfM5p/fDy/1LaC9h/K4pnPFjH69BQAmiTW4r0/ncXCh4bw3X3n88JXS5j562YAOjStw/djLmDuuMEsePAidu07yItfLwXgnK5H8fNvO1i11Vs7zIhUNbt27WLQoEHExcWRlJTElClTiuw3YcIEIiMjiY+Pz/tMnz4d8G2FPHLkSJKSkkhISKBbt258/PHHlXgXInIkqSAjIiIi1cLKrXtpXLsW7ZvUAeCcri35dOEGdqQdLNT37Z9WcU2/o4mIMBrWjuX87kn8Z/bqUtsKSm6cSLekBkRFWqE2A9IOZpCT4ziUlU1GVg7N68YV6vfxgvX0aNWQdk0SAbju1GN4+8fVpbYVNG3Oavp2aEpsjG/2zPFtG9HMf73EWjF0bFaHtTt826rGxkQRExUJQGZ2DgcysokIuIUhx7fhlZnLiryOiJTN6NGjiYmJYevWrUyePJnrr7+exYsXF9m3d+/epKen53369esHQFZWFi1btmTGjBns3buXcePGMXToUNasWVNojPj4+CN4N3KkKX/hSQUZERERqRbaN6nDlr37mb16GwCTv18JwLqd6YX6rtuZTlL933/5Pap+POt3pZfaVh73nd+dFVv20uyW12l68yTO7NyCE9s3KTKWoxoUH0txbQVNX7aZnm0bFdm2bNMefli1jVOPaZZ3bNPufXS7bxoNb3yNhJrRXHtKx7y23m0b89WSTeW7YRHJs2/fPqZNm8a4ceOIj4+nT58+DBw4kEmTJpVrnLi4OMaOHUurVq2IiIhgwIABtG7dmp9//rlQXy0K623KX3hSQUZERESqhcRaMbw5+jRum/I9f7j/HbalHqBOrRiii1izpTL8Z/ZqOresz6anLmfDk5cz89ctTC1mps3hsHHXPhrXji10fPOe/Vzw1Kc8O/zEvBkzAM3qxjF33GA2P305GVk5+V6nalInlg279h2xWEWqu+XLlxMZGUn79u3zjnXt2rXYGTJz586lQYMGtG/fnnHjxpGVlVVkv61bt7J8+XJSUlIKtf32W+FXIsU7lL/wpIKMiIiIVBunp7Rg5l/PZ/YDF3Lj6SkcyMymTaOEQv2Oqh/P2oCZM+t2ptOyXnyJbTvTD9Ltvml0u28al/zri1JjefbzxQzrnUxEhJFYK4aB3ZP4emnhWSdH1Y9n3Y7iYymuraDYmEgOZmbnO7Yt9QBnPPIhd/TvytDj2xZ5XlyNaIYe34Yp/hlFAAczsomNiSz1HkWkaOnp6SQmJuY7lpiYSFpa4fWo+vbty6JFi9i2bRvTpk3jjTfe4LHHHivULzMzk2HDhnHllVdy9NFFLzQuIt6igoyIiIhUG1v27AcgJ8dxz9TZjDqlI3E1ogv1u+gPbRg/fRk5OY7tqQd495e1DO7RusS2+vE1mTtuMHPHDebN0aeXGkvrhgl8snA9ABlZ2Xy5eCOdmtcr1O/szi2Y/dt2VmzZC8ALXy1hSM82pbYV1KlFPX7dsifv+870g5z56IeMPj2l0C5Rq7elkpGVnRfbe7+spVOL32NbunkPXVvWL/UeRaRo8fHxpKbmXxg7NTWVhITCBeI2bdrQunVrIiIi6Ny5M2PGjGHq1Kn5+uTk5DB8+HBiYmJ49tlni7ymtk32NuUvPCnrIiIiUm38ddpsZq3YSkZWNmd0asHDQ3rmtZ37+Mc8cGEPerRuyPAT2/Hjqm20v/NNwLfeS5tGvu2xS2or6NvlW7j0uS9JPZCBA976cRXjR/blrM4t+edlJ3D9xJl0ufc/ZOc4+nVsxh/9hZEXvlrCpj37+duFPUiIjeHFq07ivH9+QnaOo1tSfe44x7c9dUltBV3YozWjJ37L2EE9AHj4g3ks37KXl6Yv5aXpvh2Ubj6jE1f17cCsFVt59KN5RJiRnePoe3RT7ju/e95Yny5cz4X+ApWIlF/79u3JyspixYoVtGvXDoD58+cX+apRQWaGcy7vu3OOkSNHsnXrVj766COiowsXmQFatWp1WGKX0FD+wpMF/pddREREJNR6tG7oZj9wYajD8KSzH/uI/xvak25JDYIeY2f6QU57+AN+GjsobycmkXBlV7wY9LmXXHIJZsb48eOZN28e55xzDrNmzSpUlPn444/p3r07jRs3ZtmyZVx00UUMGTKE+++/H4DrrruOefPm8cUXX5S4E8/69etp2bJl0PFKaCl/3mVmPzvnegRzrl5ZEhERkSrFmX49CdYzw09ks/+1rWCt3pbKc1f2UTFGpGbRM+PK6rnnnuPAgQM0atSISy+9lOeff56UlBTWrVtHfHw869atA+DLL7+kS5cuxMXFcc4553DhhRdyzz33ALB27VpefPFF5s2bR5MmTYiPjyc+Pp7JkycXut6hQ4cqFK+ElvIXnjRDRkRERKqUzp07u4ULF4Y6DAnSypUrSU5ODnUYEgTlztuUP29T/rxLM2RERESk2oiJiQl1CFIBRx11VKhDkCApd96m/Hmb8heeVJARERGRKiU7O7v0TlJl7d27N9QhSJCUO29T/rxN+QtPKsiIiIhIlRKZvjXUIUgF6B8V3qXceZvy523KX3hSQUZERESqFHM5oQ5BRERE5IhTQUZEREREDptGjRqFOgQJknLnbcqftyl/4UkFGRERERE5bMws1CFIkJQ7b1P+vE35C08qyIiIiIjIYbN1q9YA8irlztuUP29T/sKTCjIiIiIiIiIiIpVMBZkjxMy+M7Nuh2GcLmY263DEJCIiInKk1a5dO9QhSJCUO29T/rxN+QtPJRZkzKyGmb1sZmvNLM3M5ppZ/wJ9rjGzlWaWbmafmFmzEsZrZWYfmdluM9tiZs+aWVRA+1AzW+q/1hIzu6AsN2Fm95uZM7PTi2iLMbNlZrahhPOPMbM5/rh2m9kXZnZMQLuZ2SNmttP/edRKeMnPzM4D0pxzc/3frzSzn80s1cw2+M8PvO96ZvZfM9vnf9aX5bY55xYAe/xjBsXMTjGzr81sr5mtKUP/0/zPbL//vKSAtnI9CxEREQkv9erVC3UIEiTlztuUP29T/sJTaTNkooD1wMlAInAf8LaZtQIws5OBh4DzgXrAb8AbJYz3HLANaAoc6x/3Bv9YzYHXgduA2sCfgSlmVuJy02bWFrgI2FxMlz/7r1mSTf4x6gENgPeANwParwUuALoCXYABwKgSxrsOmBTwvRZwq3/s44HTgDsC2v8FZACNgWHA82aWEtA+uZTrlWYf8Aq+Z1EiM2sAvIMv1/WAOcBbAV3K+yxEREQkjKxZsybUIUiQlDtvU/68TfkLTyUWZJxz+5xzY51za5xzOc65D/AVXY7zdzkP+I9zbrFzLgMYB/T1F0mK0hp42zl30Dm3BfgEyC08tAD2OOc+dj4f4iskFDdWrmeBu/AVNPIxs9bA5cD/lXKfe/z36AADsoHkgC5XAo875zY45zYCjwMjihrLzGKAU4EZAeM/75yb6ZzL8J8/GTjR3z8OGAzc55xLd859i68gNDxg2OnAaWZWo6T7KOH+fnLOTQJWl6H7hcBi59x/nHMHgbFAVzM72t9e5mchIiIiIiIiIkUr1xoyZtYYaA8szj3k/xDwHaBTMUM8BVxiZrX8M2L64yvKgG8mxlIzG2hmkf7XlQ4BC0qIZwiQ4Zz7qJguzwD3AAdKvrO88fYAB/3nPRTQlALMD/g+n98LSQW1A3Kcc8W+IgX05fdn2B7Ids4tL258f+EjE+hQhtuoqHz36pzbB6wKiKc8z0JERI4AM+vnf1W3QSVdb4SZpVfGtcT7oqOjQx2CBEm58zblz9uUv/BU5oKMmUXjm9kx0Tm3zH/4I2Cof+HZWGAM4PC9olOUGfj+8Z4KbMBXhPkfgHMuG3gNmIKvEDMFGOUvCBQVTzy+osmtxbQPAqKcc/8t6z065+rgezXrRmBuQFM8sDfg+14gvpi1U+oAacVdw8yuAnoA/yhm7NzxEwocS/OPfaSVFk95noWISNgys7FmtijUcYhUtqSkpNI7SZWk3Hmb8udtyl94KlNBxswi8K2JkoGvWAGAc+5L4H5gGrAWWIOvcFBodoh/jE/xrU8Sh289lbrAI/7204FHgX5ADL71Zcab2bFmdpR/0eD0gL/QPQBMcs79VsS14vxj3VSW+wvkLwC9ALwWsH5NOr51bXLVBtL9rzgVtJvCxZTcuC4AHgb6O+d2FDN27vgFizoJwJ7S4jezewKe1Qul9S9CafGU51mIiIhImFm7dm2oQ5AgKXfepvx5m/IXnkotyPhnPryMb8HZwc65zMB259y/nHPtnHON8BVmooCi/iJYD2gJPOucO+Sc2wm8Cpzjbz8W+MY5N8e/Xs1s4EfgdOfcOudcfO7H3/804Gb/bk1b/GO/bWZ34XttqBUw09/2DtDU37dVGZ9LLaC5//tifIvY5urK768cFbQC32NrHnjQzM4G/g2c55xbGNC0HIgys3bFjW++natigF9LC9w591DAs7qutP5FyHev/uJW24B4yvMsREQ8zczONrOZ/h34dpnZp2bWMaC9mZlN9u86t9/M5vl3thuB7w8WKf5Xi5z/GP6fLypwnTVmdkfA99vMbIF/972NZjbezMo9S9LMEs3sQMGd+szsTDPLzP3Dg5k9bGa/+vuu8e+gV7OEcQvN/inqtSYzO898uwweNLPfzOxB/1prUo1lZmaW3kmqJOXO25Q/b1P+wlNZZsg8D3TEV0jItxaLmdU0s07+rZCPAl4CnnLO7S44iH9GyG/A9WYW5f/F8kp+X49kNnCSmR3rH7sbcBLFryFzGr61ao71fzbh2+3nX/gKQi0D2q4Btvp/Xl9wIDM7w8y6+deuqQ08gW+my1J/l9eA28ysub84cjswoaig/AWrL/DN8Mkd/1R8r3sNds79VKD/PnwFo7+ZWZyZnYhv16rAXZr6AV855w75xxthZdi+OuD6Ef5frKN9X61mCb8Q/xfoZGaD/eeMARYEvKZW5mchIlINxAFPAj3x/W/xXuB9M4vxF6xn4PsDwCCgM/A3/3lv4Vv0/Fd8Ows2Jf+OdaXJwfdKbgpwmf/6z5Q3eOfcXuADfDv4BRoGfOacy92FcB9wNb7/v78BuAS4t7zXC2RmZ+H7/75n8d3H1fh2NHyopPNEREREwkWJBRkzS8JX5DgW2BLwKkzuL3Y18a31kg78BHyPb7vk3PPvMbOPA4a8EDgb2A6sBLKAPwE452bg29Fnqpml4Ztt85Bz7rOiYnPO7XTObcn94NsZabd/p6KsAm278C20u8W/Vg1mtjjgPurg2657L74FbJOBs/27DAG8CLwPLMRX7PnQf6w4L5J/l6T78K1N81HAMwx8LjcAsfi2534DuN45FzjrZBi+16hytQS+K+H6BfXFt7DxR8BR/p/znmvgs3DObce369OD+IpSx+P7xTzw3srzLEREPMs5N83/WeGcWwBchW/HwJ74CiVNgPOdc98451Y5595xzn3t/wNGOhD4/0dlWmDef90nnXNf+XcAnAHciW/NtnItxu/3OjDQzBIAzLfm2yD/8dzrjXPOfee/3kf4iiaXBnGtQPcCjznnXvU/m6/x7Yp4nX/2bT5mdq2ZzTGzOTkVvLCEVqtWrUIdggRJufM25c/blL/wZFr648gws2+Bm5xzc0vtXPI4nYGXnHO9A459BtzinFta/JkiIlJRZtYWGIevON0Q3x8y4vAVyvsAXZ1zJxZz7ljgIudcpwLHHTDEOTc14NgafK/0/sP//VTgL/hmrCQCkfgK982dc5vMrB/wNdAwYE2y4u4hGtgM3Oace83MLgbGA42dc/v9fS7CNyMnGd/i7ZFApHMuxt8+wh9ffHH3VkSfff5xsgLCifDfRzPn3ObiYj722GPdvHnzSrotqcK2bdtGo0aNSu8oVY5y523Kn7cpf95lZj8753oEc24wf2mTMnDO9aloMcY/zsLAYoz/2JkqxoiIVIr38RViRuErynTDV2CIAYLdXc4VcW7eXpf+2akf4nttdghwHL7XffBft3wX871K+x9+f21pGPBOQDGmF/AmvoX3z8N3j38NjKkIOSXdg18EvgX4jw34dMG3ztv2kmLOzs4u8Z6kaktNTQ11CBIk5c7blD9vU/7CU1SoAxAREamKzKw+vhkqo/2v22Bm3fn9/zt/AS43swbFzFLJwDdDpKDt+NaUyb1O48DvQA98hZc/BbxmO6CCt/M6MMPMjsH36vC5AW0nAhudc+MCYipt783tQGMzs4Bd9o4t0OcX4Gjn3MqKhS4iIiJSPWmGjIiISNF2AzuAP5pZspmdjG89r9xXcKbgW/vrf2Z2kpm1NrOBZnaKv30NkGRm3c2sgZnV8B//ChhtZj38C9hPAHLXLAPfbn0RwK3+MS/F9zpR0Jxz3wFr/THv8MeQaznQ3MyGmVkbM7ue0tePmY5v98R7zKytmY3Et2BvoL8Bl5nZ3/wbABxtZheZ2aOlxVvj0M6y3ZhUSY0bNw51CBIk5c7blD9vU/7CkwoyIiIiRXDO5QAX43vNZhG+XfzuAw752/fh21FvI75Xmxbje0Und8bINHyLqX+Jb0ZJbpHjdmA1vqLGVHzrueTudoR/8eBbgNuAJfh2CszbErsCJgNdgTdyZ974r/c+8Bi+3aQWAGfg22GvWP7XZq8Hrg0456ECfT7FNxPnFHwL//8E3A2sKzVSp2V9vUzrE3qXcudtyp+3KX/hSYv6ioiISJXSo10TN2fFllCHIUFauXIlycnJoQ5DgqDceZvy523Kn3dpUV8REREREREREQ9RQUZERMTDzOxjM0sv5nNPqOOT8JOYmBjqECRIyp23KX/epvyFJ+2yJCIi4m3XALHFtO2qzEBEQP+o8DLlztuUP29T/sKTZsgcIWb2nX/3jIqO08XMZh2OmEREpPpxzm10zq0s5qOCjFS6detKX7dZqiblztuUP29T/sJTiQUZM6thZi+b2VozSzOzuWbWv5i+95uZM7PTSxivnpn918z2+ce8rED7aWa2zMz2m9nXZpZUwli9zOxzM9tlZtvN7D9m1jSgvY6ZTTSzbf7P2FLudaiZLfXf5xIzu6DAc3jBzLb6r/e+mTUvYazzgDTn3Fz/905m9qmZ7TCzQqsoFzHFPNvMnoG83Tb2+McMipmd4n+ee81sTRn6F5sH83nEzHb6P4+amQUbm4iIiIiIiEg4Km2GTBSwHt+2non4tvt828xaBXYys7bARcDmUsb7F5ABNAaGAc+bWYp/jAbAO/5r1APmAG+VMFZd4CWgFZAEpAGvBrT/E6jlb+8JDDezq4oayF9ceR3fFqO1gT8DU8yskb/LLUBvfFufNgP2AM+UENt1wKSA75nA28DIojo75+JzP/iezQHgPwFdJgOjSrheafYBr+C7rxKVIQ/XAhfg2zq1CzCggrGJiIhINVKjRo1QhyBBUu68TfnzNuUvPJV722szWwA84JybFnDsY3wFiueAa5xzXxRxXhywG+jknFvuPzYJ2Oicu9vMrgVGOOdOCOi/A+jmnFtWhri6AzOccwn+7zuA/s652f7v9/i/n1TEuccD7zvnGgUc2w4MdM59b2bP45vxcqe/7VzgCedchyLGigH2Au2ccxsKtCUDK5xzxc4oMbMrgfuBts6fHH/BaCVQxzl3qLRnUcLYpwPjnXOtSuhTYh78r09NcM695G8fCfzROdcr2LhEREQCadtrERER8YpK2/bazBoD7YHFAceGABnOuY9KOb09kJ1bjPGbD6T4f07xfwfAObcPWBXQXpq+gXHlhlfg507FnDsHWGpmA80s0v+60iFggb/9ZeBEM2tmZrXwze75uJix2gE5BYsx5XAl8JoLqJQ55zbim2VTqAB0BJSWh3zt5M+hiIiIhLk1a9aEOgQJknLnbcqftyl/4anMuyyZWTS+V2cm5s5YMbN44CHgzDIMEY9v5kigvUBCQPv2EtpLiq0LMAY4P+DwJ8Dd/hknjYGr8b3CVIhzLtvMXgOmADXxvVY1xF+MAFgOrAM2AtnAQuDGYsKpg+/1qXIzs6PwvR5W1KtNaf6xj7TS8lAwj3uBeDOzwCKSiIiIhKesrKxQhyBBUu68TfnzNuUvPJVphoyZReBbEyWD/IWIB4BJzrnfyjBMOr71WQLV5vfiRbHtZnZU4KK3BWJLxjdb5Rbn3MyAppvxrcWyAngXeAMoctaK/1WeR4F+QAy+osh4MzvW3+V5fIWa+kAcvjVWipshs5syFJGKcQXwbTHPMwHf2jUlMrN7Ap7VC0HEUN481QbSVYwRERERERERKbtSCzL+HXRexjfLZLBzLjOg+TTgZjPbYmZbgJb4Fv29q4ihlgNRZtYu4FhXfn/NaLH/e+5144C2wGLn3LoCC9/m9kkCvgDGOecCF9HFObfLOTfMOdfEOZfiv9efirnNY4FvnHNznHM5/nVnfgRyd4zqim/dlF3+NVyeAXr6F8AtaIX/sRW7C1MJrgAmFjxoZs3wFYp+LW0A59xDAc/quiBiKDYPRbWTP4ciIiIS5lq3bh3qECRIyp23KX/epvyFp7LMkHke6Aic55w7UKDtNHzrshzr/2zCt+POvwoO4n/95x3gb2YWZ2Yn4nvFKLeQ8l+gk5kNNrOa+F5BWlDcgr7+gsdXwL+cc4VmgphZWzOr718Tpj++3YH+Xsw9zgZOyp0RY2bdgJP4fQ2Z2cAVZpbof3XrBmCTc25HEfeZia9IdHJALOa/pxj/95pmlm8ZbTM7AWhO/t2VcvUDvspd0NfMRpRl++qAsSP814/2h1PTv/hwUUrLw2vAbWbW3F8ouh2YUNZYREREpHrbvr3gm8/iFcqdtyl/3qb8hacSCzL+GSij8BVbtgS8CjMMwDm30zm3JfeDb32V3c65dP/59/h3YMp1AxALbMP3CtH1zrnF/rG2A4OBB/G99nM8cEkJ4V0DtAHuL+Z1puPwrfWSBvwfMCz3Wv7YFgfcxwxgLDDVzNKAacBDzrnP/N3vAA7im/2yHTgHGFRCbC8CwwO+J+F7fSr3+gcoPNvlSuAd51xR688MAwKLTi2B70q4fkF9/df8CDjK/3PuvRV8FqXl4UXgfXzPdhHwof+YiIiICOnp6aV3kipJufM25c/blL/wVO5tr6VszOxb4Cbn3NwKjtMZeMk51zvg2Gf41sxZWsEwRUREqpzj2jdzPy/fFOowJEgrV64kOTk51GFIEJQ7b1P+vE35866KbHtd5l2WpHycc30O0zgLgd4FjpVlVysRERFPcvFNQh2CVEDTpk1DHYIESbnzNuXP25S/8FSmXZZEREREKotm73qbtm71LuXO25Q/b1P+wpNmyIiIiEiVEpG+BT64PdRhSJASQx2ABE25O4JiEuDMsUf0Etu3bycxUVn0KuUvPGmGjIiIiFQphmbIiEg1k1HUvh0iEu5UkBEREREREfG4unXrhjoEqQDlLzypICMiIiIiIuJx8fHxoQ5BKkD5C08qyIiIiIiIiHjc+vXrQx2CVIDyF55UkBERERERERERqWQqyIiIiIiIiHhczZo1Qx2CVIDyF55UkBEREZFq446XZ9B65HjsvCdYtHZHvrYPflpNt1smcezNk+hy02u8M2tFkWNkZ+cw+vkvafvHl0m+9mXGf7qwTG0FjXvzB1JumEjXm17juFtf59Nf1hTq8+uGXdQa/DR3vDyj2HHe/2kVR1/3KsnXvszFj3zA/oOZZWor6Kn3fuEf78wBYOPONE65520SL36WHn+anK9fTo7jlpe+JuWGiXS+cSJn3z+NTTvTAfhozmpGPft5sdcQkSNj165dDBo0iLi4OJKSkpgyZUqhPi1atGDChAlERkYSHx+f95k+fXq+fm+++SYdO3YkLi6Otm3bMnPmzEq6CylJixYtQh2ChIAKMiIiIlJtXNArmW8evpikRrXzHXfOMfyJj5l0W3/mPT2c12/rz5VPfkJOTuEttifPWMbKzXtY8eLVfP/YpYx943vWbN1baltBPds3YfYTlzH/mSt45ZazuPjRDzlw6PeCSXZ2DqP+9QUX9Gpb7P2kH8jgj898zvtjLmDlSyNJiI3hH/+dU2pbQfsPZvL0+3MZfW5XAOJrxvDAZScw+fZzCvV978dV/Lh8M/OfGc7CZ6/kmJb1+ftbPwJwTo82zFm5lVWb9xQbs4gcfqNHjyYmJoatW7cyefJkrr/+ehYvXpyvz+rVqwHo3bs36enpeZ9+/frl9fn888+56667ePXVV0lLS+Obb76hTZs2lXkrUozc/El4UUFGREREqo0+Kc1p2TChyLaICGPvvkMA7Nl3iKZ144iIsEL93pr5K388qzMREUbDxFpc0Kst//luealtBZ3VvRW1akYD0KVVA5xz7Ew7mNf+8NTZDPhDG9o3L36r049/XkOP5Ma0a+brc13/Lrw1c3mpbQVNm7WCviktiK3hiycxrgZ9O7UgPja6UF8zOJSZzcGMLHJyHGkHMmjR4PfdP4b2ac8rny8qNmYRObz27dvHtGnT+j7STQAAIABJREFUGDduHPHx8fTp04eBAwcyadKkfP1ycnJKHev++/+/vfuOrqpK+zj+3QkJCUkIIQFC7026BAsgCqIgKghiodpFUZzR1zI6DiiMjgU7o4DYxQoKoqKUEUQRBSSEBAQSakBaAqSRvt8/crmm3BQSyM0lv89aZ5lz9j77POc+K67Lk332mcLkyZO54IIL8PLyonHjxjRu3PhMhS6noCz5k7OPCjIiIiJy1jPG8NkjVzHs3wtpfuubXPPUQt67f7DLvnsOJ9G83l8zbJrVq83ew8mltpXk/f9tpnV4HZqE5RWLonYe5vsNu7h/2LklnrfncFKB2T7N6tVm75HkUtsKWxG9l/Pbh5caJ8DV57Xmks5NCR8/i/DxM9m67ygPDo9wtl/YoRHLo/aUaSwRqbht27bh7e1Nu3btnMe6detWZIbMSRs2bCAsLIx27doxbdo0srOzAcjJyWHdunUcPnyYNm3a0KRJE+69915OnDhRKfchIkWpICMiIiJnveycXP7z+W8sfHwYu9++g0X/uoYbnv2GlBOZZ/zaKzft5V8frubjh/IeD8rKzuGOGUuZOXEg3t6V81Us/kgKDerUKlPf3+MOsiU+gX3v3smf702gW8t6PPDWCmd7eEgA8UdSzlCkIlJYSkoKwcHBBY4FBweTnFywANu6dWv69etHdHQ0hw4dYv78+Xz88cc8//zzABw8eJCsrCzmzZvHqlWriIyMZMOGDfz73/+utHuR4rVuXfzjq3L2UkFGREREznqROw6xPzGFPufkTc3vc05jAvx82LI3sUjfZvVqs/twknN/z+Ek52NQxbUlJJ2g+315Cwbf8OzXzvZf/tjP2BcXs+CfQ2nfpC4AfyamEvfnMYY8+SUtbpvDy19t4M0lm7jTxWK5zerVZvehQtcLCyq1rTB/3xqkZ+aU/kEB7y6PYUDXZgQH1MTb24uxl3Tkh6h4Z3t6Zjb+vjXKNJaIVFxgYCBJSUkFjiUlJREUVPD3/cCBA7Rq1YqWLVvi5eVFly5dmDx5MvPmzQPA398fgEmTJtGwYUPCwsJ44IEH+PbbbyvnRqREBw4ccHcI4gYqyIiIiMhZr0lYEPFHUtgan1eA2bI3gQNHU2ndMLhI3+v6tOPN7zeRm2s5fDyNBWviuLZ32xLbQmv7E/nqOCJfHcenj1wFwNptB7jh2W+Y94+rObdNA+f4zerX5shHE9n11u3seut2/j60B3dc3oXZ915WJJbB57ZgbexBtu8/CsDMxVFcf1G7UtsK69IijK37ihafXGnZIJjlG/eQlZ1XwPl23U46Nw91tm+JT6Rby3plGktEKq5du3ZkZ2ezfftfb4bbuHEjnTp1KtAvNTW1yLnGGKzNW7w8JCSEJk2aYEzRtbPE/VzlT85++vOGiIiInDXum/U/vvgllgNHUxn4+DxCg/yJef0mwkMCeGPipYx8ZhFejn+MvPO3QdQNyvuL8ZAnvmDqmN5EtA1nXP+O/LrtT9pOeBuAyTdeQKvwOgAlthU28Y3lnMjMZsJ/lzmPffDAYLq0KLmYMXPxRvYnpDB1bB+Cavky+56BXDV1ATm5ufRoVZ9XhvcHKLGtsBEXtmXiG8t5YnRvIO8NT81vm0NGVg7H0zJocvNsbr+8M0+M7s09V3YnZk8CXSd9QA1vQ7N6tZl970DnWN//vstZoBKRMy8gIIARI0YwefJk5syZQ2RkJAsXLmT16tVF+i5evJhzzz2XBg0a8McffzBt2jSuu+46Z/stt9zCa6+9xuDBg/Hx8eHll1/mqquuqszbEZF8zMmKqYiIiEhVENE23K57aYy7wzjrDJo8n2duuogereuXe4yEpBMM+OfnrH1xDL4+3qcxOpFq4KoXyn1qYmIit956K0uXLiU0NJRnnnmG0aNHs2fPHs455xw2b95MWFgYkydP5oMPPiAlJYUGDRowduxY/vWvf+Hjk/dGtaysLP72t7/x0Ucf4efnx/XXX89zzz2Hn5/f6bpLKae0tDRq1SrbWl9StRhj1ltrI0rv6eJcFWRERESkKolo18iue3GUu8M462zff5Tt+48yJKJVucdYu+0AWTm59O7Y6DRGJlIN+AbB5U+c0UscPXqUkJCQM3oNOXOUP89VkYKMHlkSERGRKiWjZmiF/pIsrrV1bBXRqwx9YmNjadOmTQWvJO6g3Hm2hIQE/YPegyl/1ZMW9RURERERERERqWQqyIiIiEiV4u2ttUk8Wd26dd0dgpSTcufZlD/PpvxVTyrIiIiISJWigoxn06KUnku582zKn2dT/qonFWRERESkSsnMzHR3CFIB8fHx7g5Bykm582zKn2dT/qonFWRERERERERERCqZCjIiIiJSpXh56euJJ9O0e8+l3Hk25c+zKX/Vk77xiIiISJXi4+Pj7hCkAho1auTuEKSclDvPpvx5NuWvelJBRkRERKqUjIwMd4cgFRAXF+fuEKSclDvPpvx5NuWvelJBRkREREROG2utu0OQclLuPJvy59mUv+pJBRkREREROW2MMe4OQcpJufNsyp9nU/6qJ6NKnIiIiFQlERERdt26de4OQ0RERKRUxpj11tqI8pyrGTIiIiJSpWRlZbk7BKmA/fv3uzsEKSflzrMpf55N+aueVJARERGRKiU3N9fdIUgFpKWluTsEKSflzrMpf55N+aueVJAREREREREREalkKsiIiIhIleLr6+vuEKQCmjRp4u4QpJyUO8+m/Hk25a96UkFGREREqpScnBx3hyAVoGn3nku582zKn2dT/qonFWRERESkSlFBxrMlJia6OwQpJ+XOsyl/nk35q55UkBERERERERERqWQqyIiIiEiVUqNGDXeHIBUQGhrq7hCknJQ7z6b8eTblr3pSQUZERESqFGOMu0OQCqhZs6a7Q5ByUu48m/Ln2ZS/6kkFGREREalSsrKy3B2CVMD+/fvdHYKUk3Ln2ZQ/z6b8VU8qyIiIiEiV4p2V6u4QRERERM44FWRERESkSqmhgoxHCwgIcHcIUk7KnWdT/jyb8lc9qSAjIiIiIqdNeHi4u0OQclLuPJvy59mUv+pJBRkREREROW3i4uLcHYKUk3Ln2ZQ/z6b8VU8qyIiIiIiIiIiIVDIVZERERETktPHy0tdLT6XceTblz7Mpf9WTsi4iIiJSzfXp04cNGzZUeJyoqCjGjh17GiISd2jVqpW7Q5AKUP48m/JXPakgIyIiImeNsWPH0rBhQ2rXrk27du2YM2dOgfbly5fToUMHatWqRf/+/dm9e3exY82YMYOIiAhq1qzJzTffXKQ9LS2NiRMnEhYWRnBwMP369St2rM2bNxMREUFISAghISEMHDiQzZs3O9uPHTvGTTfdRP369alfvz5PPPFEiff52Wef0bFjR4KCgjjnnHNYsGCBs81ayyOPPEJoaCihoaE8/PDDWGuLHWvRokUEBQXRo0cPAN577z169uxJ7dq1adKkCQ8//DDZ2dnO/omJiQwfPpyAgACaN2/ORx995Gzr2rUrfn5+LFq0qMT489u1axf9+/enVq1adOjQgWXLlhXbt7R7O5WxpKj4+Hh3hyAVoPx5NuWvelJBRkRERM4ajz76KLt27SIpKYmvvvqKxx9/nPXr1wNw5MgRRowYwbRp00hMTCQiIoIbbrih2LEaNWrE448/zq233uqy/c477yQxMZEtW7aQmJjISy+9VOJY8+bNIzExkSNHjjB06FBuvPFGZ/v9999PWloau3bt4rfffuODDz7gnXfecTnWvn37GDt2LC+++CJJSUk8//zzjB49mkOHDgEwe/ZsFixYwMaNG4mKiuLrr79m1qxZxcY2c+ZMxo0b59xPS0vj5Zdf5siRI/z6668sX76c6dOnO9vvuecefH19OXjwIHPnzuXuu+8mJibG2X7llVeWeL3CRo0aRY8ePUhISOCpp55i5MiRHD582GXf0u7tVMaSotLT090dglSA8ufZlL9qylqrTZs2bdq0adNWZbaererb0+GPP/6w4eHh9tNPP7XWWjtr1ix74YUXOttTUlKsn5+f3bJlS4nj/POf/7Q33XRTkbGDgoLs8ePHTzmurKwsO2PGDOvv7+88Fhoaan/77Tfn/lNPPWX79u3r8vw1a9bYevXqFTgWFhZmV69eba219sILL7SzZs1yts2ZM8eef/75LsfKyMiwfn5+du/evcXG+8ILL9irrrrKWpv3mfn4+NitW7c628eOHWsfeeQR5/6qVausn5+fTU9PL3bMk7Zu3Wp9fX1tUlKS81jfvn3tG2+84bJ/Sfd2qmNJUdu3b3d3CFIByp9nU/48F7DOlvM7j2bIiIiIyFll4sSJzkdWGjZsyJAhQwCIiYmhW7duzn4BAQG0bt26wOyOsvr1119p3rw5U6ZMISwsjC5dujB//vxSz6tTpw5+fn5MmjSJxx57rEBb3ne6v36Ojo52OUZERAQdO3bkq6++IicnhwULFlCzZk26du3q8j67detW7D1u374dLy8vmjRpUmzMP/74I506dQJg27ZteHt7065du2LH79WrFz4+PmzdurXYMU+KiYmhVatWBAUFlSneku7tVMeSopo2beruEKQClD/PpvxVTyrIiIiIyFnl9ddfJzk5mVWrVjFixAhq1qwJQEpKCsHBwQX6BgcHk5ycfMrXiI+PJzo6muDgYPbv38+MGTO46aab2LJlS4nnHTt2jOPHjzNjxgznmi0AgwcP5plnniE5OZnY2Fjefvtt0tLSXI7h7e3N+PHjGT16NDVr1mT06NHMmjWLgIAAl/cZHBxMSkpKgYJP/njyFzAKe+edd1i3bh0PPvigy7FPjp//M0xJSSEoKIhjx46V+FmUdbyS+ue/t9OZ3+oqJSXF3SFIBSh/nk35q55UkBEREZGzjre3N3379iU+Pp433ngDgMDAQJKSkgr0S0pKKrEgURx/f398fHx4/PHH8fX15eKLL6Z///4sWbKEPXv2EBgY6NwKCwgI4K677mL8+PHOdV9effVV/P39adu2LcOGDWPUqFHFzlpZtmwZDz/8MCtWrCAzM5OVK1dy++23ExkZ6fI+k5KSCAwMxBhTZKyQkJBiCxYLFizgH//4B4sXLyYsLMzl2CfHz/8ZHj16lOTkZOrUqVPSR1jm8Urqn//eTmd+q6ujR4+6OwSpAOXPsyl/1ZMKMiIiInLWys7OJi4uDoBOnTqxceNGZ1tqaipxcXHOx3FOxcnHg1xp1qwZKSkpzs2V3Nxc0tLS2LdvHwB169Zl7ty5HDhwgJiYGHJzcznvvPNcnhsZGUm/fv2IiIjAy8uLXr16cf755zvfKFT4Pjdu3FjsPbZt2xZrrTOOk7777jvuuOMOFi1aRJcuXZzH27VrR3Z2Ntu3by92/IMHD5KZmUn79u2L/YxO6tSpEzt27ChQFCop3pLu7VTHEhERcTcVZEREROSscOjQIT755BNSUlLIycnh+++/5+OPP2bAgAEADB8+nOjoaObPn096ejpTp06la9eudOjQweV42dnZpKenk5OTQ05ODunp6c7XP/fr149mzZrxn//8h+zsbH7++WdWrFjBoEGDXI61dOlSNmzYQE5ODklJSTzwwAOEhITQsWNHAOLi4khISCAnJ4fFixcze/ZsHn/8cZdj9erVi1WrVjlnxGzYsIFVq1Y5i0Tjx4/nxRdfZN++fezfv58XXnjB5Wu7AXx8fBg4cCArV650Hvvf//7HmDFjmD9/fpGiUEBAACNGjGDy5Mmkpqby888/s3DhwgJvadqyZQsDBgxwPir27rvv0qJFC5fXb9euHd27d+fJJ58kPT2dL7/8kqioKK699lqX/Uu6t1MdS4qqV6+eu0OQClD+PJvyV02VdzVgbdq0adOmTZu2M7GV9y1Lhw4dsv369bPBwcE2KCjIdu7c2c6ePbtAn6VLl9r27dtbPz8/e/HFF9udO3c625566ik7ePBg5/6UKVMsUGCbMmWKsz06OtpecMEFtlatWrZjx472iy++KDa2zz77zLZv394GBATYsLAwe8UVV9iNGzc62z/99FPbsGFD6+/vb7t162a/++67Auefc8459sMPP3Tuv/baa7Z169Y2MDDQtmzZ0k6fPt3Zlpubax966CEbEhJiQ0JC7EMPPWRzc3OLje3rr78ucN+XXHKJ9fb2tgEBAc4tf3tCQoIdNmyYrVWrlm3atKmdO3dugfEGDRpkFy5c6NyfOnWqHT16dLHX37lzp7344outn5+fbdeunV26dKmz7ccff7QBAQFlvreSxpLSpaSkuDsEqQDlz7Mpf56LCrxlyeSdLyIiIlI1dO/Qykb+scPdYVQrffv25bXXXiuw0HB5bNq0ifHjx7Nhwwbnscsvv5xXXnnFORtIqq7Y2FjatGnj7jCknJQ/z6b8eS5jzHprbUR5zq1xuoMRERERqYgcnwB3h1Dt/PTTT6dlnC5duvD5558XOLZkyZLTMraIiMjZRmvIiIiISJXi5aWvJ57M1ZulxDMod55N+fNsyl/1pBkyIiIiUqX4pB2GBfe7O4yqp2YQXDHV3VGUSgtTei7lzrMpf55N+aue9CcoERERqVpsjrsjqJoykkvvUwXs3LnT3SFIOSl3nk3582zKX/WkgoyIiIiIiIiISCVTQUZERERETpsaNfREvKdS7jyb8ufZlL/qSQUZERERETltWrRo4e4QpJyUO8+m/Hk25a96UkFGRERERE6bvXv3ujsEKSflzrMpf55N+aueVJARERERkdMmIyPD3SGcNn369GHDhg0VHicqKorevXufhojOrLMpd9WR8ufZlL/qSQUZERERkbNYRkYGt912G82bNycoKIgePXqwePFil32ffPJJjDEsW7as2PESExMZPnw4AQEBNG/enI8++qhA++rVq+nQoQO1atWif//+7N69u9ixNm/eTEREBCEhIYSEhDBw4EA2b97sbLfW8sgjjxAaGkpoaCgPP/ww1lqXY2VmZjJy5EhatGiBMYYVK1YU6fP777/Tr18/AgMDadCgAa+88kqxsS1atMj5eQFER0czaNAgwsLCMMYU6b9lyxYGDBhAcHAwbdq04csvv3S2de3alTp16rBo0aJir1fYrl276N+/P7Vq1aJDhw4l5uSHH36gf//+BAcHF3ns4dChQ4waNYpGjRoRHBxMnz59+PXXX8sch4iInDkqyIiIiIicxbKzs2natCkrV67k+PHjTJs2jeuvv55du3YV6BcXF8e8efNo2LBhiePdc889+Pr6cvDgQebOncvdd99NTEwMAEeOHGHSpElMmzaNxMREIiIiuOGGG4odq1GjRsybN4/ExESOHDnC0KFDufHGG53ts2fPZsGCBWzcuJGoqCi+/vprZs2aVex4ffv25cMPPyQ8PLxI25EjRxg8eDATJkwgISGB2NhYLr/88mLHmjlzJuPGjXPu+/j4cP311/PWW28V6Zudnc2wYcO46qqrSExMZPbs2YwdO5Zt27Y5+4wZM6bE2AsbNWoUPXr0ICEhgaeeeoqRI0dy+PBhl30DAgK49dZbef7554u0paSk0KtXL9avX09iYiI33XQTV155JSkpKUX6NmvWrMzxSdWj/Hk25a96MsX9lUFERETEHSLaNLDrpo92dxhV0zUvnZZhunbtypQpU7j22mudx6644gomTZrExIkTmTNnDgMHDixyXmpqKiEhIURHR9OuXTsAxo0bR+PGjXnmmWeYPXs2b775JmvXrnX2DwsLY8OGDXTo0KHEmLKzs5k1axYPPfQQaWlpAPTu3Zubb76ZO++8E4C33nqLN998kzVr1pQ4VpMmTfjwww+55JJLnMcee+wx9u7dywcffFDq55OZmUlwcDDbt2+nSZMmBdpiY2Np27ZtgZk60dHRXHDBBSQnJztnz1x++eWcf/75TJs2DYB9+/bRpk0bjh07Rs2aNUu8/rZt2+jSpQtHjhwhKCgIgIsuuogxY8Zw1113FXvesmXLuP3224sU2wqrXbs2P/zwAz179ixw/PDhw9SrV6/Ec6XqUv48m/LnuYwx6621EeU5VzNkRERERKqRgwcPsm3bNjp16uQ89vnnn+Pr68uQIUNKPHfbtm14e3s7izEA3bp1c86QiYmJoW3bts62gIAAWrdu7WwvTp06dfDz82PSpEk89thjzuMxMTF069bN5bVO1Zo1a6hbty69e/emfv36XH311ezZs8dl3+3bt+Pl5VWkGFMcV3/gtNYSHR3t3G/cuDE+Pj5s3bq11PFiYmJo1aqVsxgDFbv3/CIjI8nMzKRNmzZF2o4fP17h8cV9lD/PpvxVTyrIiIiISKUwxnxtjHnX3XFUZ1lZWYwZM4abbrrJOWMlJSWFxx57jJdffrnU81NSUggODi5wLDg4mOTkZGd7/iJC4fbiHDt2jOPHjzNjxgznmi2urhccHExKSkqx68iUJD4+nvfee49XXnmFPXv20LJlS0aNGlVsPIXvoyQdOnSgfv36PP/882RlZbFkyRJWrlzpnOlzUlBQEMeOHSt1vNI+5/JKSkpi3LhxTJkypcj4IiJS+VSQEREREakGcnNzGTduHL6+vsyYMcN5fMqUKYwbN46WLVuWOkZgYCBJSUkFjiUlJTmLF4GBgeTk5Lhs37NnD4GBgc6tsICAAO666y7Gjx/PoUOHXF4vKSmJwMBAl4vqlsbf35/hw4fTq1cv/Pz8mDJlCqtXr3b5V+mQkJBTKn74+PiwYMECvvnmG8LDw3nhhRe4/vrri8ywSU5Opk6dOqWOV9rnXB4nTpzg6quv5oILLuDRRx912ad+/frlHl/cT/nzbMpf9aSCjIiIiJSZMcbX3THIqbPWctttt3Hw4EHmz5+Pj4+Ps2358uW8+uqrhIeHEx4ezt69e7n++ut59tlni4zTrl07srOz2b59u/PYxo0bnY8/derUqcBjOqmpqcTFxdGpUyeaNWtGSkqKc3MlNzeXtLQ09u3b5xxv48aNLq91qrp27VqgkHPyZ1ezbU6uEXMyjrKOv3LlShISEvj+++/ZsWMH5513nrN9//79ZGZm0r59+1LH6tSpEzt27ChQFKrIvWdkZHDNNdfQuHHjEhcWLk+hS6oO5c+zKX/VkwoyIiIi1ZgxZoUxZqYx5hVjzFHH9rwxxsvRvssY84Qx5m1jzDFgruN4b2PMSmNMmjFmnzHmDWNM7Xzj1jLGvGuMSTHGHDTGPFZMCFIJ7r77brZs2cKiRYvw9/cv0LZ8+XKio6OJjIwkMjKSRo0aMWvWLO65554i4wQEBDBixAgmT55MamoqP//8MwsXLnS+jWj48OHExMQwf/580tPTmTp1Kl27di12Qd+lS5eyYcMGcnJySEpK4oEHHiAkJISOHTsCMH78eF588UX27dvH/v37eeGFF7j55puLvc+MjAzS09OBvIV509PTnQWXW265hS+//JLIyEiysrKYNm0affv2dTljxcfHh4EDB7Jy5UrnMWst6enpZGZmApCenk5GRoazPSoqivT0dNLS0pg+fTp//vlngVhXrFjBgAEDnAv6vvvuu0VeUX1Su3bt6N69O08++STp6el8+eWXREVFFViEOb/c3FzS09PJysoqEmdWVhYjR47E39+f999/Hy+v4r/+Hzx4sNg2qfqUP8+m/FVPKsiIiIjIGPK+E1wITADuBP6er/0B4A8gAnjMGNMFWAJ8BXQDRgDdgbfznTMduAy4FrgU6AH0O6N3IS7t3r2bWbNmERkZSXh4uPORoblz5wIQGhrqnB0THh6Ot7c3ISEhzseKnn76aa644grneK+//jonTpygfv36jBo1ijfeeMM5c6NevXrMmDGDf/7zn4SEhPDrr7/yySefFBvbsWPHGDVqFMHBwbRu3ZrY2Fi+++47/Pz8AJgwYQJXX301Xbp0oXPnzlx55ZVMmDDBeX6nTp2c9wHQvn17/P392bdvH4MGDcLf35/du3cDMGDAAJ5++mmuvPJK6tevT2xsLB999FGxsU2YMKHAG5l2796Nv7+/8179/f0LzHb54IMPaNiwIfXr12f58uUsXbq0wNuU5s6dW+ANSXv37qVPnz7FXv+TTz5h3bp1hISE8I9//IN58+Y538CyatWqAo99/fjjj/j7+zNkyBD27NmDv7+/85Xeq1ev5uuvv2bJkiXUqVPHmf9Vq1YVe20REakceu21iIhINWaMWQE0Atpbx5cCY8zjwF3W2ibGmF3AJmvt1fnOeR/Istbelu9Yd2AD0ABIAxKAW621J2fUBALxwAJr7c0u4riTvEIQPVo16Pn7C64XW63WagbBFVPdHUWpDh06dNashdC3b19ee+21AgsNl8emTZu48847+eWXX5zHLr/8cl555RXnbKCq4GzKXXWk/Hk2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\n",
      "text/plain": [
       "<Figure size 720x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "tnr = aqp.plot_group_metric(clean_xtab, 'tnr', min_group_size=0.05)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Bias Report - http://aequitas.dssg.io/audit/eg1cp7ku/adult_rf_binary/"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 4. Train Uncertainty Estimation Model with TF Probability"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Instructions\n",
    "- Using MPG model from earlier, create uncertainty estimation model with TF Probability.\n",
    "- In particular, we will focus on building a model that accounts for Aleatoric Uncertainty."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {},
   "outputs": [],
   "source": [
    "import tensorflow_probability as tfp"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Aleatoric Uncertainty\n",
    "- Known Unknowns\n",
    "- 2 Main Changes to our network \n",
    "    - Add a second unit to the last dense layer before passing it to Tensorflow Probability layer to model for the predictor y and the heteroscedasticity or unequal scattering of data\n",
    "    - DistributionLambda distribution mean and std\n",
    "- DistributionLambda is a special Keras layer that uses a Python lambda to construct a distribution based on the layer inputs and the output of the final layer of the model is passed into the loss function. Lastly. this model will return a distribution for both mean and standard deviation."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "count    314.000000\n",
       "mean      23.310510\n",
       "std        7.728652\n",
       "min       10.000000\n",
       "25%       17.000000\n",
       "50%       22.000000\n",
       "75%       28.950000\n",
       "max       46.600000\n",
       "Name: MPG, dtype: float64"
      ]
     },
     "execution_count": 65,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_label_stats = train_labels.describe()\n",
    "train_label_stats"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {},
   "outputs": [],
   "source": [
    "def build_seq_prob_model(feature_layer):\n",
    "    model = tf.keras.Sequential([\n",
    "        feature_layer,\n",
    "        tf.keras.layers.Dense(150, activation='relu'),\n",
    "        tf.keras.layers.Dense(75, activation='relu'),\n",
    "        tf.keras.layers.Dense(1 + 1),\n",
    "        tfp.layers.DistributionLambda(  \n",
    "            lambda t:tfp.distributions.Normal(\n",
    "                loc=t[..., :1],\n",
    "                scale=1e-3 + tf.math.softplus(0.1 * t[...,1:])\n",
    "\n",
    "            )\n",
    "         )\n",
    "  \n",
    "        \n",
    "        \n",
    "    ])\n",
    "    return model\n",
    "\n",
    "def build_prob_model(train_ds,   feature_layer,  epochs=5, loss_metric='mse'):\n",
    "    model = build_seq_prob_model(feature_layer)\n",
    "    negloglik = lambda y, rv_y: -rv_y.log_prob(y)\n",
    "    loss = negloglik\n",
    "    model.compile(tf.optimizers.Adam(learning_rate=0.05), loss=loss, metrics=[loss_metric])\n",
    "    history = model.fit(train_ds, \n",
    "                        epochs=epochs)\n",
    "    return model, history"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Train Probability Model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train for 3 steps\n",
      "Epoch 1/500\n",
      "3/3 [==============================] - 1s 179ms/step - loss: 289.4115 - mse: 467.4192\n",
      "Epoch 2/500\n",
      "3/3 [==============================] - 0s 8ms/step - loss: 10.8904 - mse: 2146.0674\n",
      "Epoch 3/500\n",
      "3/3 [==============================] - 0s 8ms/step - loss: 14.6148 - mse: 14412.0020\n",
      "Epoch 4/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 11.0708 - mse: 22909.2715\n",
      "Epoch 5/500\n",
      "3/3 [==============================] - 0s 8ms/step - loss: 7.9969 - mse: 25712.4395\n",
      "Epoch 6/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 6.2809 - mse: 16896.6328\n",
      "Epoch 7/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 5.5337 - mse: 13097.0459\n",
      "Epoch 8/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 5.3558 - mse: 8430.8945\n",
      "Epoch 9/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 5.4545 - mse: 12015.9473\n",
      "Epoch 10/500\n",
      "3/3 [==============================] - 0s 8ms/step - loss: 5.6325 - mse: 13679.8428\n",
      "Epoch 11/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 5.7443 - mse: 16258.0684\n",
      "Epoch 12/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 5.8145 - mse: 22385.1602\n",
      "Epoch 13/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 5.7975 - mse: 18070.9668\n",
      "Epoch 14/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 5.7592 - mse: 20072.0234\n",
      "Epoch 15/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 5.6765 - mse: 14435.9951\n",
      "Epoch 16/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 5.6073 - mse: 12951.8135\n",
      "Epoch 17/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 5.5773 - mse: 17503.4219\n",
      "Epoch 18/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 5.5553 - mse: 13661.9014\n",
      "Epoch 19/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 5.5370 - mse: 15361.4971\n",
      "Epoch 20/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 5.5176 - mse: 12288.7988\n",
      "Epoch 21/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 5.5191 - mse: 15276.9297\n",
      "Epoch 22/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 5.5170 - mse: 14089.5273\n",
      "Epoch 23/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 5.5058 - mse: 14584.8838\n",
      "Epoch 24/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 5.5000 - mse: 14928.4043\n",
      "Epoch 25/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 5.4856 - mse: 12734.4443\n",
      "Epoch 26/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 5.4612 - mse: 12625.1104\n",
      "Epoch 27/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 5.4397 - mse: 12854.3057\n",
      "Epoch 28/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 5.4243 - mse: 11512.9736\n",
      "Epoch 29/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 5.4245 - mse: 11075.1084\n",
      "Epoch 30/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 5.4086 - mse: 11876.9541\n",
      "Epoch 31/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 5.3661 - mse: 10930.6514\n",
      "Epoch 32/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 5.3685 - mse: 12469.8594\n",
      "Epoch 33/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 5.3587 - mse: 8965.7744\n",
      "Epoch 34/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 5.3283 - mse: 8561.2461\n",
      "Epoch 35/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 5.3072 - mse: 8928.2119\n",
      "Epoch 36/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 5.3035 - mse: 10619.9385\n",
      "Epoch 37/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 5.2834 - mse: 9783.4971\n",
      "Epoch 38/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 5.2622 - mse: 9843.2666\n",
      "Epoch 39/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 5.2393 - mse: 8357.2910\n",
      "Epoch 40/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 5.2145 - mse: 7278.5747\n",
      "Epoch 41/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 5.2047 - mse: 6345.6763\n",
      "Epoch 42/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 5.1892 - mse: 8294.3887\n",
      "Epoch 43/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 5.1743 - mse: 8486.4980\n",
      "Epoch 44/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 5.1345 - mse: 7920.7007\n",
      "Epoch 45/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 5.1337 - mse: 7080.7983\n",
      "Epoch 46/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 5.0975 - mse: 6087.7061\n",
      "Epoch 47/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 5.0788 - mse: 6589.9492\n",
      "Epoch 48/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 5.0501 - mse: 6192.0493\n",
      "Epoch 49/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 5.0322 - mse: 6017.4409\n",
      "Epoch 50/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 5.0095 - mse: 5554.2471\n",
      "Epoch 51/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 5.0024 - mse: 4325.9233\n",
      "Epoch 52/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 4.9542 - mse: 4978.0015\n",
      "Epoch 53/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 4.9307 - mse: 5045.3882\n",
      "Epoch 54/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 4.8945 - mse: 5324.7930\n",
      "Epoch 55/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 4.8652 - mse: 4882.1841\n",
      "Epoch 56/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 4.8393 - mse: 4989.3301\n",
      "Epoch 57/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 4.8120 - mse: 5418.7661\n",
      "Epoch 58/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 4.7821 - mse: 4176.5176\n",
      "Epoch 59/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 4.7469 - mse: 3908.3801\n",
      "Epoch 60/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 4.7173 - mse: 4154.9175\n",
      "Epoch 61/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 4.6813 - mse: 4125.5449\n",
      "Epoch 62/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 4.6446 - mse: 3797.4419\n",
      "Epoch 63/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 4.6100 - mse: 4114.7046\n",
      "Epoch 64/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 4.5891 - mse: 3232.7366\n",
      "Epoch 65/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 4.5263 - mse: 3249.9463\n",
      "Epoch 66/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 4.5095 - mse: 3122.7322\n",
      "Epoch 67/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 4.4396 - mse: 3672.9690\n",
      "Epoch 68/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 4.4033 - mse: 3165.2065\n",
      "Epoch 69/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 4.3750 - mse: 2781.8916\n",
      "Epoch 70/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 4.3060 - mse: 3513.2612\n",
      "Epoch 71/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 4.3048 - mse: 3017.0720\n",
      "Epoch 72/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 4.2555 - mse: 3009.1721\n",
      "Epoch 73/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 4.2044 - mse: 2485.9214\n",
      "Epoch 74/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 4.1642 - mse: 2432.0781\n",
      "Epoch 75/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 4.1191 - mse: 2212.7798\n",
      "Epoch 76/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 4.0274 - mse: 2043.6230\n",
      "Epoch 77/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 4.0115 - mse: 2192.0579\n",
      "Epoch 78/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 3.9804 - mse: 1996.8037\n",
      "Epoch 79/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 3.9469 - mse: 1831.0070\n",
      "Epoch 80/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 3.8745 - mse: 1631.5665\n",
      "Epoch 81/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 3.8452 - mse: 1783.3835\n",
      "Epoch 82/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 3.8408 - mse: 1548.9960\n",
      "Epoch 83/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 3.7867 - mse: 1195.3561\n",
      "Epoch 84/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 3.7306 - mse: 1533.9740\n",
      "Epoch 85/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 3.7335 - mse: 1377.3910\n",
      "Epoch 86/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 3.6876 - mse: 1008.8643\n",
      "Epoch 87/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 3.6106 - mse: 962.4722\n",
      "Epoch 88/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 3.6333 - mse: 1129.8300\n",
      "Epoch 89/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 3.6078 - mse: 1049.6285\n",
      "Epoch 90/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 3.5650 - mse: 903.0133\n",
      "Epoch 91/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 3.4980 - mse: 995.9970\n",
      "Epoch 92/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 3.5344 - mse: 996.9030\n",
      "Epoch 93/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 3.5386 - mse: 786.8526\n",
      "Epoch 94/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 3.5165 - mse: 887.1656\n",
      "Epoch 95/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 3.4390 - mse: 948.1669\n",
      "Epoch 96/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 3.5098 - mse: 630.7740\n",
      "Epoch 97/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 3.4685 - mse: 548.3526\n",
      "Epoch 98/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 3.3634 - mse: 638.3589\n",
      "Epoch 99/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 3.2947 - mse: 505.8619\n",
      "Epoch 100/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 3.2976 - mse: 556.7950\n",
      "Epoch 101/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 3.2066 - mse: 472.4757\n",
      "Epoch 102/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 3.1598 - mse: 512.0362\n",
      "Epoch 103/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 3.1335 - mse: 416.4638\n",
      "Epoch 104/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 3.1083 - mse: 479.9660\n",
      "Epoch 105/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 3.0651 - mse: 373.9520\n",
      "Epoch 106/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 3.0468 - mse: 355.4185\n",
      "Epoch 107/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 3.0042 - mse: 315.7336\n",
      "Epoch 108/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.9150 - mse: 265.0731\n",
      "Epoch 109/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.9673 - mse: 258.4703\n",
      "Epoch 110/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 3.1160 - mse: 205.9806\n",
      "Epoch 111/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 3.4447 - mse: 218.9561\n",
      "Epoch 112/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.9588 - mse: 166.8366\n",
      "Epoch 113/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.9732 - mse: 171.0196\n",
      "Epoch 114/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 2.8975 - mse: 127.5398\n",
      "Epoch 115/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.8193 - mse: 133.0668\n",
      "Epoch 116/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.7153 - mse: 116.9886\n",
      "Epoch 117/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 2.6874 - mse: 122.8846\n",
      "Epoch 118/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.6012 - mse: 93.8380\n",
      "Epoch 119/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.5609 - mse: 71.0378\n",
      "Epoch 120/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.4820 - mse: 58.9037\n",
      "Epoch 121/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.5064 - mse: 54.4231\n",
      "Epoch 122/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 2.3928 - mse: 41.4275\n",
      "Epoch 123/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 2.3762 - mse: 37.1680\n",
      "Epoch 124/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.3225 - mse: 35.2728\n",
      "Epoch 125/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 2.2709 - mse: 22.8382\n",
      "Epoch 126/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 2.3638 - mse: 22.9883\n",
      "Epoch 127/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.2370 - mse: 15.8560\n",
      "Epoch 128/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.2747 - mse: 18.4363\n",
      "Epoch 129/500\n",
      "3/3 [==============================] - 0s 8ms/step - loss: 2.3348 - mse: 15.3111\n",
      "Epoch 130/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.2085 - mse: 16.3434\n",
      "Epoch 131/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.2278 - mse: 18.1785\n",
      "Epoch 132/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 2.2948 - mse: 18.4050\n",
      "Epoch 133/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.2015 - mse: 15.9371\n",
      "Epoch 134/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 2.1820 - mse: 14.6961\n",
      "Epoch 135/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.1677 - mse: 18.4769\n",
      "Epoch 136/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.1503 - mse: 14.6882\n",
      "Epoch 137/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 2.1935 - mse: 14.3779\n",
      "Epoch 138/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.3238 - mse: 20.2727\n",
      "Epoch 139/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.2447 - mse: 15.6502\n",
      "Epoch 140/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.2014 - mse: 18.0907\n",
      "Epoch 141/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 2.1363 - mse: 17.3442\n",
      "Epoch 142/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 2.1556 - mse: 19.4936\n",
      "Epoch 143/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.0995 - mse: 14.6296\n",
      "Epoch 144/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.1166 - mse: 14.8993\n",
      "Epoch 145/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.1476 - mse: 13.0640\n",
      "Epoch 146/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.0864 - mse: 14.4030\n",
      "Epoch 147/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.1665 - mse: 14.8962\n",
      "Epoch 148/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 2.3017 - mse: 16.8323\n",
      "Epoch 149/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.3100 - mse: 15.4963\n",
      "Epoch 150/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 2.1513 - mse: 18.7443\n",
      "Epoch 151/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.1485 - mse: 18.7525\n",
      "Epoch 152/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.1056 - mse: 12.5500\n",
      "Epoch 153/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 2.2017 - mse: 20.0671\n",
      "Epoch 154/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 2.1957 - mse: 16.1199\n",
      "Epoch 155/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 2.2127 - mse: 11.8819\n",
      "Epoch 156/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.2664 - mse: 13.7478\n",
      "Epoch 157/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 2.2296 - mse: 12.7940\n",
      "Epoch 158/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.0899 - mse: 14.6433\n",
      "Epoch 159/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.1562 - mse: 13.2895\n",
      "Epoch 160/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.0927 - mse: 12.5513\n",
      "Epoch 161/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 2.0379 - mse: 11.3670\n",
      "Epoch 162/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 2.0199 - mse: 10.2426\n",
      "Epoch 163/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 2.0457 - mse: 11.5835\n",
      "Epoch 164/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.1591 - mse: 11.7080\n",
      "Epoch 165/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.4938 - mse: 14.8084\n",
      "Epoch 166/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.3912 - mse: 14.7808\n",
      "Epoch 167/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.4455 - mse: 17.7141\n",
      "Epoch 168/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 2.3625 - mse: 18.1681\n",
      "Epoch 169/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.2424 - mse: 24.1672\n",
      "Epoch 170/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.3134 - mse: 22.5646\n",
      "Epoch 171/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.2255 - mse: 20.1390\n",
      "Epoch 172/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.1632 - mse: 14.6248\n",
      "Epoch 173/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.1006 - mse: 15.7575\n",
      "Epoch 174/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 2.0895 - mse: 14.5912\n",
      "Epoch 175/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.0214 - mse: 14.5205\n",
      "Epoch 176/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 2.0348 - mse: 15.8724\n",
      "Epoch 177/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.0236 - mse: 11.3826\n",
      "Epoch 178/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.9954 - mse: 8.8911\n",
      "Epoch 179/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.0725 - mse: 9.6624\n",
      "Epoch 180/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.0093 - mse: 11.2822\n",
      "Epoch 181/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 2.0275 - mse: 8.9602\n",
      "Epoch 182/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.9516 - mse: 9.5548\n",
      "Epoch 183/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.9680 - mse: 10.0730\n",
      "Epoch 184/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 1.9782 - mse: 10.1105\n",
      "Epoch 185/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.9818 - mse: 9.9838\n",
      "Epoch 186/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 1.9121 - mse: 10.2850\n",
      "Epoch 187/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.9488 - mse: 9.4263\n",
      "Epoch 188/500\n",
      "3/3 [==============================] - ETA: 0s - loss: 1.9304 - mse: 10.55 - 0s 9ms/step - loss: 1.9890 - mse: 8.8250\n",
      "Epoch 189/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 2.0437 - mse: 8.7912\n",
      "Epoch 190/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.2470 - mse: 9.9531\n",
      "Epoch 191/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.0561 - mse: 10.0001\n",
      "Epoch 192/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 2.0670 - mse: 12.5298\n",
      "Epoch 193/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 2.0177 - mse: 10.2433\n",
      "Epoch 194/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 1.9484 - mse: 9.4764\n",
      "Epoch 195/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.0344 - mse: 11.5727\n",
      "Epoch 196/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 2.0047 - mse: 10.1634\n",
      "Epoch 197/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.0105 - mse: 9.0040\n",
      "Epoch 198/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.0962 - mse: 11.2893\n",
      "Epoch 199/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 2.0761 - mse: 11.2578\n",
      "Epoch 200/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 2.2335 - mse: 13.2755\n",
      "Epoch 201/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.2632 - mse: 16.6926\n",
      "Epoch 202/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.1649 - mse: 13.7505\n",
      "Epoch 203/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.0772 - mse: 13.8323\n",
      "Epoch 204/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 2.1182 - mse: 12.5733\n",
      "Epoch 205/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 2.0008 - mse: 11.6717\n",
      "Epoch 206/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 2.0108 - mse: 13.8384\n",
      "Epoch 207/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 1.9820 - mse: 9.1166\n",
      "Epoch 208/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.0297 - mse: 9.4805\n",
      "Epoch 209/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.0161 - mse: 8.9316\n",
      "Epoch 210/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.9960 - mse: 10.1038\n",
      "Epoch 211/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.9950 - mse: 9.5736\n",
      "Epoch 212/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.9838 - mse: 9.0330\n",
      "Epoch 213/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 1.9296 - mse: 10.6439\n",
      "Epoch 214/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.9245 - mse: 8.1212\n",
      "Epoch 215/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 1.9315 - mse: 8.4200\n",
      "Epoch 216/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.1962 - mse: 11.1917\n",
      "Epoch 217/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.0492 - mse: 12.0217\n",
      "Epoch 218/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.2284 - mse: 12.0312\n",
      "Epoch 219/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.9685 - mse: 8.9652\n",
      "Epoch 220/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 2.0179 - mse: 12.4205\n",
      "Epoch 221/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.9962 - mse: 9.7718\n",
      "Epoch 222/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.0335 - mse: 11.6692\n",
      "Epoch 223/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 2.0037 - mse: 9.7447\n",
      "Epoch 224/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.0585 - mse: 11.0403\n",
      "Epoch 225/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 2.0009 - mse: 10.8745\n",
      "Epoch 226/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 1.9285 - mse: 9.2395\n",
      "Epoch 227/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 1.9458 - mse: 8.9418\n",
      "Epoch 228/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.8624 - mse: 5.9536\n",
      "Epoch 229/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 1.9416 - mse: 7.3899\n",
      "Epoch 230/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 2.1287 - mse: 9.9609\n",
      "Epoch 231/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.9942 - mse: 8.8317\n",
      "Epoch 232/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.8391 - mse: 9.1421\n",
      "Epoch 233/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.9327 - mse: 8.7558\n",
      "Epoch 234/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.8608 - mse: 9.9360\n",
      "Epoch 235/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.8726 - mse: 7.4110\n",
      "Epoch 236/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.8575 - mse: 8.6415\n",
      "Epoch 237/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.8683 - mse: 7.6467\n",
      "Epoch 238/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.1848 - mse: 10.2426\n",
      "Epoch 239/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.1915 - mse: 9.8874\n",
      "Epoch 240/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.1164 - mse: 10.9549\n",
      "Epoch 241/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.9143 - mse: 7.2587\n",
      "Epoch 242/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.9635 - mse: 9.8617\n",
      "Epoch 243/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.8889 - mse: 8.2110\n",
      "Epoch 244/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.8623 - mse: 8.8742\n",
      "Epoch 245/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.9968 - mse: 9.9350\n",
      "Epoch 246/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.8680 - mse: 9.2997\n",
      "Epoch 247/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.8155 - mse: 8.1788\n",
      "Epoch 248/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.8277 - mse: 7.8912\n",
      "Epoch 249/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.8149 - mse: 6.9927\n",
      "Epoch 250/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.7787 - mse: 6.6637\n",
      "Epoch 251/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.7593 - mse: 6.8745\n",
      "Epoch 252/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.8143 - mse: 8.4326\n",
      "Epoch 253/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.9000 - mse: 7.0930\n",
      "Epoch 254/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.9418 - mse: 7.0057\n",
      "Epoch 255/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 2.1137 - mse: 8.3917\n",
      "Epoch 256/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.0853 - mse: 11.0257\n",
      "Epoch 257/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.0626 - mse: 9.0026\n",
      "Epoch 258/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.9080 - mse: 8.7226\n",
      "Epoch 259/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 1.9195 - mse: 8.8690\n",
      "Epoch 260/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.9412 - mse: 9.0000\n",
      "Epoch 261/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 1.8442 - mse: 7.1750\n",
      "Epoch 262/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 1.8545 - mse: 7.9121\n",
      "Epoch 263/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.7789 - mse: 7.3553\n",
      "Epoch 264/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.9119 - mse: 9.6287\n",
      "Epoch 265/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.8096 - mse: 7.3038\n",
      "Epoch 266/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.9068 - mse: 8.6525\n",
      "Epoch 267/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.9987 - mse: 7.0086\n",
      "Epoch 268/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.0520 - mse: 7.7630\n",
      "Epoch 269/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.9514 - mse: 6.8309\n",
      "Epoch 270/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.9448 - mse: 7.2687\n",
      "Epoch 271/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.8886 - mse: 8.2606\n",
      "Epoch 272/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.8466 - mse: 7.5506\n",
      "Epoch 273/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.9672 - mse: 9.9356\n",
      "Epoch 274/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.1142 - mse: 11.7509\n",
      "Epoch 275/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.2349 - mse: 10.5136\n",
      "Epoch 276/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.1597 - mse: 10.8940\n",
      "Epoch 277/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.1115 - mse: 12.6330\n",
      "Epoch 278/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.0745 - mse: 10.4279\n",
      "Epoch 279/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.1614 - mse: 15.2771\n",
      "Epoch 280/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.9636 - mse: 11.4373\n",
      "Epoch 281/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.9998 - mse: 13.0749\n",
      "Epoch 282/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.9615 - mse: 11.9984\n",
      "Epoch 283/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.9138 - mse: 10.1295\n",
      "Epoch 284/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 1.8630 - mse: 9.9451\n",
      "Epoch 285/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.8156 - mse: 9.1568\n",
      "Epoch 286/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.8819 - mse: 9.8814\n",
      "Epoch 287/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 1.7983 - mse: 7.2535\n",
      "Epoch 288/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 1.9600 - mse: 8.0732\n",
      "Epoch 289/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 1.8329 - mse: 7.1464\n",
      "Epoch 290/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.8018 - mse: 5.8100\n",
      "Epoch 291/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.7306 - mse: 6.9214\n",
      "Epoch 292/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 1.8712 - mse: 7.6397\n",
      "Epoch 293/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 1.9144 - mse: 7.8787\n",
      "Epoch 294/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 1.9059 - mse: 8.1137\n",
      "Epoch 295/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.9613 - mse: 7.9304\n",
      "Epoch 296/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.8650 - mse: 7.4138\n",
      "Epoch 297/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.9187 - mse: 8.4685\n",
      "Epoch 298/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.9426 - mse: 8.8860\n",
      "Epoch 299/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.8385 - mse: 8.0443\n",
      "Epoch 300/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.8060 - mse: 9.0011\n",
      "Epoch 301/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.7833 - mse: 8.7140\n",
      "Epoch 302/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 1.7721 - mse: 7.9643\n",
      "Epoch 303/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.8438 - mse: 6.8327\n",
      "Epoch 304/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 1.9253 - mse: 8.2149\n",
      "Epoch 305/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.8101 - mse: 8.9616\n",
      "Epoch 306/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.9278 - mse: 7.6164\n",
      "Epoch 307/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.8373 - mse: 6.0805\n",
      "Epoch 308/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 2.0951 - mse: 7.8605\n",
      "Epoch 309/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.9120 - mse: 8.0000\n",
      "Epoch 310/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.9290 - mse: 10.4318\n",
      "Epoch 311/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.9278 - mse: 8.2355\n",
      "Epoch 312/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.9052 - mse: 8.5550\n",
      "Epoch 313/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.8611 - mse: 9.1160\n",
      "Epoch 314/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.8694 - mse: 10.1777\n",
      "Epoch 315/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.7660 - mse: 6.8480\n",
      "Epoch 316/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.7056 - mse: 6.6457\n",
      "Epoch 317/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.7809 - mse: 7.3483\n",
      "Epoch 318/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 1.7854 - mse: 5.4756\n",
      "Epoch 319/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.9736 - mse: 7.2505\n",
      "Epoch 320/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 1.8293 - mse: 7.5544\n",
      "Epoch 321/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.1158 - mse: 8.3757\n",
      "Epoch 322/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.8971 - mse: 8.9563\n",
      "Epoch 323/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.9711 - mse: 7.9511\n",
      "Epoch 324/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.8831 - mse: 9.2324\n",
      "Epoch 325/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.8698 - mse: 10.0753\n",
      "Epoch 326/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.8139 - mse: 10.6471\n",
      "Epoch 327/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.8312 - mse: 7.3422\n",
      "Epoch 328/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.7698 - mse: 6.3697\n",
      "Epoch 329/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.6790 - mse: 6.5160\n",
      "Epoch 330/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.7000 - mse: 6.1959\n",
      "Epoch 331/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.6874 - mse: 5.2238\n",
      "Epoch 332/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.8833 - mse: 6.2380\n",
      "Epoch 333/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.8701 - mse: 5.6685\n",
      "Epoch 334/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.9126 - mse: 6.9169\n",
      "Epoch 335/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.9042 - mse: 6.8527\n",
      "Epoch 336/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.8945 - mse: 8.1961\n",
      "Epoch 337/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.8185 - mse: 8.1658\n",
      "Epoch 338/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.7649 - mse: 7.7965\n",
      "Epoch 339/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.7685 - mse: 7.4102\n",
      "Epoch 340/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 1.7877 - mse: 6.4303\n",
      "Epoch 341/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.7696 - mse: 5.2003\n",
      "Epoch 342/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.7567 - mse: 6.2427\n",
      "Epoch 343/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.8211 - mse: 7.1904\n",
      "Epoch 344/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.0095 - mse: 9.3450\n",
      "Epoch 345/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.9024 - mse: 7.4722\n",
      "Epoch 346/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.9420 - mse: 8.0202\n",
      "Epoch 347/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 1.9899 - mse: 7.1297\n",
      "Epoch 348/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.9046 - mse: 10.2319\n",
      "Epoch 349/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.9255 - mse: 9.2003\n",
      "Epoch 350/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 1.7811 - mse: 7.8847\n",
      "Epoch 351/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 1.7014 - mse: 7.3091\n",
      "Epoch 352/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 1.6850 - mse: 7.1049\n",
      "Epoch 353/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 1.8297 - mse: 6.1370\n",
      "Epoch 354/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.7397 - mse: 5.4892\n",
      "Epoch 355/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.7830 - mse: 5.1554\n",
      "Epoch 356/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.8294 - mse: 6.0769\n",
      "Epoch 357/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 1.8255 - mse: 5.0741\n",
      "Epoch 358/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.7675 - mse: 6.5781\n",
      "Epoch 359/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 1.8411 - mse: 6.3339\n",
      "Epoch 360/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.6941 - mse: 6.0606\n",
      "Epoch 361/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.6756 - mse: 6.3196\n",
      "Epoch 362/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.7866 - mse: 5.4643\n",
      "Epoch 363/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 1.7055 - mse: 5.3291\n",
      "Epoch 364/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.8147 - mse: 5.2417\n",
      "Epoch 365/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.7942 - mse: 7.2440\n",
      "Epoch 366/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.7853 - mse: 7.7551\n",
      "Epoch 367/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.1110 - mse: 9.6039\n",
      "Epoch 368/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.9849 - mse: 12.2760\n",
      "Epoch 369/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.8884 - mse: 10.8983\n",
      "Epoch 370/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.9848 - mse: 9.6114\n",
      "Epoch 371/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.9587 - mse: 11.6348\n",
      "Epoch 372/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.8127 - mse: 9.8999\n",
      "Epoch 373/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.7416 - mse: 7.8438\n",
      "Epoch 374/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.6914 - mse: 8.3747\n",
      "Epoch 375/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.6348 - mse: 5.9558\n",
      "Epoch 376/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.6035 - mse: 5.5476\n",
      "Epoch 377/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.6643 - mse: 5.3513\n",
      "Epoch 378/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.9051 - mse: 6.2475\n",
      "Epoch 379/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.7943 - mse: 5.0474\n",
      "Epoch 380/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.7532 - mse: 6.1194\n",
      "Epoch 381/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.6696 - mse: 6.1284\n",
      "Epoch 382/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 1.7978 - mse: 7.8826\n",
      "Epoch 383/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.7242 - mse: 5.7984\n",
      "Epoch 384/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.7608 - mse: 6.6420\n",
      "Epoch 385/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.6450 - mse: 5.5312\n",
      "Epoch 386/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.8621 - mse: 6.8061\n",
      "Epoch 387/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 1.9931 - mse: 9.4243\n",
      "Epoch 388/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 1.9190 - mse: 8.1463\n",
      "Epoch 389/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 1.7930 - mse: 9.8425\n",
      "Epoch 390/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 1.7873 - mse: 10.3152\n",
      "Epoch 391/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.8143 - mse: 10.3236\n",
      "Epoch 392/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.6753 - mse: 8.4923\n",
      "Epoch 393/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.6309 - mse: 6.6079\n",
      "Epoch 394/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.6227 - mse: 6.2439\n",
      "Epoch 395/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.6069 - mse: 5.2066\n",
      "Epoch 396/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.6391 - mse: 4.4511\n",
      "Epoch 397/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.8082 - mse: 4.6536\n",
      "Epoch 398/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.6710 - mse: 4.4417\n",
      "Epoch 399/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.6786 - mse: 5.0901\n",
      "Epoch 400/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.5957 - mse: 5.2160\n",
      "Epoch 401/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.6012 - mse: 5.3559\n",
      "Epoch 402/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.5824 - mse: 4.9971\n",
      "Epoch 403/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.6988 - mse: 5.8426\n",
      "Epoch 404/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.6574 - mse: 5.2186\n",
      "Epoch 405/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.6871 - mse: 6.3779\n",
      "Epoch 406/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.7346 - mse: 5.8178\n",
      "Epoch 407/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.6228 - mse: 5.7095\n",
      "Epoch 408/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.8443 - mse: 5.2450\n",
      "Epoch 409/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.7299 - mse: 5.9811\n",
      "Epoch 410/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 1.8231 - mse: 6.2995\n",
      "Epoch 411/500\n",
      "3/3 [==============================] - 0s 8ms/step - loss: 1.6938 - mse: 4.9252\n",
      "Epoch 412/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.6507 - mse: 4.5467\n",
      "Epoch 413/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.6583 - mse: 6.4584\n",
      "Epoch 414/500\n",
      "3/3 [==============================] - ETA: 0s - loss: 1.6602 - mse: 6.506 - 0s 9ms/step - loss: 1.6518 - mse: 4.8465\n",
      "Epoch 415/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 1.7282 - mse: 5.5770\n",
      "Epoch 416/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.8187 - mse: 5.9847\n",
      "Epoch 417/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 1.8555 - mse: 7.3748\n",
      "Epoch 418/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.8692 - mse: 8.2919\n",
      "Epoch 419/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.7410 - mse: 7.7576\n",
      "Epoch 420/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.6743 - mse: 6.5697\n",
      "Epoch 421/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.7037 - mse: 7.7682\n",
      "Epoch 422/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.8997 - mse: 5.8701\n",
      "Epoch 423/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.6393 - mse: 5.4788\n",
      "Epoch 424/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 1.8004 - mse: 6.0465\n",
      "Epoch 425/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 1.6823 - mse: 5.9955\n",
      "Epoch 426/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.6983 - mse: 5.2214\n",
      "Epoch 427/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.6694 - mse: 6.9777\n",
      "Epoch 428/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 1.6656 - mse: 5.1774\n",
      "Epoch 429/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 1.7376 - mse: 5.4188\n",
      "Epoch 430/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.6165 - mse: 4.2728\n",
      "Epoch 431/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.7101 - mse: 5.4711\n",
      "Epoch 432/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.5182 - mse: 4.9340\n",
      "Epoch 433/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.6648 - mse: 5.6271\n",
      "Epoch 434/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.7070 - mse: 4.2049\n",
      "Epoch 435/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.7264 - mse: 5.2568\n",
      "Epoch 436/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.0444 - mse: 6.5036\n",
      "Epoch 437/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.8927 - mse: 8.2541\n",
      "Epoch 438/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.8460 - mse: 9.7183\n",
      "Epoch 439/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.7935 - mse: 10.5578\n",
      "Epoch 440/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.7041 - mse: 9.4646\n",
      "Epoch 441/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.6646 - mse: 7.7201\n",
      "Epoch 442/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.6387 - mse: 7.7690\n",
      "Epoch 443/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.5902 - mse: 5.8785\n",
      "Epoch 444/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.6417 - mse: 5.9745\n",
      "Epoch 445/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 1.5803 - mse: 3.9934\n",
      "Epoch 446/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.7558 - mse: 4.2028\n",
      "Epoch 447/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 2.0171 - mse: 4.5414\n",
      "Epoch 448/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.9922 - mse: 5.5157\n",
      "Epoch 449/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.0359 - mse: 7.4637\n",
      "Epoch 450/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.8297 - mse: 8.6698\n",
      "Epoch 451/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.9435 - mse: 9.1461\n",
      "Epoch 452/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.9597 - mse: 10.7977\n",
      "Epoch 453/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.9098 - mse: 9.1330\n",
      "Epoch 454/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.8410 - mse: 8.7817\n",
      "Epoch 455/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.8368 - mse: 7.6799\n",
      "Epoch 456/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.7873 - mse: 8.5852\n",
      "Epoch 457/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.6983 - mse: 7.2708\n",
      "Epoch 458/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.7030 - mse: 6.5638\n",
      "Epoch 459/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.5793 - mse: 6.0257\n",
      "Epoch 460/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.5426 - mse: 5.2043\n",
      "Epoch 461/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.5487 - mse: 3.4369\n",
      "Epoch 462/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.6616 - mse: 3.7768\n",
      "Epoch 463/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.6673 - mse: 4.1853\n",
      "Epoch 464/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.6082 - mse: 4.7531\n",
      "Epoch 465/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.7348 - mse: 5.7014\n",
      "Epoch 466/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.7201 - mse: 7.2246\n",
      "Epoch 467/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.6697 - mse: 7.2543\n",
      "Epoch 468/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.6101 - mse: 6.6284\n",
      "Epoch 469/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.6355 - mse: 5.1163\n",
      "Epoch 470/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.6260 - mse: 5.3089\n",
      "Epoch 471/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.6425 - mse: 5.5649\n",
      "Epoch 472/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.8033 - mse: 5.7500\n",
      "Epoch 473/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.0394 - mse: 6.7638\n",
      "Epoch 474/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.7465 - mse: 6.1286\n",
      "Epoch 475/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.8929 - mse: 6.0468\n",
      "Epoch 476/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.9021 - mse: 9.4820\n",
      "Epoch 477/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.7700 - mse: 9.1397\n",
      "Epoch 478/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 1.7502 - mse: 7.5406\n",
      "Epoch 479/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 1.7246 - mse: 8.0890\n",
      "Epoch 480/500\n",
      "3/3 [==============================] - 0s 10ms/step - loss: 1.6397 - mse: 5.0125\n",
      "Epoch 481/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.6681 - mse: 6.4276\n",
      "Epoch 482/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.5601 - mse: 5.8989\n",
      "Epoch 483/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.6255 - mse: 5.3218\n",
      "Epoch 484/500\n",
      "3/3 [==============================] - ETA: 0s - loss: 2.0615 - mse: 6.604 - 0s 9ms/step - loss: 1.8755 - mse: 5.7796\n",
      "Epoch 485/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.7913 - mse: 6.6218\n",
      "Epoch 486/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.7614 - mse: 7.7303\n",
      "Epoch 487/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.6672 - mse: 6.1732\n",
      "Epoch 488/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.6242 - mse: 5.5691\n",
      "Epoch 489/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.5992 - mse: 7.4229\n",
      "Epoch 490/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.5186 - mse: 4.9881\n",
      "Epoch 491/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.4862 - mse: 3.9572\n",
      "Epoch 492/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.3807 - mse: 3.3100\n",
      "Epoch 493/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.4038 - mse: 3.9184\n",
      "Epoch 494/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.5796 - mse: 3.5789\n",
      "Epoch 495/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 2.0799 - mse: 8.0165\n",
      "Epoch 496/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.8525 - mse: 8.0849\n",
      "Epoch 497/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.8373 - mse: 11.1524\n",
      "Epoch 498/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.7403 - mse: 10.4774\n",
      "Epoch 499/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.7141 - mse: 9.8791\n",
      "Epoch 500/500\n",
      "3/3 [==============================] - 0s 9ms/step - loss: 1.7138 - mse: 9.5976\n"
     ]
    }
   ],
   "source": [
    "prob_model, history = build_prob_model(train_ds, dense_feature_layer,  epochs=500)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Extract Mean and Standard Deviation Output"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {},
   "outputs": [],
   "source": [
    "feature_column_list = categorical_feature_list + numerical_feature_list\n",
    "x_tst = dict(test_data[feature_column_list])\n",
    "yhat = prob_model(x_tst)\n",
    "prob_preds = prob_model.predict(test_ds)\n",
    "m = yhat.mean()\n",
    "s = yhat.stddev()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<tf.Tensor: shape=(10, 1), dtype=float32, numpy=\n",
       "array([[13.778888],\n",
       "       [10.670513],\n",
       "       [11.68947 ],\n",
       "       [23.891275],\n",
       "       [17.854294],\n",
       "       [12.198006],\n",
       "       [13.530302],\n",
       "       [12.123651],\n",
       "       [19.382854],\n",
       "       [29.686583]], dtype=float32)>"
      ]
     },
     "execution_count": 69,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "m[0:10]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<tf.Tensor: shape=(10, 1), dtype=float32, numpy=\n",
       "array([[0.9538786 ],\n",
       "       [0.88148165],\n",
       "       [0.74826884],\n",
       "       [1.6325067 ],\n",
       "       [1.4162414 ],\n",
       "       [0.82958436],\n",
       "       [0.85223436],\n",
       "       [0.80150706],\n",
       "       [1.0225366 ],\n",
       "       [3.4836817 ]], dtype=float32)>"
      ]
     },
     "execution_count": 70,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "s[0:10]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {},
   "outputs": [],
   "source": [
    "prob_outputs = {\n",
    "    \"pred\": prob_preds.flatten(),\n",
    "    \"actual_value\": test_data['MPG'].values,\n",
    "    \"pred_mean\": m.numpy().flatten(),\n",
    "    \"pred_std\": s.numpy().flatten()\n",
    "}\n",
    "prob_output_df = pd.DataFrame(prob_outputs)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<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>pred</th>\n",
       "      <th>actual_value</th>\n",
       "      <th>pred_mean</th>\n",
       "      <th>pred_std</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>25.960018</td>\n",
       "      <td>15.0</td>\n",
       "      <td>13.778888</td>\n",
       "      <td>0.953879</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>15.523413</td>\n",
       "      <td>10.0</td>\n",
       "      <td>10.670513</td>\n",
       "      <td>0.881482</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>17.726507</td>\n",
       "      <td>9.0</td>\n",
       "      <td>11.689470</td>\n",
       "      <td>0.748269</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>27.666529</td>\n",
       "      <td>25.0</td>\n",
       "      <td>23.891275</td>\n",
       "      <td>1.632507</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>19.945644</td>\n",
       "      <td>19.0</td>\n",
       "      <td>17.854294</td>\n",
       "      <td>1.416241</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        pred  actual_value  pred_mean  pred_std\n",
       "0  25.960018          15.0  13.778888  0.953879\n",
       "1  15.523413          10.0  10.670513  0.881482\n",
       "2  17.726507           9.0  11.689470  0.748269\n",
       "3  27.666529          25.0  23.891275  1.632507\n",
       "4  19.945644          19.0  17.854294  1.416241"
      ]
     },
     "execution_count": 72,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "prob_output_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "a = plt.axes(aspect='equal')\n",
    "plt.scatter(test_labels, m.numpy().flatten())\n",
    "plt.xlabel('True Values [MPG]')\n",
    "plt.ylabel('Predictions [MPG]')\n",
    "lims = [0, 50]\n",
    "plt.xlim(lims)\n",
    "plt.ylim(lims)\n",
    "_ = plt.plot(lims, lims)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 5. Model Interpretability with Shapley Values"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- Using Open Source Library Shap - https://github.com/slundberg/shap\n",
    "- Developed by Su-In Lee's lab at the University of Washington, and Microsoft Research"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {},
   "outputs": [],
   "source": [
    "# adapted from https://github.com/kweinmeister/notebooks/blob/master/tensorflow-shap-college-debt.ipynb\n",
    "# https://towardsdatascience.com/understand-how-your-tensorflow-model-is-making-predictions-d0b3c7e88500"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "metadata": {},
   "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>!function(t){function e(r){if(n[r])return n[r].exports;var i=n[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,e),i.l=!0,i.exports}var n={};e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:r})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,\"a\",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p=\"\",e(e.s=189)}([function(t,e,n){\"use strict\";function r(t,e,n,r,o,a,u,c){if(i(e),!t){var s;if(void 0===e)s=new Error(\"Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.\");else{var l=[n,r,o,a,u,c],f=0;s=new Error(e.replace(/%s/g,function(){return l[f++]})),s.name=\"Invariant Violation\"}throw s.framesToPop=1,s}}var i=function(t){};t.exports=r},function(t,e,n){\"use strict\";function r(t){for(var e=arguments.length-1,n=\"Minified React error #\"+t+\"; visit http://facebook.github.io/react/docs/error-decoder.html?invariant=\"+t,r=0;r<e;r++)n+=\"&args[]=\"+encodeURIComponent(arguments[r+1]);n+=\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\";var i=new Error(n);throw i.name=\"Invariant Violation\",i.framesToPop=1,i}t.exports=r},function(t,e,n){\"use strict\";var r=n(11),i=r;t.exports=i},function(t,e,n){\"use strict\";function r(t){if(null===t||void 0===t)throw new TypeError(\"Object.assign cannot be called with null or undefined\");return Object(t)}/*\n",
       "object-assign\n",
       "(c) Sindre Sorhus\n",
       "@license MIT\n",
       "*/\n",
       "var i=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable;t.exports=function(){try{if(!Object.assign)return!1;var t=new String(\"abc\");if(t[5]=\"de\",\"5\"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},n=0;n<10;n++)e[\"_\"+String.fromCharCode(n)]=n;if(\"0123456789\"!==Object.getOwnPropertyNames(e).map(function(t){return e[t]}).join(\"\"))return!1;var r={};return\"abcdefghijklmnopqrst\".split(\"\").forEach(function(t){r[t]=t}),\"abcdefghijklmnopqrst\"===Object.keys(Object.assign({},r)).join(\"\")}catch(t){return!1}}()?Object.assign:function(t,e){for(var n,u,c=r(t),s=1;s<arguments.length;s++){n=Object(arguments[s]);for(var l in n)o.call(n,l)&&(c[l]=n[l]);if(i){u=i(n);for(var f=0;f<u.length;f++)a.call(n,u[f])&&(c[u[f]]=n[u[f]])}}return c}},function(t,e,n){\"use strict\";function r(t,e){return 1===t.nodeType&&t.getAttribute(d)===String(e)||8===t.nodeType&&t.nodeValue===\" react-text: \"+e+\" \"||8===t.nodeType&&t.nodeValue===\" react-empty: \"+e+\" \"}function i(t){for(var e;e=t._renderedComponent;)t=e;return t}function o(t,e){var n=i(t);n._hostNode=e,e[g]=n}function a(t){var e=t._hostNode;e&&(delete e[g],t._hostNode=null)}function u(t,e){if(!(t._flags&v.hasCachedChildNodes)){var n=t._renderedChildren,a=e.firstChild;t:for(var u in n)if(n.hasOwnProperty(u)){var c=n[u],s=i(c)._domID;if(0!==s){for(;null!==a;a=a.nextSibling)if(r(a,s)){o(c,a);continue t}f(\"32\",s)}}t._flags|=v.hasCachedChildNodes}}function c(t){if(t[g])return t[g];for(var e=[];!t[g];){if(e.push(t),!t.parentNode)return null;t=t.parentNode}for(var n,r;t&&(r=t[g]);t=e.pop())n=r,e.length&&u(r,t);return n}function s(t){var e=c(t);return null!=e&&e._hostNode===t?e:null}function l(t){if(void 0===t._hostNode&&f(\"33\"),t._hostNode)return t._hostNode;for(var e=[];!t._hostNode;)e.push(t),t._hostParent||f(\"34\"),t=t._hostParent;for(;e.length;t=e.pop())u(t,t._hostNode);return t._hostNode}var f=n(1),p=n(21),h=n(161),d=(n(0),p.ID_ATTRIBUTE_NAME),v=h,g=\"__reactInternalInstance$\"+Math.random().toString(36).slice(2),m={getClosestInstanceFromNode:c,getInstanceFromNode:s,getNodeFromInstance:l,precacheChildNodes:u,precacheNode:o,uncacheNode:a};t.exports=m},function(t,e,n){\"use strict\";function r(t,e,n,a){function u(e){return t(e=new Date(+e)),e}return u.floor=u,u.ceil=function(n){return t(n=new Date(n-1)),e(n,1),t(n),n},u.round=function(t){var e=u(t),n=u.ceil(t);return t-e<n-t?e:n},u.offset=function(t,n){return e(t=new Date(+t),null==n?1:Math.floor(n)),t},u.range=function(n,r,i){var o,a=[];if(n=u.ceil(n),i=null==i?1:Math.floor(i),!(n<r&&i>0))return a;do{a.push(o=new Date(+n)),e(n,i),t(n)}while(o<n&&n<r);return a},u.filter=function(n){return r(function(e){if(e>=e)for(;t(e),!n(e);)e.setTime(e-1)},function(t,r){if(t>=t)if(r<0)for(;++r<=0;)for(;e(t,-1),!n(t););else for(;--r>=0;)for(;e(t,1),!n(t););})},n&&(u.count=function(e,r){return i.setTime(+e),o.setTime(+r),t(i),t(o),Math.floor(n(i,o))},u.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?u.filter(a?function(e){return a(e)%t==0}:function(e){return u.count(0,e)%t==0}):u:null}),u}e.a=r;var i=new Date,o=new Date},function(t,e,n){\"use strict\";var r=!(\"undefined\"==typeof window||!window.document||!window.document.createElement),i={canUseDOM:r,canUseWorkers:\"undefined\"!=typeof Worker,canUseEventListeners:r&&!(!window.addEventListener&&!window.attachEvent),canUseViewport:r&&!!window.screen,isInWorker:!r};t.exports=i},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var r=n(101);n.d(e,\"bisect\",function(){return r.a}),n.d(e,\"bisectRight\",function(){return r.b}),n.d(e,\"bisectLeft\",function(){return r.c});var i=n(19);n.d(e,\"ascending\",function(){return i.a});var o=n(102);n.d(e,\"bisector\",function(){return o.a});var a=n(193);n.d(e,\"cross\",function(){return a.a});var u=n(194);n.d(e,\"descending\",function(){return u.a});var c=n(103);n.d(e,\"deviation\",function(){return c.a});var s=n(104);n.d(e,\"extent\",function(){return s.a});var l=n(195);n.d(e,\"histogram\",function(){return l.a});var f=n(205);n.d(e,\"thresholdFreedmanDiaconis\",function(){return f.a});var p=n(206);n.d(e,\"thresholdScott\",function(){return p.a});var h=n(108);n.d(e,\"thresholdSturges\",function(){return h.a});var d=n(197);n.d(e,\"max\",function(){return d.a});var v=n(198);n.d(e,\"mean\",function(){return v.a});var g=n(199);n.d(e,\"median\",function(){return g.a});var m=n(200);n.d(e,\"merge\",function(){return m.a});var y=n(105);n.d(e,\"min\",function(){return y.a});var _=n(106);n.d(e,\"pairs\",function(){return _.a});var b=n(201);n.d(e,\"permute\",function(){return b.a});var x=n(59);n.d(e,\"quantile\",function(){return x.a});var w=n(107);n.d(e,\"range\",function(){return w.a});var C=n(202);n.d(e,\"scan\",function(){return C.a});var k=n(203);n.d(e,\"shuffle\",function(){return k.a});var E=n(204);n.d(e,\"sum\",function(){return E.a});var M=n(109);n.d(e,\"ticks\",function(){return M.a}),n.d(e,\"tickIncrement\",function(){return M.b}),n.d(e,\"tickStep\",function(){return M.c});var T=n(110);n.d(e,\"transpose\",function(){return T.a});var S=n(111);n.d(e,\"variance\",function(){return S.a});var N=n(207);n.d(e,\"zip\",function(){return N.a})},function(t,e,n){\"use strict\";function r(t,e){this._groups=t,this._parents=e}function i(){return new r([[document.documentElement]],R)}n.d(e,\"c\",function(){return R}),e.b=r;var o=n(283),a=n(284),u=n(272),c=n(266),s=n(132),l=n(271),f=n(276),p=n(279),h=n(286),d=n(263),v=n(278),g=n(277),m=n(285),y=n(270),_=n(269),b=n(262),x=n(134),w=n(280),C=n(264),k=n(287),E=n(273),M=n(281),T=n(275),S=n(261),N=n(274),A=n(282),P=n(265),O=n(267),I=n(70),D=n(268),R=[null];r.prototype=i.prototype={constructor:r,select:o.a,selectAll:a.a,filter:u.a,data:c.a,enter:s.a,exit:l.a,merge:f.a,order:p.a,sort:h.a,call:d.a,nodes:v.a,node:g.a,size:m.a,empty:y.a,each:_.a,attr:b.a,style:x.b,property:w.a,classed:C.a,text:k.a,html:E.a,raise:M.a,lower:T.a,append:S.a,insert:N.a,remove:A.a,clone:P.a,datum:O.a,on:I.c,dispatch:D.a},e.a=i},function(t,e,n){\"use strict\";var r=null;t.exports={debugTool:r}},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var r=n(61);n.d(e,\"color\",function(){return r.a}),n.d(e,\"rgb\",function(){return r.b}),n.d(e,\"hsl\",function(){return r.c});var i=n(218);n.d(e,\"lab\",function(){return i.a}),n.d(e,\"hcl\",function(){return i.b});var o=n(217);n.d(e,\"cubehelix\",function(){return o.a})},function(t,e,n){\"use strict\";function r(t){return function(){return t}}var i=function(){};i.thatReturns=r,i.thatReturnsFalse=r(!1),i.thatReturnsTrue=r(!0),i.thatReturnsNull=r(null),i.thatReturnsThis=function(){return this},i.thatReturnsArgument=function(t){return t},t.exports=i},function(t,e,n){\"use strict\";function r(){S.ReactReconcileTransaction&&w||l(\"123\")}function i(){this.reinitializeTransaction(),this.dirtyComponentsLength=null,this.callbackQueue=p.getPooled(),this.reconcileTransaction=S.ReactReconcileTransaction.getPooled(!0)}function o(t,e,n,i,o,a){return r(),w.batchedUpdates(t,e,n,i,o,a)}function a(t,e){return t._mountOrder-e._mountOrder}function u(t){var e=t.dirtyComponentsLength;e!==y.length&&l(\"124\",e,y.length),y.sort(a),_++;for(var n=0;n<e;n++){var r=y[n],i=r._pendingCallbacks;r._pendingCallbacks=null;var o;if(d.logTopLevelRenders){var u=r;r._currentElement.type.isReactTopLevelWrapper&&(u=r._renderedComponent),o=\"React update: \"+u.getName(),console.time(o)}if(v.performUpdateIfNecessary(r,t.reconcileTransaction,_),o&&console.timeEnd(o),i)for(var c=0;c<i.length;c++)t.callbackQueue.enqueue(i[c],r.getPublicInstance())}}function c(t){if(r(),!w.isBatchingUpdates)return void w.batchedUpdates(c,t);y.push(t),null==t._updateBatchNumber&&(t._updateBatchNumber=_+1)}function s(t,e){m(w.isBatchingUpdates,\"ReactUpdates.asap: Can't enqueue an asap callback in a context whereupdates are not being batched.\"),b.enqueue(t,e),x=!0}var l=n(1),f=n(3),p=n(159),h=n(18),d=n(164),v=n(24),g=n(55),m=n(0),y=[],_=0,b=p.getPooled(),x=!1,w=null,C={initialize:function(){this.dirtyComponentsLength=y.length},close:function(){this.dirtyComponentsLength!==y.length?(y.splice(0,this.dirtyComponentsLength),M()):y.length=0}},k={initialize:function(){this.callbackQueue.reset()},close:function(){this.callbackQueue.notifyAll()}},E=[C,k];f(i.prototype,g,{getTransactionWrappers:function(){return E},destructor:function(){this.dirtyComponentsLength=null,p.release(this.callbackQueue),this.callbackQueue=null,S.ReactReconcileTransaction.release(this.reconcileTransaction),this.reconcileTransaction=null},perform:function(t,e,n){return g.perform.call(this,this.reconcileTransaction.perform,this.reconcileTransaction,t,e,n)}}),h.addPoolingTo(i);var M=function(){for(;y.length||x;){if(y.length){var t=i.getPooled();t.perform(u,null,t),i.release(t)}if(x){x=!1;var e=b;b=p.getPooled(),e.notifyAll(),p.release(e)}}},T={injectReconcileTransaction:function(t){t||l(\"126\"),S.ReactReconcileTransaction=t},injectBatchingStrategy:function(t){t||l(\"127\"),\"function\"!=typeof t.batchedUpdates&&l(\"128\"),\"boolean\"!=typeof t.isBatchingUpdates&&l(\"129\"),w=t}},S={ReactReconcileTransaction:null,batchedUpdates:o,enqueueUpdate:c,flushBatchedUpdates:M,injection:T,asap:s};t.exports=S},function(t,e,n){\"use strict\";n.d(e,\"e\",function(){return r}),n.d(e,\"d\",function(){return i}),n.d(e,\"c\",function(){return o}),n.d(e,\"b\",function(){return a}),n.d(e,\"a\",function(){return u});var r=1e3,i=6e4,o=36e5,a=864e5,u=6048e5},function(t,e,n){\"use strict\";function r(t,e,n,r){this.dispatchConfig=t,this._targetInst=e,this.nativeEvent=n;var i=this.constructor.Interface;for(var o in i)if(i.hasOwnProperty(o)){var u=i[o];u?this[o]=u(n):\"target\"===o?this.target=r:this[o]=n[o]}var c=null!=n.defaultPrevented?n.defaultPrevented:!1===n.returnValue;return this.isDefaultPrevented=c?a.thatReturnsTrue:a.thatReturnsFalse,this.isPropagationStopped=a.thatReturnsFalse,this}var i=n(3),o=n(18),a=n(11),u=(n(2),[\"dispatchConfig\",\"_targetInst\",\"nativeEvent\",\"isDefaultPrevented\",\"isPropagationStopped\",\"_dispatchListeners\",\"_dispatchInstances\"]),c={type:null,target:null,currentTarget:a.thatReturnsNull,eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(t){return t.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null};i(r.prototype,{preventDefault:function(){this.defaultPrevented=!0;var t=this.nativeEvent;t&&(t.preventDefault?t.preventDefault():\"unknown\"!=typeof t.returnValue&&(t.returnValue=!1),this.isDefaultPrevented=a.thatReturnsTrue)},stopPropagation:function(){var t=this.nativeEvent;t&&(t.stopPropagation?t.stopPropagation():\"unknown\"!=typeof t.cancelBubble&&(t.cancelBubble=!0),this.isPropagationStopped=a.thatReturnsTrue)},persist:function(){this.isPersistent=a.thatReturnsTrue},isPersistent:a.thatReturnsFalse,destructor:function(){var t=this.constructor.Interface;for(var e in t)this[e]=null;for(var n=0;n<u.length;n++)this[u[n]]=null}}),r.Interface=c,r.augmentClass=function(t,e){var n=this,r=function(){};r.prototype=n.prototype;var a=new r;i(a,t.prototype),t.prototype=a,t.prototype.constructor=t,t.Interface=i({},n.Interface,e),t.augmentClass=n.augmentClass,o.addPoolingTo(t,o.fourArgumentPooler)},o.addPoolingTo(r,o.fourArgumentPooler),t.exports=r},function(t,e,n){\"use strict\";var r={current:null};t.exports=r},function(t,e,n){\"use strict\";n.d(e,\"a\",function(){return i}),n.d(e,\"b\",function(){return o});var r=Array.prototype,i=r.map,o=r.slice},function(t,e,n){\"use strict\";e.a=function(t){return function(){return t}}},function(t,e,n){\"use strict\";var r=n(1),i=(n(0),function(t){var e=this;if(e.instancePool.length){var n=e.instancePool.pop();return e.call(n,t),n}return new e(t)}),o=function(t,e){var n=this;if(n.instancePool.length){var r=n.instancePool.pop();return n.call(r,t,e),r}return new n(t,e)},a=function(t,e,n){var r=this;if(r.instancePool.length){var i=r.instancePool.pop();return r.call(i,t,e,n),i}return new r(t,e,n)},u=function(t,e,n,r){var i=this;if(i.instancePool.length){var o=i.instancePool.pop();return i.call(o,t,e,n,r),o}return new i(t,e,n,r)},c=function(t){var e=this;t instanceof e||r(\"25\"),t.destructor(),e.instancePool.length<e.poolSize&&e.instancePool.push(t)},s=i,l=function(t,e){var n=t;return n.instancePool=[],n.getPooled=e||s,n.poolSize||(n.poolSize=10),n.release=c,n},f={addPoolingTo:l,oneArgumentPooler:i,twoArgumentPooler:o,threeArgumentPooler:a,fourArgumentPooler:u};t.exports=f},function(t,e,n){\"use strict\";e.a=function(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}},function(t,e,n){\"use strict\";function r(t){if(d){var e=t.node,n=t.children;if(n.length)for(var r=0;r<n.length;r++)v(e,n[r],null);else null!=t.html?f(e,t.html):null!=t.text&&h(e,t.text)}}function i(t,e){t.parentNode.replaceChild(e.node,t),r(e)}function o(t,e){d?t.children.push(e):t.node.appendChild(e.node)}function a(t,e){d?t.html=e:f(t.node,e)}function u(t,e){d?t.text=e:h(t.node,e)}function c(){return this.node.nodeName}function s(t){return{node:t,children:[],html:null,text:null,toString:c}}var l=n(83),f=n(57),p=n(91),h=n(176),d=\"undefined\"!=typeof document&&\"number\"==typeof document.documentMode||\"undefined\"!=typeof navigator&&\"string\"==typeof navigator.userAgent&&/\\bEdge\\/\\d/.test(navigator.userAgent),v=p(function(t,e,n){11===e.node.nodeType||1===e.node.nodeType&&\"object\"===e.node.nodeName.toLowerCase()&&(null==e.node.namespaceURI||e.node.namespaceURI===l.html)?(r(e),t.insertBefore(e.node,n)):(t.insertBefore(e.node,n),r(e))});s.insertTreeBefore=v,s.replaceChildWithTree=i,s.queueChild=o,s.queueHTML=a,s.queueText=u,t.exports=s},function(t,e,n){\"use strict\";function r(t,e){return(t&e)===e}var i=n(1),o=(n(0),{MUST_USE_PROPERTY:1,HAS_BOOLEAN_VALUE:4,HAS_NUMERIC_VALUE:8,HAS_POSITIVE_NUMERIC_VALUE:24,HAS_OVERLOADED_BOOLEAN_VALUE:32,injectDOMPropertyConfig:function(t){var e=o,n=t.Properties||{},a=t.DOMAttributeNamespaces||{},c=t.DOMAttributeNames||{},s=t.DOMPropertyNames||{},l=t.DOMMutationMethods||{};t.isCustomAttribute&&u._isCustomAttributeFunctions.push(t.isCustomAttribute);for(var f in n){u.properties.hasOwnProperty(f)&&i(\"48\",f);var p=f.toLowerCase(),h=n[f],d={attributeName:p,attributeNamespace:null,propertyName:f,mutationMethod:null,mustUseProperty:r(h,e.MUST_USE_PROPERTY),hasBooleanValue:r(h,e.HAS_BOOLEAN_VALUE),hasNumericValue:r(h,e.HAS_NUMERIC_VALUE),hasPositiveNumericValue:r(h,e.HAS_POSITIVE_NUMERIC_VALUE),hasOverloadedBooleanValue:r(h,e.HAS_OVERLOADED_BOOLEAN_VALUE)};if(d.hasBooleanValue+d.hasNumericValue+d.hasOverloadedBooleanValue<=1||i(\"50\",f),c.hasOwnProperty(f)){var v=c[f];d.attributeName=v}a.hasOwnProperty(f)&&(d.attributeNamespace=a[f]),s.hasOwnProperty(f)&&(d.propertyName=s[f]),l.hasOwnProperty(f)&&(d.mutationMethod=l[f]),u.properties[f]=d}}}),a=\":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\",u={ID_ATTRIBUTE_NAME:\"data-reactid\",ROOT_ATTRIBUTE_NAME:\"data-reactroot\",ATTRIBUTE_NAME_START_CHAR:a,ATTRIBUTE_NAME_CHAR:a+\"\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040\",properties:{},getPossibleStandardName:null,_isCustomAttributeFunctions:[],isCustomAttribute:function(t){for(var e=0;e<u._isCustomAttributeFunctions.length;e++){if((0,u._isCustomAttributeFunctions[e])(t))return!0}return!1},injection:o};t.exports=u},function(t,e,n){\"use strict\";function r(t){return\"button\"===t||\"input\"===t||\"select\"===t||\"textarea\"===t}function i(t,e,n){switch(t){case\"onClick\":case\"onClickCapture\":case\"onDoubleClick\":case\"onDoubleClickCapture\":case\"onMouseDown\":case\"onMouseDownCapture\":case\"onMouseMove\":case\"onMouseMoveCapture\":case\"onMouseUp\":case\"onMouseUpCapture\":return!(!n.disabled||!r(e));default:return!1}}var o=n(1),a=n(84),u=n(52),c=n(88),s=n(169),l=n(170),f=(n(0),{}),p=null,h=function(t,e){t&&(u.executeDispatchesInOrder(t,e),t.isPersistent()||t.constructor.release(t))},d=function(t){return h(t,!0)},v=function(t){return h(t,!1)},g=function(t){return\".\"+t._rootNodeID},m={injection:{injectEventPluginOrder:a.injectEventPluginOrder,injectEventPluginsByName:a.injectEventPluginsByName},putListener:function(t,e,n){\"function\"!=typeof n&&o(\"94\",e,typeof n);var r=g(t);(f[e]||(f[e]={}))[r]=n;var i=a.registrationNameModules[e];i&&i.didPutListener&&i.didPutListener(t,e,n)},getListener:function(t,e){var n=f[e];if(i(e,t._currentElement.type,t._currentElement.props))return null;var r=g(t);return n&&n[r]},deleteListener:function(t,e){var n=a.registrationNameModules[e];n&&n.willDeleteListener&&n.willDeleteListener(t,e);var r=f[e];if(r){delete r[g(t)]}},deleteAllListeners:function(t){var e=g(t);for(var n in f)if(f.hasOwnProperty(n)&&f[n][e]){var r=a.registrationNameModules[n];r&&r.willDeleteListener&&r.willDeleteListener(t,n),delete f[n][e]}},extractEvents:function(t,e,n,r){for(var i,o=a.plugins,u=0;u<o.length;u++){var c=o[u];if(c){var l=c.extractEvents(t,e,n,r);l&&(i=s(i,l))}}return i},enqueueEvents:function(t){t&&(p=s(p,t))},processEventQueue:function(t){var e=p;p=null,t?l(e,d):l(e,v),p&&o(\"95\"),c.rethrowCaughtError()},__purge:function(){f={}},__getListenerBank:function(){return f}};t.exports=m},function(t,e,n){\"use strict\";function r(t,e,n){var r=e.dispatchConfig.phasedRegistrationNames[n];return m(t,r)}function i(t,e,n){var i=r(t,n,e);i&&(n._dispatchListeners=v(n._dispatchListeners,i),n._dispatchInstances=v(n._dispatchInstances,t))}function o(t){t&&t.dispatchConfig.phasedRegistrationNames&&d.traverseTwoPhase(t._targetInst,i,t)}function a(t){if(t&&t.dispatchConfig.phasedRegistrationNames){var e=t._targetInst,n=e?d.getParentInstance(e):null;d.traverseTwoPhase(n,i,t)}}function u(t,e,n){if(n&&n.dispatchConfig.registrationName){var r=n.dispatchConfig.registrationName,i=m(t,r);i&&(n._dispatchListeners=v(n._dispatchListeners,i),n._dispatchInstances=v(n._dispatchInstances,t))}}function c(t){t&&t.dispatchConfig.registrationName&&u(t._targetInst,null,t)}function s(t){g(t,o)}function l(t){g(t,a)}function f(t,e,n,r){d.traverseEnterLeave(n,r,u,t,e)}function p(t){g(t,c)}var h=n(22),d=n(52),v=n(169),g=n(170),m=(n(2),h.getListener),y={accumulateTwoPhaseDispatches:s,accumulateTwoPhaseDispatchesSkipTarget:l,accumulateDirectDispatches:p,accumulateEnterLeaveDispatches:f};t.exports=y},function(t,e,n){\"use strict\";function r(){i.attachRefs(this,this._currentElement)}var i=n(382),o=(n(9),n(2),{mountComponent:function(t,e,n,i,o,a){var u=t.mountComponent(e,n,i,o,a);return t._currentElement&&null!=t._currentElement.ref&&e.getReactMountReady().enqueue(r,t),u},getHostNode:function(t){return t.getHostNode()},unmountComponent:function(t,e){i.detachRefs(t,t._currentElement),t.unmountComponent(e)},receiveComponent:function(t,e,n,o){var a=t._currentElement;if(e!==a||o!==t._context){var u=i.shouldUpdateRefs(a,e);u&&i.detachRefs(t,a),t.receiveComponent(e,n,o),u&&t._currentElement&&null!=t._currentElement.ref&&n.getReactMountReady().enqueue(r,t)}},performUpdateIfNecessary:function(t,e,n){t._updateBatchNumber===n&&t.performUpdateIfNecessary(e)}});t.exports=o},function(t,e,n){\"use strict\";function r(t,e,n,r){return i.call(this,t,e,n,r)}var i=n(14),o=n(94),a={view:function(t){if(t.view)return t.view;var e=o(t);if(e.window===e)return e;var n=e.ownerDocument;return n?n.defaultView||n.parentWindow:window},detail:function(t){return t.detail||0}};i.augmentClass(r,a),t.exports=r},function(t,e,n){\"use strict\";var r=n(3),i=n(178),o=n(414),a=n(415),u=n(27),c=n(416),s=n(417),l=n(418),f=n(422),p=u.createElement,h=u.createFactory,d=u.cloneElement,v=r,g=function(t){return t},m={Children:{map:o.map,forEach:o.forEach,count:o.count,toArray:o.toArray,only:f},Component:i.Component,PureComponent:i.PureComponent,createElement:p,cloneElement:d,isValidElement:u.isValidElement,PropTypes:c,createClass:l,createFactory:h,createMixin:g,DOM:a,version:s,__spread:v};t.exports=m},function(t,e,n){\"use strict\";function r(t){return void 0!==t.ref}function i(t){return void 0!==t.key}var o=n(3),a=n(15),u=(n(2),n(182),Object.prototype.hasOwnProperty),c=n(180),s={key:!0,ref:!0,__self:!0,__source:!0},l=function(t,e,n,r,i,o,a){var u={$$typeof:c,type:t,key:e,ref:n,props:a,_owner:o};return u};l.createElement=function(t,e,n){var o,c={},f=null,p=null;if(null!=e){r(e)&&(p=e.ref),i(e)&&(f=\"\"+e.key),void 0===e.__self?null:e.__self,void 0===e.__source?null:e.__source;for(o in e)u.call(e,o)&&!s.hasOwnProperty(o)&&(c[o]=e[o])}var h=arguments.length-2;if(1===h)c.children=n;else if(h>1){for(var d=Array(h),v=0;v<h;v++)d[v]=arguments[v+2];c.children=d}if(t&&t.defaultProps){var g=t.defaultProps;for(o in g)void 0===c[o]&&(c[o]=g[o])}return l(t,f,p,0,0,a.current,c)},l.createFactory=function(t){var e=l.createElement.bind(null,t);return e.type=t,e},l.cloneAndReplaceKey=function(t,e){return l(t.type,e,t.ref,t._self,t._source,t._owner,t.props)},l.cloneElement=function(t,e,n){var c,f=o({},t.props),p=t.key,h=t.ref,d=(t._self,t._source,t._owner);if(null!=e){r(e)&&(h=e.ref,d=a.current),i(e)&&(p=\"\"+e.key);var v;t.type&&t.type.defaultProps&&(v=t.type.defaultProps);for(c in e)u.call(e,c)&&!s.hasOwnProperty(c)&&(void 0===e[c]&&void 0!==v?f[c]=v[c]:f[c]=e[c])}var g=arguments.length-2;if(1===g)f.children=n;else if(g>1){for(var m=Array(g),y=0;y<g;y++)m[y]=arguments[y+2];f.children=m}return l(t.type,p,h,0,0,d,f)},l.isValidElement=function(t){return\"object\"==typeof t&&null!==t&&t.$$typeof===c},t.exports=l},function(t,e,n){\"use strict\";e.a=function(t){return null===t?NaN:+t}},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var r=n(219);n.d(e,\"formatDefaultLocale\",function(){return r.a}),n.d(e,\"format\",function(){return r.b}),n.d(e,\"formatPrefix\",function(){return r.c});var i=n(117);n.d(e,\"formatLocale\",function(){return i.a});var o=n(115);n.d(e,\"formatSpecifier\",function(){return o.a});var a=n(225);n.d(e,\"precisionFixed\",function(){return a.a});var u=n(226);n.d(e,\"precisionPrefix\",function(){return u.a});var c=n(227);n.d(e,\"precisionRound\",function(){return c.a})},function(t,e,n){\"use strict\";var r=n(65);n.d(e,\"b\",function(){return r.a});var i=(n(118),n(64),n(119),n(121),n(43));n.d(e,\"a\",function(){return i.a});var o=(n(122),n(233));n.d(e,\"c\",function(){return o.a});var a=(n(124),n(235),n(237),n(123),n(230),n(231),n(229),n(228));n.d(e,\"d\",function(){return a.a});n(232)},function(t,e,n){\"use strict\";function r(t,e){return function(n){return t+n*e}}function i(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(r){return Math.pow(t+r*e,n)}}function o(t,e){var i=e-t;return i?r(t,i>180||i<-180?i-360*Math.round(i/360):i):n.i(c.a)(isNaN(t)?e:t)}function a(t){return 1==(t=+t)?u:function(e,r){return r-e?i(e,r,t):n.i(c.a)(isNaN(e)?r:e)}}function u(t,e){var i=e-t;return i?r(t,i):n.i(c.a)(isNaN(t)?e:t)}e.b=o,e.c=a,e.a=u;var c=n(120)},function(t,e,n){\"use strict\";var r=n(238);n.d(e,\"a\",function(){return r.a})},function(t,e,n){\"use strict\";e.a=function(t){return t.match(/.{6}/g).map(function(t){return\"#\"+t})}},function(t,e,n){\"use strict\";function r(t){var e=t.domain;return t.ticks=function(t){var r=e();return n.i(o.ticks)(r[0],r[r.length-1],null==t?10:t)},t.tickFormat=function(t,r){return n.i(c.a)(e(),t,r)},t.nice=function(r){null==r&&(r=10);var i,a=e(),u=0,c=a.length-1,s=a[u],l=a[c];return l<s&&(i=s,s=l,l=i,i=u,u=c,c=i),i=n.i(o.tickIncrement)(s,l,r),i>0?(s=Math.floor(s/i)*i,l=Math.ceil(l/i)*i,i=n.i(o.tickIncrement)(s,l,r)):i<0&&(s=Math.ceil(s*i)/i,l=Math.floor(l*i)/i,i=n.i(o.tickIncrement)(s,l,r)),i>0?(a[u]=Math.floor(s/i)*i,a[c]=Math.ceil(l/i)*i,e(a)):i<0&&(a[u]=Math.ceil(s*i)/i,a[c]=Math.floor(l*i)/i,e(a)),t},t}function i(){var t=n.i(u.a)(u.b,a.a);return t.copy=function(){return n.i(u.c)(t,i())},r(t)}e.b=r,e.a=i;var o=n(7),a=n(30),u=n(44),c=n(253)},function(t,e,n){\"use strict\";function r(t){return t>1?0:t<-1?h:Math.acos(t)}function i(t){return t>=1?d:t<=-1?-d:Math.asin(t)}n.d(e,\"g\",function(){return o}),n.d(e,\"m\",function(){return a}),n.d(e,\"h\",function(){return u}),n.d(e,\"e\",function(){return c}),n.d(e,\"j\",function(){return s}),n.d(e,\"i\",function(){return l}),n.d(e,\"d\",function(){return f}),n.d(e,\"a\",function(){return p}),n.d(e,\"b\",function(){return h}),n.d(e,\"f\",function(){return d}),n.d(e,\"c\",function(){return v}),e.l=r,e.k=i;var o=Math.abs,a=Math.atan2,u=Math.cos,c=Math.max,s=Math.min,l=Math.sin,f=Math.sqrt,p=1e-12,h=Math.PI,d=h/2,v=2*h},function(t,e,n){\"use strict\";e.a=function(t,e){if((i=t.length)>1)for(var n,r,i,o=1,a=t[e[0]],u=a.length;o<i;++o)for(r=a,a=t[e[o]],n=0;n<u;++n)a[n][1]+=a[n][0]=isNaN(r[n][1])?r[n][0]:r[n][1]}},function(t,e,n){\"use strict\";e.a=function(t){for(var e=t.length,n=new Array(e);--e>=0;)n[e]=e;return n}},function(t,e,n){(function(t,r){var i;(function(){function o(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)}function a(t,e,n,r){for(var i=-1,o=null==t?0:t.length;++i<o;){var a=t[i];e(r,a,n(a),t)}return r}function u(t,e){for(var n=-1,r=null==t?0:t.length;++n<r&&!1!==e(t[n],n,t););return t}function c(t,e){for(var n=null==t?0:t.length;n--&&!1!==e(t[n],n,t););return t}function s(t,e){for(var n=-1,r=null==t?0:t.length;++n<r;)if(!e(t[n],n,t))return!1;return!0}function l(t,e){for(var n=-1,r=null==t?0:t.length,i=0,o=[];++n<r;){var a=t[n];e(a,n,t)&&(o[i++]=a)}return o}function f(t,e){return!!(null==t?0:t.length)&&w(t,e,0)>-1}function p(t,e,n){for(var r=-1,i=null==t?0:t.length;++r<i;)if(n(e,t[r]))return!0;return!1}function h(t,e){for(var n=-1,r=null==t?0:t.length,i=Array(r);++n<r;)i[n]=e(t[n],n,t);return i}function d(t,e){for(var n=-1,r=e.length,i=t.length;++n<r;)t[i+n]=e[n];return t}function v(t,e,n,r){var i=-1,o=null==t?0:t.length;for(r&&o&&(n=t[++i]);++i<o;)n=e(n,t[i],i,t);return n}function g(t,e,n,r){var i=null==t?0:t.length;for(r&&i&&(n=t[--i]);i--;)n=e(n,t[i],i,t);return n}function m(t,e){for(var n=-1,r=null==t?0:t.length;++n<r;)if(e(t[n],n,t))return!0;return!1}function y(t){return t.split(\"\")}function _(t){return t.match(Ue)||[]}function b(t,e,n){var r;return n(t,function(t,n,i){if(e(t,n,i))return r=n,!1}),r}function x(t,e,n,r){for(var i=t.length,o=n+(r?1:-1);r?o--:++o<i;)if(e(t[o],o,t))return o;return-1}function w(t,e,n){return e===e?$(t,e,n):x(t,k,n)}function C(t,e,n,r){for(var i=n-1,o=t.length;++i<o;)if(r(t[i],e))return i;return-1}function k(t){return t!==t}function E(t,e){var n=null==t?0:t.length;return n?A(t,e)/n:It}function M(t){return function(e){return null==e?nt:e[t]}}function T(t){return function(e){return null==t?nt:t[e]}}function S(t,e,n,r,i){return i(t,function(t,i,o){n=r?(r=!1,t):e(n,t,i,o)}),n}function N(t,e){var n=t.length;for(t.sort(e);n--;)t[n]=t[n].value;return t}function A(t,e){for(var n,r=-1,i=t.length;++r<i;){var o=e(t[r]);o!==nt&&(n=n===nt?o:n+o)}return n}function P(t,e){for(var n=-1,r=Array(t);++n<t;)r[n]=e(n);return r}function O(t,e){return h(e,function(e){return[e,t[e]]})}function I(t){return function(e){return t(e)}}function D(t,e){return h(e,function(e){return t[e]})}function R(t,e){return t.has(e)}function L(t,e){for(var n=-1,r=t.length;++n<r&&w(e,t[n],0)>-1;);return n}function U(t,e){for(var n=t.length;n--&&w(e,t[n],0)>-1;);return n}function F(t,e){for(var n=t.length,r=0;n--;)t[n]===e&&++r;return r}function j(t){return\"\\\\\"+En[t]}function B(t,e){return null==t?nt:t[e]}function V(t){return gn.test(t)}function W(t){return mn.test(t)}function z(t){for(var e,n=[];!(e=t.next()).done;)n.push(e.value);return n}function H(t){var e=-1,n=Array(t.size);return t.forEach(function(t,r){n[++e]=[r,t]}),n}function q(t,e){return function(n){return t(e(n))}}function Y(t,e){for(var n=-1,r=t.length,i=0,o=[];++n<r;){var a=t[n];a!==e&&a!==ct||(t[n]=ct,o[i++]=n)}return o}function K(t){var e=-1,n=Array(t.size);return t.forEach(function(t){n[++e]=t}),n}function G(t){var e=-1,n=Array(t.size);return t.forEach(function(t){n[++e]=[t,t]}),n}function $(t,e,n){for(var r=n-1,i=t.length;++r<i;)if(t[r]===e)return r;return-1}function X(t,e,n){for(var r=n+1;r--;)if(t[r]===e)return r;return r}function Q(t){return V(t)?J(t):Wn(t)}function Z(t){return V(t)?tt(t):y(t)}function J(t){for(var e=dn.lastIndex=0;dn.test(t);)++e;return e}function tt(t){return t.match(dn)||[]}function et(t){return t.match(vn)||[]}var nt,rt=200,it=\"Unsupported core-js use. Try https://npms.io/search?q=ponyfill.\",ot=\"Expected a function\",at=\"__lodash_hash_undefined__\",ut=500,ct=\"__lodash_placeholder__\",st=1,lt=2,ft=4,pt=1,ht=2,dt=1,vt=2,gt=4,mt=8,yt=16,_t=32,bt=64,xt=128,wt=256,Ct=512,kt=30,Et=\"...\",Mt=800,Tt=16,St=1,Nt=2,At=1/0,Pt=9007199254740991,Ot=1.7976931348623157e308,It=NaN,Dt=4294967295,Rt=Dt-1,Lt=Dt>>>1,Ut=[[\"ary\",xt],[\"bind\",dt],[\"bindKey\",vt],[\"curry\",mt],[\"curryRight\",yt],[\"flip\",Ct],[\"partial\",_t],[\"partialRight\",bt],[\"rearg\",wt]],Ft=\"[object Arguments]\",jt=\"[object Array]\",Bt=\"[object AsyncFunction]\",Vt=\"[object Boolean]\",Wt=\"[object Date]\",zt=\"[object DOMException]\",Ht=\"[object Error]\",qt=\"[object Function]\",Yt=\"[object GeneratorFunction]\",Kt=\"[object Map]\",Gt=\"[object Number]\",$t=\"[object Null]\",Xt=\"[object Object]\",Qt=\"[object Proxy]\",Zt=\"[object RegExp]\",Jt=\"[object Set]\",te=\"[object String]\",ee=\"[object Symbol]\",ne=\"[object Undefined]\",re=\"[object WeakMap]\",ie=\"[object WeakSet]\",oe=\"[object ArrayBuffer]\",ae=\"[object DataView]\",ue=\"[object Float32Array]\",ce=\"[object Float64Array]\",se=\"[object Int8Array]\",le=\"[object Int16Array]\",fe=\"[object Int32Array]\",pe=\"[object Uint8Array]\",he=\"[object Uint8ClampedArray]\",de=\"[object Uint16Array]\",ve=\"[object Uint32Array]\",ge=/\\b__p \\+= '';/g,me=/\\b(__p \\+=) '' \\+/g,ye=/(__e\\(.*?\\)|\\b__t\\)) \\+\\n'';/g,_e=/&(?:amp|lt|gt|quot|#39);/g,be=/[&<>\"']/g,xe=RegExp(_e.source),we=RegExp(be.source),Ce=/<%-([\\s\\S]+?)%>/g,ke=/<%([\\s\\S]+?)%>/g,Ee=/<%=([\\s\\S]+?)%>/g,Me=/\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,Te=/^\\w*$/,Se=/[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g,Ne=/[\\\\^$.*+?()[\\]{}|]/g,Ae=RegExp(Ne.source),Pe=/^\\s+|\\s+$/g,Oe=/^\\s+/,Ie=/\\s+$/,De=/\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/,Re=/\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/,Le=/,? & /,Ue=/[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g,Fe=/\\\\(\\\\)?/g,je=/\\$\\{([^\\\\}]*(?:\\\\.[^\\\\}]*)*)\\}/g,Be=/\\w*$/,Ve=/^[-+]0x[0-9a-f]+$/i,We=/^0b[01]+$/i,ze=/^\\[object .+?Constructor\\]$/,He=/^0o[0-7]+$/i,qe=/^(?:0|[1-9]\\d*)$/,Ye=/[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g,Ke=/($^)/,Ge=/['\\n\\r\\u2028\\u2029\\\\]/g,$e=\"\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff\",Xe=\"\\\\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\",Qe=\"[\"+Xe+\"]\",Ze=\"[\"+$e+\"]\",Je=\"[a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff]\",tn=\"[^\\\\ud800-\\\\udfff\"+Xe+\"\\\\d+\\\\u2700-\\\\u27bfa-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xffA-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde]\",en=\"\\\\ud83c[\\\\udffb-\\\\udfff]\",nn=\"(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}\",rn=\"[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]\",on=\"[A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde]\",an=\"(?:\"+Je+\"|\"+tn+\")\",un=\"(?:[\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff]|\\\\ud83c[\\\\udffb-\\\\udfff])?\",cn=\"(?:\\\\u200d(?:\"+[\"[^\\\\ud800-\\\\udfff]\",nn,rn].join(\"|\")+\")[\\\\ufe0e\\\\ufe0f]?\"+un+\")*\",sn=\"[\\\\ufe0e\\\\ufe0f]?\"+un+cn,ln=\"(?:\"+[\"[\\\\u2700-\\\\u27bf]\",nn,rn].join(\"|\")+\")\"+sn,fn=\"(?:\"+[\"[^\\\\ud800-\\\\udfff]\"+Ze+\"?\",Ze,nn,rn,\"[\\\\ud800-\\\\udfff]\"].join(\"|\")+\")\",pn=RegExp(\"['’]\",\"g\"),hn=RegExp(Ze,\"g\"),dn=RegExp(en+\"(?=\"+en+\")|\"+fn+sn,\"g\"),vn=RegExp([on+\"?\"+Je+\"+(?:['’](?:d|ll|m|re|s|t|ve))?(?=\"+[Qe,on,\"$\"].join(\"|\")+\")\",\"(?:[A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde]|[^\\\\ud800-\\\\udfff\\\\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\\\\d+\\\\u2700-\\\\u27bfa-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xffA-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde])+(?:['’](?:D|LL|M|RE|S|T|VE))?(?=\"+[Qe,on+an,\"$\"].join(\"|\")+\")\",on+\"?\"+an+\"+(?:['’](?:d|ll|m|re|s|t|ve))?\",on+\"+(?:['’](?:D|LL|M|RE|S|T|VE))?\",\"\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])\",\"\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])\",\"\\\\d+\",ln].join(\"|\"),\"g\"),gn=RegExp(\"[\\\\u200d\\\\ud800-\\\\udfff\"+$e+\"\\\\ufe0e\\\\ufe0f]\"),mn=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,yn=[\"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\"],_n=-1,bn={};bn[ue]=bn[ce]=bn[se]=bn[le]=bn[fe]=bn[pe]=bn[he]=bn[de]=bn[ve]=!0,bn[Ft]=bn[jt]=bn[oe]=bn[Vt]=bn[ae]=bn[Wt]=bn[Ht]=bn[qt]=bn[Kt]=bn[Gt]=bn[Xt]=bn[Zt]=bn[Jt]=bn[te]=bn[re]=!1;var xn={};xn[Ft]=xn[jt]=xn[oe]=xn[ae]=xn[Vt]=xn[Wt]=xn[ue]=xn[ce]=xn[se]=xn[le]=xn[fe]=xn[Kt]=xn[Gt]=xn[Xt]=xn[Zt]=xn[Jt]=xn[te]=xn[ee]=xn[pe]=xn[he]=xn[de]=xn[ve]=!0,xn[Ht]=xn[qt]=xn[re]=!1;var wn={\"À\":\"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\"},Cn={\"&\":\"&amp;\",\"<\":\"&lt;\",\">\":\"&gt;\",'\"':\"&quot;\",\"'\":\"&#39;\"},kn={\"&amp;\":\"&\",\"&lt;\":\"<\",\"&gt;\":\">\",\"&quot;\":'\"',\"&#39;\":\"'\"},En={\"\\\\\":\"\\\\\",\"'\":\"'\",\"\\n\":\"n\",\"\\r\":\"r\",\"\\u2028\":\"u2028\",\"\\u2029\":\"u2029\"},Mn=parseFloat,Tn=parseInt,Sn=\"object\"==typeof t&&t&&t.Object===Object&&t,Nn=\"object\"==typeof self&&self&&self.Object===Object&&self,An=Sn||Nn||Function(\"return this\")(),Pn=\"object\"==typeof e&&e&&!e.nodeType&&e,On=Pn&&\"object\"==typeof r&&r&&!r.nodeType&&r,In=On&&On.exports===Pn,Dn=In&&Sn.process,Rn=function(){try{var t=On&&On.require&&On.require(\"util\").types;return t||Dn&&Dn.binding&&Dn.binding(\"util\")}catch(t){}}(),Ln=Rn&&Rn.isArrayBuffer,Un=Rn&&Rn.isDate,Fn=Rn&&Rn.isMap,jn=Rn&&Rn.isRegExp,Bn=Rn&&Rn.isSet,Vn=Rn&&Rn.isTypedArray,Wn=M(\"length\"),zn=T(wn),Hn=T(Cn),qn=T(kn),Yn=function t(e){function n(t){if(ec(t)&&!hp(t)&&!(t instanceof y)){if(t instanceof i)return t;if(pl.call(t,\"__wrapped__\"))return Zo(t)}return new i(t)}function r(){}function i(t,e){this.__wrapped__=t,this.__actions__=[],this.__chain__=!!e,this.__index__=0,this.__values__=nt}function y(t){this.__wrapped__=t,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=Dt,this.__views__=[]}function T(){var t=new y(this.__wrapped__);return t.__actions__=Oi(this.__actions__),t.__dir__=this.__dir__,t.__filtered__=this.__filtered__,t.__iteratees__=Oi(this.__iteratees__),t.__takeCount__=this.__takeCount__,t.__views__=Oi(this.__views__),t}function $(){if(this.__filtered__){var t=new y(this);t.__dir__=-1,t.__filtered__=!0}else t=this.clone(),t.__dir__*=-1;return t}function J(){var t=this.__wrapped__.value(),e=this.__dir__,n=hp(t),r=e<0,i=n?t.length:0,o=wo(0,i,this.__views__),a=o.start,u=o.end,c=u-a,s=r?u:a-1,l=this.__iteratees__,f=l.length,p=0,h=Wl(c,this.__takeCount__);if(!n||!r&&i==c&&h==c)return vi(t,this.__actions__);var d=[];t:for(;c--&&p<h;){s+=e;for(var v=-1,g=t[s];++v<f;){var m=l[v],y=m.iteratee,_=m.type,b=y(g);if(_==Nt)g=b;else if(!b){if(_==St)continue t;break t}}d[p++]=g}return d}function tt(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}function Ue(){this.__data__=Zl?Zl(null):{},this.size=0}function $e(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}function Xe(t){var e=this.__data__;if(Zl){var n=e[t];return n===at?nt:n}return pl.call(e,t)?e[t]:nt}function Qe(t){var e=this.__data__;return Zl?e[t]!==nt:pl.call(e,t)}function Ze(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=Zl&&e===nt?at:e,this}function Je(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}function tn(){this.__data__=[],this.size=0}function en(t){var e=this.__data__,n=Kn(e,t);return!(n<0)&&(n==e.length-1?e.pop():Ml.call(e,n,1),--this.size,!0)}function nn(t){var e=this.__data__,n=Kn(e,t);return n<0?nt:e[n][1]}function rn(t){return Kn(this.__data__,t)>-1}function on(t,e){var n=this.__data__,r=Kn(n,t);return r<0?(++this.size,n.push([t,e])):n[r][1]=e,this}function an(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}function un(){this.size=0,this.__data__={hash:new tt,map:new(Gl||Je),string:new tt}}function cn(t){var e=yo(this,t).delete(t);return this.size-=e?1:0,e}function sn(t){return yo(this,t).get(t)}function ln(t){return yo(this,t).has(t)}function fn(t,e){var n=yo(this,t),r=n.size;return n.set(t,e),this.size+=n.size==r?0:1,this}function dn(t){var e=-1,n=null==t?0:t.length;for(this.__data__=new an;++e<n;)this.add(t[e])}function vn(t){return this.__data__.set(t,at),this}function gn(t){return this.__data__.has(t)}function mn(t){var e=this.__data__=new Je(t);this.size=e.size}function wn(){this.__data__=new Je,this.size=0}function Cn(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n}function kn(t){return this.__data__.get(t)}function En(t){return this.__data__.has(t)}function Sn(t,e){var n=this.__data__;if(n instanceof Je){var r=n.__data__;if(!Gl||r.length<rt-1)return r.push([t,e]),this.size=++n.size,this;n=this.__data__=new an(r)}return n.set(t,e),this.size=n.size,this}function Nn(t,e){var n=hp(t),r=!n&&pp(t),i=!n&&!r&&vp(t),o=!n&&!r&&!i&&bp(t),a=n||r||i||o,u=a?P(t.length,ol):[],c=u.length;for(var s in t)!e&&!pl.call(t,s)||a&&(\"length\"==s||i&&(\"offset\"==s||\"parent\"==s)||o&&(\"buffer\"==s||\"byteLength\"==s||\"byteOffset\"==s)||Ao(s,c))||u.push(s);return u}function Pn(t){var e=t.length;return e?t[Xr(0,e-1)]:nt}function On(t,e){return Go(Oi(t),Jn(e,0,t.length))}function Dn(t){return Go(Oi(t))}function Rn(t,e,n){(n===nt||Vu(t[e],n))&&(n!==nt||e in t)||Qn(t,e,n)}function Wn(t,e,n){var r=t[e];pl.call(t,e)&&Vu(r,n)&&(n!==nt||e in t)||Qn(t,e,n)}function Kn(t,e){for(var n=t.length;n--;)if(Vu(t[n][0],e))return n;return-1}function Gn(t,e,n,r){return ff(t,function(t,i,o){e(r,t,n(t),o)}),r}function $n(t,e){return t&&Ii(e,Lc(e),t)}function Xn(t,e){return t&&Ii(e,Uc(e),t)}function Qn(t,e,n){\"__proto__\"==e&&Al?Al(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n}function Zn(t,e){for(var n=-1,r=e.length,i=Zs(r),o=null==t;++n<r;)i[n]=o?nt:Ic(t,e[n]);return i}function Jn(t,e,n){return t===t&&(n!==nt&&(t=t<=n?t:n),e!==nt&&(t=t>=e?t:e)),t}function tr(t,e,n,r,i,o){var a,c=e&st,s=e&lt,l=e&ft;if(n&&(a=i?n(t,r,i,o):n(t)),a!==nt)return a;if(!tc(t))return t;var f=hp(t);if(f){if(a=Eo(t),!c)return Oi(t,a)}else{var p=Cf(t),h=p==qt||p==Yt;if(vp(t))return wi(t,c);if(p==Xt||p==Ft||h&&!i){if(a=s||h?{}:Mo(t),!c)return s?Ri(t,Xn(a,t)):Di(t,$n(a,t))}else{if(!xn[p])return i?t:{};a=To(t,p,c)}}o||(o=new mn);var d=o.get(t);if(d)return d;if(o.set(t,a),_p(t))return t.forEach(function(r){a.add(tr(r,e,n,r,t,o))}),a;if(mp(t))return t.forEach(function(r,i){a.set(i,tr(r,e,n,i,t,o))}),a;var v=l?s?ho:po:s?Uc:Lc,g=f?nt:v(t);return u(g||t,function(r,i){g&&(i=r,r=t[i]),Wn(a,i,tr(r,e,n,i,t,o))}),a}function er(t){var e=Lc(t);return function(n){return nr(n,t,e)}}function nr(t,e,n){var r=n.length;if(null==t)return!r;for(t=rl(t);r--;){var i=n[r],o=e[i],a=t[i];if(a===nt&&!(i in t)||!o(a))return!1}return!0}function rr(t,e,n){if(\"function\"!=typeof t)throw new al(ot);return Mf(function(){t.apply(nt,n)},e)}function ir(t,e,n,r){var i=-1,o=f,a=!0,u=t.length,c=[],s=e.length;if(!u)return c;n&&(e=h(e,I(n))),r?(o=p,a=!1):e.length>=rt&&(o=R,a=!1,e=new dn(e));t:for(;++i<u;){var l=t[i],d=null==n?l:n(l);if(l=r||0!==l?l:0,a&&d===d){for(var v=s;v--;)if(e[v]===d)continue t;c.push(l)}else o(e,d,r)||c.push(l)}return c}function or(t,e){var n=!0;return ff(t,function(t,r,i){return n=!!e(t,r,i)}),n}function ar(t,e,n){for(var r=-1,i=t.length;++r<i;){var o=t[r],a=e(o);if(null!=a&&(u===nt?a===a&&!pc(a):n(a,u)))var u=a,c=o}return c}function ur(t,e,n,r){var i=t.length;for(n=yc(n),n<0&&(n=-n>i?0:i+n),r=r===nt||r>i?i:yc(r),r<0&&(r+=i),r=n>r?0:_c(r);n<r;)t[n++]=e;return t}function cr(t,e){var n=[];return ff(t,function(t,r,i){e(t,r,i)&&n.push(t)}),n}function sr(t,e,n,r,i){var o=-1,a=t.length;for(n||(n=No),i||(i=[]);++o<a;){var u=t[o];e>0&&n(u)?e>1?sr(u,e-1,n,r,i):d(i,u):r||(i[i.length]=u)}return i}function lr(t,e){return t&&hf(t,e,Lc)}function fr(t,e){return t&&df(t,e,Lc)}function pr(t,e){return l(e,function(e){return Qu(t[e])})}function hr(t,e){e=bi(e,t);for(var n=0,r=e.length;null!=t&&n<r;)t=t[$o(e[n++])];return n&&n==r?t:nt}function dr(t,e,n){var r=e(t);return hp(t)?r:d(r,n(t))}function vr(t){return null==t?t===nt?ne:$t:Nl&&Nl in rl(t)?xo(t):Vo(t)}function gr(t,e){return t>e}function mr(t,e){return null!=t&&pl.call(t,e)}function yr(t,e){return null!=t&&e in rl(t)}function _r(t,e,n){return t>=Wl(e,n)&&t<Vl(e,n)}function br(t,e,n){for(var r=n?p:f,i=t[0].length,o=t.length,a=o,u=Zs(o),c=1/0,s=[];a--;){var l=t[a];a&&e&&(l=h(l,I(e))),c=Wl(l.length,c),u[a]=!n&&(e||i>=120&&l.length>=120)?new dn(a&&l):nt}l=t[0];var d=-1,v=u[0];t:for(;++d<i&&s.length<c;){var g=l[d],m=e?e(g):g;if(g=n||0!==g?g:0,!(v?R(v,m):r(s,m,n))){for(a=o;--a;){var y=u[a];if(!(y?R(y,m):r(t[a],m,n)))continue t}v&&v.push(m),s.push(g)}}return s}function xr(t,e,n,r){return lr(t,function(t,i,o){e(r,n(t),i,o)}),r}function wr(t,e,n){e=bi(e,t),t=zo(t,e);var r=null==t?t:t[$o(ma(e))];return null==r?nt:o(r,t,n)}function Cr(t){return ec(t)&&vr(t)==Ft}function kr(t){return ec(t)&&vr(t)==oe}function Er(t){return ec(t)&&vr(t)==Wt}function Mr(t,e,n,r,i){return t===e||(null==t||null==e||!ec(t)&&!ec(e)?t!==t&&e!==e:Tr(t,e,n,r,Mr,i))}function Tr(t,e,n,r,i,o){var a=hp(t),u=hp(e),c=a?jt:Cf(t),s=u?jt:Cf(e);c=c==Ft?Xt:c,s=s==Ft?Xt:s;var l=c==Xt,f=s==Xt,p=c==s;if(p&&vp(t)){if(!vp(e))return!1;a=!0,l=!1}if(p&&!l)return o||(o=new mn),a||bp(t)?co(t,e,n,r,i,o):so(t,e,c,n,r,i,o);if(!(n&pt)){var h=l&&pl.call(t,\"__wrapped__\"),d=f&&pl.call(e,\"__wrapped__\");if(h||d){var v=h?t.value():t,g=d?e.value():e;return o||(o=new mn),i(v,g,n,r,o)}}return!!p&&(o||(o=new mn),lo(t,e,n,r,i,o))}function Sr(t){return ec(t)&&Cf(t)==Kt}function Nr(t,e,n,r){var i=n.length,o=i,a=!r;if(null==t)return!o;for(t=rl(t);i--;){var u=n[i];if(a&&u[2]?u[1]!==t[u[0]]:!(u[0]in t))return!1}for(;++i<o;){u=n[i];var c=u[0],s=t[c],l=u[1];if(a&&u[2]){if(s===nt&&!(c in t))return!1}else{var f=new mn;if(r)var p=r(s,l,c,t,e,f);if(!(p===nt?Mr(l,s,pt|ht,r,f):p))return!1}}return!0}function Ar(t){return!(!tc(t)||Ro(t))&&(Qu(t)?yl:ze).test(Xo(t))}function Pr(t){return ec(t)&&vr(t)==Zt}function Or(t){return ec(t)&&Cf(t)==Jt}function Ir(t){return ec(t)&&Ju(t.length)&&!!bn[vr(t)]}function Dr(t){return\"function\"==typeof t?t:null==t?Ms:\"object\"==typeof t?hp(t)?Br(t[0],t[1]):jr(t):Ds(t)}function Rr(t){if(!Lo(t))return Bl(t);var e=[];for(var n in rl(t))pl.call(t,n)&&\"constructor\"!=n&&e.push(n);return e}function Lr(t){if(!tc(t))return Bo(t);var e=Lo(t),n=[];for(var r in t)(\"constructor\"!=r||!e&&pl.call(t,r))&&n.push(r);return n}function Ur(t,e){return t<e}function Fr(t,e){var n=-1,r=Wu(t)?Zs(t.length):[];return ff(t,function(t,i,o){r[++n]=e(t,i,o)}),r}function jr(t){var e=_o(t);return 1==e.length&&e[0][2]?Fo(e[0][0],e[0][1]):function(n){return n===t||Nr(n,t,e)}}function Br(t,e){return Oo(t)&&Uo(e)?Fo($o(t),e):function(n){var r=Ic(n,t);return r===nt&&r===e?Rc(n,t):Mr(e,r,pt|ht)}}function Vr(t,e,n,r,i){t!==e&&hf(e,function(o,a){if(tc(o))i||(i=new mn),Wr(t,e,a,n,Vr,r,i);else{var u=r?r(qo(t,a),o,a+\"\",t,e,i):nt;u===nt&&(u=o),Rn(t,a,u)}},Uc)}function Wr(t,e,n,r,i,o,a){var u=qo(t,n),c=qo(e,n),s=a.get(c);if(s)return void Rn(t,n,s);var l=o?o(u,c,n+\"\",t,e,a):nt,f=l===nt;if(f){var p=hp(c),h=!p&&vp(c),d=!p&&!h&&bp(c);l=c,p||h||d?hp(u)?l=u:zu(u)?l=Oi(u):h?(f=!1,l=wi(c,!0)):d?(f=!1,l=Ti(c,!0)):l=[]:sc(c)||pp(c)?(l=u,pp(u)?l=xc(u):tc(u)&&!Qu(u)||(l=Mo(c))):f=!1}f&&(a.set(c,l),i(l,c,r,o,a),a.delete(c)),Rn(t,n,l)}function zr(t,e){var n=t.length;if(n)return e+=e<0?n:0,Ao(e,n)?t[e]:nt}function Hr(t,e,n){var r=-1;return e=h(e.length?e:[Ms],I(mo())),N(Fr(t,function(t,n,i){return{criteria:h(e,function(e){return e(t)}),index:++r,value:t}}),function(t,e){return Ni(t,e,n)})}function qr(t,e){return Yr(t,e,function(e,n){return Rc(t,n)})}function Yr(t,e,n){for(var r=-1,i=e.length,o={};++r<i;){var a=e[r],u=hr(t,a);n(u,a)&&ni(o,bi(a,t),u)}return o}function Kr(t){return function(e){return hr(e,t)}}function Gr(t,e,n,r){var i=r?C:w,o=-1,a=e.length,u=t;for(t===e&&(e=Oi(e)),n&&(u=h(t,I(n)));++o<a;)for(var c=0,s=e[o],l=n?n(s):s;(c=i(u,l,c,r))>-1;)u!==t&&Ml.call(u,c,1),Ml.call(t,c,1);return t}function $r(t,e){for(var n=t?e.length:0,r=n-1;n--;){var i=e[n];if(n==r||i!==o){var o=i;Ao(i)?Ml.call(t,i,1):pi(t,i)}}return t}function Xr(t,e){return t+Rl(ql()*(e-t+1))}function Qr(t,e,n,r){for(var i=-1,o=Vl(Dl((e-t)/(n||1)),0),a=Zs(o);o--;)a[r?o:++i]=t,t+=n;return a}function Zr(t,e){var n=\"\";if(!t||e<1||e>Pt)return n;do{e%2&&(n+=t),(e=Rl(e/2))&&(t+=t)}while(e);return n}function Jr(t,e){return Tf(Wo(t,e,Ms),t+\"\")}function ti(t){return Pn($c(t))}function ei(t,e){var n=$c(t);return Go(n,Jn(e,0,n.length))}function ni(t,e,n,r){if(!tc(t))return t;e=bi(e,t);for(var i=-1,o=e.length,a=o-1,u=t;null!=u&&++i<o;){var c=$o(e[i]),s=n;if(i!=a){var l=u[c];s=r?r(l,c,u):nt,s===nt&&(s=tc(l)?l:Ao(e[i+1])?[]:{})}Wn(u,c,s),u=u[c]}return t}function ri(t){return Go($c(t))}function ii(t,e,n){var r=-1,i=t.length;e<0&&(e=-e>i?0:i+e),n=n>i?i:n,n<0&&(n+=i),i=e>n?0:n-e>>>0,e>>>=0;for(var o=Zs(i);++r<i;)o[r]=t[r+e];return o}function oi(t,e){var n;return ff(t,function(t,r,i){return!(n=e(t,r,i))}),!!n}function ai(t,e,n){var r=0,i=null==t?r:t.length;if(\"number\"==typeof e&&e===e&&i<=Lt){for(;r<i;){var o=r+i>>>1,a=t[o];null!==a&&!pc(a)&&(n?a<=e:a<e)?r=o+1:i=o}return i}return ui(t,e,Ms,n)}function ui(t,e,n,r){e=n(e);for(var i=0,o=null==t?0:t.length,a=e!==e,u=null===e,c=pc(e),s=e===nt;i<o;){var l=Rl((i+o)/2),f=n(t[l]),p=f!==nt,h=null===f,d=f===f,v=pc(f);if(a)var g=r||d;else g=s?d&&(r||p):u?d&&p&&(r||!h):c?d&&p&&!h&&(r||!v):!h&&!v&&(r?f<=e:f<e);g?i=l+1:o=l}return Wl(o,Rt)}function ci(t,e){for(var n=-1,r=t.length,i=0,o=[];++n<r;){var a=t[n],u=e?e(a):a;if(!n||!Vu(u,c)){var c=u;o[i++]=0===a?0:a}}return o}function si(t){return\"number\"==typeof t?t:pc(t)?It:+t}function li(t){if(\"string\"==typeof t)return t;if(hp(t))return h(t,li)+\"\";if(pc(t))return sf?sf.call(t):\"\";var e=t+\"\";return\"0\"==e&&1/t==-At?\"-0\":e}function fi(t,e,n){var r=-1,i=f,o=t.length,a=!0,u=[],c=u;if(n)a=!1,i=p;else if(o>=rt){var s=e?null:_f(t);if(s)return K(s);a=!1,i=R,c=new dn}else c=e?[]:u;t:for(;++r<o;){var l=t[r],h=e?e(l):l;if(l=n||0!==l?l:0,a&&h===h){for(var d=c.length;d--;)if(c[d]===h)continue t;e&&c.push(h),u.push(l)}else i(c,h,n)||(c!==u&&c.push(h),u.push(l))}return u}function pi(t,e){return e=bi(e,t),null==(t=zo(t,e))||delete t[$o(ma(e))]}function hi(t,e,n,r){return ni(t,e,n(hr(t,e)),r)}function di(t,e,n,r){for(var i=t.length,o=r?i:-1;(r?o--:++o<i)&&e(t[o],o,t););return n?ii(t,r?0:o,r?o+1:i):ii(t,r?o+1:0,r?i:o)}function vi(t,e){var n=t;return n instanceof y&&(n=n.value()),v(e,function(t,e){return e.func.apply(e.thisArg,d([t],e.args))},n)}function gi(t,e,n){var r=t.length;if(r<2)return r?fi(t[0]):[];for(var i=-1,o=Zs(r);++i<r;)for(var a=t[i],u=-1;++u<r;)u!=i&&(o[i]=ir(o[i]||a,t[u],e,n));return fi(sr(o,1),e,n)}function mi(t,e,n){for(var r=-1,i=t.length,o=e.length,a={};++r<i;){var u=r<o?e[r]:nt;n(a,t[r],u)}return a}function yi(t){return zu(t)?t:[]}function _i(t){return\"function\"==typeof t?t:Ms}function bi(t,e){return hp(t)?t:Oo(t,e)?[t]:Sf(Cc(t))}function xi(t,e,n){var r=t.length;return n=n===nt?r:n,!e&&n>=r?t:ii(t,e,n)}function wi(t,e){if(e)return t.slice();var n=t.length,r=wl?wl(n):new t.constructor(n);return t.copy(r),r}function Ci(t){var e=new t.constructor(t.byteLength);return new xl(e).set(new xl(t)),e}function ki(t,e){var n=e?Ci(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.byteLength)}function Ei(t){var e=new t.constructor(t.source,Be.exec(t));return e.lastIndex=t.lastIndex,e}function Mi(t){return cf?rl(cf.call(t)):{}}function Ti(t,e){var n=e?Ci(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.length)}function Si(t,e){if(t!==e){var n=t!==nt,r=null===t,i=t===t,o=pc(t),a=e!==nt,u=null===e,c=e===e,s=pc(e);if(!u&&!s&&!o&&t>e||o&&a&&c&&!u&&!s||r&&a&&c||!n&&c||!i)return 1;if(!r&&!o&&!s&&t<e||s&&n&&i&&!r&&!o||u&&n&&i||!a&&i||!c)return-1}return 0}function Ni(t,e,n){for(var r=-1,i=t.criteria,o=e.criteria,a=i.length,u=n.length;++r<a;){var c=Si(i[r],o[r]);if(c){if(r>=u)return c;return c*(\"desc\"==n[r]?-1:1)}}return t.index-e.index}function Ai(t,e,n,r){for(var i=-1,o=t.length,a=n.length,u=-1,c=e.length,s=Vl(o-a,0),l=Zs(c+s),f=!r;++u<c;)l[u]=e[u];for(;++i<a;)(f||i<o)&&(l[n[i]]=t[i]);for(;s--;)l[u++]=t[i++];return l}function Pi(t,e,n,r){for(var i=-1,o=t.length,a=-1,u=n.length,c=-1,s=e.length,l=Vl(o-u,0),f=Zs(l+s),p=!r;++i<l;)f[i]=t[i];for(var h=i;++c<s;)f[h+c]=e[c];for(;++a<u;)(p||i<o)&&(f[h+n[a]]=t[i++]);return f}function Oi(t,e){var n=-1,r=t.length;for(e||(e=Zs(r));++n<r;)e[n]=t[n];return e}function Ii(t,e,n,r){var i=!n;n||(n={});for(var o=-1,a=e.length;++o<a;){var u=e[o],c=r?r(n[u],t[u],u,n,t):nt;c===nt&&(c=t[u]),i?Qn(n,u,c):Wn(n,u,c)}return n}function Di(t,e){return Ii(t,xf(t),e)}function Ri(t,e){return Ii(t,wf(t),e)}function Li(t,e){return function(n,r){var i=hp(n)?a:Gn,o=e?e():{};return i(n,t,mo(r,2),o)}}function Ui(t){return Jr(function(e,n){var r=-1,i=n.length,o=i>1?n[i-1]:nt,a=i>2?n[2]:nt;for(o=t.length>3&&\"function\"==typeof o?(i--,o):nt,a&&Po(n[0],n[1],a)&&(o=i<3?nt:o,i=1),e=rl(e);++r<i;){var u=n[r];u&&t(e,u,r,o)}return e})}function Fi(t,e){return function(n,r){if(null==n)return n;if(!Wu(n))return t(n,r);for(var i=n.length,o=e?i:-1,a=rl(n);(e?o--:++o<i)&&!1!==r(a[o],o,a););return n}}function ji(t){return function(e,n,r){for(var i=-1,o=rl(e),a=r(e),u=a.length;u--;){var c=a[t?u:++i];if(!1===n(o[c],c,o))break}return e}}function Bi(t,e,n){function r(){return(this&&this!==An&&this instanceof r?o:t).apply(i?n:this,arguments)}var i=e&dt,o=zi(t);return r}function Vi(t){return function(e){e=Cc(e);var n=V(e)?Z(e):nt,r=n?n[0]:e.charAt(0),i=n?xi(n,1).join(\"\"):e.slice(1);return r[t]()+i}}function Wi(t){return function(e){return v(xs(es(e).replace(pn,\"\")),t,\"\")}}function zi(t){return function(){var e=arguments;switch(e.length){case 0:return new t;case 1:return new t(e[0]);case 2:return new t(e[0],e[1]);case 3:return new t(e[0],e[1],e[2]);case 4:return new t(e[0],e[1],e[2],e[3]);case 5:return new t(e[0],e[1],e[2],e[3],e[4]);case 6:return new t(e[0],e[1],e[2],e[3],e[4],e[5]);case 7:return new t(e[0],e[1],e[2],e[3],e[4],e[5],e[6])}var n=lf(t.prototype),r=t.apply(n,e);return tc(r)?r:n}}function Hi(t,e,n){function r(){for(var a=arguments.length,u=Zs(a),c=a,s=go(r);c--;)u[c]=arguments[c];var l=a<3&&u[0]!==s&&u[a-1]!==s?[]:Y(u,s);return(a-=l.length)<n?eo(t,e,Ki,r.placeholder,nt,u,l,nt,nt,n-a):o(this&&this!==An&&this instanceof r?i:t,this,u)}var i=zi(t);return r}function qi(t){return function(e,n,r){var i=rl(e);if(!Wu(e)){var o=mo(n,3);e=Lc(e),n=function(t){return o(i[t],t,i)}}var a=t(e,n,r);return a>-1?i[o?e[a]:a]:nt}}function Yi(t){return fo(function(e){var n=e.length,r=n,o=i.prototype.thru;for(t&&e.reverse();r--;){var a=e[r];if(\"function\"!=typeof a)throw new al(ot);if(o&&!u&&\"wrapper\"==vo(a))var u=new i([],!0)}for(r=u?r:n;++r<n;){a=e[r];var c=vo(a),s=\"wrapper\"==c?bf(a):nt;u=s&&Do(s[0])&&s[1]==(xt|mt|_t|wt)&&!s[4].length&&1==s[9]?u[vo(s[0])].apply(u,s[3]):1==a.length&&Do(a)?u[c]():u.thru(a)}return function(){var t=arguments,r=t[0];if(u&&1==t.length&&hp(r))return u.plant(r).value();for(var i=0,o=n?e[i].apply(this,t):r;++i<n;)o=e[i].call(this,o);return o}})}function Ki(t,e,n,r,i,o,a,u,c,s){function l(){for(var m=arguments.length,y=Zs(m),_=m;_--;)y[_]=arguments[_];if(d)var b=go(l),x=F(y,b);if(r&&(y=Ai(y,r,i,d)),o&&(y=Pi(y,o,a,d)),m-=x,d&&m<s){var w=Y(y,b);return eo(t,e,Ki,l.placeholder,n,y,w,u,c,s-m)}var C=p?n:this,k=h?C[t]:t;return m=y.length,u?y=Ho(y,u):v&&m>1&&y.reverse(),f&&c<m&&(y.length=c),this&&this!==An&&this instanceof l&&(k=g||zi(k)),k.apply(C,y)}var f=e&xt,p=e&dt,h=e&vt,d=e&(mt|yt),v=e&Ct,g=h?nt:zi(t);return l}function Gi(t,e){return function(n,r){return xr(n,t,e(r),{})}}function $i(t,e){return function(n,r){var i;if(n===nt&&r===nt)return e;if(n!==nt&&(i=n),r!==nt){if(i===nt)return r;\"string\"==typeof n||\"string\"==typeof r?(n=li(n),r=li(r)):(n=si(n),r=si(r)),i=t(n,r)}return i}}function Xi(t){return fo(function(e){return e=h(e,I(mo())),Jr(function(n){var r=this;return t(e,function(t){return o(t,r,n)})})})}function Qi(t,e){e=e===nt?\" \":li(e);var n=e.length;if(n<2)return n?Zr(e,t):e;var r=Zr(e,Dl(t/Q(e)));return V(e)?xi(Z(r),0,t).join(\"\"):r.slice(0,t)}function Zi(t,e,n,r){function i(){for(var e=-1,c=arguments.length,s=-1,l=r.length,f=Zs(l+c),p=this&&this!==An&&this instanceof i?u:t;++s<l;)f[s]=r[s];for(;c--;)f[s++]=arguments[++e];return o(p,a?n:this,f)}var a=e&dt,u=zi(t);return i}function Ji(t){return function(e,n,r){return r&&\"number\"!=typeof r&&Po(e,n,r)&&(n=r=nt),e=mc(e),n===nt?(n=e,e=0):n=mc(n),r=r===nt?e<n?1:-1:mc(r),Qr(e,n,r,t)}}function to(t){return function(e,n){return\"string\"==typeof e&&\"string\"==typeof n||(e=bc(e),n=bc(n)),t(e,n)}}function eo(t,e,n,r,i,o,a,u,c,s){var l=e&mt,f=l?a:nt,p=l?nt:a,h=l?o:nt,d=l?nt:o;e|=l?_t:bt,(e&=~(l?bt:_t))&gt||(e&=~(dt|vt));var v=[t,e,i,h,f,d,p,u,c,s],g=n.apply(nt,v);return Do(t)&&Ef(g,v),g.placeholder=r,Yo(g,t,e)}function no(t){var e=nl[t];return function(t,n){if(t=bc(t),n=null==n?0:Wl(yc(n),292)){var r=(Cc(t)+\"e\").split(\"e\");return r=(Cc(e(r[0]+\"e\"+(+r[1]+n)))+\"e\").split(\"e\"),+(r[0]+\"e\"+(+r[1]-n))}return e(t)}}function ro(t){return function(e){var n=Cf(e);return n==Kt?H(e):n==Jt?G(e):O(e,t(e))}}function io(t,e,n,r,i,o,a,u){var c=e&vt;if(!c&&\"function\"!=typeof t)throw new al(ot);var s=r?r.length:0;if(s||(e&=~(_t|bt),r=i=nt),a=a===nt?a:Vl(yc(a),0),u=u===nt?u:yc(u),s-=i?i.length:0,e&bt){var l=r,f=i;r=i=nt}var p=c?nt:bf(t),h=[t,e,n,r,i,l,f,o,a,u];if(p&&jo(h,p),t=h[0],e=h[1],n=h[2],r=h[3],i=h[4],u=h[9]=h[9]===nt?c?0:t.length:Vl(h[9]-s,0),!u&&e&(mt|yt)&&(e&=~(mt|yt)),e&&e!=dt)d=e==mt||e==yt?Hi(t,e,u):e!=_t&&e!=(dt|_t)||i.length?Ki.apply(nt,h):Zi(t,e,n,r);else var d=Bi(t,e,n);return Yo((p?vf:Ef)(d,h),t,e)}function oo(t,e,n,r){return t===nt||Vu(t,sl[n])&&!pl.call(r,n)?e:t}function ao(t,e,n,r,i,o){return tc(t)&&tc(e)&&(o.set(e,t),Vr(t,e,nt,ao,o),o.delete(e)),t}function uo(t){return sc(t)?nt:t}function co(t,e,n,r,i,o){var a=n&pt,u=t.length,c=e.length;if(u!=c&&!(a&&c>u))return!1;var s=o.get(t);if(s&&o.get(e))return s==e;var l=-1,f=!0,p=n&ht?new dn:nt;for(o.set(t,e),o.set(e,t);++l<u;){var h=t[l],d=e[l];if(r)var v=a?r(d,h,l,e,t,o):r(h,d,l,t,e,o);if(v!==nt){if(v)continue;f=!1;break}if(p){if(!m(e,function(t,e){if(!R(p,e)&&(h===t||i(h,t,n,r,o)))return p.push(e)})){f=!1;break}}else if(h!==d&&!i(h,d,n,r,o)){f=!1;break}}return o.delete(t),o.delete(e),f}function so(t,e,n,r,i,o,a){switch(n){case ae:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case oe:return!(t.byteLength!=e.byteLength||!o(new xl(t),new xl(e)));case Vt:case Wt:case Gt:return Vu(+t,+e);case Ht:return t.name==e.name&&t.message==e.message;case Zt:case te:return t==e+\"\";case Kt:var u=H;case Jt:var c=r&pt;if(u||(u=K),t.size!=e.size&&!c)return!1;var s=a.get(t);if(s)return s==e;r|=ht,a.set(t,e);var l=co(u(t),u(e),r,i,o,a);return a.delete(t),l;case ee:if(cf)return cf.call(t)==cf.call(e)}return!1}function lo(t,e,n,r,i,o){var a=n&pt,u=po(t),c=u.length;if(c!=po(e).length&&!a)return!1;for(var s=c;s--;){var l=u[s];if(!(a?l in e:pl.call(e,l)))return!1}var f=o.get(t);if(f&&o.get(e))return f==e;var p=!0;o.set(t,e),o.set(e,t);for(var h=a;++s<c;){l=u[s];var d=t[l],v=e[l];if(r)var g=a?r(v,d,l,e,t,o):r(d,v,l,t,e,o);if(!(g===nt?d===v||i(d,v,n,r,o):g)){p=!1;break}h||(h=\"constructor\"==l)}if(p&&!h){var m=t.constructor,y=e.constructor;m!=y&&\"constructor\"in t&&\"constructor\"in e&&!(\"function\"==typeof m&&m instanceof m&&\"function\"==typeof y&&y instanceof y)&&(p=!1)}return o.delete(t),o.delete(e),p}function fo(t){return Tf(Wo(t,nt,sa),t+\"\")}function po(t){return dr(t,Lc,xf)}function ho(t){return dr(t,Uc,wf)}function vo(t){for(var e=t.name+\"\",n=tf[e],r=pl.call(tf,e)?n.length:0;r--;){var i=n[r],o=i.func;if(null==o||o==t)return i.name}return e}function go(t){return(pl.call(n,\"placeholder\")?n:t).placeholder}function mo(){var t=n.iteratee||Ts;return t=t===Ts?Dr:t,arguments.length?t(arguments[0],arguments[1]):t}function yo(t,e){var n=t.__data__;return Io(e)?n[\"string\"==typeof e?\"string\":\"hash\"]:n.map}function _o(t){for(var e=Lc(t),n=e.length;n--;){var r=e[n],i=t[r];e[n]=[r,i,Uo(i)]}return e}function bo(t,e){var n=B(t,e);return Ar(n)?n:nt}function xo(t){var e=pl.call(t,Nl),n=t[Nl];try{t[Nl]=nt;var r=!0}catch(t){}var i=vl.call(t);return r&&(e?t[Nl]=n:delete t[Nl]),i}function wo(t,e,n){for(var r=-1,i=n.length;++r<i;){var o=n[r],a=o.size;switch(o.type){case\"drop\":t+=a;break;case\"dropRight\":e-=a;break;case\"take\":e=Wl(e,t+a);break;case\"takeRight\":t=Vl(t,e-a)}}return{start:t,end:e}}function Co(t){var e=t.match(Re);return e?e[1].split(Le):[]}function ko(t,e,n){e=bi(e,t);for(var r=-1,i=e.length,o=!1;++r<i;){var a=$o(e[r]);if(!(o=null!=t&&n(t,a)))break;t=t[a]}return o||++r!=i?o:!!(i=null==t?0:t.length)&&Ju(i)&&Ao(a,i)&&(hp(t)||pp(t))}function Eo(t){var e=t.length,n=new t.constructor(e);return e&&\"string\"==typeof t[0]&&pl.call(t,\"index\")&&(n.index=t.index,n.input=t.input),n}function Mo(t){return\"function\"!=typeof t.constructor||Lo(t)?{}:lf(Cl(t))}function To(t,e,n){var r=t.constructor;switch(e){case oe:return Ci(t);case Vt:case Wt:return new r(+t);case ae:return ki(t,n);case ue:case ce:case se:case le:case fe:case pe:case he:case de:case ve:return Ti(t,n);case Kt:return new r;case Gt:case te:return new r(t);case Zt:return Ei(t);case Jt:return new r;case ee:return Mi(t)}}function So(t,e){var n=e.length;if(!n)return t;var r=n-1;return e[r]=(n>1?\"& \":\"\")+e[r],e=e.join(n>2?\", \":\" \"),t.replace(De,\"{\\n/* [wrapped with \"+e+\"] */\\n\")}function No(t){return hp(t)||pp(t)||!!(Tl&&t&&t[Tl])}function Ao(t,e){var n=typeof t;return!!(e=null==e?Pt:e)&&(\"number\"==n||\"symbol\"!=n&&qe.test(t))&&t>-1&&t%1==0&&t<e}function Po(t,e,n){if(!tc(n))return!1;var r=typeof e;return!!(\"number\"==r?Wu(n)&&Ao(e,n.length):\"string\"==r&&e in n)&&Vu(n[e],t)}function Oo(t,e){if(hp(t))return!1;var n=typeof t;return!(\"number\"!=n&&\"symbol\"!=n&&\"boolean\"!=n&&null!=t&&!pc(t))||(Te.test(t)||!Me.test(t)||null!=e&&t in rl(e))}function Io(t){var e=typeof t;return\"string\"==e||\"number\"==e||\"symbol\"==e||\"boolean\"==e?\"__proto__\"!==t:null===t}function Do(t){var e=vo(t),r=n[e];if(\"function\"!=typeof r||!(e in y.prototype))return!1;if(t===r)return!0;var i=bf(r);return!!i&&t===i[0]}function Ro(t){return!!dl&&dl in t}function Lo(t){var e=t&&t.constructor;return t===(\"function\"==typeof e&&e.prototype||sl)}function Uo(t){return t===t&&!tc(t)}function Fo(t,e){return function(n){return null!=n&&(n[t]===e&&(e!==nt||t in rl(n)))}}function jo(t,e){var n=t[1],r=e[1],i=n|r,o=i<(dt|vt|xt),a=r==xt&&n==mt||r==xt&&n==wt&&t[7].length<=e[8]||r==(xt|wt)&&e[7].length<=e[8]&&n==mt;if(!o&&!a)return t;r&dt&&(t[2]=e[2],i|=n&dt?0:gt);var u=e[3];if(u){var c=t[3];t[3]=c?Ai(c,u,e[4]):u,t[4]=c?Y(t[3],ct):e[4]}return u=e[5],u&&(c=t[5],t[5]=c?Pi(c,u,e[6]):u,t[6]=c?Y(t[5],ct):e[6]),u=e[7],u&&(t[7]=u),r&xt&&(t[8]=null==t[8]?e[8]:Wl(t[8],e[8])),null==t[9]&&(t[9]=e[9]),t[0]=e[0],t[1]=i,t}function Bo(t){var e=[];if(null!=t)for(var n in rl(t))e.push(n);return e}function Vo(t){return vl.call(t)}function Wo(t,e,n){return e=Vl(e===nt?t.length-1:e,0),function(){for(var r=arguments,i=-1,a=Vl(r.length-e,0),u=Zs(a);++i<a;)u[i]=r[e+i];i=-1;for(var c=Zs(e+1);++i<e;)c[i]=r[i];return c[e]=n(u),o(t,this,c)}}function zo(t,e){return e.length<2?t:hr(t,ii(e,0,-1))}function Ho(t,e){for(var n=t.length,r=Wl(e.length,n),i=Oi(t);r--;){var o=e[r];t[r]=Ao(o,n)?i[o]:nt}return t}function qo(t,e){if(\"__proto__\"!=e)return t[e]}function Yo(t,e,n){var r=e+\"\";return Tf(t,So(r,Qo(Co(r),n)))}function Ko(t){var e=0,n=0;return function(){var r=zl(),i=Tt-(r-n);if(n=r,i>0){if(++e>=Mt)return arguments[0]}else e=0;return t.apply(nt,arguments)}}function Go(t,e){var n=-1,r=t.length,i=r-1;for(e=e===nt?r:e;++n<e;){var o=Xr(n,i),a=t[o];t[o]=t[n],t[n]=a}return t.length=e,t}function $o(t){if(\"string\"==typeof t||pc(t))return t;var e=t+\"\";return\"0\"==e&&1/t==-At?\"-0\":e}function Xo(t){if(null!=t){try{return fl.call(t)}catch(t){}try{return t+\"\"}catch(t){}}return\"\"}function Qo(t,e){return u(Ut,function(n){var r=\"_.\"+n[0];e&n[1]&&!f(t,r)&&t.push(r)}),t.sort()}function Zo(t){if(t instanceof y)return t.clone();var e=new i(t.__wrapped__,t.__chain__);return e.__actions__=Oi(t.__actions__),e.__index__=t.__index__,e.__values__=t.__values__,e}function Jo(t,e,n){e=(n?Po(t,e,n):e===nt)?1:Vl(yc(e),0);var r=null==t?0:t.length;if(!r||e<1)return[];for(var i=0,o=0,a=Zs(Dl(r/e));i<r;)a[o++]=ii(t,i,i+=e);return a}function ta(t){for(var e=-1,n=null==t?0:t.length,r=0,i=[];++e<n;){var o=t[e];o&&(i[r++]=o)}return i}function ea(){var t=arguments.length;if(!t)return[];for(var e=Zs(t-1),n=arguments[0],r=t;r--;)e[r-1]=arguments[r];return d(hp(n)?Oi(n):[n],sr(e,1))}function na(t,e,n){var r=null==t?0:t.length;return r?(e=n||e===nt?1:yc(e),ii(t,e<0?0:e,r)):[]}function ra(t,e,n){var r=null==t?0:t.length;return r?(e=n||e===nt?1:yc(e),e=r-e,ii(t,0,e<0?0:e)):[]}function ia(t,e){return t&&t.length?di(t,mo(e,3),!0,!0):[]}function oa(t,e){return t&&t.length?di(t,mo(e,3),!0):[]}function aa(t,e,n,r){var i=null==t?0:t.length;return i?(n&&\"number\"!=typeof n&&Po(t,e,n)&&(n=0,r=i),ur(t,e,n,r)):[]}function ua(t,e,n){var r=null==t?0:t.length;if(!r)return-1;var i=null==n?0:yc(n);return i<0&&(i=Vl(r+i,0)),x(t,mo(e,3),i)}function ca(t,e,n){var r=null==t?0:t.length;if(!r)return-1;var i=r-1;return n!==nt&&(i=yc(n),i=n<0?Vl(r+i,0):Wl(i,r-1)),x(t,mo(e,3),i,!0)}function sa(t){return(null==t?0:t.length)?sr(t,1):[]}function la(t){return(null==t?0:t.length)?sr(t,At):[]}function fa(t,e){return(null==t?0:t.length)?(e=e===nt?1:yc(e),sr(t,e)):[]}function pa(t){for(var e=-1,n=null==t?0:t.length,r={};++e<n;){var i=t[e];r[i[0]]=i[1]}return r}function ha(t){return t&&t.length?t[0]:nt}function da(t,e,n){var r=null==t?0:t.length;if(!r)return-1;var i=null==n?0:yc(n);return i<0&&(i=Vl(r+i,0)),w(t,e,i)}function va(t){return(null==t?0:t.length)?ii(t,0,-1):[]}function ga(t,e){return null==t?\"\":jl.call(t,e)}function ma(t){var e=null==t?0:t.length;return e?t[e-1]:nt}function ya(t,e,n){var r=null==t?0:t.length;if(!r)return-1;var i=r;return n!==nt&&(i=yc(n),i=i<0?Vl(r+i,0):Wl(i,r-1)),e===e?X(t,e,i):x(t,k,i,!0)}function _a(t,e){return t&&t.length?zr(t,yc(e)):nt}function ba(t,e){return t&&t.length&&e&&e.length?Gr(t,e):t}function xa(t,e,n){return t&&t.length&&e&&e.length?Gr(t,e,mo(n,2)):t}function wa(t,e,n){return t&&t.length&&e&&e.length?Gr(t,e,nt,n):t}function Ca(t,e){var n=[];if(!t||!t.length)return n;var r=-1,i=[],o=t.length;for(e=mo(e,3);++r<o;){var a=t[r];e(a,r,t)&&(n.push(a),i.push(r))}return $r(t,i),n}function ka(t){return null==t?t:Yl.call(t)}function Ea(t,e,n){var r=null==t?0:t.length;return r?(n&&\"number\"!=typeof n&&Po(t,e,n)?(e=0,n=r):(e=null==e?0:yc(e),n=n===nt?r:yc(n)),ii(t,e,n)):[]}function Ma(t,e){return ai(t,e)}function Ta(t,e,n){return ui(t,e,mo(n,2))}function Sa(t,e){var n=null==t?0:t.length;if(n){var r=ai(t,e);if(r<n&&Vu(t[r],e))return r}return-1}function Na(t,e){return ai(t,e,!0)}function Aa(t,e,n){return ui(t,e,mo(n,2),!0)}function Pa(t,e){if(null==t?0:t.length){var n=ai(t,e,!0)-1;if(Vu(t[n],e))return n}return-1}function Oa(t){return t&&t.length?ci(t):[]}function Ia(t,e){return t&&t.length?ci(t,mo(e,2)):[]}function Da(t){var e=null==t?0:t.length;return e?ii(t,1,e):[]}function Ra(t,e,n){return t&&t.length?(e=n||e===nt?1:yc(e),ii(t,0,e<0?0:e)):[]}function La(t,e,n){var r=null==t?0:t.length;return r?(e=n||e===nt?1:yc(e),e=r-e,ii(t,e<0?0:e,r)):[]}function Ua(t,e){return t&&t.length?di(t,mo(e,3),!1,!0):[]}function Fa(t,e){return t&&t.length?di(t,mo(e,3)):[]}function ja(t){return t&&t.length?fi(t):[]}function Ba(t,e){return t&&t.length?fi(t,mo(e,2)):[]}function Va(t,e){return e=\"function\"==typeof e?e:nt,t&&t.length?fi(t,nt,e):[]}function Wa(t){if(!t||!t.length)return[];var e=0;return t=l(t,function(t){if(zu(t))return e=Vl(t.length,e),!0}),P(e,function(e){return h(t,M(e))})}function za(t,e){if(!t||!t.length)return[];var n=Wa(t);return null==e?n:h(n,function(t){return o(e,nt,t)})}function Ha(t,e){return mi(t||[],e||[],Wn)}function qa(t,e){return mi(t||[],e||[],ni)}function Ya(t){var e=n(t);return e.__chain__=!0,e}function Ka(t,e){return e(t),t}function Ga(t,e){return e(t)}function $a(){return Ya(this)}function Xa(){return new i(this.value(),this.__chain__)}function Qa(){this.__values__===nt&&(this.__values__=gc(this.value()));var t=this.__index__>=this.__values__.length;return{done:t,value:t?nt:this.__values__[this.__index__++]}}function Za(){return this}function Ja(t){for(var e,n=this;n instanceof r;){var i=Zo(n);i.__index__=0,i.__values__=nt,e?o.__wrapped__=i:e=i;var o=i;n=n.__wrapped__}return o.__wrapped__=t,e}function tu(){var t=this.__wrapped__;if(t instanceof y){var e=t;return this.__actions__.length&&(e=new y(this)),e=e.reverse(),e.__actions__.push({func:Ga,args:[ka],thisArg:nt}),new i(e,this.__chain__)}return this.thru(ka)}function eu(){return vi(this.__wrapped__,this.__actions__)}function nu(t,e,n){var r=hp(t)?s:or;return n&&Po(t,e,n)&&(e=nt),r(t,mo(e,3))}function ru(t,e){return(hp(t)?l:cr)(t,mo(e,3))}function iu(t,e){return sr(lu(t,e),1)}function ou(t,e){return sr(lu(t,e),At)}function au(t,e,n){return n=n===nt?1:yc(n),sr(lu(t,e),n)}function uu(t,e){return(hp(t)?u:ff)(t,mo(e,3))}function cu(t,e){return(hp(t)?c:pf)(t,mo(e,3))}function su(t,e,n,r){t=Wu(t)?t:$c(t),n=n&&!r?yc(n):0;var i=t.length;return n<0&&(n=Vl(i+n,0)),fc(t)?n<=i&&t.indexOf(e,n)>-1:!!i&&w(t,e,n)>-1}function lu(t,e){return(hp(t)?h:Fr)(t,mo(e,3))}function fu(t,e,n,r){return null==t?[]:(hp(e)||(e=null==e?[]:[e]),n=r?nt:n,hp(n)||(n=null==n?[]:[n]),Hr(t,e,n))}function pu(t,e,n){var r=hp(t)?v:S,i=arguments.length<3;return r(t,mo(e,4),n,i,ff)}function hu(t,e,n){var r=hp(t)?g:S,i=arguments.length<3;return r(t,mo(e,4),n,i,pf)}function du(t,e){return(hp(t)?l:cr)(t,Su(mo(e,3)))}function vu(t){return(hp(t)?Pn:ti)(t)}function gu(t,e,n){return e=(n?Po(t,e,n):e===nt)?1:yc(e),(hp(t)?On:ei)(t,e)}function mu(t){return(hp(t)?Dn:ri)(t)}function yu(t){if(null==t)return 0;if(Wu(t))return fc(t)?Q(t):t.length;var e=Cf(t);return e==Kt||e==Jt?t.size:Rr(t).length}function _u(t,e,n){var r=hp(t)?m:oi;return n&&Po(t,e,n)&&(e=nt),r(t,mo(e,3))}function bu(t,e){if(\"function\"!=typeof e)throw new al(ot);return t=yc(t),function(){if(--t<1)return e.apply(this,arguments)}}function xu(t,e,n){return e=n?nt:e,e=t&&null==e?t.length:e,io(t,xt,nt,nt,nt,nt,e)}function wu(t,e){var n;if(\"function\"!=typeof e)throw new al(ot);return t=yc(t),function(){return--t>0&&(n=e.apply(this,arguments)),t<=1&&(e=nt),n}}function Cu(t,e,n){e=n?nt:e;var r=io(t,mt,nt,nt,nt,nt,nt,e);return r.placeholder=Cu.placeholder,r}function ku(t,e,n){e=n?nt:e;var r=io(t,yt,nt,nt,nt,nt,nt,e);return r.placeholder=ku.placeholder,r}function Eu(t,e,n){function r(e){var n=p,r=h;return p=h=nt,y=e,v=t.apply(r,n)}function i(t){return y=t,g=Mf(u,e),_?r(t):v}function o(t){var n=t-m,r=t-y,i=e-n;return b?Wl(i,d-r):i}function a(t){var n=t-m,r=t-y;return m===nt||n>=e||n<0||b&&r>=d}function u(){var t=ep();if(a(t))return c(t);g=Mf(u,o(t))}function c(t){return g=nt,x&&p?r(t):(p=h=nt,v)}function s(){g!==nt&&yf(g),y=0,p=m=h=g=nt}function l(){return g===nt?v:c(ep())}function f(){var t=ep(),n=a(t);if(p=arguments,h=this,m=t,n){if(g===nt)return i(m);if(b)return g=Mf(u,e),r(m)}return g===nt&&(g=Mf(u,e)),v}var p,h,d,v,g,m,y=0,_=!1,b=!1,x=!0;if(\"function\"!=typeof t)throw new al(ot);return e=bc(e)||0,tc(n)&&(_=!!n.leading,b=\"maxWait\"in n,d=b?Vl(bc(n.maxWait)||0,e):d,x=\"trailing\"in n?!!n.trailing:x),f.cancel=s,f.flush=l,f}function Mu(t){return io(t,Ct)}function Tu(t,e){if(\"function\"!=typeof t||null!=e&&\"function\"!=typeof e)throw new al(ot);var n=function(){var r=arguments,i=e?e.apply(this,r):r[0],o=n.cache;if(o.has(i))return o.get(i);var a=t.apply(this,r);return n.cache=o.set(i,a)||o,a};return n.cache=new(Tu.Cache||an),n}function Su(t){if(\"function\"!=typeof t)throw new al(ot);return function(){var e=arguments;switch(e.length){case 0:return!t.call(this);case 1:return!t.call(this,e[0]);case 2:return!t.call(this,e[0],e[1]);case 3:return!t.call(this,e[0],e[1],e[2])}return!t.apply(this,e)}}function Nu(t){return wu(2,t)}function Au(t,e){if(\"function\"!=typeof t)throw new al(ot);return e=e===nt?e:yc(e),Jr(t,e)}function Pu(t,e){if(\"function\"!=typeof t)throw new al(ot);return e=null==e?0:Vl(yc(e),0),Jr(function(n){var r=n[e],i=xi(n,0,e);return r&&d(i,r),o(t,this,i)})}function Ou(t,e,n){var r=!0,i=!0;if(\"function\"!=typeof t)throw new al(ot);return tc(n)&&(r=\"leading\"in n?!!n.leading:r,i=\"trailing\"in n?!!n.trailing:i),Eu(t,e,{leading:r,maxWait:e,trailing:i})}function Iu(t){return xu(t,1)}function Du(t,e){return up(_i(e),t)}function Ru(){if(!arguments.length)return[];var t=arguments[0];return hp(t)?t:[t]}function Lu(t){return tr(t,ft)}function Uu(t,e){return e=\"function\"==typeof e?e:nt,tr(t,ft,e)}function Fu(t){return tr(t,st|ft)}function ju(t,e){return e=\"function\"==typeof e?e:nt,tr(t,st|ft,e)}function Bu(t,e){return null==e||nr(t,e,Lc(e))}function Vu(t,e){return t===e||t!==t&&e!==e}function Wu(t){return null!=t&&Ju(t.length)&&!Qu(t)}function zu(t){return ec(t)&&Wu(t)}function Hu(t){return!0===t||!1===t||ec(t)&&vr(t)==Vt}function qu(t){return ec(t)&&1===t.nodeType&&!sc(t)}function Yu(t){if(null==t)return!0;if(Wu(t)&&(hp(t)||\"string\"==typeof t||\"function\"==typeof t.splice||vp(t)||bp(t)||pp(t)))return!t.length;var e=Cf(t);if(e==Kt||e==Jt)return!t.size;if(Lo(t))return!Rr(t).length;for(var n in t)if(pl.call(t,n))return!1;return!0}function Ku(t,e){return Mr(t,e)}function Gu(t,e,n){n=\"function\"==typeof n?n:nt;var r=n?n(t,e):nt;return r===nt?Mr(t,e,nt,n):!!r}function $u(t){if(!ec(t))return!1;var e=vr(t);return e==Ht||e==zt||\"string\"==typeof t.message&&\"string\"==typeof t.name&&!sc(t)}function Xu(t){return\"number\"==typeof t&&Fl(t)}function Qu(t){if(!tc(t))return!1;var e=vr(t);return e==qt||e==Yt||e==Bt||e==Qt}function Zu(t){return\"number\"==typeof t&&t==yc(t)}function Ju(t){return\"number\"==typeof t&&t>-1&&t%1==0&&t<=Pt}function tc(t){var e=typeof t;return null!=t&&(\"object\"==e||\"function\"==e)}function ec(t){return null!=t&&\"object\"==typeof t}function nc(t,e){return t===e||Nr(t,e,_o(e))}function rc(t,e,n){return n=\"function\"==typeof n?n:nt,Nr(t,e,_o(e),n)}function ic(t){return cc(t)&&t!=+t}function oc(t){if(kf(t))throw new tl(it);return Ar(t)}function ac(t){return null===t}function uc(t){return null==t}function cc(t){return\"number\"==typeof t||ec(t)&&vr(t)==Gt}function sc(t){if(!ec(t)||vr(t)!=Xt)return!1;var e=Cl(t);if(null===e)return!0;var n=pl.call(e,\"constructor\")&&e.constructor;return\"function\"==typeof n&&n instanceof n&&fl.call(n)==gl}function lc(t){return Zu(t)&&t>=-Pt&&t<=Pt}function fc(t){return\"string\"==typeof t||!hp(t)&&ec(t)&&vr(t)==te}function pc(t){return\"symbol\"==typeof t||ec(t)&&vr(t)==ee}function hc(t){return t===nt}function dc(t){return ec(t)&&Cf(t)==re}function vc(t){return ec(t)&&vr(t)==ie}function gc(t){if(!t)return[];if(Wu(t))return fc(t)?Z(t):Oi(t);if(Sl&&t[Sl])return z(t[Sl]());var e=Cf(t);return(e==Kt?H:e==Jt?K:$c)(t)}function mc(t){if(!t)return 0===t?t:0;if((t=bc(t))===At||t===-At){return(t<0?-1:1)*Ot}return t===t?t:0}function yc(t){var e=mc(t),n=e%1;return e===e?n?e-n:e:0}function _c(t){return t?Jn(yc(t),0,Dt):0}function bc(t){if(\"number\"==typeof t)return t;if(pc(t))return It;if(tc(t)){var e=\"function\"==typeof t.valueOf?t.valueOf():t;t=tc(e)?e+\"\":e}if(\"string\"!=typeof t)return 0===t?t:+t;t=t.replace(Pe,\"\");var n=We.test(t);return n||He.test(t)?Tn(t.slice(2),n?2:8):Ve.test(t)?It:+t}function xc(t){return Ii(t,Uc(t))}function wc(t){return t?Jn(yc(t),-Pt,Pt):0===t?t:0}function Cc(t){return null==t?\"\":li(t)}function kc(t,e){var n=lf(t);return null==e?n:$n(n,e)}function Ec(t,e){return b(t,mo(e,3),lr)}function Mc(t,e){return b(t,mo(e,3),fr)}function Tc(t,e){return null==t?t:hf(t,mo(e,3),Uc)}function Sc(t,e){return null==t?t:df(t,mo(e,3),Uc)}function Nc(t,e){return t&&lr(t,mo(e,3))}function Ac(t,e){return t&&fr(t,mo(e,3))}function Pc(t){return null==t?[]:pr(t,Lc(t))}function Oc(t){return null==t?[]:pr(t,Uc(t))}function Ic(t,e,n){var r=null==t?nt:hr(t,e);return r===nt?n:r}function Dc(t,e){return null!=t&&ko(t,e,mr)}function Rc(t,e){return null!=t&&ko(t,e,yr)}function Lc(t){return Wu(t)?Nn(t):Rr(t)}function Uc(t){return Wu(t)?Nn(t,!0):Lr(t)}function Fc(t,e){var n={};return e=mo(e,3),lr(t,function(t,r,i){Qn(n,e(t,r,i),t)}),n}function jc(t,e){var n={};return e=mo(e,3),lr(t,function(t,r,i){Qn(n,r,e(t,r,i))}),n}function Bc(t,e){return Vc(t,Su(mo(e)))}function Vc(t,e){if(null==t)return{};var n=h(ho(t),function(t){return[t]});return e=mo(e),Yr(t,n,function(t,n){return e(t,n[0])})}function Wc(t,e,n){e=bi(e,t);var r=-1,i=e.length;for(i||(i=1,t=nt);++r<i;){var o=null==t?nt:t[$o(e[r])];o===nt&&(r=i,o=n),t=Qu(o)?o.call(t):o}return t}function zc(t,e,n){return null==t?t:ni(t,e,n)}function Hc(t,e,n,r){return r=\"function\"==typeof r?r:nt,null==t?t:ni(t,e,n,r)}function qc(t,e,n){var r=hp(t),i=r||vp(t)||bp(t);if(e=mo(e,4),null==n){var o=t&&t.constructor;n=i?r?new o:[]:tc(t)&&Qu(o)?lf(Cl(t)):{}}return(i?u:lr)(t,function(t,r,i){return e(n,t,r,i)}),n}function Yc(t,e){return null==t||pi(t,e)}function Kc(t,e,n){return null==t?t:hi(t,e,_i(n))}function Gc(t,e,n,r){return r=\"function\"==typeof r?r:nt,null==t?t:hi(t,e,_i(n),r)}function $c(t){return null==t?[]:D(t,Lc(t))}function Xc(t){return null==t?[]:D(t,Uc(t))}function Qc(t,e,n){return n===nt&&(n=e,e=nt),n!==nt&&(n=bc(n),n=n===n?n:0),e!==nt&&(e=bc(e),e=e===e?e:0),Jn(bc(t),e,n)}function Zc(t,e,n){return e=mc(e),n===nt?(n=e,e=0):n=mc(n),t=bc(t),_r(t,e,n)}function Jc(t,e,n){if(n&&\"boolean\"!=typeof n&&Po(t,e,n)&&(e=n=nt),n===nt&&(\"boolean\"==typeof e?(n=e,e=nt):\"boolean\"==typeof t&&(n=t,t=nt)),t===nt&&e===nt?(t=0,e=1):(t=mc(t),e===nt?(e=t,t=0):e=mc(e)),t>e){var r=t;t=e,e=r}if(n||t%1||e%1){var i=ql();return Wl(t+i*(e-t+Mn(\"1e-\"+((i+\"\").length-1))),e)}return Xr(t,e)}function ts(t){return Yp(Cc(t).toLowerCase())}function es(t){return(t=Cc(t))&&t.replace(Ye,zn).replace(hn,\"\")}function ns(t,e,n){t=Cc(t),e=li(e);var r=t.length;n=n===nt?r:Jn(yc(n),0,r);var i=n;return(n-=e.length)>=0&&t.slice(n,i)==e}function rs(t){return t=Cc(t),t&&we.test(t)?t.replace(be,Hn):t}function is(t){return t=Cc(t),t&&Ae.test(t)?t.replace(Ne,\"\\\\$&\"):t}function os(t,e,n){t=Cc(t),e=yc(e);var r=e?Q(t):0;if(!e||r>=e)return t;var i=(e-r)/2;return Qi(Rl(i),n)+t+Qi(Dl(i),n)}function as(t,e,n){t=Cc(t),e=yc(e);var r=e?Q(t):0;return e&&r<e?t+Qi(e-r,n):t}function us(t,e,n){t=Cc(t),e=yc(e);var r=e?Q(t):0;return e&&r<e?Qi(e-r,n)+t:t}function cs(t,e,n){return n||null==e?e=0:e&&(e=+e),Hl(Cc(t).replace(Oe,\"\"),e||0)}function ss(t,e,n){return e=(n?Po(t,e,n):e===nt)?1:yc(e),Zr(Cc(t),e)}function ls(){var t=arguments,e=Cc(t[0]);return t.length<3?e:e.replace(t[1],t[2])}function fs(t,e,n){return n&&\"number\"!=typeof n&&Po(t,e,n)&&(e=n=nt),(n=n===nt?Dt:n>>>0)?(t=Cc(t),t&&(\"string\"==typeof e||null!=e&&!yp(e))&&!(e=li(e))&&V(t)?xi(Z(t),0,n):t.split(e,n)):[]}function ps(t,e,n){return t=Cc(t),n=null==n?0:Jn(yc(n),0,t.length),e=li(e),t.slice(n,n+e.length)==e}function hs(t,e,r){var i=n.templateSettings;r&&Po(t,e,r)&&(e=nt),t=Cc(t),e=Ep({},e,i,oo);var o,a,u=Ep({},e.imports,i.imports,oo),c=Lc(u),s=D(u,c),l=0,f=e.interpolate||Ke,p=\"__p += '\",h=il((e.escape||Ke).source+\"|\"+f.source+\"|\"+(f===Ee?je:Ke).source+\"|\"+(e.evaluate||Ke).source+\"|$\",\"g\"),d=\"//# sourceURL=\"+(\"sourceURL\"in e?e.sourceURL:\"lodash.templateSources[\"+ ++_n+\"]\")+\"\\n\";t.replace(h,function(e,n,r,i,u,c){return r||(r=i),p+=t.slice(l,c).replace(Ge,j),n&&(o=!0,p+=\"' +\\n__e(\"+n+\") +\\n'\"),u&&(a=!0,p+=\"';\\n\"+u+\";\\n__p += '\"),r&&(p+=\"' +\\n((__t = (\"+r+\")) == null ? '' : __t) +\\n'\"),l=c+e.length,e}),p+=\"';\\n\";var v=e.variable;v||(p=\"with (obj) {\\n\"+p+\"\\n}\\n\"),p=(a?p.replace(ge,\"\"):p).replace(me,\"$1\").replace(ye,\"$1;\"),p=\"function(\"+(v||\"obj\")+\") {\\n\"+(v?\"\":\"obj || (obj = {});\\n\")+\"var __t, __p = ''\"+(o?\", __e = _.escape\":\"\")+(a?\", __j = Array.prototype.join;\\nfunction print() { __p += __j.call(arguments, '') }\\n\":\";\\n\")+p+\"return __p\\n}\";var g=Kp(function(){return el(c,d+\"return \"+p).apply(nt,s)});if(g.source=p,$u(g))throw g;return g}function ds(t){return Cc(t).toLowerCase()}function vs(t){return Cc(t).toUpperCase()}function gs(t,e,n){if((t=Cc(t))&&(n||e===nt))return t.replace(Pe,\"\");if(!t||!(e=li(e)))return t;var r=Z(t),i=Z(e);return xi(r,L(r,i),U(r,i)+1).join(\"\")}function ms(t,e,n){if((t=Cc(t))&&(n||e===nt))return t.replace(Ie,\"\");if(!t||!(e=li(e)))return t;var r=Z(t);return xi(r,0,U(r,Z(e))+1).join(\"\")}function ys(t,e,n){if((t=Cc(t))&&(n||e===nt))return t.replace(Oe,\"\");if(!t||!(e=li(e)))return t;var r=Z(t);return xi(r,L(r,Z(e))).join(\"\")}function _s(t,e){var n=kt,r=Et;if(tc(e)){var i=\"separator\"in e?e.separator:i;n=\"length\"in e?yc(e.length):n,r=\"omission\"in e?li(e.omission):r}t=Cc(t);var o=t.length;if(V(t)){var a=Z(t);o=a.length}if(n>=o)return t;var u=n-Q(r);if(u<1)return r;var c=a?xi(a,0,u).join(\"\"):t.slice(0,u);if(i===nt)return c+r;if(a&&(u+=c.length-u),yp(i)){if(t.slice(u).search(i)){var s,l=c;for(i.global||(i=il(i.source,Cc(Be.exec(i))+\"g\")),i.lastIndex=0;s=i.exec(l);)var f=s.index;c=c.slice(0,f===nt?u:f)}}else if(t.indexOf(li(i),u)!=u){var p=c.lastIndexOf(i);p>-1&&(c=c.slice(0,p))}return c+r}function bs(t){return t=Cc(t),t&&xe.test(t)?t.replace(_e,qn):t}function xs(t,e,n){return t=Cc(t),e=n?nt:e,e===nt?W(t)?et(t):_(t):t.match(e)||[]}function ws(t){var e=null==t?0:t.length,n=mo();return t=e?h(t,function(t){if(\"function\"!=typeof t[1])throw new al(ot);return[n(t[0]),t[1]]}):[],Jr(function(n){for(var r=-1;++r<e;){var i=t[r];if(o(i[0],this,n))return o(i[1],this,n)}})}function Cs(t){return er(tr(t,st))}function ks(t){return function(){return t}}function Es(t,e){return null==t||t!==t?e:t}function Ms(t){return t}function Ts(t){return Dr(\"function\"==typeof t?t:tr(t,st))}function Ss(t){return jr(tr(t,st))}function Ns(t,e){return Br(t,tr(e,st))}function As(t,e,n){var r=Lc(e),i=pr(e,r);null!=n||tc(e)&&(i.length||!r.length)||(n=e,e=t,t=this,i=pr(e,Lc(e)));var o=!(tc(n)&&\"chain\"in n&&!n.chain),a=Qu(t);return u(i,function(n){var r=e[n];t[n]=r,a&&(t.prototype[n]=function(){var e=this.__chain__;if(o||e){var n=t(this.__wrapped__);return(n.__actions__=Oi(this.__actions__)).push({func:r,args:arguments,thisArg:t}),n.__chain__=e,n}return r.apply(t,d([this.value()],arguments))})}),t}function Ps(){return An._===this&&(An._=ml),this}function Os(){}function Is(t){return t=yc(t),Jr(function(e){return zr(e,t)})}function Ds(t){return Oo(t)?M($o(t)):Kr(t)}function Rs(t){return function(e){return null==t?nt:hr(t,e)}}function Ls(){return[]}function Us(){return!1}function Fs(){return{}}function js(){return\"\"}function Bs(){return!0}function Vs(t,e){if((t=yc(t))<1||t>Pt)return[];var n=Dt,r=Wl(t,Dt);e=mo(e),t-=Dt;for(var i=P(r,e);++n<t;)e(n);return i}function Ws(t){return hp(t)?h(t,$o):pc(t)?[t]:Oi(Sf(Cc(t)))}function zs(t){var e=++hl;return Cc(t)+e}function Hs(t){return t&&t.length?ar(t,Ms,gr):nt}function qs(t,e){return t&&t.length?ar(t,mo(e,2),gr):nt}function Ys(t){return E(t,Ms)}function Ks(t,e){return E(t,mo(e,2))}function Gs(t){return t&&t.length?ar(t,Ms,Ur):nt}function $s(t,e){return t&&t.length?ar(t,mo(e,2),Ur):nt}function Xs(t){return t&&t.length?A(t,Ms):0}function Qs(t,e){return t&&t.length?A(t,mo(e,2)):0}e=null==e?An:Yn.defaults(An.Object(),e,Yn.pick(An,yn));var Zs=e.Array,Js=e.Date,tl=e.Error,el=e.Function,nl=e.Math,rl=e.Object,il=e.RegExp,ol=e.String,al=e.TypeError,ul=Zs.prototype,cl=el.prototype,sl=rl.prototype,ll=e[\"__core-js_shared__\"],fl=cl.toString,pl=sl.hasOwnProperty,hl=0,dl=function(){var t=/[^.]+$/.exec(ll&&ll.keys&&ll.keys.IE_PROTO||\"\");return t?\"Symbol(src)_1.\"+t:\"\"}(),vl=sl.toString,gl=fl.call(rl),ml=An._,yl=il(\"^\"+fl.call(pl).replace(Ne,\"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g,\"$1.*?\")+\"$\"),_l=In?e.Buffer:nt,bl=e.Symbol,xl=e.Uint8Array,wl=_l?_l.allocUnsafe:nt,Cl=q(rl.getPrototypeOf,rl),kl=rl.create,El=sl.propertyIsEnumerable,Ml=ul.splice,Tl=bl?bl.isConcatSpreadable:nt,Sl=bl?bl.iterator:nt,Nl=bl?bl.toStringTag:nt,Al=function(){try{var t=bo(rl,\"defineProperty\");return t({},\"\",{}),t}catch(t){}}(),Pl=e.clearTimeout!==An.clearTimeout&&e.clearTimeout,Ol=Js&&Js.now!==An.Date.now&&Js.now,Il=e.setTimeout!==An.setTimeout&&e.setTimeout,Dl=nl.ceil,Rl=nl.floor,Ll=rl.getOwnPropertySymbols,Ul=_l?_l.isBuffer:nt,Fl=e.isFinite,jl=ul.join,Bl=q(rl.keys,rl),Vl=nl.max,Wl=nl.min,zl=Js.now,Hl=e.parseInt,ql=nl.random,Yl=ul.reverse,Kl=bo(e,\"DataView\"),Gl=bo(e,\"Map\"),$l=bo(e,\"Promise\"),Xl=bo(e,\"Set\"),Ql=bo(e,\"WeakMap\"),Zl=bo(rl,\"create\"),Jl=Ql&&new Ql,tf={},ef=Xo(Kl),nf=Xo(Gl),rf=Xo($l),of=Xo(Xl),af=Xo(Ql),uf=bl?bl.prototype:nt,cf=uf?uf.valueOf:nt,sf=uf?uf.toString:nt,lf=function(){function t(){}return function(e){if(!tc(e))return{};if(kl)return kl(e);t.prototype=e;var n=new t;return t.prototype=nt,n}}();n.templateSettings={escape:Ce,evaluate:ke,interpolate:Ee,variable:\"\",imports:{_:n}},n.prototype=r.prototype,n.prototype.constructor=n,i.prototype=lf(r.prototype),i.prototype.constructor=i,y.prototype=lf(r.prototype),y.prototype.constructor=y,tt.prototype.clear=Ue,tt.prototype.delete=$e,tt.prototype.get=Xe,tt.prototype.has=Qe,tt.prototype.set=Ze,Je.prototype.clear=tn,Je.prototype.delete=en,Je.prototype.get=nn,Je.prototype.has=rn,Je.prototype.set=on,an.prototype.clear=un,an.prototype.delete=cn,an.prototype.get=sn,an.prototype.has=ln,an.prototype.set=fn,dn.prototype.add=dn.prototype.push=vn,dn.prototype.has=gn,mn.prototype.clear=wn,mn.prototype.delete=Cn,mn.prototype.get=kn,mn.prototype.has=En,mn.prototype.set=Sn;var ff=Fi(lr),pf=Fi(fr,!0),hf=ji(),df=ji(!0),vf=Jl?function(t,e){return Jl.set(t,e),t}:Ms,gf=Al?function(t,e){return Al(t,\"toString\",{configurable:!0,enumerable:!1,value:ks(e),writable:!0})}:Ms,mf=Jr,yf=Pl||function(t){return An.clearTimeout(t)},_f=Xl&&1/K(new Xl([,-0]))[1]==At?function(t){return new Xl(t)}:Os,bf=Jl?function(t){return Jl.get(t)}:Os,xf=Ll?function(t){return null==t?[]:(t=rl(t),l(Ll(t),function(e){return El.call(t,e)}))}:Ls,wf=Ll?function(t){for(var e=[];t;)d(e,xf(t)),t=Cl(t);return e}:Ls,Cf=vr;(Kl&&Cf(new Kl(new ArrayBuffer(1)))!=ae||Gl&&Cf(new Gl)!=Kt||$l&&\"[object Promise]\"!=Cf($l.resolve())||Xl&&Cf(new Xl)!=Jt||Ql&&Cf(new Ql)!=re)&&(Cf=function(t){var e=vr(t),n=e==Xt?t.constructor:nt,r=n?Xo(n):\"\";if(r)switch(r){case ef:return ae;case nf:return Kt;case rf:return\"[object Promise]\";case of:return Jt;case af:return re}return e});var kf=ll?Qu:Us,Ef=Ko(vf),Mf=Il||function(t,e){return An.setTimeout(t,e)},Tf=Ko(gf),Sf=function(t){var e=Tu(t,function(t){return n.size===ut&&n.clear(),t}),n=e.cache;return e}(function(t){var e=[];return 46===t.charCodeAt(0)&&e.push(\"\"),t.replace(Se,function(t,n,r,i){e.push(r?i.replace(Fe,\"$1\"):n||t)}),e}),Nf=Jr(function(t,e){return zu(t)?ir(t,sr(e,1,zu,!0)):[]}),Af=Jr(function(t,e){var n=ma(e);return zu(n)&&(n=nt),zu(t)?ir(t,sr(e,1,zu,!0),mo(n,2)):[]}),Pf=Jr(function(t,e){var n=ma(e);return zu(n)&&(n=nt),zu(t)?ir(t,sr(e,1,zu,!0),nt,n):[]}),Of=Jr(function(t){var e=h(t,yi);return e.length&&e[0]===t[0]?br(e):[]}),If=Jr(function(t){var e=ma(t),n=h(t,yi);return e===ma(n)?e=nt:n.pop(),n.length&&n[0]===t[0]?br(n,mo(e,2)):[]}),Df=Jr(function(t){var e=ma(t),n=h(t,yi);return e=\"function\"==typeof e?e:nt,e&&n.pop(),n.length&&n[0]===t[0]?br(n,nt,e):[]}),Rf=Jr(ba),Lf=fo(function(t,e){var n=null==t?0:t.length,r=Zn(t,e);return $r(t,h(e,function(t){return Ao(t,n)?+t:t}).sort(Si)),r}),Uf=Jr(function(t){return fi(sr(t,1,zu,!0))}),Ff=Jr(function(t){var e=ma(t);return zu(e)&&(e=nt),fi(sr(t,1,zu,!0),mo(e,2))}),jf=Jr(function(t){var e=ma(t);return e=\"function\"==typeof e?e:nt,fi(sr(t,1,zu,!0),nt,e)}),Bf=Jr(function(t,e){return zu(t)?ir(t,e):[]}),Vf=Jr(function(t){return gi(l(t,zu))}),Wf=Jr(function(t){var e=ma(t);return zu(e)&&(e=nt),gi(l(t,zu),mo(e,2))}),zf=Jr(function(t){var e=ma(t);return e=\"function\"==typeof e?e:nt,gi(l(t,zu),nt,e)}),Hf=Jr(Wa),qf=Jr(function(t){var e=t.length,n=e>1?t[e-1]:nt;return n=\"function\"==typeof n?(t.pop(),n):nt,za(t,n)}),Yf=fo(function(t){var e=t.length,n=e?t[0]:0,r=this.__wrapped__,o=function(e){return Zn(e,t)};return!(e>1||this.__actions__.length)&&r instanceof y&&Ao(n)?(r=r.slice(n,+n+(e?1:0)),r.__actions__.push({func:Ga,args:[o],thisArg:nt}),new i(r,this.__chain__).thru(function(t){return e&&!t.length&&t.push(nt),t})):this.thru(o)}),Kf=Li(function(t,e,n){pl.call(t,n)?++t[n]:Qn(t,n,1)}),Gf=qi(ua),$f=qi(ca),Xf=Li(function(t,e,n){pl.call(t,n)?t[n].push(e):Qn(t,n,[e])}),Qf=Jr(function(t,e,n){var r=-1,i=\"function\"==typeof e,a=Wu(t)?Zs(t.length):[];return ff(t,function(t){a[++r]=i?o(e,t,n):wr(t,e,n)}),a}),Zf=Li(function(t,e,n){Qn(t,n,e)}),Jf=Li(function(t,e,n){t[n?0:1].push(e)},function(){return[[],[]]}),tp=Jr(function(t,e){if(null==t)return[];var n=e.length;return n>1&&Po(t,e[0],e[1])?e=[]:n>2&&Po(e[0],e[1],e[2])&&(e=[e[0]]),Hr(t,sr(e,1),[])}),ep=Ol||function(){return An.Date.now()},np=Jr(function(t,e,n){var r=dt;if(n.length){var i=Y(n,go(np));r|=_t}return io(t,r,e,n,i)}),rp=Jr(function(t,e,n){var r=dt|vt;if(n.length){var i=Y(n,go(rp));r|=_t}return io(e,r,t,n,i)}),ip=Jr(function(t,e){return rr(t,1,e)}),op=Jr(function(t,e,n){return rr(t,bc(e)||0,n)});Tu.Cache=an;var ap=mf(function(t,e){e=1==e.length&&hp(e[0])?h(e[0],I(mo())):h(sr(e,1),I(mo()));var n=e.length;return Jr(function(r){for(var i=-1,a=Wl(r.length,n);++i<a;)r[i]=e[i].call(this,r[i]);return o(t,this,r)})}),up=Jr(function(t,e){var n=Y(e,go(up));return io(t,_t,nt,e,n)}),cp=Jr(function(t,e){var n=Y(e,go(cp));return io(t,bt,nt,e,n)}),sp=fo(function(t,e){return io(t,wt,nt,nt,nt,e)}),lp=to(gr),fp=to(function(t,e){return t>=e}),pp=Cr(function(){return arguments}())?Cr:function(t){return ec(t)&&pl.call(t,\"callee\")&&!El.call(t,\"callee\")},hp=Zs.isArray,dp=Ln?I(Ln):kr,vp=Ul||Us,gp=Un?I(Un):Er,mp=Fn?I(Fn):Sr,yp=jn?I(jn):Pr,_p=Bn?I(Bn):Or,bp=Vn?I(Vn):Ir,xp=to(Ur),wp=to(function(t,e){return t<=e}),Cp=Ui(function(t,e){if(Lo(e)||Wu(e))return void Ii(e,Lc(e),t);for(var n in e)pl.call(e,n)&&Wn(t,n,e[n])}),kp=Ui(function(t,e){Ii(e,Uc(e),t)}),Ep=Ui(function(t,e,n,r){Ii(e,Uc(e),t,r)}),Mp=Ui(function(t,e,n,r){Ii(e,Lc(e),t,r)}),Tp=fo(Zn),Sp=Jr(function(t,e){t=rl(t);var n=-1,r=e.length,i=r>2?e[2]:nt;for(i&&Po(e[0],e[1],i)&&(r=1);++n<r;)for(var o=e[n],a=Uc(o),u=-1,c=a.length;++u<c;){var s=a[u],l=t[s];(l===nt||Vu(l,sl[s])&&!pl.call(t,s))&&(t[s]=o[s])}return t}),Np=Jr(function(t){return t.push(nt,ao),o(Dp,nt,t)}),Ap=Gi(function(t,e,n){null!=e&&\"function\"!=typeof e.toString&&(e=vl.call(e)),t[e]=n},ks(Ms)),Pp=Gi(function(t,e,n){null!=e&&\"function\"!=typeof e.toString&&(e=vl.call(e)),pl.call(t,e)?t[e].push(n):t[e]=[n]},mo),Op=Jr(wr),Ip=Ui(function(t,e,n){Vr(t,e,n)}),Dp=Ui(function(t,e,n,r){Vr(t,e,n,r)}),Rp=fo(function(t,e){var n={};if(null==t)return n;var r=!1;e=h(e,function(e){return e=bi(e,t),r||(r=e.length>1),e}),Ii(t,ho(t),n),r&&(n=tr(n,st|lt|ft,uo));for(var i=e.length;i--;)pi(n,e[i]);return n}),Lp=fo(function(t,e){return null==t?{}:qr(t,e)}),Up=ro(Lc),Fp=ro(Uc),jp=Wi(function(t,e,n){return e=e.toLowerCase(),t+(n?ts(e):e)}),Bp=Wi(function(t,e,n){return t+(n?\"-\":\"\")+e.toLowerCase()}),Vp=Wi(function(t,e,n){return t+(n?\" \":\"\")+e.toLowerCase()}),Wp=Vi(\"toLowerCase\"),zp=Wi(function(t,e,n){return t+(n?\"_\":\"\")+e.toLowerCase()}),Hp=Wi(function(t,e,n){return t+(n?\" \":\"\")+Yp(e)}),qp=Wi(function(t,e,n){return t+(n?\" \":\"\")+e.toUpperCase()}),Yp=Vi(\"toUpperCase\"),Kp=Jr(function(t,e){try{return o(t,nt,e)}catch(t){return $u(t)?t:new tl(t)}}),Gp=fo(function(t,e){return u(e,function(e){e=$o(e),Qn(t,e,np(t[e],t))}),t}),$p=Yi(),Xp=Yi(!0),Qp=Jr(function(t,e){return function(n){return wr(n,t,e)}}),Zp=Jr(function(t,e){return function(n){return wr(t,n,e)}}),Jp=Xi(h),th=Xi(s),eh=Xi(m),nh=Ji(),rh=Ji(!0),ih=$i(function(t,e){return t+e},0),oh=no(\"ceil\"),ah=$i(function(t,e){return t/e},1),uh=no(\"floor\"),ch=$i(function(t,e){return t*e},1),sh=no(\"round\"),lh=$i(function(t,e){return t-e},0);return n.after=bu,n.ary=xu,n.assign=Cp,n.assignIn=kp,n.assignInWith=Ep,n.assignWith=Mp,n.at=Tp,n.before=wu,n.bind=np,n.bindAll=Gp,n.bindKey=rp,n.castArray=Ru,n.chain=Ya,n.chunk=Jo,n.compact=ta,n.concat=ea,n.cond=ws,n.conforms=Cs,n.constant=ks,n.countBy=Kf,n.create=kc,n.curry=Cu,n.curryRight=ku,n.debounce=Eu,n.defaults=Sp,n.defaultsDeep=Np,n.defer=ip,n.delay=op,n.difference=Nf,n.differenceBy=Af,n.differenceWith=Pf,n.drop=na,n.dropRight=ra,n.dropRightWhile=ia,n.dropWhile=oa,n.fill=aa,n.filter=ru,n.flatMap=iu,n.flatMapDeep=ou,n.flatMapDepth=au,n.flatten=sa,n.flattenDeep=la,n.flattenDepth=fa,n.flip=Mu,n.flow=$p,n.flowRight=Xp,n.fromPairs=pa,n.functions=Pc,n.functionsIn=Oc,n.groupBy=Xf,n.initial=va,n.intersection=Of,n.intersectionBy=If,n.intersectionWith=Df,n.invert=Ap,n.invertBy=Pp,n.invokeMap=Qf,n.iteratee=Ts,n.keyBy=Zf,n.keys=Lc,n.keysIn=Uc,n.map=lu,n.mapKeys=Fc,n.mapValues=jc,n.matches=Ss,n.matchesProperty=Ns,n.memoize=Tu,n.merge=Ip,n.mergeWith=Dp,n.method=Qp,n.methodOf=Zp,n.mixin=As,n.negate=Su,n.nthArg=Is,n.omit=Rp,n.omitBy=Bc,n.once=Nu,n.orderBy=fu,n.over=Jp,n.overArgs=ap,n.overEvery=th,n.overSome=eh,n.partial=up,n.partialRight=cp,n.partition=Jf,n.pick=Lp,n.pickBy=Vc,n.property=Ds,n.propertyOf=Rs,n.pull=Rf,n.pullAll=ba,n.pullAllBy=xa,n.pullAllWith=wa,n.pullAt=Lf,n.range=nh,n.rangeRight=rh,n.rearg=sp,n.reject=du,n.remove=Ca,n.rest=Au,n.reverse=ka,n.sampleSize=gu,n.set=zc,n.setWith=Hc,n.shuffle=mu,n.slice=Ea,n.sortBy=tp,n.sortedUniq=Oa,n.sortedUniqBy=Ia,n.split=fs,n.spread=Pu,n.tail=Da,n.take=Ra,n.takeRight=La,n.takeRightWhile=Ua,n.takeWhile=Fa,n.tap=Ka,n.throttle=Ou,n.thru=Ga,n.toArray=gc,n.toPairs=Up,n.toPairsIn=Fp,n.toPath=Ws,n.toPlainObject=xc,n.transform=qc,n.unary=Iu,n.union=Uf,n.unionBy=Ff,n.unionWith=jf,n.uniq=ja,n.uniqBy=Ba,n.uniqWith=Va,n.unset=Yc,n.unzip=Wa,n.unzipWith=za,n.update=Kc,n.updateWith=Gc,n.values=$c,n.valuesIn=Xc,n.without=Bf,n.words=xs,n.wrap=Du,n.xor=Vf,n.xorBy=Wf,n.xorWith=zf,n.zip=Hf,n.zipObject=Ha,n.zipObjectDeep=qa,n.zipWith=qf,n.entries=Up,n.entriesIn=Fp,n.extend=kp,n.extendWith=Ep,As(n,n),n.add=ih,n.attempt=Kp,n.camelCase=jp,n.capitalize=ts,n.ceil=oh,n.clamp=Qc,n.clone=Lu,n.cloneDeep=Fu,n.cloneDeepWith=ju,n.cloneWith=Uu,n.conformsTo=Bu,n.deburr=es,n.defaultTo=Es,n.divide=ah,n.endsWith=ns,n.eq=Vu,n.escape=rs,n.escapeRegExp=is,n.every=nu,n.find=Gf,n.findIndex=ua,n.findKey=Ec,n.findLast=$f,n.findLastIndex=ca,n.findLastKey=Mc,n.floor=uh,n.forEach=uu,n.forEachRight=cu,n.forIn=Tc,n.forInRight=Sc,n.forOwn=Nc,n.forOwnRight=Ac,n.get=Ic,n.gt=lp,n.gte=fp,n.has=Dc,n.hasIn=Rc,n.head=ha,n.identity=Ms,n.includes=su,n.indexOf=da,n.inRange=Zc,n.invoke=Op,n.isArguments=pp,n.isArray=hp,n.isArrayBuffer=dp,n.isArrayLike=Wu,n.isArrayLikeObject=zu,n.isBoolean=Hu,n.isBuffer=vp,n.isDate=gp,n.isElement=qu,n.isEmpty=Yu,n.isEqual=Ku,n.isEqualWith=Gu,n.isError=$u,n.isFinite=Xu,n.isFunction=Qu,n.isInteger=Zu,n.isLength=Ju,n.isMap=mp,n.isMatch=nc,n.isMatchWith=rc,n.isNaN=ic,n.isNative=oc,n.isNil=uc,n.isNull=ac,n.isNumber=cc,n.isObject=tc,n.isObjectLike=ec,n.isPlainObject=sc,n.isRegExp=yp,n.isSafeInteger=lc,n.isSet=_p,n.isString=fc,n.isSymbol=pc,n.isTypedArray=bp,n.isUndefined=hc,n.isWeakMap=dc,n.isWeakSet=vc,n.join=ga,n.kebabCase=Bp,n.last=ma,n.lastIndexOf=ya,n.lowerCase=Vp,n.lowerFirst=Wp,n.lt=xp,n.lte=wp,n.max=Hs,n.maxBy=qs,n.mean=Ys,n.meanBy=Ks,n.min=Gs,n.minBy=$s,n.stubArray=Ls,n.stubFalse=Us,n.stubObject=Fs,n.stubString=js,n.stubTrue=Bs,n.multiply=ch,n.nth=_a,n.noConflict=Ps,n.noop=Os,n.now=ep,n.pad=os,n.padEnd=as,n.padStart=us,n.parseInt=cs,n.random=Jc,n.reduce=pu,n.reduceRight=hu,n.repeat=ss,n.replace=ls,n.result=Wc,n.round=sh,n.runInContext=t,n.sample=vu,n.size=yu,n.snakeCase=zp,n.some=_u,n.sortedIndex=Ma,n.sortedIndexBy=Ta,n.sortedIndexOf=Sa,n.sortedLastIndex=Na,n.sortedLastIndexBy=Aa,n.sortedLastIndexOf=Pa,n.startCase=Hp,n.startsWith=ps,n.subtract=lh,n.sum=Xs,n.sumBy=Qs,n.template=hs,n.times=Vs,n.toFinite=mc,n.toInteger=yc,n.toLength=_c,n.toLower=ds,n.toNumber=bc,n.toSafeInteger=wc,n.toString=Cc,n.toUpper=vs,n.trim=gs,n.trimEnd=ms,n.trimStart=ys,n.truncate=_s,n.unescape=bs,n.uniqueId=zs,n.upperCase=qp,n.upperFirst=Yp,n.each=uu,n.eachRight=cu,n.first=ha,As(n,function(){var t={};return lr(n,function(e,r){pl.call(n.prototype,r)||(t[r]=e)}),t}(),{chain:!1}),n.VERSION=\"4.17.11\",u([\"bind\",\"bindKey\",\"curry\",\"curryRight\",\"partial\",\"partialRight\"],function(t){n[t].placeholder=n}),u([\"drop\",\"take\"],function(t,e){y.prototype[t]=function(n){n=n===nt?1:Vl(yc(n),0);var r=this.__filtered__&&!e?new y(this):this.clone();return r.__filtered__?r.__takeCount__=Wl(n,r.__takeCount__):r.__views__.push({size:Wl(n,Dt),type:t+(r.__dir__<0?\"Right\":\"\")}),r},y.prototype[t+\"Right\"]=function(e){return this.reverse()[t](e).reverse()}}),u([\"filter\",\"map\",\"takeWhile\"],function(t,e){var n=e+1,r=n==St||3==n;y.prototype[t]=function(t){var e=this.clone();return e.__iteratees__.push({iteratee:mo(t,3),type:n}),e.__filtered__=e.__filtered__||r,e}}),u([\"head\",\"last\"],function(t,e){var n=\"take\"+(e?\"Right\":\"\");y.prototype[t]=function(){return this[n](1).value()[0]}}),u([\"initial\",\"tail\"],function(t,e){var n=\"drop\"+(e?\"\":\"Right\");y.prototype[t]=function(){return this.__filtered__?new y(this):this[n](1)}}),y.prototype.compact=function(){return this.filter(Ms)},y.prototype.find=function(t){return this.filter(t).head()},y.prototype.findLast=function(t){return this.reverse().find(t)},y.prototype.invokeMap=Jr(function(t,e){return\"function\"==typeof t?new y(this):this.map(function(n){return wr(n,t,e)})}),y.prototype.reject=function(t){return this.filter(Su(mo(t)))},y.prototype.slice=function(t,e){t=yc(t);var n=this;return n.__filtered__&&(t>0||e<0)?new y(n):(t<0?n=n.takeRight(-t):t&&(n=n.drop(t)),e!==nt&&(e=yc(e),n=e<0?n.dropRight(-e):n.take(e-t)),n)},y.prototype.takeRightWhile=function(t){return this.reverse().takeWhile(t).reverse()},y.prototype.toArray=function(){return this.take(Dt)},lr(y.prototype,function(t,e){var r=/^(?:filter|find|map|reject)|While$/.test(e),o=/^(?:head|last)$/.test(e),a=n[o?\"take\"+(\"last\"==e?\"Right\":\"\"):e],u=o||/^find/.test(e);a&&(n.prototype[e]=function(){var e=this.__wrapped__,c=o?[1]:arguments,s=e instanceof y,l=c[0],f=s||hp(e),p=function(t){var e=a.apply(n,d([t],c));return o&&h?e[0]:e};f&&r&&\"function\"==typeof l&&1!=l.length&&(s=f=!1);var h=this.__chain__,v=!!this.__actions__.length,g=u&&!h,m=s&&!v;if(!u&&f){e=m?e:new y(this);var _=t.apply(e,c);return _.__actions__.push({func:Ga,args:[p],thisArg:nt}),new i(_,h)}return g&&m?t.apply(this,c):(_=this.thru(p),g?o?_.value()[0]:_.value():_)})}),u([\"pop\",\"push\",\"shift\",\"sort\",\"splice\",\"unshift\"],function(t){var e=ul[t],r=/^(?:push|sort|unshift)$/.test(t)?\"tap\":\"thru\",i=/^(?:pop|shift)$/.test(t);n.prototype[t]=function(){var t=arguments;if(i&&!this.__chain__){var n=this.value();return e.apply(hp(n)?n:[],t)}return this[r](function(n){return e.apply(hp(n)?n:[],t)})}}),lr(y.prototype,function(t,e){var r=n[e];if(r){var i=r.name+\"\";(tf[i]||(tf[i]=[])).push({name:e,func:r})}}),tf[Ki(nt,vt).name]=[{name:\"wrapper\",func:nt}],y.prototype.clone=T,y.prototype.reverse=$,y.prototype.value=J,n.prototype.at=Yf,n.prototype.chain=$a,n.prototype.commit=Xa,n.prototype.next=Qa,n.prototype.plant=Ja,n.prototype.reverse=tu,n.prototype.toJSON=n.prototype.valueOf=n.prototype.value=eu,n.prototype.first=n.prototype.head,Sl&&(n.prototype[Sl]=Za),n}();An._=Yn,(i=function(){return Yn}.call(e,n,e,r))!==nt&&(r.exports=i)}).call(this)}).call(e,n(98),n(99)(t))},function(t,e,n){\"use strict\";var r={remove:function(t){t._reactInternalInstance=void 0},get:function(t){return t._reactInternalInstance},has:function(t){return void 0!==t._reactInternalInstance},set:function(t,e){t._reactInternalInstance=e}};t.exports=r},function(t,e,n){\"use strict\";function r(t){for(var e=arguments.length-1,n=\"Minified React error #\"+t+\"; visit http://facebook.github.io/react/docs/error-decoder.html?invariant=\"+t,r=0;r<e;r++)n+=\"&args[]=\"+encodeURIComponent(arguments[r+1]);n+=\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\";var i=new Error(n);throw i.name=\"Invariant Violation\",i.framesToPop=1,i}t.exports=r},function(t,e,n){\"use strict\";t.exports=n(26)},function(t,e,n){\"use strict\";var r=n(63);e.a=function(t){return t=n.i(r.a)(Math.abs(t)),t?t[1]:NaN}},function(t,e,n){\"use strict\";e.a=function(t,e){return t=+t,e-=t,function(n){return t+e*n}}},function(t,e,n){\"use strict\";function r(t,e){return(e-=t=+t)?function(n){return(n-t)/e}:n.i(h.a)(e)}function i(t){return function(e,n){var r=t(e=+e,n=+n);return function(t){return t<=e?0:t>=n?1:r(t)}}}function o(t){return function(e,n){var r=t(e=+e,n=+n);return function(t){return t<=0?e:t>=1?n:r(t)}}}function a(t,e,n,r){var i=t[0],o=t[1],a=e[0],u=e[1];return o<i?(i=n(o,i),a=r(u,a)):(i=n(i,o),a=r(a,u)),function(t){return a(i(t))}}function u(t,e,r,i){var o=Math.min(t.length,e.length)-1,a=new Array(o),u=new Array(o),c=-1;for(t[o]<t[0]&&(t=t.slice().reverse(),e=e.slice().reverse());++c<o;)a[c]=r(t[c],t[c+1]),u[c]=i(e[c],e[c+1]);return function(e){var r=n.i(l.bisect)(t,e,1,o)-1;return u[r](a[r](e))}}function c(t,e){return e.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp())}function s(t,e){function n(){return s=Math.min(g.length,m.length)>2?u:a,l=h=null,c}function c(e){return(l||(l=s(g,m,_?i(t):t,y)))(+e)}var s,l,h,g=v,m=v,y=f.b,_=!1;return c.invert=function(t){return(h||(h=s(m,g,r,_?o(e):e)))(+t)},c.domain=function(t){return arguments.length?(g=p.a.call(t,d.a),n()):g.slice()},c.range=function(t){return arguments.length?(m=p.b.call(t),n()):m.slice()},c.rangeRound=function(t){return m=p.b.call(t),y=f.c,n()},c.clamp=function(t){return arguments.length?(_=!!t,n()):_},c.interpolate=function(t){return arguments.length?(y=t,n()):y},n()}e.b=r,e.c=c,e.a=s;var l=n(7),f=n(30),p=n(16),h=n(67),d=n(126),v=[0,1]},function(t,e,n){\"use strict\";function r(t){return function(){var e=this.ownerDocument,n=this.namespaceURI;return n===a.b&&e.documentElement.namespaceURI===a.b?e.createElement(t):e.createElementNS(n,t)}}function i(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}var o=n(68),a=n(69);e.a=function(t){var e=n.i(o.a)(t);return(e.local?i:r)(e)}},function(t,e,n){\"use strict\";e.a=function(t,e){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()),[r.x,r.y]}var i=t.getBoundingClientRect();return[e.clientX-i.left-t.clientLeft,e.clientY-i.top-t.clientTop]}},function(t,e,n){\"use strict\";function r(t,e,n){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+e)/6,(t._y0+4*t._y1+n)/6)}function i(t){this._context=t}e.c=r,e.b=i,i.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:r(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:r(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}},e.a=function(t){return new i(t)}},function(t,e,n){\"use strict\";function r(t,e,n){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-e),t._y2+t._k*(t._y1-n),t._x2,t._y2)}function i(t,e){this._context=t,this._k=(1-e)/6}e.c=r,e.b=i,i.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:r(this,this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2,this._x1=t,this._y1=e;break;case 2:this._point=3;default:r(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}},e.a=function t(e){function n(t){return new i(t,e)}return n.tension=function(e){return t(+e)},n}(0)},function(t,e,n){\"use strict\";function r(t){this._context=t}r.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(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._context.lineTo(t,e)}}},e.a=function(t){return new r(t)}},function(t,e,n){\"use strict\";e.a=function(){}},function(t,e,n){\"use strict\";var r={};t.exports=r},function(t,e,n){\"use strict\";function r(t){return\"topMouseUp\"===t||\"topTouchEnd\"===t||\"topTouchCancel\"===t}function i(t){return\"topMouseMove\"===t||\"topTouchMove\"===t}function o(t){return\"topMouseDown\"===t||\"topTouchStart\"===t}function a(t,e,n,r){var i=t.type||\"unknown-event\";t.currentTarget=m.getNodeFromInstance(r),e?v.invokeGuardedCallbackWithCatch(i,n,t):v.invokeGuardedCallback(i,n,t),t.currentTarget=null}function u(t,e){var n=t._dispatchListeners,r=t._dispatchInstances;if(Array.isArray(n))for(var i=0;i<n.length&&!t.isPropagationStopped();i++)a(t,e,n[i],r[i]);else n&&a(t,e,n,r);t._dispatchListeners=null,t._dispatchInstances=null}function c(t){var e=t._dispatchListeners,n=t._dispatchInstances;if(Array.isArray(e)){for(var r=0;r<e.length&&!t.isPropagationStopped();r++)if(e[r](t,n[r]))return n[r]}else if(e&&e(t,n))return n;return null}function s(t){var e=c(t);return t._dispatchInstances=null,t._dispatchListeners=null,e}function l(t){var e=t._dispatchListeners,n=t._dispatchInstances;Array.isArray(e)&&d(\"103\"),t.currentTarget=e?m.getNodeFromInstance(n):null;var r=e?e(t):null;return t.currentTarget=null,t._dispatchListeners=null,t._dispatchInstances=null,r}function f(t){return!!t._dispatchListeners}var p,h,d=n(1),v=n(88),g=(n(0),n(2),{injectComponentTree:function(t){p=t},injectTreeTraversal:function(t){h=t}}),m={isEndish:r,isMoveish:i,isStartish:o,executeDirectDispatch:l,executeDispatchesInOrder:u,executeDispatchesInOrderStopAtTrue:s,hasDispatches:f,getInstanceFromNode:function(t){return p.getInstanceFromNode(t)},getNodeFromInstance:function(t){return p.getNodeFromInstance(t)},isAncestor:function(t,e){return h.isAncestor(t,e)},getLowestCommonAncestor:function(t,e){return h.getLowestCommonAncestor(t,e)},getParentInstance:function(t){return h.getParentInstance(t)},traverseTwoPhase:function(t,e,n){return h.traverseTwoPhase(t,e,n)},traverseEnterLeave:function(t,e,n,r,i){return h.traverseEnterLeave(t,e,n,r,i)},injection:g};t.exports=m},function(t,e,n){\"use strict\";function r(t){return Object.prototype.hasOwnProperty.call(t,v)||(t[v]=h++,f[t[v]]={}),f[t[v]]}var i,o=n(3),a=n(84),u=n(374),c=n(90),s=n(406),l=n(95),f={},p=!1,h=0,d={topAbort:\"abort\",topAnimationEnd:s(\"animationend\")||\"animationend\",topAnimationIteration:s(\"animationiteration\")||\"animationiteration\",topAnimationStart:s(\"animationstart\")||\"animationstart\",topBlur:\"blur\",topCanPlay:\"canplay\",topCanPlayThrough:\"canplaythrough\",topChange:\"change\",topClick:\"click\",topCompositionEnd:\"compositionend\",topCompositionStart:\"compositionstart\",topCompositionUpdate:\"compositionupdate\",topContextMenu:\"contextmenu\",topCopy:\"copy\",topCut:\"cut\",topDoubleClick:\"dblclick\",topDrag:\"drag\",topDragEnd:\"dragend\",topDragEnter:\"dragenter\",topDragExit:\"dragexit\",topDragLeave:\"dragleave\",topDragOver:\"dragover\",topDragStart:\"dragstart\",topDrop:\"drop\",topDurationChange:\"durationchange\",topEmptied:\"emptied\",topEncrypted:\"encrypted\",topEnded:\"ended\",topError:\"error\",topFocus:\"focus\",topInput:\"input\",topKeyDown:\"keydown\",topKeyPress:\"keypress\",topKeyUp:\"keyup\",topLoadedData:\"loadeddata\",topLoadedMetadata:\"loadedmetadata\",topLoadStart:\"loadstart\",topMouseDown:\"mousedown\",topMouseMove:\"mousemove\",topMouseOut:\"mouseout\",topMouseOver:\"mouseover\",topMouseUp:\"mouseup\",topPaste:\"paste\",topPause:\"pause\",topPlay:\"play\",topPlaying:\"playing\",topProgress:\"progress\",topRateChange:\"ratechange\",topScroll:\"scroll\",topSeeked:\"seeked\",topSeeking:\"seeking\",topSelectionChange:\"selectionchange\",topStalled:\"stalled\",topSuspend:\"suspend\",topTextInput:\"textInput\",topTimeUpdate:\"timeupdate\",topTouchCancel:\"touchcancel\",topTouchEnd:\"touchend\",topTouchMove:\"touchmove\",topTouchStart:\"touchstart\",topTransitionEnd:s(\"transitionend\")||\"transitionend\",topVolumeChange:\"volumechange\",topWaiting:\"waiting\",topWheel:\"wheel\"},v=\"_reactListenersID\"+String(Math.random()).slice(2),g=o({},u,{ReactEventListener:null,injection:{injectReactEventListener:function(t){t.setHandleTopLevel(g.handleTopLevel),g.ReactEventListener=t}},setEnabled:function(t){g.ReactEventListener&&g.ReactEventListener.setEnabled(t)},isEnabled:function(){return!(!g.ReactEventListener||!g.ReactEventListener.isEnabled())},listenTo:function(t,e){for(var n=e,i=r(n),o=a.registrationNameDependencies[t],u=0;u<o.length;u++){var c=o[u];i.hasOwnProperty(c)&&i[c]||(\"topWheel\"===c?l(\"wheel\")?g.ReactEventListener.trapBubbledEvent(\"topWheel\",\"wheel\",n):l(\"mousewheel\")?g.ReactEventListener.trapBubbledEvent(\"topWheel\",\"mousewheel\",n):g.ReactEventListener.trapBubbledEvent(\"topWheel\",\"DOMMouseScroll\",n):\"topScroll\"===c?l(\"scroll\",!0)?g.ReactEventListener.trapCapturedEvent(\"topScroll\",\"scroll\",n):g.ReactEventListener.trapBubbledEvent(\"topScroll\",\"scroll\",g.ReactEventListener.WINDOW_HANDLE):\"topFocus\"===c||\"topBlur\"===c?(l(\"focus\",!0)?(g.ReactEventListener.trapCapturedEvent(\"topFocus\",\"focus\",n),g.ReactEventListener.trapCapturedEvent(\"topBlur\",\"blur\",n)):l(\"focusin\")&&(g.ReactEventListener.trapBubbledEvent(\"topFocus\",\"focusin\",n),g.ReactEventListener.trapBubbledEvent(\"topBlur\",\"focusout\",n)),i.topBlur=!0,i.topFocus=!0):d.hasOwnProperty(c)&&g.ReactEventListener.trapBubbledEvent(c,d[c],n),i[c]=!0)}},trapBubbledEvent:function(t,e,n){return g.ReactEventListener.trapBubbledEvent(t,e,n)},trapCapturedEvent:function(t,e,n){return g.ReactEventListener.trapCapturedEvent(t,e,n)},supportsEventPageXY:function(){if(!document.createEvent)return!1;var t=document.createEvent(\"MouseEvent\");return null!=t&&\"pageX\"in t},ensureScrollValueMonitoring:function(){if(void 0===i&&(i=g.supportsEventPageXY()),!i&&!p){var t=c.refreshScrollValues;g.ReactEventListener.monitorScrollValue(t),p=!0}}});t.exports=g},function(t,e,n){\"use strict\";function r(t,e,n,r){return i.call(this,t,e,n,r)}var i=n(25),o=n(90),a=n(93),u={screenX:null,screenY:null,clientX:null,clientY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:a,button:function(t){var e=t.button;return\"which\"in t?e:2===e?2:4===e?1:0},buttons:null,relatedTarget:function(t){return t.relatedTarget||(t.fromElement===t.srcElement?t.toElement:t.fromElement)},pageX:function(t){return\"pageX\"in t?t.pageX:t.clientX+o.currentScrollLeft},pageY:function(t){return\"pageY\"in t?t.pageY:t.clientY+o.currentScrollTop}};i.augmentClass(r,u),t.exports=r},function(t,e,n){\"use strict\";var r=n(1),i=(n(0),{}),o={reinitializeTransaction:function(){this.transactionWrappers=this.getTransactionWrappers(),this.wrapperInitData?this.wrapperInitData.length=0:this.wrapperInitData=[],this._isInTransaction=!1},_isInTransaction:!1,getTransactionWrappers:null,isInTransaction:function(){return!!this._isInTransaction},perform:function(t,e,n,i,o,a,u,c){this.isInTransaction()&&r(\"27\");var s,l;try{this._isInTransaction=!0,s=!0,this.initializeAll(0),l=t.call(e,n,i,o,a,u,c),s=!1}finally{try{if(s)try{this.closeAll(0)}catch(t){}else this.closeAll(0)}finally{this._isInTransaction=!1}}return l},initializeAll:function(t){for(var e=this.transactionWrappers,n=t;n<e.length;n++){var r=e[n];try{this.wrapperInitData[n]=i,this.wrapperInitData[n]=r.initialize?r.initialize.call(this):null}finally{if(this.wrapperInitData[n]===i)try{this.initializeAll(n+1)}catch(t){}}}},closeAll:function(t){this.isInTransaction()||r(\"28\");for(var e=this.transactionWrappers,n=t;n<e.length;n++){var o,a=e[n],u=this.wrapperInitData[n];try{o=!0,u!==i&&a.close&&a.close.call(this,u),o=!1}finally{if(o)try{this.closeAll(n+1)}catch(t){}}}this.wrapperInitData.length=0}};t.exports=o},function(t,e,n){\"use strict\";function r(t){var e=\"\"+t,n=o.exec(e);if(!n)return e;var r,i=\"\",a=0,u=0;for(a=n.index;a<e.length;a++){switch(e.charCodeAt(a)){case 34:r=\"&quot;\";break;case 38:r=\"&amp;\";break;case 39:r=\"&#x27;\";break;case 60:r=\"&lt;\";break;case 62:r=\"&gt;\";break;default:continue}u!==a&&(i+=e.substring(u,a)),u=a+1,i+=r}return u!==a?i+e.substring(u,a):i}function i(t){return\"boolean\"==typeof t||\"number\"==typeof t?\"\"+t:r(t)}var o=/[\"'&<>]/;t.exports=i},function(t,e,n){\"use strict\";var r,i=n(6),o=n(83),a=/^[ \\r\\n\\t\\f]/,u=/<(!--|link|noscript|meta|script|style)[ \\r\\n\\t\\f\\/>]/,c=n(91),s=c(function(t,e){if(t.namespaceURI!==o.svg||\"innerHTML\"in t)t.innerHTML=e;else{r=r||document.createElement(\"div\"),r.innerHTML=\"<svg>\"+e+\"</svg>\";for(var n=r.firstChild;n.firstChild;)t.appendChild(n.firstChild)}});if(i.canUseDOM){var l=document.createElement(\"div\");l.innerHTML=\" \",\"\"===l.innerHTML&&(s=function(t,e){if(t.parentNode&&t.parentNode.replaceChild(t,t),a.test(e)||\"<\"===e[0]&&u.test(e)){t.innerHTML=String.fromCharCode(65279)+e;var n=t.firstChild;1===n.data.length?t.removeChild(n):n.deleteData(0,1)}else t.innerHTML=e}),l=null}t.exports=s},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.default={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(t,e,n){\"use strict\";var r=n(28);e.a=function(t,e,n){if(null==n&&(n=r.a),i=t.length){if((e=+e)<=0||i<2)return+n(t[0],0,t);if(e>=1)return+n(t[i-1],i-1,t);var i,o=(i-1)*e,a=Math.floor(o),u=+n(t[a],a,t);return u+(+n(t[a+1],a+1,t)-u)*(o-a)}}},function(t,e,n){\"use strict\";function r(){}function i(t,e){var n=new r;if(t instanceof r)t.each(function(t,e){n.set(e,t)});else if(Array.isArray(t)){var i,o=-1,a=t.length;if(null==e)for(;++o<a;)n.set(o,t[o]);else for(;++o<a;)n.set(e(i=t[o],o,t),i)}else if(t)for(var u in t)n.set(u,t[u]);return n}n.d(e,\"b\",function(){return o});var o=\"$\";r.prototype=i.prototype={constructor:r,has:function(t){return o+t in this},get:function(t){return this[o+t]},set:function(t,e){return this[o+t]=e,this},remove:function(t){var e=o+t;return e in this&&delete this[e]},clear:function(){for(var t in this)t[0]===o&&delete this[t]},keys:function(){var t=[];for(var e in this)e[0]===o&&t.push(e.slice(1));return t},values:function(){var t=[];for(var e in this)e[0]===o&&t.push(this[e]);return t},entries:function(){var t=[];for(var e in this)e[0]===o&&t.push({key:e.slice(1),value:this[e]});return t},size:function(){var t=0;for(var e in this)e[0]===o&&++t;return t},empty:function(){for(var t in this)if(t[0]===o)return!1;return!0},each:function(t){for(var e in this)e[0]===o&&t(this[e],e.slice(1),this)}},e.a=i},function(t,e,n){\"use strict\";function r(){}function i(t){var e;return t=(t+\"\").trim().toLowerCase(),(e=x.exec(t))?(e=parseInt(e[1],16),new s(e>>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1)):(e=w.exec(t))?o(parseInt(e[1],16)):(e=C.exec(t))?new s(e[1],e[2],e[3],1):(e=k.exec(t))?new s(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=E.exec(t))?a(e[1],e[2],e[3],e[4]):(e=M.exec(t))?a(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=T.exec(t))?l(e[1],e[2]/100,e[3]/100,1):(e=S.exec(t))?l(e[1],e[2]/100,e[3]/100,e[4]):N.hasOwnProperty(t)?o(N[t]):\"transparent\"===t?new s(NaN,NaN,NaN,0):null}function o(t){return new s(t>>16&255,t>>8&255,255&t,1)}function a(t,e,n,r){return r<=0&&(t=e=n=NaN),new s(t,e,n,r)}function u(t){return t instanceof r||(t=i(t)),t?(t=t.rgb(),new s(t.r,t.g,t.b,t.opacity)):new s}function c(t,e,n,r){return 1===arguments.length?u(t):new s(t,e,n,null==r?1:r)}function s(t,e,n,r){this.r=+t,this.g=+e,this.b=+n,this.opacity=+r}function l(t,e,n,r){return r<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new h(t,e,n,r)}function f(t){if(t instanceof h)return new h(t.h,t.s,t.l,t.opacity);if(t instanceof r||(t=i(t)),!t)return new h;if(t instanceof h)return t;t=t.rgb();var e=t.r/255,n=t.g/255,o=t.b/255,a=Math.min(e,n,o),u=Math.max(e,n,o),c=NaN,s=u-a,l=(u+a)/2;return s?(c=e===u?(n-o)/s+6*(n<o):n===u?(o-e)/s+2:(e-n)/s+4,s/=l<.5?u+a:2-u-a,c*=60):s=l>0&&l<1?0:c,new h(c,s,l,t.opacity)}function p(t,e,n,r){return 1===arguments.length?f(t):new h(t,e,n,null==r?1:r)}function h(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}function d(t,e,n){return 255*(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)}e.f=r,n.d(e,\"h\",function(){return g}),n.d(e,\"g\",function(){return m}),e.a=i,e.e=u,e.b=c,e.d=s,e.c=p;var v=n(62),g=.7,m=1/g,y=\"\\\\s*([+-]?\\\\d+)\\\\s*\",_=\"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",b=\"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",x=/^#([0-9a-f]{3})$/,w=/^#([0-9a-f]{6})$/,C=new RegExp(\"^rgb\\\\(\"+[y,y,y]+\"\\\\)$\"),k=new RegExp(\"^rgb\\\\(\"+[b,b,b]+\"\\\\)$\"),E=new RegExp(\"^rgba\\\\(\"+[y,y,y,_]+\"\\\\)$\"),M=new RegExp(\"^rgba\\\\(\"+[b,b,b,_]+\"\\\\)$\"),T=new RegExp(\"^hsl\\\\(\"+[_,b,b]+\"\\\\)$\"),S=new RegExp(\"^hsla\\\\(\"+[_,b,b,_]+\"\\\\)$\"),N={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};n.i(v.a)(r,i,{displayable:function(){return this.rgb().displayable()},toString:function(){return this.rgb()+\"\"}}),n.i(v.a)(s,c,n.i(v.b)(r,{brighter:function(t){return t=null==t?m:Math.pow(m,t),new s(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?g:Math.pow(g,t),new s(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},displayable:function(){return 0<=this.r&&this.r<=255&&0<=this.g&&this.g<=255&&0<=this.b&&this.b<=255&&0<=this.opacity&&this.opacity<=1},toString:function(){var t=this.opacity;return t=isNaN(t)?1:Math.max(0,Math.min(1,t)),(1===t?\"rgb(\":\"rgba(\")+Math.max(0,Math.min(255,Math.round(this.r)||0))+\", \"+Math.max(0,Math.min(255,Math.round(this.g)||0))+\", \"+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===t?\")\":\", \"+t+\")\")}})),n.i(v.a)(h,p,n.i(v.b)(r,{brighter:function(t){return t=null==t?m:Math.pow(m,t),new h(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?g:Math.pow(g,t),new h(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*e,i=2*n-r;return new s(d(t>=240?t-240:t+120,i,r),d(t,i,r),d(t<120?t+240:t-120,i,r),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1}}))},function(t,e,n){\"use strict\";function r(t,e){var n=Object.create(t.prototype);for(var r in e)n[r]=e[r];return n}e.b=r,e.a=function(t,e,n){t.prototype=e.prototype=n,n.constructor=t}},function(t,e,n){\"use strict\";e.a=function(t,e){if((n=(t=e?t.toExponential(e-1):t.toExponential()).indexOf(\"e\"))<0)return null;var n,r=t.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+t.slice(n+1)]}},function(t,e,n){\"use strict\";function r(t,e,n,r,i){var o=t*t,a=o*t;return((1-3*t+3*o-a)*e+(4-6*o+3*a)*n+(1+3*t+3*o-3*a)*r+a*i)/6}e.b=r,e.a=function(t){var e=t.length-1;return function(n){var i=n<=0?n=0:n>=1?(n=1,e-1):Math.floor(n*e),o=t[i],a=t[i+1],u=i>0?t[i-1]:2*o-a,c=i<e-1?t[i+2]:2*a-o;return r((n-i/e)*e,u,o,a,c)}}},function(t,e,n){\"use strict\";var r=n(10),i=n(123),o=n(118),a=n(121),u=n(43),c=n(122),s=n(124),l=n(120);e.a=function(t,e){var f,p=typeof e;return null==e||\"boolean\"===p?n.i(l.a)(e):(\"number\"===p?u.a:\"string\"===p?(f=n.i(r.color)(e))?(e=f,i.a):s.a:e instanceof r.color?i.a:e instanceof Date?a.a:Array.isArray(e)?o.a:\"function\"!=typeof e.valueOf&&\"function\"!=typeof e.toString||isNaN(e)?c.a:u.a)(t,e)}},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var r=n(239);n.d(e,\"scaleBand\",function(){return r.a}),n.d(e,\"scalePoint\",function(){return r.b});var i=n(245);n.d(e,\"scaleIdentity\",function(){return i.a});var o=n(34);n.d(e,\"scaleLinear\",function(){return o.a});var a=n(246);n.d(e,\"scaleLog\",function(){return a.a});var u=n(127);n.d(e,\"scaleOrdinal\",function(){return u.a}),n.d(e,\"scaleImplicit\",function(){return u.b});var c=n(247);n.d(e,\"scalePow\",function(){return c.a}),n.d(e,\"scaleSqrt\",function(){return c.b});var s=n(248);n.d(e,\"scaleQuantile\",function(){return s.a});var l=n(249);n.d(e,\"scaleQuantize\",function(){return l.a});var f=n(252);n.d(e,\"scaleThreshold\",function(){return f.a});var p=n(128);n.d(e,\"scaleTime\",function(){return p.a});var h=n(254);n.d(e,\"scaleUtc\",function(){return h.a});var d=n(240);n.d(e,\"schemeCategory10\",function(){return d.a});var v=n(242);n.d(e,\"schemeCategory20b\",function(){return v.a});var g=n(243);n.d(e,\"schemeCategory20c\",function(){return g.a});var m=n(241);n.d(e,\"schemeCategory20\",function(){return m.a});var y=n(244);n.d(e,\"interpolateCubehelixDefault\",function(){return y.a});var _=n(250);n.d(e,\"interpolateRainbow\",function(){return _.a}),n.d(e,\"interpolateWarm\",function(){return _.b}),n.d(e,\"interpolateCool\",function(){return _.c});var b=n(255);n.d(e,\"interpolateViridis\",function(){return b.a}),n.d(e,\"interpolateMagma\",function(){return b.b}),n.d(e,\"interpolateInferno\",function(){return b.c}),n.d(e,\"interpolatePlasma\",function(){return b.d});var x=n(251);n.d(e,\"scaleSequential\",function(){return x.a})},function(t,e,n){\"use strict\";e.a=function(t){return function(){return t}}},function(t,e,n){\"use strict\";var r=n(69);e.a=function(t){var e=t+=\"\",n=e.indexOf(\":\");return n>=0&&\"xmlns\"!==(e=t.slice(0,n))&&(t=t.slice(n+1)),r.a.hasOwnProperty(e)?{space:r.a[e],local:t}:t}},function(t,e,n){\"use strict\";n.d(e,\"b\",function(){return r});var r=\"http://www.w3.org/1999/xhtml\";e.a={svg:\"http://www.w3.org/2000/svg\",xhtml:r,xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"}},function(t,e,n){\"use strict\";function r(t,e,n){return t=i(t,e,n),function(e){var n=e.relatedTarget;n&&(n===this||8&n.compareDocumentPosition(this))||t.call(this,e)}}function i(t,e,n){return function(r){var i=l;l=r;try{t.call(this,this.__data__,e,n)}finally{l=i}}}function o(t){return t.trim().split(/^|\\s+/).map(function(t){var e=\"\",n=t.indexOf(\".\");return n>=0&&(e=t.slice(n+1),t=t.slice(0,n)),{type:t,name:e}})}function a(t){return function(){var e=this.__on;if(e){for(var n,r=0,i=-1,o=e.length;r<o;++r)n=e[r],t.type&&n.type!==t.type||n.name!==t.name?e[++i]=n:this.removeEventListener(n.type,n.listener,n.capture);++i?e.length=i:delete this.__on}}}function u(t,e,n){var o=s.hasOwnProperty(t.type)?r:i;return function(r,i,a){var u,c=this.__on,s=o(e,i,a);if(c)for(var l=0,f=c.length;l<f;++l)if((u=c[l]).type===t.type&&u.name===t.name)return this.removeEventListener(u.type,u.listener,u.capture),this.addEventListener(u.type,u.listener=s,u.capture=n),void(u.value=e);this.addEventListener(t.type,s,n),u={type:t.type,name:t.name,value:e,listener:s,capture:n},c?c.push(u):this.__on=[u]}}function c(t,e,n,r){var i=l;t.sourceEvent=l,l=t;try{return e.apply(n,r)}finally{l=i}}n.d(e,\"a\",function(){return l}),e.b=c;var s={},l=null;if(\"undefined\"!=typeof document){\"onmouseenter\"in document.documentElement||(s={mouseenter:\"mouseover\",mouseleave:\"mouseout\"})}e.c=function(t,e,n){var r,i,c=o(t+\"\"),s=c.length;{if(!(arguments.length<2)){for(l=e?u:a,null==n&&(n=!1),r=0;r<s;++r)this.each(l(c[r],e,n));return this}var l=this.node().__on;if(l)for(var f,p=0,h=l.length;p<h;++p)for(r=0,f=l[p];r<s;++r)if((i=c[r]).type===f.type&&i.name===f.name)return f.value}}},function(t,e,n){\"use strict\";function r(){}e.a=function(t){return null==t?r:function(){return this.querySelector(t)}}},function(t,e,n){\"use strict\";var r=n(70);e.a=function(){for(var t,e=r.a;t=e.sourceEvent;)e=t;return e}},function(t,e,n){\"use strict\";e.a=function(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}},function(t,e,n){\"use strict\";function r(t,e,n){var r=t._x1,i=t._y1,a=t._x2,u=t._y2;if(t._l01_a>o.a){var c=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,s=3*t._l01_a*(t._l01_a+t._l12_a);r=(r*c-t._x0*t._l12_2a+t._x2*t._l01_2a)/s,i=(i*c-t._y0*t._l12_2a+t._y2*t._l01_2a)/s}if(t._l23_a>o.a){var l=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,f=3*t._l23_a*(t._l23_a+t._l12_a);a=(a*l+t._x1*t._l23_2a-e*t._l12_2a)/f,u=(u*l+t._y1*t._l23_2a-n*t._l12_2a)/f}t._context.bezierCurveTo(r,i,a,u,t._x2,t._y2)}function i(t,e){this._context=t,this._alpha=e}e.b=r;var o=n(35),a=n(48);i.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,i=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+i*i,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3;default:r(this,t,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}},e.a=function t(e){function n(t){return e?new i(t,e):new a.b(t,0)}return n.alpha=function(e){return t(+e)},n}(.5)},function(t,e,n){\"use strict\";var r=n(32),i=n(17),o=n(49),a=n(77);e.a=function(){function t(t){var i,o,a,p=t.length,h=!1;for(null==s&&(f=l(a=n.i(r.a)())),i=0;i<=p;++i)!(i<p&&c(o=t[i],i,t))===h&&((h=!h)?f.lineStart():f.lineEnd()),h&&f.point(+e(o,i,t),+u(o,i,t));if(a)return f=null,a+\"\"||null}var e=a.a,u=a.b,c=n.i(i.a)(!0),s=null,l=o.a,f=null;return t.x=function(r){return arguments.length?(e=\"function\"==typeof r?r:n.i(i.a)(+r),t):e},t.y=function(e){return arguments.length?(u=\"function\"==typeof e?e:n.i(i.a)(+e),t):u},t.defined=function(e){return arguments.length?(c=\"function\"==typeof e?e:n.i(i.a)(!!e),t):c},t.curve=function(e){return arguments.length?(l=e,null!=s&&(f=l(s)),t):l},t.context=function(e){return arguments.length?(null==e?s=f=null:f=l(s=e),t):s},t}},function(t,e,n){\"use strict\";function r(t){for(var e,n=0,r=-1,i=t.length;++r<i;)(e=+t[r][1])&&(n+=e);return n}e.b=r;var i=n(37);e.a=function(t){var e=t.map(r);return n.i(i.a)(t).sort(function(t,n){return e[t]-e[n]})}},function(t,e,n){\"use strict\";function r(t){return t[0]}function i(t){return t[1]}e.a=r,e.b=i},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var r=n(79);n.d(e,\"timeFormatDefaultLocale\",function(){return r.a}),n.d(e,\"timeFormat\",function(){return r.b}),n.d(e,\"timeParse\",function(){return r.c}),n.d(e,\"utcFormat\",function(){return r.d}),n.d(e,\"utcParse\",function(){return r.e});var i=n(152);n.d(e,\"timeFormatLocale\",function(){return i.a});var o=n(151);n.d(e,\"isoFormat\",function(){return o.a});var a=n(314);n.d(e,\"isoParse\",function(){return a.a})},function(t,e,n){\"use strict\";function r(t){return i=n.i(s.a)(t),o=i.format,a=i.parse,u=i.utcFormat,c=i.utcParse,i}n.d(e,\"b\",function(){return o}),n.d(e,\"c\",function(){return a}),n.d(e,\"d\",function(){return u}),n.d(e,\"e\",function(){return c}),e.a=r;var i,o,a,u,c,s=n(152);r({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\"]})},function(t,e,n){\"use strict\";var r=(n(5),n(317));n.d(e,\"v\",function(){return r.a}),n.d(e,\"p\",function(){return r.a});var i=n(320);n.d(e,\"u\",function(){return i.a}),n.d(e,\"o\",function(){return i.a});var o=n(318);n.d(e,\"t\",function(){return o.a});var a=n(316);n.d(e,\"s\",function(){return a.a});var u=n(315);n.d(e,\"d\",function(){return u.a});var c=n(327);n.d(e,\"r\",function(){return c.a}),n.d(e,\"f\",function(){return c.a}),n.d(e,\"c\",function(){return c.b}),n.d(e,\"g\",function(){return c.c});var s=n(319);n.d(e,\"q\",function(){return s.a});var l=n(328);n.d(e,\"e\",function(){return l.a});var f=n(323);n.d(e,\"n\",function(){return f.a});var p=n(322);n.d(e,\"m\",function(){return p.a});var h=n(321);n.d(e,\"b\",function(){return h.a});var d=n(325);n.d(e,\"l\",function(){return d.a}),n.d(e,\"i\",function(){return d.a}),n.d(e,\"a\",function(){return d.b}),n.d(e,\"j\",function(){return d.c});var v=n(324);n.d(e,\"k\",function(){return v.a});var g=n(326);n.d(e,\"h\",function(){return g.a})},function(t,e,n){\"use strict\";function r(t,e){return t===e?0!==t||0!==e||1/t==1/e:t!==t&&e!==e}function i(t,e){if(r(t,e))return!0;if(\"object\"!=typeof t||null===t||\"object\"!=typeof e||null===e)return!1;var n=Object.keys(t),i=Object.keys(e);if(n.length!==i.length)return!1;for(var a=0;a<n.length;a++)if(!o.call(e,n[a])||!r(t[n[a]],e[n[a]]))return!1;return!0}var o=Object.prototype.hasOwnProperty;t.exports=i},function(t,e,n){\"use strict\";function r(t,e){return Array.isArray(e)&&(e=e[1]),e?e.nextSibling:t.firstChild}function i(t,e,n){l.insertTreeBefore(t,e,n)}function o(t,e,n){Array.isArray(e)?u(t,e[0],e[1],n):v(t,e,n)}function a(t,e){if(Array.isArray(e)){var n=e[1];e=e[0],c(t,e,n),t.removeChild(n)}t.removeChild(e)}function u(t,e,n,r){for(var i=e;;){var o=i.nextSibling;if(v(t,i,r),i===n)break;i=o}}function c(t,e,n){for(;;){var r=e.nextSibling;if(r===n)break;t.removeChild(r)}}function s(t,e,n){var r=t.parentNode,i=t.nextSibling;i===e?n&&v(r,document.createTextNode(n),i):n?(d(i,n),c(r,i,e)):c(r,t,e)}var l=n(20),f=n(350),p=(n(4),n(9),n(91)),h=n(57),d=n(176),v=p(function(t,e,n){t.insertBefore(e,n)}),g=f.dangerouslyReplaceNodeWithMarkup,m={dangerouslyReplaceNodeWithMarkup:g,replaceDelimitedText:s,processUpdates:function(t,e){for(var n=0;n<e.length;n++){var u=e[n];switch(u.type){case\"INSERT_MARKUP\":i(t,u.content,r(t,u.afterNode));break;case\"MOVE_EXISTING\":o(t,u.fromNode,r(t,u.afterNode));break;case\"SET_MARKUP\":h(t,u.content);break;case\"TEXT_CONTENT\":d(t,u.content);break;case\"REMOVE_NODE\":a(t,u.fromNode)}}}};t.exports=m},function(t,e,n){\"use strict\";var r={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};t.exports=r},function(t,e,n){\"use strict\";function r(){if(u)for(var t in c){var e=c[t],n=u.indexOf(t);if(n>-1||a(\"96\",t),!s.plugins[n]){e.extractEvents||a(\"97\",t),s.plugins[n]=e;var r=e.eventTypes;for(var o in r)i(r[o],e,o)||a(\"98\",o,t)}}}function i(t,e,n){s.eventNameDispatchConfigs.hasOwnProperty(n)&&a(\"99\",n),s.eventNameDispatchConfigs[n]=t;var r=t.phasedRegistrationNames;if(r){for(var i in r)if(r.hasOwnProperty(i)){var u=r[i];o(u,e,n)}return!0}return!!t.registrationName&&(o(t.registrationName,e,n),!0)}function o(t,e,n){s.registrationNameModules[t]&&a(\"100\",t),s.registrationNameModules[t]=e,s.registrationNameDependencies[t]=e.eventTypes[n].dependencies}var a=n(1),u=(n(0),null),c={},s={plugins:[],eventNameDispatchConfigs:{},registrationNameModules:{},registrationNameDependencies:{},possibleRegistrationNames:null,injectEventPluginOrder:function(t){u&&a(\"101\"),u=Array.prototype.slice.call(t),r()},injectEventPluginsByName:function(t){var e=!1;for(var n in t)if(t.hasOwnProperty(n)){var i=t[n];c.hasOwnProperty(n)&&c[n]===i||(c[n]&&a(\"102\",n),c[n]=i,e=!0)}e&&r()},getPluginModuleForEvent:function(t){var e=t.dispatchConfig;if(e.registrationName)return s.registrationNameModules[e.registrationName]||null;if(void 0!==e.phasedRegistrationNames){var n=e.phasedRegistrationNames;for(var r in n)if(n.hasOwnProperty(r)){var i=s.registrationNameModules[n[r]];if(i)return i}}return null},_resetEventPlugins:function(){u=null;for(var t in c)c.hasOwnProperty(t)&&delete c[t];s.plugins.length=0;var e=s.eventNameDispatchConfigs;for(var n in e)e.hasOwnProperty(n)&&delete e[n];var r=s.registrationNameModules;for(var i in r)r.hasOwnProperty(i)&&delete r[i]}};t.exports=s},function(t,e,n){\"use strict\";function r(t){var e={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+(\"\"+t).replace(/[=:]/g,function(t){return e[t]})}function i(t){var e=/(=0|=2)/g,n={\"=0\":\"=\",\"=2\":\":\"};return(\"\"+(\".\"===t[0]&&\"$\"===t[1]?t.substring(2):t.substring(1))).replace(e,function(t){return n[t]})}var o={escape:r,unescape:i};t.exports=o},function(t,e,n){\"use strict\";function r(t){null!=t.checkedLink&&null!=t.valueLink&&u(\"87\")}function i(t){r(t),(null!=t.value||null!=t.onChange)&&u(\"88\")}function o(t){r(t),(null!=t.checked||null!=t.onChange)&&u(\"89\")}function a(t){if(t){var e=t.getName();if(e)return\" Check the render method of `\"+e+\"`.\"}return\"\"}var u=n(1),c=n(380),s=n(157),l=n(26),f=s(l.isValidElement),p=(n(0),n(2),{button:!0,checkbox:!0,image:!0,hidden:!0,radio:!0,reset:!0,submit:!0}),h={value:function(t,e,n){return!t[e]||p[t.type]||t.onChange||t.readOnly||t.disabled?null:new Error(\"You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange` or `readOnly`.\")},checked:function(t,e,n){return!t[e]||t.onChange||t.readOnly||t.disabled?null:new Error(\"You provided a `checked` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultChecked`. Otherwise, set either `onChange` or `readOnly`.\")},onChange:f.func},d={},v={checkPropTypes:function(t,e,n){for(var r in h){if(h.hasOwnProperty(r))var i=h[r](e,r,t,\"prop\",null,c);if(i instanceof Error&&!(i.message in d)){d[i.message]=!0;a(n)}}},getValue:function(t){return t.valueLink?(i(t),t.valueLink.value):t.value},getChecked:function(t){return t.checkedLink?(o(t),t.checkedLink.value):t.checked},executeOnChange:function(t,e){return t.valueLink?(i(t),t.valueLink.requestChange(e.target.value)):t.checkedLink?(o(t),t.checkedLink.requestChange(e.target.checked)):t.onChange?t.onChange.call(void 0,e):void 0}};t.exports=v},function(t,e,n){\"use strict\";var r=n(1),i=(n(0),!1),o={replaceNodeWithMarkup:null,processChildrenUpdates:null,injection:{injectEnvironment:function(t){i&&r(\"104\"),o.replaceNodeWithMarkup=t.replaceNodeWithMarkup,o.processChildrenUpdates=t.processChildrenUpdates,i=!0}}};t.exports=o},function(t,e,n){\"use strict\";function r(t,e,n){try{e(n)}catch(t){null===i&&(i=t)}}var i=null,o={invokeGuardedCallback:r,invokeGuardedCallbackWithCatch:r,rethrowCaughtError:function(){if(i){var t=i;throw i=null,t}}};t.exports=o},function(t,e,n){\"use strict\";function r(t){c.enqueueUpdate(t)}function i(t){var e=typeof t;if(\"object\"!==e)return e;var n=t.constructor&&t.constructor.name||e,r=Object.keys(t);return r.length>0&&r.length<20?n+\" (keys: \"+r.join(\", \")+\")\":n}function o(t,e){var n=u.get(t);if(!n){return null}return n}var a=n(1),u=(n(15),n(39)),c=(n(9),n(12)),s=(n(0),n(2),{isMounted:function(t){var e=u.get(t);return!!e&&!!e._renderedComponent},enqueueCallback:function(t,e,n){s.validateCallback(e,n);var i=o(t);if(!i)return null;i._pendingCallbacks?i._pendingCallbacks.push(e):i._pendingCallbacks=[e],r(i)},enqueueCallbackInternal:function(t,e){t._pendingCallbacks?t._pendingCallbacks.push(e):t._pendingCallbacks=[e],r(t)},enqueueForceUpdate:function(t){var e=o(t,\"forceUpdate\");e&&(e._pendingForceUpdate=!0,r(e))},enqueueReplaceState:function(t,e,n){var i=o(t,\"replaceState\");i&&(i._pendingStateQueue=[e],i._pendingReplaceState=!0,void 0!==n&&null!==n&&(s.validateCallback(n,\"replaceState\"),i._pendingCallbacks?i._pendingCallbacks.push(n):i._pendingCallbacks=[n]),r(i))},enqueueSetState:function(t,e){var n=o(t,\"setState\");if(n){(n._pendingStateQueue||(n._pendingStateQueue=[])).push(e),r(n)}},enqueueElementInternal:function(t,e,n){t._pendingElement=e,t._context=n,r(t)},validateCallback:function(t,e){t&&\"function\"!=typeof t&&a(\"122\",e,i(t))}});t.exports=s},function(t,e,n){\"use strict\";var r={currentScrollLeft:0,currentScrollTop:0,refreshScrollValues:function(t){r.currentScrollLeft=t.x,r.currentScrollTop=t.y}};t.exports=r},function(t,e,n){\"use strict\";var r=function(t){return\"undefined\"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,n,r,i){MSApp.execUnsafeLocalFunction(function(){return t(e,n,r,i)})}:t};t.exports=r},function(t,e,n){\"use strict\";function r(t){var e,n=t.keyCode;return\"charCode\"in t?0===(e=t.charCode)&&13===n&&(e=13):e=n,e>=32||13===e?e:0}t.exports=r},function(t,e,n){\"use strict\";function r(t){var e=this,n=e.nativeEvent;if(n.getModifierState)return n.getModifierState(t);var r=o[t];return!!r&&!!n[r]}function i(t){return r}var o={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};t.exports=i},function(t,e,n){\"use strict\";function r(t){var e=t.target||t.srcElement||window;return e.correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}t.exports=r},function(t,e,n){\"use strict\";/**\n",
       " * Checks if an event is supported in the current execution environment.\n",
       " *\n",
       " * NOTE: This will not work correctly for non-generic events such as `change`,\n",
       " * `reset`, `load`, `error`, and `select`.\n",
       " *\n",
       " * Borrows from Modernizr.\n",
       " *\n",
       " * @param {string} eventNameSuffix Event name, e.g. \"click\".\n",
       " * @param {?boolean} capture Check if the capture phase is supported.\n",
       " * @return {boolean} True if the event is supported.\n",
       " * @internal\n",
       " * @license Modernizr 3.0.0pre (Custom Build) | MIT\n",
       " */\n",
       "function r(t,e){if(!o.canUseDOM||e&&!(\"addEventListener\"in document))return!1;var n=\"on\"+t,r=n in document;if(!r){var a=document.createElement(\"div\");a.setAttribute(n,\"return;\"),r=\"function\"==typeof a[n]}return!r&&i&&\"wheel\"===t&&(r=document.implementation.hasFeature(\"Events.wheel\",\"3.0\")),r}var i,o=n(6);o.canUseDOM&&(i=document.implementation&&document.implementation.hasFeature&&!0!==document.implementation.hasFeature(\"\",\"\")),t.exports=r},function(t,e,n){\"use strict\";function r(t,e){var n=null===t||!1===t,r=null===e||!1===e;if(n||r)return n===r;var i=typeof t,o=typeof e;return\"string\"===i||\"number\"===i?\"string\"===o||\"number\"===o:\"object\"===o&&t.type===e.type&&t.key===e.key}t.exports=r},function(t,e,n){\"use strict\";var r=(n(3),n(11)),i=(n(2),r);t.exports=i},function(t,e){var n;n=function(){return this}();try{n=n||Function(\"return this\")()||(0,eval)(\"this\")}catch(t){\"object\"==typeof window&&(n=window)}t.exports=n},function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,\"loaded\",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,\"id\",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}},function(t,e,n){\"use strict\";n.d(e,\"b\",function(){return i}),n.d(e,\"a\",function(){return o});var r=Array.prototype,i=r.slice,o=r.map},function(t,e,n){\"use strict\";n.d(e,\"b\",function(){return a}),n.d(e,\"c\",function(){return u});var r=n(19),i=n(102),o=n.i(i.a)(r.a),a=o.right,u=o.left;e.a=a},function(t,e,n){\"use strict\";function r(t){return function(e,r){return n.i(i.a)(t(e),r)}}var i=n(19);e.a=function(t){return 1===t.length&&(t=r(t)),{left:function(e,n,r,i){for(null==r&&(r=0),null==i&&(i=e.length);r<i;){var o=r+i>>>1;t(e[o],n)<0?r=o+1:i=o}return r},right:function(e,n,r,i){for(null==r&&(r=0),null==i&&(i=e.length);r<i;){var o=r+i>>>1;t(e[o],n)>0?i=o:r=o+1}return r}}}},function(t,e,n){\"use strict\";var r=n(111);e.a=function(t,e){var i=n.i(r.a)(t,e);return i?Math.sqrt(i):i}},function(t,e,n){\"use strict\";e.a=function(t,e){var n,r,i,o=t.length,a=-1;if(null==e){for(;++a<o;)if(null!=(n=t[a])&&n>=n)for(r=i=n;++a<o;)null!=(n=t[a])&&(r>n&&(r=n),i<n&&(i=n))}else for(;++a<o;)if(null!=(n=e(t[a],a,t))&&n>=n)for(r=i=n;++a<o;)null!=(n=e(t[a],a,t))&&(r>n&&(r=n),i<n&&(i=n));return[r,i]}},function(t,e,n){\"use strict\";e.a=function(t,e){var n,r,i=t.length,o=-1;if(null==e){for(;++o<i;)if(null!=(n=t[o])&&n>=n)for(r=n;++o<i;)null!=(n=t[o])&&r>n&&(r=n)}else for(;++o<i;)if(null!=(n=e(t[o],o,t))&&n>=n)for(r=n;++o<i;)null!=(n=e(t[o],o,t))&&r>n&&(r=n);return r}},function(t,e,n){\"use strict\";function r(t,e){return[t,e]}e.b=r,e.a=function(t,e){null==e&&(e=r);for(var n=0,i=t.length-1,o=t[0],a=new Array(i<0?0:i);n<i;)a[n]=e(o,o=t[++n]);return a}},function(t,e,n){\"use strict\";e.a=function(t,e,n){t=+t,e=+e,n=(i=arguments.length)<2?(e=t,t=0,1):i<3?1:+n;for(var r=-1,i=0|Math.max(0,Math.ceil((e-t)/n)),o=new Array(i);++r<i;)o[r]=t+r*n;return o}},function(t,e,n){\"use strict\";e.a=function(t){return Math.ceil(Math.log(t.length)/Math.LN2)+1}},function(t,e,n){\"use strict\";function r(t,e,n){var r=(e-t)/Math.max(0,n),i=Math.floor(Math.log(r)/Math.LN10),c=r/Math.pow(10,i);return i>=0?(c>=o?10:c>=a?5:c>=u?2:1)*Math.pow(10,i):-Math.pow(10,-i)/(c>=o?10:c>=a?5:c>=u?2:1)}function i(t,e,n){var r=Math.abs(e-t)/Math.max(0,n),i=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),c=r/i;return c>=o?i*=10:c>=a?i*=5:c>=u&&(i*=2),e<t?-i:i}e.b=r,e.c=i;var o=Math.sqrt(50),a=Math.sqrt(10),u=Math.sqrt(2);e.a=function(t,e,n){var i,o,a,u,c=-1;if(e=+e,t=+t,n=+n,t===e&&n>0)return[t];if((i=e<t)&&(o=t,t=e,e=o),0===(u=r(t,e,n))||!isFinite(u))return[];if(u>0)for(t=Math.ceil(t/u),e=Math.floor(e/u),a=new Array(o=Math.ceil(e-t+1));++c<o;)a[c]=(t+c)*u;else for(t=Math.floor(t*u),e=Math.ceil(e*u),a=new Array(o=Math.ceil(t-e+1));++c<o;)a[c]=(t-c)/u;return i&&a.reverse(),a}},function(t,e,n){\"use strict\";function r(t){return t.length}var i=n(105);e.a=function(t){if(!(u=t.length))return[];for(var e=-1,o=n.i(i.a)(t,r),a=new Array(o);++e<o;)for(var u,c=-1,s=a[e]=new Array(u);++c<u;)s[c]=t[c][e];return a}},function(t,e,n){\"use strict\";var r=n(28);e.a=function(t,e){var i,o,a=t.length,u=0,c=-1,s=0,l=0;if(null==e)for(;++c<a;)isNaN(i=n.i(r.a)(t[c]))||(o=i-s,s+=o/++u,l+=o*(i-s));else for(;++c<a;)isNaN(i=n.i(r.a)(e(t[c],c,t)))||(o=i-s,s+=o/++u,l+=o*(i-s));if(u>1)return l/(u-1)}},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var r=n(209);n.d(e,\"axisTop\",function(){return r.a}),n.d(e,\"axisRight\",function(){return r.b}),n.d(e,\"axisBottom\",function(){return r.c}),n.d(e,\"axisLeft\",function(){return r.d})},function(t,e,n){\"use strict\";n.d(e,\"b\",function(){return r}),n.d(e,\"a\",function(){return i});var r=Math.PI/180,i=180/Math.PI},function(t,e,n){\"use strict\";n.d(e,\"b\",function(){return r});var r,i=n(63);e.a=function(t,e){var o=n.i(i.a)(t,e);if(!o)return t+\"\";var a=o[0],u=o[1],c=u-(r=3*Math.max(-8,Math.min(8,Math.floor(u/3))))+1,s=a.length;return c===s?a:c>s?a+new Array(c-s+1).join(\"0\"):c>0?a.slice(0,c)+\".\"+a.slice(c):\"0.\"+new Array(1-c).join(\"0\")+n.i(i.a)(t,Math.max(0,e+c-1))[0]}},function(t,e,n){\"use strict\";function r(t){return new i(t)}function i(t){if(!(e=a.exec(t)))throw new Error(\"invalid format: \"+t);var e,n=e[1]||\" \",r=e[2]||\">\",i=e[3]||\"-\",u=e[4]||\"\",c=!!e[5],s=e[6]&&+e[6],l=!!e[7],f=e[8]&&+e[8].slice(1),p=e[9]||\"\";\"n\"===p?(l=!0,p=\"g\"):o.a[p]||(p=\"\"),(c||\"0\"===n&&\"=\"===r)&&(c=!0,n=\"0\",r=\"=\"),this.fill=n,this.align=r,this.sign=i,this.symbol=u,this.zero=c,this.width=s,this.comma=l,this.precision=f,this.type=p}e.a=r;var o=n(116),a=/^(?:(.)?([<>=^]))?([+\\-\\( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?([a-z%])?$/i;r.prototype=i.prototype,i.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?\"0\":\"\")+(null==this.width?\"\":Math.max(1,0|this.width))+(this.comma?\",\":\"\")+(null==this.precision?\"\":\".\"+Math.max(0,0|this.precision))+this.type}},function(t,e,n){\"use strict\";var r=n(220),i=n(114),o=n(223);e.a={\"\":r.a,\"%\":function(t,e){return(100*t).toFixed(e)},b:function(t){return Math.round(t).toString(2)},c:function(t){return t+\"\"},d:function(t){return Math.round(t).toString(10)},e:function(t,e){return t.toExponential(e)},f:function(t,e){return t.toFixed(e)},g:function(t,e){return t.toPrecision(e)},o:function(t){return Math.round(t).toString(8)},p:function(t,e){return n.i(o.a)(100*t,e)},r:o.a,s:i.a,X:function(t){return Math.round(t).toString(16).toUpperCase()},x:function(t){return Math.round(t).toString(16)}}},function(t,e,n){\"use strict\";var r=n(42),i=n(221),o=n(222),a=n(115),u=n(116),c=n(114),s=n(224),l=[\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];e.a=function(t){function e(t){function e(t){var e,n,a,u=x,s=w;if(\"c\"===b)s=C(t)+s,t=\"\";else{t=+t;var h=t<0;if(t=C(Math.abs(t),_),h&&0==+t&&(h=!1),u=(h?\"(\"===o?o:\"-\":\"-\"===o||\"(\"===o?\"\":o)+u,s=(\"s\"===b?l[8+c.b/3]:\"\")+s+(h&&\"(\"===o?\")\":\"\"),k)for(e=-1,n=t.length;++e<n;)if(48>(a=t.charCodeAt(e))||a>57){s=(46===a?d+t.slice(e+1):t.slice(e))+s,t=t.slice(0,e);break}}y&&!f&&(t=p(t,1/0));var g=u.length+t.length+s.length,E=g<m?new Array(m-g+1).join(r):\"\";switch(y&&f&&(t=p(E+t,E.length?m-s.length:1/0),E=\"\"),i){case\"<\":t=u+t+s+E;break;case\"=\":t=u+E+t+s;break;case\"^\":t=E.slice(0,g=E.length>>1)+u+t+s+E.slice(g);break;default:t=E+u+t+s}return v(t)}t=n.i(a.a)(t);var r=t.fill,i=t.align,o=t.sign,s=t.symbol,f=t.zero,m=t.width,y=t.comma,_=t.precision,b=t.type,x=\"$\"===s?h[0]:\"#\"===s&&/[boxX]/.test(b)?\"0\"+b.toLowerCase():\"\",w=\"$\"===s?h[1]:/[%p]/.test(b)?g:\"\",C=u.a[b],k=!b||/[defgprs%]/.test(b);return _=null==_?b?6:12:/[gprs]/.test(b)?Math.max(1,Math.min(21,_)):Math.max(0,Math.min(20,_)),e.toString=function(){return t+\"\"},e}function f(t,i){var o=e((t=n.i(a.a)(t),t.type=\"f\",t)),u=3*Math.max(-8,Math.min(8,Math.floor(n.i(r.a)(i)/3))),c=Math.pow(10,-u),s=l[8+u/3];return function(t){return o(c*t)+s}}var p=t.grouping&&t.thousands?n.i(i.a)(t.grouping,t.thousands):s.a,h=t.currency,d=t.decimal,v=t.numerals?n.i(o.a)(t.numerals):s.a,g=t.percent||\"%\";return{format:e,formatPrefix:f}}},function(t,e,n){\"use strict\";var r=n(65);e.a=function(t,e){var i,o=e?e.length:0,a=t?Math.min(o,t.length):0,u=new Array(a),c=new Array(o);for(i=0;i<a;++i)u[i]=n.i(r.a)(t[i],e[i]);for(;i<o;++i)c[i]=e[i];return function(t){for(i=0;i<a;++i)c[i]=u[i](t);return c}}},function(t,e,n){\"use strict\";var r=n(64);e.a=function(t){var e=t.length;return function(i){var o=Math.floor(((i%=1)<0?++i:i)*e),a=t[(o+e-1)%e],u=t[o%e],c=t[(o+1)%e],s=t[(o+2)%e];return n.i(r.b)((i-o/e)*e,a,u,c,s)}}},function(t,e,n){\"use strict\";e.a=function(t){return function(){return t}}},function(t,e,n){\"use strict\";e.a=function(t,e){var n=new Date;return t=+t,e-=t,function(r){return n.setTime(t+e*r),n}}},function(t,e,n){\"use strict\";var r=n(65);e.a=function(t,e){var i,o={},a={};null!==t&&\"object\"==typeof t||(t={}),null!==e&&\"object\"==typeof e||(e={});for(i in e)i in t?o[i]=n.i(r.a)(t[i],e[i]):a[i]=e[i];return function(t){for(i in o)a[i]=o[i](t);return a}}},function(t,e,n){\"use strict\";function r(t){return function(e){var r,o,a=e.length,u=new Array(a),c=new Array(a),s=new Array(a);for(r=0;r<a;++r)o=n.i(i.rgb)(e[r]),u[r]=o.r||0,c[r]=o.g||0,s[r]=o.b||0;return u=t(u),c=t(c),s=t(s),o.opacity=1,function(t){return o.r=u(t),o.g=c(t),o.b=s(t),o+\"\"}}}var i=n(10),o=n(64),a=n(119),u=n(31);e.a=function t(e){function r(t,e){var r=o((t=n.i(i.rgb)(t)).r,(e=n.i(i.rgb)(e)).r),a=o(t.g,e.g),c=o(t.b,e.b),s=n.i(u.a)(t.opacity,e.opacity);return function(e){return t.r=r(e),t.g=a(e),t.b=c(e),t.opacity=s(e),t+\"\"}}var o=n.i(u.c)(e);return r.gamma=t,r}(1);r(o.a),r(a.a)},function(t,e,n){\"use strict\";function r(t){return function(){return t}}function i(t){return function(e){return t(e)+\"\"}}var o=n(43),a=/[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,u=new RegExp(a.source,\"g\");e.a=function(t,e){var c,s,l,f=a.lastIndex=u.lastIndex=0,p=-1,h=[],d=[];for(t+=\"\",e+=\"\";(c=a.exec(t))&&(s=u.exec(e));)(l=s.index)>f&&(l=e.slice(f,l),h[p]?h[p]+=l:h[++p]=l),(c=c[0])===(s=s[0])?h[p]?h[p]+=s:h[++p]=s:(h[++p]=null,d.push({i:p,x:n.i(o.a)(c,s)})),f=u.lastIndex;return f<e.length&&(l=e.slice(f),h[p]?h[p]+=l:h[++p]=l),h.length<2?d[0]?i(d[0].x):r(e):(e=d.length,function(t){for(var n,r=0;r<e;++r)h[(n=d[r]).i]=n.x(t);return h.join(\"\")})}},function(t,e,n){\"use strict\";e.a=function(t,e){t=t.slice();var n,r=0,i=t.length-1,o=t[r],a=t[i];return a<o&&(n=r,r=i,i=n,n=o,o=a,a=n),t[r]=e.floor(o),t[i]=e.ceil(a),t}},function(t,e,n){\"use strict\";e.a=function(t){return+t}},function(t,e,n){\"use strict\";function r(t){function e(e){var n=e+\"\",r=u.get(n);if(!r){if(s!==a)return s;u.set(n,r=c.push(e))}return t[(r-1)%t.length]}var u=n.i(i.a)(),c=[],s=a;return t=null==t?[]:o.b.call(t),e.domain=function(t){if(!arguments.length)return c.slice();c=[],u=n.i(i.a)();for(var r,o,a=-1,s=t.length;++a<s;)u.has(o=(r=t[a])+\"\")||u.set(o,c.push(r));return e},e.range=function(n){return arguments.length?(t=o.b.call(n),e):t.slice()},e.unknown=function(t){return arguments.length?(s=t,e):s},e.copy=function(){return r().domain(c).range(t).unknown(s)},e}n.d(e,\"b\",function(){return a}),e.a=r;var i=n(211),o=n(16),a={name:\"implicit\"}},function(t,e,n){\"use strict\";function r(t){return new Date(t)}function i(t){return t instanceof Date?+t:+new Date(+t)}function o(t,e,c,s,b,x,w,C,k){function E(n){return(w(n)<n?A:x(n)<n?P:b(n)<n?O:s(n)<n?I:e(n)<n?c(n)<n?D:R:t(n)<n?L:U)(n)}function M(e,r,i,o){if(null==e&&(e=10),\"number\"==typeof e){var u=Math.abs(i-r)/e,c=n.i(a.bisector)(function(t){return t[2]}).right(F,u);c===F.length?(o=n.i(a.tickStep)(r/_,i/_,e),e=t):c?(c=F[u/F[c-1][2]<F[c][2]/u?c-1:c],o=c[1],e=c[0]):(o=Math.max(n.i(a.tickStep)(r,i,e),1),e=C)}return null==o?e:e.every(o)}var T=n.i(f.a)(f.b,u.a),S=T.invert,N=T.domain,A=k(\".%L\"),P=k(\":%S\"),O=k(\"%I:%M\"),I=k(\"%I %p\"),D=k(\"%a %d\"),R=k(\"%b %d\"),L=k(\"%B\"),U=k(\"%Y\"),F=[[w,1,h],[w,5,5*h],[w,15,15*h],[w,30,30*h],[x,1,d],[x,5,5*d],[x,15,15*d],[x,30,30*d],[b,1,v],[b,3,3*v],[b,6,6*v],[b,12,12*v],[s,1,g],[s,2,2*g],[c,1,m],[e,1,y],[e,3,3*y],[t,1,_]];return T.invert=function(t){return new Date(S(t))},T.domain=function(t){return arguments.length?N(l.a.call(t,i)):N().map(r)},T.ticks=function(t,e){var n,r=N(),i=r[0],o=r[r.length-1],a=o<i;return a&&(n=i,i=o,o=n),n=M(t,i,o,e),n=n?n.range(i,o+1):[],a?n.reverse():n},T.tickFormat=function(t,e){return null==e?E:k(e)},T.nice=function(t,e){var r=N();return(t=M(t,r[0],r[r.length-1],e))?N(n.i(p.a)(r,t)):T},T.copy=function(){return n.i(f.c)(T,o(t,e,c,s,b,x,w,C,k))},T}e.b=o;var a=n(7),u=n(30),c=n(80),s=n(78),l=n(16),f=n(44),p=n(125),h=1e3,d=60*h,v=60*d,g=24*v,m=7*g,y=30*g,_=365*g;e.a=function(){return o(c.e,c.q,c.r,c.d,c.s,c.t,c.u,c.v,s.timeFormat).domain([new Date(2e3,0,1),new Date(2e3,0,2)])}},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var r=n(257);n.d(e,\"create\",function(){return r.a});var i=n(45);n.d(e,\"creator\",function(){return i.a});var o=n(258);n.d(e,\"local\",function(){return o.a});var a=n(130);n.d(e,\"matcher\",function(){return a.a});var u=n(259);n.d(e,\"mouse\",function(){return u.a});var c=n(68);n.d(e,\"namespace\",function(){return c.a});var s=n(69);n.d(e,\"namespaces\",function(){return s.a});var l=n(46);n.d(e,\"clientPoint\",function(){return l.a});var f=n(131);n.d(e,\"select\",function(){return f.a});var p=n(260);n.d(e,\"selectAll\",function(){return p.a});var h=n(8);n.d(e,\"selection\",function(){return h.a});var d=n(71);n.d(e,\"selector\",function(){return d.a});var v=n(135);n.d(e,\"selectorAll\",function(){return v.a});var g=n(134);n.d(e,\"style\",function(){return g.a});var m=n(288);n.d(e,\"touch\",function(){return m.a});var y=n(289);n.d(e,\"touches\",function(){return y.a});var _=n(73);n.d(e,\"window\",function(){return _.a});var b=n(70);n.d(e,\"event\",function(){return b.a}),n.d(e,\"customEvent\",function(){return b.b})},function(t,e,n){\"use strict\";var r=function(t){return function(){return this.matches(t)}};if(\"undefined\"!=typeof document){var i=document.documentElement;if(!i.matches){var o=i.webkitMatchesSelector||i.msMatchesSelector||i.mozMatchesSelector||i.oMatchesSelector;r=function(t){return function(){return o.call(this,t)}}}}e.a=r},function(t,e,n){\"use strict\";var r=n(8);e.a=function(t){return\"string\"==typeof t?new r.b([[document.querySelector(t)]],[document.documentElement]):new r.b([[t]],r.c)}},function(t,e,n){\"use strict\";function r(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}e.b=r;var i=n(133),o=n(8);e.a=function(){return new o.b(this._enter||this._groups.map(i.a),this._parents)},r.prototype={constructor:r,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,e){return this._parent.insertBefore(t,e)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}}},function(t,e,n){\"use strict\";e.a=function(t){return new Array(t.length)}},function(t,e,n){\"use strict\";function r(t){return function(){this.style.removeProperty(t)}}function i(t,e,n){return function(){this.style.setProperty(t,e,n)}}function o(t,e,n){return function(){var r=e.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,n)}}function a(t,e){return t.style.getPropertyValue(e)||n.i(u.a)(t).getComputedStyle(t,null).getPropertyValue(e)}e.a=a;var u=n(73);e.b=function(t,e,n){return arguments.length>1?this.each((null==e?r:\"function\"==typeof e?o:i)(t,e,null==n?\"\":n)):a(this.node(),t)}},function(t,e,n){\"use strict\";function r(){return[]}e.a=function(t){return null==t?r:function(){return this.querySelectorAll(t)}}},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var r=n(290);n.d(e,\"arc\",function(){return r.a});var i=n(137);n.d(e,\"area\",function(){return i.a});var o=n(75);n.d(e,\"line\",function(){return o.a});var a=n(311);n.d(e,\"pie\",function(){return a.a});var u=n(291);n.d(e,\"areaRadial\",function(){return u.a}),n.d(e,\"radialArea\",function(){return u.a});var c=n(142);n.d(e,\"lineRadial\",function(){return c.a}),n.d(e,\"radialLine\",function(){return c.a});var s=n(143);n.d(e,\"pointRadial\",function(){return s.a});var l=n(303);n.d(e,\"linkHorizontal\",function(){return l.a}),n.d(e,\"linkVertical\",function(){return l.b}),n.d(e,\"linkRadial\",function(){return l.c});var f=n(313);n.d(e,\"symbol\",function(){return f.a}),n.d(e,\"symbols\",function(){return f.b});var p=n(144);n.d(e,\"symbolCircle\",function(){return p.a});var h=n(145);n.d(e,\"symbolCross\",function(){return h.a});var d=n(146);n.d(e,\"symbolDiamond\",function(){return d.a});var v=n(147);n.d(e,\"symbolSquare\",function(){return v.a});var g=n(148);n.d(e,\"symbolStar\",function(){return g.a});var m=n(149);n.d(e,\"symbolTriangle\",function(){return m.a});var y=n(150);n.d(e,\"symbolWye\",function(){return y.a});var _=n(292);n.d(e,\"curveBasisClosed\",function(){return _.a});var b=n(293);n.d(e,\"curveBasisOpen\",function(){return b.a});var x=n(47);n.d(e,\"curveBasis\",function(){return x.a});var w=n(294);n.d(e,\"curveBundle\",function(){return w.a});var C=n(139);n.d(e,\"curveCardinalClosed\",function(){return C.a});var k=n(140);n.d(e,\"curveCardinalOpen\",function(){return k.a});var E=n(48);n.d(e,\"curveCardinal\",function(){return E.a});var M=n(295);n.d(e,\"curveCatmullRomClosed\",function(){return M.a});var T=n(296);n.d(e,\"curveCatmullRomOpen\",function(){return T.a});var S=n(74);n.d(e,\"curveCatmullRom\",function(){return S.a});var N=n(297);n.d(e,\"curveLinearClosed\",function(){return N.a});var A=n(49);n.d(e,\"curveLinear\",function(){return A.a});var P=n(298);n.d(e,\"curveMonotoneX\",function(){return P.a}),n.d(e,\"curveMonotoneY\",function(){return P.b});var O=n(299);n.d(e,\"curveNatural\",function(){return O.a});var I=n(300);n.d(e,\"curveStep\",function(){return I.a}),n.d(e,\"curveStepAfter\",function(){return I.b}),n.d(e,\"curveStepBefore\",function(){return I.c});var D=n(312);n.d(e,\"stack\",function(){return D.a});var R=n(305);n.d(e,\"stackOffsetExpand\",function(){return R.a});var L=n(304);n.d(e,\"stackOffsetDiverging\",function(){return L.a});var U=n(36);n.d(e,\"stackOffsetNone\",function(){return U.a});var F=n(306);n.d(e,\"stackOffsetSilhouette\",function(){return F.a});var j=n(307);n.d(e,\"stackOffsetWiggle\",function(){return j.a});var B=n(76);n.d(e,\"stackOrderAscending\",function(){return B.a});var V=n(308);n.d(e,\"stackOrderDescending\",function(){return V.a});var W=n(309);n.d(e,\"stackOrderInsideOut\",function(){return W.a});var z=n(37);n.d(e,\"stackOrderNone\",function(){return z.a});var H=n(310);n.d(e,\"stackOrderReverse\",function(){return H.a})},function(t,e,n){\"use strict\";var r=n(32),i=n(17),o=n(49),a=n(75),u=n(77);e.a=function(){function t(t){var e,i,o,a,u,g=t.length,m=!1,y=new Array(g),_=new Array(g);for(null==h&&(v=d(u=n.i(r.a)())),e=0;e<=g;++e){if(!(e<g&&p(a=t[e],e,t))===m)if(m=!m)i=e,v.areaStart(),v.lineStart();else{for(v.lineEnd(),v.lineStart(),o=e-1;o>=i;--o)v.point(y[o],_[o]);v.lineEnd(),v.areaEnd()}m&&(y[e]=+c(a,e,t),_[e]=+l(a,e,t),v.point(s?+s(a,e,t):y[e],f?+f(a,e,t):_[e]))}if(u)return v=null,u+\"\"||null}function e(){return n.i(a.a)().defined(p).curve(d).context(h)}var c=u.a,s=null,l=n.i(i.a)(0),f=u.b,p=n.i(i.a)(!0),h=null,d=o.a,v=null;return t.x=function(e){return arguments.length?(c=\"function\"==typeof e?e:n.i(i.a)(+e),s=null,t):c},t.x0=function(e){return arguments.length?(c=\"function\"==typeof e?e:n.i(i.a)(+e),t):c},t.x1=function(e){return arguments.length?(s=null==e?null:\"function\"==typeof e?e:n.i(i.a)(+e),t):s},t.y=function(e){return arguments.length?(l=\"function\"==typeof e?e:n.i(i.a)(+e),f=null,t):l},t.y0=function(e){return arguments.length?(l=\"function\"==typeof e?e:n.i(i.a)(+e),t):l},t.y1=function(e){return arguments.length?(f=null==e?null:\"function\"==typeof e?e:n.i(i.a)(+e),t):f},t.lineX0=t.lineY0=function(){return e().x(c).y(l)},t.lineY1=function(){return e().x(c).y(f)},t.lineX1=function(){return e().x(s).y(l)},t.defined=function(e){return arguments.length?(p=\"function\"==typeof e?e:n.i(i.a)(!!e),t):p},t.curve=function(e){return arguments.length?(d=e,null!=h&&(v=d(h)),t):d},t.context=function(e){return arguments.length?(null==e?h=v=null:v=d(h=e),t):h},t}},function(t,e,n){\"use strict\";n.d(e,\"a\",function(){return r});var r=Array.prototype.slice},function(t,e,n){\"use strict\";function r(t,e){this._context=t,this._k=(1-e)/6}e.b=r;var i=n(50),o=n(48);r.prototype={areaStart:i.a,areaEnd:i.a,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:n.i(o.c)(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}},e.a=function t(e){function n(t){return new r(t,e)}return n.tension=function(e){return t(+e)},n}(0)},function(t,e,n){\"use strict\";function r(t,e){this._context=t,this._k=(1-e)/6}e.b=r;var i=n(48);r.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:n.i(i.c)(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}},e.a=function t(e){function n(t){return new r(t,e)}return n.tension=function(e){return t(+e)},n}(0)},function(t,e,n){\"use strict\";function r(t){this._curve=t}function i(t){function e(e){return new r(t(e))}return e._curve=t,e}n.d(e,\"b\",function(){return a}),e.a=i;var o=n(49),a=i(o.a);r.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(t,e){this._curve.point(e*Math.sin(t),e*-Math.cos(t))}}},function(t,e,n){\"use strict\";function r(t){var e=t.curve;return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t.curve=function(t){return arguments.length?e(n.i(i.a)(t)):e()._curve},t}e.b=r;var i=n(141),o=n(75);e.a=function(){return r(n.i(o.a)().curve(i.b))}},function(t,e,n){\"use strict\";e.a=function(t,e){return[(e=+e)*Math.cos(t-=Math.PI/2),e*Math.sin(t)]}},function(t,e,n){\"use strict\";var r=n(35);e.a={draw:function(t,e){var n=Math.sqrt(e/r.b);t.moveTo(n,0),t.arc(0,0,n,0,r.c)}}},function(t,e,n){\"use strict\";e.a={draw:function(t,e){var n=Math.sqrt(e/5)/2;t.moveTo(-3*n,-n),t.lineTo(-n,-n),t.lineTo(-n,-3*n),t.lineTo(n,-3*n),t.lineTo(n,-n),t.lineTo(3*n,-n),t.lineTo(3*n,n),t.lineTo(n,n),t.lineTo(n,3*n),t.lineTo(-n,3*n),t.lineTo(-n,n),t.lineTo(-3*n,n),t.closePath()}}},function(t,e,n){\"use strict\";var r=Math.sqrt(1/3),i=2*r;e.a={draw:function(t,e){var n=Math.sqrt(e/i),o=n*r;t.moveTo(0,-n),t.lineTo(o,0),t.lineTo(0,n),t.lineTo(-o,0),t.closePath()}}},function(t,e,n){\"use strict\";e.a={draw:function(t,e){var n=Math.sqrt(e),r=-n/2;t.rect(r,r,n,n)}}},function(t,e,n){\"use strict\";var r=n(35),i=Math.sin(r.b/10)/Math.sin(7*r.b/10),o=Math.sin(r.c/10)*i,a=-Math.cos(r.c/10)*i;e.a={draw:function(t,e){var n=Math.sqrt(.8908130915292852*e),i=o*n,u=a*n;t.moveTo(0,-n),t.lineTo(i,u);for(var c=1;c<5;++c){var s=r.c*c/5,l=Math.cos(s),f=Math.sin(s);t.lineTo(f*n,-l*n),t.lineTo(l*i-f*u,f*i+l*u)}t.closePath()}}},function(t,e,n){\"use strict\";var r=Math.sqrt(3);e.a={draw:function(t,e){var n=-Math.sqrt(e/(3*r));t.moveTo(0,2*n),t.lineTo(-r*n,-n),t.lineTo(r*n,-n),t.closePath()}}},function(t,e,n){\"use strict\";var r=-.5,i=Math.sqrt(3)/2,o=1/Math.sqrt(12),a=3*(o/2+1);e.a={draw:function(t,e){var n=Math.sqrt(e/a),u=n/2,c=n*o,s=u,l=n*o+n,f=-s,p=l;t.moveTo(u,c),t.lineTo(s,l),t.lineTo(f,p),t.lineTo(r*u-i*c,i*u+r*c),t.lineTo(r*s-i*l,i*s+r*l),t.lineTo(r*f-i*p,i*f+r*p),t.lineTo(r*u+i*c,r*c-i*u),t.lineTo(r*s+i*l,r*l-i*s),t.lineTo(r*f+i*p,r*p-i*f),t.closePath()}}},function(t,e,n){\"use strict\";function r(t){return t.toISOString()}n.d(e,\"b\",function(){return o});var i=n(79),o=\"%Y-%m-%dT%H:%M:%S.%LZ\",a=Date.prototype.toISOString?r:n.i(i.d)(o);e.a=a},function(t,e,n){\"use strict\";function r(t){if(0<=t.y&&t.y<100){var e=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return e.setFullYear(t.y),e}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function i(t){if(0<=t.y&&t.y<100){var e=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return e.setUTCFullYear(t.y),e}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function o(t){return{y:t,m:0,d:1,H:0,M:0,S:0,L:0}}function a(t){function e(t,e){return function(n){var r,i,o,a=[],u=-1,c=0,s=t.length;for(n instanceof Date||(n=new Date(+n));++u<s;)37===t.charCodeAt(u)&&(a.push(t.slice(c,u)),null!=(i=dt[r=t.charAt(++u)])?r=t.charAt(++u):i=\"e\"===r?\" \":\"0\",(o=e[r])&&(r=o(n,i)),a.push(r),c=u+1);return a.push(t.slice(c,u)),a.join(\"\")}}function a(t,e){return function(r){var a,c,s=o(1900),l=u(s,t,r+=\"\",0);if(l!=r.length)return null;if(\"Q\"in s)return new Date(s.Q);if(\"p\"in s&&(s.H=s.H%12+12*s.p),\"V\"in s){if(s.V<1||s.V>53)return null;\"w\"in s||(s.w=1),\"Z\"in s?(a=i(o(s.y)),c=a.getUTCDay(),a=c>4||0===c?ht.a.ceil(a):n.i(ht.a)(a),a=ht.b.offset(a,7*(s.V-1)),s.y=a.getUTCFullYear(),s.m=a.getUTCMonth(),s.d=a.getUTCDate()+(s.w+6)%7):(a=e(o(s.y)),c=a.getDay(),a=c>4||0===c?ht.c.ceil(a):n.i(ht.c)(a),a=ht.d.offset(a,7*(s.V-1)),s.y=a.getFullYear(),s.m=a.getMonth(),s.d=a.getDate()+(s.w+6)%7)}else(\"W\"in s||\"U\"in s)&&(\"w\"in s||(s.w=\"u\"in s?s.u%7:\"W\"in s?1:0),c=\"Z\"in s?i(o(s.y)).getUTCDay():e(o(s.y)).getDay(),s.m=0,s.d=\"W\"in s?(s.w+6)%7+7*s.W-(c+5)%7:s.w+7*s.U-(c+6)%7);return\"Z\"in s?(s.H+=s.Z/100|0,s.M+=s.Z%100,i(s)):e(s)}}function u(t,e,n,r){for(var i,o,a=0,u=e.length,c=n.length;a<u;){if(r>=c)return-1;if(37===(i=e.charCodeAt(a++))){if(i=e.charAt(a++),!(o=Zt[i in dt?e.charAt(a++):i])||(r=o(t,n,r))<0)return-1}else if(i!=n.charCodeAt(r++))return-1}return r}function c(t,e,n){var r=Bt.exec(e.slice(n));return r?(t.p=Vt[r[0].toLowerCase()],n+r[0].length):-1}function vt(t,e,n){var r=Ht.exec(e.slice(n));return r?(t.w=qt[r[0].toLowerCase()],n+r[0].length):-1}function gt(t,e,n){var r=Wt.exec(e.slice(n));return r?(t.w=zt[r[0].toLowerCase()],n+r[0].length):-1}function mt(t,e,n){var r=Gt.exec(e.slice(n));return r?(t.m=$t[r[0].toLowerCase()],n+r[0].length):-1}function yt(t,e,n){var r=Yt.exec(e.slice(n));return r?(t.m=Kt[r[0].toLowerCase()],n+r[0].length):-1}function _t(t,e,n){return u(t,Ot,e,n)}function bt(t,e,n){return u(t,It,e,n)}function xt(t,e,n){return u(t,Dt,e,n)}function wt(t){return Ut[t.getDay()]}function Ct(t){return Lt[t.getDay()]}function kt(t){return jt[t.getMonth()]}function Et(t){return Ft[t.getMonth()]}function Mt(t){return Rt[+(t.getHours()>=12)]}function Tt(t){return Ut[t.getUTCDay()]}function St(t){return Lt[t.getUTCDay()]}function Nt(t){return jt[t.getUTCMonth()]}function At(t){return Ft[t.getUTCMonth()]}function Pt(t){return Rt[+(t.getUTCHours()>=12)]}var Ot=t.dateTime,It=t.date,Dt=t.time,Rt=t.periods,Lt=t.days,Ut=t.shortDays,Ft=t.months,jt=t.shortMonths,Bt=s(Rt),Vt=l(Rt),Wt=s(Lt),zt=l(Lt),Ht=s(Ut),qt=l(Ut),Yt=s(Ft),Kt=l(Ft),Gt=s(jt),$t=l(jt),Xt={a:wt,A:Ct,b:kt,B:Et,c:null,d:A,e:A,f:R,H:P,I:O,j:I,L:D,m:L,M:U,p:Mt,Q:ft,s:pt,S:F,u:j,U:B,V:V,w:W,W:z,x:null,X:null,y:H,Y:q,Z:Y,\"%\":lt},Qt={a:Tt,A:St,b:Nt,B:At,c:null,d:K,e:K,f:Z,H:G,I:$,j:X,L:Q,m:J,M:tt,p:Pt,Q:ft,s:pt,S:et,u:nt,U:rt,V:it,w:ot,W:at,x:null,X:null,y:ut,Y:ct,Z:st,\"%\":lt},Zt={a:vt,A:gt,b:mt,B:yt,c:_t,d:b,e:b,f:M,H:w,I:w,j:x,L:E,m:_,M:C,p:c,Q:S,s:N,S:k,u:p,U:h,V:d,w:f,W:v,x:bt,X:xt,y:m,Y:g,Z:y,\"%\":T};return Xt.x=e(It,Xt),Xt.X=e(Dt,Xt),Xt.c=e(Ot,Xt),Qt.x=e(It,Qt),Qt.X=e(Dt,Qt),Qt.c=e(Ot,Qt),{format:function(t){var n=e(t+=\"\",Xt);return n.toString=function(){return t},n},parse:function(t){var e=a(t+=\"\",r);return e.toString=function(){return t},e},utcFormat:function(t){var n=e(t+=\"\",Qt);return n.toString=function(){return t},n},utcParse:function(t){var e=a(t,i);return e.toString=function(){return t},e}}}function u(t,e,n){var r=t<0?\"-\":\"\",i=(r?-t:t)+\"\",o=i.length;return r+(o<n?new Array(n-o+1).join(e)+i:i)}function c(t){return t.replace(mt,\"\\\\$&\")}function s(t){return new RegExp(\"^(?:\"+t.map(c).join(\"|\")+\")\",\"i\")}function l(t){for(var e={},n=-1,r=t.length;++n<r;)e[t[n].toLowerCase()]=n;return e}function f(t,e,n){var r=vt.exec(e.slice(n,n+1));return r?(t.w=+r[0],n+r[0].length):-1}function p(t,e,n){var r=vt.exec(e.slice(n,n+1));return r?(t.u=+r[0],n+r[0].length):-1}function h(t,e,n){var r=vt.exec(e.slice(n,n+2));return r?(t.U=+r[0],n+r[0].length):-1}function d(t,e,n){var r=vt.exec(e.slice(n,n+2));return r?(t.V=+r[0],n+r[0].length):-1}function v(t,e,n){var r=vt.exec(e.slice(n,n+2));return r?(t.W=+r[0],n+r[0].length):-1}function g(t,e,n){var r=vt.exec(e.slice(n,n+4));return r?(t.y=+r[0],n+r[0].length):-1}function m(t,e,n){var r=vt.exec(e.slice(n,n+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function y(t,e,n){var r=/^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(e.slice(n,n+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||\"00\")),n+r[0].length):-1}function _(t,e,n){var r=vt.exec(e.slice(n,n+2));return r?(t.m=r[0]-1,n+r[0].length):-1}function b(t,e,n){var r=vt.exec(e.slice(n,n+2));return r?(t.d=+r[0],n+r[0].length):-1}function x(t,e,n){var r=vt.exec(e.slice(n,n+3));return r?(t.m=0,t.d=+r[0],n+r[0].length):-1}function w(t,e,n){var r=vt.exec(e.slice(n,n+2));return r?(t.H=+r[0],n+r[0].length):-1}function C(t,e,n){var r=vt.exec(e.slice(n,n+2));return r?(t.M=+r[0],n+r[0].length):-1}function k(t,e,n){var r=vt.exec(e.slice(n,n+2));return r?(t.S=+r[0],n+r[0].length):-1}function E(t,e,n){var r=vt.exec(e.slice(n,n+3));return r?(t.L=+r[0],n+r[0].length):-1}function M(t,e,n){var r=vt.exec(e.slice(n,n+6));return r?(t.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function T(t,e,n){var r=gt.exec(e.slice(n,n+1));return r?n+r[0].length:-1}function S(t,e,n){var r=vt.exec(e.slice(n));return r?(t.Q=+r[0],n+r[0].length):-1}function N(t,e,n){var r=vt.exec(e.slice(n));return r?(t.Q=1e3*+r[0],n+r[0].length):-1}function A(t,e){return u(t.getDate(),e,2)}function P(t,e){return u(t.getHours(),e,2)}function O(t,e){return u(t.getHours()%12||12,e,2)}function I(t,e){return u(1+ht.d.count(n.i(ht.e)(t),t),e,3)}function D(t,e){return u(t.getMilliseconds(),e,3)}function R(t,e){return D(t,e)+\"000\"}function L(t,e){return u(t.getMonth()+1,e,2)}function U(t,e){return u(t.getMinutes(),e,2)}function F(t,e){return u(t.getSeconds(),e,2)}function j(t){var e=t.getDay();return 0===e?7:e}function B(t,e){return u(ht.f.count(n.i(ht.e)(t),t),e,2)}function V(t,e){var r=t.getDay();return t=r>=4||0===r?n.i(ht.g)(t):ht.g.ceil(t),u(ht.g.count(n.i(ht.e)(t),t)+(4===n.i(ht.e)(t).getDay()),e,2)}function W(t){return t.getDay()}function z(t,e){return u(ht.c.count(n.i(ht.e)(t),t),e,2)}function H(t,e){return u(t.getFullYear()%100,e,2)}function q(t,e){return u(t.getFullYear()%1e4,e,4)}function Y(t){var e=t.getTimezoneOffset();return(e>0?\"-\":(e*=-1,\"+\"))+u(e/60|0,\"0\",2)+u(e%60,\"0\",2)}function K(t,e){return u(t.getUTCDate(),e,2)}function G(t,e){return u(t.getUTCHours(),e,2)}function $(t,e){return u(t.getUTCHours()%12||12,e,2)}function X(t,e){return u(1+ht.b.count(n.i(ht.h)(t),t),e,3)}function Q(t,e){return u(t.getUTCMilliseconds(),e,3)}function Z(t,e){return Q(t,e)+\"000\"}function J(t,e){return u(t.getUTCMonth()+1,e,2)}function tt(t,e){return u(t.getUTCMinutes(),e,2)}function et(t,e){return u(t.getUTCSeconds(),e,2)}function nt(t){var e=t.getUTCDay();return 0===e?7:e}function rt(t,e){return u(ht.i.count(n.i(ht.h)(t),t),e,2)}function it(t,e){var r=t.getUTCDay();return t=r>=4||0===r?n.i(ht.j)(t):ht.j.ceil(t),u(ht.j.count(n.i(ht.h)(t),t)+(4===n.i(ht.h)(t).getUTCDay()),e,2)}function ot(t){return t.getUTCDay()}function at(t,e){return u(ht.a.count(n.i(ht.h)(t),t),e,2)}function ut(t,e){return u(t.getUTCFullYear()%100,e,2)}function ct(t,e){return u(t.getUTCFullYear()%1e4,e,4)}function st(){return\"+0000\"}function lt(){return\"%\"}function ft(t){return+t}function pt(t){return Math.floor(+t/1e3)}e.a=a;var ht=n(80),dt={\"-\":\"\",_:\" \",0:\"0\"},vt=/^\\s*\\d+/,gt=/^%/,mt=/[\\\\^$*+?|[\\]().{}]/g},function(t,e,n){\"use strict\";var r=n(11),i={listen:function(t,e,n){return t.addEventListener?(t.addEventListener(e,n,!1),{remove:function(){t.removeEventListener(e,n,!1)}}):t.attachEvent?(t.attachEvent(\"on\"+e,n),{remove:function(){t.detachEvent(\"on\"+e,n)}}):void 0},capture:function(t,e,n){return t.addEventListener?(t.addEventListener(e,n,!0),{remove:function(){t.removeEventListener(e,n,!0)}}):{remove:r}},registerDefault:function(){}};t.exports=i},function(t,e,n){\"use strict\";function r(t){try{t.focus()}catch(t){}}t.exports=r},function(t,e,n){\"use strict\";function r(t){if(void 0===(t=t||(\"undefined\"!=typeof document?document:void 0)))return null;try{return t.activeElement||t.body}catch(e){return t.body}}t.exports=r},function(t,e){function n(){throw new Error(\"setTimeout has not been defined\")}function r(){throw new Error(\"clearTimeout has not been defined\")}function i(t){if(l===setTimeout)return setTimeout(t,0);if((l===n||!l)&&setTimeout)return l=setTimeout,setTimeout(t,0);try{return l(t,0)}catch(e){try{return l.call(null,t,0)}catch(e){return l.call(this,t,0)}}}function o(t){if(f===clearTimeout)return clearTimeout(t);if((f===r||!f)&&clearTimeout)return f=clearTimeout,clearTimeout(t);try{return f(t)}catch(e){try{return f.call(null,t)}catch(e){return f.call(this,t)}}}function a(){v&&h&&(v=!1,h.length?d=h.concat(d):g=-1,d.length&&u())}function u(){if(!v){var t=i(a);v=!0;for(var e=d.length;e;){for(h=d,d=[];++g<e;)h&&h[g].run();g=-1,e=d.length}h=null,v=!1,o(t)}}function c(t,e){this.fun=t,this.array=e}function s(){}var l,f,p=t.exports={};!function(){try{l=\"function\"==typeof setTimeout?setTimeout:n}catch(t){l=n}try{f=\"function\"==typeof clearTimeout?clearTimeout:r}catch(t){f=r}}();var h,d=[],v=!1,g=-1;p.nextTick=function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)e[n-1]=arguments[n];d.push(new c(t,e)),1!==d.length||v||i(u)},c.prototype.run=function(){this.fun.apply(null,this.array)},p.title=\"browser\",p.browser=!0,p.env={},p.argv=[],p.version=\"\",p.versions={},p.on=s,p.addListener=s,p.once=s,p.off=s,p.removeListener=s,p.removeAllListeners=s,p.emit=s,p.prependListener=s,p.prependOnceListener=s,p.listeners=function(t){return[]},p.binding=function(t){throw new Error(\"process.binding is not supported\")},p.cwd=function(){return\"/\"},p.chdir=function(t){throw new Error(\"process.chdir is not supported\")},p.umask=function(){return 0}},function(t,e,n){\"use strict\";var r=n(343);t.exports=function(t){return r(t,!1)}},function(t,e,n){\"use strict\";function r(t,e){return t+e.charAt(0).toUpperCase()+e.substring(1)}var i={animationIterationCount:!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,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},o=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(i).forEach(function(t){o.forEach(function(e){i[r(e,t)]=i[t]})});var a={background:{backgroundAttachment:!0,backgroundColor:!0,backgroundImage:!0,backgroundPositionX:!0,backgroundPositionY:!0,backgroundRepeat:!0},backgroundPosition:{backgroundPositionX:!0,backgroundPositionY:!0},border:{borderWidth:!0,borderStyle:!0,borderColor:!0},borderBottom:{borderBottomWidth:!0,borderBottomStyle:!0,borderBottomColor:!0},borderLeft:{borderLeftWidth:!0,borderLeftStyle:!0,borderLeftColor:!0},borderRight:{borderRightWidth:!0,borderRightStyle:!0,borderRightColor:!0},borderTop:{borderTopWidth:!0,borderTopStyle:!0,borderTopColor:!0},font:{fontStyle:!0,fontVariant:!0,fontWeight:!0,fontSize:!0,lineHeight:!0,fontFamily:!0},outline:{outlineWidth:!0,outlineStyle:!0,outlineColor:!0}},u={isUnitlessNumber:i,shorthandPropertyExpansions:a};t.exports=u},function(t,e,n){\"use strict\";function r(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}var i=n(1),o=n(18),a=(n(0),function(){function t(e){r(this,t),this._callbacks=null,this._contexts=null,this._arg=e}return t.prototype.enqueue=function(t,e){this._callbacks=this._callbacks||[],this._callbacks.push(t),this._contexts=this._contexts||[],this._contexts.push(e)},t.prototype.notifyAll=function(){var t=this._callbacks,e=this._contexts,n=this._arg;if(t&&e){t.length!==e.length&&i(\"24\"),this._callbacks=null,this._contexts=null;for(var r=0;r<t.length;r++)t[r].call(e[r],n);t.length=0,e.length=0}},t.prototype.checkpoint=function(){return this._callbacks?this._callbacks.length:0},t.prototype.rollback=function(t){this._callbacks&&this._contexts&&(this._callbacks.length=t,this._contexts.length=t)},t.prototype.reset=function(){this._callbacks=null,this._contexts=null},t.prototype.destructor=function(){this.reset()},t}());t.exports=o.addPoolingTo(a)},function(t,e,n){\"use strict\";function r(t){return!!s.hasOwnProperty(t)||!c.hasOwnProperty(t)&&(u.test(t)?(s[t]=!0,!0):(c[t]=!0,!1))}function i(t,e){return null==e||t.hasBooleanValue&&!e||t.hasNumericValue&&isNaN(e)||t.hasPositiveNumericValue&&e<1||t.hasOverloadedBooleanValue&&!1===e}var o=n(21),a=(n(4),n(9),n(407)),u=(n(2),new RegExp(\"^[\"+o.ATTRIBUTE_NAME_START_CHAR+\"][\"+o.ATTRIBUTE_NAME_CHAR+\"]*$\")),c={},s={},l={createMarkupForID:function(t){return o.ID_ATTRIBUTE_NAME+\"=\"+a(t)},setAttributeForID:function(t,e){t.setAttribute(o.ID_ATTRIBUTE_NAME,e)},createMarkupForRoot:function(){return o.ROOT_ATTRIBUTE_NAME+'=\"\"'},setAttributeForRoot:function(t){t.setAttribute(o.ROOT_ATTRIBUTE_NAME,\"\")},createMarkupForProperty:function(t,e){var n=o.properties.hasOwnProperty(t)?o.properties[t]:null;if(n){if(i(n,e))return\"\";var r=n.attributeName;return n.hasBooleanValue||n.hasOverloadedBooleanValue&&!0===e?r+'=\"\"':r+\"=\"+a(e)}return o.isCustomAttribute(t)?null==e?\"\":t+\"=\"+a(e):null},createMarkupForCustomAttribute:function(t,e){return r(t)&&null!=e?t+\"=\"+a(e):\"\"},setValueForProperty:function(t,e,n){var r=o.properties.hasOwnProperty(e)?o.properties[e]:null;if(r){var a=r.mutationMethod;if(a)a(t,n);else{if(i(r,n))return void this.deleteValueForProperty(t,e);if(r.mustUseProperty)t[r.propertyName]=n;else{var u=r.attributeName,c=r.attributeNamespace;c?t.setAttributeNS(c,u,\"\"+n):r.hasBooleanValue||r.hasOverloadedBooleanValue&&!0===n?t.setAttribute(u,\"\"):t.setAttribute(u,\"\"+n)}}}else if(o.isCustomAttribute(e))return void l.setValueForAttribute(t,e,n)},setValueForAttribute:function(t,e,n){if(r(e)){null==n?t.removeAttribute(e):t.setAttribute(e,\"\"+n)}},deleteValueForAttribute:function(t,e){t.removeAttribute(e)},deleteValueForProperty:function(t,e){var n=o.properties.hasOwnProperty(e)?o.properties[e]:null;if(n){var r=n.mutationMethod;if(r)r(t,void 0);else if(n.mustUseProperty){var i=n.propertyName;n.hasBooleanValue?t[i]=!1:t[i]=\"\"}else t.removeAttribute(n.attributeName)}else o.isCustomAttribute(e)&&t.removeAttribute(e)}};t.exports=l},function(t,e,n){\"use strict\";var r={hasCachedChildNodes:1};t.exports=r},function(t,e,n){\"use strict\";function r(){if(this._rootNodeID&&this._wrapperState.pendingUpdate){this._wrapperState.pendingUpdate=!1;var t=this._currentElement.props,e=u.getValue(t);null!=e&&i(this,Boolean(t.multiple),e)}}function i(t,e,n){var r,i,o=c.getNodeFromInstance(t).options;if(e){for(r={},i=0;i<n.length;i++)r[\"\"+n[i]]=!0;for(i=0;i<o.length;i++){var a=r.hasOwnProperty(o[i].value);o[i].selected!==a&&(o[i].selected=a)}}else{for(r=\"\"+n,i=0;i<o.length;i++)if(o[i].value===r)return void(o[i].selected=!0);o.length&&(o[0].selected=!0)}}function o(t){var e=this._currentElement.props,n=u.executeOnChange(e,t);return this._rootNodeID&&(this._wrapperState.pendingUpdate=!0),s.asap(r,this),n}var a=n(3),u=n(86),c=n(4),s=n(12),l=(n(2),!1),f={getHostProps:function(t,e){return a({},e,{onChange:t._wrapperState.onChange,value:void 0})},mountWrapper:function(t,e){var n=u.getValue(e);t._wrapperState={pendingUpdate:!1,initialValue:null!=n?n:e.defaultValue,listeners:null,onChange:o.bind(t),wasMultiple:Boolean(e.multiple)},void 0===e.value||void 0===e.defaultValue||l||(l=!0)},getSelectValueContext:function(t){return t._wrapperState.initialValue},postUpdateWrapper:function(t){var e=t._currentElement.props;t._wrapperState.initialValue=void 0;var n=t._wrapperState.wasMultiple;t._wrapperState.wasMultiple=Boolean(e.multiple);var r=u.getValue(e);null!=r?(t._wrapperState.pendingUpdate=!1,i(t,Boolean(e.multiple),r)):n!==Boolean(e.multiple)&&(null!=e.defaultValue?i(t,Boolean(e.multiple),e.defaultValue):i(t,Boolean(e.multiple),e.multiple?[]:\"\"))}};t.exports=f},function(t,e,n){\"use strict\";var r,i={injectEmptyComponentFactory:function(t){r=t}},o={create:function(t){return r(t)}};o.injection=i,t.exports=o},function(t,e,n){\"use strict\";var r={logTopLevelRenders:!1};t.exports=r},function(t,e,n){\"use strict\";function r(t){return u||a(\"111\",t.type),new u(t)}function i(t){return new c(t)}function o(t){return t instanceof c}var a=n(1),u=(n(0),null),c=null,s={injectGenericComponentClass:function(t){u=t},injectTextComponentClass:function(t){c=t}},l={createInternalComponent:r,createInstanceForText:i,isTextComponent:o,injection:s};t.exports=l},function(t,e,n){\"use strict\";function r(t){return o(document.documentElement,t)}var i=n(367),o=n(331),a=n(154),u=n(155),c={hasSelectionCapabilities:function(t){var e=t&&t.nodeName&&t.nodeName.toLowerCase();return e&&(\"input\"===e&&\"text\"===t.type||\"textarea\"===e||\"true\"===t.contentEditable)},getSelectionInformation:function(){var t=u();return{focusedElem:t,selectionRange:c.hasSelectionCapabilities(t)?c.getSelection(t):null}},restoreSelection:function(t){var e=u(),n=t.focusedElem,i=t.selectionRange;e!==n&&r(n)&&(c.hasSelectionCapabilities(n)&&c.setSelection(n,i),a(n))},getSelection:function(t){var e;if(\"selectionStart\"in t)e={start:t.selectionStart,end:t.selectionEnd};else if(document.selection&&t.nodeName&&\"input\"===t.nodeName.toLowerCase()){var n=document.selection.createRange();n.parentElement()===t&&(e={start:-n.moveStart(\"character\",-t.value.length),end:-n.moveEnd(\"character\",-t.value.length)})}else e=i.getOffsets(t);return e||{start:0,end:0}},setSelection:function(t,e){var n=e.start,r=e.end;if(void 0===r&&(r=n),\"selectionStart\"in t)t.selectionStart=n,t.selectionEnd=Math.min(r,t.value.length);else if(document.selection&&t.nodeName&&\"input\"===t.nodeName.toLowerCase()){var o=t.createTextRange();o.collapse(!0),o.moveStart(\"character\",n),o.moveEnd(\"character\",r-n),o.select()}else i.setOffsets(t,e)}};t.exports=c},function(t,e,n){\"use strict\";function r(t,e){for(var n=Math.min(t.length,e.length),r=0;r<n;r++)if(t.charAt(r)!==e.charAt(r))return r;return t.length===e.length?-1:n}function i(t){return t?t.nodeType===D?t.documentElement:t.firstChild:null}function o(t){return t.getAttribute&&t.getAttribute(P)||\"\"}function a(t,e,n,r,i){var o;if(x.logTopLevelRenders){var a=t._currentElement.props.child,u=a.type;o=\"React mount: \"+(\"string\"==typeof u?u:u.displayName||u.name),console.time(o)}var c=k.mountComponent(t,n,null,_(t,e),i,0);o&&console.timeEnd(o),t._renderedComponent._topLevelWrapper=t,j._mountImageIntoNode(c,e,t,r,n)}function u(t,e,n,r){var i=M.ReactReconcileTransaction.getPooled(!n&&b.useCreateElement);i.perform(a,null,t,e,i,n,r),M.ReactReconcileTransaction.release(i)}function c(t,e,n){for(k.unmountComponent(t,n),e.nodeType===D&&(e=e.documentElement);e.lastChild;)e.removeChild(e.lastChild)}function s(t){var e=i(t);if(e){var n=y.getInstanceFromNode(e);return!(!n||!n._hostParent)}}function l(t){return!(!t||t.nodeType!==I&&t.nodeType!==D&&t.nodeType!==R)}function f(t){var e=i(t),n=e&&y.getInstanceFromNode(e);return n&&!n._hostParent?n:null}function p(t){var e=f(t);return e?e._hostContainerInfo._topLevelWrapper:null}var h=n(1),d=n(20),v=n(21),g=n(26),m=n(53),y=(n(15),n(4)),_=n(361),b=n(363),x=n(164),w=n(39),C=(n(9),n(377)),k=n(24),E=n(89),M=n(12),T=n(51),S=n(174),N=(n(0),n(57)),A=n(96),P=(n(2),v.ID_ATTRIBUTE_NAME),O=v.ROOT_ATTRIBUTE_NAME,I=1,D=9,R=11,L={},U=1,F=function(){this.rootID=U++};F.prototype.isReactComponent={},F.prototype.render=function(){return this.props.child},F.isReactTopLevelWrapper=!0;var j={TopLevelWrapper:F,_instancesByReactRootID:L,scrollMonitor:function(t,e){e()},_updateRootComponent:function(t,e,n,r,i){return j.scrollMonitor(r,function(){E.enqueueElementInternal(t,e,n),i&&E.enqueueCallbackInternal(t,i)}),t},_renderNewRootComponent:function(t,e,n,r){l(e)||h(\"37\"),m.ensureScrollValueMonitoring();var i=S(t,!1);M.batchedUpdates(u,i,e,n,r);var o=i._instance.rootID;return L[o]=i,i},renderSubtreeIntoContainer:function(t,e,n,r){return null!=t&&w.has(t)||h(\"38\"),j._renderSubtreeIntoContainer(t,e,n,r)},_renderSubtreeIntoContainer:function(t,e,n,r){E.validateCallback(r,\"ReactDOM.render\"),g.isValidElement(e)||h(\"39\",\"string\"==typeof e?\" Instead of passing a string like 'div', pass React.createElement('div') or <div />.\":\"function\"==typeof e?\" Instead of passing a class like Foo, pass React.createElement(Foo) or <Foo />.\":null!=e&&void 0!==e.props?\" This may be caused by unintentionally loading two independent copies of React.\":\"\");var a,u=g.createElement(F,{child:e});if(t){var c=w.get(t);a=c._processChildContext(c._context)}else a=T;var l=p(n);if(l){var f=l._currentElement,d=f.props.child;if(A(d,e)){var v=l._renderedComponent.getPublicInstance(),m=r&&function(){r.call(v)};return j._updateRootComponent(l,u,a,n,m),v}j.unmountComponentAtNode(n)}var y=i(n),_=y&&!!o(y),b=s(n),x=_&&!l&&!b,C=j._renderNewRootComponent(u,n,x,a)._renderedComponent.getPublicInstance();return r&&r.call(C),C},render:function(t,e,n){return j._renderSubtreeIntoContainer(null,t,e,n)},unmountComponentAtNode:function(t){l(t)||h(\"40\");var e=p(t);if(!e){s(t),1===t.nodeType&&t.hasAttribute(O);return!1}return delete L[e._instance.rootID],M.batchedUpdates(c,e,t,!1),!0},_mountImageIntoNode:function(t,e,n,o,a){if(l(e)||h(\"41\"),o){var u=i(e);if(C.canReuseMarkup(t,u))return void y.precacheNode(n,u);var c=u.getAttribute(C.CHECKSUM_ATTR_NAME);u.removeAttribute(C.CHECKSUM_ATTR_NAME);var s=u.outerHTML;u.setAttribute(C.CHECKSUM_ATTR_NAME,c);var f=t,p=r(f,s),v=\" (client) \"+f.substring(p-20,p+20)+\"\\n (server) \"+s.substring(p-20,p+20);e.nodeType===D&&h(\"42\",v)}if(e.nodeType===D&&h(\"43\"),a.useCreateElement){for(;e.lastChild;)e.removeChild(e.lastChild);d.insertTreeBefore(e,t,null)}else N(e,t),y.precacheNode(n,e.firstChild)}};t.exports=j},function(t,e,n){\"use strict\";var r=n(1),i=n(26),o=(n(0),{HOST:0,COMPOSITE:1,EMPTY:2,getType:function(t){return null===t||!1===t?o.EMPTY:i.isValidElement(t)?\"function\"==typeof t.type?o.COMPOSITE:o.HOST:void r(\"26\",t)}});t.exports=o},function(t,e,n){\"use strict\";function r(t,e){return null==e&&i(\"30\"),null==t?e:Array.isArray(t)?Array.isArray(e)?(t.push.apply(t,e),t):(t.push(e),t):Array.isArray(e)?[t].concat(e):[t,e]}var i=n(1);n(0);t.exports=r},function(t,e,n){\"use strict\";function r(t,e,n){Array.isArray(t)?t.forEach(e,n):t&&e.call(n,t)}t.exports=r},function(t,e,n){\"use strict\";function r(t){for(var e;(e=t._renderedNodeType)===i.COMPOSITE;)t=t._renderedComponent;return e===i.HOST?t._renderedComponent:e===i.EMPTY?null:void 0}var i=n(168);t.exports=r},function(t,e,n){\"use strict\";function r(){return!o&&i.canUseDOM&&(o=\"textContent\"in document.documentElement?\"textContent\":\"innerText\"),o}var i=n(6),o=null;t.exports=r},function(t,e,n){\"use strict\";function r(t){var e=t.type,n=t.nodeName;return n&&\"input\"===n.toLowerCase()&&(\"checkbox\"===e||\"radio\"===e)}function i(t){return t._wrapperState.valueTracker}function o(t,e){t._wrapperState.valueTracker=e}function a(t){t._wrapperState.valueTracker=null}function u(t){var e;return t&&(e=r(t)?\"\"+t.checked:t.value),e}var c=n(4),s={_getTrackerFromNode:function(t){return i(c.getInstanceFromNode(t))},track:function(t){if(!i(t)){var e=c.getNodeFromInstance(t),n=r(e)?\"checked\":\"value\",u=Object.getOwnPropertyDescriptor(e.constructor.prototype,n),s=\"\"+e[n];e.hasOwnProperty(n)||\"function\"!=typeof u.get||\"function\"!=typeof u.set||(Object.defineProperty(e,n,{enumerable:u.enumerable,configurable:!0,get:function(){return u.get.call(this)},set:function(t){s=\"\"+t,u.set.call(this,t)}}),o(t,{getValue:function(){return s},setValue:function(t){s=\"\"+t},stopTracking:function(){a(t),delete e[n]}}))}},updateValueIfChanged:function(t){if(!t)return!1;var e=i(t);if(!e)return s.track(t),!0;var n=e.getValue(),r=u(c.getNodeFromInstance(t));return r!==n&&(e.setValue(r),!0)},stopTracking:function(t){var e=i(t);e&&e.stopTracking()}};t.exports=s},function(t,e,n){\"use strict\";function r(t){if(t){var e=t.getName();if(e)return\" Check the render method of `\"+e+\"`.\"}return\"\"}function i(t){return\"function\"==typeof t&&void 0!==t.prototype&&\"function\"==typeof t.prototype.mountComponent&&\"function\"==typeof t.prototype.receiveComponent}function o(t,e){var n;if(null===t||!1===t)n=s.create(o);else if(\"object\"==typeof t){var u=t,c=u.type;if(\"function\"!=typeof c&&\"string\"!=typeof c){var p=\"\";p+=r(u._owner),a(\"130\",null==c?c:typeof c,p)}\"string\"==typeof u.type?n=l.createInternalComponent(u):i(u.type)?(n=new u.type(u),n.getHostNode||(n.getHostNode=n.getNativeNode)):n=new f(u)}else\"string\"==typeof t||\"number\"==typeof t?n=l.createInstanceForText(t):a(\"131\",typeof t);return n._mountIndex=0,n._mountImage=null,n}var a=n(1),u=n(3),c=n(358),s=n(163),l=n(165),f=(n(420),n(0),n(2),function(t){this.construct(t)});u(f.prototype,c,{_instantiateReactComponent:o}),t.exports=o},function(t,e,n){\"use strict\";function r(t){var e=t&&t.nodeName&&t.nodeName.toLowerCase();return\"input\"===e?!!i[t.type]:\"textarea\"===e}var i={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};t.exports=r},function(t,e,n){\"use strict\";var r=n(6),i=n(56),o=n(57),a=function(t,e){if(e){var n=t.firstChild;if(n&&n===t.lastChild&&3===n.nodeType)return void(n.nodeValue=e)}t.textContent=e};r.canUseDOM&&(\"textContent\"in document.documentElement||(a=function(t,e){if(3===t.nodeType)return void(t.nodeValue=e);o(t,i(e))})),t.exports=a},function(t,e,n){\"use strict\";function r(t,e){return t&&\"object\"==typeof t&&null!=t.key?s.escape(t.key):e.toString(36)}function i(t,e,n,o){var p=typeof t;if(\"undefined\"!==p&&\"boolean\"!==p||(t=null),null===t||\"string\"===p||\"number\"===p||\"object\"===p&&t.$$typeof===u)return n(o,t,\"\"===e?l+r(t,0):e),1;var h,d,v=0,g=\"\"===e?l:e+f;if(Array.isArray(t))for(var m=0;m<t.length;m++)h=t[m],d=g+r(h,m),v+=i(h,d,n,o);else{var y=c(t);if(y){var _,b=y.call(t);if(y!==t.entries)for(var x=0;!(_=b.next()).done;)h=_.value,d=g+r(h,x++),v+=i(h,d,n,o);else for(;!(_=b.next()).done;){var w=_.value;w&&(h=w[1],d=g+s.escape(w[0])+f+r(h,0),v+=i(h,d,n,o))}}else if(\"object\"===p){var C=\"\",k=String(t);a(\"31\",\"[object Object]\"===k?\"object with keys {\"+Object.keys(t).join(\", \")+\"}\":k,C)}}return v}function o(t,e,n){return null==t?0:i(t,\"\",e,n)}var a=n(1),u=(n(15),n(373)),c=n(404),s=(n(0),n(85)),l=(n(2),\".\"),f=\":\";t.exports=o},function(t,e,n){\"use strict\";function r(t,e,n){this.props=t,this.context=e,this.refs=s,this.updater=n||c}function i(t,e,n){this.props=t,this.context=e,this.refs=s,this.updater=n||c}function o(){}var a=n(40),u=n(3),c=n(181),s=(n(182),n(51));n(0),n(421);r.prototype.isReactComponent={},r.prototype.setState=function(t,e){\"object\"!=typeof t&&\"function\"!=typeof t&&null!=t&&a(\"85\"),this.updater.enqueueSetState(this,t),e&&this.updater.enqueueCallback(this,e,\"setState\")},r.prototype.forceUpdate=function(t){this.updater.enqueueForceUpdate(this),t&&this.updater.enqueueCallback(this,t,\"forceUpdate\")};o.prototype=r.prototype,i.prototype=new o,i.prototype.constructor=i,u(i.prototype,r.prototype),i.prototype.isPureReactComponent=!0,t.exports={Component:r,PureComponent:i}},function(t,e,n){\"use strict\";function r(t){var e=Function.prototype.toString,n=Object.prototype.hasOwnProperty,r=RegExp(\"^\"+e.call(n).replace(/[\\\\^$.*+?()[\\]{}|]/g,\"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g,\"$1.*?\")+\"$\");try{var i=e.call(t);return r.test(i)}catch(t){return!1}}function i(t){var e=s(t);if(e){var n=e.childIDs;l(t),n.forEach(i)}}function o(t,e,n){return\"\\n    in \"+(t||\"Unknown\")+(e?\" (at \"+e.fileName.replace(/^.*[\\\\\\/]/,\"\")+\":\"+e.lineNumber+\")\":n?\" (created by \"+n+\")\":\"\")}function a(t){return null==t?\"#empty\":\"string\"==typeof t||\"number\"==typeof t?\"#text\":\"string\"==typeof t.type?t.type:t.type.displayName||t.type.name||\"Unknown\"}function u(t){var e,n=E.getDisplayName(t),r=E.getElement(t),i=E.getOwnerID(t);return i&&(e=E.getDisplayName(i)),o(n,r&&r._source,e)}var c,s,l,f,p,h,d,v=n(40),g=n(15),m=(n(0),n(2),\"function\"==typeof Array.from&&\"function\"==typeof Map&&r(Map)&&null!=Map.prototype&&\"function\"==typeof Map.prototype.keys&&r(Map.prototype.keys)&&\"function\"==typeof Set&&r(Set)&&null!=Set.prototype&&\"function\"==typeof Set.prototype.keys&&r(Set.prototype.keys));if(m){var y=new Map,_=new Set;c=function(t,e){y.set(t,e)},s=function(t){return y.get(t)},l=function(t){y.delete(t)},f=function(){return Array.from(y.keys())},p=function(t){_.add(t)},h=function(t){_.delete(t)},d=function(){return Array.from(_.keys())}}else{var b={},x={},w=function(t){return\".\"+t},C=function(t){return parseInt(t.substr(1),10)};c=function(t,e){var n=w(t);b[n]=e},s=function(t){var e=w(t);return b[e]},l=function(t){var e=w(t);delete b[e]},f=function(){return Object.keys(b).map(C)},p=function(t){var e=w(t);x[e]=!0},h=function(t){var e=w(t);delete x[e]},d=function(){return Object.keys(x).map(C)}}var k=[],E={onSetChildren:function(t,e){var n=s(t);n||v(\"144\"),n.childIDs=e;for(var r=0;r<e.length;r++){var i=e[r],o=s(i);o||v(\"140\"),null==o.childIDs&&\"object\"==typeof o.element&&null!=o.element&&v(\"141\"),o.isMounted||v(\"71\"),null==o.parentID&&(o.parentID=t),o.parentID!==t&&v(\"142\",i,o.parentID,t)}},onBeforeMountComponent:function(t,e,n){c(t,{element:e,parentID:n,text:null,childIDs:[],isMounted:!1,updateCount:0})},onBeforeUpdateComponent:function(t,e){var n=s(t);n&&n.isMounted&&(n.element=e)},onMountComponent:function(t){var e=s(t);e||v(\"144\"),e.isMounted=!0,0===e.parentID&&p(t)},onUpdateComponent:function(t){var e=s(t);e&&e.isMounted&&e.updateCount++},onUnmountComponent:function(t){var e=s(t);if(e){e.isMounted=!1;0===e.parentID&&h(t)}k.push(t)},purgeUnmountedComponents:function(){if(!E._preventPurging){for(var t=0;t<k.length;t++){i(k[t])}k.length=0}},isMounted:function(t){var e=s(t);return!!e&&e.isMounted},getCurrentStackAddendum:function(t){var e=\"\";if(t){var n=a(t),r=t._owner;e+=o(n,t._source,r&&r.getName())}var i=g.current,u=i&&i._debugID;return e+=E.getStackAddendumByID(u)},getStackAddendumByID:function(t){for(var e=\"\";t;)e+=u(t),t=E.getParentID(t);return e},getChildIDs:function(t){var e=s(t);return e?e.childIDs:[]},getDisplayName:function(t){var e=E.getElement(t);return e?a(e):null},getElement:function(t){var e=s(t);return e?e.element:null},getOwnerID:function(t){var e=E.getElement(t);return e&&e._owner?e._owner._debugID:null},getParentID:function(t){var e=s(t);return e?e.parentID:null},getSource:function(t){var e=s(t),n=e?e.element:null;return null!=n?n._source:null},getText:function(t){var e=E.getElement(t);return\"string\"==typeof e?e:\"number\"==typeof e?\"\"+e:null},getUpdateCount:function(t){var e=s(t);return e?e.updateCount:0},getRootIDs:d,getRegisteredIDs:f,pushNonStandardWarningStack:function(t,e){if(\"function\"==typeof console.reactStack){var n=[],r=g.current,i=r&&r._debugID;try{for(t&&n.push({name:i?E.getDisplayName(i):null,fileName:e?e.fileName:null,lineNumber:e?e.lineNumber:null});i;){var o=E.getElement(i),a=E.getParentID(i),u=E.getOwnerID(i),c=u?E.getDisplayName(u):null,s=o&&o._source;n.push({name:c,fileName:s?s.fileName:null,lineNumber:s?s.lineNumber:null}),i=a}}catch(t){}console.reactStack(n)}},popNonStandardWarningStack:function(){\"function\"==typeof console.reactStackEnd&&console.reactStackEnd()}};t.exports=E},function(t,e,n){\"use strict\";var r=\"function\"==typeof Symbol&&Symbol.for&&Symbol.for(\"react.element\")||60103;t.exports=r},function(t,e,n){\"use strict\";var r=(n(2),{isMounted:function(t){return!1},enqueueCallback:function(t,e){},enqueueForceUpdate:function(t){},enqueueReplaceState:function(t,e){},enqueueSetState:function(t,e){}});t.exports=r},function(t,e,n){\"use strict\";var r=!1;t.exports=r},,function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!e||\"object\"!=typeof e&&\"function\"!=typeof e?t:e}function a(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,\"__esModule\",{value:!0});var u=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},c=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),s=n(41),l=r(s),f=n(129),p=n(66),h=(n(7),n(29)),d=n(78),v=n(112),g=n(136),m=n(10),y=n(38),_=n(58),b=r(_),x=function(t){function e(){i(this,e);var t=o(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return window.lastAdditiveForceArrayVisualizer=t,t.topOffset=28,t.leftOffset=80,t.height=350,t.effectFormat=(0,h.format)(\".2\"),t.redraw=(0,y.debounce)(function(){return t.draw()},200),t}return a(e,t),c(e,[{key:\"componentDidMount\",value:function(){var t=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 e=void 0;\"string\"==typeof this.props.plot_cmap?this.props.plot_cmap in b.default.colors?e=b.default.colors[this.props.plot_cmap]:(console.log(\"Invalid color map name, reverting to default.\"),e=b.default.colors.RdBu):Array.isArray(this.props.plot_cmap)&&(e=this.props.plot_cmap),this.colors=e.map(function(t){return(0,m.hsl)(t)}),this.brighterColors=[1.45,1.6].map(function(e,n){return t.colors[n].brighter(e)});var n=(0,h.format)(\",.4\");if(null!=this.props.ordering_keys&&null!=this.props.ordering_keys_time_format){var r=function(t){return\"object\"==(void 0===t?\"undefined\":u(t))?this.formatTime(t):n(t)};this.parseTime=(0,d.timeParse)(this.props.ordering_keys_time_format),this.formatTime=(0,d.timeFormat)(this.props.ordering_keys_time_format),this.xtickFormat=r}else this.parseTime=null,this.formatTime=null,this.xtickFormat=n;this.xscale=(0,p.scaleLinear)(),this.xaxis=(0,v.axisBottom)().scale(this.xscale).tickSizeInner(4).tickSizeOuter(0).tickFormat(function(e){return t.xtickFormat(e)}).tickPadding(-18),this.ytickFormat=n,this.yscale=(0,p.scaleLinear)(),this.yaxis=(0,v.axisLeft)().scale(this.yscale).tickSizeInner(4).tickSizeOuter(0).tickFormat(function(e){return t.ytickFormat(t.invLinkFunction(e))}).tickPadding(2),this.xlabel.node().onchange=function(){return t.internalDraw()},this.ylabel.node().onchange=function(){return t.internalDraw()},this.svg.on(\"mousemove\",function(e){return t.mouseMoved(e)}),this.svg.on(\"click\",function(e){return alert(\"This original index of the sample you clicked is \"+t.nearestExpIndex)}),this.svg.on(\"mouseout\",function(e){return t.mouseOut(e)}),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(t){var e=this,n=void 0,r=void 0;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 i=(0,f.mouse)(this.svg.node())[0];if(this.props.explanations){for(n=0;n<this.props.explanations.length;++n)(!r||Math.abs(r.xmapScaled-i)>Math.abs(this.props.explanations[n].xmapScaled-i))&&(r=this.props.explanations[n],this.nearestExpIndex=n);this.hoverLine.attr(\"x1\",r.xmapScaled).attr(\"x2\",r.xmapScaled).attr(\"y1\",0+this.topOffset).attr(\"y2\",this.height),this.hoverx.attr(\"x\",r.xmapScaled).attr(\"y\",this.topOffset-5).text(this.xtickFormat(r.xmap)),this.hoverxOutline.attr(\"x\",r.xmapScaled).attr(\"y\",this.topOffset-5).text(this.xtickFormat(r.xmap)),this.hoverxTitle.attr(\"x\",r.xmapScaled).attr(\"y\",this.topOffset-18).text(r.count>1?r.count+\" averaged samples\":\"\"),this.hovery.attr(\"x\",this.leftOffset-6).attr(\"y\",r.joinPointy).text(this.ytickFormat(this.invLinkFunction(r.joinPoint))),this.hoveryOutline.attr(\"x\",this.leftOffset-6).attr(\"y\",r.joinPointy).text(this.ytickFormat(this.invLinkFunction(r.joinPoint)));for(var o=(this.props.featureNames.length,[]),a=void 0,u=void 0,c=this.currPosOrderedFeatures.length-1;c>=0;--c){var s=this.currPosOrderedFeatures[c],l=r.features[s];u=5+(l.posyTop+l.posyBottom)/2,(!a||u-a>=15)&&l.posyTop-l.posyBottom>=6&&(o.push(l),a=u)}var p=[];a=void 0;var h=!0,d=!1,v=void 0;try{for(var g,m=this.currNegOrderedFeatures[Symbol.iterator]();!(h=(g=m.next()).done);h=!0){var y=g.value,_=r.features[y];u=5+(_.negyTop+_.negyBottom)/2,(!a||a-u>=15)&&_.negyTop-_.negyBottom>=6&&(p.push(_),a=u)}}catch(t){d=!0,v=t}finally{try{!h&&m.return&&m.return()}finally{if(d)throw v}}var b=function(t){var n=\"\";return null!==t.value&&void 0!==t.value&&(n=\" = \"+(isNaN(t.value)?t.value:e.ytickFormat(t.value))),r.count>1?\"mean(\"+e.props.featureNames[t.ind]+\")\"+n:e.props.featureNames[t.ind]+n},x=this.hoverGroup1.selectAll(\".pos-values\").data(o);x.enter().append(\"text\").attr(\"class\",\"pos-values\").merge(x).attr(\"x\",r.xmapScaled+5).attr(\"y\",function(t){return 4+(t.posyTop+t.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(b),x.exit().remove();var w=this.hoverGroup2.selectAll(\".pos-values\").data(o);w.enter().append(\"text\").attr(\"class\",\"pos-values\").merge(w).attr(\"x\",r.xmapScaled+5).attr(\"y\",function(t){return 4+(t.posyTop+t.posyBottom)/2}).attr(\"text-anchor\",\"start\").attr(\"font-size\",12).attr(\"fill\",this.colors[0]).text(b),w.exit().remove();var C=this.hoverGroup1.selectAll(\".neg-values\").data(p);C.enter().append(\"text\").attr(\"class\",\"neg-values\").merge(C).attr(\"x\",r.xmapScaled+5).attr(\"y\",function(t){return 4+(t.negyTop+t.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(b),C.exit().remove();var k=this.hoverGroup2.selectAll(\".neg-values\").data(p);k.enter().append(\"text\").attr(\"class\",\"neg-values\").merge(k).attr(\"x\",r.xmapScaled+5).attr(\"y\",function(t){return 4+(t.negyTop+t.negyBottom)/2}).attr(\"text-anchor\",\"start\").attr(\"font-size\",12).attr(\"fill\",this.colors[1]).text(b),k.exit().remove()}}},{key:\"draw\",value:function(){var t=this;if(this.props.explanations&&0!==this.props.explanations.length){(0,y.each)(this.props.explanations,function(t,e){return t.origInd=e});var e={},n={},r={},i=!0,o=!1,a=void 0;try{for(var u,c=this.props.explanations[Symbol.iterator]();!(i=(u=c.next()).done);i=!0){var s=u.value;for(var l in s.features)void 0===e[l]&&(e[l]=0,n[l]=0,r[l]=0),s.features[l].effect>0?e[l]+=s.features[l].effect:n[l]-=s.features[l].effect,null!==s.features[l].value&&void 0!==s.features[l].value&&(r[l]+=1)}}catch(t){o=!0,a=t}finally{try{!i&&c.return&&c.return()}finally{if(o)throw a}}this.usedFeatures=(0,y.sortBy)((0,y.keys)(e),function(t){return-(e[t]+n[t])}),console.log(\"found \",this.usedFeatures.length,\" used features\"),this.posOrderedFeatures=(0,y.sortBy)(this.usedFeatures,function(t){return e[t]}),this.negOrderedFeatures=(0,y.sortBy)(this.usedFeatures,function(t){return-n[t]}),this.singleValueFeatures=(0,y.filter)(this.usedFeatures,function(t){return r[t]>0});var f=[\"sample order by similarity\",\"sample order by output value\",\"original sample ordering\"].concat(this.singleValueFeatures.map(function(e){return t.props.featureNames[e]}));null!=this.props.ordering_keys&&f.unshift(\"sample order by key\");var p=this.xlabel.selectAll(\"option\").data(f);p.enter().append(\"option\").merge(p).attr(\"value\",function(t){return t}).text(function(t){return t}),p.exit().remove();var h=this.props.outNames[0]?this.props.outNames[0]:\"model output value\";f=(0,y.map)(this.usedFeatures,function(e){return[t.props.featureNames[e],t.props.featureNames[e]+\" effects\"]}),f.unshift([\"model output value\",h]);var d=this.ylabel.selectAll(\"option\").data(f);d.enter().append(\"option\").merge(d).attr(\"value\",function(t){return t[0]}).text(function(t){return t[1]}),d.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 t=this,e=!0,n=!1,r=void 0;try{for(var i,o=this.props.explanations[Symbol.iterator]();!(e=(i=o.next()).done);e=!0){var a=i.value,u=!0,c=!1,s=void 0;try{for(var l,f=this.usedFeatures[Symbol.iterator]();!(u=(l=f.next()).done);u=!0){var h=l.value;a.features.hasOwnProperty(h)||(a.features[h]={effect:0,value:0}),a.features[h].ind=h}}catch(t){c=!0,s=t}finally{try{!u&&f.return&&f.return()}finally{if(c)throw s}}}}catch(t){n=!0,r=t}finally{try{!e&&o.return&&o.return()}finally{if(n)throw r}}var d=void 0,v=this.xlabel.node().value,m=\"sample order by key\"===v&&null!=this.props.ordering_keys_time_format;if(this.xscale=m?(0,p.scaleTime)():(0,p.scaleLinear)(),this.xaxis.scale(this.xscale),\"sample order by similarity\"===v)d=(0,y.sortBy)(this.props.explanations,function(t){return t.simIndex}),(0,y.each)(d,function(t,e){return t.xmap=e});else if(\"sample order by output value\"===v)d=(0,y.sortBy)(this.props.explanations,function(t){return-t.outValue}),(0,y.each)(d,function(t,e){return t.xmap=e});else if(\"original sample ordering\"===v)d=(0,y.sortBy)(this.props.explanations,function(t){return t.origInd}),(0,y.each)(d,function(t,e){return t.xmap=e});else if(\"sample order by key\"===v)d=this.props.explanations,m?(0,y.each)(d,function(e,n){return e.xmap=t.parseTime(t.props.ordering_keys[n])}):(0,y.each)(d,function(e,n){return e.xmap=t.props.ordering_keys[n]}),d=(0,y.sortBy)(d,function(t){return t.xmap});else{var _=(0,y.findKey)(this.props.featureNames,function(t){return t===v});(0,y.each)(this.props.explanations,function(t,e){return t.xmap=t.features[_].value});var b=(0,y.sortBy)(this.props.explanations,function(t){return t.xmap}),x=(0,y.map)(b,function(t){return t.xmap});if(\"string\"==typeof x[0])return void alert(\"Ordering by category names is not yet supported.\");var w=(0,y.min)(x),C=(0,y.max)(x),k=(C-w)/100;d=[];for(var E=void 0,M=void 0,T=0;T<b.length;++T){var S=b[T];if(E&&!M&&S.xmap-E.xmap<=k||M&&S.xmap-M.xmap<=k){M||(M=(0,y.cloneDeep)(E),M.count=1);var N=!0,A=!1,P=void 0;try{for(var O,I=this.usedFeatures[Symbol.iterator]();!(N=(O=I.next()).done);N=!0){var D=O.value;M.features[D].effect+=S.features[D].effect,M.features[D].value+=S.features[D].value}}catch(t){A=!0,P=t}finally{try{!N&&I.return&&I.return()}finally{if(A)throw P}}M.count+=1}else if(E)if(M){var R=!0,L=!1,U=void 0;try{for(var F,j=this.usedFeatures[Symbol.iterator]();!(R=(F=j.next()).done);R=!0){var B=F.value;M.features[B].effect/=M.count,M.features[B].value/=M.count}}catch(t){L=!0,U=t}finally{try{!R&&j.return&&j.return()}finally{if(L)throw U}}d.push(M),M=void 0}else d.push(E);E=S}E.xmap-d[d.length-1].xmap>k&&d.push(E)}this.currUsedFeatures=this.usedFeatures,this.currPosOrderedFeatures=this.posOrderedFeatures,this.currNegOrderedFeatures=this.negOrderedFeatures;var V=this.ylabel.node().value;if(\"model output value\"!==V){d=(0,y.cloneDeep)(d);for(var W=(0,y.findKey)(this.props.featureNames,function(t){return t===V}),z=0;z<d.length;++z){var H=d[z].features[W];d[z].features={},d[z].features[W]=H}this.currUsedFeatures=[W],this.currPosOrderedFeatures=[W],this.currNegOrderedFeatures=[W]}this.currExplanations=d,\"identity\"===this.props.link?this.invLinkFunction=function(e){return t.props.baseValue+e}:\"logit\"===this.props.link?this.invLinkFunction=function(e){return 1/(1+Math.exp(-(t.props.baseValue+e)))}:console.log(\"ERROR: Unrecognized link function: \",this.props.link),this.predValues=(0,y.map)(d,function(t){return(0,y.sum)((0,y.map)(t.features,function(t){return t.effect}))});var q=this.wrapper.node().offsetWidth;if(0==q)return setTimeout(function(){return t.draw(d)},500);this.svg.style(\"height\",this.height+\"px\"),this.svg.style(\"width\",q+\"px\");var Y=(0,y.map)(d,function(t){return t.xmap});this.xscale.domain([(0,y.min)(Y),(0,y.max)(Y)]).range([this.leftOffset,q]).clamp(!0),this.xaxisElement.attr(\"transform\",\"translate(0,\"+this.topOffset+\")\").call(this.xaxis);for(var K=0;K<this.currExplanations.length;++K)this.currExplanations[K].xmapScaled=this.xscale(this.currExplanations[K].xmap);for(var G=d.length,$=0,X=0;X<G;++X){var Q=d[X].features,Z=(0,y.sum)((0,y.map)((0,y.filter)(Q,function(t){return t.effect>0}),function(t){return t.effect}))||0,J=(0,y.sum)((0,y.map)((0,y.filter)(Q,function(t){return t.effect<0}),function(t){return-t.effect}))||0;$=Math.max($,2.2*Math.max(Z,J))}this.yscale.domain([-$/2,$/2]).range([this.height-10,this.topOffset]),this.yaxisElement.attr(\"transform\",\"translate(\"+this.leftOffset+\",0)\").call(this.yaxis);for(var tt=0;tt<G;++tt){var et=d[tt].features,nt=((0,y.sum)((0,y.map)(et,function(t){return Math.abs(t.effect)})),(0,y.sum)((0,y.map)((0,y.filter)(et,function(t){return t.effect<0}),function(t){return-t.effect}))||0),rt=-nt,it=void 0,ot=!0,at=!1,ut=void 0;try{for(var ct,st=this.currPosOrderedFeatures[Symbol.iterator]();!(ot=(ct=st.next()).done);ot=!0)it=ct.value,et[it].posyTop=this.yscale(rt),et[it].effect>0&&(rt+=et[it].effect),et[it].posyBottom=this.yscale(rt),et[it].ind=it}catch(t){at=!0,ut=t}finally{try{!ot&&st.return&&st.return()}finally{if(at)throw ut}}var lt=rt,ft=!0,pt=!1,ht=void 0;try{for(var dt,vt=this.currNegOrderedFeatures[Symbol.iterator]();!(ft=(dt=vt.next()).done);ft=!0)it=dt.value,et[it].negyTop=this.yscale(rt),et[it].effect<0&&(rt-=et[it].effect),et[it].negyBottom=this.yscale(rt)}catch(t){pt=!0,ht=t}finally{try{!ft&&vt.return&&vt.return()}finally{if(pt)throw ht}}d[tt].joinPoint=lt,d[tt].joinPointy=this.yscale(lt)}var gt=(0,g.line)().x(function(t){return t[0]}).y(function(t){return t[1]}),mt=this.mainGroup.selectAll(\".force-bar-array-area-pos\").data(this.currUsedFeatures);mt.enter().append(\"path\").attr(\"class\",\"force-bar-array-area-pos\").merge(mt).attr(\"d\",function(t){var e=(0,y.map)((0,y.range)(G),function(e){return[d[e].xmapScaled,d[e].features[t].posyTop]}),n=(0,y.map)((0,y.rangeRight)(G),function(e){return[d[e].xmapScaled,d[e].features[t].posyBottom]});return gt(e.concat(n))}).attr(\"fill\",this.colors[0]),mt.exit().remove();var yt=this.mainGroup.selectAll(\".force-bar-array-area-neg\").data(this.currUsedFeatures);yt.enter().append(\"path\").attr(\"class\",\"force-bar-array-area-neg\").merge(yt).attr(\"d\",function(t){var e=(0,y.map)((0,y.range)(G),function(e){return[d[e].xmapScaled,d[e].features[t].negyTop]}),n=(0,y.map)((0,y.rangeRight)(G),function(e){return[d[e].xmapScaled,d[e].features[t].negyBottom]});return gt(e.concat(n))}).attr(\"fill\",this.colors[1]),yt.exit().remove();var _t=this.mainGroup.selectAll(\".force-bar-array-divider-pos\").data(this.currUsedFeatures);_t.enter().append(\"path\").attr(\"class\",\"force-bar-array-divider-pos\").merge(_t).attr(\"d\",function(t){var e=(0,y.map)((0,y.range)(G),function(e){return[d[e].xmapScaled,d[e].features[t].posyBottom]});return gt(e)}).attr(\"fill\",\"none\").attr(\"stroke-width\",1).attr(\"stroke\",function(e){return t.colors[0].brighter(1.2)}),_t.exit().remove();var bt=this.mainGroup.selectAll(\".force-bar-array-divider-neg\").data(this.currUsedFeatures);bt.enter().append(\"path\").attr(\"class\",\"force-bar-array-divider-neg\").merge(bt).attr(\"d\",function(t){var e=(0,y.map)((0,y.range)(G),function(e){return[d[e].xmapScaled,d[e].features[t].negyTop]});return gt(e)}).attr(\"fill\",\"none\").attr(\"stroke-width\",1).attr(\"stroke\",function(e){return t.colors[1].brighter(1.5)}),bt.exit().remove();for(var xt=function(t,e,n,r,i){var o=void 0,a=void 0;\"pos\"===i?(o=t[n].features[e].posyBottom,a=t[n].features[e].posyTop):(o=t[n].features[e].negyBottom,a=t[n].features[e].negyTop);for(var u=void 0,c=void 0,s=n+1;s<=r;++s)\"pos\"===i?(u=t[s].features[e].posyBottom,c=t[s].features[e].posyTop):(u=t[s].features[e].negyBottom,c=t[s].features[e].negyTop),u>o&&(o=u),c<a&&(a=c);return{top:o,bottom:a}},wt=[],Ct=[\"pos\",\"neg\"],kt=0;kt<Ct.length;kt++){var Et=Ct[kt],Mt=!0,Tt=!1,St=void 0;try{for(var Nt,At=this.currUsedFeatures[Symbol.iterator]();!(Mt=(Nt=At.next()).done);Mt=!0)for(var Pt=Nt.value,Ot=0,It=0,Dt=0,Rt={top:0,bottom:0},Lt=void 0;It<G-1;){for(;Dt<100&&It<G-1;)++It,Dt=d[It].xmapScaled-d[Ot].xmapScaled;for(Rt=xt(d,Pt,Ot,It,Et);Rt.bottom-Rt.top<20&&Ot<It;)++Ot,Rt=xt(d,Pt,Ot,It,Et);if(Dt=d[It].xmapScaled-d[Ot].xmapScaled,Rt.bottom-Rt.top>=20&&Dt>=100){for(;It<G-1;){if(++It,Lt=xt(d,Pt,Ot,It,Et),!(Lt.bottom-Lt.top>20)){--It;break}Rt=Lt}Dt=d[It].xmapScaled-d[Ot].xmapScaled,wt.push([(d[It].xmapScaled+d[Ot].xmapScaled)/2,(Rt.top+Rt.bottom)/2,this.props.featureNames[Pt]]);var Ut=d[It].xmapScaled;for(Ot=It;Ut+100>d[Ot].xmapScaled&&Ot<G-1;)++Ot;It=Ot}}}catch(t){Tt=!0,St=t}finally{try{!Mt&&At.return&&At.return()}finally{if(Tt)throw St}}}var Ft=this.onTopGroup.selectAll(\".force-bar-array-flabels\").data(wt);Ft.enter().append(\"text\").attr(\"class\",\"force-bar-array-flabels\").merge(Ft).attr(\"x\",function(t){return t[0]}).attr(\"y\",function(t){return t[1]+4}).text(function(t){return t[2]}),Ft.exit().remove()}},{key:\"componentWillUnmount\",value:function(){window.removeEventListener(\"resize\",this.redraw)}},{key:\"render\",value:function(){var t=this;return l.default.createElement(\"div\",{ref:function(e){return t.wrapper=(0,f.select)(e)},style:{textAlign:\"center\"}},l.default.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          }\"}}),l.default.createElement(\"select\",{className:\"additive-force-array-xlabel\"}),l.default.createElement(\"div\",{style:{height:\"0px\",textAlign:\"left\"}},l.default.createElement(\"select\",{className:\"additive-force-array-ylabel\"})),l.default.createElement(\"svg\",{ref:function(e){return t.svg=(0,f.select)(e)},style:{userSelect:\"none\",display:\"block\",fontFamily:\"arial\",sansSerif:!0}}))}}]),e}(l.default.Component);x.defaultProps={plot_cmap:\"RdBu\",ordering_keys:null,ordering_keys_time_format:null},e.default=x},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!e||\"object\"!=typeof e&&\"function\"!=typeof e?t:e}function a(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,\"__esModule\",{value:!0});var u=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),c=n(41),s=r(c),l=n(129),f=n(66),p=(n(7),n(29)),h=n(112),d=n(136),v=n(10),g=n(38),m=n(58),y=r(m),b=function(t){function e(){i(this,e);var t=o(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return window.lastAdditiveForceVisualizer=t,t.effectFormat=(0,p.format)(\".2\"),t.redraw=(0,g.debounce)(function(){return t.draw()},200),t}return a(e,t),u(e,[{key:\"componentDidMount\",value:function(){var t=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){t.hoverLabel.attr(\"opacity\",1),t.hoverLabelBacking.attr(\"opacity\",1)}).on(\"mouseout\",function(e){t.hoverLabel.attr(\"opacity\",0),t.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){t.hoverLabel.attr(\"opacity\",1),t.hoverLabelBacking.attr(\"opacity\",1)}).on(\"mouseout\",function(e){t.hoverLabel.attr(\"opacity\",0),t.hoverLabelBacking.attr(\"opacity\",0)});var e=void 0;\"string\"==typeof this.props.plot_cmap?this.props.plot_cmap in y.default.colors?e=y.default.colors[this.props.plot_cmap]:(console.log(\"Invalid color map name, reverting to default.\"),e=y.default.colors.RdBu):Array.isArray(this.props.plot_cmap)&&(e=this.props.plot_cmap),this.colors=e.map(function(t){return(0,v.hsl)(t)}),this.brighterColors=[1.45,1.6].map(function(e,n){return t.colors[n].brighter(e)}),this.colors.map(function(e,n){var r=t.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\",e).attr(\"stop-opacity\",.6),r.append(\"stop\").attr(\"offset\",\"100%\").attr(\"stop-color\",e).attr(\"stop-opacity\",0);var i=t.svg.append(\"linearGradient\").attr(\"id\",\"linear-backgrad-\"+n).attr(\"x1\",\"0%\").attr(\"y1\",\"0%\").attr(\"x2\",\"0%\").attr(\"y2\",\"100%\");i.append(\"stop\").attr(\"offset\",\"0%\").attr(\"stop-color\",e).attr(\"stop-opacity\",.5),i.append(\"stop\").attr(\"offset\",\"100%\").attr(\"stop-color\",e).attr(\"stop-opacity\",0)}),this.tickFormat=(0,p.format)(\",.4\"),this.scaleCentered=(0,f.scaleLinear)(),this.axis=(0,h.axisBottom)().scale(this.scaleCentered).tickSizeInner(4).tickSizeOuter(0).tickFormat(function(e){return t.tickFormat(t.invLinkFunction(e))}).tickPadding(-18),window.addEventListener(\"resize\",this.redraw),window.setTimeout(this.redraw,50)}},{key:\"componentDidUpdate\",value:function(){this.draw()}},{key:\"draw\",value:function(){var t=this;(0,g.each)(this.props.featureNames,function(e,n){t.props.features[n]&&(t.props.features[n].name=e)}),\"identity\"===this.props.link?this.invLinkFunction=function(e){return t.props.baseValue+e}:\"logit\"===this.props.link?this.invLinkFunction=function(e){return 1/(1+Math.exp(-(t.props.baseValue+e)))}:console.log(\"ERROR: Unrecognized link function: \",this.props.link);var e=this.svg.node().parentNode.offsetWidth;if(0==e)return setTimeout(function(){return t.draw(t.props)},500);this.svg.style(\"height\",\"150px\"),this.svg.style(\"width\",e+\"px\");var n=(0,g.sortBy)(this.props.features,function(t){return-1/(t.effect+1e-10)}),r=(0,g.sum)((0,g.map)(n,function(t){return Math.abs(t.effect)})),i=(0,g.sum)((0,g.map)((0,g.filter)(n,function(t){return t.effect>0}),function(t){return t.effect}))||0,o=(0,g.sum)((0,g.map)((0,g.filter)(n,function(t){return t.effect<0}),function(t){return-t.effect}))||0;this.domainSize=3*Math.max(i,o);var a=(0,f.scaleLinear)().domain([0,this.domainSize]).range([0,e]),u=e/2-a(o);this.scaleCentered.domain([-this.domainSize/2,this.domainSize/2]).range([0,e]).clamp(!0),this.axisElement.attr(\"transform\",\"translate(0,50)\").call(this.axis);var c=0,s=void 0,l=void 0,h=void 0;for(s=0;s<n.length;++s)n[s].x=c,n[s].effect<0&&void 0===l&&(l=c,h=s),c+=Math.abs(n[s].effect);void 0===l&&(l=c,h=s);var v=(0,d.line)().x(function(t){return t[0]}).y(function(t){return t[1]}),m=function(e){return void 0!==e.value&&null!==e.value&&\"\"!==e.value?e.name+\" = \"+(isNaN(e.value)?e.value:t.tickFormat(e.value)):e.name};n=this.props.hideBars?[]:n;var y=this.mainGroup.selectAll(\".force-bar-blocks\").data(n);y.enter().append(\"path\").attr(\"class\",\"force-bar-blocks\").merge(y).attr(\"d\",function(t,e){var n=a(t.x)+u,r=a(Math.abs(t.effect)),i=t.effect<0?-4:4,o=i;return e===h&&(i=0),e===h-1&&(o=0),v([[n,56],[n+r,56],[n+r+o,64.5],[n+r,73],[n,73],[n+i,64.5]])}).attr(\"fill\",function(e){return e.effect>0?t.colors[0]:t.colors[1]}).on(\"mouseover\",function(e){if(a(Math.abs(e.effect))<a(r)/50||a(Math.abs(e.effect))<10){var n=a(e.x)+u,i=a(Math.abs(e.effect));t.hoverLabel.attr(\"opacity\",1).attr(\"x\",n+i/2).attr(\"y\",50.5).attr(\"fill\",e.effect>0?t.colors[0]:t.colors[1]).text(m(e)),t.hoverLabelBacking.attr(\"opacity\",1).attr(\"x\",n+i/2).attr(\"y\",50.5).text(m(e))}}).on(\"mouseout\",function(e){t.hoverLabel.attr(\"opacity\",0),t.hoverLabelBacking.attr(\"opacity\",0)}),y.exit().remove();var b=_.filter(n,function(t){return a(Math.abs(t.effect))>a(r)/50&&a(Math.abs(t.effect))>10}),x=this.onTopGroup.selectAll(\".force-bar-labels\").data(b);if(x.exit().remove(),x=x.enter().append(\"text\").attr(\"class\",\"force-bar-labels\").attr(\"font-size\",\"12px\").attr(\"y\",function(t){return 98}).merge(x).text(function(e){return void 0!==e.value&&null!==e.value&&\"\"!==e.value?e.name+\" = \"+(isNaN(e.value)?e.value:t.tickFormat(e.value)):e.name}).attr(\"fill\",function(e){return e.effect>0?t.colors[0]:t.colors[1]}).attr(\"stroke\",function(t,e){return t.textWidth=Math.max(this.getComputedTextLength(),a(Math.abs(t.effect))-10),t.innerTextWidth=this.getComputedTextLength(),\"none\"}),this.filteredData=b,n.length>0){c=l+a.invert(5);for(var w=h;w<n.length;++w)n[w].textx=c,c+=a.invert(n[w].textWidth+10);c=l-a.invert(5);for(var C=h-1;C>=0;--C)n[C].textx=c,c-=a.invert(n[C].textWidth+10)}x.attr(\"x\",function(t){return a(t.textx)+u+(t.effect>0?-t.textWidth/2:t.textWidth/2)}).attr(\"text-anchor\",\"middle\"),b=(0,g.filter)(b,function(n){return a(n.textx)+u>t.props.labelMargin&&a(n.textx)+u<e-t.props.labelMargin}),this.filteredData2=b;var k=b.slice(),E=(0,g.findIndex)(n,b[0])-1;E>=0&&k.unshift(n[E]);var M=this.mainGroup.selectAll(\".force-bar-labelBacking\").data(b);M.enter().append(\"path\").attr(\"class\",\"force-bar-labelBacking\").attr(\"stroke\",\"none\").attr(\"opacity\",.2).merge(M).attr(\"d\",function(t){return v([[a(t.x)+a(Math.abs(t.effect))+u,73],[(t.effect>0?a(t.textx):a(t.textx)+t.textWidth)+u+5,83],[(t.effect>0?a(t.textx):a(t.textx)+t.textWidth)+u+5,104],[(t.effect>0?a(t.textx)-t.textWidth:a(t.textx))+u-5,104],[(t.effect>0?a(t.textx)-t.textWidth:a(t.textx))+u-5,83],[a(t.x)+u,73]])}).attr(\"fill\",function(t){return\"url(#linear-backgrad-\"+(t.effect>0?0:1)+\")\"}),M.exit().remove();var T=this.mainGroup.selectAll(\".force-bar-labelDividers\").data(b.slice(0,-1));T.enter().append(\"rect\").attr(\"class\",\"force-bar-labelDividers\").attr(\"height\",\"21px\").attr(\"width\",\"1px\").attr(\"y\",83).merge(T).attr(\"x\",function(t){return(t.effect>0?a(t.textx):a(t.textx)+t.textWidth)+u+4.5}).attr(\"fill\",function(t){return\"url(#linear-grad-\"+(t.effect>0?0:1)+\")\"}),T.exit().remove();var S=this.mainGroup.selectAll(\".force-bar-labelLinks\").data(b.slice(0,-1));S.enter().append(\"line\").attr(\"class\",\"force-bar-labelLinks\").attr(\"y1\",73).attr(\"y2\",83).attr(\"stroke-opacity\",.5).attr(\"stroke-width\",1).merge(S).attr(\"x1\",function(t){return a(t.x)+a(Math.abs(t.effect))+u}).attr(\"x2\",function(t){return(t.effect>0?a(t.textx):a(t.textx)+t.textWidth)+u+5}).attr(\"stroke\",function(e){return e.effect>0?t.colors[0]:t.colors[1]}),S.exit().remove();var N=this.mainGroup.selectAll(\".force-bar-blockDividers\").data(n.slice(0,-1));N.enter().append(\"path\").attr(\"class\",\"force-bar-blockDividers\").attr(\"stroke-width\",2).attr(\"fill\",\"none\").merge(N).attr(\"d\",function(t){var e=a(t.x)+a(Math.abs(t.effect))+u;return v([[e,56],[e+(t.effect<0?-4:4),64.5],[e,73]])}).attr(\"stroke\",function(e,n){return h===n+1||Math.abs(e.effect)<1e-8?\"#rgba(0,0,0,0)\":e.effect>0?t.brighterColors[0]:t.brighterColors[1]}),N.exit().remove(),this.joinPointLine.attr(\"x1\",a(l)+u).attr(\"x2\",a(l)+u).attr(\"y1\",50).attr(\"y2\",56).attr(\"stroke\",\"#F2F2F2\").attr(\"stroke-width\",1).attr(\"opacity\",1),this.joinPointLabelOutline.attr(\"x\",a(l)+u).attr(\"y\",45).attr(\"color\",\"#fff\").attr(\"text-anchor\",\"middle\").attr(\"font-weight\",\"bold\").attr(\"stroke\",\"#fff\").attr(\"stroke-width\",6).text((0,p.format)(\",.2f\")(this.invLinkFunction(l-o))).attr(\"opacity\",1),console.log(\"joinPoint\",l,u,50,o),this.joinPointLabel.attr(\"x\",a(l)+u).attr(\"y\",45).attr(\"text-anchor\",\"middle\").attr(\"font-weight\",\"bold\").attr(\"fill\",\"#000\").text((0,p.format)(\",.2f\")(this.invLinkFunction(l-o))).attr(\"opacity\",1),this.joinPointTitle.attr(\"x\",a(l)+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\",a(l)+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\",a(l)+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\",a(l)+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\",a(l)+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 s.default.createElement(\"svg\",{ref:function(e){return t.svg=(0,l.select)(e)},style:{userSelect:\"none\",display:\"block\",fontFamily:\"arial\",sansSerif:!0}},s.default.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          }\"}}))}}]),e}(s.default.Component);b.defaultProps={plot_cmap:\"RdBu\"},e.default=b},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!e||\"object\"!=typeof e&&\"function\"!=typeof e?t:e}function a(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,\"__esModule\",{value:!0});var u=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),c=n(41),s=r(c),l=n(66),f=(n(7),n(29)),p=n(38),h=n(58),d=r(h),v=function(t){function e(){i(this,e);var t=o(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return t.width=100,window.lastSimpleListInstance=t,t.effectFormat=(0,f.format)(\".2\"),t}return a(e,t),u(e,[{key:\"render\",value:function(){var t=this,e=void 0;\"string\"==typeof this.props.plot_cmap?this.props.plot_cmap in d.default.colors?e=d.default.colors[this.props.plot_cmap]:(console.log(\"Invalid color map name, reverting to default.\"),e=d.default.colors.RdBu):Array.isArray(this.props.plot_cmap)&&(e=this.props.plot_cmap),console.log(this.props.features,this.props.features),this.scale=(0,l.scaleLinear)().domain([0,(0,p.max)((0,p.map)(this.props.features,function(t){return Math.abs(t.effect)}))]).range([0,this.width]);var n=(0,p.reverse)((0,p.sortBy)(Object.keys(this.props.features),function(e){return Math.abs(t.props.features[e].effect)})),r=n.map(function(n){var r=t.props.features[n],i=t.props.featureNames[n],o={width:t.scale(Math.abs(r.effect)),height:\"20px\",background:r.effect<0?e[0]:e[1],display:\"inline-block\"},a=void 0,u=void 0,c={lineHeight:\"20px\",display:\"inline-block\",width:t.width+40,verticalAlign:\"top\",marginRight:\"5px\",textAlign:\"right\"},l={lineHeight:\"20px\",display:\"inline-block\",width:t.width+40,verticalAlign:\"top\",marginLeft:\"5px\"};return r.effect<0?(u=s.default.createElement(\"span\",{style:l},i),c.width=40+t.width-t.scale(Math.abs(r.effect)),c.textAlign=\"right\",c.color=\"#999\",c.fontSize=\"13px\",a=s.default.createElement(\"span\",{style:c},t.effectFormat(r.effect))):(c.textAlign=\"right\",a=s.default.createElement(\"span\",{style:c},i),l.width=40,l.textAlign=\"left\",l.color=\"#999\",l.fontSize=\"13px\",u=s.default.createElement(\"span\",{style:l},t.effectFormat(r.effect))),s.default.createElement(\"div\",{key:n,style:{marginTop:\"2px\"}},a,s.default.createElement(\"div\",{style:o}),u)});return s.default.createElement(\"span\",null,r)}}]),e}(s.default.Component);v.defaultProps={plot_cmap:\"RdBu\"},e.default=v},function(t,e,n){\"use strict\";t.exports=n(359)},function(t,e,n){var r=(n(0),n(411)),i=!1;t.exports=function(t){t=t||{};var e=t.shouldRejectClick||r;i=!0,n(22).injection.injectEventPluginsByName({TapEventPlugin:n(409)(e)})}},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}var i=n(41),o=r(i),a=n(187),u=r(a),c=n(188),s=r(c),l=n(186),f=r(l),p=n(185),h=r(p),d=n(184),v=r(d);(0,s.default)(),window.SHAP={SimpleListVisualizer:f.default,AdditiveForceVisualizer:h.default,AdditiveForceArrayVisualizer:v.default,React:o.default,ReactDom:u.default}},,function(t,e,n){\"use strict\";function r(t){return t}function i(t,e,n){function i(t,e){var n=y.hasOwnProperty(e)?y[e]:null;C.hasOwnProperty(e)&&u(\"OVERRIDE_BASE\"===n,\"ReactClassInterface: You are attempting to override `%s` from your class specification. Ensure that your method names do not overlap with React methods.\",e),t&&u(\"DEFINE_MANY\"===n||\"DEFINE_MANY_MERGED\"===n,\"ReactClassInterface: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.\",e)}function s(t,n){if(n){u(\"function\"!=typeof n,\"ReactClass: You're attempting to use a component class or function as a mixin. Instead, just use a regular object.\"),u(!e(n),\"ReactClass: You're attempting to use a component as a mixin. Instead, just use a regular object.\");var r=t.prototype,o=r.__reactAutoBindPairs;n.hasOwnProperty(c)&&b.mixins(t,n.mixins);for(var a in n)if(n.hasOwnProperty(a)&&a!==c){var s=n[a],l=r.hasOwnProperty(a);if(i(l,a),b.hasOwnProperty(a))b[a](t,s);else{var f=y.hasOwnProperty(a),d=\"function\"==typeof s,v=d&&!f&&!l&&!1!==n.autobind;if(v)o.push(a,s),r[a]=s;else if(l){var g=y[a];u(f&&(\"DEFINE_MANY_MERGED\"===g||\"DEFINE_MANY\"===g),\"ReactClass: Unexpected spec policy %s for key %s when mixing in component specs.\",g,a),\"DEFINE_MANY_MERGED\"===g?r[a]=p(r[a],s):\"DEFINE_MANY\"===g&&(r[a]=h(r[a],s))}else r[a]=s}}}else;}function l(t,e){if(e)for(var n in e){var r=e[n];if(e.hasOwnProperty(n)){var i=n in b;u(!i,'ReactClass: You are attempting to define a reserved property, `%s`, that shouldn\\'t be on the \"statics\" key. Define it as an instance property instead; it will still be accessible on the constructor.',n);var o=n in t;if(o){var a=_.hasOwnProperty(n)?_[n]:null;return u(\"DEFINE_MANY_MERGED\"===a,\"ReactClass: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.\",n),void(t[n]=p(t[n],r))}t[n]=r}}}function f(t,e){u(t&&e&&\"object\"==typeof t&&\"object\"==typeof e,\"mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.\");for(var n in e)e.hasOwnProperty(n)&&(u(void 0===t[n],\"mergeIntoWithNoDuplicateKeys(): Tried to merge two objects with the same key: `%s`. This conflict may be due to a mixin; in particular, this may be caused by two getInitialState() or getDefaultProps() methods returning objects with clashing keys.\",n),t[n]=e[n]);return t}function p(t,e){return function(){var n=t.apply(this,arguments),r=e.apply(this,arguments);if(null==n)return r;if(null==r)return n;var i={};return f(i,n),f(i,r),i}}function h(t,e){return function(){t.apply(this,arguments),e.apply(this,arguments)}}function d(t,e){var n=e.bind(t);return n}function v(t){for(var e=t.__reactAutoBindPairs,n=0;n<e.length;n+=2){var r=e[n],i=e[n+1];t[r]=d(t,i)}}function g(t){var e=r(function(t,r,i){this.__reactAutoBindPairs.length&&v(this),this.props=t,this.context=r,this.refs=a,this.updater=i||n,this.state=null;var o=this.getInitialState?this.getInitialState():null;u(\"object\"==typeof o&&!Array.isArray(o),\"%s.getInitialState(): must return an object or null\",e.displayName||\"ReactCompositeComponent\"),this.state=o});e.prototype=new k,e.prototype.constructor=e,e.prototype.__reactAutoBindPairs=[],m.forEach(s.bind(null,e)),s(e,x),s(e,t),s(e,w),e.getDefaultProps&&(e.defaultProps=e.getDefaultProps()),u(e.prototype.render,\"createClass(...): Class specification must implement a `render` method.\");for(var i in y)e.prototype[i]||(e.prototype[i]=null);return e}var m=[],y={mixins:\"DEFINE_MANY\",statics:\"DEFINE_MANY\",propTypes:\"DEFINE_MANY\",contextTypes:\"DEFINE_MANY\",childContextTypes:\"DEFINE_MANY\",getDefaultProps:\"DEFINE_MANY_MERGED\",getInitialState:\"DEFINE_MANY_MERGED\",getChildContext:\"DEFINE_MANY_MERGED\",render:\"DEFINE_ONCE\",componentWillMount:\"DEFINE_MANY\",componentDidMount:\"DEFINE_MANY\",componentWillReceiveProps:\"DEFINE_MANY\",shouldComponentUpdate:\"DEFINE_ONCE\",componentWillUpdate:\"DEFINE_MANY\",componentDidUpdate:\"DEFINE_MANY\",componentWillUnmount:\"DEFINE_MANY\",UNSAFE_componentWillMount:\"DEFINE_MANY\",UNSAFE_componentWillReceiveProps:\"DEFINE_MANY\",UNSAFE_componentWillUpdate:\"DEFINE_MANY\",updateComponent:\"OVERRIDE_BASE\"},_={getDerivedStateFromProps:\"DEFINE_MANY_MERGED\"},b={displayName:function(t,e){t.displayName=e},mixins:function(t,e){if(e)for(var n=0;n<e.length;n++)s(t,e[n])},childContextTypes:function(t,e){t.childContextTypes=o({},t.childContextTypes,e)},contextTypes:function(t,e){t.contextTypes=o({},t.contextTypes,e)},getDefaultProps:function(t,e){t.getDefaultProps?t.getDefaultProps=p(t.getDefaultProps,e):t.getDefaultProps=e},propTypes:function(t,e){t.propTypes=o({},t.propTypes,e)},statics:function(t,e){l(t,e)},autobind:function(){}},x={componentDidMount:function(){this.__isMounted=!0}},w={componentWillUnmount:function(){this.__isMounted=!1}},C={replaceState:function(t,e){this.updater.enqueueReplaceState(this,t,e)},isMounted:function(){return!!this.__isMounted}},k=function(){};return o(k.prototype,t.prototype,C),g}var o=n(3),a=n(51),u=n(0),c=\"mixins\";t.exports=i},function(t,e,n){\"use strict\";e.a=function(t){return function(){return t}}},function(t,e,n){\"use strict\";var r=n(106);e.a=function(t,e,n){var i,o,a,u,c=t.length,s=e.length,l=new Array(c*s);for(null==n&&(n=r.b),i=a=0;i<c;++i)for(u=t[i],o=0;o<s;++o,++a)l[a]=n(u,e[o]);return l}},function(t,e,n){\"use strict\";e.a=function(t,e){return e<t?-1:e>t?1:e>=t?0:NaN}},function(t,e,n){\"use strict\";var r=n(100),i=n(101),o=n(192),a=n(104),u=n(196),c=n(107),s=n(109),l=n(108);e.a=function(){function t(t){var r,o,a=t.length,u=new Array(a);for(r=0;r<a;++r)u[r]=e(t[r],r,t);var l=f(u),h=l[0],d=l[1],v=p(u,h,d);Array.isArray(v)||(v=n.i(s.c)(h,d,v),v=n.i(c.a)(Math.ceil(h/v)*v,Math.floor(d/v)*v,v));for(var g=v.length;v[0]<=h;)v.shift(),--g;for(;v[g-1]>d;)v.pop(),--g;var m,y=new Array(g+1);for(r=0;r<=g;++r)m=y[r]=[],m.x0=r>0?v[r-1]:h,m.x1=r<g?v[r]:d;for(r=0;r<a;++r)o=u[r],h<=o&&o<=d&&y[n.i(i.a)(v,o,0,g)].push(t[r]);return y}var e=u.a,f=a.a,p=l.a;return t.value=function(r){return arguments.length?(e=\"function\"==typeof r?r:n.i(o.a)(r),t):e},t.domain=function(e){return arguments.length?(f=\"function\"==typeof e?e:n.i(o.a)([e[0],e[1]]),t):f},t.thresholds=function(e){return arguments.length?(p=\"function\"==typeof e?e:Array.isArray(e)?n.i(o.a)(r.b.call(e)):n.i(o.a)(e),t):p},t}},function(t,e,n){\"use strict\";e.a=function(t){return t}},function(t,e,n){\"use strict\";e.a=function(t,e){var n,r,i=t.length,o=-1;if(null==e){for(;++o<i;)if(null!=(n=t[o])&&n>=n)for(r=n;++o<i;)null!=(n=t[o])&&n>r&&(r=n)}else for(;++o<i;)if(null!=(n=e(t[o],o,t))&&n>=n)for(r=n;++o<i;)null!=(n=e(t[o],o,t))&&n>r&&(r=n);return r}},function(t,e,n){\"use strict\";var r=n(28);e.a=function(t,e){var i,o=t.length,a=o,u=-1,c=0;if(null==e)for(;++u<o;)isNaN(i=n.i(r.a)(t[u]))?--a:c+=i;else for(;++u<o;)isNaN(i=n.i(r.a)(e(t[u],u,t)))?--a:c+=i;if(a)return c/a}},function(t,e,n){\"use strict\";var r=n(19),i=n(28),o=n(59);e.a=function(t,e){var a,u=t.length,c=-1,s=[];if(null==e)for(;++c<u;)isNaN(a=n.i(i.a)(t[c]))||s.push(a);else for(;++c<u;)isNaN(a=n.i(i.a)(e(t[c],c,t)))||s.push(a);return n.i(o.a)(s.sort(r.a),.5)}},function(t,e,n){\"use strict\";e.a=function(t){for(var e,n,r,i=t.length,o=-1,a=0;++o<i;)a+=t[o].length;for(n=new Array(a);--i>=0;)for(r=t[i],e=r.length;--e>=0;)n[--a]=r[e];return n}},function(t,e,n){\"use strict\";e.a=function(t,e){for(var n=e.length,r=new Array(n);n--;)r[n]=t[e[n]];return r}},function(t,e,n){\"use strict\";var r=n(19);e.a=function(t,e){if(n=t.length){var n,i,o=0,a=0,u=t[a];for(null==e&&(e=r.a);++o<n;)(e(i=t[o],u)<0||0!==e(u,u))&&(u=i,a=o);return 0===e(u,u)?a:void 0}}},function(t,e,n){\"use strict\";e.a=function(t,e,n){for(var r,i,o=(null==n?t.length:n)-(e=null==e?0:+e);o;)i=Math.random()*o--|0,r=t[o+e],t[o+e]=t[i+e],t[i+e]=r;return t}},function(t,e,n){\"use strict\";e.a=function(t,e){var n,r=t.length,i=-1,o=0;if(null==e)for(;++i<r;)(n=+t[i])&&(o+=n);else for(;++i<r;)(n=+e(t[i],i,t))&&(o+=n);return o}},function(t,e,n){\"use strict\";var r=n(100),i=n(19),o=n(28),a=n(59);e.a=function(t,e,u){return t=r.a.call(t,o.a).sort(i.a),Math.ceil((u-e)/(2*(n.i(a.a)(t,.75)-n.i(a.a)(t,.25))*Math.pow(t.length,-1/3)))}},function(t,e,n){\"use strict\";var r=n(103);e.a=function(t,e,i){return Math.ceil((i-e)/(3.5*n.i(r.a)(t)*Math.pow(t.length,-1/3)))}},function(t,e,n){\"use strict\";var r=n(110);e.a=function(){return n.i(r.a)(arguments)}},function(t,e,n){\"use strict\";n.d(e,\"a\",function(){return r});var r=Array.prototype.slice},function(t,e,n){\"use strict\";function r(t){return\"translate(\"+(t+.5)+\",0)\"}function i(t){return\"translate(0,\"+(t+.5)+\")\"}function o(t){return function(e){return+t(e)}}function a(t){var e=Math.max(0,t.bandwidth()-1)/2;return t.round()&&(e=Math.round(e)),function(n){return+t(n)+e}}function u(){return!this.__axis}function c(t,e){function n(n){var r=null==s?e.ticks?e.ticks.apply(e,c):e.domain():s,i=null==l?e.tickFormat?e.tickFormat.apply(e,c):d.a:l,h=Math.max(f,0)+b,k=e.range(),E=+k[0]+.5,M=+k[k.length-1]+.5,T=(e.bandwidth?a:o)(e.copy()),S=n.selection?n.selection():n,N=S.selectAll(\".domain\").data([null]),A=S.selectAll(\".tick\").data(r,e).order(),P=A.exit(),O=A.enter().append(\"g\").attr(\"class\",\"tick\"),I=A.select(\"line\"),D=A.select(\"text\");N=N.merge(N.enter().insert(\"path\",\".tick\").attr(\"class\",\"domain\").attr(\"stroke\",\"#000\")),A=A.merge(O),I=I.merge(O.append(\"line\").attr(\"stroke\",\"#000\").attr(w+\"2\",x*f)),D=D.merge(O.append(\"text\").attr(\"fill\",\"#000\").attr(w,x*h).attr(\"dy\",t===v?\"0em\":t===m?\"0.71em\":\"0.32em\")),n!==S&&(N=N.transition(n),A=A.transition(n),I=I.transition(n),D=D.transition(n),P=P.transition(n).attr(\"opacity\",_).attr(\"transform\",function(t){return isFinite(t=T(t))?C(t):this.getAttribute(\"transform\")}),O.attr(\"opacity\",_).attr(\"transform\",function(t){var e=this.parentNode.__axis;return C(e&&isFinite(e=e(t))?e:T(t))})),P.remove(),N.attr(\"d\",t===y||t==g?\"M\"+x*p+\",\"+E+\"H0.5V\"+M+\"H\"+x*p:\"M\"+E+\",\"+x*p+\"V0.5H\"+M+\"V\"+x*p),A.attr(\"opacity\",1).attr(\"transform\",function(t){return C(T(t))}),I.attr(w+\"2\",x*f),D.attr(w,x*h).text(i),S.filter(u).attr(\"fill\",\"none\").attr(\"font-size\",10).attr(\"font-family\",\"sans-serif\").attr(\"text-anchor\",t===g?\"start\":t===y?\"end\":\"middle\"),S.each(function(){this.__axis=T})}var c=[],s=null,l=null,f=6,p=6,b=3,x=t===v||t===y?-1:1,w=t===y||t===g?\"x\":\"y\",C=t===v||t===m?r:i;return n.scale=function(t){return arguments.length?(e=t,n):e},n.ticks=function(){return c=h.a.call(arguments),n},n.tickArguments=function(t){return arguments.length?(c=null==t?[]:h.a.call(t),n):c.slice()},n.tickValues=function(t){return arguments.length?(s=null==t?null:h.a.call(t),n):s&&s.slice()},n.tickFormat=function(t){return arguments.length?(l=t,n):l},n.tickSize=function(t){return arguments.length?(f=p=+t,n):f},n.tickSizeInner=function(t){return arguments.length?(f=+t,n):f},n.tickSizeOuter=function(t){return arguments.length?(p=+t,n):p},n.tickPadding=function(t){return arguments.length?(b=+t,n):b},n}function s(t){return c(v,t)}function l(t){return c(g,t)}function f(t){return c(m,t)}function p(t){return c(y,t)}e.a=s,e.b=l,e.c=f,e.d=p;var h=n(208),d=n(210),v=1,g=2,m=3,y=4,_=1e-6},function(t,e,n){\"use strict\";e.a=function(t){return t}},function(t,e,n){\"use strict\";var r=(n(214),n(215),n(60));n.d(e,\"a\",function(){return r.a});n(213),n(216),n(212)},function(t,e,n){\"use strict\"},function(t,e,n){\"use strict\"},function(t,e,n){\"use strict\";n(60)},function(t,e,n){\"use strict\";function r(){}function i(t,e){var n=new r;if(t instanceof r)t.each(function(t){n.add(t)});else if(t){var i=-1,o=t.length;if(null==e)for(;++i<o;)n.add(t[i]);else for(;++i<o;)n.add(e(t[i],i,t))}return n}var o=n(60),a=o.a.prototype;r.prototype=i.prototype={constructor:r,has:a.has,add:function(t){return t+=\"\",this[o.b+t]=t,this},remove:a.remove,clear:a.clear,values:a.keys,size:a.size,empty:a.empty,each:a.each}},function(t,e,n){\"use strict\"},function(t,e,n){\"use strict\";function r(t){if(t instanceof o)return new o(t.h,t.s,t.l,t.opacity);t instanceof u.d||(t=n.i(u.e)(t));var e=t.r/255,r=t.g/255,i=t.b/255,a=(g*i+d*e-v*r)/(g+d-v),s=i-a,l=(h*(r-a)-f*s)/p,m=Math.sqrt(l*l+s*s)/(h*a*(1-a)),y=m?Math.atan2(l,s)*c.a-120:NaN;return new o(y<0?y+360:y,m,a,t.opacity)}function i(t,e,n,i){return 1===arguments.length?r(t):new o(t,e,n,null==i?1:i)}function o(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}e.a=i;var a=n(62),u=n(61),c=n(113),s=-.14861,l=1.78277,f=-.29227,p=-.90649,h=1.97294,d=h*p,v=h*l,g=l*f-p*s;n.i(a.a)(o,i,n.i(a.b)(u.f,{brighter:function(t){return t=null==t?u.g:Math.pow(u.g,t),new o(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?u.h:Math.pow(u.h,t),new o(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=isNaN(this.h)?0:(this.h+120)*c.b,e=+this.l,n=isNaN(this.s)?0:this.s*e*(1-e),r=Math.cos(t),i=Math.sin(t);return new u.d(255*(e+n*(s*r+l*i)),255*(e+n*(f*r+p*i)),255*(e+n*(h*r)),this.opacity)}}))},function(t,e,n){\"use strict\";function r(t){if(t instanceof o)return new o(t.l,t.a,t.b,t.opacity);if(t instanceof p){var e=t.h*v.b;return new o(t.l,Math.cos(e)*t.c,Math.sin(e)*t.c,t.opacity)}t instanceof d.d||(t=n.i(d.e)(t));var r=s(t.r),i=s(t.g),u=s(t.b),c=a((.4124564*r+.3575761*i+.1804375*u)/g),l=a((.2126729*r+.7151522*i+.072175*u)/m);return new o(116*l-16,500*(c-l),200*(l-a((.0193339*r+.119192*i+.9503041*u)/y)),t.opacity)}function i(t,e,n,i){return 1===arguments.length?r(t):new o(t,e,n,null==i?1:i)}function o(t,e,n,r){this.l=+t,this.a=+e,this.b=+n,this.opacity=+r}function a(t){return t>w?Math.pow(t,1/3):t/x+_}function u(t){return t>b?t*t*t:x*(t-_)}function c(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function s(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function l(t){if(t instanceof p)return new p(t.h,t.c,t.l,t.opacity);t instanceof o||(t=r(t));var e=Math.atan2(t.b,t.a)*v.a;return new p(e<0?e+360:e,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}function f(t,e,n,r){return 1===arguments.length?l(t):new p(t,e,n,null==r?1:r)}function p(t,e,n,r){this.h=+t,this.c=+e,this.l=+n,this.opacity=+r}e.a=i,e.b=f;var h=n(62),d=n(61),v=n(113),g=.95047,m=1,y=1.08883,_=4/29,b=6/29,x=3*b*b,w=b*b*b;n.i(h.a)(o,i,n.i(h.b)(d.f,{brighter:function(t){return new o(this.l+18*(null==t?1:t),this.a,this.b,this.opacity)},darker:function(t){return new o(this.l-18*(null==t?1:t),this.a,this.b,this.opacity)},rgb:function(){var t=(this.l+16)/116,e=isNaN(this.a)?t:t+this.a/500,n=isNaN(this.b)?t:t-this.b/200;return t=m*u(t),e=g*u(e),n=y*u(n),new d.d(c(3.2404542*e-1.5371385*t-.4985314*n),c(-.969266*e+1.8760108*t+.041556*n),c(.0556434*e-.2040259*t+1.0572252*n),this.opacity)}})),n.i(h.a)(p,f,n.i(h.b)(d.f,{brighter:function(t){return new p(this.h,this.c,this.l+18*(null==t?1:t),this.opacity)},darker:function(t){return new p(this.h,this.c,this.l-18*(null==t?1:t),this.opacity)},rgb:function(){return r(this).rgb()}}))},function(t,e,n){\"use strict\";function r(t){return i=n.i(u.a)(t),o=i.format,a=i.formatPrefix,i}n.d(e,\"b\",function(){return o}),n.d(e,\"c\",function(){return a}),e.a=r;var i,o,a,u=n(117);r({decimal:\".\",thousands:\",\",grouping:[3],currency:[\"$\",\"\"]})},function(t,e,n){\"use strict\";e.a=function(t,e){t=t.toPrecision(e);t:for(var n,r=t.length,i=1,o=-1;i<r;++i)switch(t[i]){case\".\":o=n=i;break;case\"0\":0===o&&(o=i),n=i;break;case\"e\":break t;default:o>0&&(o=0)}return o>0?t.slice(0,o)+t.slice(n+1):t}},function(t,e,n){\"use strict\";e.a=function(t,e){return function(n,r){for(var i=n.length,o=[],a=0,u=t[0],c=0;i>0&&u>0&&(c+u+1>r&&(u=Math.max(1,r-c)),o.push(n.substring(i-=u,i+u)),!((c+=u+1)>r));)u=t[a=(a+1)%t.length];return o.reverse().join(e)}}},function(t,e,n){\"use strict\";e.a=function(t){return function(e){return e.replace(/[0-9]/g,function(e){return t[+e]})}}},function(t,e,n){\"use strict\";var r=n(63);e.a=function(t,e){var i=n.i(r.a)(t,e);if(!i)return t+\"\";var o=i[0],a=i[1];return a<0?\"0.\"+new Array(-a).join(\"0\")+o:o.length>a+1?o.slice(0,a+1)+\".\"+o.slice(a+1):o+new Array(a-o.length+2).join(\"0\")}},function(t,e,n){\"use strict\";e.a=function(t){return t}},function(t,e,n){\"use strict\";var r=n(42);e.a=function(t){return Math.max(0,-n.i(r.a)(Math.abs(t)))}},function(t,e,n){\"use strict\";var r=n(42);e.a=function(t,e){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(n.i(r.a)(e)/3)))-n.i(r.a)(Math.abs(t)))}},function(t,e,n){\"use strict\";var r=n(42);e.a=function(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,n.i(r.a)(e)-n.i(r.a)(t))+1}},function(t,e,n){\"use strict\";function r(t){return function e(r){function a(e,a){var u=t((e=n.i(i.cubehelix)(e)).h,(a=n.i(i.cubehelix)(a)).h),c=n.i(o.a)(e.s,a.s),s=n.i(o.a)(e.l,a.l),l=n.i(o.a)(e.opacity,a.opacity);return function(t){return e.h=u(t),e.s=c(t),e.l=s(Math.pow(t,r)),e.opacity=l(t),e+\"\"}}return r=+r,a.gamma=e,a}(1)}n.d(e,\"a\",function(){return a});var i=n(10),o=n(31),a=(r(o.b),r(o.a))},function(t,e,n){\"use strict\";function r(t){return function(e,r){var a=t((e=n.i(i.hcl)(e)).h,(r=n.i(i.hcl)(r)).h),u=n.i(o.a)(e.c,r.c),c=n.i(o.a)(e.l,r.l),s=n.i(o.a)(e.opacity,r.opacity);return function(t){return e.h=a(t),e.c=u(t),e.l=c(t),e.opacity=s(t),e+\"\"}}}var i=n(10),o=n(31);r(o.b),r(o.a)},function(t,e,n){\"use strict\";function r(t){return function(e,r){var a=t((e=n.i(i.hsl)(e)).h,(r=n.i(i.hsl)(r)).h),u=n.i(o.a)(e.s,r.s),c=n.i(o.a)(e.l,r.l),s=n.i(o.a)(e.opacity,r.opacity);return function(t){return e.h=a(t),e.s=u(t),e.l=c(t),e.opacity=s(t),e+\"\"}}}var i=n(10),o=n(31);r(o.b),r(o.a)},function(t,e,n){\"use strict\";n(10),n(31)},function(t,e,n){\"use strict\"},function(t,e,n){\"use strict\";e.a=function(t,e){return t=+t,e-=t,function(n){return Math.round(t+e*n)}}},function(t,e,n){\"use strict\";n.d(e,\"a\",function(){return i});var r=180/Math.PI,i={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};e.b=function(t,e,n,i,o,a){var u,c,s;return(u=Math.sqrt(t*t+e*e))&&(t/=u,e/=u),(s=t*n+e*i)&&(n-=t*s,i-=e*s),(c=Math.sqrt(n*n+i*i))&&(n/=c,i/=c,s/=c),t*i<e*n&&(t=-t,e=-e,s=-s,u=-u),{translateX:o,translateY:a,rotate:Math.atan2(e,t)*r,skewX:Math.atan(s)*r,scaleX:u,scaleY:c}}},function(t,e,n){\"use strict\";function r(t,e,r,o){function a(t){return t.length?t.pop()+\" \":\"\"}function u(t,o,a,u,c,s){if(t!==a||o!==u){var l=c.push(\"translate(\",null,e,null,r);s.push({i:l-4,x:n.i(i.a)(t,a)},{i:l-2,x:n.i(i.a)(o,u)})}else(a||u)&&c.push(\"translate(\"+a+e+u+r)}function c(t,e,r,u){t!==e?(t-e>180?e+=360:e-t>180&&(t+=360),u.push({i:r.push(a(r)+\"rotate(\",null,o)-2,x:n.i(i.a)(t,e)})):e&&r.push(a(r)+\"rotate(\"+e+o)}function s(t,e,r,u){t!==e?u.push({i:r.push(a(r)+\"skewX(\",null,o)-2,x:n.i(i.a)(t,e)}):e&&r.push(a(r)+\"skewX(\"+e+o)}function l(t,e,r,o,u,c){if(t!==r||e!==o){var s=u.push(a(u)+\"scale(\",null,\",\",null,\")\");c.push({i:s-4,x:n.i(i.a)(t,r)},{i:s-2,x:n.i(i.a)(e,o)})}else 1===r&&1===o||u.push(a(u)+\"scale(\"+r+\",\"+o+\")\")}return function(e,n){var r=[],i=[];return e=t(e),n=t(n),u(e.translateX,e.translateY,n.translateX,n.translateY,r,i),c(e.rotate,n.rotate,r,i),s(e.skewX,n.skewX,r,i),l(e.scaleX,e.scaleY,n.scaleX,n.scaleY,r,i),e=n=null,function(t){for(var e,n=-1,o=i.length;++n<o;)r[(e=i[n]).i]=e.x(t);return r.join(\"\")}}}var i=n(43),o=n(236);r(o.a,\"px, \",\"px)\",\"deg)\"),r(o.b,\", \",\")\",\")\")},function(t,e,n){\"use strict\";function r(t){return\"none\"===t?s.a:(o||(o=document.createElement(\"DIV\"),a=document.documentElement,u=document.defaultView),o.style.transform=t,t=u.getComputedStyle(a.appendChild(o),null).getPropertyValue(\"transform\"),a.removeChild(o),t=t.slice(7,-1).split(\",\"),n.i(s.b)(+t[0],+t[1],+t[2],+t[3],+t[4],+t[5]))}function i(t){return null==t?s.a:(c||(c=document.createElementNS(\"http://www.w3.org/2000/svg\",\"g\")),c.setAttribute(\"transform\",t),(t=c.transform.baseVal.consolidate())?(t=t.matrix,n.i(s.b)(t.a,t.b,t.c,t.d,t.e,t.f)):s.a)}e.a=r,e.b=i;var o,a,u,c,s=n(234)},function(t,e,n){\"use strict\";Math.SQRT2},function(t,e,n){\"use strict\";function r(){this._x0=this._y0=this._x1=this._y1=null,this._=\"\"}function i(){return new r}var o=Math.PI,a=2*o,u=a-1e-6;r.prototype=i.prototype={constructor:r,moveTo:function(t,e){this._+=\"M\"+(this._x0=this._x1=+t)+\",\"+(this._y0=this._y1=+e)},closePath:function(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+=\"Z\")},lineTo:function(t,e){this._+=\"L\"+(this._x1=+t)+\",\"+(this._y1=+e)},quadraticCurveTo:function(t,e,n,r){this._+=\"Q\"+ +t+\",\"+ +e+\",\"+(this._x1=+n)+\",\"+(this._y1=+r)},bezierCurveTo:function(t,e,n,r,i,o){this._+=\"C\"+ +t+\",\"+ +e+\",\"+ +n+\",\"+ +r+\",\"+(this._x1=+i)+\",\"+(this._y1=+o)},arcTo:function(t,e,n,r,i){t=+t,e=+e,n=+n,r=+r,i=+i;var a=this._x1,u=this._y1,c=n-t,s=r-e,l=a-t,f=u-e,p=l*l+f*f;if(i<0)throw new Error(\"negative radius: \"+i);if(null===this._x1)this._+=\"M\"+(this._x1=t)+\",\"+(this._y1=e);else if(p>1e-6)if(Math.abs(f*c-s*l)>1e-6&&i){var h=n-a,d=r-u,v=c*c+s*s,g=h*h+d*d,m=Math.sqrt(v),y=Math.sqrt(p),_=i*Math.tan((o-Math.acos((v+p-g)/(2*m*y)))/2),b=_/y,x=_/m;Math.abs(b-1)>1e-6&&(this._+=\"L\"+(t+b*l)+\",\"+(e+b*f)),this._+=\"A\"+i+\",\"+i+\",0,0,\"+ +(f*h>l*d)+\",\"+(this._x1=t+x*c)+\",\"+(this._y1=e+x*s)}else this._+=\"L\"+(this._x1=t)+\",\"+(this._y1=e);else;},arc:function(t,e,n,r,i,c){t=+t,e=+e,n=+n;var s=n*Math.cos(r),l=n*Math.sin(r),f=t+s,p=e+l,h=1^c,d=c?r-i:i-r;if(n<0)throw new Error(\"negative radius: \"+n);null===this._x1?this._+=\"M\"+f+\",\"+p:(Math.abs(this._x1-f)>1e-6||Math.abs(this._y1-p)>1e-6)&&(this._+=\"L\"+f+\",\"+p),n&&(d<0&&(d=d%a+a),d>u?this._+=\"A\"+n+\",\"+n+\",0,1,\"+h+\",\"+(t-s)+\",\"+(e-l)+\"A\"+n+\",\"+n+\",0,1,\"+h+\",\"+(this._x1=f)+\",\"+(this._y1=p):d>1e-6&&(this._+=\"A\"+n+\",\"+n+\",0,\"+ +(d>=o)+\",\"+h+\",\"+(this._x1=t+n*Math.cos(i))+\",\"+(this._y1=e+n*Math.sin(i))))},rect:function(t,e,n,r){this._+=\"M\"+(this._x0=this._x1=+t)+\",\"+(this._y0=this._y1=+e)+\"h\"+ +n+\"v\"+ +r+\"h\"+-n+\"Z\"},toString:function(){return this._}},e.a=i},function(t,e,n){\"use strict\";function r(){function t(){var t=c().length,r=l[1]<l[0],o=l[r-0],u=l[1-r];e=(u-o)/Math.max(1,t-p+2*h),f&&(e=Math.floor(e)),o+=(u-o-e*(t-p))*d,i=e*(1-p),f&&(o=Math.round(o),i=Math.round(i));var v=n.i(a.range)(t).map(function(t){return o+e*t});return s(r?v.reverse():v)}var e,i,o=n.i(u.a)().unknown(void 0),c=o.domain,s=o.range,l=[0,1],f=!1,p=0,h=0,d=.5;return delete o.unknown,o.domain=function(e){return arguments.length?(c(e),t()):c()},o.range=function(e){return arguments.length?(l=[+e[0],+e[1]],t()):l.slice()},o.rangeRound=function(e){return l=[+e[0],+e[1]],f=!0,t()},o.bandwidth=function(){return i},o.step=function(){return e},o.round=function(e){return arguments.length?(f=!!e,t()):f},o.padding=function(e){return arguments.length?(p=h=Math.max(0,Math.min(1,e)),t()):p},o.paddingInner=function(e){return arguments.length?(p=Math.max(0,Math.min(1,e)),t()):p},o.paddingOuter=function(e){return arguments.length?(h=Math.max(0,Math.min(1,e)),t()):h},o.align=function(e){return arguments.length?(d=Math.max(0,Math.min(1,e)),t()):d},o.copy=function(){return r().domain(c()).range(l).round(f).paddingInner(p).paddingOuter(h).align(d)},t()}function i(t){var e=t.copy;return t.padding=t.paddingOuter,delete t.paddingInner,delete t.paddingOuter,t.copy=function(){return i(e())},t}function o(){return i(r().paddingInner(1))}e.a=r,e.b=o;var a=n(7),u=n(127)},function(t,e,n){\"use strict\";var r=n(33);e.a=n.i(r.a)(\"1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf\")},function(t,e,n){\"use strict\";var r=n(33);e.a=n.i(r.a)(\"1f77b4aec7e8ff7f0effbb782ca02c98df8ad62728ff98969467bdc5b0d58c564bc49c94e377c2f7b6d27f7f7fc7c7c7bcbd22dbdb8d17becf9edae5\")},function(t,e,n){\"use strict\";var r=n(33);e.a=n.i(r.a)(\"393b795254a36b6ecf9c9ede6379398ca252b5cf6bcedb9c8c6d31bd9e39e7ba52e7cb94843c39ad494ad6616be7969c7b4173a55194ce6dbdde9ed6\")},function(t,e,n){\"use strict\";var r=n(33);e.a=n.i(r.a)(\"3182bd6baed69ecae1c6dbefe6550dfd8d3cfdae6bfdd0a231a35474c476a1d99bc7e9c0756bb19e9ac8bcbddcdadaeb636363969696bdbdbdd9d9d9\")},function(t,e,n){\"use strict\";var r=n(10),i=n(30);e.a=n.i(i.d)(n.i(r.cubehelix)(300,.5,0),n.i(r.cubehelix)(-240,.5,1))},function(t,e,n){\"use strict\";function r(){function t(t){return+t}var e=[0,1];return t.invert=t,t.domain=t.range=function(n){return arguments.length?(e=i.a.call(n,a.a),t):e.slice()},t.copy=function(){return r().domain(e)},n.i(o.b)(t)}e.a=r;var i=n(16),o=n(34),a=n(126)},function(t,e,n){\"use strict\";function r(t,e){return(e=Math.log(e/t))?function(n){return Math.log(n/t)/e}:n.i(p.a)(e)}function i(t,e){return t<0?function(n){return-Math.pow(-e,n)*Math.pow(-t,1-n)}:function(n){return Math.pow(e,n)*Math.pow(t,1-n)}}function o(t){return isFinite(t)?+(\"1e\"+t):t<0?0:t}function a(t){return 10===t?o:t===Math.E?Math.exp:function(e){return Math.pow(t,e)}}function u(t){return t===Math.E?Math.log:10===t&&Math.log10||2===t&&Math.log2||(t=Math.log(t),function(e){return Math.log(e)/t})}function c(t){return function(e){return-t(-e)}}function s(){function t(){return v=u(p),g=a(p),o()[0]<0&&(v=c(v),g=c(g)),e}var e=n.i(d.a)(r,i).domain([1,10]),o=e.domain,p=10,v=u(10),g=a(10);return e.base=function(e){return arguments.length?(p=+e,t()):p},e.domain=function(e){return arguments.length?(o(e),t()):o()},e.ticks=function(t){var e,r=o(),i=r[0],a=r[r.length-1];(e=a<i)&&(f=i,i=a,a=f);var u,c,s,f=v(i),h=v(a),d=null==t?10:+t,m=[];if(!(p%1)&&h-f<d){if(f=Math.round(f)-1,h=Math.round(h)+1,i>0){for(;f<h;++f)for(c=1,u=g(f);c<p;++c)if(!((s=u*c)<i)){if(s>a)break;m.push(s)}}else for(;f<h;++f)for(c=p-1,u=g(f);c>=1;--c)if(!((s=u*c)<i)){if(s>a)break;m.push(s)}}else m=n.i(l.ticks)(f,h,Math.min(h-f,d)).map(g);return e?m.reverse():m},e.tickFormat=function(t,r){if(null==r&&(r=10===p?\".0e\":\",\"),\"function\"!=typeof r&&(r=n.i(f.format)(r)),t===1/0)return r;null==t&&(t=10);var i=Math.max(1,p*t/e.ticks().length);return function(t){var e=t/g(Math.round(v(t)));return e*p<p-.5&&(e*=p),e<=i?r(t):\"\"}},e.nice=function(){return o(n.i(h.a)(o(),{floor:function(t){return g(Math.floor(v(t)))},ceil:function(t){return g(Math.ceil(v(t)))}}))},e.copy=function(){return n.i(d.c)(e,s().base(p))},e}e.a=s;var l=n(7),f=n(29),p=n(67),h=n(125),d=n(44)},function(t,e,n){\"use strict\";function r(t,e){return t<0?-Math.pow(-t,e):Math.pow(t,e)}function i(){function t(t,e){return(e=r(e,o)-(t=r(t,o)))?function(n){return(r(n,o)-t)/e}:n.i(a.a)(e)}function e(t,e){return e=r(e,o)-(t=r(t,o)),function(n){return r(t+e*n,1/o)}}var o=1,s=n.i(c.a)(t,e),l=s.domain;return s.exponent=function(t){return arguments.length?(o=+t,l(l())):o},s.copy=function(){return n.i(c.c)(s,i().exponent(o))},n.i(u.b)(s)}function o(){return i().exponent(.5)}e.a=i,e.b=o;var a=n(67),u=n(34),c=n(44)},function(t,e,n){\"use strict\";function r(){function t(){var t=0,r=Math.max(1,u.length);for(c=new Array(r-1);++t<r;)c[t-1]=n.i(i.quantile)(a,t/r);return e}function e(t){if(!isNaN(t=+t))return u[n.i(i.bisect)(c,t)]}var a=[],u=[],c=[];return e.invertExtent=function(t){var e=u.indexOf(t);return e<0?[NaN,NaN]:[e>0?c[e-1]:a[0],e<c.length?c[e]:a[a.length-1]]},e.domain=function(e){if(!arguments.length)return a.slice();a=[];for(var n,r=0,o=e.length;r<o;++r)null==(n=e[r])||isNaN(n=+n)||a.push(n);return a.sort(i.ascending),t()},e.range=function(e){return arguments.length?(u=o.b.call(e),t()):u.slice()},e.quantiles=function(){return c.slice()},e.copy=function(){return r().domain(a).range(u)},e}e.a=r;var i=n(7),o=n(16)},function(t,e,n){\"use strict\";function r(){function t(t){if(t<=t)return f[n.i(i.bisect)(l,t,0,s)]}function e(){var e=-1;for(l=new Array(s);++e<s;)l[e]=((e+1)*c-(e-s)*u)/(s+1);return t}var u=0,c=1,s=1,l=[.5],f=[0,1];return t.domain=function(t){return arguments.length?(u=+t[0],c=+t[1],e()):[u,c]},t.range=function(t){return arguments.length?(s=(f=o.b.call(t)).length-1,e()):f.slice()},t.invertExtent=function(t){var e=f.indexOf(t);return e<0?[NaN,NaN]:e<1?[u,l[0]]:e>=s?[l[s-1],c]:[l[e-1],l[e]]},t.copy=function(){return r().domain([u,c]).range(f)},n.i(a.b)(t)}e.a=r;var i=n(7),o=n(16),a=n(34)},function(t,e,n){\"use strict\";n.d(e,\"b\",function(){return o}),n.d(e,\"c\",function(){return a});var r=n(10),i=n(30),o=n.i(i.d)(n.i(r.cubehelix)(-100,.75,.35),n.i(r.cubehelix)(80,1.5,.8)),a=n.i(i.d)(n.i(r.cubehelix)(260,.75,.35),n.i(r.cubehelix)(80,1.5,.8)),u=n.i(r.cubehelix)();e.a=function(t){(t<0||t>1)&&(t-=Math.floor(t));var e=Math.abs(t-.5);return u.h=360*t-100,u.s=1.5-1.5*e,u.l=.8-.9*e,u+\"\"}},function(t,e,n){\"use strict\";function r(t){function e(e){var n=(e-o)/(a-o);return t(u?Math.max(0,Math.min(1,n)):n)}var o=0,a=1,u=!1;return e.domain=function(t){return arguments.length?(o=+t[0],a=+t[1],e):[o,a]},e.clamp=function(t){return arguments.length?(u=!!t,e):u},e.interpolator=function(n){return arguments.length?(t=n,e):t},e.copy=function(){return r(t).domain([o,a]).clamp(u)},n.i(i.b)(e)}e.a=r;var i=n(34)},function(t,e,n){\"use strict\";function r(){function t(t){if(t<=t)return a[n.i(i.bisect)(e,t,0,u)]}var e=[.5],a=[0,1],u=1;return t.domain=function(n){return arguments.length?(e=o.b.call(n),u=Math.min(e.length,a.length-1),t):e.slice()},t.range=function(n){return arguments.length?(a=o.b.call(n),u=Math.min(e.length,a.length-1),t):a.slice()},t.invertExtent=function(t){var n=a.indexOf(t);return[e[n-1],e[n]]},t.copy=function(){return r().domain(e).range(a)},t}e.a=r;var i=n(7),o=n(16)},function(t,e,n){\"use strict\";var r=n(7),i=n(29);e.a=function(t,e,o){var a,u=t[0],c=t[t.length-1],s=n.i(r.tickStep)(u,c,null==e?10:e);switch(o=n.i(i.formatSpecifier)(null==o?\",f\":o),o.type){case\"s\":var l=Math.max(Math.abs(u),Math.abs(c));return null!=o.precision||isNaN(a=n.i(i.precisionPrefix)(s,l))||(o.precision=a),n.i(i.formatPrefix)(o,l);case\"\":case\"e\":case\"g\":case\"p\":case\"r\":null!=o.precision||isNaN(a=n.i(i.precisionRound)(s,Math.max(Math.abs(u),Math.abs(c))))||(o.precision=a-(\"e\"===o.type));break;case\"f\":case\"%\":null!=o.precision||isNaN(a=n.i(i.precisionFixed)(s))||(o.precision=a-2*(\"%\"===o.type))}return n.i(i.format)(o)}},function(t,e,n){\"use strict\";var r=n(128),i=n(78),o=n(80);e.a=function(){return n.i(r.b)(o.h,o.k,o.l,o.b,o.m,o.n,o.o,o.p,i.utcFormat).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)])}},function(t,e,n){\"use strict\";function r(t){var e=t.length;return function(n){return t[Math.max(0,Math.min(e-1,Math.floor(n*e)))]}}n.d(e,\"b\",function(){return o}),n.d(e,\"c\",function(){return a}),n.d(e,\"d\",function(){return u});var i=n(33);e.a=r(n.i(i.a)(\"44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725\"));var o=r(n.i(i.a)(\"00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf\")),a=r(n.i(i.a)(\"00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4\")),u=r(n.i(i.a)(\"0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921\"))},function(t,e,n){\"use strict\";e.a=function(t){return function(){return t}}},function(t,e,n){\"use strict\";var r=n(45),i=n(131);e.a=function(t){return n.i(i.a)(n.i(r.a)(t).call(document.documentElement))}},function(t,e,n){\"use strict\";function r(){return new i}function i(){this._=\"@\"+(++o).toString(36)}e.a=r;var o=0;i.prototype=r.prototype={constructor:i,get:function(t){for(var e=this._;!(e in t);)if(!(t=t.parentNode))return;return t[e]},set:function(t,e){return t[this._]=e},remove:function(t){return this._ in t&&delete t[this._]},toString:function(){return this._}}},function(t,e,n){\"use strict\";var r=n(72),i=n(46);e.a=function(t){var e=n.i(r.a)();return e.changedTouches&&(e=e.changedTouches[0]),n.i(i.a)(t,e)}},function(t,e,n){\"use strict\";var r=n(8);e.a=function(t){return\"string\"==typeof t?new r.b([document.querySelectorAll(t)],[document.documentElement]):new r.b([null==t?[]:t],r.c)}},function(t,e,n){\"use strict\";var r=n(45);e.a=function(t){var e=\"function\"==typeof t?t:n.i(r.a)(t);return this.select(function(){return this.appendChild(e.apply(this,arguments))})}},function(t,e,n){\"use strict\";function r(t){return function(){this.removeAttribute(t)}}function i(t){return function(){this.removeAttributeNS(t.space,t.local)}}function o(t,e){return function(){this.setAttribute(t,e)}}function a(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function u(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttribute(t):this.setAttribute(t,n)}}function c(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,n)}}var s=n(68);e.a=function(t,e){var l=n.i(s.a)(t);if(arguments.length<2){var f=this.node();return l.local?f.getAttributeNS(l.space,l.local):f.getAttribute(l)}return this.each((null==e?l.local?i:r:\"function\"==typeof e?l.local?c:u:l.local?a:o)(l,e))}},function(t,e,n){\"use strict\";e.a=function(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}},function(t,e,n){\"use strict\";function r(t){return t.trim().split(/^|\\s+/)}function i(t){return t.classList||new o(t)}function o(t){this._node=t,this._names=r(t.getAttribute(\"class\")||\"\")}function a(t,e){for(var n=i(t),r=-1,o=e.length;++r<o;)n.add(e[r])}function u(t,e){for(var n=i(t),r=-1,o=e.length;++r<o;)n.remove(e[r])}function c(t){return function(){a(this,t)}}function s(t){return function(){u(this,t)}}function l(t,e){return function(){(e.apply(this,arguments)?a:u)(this,t)}}o.prototype={add:function(t){this._names.indexOf(t)<0&&(this._names.push(t),this._node.setAttribute(\"class\",this._names.join(\" \")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute(\"class\",this._names.join(\" \")))},contains:function(t){return this._names.indexOf(t)>=0}},e.a=function(t,e){var n=r(t+\"\");if(arguments.length<2){for(var o=i(this.node()),a=-1,u=n.length;++a<u;)if(!o.contains(n[a]))return!1;return!0}return this.each((\"function\"==typeof e?l:e?c:s)(n,e))}},function(t,e,n){\"use strict\";function r(){return this.parentNode.insertBefore(this.cloneNode(!1),this.nextSibling)}function i(){return this.parentNode.insertBefore(this.cloneNode(!0),this.nextSibling)}e.a=function(t){return this.select(t?i:r)}},function(t,e,n){\"use strict\";function r(t,e,n,r,i,o){for(var u,c=0,s=e.length,l=o.length;c<l;++c)(u=e[c])?(u.__data__=o[c],r[c]=u):n[c]=new a.b(t,o[c]);for(;c<s;++c)(u=e[c])&&(i[c]=u)}function i(t,e,n,r,i,o,u){var s,l,f,p={},h=e.length,d=o.length,v=new Array(h);for(s=0;s<h;++s)(l=e[s])&&(v[s]=f=c+u.call(l,l.__data__,s,e),f in p?i[s]=l:p[f]=l);for(s=0;s<d;++s)f=c+u.call(t,o[s],s,o),(l=p[f])?(r[s]=l,l.__data__=o[s],p[f]=null):n[s]=new a.b(t,o[s]);for(s=0;s<h;++s)(l=e[s])&&p[v[s]]===l&&(i[s]=l)}var o=n(8),a=n(132),u=n(256),c=\"$\";e.a=function(t,e){if(!t)return y=new Array(this.size()),d=-1,this.each(function(t){y[++d]=t}),y;var a=e?i:r,c=this._parents,s=this._groups;\"function\"!=typeof t&&(t=n.i(u.a)(t));for(var l=s.length,f=new Array(l),p=new Array(l),h=new Array(l),d=0;d<l;++d){var v=c[d],g=s[d],m=g.length,y=t.call(v,v&&v.__data__,d,c),_=y.length,b=p[d]=new Array(_),x=f[d]=new Array(_);a(v,g,b,x,h[d]=new Array(m),y,e);for(var w,C,k=0,E=0;k<_;++k)if(w=b[k]){for(k>=E&&(E=k+1);!(C=x[E])&&++E<_;);w._next=C||null}}return f=new o.b(f,c),f._enter=p,f._exit=h,f}},function(t,e,n){\"use strict\";e.a=function(t){return arguments.length?this.property(\"__data__\",t):this.node().__data__}},function(t,e,n){\"use strict\";function r(t,e,r){var i=n.i(a.a)(t),o=i.CustomEvent;\"function\"==typeof o?o=new o(e,r):(o=i.document.createEvent(\"Event\"),r?(o.initEvent(e,r.bubbles,r.cancelable),o.detail=r.detail):o.initEvent(e,!1,!1)),t.dispatchEvent(o)}function i(t,e){return function(){return r(this,t,e)}}function o(t,e){return function(){return r(this,t,e.apply(this,arguments))}}var a=n(73);e.a=function(t,e){return this.each((\"function\"==typeof e?o:i)(t,e))}},function(t,e,n){\"use strict\";e.a=function(t){for(var e=this._groups,n=0,r=e.length;n<r;++n)for(var i,o=e[n],a=0,u=o.length;a<u;++a)(i=o[a])&&t.call(i,i.__data__,a,o);return this}},function(t,e,n){\"use strict\";e.a=function(){return!this.node()}},function(t,e,n){\"use strict\";var r=n(133),i=n(8);e.a=function(){return new i.b(this._exit||this._groups.map(r.a),this._parents)}},function(t,e,n){\"use strict\";var r=n(8),i=n(130);e.a=function(t){\"function\"!=typeof t&&(t=n.i(i.a)(t));for(var e=this._groups,o=e.length,a=new Array(o),u=0;u<o;++u)for(var c,s=e[u],l=s.length,f=a[u]=[],p=0;p<l;++p)(c=s[p])&&t.call(c,c.__data__,p,s)&&f.push(c);return new r.b(a,this._parents)}},function(t,e,n){\"use strict\";function r(){this.innerHTML=\"\"}function i(t){return function(){this.innerHTML=t}}function o(t){return function(){var e=t.apply(this,arguments);this.innerHTML=null==e?\"\":e}}e.a=function(t){return arguments.length?this.each(null==t?r:(\"function\"==typeof t?o:i)(t)):this.node().innerHTML}},function(t,e,n){\"use strict\";function r(){return null}var i=n(45),o=n(71);e.a=function(t,e){var a=\"function\"==typeof t?t:n.i(i.a)(t),u=null==e?r:\"function\"==typeof e?e:n.i(o.a)(e);return this.select(function(){return this.insertBefore(a.apply(this,arguments),u.apply(this,arguments)||null)})}},function(t,e,n){\"use strict\";function r(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}e.a=function(){return this.each(r)}},function(t,e,n){\"use strict\";var r=n(8);e.a=function(t){for(var e=this._groups,n=t._groups,i=e.length,o=n.length,a=Math.min(i,o),u=new Array(i),c=0;c<a;++c)for(var s,l=e[c],f=n[c],p=l.length,h=u[c]=new Array(p),d=0;d<p;++d)(s=l[d]||f[d])&&(h[d]=s);for(;c<i;++c)u[c]=e[c];return new r.b(u,this._parents)}},function(t,e,n){\"use strict\";e.a=function(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var r=t[e],i=0,o=r.length;i<o;++i){var a=r[i];if(a)return a}return null}},function(t,e,n){\"use strict\";e.a=function(){var t=new Array(this.size()),e=-1;return this.each(function(){t[++e]=this}),t}},function(t,e,n){\"use strict\";e.a=function(){for(var t=this._groups,e=-1,n=t.length;++e<n;)for(var r,i=t[e],o=i.length-1,a=i[o];--o>=0;)(r=i[o])&&(a&&a!==r.nextSibling&&a.parentNode.insertBefore(r,a),a=r);return this}},function(t,e,n){\"use strict\";function r(t){return function(){delete this[t]}}function i(t,e){return function(){this[t]=e}}function o(t,e){return function(){var n=e.apply(this,arguments);null==n?delete this[t]:this[t]=n}}e.a=function(t,e){return arguments.length>1?this.each((null==e?r:\"function\"==typeof e?o:i)(t,e)):this.node()[t]}},function(t,e,n){\"use strict\";function r(){this.nextSibling&&this.parentNode.appendChild(this)}e.a=function(){return this.each(r)}},function(t,e,n){\"use strict\";function r(){var t=this.parentNode;t&&t.removeChild(this)}e.a=function(){return this.each(r)}},function(t,e,n){\"use strict\";var r=n(8),i=n(71);e.a=function(t){\"function\"!=typeof t&&(t=n.i(i.a)(t));for(var e=this._groups,o=e.length,a=new Array(o),u=0;u<o;++u)for(var c,s,l=e[u],f=l.length,p=a[u]=new Array(f),h=0;h<f;++h)(c=l[h])&&(s=t.call(c,c.__data__,h,l))&&(\"__data__\"in c&&(s.__data__=c.__data__),p[h]=s);return new r.b(a,this._parents)}},function(t,e,n){\"use strict\";var r=n(8),i=n(135);e.a=function(t){\"function\"!=typeof t&&(t=n.i(i.a)(t));for(var e=this._groups,o=e.length,a=[],u=[],c=0;c<o;++c)for(var s,l=e[c],f=l.length,p=0;p<f;++p)(s=l[p])&&(a.push(t.call(s,s.__data__,p,l)),u.push(s));return new r.b(a,u)}},function(t,e,n){\"use strict\";e.a=function(){var t=0;return this.each(function(){++t}),t}},function(t,e,n){\"use strict\";function r(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}var i=n(8);e.a=function(t){function e(e,n){return e&&n?t(e.__data__,n.__data__):!e-!n}t||(t=r);for(var n=this._groups,o=n.length,a=new Array(o),u=0;u<o;++u){for(var c,s=n[u],l=s.length,f=a[u]=new Array(l),p=0;p<l;++p)(c=s[p])&&(f[p]=c);f.sort(e)}return new i.b(a,this._parents).order()}},function(t,e,n){\"use strict\";function r(){this.textContent=\"\"}function i(t){return function(){this.textContent=t}}function o(t){return function(){var e=t.apply(this,arguments);this.textContent=null==e?\"\":e}}e.a=function(t){return arguments.length?this.each(null==t?r:(\"function\"==typeof t?o:i)(t)):this.node().textContent}},function(t,e,n){\"use strict\";var r=n(72),i=n(46);e.a=function(t,e,o){arguments.length<3&&(o=e,e=n.i(r.a)().changedTouches);for(var a,u=0,c=e?e.length:0;u<c;++u)if((a=e[u]).identifier===o)return n.i(i.a)(t,a);return null}},function(t,e,n){\"use strict\";var r=n(72),i=n(46);e.a=function(t,e){null==e&&(e=n.i(r.a)().touches);for(var o=0,a=e?e.length:0,u=new Array(a);o<a;++o)u[o]=n.i(i.a)(t,e[o]);return u}},function(t,e,n){\"use strict\";function r(t){return t.innerRadius}function i(t){return t.outerRadius}function o(t){return t.startAngle}function a(t){return t.endAngle}function u(t){return t&&t.padAngle}function c(t,e,n,r,i,o,a,u){var c=n-t,s=r-e,l=a-i,f=u-o,p=(l*(e-o)-f*(t-i))/(f*c-l*s);return[t+p*c,e+p*s]}function s(t,e,r,i,o,a,u){var c=t-r,s=e-i,l=(u?a:-a)/n.i(p.d)(c*c+s*s),f=l*s,h=-l*c,d=t+f,v=e+h,g=r+f,m=i+h,y=(d+g)/2,_=(v+m)/2,b=g-d,x=m-v,w=b*b+x*x,C=o-a,k=d*m-g*v,E=(x<0?-1:1)*n.i(p.d)(n.i(p.e)(0,C*C*w-k*k)),M=(k*x-b*E)/w,T=(-k*b-x*E)/w,S=(k*x+b*E)/w,N=(-k*b+x*E)/w,A=M-y,P=T-_,O=S-y,I=N-_;return A*A+P*P>O*O+I*I&&(M=S,T=N),{cx:M,cy:T,x01:-f,y01:-h,x11:M*(o/C-1),y11:T*(o/C-1)}}var l=n(32),f=n(17),p=n(35);e.a=function(){function t(){var t,r,i=+e.apply(this,arguments),o=+h.apply(this,arguments),a=g.apply(this,arguments)-p.f,u=m.apply(this,arguments)-p.f,f=n.i(p.g)(u-a),b=u>a;if(_||(_=t=n.i(l.a)()),o<i&&(r=o,o=i,i=r),o>p.a)if(f>p.c-p.a)_.moveTo(o*n.i(p.h)(a),o*n.i(p.i)(a)),_.arc(0,0,o,a,u,!b),i>p.a&&(_.moveTo(i*n.i(p.h)(u),i*n.i(p.i)(u)),_.arc(0,0,i,u,a,b));else{var x,w,C=a,k=u,E=a,M=u,T=f,S=f,N=y.apply(this,arguments)/2,A=N>p.a&&(v?+v.apply(this,arguments):n.i(p.d)(i*i+o*o)),P=n.i(p.j)(n.i(p.g)(o-i)/2,+d.apply(this,arguments)),O=P,I=P;if(A>p.a){var D=n.i(p.k)(A/i*n.i(p.i)(N)),R=n.i(p.k)(A/o*n.i(p.i)(N));(T-=2*D)>p.a?(D*=b?1:-1,E+=D,M-=D):(T=0,E=M=(a+u)/2),(S-=2*R)>p.a?(R*=b?1:-1,C+=R,k-=R):(S=0,C=k=(a+u)/2)}var L=o*n.i(p.h)(C),U=o*n.i(p.i)(C),F=i*n.i(p.h)(M),j=i*n.i(p.i)(M);if(P>p.a){var B=o*n.i(p.h)(k),V=o*n.i(p.i)(k),W=i*n.i(p.h)(E),z=i*n.i(p.i)(E);if(f<p.b){var H=T>p.a?c(L,U,W,z,B,V,F,j):[F,j],q=L-H[0],Y=U-H[1],K=B-H[0],G=V-H[1],$=1/n.i(p.i)(n.i(p.l)((q*K+Y*G)/(n.i(p.d)(q*q+Y*Y)*n.i(p.d)(K*K+G*G)))/2),X=n.i(p.d)(H[0]*H[0]+H[1]*H[1]);O=n.i(p.j)(P,(i-X)/($-1)),I=n.i(p.j)(P,(o-X)/($+1))}}S>p.a?I>p.a?(x=s(W,z,L,U,o,I,b),w=s(B,V,F,j,o,I,b),_.moveTo(x.cx+x.x01,x.cy+x.y01),I<P?_.arc(x.cx,x.cy,I,n.i(p.m)(x.y01,x.x01),n.i(p.m)(w.y01,w.x01),!b):(_.arc(x.cx,x.cy,I,n.i(p.m)(x.y01,x.x01),n.i(p.m)(x.y11,x.x11),!b),_.arc(0,0,o,n.i(p.m)(x.cy+x.y11,x.cx+x.x11),n.i(p.m)(w.cy+w.y11,w.cx+w.x11),!b),_.arc(w.cx,w.cy,I,n.i(p.m)(w.y11,w.x11),n.i(p.m)(w.y01,w.x01),!b))):(_.moveTo(L,U),_.arc(0,0,o,C,k,!b)):_.moveTo(L,U),i>p.a&&T>p.a?O>p.a?(x=s(F,j,B,V,i,-O,b),w=s(L,U,W,z,i,-O,b),_.lineTo(x.cx+x.x01,x.cy+x.y01),O<P?_.arc(x.cx,x.cy,O,n.i(p.m)(x.y01,x.x01),n.i(p.m)(w.y01,w.x01),!b):(_.arc(x.cx,x.cy,O,n.i(p.m)(x.y01,x.x01),n.i(p.m)(x.y11,x.x11),!b),_.arc(0,0,i,n.i(p.m)(x.cy+x.y11,x.cx+x.x11),n.i(p.m)(w.cy+w.y11,w.cx+w.x11),b),_.arc(w.cx,w.cy,O,n.i(p.m)(w.y11,w.x11),n.i(p.m)(w.y01,w.x01),!b))):_.arc(0,0,i,M,E,b):_.lineTo(F,j)}else _.moveTo(0,0);if(_.closePath(),t)return _=null,t+\"\"||null}var e=r,h=i,d=n.i(f.a)(0),v=null,g=o,m=a,y=u,_=null;return t.centroid=function(){var t=(+e.apply(this,arguments)+ +h.apply(this,arguments))/2,r=(+g.apply(this,arguments)+ +m.apply(this,arguments))/2-p.b/2;return[n.i(p.h)(r)*t,n.i(p.i)(r)*t]},t.innerRadius=function(r){return arguments.length?(e=\"function\"==typeof r?r:n.i(f.a)(+r),t):e},t.outerRadius=function(e){return arguments.length?(h=\"function\"==typeof e?e:n.i(f.a)(+e),t):h},t.cornerRadius=function(e){return arguments.length?(d=\"function\"==typeof e?e:n.i(f.a)(+e),t):d},t.padRadius=function(e){return arguments.length?(v=null==e?null:\"function\"==typeof e?e:n.i(f.a)(+e),t):v},t.startAngle=function(e){return arguments.length?(g=\"function\"==typeof e?e:n.i(f.a)(+e),t):g},t.endAngle=function(e){return arguments.length?(m=\"function\"==typeof e?e:n.i(f.a)(+e),t):m},t.padAngle=function(e){return arguments.length?(y=\"function\"==typeof e?e:n.i(f.a)(+e),t):y},t.context=function(e){return arguments.length?(_=null==e?null:e,t):_},t}},function(t,e,n){\"use strict\";var r=n(141),i=n(137),o=n(142);e.a=function(){var t=n.i(i.a)().curve(r.b),e=t.curve,a=t.lineX0,u=t.lineX1,c=t.lineY0,s=t.lineY1;return t.angle=t.x,delete t.x,t.startAngle=t.x0,delete t.x0,t.endAngle=t.x1,delete t.x1,t.radius=t.y,delete t.y,t.innerRadius=t.y0,delete t.y0,t.outerRadius=t.y1,delete t.y1,t.lineStartAngle=function(){return n.i(o.b)(a())},delete t.lineX0,t.lineEndAngle=function(){return n.i(o.b)(u())},delete t.lineX1,t.lineInnerRadius=function(){return n.i(o.b)(c())},delete t.lineY0,t.lineOuterRadius=function(){return n.i(o.b)(s())},delete t.lineY1,t.curve=function(t){return arguments.length?e(n.i(r.a)(t)):e()._curve},t}},function(t,e,n){\"use strict\";function r(t){this._context=t}var i=n(50),o=n(47);r.prototype={areaStart:i.a,areaEnd:i.a,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x2,this._y2),this._context.closePath();break;case 2:this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break;case 3:this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4)}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x2=t,this._y2=e;break;case 1:this._point=2,this._x3=t,this._y3=e;break;case 2:this._point=3,this._x4=t,this._y4=e,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+e)/6);break;default:n.i(o.c)(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}},e.a=function(t){return new r(t)}},function(t,e,n){\"use strict\";function r(t){this._context=t}var i=n(47);r.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var r=(this._x0+4*this._x1+t)/6,o=(this._y0+4*this._y1+e)/6;this._line?this._context.lineTo(r,o):this._context.moveTo(r,o);break;case 3:this._point=4;default:n.i(i.c)(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}},e.a=function(t){return new r(t)}},function(t,e,n){\"use strict\";function r(t,e){this._basis=new i.b(t),this._beta=e}var i=n(47);r.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,e=this._y,n=t.length-1;if(n>0)for(var r,i=t[0],o=e[0],a=t[n]-i,u=e[n]-o,c=-1;++c<=n;)r=c/n,this._basis.point(this._beta*t[c]+(1-this._beta)*(i+r*a),this._beta*e[c]+(1-this._beta)*(o+r*u));this._x=this._y=null,this._basis.lineEnd()},point:function(t,e){this._x.push(+t),this._y.push(+e)}},e.a=function t(e){function n(t){return 1===e?new i.b(t):new r(t,e)}return n.beta=function(e){return t(+e)},n}(.85)},function(t,e,n){\"use strict\";function r(t,e){this._context=t,this._alpha=e}var i=n(139),o=n(50),a=n(74);r.prototype={areaStart:o.a,areaEnd:o.a,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,e){if(t=+t,e=+e,this._point){var r=this._x2-t,i=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+i*i,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:n.i(a.b)(this,t,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}},e.a=function t(e){function n(t){return e?new r(t,e):new i.b(t,0)}return n.alpha=function(e){return t(+e)},n}(.5)},function(t,e,n){\"use strict\";function r(t,e){this._context=t,this._alpha=e}var i=n(140),o=n(74);r.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var r=this._x2-t,i=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+i*i,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:n.i(o.b)(this,t,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}},e.a=function t(e){function n(t){return e?new r(t,e):new i.b(t,0)}return n.alpha=function(e){return t(+e)},n}(.5)},function(t,e,n){\"use strict\";function r(t){this._context=t}var i=n(50);r.prototype={areaStart:i.a,areaEnd:i.a,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(t,e){t=+t,e=+e,this._point?this._context.lineTo(t,e):(this._point=1,this._context.moveTo(t,e))}},e.a=function(t){return new r(t)}},function(t,e,n){\"use strict\";function r(t){return t<0?-1:1}function i(t,e,n){var i=t._x1-t._x0,o=e-t._x1,a=(t._y1-t._y0)/(i||o<0&&-0),u=(n-t._y1)/(o||i<0&&-0),c=(a*o+u*i)/(i+o);return(r(a)+r(u))*Math.min(Math.abs(a),Math.abs(u),.5*Math.abs(c))||0}function o(t,e){var n=t._x1-t._x0;return n?(3*(t._y1-t._y0)/n-e)/2:e}function a(t,e,n){var r=t._x0,i=t._y0,o=t._x1,a=t._y1,u=(o-r)/3;t._context.bezierCurveTo(r+u,i+u*e,o-u,a-u*n,o,a)}function u(t){this._context=t}function c(t){this._context=new s(t)}function s(t){this._context=t}function l(t){return new u(t)}function f(t){return new c(t)}e.a=l,e.b=f,u.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:a(this,this._t0,o(this,this._t0))}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){var n=NaN;if(t=+t,e=+e,t!==this._x1||e!==this._y1){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,a(this,o(this,n=i(this,t,e)),n);break;default:a(this,this._t0,n=i(this,t,e))}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e,this._t0=n}}},(c.prototype=Object.create(u.prototype)).point=function(t,e){u.prototype.point.call(this,e,t)},s.prototype={moveTo:function(t,e){this._context.moveTo(e,t)},closePath:function(){this._context.closePath()},lineTo:function(t,e){this._context.lineTo(e,t)},bezierCurveTo:function(t,e,n,r,i,o){this._context.bezierCurveTo(e,t,r,n,o,i)}}},function(t,e,n){\"use strict\";function r(t){this._context=t}function i(t){var e,n,r=t.length-1,i=new Array(r),o=new Array(r),a=new Array(r);for(i[0]=0,o[0]=2,a[0]=t[0]+2*t[1],e=1;e<r-1;++e)i[e]=1,o[e]=4,a[e]=4*t[e]+2*t[e+1];for(i[r-1]=2,o[r-1]=7,a[r-1]=8*t[r-1]+t[r],e=1;e<r;++e)n=i[e]/o[e-1],o[e]-=n,a[e]-=n*a[e-1];for(i[r-1]=a[r-1]/o[r-1],e=r-2;e>=0;--e)i[e]=(a[e]-i[e+1])/o[e];for(o[r-1]=(t[r]+i[r-1])/2,e=0;e<r-1;++e)o[e]=2*t[e+1]-i[e+1];return[i,o]}r.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var t=this._x,e=this._y,n=t.length;if(n)if(this._line?this._context.lineTo(t[0],e[0]):this._context.moveTo(t[0],e[0]),2===n)this._context.lineTo(t[1],e[1]);else for(var r=i(t),o=i(e),a=0,u=1;u<n;++a,++u)this._context.bezierCurveTo(r[0][a],o[0][a],r[1][a],o[1][a],t[u],e[u]);(this._line||0!==this._line&&1===n)&&this._context.closePath(),this._line=1-this._line,this._x=this._y=null},point:function(t,e){this._x.push(+t),this._y.push(+e)}},e.a=function(t){return new r(t)}},function(t,e,n){\"use strict\";function r(t,e){this._context=t,this._t=e}function i(t){return new r(t,0)}function o(t){return new r(t,1)}e.c=i,e.b=o,r.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&2===this._point&&this._context.lineTo(this._x,this._y),(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line>=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,e),this._context.lineTo(t,e);else{var n=this._x*(1-this._t)+t*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,e)}}this._x=t,this._y=e}},e.a=function(t){return new r(t,.5)}},function(t,e,n){\"use strict\";e.a=function(t,e){return e<t?-1:e>t?1:e>=t?0:NaN}},function(t,e,n){\"use strict\";e.a=function(t){return t}},function(t,e,n){\"use strict\";function r(t){return t.source}function i(t){return t.target}function o(t){function e(){var e,r=h.a.call(arguments),i=o.apply(this,r),l=a.apply(this,r);if(s||(s=e=n.i(p.a)()),t(s,+u.apply(this,(r[0]=i,r)),+c.apply(this,r),+u.apply(this,(r[0]=l,r)),+c.apply(this,r)),e)return s=null,e+\"\"||null}var o=r,a=i,u=v.a,c=v.b,s=null;return e.source=function(t){return arguments.length?(o=t,e):o},e.target=function(t){return arguments.length?(a=t,e):a},e.x=function(t){return arguments.length?(u=\"function\"==typeof t?t:n.i(d.a)(+t),e):u},e.y=function(t){return arguments.length?(c=\"function\"==typeof t?t:n.i(d.a)(+t),e):c},e.context=function(t){return arguments.length?(s=null==t?null:t,e):s},e}function a(t,e,n,r,i){t.moveTo(e,n),t.bezierCurveTo(e=(e+r)/2,n,e,i,r,i)}function u(t,e,n,r,i){t.moveTo(e,n),t.bezierCurveTo(e,n=(n+i)/2,r,n,r,i)}function c(t,e,r,i,o){var a=n.i(g.a)(e,r),u=n.i(g.a)(e,r=(r+o)/2),c=n.i(g.a)(i,r),s=n.i(g.a)(i,o);t.moveTo(a[0],a[1]),t.bezierCurveTo(u[0],u[1],c[0],c[1],s[0],s[1])}function s(){return o(a)}function l(){return o(u)}function f(){var t=o(c);return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t}e.a=s,e.b=l,e.c=f;var p=n(32),h=n(138),d=n(17),v=n(77),g=n(143)},function(t,e,n){\"use strict\";e.a=function(t,e){if((u=t.length)>1)for(var n,r,i,o,a,u,c=0,s=t[e[0]].length;c<s;++c)for(o=a=0,n=0;n<u;++n)(i=(r=t[e[n]][c])[1]-r[0])>=0?(r[0]=o,r[1]=o+=i):i<0?(r[1]=a,r[0]=a+=i):r[0]=o}},function(t,e,n){\"use strict\";var r=n(36);e.a=function(t,e){if((o=t.length)>0){for(var i,o,a,u=0,c=t[0].length;u<c;++u){for(a=i=0;i<o;++i)a+=t[i][u][1]||0;if(a)for(i=0;i<o;++i)t[i][u][1]/=a}n.i(r.a)(t,e)}}},function(t,e,n){\"use strict\";var r=n(36);e.a=function(t,e){if((i=t.length)>0){for(var i,o=0,a=t[e[0]],u=a.length;o<u;++o){for(var c=0,s=0;c<i;++c)s+=t[c][o][1]||0;a[o][1]+=a[o][0]=-s/2}n.i(r.a)(t,e)}}},function(t,e,n){\"use strict\";var r=n(36);e.a=function(t,e){if((a=t.length)>0&&(o=(i=t[e[0]]).length)>0){for(var i,o,a,u=0,c=1;c<o;++c){for(var s=0,l=0,f=0;s<a;++s){for(var p=t[e[s]],h=p[c][1]||0,d=p[c-1][1]||0,v=(h-d)/2,g=0;g<s;++g){var m=t[e[g]];v+=(m[c][1]||0)-(m[c-1][1]||0)}l+=h,f+=v*h}i[c-1][1]+=i[c-1][0]=u,l&&(u-=f/l)}i[c-1][1]+=i[c-1][0]=u,n.i(r.a)(t,e)}}},function(t,e,n){\"use strict\";var r=n(76);e.a=function(t){return n.i(r.a)(t).reverse()}},function(t,e,n){\"use strict\";var r=n(37),i=n(76);e.a=function(t){var e,o,a=t.length,u=t.map(i.b),c=n.i(r.a)(t).sort(function(t,e){return u[e]-u[t]}),s=0,l=0,f=[],p=[];for(e=0;e<a;++e)o=c[e],s<l?(s+=u[o],f.push(o)):(l+=u[o],p.push(o));return p.reverse().concat(f)}},function(t,e,n){\"use strict\";var r=n(37);e.a=function(t){return n.i(r.a)(t).reverse()}},function(t,e,n){\"use strict\";var r=n(17),i=n(301),o=n(302),a=n(35);e.a=function(){function t(t){var n,r,i,o,p,h=t.length,d=0,v=new Array(h),g=new Array(h),m=+s.apply(this,arguments),y=Math.min(a.c,Math.max(-a.c,l.apply(this,arguments)-m)),_=Math.min(Math.abs(y)/h,f.apply(this,arguments)),b=_*(y<0?-1:1);for(n=0;n<h;++n)(p=g[v[n]=n]=+e(t[n],n,t))>0&&(d+=p);for(null!=u?v.sort(function(t,e){return u(g[t],g[e])}):null!=c&&v.sort(function(e,n){return c(t[e],t[n])}),n=0,i=d?(y-h*b)/d:0;n<h;++n,m=o)r=v[n],p=g[r],o=m+(p>0?p*i:0)+b,g[r]={data:t[r],index:n,value:p,startAngle:m,endAngle:o,padAngle:_};return g}var e=o.a,u=i.a,c=null,s=n.i(r.a)(0),l=n.i(r.a)(a.c),f=n.i(r.a)(0);return t.value=function(i){return arguments.length?(e=\"function\"==typeof i?i:n.i(r.a)(+i),t):e},t.sortValues=function(e){return arguments.length?(u=e,c=null,t):u},t.sort=function(e){return arguments.length?(c=e,u=null,t):c},t.startAngle=function(e){return arguments.length?(s=\"function\"==typeof e?e:n.i(r.a)(+e),t):s},t.endAngle=function(e){return arguments.length?(l=\"function\"==typeof e?e:n.i(r.a)(+e),t):l},t.padAngle=function(e){return arguments.length?(f=\"function\"==typeof e?e:n.i(r.a)(+e),t):f},t}},function(t,e,n){\"use strict\";function r(t,e){return t[e]}var i=n(138),o=n(17),a=n(36),u=n(37);e.a=function(){function t(t){var n,r,i=e.apply(this,arguments),o=t.length,a=i.length,u=new Array(a);for(n=0;n<a;++n){for(var f,p=i[n],h=u[n]=new Array(o),d=0;d<o;++d)h[d]=f=[0,+l(t[d],p,d,t)],f.data=t[d];h.key=p}for(n=0,r=c(u);n<a;++n)u[r[n]].index=n;return s(u,r),u}var e=n.i(o.a)([]),c=u.a,s=a.a,l=r;return t.keys=function(r){return arguments.length?(e=\"function\"==typeof r?r:n.i(o.a)(i.a.call(r)),t):e},t.value=function(e){return arguments.length?(l=\"function\"==typeof e?e:n.i(o.a)(+e),t):l},t.order=function(e){return arguments.length?(c=null==e?u.a:\"function\"==typeof e?e:n.i(o.a)(i.a.call(e)),t):c},t.offset=function(e){return arguments.length?(s=null==e?a.a:e,t):s},t}},function(t,e,n){\"use strict\";n.d(e,\"b\",function(){return p});var r=n(32),i=n(144),o=n(145),a=n(146),u=n(148),c=n(147),s=n(149),l=n(150),f=n(17),p=[i.a,o.a,a.a,c.a,u.a,s.a,l.a];e.a=function(){function t(){var t;if(a||(a=t=n.i(r.a)()),e.apply(this,arguments).draw(a,+o.apply(this,arguments)),t)return a=null,t+\"\"||null}var e=n.i(f.a)(i.a),o=n.i(f.a)(64),a=null;return t.type=function(r){return arguments.length?(e=\"function\"==typeof r?r:n.i(f.a)(r),t):e},t.size=function(e){return arguments.length?(o=\"function\"==typeof e?e:n.i(f.a)(+e),t):o},t.context=function(e){return arguments.length?(a=null==e?null:e,t):a},t}},function(t,e,n){\"use strict\";function r(t){var e=new Date(t);return isNaN(e)?null:e}var i=n(151),o=n(79),a=+new Date(\"2000-01-01T00:00:00.000Z\")?r:n.i(o.e)(i.b);e.a=a},function(t,e,n){\"use strict\";var r=n(5),i=n(13),o=n.i(r.a)(function(t){t.setHours(0,0,0,0)},function(t,e){t.setDate(t.getDate()+e)},function(t,e){return(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*i.d)/i.b},function(t){return t.getDate()-1});e.a=o;o.range},function(t,e,n){\"use strict\";var r=n(5),i=n(13),o=n.i(r.a)(function(t){var e=t.getTimezoneOffset()*i.d%i.c;e<0&&(e+=i.c),t.setTime(Math.floor((+t-e)/i.c)*i.c+e)},function(t,e){t.setTime(+t+e*i.c)},function(t,e){return(e-t)/i.c},function(t){return t.getHours()});e.a=o;o.range},function(t,e,n){\"use strict\";var r=n(5),i=n.i(r.a)(function(){},function(t,e){t.setTime(+t+e)},function(t,e){return e-t});i.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?n.i(r.a)(function(e){e.setTime(Math.floor(e/t)*t)},function(e,n){e.setTime(+e+n*t)},function(e,n){return(n-e)/t}):i:null},e.a=i;i.range},function(t,e,n){\"use strict\";var r=n(5),i=n(13),o=n.i(r.a)(function(t){t.setTime(Math.floor(t/i.d)*i.d)},function(t,e){t.setTime(+t+e*i.d)},function(t,e){return(e-t)/i.d},function(t){return t.getMinutes()});e.a=o;o.range},function(t,e,n){\"use strict\";var r=n(5),i=n.i(r.a)(function(t){t.setDate(1),t.setHours(0,0,0,0)},function(t,e){t.setMonth(t.getMonth()+e)},function(t,e){return e.getMonth()-t.getMonth()+12*(e.getFullYear()-t.getFullYear())},function(t){return t.getMonth()});e.a=i;i.range},function(t,e,n){\"use strict\";var r=n(5),i=n(13),o=n.i(r.a)(function(t){t.setTime(Math.floor(t/i.e)*i.e)},function(t,e){t.setTime(+t+e*i.e)},function(t,e){return(e-t)/i.e},function(t){return t.getUTCSeconds()});e.a=o;o.range},function(t,e,n){\"use strict\";var r=n(5),i=n(13),o=n.i(r.a)(function(t){t.setUTCHours(0,0,0,0)},function(t,e){t.setUTCDate(t.getUTCDate()+e)},function(t,e){return(e-t)/i.b},function(t){return t.getUTCDate()-1});e.a=o;o.range},function(t,e,n){\"use strict\";var r=n(5),i=n(13),o=n.i(r.a)(function(t){t.setUTCMinutes(0,0,0)},function(t,e){t.setTime(+t+e*i.c)},function(t,e){return(e-t)/i.c},function(t){return t.getUTCHours()});e.a=o;o.range},function(t,e,n){\"use strict\";var r=n(5),i=n(13),o=n.i(r.a)(function(t){t.setUTCSeconds(0,0)},function(t,e){t.setTime(+t+e*i.d)},function(t,e){return(e-t)/i.d},function(t){return t.getUTCMinutes()});e.a=o;o.range},function(t,e,n){\"use strict\";var r=n(5),i=n.i(r.a)(function(t){t.setUTCDate(1),t.setUTCHours(0,0,0,0)},function(t,e){t.setUTCMonth(t.getUTCMonth()+e)},function(t,e){return e.getUTCMonth()-t.getUTCMonth()+12*(e.getUTCFullYear()-t.getUTCFullYear())},function(t){return t.getUTCMonth()});e.a=i;i.range},function(t,e,n){\"use strict\";function r(t){return n.i(i.a)(function(e){e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},function(t,e){t.setUTCDate(t.getUTCDate()+7*e)},function(t,e){return(e-t)/o.a})}n.d(e,\"a\",function(){return a}),n.d(e,\"b\",function(){return u}),n.d(e,\"c\",function(){return l});var i=n(5),o=n(13),a=r(0),u=r(1),c=r(2),s=r(3),l=r(4),f=r(5),p=r(6);a.range,u.range,c.range,s.range,l.range,f.range,p.range},function(t,e,n){\"use strict\";var r=n(5),i=n.i(r.a)(function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},function(t,e){t.setUTCFullYear(t.getUTCFullYear()+e)},function(t,e){return e.getUTCFullYear()-t.getUTCFullYear()},function(t){return t.getUTCFullYear()});i.every=function(t){return isFinite(t=Math.floor(t))&&t>0?n.i(r.a)(function(e){e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},function(e,n){e.setUTCFullYear(e.getUTCFullYear()+n*t)}):null},e.a=i;i.range},function(t,e,n){\"use strict\";function r(t){return n.i(i.a)(function(e){e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},function(t,e){t.setDate(t.getDate()+7*e)},function(t,e){return(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*o.d)/o.a})}n.d(e,\"a\",function(){return a}),n.d(e,\"b\",function(){return u}),n.d(e,\"c\",function(){return l});var i=n(5),o=n(13),a=r(0),u=r(1),c=r(2),s=r(3),l=r(4),f=r(5),p=r(6);a.range,u.range,c.range,s.range,l.range,f.range,p.range},function(t,e,n){\"use strict\";var r=n(5),i=n.i(r.a)(function(t){t.setMonth(0,1),t.setHours(0,0,0,0)},function(t,e){t.setFullYear(t.getFullYear()+e)},function(t,e){return e.getFullYear()-t.getFullYear()},function(t){return t.getFullYear()});i.every=function(t){return isFinite(t=Math.floor(t))&&t>0?n.i(r.a)(function(e){e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},function(e,n){e.setFullYear(e.getFullYear()+n*t)}):null},e.a=i;i.range},function(t,e,n){\"use strict\";function r(t){return t.replace(i,function(t,e){return e.toUpperCase()})}var i=/-(.)/g;t.exports=r},function(t,e,n){\"use strict\";function r(t){return i(t.replace(o,\"ms-\"))}var i=n(329),o=/^-ms-/;t.exports=r},function(t,e,n){\"use strict\";function r(t,e){return!(!t||!e)&&(t===e||!i(t)&&(i(e)?r(t,e.parentNode):\"contains\"in t?t.contains(e):!!t.compareDocumentPosition&&!!(16&t.compareDocumentPosition(e))))}var i=n(339);t.exports=r},function(t,e,n){\"use strict\";function r(t){var e=t.length;if((Array.isArray(t)||\"object\"!=typeof t&&\"function\"!=typeof t)&&a(!1),\"number\"!=typeof e&&a(!1),0===e||e-1 in t||a(!1),\"function\"==typeof t.callee&&a(!1),t.hasOwnProperty)try{return Array.prototype.slice.call(t)}catch(t){}for(var n=Array(e),r=0;r<e;r++)n[r]=t[r];return n}function i(t){return!!t&&(\"object\"==typeof t||\"function\"==typeof t)&&\"length\"in t&&!(\"setInterval\"in t)&&\"number\"!=typeof t.nodeType&&(Array.isArray(t)||\"callee\"in t||\"item\"in t)}function o(t){return i(t)?Array.isArray(t)?t.slice():r(t):[t]}var a=n(0);t.exports=o},function(t,e,n){\"use strict\";function r(t){var e=t.match(l);return e&&e[1].toLowerCase()}function i(t,e){var n=s;s||c(!1);var i=r(t),o=i&&u(i);if(o){n.innerHTML=o[1]+t+o[2];for(var l=o[0];l--;)n=n.lastChild}else n.innerHTML=t;var f=n.getElementsByTagName(\"script\");f.length&&(e||c(!1),a(f).forEach(e));for(var p=Array.from(n.childNodes);n.lastChild;)n.removeChild(n.lastChild);return p}var o=n(6),a=n(332),u=n(334),c=n(0),s=o.canUseDOM?document.createElement(\"div\"):null,l=/^\\s*<(\\w+)/;t.exports=i},function(t,e,n){\"use strict\";function r(t){return a||o(!1),p.hasOwnProperty(t)||(t=\"*\"),u.hasOwnProperty(t)||(a.innerHTML=\"*\"===t?\"<link />\":\"<\"+t+\"></\"+t+\">\",u[t]=!a.firstChild),u[t]?p[t]:null}var i=n(6),o=n(0),a=i.canUseDOM?document.createElement(\"div\"):null,u={},c=[1,'<select multiple=\"true\">',\"</select>\"],s=[1,\"<table>\",\"</table>\"],l=[3,\"<table><tbody><tr>\",\"</tr></tbody></table>\"],f=[1,'<svg xmlns=\"http://www.w3.org/2000/svg\">',\"</svg>\"],p={\"*\":[1,\"?<div>\",\"</div>\"],area:[1,\"<map>\",\"</map>\"],col:[2,\"<table><tbody></tbody><colgroup>\",\"</colgroup></table>\"],legend:[1,\"<fieldset>\",\"</fieldset>\"],param:[1,\"<object>\",\"</object>\"],tr:[2,\"<table><tbody>\",\"</tbody></table>\"],optgroup:c,option:c,caption:s,colgroup:s,tbody:s,tfoot:s,thead:s,td:l,th:l};[\"circle\",\"clipPath\",\"defs\",\"ellipse\",\"g\",\"image\",\"line\",\"linearGradient\",\"mask\",\"path\",\"pattern\",\"polygon\",\"polyline\",\"radialGradient\",\"rect\",\"stop\",\"text\",\"tspan\"].forEach(function(t){p[t]=f,u[t]=!0}),t.exports=r},function(t,e,n){\"use strict\";function r(t){return t.Window&&t instanceof t.Window?{x:t.pageXOffset||t.document.documentElement.scrollLeft,y:t.pageYOffset||t.document.documentElement.scrollTop}:{x:t.scrollLeft,y:t.scrollTop}}t.exports=r},function(t,e,n){\"use strict\";function r(t){return t.replace(i,\"-$1\").toLowerCase()}var i=/([A-Z])/g;t.exports=r},function(t,e,n){\"use strict\";function r(t){return i(t).replace(o,\"-ms-\")}var i=n(336),o=/^ms-/;t.exports=r},function(t,e,n){\"use strict\";function r(t){var e=t?t.ownerDocument||t:document,n=e.defaultView||window;return!(!t||!(\"function\"==typeof n.Node?t instanceof n.Node:\"object\"==typeof t&&\"number\"==typeof t.nodeType&&\"string\"==typeof t.nodeName))}t.exports=r},function(t,e,n){\"use strict\";function r(t){return i(t)&&3==t.nodeType}var i=n(338);t.exports=r},function(t,e,n){\"use strict\";var r=function(t){var e;for(e in t)if(t.hasOwnProperty(e))return e;return null};t.exports=r},function(t,e,n){\"use strict\";function r(t){var e={};return function(n){return e.hasOwnProperty(n)||(e[n]=t.call(this,n)),e[n]}}t.exports=r},function(t,e,n){\"use strict\";function r(t,e,n,r,i){}t.exports=r},function(t,e,n){\"use strict\";function r(){return null}var i=n(3),o=n(344),a=n(342),u=function(){};t.exports=function(t,e){function n(t){var e=t&&(E&&t[E]||t[M]);if(\"function\"==typeof e)return e}function c(t,e){return t===e?0!==t||1/t==1/e:t!==t&&e!==e}function s(t){this.message=t,this.stack=\"\"}function l(t){function n(n,r,i,a,u,c,l){if(a=a||T,c=c||i,l!==o){if(e){var f=new Error(\"Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types\");throw f.name=\"Invariant Violation\",f}}return null==r[i]?n?new s(null===r[i]?\"The \"+u+\" `\"+c+\"` is marked as required in `\"+a+\"`, but its value is `null`.\":\"The \"+u+\" `\"+c+\"` is marked as required in `\"+a+\"`, but its value is `undefined`.\"):null:t(r,i,a,u,c)}var r=n.bind(null,!1);return r.isRequired=n.bind(null,!0),r}function f(t){function e(e,n,r,i,o,a){var u=e[n];if(x(u)!==t)return new s(\"Invalid \"+i+\" `\"+o+\"` of type `\"+w(u)+\"` supplied to `\"+r+\"`, expected `\"+t+\"`.\");return null}return l(e)}function p(t){function e(e,n,r,i,a){if(\"function\"!=typeof t)return new s(\"Property `\"+a+\"` of component `\"+r+\"` has invalid PropType notation inside arrayOf.\");var u=e[n];if(!Array.isArray(u)){return new s(\"Invalid \"+i+\" `\"+a+\"` of type `\"+x(u)+\"` supplied to `\"+r+\"`, expected an array.\")}for(var c=0;c<u.length;c++){var l=t(u,c,r,i,a+\"[\"+c+\"]\",o);if(l instanceof Error)return l}return null}return l(e)}function h(t){function e(e,n,r,i,o){if(!(e[n]instanceof t)){var a=t.name||T;return new s(\"Invalid \"+i+\" `\"+o+\"` of type `\"+k(e[n])+\"` supplied to `\"+r+\"`, expected instance of `\"+a+\"`.\")}return null}return l(e)}function d(t){function e(e,n,r,i,o){for(var a=e[n],u=0;u<t.length;u++)if(c(a,t[u]))return null;return new s(\"Invalid \"+i+\" `\"+o+\"` of value `\"+a+\"` supplied to `\"+r+\"`, expected one of \"+JSON.stringify(t)+\".\")}return Array.isArray(t)?l(e):r}function v(t){function e(e,n,r,i,a){if(\"function\"!=typeof t)return new s(\"Property `\"+a+\"` of component `\"+r+\"` has invalid PropType notation inside objectOf.\");var u=e[n],c=x(u);if(\"object\"!==c)return new s(\"Invalid \"+i+\" `\"+a+\"` of type `\"+c+\"` supplied to `\"+r+\"`, expected an object.\");for(var l in u)if(u.hasOwnProperty(l)){var f=t(u,l,r,i,a+\".\"+l,o);if(f instanceof Error)return f}return null}return l(e)}function g(t){function e(e,n,r,i,a){for(var u=0;u<t.length;u++){if(null==(0,t[u])(e,n,r,i,a,o))return null}return new s(\"Invalid \"+i+\" `\"+a+\"` supplied to `\"+r+\"`.\")}if(!Array.isArray(t))return r;for(var n=0;n<t.length;n++){var i=t[n];if(\"function\"!=typeof i)return u(\"Invalid argument supplied to oneOfType. Expected an array of check functions, but received \"+C(i)+\" at index \"+n+\".\"),r}return l(e)}function m(t){function e(e,n,r,i,a){var u=e[n],c=x(u);if(\"object\"!==c)return new s(\"Invalid \"+i+\" `\"+a+\"` of type `\"+c+\"` supplied to `\"+r+\"`, expected `object`.\");for(var l in t){var f=t[l];if(f){var p=f(u,l,r,i,a+\".\"+l,o);if(p)return p}}return null}return l(e)}function y(t){function e(e,n,r,a,u){var c=e[n],l=x(c);if(\"object\"!==l)return new s(\"Invalid \"+a+\" `\"+u+\"` of type `\"+l+\"` supplied to `\"+r+\"`, expected `object`.\");var f=i({},e[n],t);for(var p in f){var h=t[p];if(!h)return new s(\"Invalid \"+a+\" `\"+u+\"` key `\"+p+\"` supplied to `\"+r+\"`.\\nBad object: \"+JSON.stringify(e[n],null,\"  \")+\"\\nValid keys: \"+JSON.stringify(Object.keys(t),null,\"  \"));var d=h(c,p,r,a,u+\".\"+p,o);if(d)return d}return null}return l(e)}function _(e){switch(typeof e){case\"number\":case\"string\":case\"undefined\":return!0;case\"boolean\":return!e;case\"object\":if(Array.isArray(e))return e.every(_);if(null===e||t(e))return!0;var r=n(e);if(!r)return!1;var i,o=r.call(e);if(r!==e.entries){for(;!(i=o.next()).done;)if(!_(i.value))return!1}else for(;!(i=o.next()).done;){var a=i.value;if(a&&!_(a[1]))return!1}return!0;default:return!1}}function b(t,e){return\"symbol\"===t||(\"Symbol\"===e[\"@@toStringTag\"]||\"function\"==typeof Symbol&&e instanceof Symbol)}function x(t){var e=typeof t;return Array.isArray(t)?\"array\":t instanceof RegExp?\"object\":b(e,t)?\"symbol\":e}function w(t){if(void 0===t||null===t)return\"\"+t;var e=x(t);if(\"object\"===e){if(t instanceof Date)return\"date\";if(t instanceof RegExp)return\"regexp\"}return e}function C(t){var e=w(t);switch(e){case\"array\":case\"object\":return\"an \"+e;case\"boolean\":case\"date\":case\"regexp\":return\"a \"+e;default:return e}}function k(t){return t.constructor&&t.constructor.name?t.constructor.name:T}var E=\"function\"==typeof Symbol&&Symbol.iterator,M=\"@@iterator\",T=\"<<anonymous>>\",S={array:f(\"array\"),bool:f(\"boolean\"),func:f(\"function\"),number:f(\"number\"),object:f(\"object\"),string:f(\"string\"),symbol:f(\"symbol\"),any:function(){return l(r)}(),arrayOf:p,element:function(){function e(e,n,r,i,o){var a=e[n];if(!t(a)){return new s(\"Invalid \"+i+\" `\"+o+\"` of type `\"+x(a)+\"` supplied to `\"+r+\"`, expected a single ReactElement.\")}return null}return l(e)}(),instanceOf:h,node:function(){function t(t,e,n,r,i){return _(t[e])?null:new s(\"Invalid \"+r+\" `\"+i+\"` supplied to `\"+n+\"`, expected a ReactNode.\")}return l(t)}(),objectOf:v,oneOf:d,oneOfType:g,shape:m,exact:y};return s.prototype=Error.prototype,S.checkPropTypes=a,S.PropTypes=S,S}},function(t,e,n){\"use strict\";t.exports=\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\"},function(t,e,n){\"use strict\";var r={Properties:{\"aria-current\":0,\"aria-details\":0,\"aria-disabled\":0,\"aria-hidden\":0,\"aria-invalid\":0,\"aria-keyshortcuts\":0,\"aria-label\":0,\"aria-roledescription\":0,\"aria-autocomplete\":0,\"aria-checked\":0,\"aria-expanded\":0,\"aria-haspopup\":0,\"aria-level\":0,\"aria-modal\":0,\"aria-multiline\":0,\"aria-multiselectable\":0,\"aria-orientation\":0,\"aria-placeholder\":0,\"aria-pressed\":0,\"aria-readonly\":0,\"aria-required\":0,\"aria-selected\":0,\"aria-sort\":0,\"aria-valuemax\":0,\"aria-valuemin\":0,\"aria-valuenow\":0,\"aria-valuetext\":0,\"aria-atomic\":0,\"aria-busy\":0,\"aria-live\":0,\"aria-relevant\":0,\"aria-dropeffect\":0,\"aria-grabbed\":0,\"aria-activedescendant\":0,\"aria-colcount\":0,\"aria-colindex\":0,\"aria-colspan\":0,\"aria-controls\":0,\"aria-describedby\":0,\"aria-errormessage\":0,\"aria-flowto\":0,\"aria-labelledby\":0,\"aria-owns\":0,\"aria-posinset\":0,\"aria-rowcount\":0,\"aria-rowindex\":0,\"aria-rowspan\":0,\"aria-setsize\":0},DOMAttributeNames:{},DOMPropertyNames:{}};t.exports=r},function(t,e,n){\"use strict\";var r=n(4),i=n(154),o={focusDOMComponent:function(){i(r.getNodeFromInstance(this))}};t.exports=o},function(t,e,n){\"use strict\";function r(t){return(t.ctrlKey||t.altKey||t.metaKey)&&!(t.ctrlKey&&t.altKey)}function i(t){switch(t){case\"topCompositionStart\":return E.compositionStart;case\"topCompositionEnd\":return E.compositionEnd;case\"topCompositionUpdate\":return E.compositionUpdate}}function o(t,e){return\"topKeyDown\"===t&&e.keyCode===y}function a(t,e){switch(t){case\"topKeyUp\":return-1!==m.indexOf(e.keyCode);case\"topKeyDown\":return e.keyCode!==y;case\"topKeyPress\":case\"topMouseDown\":case\"topBlur\":return!0;default:return!1}}function u(t){var e=t.detail;return\"object\"==typeof e&&\"data\"in e?e.data:null}function c(t,e,n,r){var c,s;if(_?c=i(t):T?a(t,n)&&(c=E.compositionEnd):o(t,n)&&(c=E.compositionStart),!c)return null;w&&(T||c!==E.compositionStart?c===E.compositionEnd&&T&&(s=T.getData()):T=d.getPooled(r));var l=v.getPooled(c,e,n,r);if(s)l.data=s;else{var f=u(n);null!==f&&(l.data=f)}return p.accumulateTwoPhaseDispatches(l),l}function s(t,e){switch(t){case\"topCompositionEnd\":return u(e);case\"topKeyPress\":return e.which!==C?null:(M=!0,k);case\"topTextInput\":var n=e.data;return n===k&&M?null:n;default:return null}}function l(t,e){if(T){if(\"topCompositionEnd\"===t||!_&&a(t,e)){var n=T.getData();return d.release(T),T=null,n}return null}switch(t){case\"topPaste\":return null;case\"topKeyPress\":return e.which&&!r(e)?String.fromCharCode(e.which):null;case\"topCompositionEnd\":return w?null:e.data;default:return null}}function f(t,e,n,r){var i;if(!(i=x?s(t,n):l(t,n)))return null;var o=g.getPooled(E.beforeInput,e,n,r);return o.data=i,p.accumulateTwoPhaseDispatches(o),o}var p=n(23),h=n(6),d=n(354),v=n(391),g=n(394),m=[9,13,27,32],y=229,_=h.canUseDOM&&\"CompositionEvent\"in window,b=null;h.canUseDOM&&\"documentMode\"in document&&(b=document.documentMode);var x=h.canUseDOM&&\"TextEvent\"in window&&!b&&!function(){var t=window.opera;return\"object\"==typeof t&&\"function\"==typeof t.version&&parseInt(t.version(),10)<=12}(),w=h.canUseDOM&&(!_||b&&b>8&&b<=11),C=32,k=String.fromCharCode(C),E={beforeInput:{phasedRegistrationNames:{bubbled:\"onBeforeInput\",captured:\"onBeforeInputCapture\"},dependencies:[\"topCompositionEnd\",\"topKeyPress\",\"topTextInput\",\"topPaste\"]},compositionEnd:{phasedRegistrationNames:{bubbled:\"onCompositionEnd\",captured:\"onCompositionEndCapture\"},dependencies:[\"topBlur\",\"topCompositionEnd\",\"topKeyDown\",\"topKeyPress\",\"topKeyUp\",\"topMouseDown\"]},compositionStart:{phasedRegistrationNames:{bubbled:\"onCompositionStart\",captured:\"onCompositionStartCapture\"},dependencies:[\"topBlur\",\"topCompositionStart\",\"topKeyDown\",\"topKeyPress\",\"topKeyUp\",\"topMouseDown\"]},compositionUpdate:{phasedRegistrationNames:{bubbled:\"onCompositionUpdate\",captured:\"onCompositionUpdateCapture\"},dependencies:[\"topBlur\",\"topCompositionUpdate\",\"topKeyDown\",\"topKeyPress\",\"topKeyUp\",\"topMouseDown\"]}},M=!1,T=null,S={eventTypes:E,extractEvents:function(t,e,n,r){return[c(t,e,n,r),f(t,e,n,r)]}};t.exports=S},function(t,e,n){\"use strict\";var r=n(158),i=n(6),o=(n(9),n(330),n(400)),a=n(337),u=n(341),c=(n(2),u(function(t){return a(t)})),s=!1,l=\"cssFloat\";if(i.canUseDOM){var f=document.createElement(\"div\").style;try{f.font=\"\"}catch(t){s=!0}void 0===document.documentElement.style.cssFloat&&(l=\"styleFloat\")}var p={createMarkupForStyles:function(t,e){var n=\"\";for(var r in t)if(t.hasOwnProperty(r)){var i=0===r.indexOf(\"--\"),a=t[r];null!=a&&(n+=c(r)+\":\",n+=o(r,a,e,i)+\";\")}return n||null},setValueForStyles:function(t,e,n){var i=t.style;for(var a in e)if(e.hasOwnProperty(a)){var u=0===a.indexOf(\"--\"),c=o(a,e[a],n,u);if(\"float\"!==a&&\"cssFloat\"!==a||(a=l),u)i.setProperty(a,c);else if(c)i[a]=c;else{var f=s&&r.shorthandPropertyExpansions[a];if(f)for(var p in f)i[p]=\"\";else i[a]=\"\"}}}};t.exports=p},function(t,e,n){\"use strict\";function r(t,e,n){var r=M.getPooled(P.change,t,e,n);return r.type=\"change\",w.accumulateTwoPhaseDispatches(r),r}function i(t){var e=t.nodeName&&t.nodeName.toLowerCase();return\"select\"===e||\"input\"===e&&\"file\"===t.type}function o(t){var e=r(I,t,S(t));E.batchedUpdates(a,e)}function a(t){x.enqueueEvents(t),x.processEventQueue(!1)}function u(t,e){O=t,I=e,O.attachEvent(\"onchange\",o)}function c(){O&&(O.detachEvent(\"onchange\",o),O=null,I=null)}function s(t,e){var n=T.updateValueIfChanged(t),r=!0===e.simulated&&L._allowSimulatedPassThrough;if(n||r)return t}function l(t,e){if(\"topChange\"===t)return e}function f(t,e,n){\"topFocus\"===t?(c(),u(e,n)):\"topBlur\"===t&&c()}function p(t,e){O=t,I=e,O.attachEvent(\"onpropertychange\",d)}function h(){O&&(O.detachEvent(\"onpropertychange\",d),O=null,I=null)}function d(t){\"value\"===t.propertyName&&s(I,t)&&o(t)}function v(t,e,n){\"topFocus\"===t?(h(),p(e,n)):\"topBlur\"===t&&h()}function g(t,e,n){if(\"topSelectionChange\"===t||\"topKeyUp\"===t||\"topKeyDown\"===t)return s(I,n)}function m(t){var e=t.nodeName;return e&&\"input\"===e.toLowerCase()&&(\"checkbox\"===t.type||\"radio\"===t.type)}function y(t,e,n){if(\"topClick\"===t)return s(e,n)}function _(t,e,n){if(\"topInput\"===t||\"topChange\"===t)return s(e,n)}function b(t,e){if(null!=t){var n=t._wrapperState||e._wrapperState;if(n&&n.controlled&&\"number\"===e.type){var r=\"\"+e.value;e.getAttribute(\"value\")!==r&&e.setAttribute(\"value\",r)}}}var x=n(22),w=n(23),C=n(6),k=n(4),E=n(12),M=n(14),T=n(173),S=n(94),N=n(95),A=n(175),P={change:{phasedRegistrationNames:{bubbled:\"onChange\",captured:\"onChangeCapture\"},dependencies:[\"topBlur\",\"topChange\",\"topClick\",\"topFocus\",\"topInput\",\"topKeyDown\",\"topKeyUp\",\"topSelectionChange\"]}},O=null,I=null,D=!1;C.canUseDOM&&(D=N(\"change\")&&(!document.documentMode||document.documentMode>8));var R=!1;C.canUseDOM&&(R=N(\"input\")&&(!document.documentMode||document.documentMode>9));var L={eventTypes:P,_allowSimulatedPassThrough:!0,_isInputEventSupported:R,extractEvents:function(t,e,n,o){var a,u,c=e?k.getNodeFromInstance(e):window;if(i(c)?D?a=l:u=f:A(c)?R?a=_:(a=g,u=v):m(c)&&(a=y),a){var s=a(t,e,n);if(s){return r(s,n,o)}}u&&u(t,c,e),\"topBlur\"===t&&b(e,c)}};t.exports=L},function(t,e,n){\"use strict\";var r=n(1),i=n(20),o=n(6),a=n(333),u=n(11),c=(n(0),{dangerouslyReplaceNodeWithMarkup:function(t,e){if(o.canUseDOM||r(\"56\"),e||r(\"57\"),\"HTML\"===t.nodeName&&r(\"58\"),\"string\"==typeof e){var n=a(e,u)[0];t.parentNode.replaceChild(n,t)}else i.replaceChildWithTree(t,e)}});t.exports=c},function(t,e,n){\"use strict\";var r=[\"ResponderEventPlugin\",\"SimpleEventPlugin\",\"TapEventPlugin\",\"EnterLeaveEventPlugin\",\"ChangeEventPlugin\",\"SelectEventPlugin\",\"BeforeInputEventPlugin\"];t.exports=r},function(t,e,n){\"use strict\";var r=n(23),i=n(4),o=n(54),a={mouseEnter:{registrationName:\"onMouseEnter\",dependencies:[\"topMouseOut\",\"topMouseOver\"]},mouseLeave:{registrationName:\"onMouseLeave\",dependencies:[\"topMouseOut\",\"topMouseOver\"]}},u={eventTypes:a,extractEvents:function(t,e,n,u){if(\"topMouseOver\"===t&&(n.relatedTarget||n.fromElement))return null;if(\"topMouseOut\"!==t&&\"topMouseOver\"!==t)return null;var c;if(u.window===u)c=u;else{var s=u.ownerDocument;c=s?s.defaultView||s.parentWindow:window}var l,f;if(\"topMouseOut\"===t){l=e;var p=n.relatedTarget||n.toElement;f=p?i.getClosestInstanceFromNode(p):null}else l=null,f=e;if(l===f)return null;var h=null==l?c:i.getNodeFromInstance(l),d=null==f?c:i.getNodeFromInstance(f),v=o.getPooled(a.mouseLeave,l,n,u);v.type=\"mouseleave\",v.target=h,v.relatedTarget=d;var g=o.getPooled(a.mouseEnter,f,n,u);return g.type=\"mouseenter\",g.target=d,g.relatedTarget=h,r.accumulateEnterLeaveDispatches(v,g,l,f),[v,g]}};t.exports=u},function(t,e,n){\"use strict\";var r={topAbort:null,topAnimationEnd:null,topAnimationIteration:null,topAnimationStart:null,topBlur:null,topCanPlay:null,topCanPlayThrough:null,topChange:null,topClick:null,topCompositionEnd:null,topCompositionStart:null,topCompositionUpdate:null,topContextMenu:null,topCopy:null,topCut:null,topDoubleClick:null,topDrag:null,topDragEnd:null,topDragEnter:null,topDragExit:null,topDragLeave:null,topDragOver:null,topDragStart:null,topDrop:null,topDurationChange:null,topEmptied:null,topEncrypted:null,topEnded:null,topError:null,topFocus:null,topInput:null,topInvalid:null,topKeyDown:null,topKeyPress:null,topKeyUp:null,topLoad:null,topLoadedData:null,topLoadedMetadata:null,topLoadStart:null,topMouseDown:null,topMouseMove:null,topMouseOut:null,topMouseOver:null,topMouseUp:null,topPaste:null,topPause:null,topPlay:null,topPlaying:null,topProgress:null,topRateChange:null,topReset:null,topScroll:null,topSeeked:null,topSeeking:null,topSelectionChange:null,topStalled:null,topSubmit:null,topSuspend:null,topTextInput:null,topTimeUpdate:null,topTouchCancel:null,topTouchEnd:null,topTouchMove:null,topTouchStart:null,topTransitionEnd:null,topVolumeChange:null,topWaiting:null,topWheel:null},i={topLevelTypes:r};t.exports=i},function(t,e,n){\"use strict\";function r(t){this._root=t,this._startText=this.getText(),this._fallbackText=null}var i=n(3),o=n(18),a=n(172);i(r.prototype,{destructor:function(){this._root=null,this._startText=null,this._fallbackText=null},getText:function(){return\"value\"in this._root?this._root.value:this._root[a()]},getData:function(){if(this._fallbackText)return this._fallbackText;var t,e,n=this._startText,r=n.length,i=this.getText(),o=i.length;for(t=0;t<r&&n[t]===i[t];t++);var a=r-t;for(e=1;e<=a&&n[r-e]===i[o-e];e++);var u=e>1?1-e:void 0;return this._fallbackText=i.slice(t,u),this._fallbackText}}),o.addPoolingTo(r),t.exports=r},function(t,e,n){\"use strict\";var r=n(21),i=r.injection.MUST_USE_PROPERTY,o=r.injection.HAS_BOOLEAN_VALUE,a=r.injection.HAS_NUMERIC_VALUE,u=r.injection.HAS_POSITIVE_NUMERIC_VALUE,c=r.injection.HAS_OVERLOADED_BOOLEAN_VALUE,s={isCustomAttribute:RegExp.prototype.test.bind(new RegExp(\"^(data|aria)-[\"+r.ATTRIBUTE_NAME_CHAR+\"]*$\")),Properties:{accept:0,acceptCharset:0,accessKey:0,action:0,allowFullScreen:o,allowTransparency:0,alt:0,as:0,async:o,autoComplete:0,autoPlay:o,capture:o,cellPadding:0,cellSpacing:0,charSet:0,challenge:0,checked:i|o,cite:0,classID:0,className:0,cols:u,colSpan:0,content:0,contentEditable:0,contextMenu:0,controls:o,controlsList:0,coords:0,crossOrigin:0,data:0,dateTime:0,default:o,defer:o,dir:0,disabled:o,download:c,draggable:0,encType:0,form:0,formAction:0,formEncType:0,formMethod:0,formNoValidate:o,formTarget:0,frameBorder:0,headers:0,height:0,hidden:o,high:0,href:0,hrefLang:0,htmlFor:0,httpEquiv:0,icon:0,id:0,inputMode:0,integrity:0,is:0,keyParams:0,keyType:0,kind:0,label:0,lang:0,list:0,loop:o,low:0,manifest:0,marginHeight:0,marginWidth:0,max:0,maxLength:0,media:0,mediaGroup:0,method:0,min:0,minLength:0,multiple:i|o,muted:i|o,name:0,nonce:0,noValidate:o,open:o,optimum:0,pattern:0,placeholder:0,playsInline:o,poster:0,preload:0,profile:0,radioGroup:0,readOnly:o,referrerPolicy:0,rel:0,required:o,reversed:o,role:0,rows:u,rowSpan:a,sandbox:0,scope:0,scoped:o,scrolling:0,seamless:o,selected:i|o,shape:0,size:u,sizes:0,span:u,spellCheck:0,src:0,srcDoc:0,srcLang:0,srcSet:0,start:a,step:0,style:0,summary:0,tabIndex:0,target:0,title:0,type:0,useMap:0,value:0,width:0,wmode:0,wrap:0,about:0,datatype:0,inlist:0,prefix:0,property:0,resource:0,typeof:0,vocab:0,autoCapitalize:0,autoCorrect:0,autoSave:0,color:0,itemProp:0,itemScope:o,itemType:0,itemID:0,itemRef:0,results:0,security:0,unselectable:0},DOMAttributeNames:{acceptCharset:\"accept-charset\",className:\"class\",htmlFor:\"for\",httpEquiv:\"http-equiv\"},DOMPropertyNames:{},DOMMutationMethods:{value:function(t,e){if(null==e)return t.removeAttribute(\"value\");\"number\"!==t.type||!1===t.hasAttribute(\"value\")?t.setAttribute(\"value\",\"\"+e):t.validity&&!t.validity.badInput&&t.ownerDocument.activeElement!==t&&t.setAttribute(\"value\",\"\"+e)}}};t.exports=s},function(t,e,n){\"use strict\";(function(e){function r(t,e,n,r){var i=void 0===t[n];null!=e&&i&&(t[n]=o(e,!0))}var i=n(24),o=n(174),a=(n(85),n(96)),u=n(177);n(2);void 0!==e&&e.env;var c={instantiateChildren:function(t,e,n,i){if(null==t)return null;var o={};return u(t,r,o),o},updateChildren:function(t,e,n,r,u,c,s,l,f){if(e||t){var p,h;for(p in e)if(e.hasOwnProperty(p)){h=t&&t[p];var d=h&&h._currentElement,v=e[p];if(null!=h&&a(d,v))i.receiveComponent(h,v,u,l),e[p]=h;else{h&&(r[p]=i.getHostNode(h),i.unmountComponent(h,!1));var g=o(v,!0);e[p]=g;var m=i.mountComponent(g,u,c,s,l,f);n.push(m)}}for(p in t)!t.hasOwnProperty(p)||e&&e.hasOwnProperty(p)||(h=t[p],r[p]=i.getHostNode(h),i.unmountComponent(h,!1))}},unmountChildren:function(t,e){for(var n in t)if(t.hasOwnProperty(n)){var r=t[n];i.unmountComponent(r,e)}}};t.exports=c}).call(e,n(156))},function(t,e,n){\"use strict\";var r=n(82),i=n(364),o={processChildrenUpdates:i.dangerouslyProcessChildrenUpdates,replaceNodeWithMarkup:r.dangerouslyReplaceNodeWithMarkup};t.exports=o},function(t,e,n){\"use strict\";function r(t){}function i(t){return!(!t.prototype||!t.prototype.isReactComponent)}function o(t){return!(!t.prototype||!t.prototype.isPureReactComponent)}var a=n(1),u=n(3),c=n(26),s=n(87),l=n(15),f=n(88),p=n(39),h=(n(9),n(168)),d=n(24),v=n(51),g=(n(0),n(81)),m=n(96),y=(n(2),{ImpureClass:0,PureClass:1,StatelessFunctional:2});r.prototype.render=function(){var t=p.get(this)._currentElement.type,e=t(this.props,this.context,this.updater);return e};var _=1,b={construct:function(t){this._currentElement=t,this._rootNodeID=0,this._compositeType=null,this._instance=null,this._hostParent=null,this._hostContainerInfo=null,this._updateBatchNumber=null,this._pendingElement=null,this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1,this._renderedNodeType=null,this._renderedComponent=null,this._context=null,this._mountOrder=0,this._topLevelWrapper=null,this._pendingCallbacks=null,this._calledComponentWillUnmount=!1},mountComponent:function(t,e,n,u){this._context=u,this._mountOrder=_++,this._hostParent=e,this._hostContainerInfo=n;var s,l=this._currentElement.props,f=this._processContext(u),h=this._currentElement.type,d=t.getUpdateQueue(),g=i(h),m=this._constructComponent(g,l,f,d);g||null!=m&&null!=m.render?o(h)?this._compositeType=y.PureClass:this._compositeType=y.ImpureClass:(s=m,null===m||!1===m||c.isValidElement(m)||a(\"105\",h.displayName||h.name||\"Component\"),m=new r(h),this._compositeType=y.StatelessFunctional);m.props=l,m.context=f,m.refs=v,m.updater=d,this._instance=m,p.set(m,this);var b=m.state;void 0===b&&(m.state=b=null),(\"object\"!=typeof b||Array.isArray(b))&&a(\"106\",this.getName()||\"ReactCompositeComponent\"),this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1;var x;return x=m.unstable_handleError?this.performInitialMountWithErrorHandling(s,e,n,t,u):this.performInitialMount(s,e,n,t,u),m.componentDidMount&&t.getReactMountReady().enqueue(m.componentDidMount,m),x},_constructComponent:function(t,e,n,r){return this._constructComponentWithoutOwner(t,e,n,r)},_constructComponentWithoutOwner:function(t,e,n,r){var i=this._currentElement.type;return t?new i(e,n,r):i(e,n,r)},performInitialMountWithErrorHandling:function(t,e,n,r,i){var o,a=r.checkpoint();try{o=this.performInitialMount(t,e,n,r,i)}catch(u){r.rollback(a),this._instance.unstable_handleError(u),this._pendingStateQueue&&(this._instance.state=this._processPendingState(this._instance.props,this._instance.context)),a=r.checkpoint(),this._renderedComponent.unmountComponent(!0),r.rollback(a),o=this.performInitialMount(t,e,n,r,i)}return o},performInitialMount:function(t,e,n,r,i){var o=this._instance,a=0;o.componentWillMount&&(o.componentWillMount(),this._pendingStateQueue&&(o.state=this._processPendingState(o.props,o.context))),void 0===t&&(t=this._renderValidatedComponent());var u=h.getType(t);this._renderedNodeType=u;var c=this._instantiateReactComponent(t,u!==h.EMPTY);this._renderedComponent=c;var s=d.mountComponent(c,r,e,n,this._processChildContext(i),a);return s},getHostNode:function(){return d.getHostNode(this._renderedComponent)},unmountComponent:function(t){if(this._renderedComponent){var e=this._instance;if(e.componentWillUnmount&&!e._calledComponentWillUnmount)if(e._calledComponentWillUnmount=!0,t){var n=this.getName()+\".componentWillUnmount()\";f.invokeGuardedCallback(n,e.componentWillUnmount.bind(e))}else e.componentWillUnmount();this._renderedComponent&&(d.unmountComponent(this._renderedComponent,t),this._renderedNodeType=null,this._renderedComponent=null,this._instance=null),this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1,this._pendingCallbacks=null,this._pendingElement=null,this._context=null,this._rootNodeID=0,this._topLevelWrapper=null,p.remove(e)}},_maskContext:function(t){var e=this._currentElement.type,n=e.contextTypes;if(!n)return v;var r={};for(var i in n)r[i]=t[i];return r},_processContext:function(t){var e=this._maskContext(t);return e},_processChildContext:function(t){var e,n=this._currentElement.type,r=this._instance;if(r.getChildContext&&(e=r.getChildContext()),e){\"object\"!=typeof n.childContextTypes&&a(\"107\",this.getName()||\"ReactCompositeComponent\");for(var i in e)i in n.childContextTypes||a(\"108\",this.getName()||\"ReactCompositeComponent\",i);return u({},t,e)}return t},_checkContextTypes:function(t,e,n){},receiveComponent:function(t,e,n){var r=this._currentElement,i=this._context;this._pendingElement=null,this.updateComponent(e,r,t,i,n)},performUpdateIfNecessary:function(t){null!=this._pendingElement?d.receiveComponent(this,this._pendingElement,t,this._context):null!==this._pendingStateQueue||this._pendingForceUpdate?this.updateComponent(t,this._currentElement,this._currentElement,this._context,this._context):this._updateBatchNumber=null},updateComponent:function(t,e,n,r,i){var o=this._instance;null==o&&a(\"136\",this.getName()||\"ReactCompositeComponent\");var u,c=!1;this._context===i?u=o.context:(u=this._processContext(i),c=!0);var s=e.props,l=n.props;e!==n&&(c=!0),c&&o.componentWillReceiveProps&&o.componentWillReceiveProps(l,u);var f=this._processPendingState(l,u),p=!0;this._pendingForceUpdate||(o.shouldComponentUpdate?p=o.shouldComponentUpdate(l,f,u):this._compositeType===y.PureClass&&(p=!g(s,l)||!g(o.state,f))),this._updateBatchNumber=null,p?(this._pendingForceUpdate=!1,this._performComponentUpdate(n,l,f,u,t,i)):(this._currentElement=n,this._context=i,o.props=l,o.state=f,o.context=u)},_processPendingState:function(t,e){var n=this._instance,r=this._pendingStateQueue,i=this._pendingReplaceState;if(this._pendingReplaceState=!1,this._pendingStateQueue=null,!r)return n.state;if(i&&1===r.length)return r[0];for(var o=u({},i?r[0]:n.state),a=i?1:0;a<r.length;a++){var c=r[a];u(o,\"function\"==typeof c?c.call(n,o,t,e):c)}return o},_performComponentUpdate:function(t,e,n,r,i,o){var a,u,c,s=this._instance,l=Boolean(s.componentDidUpdate);l&&(a=s.props,u=s.state,c=s.context),s.componentWillUpdate&&s.componentWillUpdate(e,n,r),this._currentElement=t,this._context=o,s.props=e,s.state=n,s.context=r,this._updateRenderedComponent(i,o),l&&i.getReactMountReady().enqueue(s.componentDidUpdate.bind(s,a,u,c),s)},_updateRenderedComponent:function(t,e){var n=this._renderedComponent,r=n._currentElement,i=this._renderValidatedComponent(),o=0;if(m(r,i))d.receiveComponent(n,i,t,this._processChildContext(e));else{var a=d.getHostNode(n);d.unmountComponent(n,!1);var u=h.getType(i);this._renderedNodeType=u;var c=this._instantiateReactComponent(i,u!==h.EMPTY);this._renderedComponent=c;var s=d.mountComponent(c,t,this._hostParent,this._hostContainerInfo,this._processChildContext(e),o);this._replaceNodeWithMarkup(a,s,n)}},_replaceNodeWithMarkup:function(t,e,n){s.replaceNodeWithMarkup(t,e,n)},_renderValidatedComponentWithoutOwnerOrContext:function(){var t=this._instance;return t.render()},_renderValidatedComponent:function(){var t;if(this._compositeType!==y.StatelessFunctional){l.current=this;try{t=this._renderValidatedComponentWithoutOwnerOrContext()}finally{l.current=null}}else t=this._renderValidatedComponentWithoutOwnerOrContext();return null===t||!1===t||c.isValidElement(t)||a(\"109\",this.getName()||\"ReactCompositeComponent\"),t},attachRef:function(t,e){var n=this.getPublicInstance();null==n&&a(\"110\");var r=e.getPublicInstance();(n.refs===v?n.refs={}:n.refs)[t]=r},detachRef:function(t){delete this.getPublicInstance().refs[t]},getName:function(){var t=this._currentElement.type,e=this._instance&&this._instance.constructor;return t.displayName||e&&e.displayName||t.name||e&&e.name||null},getPublicInstance:function(){var t=this._instance;return this._compositeType===y.StatelessFunctional?null:t},_instantiateReactComponent:null};t.exports=b},function(t,e,n){\"use strict\";var r=n(4),i=n(372),o=n(167),a=n(24),u=n(12),c=n(385),s=n(401),l=n(171),f=n(408);n(2);i.inject();var p={findDOMNode:s,render:o.render,unmountComponentAtNode:o.unmountComponentAtNode,version:c,unstable_batchedUpdates:u.batchedUpdates,unstable_renderSubtreeIntoContainer:f};\"undefined\"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&\"function\"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.inject&&__REACT_DEVTOOLS_GLOBAL_HOOK__.inject({ComponentTree:{getClosestInstanceFromNode:r.getClosestInstanceFromNode,getNodeFromInstance:function(t){return t._renderedComponent&&(t=l(t)),t?r.getNodeFromInstance(t):null}},Mount:o,Reconciler:a});t.exports=p},function(t,e,n){\"use strict\";function r(t){if(t){var e=t._currentElement._owner||null;if(e){var n=e.getName();if(n)return\" This DOM node was rendered by `\"+n+\"`.\"}}return\"\"}function i(t,e){e&&($[t._tag]&&(null!=e.children||null!=e.dangerouslySetInnerHTML)&&g(\"137\",t._tag,t._currentElement._owner?\" Check the render method of \"+t._currentElement._owner.getName()+\".\":\"\"),null!=e.dangerouslySetInnerHTML&&(null!=e.children&&g(\"60\"),\"object\"==typeof e.dangerouslySetInnerHTML&&z in e.dangerouslySetInnerHTML||g(\"61\")),null!=e.style&&\"object\"!=typeof e.style&&g(\"62\",r(t)))}function o(t,e,n,r){if(!(r instanceof D)){var i=t._hostContainerInfo,o=i._node&&i._node.nodeType===q,u=o?i._node:i._ownerDocument;B(e,u),r.getReactMountReady().enqueue(a,{inst:t,registrationName:e,listener:n})}}function a(){var t=this;k.putListener(t.inst,t.registrationName,t.listener)}function u(){var t=this;N.postMountWrapper(t)}function c(){var t=this;O.postMountWrapper(t)}function s(){var t=this;A.postMountWrapper(t)}function l(){L.track(this)}function f(){var t=this;t._rootNodeID||g(\"63\");var e=j(t);switch(e||g(\"64\"),t._tag){case\"iframe\":case\"object\":t._wrapperState.listeners=[M.trapBubbledEvent(\"topLoad\",\"load\",e)];break;case\"video\":case\"audio\":t._wrapperState.listeners=[];for(var n in Y)Y.hasOwnProperty(n)&&t._wrapperState.listeners.push(M.trapBubbledEvent(n,Y[n],e));break;case\"source\":t._wrapperState.listeners=[M.trapBubbledEvent(\"topError\",\"error\",e)];break;case\"img\":t._wrapperState.listeners=[M.trapBubbledEvent(\"topError\",\"error\",e),M.trapBubbledEvent(\"topLoad\",\"load\",e)];break;case\"form\":t._wrapperState.listeners=[M.trapBubbledEvent(\"topReset\",\"reset\",e),M.trapBubbledEvent(\"topSubmit\",\"submit\",e)];break;case\"input\":case\"select\":case\"textarea\":t._wrapperState.listeners=[M.trapBubbledEvent(\"topInvalid\",\"invalid\",e)]}}function p(){P.postUpdateWrapper(this)}function h(t){Z.call(Q,t)||(X.test(t)||g(\"65\",t),Q[t]=!0)}function d(t,e){return t.indexOf(\"-\")>=0||null!=e.is}function v(t){var e=t.type;h(e),this._currentElement=t,this._tag=e.toLowerCase(),this._namespaceURI=null,this._renderedChildren=null,this._previousStyle=null,this._previousStyleCopy=null,this._hostNode=null,this._hostParent=null,this._rootNodeID=0,this._domID=0,this._hostContainerInfo=null,this._wrapperState=null,this._topLevelWrapper=null,this._flags=0}var g=n(1),m=n(3),y=n(346),_=n(348),b=n(20),x=n(83),w=n(21),C=n(160),k=n(22),E=n(84),M=n(53),T=n(161),S=n(4),N=n(365),A=n(366),P=n(162),O=n(369),I=(n(9),n(378)),D=n(383),R=(n(11),n(56)),L=(n(0),n(95),n(81),n(173)),U=(n(97),n(2),T),F=k.deleteListener,j=S.getNodeFromInstance,B=M.listenTo,V=E.registrationNameModules,W={string:!0,number:!0},z=\"__html\",H={children:null,dangerouslySetInnerHTML:null,suppressContentEditableWarning:null},q=11,Y={topAbort:\"abort\",topCanPlay:\"canplay\",topCanPlayThrough:\"canplaythrough\",topDurationChange:\"durationchange\",topEmptied:\"emptied\",topEncrypted:\"encrypted\",topEnded:\"ended\",topError:\"error\",topLoadedData:\"loadeddata\",topLoadedMetadata:\"loadedmetadata\",topLoadStart:\"loadstart\",topPause:\"pause\",topPlay:\"play\",topPlaying:\"playing\",topProgress:\"progress\",topRateChange:\"ratechange\",topSeeked:\"seeked\",topSeeking:\"seeking\",topStalled:\"stalled\",topSuspend:\"suspend\",topTimeUpdate:\"timeupdate\",topVolumeChange:\"volumechange\",topWaiting:\"waiting\"},K={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},G={listing:!0,pre:!0,textarea:!0},$=m({menuitem:!0},K),X=/^[a-zA-Z][a-zA-Z:_\\.\\-\\d]*$/,Q={},Z={}.hasOwnProperty,J=1;v.displayName=\"ReactDOMComponent\",v.Mixin={mountComponent:function(t,e,n,r){this._rootNodeID=J++,this._domID=n._idCounter++,this._hostParent=e,this._hostContainerInfo=n;var o=this._currentElement.props;switch(this._tag){case\"audio\":case\"form\":case\"iframe\":case\"img\":case\"link\":case\"object\":case\"source\":case\"video\":this._wrapperState={listeners:null},t.getReactMountReady().enqueue(f,this);break;case\"input\":N.mountWrapper(this,o,e),o=N.getHostProps(this,o),t.getReactMountReady().enqueue(l,this),t.getReactMountReady().enqueue(f,this);break;case\"option\":A.mountWrapper(this,o,e),o=A.getHostProps(this,o);break;case\"select\":P.mountWrapper(this,o,e),o=P.getHostProps(this,o),t.getReactMountReady().enqueue(f,this);break;case\"textarea\":O.mountWrapper(this,o,e),o=O.getHostProps(this,o),t.getReactMountReady().enqueue(l,this),t.getReactMountReady().enqueue(f,this)}i(this,o);var a,p;null!=e?(a=e._namespaceURI,p=e._tag):n._tag&&(a=n._namespaceURI,p=n._tag),(null==a||a===x.svg&&\"foreignobject\"===p)&&(a=x.html),a===x.html&&(\"svg\"===this._tag?a=x.svg:\"math\"===this._tag&&(a=x.mathml)),this._namespaceURI=a;var h;if(t.useCreateElement){var d,v=n._ownerDocument;if(a===x.html)if(\"script\"===this._tag){var g=v.createElement(\"div\"),m=this._currentElement.type;g.innerHTML=\"<\"+m+\"></\"+m+\">\",d=g.removeChild(g.firstChild)}else d=o.is?v.createElement(this._currentElement.type,o.is):v.createElement(this._currentElement.type);else d=v.createElementNS(a,this._currentElement.type);S.precacheNode(this,d),this._flags|=U.hasCachedChildNodes,this._hostParent||C.setAttributeForRoot(d),this._updateDOMProperties(null,o,t);var _=b(d);this._createInitialChildren(t,o,r,_),h=_}else{var w=this._createOpenTagMarkupAndPutListeners(t,o),k=this._createContentMarkup(t,o,r);h=!k&&K[this._tag]?w+\"/>\":w+\">\"+k+\"</\"+this._currentElement.type+\">\"}switch(this._tag){case\"input\":t.getReactMountReady().enqueue(u,this),o.autoFocus&&t.getReactMountReady().enqueue(y.focusDOMComponent,this);break;case\"textarea\":t.getReactMountReady().enqueue(c,this),o.autoFocus&&t.getReactMountReady().enqueue(y.focusDOMComponent,this);break;case\"select\":case\"button\":o.autoFocus&&t.getReactMountReady().enqueue(y.focusDOMComponent,this);break;case\"option\":t.getReactMountReady().enqueue(s,this)}return h},_createOpenTagMarkupAndPutListeners:function(t,e){var n=\"<\"+this._currentElement.type;for(var r in e)if(e.hasOwnProperty(r)){var i=e[r];if(null!=i)if(V.hasOwnProperty(r))i&&o(this,r,i,t);else{\"style\"===r&&(i&&(i=this._previousStyleCopy=m({},e.style)),i=_.createMarkupForStyles(i,this));var a=null;null!=this._tag&&d(this._tag,e)?H.hasOwnProperty(r)||(a=C.createMarkupForCustomAttribute(r,i)):a=C.createMarkupForProperty(r,i),a&&(n+=\" \"+a)}}return t.renderToStaticMarkup?n:(this._hostParent||(n+=\" \"+C.createMarkupForRoot()),n+=\" \"+C.createMarkupForID(this._domID))},_createContentMarkup:function(t,e,n){var r=\"\",i=e.dangerouslySetInnerHTML;if(null!=i)null!=i.__html&&(r=i.__html);else{var o=W[typeof e.children]?e.children:null,a=null!=o?null:e.children;if(null!=o)r=R(o);else if(null!=a){var u=this.mountChildren(a,t,n);r=u.join(\"\")}}return G[this._tag]&&\"\\n\"===r.charAt(0)?\"\\n\"+r:r},_createInitialChildren:function(t,e,n,r){var i=e.dangerouslySetInnerHTML;if(null!=i)null!=i.__html&&b.queueHTML(r,i.__html);else{var o=W[typeof e.children]?e.children:null,a=null!=o?null:e.children;if(null!=o)\"\"!==o&&b.queueText(r,o);else if(null!=a)for(var u=this.mountChildren(a,t,n),c=0;c<u.length;c++)b.queueChild(r,u[c])}},receiveComponent:function(t,e,n){var r=this._currentElement;this._currentElement=t,this.updateComponent(e,r,t,n)},updateComponent:function(t,e,n,r){var o=e.props,a=this._currentElement.props;switch(this._tag){case\"input\":o=N.getHostProps(this,o),a=N.getHostProps(this,a);break;case\"option\":o=A.getHostProps(this,o),a=A.getHostProps(this,a);break;case\"select\":o=P.getHostProps(this,o),a=P.getHostProps(this,a);break;case\"textarea\":o=O.getHostProps(this,o),a=O.getHostProps(this,a)}switch(i(this,a),this._updateDOMProperties(o,a,t),this._updateDOMChildren(o,a,t,r),this._tag){case\"input\":N.updateWrapper(this),L.updateValueIfChanged(this);break;case\"textarea\":O.updateWrapper(this);break;case\"select\":t.getReactMountReady().enqueue(p,this)}},_updateDOMProperties:function(t,e,n){var r,i,a;for(r in t)if(!e.hasOwnProperty(r)&&t.hasOwnProperty(r)&&null!=t[r])if(\"style\"===r){var u=this._previousStyleCopy;for(i in u)u.hasOwnProperty(i)&&(a=a||{},a[i]=\"\");this._previousStyleCopy=null}else V.hasOwnProperty(r)?t[r]&&F(this,r):d(this._tag,t)?H.hasOwnProperty(r)||C.deleteValueForAttribute(j(this),r):(w.properties[r]||w.isCustomAttribute(r))&&C.deleteValueForProperty(j(this),r);for(r in e){var c=e[r],s=\"style\"===r?this._previousStyleCopy:null!=t?t[r]:void 0;if(e.hasOwnProperty(r)&&c!==s&&(null!=c||null!=s))if(\"style\"===r)if(c?c=this._previousStyleCopy=m({},c):this._previousStyleCopy=null,s){for(i in s)!s.hasOwnProperty(i)||c&&c.hasOwnProperty(i)||(a=a||{},a[i]=\"\");for(i in c)c.hasOwnProperty(i)&&s[i]!==c[i]&&(a=a||{},a[i]=c[i])}else a=c;else if(V.hasOwnProperty(r))c?o(this,r,c,n):s&&F(this,r);else if(d(this._tag,e))H.hasOwnProperty(r)||C.setValueForAttribute(j(this),r,c);else if(w.properties[r]||w.isCustomAttribute(r)){var l=j(this);null!=c?C.setValueForProperty(l,r,c):C.deleteValueForProperty(l,r)}}a&&_.setValueForStyles(j(this),a,this)},_updateDOMChildren:function(t,e,n,r){var i=W[typeof t.children]?t.children:null,o=W[typeof e.children]?e.children:null,a=t.dangerouslySetInnerHTML&&t.dangerouslySetInnerHTML.__html,u=e.dangerouslySetInnerHTML&&e.dangerouslySetInnerHTML.__html,c=null!=i?null:t.children,s=null!=o?null:e.children,l=null!=i||null!=a,f=null!=o||null!=u;null!=c&&null==s?this.updateChildren(null,n,r):l&&!f&&this.updateTextContent(\"\"),null!=o?i!==o&&this.updateTextContent(\"\"+o):null!=u?a!==u&&this.updateMarkup(\"\"+u):null!=s&&this.updateChildren(s,n,r)},getHostNode:function(){return j(this)},unmountComponent:function(t){switch(this._tag){case\"audio\":case\"form\":case\"iframe\":case\"img\":case\"link\":case\"object\":case\"source\":case\"video\":var e=this._wrapperState.listeners;if(e)for(var n=0;n<e.length;n++)e[n].remove();break;case\"input\":case\"textarea\":L.stopTracking(this);break;case\"html\":case\"head\":case\"body\":g(\"66\",this._tag)}this.unmountChildren(t),S.uncacheNode(this),k.deleteAllListeners(this),this._rootNodeID=0,this._domID=0,this._wrapperState=null},getPublicInstance:function(){return j(this)}},m(v.prototype,v.Mixin,I.Mixin),t.exports=v},function(t,e,n){\"use strict\";function r(t,e){var n={_topLevelWrapper:t,_idCounter:1,_ownerDocument:e?e.nodeType===i?e:e.ownerDocument:null,_node:e,_tag:e?e.nodeName.toLowerCase():null,_namespaceURI:e?e.namespaceURI:null};return n}var i=(n(97),9);t.exports=r},function(t,e,n){\"use strict\";var r=n(3),i=n(20),o=n(4),a=function(t){this._currentElement=null,this._hostNode=null,this._hostParent=null,this._hostContainerInfo=null,this._domID=0};r(a.prototype,{mountComponent:function(t,e,n,r){var a=n._idCounter++;this._domID=a,this._hostParent=e,this._hostContainerInfo=n;var u=\" react-empty: \"+this._domID+\" \";if(t.useCreateElement){var c=n._ownerDocument,s=c.createComment(u);return o.precacheNode(this,s),i(s)}return t.renderToStaticMarkup?\"\":\"\\x3c!--\"+u+\"--\\x3e\"},receiveComponent:function(){},getHostNode:function(){return o.getNodeFromInstance(this)},unmountComponent:function(){o.uncacheNode(this)}}),t.exports=a},function(t,e,n){\"use strict\";var r={useCreateElement:!0,useFiber:!1};t.exports=r},function(t,e,n){\"use strict\";var r=n(82),i=n(4),o={dangerouslyProcessChildrenUpdates:function(t,e){var n=i.getNodeFromInstance(t);r.processUpdates(n,e)}};t.exports=o},function(t,e,n){\"use strict\";function r(){this._rootNodeID&&p.updateWrapper(this)}function i(t){return\"checkbox\"===t.type||\"radio\"===t.type?null!=t.checked:null!=t.value}function o(t){var e=this._currentElement.props,n=s.executeOnChange(e,t);f.asap(r,this);var i=e.name;if(\"radio\"===e.type&&null!=i){for(var o=l.getNodeFromInstance(this),u=o;u.parentNode;)u=u.parentNode;for(var c=u.querySelectorAll(\"input[name=\"+JSON.stringify(\"\"+i)+'][type=\"radio\"]'),p=0;p<c.length;p++){var h=c[p];if(h!==o&&h.form===o.form){var d=l.getInstanceFromNode(h);d||a(\"90\"),f.asap(r,d)}}}return n}var a=n(1),u=n(3),c=n(160),s=n(86),l=n(4),f=n(12),p=(n(0),n(2),{getHostProps:function(t,e){var n=s.getValue(e),r=s.getChecked(e);return u({type:void 0,step:void 0,min:void 0,max:void 0},e,{defaultChecked:void 0,defaultValue:void 0,value:null!=n?n:t._wrapperState.initialValue,checked:null!=r?r:t._wrapperState.initialChecked,onChange:t._wrapperState.onChange})},mountWrapper:function(t,e){var n=e.defaultValue;t._wrapperState={initialChecked:null!=e.checked?e.checked:e.defaultChecked,initialValue:null!=e.value?e.value:n,listeners:null,onChange:o.bind(t),controlled:i(e)}},updateWrapper:function(t){var e=t._currentElement.props,n=e.checked;null!=n&&c.setValueForProperty(l.getNodeFromInstance(t),\"checked\",n||!1);var r=l.getNodeFromInstance(t),i=s.getValue(e);if(null!=i)if(0===i&&\"\"===r.value)r.value=\"0\";else if(\"number\"===e.type){var o=parseFloat(r.value,10)||0;(i!=o||i==o&&r.value!=i)&&(r.value=\"\"+i)}else r.value!==\"\"+i&&(r.value=\"\"+i);else null==e.value&&null!=e.defaultValue&&r.defaultValue!==\"\"+e.defaultValue&&(r.defaultValue=\"\"+e.defaultValue),null==e.checked&&null!=e.defaultChecked&&(r.defaultChecked=!!e.defaultChecked)},postMountWrapper:function(t){var e=t._currentElement.props,n=l.getNodeFromInstance(t);switch(e.type){case\"submit\":case\"reset\":break;case\"color\":case\"date\":case\"datetime\":case\"datetime-local\":case\"month\":case\"time\":case\"week\":n.value=\"\",n.value=n.defaultValue;break;default:n.value=n.value}var r=n.name;\"\"!==r&&(n.name=\"\"),n.defaultChecked=!n.defaultChecked,n.defaultChecked=!n.defaultChecked,\"\"!==r&&(n.name=r)}});t.exports=p},function(t,e,n){\"use strict\";function r(t){var e=\"\";return o.Children.forEach(t,function(t){null!=t&&(\"string\"==typeof t||\"number\"==typeof t?e+=t:c||(c=!0))}),e}var i=n(3),o=n(26),a=n(4),u=n(162),c=(n(2),!1),s={mountWrapper:function(t,e,n){var i=null;if(null!=n){var o=n;\"optgroup\"===o._tag&&(o=o._hostParent),null!=o&&\"select\"===o._tag&&(i=u.getSelectValueContext(o))}var a=null;if(null!=i){var c;if(c=null!=e.value?e.value+\"\":r(e.children),a=!1,Array.isArray(i)){for(var s=0;s<i.length;s++)if(\"\"+i[s]===c){a=!0;break}}else a=\"\"+i===c}t._wrapperState={selected:a}},postMountWrapper:function(t){var e=t._currentElement.props;if(null!=e.value){a.getNodeFromInstance(t).setAttribute(\"value\",e.value)}},getHostProps:function(t,e){var n=i({selected:void 0,children:void 0},e);null!=t._wrapperState.selected&&(n.selected=t._wrapperState.selected);var o=r(e.children);return o&&(n.children=o),n}};t.exports=s},function(t,e,n){\"use strict\";function r(t,e,n,r){return t===n&&e===r}function i(t){var e=document.selection,n=e.createRange(),r=n.text.length,i=n.duplicate();i.moveToElementText(t),i.setEndPoint(\"EndToStart\",n);var o=i.text.length;return{start:o,end:o+r}}function o(t){var e=window.getSelection&&window.getSelection();if(!e||0===e.rangeCount)return null;var n=e.anchorNode,i=e.anchorOffset,o=e.focusNode,a=e.focusOffset,u=e.getRangeAt(0);try{u.startContainer.nodeType,u.endContainer.nodeType}catch(t){return null}var c=r(e.anchorNode,e.anchorOffset,e.focusNode,e.focusOffset),s=c?0:u.toString().length,l=u.cloneRange();l.selectNodeContents(t),l.setEnd(u.startContainer,u.startOffset);var f=r(l.startContainer,l.startOffset,l.endContainer,l.endOffset),p=f?0:l.toString().length,h=p+s,d=document.createRange();d.setStart(n,i),d.setEnd(o,a);var v=d.collapsed;return{start:v?h:p,end:v?p:h}}function a(t,e){var n,r,i=document.selection.createRange().duplicate();void 0===e.end?(n=e.start,r=n):e.start>e.end?(n=e.end,r=e.start):(n=e.start,r=e.end),i.moveToElementText(t),i.moveStart(\"character\",n),i.setEndPoint(\"EndToStart\",i),i.moveEnd(\"character\",r-n),i.select()}function u(t,e){if(window.getSelection){var n=window.getSelection(),r=t[l()].length,i=Math.min(e.start,r),o=void 0===e.end?i:Math.min(e.end,r);if(!n.extend&&i>o){var a=o;o=i,i=a}var u=s(t,i),c=s(t,o);if(u&&c){var f=document.createRange();f.setStart(u.node,u.offset),n.removeAllRanges(),i>o?(n.addRange(f),n.extend(c.node,c.offset)):(f.setEnd(c.node,c.offset),n.addRange(f))}}}var c=n(6),s=n(405),l=n(172),f=c.canUseDOM&&\"selection\"in document&&!(\"getSelection\"in window),p={getOffsets:f?i:o,setOffsets:f?a:u};t.exports=p},function(t,e,n){\"use strict\";var r=n(1),i=n(3),o=n(82),a=n(20),u=n(4),c=n(56),s=(n(0),n(97),function(t){this._currentElement=t,this._stringText=\"\"+t,this._hostNode=null,this._hostParent=null,this._domID=0,this._mountIndex=0,this._closingComment=null,this._commentNodes=null});i(s.prototype,{mountComponent:function(t,e,n,r){var i=n._idCounter++,o=\" react-text: \"+i+\" \";if(this._domID=i,this._hostParent=e,t.useCreateElement){var s=n._ownerDocument,l=s.createComment(o),f=s.createComment(\" /react-text \"),p=a(s.createDocumentFragment());return a.queueChild(p,a(l)),this._stringText&&a.queueChild(p,a(s.createTextNode(this._stringText))),a.queueChild(p,a(f)),u.precacheNode(this,l),this._closingComment=f,p}var h=c(this._stringText);return t.renderToStaticMarkup?h:\"\\x3c!--\"+o+\"--\\x3e\"+h+\"\\x3c!-- /react-text --\\x3e\"},receiveComponent:function(t,e){if(t!==this._currentElement){this._currentElement=t;var n=\"\"+t;if(n!==this._stringText){this._stringText=n;var r=this.getHostNode();o.replaceDelimitedText(r[0],r[1],n)}}},getHostNode:function(){var t=this._commentNodes;if(t)return t;if(!this._closingComment)for(var e=u.getNodeFromInstance(this),n=e.nextSibling;;){if(null==n&&r(\"67\",this._domID),8===n.nodeType&&\" /react-text \"===n.nodeValue){this._closingComment=n;break}n=n.nextSibling}return t=[this._hostNode,this._closingComment],this._commentNodes=t,t},unmountComponent:function(){this._closingComment=null,this._commentNodes=null,u.uncacheNode(this)}}),t.exports=s},function(t,e,n){\"use strict\";function r(){this._rootNodeID&&l.updateWrapper(this)}function i(t){var e=this._currentElement.props,n=u.executeOnChange(e,t);return s.asap(r,this),n}var o=n(1),a=n(3),u=n(86),c=n(4),s=n(12),l=(n(0),n(2),{getHostProps:function(t,e){return null!=e.dangerouslySetInnerHTML&&o(\"91\"),a({},e,{value:void 0,defaultValue:void 0,children:\"\"+t._wrapperState.initialValue,onChange:t._wrapperState.onChange})},mountWrapper:function(t,e){var n=u.getValue(e),r=n;if(null==n){var a=e.defaultValue,c=e.children;null!=c&&(null!=a&&o(\"92\"),Array.isArray(c)&&(c.length<=1||o(\"93\"),c=c[0]),a=\"\"+c),null==a&&(a=\"\"),r=a}t._wrapperState={initialValue:\"\"+r,listeners:null,onChange:i.bind(t)}},updateWrapper:function(t){var e=t._currentElement.props,n=c.getNodeFromInstance(t),r=u.getValue(e);if(null!=r){var i=\"\"+r;i!==n.value&&(n.value=i),null==e.defaultValue&&(n.defaultValue=i)}null!=e.defaultValue&&(n.defaultValue=e.defaultValue)},postMountWrapper:function(t){var e=c.getNodeFromInstance(t),n=e.textContent;n===t._wrapperState.initialValue&&(e.value=n)}});t.exports=l},function(t,e,n){\"use strict\";function r(t,e){\"_hostNode\"in t||c(\"33\"),\"_hostNode\"in e||c(\"33\");for(var n=0,r=t;r;r=r._hostParent)n++;for(var i=0,o=e;o;o=o._hostParent)i++;for(;n-i>0;)t=t._hostParent,n--;for(;i-n>0;)e=e._hostParent,i--;for(var a=n;a--;){if(t===e)return t;t=t._hostParent,e=e._hostParent}return null}function i(t,e){\"_hostNode\"in t||c(\"35\"),\"_hostNode\"in e||c(\"35\");for(;e;){if(e===t)return!0;e=e._hostParent}return!1}function o(t){return\"_hostNode\"in t||c(\"36\"),t._hostParent}function a(t,e,n){for(var r=[];t;)r.push(t),t=t._hostParent;var i;for(i=r.length;i-- >0;)e(r[i],\"captured\",n);for(i=0;i<r.length;i++)e(r[i],\"bubbled\",n)}function u(t,e,n,i,o){for(var a=t&&e?r(t,e):null,u=[];t&&t!==a;)u.push(t),t=t._hostParent;for(var c=[];e&&e!==a;)c.push(e),e=e._hostParent;var s;for(s=0;s<u.length;s++)n(u[s],\"bubbled\",i);for(s=c.length;s-- >0;)n(c[s],\"captured\",o)}var c=n(1);n(0);t.exports={isAncestor:i,getLowestCommonAncestor:r,getParentInstance:o,traverseTwoPhase:a,traverseEnterLeave:u}},function(t,e,n){\"use strict\";function r(){this.reinitializeTransaction()}var i=n(3),o=n(12),a=n(55),u=n(11),c={initialize:u,close:function(){p.isBatchingUpdates=!1}},s={initialize:u,close:o.flushBatchedUpdates.bind(o)},l=[s,c];i(r.prototype,a,{getTransactionWrappers:function(){return l}});var f=new r,p={isBatchingUpdates:!1,batchedUpdates:function(t,e,n,r,i,o){var a=p.isBatchingUpdates;return p.isBatchingUpdates=!0,a?t(e,n,r,i,o):f.perform(t,null,e,n,r,i,o)}};t.exports=p},function(t,e,n){\"use strict\";function r(){C||(C=!0,y.EventEmitter.injectReactEventListener(m),y.EventPluginHub.injectEventPluginOrder(u),y.EventPluginUtils.injectComponentTree(p),y.EventPluginUtils.injectTreeTraversal(d),y.EventPluginHub.injectEventPluginsByName({SimpleEventPlugin:w,EnterLeaveEventPlugin:c,ChangeEventPlugin:a,SelectEventPlugin:x,BeforeInputEventPlugin:o}),y.HostComponent.injectGenericComponentClass(f),y.HostComponent.injectTextComponentClass(v),y.DOMProperty.injectDOMPropertyConfig(i),y.DOMProperty.injectDOMPropertyConfig(s),y.DOMProperty.injectDOMPropertyConfig(b),y.EmptyComponent.injectEmptyComponentFactory(function(t){return new h(t)}),y.Updates.injectReconcileTransaction(_),y.Updates.injectBatchingStrategy(g),y.Component.injectEnvironment(l))}var i=n(345),o=n(347),a=n(349),u=n(351),c=n(352),s=n(355),l=n(357),f=n(360),p=n(4),h=n(362),d=n(370),v=n(368),g=n(371),m=n(375),y=n(376),_=n(381),b=n(386),x=n(387),w=n(388),C=!1;t.exports={inject:r}},function(t,e,n){\"use strict\";var r=\"function\"==typeof Symbol&&Symbol.for&&Symbol.for(\"react.element\")||60103;t.exports=r},function(t,e,n){\"use strict\";function r(t){i.enqueueEvents(t),i.processEventQueue(!1)}var i=n(22),o={handleTopLevel:function(t,e,n,o){r(i.extractEvents(t,e,n,o))}};t.exports=o},function(t,e,n){\"use strict\";function r(t){for(;t._hostParent;)t=t._hostParent;var e=f.getNodeFromInstance(t),n=e.parentNode;return f.getClosestInstanceFromNode(n)}function i(t,e){this.topLevelType=t,this.nativeEvent=e,this.ancestors=[]}function o(t){var e=h(t.nativeEvent),n=f.getClosestInstanceFromNode(e),i=n;do{t.ancestors.push(i),i=i&&r(i)}while(i);for(var o=0;o<t.ancestors.length;o++)n=t.ancestors[o],v._handleTopLevel(t.topLevelType,n,t.nativeEvent,h(t.nativeEvent))}function a(t){t(d(window))}var u=n(3),c=n(153),s=n(6),l=n(18),f=n(4),p=n(12),h=n(94),d=n(335);u(i.prototype,{destructor:function(){this.topLevelType=null,this.nativeEvent=null,this.ancestors.length=0}}),l.addPoolingTo(i,l.twoArgumentPooler);var v={_enabled:!0,_handleTopLevel:null,WINDOW_HANDLE:s.canUseDOM?window:null,setHandleTopLevel:function(t){v._handleTopLevel=t},setEnabled:function(t){v._enabled=!!t},isEnabled:function(){return v._enabled},trapBubbledEvent:function(t,e,n){return n?c.listen(n,e,v.dispatchEvent.bind(null,t)):null},trapCapturedEvent:function(t,e,n){return n?c.capture(n,e,v.dispatchEvent.bind(null,t)):null},monitorScrollValue:function(t){var e=a.bind(null,t);c.listen(window,\"scroll\",e)},dispatchEvent:function(t,e){if(v._enabled){var n=i.getPooled(t,e);try{p.batchedUpdates(o,n)}finally{i.release(n)}}}};t.exports=v},function(t,e,n){\"use strict\";var r=n(21),i=n(22),o=n(52),a=n(87),u=n(163),c=n(53),s=n(165),l=n(12),f={Component:a.injection,DOMProperty:r.injection,EmptyComponent:u.injection,EventPluginHub:i.injection,EventPluginUtils:o.injection,EventEmitter:c.injection,HostComponent:s.injection,Updates:l.injection};t.exports=f},function(t,e,n){\"use strict\";var r=n(399),i=/\\/?>/,o=/^<\\!\\-\\-/,a={CHECKSUM_ATTR_NAME:\"data-react-checksum\",addChecksumToMarkup:function(t){var e=r(t);return o.test(t)?t:t.replace(i,\" \"+a.CHECKSUM_ATTR_NAME+'=\"'+e+'\"$&')},canReuseMarkup:function(t,e){var n=e.getAttribute(a.CHECKSUM_ATTR_NAME);return n=n&&parseInt(n,10),r(t)===n}};t.exports=a},function(t,e,n){\"use strict\";function r(t,e,n){return{type:\"INSERT_MARKUP\",content:t,fromIndex:null,fromNode:null,toIndex:n,afterNode:e}}function i(t,e,n){return{type:\"MOVE_EXISTING\",content:null,fromIndex:t._mountIndex,fromNode:p.getHostNode(t),toIndex:n,afterNode:e}}function o(t,e){return{type:\"REMOVE_NODE\",content:null,fromIndex:t._mountIndex,fromNode:e,toIndex:null,afterNode:null}}function a(t){return{type:\"SET_MARKUP\",content:t,fromIndex:null,fromNode:null,toIndex:null,afterNode:null}}function u(t){return{type:\"TEXT_CONTENT\",content:t,fromIndex:null,fromNode:null,toIndex:null,afterNode:null}}function c(t,e){return e&&(t=t||[],t.push(e)),t}function s(t,e){f.processChildrenUpdates(t,e)}var l=n(1),f=n(87),p=(n(39),n(9),n(15),n(24)),h=n(356),d=(n(11),n(402)),v=(n(0),{Mixin:{_reconcilerInstantiateChildren:function(t,e,n){return h.instantiateChildren(t,e,n)},_reconcilerUpdateChildren:function(t,e,n,r,i,o){var a,u=0;return a=d(e,u),h.updateChildren(t,a,n,r,i,this,this._hostContainerInfo,o,u),a},mountChildren:function(t,e,n){var r=this._reconcilerInstantiateChildren(t,e,n);this._renderedChildren=r;var i=[],o=0;for(var a in r)if(r.hasOwnProperty(a)){var u=r[a],c=0,s=p.mountComponent(u,e,this,this._hostContainerInfo,n,c);u._mountIndex=o++,i.push(s)}return i},updateTextContent:function(t){var e=this._renderedChildren;h.unmountChildren(e,!1);for(var n in e)e.hasOwnProperty(n)&&l(\"118\");s(this,[u(t)])},updateMarkup:function(t){var e=this._renderedChildren;h.unmountChildren(e,!1);for(var n in e)e.hasOwnProperty(n)&&l(\"118\");s(this,[a(t)])},updateChildren:function(t,e,n){this._updateChildren(t,e,n)},_updateChildren:function(t,e,n){var r=this._renderedChildren,i={},o=[],a=this._reconcilerUpdateChildren(r,t,o,i,e,n);if(a||r){var u,l=null,f=0,h=0,d=0,v=null;for(u in a)if(a.hasOwnProperty(u)){var g=r&&r[u],m=a[u];g===m?(l=c(l,this.moveChild(g,v,f,h)),h=Math.max(g._mountIndex,h),g._mountIndex=f):(g&&(h=Math.max(g._mountIndex,h)),l=c(l,this._mountChildAtIndex(m,o[d],v,f,e,n)),d++),f++,v=p.getHostNode(m)}for(u in i)i.hasOwnProperty(u)&&(l=c(l,this._unmountChild(r[u],i[u])));l&&s(this,l),this._renderedChildren=a}},unmountChildren:function(t){var e=this._renderedChildren;h.unmountChildren(e,t),this._renderedChildren=null},moveChild:function(t,e,n,r){if(t._mountIndex<r)return i(t,e,n)},createChild:function(t,e,n){return r(n,e,t._mountIndex)},removeChild:function(t,e){return o(t,e)},_mountChildAtIndex:function(t,e,n,r,i,o){return t._mountIndex=r,this.createChild(t,n,e)},_unmountChild:function(t,e){var n=this.removeChild(t,e);return t._mountIndex=null,n}}});t.exports=v},function(t,e,n){\"use strict\";function r(t){return!(!t||\"function\"!=typeof t.attachRef||\"function\"!=typeof t.detachRef)}var i=n(1),o=(n(0),{addComponentAsRefTo:function(t,e,n){r(n)||i(\"119\"),n.attachRef(e,t)},removeComponentAsRefFrom:function(t,e,n){r(n)||i(\"120\");var o=n.getPublicInstance();o&&o.refs[e]===t.getPublicInstance()&&n.detachRef(e)}});t.exports=o},function(t,e,n){\"use strict\";t.exports=\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\"},function(t,e,n){\"use strict\";function r(t){this.reinitializeTransaction(),this.renderToStaticMarkup=!1,this.reactMountReady=o.getPooled(null),this.useCreateElement=t}var i=n(3),o=n(159),a=n(18),u=n(53),c=n(166),s=(n(9),n(55)),l=n(89),f={initialize:c.getSelectionInformation,close:c.restoreSelection},p={initialize:function(){var t=u.isEnabled();return u.setEnabled(!1),t},close:function(t){u.setEnabled(t)}},h={initialize:function(){this.reactMountReady.reset()},close:function(){this.reactMountReady.notifyAll()}},d=[f,p,h],v={getTransactionWrappers:function(){return d},getReactMountReady:function(){return this.reactMountReady},getUpdateQueue:function(){return l},checkpoint:function(){return this.reactMountReady.checkpoint()},rollback:function(t){this.reactMountReady.rollback(t)},destructor:function(){o.release(this.reactMountReady),this.reactMountReady=null}};i(r.prototype,s,v),a.addPoolingTo(r),t.exports=r},function(t,e,n){\"use strict\";function r(t,e,n){\"function\"==typeof t?t(e.getPublicInstance()):o.addComponentAsRefTo(e,t,n)}function i(t,e,n){\"function\"==typeof t?t(null):o.removeComponentAsRefFrom(e,t,n)}var o=n(379),a={};a.attachRefs=function(t,e){if(null!==e&&\"object\"==typeof e){var n=e.ref;null!=n&&r(n,t,e._owner)}},a.shouldUpdateRefs=function(t,e){var n=null,r=null;null!==t&&\"object\"==typeof t&&(n=t.ref,r=t._owner);var i=null,o=null;return null!==e&&\"object\"==typeof e&&(i=e.ref,o=e._owner),n!==i||\"string\"==typeof i&&o!==r},a.detachRefs=function(t,e){if(null!==e&&\"object\"==typeof e){var n=e.ref;null!=n&&i(n,t,e._owner)}},t.exports=a},function(t,e,n){\"use strict\";function r(t){this.reinitializeTransaction(),this.renderToStaticMarkup=t,this.useCreateElement=!1,this.updateQueue=new u(this)}var i=n(3),o=n(18),a=n(55),u=(n(9),n(384)),c=[],s={enqueue:function(){}},l={getTransactionWrappers:function(){return c},getReactMountReady:function(){return s},getUpdateQueue:function(){return this.updateQueue},destructor:function(){},checkpoint:function(){},rollback:function(){}};i(r.prototype,a,l),o.addPoolingTo(r),t.exports=r},function(t,e,n){\"use strict\";function r(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}var i=n(89),o=(n(2),function(){function t(e){r(this,t),this.transaction=e}return t.prototype.isMounted=function(t){return!1},t.prototype.enqueueCallback=function(t,e,n){this.transaction.isInTransaction()&&i.enqueueCallback(t,e,n)},t.prototype.enqueueForceUpdate=function(t){this.transaction.isInTransaction()&&i.enqueueForceUpdate(t)},t.prototype.enqueueReplaceState=function(t,e){this.transaction.isInTransaction()&&i.enqueueReplaceState(t,e)},t.prototype.enqueueSetState=function(t,e){this.transaction.isInTransaction()&&i.enqueueSetState(t,e)},t}());t.exports=o},function(t,e,n){\"use strict\";t.exports=\"15.6.2\"},function(t,e,n){\"use strict\";var r={xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\"},i={accentHeight:\"accent-height\",accumulate:0,additive:0,alignmentBaseline:\"alignment-baseline\",allowReorder:\"allowReorder\",alphabetic:0,amplitude:0,arabicForm:\"arabic-form\",ascent:0,attributeName:\"attributeName\",attributeType:\"attributeType\",autoReverse:\"autoReverse\",azimuth:0,baseFrequency:\"baseFrequency\",baseProfile:\"baseProfile\",baselineShift:\"baseline-shift\",bbox:0,begin:0,bias:0,by:0,calcMode:\"calcMode\",capHeight:\"cap-height\",clip:0,clipPath:\"clip-path\",clipRule:\"clip-rule\",clipPathUnits:\"clipPathUnits\",colorInterpolation:\"color-interpolation\",colorInterpolationFilters:\"color-interpolation-filters\",colorProfile:\"color-profile\",colorRendering:\"color-rendering\",contentScriptType:\"contentScriptType\",contentStyleType:\"contentStyleType\",cursor:0,cx:0,cy:0,d:0,decelerate:0,descent:0,diffuseConstant:\"diffuseConstant\",direction:0,display:0,divisor:0,dominantBaseline:\"dominant-baseline\",dur:0,dx:0,dy:0,edgeMode:\"edgeMode\",elevation:0,enableBackground:\"enable-background\",end:0,exponent:0,externalResourcesRequired:\"externalResourcesRequired\",fill:0,fillOpacity:\"fill-opacity\",fillRule:\"fill-rule\",filter:0,filterRes:\"filterRes\",filterUnits:\"filterUnits\",floodColor:\"flood-color\",floodOpacity:\"flood-opacity\",focusable:0,fontFamily:\"font-family\",fontSize:\"font-size\",fontSizeAdjust:\"font-size-adjust\",fontStretch:\"font-stretch\",fontStyle:\"font-style\",fontVariant:\"font-variant\",fontWeight:\"font-weight\",format:0,from:0,fx:0,fy:0,g1:0,g2:0,glyphName:\"glyph-name\",glyphOrientationHorizontal:\"glyph-orientation-horizontal\",glyphOrientationVertical:\"glyph-orientation-vertical\",glyphRef:\"glyphRef\",gradientTransform:\"gradientTransform\",gradientUnits:\"gradientUnits\",hanging:0,horizAdvX:\"horiz-adv-x\",horizOriginX:\"horiz-origin-x\",ideographic:0,imageRendering:\"image-rendering\",in:0,in2:0,intercept:0,k:0,k1:0,k2:0,k3:0,k4:0,kernelMatrix:\"kernelMatrix\",kernelUnitLength:\"kernelUnitLength\",kerning:0,keyPoints:\"keyPoints\",keySplines:\"keySplines\",keyTimes:\"keyTimes\",lengthAdjust:\"lengthAdjust\",letterSpacing:\"letter-spacing\",lightingColor:\"lighting-color\",limitingConeAngle:\"limitingConeAngle\",local:0,markerEnd:\"marker-end\",markerMid:\"marker-mid\",markerStart:\"marker-start\",markerHeight:\"markerHeight\",markerUnits:\"markerUnits\",markerWidth:\"markerWidth\",mask:0,maskContentUnits:\"maskContentUnits\",maskUnits:\"maskUnits\",mathematical:0,mode:0,numOctaves:\"numOctaves\",offset:0,opacity:0,operator:0,order:0,orient:0,orientation:0,origin:0,overflow:0,overlinePosition:\"overline-position\",overlineThickness:\"overline-thickness\",paintOrder:\"paint-order\",panose1:\"panose-1\",pathLength:\"pathLength\",patternContentUnits:\"patternContentUnits\",patternTransform:\"patternTransform\",patternUnits:\"patternUnits\",pointerEvents:\"pointer-events\",points:0,pointsAtX:\"pointsAtX\",pointsAtY:\"pointsAtY\",pointsAtZ:\"pointsAtZ\",preserveAlpha:\"preserveAlpha\",preserveAspectRatio:\"preserveAspectRatio\",primitiveUnits:\"primitiveUnits\",r:0,radius:0,refX:\"refX\",refY:\"refY\",renderingIntent:\"rendering-intent\",repeatCount:\"repeatCount\",repeatDur:\"repeatDur\",requiredExtensions:\"requiredExtensions\",requiredFeatures:\"requiredFeatures\",restart:0,result:0,rotate:0,rx:0,ry:0,scale:0,seed:0,shapeRendering:\"shape-rendering\",slope:0,spacing:0,specularConstant:\"specularConstant\",specularExponent:\"specularExponent\",speed:0,spreadMethod:\"spreadMethod\",startOffset:\"startOffset\",stdDeviation:\"stdDeviation\",stemh:0,stemv:0,stitchTiles:\"stitchTiles\",stopColor:\"stop-color\",stopOpacity:\"stop-opacity\",strikethroughPosition:\"strikethrough-position\",strikethroughThickness:\"strikethrough-thickness\",string:0,stroke:0,strokeDasharray:\"stroke-dasharray\",strokeDashoffset:\"stroke-dashoffset\",strokeLinecap:\"stroke-linecap\",strokeLinejoin:\"stroke-linejoin\",strokeMiterlimit:\"stroke-miterlimit\",strokeOpacity:\"stroke-opacity\",strokeWidth:\"stroke-width\",surfaceScale:\"surfaceScale\",systemLanguage:\"systemLanguage\",tableValues:\"tableValues\",targetX:\"targetX\",targetY:\"targetY\",textAnchor:\"text-anchor\",textDecoration:\"text-decoration\",textRendering:\"text-rendering\",textLength:\"textLength\",to:0,transform:0,u1:0,u2:0,underlinePosition:\"underline-position\",underlineThickness:\"underline-thickness\",unicode:0,unicodeBidi:\"unicode-bidi\",unicodeRange:\"unicode-range\",unitsPerEm:\"units-per-em\",vAlphabetic:\"v-alphabetic\",vHanging:\"v-hanging\",vIdeographic:\"v-ideographic\",vMathematical:\"v-mathematical\",values:0,vectorEffect:\"vector-effect\",version:0,vertAdvY:\"vert-adv-y\",vertOriginX:\"vert-origin-x\",vertOriginY:\"vert-origin-y\",viewBox:\"viewBox\",viewTarget:\"viewTarget\",visibility:0,widths:0,wordSpacing:\"word-spacing\",writingMode:\"writing-mode\",x:0,xHeight:\"x-height\",x1:0,x2:0,xChannelSelector:\"xChannelSelector\",xlinkActuate:\"xlink:actuate\",xlinkArcrole:\"xlink:arcrole\",xlinkHref:\"xlink:href\",xlinkRole:\"xlink:role\",xlinkShow:\"xlink:show\",xlinkTitle:\"xlink:title\",xlinkType:\"xlink:type\",xmlBase:\"xml:base\",xmlns:0,xmlnsXlink:\"xmlns:xlink\",xmlLang:\"xml:lang\",xmlSpace:\"xml:space\",y:0,y1:0,y2:0,yChannelSelector:\"yChannelSelector\",z:0,zoomAndPan:\"zoomAndPan\"},o={Properties:{},DOMAttributeNamespaces:{xlinkActuate:r.xlink,xlinkArcrole:r.xlink,xlinkHref:r.xlink,xlinkRole:r.xlink,xlinkShow:r.xlink,xlinkTitle:r.xlink,xlinkType:r.xlink,xmlBase:r.xml,xmlLang:r.xml,xmlSpace:r.xml},DOMAttributeNames:{}};Object.keys(i).forEach(function(t){o.Properties[t]=0,i[t]&&(o.DOMAttributeNames[t]=i[t])}),t.exports=o},function(t,e,n){\"use strict\";function r(t){if(\"selectionStart\"in t&&c.hasSelectionCapabilities(t))return{start:t.selectionStart,end:t.selectionEnd};if(window.getSelection){var e=window.getSelection();return{anchorNode:e.anchorNode,anchorOffset:e.anchorOffset,focusNode:e.focusNode,focusOffset:e.focusOffset}}if(document.selection){var n=document.selection.createRange();return{parentElement:n.parentElement(),text:n.text,top:n.boundingTop,left:n.boundingLeft}}}function i(t,e){if(y||null==v||v!==l())return null;var n=r(v);if(!m||!p(m,n)){m=n;var i=s.getPooled(d.select,g,t,e);return i.type=\"select\",i.target=v,o.accumulateTwoPhaseDispatches(i),i}return null}var o=n(23),a=n(6),u=n(4),c=n(166),s=n(14),l=n(155),f=n(175),p=n(81),h=a.canUseDOM&&\"documentMode\"in document&&document.documentMode<=11,d={select:{phasedRegistrationNames:{bubbled:\"onSelect\",captured:\"onSelectCapture\"},dependencies:[\"topBlur\",\"topContextMenu\",\"topFocus\",\"topKeyDown\",\"topKeyUp\",\"topMouseDown\",\"topMouseUp\",\"topSelectionChange\"]}},v=null,g=null,m=null,y=!1,_=!1,b={eventTypes:d,extractEvents:function(t,e,n,r){if(!_)return null;var o=e?u.getNodeFromInstance(e):window;switch(t){case\"topFocus\":(f(o)||\"true\"===o.contentEditable)&&(v=o,g=e,m=null);break;case\"topBlur\":v=null,g=null,m=null;break;case\"topMouseDown\":y=!0;break;case\"topContextMenu\":case\"topMouseUp\":return y=!1,i(n,r);case\"topSelectionChange\":if(h)break;case\"topKeyDown\":case\"topKeyUp\":return i(n,r)}return null},didPutListener:function(t,e,n){\"onSelect\"===e&&(_=!0)}};t.exports=b},function(t,e,n){\"use strict\";function r(t){return\".\"+t._rootNodeID}function i(t){return\"button\"===t||\"input\"===t||\"select\"===t||\"textarea\"===t}var o=n(1),a=n(153),u=n(23),c=n(4),s=n(389),l=n(390),f=n(14),p=n(393),h=n(395),d=n(54),v=n(392),g=n(396),m=n(397),y=n(25),_=n(398),b=n(11),x=n(92),w=(n(0),{}),C={};[\"abort\",\"animationEnd\",\"animationIteration\",\"animationStart\",\"blur\",\"canPlay\",\"canPlayThrough\",\"click\",\"contextMenu\",\"copy\",\"cut\",\"doubleClick\",\"drag\",\"dragEnd\",\"dragEnter\",\"dragExit\",\"dragLeave\",\"dragOver\",\"dragStart\",\"drop\",\"durationChange\",\"emptied\",\"encrypted\",\"ended\",\"error\",\"focus\",\"input\",\"invalid\",\"keyDown\",\"keyPress\",\"keyUp\",\"load\",\"loadedData\",\"loadedMetadata\",\"loadStart\",\"mouseDown\",\"mouseMove\",\"mouseOut\",\"mouseOver\",\"mouseUp\",\"paste\",\"pause\",\"play\",\"playing\",\"progress\",\"rateChange\",\"reset\",\"scroll\",\"seeked\",\"seeking\",\"stalled\",\"submit\",\"suspend\",\"timeUpdate\",\"touchCancel\",\"touchEnd\",\"touchMove\",\"touchStart\",\"transitionEnd\",\"volumeChange\",\"waiting\",\"wheel\"].forEach(function(t){var e=t[0].toUpperCase()+t.slice(1),n=\"on\"+e,r=\"top\"+e,i={phasedRegistrationNames:{bubbled:n,captured:n+\"Capture\"},dependencies:[r]};w[t]=i,C[r]=i});var k={},E={eventTypes:w,extractEvents:function(t,e,n,r){var i=C[t];if(!i)return null;var a;switch(t){case\"topAbort\":case\"topCanPlay\":case\"topCanPlayThrough\":case\"topDurationChange\":case\"topEmptied\":case\"topEncrypted\":case\"topEnded\":case\"topError\":case\"topInput\":case\"topInvalid\":case\"topLoad\":case\"topLoadedData\":case\"topLoadedMetadata\":case\"topLoadStart\":case\"topPause\":case\"topPlay\":case\"topPlaying\":case\"topProgress\":case\"topRateChange\":case\"topReset\":case\"topSeeked\":case\"topSeeking\":case\"topStalled\":case\"topSubmit\":case\"topSuspend\":case\"topTimeUpdate\":case\"topVolumeChange\":case\"topWaiting\":a=f;break;case\"topKeyPress\":if(0===x(n))return null;case\"topKeyDown\":case\"topKeyUp\":a=h;break;case\"topBlur\":case\"topFocus\":a=p;break;case\"topClick\":if(2===n.button)return null;case\"topDoubleClick\":case\"topMouseDown\":case\"topMouseMove\":case\"topMouseUp\":case\"topMouseOut\":case\"topMouseOver\":case\"topContextMenu\":a=d;break;case\"topDrag\":case\"topDragEnd\":case\"topDragEnter\":case\"topDragExit\":case\"topDragLeave\":case\"topDragOver\":case\"topDragStart\":case\"topDrop\":a=v;break;case\"topTouchCancel\":case\"topTouchEnd\":case\"topTouchMove\":case\"topTouchStart\":a=g;break;case\"topAnimationEnd\":case\"topAnimationIteration\":case\"topAnimationStart\":a=s;break;case\"topTransitionEnd\":a=m;break;case\"topScroll\":a=y;break;case\"topWheel\":a=_;break;case\"topCopy\":case\"topCut\":case\"topPaste\":a=l}a||o(\"86\",t);var c=a.getPooled(i,e,n,r);return u.accumulateTwoPhaseDispatches(c),c},didPutListener:function(t,e,n){if(\"onClick\"===e&&!i(t._tag)){var o=r(t),u=c.getNodeFromInstance(t);k[o]||(k[o]=a.listen(u,\"click\",b))}},willDeleteListener:function(t,e){if(\"onClick\"===e&&!i(t._tag)){var n=r(t);k[n].remove(),delete k[n]}}};t.exports=E},function(t,e,n){\"use strict\";function r(t,e,n,r){return i.call(this,t,e,n,r)}var i=n(14),o={animationName:null,elapsedTime:null,pseudoElement:null};i.augmentClass(r,o),t.exports=r},function(t,e,n){\"use strict\";function r(t,e,n,r){return i.call(this,t,e,n,r)}var i=n(14),o={clipboardData:function(t){return\"clipboardData\"in t?t.clipboardData:window.clipboardData}};i.augmentClass(r,o),t.exports=r},function(t,e,n){\"use strict\";function r(t,e,n,r){return i.call(this,t,e,n,r)}var i=n(14),o={data:null};i.augmentClass(r,o),t.exports=r},function(t,e,n){\"use strict\";function r(t,e,n,r){return i.call(this,t,e,n,r)}var i=n(54),o={dataTransfer:null};i.augmentClass(r,o),t.exports=r},function(t,e,n){\"use strict\";function r(t,e,n,r){return i.call(this,t,e,n,r)}var i=n(25),o={relatedTarget:null};i.augmentClass(r,o),t.exports=r},function(t,e,n){\"use strict\";function r(t,e,n,r){return i.call(this,t,e,n,r)}var i=n(14),o={data:null};i.augmentClass(r,o),t.exports=r},function(t,e,n){\"use strict\";function r(t,e,n,r){return i.call(this,t,e,n,r)}var i=n(25),o=n(92),a=n(403),u=n(93),c={key:a,location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:u,charCode:function(t){return\"keypress\"===t.type?o(t):0},keyCode:function(t){return\"keydown\"===t.type||\"keyup\"===t.type?t.keyCode:0},which:function(t){return\"keypress\"===t.type?o(t):\"keydown\"===t.type||\"keyup\"===t.type?t.keyCode:0}};i.augmentClass(r,c),t.exports=r},function(t,e,n){\"use strict\";function r(t,e,n,r){return i.call(this,t,e,n,r)}var i=n(25),o=n(93),a={touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:o};i.augmentClass(r,a),t.exports=r},function(t,e,n){\"use strict\";function r(t,e,n,r){return i.call(this,t,e,n,r)}var i=n(14),o={propertyName:null,elapsedTime:null,pseudoElement:null};i.augmentClass(r,o),t.exports=r},function(t,e,n){\"use strict\";function r(t,e,n,r){return i.call(this,t,e,n,r)}var i=n(54),o={deltaX:function(t){return\"deltaX\"in t?t.deltaX:\"wheelDeltaX\"in t?-t.wheelDeltaX:0},deltaY:function(t){return\"deltaY\"in t?t.deltaY:\"wheelDeltaY\"in t?-t.wheelDeltaY:\"wheelDelta\"in t?-t.wheelDelta:0},deltaZ:null,deltaMode:null};i.augmentClass(r,o),t.exports=r},function(t,e,n){\"use strict\";function r(t){for(var e=1,n=0,r=0,o=t.length,a=-4&o;r<a;){for(var u=Math.min(r+4096,a);r<u;r+=4)n+=(e+=t.charCodeAt(r))+(e+=t.charCodeAt(r+1))+(e+=t.charCodeAt(r+2))+(e+=t.charCodeAt(r+3));e%=i,n%=i}for(;r<o;r++)n+=e+=t.charCodeAt(r);return e%=i,n%=i,e|n<<16}var i=65521;t.exports=r},function(t,e,n){\"use strict\";function r(t,e,n,r){if(null==e||\"boolean\"==typeof e||\"\"===e)return\"\";var i=isNaN(e);if(r||i||0===e||o.hasOwnProperty(t)&&o[t])return\"\"+e;if(\"string\"==typeof e){e=e.trim()}return e+\"px\"}var i=n(158),o=(n(2),i.isUnitlessNumber);t.exports=r},function(t,e,n){\"use strict\";function r(t){if(null==t)return null;if(1===t.nodeType)return t;var e=a.get(t);if(e)return e=u(e),e?o.getNodeFromInstance(e):null;\"function\"==typeof t.render?i(\"44\"):i(\"45\",Object.keys(t))}var i=n(1),o=(n(15),n(4)),a=n(39),u=n(171);n(0),n(2);t.exports=r},function(t,e,n){\"use strict\";(function(e){function r(t,e,n,r){if(t&&\"object\"==typeof t){var i=t,o=void 0===i[n];o&&null!=e&&(i[n]=e)}}function i(t,e){if(null==t)return t;var n={};return o(t,r,n),n}var o=(n(85),n(177));n(2);void 0!==e&&e.env,t.exports=i}).call(e,n(156))},function(t,e,n){\"use strict\";function r(t){if(t.key){var e=o[t.key]||t.key;if(\"Unidentified\"!==e)return e}if(\"keypress\"===t.type){var n=i(t);return 13===n?\"Enter\":String.fromCharCode(n)}return\"keydown\"===t.type||\"keyup\"===t.type?a[t.keyCode]||\"Unidentified\":\"\"}var i=n(92),o={Esc:\"Escape\",Spacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},a={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\"};t.exports=r},function(t,e,n){\"use strict\";function r(t){var e=t&&(i&&t[i]||t[o]);if(\"function\"==typeof e)return e}var i=\"function\"==typeof Symbol&&Symbol.iterator,o=\"@@iterator\";t.exports=r},function(t,e,n){\"use strict\";function r(t){for(;t&&t.firstChild;)t=t.firstChild;return t}function i(t){for(;t;){if(t.nextSibling)return t.nextSibling;t=t.parentNode}}function o(t,e){for(var n=r(t),o=0,a=0;n;){if(3===n.nodeType){if(a=o+n.textContent.length,o<=e&&a>=e)return{node:n,offset:e-o};o=a}n=r(i(n))}}t.exports=o},function(t,e,n){\"use strict\";function r(t,e){var n={};return n[t.toLowerCase()]=e.toLowerCase(),n[\"Webkit\"+t]=\"webkit\"+e,n[\"Moz\"+t]=\"moz\"+e,n[\"ms\"+t]=\"MS\"+e,n[\"O\"+t]=\"o\"+e.toLowerCase(),n}function i(t){if(u[t])return u[t];if(!a[t])return t;var e=a[t];for(var n in e)if(e.hasOwnProperty(n)&&n in c)return u[t]=e[n];return\"\"}var o=n(6),a={animationend:r(\"Animation\",\"AnimationEnd\"),animationiteration:r(\"Animation\",\"AnimationIteration\"),animationstart:r(\"Animation\",\"AnimationStart\"),transitionend:r(\"Transition\",\"TransitionEnd\")},u={},c={};o.canUseDOM&&(c=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete a.animationend.animation,delete a.animationiteration.animation,delete a.animationstart.animation),\"TransitionEvent\"in window||delete a.transitionend.transition),t.exports=i},function(t,e,n){\"use strict\";function r(t){return'\"'+i(t)+'\"'}var i=n(56);t.exports=r},function(t,e,n){\"use strict\";var r=n(167);t.exports=r.renderSubtreeIntoContainer},function(t,e,n){\"use strict\";function r(t,e){var n=l.extractSingleTouch(e);return n?n[t.page]:t.page in e?e[t.page]:e[t.client]+f[t.envScroll]}function i(t,e){var n=r(b.x,e),i=r(b.y,e);return Math.pow(Math.pow(n-t.x,2)+Math.pow(i-t.y,2),.5)}function o(t){return{tapMoveThreshold:g,ignoreMouseThreshold:m,eventTypes:C,extractEvents:function(e,n,o,a){if(!h(e)&&!d(e))return null;if(v(e))_=k();else if(t(_,k()))return null;var u=null,l=i(y,o);return d(e)&&l<g&&(u=s.getPooled(C.touchTap,n,o,a)),h(e)?(y.x=r(b.x,o),y.y=r(b.y,o)):d(e)&&(y.x=0,y.y=0),c.accumulateTwoPhaseDispatches(u),u}}}var a=n(353),u=n(52),c=n(23),s=n(25),l=n(410),f=n(90),p=n(340),h=(a.topLevelTypes,u.isStartish),d=u.isEndish,v=function(t){return[\"topTouchCancel\",\"topTouchEnd\",\"topTouchStart\",\"topTouchMove\"].indexOf(t)>=0},g=10,m=750,y={x:null,y:null},_=null,b={x:{page:\"pageX\",client:\"clientX\",envScroll:\"currentPageScrollLeft\"},y:{page:\"pageY\",client:\"clientY\",envScroll:\"currentPageScrollTop\"}},x=[\"topTouchStart\",\"topTouchCancel\",\"topTouchEnd\",\"topTouchMove\"],w=[\"topMouseDown\",\"topMouseMove\",\"topMouseUp\"].concat(x),C={touchTap:{phasedRegistrationNames:{bubbled:p({onTouchTap:null}),captured:p({onTouchTapCapture:null})},dependencies:w}},k=function(){return Date.now?Date.now:function(){return+new Date}}();t.exports=o},function(t,e){var n={extractSingleTouch:function(t){var e=t.touches,n=t.changedTouches,r=e&&e.length>0,i=n&&n.length>0;return!r&&i?n[0]:r?e[0]:t}};t.exports=n},function(t,e){t.exports=function(t,e){if(t&&e-t<750)return!0}},function(t,e,n){\"use strict\";function r(t){var e={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+(\"\"+t).replace(/[=:]/g,function(t){return e[t]})}function i(t){var e=/(=0|=2)/g,n={\"=0\":\"=\",\"=2\":\":\"};return(\"\"+(\".\"===t[0]&&\"$\"===t[1]?t.substring(2):t.substring(1))).replace(e,function(t){return n[t]})}var o={escape:r,unescape:i};t.exports=o},function(t,e,n){\"use strict\";var r=n(40),i=(n(0),function(t){var e=this;if(e.instancePool.length){var n=e.instancePool.pop();return e.call(n,t),n}return new e(t)}),o=function(t,e){var n=this;if(n.instancePool.length){var r=n.instancePool.pop();return n.call(r,t,e),r}return new n(t,e)},a=function(t,e,n){var r=this;if(r.instancePool.length){var i=r.instancePool.pop();return r.call(i,t,e,n),i}return new r(t,e,n)},u=function(t,e,n,r){var i=this;if(i.instancePool.length){var o=i.instancePool.pop();return i.call(o,t,e,n,r),o}return new i(t,e,n,r)},c=function(t){var e=this;t instanceof e||r(\"25\"),t.destructor(),e.instancePool.length<e.poolSize&&e.instancePool.push(t)},s=i,l=function(t,e){var n=t;return n.instancePool=[],n.getPooled=e||s,n.poolSize||(n.poolSize=10),n.release=c,n},f={addPoolingTo:l,oneArgumentPooler:i,twoArgumentPooler:o,threeArgumentPooler:a,fourArgumentPooler:u};t.exports=f},function(t,e,n){\"use strict\";function r(t){return(\"\"+t).replace(b,\"$&/\")}function i(t,e){this.func=t,this.context=e,this.count=0}function o(t,e,n){var r=t.func,i=t.context;r.call(i,e,t.count++)}function a(t,e,n){if(null==t)return t;var r=i.getPooled(e,n);m(t,o,r),i.release(r)}function u(t,e,n,r){this.result=t,this.keyPrefix=e,this.func=n,this.context=r,this.count=0}function c(t,e,n){var i=t.result,o=t.keyPrefix,a=t.func,u=t.context,c=a.call(u,e,t.count++);Array.isArray(c)?s(c,i,n,g.thatReturnsArgument):null!=c&&(v.isValidElement(c)&&(c=v.cloneAndReplaceKey(c,o+(!c.key||e&&e.key===c.key?\"\":r(c.key)+\"/\")+n)),i.push(c))}function s(t,e,n,i,o){var a=\"\";null!=n&&(a=r(n)+\"/\");var s=u.getPooled(e,a,i,o);m(t,c,s),u.release(s)}function l(t,e,n){if(null==t)return t;var r=[];return s(t,r,null,e,n),r}function f(t,e,n){return null}function p(t,e){return m(t,f,null)}function h(t){var e=[];return s(t,e,null,g.thatReturnsArgument),e}var d=n(413),v=n(27),g=n(11),m=n(423),y=d.twoArgumentPooler,_=d.fourArgumentPooler,b=/\\/+/g;i.prototype.destructor=function(){this.func=null,this.context=null,this.count=0},d.addPoolingTo(i,y),u.prototype.destructor=function(){this.result=null,this.keyPrefix=null,this.func=null,this.context=null,this.count=0},d.addPoolingTo(u,_);var x={forEach:a,map:l,mapIntoWithKeyPrefixInternal:s,count:p,toArray:h};t.exports=x},function(t,e,n){\"use strict\";var r=n(27),i=r.createFactory,o={a:i(\"a\"),abbr:i(\"abbr\"),address:i(\"address\"),area:i(\"area\"),article:i(\"article\"),aside:i(\"aside\"),audio:i(\"audio\"),b:i(\"b\"),base:i(\"base\"),bdi:i(\"bdi\"),bdo:i(\"bdo\"),big:i(\"big\"),blockquote:i(\"blockquote\"),body:i(\"body\"),br:i(\"br\"),button:i(\"button\"),canvas:i(\"canvas\"),caption:i(\"caption\"),cite:i(\"cite\"),code:i(\"code\"),col:i(\"col\"),colgroup:i(\"colgroup\"),data:i(\"data\"),datalist:i(\"datalist\"),dd:i(\"dd\"),del:i(\"del\"),details:i(\"details\"),dfn:i(\"dfn\"),dialog:i(\"dialog\"),div:i(\"div\"),dl:i(\"dl\"),dt:i(\"dt\"),em:i(\"em\"),embed:i(\"embed\"),fieldset:i(\"fieldset\"),figcaption:i(\"figcaption\"),figure:i(\"figure\"),footer:i(\"footer\"),form:i(\"form\"),h1:i(\"h1\"),h2:i(\"h2\"),h3:i(\"h3\"),h4:i(\"h4\"),h5:i(\"h5\"),h6:i(\"h6\"),head:i(\"head\"),header:i(\"header\"),hgroup:i(\"hgroup\"),hr:i(\"hr\"),html:i(\"html\"),i:i(\"i\"),iframe:i(\"iframe\"),img:i(\"img\"),input:i(\"input\"),ins:i(\"ins\"),kbd:i(\"kbd\"),keygen:i(\"keygen\"),label:i(\"label\"),legend:i(\"legend\"),li:i(\"li\"),link:i(\"link\"),main:i(\"main\"),map:i(\"map\"),mark:i(\"mark\"),menu:i(\"menu\"),menuitem:i(\"menuitem\"),meta:i(\"meta\"),meter:i(\"meter\"),nav:i(\"nav\"),noscript:i(\"noscript\"),object:i(\"object\"),ol:i(\"ol\"),optgroup:i(\"optgroup\"),option:i(\"option\"),output:i(\"output\"),p:i(\"p\"),param:i(\"param\"),picture:i(\"picture\"),pre:i(\"pre\"),progress:i(\"progress\"),q:i(\"q\"),rp:i(\"rp\"),rt:i(\"rt\"),ruby:i(\"ruby\"),s:i(\"s\"),samp:i(\"samp\"),script:i(\"script\"),section:i(\"section\"),select:i(\"select\"),small:i(\"small\"),source:i(\"source\"),span:i(\"span\"),strong:i(\"strong\"),style:i(\"style\"),sub:i(\"sub\"),summary:i(\"summary\"),sup:i(\"sup\"),table:i(\"table\"),tbody:i(\"tbody\"),td:i(\"td\"),textarea:i(\"textarea\"),tfoot:i(\"tfoot\"),th:i(\"th\"),thead:i(\"thead\"),time:i(\"time\"),title:i(\"title\"),tr:i(\"tr\"),track:i(\"track\"),u:i(\"u\"),ul:i(\"ul\"),var:i(\"var\"),video:i(\"video\"),wbr:i(\"wbr\"),circle:i(\"circle\"),clipPath:i(\"clipPath\"),defs:i(\"defs\"),ellipse:i(\"ellipse\"),g:i(\"g\"),image:i(\"image\"),line:i(\"line\"),linearGradient:i(\"linearGradient\"),mask:i(\"mask\"),path:i(\"path\"),pattern:i(\"pattern\"),polygon:i(\"polygon\"),polyline:i(\"polyline\"),radialGradient:i(\"radialGradient\"),rect:i(\"rect\"),stop:i(\"stop\"),svg:i(\"svg\"),text:i(\"text\"),tspan:i(\"tspan\")};t.exports=o},function(t,e,n){\"use strict\";var r=n(27),i=r.isValidElement,o=n(157);t.exports=o(i)},function(t,e,n){\"use strict\";t.exports=\"15.6.2\"},function(t,e,n){\"use strict\";var r=n(178),i=r.Component,o=n(27),a=o.isValidElement,u=n(181),c=n(191);t.exports=c(i,a,u)},function(t,e,n){\"use strict\";function r(t){var e=t&&(i&&t[i]||t[o]);if(\"function\"==typeof e)return e}var i=\"function\"==typeof Symbol&&Symbol.iterator,o=\"@@iterator\";t.exports=r},function(t,e,n){\"use strict\";function r(){return i++}var i=1;t.exports=r},function(t,e,n){\"use strict\";var r=function(){};t.exports=r},function(t,e,n){\"use strict\";function r(t){return o.isValidElement(t)||i(\"143\"),t}var i=n(40),o=n(27);n(0);t.exports=r},function(t,e,n){\"use strict\";function r(t,e){return t&&\"object\"==typeof t&&null!=t.key?s.escape(t.key):e.toString(36)}function i(t,e,n,o){var p=typeof t;if(\"undefined\"!==p&&\"boolean\"!==p||(t=null),null===t||\"string\"===p||\"number\"===p||\"object\"===p&&t.$$typeof===u)return n(o,t,\"\"===e?l+r(t,0):e),1;var h,d,v=0,g=\"\"===e?l:e+f;if(Array.isArray(t))for(var m=0;m<t.length;m++)h=t[m],d=g+r(h,m),v+=i(h,d,n,o);else{var y=c(t);if(y){var _,b=y.call(t);if(y!==t.entries)for(var x=0;!(_=b.next()).done;)h=_.value,d=g+r(h,x++),v+=i(h,d,n,o);else for(;!(_=b.next()).done;){var w=_.value;w&&(h=w[1],d=g+s.escape(w[0])+f+r(h,0),v+=i(h,d,n,o))}}else if(\"object\"===p){var C=\"\",k=String(t);a(\"31\",\"[object Object]\"===k?\"object with keys {\"+Object.keys(t).join(\", \")+\"}\":k,C)}}return v}function o(t,e,n){return null==t?0:i(t,\"\",e,n)}var a=n(40),u=(n(15),n(180)),c=n(419),s=(n(0),n(412)),l=(n(2),\".\"),f=\":\";t.exports=o}]);</script>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import shap\n",
    "shap.initjs()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Train Model without Dense Features"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "metadata": {},
   "outputs": [],
   "source": [
    "def build_shap_model( num_features):\n",
    "    model = tf.keras.Sequential([\n",
    "    tf.keras.layers.Dense(64, activation='relu', input_shape=[num_features]),\n",
    "    tf.keras.layers.Dense(64, activation='relu'),\n",
    "    tf.keras.layers.Dense(1)\n",
    "    ])\n",
    "\n",
    "    optimizer = tf.keras.optimizers.RMSprop(0.001)\n",
    "\n",
    "    model.compile(loss='mse',\n",
    "                optimizer=optimizer,\n",
    "                metrics=['mae', 'mse'])\n",
    "    return model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "metadata": {},
   "outputs": [],
   "source": [
    "shap_num_features = len( numerical_feature_list)\n",
    "shap_feature_columns =  tf_numerical_feature_list\n",
    "#shap_feature_layer = tf.keras.layers.DenseFeatures(shap_feature_columns)\n",
    "shap_model = build_shap_model( shap_num_features)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train on 314 samples\n",
      "Epoch 1/1000\n",
      "314/314 [==============================] - 0s 1ms/sample - loss: 583.9959 - mae: 22.9326 - mse: 583.9960\n",
      "Epoch 2/1000\n",
      "314/314 [==============================] - 0s 57us/sample - loss: 535.7158 - mae: 21.8546 - mse: 535.7158\n",
      "Epoch 3/1000\n",
      "314/314 [==============================] - 0s 62us/sample - loss: 487.4761 - mae: 20.7324 - mse: 487.4761\n",
      "Epoch 4/1000\n",
      "314/314 [==============================] - 0s 57us/sample - loss: 433.8281 - mae: 19.4080 - mse: 433.8281\n",
      "Epoch 5/1000\n",
      "314/314 [==============================] - 0s 58us/sample - loss: 373.7382 - mae: 17.8423 - mse: 373.7382\n",
      "Epoch 6/1000\n",
      "314/314 [==============================] - 0s 57us/sample - loss: 308.9781 - mae: 15.9864 - mse: 308.9781\n",
      "Epoch 7/1000\n",
      "314/314 [==============================] - 0s 56us/sample - loss: 244.3900 - mae: 14.0646 - mse: 244.3900\n",
      "Epoch 8/1000\n",
      "314/314 [==============================] - 0s 57us/sample - loss: 183.3589 - mae: 12.0997 - mse: 183.3589\n",
      "Epoch 9/1000\n",
      "314/314 [==============================] - 0s 57us/sample - loss: 130.1076 - mae: 10.0379 - mse: 130.1077\n",
      "Epoch 10/1000\n",
      "314/314 [==============================] - 0s 58us/sample - loss: 88.8453 - mae: 8.1383 - mse: 88.8454\n",
      "Epoch 11/1000\n",
      "314/314 [==============================] - 0s 67us/sample - loss: 61.1359 - mae: 6.4886 - mse: 61.1359\n",
      "Epoch 12/1000\n",
      "314/314 [==============================] - 0s 59us/sample - loss: 46.9610 - mae: 5.4498 - mse: 46.9610\n",
      "Epoch 13/1000\n",
      "314/314 [==============================] - 0s 56us/sample - loss: 40.7491 - mae: 4.9472 - mse: 40.7491\n",
      "Epoch 14/1000\n",
      "314/314 [==============================] - 0s 59us/sample - loss: 36.3882 - mae: 4.6591 - mse: 36.3882\n",
      "Epoch 15/1000\n",
      "314/314 [==============================] - 0s 60us/sample - loss: 32.3769 - mae: 4.3938 - mse: 32.3769\n",
      "Epoch 16/1000\n",
      "314/314 [==============================] - ETA: 0s - loss: 25.6739 - mae: 4.1236 - mse: 25.673 - 0s 58us/sample - loss: 28.7494 - mae: 4.1113 - mse: 28.7494\n",
      "Epoch 17/1000\n",
      "314/314 [==============================] - 0s 59us/sample - loss: 25.5186 - mae: 3.9192 - mse: 25.5186\n",
      "Epoch 18/1000\n",
      "314/314 [==============================] - 0s 56us/sample - loss: 22.4260 - mae: 3.6503 - mse: 22.4260\n",
      "Epoch 19/1000\n",
      "314/314 [==============================] - 0s 57us/sample - loss: 20.1525 - mae: 3.4243 - mse: 20.1525\n",
      "Epoch 20/1000\n",
      "314/314 [==============================] - 0s 57us/sample - loss: 18.0679 - mae: 3.2722 - mse: 18.0679\n",
      "Epoch 21/1000\n",
      "314/314 [==============================] - 0s 56us/sample - loss: 16.4449 - mae: 3.1248 - mse: 16.4450\n",
      "Epoch 22/1000\n",
      "314/314 [==============================] - 0s 55us/sample - loss: 15.2274 - mae: 2.9795 - mse: 15.2274\n",
      "Epoch 23/1000\n",
      "314/314 [==============================] - 0s 57us/sample - loss: 14.0818 - mae: 2.8733 - mse: 14.0818\n",
      "Epoch 24/1000\n",
      "314/314 [==============================] - 0s 56us/sample - loss: 13.1804 - mae: 2.7693 - mse: 13.1804\n",
      "Epoch 25/1000\n",
      "314/314 [==============================] - 0s 56us/sample - loss: 12.5132 - mae: 2.6745 - mse: 12.5132\n",
      "Epoch 26/1000\n",
      "314/314 [==============================] - 0s 65us/sample - loss: 11.8062 - mae: 2.6014 - mse: 11.8062\n",
      "Epoch 27/1000\n",
      "314/314 [==============================] - 0s 54us/sample - loss: 11.3952 - mae: 2.5356 - mse: 11.3952\n",
      "Epoch 28/1000\n",
      "314/314 [==============================] - 0s 56us/sample - loss: 11.0135 - mae: 2.5058 - mse: 11.0135\n",
      "Epoch 29/1000\n",
      "314/314 [==============================] - 0s 55us/sample - loss: 10.5466 - mae: 2.4279 - mse: 10.5466\n",
      "Epoch 30/1000\n",
      "314/314 [==============================] - 0s 54us/sample - loss: 10.2533 - mae: 2.3836 - mse: 10.2533\n",
      "Epoch 31/1000\n",
      "314/314 [==============================] - 0s 55us/sample - loss: 9.9811 - mae: 2.3419 - mse: 9.9811\n",
      "Epoch 32/1000\n",
      "314/314 [==============================] - 0s 63us/sample - loss: 9.6811 - mae: 2.2968 - mse: 9.6811\n",
      "Epoch 33/1000\n",
      "314/314 [==============================] - 0s 56us/sample - loss: 9.5506 - mae: 2.2997 - mse: 9.5506\n",
      "Epoch 34/1000\n",
      "314/314 [==============================] - 0s 64us/sample - loss: 9.1293 - mae: 2.2197 - mse: 9.1293\n",
      "Epoch 35/1000\n",
      "314/314 [==============================] - 0s 55us/sample - loss: 9.4094 - mae: 2.2649 - mse: 9.4094\n",
      "Epoch 36/1000\n",
      "314/314 [==============================] - 0s 62us/sample - loss: 9.0601 - mae: 2.2059 - mse: 9.0601\n",
      "Epoch 37/1000\n",
      "314/314 [==============================] - 0s 64us/sample - loss: 8.7410 - mae: 2.1689 - mse: 8.7410\n",
      "Epoch 38/1000\n",
      "314/314 [==============================] - 0s 60us/sample - loss: 8.7695 - mae: 2.1735 - mse: 8.7695\n",
      "Epoch 39/1000\n",
      "314/314 [==============================] - 0s 56us/sample - loss: 8.4904 - mae: 2.1514 - mse: 8.4904\n",
      "Epoch 40/1000\n",
      "314/314 [==============================] - 0s 59us/sample - loss: 8.6032 - mae: 2.1546 - mse: 8.6032\n",
      "Epoch 41/1000\n",
      "314/314 [==============================] - 0s 57us/sample - loss: 8.3953 - mae: 2.1234 - mse: 8.3953\n",
      "Epoch 42/1000\n",
      "314/314 [==============================] - 0s 55us/sample - loss: 8.4455 - mae: 2.1295 - mse: 8.4455\n",
      "Epoch 43/1000\n",
      "314/314 [==============================] - 0s 57us/sample - loss: 8.3783 - mae: 2.1127 - mse: 8.3783\n",
      "Epoch 44/1000\n",
      "314/314 [==============================] - 0s 55us/sample - loss: 8.2581 - mae: 2.0840 - mse: 8.2582\n",
      "Epoch 45/1000\n",
      "314/314 [==============================] - 0s 63us/sample - loss: 8.1526 - mae: 2.0891 - mse: 8.1526\n",
      "Epoch 46/1000\n",
      "314/314 [==============================] - 0s 66us/sample - loss: 8.0769 - mae: 2.0710 - mse: 8.0769\n",
      "Epoch 47/1000\n",
      "314/314 [==============================] - 0s 60us/sample - loss: 7.9343 - mae: 2.0748 - mse: 7.9343\n",
      "Epoch 48/1000\n",
      "314/314 [==============================] - 0s 56us/sample - loss: 7.9564 - mae: 2.0374 - mse: 7.9564\n",
      "Epoch 49/1000\n",
      "314/314 [==============================] - 0s 57us/sample - loss: 7.8619 - mae: 2.0614 - mse: 7.8619\n",
      "Epoch 50/1000\n",
      "314/314 [==============================] - ETA: 0s - loss: 9.3458 - mae: 2.3700 - mse: 9.345 - 0s 56us/sample - loss: 7.6290 - mae: 2.0272 - mse: 7.6290\n",
      "Epoch 51/1000\n",
      "314/314 [==============================] - 0s 57us/sample - loss: 7.7290 - mae: 2.0406 - mse: 7.7290\n",
      "Epoch 52/1000\n",
      "314/314 [==============================] - 0s 57us/sample - loss: 7.8052 - mae: 2.0272 - mse: 7.8052\n",
      "Epoch 53/1000\n",
      "314/314 [==============================] - 0s 59us/sample - loss: 7.6580 - mae: 2.0258 - mse: 7.6580\n",
      "Epoch 54/1000\n",
      "314/314 [==============================] - 0s 62us/sample - loss: 7.7485 - mae: 2.0088 - mse: 7.7485\n",
      "Epoch 55/1000\n",
      "314/314 [==============================] - 0s 58us/sample - loss: 7.4744 - mae: 1.9804 - mse: 7.4744\n",
      "Epoch 56/1000\n",
      "314/314 [==============================] - 0s 57us/sample - loss: 7.4426 - mae: 1.9980 - mse: 7.4426\n",
      "Epoch 57/1000\n",
      "314/314 [==============================] - 0s 57us/sample - loss: 7.3071 - mae: 1.9490 - mse: 7.3071\n",
      "Epoch 58/1000\n",
      "314/314 [==============================] - 0s 57us/sample - loss: 7.5041 - mae: 2.0069 - mse: 7.5041\n",
      "Epoch 59/1000\n",
      "314/314 [==============================] - 0s 56us/sample - loss: 7.5007 - mae: 1.9827 - mse: 7.5007\n",
      "Epoch 60/1000\n",
      "314/314 [==============================] - 0s 62us/sample - loss: 7.3636 - mae: 1.9668 - mse: 7.3636\n",
      "Epoch 61/1000\n",
      "314/314 [==============================] - 0s 62us/sample - loss: 7.5914 - mae: 1.9862 - mse: 7.5914\n",
      "Epoch 62/1000\n",
      "314/314 [==============================] - 0s 63us/sample - loss: 7.3816 - mae: 1.9625 - mse: 7.3816\n",
      "Epoch 63/1000\n",
      "314/314 [==============================] - 0s 54us/sample - loss: 7.3483 - mae: 1.9722 - mse: 7.3483\n",
      "Epoch 64/1000\n",
      "314/314 [==============================] - 0s 64us/sample - loss: 7.2078 - mae: 1.9329 - mse: 7.2078\n",
      "Epoch 65/1000\n",
      "314/314 [==============================] - 0s 57us/sample - loss: 7.3021 - mae: 1.9711 - mse: 7.3021\n",
      "Epoch 66/1000\n",
      "314/314 [==============================] - 0s 56us/sample - loss: 7.4262 - mae: 1.9638 - mse: 7.4262\n",
      "Epoch 67/1000\n",
      "314/314 [==============================] - 0s 55us/sample - loss: 7.2357 - mae: 1.9453 - mse: 7.2357\n",
      "Epoch 68/1000\n",
      "314/314 [==============================] - 0s 56us/sample - loss: 7.1882 - mae: 1.9233 - mse: 7.1882\n",
      "Epoch 69/1000\n",
      "314/314 [==============================] - 0s 55us/sample - loss: 7.1541 - mae: 1.9313 - mse: 7.1541\n",
      "Epoch 70/1000\n",
      "314/314 [==============================] - 0s 61us/sample - loss: 7.1842 - mae: 1.9248 - mse: 7.1842\n",
      "Epoch 71/1000\n",
      "314/314 [==============================] - 0s 62us/sample - loss: 7.1776 - mae: 1.9138 - mse: 7.1776\n",
      "Epoch 72/1000\n",
      "314/314 [==============================] - 0s 62us/sample - loss: 7.0900 - mae: 1.9293 - mse: 7.0900\n",
      "Epoch 73/1000\n",
      "314/314 [==============================] - 0s 57us/sample - loss: 7.2542 - mae: 1.9187 - mse: 7.2542\n",
      "Epoch 74/1000\n",
      "314/314 [==============================] - 0s 63us/sample - loss: 7.1510 - mae: 1.9227 - mse: 7.1510\n",
      "Epoch 75/1000\n",
      "314/314 [==============================] - ETA: 0s - loss: 5.5019 - mae: 1.7552 - mse: 5.501 - 0s 63us/sample - loss: 7.0345 - mae: 1.9029 - mse: 7.0345\n",
      "Epoch 76/1000\n",
      "314/314 [==============================] - 0s 59us/sample - loss: 6.9480 - mae: 1.8899 - mse: 6.9480\n",
      "Epoch 77/1000\n",
      "314/314 [==============================] - 0s 55us/sample - loss: 7.1362 - mae: 1.9281 - mse: 7.1362\n",
      "Epoch 78/1000\n",
      "314/314 [==============================] - 0s 55us/sample - loss: 7.0816 - mae: 1.9190 - mse: 7.0816\n",
      "Epoch 79/1000\n",
      "314/314 [==============================] - 0s 54us/sample - loss: 7.0792 - mae: 1.9059 - mse: 7.0792\n",
      "Epoch 80/1000\n",
      "314/314 [==============================] - 0s 61us/sample - loss: 6.8694 - mae: 1.9024 - mse: 6.8694\n",
      "Epoch 81/1000\n",
      "314/314 [==============================] - 0s 61us/sample - loss: 6.8832 - mae: 1.9102 - mse: 6.8832\n",
      "Epoch 82/1000\n",
      "314/314 [==============================] - 0s 58us/sample - loss: 6.8986 - mae: 1.9037 - mse: 6.8986\n",
      "Epoch 83/1000\n",
      "314/314 [==============================] - 0s 65us/sample - loss: 6.8722 - mae: 1.9188 - mse: 6.8722\n",
      "Epoch 84/1000\n",
      "314/314 [==============================] - 0s 55us/sample - loss: 7.0697 - mae: 1.9051 - mse: 7.0697\n",
      "Epoch 85/1000\n",
      "314/314 [==============================] - 0s 59us/sample - loss: 6.8875 - mae: 1.9075 - mse: 6.8875\n",
      "Epoch 86/1000\n",
      "314/314 [==============================] - 0s 61us/sample - loss: 6.9075 - mae: 1.9014 - mse: 6.9075\n",
      "Epoch 87/1000\n",
      "314/314 [==============================] - 0s 58us/sample - loss: 6.9516 - mae: 1.8844 - mse: 6.9516\n",
      "Epoch 88/1000\n",
      "314/314 [==============================] - 0s 56us/sample - loss: 6.8804 - mae: 1.8884 - mse: 6.8804\n",
      "Epoch 89/1000\n",
      "314/314 [==============================] - 0s 58us/sample - loss: 6.9503 - mae: 1.8655 - mse: 6.9503\n",
      "Epoch 90/1000\n",
      "314/314 [==============================] - 0s 59us/sample - loss: 7.0544 - mae: 1.8798 - mse: 7.0544\n"
     ]
    }
   ],
   "source": [
    "EPOCHS = 1000\n",
    "early_stop = tf.keras.callbacks.EarlyStopping(monitor='mse', patience=10)     \n",
    "shap_history = shap_model.fit( normed_train_data, train_labels,  callbacks=[early_stop], epochs=EPOCHS,  verbose=1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Use KMeans to Summarize Dataset"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "metadata": {},
   "outputs": [],
   "source": [
    "df_train_normed_summary = shap.kmeans(normed_train_data.values, 25)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Instantiate an explainer with the model predictions and training data summary\n",
    "explainer = shap.KernelExplainer(shap_model.predict, df_train_normed_summary)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'\\n!pip install ipywidgets\\n!jupyter nbextension enable --py widgetsnbextension\\n'"
      ]
     },
     "execution_count": 81,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# may need to install ipywidgets to see status visualization\n",
    "'''\n",
    "!pip install ipywidgets\n",
    "!jupyter nbextension enable --py widgetsnbextension\n",
    "'''"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "169d9eaf3aa84c668b8a2610a14b2049",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "HBox(children=(FloatProgress(value=0.0, max=314.0), HTML(value='')))"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "l1_reg=\"auto\" is deprecated and in the next version (v0.29) the behavior will change from a conditional use of AIC to simply \"num_features(10)\"!\n"
     ]
    }
   ],
   "source": [
    "# Extract Shapley values from the explainer\n",
    "shap_values = explainer.shap_values(normed_train_data.values)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Summarize the Shapley values in a plot\n",
    "shap.summary_plot(shap_values[0], normed_train_data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "INSTANCE_NUM = 0\n",
    "shap.force_plot(explainer.expected_value[0], shap_values[0][INSTANCE_NUM], normed_train_data.iloc[INSTANCE_NUM,:])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Plot the SHAP values for multiple instances\n",
    "NUM_ROWS = 10\n",
    "shap.force_plot(explainer.expected_value[0], shap_values[0][0:NUM_ROWS], normed_train_data.iloc[0:NUM_ROWS])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}