diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000000000000000000000000000000000000..bb28455a1c497d49e3f080d6e9edb221366966b6
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,19 @@
+stages:
+  - test
+  - deploy
+
+test:
+  stage: test
+  image: python:3.9
+  before_script:
+    - pip install -r requirements.txt
+  script:
+    - python -m unittest discover -s tests -p 'test_*.py' -t tests
+
+deploy:
+  stage: deploy
+  only:
+    - main
+  script:
+    - git merge --no-ff $CI_COMMIT_REF_NAME
+    - git push origin main
\ No newline at end of file
diff --git a/BERTClass.py b/BERTClass.py
new file mode 100644
index 0000000000000000000000000000000000000000..f2fe339e69ed721a5b320d1438a4167cfcf2e0e5
--- /dev/null
+++ b/BERTClass.py
@@ -0,0 +1,113 @@
+import torch
+from torch import nn
+from transformers import DistilBertTokenizer, DistilBertModel
+from transformers import AdamW, get_linear_schedule_with_warmup
+
+bert_model = DistilBertModel.from_pretrained('distilbert-base-uncased')
+tokenizer = DistilBertTokenizer.from_pretrained('distilbert-base-uncased')
+
+# for model.predict, it is required to define those values.
+MAX_LEN = 40 
+THRESHOLD = 0.6
+
+class BERTClass(torch.nn.Module):
+    def __init__(self, n_train_steps, n_classes, dropout):
+        super(BERTClass, self).__init__()
+        self.bert = bert_model
+        self.dropout = nn.Dropout(dropout)
+        self.classifier = nn.Linear(768, n_classes)
+        self.n_train_steps = n_train_steps
+        self.step_scheduler_after = "batch"
+        
+    def forward(self, ids, mask):
+
+        hidden_state =  self.bert(input_ids=ids, attention_mask=mask)[0]
+
+        pooled_output = hidden_state[:, 0]  
+
+        pooled_output = self.dropout(pooled_output)
+
+        logits = self.classifier(pooled_output)
+
+        return logits
+
+    def fit(self, train_dataloader):
+
+        def loss_fn(outputs, targets):
+            criterion = nn.BCEWithLogitsLoss()
+            criterion = criterion.to(DEVICE)
+            loss = criterion(outputs.view(-1, N_CLASSES), 
+                          targets.float().view(-1, N_CLASSES))
+            if targets is None:
+                return None
+            return loss
+
+        optimizer = torch.optim.AdamW(params =  self.parameters(), lr=LEARNING_RATE)
+
+        def ret_scheduler(optimizer, num_train_steps):
+            sch = get_linear_schedule_with_warmup(
+                optimizer, num_warmup_steps=0, num_training_steps=num_train_steps)
+            return sch
+
+        scheduler = ret_scheduler(optimizer, self.n_train_steps)
+
+        def epoch_time(start_time, end_time):
+            elapsed_time = end_time - start_time
+            elapsed_mins = int(elapsed_time / 60)
+            elapsed_secs = int(elapsed_time - (elapsed_mins * 60))
+            return elapsed_mins, elapsed_secs
+
+        for epoch in range(N_EPOCHS):
+            train_loss = 0.0
+            self.train()  # Set the model to training mode
+
+            for bi, d in tqdm(enumerate(train_dataloader), total=len(train_dataloader)):
+                ids = d["ids"]
+                mask = d["mask"]
+                token_ids = d["token_ids"]
+                targets = d["labels"]
+
+                ids = ids.to(DEVICE, dtype=torch.long)
+                mask = mask.to(DEVICE, dtype=torch.long)
+                token_ids = token_ids.to(DEVICE,dtype=torch.long)
+                targets = targets.to(DEVICE, dtype=torch.float)
+
+                optimizer.zero_grad()
+                outputs = self(ids=ids, mask=mask)
+                
+                loss = loss_fn(outputs, targets)
+                loss.backward()
+                train_loss += loss.item()
+                optimizer.step()
+                scheduler.step()
+
+                self.zero_grad()
+
+            print(train_loss/len(train_dataloader))
+
+        return train_loss/len(train_dataloader)
+
+    def predict(self, sentence):
+        max_len = MAX_LEN
+
+        inputs = tokenizer.__call__(sentence,
+                            None,
+                            add_special_tokens=True,
+                            max_length=max_len,
+                            padding="max_length",
+                            truncation=True,
+                            )
+        
+        ids = inputs['input_ids']
+        ids = torch.tensor(ids, dtype=torch.long).unsqueeze(0)
+        mask = inputs['attention_mask']
+        mask = torch.tensor(mask, dtype=torch.long).unsqueeze(0)
+
+        self.eval()
+        logits = self(ids=ids, mask=mask)
+        result = torch.sigmoid(logits)
+
+        threshold = THRESHOLD
+        valid_result = torch.ceil(result-threshold)
+
+        return result, valid_result
\ No newline at end of file
diff --git a/Group_DistilBert.ipynb b/Group_DistilBert.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..1b01223e3339c36d73511c6017f69b5bc4421757
--- /dev/null
+++ b/Group_DistilBert.ipynb
@@ -0,0 +1,5992 @@
+{
+ "cells": [
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "metadata": {
+    "colab": {
+     "base_uri": "https://localhost:8080/"
+    },
+    "id": "DTuCSCkXaLP-",
+    "outputId": "1c92e4f5-6406-4611-be1d-03a42cdfd115"
+   },
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Defaulting to user installation because normal site-packages is not writeable\n",
+      "Requirement already satisfied: datasets in /user/HS400/ma04274/.local/lib/python3.10/site-packages (2.10.1)\n",
+      "Requirement already satisfied: pyarrow>=6.0.0 in /user/HS400/ma04274/.local/lib/python3.10/site-packages (from datasets) (11.0.0)\n",
+      "Requirement already satisfied: dill<0.3.7,>=0.3.0 in /user/HS400/ma04274/.local/lib/python3.10/site-packages (from datasets) (0.3.6)\n",
+      "Requirement already satisfied: requests>=2.19.0 in /usr/lib/python3/dist-packages (from datasets) (2.25.1)\n",
+      "Requirement already satisfied: responses<0.19 in /user/HS400/ma04274/.local/lib/python3.10/site-packages (from datasets) (0.18.0)\n",
+      "Requirement already satisfied: xxhash in /user/HS400/ma04274/.local/lib/python3.10/site-packages (from datasets) (3.2.0)\n",
+      "Requirement already satisfied: fsspec[http]>=2021.11.1 in /user/HS400/ma04274/.local/lib/python3.10/site-packages (from datasets) (2023.3.0)\n",
+      "Requirement already satisfied: pyyaml>=5.1 in /usr/lib/python3/dist-packages (from datasets) (5.4.1)\n",
+      "Requirement already satisfied: huggingface-hub<1.0.0,>=0.2.0 in /user/HS400/ma04274/.local/lib/python3.10/site-packages (from datasets) (0.13.3)\n",
+      "Requirement already satisfied: packaging in /usr/lib/python3/dist-packages (from datasets) (21.3)\n",
+      "Requirement already satisfied: aiohttp in /user/HS400/ma04274/.local/lib/python3.10/site-packages (from datasets) (3.8.4)\n",
+      "Requirement already satisfied: multiprocess in /user/HS400/ma04274/.local/lib/python3.10/site-packages (from datasets) (0.70.14)\n",
+      "Requirement already satisfied: pandas in /user/HS400/ma04274/.local/lib/python3.10/site-packages (from datasets) (1.5.0)\n",
+      "Requirement already satisfied: numpy>=1.17 in /user/HS400/ma04274/.local/lib/python3.10/site-packages (from datasets) (1.24.2)\n",
+      "Requirement already satisfied: tqdm>=4.62.1 in /user/HS400/ma04274/.local/lib/python3.10/site-packages (from datasets) (4.65.0)\n",
+      "Requirement already satisfied: attrs>=17.3.0 in /usr/lib/python3/dist-packages (from aiohttp->datasets) (21.2.0)\n",
+      "Requirement already satisfied: async-timeout<5.0,>=4.0.0a3 in /user/HS400/ma04274/.local/lib/python3.10/site-packages (from aiohttp->datasets) (4.0.2)\n",
+      "Requirement already satisfied: frozenlist>=1.1.1 in /user/HS400/ma04274/.local/lib/python3.10/site-packages (from aiohttp->datasets) (1.3.3)\n",
+      "Requirement already satisfied: yarl<2.0,>=1.0 in /user/HS400/ma04274/.local/lib/python3.10/site-packages (from aiohttp->datasets) (1.8.2)\n",
+      "Requirement already satisfied: multidict<7.0,>=4.5 in /user/HS400/ma04274/.local/lib/python3.10/site-packages (from aiohttp->datasets) (6.0.4)\n",
+      "Requirement already satisfied: aiosignal>=1.1.2 in /user/HS400/ma04274/.local/lib/python3.10/site-packages (from aiohttp->datasets) (1.3.1)\n",
+      "Requirement already satisfied: charset-normalizer<4.0,>=2.0 in /user/HS400/ma04274/.local/lib/python3.10/site-packages (from aiohttp->datasets) (3.1.0)\n",
+      "Requirement already satisfied: typing-extensions>=3.7.4.3 in /user/HS400/ma04274/.local/lib/python3.10/site-packages (from huggingface-hub<1.0.0,>=0.2.0->datasets) (4.4.0)\n",
+      "Requirement already satisfied: filelock in /user/HS400/ma04274/.local/lib/python3.10/site-packages (from huggingface-hub<1.0.0,>=0.2.0->datasets) (3.10.7)\n",
+      "Requirement already satisfied: urllib3>=1.25.10 in /usr/lib/python3/dist-packages (from responses<0.19->datasets) (1.26.5)\n",
+      "Requirement already satisfied: python-dateutil>=2.8.1 in /usr/lib/python3/dist-packages (from pandas->datasets) (2.8.1)\n",
+      "Requirement already satisfied: pytz>=2020.1 in /usr/lib/python3/dist-packages (from pandas->datasets) (2022.1)\n",
+      "Requirement already satisfied: idna>=2.0 in /usr/lib/python3/dist-packages (from yarl<2.0,>=1.0->aiohttp->datasets) (3.3)\n",
+      "Defaulting to user installation because normal site-packages is not writeable\n",
+      "Requirement already satisfied: transformers in /user/HS400/ma04274/.local/lib/python3.10/site-packages (4.27.3)\n",
+      "Requirement already satisfied: filelock in /user/HS400/ma04274/.local/lib/python3.10/site-packages (from transformers) (3.10.7)\n",
+      "Requirement already satisfied: tqdm>=4.27 in /user/HS400/ma04274/.local/lib/python3.10/site-packages (from transformers) (4.65.0)\n",
+      "Requirement already satisfied: pyyaml>=5.1 in /usr/lib/python3/dist-packages (from transformers) (5.4.1)\n",
+      "Requirement already satisfied: packaging>=20.0 in /usr/lib/python3/dist-packages (from transformers) (21.3)\n",
+      "Requirement already satisfied: huggingface-hub<1.0,>=0.11.0 in /user/HS400/ma04274/.local/lib/python3.10/site-packages (from transformers) (0.13.3)\n",
+      "Requirement already satisfied: tokenizers!=0.11.3,<0.14,>=0.11.1 in /user/HS400/ma04274/.local/lib/python3.10/site-packages (from transformers) (0.13.2)\n",
+      "Requirement already satisfied: regex!=2019.12.17 in /user/HS400/ma04274/.local/lib/python3.10/site-packages (from transformers) (2023.3.23)\n",
+      "Requirement already satisfied: requests in /usr/lib/python3/dist-packages (from transformers) (2.25.1)\n",
+      "Requirement already satisfied: numpy>=1.17 in /user/HS400/ma04274/.local/lib/python3.10/site-packages (from transformers) (1.24.2)\n",
+      "Requirement already satisfied: typing-extensions>=3.7.4.3 in /user/HS400/ma04274/.local/lib/python3.10/site-packages (from huggingface-hub<1.0,>=0.11.0->transformers) (4.4.0)\n"
+     ]
+    }
+   ],
+   "source": [
+    "!pip install datasets\n",
+    "!pip install transformers"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "metadata": {
+    "id": "6JCoSyfiaMZb"
+   },
+   "outputs": [],
+   "source": [
+    "from datasets import load_dataset\n",
+    "import numpy as np\n",
+    "import pandas as pd\n",
+    "import pyarrow\n",
+    "import torch\n",
+    "import torchtext\n",
+    "from tqdm import tqdm\n",
+    "import transformers\n",
+    "from torch.utils.data import DataLoader\n",
+    "from torch import nn\n",
+    "import time\n",
+    "import warnings\n",
+    "warnings.filterwarnings(\"ignore\")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "metadata": {
+    "id": "UVmfQrZUaON3"
+   },
+   "outputs": [],
+   "source": [
+    "import locale\n",
+    "locale.getpreferredencoding = lambda: \"UTF-8\""
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 4,
+   "metadata": {
+    "colab": {
+     "base_uri": "https://localhost:8080/"
+    },
+    "id": "JH0JlkgLaPlW",
+    "outputId": "b0c9a874-5e01-4afa-b427-842f64af55e1"
+   },
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "PyTorch Version:  2.0.0+cu117\n",
+      "torchtext Version:  0.15.1+cpu\n",
+      "Using GPU.\n"
+     ]
+    }
+   ],
+   "source": [
+    "import random\n",
+    "def seed_everything(seed=73):\n",
+    "    random.seed(seed)\n",
+    "    np.random.seed(seed)\n",
+    "    torch.manual_seed(seed)\n",
+    "    torch.cuda.manual_seed(seed)\n",
+    "    torch.cuda.manual_seed_all(seed)\n",
+    "\n",
+    "seed_everything(1234)\n",
+    "\n",
+    "DEVICE = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n",
+    "torch.backends.cudnn.deterministic = True\n",
+    "\n",
+    "print(\"PyTorch Version: \", torch.__version__)\n",
+    "print(\"torchtext Version: \", torchtext.__version__)\n",
+    "print(f\"Using {'GPU' if str(DEVICE) == 'cuda' else 'CPU'}.\")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "metadata": {
+    "colab": {
+     "base_uri": "https://localhost:8080/",
+     "height": 296,
+     "referenced_widgets": [
+      "f70b1cfb17264314a85169168d454d59",
+      "2fd6865874a8416398053b2d8ffe9b19",
+      "f5ab67c2046d4f62b0c5979f3ce608e4",
+      "cc461c6df155467a9562bafd71aa43e3",
+      "679ed67c83084eea86b4fe367b95bc3e",
+      "dcea04339bf84003ba7bf64293c61b67",
+      "e4931bd9f8a944d88a3f047d8dc69f34",
+      "ca4b4c16ec2a4369b2d478947a2eac56",
+      "9d3d7a9092b041f0b9682265800165b6",
+      "4fba2ba144ed4dc296275329e8613c91",
+      "778634d5bd5f472bbb13fa355deb4265",
+      "ffa860dbaff44301bdcbedd96b08aee7",
+      "bd4821186485411897b34f193ac37997",
+      "85e9db0b0b764a8db75710b21b56bd25",
+      "b2b217f9f97644aeb4438ef9be9be046",
+      "71cddcfbfcc34e1aa5f9602bbb05aa3c",
+      "c34cb55446fe45b9888ffeed88674ce9",
+      "8df743509e61495dba8261d744a96294",
+      "a0542436d5dc45e0a9fd2d47089d60ae",
+      "15c7f2a8acdb408681fad01dfc165631",
+      "d6e3df9f330445e386a068344b870af3",
+      "82d89ed98d414495a6a026aaeb268a8b",
+      "5f2b601c3eda4aed9d9fdba71b0eeabb",
+      "d932737fe6084a77a0b6bddb512102c9",
+      "98d1de66c1004d0a94f24ab9cca61e04",
+      "9b04efd094974849be62292b7f4c9f95",
+      "2452483b653e46e78e76c17efc4dce97",
+      "bb6e7d1d1e934b6eaf2772c2acaf9f2f",
+      "70f89ed951f14bd3a6c6e31d2c18e521",
+      "159adfe2f2b04ba893da8c031403afa4",
+      "8e1d5e891ab1498b8aff16e56db1d91b",
+      "33fff913ffa942f48a177b74cf000bed",
+      "427a8d8c77034bc2b77c8857614f2e70",
+      "6fca38cdf6c7467cb53a35c3b6991dd3",
+      "aa58a8eb12814e04a9985edec2185af0",
+      "acf56709157949d5912f756f46084436",
+      "1f5adc08173b46059d62d47fa223acde",
+      "8c69c12d94e64d7a9ab2719494b7852e",
+      "67e92147005e4ea589524b514c848990",
+      "55c73a7f9f4a49e9b9e1049096b2489b",
+      "c12ed76679a04b5e992159cc6807df53",
+      "8b9c1b160511478e936195cd7a8ffd0f",
+      "be4cbcc94fa14e8fb1a2a151c6cc277a",
+      "de26caab06714549abbfa74b57b14c7f",
+      "4af835fa4b84436c94724bec2c6a53e8",
+      "5ee5ad3f4b6041d0b0890d44fa8ded47",
+      "c3c2245643bf44e9b2d7885182f79534",
+      "721b59d9ab354a6483f2beded2f25cc0",
+      "c572997f6e6a42c799f63718d42a00a0",
+      "8eecabadab5e42e9b704a8cfc9212a0a",
+      "a8bcbc7a72ef4081a801a248f8347fd3",
+      "88127018b105447baacf0d49cf02146b",
+      "78893c8aa0974360988bc5aaa8afd82e",
+      "14d78ace8f8b486aa06f1863c5839b69",
+      "192400b236924d9fbedb3fe4a2c8ceb0",
+      "f6e767540acd48fb9c75a3ce62af1e6b",
+      "3a8f303416994654aecb27b9369a09b5",
+      "0b8dbb83e6594a1d9555af75346b76de",
+      "ec180cef3c5e4f948c0b2b0b269a04b9",
+      "115db74b275e4739a6c8ffe3a6704d35",
+      "76eb7882d2464c34bdf4f051ab6427af",
+      "85f1aa3acc9e4dc4b224759a7173a54e",
+      "f3fe6f19b2c347c495b26754794ee83c",
+      "37aa594a6cea4bf08b7507383df0b4aa",
+      "08d05fd427454a9f838a881fcb67ba1d",
+      "aa545b3df2a64ce489c109bab9dc7571",
+      "7c150fe2b6854129b288fd2b07a52b67",
+      "1d7eb6895078493e9c4583744226d47f",
+      "316efda5203044cf8ff3f63a8d9aff28",
+      "368cef8067eb4da884a95d96bd437d5c",
+      "0cb7edcf167d4c978df9f8ba788dc8a2",
+      "93a6431b88cf49b788f902d09c0c04bc",
+      "c0d44b8f7b124ca09c05b50de2a47be0",
+      "6ac78c482ef443ddbf8c1bd5304ff3b4",
+      "fc93f5f071704639b8e4d0348f2faefa",
+      "4a1f8f8a3f19433fb2b11a5894cb3c0a",
+      "2a595d03b2a64ebd93ad9240a8a4ecc8",
+      "ce0e56c8def84a66aa3e78eebd0ccd91",
+      "9bcd5bcdbf9049dbaeb01a772f37ccb0",
+      "b14db9725096470e90cb8e3e52ef1559",
+      "c67a2f7ad4424a90b0b5166e055d6f52",
+      "b1a5fc6948424a16baae0d00caf61cf4",
+      "7a834d071a754916b6045a116fb05088",
+      "3165ed28b5e94fa08d5ba2109b59ef16",
+      "ef7364ce3f884dd899f278412c4226ea",
+      "4e75ff8087864124b3549c83f54190fc",
+      "90e13985c5754813a568b105ffd1875c",
+      "a5c7c50790f94a659c566bc00d986871",
+      "558ba8b22cd74cd1b6e8dee0fe99d6b2",
+      "f4341911aea34a5d9f869f9d0b5913db",
+      "93604ba6e28649368348064ee3d1aa2c",
+      "07dd80e6e6bc4736975ce8d8f449e1ee",
+      "fdd5c30fecfd4b2eae833669aa77baa0",
+      "c954c6c0f3a941039d0c8db8b53f8ad7",
+      "58bdd4c1f644469d988224f8a650941e",
+      "684b489c31e549babe411d8ee44b0b5f",
+      "bda8c59892d44f7e851e3f613f43a813",
+      "a7340148c58f4dccb83b923becfcd06b",
+      "df263cd531304449807d4b2e910b8d34",
+      "c062a0ca1eb141158350d1474feb1c07",
+      "0dde0bcc8b4a484fb8940e1038c82e6d",
+      "aacd498e8ea74185981944577780a6cf",
+      "d330ff1ef7d443db92741c5904158b98",
+      "d90c031ce7a44812b7f584bbf048e25f",
+      "433a0b8755e64748b41b544a8a735272",
+      "a0252393a0574c61a0c963995184ffd1",
+      "639623cbf9e24a3f88a3c37c697f0612",
+      "35f9214e3c46433ea90b6ac57208b912",
+      "398b243994ff47f2bc5e26f680cf812e",
+      "ceec0e2ac999448282ba141cfc3f5b28"
+     ]
+    },
+    "id": "F5IcBQyaaRQK",
+    "outputId": "55fade83-e53d-4eef-bfa7-f53e26deb477"
+   },
+   "outputs": [
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "Found cached dataset go_emotions (/user/HS400/ma04274/.cache/huggingface/datasets/go_emotions/simplified/0.0.0/2637cfdd4e64d30249c3ed2150fa2b9d279766bfcd6a809b9f085c61a90d776d)\n"
+     ]
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "5fbc19dafa2f419ba70c93854e48ffdd",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "  0%|          | 0/3 [00:00<?, ?it/s]"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "dataset  = load_dataset(\"go_emotions\", \"simplified\")\n",
+    "\n",
+    "train = dataset['train'].to_pandas()\n",
+    "validation = dataset['validation'].to_pandas()\n",
+    "test = dataset['test'].to_pandas()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 6,
+   "metadata": {
+    "id": "6uBnTfLMaSwi"
+   },
+   "outputs": [],
+   "source": [
+    "initial_emotion_dict = {0: 'admiration',\n",
+    "1: 'amusement',\n",
+    "2: 'anger',\n",
+    "3: 'annoyance',\n",
+    "4: 'approval',\n",
+    "5: 'caring',\n",
+    "6: 'confusion',\n",
+    "7: 'curiosity',\n",
+    "8: 'desire',\n",
+    "9: 'disappointment',\n",
+    "10: 'disapproval',\n",
+    "11: 'disgust',\n",
+    "12: 'embarrassment',\n",
+    "13: 'excitement',\n",
+    "14: 'fear',\n",
+    "15: 'gratitude',\n",
+    "16: 'grief',\n",
+    "17: 'joy',\n",
+    "18: 'love',\n",
+    "19: 'nervousness',\n",
+    "20: 'optimism',\n",
+    "21: 'pride',\n",
+    "22: 'realization',\n",
+    "23: 'relief',\n",
+    "24: 'remorse',\n",
+    "25: 'sadness',\n",
+    "26: 'surprise',\n",
+    "27: 'neutral'}\n",
+    "\n",
+    "n_labels = len(initial_emotion_dict)+1"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 7,
+   "metadata": {
+    "colab": {
+     "base_uri": "https://localhost:8080/"
+    },
+    "id": "b1mMAPsUaVJA",
+    "outputId": "aed0e2ad-650b-4db7-a88e-1626b2063e72"
+   },
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Index([[27], [0], [4], [15], [1], [3], [18], [10], [7], [2], [20], [6], [17],\n",
+      "       [25]],\n",
+      "      dtype='object')\n",
+      "[27, 0, 4, 15, 1, 3, 18, 10, 7, 2, 20, 6, 17, 25]\n"
+     ]
+    }
+   ],
+   "source": [
+    "subsets = train.labels.value_counts().index[0:14]\n",
+    "print(subsets) #returns most frequent 13 indexes + other_emotions for the rest.\n",
+    "kept_labels = [index[0] for index in subsets]\n",
+    "print(kept_labels)\n",
+    "kept_labels = np.array(kept_labels)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 8,
+   "metadata": {
+    "id": "3kV5fuc_aYFL"
+   },
+   "outputs": [],
+   "source": [
+    "N_CLASSES = len(kept_labels)+1  #for other_emotions\n",
+    "\n",
+    "not_kept_labels = np.arange(0,28)\n",
+    "not_kept_labels = np.delete(not_kept_labels, kept_labels)\n",
+    "\n",
+    "def one_hot_encoder(df):\n",
+    "    one_hot_encoding = []\n",
+    "    for i in tqdm(range(len(df))):\n",
+    "        temp = [0]*n_labels\n",
+    "        label_indices = df.iloc[i][\"labels\"]\n",
+    "        for index in label_indices:\n",
+    "            if index in kept_labels:\n",
+    "              temp[index] = 1\n",
+    "            else:\n",
+    "              temp[n_labels-1] = 1 #other_emotions become 1\n",
+    "        temp = np.delete(temp,not_kept_labels)\n",
+    "        one_hot_encoding.append(temp)\n",
+    "    return pd.DataFrame(one_hot_encoding)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 9,
+   "metadata": {
+    "colab": {
+     "base_uri": "https://localhost:8080/"
+    },
+    "id": "j4F1Zn2zaZrg",
+    "outputId": "0374ee03-01cb-438e-ac00-0f1867c89833"
+   },
+   "outputs": [
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "100%|██████████████████████████████████| 43410/43410 [00:02<00:00, 19976.10it/s]\n",
+      "100%|████████████████████████████████████| 5426/5426 [00:00<00:00, 20166.67it/s]\n",
+      "100%|████████████████████████████████████| 5427/5427 [00:00<00:00, 19936.28it/s]\n"
+     ]
+    }
+   ],
+   "source": [
+    "train_labels = one_hot_encoder(train)\n",
+    "valid_labels = one_hot_encoder(validation)\n",
+    "test_labels = one_hot_encoder(test)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 10,
+   "metadata": {
+    "id": "YULqGltwabTA"
+   },
+   "outputs": [],
+   "source": [
+    "train = pd.concat([train, train_labels], axis=1)\n",
+    "valid = pd.concat([validation, valid_labels], axis=1)\n",
+    "test = pd.concat([test, test_labels], axis=1)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 11,
+   "metadata": {
+    "colab": {
+     "base_uri": "https://localhost:8080/",
+     "height": 206
+    },
+    "id": "JUqj_7VXadY9",
+    "outputId": "42109ade-7463-4189-95bb-b2894d45dd79"
+   },
+   "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>text</th>\n",
+       "      <th>labels</th>\n",
+       "      <th>id</th>\n",
+       "      <th>0</th>\n",
+       "      <th>1</th>\n",
+       "      <th>2</th>\n",
+       "      <th>3</th>\n",
+       "      <th>4</th>\n",
+       "      <th>5</th>\n",
+       "      <th>6</th>\n",
+       "      <th>7</th>\n",
+       "      <th>8</th>\n",
+       "      <th>9</th>\n",
+       "      <th>10</th>\n",
+       "      <th>11</th>\n",
+       "      <th>12</th>\n",
+       "      <th>13</th>\n",
+       "      <th>14</th>\n",
+       "    </tr>\n",
+       "  </thead>\n",
+       "  <tbody>\n",
+       "    <tr>\n",
+       "      <th>0</th>\n",
+       "      <td>My favourite food is anything I didn't have to...</td>\n",
+       "      <td>[27]</td>\n",
+       "      <td>eebbqej</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>1</th>\n",
+       "      <td>Now if he does off himself, everyone will thin...</td>\n",
+       "      <td>[27]</td>\n",
+       "      <td>ed00q6i</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>2</th>\n",
+       "      <td>WHY THE FUCK IS BAYLESS ISOING</td>\n",
+       "      <td>[2]</td>\n",
+       "      <td>eezlygj</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>3</th>\n",
+       "      <td>To make her feel threatened</td>\n",
+       "      <td>[14]</td>\n",
+       "      <td>ed7ypvh</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>4</th>\n",
+       "      <td>Dirty Southern Wankers</td>\n",
+       "      <td>[3]</td>\n",
+       "      <td>ed0bdzj</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "  </tbody>\n",
+       "</table>\n",
+       "</div>"
+      ],
+      "text/plain": [
+       "                                                text labels       id  0  1  2  \\\n",
+       "0  My favourite food is anything I didn't have to...   [27]  eebbqej  0  0  0   \n",
+       "1  Now if he does off himself, everyone will thin...   [27]  ed00q6i  0  0  0   \n",
+       "2                     WHY THE FUCK IS BAYLESS ISOING    [2]  eezlygj  0  0  1   \n",
+       "3                        To make her feel threatened   [14]  ed7ypvh  0  0  0   \n",
+       "4                             Dirty Southern Wankers    [3]  ed0bdzj  0  0  0   \n",
+       "\n",
+       "   3  4  5  6  7  8  9  10  11  12  13  14  \n",
+       "0  0  0  0  0  0  0  0   0   0   0   1   0  \n",
+       "1  0  0  0  0  0  0  0   0   0   0   1   0  \n",
+       "2  0  0  0  0  0  0  0   0   0   0   0   0  \n",
+       "3  0  0  0  0  0  0  0   0   0   0   0   1  \n",
+       "4  1  0  0  0  0  0  0   0   0   0   0   0  "
+      ]
+     },
+     "execution_count": 11,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "train.head()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 12,
+   "metadata": {
+    "colab": {
+     "base_uri": "https://localhost:8080/"
+    },
+    "id": "lwo8LY80afqD",
+    "outputId": "7376afab-48d6-4183-c140-a9ab71b83aaa"
+   },
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "{0: 'admiration',\n",
+       " 1: 'amusement',\n",
+       " 2: 'anger',\n",
+       " 3: 'annoyance',\n",
+       " 4: 'approval',\n",
+       " 5: 'confusion',\n",
+       " 6: 'curiosity',\n",
+       " 7: 'disapproval',\n",
+       " 8: 'gratitude',\n",
+       " 9: 'joy',\n",
+       " 10: 'love',\n",
+       " 11: 'optimism',\n",
+       " 12: 'sadness',\n",
+       " 13: 'neutral',\n",
+       " 14: 'other_emotions'}"
+      ]
+     },
+     "execution_count": 12,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "emotion_dict = dict()\n",
+    "for index,value in enumerate(np.sort(kept_labels)):\n",
+    "    emotion_dict[index] = initial_emotion_dict[value]\n",
+    "emotion_dict[len(kept_labels)] = 'other_emotions'\n",
+    "emotion_dict"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 18,
+   "metadata": {
+    "id": "h89Yn-7waihd"
+   },
+   "outputs": [],
+   "source": [
+    "LEARNING_RATE = 5e-5\n",
+    "MAX_LEN = 40\n",
+    "BATCH_SIZE = 64\n",
+    "N_EPOCHS = 10\n",
+    "DROPOUT = 0.3\n",
+    "THRESHOLD = 0.6"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 19,
+   "metadata": {
+    "colab": {
+     "base_uri": "https://localhost:8080/",
+     "height": 217,
+     "referenced_widgets": [
+      "614c240ca8674319874ea42f758284a0",
+      "30ba68fbd57c4520a9bb9a60bd273004",
+      "2b923cd6d7d0439489f467e95f5f0949",
+      "10542e75191b4801af12e6cb3c31e701",
+      "103c61e456ef40e38acc923c3f66453d",
+      "4ab04a5a551244258fa03e5ebec1bc14",
+      "860ab4bb0e534e4182d2e8435de8e78f",
+      "01fde0a208b44888b141662a2d2d68f4",
+      "29c19726a4b2451a8e23de3b589ca7e9",
+      "1fed635c73104a478d0c0d214e03fe8d",
+      "c9d4be94e9a34a78a0a258c4f298d517",
+      "5156eb82e58a42d68fc10a0822401522",
+      "c0a5eb3d401c42f8b18ac1a385734afb",
+      "ac19593660f740a786f64abc97de2473",
+      "ca9df940579a40759ddb91aa9ee4da52",
+      "e200ddee2ec34bbe9863aa4883527c3d",
+      "5eb42e3ca3d84138aadde7a6ffa3b60f",
+      "eb46ef5bac1643af8e6a74f18894b56b",
+      "183d051942fd4f8e9d22fb28fa4a187b",
+      "281ea8dd86e54bc287fea79b7e6047d8",
+      "fdbb5ef86c6a4ca487b1a7654276c4b2",
+      "473ed99c37104bf7add98ec4af974950",
+      "00cdbd9bf01d44439927da43fcbd0457",
+      "02b6ee7c20904a30b6bebb766ed04ee3",
+      "96a0690d35d94ebb8c7686a0e494f2d9",
+      "e2ae09fc8a32485cbaa640dd9eb15a66",
+      "b1b80df123d54887a94901583d4fc07c",
+      "6f7faaaf70104bfbb4c00f7a9fadc0e5",
+      "c35b2c3c44234b0c9f38db2ecfd63c40",
+      "95f7e12877544a8aa72216deaf864dab",
+      "1e721af94e0943708122f7f84a97cd2f",
+      "8a9745927bfc49b782824d6848f1d0ff",
+      "001a565c61f34b6fa712bf707708ebea",
+      "4ab106813dbe453eacd7ba5a0bdf8445",
+      "3e668795519e4ff3b8bb407738ef452c",
+      "88db820882c645398518322a7f990c99",
+      "0e8a035a0c9f497b8dcd85ebe49ba925",
+      "bf5efdf20b92407e86df682b797bff7e",
+      "0f8cc675c9144b12bd16736e98616628",
+      "43131f7f3eaa4356ac8b1137e603e63c",
+      "27cc567cf1524d16a3756ba46c98b511",
+      "8fad7ad8916740d79d181a532b43e899",
+      "68559c5a26674b93a73816cbf05f16e5",
+      "65d3a546b781480c8a89b89bae3bb8cb"
+     ]
+    },
+    "id": "qN-TIeNlakuX",
+    "outputId": "9464d667-8656-471d-bb63-457335e41751"
+   },
+   "outputs": [
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "Some weights of the model checkpoint at distilbert-base-uncased were not used when initializing DistilBertModel: ['vocab_transform.bias', 'vocab_transform.weight', 'vocab_layer_norm.weight', 'vocab_projector.weight', 'vocab_projector.bias', 'vocab_layer_norm.bias']\n",
+      "- This IS expected if you are initializing DistilBertModel from the checkpoint of a model trained on another task or with another architecture (e.g. initializing a BertForSequenceClassification model from a BertForPreTraining model).\n",
+      "- This IS NOT expected if you are initializing DistilBertModel from the checkpoint of a model that you expect to be exactly identical (initializing a BertForSequenceClassification model from a BertForSequenceClassification model).\n"
+     ]
+    }
+   ],
+   "source": [
+    "from transformers import DistilBertTokenizer, DistilBertModel\n",
+    "from transformers import AdamW, get_linear_schedule_with_warmup\n",
+    "from sklearn.base import TransformerMixin, BaseEstimator\n",
+    "\n",
+    "bert_model = DistilBertModel.from_pretrained('distilbert-base-uncased')\n",
+    "tokenizer = DistilBertTokenizer.from_pretrained('distilbert-base-uncased')\n",
+    "\n",
+    "class GoEmotionDataset:\n",
+    "    def __init__(self, tokenizer, max_len: int = MAX_LEN, batch_size: int = BATCH_SIZE):\n",
+    "        self.tokenizer = tokenizer\n",
+    "        self.max_len = max_len\n",
+    "        self.batch_size = batch_size\n",
+    "        self.texts = None\n",
+    "        self.labels = None\n",
+    "        self.dataset = None\n",
+    "    \n",
+    "    def __len__(self):\n",
+    "        return len(self.texts)\n",
+    "\n",
+    "    def __getitem__(self, index):\n",
+    "        text = self.texts[index]\n",
+    "        label = self.labels[index]\n",
+    "\n",
+    "        inputs = self.tokenizer.__call__(text,\n",
+    "                                        add_special_tokens = True,\n",
+    "                                        max_length = self.max_len,\n",
+    "                                        truncation = True,\n",
+    "                                        padding = 'max_length', \n",
+    "                                        return_token_type_ids = True,\n",
+    "                                        return_attention_mask = True,\n",
+    "                                        verbose = True\n",
+    "                                        )\n",
+    "        ids = inputs[\"input_ids\"]\n",
+    "        mask = inputs[\"attention_mask\"]\n",
+    "        token_ids = inputs['token_type_ids']\n",
+    "\n",
+    "        return {\n",
+    "            \"ids\": torch.tensor(ids, dtype=torch.long),\n",
+    "            \"mask\": torch.tensor(mask, dtype=torch.long),\n",
+    "            \"token_ids\":torch.tensor(token_ids, dtype=torch.long),\n",
+    "            \"labels\": torch.tensor(label, dtype=torch.long)\n",
+    "        }\n",
+    "\n",
+    "    def transform(self, texts, labels=None):\n",
+    "        self.texts = texts\n",
+    "        if labels:\n",
+    "            self.labels = labels\n",
+    "        return self.dataset\n",
+    "\n",
+    "    def fit(self, texts,labels):\n",
+    "        self.texts = texts\n",
+    "        self.labels = labels\n",
+    "        self.dataset = DataLoader(\n",
+    "            self,\n",
+    "            batch_size=self.batch_size,\n",
+    "            shuffle=True,\n",
+    "            num_workers=2\n",
+    "        )\n",
+    "        return self.dataset"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 20,
+   "metadata": {
+    "id": "vm8Vhuynl2Om"
+   },
+   "outputs": [],
+   "source": [
+    "train_dataset = GoEmotionDataset(tokenizer)\n",
+    "train_dataloader = train_dataset.fit(train.text.tolist(), train[range(N_CLASSES)].values.tolist())"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 36,
+   "metadata": {
+    "id": "EOvEDaAojXVW"
+   },
+   "outputs": [],
+   "source": [
+    "class BERTClass(torch.nn.Module):\n",
+    "    def __init__(self, n_train_steps, n_classes, dropout):\n",
+    "        super(BERTClass, self).__init__()\n",
+    "        self.bert = bert_model\n",
+    "        self.dropout = nn.Dropout(dropout)\n",
+    "        self.classifier = nn.Linear(768, n_classes)\n",
+    "        self.n_train_steps = n_train_steps\n",
+    "        self.step_scheduler_after = \"batch\"\n",
+    "        \n",
+    "    def forward(self, ids, mask):\n",
+    "\n",
+    "        hidden_state =  self.bert(input_ids=ids, attention_mask=mask)[0]\n",
+    "\n",
+    "        pooled_output = hidden_state[:, 0]  \n",
+    "\n",
+    "        pooled_output = self.dropout(pooled_output)\n",
+    "\n",
+    "        logits = self.classifier(pooled_output)\n",
+    "\n",
+    "        return logits\n",
+    "\n",
+    "    def fit(self, train_dataloader):\n",
+    "\n",
+    "        def loss_fn(outputs, targets):\n",
+    "            criterion = nn.BCEWithLogitsLoss()\n",
+    "            criterion = criterion.to(DEVICE)\n",
+    "            loss = criterion(outputs.view(-1, N_CLASSES), \n",
+    "                          targets.float().view(-1, N_CLASSES))\n",
+    "            if targets is None:\n",
+    "                return None\n",
+    "            return loss\n",
+    "\n",
+    "        optimizer = torch.optim.AdamW(params =  self.parameters(), lr=LEARNING_RATE)\n",
+    "\n",
+    "        def ret_scheduler(optimizer, num_train_steps):\n",
+    "            sch = get_linear_schedule_with_warmup(\n",
+    "                optimizer, num_warmup_steps=0, num_training_steps=num_train_steps)\n",
+    "            return sch\n",
+    "\n",
+    "        scheduler = ret_scheduler(optimizer, self.n_train_steps)\n",
+    "\n",
+    "        def epoch_time(start_time, end_time):\n",
+    "            elapsed_time = end_time - start_time\n",
+    "            elapsed_mins = int(elapsed_time / 60)\n",
+    "            elapsed_secs = int(elapsed_time - (elapsed_mins * 60))\n",
+    "            return elapsed_mins, elapsed_secs\n",
+    "\n",
+    "        for epoch in range(N_EPOCHS):\n",
+    "            train_loss = 0.0\n",
+    "            self.train()  # Set the model to training mode\n",
+    "\n",
+    "            for bi, d in tqdm(enumerate(train_dataloader), total=len(train_dataloader)):\n",
+    "                ids = d[\"ids\"]\n",
+    "                mask = d[\"mask\"]\n",
+    "                token_ids = d[\"token_ids\"]\n",
+    "                targets = d[\"labels\"]\n",
+    "\n",
+    "                ids = ids.to(DEVICE, dtype=torch.long)\n",
+    "                mask = mask.to(DEVICE, dtype=torch.long)\n",
+    "                token_ids = token_ids.to(DEVICE,dtype=torch.long)\n",
+    "                targets = targets.to(DEVICE, dtype=torch.float)\n",
+    "\n",
+    "                optimizer.zero_grad()\n",
+    "                outputs = self(ids=ids, mask=mask)\n",
+    "                \n",
+    "                loss = loss_fn(outputs, targets)\n",
+    "                loss.backward()\n",
+    "                train_loss += loss.item()\n",
+    "                optimizer.step()\n",
+    "                scheduler.step()\n",
+    "\n",
+    "                self.zero_grad()\n",
+    "\n",
+    "            print(train_loss/len(train_dataloader))\n",
+    "\n",
+    "        return train_loss/len(train_dataloader)\n",
+    "\n",
+    "    def predict(self, sentence):\n",
+    "        max_len = MAX_LEN\n",
+    "\n",
+    "        inputs = tokenizer.__call__(sentence,\n",
+    "                            None,\n",
+    "                            add_special_tokens=True,\n",
+    "                            max_length=max_len,\n",
+    "                            padding=\"max_length\",\n",
+    "                            truncation=True,\n",
+    "                            )\n",
+    "        \n",
+    "        ids = inputs['input_ids']\n",
+    "        ids = torch.tensor(ids, dtype=torch.long)\n",
+    "        mask = inputs['attention_mask']\n",
+    "        mask = torch.tensor(mask, dtype=torch.long)\n",
+    "\n",
+    "        ids = ids.to(DEVICE, dtype=torch.long).unsqueeze(0)\n",
+    "        mask = mask.to(DEVICE, dtype=torch.long).unsqueeze(0)\n",
+    "\n",
+    "        self.eval()\n",
+    "        logits = self(ids=ids, mask=mask)\n",
+    "        result = torch.sigmoid(logits)\n",
+    "\n",
+    "        threshold = THRESHOLD\n",
+    "        valid_result = torch.ceil(result-threshold)\n",
+    "\n",
+    "        return result, valid_result"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 37,
+   "metadata": {
+    "colab": {
+     "base_uri": "https://localhost:8080/"
+    },
+    "id": "YpCllMJ-vnBF",
+    "outputId": "4edd1d93-f25f-42b4-fbd8-96ebdaa784f5"
+   },
+   "outputs": [
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "100%|█████████████████████████████████████████| 679/679 [02:45<00:00,  4.09it/s]"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "0.08460275066223692\n"
+     ]
+    },
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "\n",
+      "100%|█████████████████████████████████████████| 679/679 [02:48<00:00,  4.03it/s]"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "0.040693302283582\n"
+     ]
+    },
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "\n",
+      "100%|█████████████████████████████████████████| 679/679 [02:49<00:00,  4.01it/s]"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "0.030131448903813716\n"
+     ]
+    },
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "\n",
+      "100%|█████████████████████████████████████████| 679/679 [02:49<00:00,  4.00it/s]"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "0.022828093044108686\n"
+     ]
+    },
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "\n",
+      "100%|█████████████████████████████████████████| 679/679 [02:49<00:00,  4.00it/s]"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "0.01810119340034402\n"
+     ]
+    },
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "\n",
+      "100%|█████████████████████████████████████████| 679/679 [02:49<00:00,  4.00it/s]"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "0.014018819489775552\n"
+     ]
+    },
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "\n",
+      "100%|█████████████████████████████████████████| 679/679 [02:49<00:00,  4.00it/s]"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "0.010839861164429117\n"
+     ]
+    },
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "\n",
+      "100%|█████████████████████████████████████████| 679/679 [02:49<00:00,  3.99it/s]"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "0.00864474419936461\n"
+     ]
+    },
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "\n",
+      "100%|█████████████████████████████████████████| 679/679 [02:50<00:00,  3.99it/s]"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "0.007203779633901739\n"
+     ]
+    },
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "\n",
+      "100%|█████████████████████████████████████████| 679/679 [02:50<00:00,  3.99it/s]"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "0.006113793565487058\n"
+     ]
+    },
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "\n"
+     ]
+    },
+    {
+     "data": {
+      "text/plain": [
+       "0.006113793565487058"
+      ]
+     },
+     "execution_count": 37,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "n_train_steps = int(len(train) / BATCH_SIZE * 10)\n",
+    "model = BERTClass(n_train_steps,N_CLASSES,DROPOUT)\n",
+    "model.to(DEVICE)\n",
+    "model.fit(train_dataloader)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 38,
+   "metadata": {
+    "colab": {
+     "base_uri": "https://localhost:8080/"
+    },
+    "id": "k9tN8uupmIq-",
+    "outputId": "30387597-9528-4a73-e3a3-a27664f11e4a"
+   },
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "(tensor([[1.0308e-03, 2.1113e-03, 9.9846e-01, 1.5558e-03, 1.3114e-03, 8.4783e-04,\n",
+       "          6.4232e-04, 1.2279e-03, 1.8579e-03, 1.0868e-03, 9.7520e-04, 9.1735e-04,\n",
+       "          7.2227e-04, 1.2945e-03, 3.0550e-03]], device='cuda:0',\n",
+       "        grad_fn=<SigmoidBackward0>),\n",
+       " tensor([[-0., -0., 1., -0., -0., -0., -0., -0., -0., -0., -0., -0., -0., -0., -0.]],\n",
+       "        device='cuda:0', grad_fn=<CeilBackward0>))"
+      ]
+     },
+     "execution_count": 38,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "model.predict(\"Troll, bro. They know they're saying stupid shit. The motherfucker does nothing but stink up libertarian subs talking shit\")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 39,
+   "metadata": {
+    "id": "qItwE1Zjo3ru"
+   },
+   "outputs": [],
+   "source": [
+    "torch.save(model, './saved_model')"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  }
+ ],
+ "metadata": {
+  "accelerator": "GPU",
+  "colab": {
+   "gpuType": "T4",
+   "provenance": []
+  },
+  "gpuClass": "standard",
+  "kernelspec": {
+   "display_name": "Python 3 (ipykernel)",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.10.6"
+  },
+  "widgets": {
+   "application/vnd.jupyter.widget-state+json": {
+    "001a565c61f34b6fa712bf707708ebea": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "DescriptionStyleModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "DescriptionStyleModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "StyleView",
+      "description_width": ""
+     }
+    },
+    "00cdbd9bf01d44439927da43fcbd0457": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "HBoxModel",
+     "state": {
+      "_dom_classes": [],
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "HBoxModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/controls",
+      "_view_module_version": "1.5.0",
+      "_view_name": "HBoxView",
+      "box_style": "",
+      "children": [
+       "IPY_MODEL_02b6ee7c20904a30b6bebb766ed04ee3",
+       "IPY_MODEL_96a0690d35d94ebb8c7686a0e494f2d9",
+       "IPY_MODEL_e2ae09fc8a32485cbaa640dd9eb15a66"
+      ],
+      "layout": "IPY_MODEL_b1b80df123d54887a94901583d4fc07c"
+     }
+    },
+    "01fde0a208b44888b141662a2d2d68f4": {
+     "model_module": "@jupyter-widgets/base",
+     "model_module_version": "1.2.0",
+     "model_name": "LayoutModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/base",
+      "_model_module_version": "1.2.0",
+      "_model_name": "LayoutModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "LayoutView",
+      "align_content": null,
+      "align_items": null,
+      "align_self": null,
+      "border": null,
+      "bottom": null,
+      "display": null,
+      "flex": null,
+      "flex_flow": null,
+      "grid_area": null,
+      "grid_auto_columns": null,
+      "grid_auto_flow": null,
+      "grid_auto_rows": null,
+      "grid_column": null,
+      "grid_gap": null,
+      "grid_row": null,
+      "grid_template_areas": null,
+      "grid_template_columns": null,
+      "grid_template_rows": null,
+      "height": null,
+      "justify_content": null,
+      "justify_items": null,
+      "left": null,
+      "margin": null,
+      "max_height": null,
+      "max_width": null,
+      "min_height": null,
+      "min_width": null,
+      "object_fit": null,
+      "object_position": null,
+      "order": null,
+      "overflow": null,
+      "overflow_x": null,
+      "overflow_y": null,
+      "padding": null,
+      "right": null,
+      "top": null,
+      "visibility": null,
+      "width": null
+     }
+    },
+    "02b6ee7c20904a30b6bebb766ed04ee3": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "HTMLModel",
+     "state": {
+      "_dom_classes": [],
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "HTMLModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/controls",
+      "_view_module_version": "1.5.0",
+      "_view_name": "HTMLView",
+      "description": "",
+      "description_tooltip": null,
+      "layout": "IPY_MODEL_6f7faaaf70104bfbb4c00f7a9fadc0e5",
+      "placeholder": "​",
+      "style": "IPY_MODEL_c35b2c3c44234b0c9f38db2ecfd63c40",
+      "value": "Downloading (…)solve/main/vocab.txt: 100%"
+     }
+    },
+    "07dd80e6e6bc4736975ce8d8f449e1ee": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "HTMLModel",
+     "state": {
+      "_dom_classes": [],
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "HTMLModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/controls",
+      "_view_module_version": "1.5.0",
+      "_view_name": "HTMLView",
+      "description": "",
+      "description_tooltip": null,
+      "layout": "IPY_MODEL_a7340148c58f4dccb83b923becfcd06b",
+      "placeholder": "​",
+      "style": "IPY_MODEL_df263cd531304449807d4b2e910b8d34",
+      "value": " 4118/5427 [00:00&lt;00:00, 19009.88 examples/s]"
+     }
+    },
+    "08d05fd427454a9f838a881fcb67ba1d": {
+     "model_module": "@jupyter-widgets/base",
+     "model_module_version": "1.2.0",
+     "model_name": "LayoutModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/base",
+      "_model_module_version": "1.2.0",
+      "_model_name": "LayoutModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "LayoutView",
+      "align_content": null,
+      "align_items": null,
+      "align_self": null,
+      "border": null,
+      "bottom": null,
+      "display": null,
+      "flex": null,
+      "flex_flow": null,
+      "grid_area": null,
+      "grid_auto_columns": null,
+      "grid_auto_flow": null,
+      "grid_auto_rows": null,
+      "grid_column": null,
+      "grid_gap": null,
+      "grid_row": null,
+      "grid_template_areas": null,
+      "grid_template_columns": null,
+      "grid_template_rows": null,
+      "height": null,
+      "justify_content": null,
+      "justify_items": null,
+      "left": null,
+      "margin": null,
+      "max_height": null,
+      "max_width": null,
+      "min_height": null,
+      "min_width": null,
+      "object_fit": null,
+      "object_position": null,
+      "order": null,
+      "overflow": null,
+      "overflow_x": null,
+      "overflow_y": null,
+      "padding": null,
+      "right": null,
+      "top": null,
+      "visibility": null,
+      "width": null
+     }
+    },
+    "0b8dbb83e6594a1d9555af75346b76de": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "FloatProgressModel",
+     "state": {
+      "_dom_classes": [],
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "FloatProgressModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/controls",
+      "_view_module_version": "1.5.0",
+      "_view_name": "ProgressView",
+      "bar_style": "success",
+      "description": "",
+      "description_tooltip": null,
+      "layout": "IPY_MODEL_f3fe6f19b2c347c495b26754794ee83c",
+      "max": 201089,
+      "min": 0,
+      "orientation": "horizontal",
+      "style": "IPY_MODEL_37aa594a6cea4bf08b7507383df0b4aa",
+      "value": 201089
+     }
+    },
+    "0cb7edcf167d4c978df9f8ba788dc8a2": {
+     "model_module": "@jupyter-widgets/base",
+     "model_module_version": "1.2.0",
+     "model_name": "LayoutModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/base",
+      "_model_module_version": "1.2.0",
+      "_model_name": "LayoutModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "LayoutView",
+      "align_content": null,
+      "align_items": null,
+      "align_self": null,
+      "border": null,
+      "bottom": null,
+      "display": null,
+      "flex": null,
+      "flex_flow": null,
+      "grid_area": null,
+      "grid_auto_columns": null,
+      "grid_auto_flow": null,
+      "grid_auto_rows": null,
+      "grid_column": null,
+      "grid_gap": null,
+      "grid_row": null,
+      "grid_template_areas": null,
+      "grid_template_columns": null,
+      "grid_template_rows": null,
+      "height": null,
+      "justify_content": null,
+      "justify_items": null,
+      "left": null,
+      "margin": null,
+      "max_height": null,
+      "max_width": null,
+      "min_height": null,
+      "min_width": null,
+      "object_fit": null,
+      "object_position": null,
+      "order": null,
+      "overflow": null,
+      "overflow_x": null,
+      "overflow_y": null,
+      "padding": null,
+      "right": null,
+      "top": null,
+      "visibility": "hidden",
+      "width": null
+     }
+    },
+    "0dde0bcc8b4a484fb8940e1038c82e6d": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "HTMLModel",
+     "state": {
+      "_dom_classes": [],
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "HTMLModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/controls",
+      "_view_module_version": "1.5.0",
+      "_view_name": "HTMLView",
+      "description": "",
+      "description_tooltip": null,
+      "layout": "IPY_MODEL_433a0b8755e64748b41b544a8a735272",
+      "placeholder": "​",
+      "style": "IPY_MODEL_a0252393a0574c61a0c963995184ffd1",
+      "value": "100%"
+     }
+    },
+    "0e8a035a0c9f497b8dcd85ebe49ba925": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "HTMLModel",
+     "state": {
+      "_dom_classes": [],
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "HTMLModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/controls",
+      "_view_module_version": "1.5.0",
+      "_view_name": "HTMLView",
+      "description": "",
+      "description_tooltip": null,
+      "layout": "IPY_MODEL_68559c5a26674b93a73816cbf05f16e5",
+      "placeholder": "​",
+      "style": "IPY_MODEL_65d3a546b781480c8a89b89bae3bb8cb",
+      "value": " 28.0/28.0 [00:00&lt;00:00, 2.35kB/s]"
+     }
+    },
+    "0f8cc675c9144b12bd16736e98616628": {
+     "model_module": "@jupyter-widgets/base",
+     "model_module_version": "1.2.0",
+     "model_name": "LayoutModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/base",
+      "_model_module_version": "1.2.0",
+      "_model_name": "LayoutModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "LayoutView",
+      "align_content": null,
+      "align_items": null,
+      "align_self": null,
+      "border": null,
+      "bottom": null,
+      "display": null,
+      "flex": null,
+      "flex_flow": null,
+      "grid_area": null,
+      "grid_auto_columns": null,
+      "grid_auto_flow": null,
+      "grid_auto_rows": null,
+      "grid_column": null,
+      "grid_gap": null,
+      "grid_row": null,
+      "grid_template_areas": null,
+      "grid_template_columns": null,
+      "grid_template_rows": null,
+      "height": null,
+      "justify_content": null,
+      "justify_items": null,
+      "left": null,
+      "margin": null,
+      "max_height": null,
+      "max_width": null,
+      "min_height": null,
+      "min_width": null,
+      "object_fit": null,
+      "object_position": null,
+      "order": null,
+      "overflow": null,
+      "overflow_x": null,
+      "overflow_y": null,
+      "padding": null,
+      "right": null,
+      "top": null,
+      "visibility": null,
+      "width": null
+     }
+    },
+    "103c61e456ef40e38acc923c3f66453d": {
+     "model_module": "@jupyter-widgets/base",
+     "model_module_version": "1.2.0",
+     "model_name": "LayoutModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/base",
+      "_model_module_version": "1.2.0",
+      "_model_name": "LayoutModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "LayoutView",
+      "align_content": null,
+      "align_items": null,
+      "align_self": null,
+      "border": null,
+      "bottom": null,
+      "display": null,
+      "flex": null,
+      "flex_flow": null,
+      "grid_area": null,
+      "grid_auto_columns": null,
+      "grid_auto_flow": null,
+      "grid_auto_rows": null,
+      "grid_column": null,
+      "grid_gap": null,
+      "grid_row": null,
+      "grid_template_areas": null,
+      "grid_template_columns": null,
+      "grid_template_rows": null,
+      "height": null,
+      "justify_content": null,
+      "justify_items": null,
+      "left": null,
+      "margin": null,
+      "max_height": null,
+      "max_width": null,
+      "min_height": null,
+      "min_width": null,
+      "object_fit": null,
+      "object_position": null,
+      "order": null,
+      "overflow": null,
+      "overflow_x": null,
+      "overflow_y": null,
+      "padding": null,
+      "right": null,
+      "top": null,
+      "visibility": null,
+      "width": null
+     }
+    },
+    "10542e75191b4801af12e6cb3c31e701": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "HTMLModel",
+     "state": {
+      "_dom_classes": [],
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "HTMLModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/controls",
+      "_view_module_version": "1.5.0",
+      "_view_name": "HTMLView",
+      "description": "",
+      "description_tooltip": null,
+      "layout": "IPY_MODEL_1fed635c73104a478d0c0d214e03fe8d",
+      "placeholder": "​",
+      "style": "IPY_MODEL_c9d4be94e9a34a78a0a258c4f298d517",
+      "value": " 483/483 [00:00&lt;00:00, 31.7kB/s]"
+     }
+    },
+    "115db74b275e4739a6c8ffe3a6704d35": {
+     "model_module": "@jupyter-widgets/base",
+     "model_module_version": "1.2.0",
+     "model_name": "LayoutModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/base",
+      "_model_module_version": "1.2.0",
+      "_model_name": "LayoutModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "LayoutView",
+      "align_content": null,
+      "align_items": null,
+      "align_self": null,
+      "border": null,
+      "bottom": null,
+      "display": null,
+      "flex": null,
+      "flex_flow": null,
+      "grid_area": null,
+      "grid_auto_columns": null,
+      "grid_auto_flow": null,
+      "grid_auto_rows": null,
+      "grid_column": null,
+      "grid_gap": null,
+      "grid_row": null,
+      "grid_template_areas": null,
+      "grid_template_columns": null,
+      "grid_template_rows": null,
+      "height": null,
+      "justify_content": null,
+      "justify_items": null,
+      "left": null,
+      "margin": null,
+      "max_height": null,
+      "max_width": null,
+      "min_height": null,
+      "min_width": null,
+      "object_fit": null,
+      "object_position": null,
+      "order": null,
+      "overflow": null,
+      "overflow_x": null,
+      "overflow_y": null,
+      "padding": null,
+      "right": null,
+      "top": null,
+      "visibility": null,
+      "width": null
+     }
+    },
+    "14d78ace8f8b486aa06f1863c5839b69": {
+     "model_module": "@jupyter-widgets/base",
+     "model_module_version": "1.2.0",
+     "model_name": "LayoutModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/base",
+      "_model_module_version": "1.2.0",
+      "_model_name": "LayoutModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "LayoutView",
+      "align_content": null,
+      "align_items": null,
+      "align_self": null,
+      "border": null,
+      "bottom": null,
+      "display": null,
+      "flex": null,
+      "flex_flow": null,
+      "grid_area": null,
+      "grid_auto_columns": null,
+      "grid_auto_flow": null,
+      "grid_auto_rows": null,
+      "grid_column": null,
+      "grid_gap": null,
+      "grid_row": null,
+      "grid_template_areas": null,
+      "grid_template_columns": null,
+      "grid_template_rows": null,
+      "height": null,
+      "justify_content": null,
+      "justify_items": null,
+      "left": null,
+      "margin": null,
+      "max_height": null,
+      "max_width": null,
+      "min_height": null,
+      "min_width": null,
+      "object_fit": null,
+      "object_position": null,
+      "order": null,
+      "overflow": null,
+      "overflow_x": null,
+      "overflow_y": null,
+      "padding": null,
+      "right": null,
+      "top": null,
+      "visibility": null,
+      "width": null
+     }
+    },
+    "159adfe2f2b04ba893da8c031403afa4": {
+     "model_module": "@jupyter-widgets/base",
+     "model_module_version": "1.2.0",
+     "model_name": "LayoutModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/base",
+      "_model_module_version": "1.2.0",
+      "_model_name": "LayoutModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "LayoutView",
+      "align_content": null,
+      "align_items": null,
+      "align_self": null,
+      "border": null,
+      "bottom": null,
+      "display": null,
+      "flex": null,
+      "flex_flow": null,
+      "grid_area": null,
+      "grid_auto_columns": null,
+      "grid_auto_flow": null,
+      "grid_auto_rows": null,
+      "grid_column": null,
+      "grid_gap": null,
+      "grid_row": null,
+      "grid_template_areas": null,
+      "grid_template_columns": null,
+      "grid_template_rows": null,
+      "height": null,
+      "justify_content": null,
+      "justify_items": null,
+      "left": null,
+      "margin": null,
+      "max_height": null,
+      "max_width": null,
+      "min_height": null,
+      "min_width": null,
+      "object_fit": null,
+      "object_position": null,
+      "order": null,
+      "overflow": null,
+      "overflow_x": null,
+      "overflow_y": null,
+      "padding": null,
+      "right": null,
+      "top": null,
+      "visibility": null,
+      "width": null
+     }
+    },
+    "15c7f2a8acdb408681fad01dfc165631": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "ProgressStyleModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "ProgressStyleModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "StyleView",
+      "bar_color": null,
+      "description_width": ""
+     }
+    },
+    "183d051942fd4f8e9d22fb28fa4a187b": {
+     "model_module": "@jupyter-widgets/base",
+     "model_module_version": "1.2.0",
+     "model_name": "LayoutModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/base",
+      "_model_module_version": "1.2.0",
+      "_model_name": "LayoutModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "LayoutView",
+      "align_content": null,
+      "align_items": null,
+      "align_self": null,
+      "border": null,
+      "bottom": null,
+      "display": null,
+      "flex": null,
+      "flex_flow": null,
+      "grid_area": null,
+      "grid_auto_columns": null,
+      "grid_auto_flow": null,
+      "grid_auto_rows": null,
+      "grid_column": null,
+      "grid_gap": null,
+      "grid_row": null,
+      "grid_template_areas": null,
+      "grid_template_columns": null,
+      "grid_template_rows": null,
+      "height": null,
+      "justify_content": null,
+      "justify_items": null,
+      "left": null,
+      "margin": null,
+      "max_height": null,
+      "max_width": null,
+      "min_height": null,
+      "min_width": null,
+      "object_fit": null,
+      "object_position": null,
+      "order": null,
+      "overflow": null,
+      "overflow_x": null,
+      "overflow_y": null,
+      "padding": null,
+      "right": null,
+      "top": null,
+      "visibility": null,
+      "width": null
+     }
+    },
+    "192400b236924d9fbedb3fe4a2c8ceb0": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "DescriptionStyleModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "DescriptionStyleModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "StyleView",
+      "description_width": ""
+     }
+    },
+    "1d7eb6895078493e9c4583744226d47f": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "HTMLModel",
+     "state": {
+      "_dom_classes": [],
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "HTMLModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/controls",
+      "_view_module_version": "1.5.0",
+      "_view_name": "HTMLView",
+      "description": "",
+      "description_tooltip": null,
+      "layout": "IPY_MODEL_93a6431b88cf49b788f902d09c0c04bc",
+      "placeholder": "​",
+      "style": "IPY_MODEL_c0d44b8f7b124ca09c05b50de2a47be0",
+      "value": "Generating train split:  99%"
+     }
+    },
+    "1e721af94e0943708122f7f84a97cd2f": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "ProgressStyleModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "ProgressStyleModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "StyleView",
+      "bar_color": null,
+      "description_width": ""
+     }
+    },
+    "1f5adc08173b46059d62d47fa223acde": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "HTMLModel",
+     "state": {
+      "_dom_classes": [],
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "HTMLModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/controls",
+      "_view_module_version": "1.5.0",
+      "_view_name": "HTMLView",
+      "description": "",
+      "description_tooltip": null,
+      "layout": "IPY_MODEL_be4cbcc94fa14e8fb1a2a151c6cc277a",
+      "placeholder": "​",
+      "style": "IPY_MODEL_de26caab06714549abbfa74b57b14c7f",
+      "value": " 3.52M/? [00:00&lt;00:00, 40.4MB/s]"
+     }
+    },
+    "1fed635c73104a478d0c0d214e03fe8d": {
+     "model_module": "@jupyter-widgets/base",
+     "model_module_version": "1.2.0",
+     "model_name": "LayoutModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/base",
+      "_model_module_version": "1.2.0",
+      "_model_name": "LayoutModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "LayoutView",
+      "align_content": null,
+      "align_items": null,
+      "align_self": null,
+      "border": null,
+      "bottom": null,
+      "display": null,
+      "flex": null,
+      "flex_flow": null,
+      "grid_area": null,
+      "grid_auto_columns": null,
+      "grid_auto_flow": null,
+      "grid_auto_rows": null,
+      "grid_column": null,
+      "grid_gap": null,
+      "grid_row": null,
+      "grid_template_areas": null,
+      "grid_template_columns": null,
+      "grid_template_rows": null,
+      "height": null,
+      "justify_content": null,
+      "justify_items": null,
+      "left": null,
+      "margin": null,
+      "max_height": null,
+      "max_width": null,
+      "min_height": null,
+      "min_width": null,
+      "object_fit": null,
+      "object_position": null,
+      "order": null,
+      "overflow": null,
+      "overflow_x": null,
+      "overflow_y": null,
+      "padding": null,
+      "right": null,
+      "top": null,
+      "visibility": null,
+      "width": null
+     }
+    },
+    "2452483b653e46e78e76c17efc4dce97": {
+     "model_module": "@jupyter-widgets/base",
+     "model_module_version": "1.2.0",
+     "model_name": "LayoutModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/base",
+      "_model_module_version": "1.2.0",
+      "_model_name": "LayoutModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "LayoutView",
+      "align_content": null,
+      "align_items": null,
+      "align_self": null,
+      "border": null,
+      "bottom": null,
+      "display": null,
+      "flex": null,
+      "flex_flow": null,
+      "grid_area": null,
+      "grid_auto_columns": null,
+      "grid_auto_flow": null,
+      "grid_auto_rows": null,
+      "grid_column": null,
+      "grid_gap": null,
+      "grid_row": null,
+      "grid_template_areas": null,
+      "grid_template_columns": null,
+      "grid_template_rows": null,
+      "height": null,
+      "justify_content": null,
+      "justify_items": null,
+      "left": null,
+      "margin": null,
+      "max_height": null,
+      "max_width": null,
+      "min_height": null,
+      "min_width": null,
+      "object_fit": null,
+      "object_position": null,
+      "order": null,
+      "overflow": null,
+      "overflow_x": null,
+      "overflow_y": null,
+      "padding": null,
+      "right": null,
+      "top": null,
+      "visibility": null,
+      "width": null
+     }
+    },
+    "27cc567cf1524d16a3756ba46c98b511": {
+     "model_module": "@jupyter-widgets/base",
+     "model_module_version": "1.2.0",
+     "model_name": "LayoutModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/base",
+      "_model_module_version": "1.2.0",
+      "_model_name": "LayoutModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "LayoutView",
+      "align_content": null,
+      "align_items": null,
+      "align_self": null,
+      "border": null,
+      "bottom": null,
+      "display": null,
+      "flex": null,
+      "flex_flow": null,
+      "grid_area": null,
+      "grid_auto_columns": null,
+      "grid_auto_flow": null,
+      "grid_auto_rows": null,
+      "grid_column": null,
+      "grid_gap": null,
+      "grid_row": null,
+      "grid_template_areas": null,
+      "grid_template_columns": null,
+      "grid_template_rows": null,
+      "height": null,
+      "justify_content": null,
+      "justify_items": null,
+      "left": null,
+      "margin": null,
+      "max_height": null,
+      "max_width": null,
+      "min_height": null,
+      "min_width": null,
+      "object_fit": null,
+      "object_position": null,
+      "order": null,
+      "overflow": null,
+      "overflow_x": null,
+      "overflow_y": null,
+      "padding": null,
+      "right": null,
+      "top": null,
+      "visibility": null,
+      "width": null
+     }
+    },
+    "281ea8dd86e54bc287fea79b7e6047d8": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "ProgressStyleModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "ProgressStyleModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "StyleView",
+      "bar_color": null,
+      "description_width": ""
+     }
+    },
+    "29c19726a4b2451a8e23de3b589ca7e9": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "ProgressStyleModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "ProgressStyleModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "StyleView",
+      "bar_color": null,
+      "description_width": ""
+     }
+    },
+    "2a595d03b2a64ebd93ad9240a8a4ecc8": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "DescriptionStyleModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "DescriptionStyleModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "StyleView",
+      "description_width": ""
+     }
+    },
+    "2b923cd6d7d0439489f467e95f5f0949": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "FloatProgressModel",
+     "state": {
+      "_dom_classes": [],
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "FloatProgressModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/controls",
+      "_view_module_version": "1.5.0",
+      "_view_name": "ProgressView",
+      "bar_style": "success",
+      "description": "",
+      "description_tooltip": null,
+      "layout": "IPY_MODEL_01fde0a208b44888b141662a2d2d68f4",
+      "max": 483,
+      "min": 0,
+      "orientation": "horizontal",
+      "style": "IPY_MODEL_29c19726a4b2451a8e23de3b589ca7e9",
+      "value": 483
+     }
+    },
+    "2fd6865874a8416398053b2d8ffe9b19": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "HTMLModel",
+     "state": {
+      "_dom_classes": [],
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "HTMLModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/controls",
+      "_view_module_version": "1.5.0",
+      "_view_name": "HTMLView",
+      "description": "",
+      "description_tooltip": null,
+      "layout": "IPY_MODEL_dcea04339bf84003ba7bf64293c61b67",
+      "placeholder": "​",
+      "style": "IPY_MODEL_e4931bd9f8a944d88a3f047d8dc69f34",
+      "value": "Downloading builder script: 100%"
+     }
+    },
+    "30ba68fbd57c4520a9bb9a60bd273004": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "HTMLModel",
+     "state": {
+      "_dom_classes": [],
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "HTMLModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/controls",
+      "_view_module_version": "1.5.0",
+      "_view_name": "HTMLView",
+      "description": "",
+      "description_tooltip": null,
+      "layout": "IPY_MODEL_4ab04a5a551244258fa03e5ebec1bc14",
+      "placeholder": "​",
+      "style": "IPY_MODEL_860ab4bb0e534e4182d2e8435de8e78f",
+      "value": "Downloading (…)lve/main/config.json: 100%"
+     }
+    },
+    "3165ed28b5e94fa08d5ba2109b59ef16": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "DescriptionStyleModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "DescriptionStyleModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "StyleView",
+      "description_width": ""
+     }
+    },
+    "316efda5203044cf8ff3f63a8d9aff28": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "FloatProgressModel",
+     "state": {
+      "_dom_classes": [],
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "FloatProgressModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/controls",
+      "_view_module_version": "1.5.0",
+      "_view_name": "ProgressView",
+      "bar_style": "",
+      "description": "",
+      "description_tooltip": null,
+      "layout": "IPY_MODEL_6ac78c482ef443ddbf8c1bd5304ff3b4",
+      "max": 43410,
+      "min": 0,
+      "orientation": "horizontal",
+      "style": "IPY_MODEL_fc93f5f071704639b8e4d0348f2faefa",
+      "value": 43410
+     }
+    },
+    "33fff913ffa942f48a177b74cf000bed": {
+     "model_module": "@jupyter-widgets/base",
+     "model_module_version": "1.2.0",
+     "model_name": "LayoutModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/base",
+      "_model_module_version": "1.2.0",
+      "_model_name": "LayoutModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "LayoutView",
+      "align_content": null,
+      "align_items": null,
+      "align_self": null,
+      "border": null,
+      "bottom": null,
+      "display": null,
+      "flex": null,
+      "flex_flow": null,
+      "grid_area": null,
+      "grid_auto_columns": null,
+      "grid_auto_flow": null,
+      "grid_auto_rows": null,
+      "grid_column": null,
+      "grid_gap": null,
+      "grid_row": null,
+      "grid_template_areas": null,
+      "grid_template_columns": null,
+      "grid_template_rows": null,
+      "height": null,
+      "justify_content": null,
+      "justify_items": null,
+      "left": null,
+      "margin": null,
+      "max_height": null,
+      "max_width": null,
+      "min_height": null,
+      "min_width": null,
+      "object_fit": null,
+      "object_position": null,
+      "order": null,
+      "overflow": null,
+      "overflow_x": null,
+      "overflow_y": null,
+      "padding": null,
+      "right": null,
+      "top": null,
+      "visibility": null,
+      "width": null
+     }
+    },
+    "35f9214e3c46433ea90b6ac57208b912": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "ProgressStyleModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "ProgressStyleModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "StyleView",
+      "bar_color": null,
+      "description_width": ""
+     }
+    },
+    "368cef8067eb4da884a95d96bd437d5c": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "HTMLModel",
+     "state": {
+      "_dom_classes": [],
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "HTMLModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/controls",
+      "_view_module_version": "1.5.0",
+      "_view_name": "HTMLView",
+      "description": "",
+      "description_tooltip": null,
+      "layout": "IPY_MODEL_4a1f8f8a3f19433fb2b11a5894cb3c0a",
+      "placeholder": "​",
+      "style": "IPY_MODEL_2a595d03b2a64ebd93ad9240a8a4ecc8",
+      "value": " 42825/43410 [00:03&lt;00:00, 10167.60 examples/s]"
+     }
+    },
+    "37aa594a6cea4bf08b7507383df0b4aa": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "ProgressStyleModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "ProgressStyleModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "StyleView",
+      "bar_color": null,
+      "description_width": ""
+     }
+    },
+    "398b243994ff47f2bc5e26f680cf812e": {
+     "model_module": "@jupyter-widgets/base",
+     "model_module_version": "1.2.0",
+     "model_name": "LayoutModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/base",
+      "_model_module_version": "1.2.0",
+      "_model_name": "LayoutModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "LayoutView",
+      "align_content": null,
+      "align_items": null,
+      "align_self": null,
+      "border": null,
+      "bottom": null,
+      "display": null,
+      "flex": null,
+      "flex_flow": null,
+      "grid_area": null,
+      "grid_auto_columns": null,
+      "grid_auto_flow": null,
+      "grid_auto_rows": null,
+      "grid_column": null,
+      "grid_gap": null,
+      "grid_row": null,
+      "grid_template_areas": null,
+      "grid_template_columns": null,
+      "grid_template_rows": null,
+      "height": null,
+      "justify_content": null,
+      "justify_items": null,
+      "left": null,
+      "margin": null,
+      "max_height": null,
+      "max_width": null,
+      "min_height": null,
+      "min_width": null,
+      "object_fit": null,
+      "object_position": null,
+      "order": null,
+      "overflow": null,
+      "overflow_x": null,
+      "overflow_y": null,
+      "padding": null,
+      "right": null,
+      "top": null,
+      "visibility": null,
+      "width": null
+     }
+    },
+    "3a8f303416994654aecb27b9369a09b5": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "HTMLModel",
+     "state": {
+      "_dom_classes": [],
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "HTMLModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/controls",
+      "_view_module_version": "1.5.0",
+      "_view_name": "HTMLView",
+      "description": "",
+      "description_tooltip": null,
+      "layout": "IPY_MODEL_76eb7882d2464c34bdf4f051ab6427af",
+      "placeholder": "​",
+      "style": "IPY_MODEL_85f1aa3acc9e4dc4b224759a7173a54e",
+      "value": "Downloading data: "
+     }
+    },
+    "3e668795519e4ff3b8bb407738ef452c": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "HTMLModel",
+     "state": {
+      "_dom_classes": [],
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "HTMLModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/controls",
+      "_view_module_version": "1.5.0",
+      "_view_name": "HTMLView",
+      "description": "",
+      "description_tooltip": null,
+      "layout": "IPY_MODEL_0f8cc675c9144b12bd16736e98616628",
+      "placeholder": "​",
+      "style": "IPY_MODEL_43131f7f3eaa4356ac8b1137e603e63c",
+      "value": "Downloading (…)okenizer_config.json: 100%"
+     }
+    },
+    "427a8d8c77034bc2b77c8857614f2e70": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "DescriptionStyleModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "DescriptionStyleModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "StyleView",
+      "description_width": ""
+     }
+    },
+    "43131f7f3eaa4356ac8b1137e603e63c": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "DescriptionStyleModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "DescriptionStyleModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "StyleView",
+      "description_width": ""
+     }
+    },
+    "433a0b8755e64748b41b544a8a735272": {
+     "model_module": "@jupyter-widgets/base",
+     "model_module_version": "1.2.0",
+     "model_name": "LayoutModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/base",
+      "_model_module_version": "1.2.0",
+      "_model_name": "LayoutModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "LayoutView",
+      "align_content": null,
+      "align_items": null,
+      "align_self": null,
+      "border": null,
+      "bottom": null,
+      "display": null,
+      "flex": null,
+      "flex_flow": null,
+      "grid_area": null,
+      "grid_auto_columns": null,
+      "grid_auto_flow": null,
+      "grid_auto_rows": null,
+      "grid_column": null,
+      "grid_gap": null,
+      "grid_row": null,
+      "grid_template_areas": null,
+      "grid_template_columns": null,
+      "grid_template_rows": null,
+      "height": null,
+      "justify_content": null,
+      "justify_items": null,
+      "left": null,
+      "margin": null,
+      "max_height": null,
+      "max_width": null,
+      "min_height": null,
+      "min_width": null,
+      "object_fit": null,
+      "object_position": null,
+      "order": null,
+      "overflow": null,
+      "overflow_x": null,
+      "overflow_y": null,
+      "padding": null,
+      "right": null,
+      "top": null,
+      "visibility": null,
+      "width": null
+     }
+    },
+    "473ed99c37104bf7add98ec4af974950": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "DescriptionStyleModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "DescriptionStyleModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "StyleView",
+      "description_width": ""
+     }
+    },
+    "4a1f8f8a3f19433fb2b11a5894cb3c0a": {
+     "model_module": "@jupyter-widgets/base",
+     "model_module_version": "1.2.0",
+     "model_name": "LayoutModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/base",
+      "_model_module_version": "1.2.0",
+      "_model_name": "LayoutModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "LayoutView",
+      "align_content": null,
+      "align_items": null,
+      "align_self": null,
+      "border": null,
+      "bottom": null,
+      "display": null,
+      "flex": null,
+      "flex_flow": null,
+      "grid_area": null,
+      "grid_auto_columns": null,
+      "grid_auto_flow": null,
+      "grid_auto_rows": null,
+      "grid_column": null,
+      "grid_gap": null,
+      "grid_row": null,
+      "grid_template_areas": null,
+      "grid_template_columns": null,
+      "grid_template_rows": null,
+      "height": null,
+      "justify_content": null,
+      "justify_items": null,
+      "left": null,
+      "margin": null,
+      "max_height": null,
+      "max_width": null,
+      "min_height": null,
+      "min_width": null,
+      "object_fit": null,
+      "object_position": null,
+      "order": null,
+      "overflow": null,
+      "overflow_x": null,
+      "overflow_y": null,
+      "padding": null,
+      "right": null,
+      "top": null,
+      "visibility": null,
+      "width": null
+     }
+    },
+    "4ab04a5a551244258fa03e5ebec1bc14": {
+     "model_module": "@jupyter-widgets/base",
+     "model_module_version": "1.2.0",
+     "model_name": "LayoutModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/base",
+      "_model_module_version": "1.2.0",
+      "_model_name": "LayoutModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "LayoutView",
+      "align_content": null,
+      "align_items": null,
+      "align_self": null,
+      "border": null,
+      "bottom": null,
+      "display": null,
+      "flex": null,
+      "flex_flow": null,
+      "grid_area": null,
+      "grid_auto_columns": null,
+      "grid_auto_flow": null,
+      "grid_auto_rows": null,
+      "grid_column": null,
+      "grid_gap": null,
+      "grid_row": null,
+      "grid_template_areas": null,
+      "grid_template_columns": null,
+      "grid_template_rows": null,
+      "height": null,
+      "justify_content": null,
+      "justify_items": null,
+      "left": null,
+      "margin": null,
+      "max_height": null,
+      "max_width": null,
+      "min_height": null,
+      "min_width": null,
+      "object_fit": null,
+      "object_position": null,
+      "order": null,
+      "overflow": null,
+      "overflow_x": null,
+      "overflow_y": null,
+      "padding": null,
+      "right": null,
+      "top": null,
+      "visibility": null,
+      "width": null
+     }
+    },
+    "4ab106813dbe453eacd7ba5a0bdf8445": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "HBoxModel",
+     "state": {
+      "_dom_classes": [],
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "HBoxModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/controls",
+      "_view_module_version": "1.5.0",
+      "_view_name": "HBoxView",
+      "box_style": "",
+      "children": [
+       "IPY_MODEL_3e668795519e4ff3b8bb407738ef452c",
+       "IPY_MODEL_88db820882c645398518322a7f990c99",
+       "IPY_MODEL_0e8a035a0c9f497b8dcd85ebe49ba925"
+      ],
+      "layout": "IPY_MODEL_bf5efdf20b92407e86df682b797bff7e"
+     }
+    },
+    "4af835fa4b84436c94724bec2c6a53e8": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "HBoxModel",
+     "state": {
+      "_dom_classes": [],
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "HBoxModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/controls",
+      "_view_module_version": "1.5.0",
+      "_view_name": "HBoxView",
+      "box_style": "",
+      "children": [
+       "IPY_MODEL_5ee5ad3f4b6041d0b0890d44fa8ded47",
+       "IPY_MODEL_c3c2245643bf44e9b2d7885182f79534",
+       "IPY_MODEL_721b59d9ab354a6483f2beded2f25cc0"
+      ],
+      "layout": "IPY_MODEL_c572997f6e6a42c799f63718d42a00a0"
+     }
+    },
+    "4e75ff8087864124b3549c83f54190fc": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "ProgressStyleModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "ProgressStyleModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "StyleView",
+      "bar_color": null,
+      "description_width": ""
+     }
+    },
+    "4fba2ba144ed4dc296275329e8613c91": {
+     "model_module": "@jupyter-widgets/base",
+     "model_module_version": "1.2.0",
+     "model_name": "LayoutModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/base",
+      "_model_module_version": "1.2.0",
+      "_model_name": "LayoutModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "LayoutView",
+      "align_content": null,
+      "align_items": null,
+      "align_self": null,
+      "border": null,
+      "bottom": null,
+      "display": null,
+      "flex": null,
+      "flex_flow": null,
+      "grid_area": null,
+      "grid_auto_columns": null,
+      "grid_auto_flow": null,
+      "grid_auto_rows": null,
+      "grid_column": null,
+      "grid_gap": null,
+      "grid_row": null,
+      "grid_template_areas": null,
+      "grid_template_columns": null,
+      "grid_template_rows": null,
+      "height": null,
+      "justify_content": null,
+      "justify_items": null,
+      "left": null,
+      "margin": null,
+      "max_height": null,
+      "max_width": null,
+      "min_height": null,
+      "min_width": null,
+      "object_fit": null,
+      "object_position": null,
+      "order": null,
+      "overflow": null,
+      "overflow_x": null,
+      "overflow_y": null,
+      "padding": null,
+      "right": null,
+      "top": null,
+      "visibility": null,
+      "width": null
+     }
+    },
+    "5156eb82e58a42d68fc10a0822401522": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "HBoxModel",
+     "state": {
+      "_dom_classes": [],
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "HBoxModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/controls",
+      "_view_module_version": "1.5.0",
+      "_view_name": "HBoxView",
+      "box_style": "",
+      "children": [
+       "IPY_MODEL_c0a5eb3d401c42f8b18ac1a385734afb",
+       "IPY_MODEL_ac19593660f740a786f64abc97de2473",
+       "IPY_MODEL_ca9df940579a40759ddb91aa9ee4da52"
+      ],
+      "layout": "IPY_MODEL_e200ddee2ec34bbe9863aa4883527c3d"
+     }
+    },
+    "558ba8b22cd74cd1b6e8dee0fe99d6b2": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "HBoxModel",
+     "state": {
+      "_dom_classes": [],
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "HBoxModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/controls",
+      "_view_module_version": "1.5.0",
+      "_view_name": "HBoxView",
+      "box_style": "",
+      "children": [
+       "IPY_MODEL_f4341911aea34a5d9f869f9d0b5913db",
+       "IPY_MODEL_93604ba6e28649368348064ee3d1aa2c",
+       "IPY_MODEL_07dd80e6e6bc4736975ce8d8f449e1ee"
+      ],
+      "layout": "IPY_MODEL_fdd5c30fecfd4b2eae833669aa77baa0"
+     }
+    },
+    "55c73a7f9f4a49e9b9e1049096b2489b": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "DescriptionStyleModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "DescriptionStyleModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "StyleView",
+      "description_width": ""
+     }
+    },
+    "58bdd4c1f644469d988224f8a650941e": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "DescriptionStyleModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "DescriptionStyleModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "StyleView",
+      "description_width": ""
+     }
+    },
+    "5eb42e3ca3d84138aadde7a6ffa3b60f": {
+     "model_module": "@jupyter-widgets/base",
+     "model_module_version": "1.2.0",
+     "model_name": "LayoutModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/base",
+      "_model_module_version": "1.2.0",
+      "_model_name": "LayoutModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "LayoutView",
+      "align_content": null,
+      "align_items": null,
+      "align_self": null,
+      "border": null,
+      "bottom": null,
+      "display": null,
+      "flex": null,
+      "flex_flow": null,
+      "grid_area": null,
+      "grid_auto_columns": null,
+      "grid_auto_flow": null,
+      "grid_auto_rows": null,
+      "grid_column": null,
+      "grid_gap": null,
+      "grid_row": null,
+      "grid_template_areas": null,
+      "grid_template_columns": null,
+      "grid_template_rows": null,
+      "height": null,
+      "justify_content": null,
+      "justify_items": null,
+      "left": null,
+      "margin": null,
+      "max_height": null,
+      "max_width": null,
+      "min_height": null,
+      "min_width": null,
+      "object_fit": null,
+      "object_position": null,
+      "order": null,
+      "overflow": null,
+      "overflow_x": null,
+      "overflow_y": null,
+      "padding": null,
+      "right": null,
+      "top": null,
+      "visibility": null,
+      "width": null
+     }
+    },
+    "5ee5ad3f4b6041d0b0890d44fa8ded47": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "HTMLModel",
+     "state": {
+      "_dom_classes": [],
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "HTMLModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/controls",
+      "_view_module_version": "1.5.0",
+      "_view_name": "HTMLView",
+      "description": "",
+      "description_tooltip": null,
+      "layout": "IPY_MODEL_8eecabadab5e42e9b704a8cfc9212a0a",
+      "placeholder": "​",
+      "style": "IPY_MODEL_a8bcbc7a72ef4081a801a248f8347fd3",
+      "value": "Downloading data: "
+     }
+    },
+    "5f2b601c3eda4aed9d9fdba71b0eeabb": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "HBoxModel",
+     "state": {
+      "_dom_classes": [],
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "HBoxModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/controls",
+      "_view_module_version": "1.5.0",
+      "_view_name": "HBoxView",
+      "box_style": "",
+      "children": [
+       "IPY_MODEL_d932737fe6084a77a0b6bddb512102c9",
+       "IPY_MODEL_98d1de66c1004d0a94f24ab9cca61e04",
+       "IPY_MODEL_9b04efd094974849be62292b7f4c9f95"
+      ],
+      "layout": "IPY_MODEL_2452483b653e46e78e76c17efc4dce97"
+     }
+    },
+    "614c240ca8674319874ea42f758284a0": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "HBoxModel",
+     "state": {
+      "_dom_classes": [],
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "HBoxModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/controls",
+      "_view_module_version": "1.5.0",
+      "_view_name": "HBoxView",
+      "box_style": "",
+      "children": [
+       "IPY_MODEL_30ba68fbd57c4520a9bb9a60bd273004",
+       "IPY_MODEL_2b923cd6d7d0439489f467e95f5f0949",
+       "IPY_MODEL_10542e75191b4801af12e6cb3c31e701"
+      ],
+      "layout": "IPY_MODEL_103c61e456ef40e38acc923c3f66453d"
+     }
+    },
+    "639623cbf9e24a3f88a3c37c697f0612": {
+     "model_module": "@jupyter-widgets/base",
+     "model_module_version": "1.2.0",
+     "model_name": "LayoutModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/base",
+      "_model_module_version": "1.2.0",
+      "_model_name": "LayoutModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "LayoutView",
+      "align_content": null,
+      "align_items": null,
+      "align_self": null,
+      "border": null,
+      "bottom": null,
+      "display": null,
+      "flex": null,
+      "flex_flow": null,
+      "grid_area": null,
+      "grid_auto_columns": null,
+      "grid_auto_flow": null,
+      "grid_auto_rows": null,
+      "grid_column": null,
+      "grid_gap": null,
+      "grid_row": null,
+      "grid_template_areas": null,
+      "grid_template_columns": null,
+      "grid_template_rows": null,
+      "height": null,
+      "justify_content": null,
+      "justify_items": null,
+      "left": null,
+      "margin": null,
+      "max_height": null,
+      "max_width": null,
+      "min_height": null,
+      "min_width": null,
+      "object_fit": null,
+      "object_position": null,
+      "order": null,
+      "overflow": null,
+      "overflow_x": null,
+      "overflow_y": null,
+      "padding": null,
+      "right": null,
+      "top": null,
+      "visibility": null,
+      "width": null
+     }
+    },
+    "65d3a546b781480c8a89b89bae3bb8cb": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "DescriptionStyleModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "DescriptionStyleModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "StyleView",
+      "description_width": ""
+     }
+    },
+    "679ed67c83084eea86b4fe367b95bc3e": {
+     "model_module": "@jupyter-widgets/base",
+     "model_module_version": "1.2.0",
+     "model_name": "LayoutModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/base",
+      "_model_module_version": "1.2.0",
+      "_model_name": "LayoutModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "LayoutView",
+      "align_content": null,
+      "align_items": null,
+      "align_self": null,
+      "border": null,
+      "bottom": null,
+      "display": null,
+      "flex": null,
+      "flex_flow": null,
+      "grid_area": null,
+      "grid_auto_columns": null,
+      "grid_auto_flow": null,
+      "grid_auto_rows": null,
+      "grid_column": null,
+      "grid_gap": null,
+      "grid_row": null,
+      "grid_template_areas": null,
+      "grid_template_columns": null,
+      "grid_template_rows": null,
+      "height": null,
+      "justify_content": null,
+      "justify_items": null,
+      "left": null,
+      "margin": null,
+      "max_height": null,
+      "max_width": null,
+      "min_height": null,
+      "min_width": null,
+      "object_fit": null,
+      "object_position": null,
+      "order": null,
+      "overflow": null,
+      "overflow_x": null,
+      "overflow_y": null,
+      "padding": null,
+      "right": null,
+      "top": null,
+      "visibility": null,
+      "width": null
+     }
+    },
+    "67e92147005e4ea589524b514c848990": {
+     "model_module": "@jupyter-widgets/base",
+     "model_module_version": "1.2.0",
+     "model_name": "LayoutModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/base",
+      "_model_module_version": "1.2.0",
+      "_model_name": "LayoutModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "LayoutView",
+      "align_content": null,
+      "align_items": null,
+      "align_self": null,
+      "border": null,
+      "bottom": null,
+      "display": null,
+      "flex": null,
+      "flex_flow": null,
+      "grid_area": null,
+      "grid_auto_columns": null,
+      "grid_auto_flow": null,
+      "grid_auto_rows": null,
+      "grid_column": null,
+      "grid_gap": null,
+      "grid_row": null,
+      "grid_template_areas": null,
+      "grid_template_columns": null,
+      "grid_template_rows": null,
+      "height": null,
+      "justify_content": null,
+      "justify_items": null,
+      "left": null,
+      "margin": null,
+      "max_height": null,
+      "max_width": null,
+      "min_height": null,
+      "min_width": null,
+      "object_fit": null,
+      "object_position": null,
+      "order": null,
+      "overflow": null,
+      "overflow_x": null,
+      "overflow_y": null,
+      "padding": null,
+      "right": null,
+      "top": null,
+      "visibility": null,
+      "width": null
+     }
+    },
+    "684b489c31e549babe411d8ee44b0b5f": {
+     "model_module": "@jupyter-widgets/base",
+     "model_module_version": "1.2.0",
+     "model_name": "LayoutModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/base",
+      "_model_module_version": "1.2.0",
+      "_model_name": "LayoutModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "LayoutView",
+      "align_content": null,
+      "align_items": null,
+      "align_self": null,
+      "border": null,
+      "bottom": null,
+      "display": null,
+      "flex": null,
+      "flex_flow": null,
+      "grid_area": null,
+      "grid_auto_columns": null,
+      "grid_auto_flow": null,
+      "grid_auto_rows": null,
+      "grid_column": null,
+      "grid_gap": null,
+      "grid_row": null,
+      "grid_template_areas": null,
+      "grid_template_columns": null,
+      "grid_template_rows": null,
+      "height": null,
+      "justify_content": null,
+      "justify_items": null,
+      "left": null,
+      "margin": null,
+      "max_height": null,
+      "max_width": null,
+      "min_height": null,
+      "min_width": null,
+      "object_fit": null,
+      "object_position": null,
+      "order": null,
+      "overflow": null,
+      "overflow_x": null,
+      "overflow_y": null,
+      "padding": null,
+      "right": null,
+      "top": null,
+      "visibility": null,
+      "width": null
+     }
+    },
+    "68559c5a26674b93a73816cbf05f16e5": {
+     "model_module": "@jupyter-widgets/base",
+     "model_module_version": "1.2.0",
+     "model_name": "LayoutModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/base",
+      "_model_module_version": "1.2.0",
+      "_model_name": "LayoutModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "LayoutView",
+      "align_content": null,
+      "align_items": null,
+      "align_self": null,
+      "border": null,
+      "bottom": null,
+      "display": null,
+      "flex": null,
+      "flex_flow": null,
+      "grid_area": null,
+      "grid_auto_columns": null,
+      "grid_auto_flow": null,
+      "grid_auto_rows": null,
+      "grid_column": null,
+      "grid_gap": null,
+      "grid_row": null,
+      "grid_template_areas": null,
+      "grid_template_columns": null,
+      "grid_template_rows": null,
+      "height": null,
+      "justify_content": null,
+      "justify_items": null,
+      "left": null,
+      "margin": null,
+      "max_height": null,
+      "max_width": null,
+      "min_height": null,
+      "min_width": null,
+      "object_fit": null,
+      "object_position": null,
+      "order": null,
+      "overflow": null,
+      "overflow_x": null,
+      "overflow_y": null,
+      "padding": null,
+      "right": null,
+      "top": null,
+      "visibility": null,
+      "width": null
+     }
+    },
+    "6ac78c482ef443ddbf8c1bd5304ff3b4": {
+     "model_module": "@jupyter-widgets/base",
+     "model_module_version": "1.2.0",
+     "model_name": "LayoutModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/base",
+      "_model_module_version": "1.2.0",
+      "_model_name": "LayoutModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "LayoutView",
+      "align_content": null,
+      "align_items": null,
+      "align_self": null,
+      "border": null,
+      "bottom": null,
+      "display": null,
+      "flex": null,
+      "flex_flow": null,
+      "grid_area": null,
+      "grid_auto_columns": null,
+      "grid_auto_flow": null,
+      "grid_auto_rows": null,
+      "grid_column": null,
+      "grid_gap": null,
+      "grid_row": null,
+      "grid_template_areas": null,
+      "grid_template_columns": null,
+      "grid_template_rows": null,
+      "height": null,
+      "justify_content": null,
+      "justify_items": null,
+      "left": null,
+      "margin": null,
+      "max_height": null,
+      "max_width": null,
+      "min_height": null,
+      "min_width": null,
+      "object_fit": null,
+      "object_position": null,
+      "order": null,
+      "overflow": null,
+      "overflow_x": null,
+      "overflow_y": null,
+      "padding": null,
+      "right": null,
+      "top": null,
+      "visibility": null,
+      "width": null
+     }
+    },
+    "6f7faaaf70104bfbb4c00f7a9fadc0e5": {
+     "model_module": "@jupyter-widgets/base",
+     "model_module_version": "1.2.0",
+     "model_name": "LayoutModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/base",
+      "_model_module_version": "1.2.0",
+      "_model_name": "LayoutModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "LayoutView",
+      "align_content": null,
+      "align_items": null,
+      "align_self": null,
+      "border": null,
+      "bottom": null,
+      "display": null,
+      "flex": null,
+      "flex_flow": null,
+      "grid_area": null,
+      "grid_auto_columns": null,
+      "grid_auto_flow": null,
+      "grid_auto_rows": null,
+      "grid_column": null,
+      "grid_gap": null,
+      "grid_row": null,
+      "grid_template_areas": null,
+      "grid_template_columns": null,
+      "grid_template_rows": null,
+      "height": null,
+      "justify_content": null,
+      "justify_items": null,
+      "left": null,
+      "margin": null,
+      "max_height": null,
+      "max_width": null,
+      "min_height": null,
+      "min_width": null,
+      "object_fit": null,
+      "object_position": null,
+      "order": null,
+      "overflow": null,
+      "overflow_x": null,
+      "overflow_y": null,
+      "padding": null,
+      "right": null,
+      "top": null,
+      "visibility": null,
+      "width": null
+     }
+    },
+    "6fca38cdf6c7467cb53a35c3b6991dd3": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "HBoxModel",
+     "state": {
+      "_dom_classes": [],
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "HBoxModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/controls",
+      "_view_module_version": "1.5.0",
+      "_view_name": "HBoxView",
+      "box_style": "",
+      "children": [
+       "IPY_MODEL_aa58a8eb12814e04a9985edec2185af0",
+       "IPY_MODEL_acf56709157949d5912f756f46084436",
+       "IPY_MODEL_1f5adc08173b46059d62d47fa223acde"
+      ],
+      "layout": "IPY_MODEL_8c69c12d94e64d7a9ab2719494b7852e"
+     }
+    },
+    "70f89ed951f14bd3a6c6e31d2c18e521": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "DescriptionStyleModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "DescriptionStyleModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "StyleView",
+      "description_width": ""
+     }
+    },
+    "71cddcfbfcc34e1aa5f9602bbb05aa3c": {
+     "model_module": "@jupyter-widgets/base",
+     "model_module_version": "1.2.0",
+     "model_name": "LayoutModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/base",
+      "_model_module_version": "1.2.0",
+      "_model_name": "LayoutModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "LayoutView",
+      "align_content": null,
+      "align_items": null,
+      "align_self": null,
+      "border": null,
+      "bottom": null,
+      "display": null,
+      "flex": null,
+      "flex_flow": null,
+      "grid_area": null,
+      "grid_auto_columns": null,
+      "grid_auto_flow": null,
+      "grid_auto_rows": null,
+      "grid_column": null,
+      "grid_gap": null,
+      "grid_row": null,
+      "grid_template_areas": null,
+      "grid_template_columns": null,
+      "grid_template_rows": null,
+      "height": null,
+      "justify_content": null,
+      "justify_items": null,
+      "left": null,
+      "margin": null,
+      "max_height": null,
+      "max_width": null,
+      "min_height": null,
+      "min_width": null,
+      "object_fit": null,
+      "object_position": null,
+      "order": null,
+      "overflow": null,
+      "overflow_x": null,
+      "overflow_y": null,
+      "padding": null,
+      "right": null,
+      "top": null,
+      "visibility": null,
+      "width": null
+     }
+    },
+    "721b59d9ab354a6483f2beded2f25cc0": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "HTMLModel",
+     "state": {
+      "_dom_classes": [],
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "HTMLModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/controls",
+      "_view_module_version": "1.5.0",
+      "_view_name": "HTMLView",
+      "description": "",
+      "description_tooltip": null,
+      "layout": "IPY_MODEL_14d78ace8f8b486aa06f1863c5839b69",
+      "placeholder": "​",
+      "style": "IPY_MODEL_192400b236924d9fbedb3fe4a2c8ceb0",
+      "value": " 439k/? [00:00&lt;00:00, 11.9MB/s]"
+     }
+    },
+    "76eb7882d2464c34bdf4f051ab6427af": {
+     "model_module": "@jupyter-widgets/base",
+     "model_module_version": "1.2.0",
+     "model_name": "LayoutModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/base",
+      "_model_module_version": "1.2.0",
+      "_model_name": "LayoutModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "LayoutView",
+      "align_content": null,
+      "align_items": null,
+      "align_self": null,
+      "border": null,
+      "bottom": null,
+      "display": null,
+      "flex": null,
+      "flex_flow": null,
+      "grid_area": null,
+      "grid_auto_columns": null,
+      "grid_auto_flow": null,
+      "grid_auto_rows": null,
+      "grid_column": null,
+      "grid_gap": null,
+      "grid_row": null,
+      "grid_template_areas": null,
+      "grid_template_columns": null,
+      "grid_template_rows": null,
+      "height": null,
+      "justify_content": null,
+      "justify_items": null,
+      "left": null,
+      "margin": null,
+      "max_height": null,
+      "max_width": null,
+      "min_height": null,
+      "min_width": null,
+      "object_fit": null,
+      "object_position": null,
+      "order": null,
+      "overflow": null,
+      "overflow_x": null,
+      "overflow_y": null,
+      "padding": null,
+      "right": null,
+      "top": null,
+      "visibility": null,
+      "width": null
+     }
+    },
+    "778634d5bd5f472bbb13fa355deb4265": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "DescriptionStyleModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "DescriptionStyleModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "StyleView",
+      "description_width": ""
+     }
+    },
+    "78893c8aa0974360988bc5aaa8afd82e": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "ProgressStyleModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "ProgressStyleModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "StyleView",
+      "bar_color": null,
+      "description_width": ""
+     }
+    },
+    "7a834d071a754916b6045a116fb05088": {
+     "model_module": "@jupyter-widgets/base",
+     "model_module_version": "1.2.0",
+     "model_name": "LayoutModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/base",
+      "_model_module_version": "1.2.0",
+      "_model_name": "LayoutModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "LayoutView",
+      "align_content": null,
+      "align_items": null,
+      "align_self": null,
+      "border": null,
+      "bottom": null,
+      "display": null,
+      "flex": null,
+      "flex_flow": null,
+      "grid_area": null,
+      "grid_auto_columns": null,
+      "grid_auto_flow": null,
+      "grid_auto_rows": null,
+      "grid_column": null,
+      "grid_gap": null,
+      "grid_row": null,
+      "grid_template_areas": null,
+      "grid_template_columns": null,
+      "grid_template_rows": null,
+      "height": null,
+      "justify_content": null,
+      "justify_items": null,
+      "left": null,
+      "margin": null,
+      "max_height": null,
+      "max_width": null,
+      "min_height": null,
+      "min_width": null,
+      "object_fit": null,
+      "object_position": null,
+      "order": null,
+      "overflow": null,
+      "overflow_x": null,
+      "overflow_y": null,
+      "padding": null,
+      "right": null,
+      "top": null,
+      "visibility": null,
+      "width": null
+     }
+    },
+    "7c150fe2b6854129b288fd2b07a52b67": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "HBoxModel",
+     "state": {
+      "_dom_classes": [],
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "HBoxModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/controls",
+      "_view_module_version": "1.5.0",
+      "_view_name": "HBoxView",
+      "box_style": "",
+      "children": [
+       "IPY_MODEL_1d7eb6895078493e9c4583744226d47f",
+       "IPY_MODEL_316efda5203044cf8ff3f63a8d9aff28",
+       "IPY_MODEL_368cef8067eb4da884a95d96bd437d5c"
+      ],
+      "layout": "IPY_MODEL_0cb7edcf167d4c978df9f8ba788dc8a2"
+     }
+    },
+    "82d89ed98d414495a6a026aaeb268a8b": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "DescriptionStyleModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "DescriptionStyleModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "StyleView",
+      "description_width": ""
+     }
+    },
+    "85e9db0b0b764a8db75710b21b56bd25": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "FloatProgressModel",
+     "state": {
+      "_dom_classes": [],
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "FloatProgressModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/controls",
+      "_view_module_version": "1.5.0",
+      "_view_name": "ProgressView",
+      "bar_style": "success",
+      "description": "",
+      "description_tooltip": null,
+      "layout": "IPY_MODEL_a0542436d5dc45e0a9fd2d47089d60ae",
+      "max": 7026,
+      "min": 0,
+      "orientation": "horizontal",
+      "style": "IPY_MODEL_15c7f2a8acdb408681fad01dfc165631",
+      "value": 7026
+     }
+    },
+    "85f1aa3acc9e4dc4b224759a7173a54e": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "DescriptionStyleModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "DescriptionStyleModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "StyleView",
+      "description_width": ""
+     }
+    },
+    "860ab4bb0e534e4182d2e8435de8e78f": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "DescriptionStyleModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "DescriptionStyleModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "StyleView",
+      "description_width": ""
+     }
+    },
+    "88127018b105447baacf0d49cf02146b": {
+     "model_module": "@jupyter-widgets/base",
+     "model_module_version": "1.2.0",
+     "model_name": "LayoutModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/base",
+      "_model_module_version": "1.2.0",
+      "_model_name": "LayoutModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "LayoutView",
+      "align_content": null,
+      "align_items": null,
+      "align_self": null,
+      "border": null,
+      "bottom": null,
+      "display": null,
+      "flex": null,
+      "flex_flow": null,
+      "grid_area": null,
+      "grid_auto_columns": null,
+      "grid_auto_flow": null,
+      "grid_auto_rows": null,
+      "grid_column": null,
+      "grid_gap": null,
+      "grid_row": null,
+      "grid_template_areas": null,
+      "grid_template_columns": null,
+      "grid_template_rows": null,
+      "height": null,
+      "justify_content": null,
+      "justify_items": null,
+      "left": null,
+      "margin": null,
+      "max_height": null,
+      "max_width": null,
+      "min_height": null,
+      "min_width": null,
+      "object_fit": null,
+      "object_position": null,
+      "order": null,
+      "overflow": null,
+      "overflow_x": null,
+      "overflow_y": null,
+      "padding": null,
+      "right": null,
+      "top": null,
+      "visibility": null,
+      "width": null
+     }
+    },
+    "88db820882c645398518322a7f990c99": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "FloatProgressModel",
+     "state": {
+      "_dom_classes": [],
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "FloatProgressModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/controls",
+      "_view_module_version": "1.5.0",
+      "_view_name": "ProgressView",
+      "bar_style": "success",
+      "description": "",
+      "description_tooltip": null,
+      "layout": "IPY_MODEL_27cc567cf1524d16a3756ba46c98b511",
+      "max": 28,
+      "min": 0,
+      "orientation": "horizontal",
+      "style": "IPY_MODEL_8fad7ad8916740d79d181a532b43e899",
+      "value": 28
+     }
+    },
+    "8a9745927bfc49b782824d6848f1d0ff": {
+     "model_module": "@jupyter-widgets/base",
+     "model_module_version": "1.2.0",
+     "model_name": "LayoutModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/base",
+      "_model_module_version": "1.2.0",
+      "_model_name": "LayoutModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "LayoutView",
+      "align_content": null,
+      "align_items": null,
+      "align_self": null,
+      "border": null,
+      "bottom": null,
+      "display": null,
+      "flex": null,
+      "flex_flow": null,
+      "grid_area": null,
+      "grid_auto_columns": null,
+      "grid_auto_flow": null,
+      "grid_auto_rows": null,
+      "grid_column": null,
+      "grid_gap": null,
+      "grid_row": null,
+      "grid_template_areas": null,
+      "grid_template_columns": null,
+      "grid_template_rows": null,
+      "height": null,
+      "justify_content": null,
+      "justify_items": null,
+      "left": null,
+      "margin": null,
+      "max_height": null,
+      "max_width": null,
+      "min_height": null,
+      "min_width": null,
+      "object_fit": null,
+      "object_position": null,
+      "order": null,
+      "overflow": null,
+      "overflow_x": null,
+      "overflow_y": null,
+      "padding": null,
+      "right": null,
+      "top": null,
+      "visibility": null,
+      "width": null
+     }
+    },
+    "8b9c1b160511478e936195cd7a8ffd0f": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "ProgressStyleModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "ProgressStyleModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "StyleView",
+      "bar_color": null,
+      "description_width": ""
+     }
+    },
+    "8c69c12d94e64d7a9ab2719494b7852e": {
+     "model_module": "@jupyter-widgets/base",
+     "model_module_version": "1.2.0",
+     "model_name": "LayoutModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/base",
+      "_model_module_version": "1.2.0",
+      "_model_name": "LayoutModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "LayoutView",
+      "align_content": null,
+      "align_items": null,
+      "align_self": null,
+      "border": null,
+      "bottom": null,
+      "display": null,
+      "flex": null,
+      "flex_flow": null,
+      "grid_area": null,
+      "grid_auto_columns": null,
+      "grid_auto_flow": null,
+      "grid_auto_rows": null,
+      "grid_column": null,
+      "grid_gap": null,
+      "grid_row": null,
+      "grid_template_areas": null,
+      "grid_template_columns": null,
+      "grid_template_rows": null,
+      "height": null,
+      "justify_content": null,
+      "justify_items": null,
+      "left": null,
+      "margin": null,
+      "max_height": null,
+      "max_width": null,
+      "min_height": null,
+      "min_width": null,
+      "object_fit": null,
+      "object_position": null,
+      "order": null,
+      "overflow": null,
+      "overflow_x": null,
+      "overflow_y": null,
+      "padding": null,
+      "right": null,
+      "top": null,
+      "visibility": null,
+      "width": null
+     }
+    },
+    "8df743509e61495dba8261d744a96294": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "DescriptionStyleModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "DescriptionStyleModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "StyleView",
+      "description_width": ""
+     }
+    },
+    "8e1d5e891ab1498b8aff16e56db1d91b": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "ProgressStyleModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "ProgressStyleModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "StyleView",
+      "bar_color": null,
+      "description_width": ""
+     }
+    },
+    "8eecabadab5e42e9b704a8cfc9212a0a": {
+     "model_module": "@jupyter-widgets/base",
+     "model_module_version": "1.2.0",
+     "model_name": "LayoutModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/base",
+      "_model_module_version": "1.2.0",
+      "_model_name": "LayoutModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "LayoutView",
+      "align_content": null,
+      "align_items": null,
+      "align_self": null,
+      "border": null,
+      "bottom": null,
+      "display": null,
+      "flex": null,
+      "flex_flow": null,
+      "grid_area": null,
+      "grid_auto_columns": null,
+      "grid_auto_flow": null,
+      "grid_auto_rows": null,
+      "grid_column": null,
+      "grid_gap": null,
+      "grid_row": null,
+      "grid_template_areas": null,
+      "grid_template_columns": null,
+      "grid_template_rows": null,
+      "height": null,
+      "justify_content": null,
+      "justify_items": null,
+      "left": null,
+      "margin": null,
+      "max_height": null,
+      "max_width": null,
+      "min_height": null,
+      "min_width": null,
+      "object_fit": null,
+      "object_position": null,
+      "order": null,
+      "overflow": null,
+      "overflow_x": null,
+      "overflow_y": null,
+      "padding": null,
+      "right": null,
+      "top": null,
+      "visibility": null,
+      "width": null
+     }
+    },
+    "8fad7ad8916740d79d181a532b43e899": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "ProgressStyleModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "ProgressStyleModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "StyleView",
+      "bar_color": null,
+      "description_width": ""
+     }
+    },
+    "90e13985c5754813a568b105ffd1875c": {
+     "model_module": "@jupyter-widgets/base",
+     "model_module_version": "1.2.0",
+     "model_name": "LayoutModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/base",
+      "_model_module_version": "1.2.0",
+      "_model_name": "LayoutModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "LayoutView",
+      "align_content": null,
+      "align_items": null,
+      "align_self": null,
+      "border": null,
+      "bottom": null,
+      "display": null,
+      "flex": null,
+      "flex_flow": null,
+      "grid_area": null,
+      "grid_auto_columns": null,
+      "grid_auto_flow": null,
+      "grid_auto_rows": null,
+      "grid_column": null,
+      "grid_gap": null,
+      "grid_row": null,
+      "grid_template_areas": null,
+      "grid_template_columns": null,
+      "grid_template_rows": null,
+      "height": null,
+      "justify_content": null,
+      "justify_items": null,
+      "left": null,
+      "margin": null,
+      "max_height": null,
+      "max_width": null,
+      "min_height": null,
+      "min_width": null,
+      "object_fit": null,
+      "object_position": null,
+      "order": null,
+      "overflow": null,
+      "overflow_x": null,
+      "overflow_y": null,
+      "padding": null,
+      "right": null,
+      "top": null,
+      "visibility": null,
+      "width": null
+     }
+    },
+    "93604ba6e28649368348064ee3d1aa2c": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "FloatProgressModel",
+     "state": {
+      "_dom_classes": [],
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "FloatProgressModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/controls",
+      "_view_module_version": "1.5.0",
+      "_view_name": "ProgressView",
+      "bar_style": "",
+      "description": "",
+      "description_tooltip": null,
+      "layout": "IPY_MODEL_684b489c31e549babe411d8ee44b0b5f",
+      "max": 5427,
+      "min": 0,
+      "orientation": "horizontal",
+      "style": "IPY_MODEL_bda8c59892d44f7e851e3f613f43a813",
+      "value": 5427
+     }
+    },
+    "93a6431b88cf49b788f902d09c0c04bc": {
+     "model_module": "@jupyter-widgets/base",
+     "model_module_version": "1.2.0",
+     "model_name": "LayoutModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/base",
+      "_model_module_version": "1.2.0",
+      "_model_name": "LayoutModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "LayoutView",
+      "align_content": null,
+      "align_items": null,
+      "align_self": null,
+      "border": null,
+      "bottom": null,
+      "display": null,
+      "flex": null,
+      "flex_flow": null,
+      "grid_area": null,
+      "grid_auto_columns": null,
+      "grid_auto_flow": null,
+      "grid_auto_rows": null,
+      "grid_column": null,
+      "grid_gap": null,
+      "grid_row": null,
+      "grid_template_areas": null,
+      "grid_template_columns": null,
+      "grid_template_rows": null,
+      "height": null,
+      "justify_content": null,
+      "justify_items": null,
+      "left": null,
+      "margin": null,
+      "max_height": null,
+      "max_width": null,
+      "min_height": null,
+      "min_width": null,
+      "object_fit": null,
+      "object_position": null,
+      "order": null,
+      "overflow": null,
+      "overflow_x": null,
+      "overflow_y": null,
+      "padding": null,
+      "right": null,
+      "top": null,
+      "visibility": null,
+      "width": null
+     }
+    },
+    "95f7e12877544a8aa72216deaf864dab": {
+     "model_module": "@jupyter-widgets/base",
+     "model_module_version": "1.2.0",
+     "model_name": "LayoutModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/base",
+      "_model_module_version": "1.2.0",
+      "_model_name": "LayoutModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "LayoutView",
+      "align_content": null,
+      "align_items": null,
+      "align_self": null,
+      "border": null,
+      "bottom": null,
+      "display": null,
+      "flex": null,
+      "flex_flow": null,
+      "grid_area": null,
+      "grid_auto_columns": null,
+      "grid_auto_flow": null,
+      "grid_auto_rows": null,
+      "grid_column": null,
+      "grid_gap": null,
+      "grid_row": null,
+      "grid_template_areas": null,
+      "grid_template_columns": null,
+      "grid_template_rows": null,
+      "height": null,
+      "justify_content": null,
+      "justify_items": null,
+      "left": null,
+      "margin": null,
+      "max_height": null,
+      "max_width": null,
+      "min_height": null,
+      "min_width": null,
+      "object_fit": null,
+      "object_position": null,
+      "order": null,
+      "overflow": null,
+      "overflow_x": null,
+      "overflow_y": null,
+      "padding": null,
+      "right": null,
+      "top": null,
+      "visibility": null,
+      "width": null
+     }
+    },
+    "96a0690d35d94ebb8c7686a0e494f2d9": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "FloatProgressModel",
+     "state": {
+      "_dom_classes": [],
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "FloatProgressModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/controls",
+      "_view_module_version": "1.5.0",
+      "_view_name": "ProgressView",
+      "bar_style": "success",
+      "description": "",
+      "description_tooltip": null,
+      "layout": "IPY_MODEL_95f7e12877544a8aa72216deaf864dab",
+      "max": 231508,
+      "min": 0,
+      "orientation": "horizontal",
+      "style": "IPY_MODEL_1e721af94e0943708122f7f84a97cd2f",
+      "value": 231508
+     }
+    },
+    "98d1de66c1004d0a94f24ab9cca61e04": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "FloatProgressModel",
+     "state": {
+      "_dom_classes": [],
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "FloatProgressModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/controls",
+      "_view_module_version": "1.5.0",
+      "_view_name": "ProgressView",
+      "bar_style": "success",
+      "description": "",
+      "description_tooltip": null,
+      "layout": "IPY_MODEL_159adfe2f2b04ba893da8c031403afa4",
+      "max": 9111,
+      "min": 0,
+      "orientation": "horizontal",
+      "style": "IPY_MODEL_8e1d5e891ab1498b8aff16e56db1d91b",
+      "value": 9111
+     }
+    },
+    "9b04efd094974849be62292b7f4c9f95": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "HTMLModel",
+     "state": {
+      "_dom_classes": [],
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "HTMLModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/controls",
+      "_view_module_version": "1.5.0",
+      "_view_name": "HTMLView",
+      "description": "",
+      "description_tooltip": null,
+      "layout": "IPY_MODEL_33fff913ffa942f48a177b74cf000bed",
+      "placeholder": "​",
+      "style": "IPY_MODEL_427a8d8c77034bc2b77c8857614f2e70",
+      "value": " 9.11k/9.11k [00:00&lt;00:00, 535kB/s]"
+     }
+    },
+    "9bcd5bcdbf9049dbaeb01a772f37ccb0": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "HTMLModel",
+     "state": {
+      "_dom_classes": [],
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "HTMLModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/controls",
+      "_view_module_version": "1.5.0",
+      "_view_name": "HTMLView",
+      "description": "",
+      "description_tooltip": null,
+      "layout": "IPY_MODEL_7a834d071a754916b6045a116fb05088",
+      "placeholder": "​",
+      "style": "IPY_MODEL_3165ed28b5e94fa08d5ba2109b59ef16",
+      "value": "Generating validation split:  71%"
+     }
+    },
+    "9d3d7a9092b041f0b9682265800165b6": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "ProgressStyleModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "ProgressStyleModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "StyleView",
+      "bar_color": null,
+      "description_width": ""
+     }
+    },
+    "a0252393a0574c61a0c963995184ffd1": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "DescriptionStyleModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "DescriptionStyleModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "StyleView",
+      "description_width": ""
+     }
+    },
+    "a0542436d5dc45e0a9fd2d47089d60ae": {
+     "model_module": "@jupyter-widgets/base",
+     "model_module_version": "1.2.0",
+     "model_name": "LayoutModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/base",
+      "_model_module_version": "1.2.0",
+      "_model_name": "LayoutModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "LayoutView",
+      "align_content": null,
+      "align_items": null,
+      "align_self": null,
+      "border": null,
+      "bottom": null,
+      "display": null,
+      "flex": null,
+      "flex_flow": null,
+      "grid_area": null,
+      "grid_auto_columns": null,
+      "grid_auto_flow": null,
+      "grid_auto_rows": null,
+      "grid_column": null,
+      "grid_gap": null,
+      "grid_row": null,
+      "grid_template_areas": null,
+      "grid_template_columns": null,
+      "grid_template_rows": null,
+      "height": null,
+      "justify_content": null,
+      "justify_items": null,
+      "left": null,
+      "margin": null,
+      "max_height": null,
+      "max_width": null,
+      "min_height": null,
+      "min_width": null,
+      "object_fit": null,
+      "object_position": null,
+      "order": null,
+      "overflow": null,
+      "overflow_x": null,
+      "overflow_y": null,
+      "padding": null,
+      "right": null,
+      "top": null,
+      "visibility": null,
+      "width": null
+     }
+    },
+    "a5c7c50790f94a659c566bc00d986871": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "DescriptionStyleModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "DescriptionStyleModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "StyleView",
+      "description_width": ""
+     }
+    },
+    "a7340148c58f4dccb83b923becfcd06b": {
+     "model_module": "@jupyter-widgets/base",
+     "model_module_version": "1.2.0",
+     "model_name": "LayoutModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/base",
+      "_model_module_version": "1.2.0",
+      "_model_name": "LayoutModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "LayoutView",
+      "align_content": null,
+      "align_items": null,
+      "align_self": null,
+      "border": null,
+      "bottom": null,
+      "display": null,
+      "flex": null,
+      "flex_flow": null,
+      "grid_area": null,
+      "grid_auto_columns": null,
+      "grid_auto_flow": null,
+      "grid_auto_rows": null,
+      "grid_column": null,
+      "grid_gap": null,
+      "grid_row": null,
+      "grid_template_areas": null,
+      "grid_template_columns": null,
+      "grid_template_rows": null,
+      "height": null,
+      "justify_content": null,
+      "justify_items": null,
+      "left": null,
+      "margin": null,
+      "max_height": null,
+      "max_width": null,
+      "min_height": null,
+      "min_width": null,
+      "object_fit": null,
+      "object_position": null,
+      "order": null,
+      "overflow": null,
+      "overflow_x": null,
+      "overflow_y": null,
+      "padding": null,
+      "right": null,
+      "top": null,
+      "visibility": null,
+      "width": null
+     }
+    },
+    "a8bcbc7a72ef4081a801a248f8347fd3": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "DescriptionStyleModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "DescriptionStyleModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "StyleView",
+      "description_width": ""
+     }
+    },
+    "aa545b3df2a64ce489c109bab9dc7571": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "DescriptionStyleModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "DescriptionStyleModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "StyleView",
+      "description_width": ""
+     }
+    },
+    "aa58a8eb12814e04a9985edec2185af0": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "HTMLModel",
+     "state": {
+      "_dom_classes": [],
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "HTMLModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/controls",
+      "_view_module_version": "1.5.0",
+      "_view_name": "HTMLView",
+      "description": "",
+      "description_tooltip": null,
+      "layout": "IPY_MODEL_67e92147005e4ea589524b514c848990",
+      "placeholder": "​",
+      "style": "IPY_MODEL_55c73a7f9f4a49e9b9e1049096b2489b",
+      "value": "Downloading data: "
+     }
+    },
+    "aacd498e8ea74185981944577780a6cf": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "FloatProgressModel",
+     "state": {
+      "_dom_classes": [],
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "FloatProgressModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/controls",
+      "_view_module_version": "1.5.0",
+      "_view_name": "ProgressView",
+      "bar_style": "success",
+      "description": "",
+      "description_tooltip": null,
+      "layout": "IPY_MODEL_639623cbf9e24a3f88a3c37c697f0612",
+      "max": 3,
+      "min": 0,
+      "orientation": "horizontal",
+      "style": "IPY_MODEL_35f9214e3c46433ea90b6ac57208b912",
+      "value": 3
+     }
+    },
+    "ac19593660f740a786f64abc97de2473": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "FloatProgressModel",
+     "state": {
+      "_dom_classes": [],
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "FloatProgressModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/controls",
+      "_view_module_version": "1.5.0",
+      "_view_name": "ProgressView",
+      "bar_style": "success",
+      "description": "",
+      "description_tooltip": null,
+      "layout": "IPY_MODEL_183d051942fd4f8e9d22fb28fa4a187b",
+      "max": 267967963,
+      "min": 0,
+      "orientation": "horizontal",
+      "style": "IPY_MODEL_281ea8dd86e54bc287fea79b7e6047d8",
+      "value": 267967963
+     }
+    },
+    "acf56709157949d5912f756f46084436": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "FloatProgressModel",
+     "state": {
+      "_dom_classes": [],
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "FloatProgressModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/controls",
+      "_view_module_version": "1.5.0",
+      "_view_name": "ProgressView",
+      "bar_style": "success",
+      "description": "",
+      "description_tooltip": null,
+      "layout": "IPY_MODEL_c12ed76679a04b5e992159cc6807df53",
+      "max": 1611423,
+      "min": 0,
+      "orientation": "horizontal",
+      "style": "IPY_MODEL_8b9c1b160511478e936195cd7a8ffd0f",
+      "value": 1611423
+     }
+    },
+    "b14db9725096470e90cb8e3e52ef1559": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "FloatProgressModel",
+     "state": {
+      "_dom_classes": [],
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "FloatProgressModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/controls",
+      "_view_module_version": "1.5.0",
+      "_view_name": "ProgressView",
+      "bar_style": "",
+      "description": "",
+      "description_tooltip": null,
+      "layout": "IPY_MODEL_ef7364ce3f884dd899f278412c4226ea",
+      "max": 5426,
+      "min": 0,
+      "orientation": "horizontal",
+      "style": "IPY_MODEL_4e75ff8087864124b3549c83f54190fc",
+      "value": 5426
+     }
+    },
+    "b1a5fc6948424a16baae0d00caf61cf4": {
+     "model_module": "@jupyter-widgets/base",
+     "model_module_version": "1.2.0",
+     "model_name": "LayoutModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/base",
+      "_model_module_version": "1.2.0",
+      "_model_name": "LayoutModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "LayoutView",
+      "align_content": null,
+      "align_items": null,
+      "align_self": null,
+      "border": null,
+      "bottom": null,
+      "display": null,
+      "flex": null,
+      "flex_flow": null,
+      "grid_area": null,
+      "grid_auto_columns": null,
+      "grid_auto_flow": null,
+      "grid_auto_rows": null,
+      "grid_column": null,
+      "grid_gap": null,
+      "grid_row": null,
+      "grid_template_areas": null,
+      "grid_template_columns": null,
+      "grid_template_rows": null,
+      "height": null,
+      "justify_content": null,
+      "justify_items": null,
+      "left": null,
+      "margin": null,
+      "max_height": null,
+      "max_width": null,
+      "min_height": null,
+      "min_width": null,
+      "object_fit": null,
+      "object_position": null,
+      "order": null,
+      "overflow": null,
+      "overflow_x": null,
+      "overflow_y": null,
+      "padding": null,
+      "right": null,
+      "top": null,
+      "visibility": "hidden",
+      "width": null
+     }
+    },
+    "b1b80df123d54887a94901583d4fc07c": {
+     "model_module": "@jupyter-widgets/base",
+     "model_module_version": "1.2.0",
+     "model_name": "LayoutModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/base",
+      "_model_module_version": "1.2.0",
+      "_model_name": "LayoutModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "LayoutView",
+      "align_content": null,
+      "align_items": null,
+      "align_self": null,
+      "border": null,
+      "bottom": null,
+      "display": null,
+      "flex": null,
+      "flex_flow": null,
+      "grid_area": null,
+      "grid_auto_columns": null,
+      "grid_auto_flow": null,
+      "grid_auto_rows": null,
+      "grid_column": null,
+      "grid_gap": null,
+      "grid_row": null,
+      "grid_template_areas": null,
+      "grid_template_columns": null,
+      "grid_template_rows": null,
+      "height": null,
+      "justify_content": null,
+      "justify_items": null,
+      "left": null,
+      "margin": null,
+      "max_height": null,
+      "max_width": null,
+      "min_height": null,
+      "min_width": null,
+      "object_fit": null,
+      "object_position": null,
+      "order": null,
+      "overflow": null,
+      "overflow_x": null,
+      "overflow_y": null,
+      "padding": null,
+      "right": null,
+      "top": null,
+      "visibility": null,
+      "width": null
+     }
+    },
+    "b2b217f9f97644aeb4438ef9be9be046": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "HTMLModel",
+     "state": {
+      "_dom_classes": [],
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "HTMLModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/controls",
+      "_view_module_version": "1.5.0",
+      "_view_name": "HTMLView",
+      "description": "",
+      "description_tooltip": null,
+      "layout": "IPY_MODEL_d6e3df9f330445e386a068344b870af3",
+      "placeholder": "​",
+      "style": "IPY_MODEL_82d89ed98d414495a6a026aaeb268a8b",
+      "value": " 7.03k/7.03k [00:00&lt;00:00, 451kB/s]"
+     }
+    },
+    "bb6e7d1d1e934b6eaf2772c2acaf9f2f": {
+     "model_module": "@jupyter-widgets/base",
+     "model_module_version": "1.2.0",
+     "model_name": "LayoutModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/base",
+      "_model_module_version": "1.2.0",
+      "_model_name": "LayoutModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "LayoutView",
+      "align_content": null,
+      "align_items": null,
+      "align_self": null,
+      "border": null,
+      "bottom": null,
+      "display": null,
+      "flex": null,
+      "flex_flow": null,
+      "grid_area": null,
+      "grid_auto_columns": null,
+      "grid_auto_flow": null,
+      "grid_auto_rows": null,
+      "grid_column": null,
+      "grid_gap": null,
+      "grid_row": null,
+      "grid_template_areas": null,
+      "grid_template_columns": null,
+      "grid_template_rows": null,
+      "height": null,
+      "justify_content": null,
+      "justify_items": null,
+      "left": null,
+      "margin": null,
+      "max_height": null,
+      "max_width": null,
+      "min_height": null,
+      "min_width": null,
+      "object_fit": null,
+      "object_position": null,
+      "order": null,
+      "overflow": null,
+      "overflow_x": null,
+      "overflow_y": null,
+      "padding": null,
+      "right": null,
+      "top": null,
+      "visibility": null,
+      "width": null
+     }
+    },
+    "bd4821186485411897b34f193ac37997": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "HTMLModel",
+     "state": {
+      "_dom_classes": [],
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "HTMLModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/controls",
+      "_view_module_version": "1.5.0",
+      "_view_name": "HTMLView",
+      "description": "",
+      "description_tooltip": null,
+      "layout": "IPY_MODEL_c34cb55446fe45b9888ffeed88674ce9",
+      "placeholder": "​",
+      "style": "IPY_MODEL_8df743509e61495dba8261d744a96294",
+      "value": "Downloading metadata: 100%"
+     }
+    },
+    "bda8c59892d44f7e851e3f613f43a813": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "ProgressStyleModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "ProgressStyleModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "StyleView",
+      "bar_color": null,
+      "description_width": ""
+     }
+    },
+    "be4cbcc94fa14e8fb1a2a151c6cc277a": {
+     "model_module": "@jupyter-widgets/base",
+     "model_module_version": "1.2.0",
+     "model_name": "LayoutModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/base",
+      "_model_module_version": "1.2.0",
+      "_model_name": "LayoutModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "LayoutView",
+      "align_content": null,
+      "align_items": null,
+      "align_self": null,
+      "border": null,
+      "bottom": null,
+      "display": null,
+      "flex": null,
+      "flex_flow": null,
+      "grid_area": null,
+      "grid_auto_columns": null,
+      "grid_auto_flow": null,
+      "grid_auto_rows": null,
+      "grid_column": null,
+      "grid_gap": null,
+      "grid_row": null,
+      "grid_template_areas": null,
+      "grid_template_columns": null,
+      "grid_template_rows": null,
+      "height": null,
+      "justify_content": null,
+      "justify_items": null,
+      "left": null,
+      "margin": null,
+      "max_height": null,
+      "max_width": null,
+      "min_height": null,
+      "min_width": null,
+      "object_fit": null,
+      "object_position": null,
+      "order": null,
+      "overflow": null,
+      "overflow_x": null,
+      "overflow_y": null,
+      "padding": null,
+      "right": null,
+      "top": null,
+      "visibility": null,
+      "width": null
+     }
+    },
+    "bf5efdf20b92407e86df682b797bff7e": {
+     "model_module": "@jupyter-widgets/base",
+     "model_module_version": "1.2.0",
+     "model_name": "LayoutModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/base",
+      "_model_module_version": "1.2.0",
+      "_model_name": "LayoutModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "LayoutView",
+      "align_content": null,
+      "align_items": null,
+      "align_self": null,
+      "border": null,
+      "bottom": null,
+      "display": null,
+      "flex": null,
+      "flex_flow": null,
+      "grid_area": null,
+      "grid_auto_columns": null,
+      "grid_auto_flow": null,
+      "grid_auto_rows": null,
+      "grid_column": null,
+      "grid_gap": null,
+      "grid_row": null,
+      "grid_template_areas": null,
+      "grid_template_columns": null,
+      "grid_template_rows": null,
+      "height": null,
+      "justify_content": null,
+      "justify_items": null,
+      "left": null,
+      "margin": null,
+      "max_height": null,
+      "max_width": null,
+      "min_height": null,
+      "min_width": null,
+      "object_fit": null,
+      "object_position": null,
+      "order": null,
+      "overflow": null,
+      "overflow_x": null,
+      "overflow_y": null,
+      "padding": null,
+      "right": null,
+      "top": null,
+      "visibility": null,
+      "width": null
+     }
+    },
+    "c062a0ca1eb141158350d1474feb1c07": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "HBoxModel",
+     "state": {
+      "_dom_classes": [],
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "HBoxModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/controls",
+      "_view_module_version": "1.5.0",
+      "_view_name": "HBoxView",
+      "box_style": "",
+      "children": [
+       "IPY_MODEL_0dde0bcc8b4a484fb8940e1038c82e6d",
+       "IPY_MODEL_aacd498e8ea74185981944577780a6cf",
+       "IPY_MODEL_d330ff1ef7d443db92741c5904158b98"
+      ],
+      "layout": "IPY_MODEL_d90c031ce7a44812b7f584bbf048e25f"
+     }
+    },
+    "c0a5eb3d401c42f8b18ac1a385734afb": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "HTMLModel",
+     "state": {
+      "_dom_classes": [],
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "HTMLModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/controls",
+      "_view_module_version": "1.5.0",
+      "_view_name": "HTMLView",
+      "description": "",
+      "description_tooltip": null,
+      "layout": "IPY_MODEL_5eb42e3ca3d84138aadde7a6ffa3b60f",
+      "placeholder": "​",
+      "style": "IPY_MODEL_eb46ef5bac1643af8e6a74f18894b56b",
+      "value": "Downloading pytorch_model.bin: 100%"
+     }
+    },
+    "c0d44b8f7b124ca09c05b50de2a47be0": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "DescriptionStyleModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "DescriptionStyleModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "StyleView",
+      "description_width": ""
+     }
+    },
+    "c12ed76679a04b5e992159cc6807df53": {
+     "model_module": "@jupyter-widgets/base",
+     "model_module_version": "1.2.0",
+     "model_name": "LayoutModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/base",
+      "_model_module_version": "1.2.0",
+      "_model_name": "LayoutModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "LayoutView",
+      "align_content": null,
+      "align_items": null,
+      "align_self": null,
+      "border": null,
+      "bottom": null,
+      "display": null,
+      "flex": null,
+      "flex_flow": null,
+      "grid_area": null,
+      "grid_auto_columns": null,
+      "grid_auto_flow": null,
+      "grid_auto_rows": null,
+      "grid_column": null,
+      "grid_gap": null,
+      "grid_row": null,
+      "grid_template_areas": null,
+      "grid_template_columns": null,
+      "grid_template_rows": null,
+      "height": null,
+      "justify_content": null,
+      "justify_items": null,
+      "left": null,
+      "margin": null,
+      "max_height": null,
+      "max_width": null,
+      "min_height": null,
+      "min_width": null,
+      "object_fit": null,
+      "object_position": null,
+      "order": null,
+      "overflow": null,
+      "overflow_x": null,
+      "overflow_y": null,
+      "padding": null,
+      "right": null,
+      "top": null,
+      "visibility": null,
+      "width": null
+     }
+    },
+    "c34cb55446fe45b9888ffeed88674ce9": {
+     "model_module": "@jupyter-widgets/base",
+     "model_module_version": "1.2.0",
+     "model_name": "LayoutModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/base",
+      "_model_module_version": "1.2.0",
+      "_model_name": "LayoutModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "LayoutView",
+      "align_content": null,
+      "align_items": null,
+      "align_self": null,
+      "border": null,
+      "bottom": null,
+      "display": null,
+      "flex": null,
+      "flex_flow": null,
+      "grid_area": null,
+      "grid_auto_columns": null,
+      "grid_auto_flow": null,
+      "grid_auto_rows": null,
+      "grid_column": null,
+      "grid_gap": null,
+      "grid_row": null,
+      "grid_template_areas": null,
+      "grid_template_columns": null,
+      "grid_template_rows": null,
+      "height": null,
+      "justify_content": null,
+      "justify_items": null,
+      "left": null,
+      "margin": null,
+      "max_height": null,
+      "max_width": null,
+      "min_height": null,
+      "min_width": null,
+      "object_fit": null,
+      "object_position": null,
+      "order": null,
+      "overflow": null,
+      "overflow_x": null,
+      "overflow_y": null,
+      "padding": null,
+      "right": null,
+      "top": null,
+      "visibility": null,
+      "width": null
+     }
+    },
+    "c35b2c3c44234b0c9f38db2ecfd63c40": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "DescriptionStyleModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "DescriptionStyleModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "StyleView",
+      "description_width": ""
+     }
+    },
+    "c3c2245643bf44e9b2d7885182f79534": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "FloatProgressModel",
+     "state": {
+      "_dom_classes": [],
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "FloatProgressModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/controls",
+      "_view_module_version": "1.5.0",
+      "_view_name": "ProgressView",
+      "bar_style": "success",
+      "description": "",
+      "description_tooltip": null,
+      "layout": "IPY_MODEL_88127018b105447baacf0d49cf02146b",
+      "max": 202559,
+      "min": 0,
+      "orientation": "horizontal",
+      "style": "IPY_MODEL_78893c8aa0974360988bc5aaa8afd82e",
+      "value": 202559
+     }
+    },
+    "c572997f6e6a42c799f63718d42a00a0": {
+     "model_module": "@jupyter-widgets/base",
+     "model_module_version": "1.2.0",
+     "model_name": "LayoutModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/base",
+      "_model_module_version": "1.2.0",
+      "_model_name": "LayoutModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "LayoutView",
+      "align_content": null,
+      "align_items": null,
+      "align_self": null,
+      "border": null,
+      "bottom": null,
+      "display": null,
+      "flex": null,
+      "flex_flow": null,
+      "grid_area": null,
+      "grid_auto_columns": null,
+      "grid_auto_flow": null,
+      "grid_auto_rows": null,
+      "grid_column": null,
+      "grid_gap": null,
+      "grid_row": null,
+      "grid_template_areas": null,
+      "grid_template_columns": null,
+      "grid_template_rows": null,
+      "height": null,
+      "justify_content": null,
+      "justify_items": null,
+      "left": null,
+      "margin": null,
+      "max_height": null,
+      "max_width": null,
+      "min_height": null,
+      "min_width": null,
+      "object_fit": null,
+      "object_position": null,
+      "order": null,
+      "overflow": null,
+      "overflow_x": null,
+      "overflow_y": null,
+      "padding": null,
+      "right": null,
+      "top": null,
+      "visibility": null,
+      "width": null
+     }
+    },
+    "c67a2f7ad4424a90b0b5166e055d6f52": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "HTMLModel",
+     "state": {
+      "_dom_classes": [],
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "HTMLModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/controls",
+      "_view_module_version": "1.5.0",
+      "_view_name": "HTMLView",
+      "description": "",
+      "description_tooltip": null,
+      "layout": "IPY_MODEL_90e13985c5754813a568b105ffd1875c",
+      "placeholder": "​",
+      "style": "IPY_MODEL_a5c7c50790f94a659c566bc00d986871",
+      "value": " 3871/5426 [00:00&lt;00:00, 18564.86 examples/s]"
+     }
+    },
+    "c954c6c0f3a941039d0c8db8b53f8ad7": {
+     "model_module": "@jupyter-widgets/base",
+     "model_module_version": "1.2.0",
+     "model_name": "LayoutModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/base",
+      "_model_module_version": "1.2.0",
+      "_model_name": "LayoutModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "LayoutView",
+      "align_content": null,
+      "align_items": null,
+      "align_self": null,
+      "border": null,
+      "bottom": null,
+      "display": null,
+      "flex": null,
+      "flex_flow": null,
+      "grid_area": null,
+      "grid_auto_columns": null,
+      "grid_auto_flow": null,
+      "grid_auto_rows": null,
+      "grid_column": null,
+      "grid_gap": null,
+      "grid_row": null,
+      "grid_template_areas": null,
+      "grid_template_columns": null,
+      "grid_template_rows": null,
+      "height": null,
+      "justify_content": null,
+      "justify_items": null,
+      "left": null,
+      "margin": null,
+      "max_height": null,
+      "max_width": null,
+      "min_height": null,
+      "min_width": null,
+      "object_fit": null,
+      "object_position": null,
+      "order": null,
+      "overflow": null,
+      "overflow_x": null,
+      "overflow_y": null,
+      "padding": null,
+      "right": null,
+      "top": null,
+      "visibility": null,
+      "width": null
+     }
+    },
+    "c9d4be94e9a34a78a0a258c4f298d517": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "DescriptionStyleModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "DescriptionStyleModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "StyleView",
+      "description_width": ""
+     }
+    },
+    "ca4b4c16ec2a4369b2d478947a2eac56": {
+     "model_module": "@jupyter-widgets/base",
+     "model_module_version": "1.2.0",
+     "model_name": "LayoutModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/base",
+      "_model_module_version": "1.2.0",
+      "_model_name": "LayoutModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "LayoutView",
+      "align_content": null,
+      "align_items": null,
+      "align_self": null,
+      "border": null,
+      "bottom": null,
+      "display": null,
+      "flex": null,
+      "flex_flow": null,
+      "grid_area": null,
+      "grid_auto_columns": null,
+      "grid_auto_flow": null,
+      "grid_auto_rows": null,
+      "grid_column": null,
+      "grid_gap": null,
+      "grid_row": null,
+      "grid_template_areas": null,
+      "grid_template_columns": null,
+      "grid_template_rows": null,
+      "height": null,
+      "justify_content": null,
+      "justify_items": null,
+      "left": null,
+      "margin": null,
+      "max_height": null,
+      "max_width": null,
+      "min_height": null,
+      "min_width": null,
+      "object_fit": null,
+      "object_position": null,
+      "order": null,
+      "overflow": null,
+      "overflow_x": null,
+      "overflow_y": null,
+      "padding": null,
+      "right": null,
+      "top": null,
+      "visibility": null,
+      "width": null
+     }
+    },
+    "ca9df940579a40759ddb91aa9ee4da52": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "HTMLModel",
+     "state": {
+      "_dom_classes": [],
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "HTMLModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/controls",
+      "_view_module_version": "1.5.0",
+      "_view_name": "HTMLView",
+      "description": "",
+      "description_tooltip": null,
+      "layout": "IPY_MODEL_fdbb5ef86c6a4ca487b1a7654276c4b2",
+      "placeholder": "​",
+      "style": "IPY_MODEL_473ed99c37104bf7add98ec4af974950",
+      "value": " 268M/268M [00:00&lt;00:00, 386MB/s]"
+     }
+    },
+    "cc461c6df155467a9562bafd71aa43e3": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "HTMLModel",
+     "state": {
+      "_dom_classes": [],
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "HTMLModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/controls",
+      "_view_module_version": "1.5.0",
+      "_view_name": "HTMLView",
+      "description": "",
+      "description_tooltip": null,
+      "layout": "IPY_MODEL_4fba2ba144ed4dc296275329e8613c91",
+      "placeholder": "​",
+      "style": "IPY_MODEL_778634d5bd5f472bbb13fa355deb4265",
+      "value": " 5.75k/5.75k [00:00&lt;00:00, 62.2kB/s]"
+     }
+    },
+    "ce0e56c8def84a66aa3e78eebd0ccd91": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "HBoxModel",
+     "state": {
+      "_dom_classes": [],
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "HBoxModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/controls",
+      "_view_module_version": "1.5.0",
+      "_view_name": "HBoxView",
+      "box_style": "",
+      "children": [
+       "IPY_MODEL_9bcd5bcdbf9049dbaeb01a772f37ccb0",
+       "IPY_MODEL_b14db9725096470e90cb8e3e52ef1559",
+       "IPY_MODEL_c67a2f7ad4424a90b0b5166e055d6f52"
+      ],
+      "layout": "IPY_MODEL_b1a5fc6948424a16baae0d00caf61cf4"
+     }
+    },
+    "ceec0e2ac999448282ba141cfc3f5b28": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "DescriptionStyleModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "DescriptionStyleModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "StyleView",
+      "description_width": ""
+     }
+    },
+    "d330ff1ef7d443db92741c5904158b98": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "HTMLModel",
+     "state": {
+      "_dom_classes": [],
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "HTMLModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/controls",
+      "_view_module_version": "1.5.0",
+      "_view_name": "HTMLView",
+      "description": "",
+      "description_tooltip": null,
+      "layout": "IPY_MODEL_398b243994ff47f2bc5e26f680cf812e",
+      "placeholder": "​",
+      "style": "IPY_MODEL_ceec0e2ac999448282ba141cfc3f5b28",
+      "value": " 3/3 [00:00&lt;00:00, 85.43it/s]"
+     }
+    },
+    "d6e3df9f330445e386a068344b870af3": {
+     "model_module": "@jupyter-widgets/base",
+     "model_module_version": "1.2.0",
+     "model_name": "LayoutModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/base",
+      "_model_module_version": "1.2.0",
+      "_model_name": "LayoutModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "LayoutView",
+      "align_content": null,
+      "align_items": null,
+      "align_self": null,
+      "border": null,
+      "bottom": null,
+      "display": null,
+      "flex": null,
+      "flex_flow": null,
+      "grid_area": null,
+      "grid_auto_columns": null,
+      "grid_auto_flow": null,
+      "grid_auto_rows": null,
+      "grid_column": null,
+      "grid_gap": null,
+      "grid_row": null,
+      "grid_template_areas": null,
+      "grid_template_columns": null,
+      "grid_template_rows": null,
+      "height": null,
+      "justify_content": null,
+      "justify_items": null,
+      "left": null,
+      "margin": null,
+      "max_height": null,
+      "max_width": null,
+      "min_height": null,
+      "min_width": null,
+      "object_fit": null,
+      "object_position": null,
+      "order": null,
+      "overflow": null,
+      "overflow_x": null,
+      "overflow_y": null,
+      "padding": null,
+      "right": null,
+      "top": null,
+      "visibility": null,
+      "width": null
+     }
+    },
+    "d90c031ce7a44812b7f584bbf048e25f": {
+     "model_module": "@jupyter-widgets/base",
+     "model_module_version": "1.2.0",
+     "model_name": "LayoutModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/base",
+      "_model_module_version": "1.2.0",
+      "_model_name": "LayoutModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "LayoutView",
+      "align_content": null,
+      "align_items": null,
+      "align_self": null,
+      "border": null,
+      "bottom": null,
+      "display": null,
+      "flex": null,
+      "flex_flow": null,
+      "grid_area": null,
+      "grid_auto_columns": null,
+      "grid_auto_flow": null,
+      "grid_auto_rows": null,
+      "grid_column": null,
+      "grid_gap": null,
+      "grid_row": null,
+      "grid_template_areas": null,
+      "grid_template_columns": null,
+      "grid_template_rows": null,
+      "height": null,
+      "justify_content": null,
+      "justify_items": null,
+      "left": null,
+      "margin": null,
+      "max_height": null,
+      "max_width": null,
+      "min_height": null,
+      "min_width": null,
+      "object_fit": null,
+      "object_position": null,
+      "order": null,
+      "overflow": null,
+      "overflow_x": null,
+      "overflow_y": null,
+      "padding": null,
+      "right": null,
+      "top": null,
+      "visibility": null,
+      "width": null
+     }
+    },
+    "d932737fe6084a77a0b6bddb512102c9": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "HTMLModel",
+     "state": {
+      "_dom_classes": [],
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "HTMLModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/controls",
+      "_view_module_version": "1.5.0",
+      "_view_name": "HTMLView",
+      "description": "",
+      "description_tooltip": null,
+      "layout": "IPY_MODEL_bb6e7d1d1e934b6eaf2772c2acaf9f2f",
+      "placeholder": "​",
+      "style": "IPY_MODEL_70f89ed951f14bd3a6c6e31d2c18e521",
+      "value": "Downloading readme: 100%"
+     }
+    },
+    "dcea04339bf84003ba7bf64293c61b67": {
+     "model_module": "@jupyter-widgets/base",
+     "model_module_version": "1.2.0",
+     "model_name": "LayoutModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/base",
+      "_model_module_version": "1.2.0",
+      "_model_name": "LayoutModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "LayoutView",
+      "align_content": null,
+      "align_items": null,
+      "align_self": null,
+      "border": null,
+      "bottom": null,
+      "display": null,
+      "flex": null,
+      "flex_flow": null,
+      "grid_area": null,
+      "grid_auto_columns": null,
+      "grid_auto_flow": null,
+      "grid_auto_rows": null,
+      "grid_column": null,
+      "grid_gap": null,
+      "grid_row": null,
+      "grid_template_areas": null,
+      "grid_template_columns": null,
+      "grid_template_rows": null,
+      "height": null,
+      "justify_content": null,
+      "justify_items": null,
+      "left": null,
+      "margin": null,
+      "max_height": null,
+      "max_width": null,
+      "min_height": null,
+      "min_width": null,
+      "object_fit": null,
+      "object_position": null,
+      "order": null,
+      "overflow": null,
+      "overflow_x": null,
+      "overflow_y": null,
+      "padding": null,
+      "right": null,
+      "top": null,
+      "visibility": null,
+      "width": null
+     }
+    },
+    "de26caab06714549abbfa74b57b14c7f": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "DescriptionStyleModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "DescriptionStyleModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "StyleView",
+      "description_width": ""
+     }
+    },
+    "df263cd531304449807d4b2e910b8d34": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "DescriptionStyleModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "DescriptionStyleModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "StyleView",
+      "description_width": ""
+     }
+    },
+    "e200ddee2ec34bbe9863aa4883527c3d": {
+     "model_module": "@jupyter-widgets/base",
+     "model_module_version": "1.2.0",
+     "model_name": "LayoutModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/base",
+      "_model_module_version": "1.2.0",
+      "_model_name": "LayoutModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "LayoutView",
+      "align_content": null,
+      "align_items": null,
+      "align_self": null,
+      "border": null,
+      "bottom": null,
+      "display": null,
+      "flex": null,
+      "flex_flow": null,
+      "grid_area": null,
+      "grid_auto_columns": null,
+      "grid_auto_flow": null,
+      "grid_auto_rows": null,
+      "grid_column": null,
+      "grid_gap": null,
+      "grid_row": null,
+      "grid_template_areas": null,
+      "grid_template_columns": null,
+      "grid_template_rows": null,
+      "height": null,
+      "justify_content": null,
+      "justify_items": null,
+      "left": null,
+      "margin": null,
+      "max_height": null,
+      "max_width": null,
+      "min_height": null,
+      "min_width": null,
+      "object_fit": null,
+      "object_position": null,
+      "order": null,
+      "overflow": null,
+      "overflow_x": null,
+      "overflow_y": null,
+      "padding": null,
+      "right": null,
+      "top": null,
+      "visibility": null,
+      "width": null
+     }
+    },
+    "e2ae09fc8a32485cbaa640dd9eb15a66": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "HTMLModel",
+     "state": {
+      "_dom_classes": [],
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "HTMLModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/controls",
+      "_view_module_version": "1.5.0",
+      "_view_name": "HTMLView",
+      "description": "",
+      "description_tooltip": null,
+      "layout": "IPY_MODEL_8a9745927bfc49b782824d6848f1d0ff",
+      "placeholder": "​",
+      "style": "IPY_MODEL_001a565c61f34b6fa712bf707708ebea",
+      "value": " 232k/232k [00:00&lt;00:00, 545kB/s]"
+     }
+    },
+    "e4931bd9f8a944d88a3f047d8dc69f34": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "DescriptionStyleModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "DescriptionStyleModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "StyleView",
+      "description_width": ""
+     }
+    },
+    "eb46ef5bac1643af8e6a74f18894b56b": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "DescriptionStyleModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "DescriptionStyleModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "StyleView",
+      "description_width": ""
+     }
+    },
+    "ec180cef3c5e4f948c0b2b0b269a04b9": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "HTMLModel",
+     "state": {
+      "_dom_classes": [],
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "HTMLModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/controls",
+      "_view_module_version": "1.5.0",
+      "_view_name": "HTMLView",
+      "description": "",
+      "description_tooltip": null,
+      "layout": "IPY_MODEL_08d05fd427454a9f838a881fcb67ba1d",
+      "placeholder": "​",
+      "style": "IPY_MODEL_aa545b3df2a64ce489c109bab9dc7571",
+      "value": " 437k/? [00:00&lt;00:00, 9.92MB/s]"
+     }
+    },
+    "ef7364ce3f884dd899f278412c4226ea": {
+     "model_module": "@jupyter-widgets/base",
+     "model_module_version": "1.2.0",
+     "model_name": "LayoutModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/base",
+      "_model_module_version": "1.2.0",
+      "_model_name": "LayoutModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "LayoutView",
+      "align_content": null,
+      "align_items": null,
+      "align_self": null,
+      "border": null,
+      "bottom": null,
+      "display": null,
+      "flex": null,
+      "flex_flow": null,
+      "grid_area": null,
+      "grid_auto_columns": null,
+      "grid_auto_flow": null,
+      "grid_auto_rows": null,
+      "grid_column": null,
+      "grid_gap": null,
+      "grid_row": null,
+      "grid_template_areas": null,
+      "grid_template_columns": null,
+      "grid_template_rows": null,
+      "height": null,
+      "justify_content": null,
+      "justify_items": null,
+      "left": null,
+      "margin": null,
+      "max_height": null,
+      "max_width": null,
+      "min_height": null,
+      "min_width": null,
+      "object_fit": null,
+      "object_position": null,
+      "order": null,
+      "overflow": null,
+      "overflow_x": null,
+      "overflow_y": null,
+      "padding": null,
+      "right": null,
+      "top": null,
+      "visibility": null,
+      "width": null
+     }
+    },
+    "f3fe6f19b2c347c495b26754794ee83c": {
+     "model_module": "@jupyter-widgets/base",
+     "model_module_version": "1.2.0",
+     "model_name": "LayoutModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/base",
+      "_model_module_version": "1.2.0",
+      "_model_name": "LayoutModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "LayoutView",
+      "align_content": null,
+      "align_items": null,
+      "align_self": null,
+      "border": null,
+      "bottom": null,
+      "display": null,
+      "flex": null,
+      "flex_flow": null,
+      "grid_area": null,
+      "grid_auto_columns": null,
+      "grid_auto_flow": null,
+      "grid_auto_rows": null,
+      "grid_column": null,
+      "grid_gap": null,
+      "grid_row": null,
+      "grid_template_areas": null,
+      "grid_template_columns": null,
+      "grid_template_rows": null,
+      "height": null,
+      "justify_content": null,
+      "justify_items": null,
+      "left": null,
+      "margin": null,
+      "max_height": null,
+      "max_width": null,
+      "min_height": null,
+      "min_width": null,
+      "object_fit": null,
+      "object_position": null,
+      "order": null,
+      "overflow": null,
+      "overflow_x": null,
+      "overflow_y": null,
+      "padding": null,
+      "right": null,
+      "top": null,
+      "visibility": null,
+      "width": null
+     }
+    },
+    "f4341911aea34a5d9f869f9d0b5913db": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "HTMLModel",
+     "state": {
+      "_dom_classes": [],
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "HTMLModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/controls",
+      "_view_module_version": "1.5.0",
+      "_view_name": "HTMLView",
+      "description": "",
+      "description_tooltip": null,
+      "layout": "IPY_MODEL_c954c6c0f3a941039d0c8db8b53f8ad7",
+      "placeholder": "​",
+      "style": "IPY_MODEL_58bdd4c1f644469d988224f8a650941e",
+      "value": "Generating test split:  76%"
+     }
+    },
+    "f5ab67c2046d4f62b0c5979f3ce608e4": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "FloatProgressModel",
+     "state": {
+      "_dom_classes": [],
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "FloatProgressModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/controls",
+      "_view_module_version": "1.5.0",
+      "_view_name": "ProgressView",
+      "bar_style": "success",
+      "description": "",
+      "description_tooltip": null,
+      "layout": "IPY_MODEL_ca4b4c16ec2a4369b2d478947a2eac56",
+      "max": 5752,
+      "min": 0,
+      "orientation": "horizontal",
+      "style": "IPY_MODEL_9d3d7a9092b041f0b9682265800165b6",
+      "value": 5752
+     }
+    },
+    "f6e767540acd48fb9c75a3ce62af1e6b": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "HBoxModel",
+     "state": {
+      "_dom_classes": [],
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "HBoxModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/controls",
+      "_view_module_version": "1.5.0",
+      "_view_name": "HBoxView",
+      "box_style": "",
+      "children": [
+       "IPY_MODEL_3a8f303416994654aecb27b9369a09b5",
+       "IPY_MODEL_0b8dbb83e6594a1d9555af75346b76de",
+       "IPY_MODEL_ec180cef3c5e4f948c0b2b0b269a04b9"
+      ],
+      "layout": "IPY_MODEL_115db74b275e4739a6c8ffe3a6704d35"
+     }
+    },
+    "f70b1cfb17264314a85169168d454d59": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "HBoxModel",
+     "state": {
+      "_dom_classes": [],
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "HBoxModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/controls",
+      "_view_module_version": "1.5.0",
+      "_view_name": "HBoxView",
+      "box_style": "",
+      "children": [
+       "IPY_MODEL_2fd6865874a8416398053b2d8ffe9b19",
+       "IPY_MODEL_f5ab67c2046d4f62b0c5979f3ce608e4",
+       "IPY_MODEL_cc461c6df155467a9562bafd71aa43e3"
+      ],
+      "layout": "IPY_MODEL_679ed67c83084eea86b4fe367b95bc3e"
+     }
+    },
+    "fc93f5f071704639b8e4d0348f2faefa": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "ProgressStyleModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "ProgressStyleModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "StyleView",
+      "bar_color": null,
+      "description_width": ""
+     }
+    },
+    "fdbb5ef86c6a4ca487b1a7654276c4b2": {
+     "model_module": "@jupyter-widgets/base",
+     "model_module_version": "1.2.0",
+     "model_name": "LayoutModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/base",
+      "_model_module_version": "1.2.0",
+      "_model_name": "LayoutModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "LayoutView",
+      "align_content": null,
+      "align_items": null,
+      "align_self": null,
+      "border": null,
+      "bottom": null,
+      "display": null,
+      "flex": null,
+      "flex_flow": null,
+      "grid_area": null,
+      "grid_auto_columns": null,
+      "grid_auto_flow": null,
+      "grid_auto_rows": null,
+      "grid_column": null,
+      "grid_gap": null,
+      "grid_row": null,
+      "grid_template_areas": null,
+      "grid_template_columns": null,
+      "grid_template_rows": null,
+      "height": null,
+      "justify_content": null,
+      "justify_items": null,
+      "left": null,
+      "margin": null,
+      "max_height": null,
+      "max_width": null,
+      "min_height": null,
+      "min_width": null,
+      "object_fit": null,
+      "object_position": null,
+      "order": null,
+      "overflow": null,
+      "overflow_x": null,
+      "overflow_y": null,
+      "padding": null,
+      "right": null,
+      "top": null,
+      "visibility": null,
+      "width": null
+     }
+    },
+    "fdd5c30fecfd4b2eae833669aa77baa0": {
+     "model_module": "@jupyter-widgets/base",
+     "model_module_version": "1.2.0",
+     "model_name": "LayoutModel",
+     "state": {
+      "_model_module": "@jupyter-widgets/base",
+      "_model_module_version": "1.2.0",
+      "_model_name": "LayoutModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/base",
+      "_view_module_version": "1.2.0",
+      "_view_name": "LayoutView",
+      "align_content": null,
+      "align_items": null,
+      "align_self": null,
+      "border": null,
+      "bottom": null,
+      "display": null,
+      "flex": null,
+      "flex_flow": null,
+      "grid_area": null,
+      "grid_auto_columns": null,
+      "grid_auto_flow": null,
+      "grid_auto_rows": null,
+      "grid_column": null,
+      "grid_gap": null,
+      "grid_row": null,
+      "grid_template_areas": null,
+      "grid_template_columns": null,
+      "grid_template_rows": null,
+      "height": null,
+      "justify_content": null,
+      "justify_items": null,
+      "left": null,
+      "margin": null,
+      "max_height": null,
+      "max_width": null,
+      "min_height": null,
+      "min_width": null,
+      "object_fit": null,
+      "object_position": null,
+      "order": null,
+      "overflow": null,
+      "overflow_x": null,
+      "overflow_y": null,
+      "padding": null,
+      "right": null,
+      "top": null,
+      "visibility": "hidden",
+      "width": null
+     }
+    },
+    "ffa860dbaff44301bdcbedd96b08aee7": {
+     "model_module": "@jupyter-widgets/controls",
+     "model_module_version": "1.5.0",
+     "model_name": "HBoxModel",
+     "state": {
+      "_dom_classes": [],
+      "_model_module": "@jupyter-widgets/controls",
+      "_model_module_version": "1.5.0",
+      "_model_name": "HBoxModel",
+      "_view_count": null,
+      "_view_module": "@jupyter-widgets/controls",
+      "_view_module_version": "1.5.0",
+      "_view_name": "HBoxView",
+      "box_style": "",
+      "children": [
+       "IPY_MODEL_bd4821186485411897b34f193ac37997",
+       "IPY_MODEL_85e9db0b0b764a8db75710b21b56bd25",
+       "IPY_MODEL_b2b217f9f97644aeb4438ef9be9be046"
+      ],
+      "layout": "IPY_MODEL_71cddcfbfcc34e1aa5f9602bbb05aa3c"
+     }
+    }
+   }
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 1
+}
diff --git a/__pycache__/BERTClass.cpython-310.pyc b/__pycache__/BERTClass.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..969018d03079c371fb9a6fc086ff36fb2459c517
Binary files /dev/null and b/__pycache__/BERTClass.cpython-310.pyc differ
diff --git a/__pycache__/forms.cpython-310.pyc b/__pycache__/forms.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..e4df36627f50c816f8a11e2250b6ec86b08e6db9
Binary files /dev/null and b/__pycache__/forms.cpython-310.pyc differ
diff --git a/cw-nlp-mod.pdf b/cw-nlp-mod.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..e55b58392f5e17d1c43ce6013349cce4e786cb6f
Binary files /dev/null and b/cw-nlp-mod.pdf differ
diff --git a/forms.py b/forms.py
new file mode 100644
index 0000000000000000000000000000000000000000..e694365eca1d5a9e7de14fa4ecc1771fe4e64842
--- /dev/null
+++ b/forms.py
@@ -0,0 +1,9 @@
+from flask_wtf import FlaskForm
+from wtforms import StringField, SubmitField
+from flask_ckeditor import CKEditorField
+from wtforms.validators import InputRequired
+
+
+class InputForm(FlaskForm):
+	content = CKEditorField('Type your sentence here', validators=[InputRequired()])
+	submit = SubmitField('Submit')
\ No newline at end of file
diff --git a/log.txt b/log.txt
new file mode 100644
index 0000000000000000000000000000000000000000..29afeec185c65b1f202482a997b25f9456d87853
--- /dev/null
+++ b/log.txt
@@ -0,0 +1,88 @@
+User input: Frankly, partisan politics aside, I would REALLY like to know where this fever dream of historical came from. It's mind boggling
+Sorted results: {'other_emotions': 0.9986, 'curiosity': 0.9687, 'disapproval': 0.0023, 'optimism': 0.0018, 'anger': 0.0015, 'love': 0.0013, 'neutral': 0.0012, 'admiration': 0.0011, 'joy': 0.001, 'annoyance': 0.0008, 'gratitude': 0.0008, 'approval': 0.0007, 'amusement': 0.0005, 'sadness': 0.0004, 'confusion': 0.0003}
+Timestamp: 2023-05-18 19:13:38.176188
+
+User input: Congrats, still waiting on getting called for an interview for another internal position. Applying around Christmas HR is so fucking slow.
+Sorted results: {'gratitude': 0.9971, 'other_emotions': 0.0164, 'admiration': 0.006, 'optimism': 0.0016, 'annoyance': 0.0011, 'anger': 0.0008, 'amusement': 0.0005, 'curiosity': 0.0005, 'confusion': 0.0004, 'disapproval': 0.0004, 'love': 0.0003, 'sadness': 0.0002, 'neutral': 0.0002, 'approval': 0.0001, 'joy': 0.0001}
+Timestamp: 2023-05-18 19:13:57.204872
+
+User input: I've seen posts talking about games should have a "little buddy mode" for young kids and siblings, where you can follow the main character and help but not take any damage or anything. Starting to realise it would be way more effective for moms and dads 
+Sorted results: {'neutral': 0.9979, 'approval': 0.0955, 'amusement': 0.0005, 'anger': 0.0003, 'annoyance': 0.0003, 'joy': 0.0003, 'gratitude': 0.0002, 'love': 0.0002, 'optimism': 0.0002, 'confusion': 0.0001, 'curiosity': 0.0001, 'disapproval': 0.0001, 'other_emotions': 0.0001, 'admiration': 0.0, 'sadness': 0.0}
+Timestamp: 2023-05-18 19:24:44.205186
+
+User input: Heck yeah!! I always die in my kids games! Don’t get me started on bed wars on Roblox. I was horrible!! Luckily that hype died down. But yeah, I’m not very good but we still like to play. And as this mom said, it’s cool to get messages and stuff in chat from the kiddos. Eta. I know this was diff for her bc her kiddo is deaf, but still my younger kid couldn’t type yet and play so the chat was still fun.
+Sorted results: {'other_emotions': 0.9975, 'annoyance': 0.0849, 'anger': 0.0091, 'gratitude': 0.0079, 'joy': 0.0011, 'optimism': 0.0006, 'amusement': 0.0005, 'disapproval': 0.0003, 'admiration': 0.0002, 'confusion': 0.0002, 'approval': 0.0001, 'curiosity': 0.0001, 'love': 0.0001, 'sadness': 0.0001, 'neutral': 0.0}
+Timestamp: 2023-05-18 19:24:56.014419
+
+User input: I could hug this mom and her kids… goodness, what a way to bond with them!
+Sorted results: {'love': 0.9769, 'other_emotions': 0.1375, 'approval': 0.0547, 'neutral': 0.0209, 'admiration': 0.0014, 'anger': 0.0012, 'joy': 0.0007, 'annoyance': 0.0004, 'curiosity': 0.0002, 'disapproval': 0.0002, 'gratitude': 0.0002, 'amusement': 0.0001, 'confusion': 0.0001, 'optimism': 0.0001, 'sadness': 0.0001}
+Timestamp: 2023-05-18 19:25:08.984441
+
+User input: That's pretty good all things considered, if they want to maintain that, they really need to get a patch out ASAP
+Sorted results: {'optimism': 0.9987, 'admiration': 0.9984, 'approval': 0.9561, 'confusion': 0.0225, 'sadness': 0.0221, 'disapproval': 0.02, 'gratitude': 0.0165, 'joy': 0.0138, 'anger': 0.0121, 'love': 0.0097, 'curiosity': 0.007, 'amusement': 0.0061, 'annoyance': 0.0044, 'other_emotions': 0.0039, 'neutral': 0.0019}
+Timestamp: 2023-05-18 20:41:35.535758
+
+User input: That's pretty good all things considered, if they want to maintain that, they really need to get a patch out ASAP
+Sorted results: {'optimism': 0.9987, 'admiration': 0.9984, 'approval': 0.9561, 'confusion': 0.0225, 'sadness': 0.0221, 'disapproval': 0.02, 'gratitude': 0.0165, 'joy': 0.0138, 'anger': 0.0121, 'love': 0.0097, 'curiosity': 0.007, 'amusement': 0.0061, 'annoyance': 0.0044, 'other_emotions': 0.0039, 'neutral': 0.0019}
+Timestamp: 2023-05-18 20:41:51.809816
+
+User input: We are fighting for their autonomy, which is why we're fighting hard for them to be born first.
+Sorted results: {'other_emotions': 1.0, 'approval': 0.0077, 'admiration': 0.0031, 'joy': 0.0021, 'anger': 0.001, 'amusement': 0.0009, 'sadness': 0.0008, 'love': 0.0007, 'curiosity': 0.0006, 'neutral': 0.0005, 'annoyance': 0.0003, 'confusion': 0.0003, 'disapproval': 0.0003, 'gratitude': 0.0003, 'optimism': 0.0003}
+Timestamp: 2023-05-18 20:42:19.561831
+
+User input: [NAME] line of drool made me very happy I waited to watch this til I was eating dinner i love the power hour so much
+Sorted results: {'love': 0.9975, 'joy': 0.9973, 'admiration': 0.0184, 'other_emotions': 0.0143, 'confusion': 0.0068, 'amusement': 0.006, 'gratitude': 0.0047, 'curiosity': 0.004, 'anger': 0.0038, 'disapproval': 0.0038, 'annoyance': 0.0036, 'neutral': 0.0035, 'sadness': 0.0033, 'optimism': 0.0024, 'approval': 0.0022}
+Timestamp: 2023-05-18 20:42:35.694883
+
+User input: [NAME] line of drool made me very happy I waited to watch this til I was eating dinner i love the power hour so much
+Sorted results: {'love': 0.9975, 'joy': 0.9973, 'admiration': 0.0184, 'other_emotions': 0.0143, 'confusion': 0.0068, 'amusement': 0.006, 'gratitude': 0.0047, 'curiosity': 0.004, 'anger': 0.0038, 'disapproval': 0.0038, 'annoyance': 0.0036, 'neutral': 0.0035, 'sadness': 0.0033, 'optimism': 0.0024, 'approval': 0.0022}
+Timestamp: 2023-05-18 21:39:58.978991
+
+User input: lol
+Sorted results: {'amusement': 0.9975, 'sadness': 0.0033, 'joy': 0.0025, 'neutral': 0.001, 'annoyance': 0.0007, 'other_emotions': 0.0007, 'optimism': 0.0006, 'admiration': 0.0005, 'curiosity': 0.0005, 'anger': 0.0004, 'disapproval': 0.0004, 'love': 0.0004, 'confusion': 0.0003, 'gratitude': 0.0003, 'approval': 0.0002}
+Timestamp: 2023-05-18 21:40:01.326672
+
+User input: haha
+Sorted results: {'amusement': 0.9963, 'joy': 0.0015, 'neutral': 0.001, 'admiration': 0.0009, 'love': 0.0006, 'curiosity': 0.0005, 'sadness': 0.0005, 'other_emotions': 0.0005, 'anger': 0.0004, 'annoyance': 0.0003, 'gratitude': 0.0003, 'optimism': 0.0003, 'approval': 0.0002, 'confusion': 0.0002, 'disapproval': 0.0002}
+Timestamp: 2023-05-18 21:40:04.331742
+
+User input: lol so funny stuff
+Sorted results: {'amusement': 0.9918, 'joy': 0.0019, 'admiration': 0.0006, 'other_emotions': 0.0006, 'anger': 0.0004, 'gratitude': 0.0004, 'optimism': 0.0004, 'annoyance': 0.0003, 'sadness': 0.0003, 'approval': 0.0002, 'confusion': 0.0002, 'curiosity': 0.0002, 'disapproval': 0.0002, 'love': 0.0002, 'neutral': 0.0002}
+Timestamp: 2023-05-18 21:40:13.684634
+
+User input: Wow, I'm sorry you had to deal with that. I trust better things are coming for you.
+Sorted results: {'optimism': 0.9998, 'other_emotions': 0.9677, 'sadness': 0.0118, 'anger': 0.0082, 'curiosity': 0.0053, 'joy': 0.0046, 'amusement': 0.003, 'confusion': 0.0028, 'annoyance': 0.0027, 'gratitude': 0.0026, 'admiration': 0.0025, 'approval': 0.0025, 'neutral': 0.0024, 'love': 0.0021, 'disapproval': 0.0018}
+Timestamp: 2023-05-18 21:56:02.100659
+
+User input: Wow, I'm sorry you had to deal with that. I trust better things are coming for you.
+Sorted results: {'optimism': 0.9998, 'other_emotions': 0.9677, 'sadness': 0.0118, 'anger': 0.0082, 'curiosity': 0.0053, 'joy': 0.0046, 'amusement': 0.003, 'confusion': 0.0028, 'annoyance': 0.0027, 'gratitude': 0.0026, 'admiration': 0.0025, 'approval': 0.0025, 'neutral': 0.0024, 'love': 0.0021, 'disapproval': 0.0018}
+Timestamp: 2023-05-18 21:56:08.635118
+
+User input: [NAME] has towed the line of the Dark Side. He wouldn't cross it by doing something like this.
+Sorted results: {'neutral': 0.9998, 'admiration': 0.0008, 'amusement': 0.0005, 'anger': 0.0005, 'disapproval': 0.0004, 'annoyance': 0.0003, 'optimism': 0.0003, 'sadness': 0.0003, 'other_emotions': 0.0003, 'approval': 0.0002, 'curiosity': 0.0002, 'confusion': 0.0001, 'gratitude': 0.0001, 'joy': 0.0001, 'love': 0.0001}
+Timestamp: 2023-05-18 21:56:32.789022
+
+User input: Watch Vegan Gains’ video on that, he had it when he was like 13, highly doubt he was juicing then"
+Sorted results: {'neutral': 0.9989, 'admiration': 0.0005, 'annoyance': 0.0002, 'curiosity': 0.0002, 'optimism': 0.0002, 'amusement': 0.0001, 'anger': 0.0001, 'approval': 0.0001, 'confusion': 0.0001, 'disapproval': 0.0001, 'gratitude': 0.0001, 'joy': 0.0001, 'sadness': 0.0001, 'other_emotions': 0.0001, 'love': 0.0}
+Timestamp: 2023-05-18 21:56:49.195256
+
+User input: That was an incredibly dumb thing to do. [NAME] is an idiot for trusting her.
+Sorted results: {'annoyance': 0.9995, 'disapproval': 0.0344, 'gratitude': 0.0045, 'neutral': 0.0043, 'admiration': 0.0024, 'other_emotions': 0.0016, 'love': 0.0013, 'confusion': 0.0009, 'optimism': 0.0008, 'anger': 0.0006, 'sadness': 0.0006, 'amusement': 0.0005, 'approval': 0.0005, 'joy': 0.0005, 'curiosity': 0.0004}
+Timestamp: 2023-05-18 21:57:10.272710
+
+User input: I’m really sorry about your situation :( Although I love the names Sapphira, Cirilla, and Scarlett!
+Sorted results: {'other_emotions': 0.988, 'sadness': 0.7742, 'love': 0.0092, 'gratitude': 0.0019, 'amusement': 0.0007, 'confusion': 0.0006, 'admiration': 0.0005, 'approval': 0.0004, 'anger': 0.0003, 'annoyance': 0.0002, 'optimism': 0.0002, 'neutral': 0.0002, 'curiosity': 0.0001, 'disapproval': 0.0001, 'joy': 0.0001}
+Timestamp: 2023-05-18 21:59:01.610935
+
+User input: Break up and be firm about. You’ve already admitted to being dishonest. Why lead him on?
+Sorted results: {'neutral': 0.8918, 'anger': 0.8487, 'curiosity': 0.1111, 'annoyance': 0.0152, 'disapproval': 0.0018, 'sadness': 0.0005, 'other_emotions': 0.0005, 'confusion': 0.0003, 'optimism': 0.0003, 'love': 0.0002, 'admiration': 0.0001, 'amusement': 0.0001, 'approval': 0.0001, 'gratitude': 0.0001, 'joy': 0.0001}
+Timestamp: 2023-05-18 21:59:58.760870
+
+User input: Lol omg yesssss. Probably the best suggestion anyone ever told me 🙌🏼
+Sorted results: {'amusement': 0.9984, 'admiration': 0.7448, 'other_emotions': 0.0179, 'approval': 0.0044, 'optimism': 0.0037, 'joy': 0.0017, 'curiosity': 0.0011, 'annoyance': 0.001, 'confusion': 0.001, 'gratitude': 0.0008, 'sadness': 0.0008, 'disapproval': 0.0006, 'anger': 0.0004, 'love': 0.0004, 'neutral': 0.0004}
+Timestamp: 2023-05-18 22:00:32.160715
+
+User input: Well thanks for sharing. I loved it. Do you know of any others from them that aren't well known?
+Sorted results: {'gratitude': 0.9997, 'love': 0.9942, 'curiosity': 0.1907, 'confusion': 0.0153, 'joy': 0.0148, 'disapproval': 0.0114, 'sadness': 0.0109, 'neutral': 0.0078, 'admiration': 0.0066, 'anger': 0.0063, 'amusement': 0.0059, 'annoyance': 0.0029, 'optimism': 0.0026, 'other_emotions': 0.0023, 'approval': 0.0022}
+Timestamp: 2023-05-18 22:01:09.921940
+
diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..25d05015474e1ab9d00357c15cae97bf63e5f543
--- /dev/null
+++ b/requirements.txt
@@ -0,0 +1,7 @@
+torch
+transformers
+torchtext
+flask_wtf
+wtforms
+flask_ckeditor
+numpy
\ No newline at end of file
diff --git a/run.py b/run.py
new file mode 100644
index 0000000000000000000000000000000000000000..6994c0a0c27a2ff20a3b23740724987947c888e8
--- /dev/null
+++ b/run.py
@@ -0,0 +1,70 @@
+from flask import Flask, request, render_template, redirect, url_for, session
+import secrets
+from BERTClass import BERTClass
+import transformers
+import torch
+import datetime
+import torchtext
+import forms
+import numpy as np
+
+DEVICE = torch.device("cuda" if torch.cuda.is_available() else "cpu")
+torch.backends.cudnn.deterministic = True
+
+print("PyTorch Version: ", torch.__version__)
+print("torchtext Version: ", torchtext.__version__)
+print(f"Using {'GPU' if str(DEVICE) == 'cuda' else 'CPU'}.")
+
+model = torch.load('saved_model', map_location=torch.device('cpu'))
+
+def requestResults(content):
+	results, thr_results = model.predict(content)
+	return results.tolist(), thr_results.tolist()
+
+app = Flask(__name__)
+SECRET_KEY = secrets.token_urlsafe(16)
+app.config['SECRET_KEY'] = SECRET_KEY
+
+@app.route('/', methods=['POST', 'GET'])
+def post_input():
+
+	session['class_names'] = ['admiration', 'amusement', 'anger', 'annoyance', 'approval', 'confusion', 
+	'curiosity','disapproval', 'gratitude', 'joy', 'love', 'optimism', 'sadness', 'neutral', 'other_emotions']
+	session['results'] = np.zeros(14).tolist()
+	session['thr_results'] = ''
+
+	form = forms.InputForm(request.form)
+	if request.method == "POST":
+		if form.validate_on_submit():
+			content = form.content.data
+			results, thr_results = requestResults(content)
+			session['results'] = [round(float(prob), 4) for prob in results[0]]
+			session['thr_results'] = thr_results[0]
+
+			result_dict = {}
+			for class_name, result in zip(session['class_names'], session['results']):
+				result_dict[class_name] = result
+
+			sorted_result_dict = dict(sorted(result_dict.items(), key=lambda x: x[1], reverse=True))
+			session['class_names'] = list(sorted_result_dict.keys())
+			session['results'] = list(sorted_result_dict.values())
+
+			log_text = f"User input: {content}\n"
+			log_text += f"Sorted results: {sorted_result_dict}\n"
+			log_text += f"Timestamp: {datetime.datetime.now()}\n\n"
+			with open("log.txt", "a") as log_file:
+				log_file.write(log_text)
+
+			return render_template('home.html', form=form)
+
+	return render_template('home.html', form=form)
+
+@app.route('/result', methods=['POST', 'GET'])
+def get_result():
+
+	class_probabilities = session['results']
+
+	return render_template('result.html', class_probabilities=class_probabilities)
+
+if __name__ == '__main__' :
+    app.run(debug=True)
\ No newline at end of file
diff --git a/saved_model b/saved_model
new file mode 100644
index 0000000000000000000000000000000000000000..e4ac4bbede55a16d24c329ce375a59e026e722cf
Binary files /dev/null and b/saved_model differ
diff --git a/templates/home.html b/templates/home.html
new file mode 100644
index 0000000000000000000000000000000000000000..06efcca2a46f934f3c36f088f5df128d484807a5
--- /dev/null
+++ b/templates/home.html
@@ -0,0 +1,68 @@
+{% from 'macros.html' import displayField %}
+
+<style>
+    .textbox {
+        border: none;
+        border-radius: 5px;
+        background-color: #f2f2f2;
+        padding: 10px;
+        box-shadow: 0 0 5px rgba(0, 0, 0, 0.1) inset;
+        width: 400px;
+        height: 100px;
+        resize: none;
+        text-align: left;
+    }
+</style>
+
+
+<form method="POST" action="">
+    {{ form.csrf_token }}
+    <textarea type="freeform" name="content" class="textbox" placeholder="Enter text here" required></textarea>
+    <button type="submit" name="submit">Submit</button>
+</form>
+
+<html>
+<head>
+    <title>Get Classification</title>
+    <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
+</head>
+<body>
+    <canvas id="myChart"></canvas>
+
+    <script>
+        var classProbabilities = {{ session['results'] }};
+        var classNames = {{ session['class_names']|tojson }};
+
+        var data = {
+            labels: classNames,
+            datasets: [{
+                label: 'Class Probabilities',
+                data: classProbabilities,
+                backgroundColor: '#87CEEB',
+                borderColor: '#87CEEB',
+                borderWidth: 1
+            }]
+        };
+
+        var options = {
+            responsive: true,
+            maintainAspectRatio: true,
+            indexAxis: 'y',
+            scales: {
+                x: {
+                    beginAtZero: true,
+                    max: 1
+                }
+            }
+        };
+
+        var ctx = document.getElementById('myChart').getContext('2d');
+        new Chart(ctx, {
+            type: 'bar',
+            data: data,
+            options: options
+        });
+    </script>
+</body>
+</html>
+
diff --git a/templates/macros.html b/templates/macros.html
new file mode 100644
index 0000000000000000000000000000000000000000..ae725646d1bceed7f360afb7e7190ed0c45224da
--- /dev/null
+++ b/templates/macros.html
@@ -0,0 +1,9 @@
+{% macro displayField(fieldName, placeholderValue) %}
+
+  {{ fieldName(class_='input__field', placeholder=placeholderValue, **kwargs) }}
+
+  {% for error in fieldName.errors %}
+    <p class="form__error">{{ error }}</p>
+  {% endfor %}
+
+{% endmacro %}
diff --git a/templates/result.html b/templates/result.html
new file mode 100644
index 0000000000000000000000000000000000000000..e8dbc9a2f9d8cf8b84a0f1625e3556c646c1a146
--- /dev/null
+++ b/templates/result.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <title>Classification Results</title>
+    <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
+</head>
+<body>
+    <canvas id="myChart"></canvas>
+
+    <script>
+        var classProbabilities = {{ class_probabilities }};
+        var classNames = {{ session['class_names']|tojson }};
+
+        var data = {
+            labels: classNames,
+            datasets: [{
+                label: 'Class Probabilities',
+                data: classProbabilities,
+                backgroundColor: 'blue',
+                borderColor: 'blue',
+                borderWidth: 1
+            }]
+        };
+
+        var options = {
+            responsive: true,
+            maintainAspectRatio: true,
+            indexAxis: 'y',
+            scales: {
+                x: {
+                    beginAtZero: true,
+                    max: 1
+                }
+            }
+        };
+
+        var ctx = document.getElementById('myChart').getContext('2d');
+        new Chart(ctx, {
+            type: 'bar',
+            data: data,
+            options: options
+        });
+    </script>
+</body>
+</html>
diff --git a/tests/test_app.py b/tests/test_app.py
new file mode 100644
index 0000000000000000000000000000000000000000..686861be88fcf7e6898fd78322337bfb94ac369f
--- /dev/null
+++ b/tests/test_app.py
@@ -0,0 +1,26 @@
+import unittest
+from flask import Flask
+from run import app
+
+class FlaskAppTestCase(unittest.TestCase):
+    
+    def setUp(self):
+        self.app = app.test_client()
+    
+    def test_home_page(self):
+        response = self.app.get('/')
+        self.assertEqual(response.status_code, 200)
+        self.assertIn(b'Welcome to the Home Page', response.data)
+    
+    def test_post_input_valid_content(self):
+        response = self.app.post('/', data={'content': 'Example content'})
+        self.assertEqual(response.status_code, 200)
+        self.assertIn(b'Results:', response.data)
+    
+    def test_post_input_invalid_content(self):
+        response = self.app.post('/', data={'content': ''})
+        self.assertEqual(response.status_code, 200)
+        self.assertIn(b'Invalid input', response.data)
+
+if __name__ == '__main__':
+    unittest.main()
\ No newline at end of file